(覆盖但以理书4:1-37)这梦见于但以理所誊录的巴比伦国史文献内。
这份文献是由饱受教训而学会谦卑自抑的[[🤴尼布甲尼撒二世 Nebuchadnezzar II 642-562 BC]]执笔的。
首先尼布甲尼撒承认至高上帝的大能及他的王国。然后他叙述所发的可怕的梦,并解释这梦如何应验在他身上。
他梦见一棵大树,高得顶天,所产的果子可供众生食用,其荫可遮庇万民。一位守望者大声喊叫说:‘要伐倒这树。把树的残株用铁圈和铜圈箍住。让它被天上的露水沾湿,跟野兽一起在地上的草木中生活。 ''要使它的心改变,不再是人心,要给它兽心,让它经过七期''。好叫世人知道至高者在人的国中掌权,要将国赐给极卑微的人统治。’(但以理书4:14-17)
[[🗣️但以理 Daniel(?-530 BC)]]把梦讲解出来,指明树代表尼布甲尼撒。这个含有预言性的梦不久便实现了。有一天国王因自己的威荣而自命不凡,随即变成有如疯子一般,在田间吃草为生,与兽无异,一共过了''七年''。此后他的神智回复正常,他于是称颂耶和华的至尊地位。
<a href="https://www.wikiwand.com/en/Daniel_4">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/9/98/William_Blake_-_Nebuchadnezzar_%28Tate_Britain%29.jpg"
caption:"Nebuchadnezzar, by William Blake"
width:"auto"
align:"center"
>>
</a>
(约拿书1:17-2:10)“耶和华安排一条大鱼吞了[[🗣️约拿 Jonah]],他在鱼腹中三日三夜。”(约拿书1:17)约拿在鱼腹中恳求耶和华。说“我遭遇患难求告耶和华,你就应允我。”并说他必偿还所许的愿,因为“救恩出于耶和华”。(约拿书2:2,9)于是大鱼听从耶和华的吩咐,把约拿吐在旱地上。
<a href="https://www.wikiwand.com/en/Book_of_Jonah#Media/File:Pieter_Lastman_-_Jonah_and_the_Whale_-_Google_Art_Project.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/4/44/Pieter_Lastman_-_Jonah_and_the_Whale_-_Google_Art_Project.jpg/1920px-Pieter_Lastman_-_Jonah_and_the_Whale_-_Google_Art_Project.jpg"
caption:"Jonah and the Whale (1621) by ''Pieter Lastman''"
width:"auto"
align:"center"
>>
</a>
! 第一代太阳神/十二泰坦之一
|!父母 |[[天空之神乌拉诺斯 Uranus]] and [[🌍大地女神盖亚 Gaea]] |
|!配偶 |[[光明女神忒亚 Theia]] |
|!对应罗马神 ||
''Hyperion'' (''/haɪˈpɪəriən/''; Greek: Ὑπερίων, romanized: Hyperion, '''he who goes before''')
!! Offspring
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
! 太阳的拟人化 Personification of the Sun
''Helios'', also ''Helius'' (''/ˈhiːlioʊs/''; Ancient Greek: Ἥλιος Hēlios; Latinized as Helius; Ἠέλιος in Homeric Greek)
|标志 |战车、马匹、光环 |
|父母 |[[☀️太阳神亥伯龙神 Hyperion]] and [[光明女神忒亚 Theia]] |
|对应罗马神 |Sol |
|对应挪威神 |[[☀️苏尔 Sol]] |
|对应印度教神 |Surya |
|对应迦南神 |Shapash |
|对应美索不达米亚神 |Utu |
|对应匈牙利神 |Napkirály |
在艺术中经常被描绘成带着光芒四射的王冠,驾驶着一辆马拉战车穿过天空。''他是誓言的守护者,也是视力之神。''
尽管赫利俄斯__在古典希腊是一个相对次要的神__,但由于在罗马时期对他和几个主要的神,特别是阿波罗和索尔的认同,他的崇拜在古代晚期变得更加突出。''罗马皇帝朱利安 (Julian) 将赫利俄斯 (Helios) 作为其在公元 4 世纪短暂复兴传统罗马宗教习俗的中心神。''
赫利俄斯在希腊神话、诗歌和文学的几部作品中都占有重要地位,在这些作品中,他经常被描述为泰坦神 Hyperion 和 Theia 的儿子,以及女神 Selene(月亮)和 [[Eos(黎明)|黎明女神厄俄斯 Eos]]的兄弟。
赫利俄斯通常被描绘成一个英俊的年轻人,他戴着闪亮的太阳光环,每天驾驶着太阳的战车穿越天空到达环绕地球的大洋洲,并在晚上穿过世界海洋返回东方。在荷马对赫利俄斯的赞美诗中,据说赫利俄斯驾驶着一辆由骏马拉动的金色战车;品达谈到赫利俄斯的“飞奔的骏马”。 再后来,这些马被赋予了与火有关的名字:Pyrois(“火之一”)、Aeos(“翻转天空的人”)、Aethon(“炽热”)和Phlegon(“燃烧”)。
''赫利俄斯既被视为太阳的化身,又被视为其背后的基本创造力,因此经常被视为生命和创造之神''。荷马将赫利俄斯描述为“给凡人带来欢乐的神”,其他古代文本给他加词“仁慈”(ἱλαρός),因为他是生命和再生的源泉,并与世界的创造有关。 《希腊魔法纸莎草纸》中记载的一段话对赫利俄斯说:“当你发光时大地繁荣,当你笑时使植物结果,当你允许时使生物复活。”
[img[https://upload.wikimedia.org/wikipedia/commons/8/8e/Ilion---metopa.jpg?1625150853125]]
!! 和阿波罗的混淆
Helios有时会被认为是阿波罗。
在荷马(Homeric)文学中,''阿波罗''被清楚地确定为一个不同的神,''一个拥有银色(不是金色)弓并且没有太阳特征的瘟疫经销商(plague-dealer)''🧐。
最早的关于阿波罗被确定为赫利俄斯(Helios)的特定参考出现在残存的欧里庇得斯(Euripides)的戏剧 //法厄同 Phaethon// 片段中,在接近尾声的一次演讲中 (fr 781 N²) – 法厄同的母亲克莱墨涅 (Clymene) 哀叹赫利俄斯毁了她的孩子,那个被人们称为阿波罗的赫利俄斯(阿波罗这个名字在这里被理解为 "毁灭者 "的阿波罗)。
到希腊化时代,阿波罗在崇拜中与太阳密切相关,而 Phoebus(希腊语 Φοῖβος,“明亮”)是最常用于阿波罗的加词,后来被拉丁诗人用于太阳神索尔。
//赫利俄斯在他的战车上,公元前 4 世纪初,雅典娜神庙,伊利昂//
! 神谕、治疗、射箭、音乐和艺术、阳光、知识、牛群和羊群以及保护年轻人的神
|标志 |[[七弦琴|𓏢七弦竖琴 Lyre]]、月桂花环、蟒蛇、乌鸦、天鹅、弓箭 |
|对应伊特鲁里亚(Etruscan)神 |Apulu |
|对应北欧神 |[[☀️苏尔 Sol]] |
|父母 |[[Zeus|⚡天神宙斯 Zeus]] and [[Leto|勒托 Leto]] |
<span class="highlight">阿波罗被视为最美丽的神和kouros(ephebe,即没有胡子的运动型青年)的理想,被认为是所有神中最希腊的神</span>。
''作为宙斯最宠爱的儿子'',阿波罗可以直接接触宙斯的心智,并愿意将这些知识透露给人类。作为人类无法理解的神性,他既是一位有益的神,也是一位愤怒的神。
作为德尔斐(Apollo Pythios)的守护神,阿波罗是一位神谕——德尔斐神谕的预言神。''阿波罗是提供帮助和驱除邪恶的神;各种绰号称他为“避恶者”。'' Delphic Apollo 是海员、外国人和逃亡者和难民的保护者。
阿波罗也和''医学和治疗''有关,无论是通过神本身还是通过他的儿子[[阿斯克勒庇俄斯(Asclepius)|⚕️医药之神阿斯克勒庇俄斯 Asclepius]]进行调解。阿波罗把人们从流行病中解救出来,然而他也是一个可以用他的箭带来不健康和致命的瘟疫的神。''射箭的发明本身就归功于阿波罗和他的妹妹阿尔特弥斯''。<span class="wavy">阿波罗通常被描述为拿着一张金弓和一束银箭</span>。阿波罗使年轻人成长的能力是他的泛希腊崇拜人格的最佳证明之一。作为年轻人的保护者(kourotrophos),阿波罗关注儿童的健康和教育。他主持了他们进入成年的过程。__长发是男孩的特权,在成年时被剪掉(ephebeia)并献给阿波罗。__
阿波罗是一位重要的''牧神'',是牧民和牧羊人的守护神。保护牛群、羊群和农作物免受疾病、害虫和捕食者的侵害是他的主要职责。另一方面,阿波罗还鼓励建立新城镇和建立公民宪法。他与对殖民者的统治有关。他是法律的制定者,在城市制定法律之前会咨询他的神谕。
''作为__穆西克(mousike)之神__,阿波罗掌管着所有的音乐、歌曲、舞蹈和诗歌。他是弦乐的发明者'',也是缪斯女神(Muses)的常伴,在庆祝活动中担任合唱团领队。七弦琴是阿波罗的一个共同属性。
在希腊化时代,特别是在公元前 5 世纪,作为阿波罗赫利俄斯,他在希腊人中被认为是太阳的化身[[赫利俄斯(Helios)|☀️太阳神赫利俄斯 Helios]]。 然而,在拉丁文本中,直到公元 1 世纪,古典拉丁诗人中都没有将阿波罗与索尔(Sol)混为一谈。直到公元 5 世纪,阿波罗和[[赫利俄斯(Helios)/索尔(Helios)|☀️太阳神赫利俄斯 Helios]]在文学和神话文本中仍然是独立的存在。
!! 关于他的神话
!!! 出生
当宙斯的妻子赫拉发现[[勒托(Leto)|勒托 Leto]]怀孕时,她禁止Leto在陆地上分娩。Leto在许多地方寻求庇护,但都被他们拒绝了。<span class="wavy">>最后,''未出生的阿波罗的声音告诉他的母亲'',有一个名为[[德洛斯Delos|Delos]]的浮岛,曾经是Leto的亲妹妹[[阿斯特丽亚Asteria|Asteria]]</span>。 由于它既不是大陆也不是岛屿,莱托很容易受到欢迎,并在棕榈树下生下了她的孩子。除了赫拉,所有的女神都在场见证了这一事件。还有人说,赫拉绑架了分娩女神[[Eileithyia|艾蕾西亚 Eileithyia]],以阻止Leto分娩。其他诸神通过向赫拉提供一条9码(8.2米)长的琥珀项链来骗取她的同意。
当阿波罗出生时,他手持一把金剑,德洛斯岛的一切都变成了黄金,岛上充满了芳香。 天鹅在岛上绕了七圈,仙女们高兴地唱着歌。他被女神们洗得干干净净,然后女神们给他穿上白衣,在他周围系上金箍。由于莱托无法喂养他,神圣的法律女神[[西弥斯(Themis)|⚖️法律与正义女神西弥斯 Themis]]用花蜜或安露西亚Ambrosia<<footnote "食物" "它是希腊诸神的食物或饮料,经常被描述为''赋予食用它的人以长寿或不朽''。它由鸽子带到奥林匹斯山的诸神面前,并由希比或加尼米德在天国盛宴上提供。">>喂他。尝到神圣的食物后,阿波罗挣脱了系在他身上的带子,宣布他将成为琴和箭的主人,并向人类解释宙斯的意志。 宙斯当时已经安抚了赫拉,来到这里,用一个金色的头带装饰他的儿子。
阿波罗的诞生将漂浮的提洛岛(Delos)固定在地球上。莱托承诺,她的儿子会永远对提利安人(Delians)有利。根据一些人的说法,阿波罗在一段时间后将提洛岛固定在海底。 ''这个岛成为阿波罗的圣地,是该神的主要崇拜中心之一。''
神话学家们一致认为,阿尔特弥斯先出生,随后协助阿波罗出生,或者出生在奥尔蒂基亚岛(island of Ortygia),然后帮助莱托在第二天渡海到德洛斯生下阿波罗。
在神话中,当他的儿子[[阿斯克勒庇俄斯|⚕️医药之神阿斯克勒庇俄斯 Asclepius]]死后,阿波罗流下的琥珀色眼泪变成了埃里达诺斯河(the river Eridanos)的水,环绕着海波瑞亚 Hyperborea 。阿波罗还将他用来杀死独眼巨人的箭埋在海波瑞亚 Hyperborea 。后来他把这支箭给了阿巴里斯 Abaris 。
!! 童年
据说阿波罗小时候用他姐姐阿耳特弥斯猎取的山羊角在德洛斯岛建造了一个地基和一个祭坛。由于他从小就学会了建筑的艺术,所以他后来被称为Archegetes,''是(城镇的)创始人和引导人们建造新城市的神''。
在阿波罗早年放牛的时候,他被蜜蜂仙女Thriae抚养,Thriae训练他并提高他的预言能力。''据说阿波罗还发明了琴,并与阿耳特弥斯一起发明了射箭的艺术。''他随后向人类传授了治疗和射箭的艺术。他的祖母[[福柏(Phoebe)|福柏 Phoebe]]将德尔菲(Delphi)的神坛作为生日礼物送给了阿波罗。[[西弥斯(Themis)|⚖️法律与正义女神西弥斯 Themis]]启发他在那里成为德尔斐的神谕之声。
!! [[皮同 Python|🐍Python]]
巨蟒,一条冥界蛇龙,是盖亚的孩子,也是德尔斐神谕的守护者,当阿波罗还在莱托的子宫里时,他的死亡就被预言了。 巨蟒是巨人[[堤丰|🌪️提丰 Typhon]]的护士。在大多数传统中,阿波罗在杀死 Python 时还是个孩子。
根据另一个版本,当Leto在德尔斐[[Delhpi|Delphi]]时,Python袭击了她。欧里庇得斯在他的《奥里斯的伊菲吉妮亚》中记述了他与蟒蛇的斗争以及事件的后果。
阿波罗还要求让所有其他的占卜方法都不如他,宙斯欣然答应了他的这个愿望。''正因为如此,一直通过投掷卵石进行占卜的雅典娜不高兴地扔掉了她的卵石。''
然而,阿波罗犯下了血案,必须被净化。由于Python是盖亚的孩子,盖亚希望阿波罗被放逐到[[塔尔塔罗斯|😈地狱塔尔塔罗斯 Tartarus]]作为惩罚。宙斯没有同意,而是将他的儿子从奥林匹斯山放逐,并指示他接受净化。阿波罗不得不当了九年的奴隶。
奴役结束后,按照他父亲的命令,他来到坦佩谷,在佩尼乌斯(Peneus)的水中沐浴。在那里,宙斯亲自为阿波罗举行净化仪式。净化后的阿波罗由他同父异母的妹妹雅典娜护送到德尔菲Delphi,在那里,盖亚最终将神坛交给了他。根据一种说法,阿波罗也曾到过克里特岛,在那里卡曼诺Carmanor为他净化。阿波罗后来建立了皮西安竞技会(Pythian games),以适应盖亚。从此以后,阿波罗成了从谋杀罪中净化自己的神,并让人们意识到自己的罪过,净化他们。
不久之后,宙斯指示阿波罗前往德尔菲并建立他的法律。但阿波罗不听父亲的话,去了海波里亚Hyperborea,在那里呆了一年。在德尔菲人向他唱赞美诗并恳求他回来后,他才回来。宙斯对他儿子的正直感到高兴,把他右边的座位给了阿波罗。他还送给阿波罗各种礼物,如金鼎、金弓和箭、金车和德尔斐城。
回来后不久,阿波罗需要为德尔菲招募人员。因此,当他发现一艘从克里特岛驶来的船时,他以海豚的形式跳上了船。船员们被震慑得服服帖帖,并沿着一条路线把船带到了德尔菲。在那里,阿波罗显示了他的神性。他让他们开始为他服务,并嘱咐他们要保持心中的正义。皮提亚Pythia是阿波罗的大祭司,也是他的传声筒,他通过她发布预言。皮提亚可以说是阿波罗在凡人中的一贯宠儿。
!! [[Tityos|提堤俄斯 Tityos]]
赫拉再次派另一个巨人提提欧斯Tityos来强奸莱托。这一次,阿波罗用他的箭射杀了他,并用他的金剑攻击了他。根据其他版本,阿尔忒弥斯也帮助他保护他们的母亲,用她的箭攻击提提欧斯。 [161] 战斗结束后,宙斯终于放弃了他的援助,把提提欧斯扔到了塔尔塔罗斯。在那里,他被钉在岩层上,占地9英亩(36,000平方米),一对秃鹰每天在那里吃他的肝脏。
!! [[Admetus|阿德米特斯 Admetus]]
阿德米特斯是佩雷Pherae的国王,他以好客而闻名。当阿波罗因为杀死蟒蛇而被放逐出奥林匹斯山时,他在阿德米托斯手下做了一名牧民,当时他还很年轻,没有结婚。据说,''阿波罗在逗留期间与阿德米特斯有过一段浪漫的关系''。在完成了他多年的奴役之后,阿波罗作为神回到了奥林匹斯山。
阿波罗和阿德墨图斯之间的爱情是奥维德Ovid和塞尔维乌斯Servius等罗马诗人喜欢的话题。
!! 和[[Niobe|尼俄伯 Niobe]]
当阿波罗还在莱托的子宫里时,他就预言了尼俄伯的命运。 尼俄伯是底比斯的王后,安菲翁的妻子。当她吹嘘自己比莱托优越时表现出傲慢,因为她有十四个孩子(尼奥比德),七男七女,而莱托只有两个。''她进一步嘲笑__阿波罗柔弱的外表__和__阿尔忒弥斯的男子气概__。''受此侮辱的莱托告诉她的孩子们惩罚尼俄伯。
因此,阿波罗杀死了尼俄伯的儿子,阿尔忒弥斯杀死了她的女儿。根据神话的某些版本,在 Niobids 中,Chloris 和她的兄弟 Amyclas 没有被杀,因为他们向 Leto 祈祷。安菲翁Amphion看到他死去的儿子们,或者自杀了,或者在发誓复仇后被阿波罗杀死。
饱受摧残的Niobe逃到了小亚细亚的西皮罗斯山(Mount Sipylos),在哭泣中变成了石头。她的眼泪形成了Achelous河。宙斯把底比斯所有的人都变成了石头,所以没有人埋葬Niobe的孩子们,直到他们死后的第九天,众神亲自把他们埋葬。
当Chloris结婚生子后,阿波罗将他从Niobids那里夺走的年限授予她的儿子内斯特Nestor。''因此,内斯特Nestor能够活了三代''。
!! 建特洛伊城墙
有一次,阿波罗和波塞冬按照宙斯的话在特洛伊国王劳梅顿Laomedon手下服务。阿波罗德鲁斯Apollodorus说,众神心甘情愿地伪装成人类去见国王,以制衡他的狂妄。
阿波罗在伊达山的山谷中看守拉奥梅登的牛群,而波塞冬则建造特洛伊的城墙。其他版本则认为阿波罗和波塞冬都是城墙的建造者。在奥维德的描述中,阿波罗通过用他的琴弹奏曲子来完成他的任务。
在平达的颂歌(Pindar's odes)中,众神把一个名叫[[埃阿库斯Aeacus|埃阿科斯 Aeacus]]的凡人作为他们的助手。当工程完成后,三条蛇冲向城墙,虽然攻击众神所建城墙部分的两条蛇倒地死亡,但第三条蛇却通过埃阿库斯所建城墙的部分强行进入城中。阿波罗立即预言,特洛伊将倒在Aeacus的后裔埃阿科斯人(Aeacidae)手中(他的儿子泰拉蒙在拉奥梅登Laomedon统治期间围攻该城时加入了赫拉克勒斯。后来,他的曾孙Neoptolemus出现在导致特洛伊沦陷的木马中)。
然而,国王不仅拒绝给众神承诺的工资,还威胁要捆绑他们的手脚,把他们当作奴隶卖掉。''阿波罗被无偿劳动和侮辱所激怒,使城市感染了瘟疫,波塞冬派来了海怪塞特斯Cetus。''为了把城市从瘟疫中解救出来,拉奥梅登Laomedon不得不牺牲他的女儿赫西恩Hesione (后来被赫拉克勒斯救了)。
在特洛伊逗留期间,阿波罗有一个名叫Ourea的情人,她是波塞冬的女儿,是个仙女。他们一起生了一个儿子,名叫伊莱厄斯Ileus,阿波罗非常喜欢他。
!! 特洛伊战争
在希腊人对特洛伊人发动的特洛伊战争中,阿波罗站在了特洛伊人一边。
在战争期间,希腊国王阿伽门农俘虏了阿波罗的祭司克里西斯的女儿克里西斯Chryseis,,并拒绝归还她。阿波罗对此很生气,向希腊人的营地射出感染了瘟疫的箭。他要求他们归还女孩,阿凯亚人(希腊人)服从了他的要求,间接地引起了[[阿喀琉斯的愤怒(anger of Achilles)|阿喀琉斯 Achilles]],这就是《伊利亚特》的主题。
接受了宙斯的庇护,阿波罗按照他父亲的命令进入战场,用他的战歌给敌人带来了巨大的恐怖。他把希腊人逼退,并消灭了许多士兵。他被描述为 "军队的鼓动者",因为他在特洛伊军队分崩离析的时候召集了他们。
当宙斯允许其他诸神参与战争时,阿波罗被波塞冬挑衅,要进行决斗。然而,阿波罗拒绝与他战斗,说他不会为了凡人而与他的叔叔战斗。
当希腊英雄迪奥墨得斯Diomedes打伤特洛伊英雄埃涅阿斯Aeneas时,阿佛洛狄忒试图救他,但迪奥墨得斯也打伤了她。阿波罗于是将埃涅阿斯Aeneas笼罩在一片云中,以保护他。他击退了狄俄墨得斯对他的攻击,并严厉警告这位英雄不要攻击神。随后,埃涅阿斯被带到了特洛伊的一个圣地--珀加摩斯Pergamos,在那里他得到了治愈。
宙斯的儿子萨尔佩顿Sarpedon,死后,阿波罗按照他父亲的意愿从战场上救出了尸体并将其清洗干净。然后他把它交给了[[睡眠(Hypnos)|😴睡神希普诺斯 Hypnos]]和[[死亡(Thanatos)|☠️死神塔纳托斯 Thanatos]]。阿波罗也曾经说服雅典娜停止当天的战争,以便战士们可以暂时解脱。
特洛伊英雄赫克托尔Hector(根据一些人的说法,他是赫库巴的亲生儿子)受到阿波罗的青睐。当他严重受伤时,阿波罗治愈了他,并鼓励他拿起武器。在与阿喀琉斯Achilles的决斗中,当赫克托尔即将失败时,阿波罗将赫克托尔藏在一团云雾中,以拯救他。当希腊战士帕特洛克罗斯Patroclus 试图进入特洛伊堡垒时,他被阿波罗阻止了。阿波罗鼓励赫克托尔攻击帕特洛克罗斯,并剥去了希腊战士的盔甲,折断了他的武器。''帕特洛克罗斯最终被赫克托尔杀死''。最后,在赫克托尔命中注定的死亡之后,阿波罗通过在他的尸体上制造魔法云来保护他的尸体不被阿喀琉斯企图破坏。
''阿波罗在整个战争中都对阿喀琉斯怀恨在心,因为阿喀琉斯在战争开始前就杀害了他的儿子特尼斯Tenes'',并在自己的神庙中残忍地刺杀了他的儿子特洛伊罗斯Troilus 。阿波罗不仅从阿喀琉斯手中救下赫克托尔Hector,还将自己伪装成特洛伊勇士,将其赶出城门,以此来欺骗阿喀琉斯。他挫败了阿喀琉斯残害赫克托尔Hector尸体的企图。
最后,阿波罗通过引导[[帕里斯Paris |Paris]]射出的箭进入阿喀琉斯的脚跟,导致了阿喀琉斯的死亡。在一些版本中,阿波罗自己通过伪装成帕里斯的样子杀死了阿喀琉斯。
阿波罗在战场上帮助了许多特洛伊战士,包括阿格诺尔Agenor、波吕达斯Polydamas、格劳库斯Glaucus 。虽然他非常偏爱特洛伊人,但阿波罗必须听从宙斯的命令,在战争中忠诚地服务于他的父亲。
!! [[赫拉克勒斯 Heracles|💪大力神赫拉克勒斯 Heracles]]
在赫拉克勒斯(当时叫阿尔西德斯)被疯狂打击并杀死家人后,他试图净化自己,并咨询了阿波罗的神谕。阿波罗通过女祭司皮提亚(Pythia)命令他为国王欧律斯透斯服务12年,并完成国王交给他的十项任务。只有这样,阿尔西德斯才会被赦免他的罪行。阿波罗还将他改名为赫拉克勒斯。
为了完成他的第三项任务,赫拉克勒斯必须抓住塞里尼亚雌鹿,这是一只被阿耳特弥斯奉为圣物的雌鹿,并将其活捉。他追了一年它一年。当这只动物最终感到疲惫并试图穿越拉东河时,他抓住了它。当他把它带回去的时候,他遇到了阿波罗和阿耳特弥斯,他们对赫拉克勒斯的这种行为感到愤怒。然而,赫拉克勒斯安抚了这位女神,并向她解释了他的情况。经过一番恳求,阿耳特弥斯允许他带走那只后腿,并告诉他以后要把它归还。
赫拉克勒斯从对欧律斯的奴役中解脱出来后,与欧卡利亚的王子伊菲图斯发生了冲突,并将其杀害。不久之后,他患上了一种可怕的疾病。他再次向阿波罗神谕咨询,希望能摆脱这种疾病。然而,Pythia拒绝给出任何预言。一怒之下,赫拉克勒斯抢走了圣鼎,开始离开,打算开始自己的神谕。然而,阿波罗没有容忍这一切,并阻止了赫拉克勒斯;他们之间发生了决斗。阿耳特弥斯赶来支持阿波罗,而雅典娜则支持赫拉克勒斯。不久,宙斯将他的雷电扔到了这对战斗的兄弟之间,将他们分开。他训斥了赫拉克勒斯的这种违法行为,并要求阿波罗给赫拉克勒斯一个解决方案。阿波罗于是命令这位英雄在吕底亚女王Omphale手下服务一年,以净化自己。
!! 柏拉图的灵魂伴侣概念
很久以前,有三种人:男性,来自太阳;女性,来自地球;雌雄同体,来自月亮。''每个人都是完整的圆形,有四条胳膊和四条腿,两张相同的脸在头的两边,有四只耳朵,其他一切都相匹配''。他们强大而不羁。奥蒂斯(Otis)和埃菲亚尔特(Ephialtes)甚至敢于攀登奥林匹斯山。
为了制止他们的无礼行为,宙斯设计了一个计划来使他们谦让,改善他们的礼仪,而不是完全摧毁他们。''他把他们全部切成两半,并要求阿波罗进行必要的修补,使人类拥有现在的个体形状。''阿波罗把他们的头和脖子转向他们的伤口,他把他们腹部的皮肤拉在一起,并把皮肤在中间缝在一起。这就是我们今天所说的肚脐。他抚平了皱纹,塑造了胸部的形状。但他一定要在腹部和肚脐周围留下一些皱纹,以便让他们记住他们的惩罚。
!! 男性友人
Hyacinth或Hyacinthus是阿波罗最喜欢的情人之一。 他是一位斯巴达王子,美丽而健壮。这对恋人在练习投掷铁饼时,阿波罗投掷的铁饼被嫉妒的泽菲鲁斯吹偏了方向,击中了Hyacinthus的头部,使他当场死亡。据说,阿波罗充满了悲痛。阿波罗用Hyacinthus的血创造了一朵以他名字命名的花,作为对他死亡的纪念,他的眼泪在花瓣上染上了αἰαῖ的感叹词,意思是唉。他后来复活了,被带到天堂。Hyacinthia节是斯巴达的全国性庆典,纪念Hyacinthus的死亡和重生。
另一个男性情人是Cyparissus,他是赫拉克勒斯的后裔。阿波罗给了他一只驯服的鹿作为伴侣,但Cyparissus意外地用标枪杀死了它,当时它正躺在树丛中睡觉。Cyparissus对它的死亡感到非常悲痛,他请求阿波罗让他的眼泪永远流下去。阿波罗答应了他的请求,把他变成了以他名字命名的赛普勒斯,据说这是一棵悲伤的树,因为树液在树干上形成了像眼泪一样的水滴。
佩雷国王阿德米图斯也是阿波罗的情人。在他流亡期间,有的持续一年,有的持续九年,阿波罗作为牧民为阿德米图斯服务。他们关系的浪漫性质首先由亚历山大的卡里马科斯描述,他写道阿波罗对阿德米特斯 "爱得发狂"。 普鲁塔克将阿德米特斯列为阿波罗的情人之一,并说阿波罗为阿德米特斯服务是因为他宠爱他。 拉丁诗人奥维德在他的Ars Amatoria中说,尽管他是一个神,但阿波罗放弃了他的骄傲,为了阿德米托斯而留在这里当仆人。 提布勒斯将阿波罗对国王的爱描述为servitium amoris(爱的奴役),并断言阿波罗成为他的仆人不是因为强迫而是因为选择。他还会做奶酪,并把它端给阿德米托斯。他的家庭行为给他的家人带来了尴尬。
牧羊人Branchus有一天在树林里遇到了阿波罗。他被神的美貌迷住了,亲吻了阿波罗。阿波罗回报了他的感情,并想奖励他,把预言的技能赐给了他。他的后代,Branchides,是一个有影响力的预言家家族。
阿波罗的其他男性恋人包括:
* 阿多尼斯,据说他是阿波罗和阿佛洛狄忒的情人。他在阿佛洛狄忒面前表现得像个男人,在阿波罗面前表现得像个女人 。
* Atymnius, 另一个名字是Sarpedon的爱人
* 北风之神博雷亚斯 。
* 普里安的儿子、特洛伊王子海伦努斯是阿波罗的情人,从他那里得到了一把象牙弓,后来他用这把弓打伤了阿基里斯的手。
* 西西昂的希波吕托斯(与特修斯的儿子希波吕托斯不同) 。
* 马格尼斯的儿子希门艾斯
* 伊阿皮斯,阿波罗将治疗的艺术传授给他
* Phorbas,屠龙者(可能是Triopas的儿子)。
[img[https://upload.wikimedia.org/wikipedia/commons/thumb/1/19/Apollo_of_the_Belvedere.jpg/640px-Apollo_of_the_Belvedere.jpg]]
苏尔,是北欧神话中的''太阳驭者,是太阳的化身''。她是巨人[[蒙迪尔法利|蒙迪尔法利 Mundilfari]]的女儿,她的丈夫是火焰巨人史尔特尔的儿子—格劳尔。她的兄弟是[[玛尼(Mani,月亮)|🌖玛尼 Mani]],玛尼则是月亮的驭者。
<a href="https://www.wikiwand.com/en/Sól_(Germanic_mythology%29">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/5/51/The_Wolves_Pursuing_Sol_and_Mani.jpg/440px-The_Wolves_Pursuing_Sol_and_Mani.jpg"
caption:"The Wolves Pursuing Sol and Mani (1909) by ''J. C. Dollman''."
width:"400px"
align:"right"
tooltip:"">>
</a>
苏尔驾驶著由''阿尔瓦克(Arv 早醒者)''和''阿尔斯维(Alsvin,快步者)''的马拉著的日车,车上装载著由穆斯贝尔海姆中撷取来的最大火块,由于火的热力太猛烈,所以在车前加装了''巨盾斯瓦林(Svalin)'',以免烧坏车子。北欧神话中相信,太阳只提供热力而没提供光亮,耀眼的光明其实是来自''阿尔瓦克''和''阿尔斯维''的鬃毛之间。
一只名为''斯库尔(Sköll,嫌忌)''的狼总是在车后追逐太阳,想把它吞下去。当发生日蚀时,就表示苏尔被追上了,这时候地上的人们就会敲锣打鼓以吓走天狼。''但总有一天,斯库尔将把太阳吞下,那时就是__诸神的黄昏__到来的时候''。
而当世界重生之后,驾驭日车的任务会由苏尔的女儿—''苏娜''继承,新的太阳无须用盾隔著,因为它将会无比温和,使大地再次重现生机。
苏尔也被叫做''Sunna''、''Sunne'' 或 Frau Sunne,这些单字都和''太阳或星期日是同一个语源''。太阳本身也被叫做Alfrodull,意即“精灵的光荣”。
!! 好客、慷慨、忠诚、和平和害羞的云彩女神
希腊神话中,涅斐勒是宙斯按照[[赫拉|天后赫拉 Hera]]的形象创造的一朵云,用来欺骗[[伊克西翁|👑伊克西翁 Ixion]],以测试他的正直,因为伊克西翁在作为宙斯的客人的宴会上表现出了对赫拉的情欲。
当伊克西翁醉酒后与涅斐勒交配生下半人马族。后来这些半人马与佩利翁山上的母马交配成为所有半人马的祖先。
[[耶和华|https://www.wikiwand.com/zh-hans/%E8%80%B6%E5%92%8C%E5%8D%8E]],对希伯来圣经中的希伯来语:יְהֹוָה Yəhōwā,或是[[四字神名|四字神名 Tetragrammaton]](希伯来语:יהוה ,YHWH,YHVH)加上母音,进行拉丁化而产生的一个专有名词。原是犹太教尊奉的神名,也是基督教中的神,可译作雅威、亚威、亚呼威或上主。
希伯来四字圣名按照犹太教的传统尊为至圣,''随便读写这个字成为忌讳''。希伯来圣经在公元前二世纪翻译为希腊文的“七十士译本”,将这个字翻译成“主”(希腊语:,音kurios),许多圣经译本延续犹太的传统用“主”(Lord)来翻译这个字。因此这个神名的正确发音很早就失传了,耶和华这个发音在欧洲中古世纪后盛行,但许多现代学者相信其正确发音应该接近于''雅威''或''亚威''或''亚呼威''(Yahweh,Yahuweh,Yahuveh)。
|!父母 |[[🌌黑夜女神尼克斯 Nyx]] and [[虚冥厄瑞玻斯 Erebus]]|
|!配偶 ||
是希腊神话中登场的死亡与战争女神或恶灵。复数存在。在《伊利亚德》中,是在战场带来死亡的恶灵。长有翅膀、黑色、长牙、长爪,吸取尸体的血。
由多个拟人化神祇组成,包括:
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
!! 和[[⚔️女武神瓦尔基莉 Valkyries]]的关系
马蒂亚斯·埃格尔(Mathias Egeler)认为北欧神话中的凯瑞斯(Keres)和''瓦尔基莉(Valkyries)''之间存在联系。两位神灵都是战魂,在冲突期间飞越战场并选择要杀死的人。不同之处在于,瓦尔基里是仁慈的神,''而凯瑞斯则是恶毒的'',这或许是因为两种文化对战争的看法不同。
瓦尔基里(valkyrie)一词源自古挪威语 valkyrja(复数 valkyrjur),由两个词组成;名词 valr(指战场上的阵亡者)和动词 kjósa(意思是“选择”)。它们在一起的意思是“被杀者的选择者”。希腊语“Ker”在词源上意味着''毁灭、死亡''。
! 死亡的角色化 Personification of death
|!父母 |[[🌌黑夜女神尼克斯 Nyx]] |
|!配偶 ||
|标志 |西塔,罂粟,蝴蝶,剑,倒火炬 |
|对应罗马神 |Mors |
<a href="https://www.wikiwand.com/en/Thanatos#Media/File:Hermes_e_Sarpedon.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Hermes_e_Sarpedon.jpg/550px-Hermes_e_Sarpedon.jpg"
caption:"Hypnos (left) and Thanatos (right) carrying dead Sarpedon, while Hermes watches. Inscriptions in ancient Greek read HVPNOS-HERMES-θΑΝΑΤΟS (here written vice versa). Attic red-figured calyx-krater, 515 BC."
width:"400px"
align:"right"
tooltip:"">>
</a>
是希腊神话中的死神,罗马神话中称为,他是[[😴睡神希普诺斯 Hypnos]]的孪生兄弟,其母为黑夜女神妮克斯。另有一说是,他是邱比特(即罗马神话中的厄洛斯)的分身。
桑纳托斯是个美少年,住在冥界,司掌死亡的神。桑纳托斯曾经被狡猾的薛西弗斯欺骗过,薛西弗斯是风神埃俄罗斯的儿子,他的机智令他囤积了大量财富,当他感到死神桑纳托斯差不多来时,就蒙骗桑纳托斯带上手铐,结果地上再也没有人进入冥界,人们停止对冥王黑帝斯进行献祭,宙斯命战神阿瑞斯去薛西弗斯那里释放桑纳托斯,桑纳托斯立即摄走薛西弗斯的灵魂,薛西弗斯临死前叫妻子不要对冥王作献祭,冥王黑帝斯及泊瑟芬等不到献祭,薛西弗斯就希望冥王放自己回人间,叫妻子作献祭后再回来,然而薛西弗斯并没有依约回到冥界,这激怒了黑帝斯,黑帝斯再派桑纳托斯去摄走薛西弗斯的灵魂,这次薛西弗斯无法再重返人间了。
[img[https://upload.wikimedia.org/wikipedia/commons/thumb/5/57/Caduceus.svg/320px-Caduceus.svg.png?1625121777569]]
也是宁西达神(god Ningishzida)的象征。
! 边界、道路和旅行者、盗贼、运动员、牧羊人、商业、速度、狡猾、智慧和睡眠之神,冥界引路人(Psychopomp)<<footnote "Deities" "literally meaning the 'guide of souls')are creatures, spirits, angels, or deities in many religions whose responsibility is to escort newly deceased souls from Earth to the afterlife.">>和神圣的信使
''Hermes'' (''/ˈhɜːrmiːz/''; Greek: Ἑρμῆς)
|标志 |[[🥾翼靴 The Talaria of Mercury]], [[☤卡杜斯-墨丘利的节杖 Caduceus]], 乌龟, [[𓏢七弦竖琴 Lyre]], 公鸡, [[🧑🏽🌾有翼头盔 Petasos]] (有翼头盔) |
|对应罗马神 |Mercury |
|对应伊特鲁里亚Etruscan神|Turms |
|对应埃及神 |[[托特 Thoth]], [[𓃦 阿努比斯 Anubis]] |
|对应北欧神 |[[神使赫尔莫德 Hermod]] |
|父母 |[[Zeus|⚡天神宙斯 Zeus]] and[[ Maia|Maia]] or [[Uranus|天空之神乌拉诺斯 Uranus]] and Hermera |
赫尔墨斯被认为是诸神的传令官。他也被认为是人类使者、旅行者、小偷、商人和演说家的保护者。''他能够在凡人和神的世界之间快速自由地移动,由他带翅膀的凉鞋帮助''。赫尔墨斯扮演着精神导师或 "灵魂向导 "的角色--灵魂进入来世的引导者。
他的属性和象征包括赫玛(herma)、公鸡、乌龟、Talaria(有翼凉鞋)和有翼头盔(winged helmet)或简单的Petasos,以及棕榈树、山羊、数字四、几种鱼和香。然而,''他的主要象征是[[卡杜斯|☤卡杜斯-墨丘利的节杖 Caduceus]],一根带翼的杖,上面交织着两条交媾的蛇和其他神的雕刻''。 他的属性之前影响了早期的伊特鲁里亚神Turms,这个名字是从希腊语 "herma "借来的。
在罗马神话中,赫尔墨斯被称为Mercury,这个名字源自拉丁语 merx,意思是“商品merchandise”,以及“商人merchant”和“商业commerce”这两个词的起源。
赫耳墨斯也被描绘成手中拿着一个钱包或袋子,身穿长袍或斗篷,具有隐身的能力。他的武器是一把金剑,它杀死了[[阿尔戈斯Argos|阿尔戈斯 Argos/Argus Panoptes]];借给[[珀尔修斯Perseus|珀尔修斯 Perseus]]杀死美杜莎。
!! 神职
赫尔墨斯''最初是一个与__冥界__有密切联系的神''。他在古代被崇拜为 "地下世界和上层世界之间的道路之神",这一功能逐渐扩展到包括__一般的道路__,并由此包括''边界、旅行者、水手和商业''。
!!! 边界之神
<img class="left" src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/9c/Herma_Hermes_Getty_Villa_79.AA.132.jpg/300px-Herma_Hermes_Getty_Villa_79.AA.132.jpg" alt=" Herm of Hermes. Roman copy from the Hermes Propyleia of Alcamenes, 50–100 AD."style="width:150px">
在古希腊,赫尔墨斯是''边界之神(phallic god of boundaries)''。他的名字以 Herma 的形式出现在路边的石头标记堆上,每个旅行者都在堆上加了一块石头。
在公元前 6 世纪,Pisistratus 的儿子 Hipparchos 用一根方形或矩形的石柱或青铜柱取代了标志着雅典中央集市每个村庄之间中间点的石碑,顶部是一尊留着胡须的赫尔墨斯半身像,''一根直立的阴茎从底部升起''。在更原始的基利尼山或基利尼安赫姆斯中,立石或木柱只是雕刻的阴茎。__沃尔特·伯克特 (Walter Burkert) 评论道:“这种纪念碑可以变成奥林匹斯山的神,真是令人震惊。”__''在雅典,赫尔墨斯被放置在房屋外,既是保护家庭的一种形式,也是男性生育能力的象征'',也是家庭及其众神与更广泛社区众神之间的联系。
!!! 作为牧羊神
<img class="right" src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c4/Hermes_crioforo.jpg/400px-Hermes_crioforo.jpg" style="width:200px">
赫尔墨斯被称为羊群、牧群和牧羊人的守护神,这一属性可能与他早期作为潘(Pan)的一个方面的起源有关。''在[[波欧提亚(Boeotia)|Boeotia]],赫尔墨斯因携带公羊或小牛绕过城墙,使城镇免遭瘟疫之灾而受到敬仰。''
每年都有一个节日来纪念这一事件,在这个节日里,__"最英俊的男孩 "会带着一只羊绕城一周,然后献祭,以净化并保护城市免受疾病、干旱和饥荒的影响__。在整个地中海地区发现了许多关于赫尔墨斯作为牧羊神肩上扛着一只羊(Hermes kriophoros)的描述,而且赫尔墨斯作为 "好牧人 "的图腾可能对早期基督教产生了影响,特别是在《约翰福音》中对基督作为 "好牧人 "的描述。
!! 神话
!!! 早期希腊神话——荷马和赫西奥德版本(Homer and Hesiod)
荷马和赫西奥德把赫尔墨斯描绘成技巧性或欺骗性行为的作者,同时也是凡人的恩人。''在《伊利亚特》中,他被称为 "带来好运的人","向导和守护者",以及 "在所有诡计中表现出色"。''他是希腊人对抗特洛伊人的神圣盟友。然而,当[[Priam|Priam]]去希腊人的营地取回他儿子[[赫克托(Hector)|赫克托 Hector]]的尸体时,他确实保护了Priam,并陪同他们回到特洛伊。
他还把[[阿瑞斯(Ares)|🛡️战神阿瑞斯 Ares]]从被奥图斯(Otus)和埃菲亚特(Ephialtes)囚禁的铜船中救了出来。
在《奥德赛》中,赫尔墨斯帮助他的曾孙,也就是主人公[[奥德修斯Odysseus|奥德修斯 Odysseus]],告诉他他的同伴们的命运,他们被[[克尔西(Circe)|喀耳刻 Circe]]的力量变成了动物。赫尔墨斯指示奥德修斯通过咀嚼一种神奇的草药来保护自己;他还告诉[[卡吕普索(Calypso)|Calypso]]宙斯的命令,让他把奥德修斯从她的岛上释放出来,让他继续回家的旅程。
当奥德修斯杀死他妻子的求婚者时,赫尔墨斯将他们的灵魂引向冥府。
在《作品与日子》中,当宙斯命令赫淮斯托斯创造潘多拉,以惩罚普罗米修斯将火赋予人类的行为而使人类蒙羞时,每个神都给她一份礼物,''而赫尔墨斯的礼物是谎言、诱人的话语和可疑的性格''。然后,赫尔墨斯奉命将她嫁给了[[厄庇墨透斯(Epimetheus)|厄庇墨透斯 Epimetheus]]。
荷马史诗中关于赫尔墨斯的第4首赞美诗讲述了这位神的诞生和他后来偷窃阿波罗圣牛的故事,''将他称为 "多变(polytropos),平淡无奇的狡猾,一个强盗,一个赶牛人,一个带来梦想的人,一个夜间的观察者,一个门前的小偷,一个即将在不死之神中展现精彩事迹的人。'' "
在《奥德赛》的第一句话中,__polutropos("有许多转变,转动许多方式,有许多装置,巧妙的,或许多徘徊")一词也被用来描述奥德修斯__。
除了[[lyre|𓏢七弦竖琴 Lyre]],赫尔墨斯被认为发明了许多类型的赛车和摔跤运动,因此''是运动员的守护神''。
埃斯库罗斯(Aeschylus)在《Eumenides》中写道,赫尔墨斯帮助[[俄瑞斯忒斯(Orestes)|俄瑞斯忒斯 Orestes]]用假身份和其他计谋杀死了克吕泰涅斯特拉,还说他是搜索之神,以及那些寻找丢失或被盗物品的人。
在《Philoctetes》中,当奥德修斯需要说服Philoctetes加入希腊人一边的特洛伊战争时,索福克勒斯(Sophocles)响应了赫尔墨斯,在欧里庇得斯的Rhesus中赫尔墨斯帮助多伦(Dolon)监视希腊海军的情况。
伊索( Aesop )在他的几个寓言中都提到了他,''他是预言之门的统治者,是运动员之神,是可食用根茎之神,也是好客之神''。他还说,赫尔墨斯给每个人都分配了他的那份智慧。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Ankh_%28SVG%29_01.svg/260px-Ankh_%28SVG%29_01.svg.png"
caption:"The Ankh"
width:""
align:"right" >>
生命之符(英语:Ankh;符号:U+2625 ☥),又称''安卡、安可'',是埃及象形文字(又称圣书体)的字母,代表词语ʿnḫ,解作生命。部份古埃及的神祇手持生命之符的圈,或两手各执生命之符,交叉双手放于胸前。拉丁文称此符作crux ansata,“''有柄的十字''”之意。
是北欧神话中负责掌管''战争与农业''的神,职责是保护诸神国度的安全与在人间巡视农作。
北欧人相传每当''雷雨交加时就是托尔乘坐马车出来巡视'',因此称呼托尔为“雷神”。另外,托尔的勇敢善战在诸神与巨人间是非常有名的。托尔的力量相当巨大,在神话中甚至可以独自挑战巨人群,每当诸神被巨人们欺负或者攻击时,只要托尔一站出来立刻就让巨人族知难而退。
除了托尔本身力量强大之外,“妙尔尼尔”(雷神之锤)更是让托尔所向无敌的宝贵武器,因此与诸神敌对的巨人族们相当畏惧托尔:只要托尔在诸神的一天,巨人们几乎不敢对诸神们轻举妄动。
!! 托尔的身世
托尔的母亲是大地女神[[🌎大地女神乔迪 Jord]],其妻子是希芙。生父则众说纷纭,大多数的人认为托尔是[[⚡众神之父奥丁(神圣) Odin]]之子,但其实这样的观点,也是很让人存疑的。
''大约西元一世纪时,托尔的地位比奥丁还高'',在北欧的第一圣地鲁萨拉神殿中,托尔的雕像就立在神殿正中央,两边则是奥丁和弗雷。''有时候,托尔也被尊为希腊神话中的宙斯''。而在日耳曼人的习俗中,托尔的日子是一星期最重要的''星期四'',日耳曼人都在星期四举行会议,所以托尔同时也是会议和契约的守护神。
''Thursday一词就是由Thor得名的。''
而同为战争之神的托尔和奥丁,是什么时候互换了地位?可以这么说,托尔是古老农业社会的神,他是古老战神,同时也掌管和农业息息相关的气候,手中的雷神之锤有祝福婚姻、生产、复活和安抚亡灵等力量,而托尔本人带给人的印象是强大的、正直讲信义的。这是农民的形象,是早期农耕社会中的表现。
而''奥丁则是贵族的战神'',他是参谋、诗人、知识份子。同时他也是一个''为达目地不择手段的神''。再看北欧的历史,自给自足的农业社会崩溃后,人们离开土地航向海洋,追求权力、财富与冒险。随著海盗的时代来临,奥丁的地位渐渐的抬高了。__而《新艾达经》的作者史洛里更是在作品中大力吹捧奥丁__,这可能和奥丁同时也是诗歌之神的身份有关。于是,托尔的地位下滑,而奥丁从中窜起。
!! 托尔的家庭
托尔一共结了两次婚,第一次是和女巨人[[雅恩莎撒(Jarnsaxa)|雅恩莎撒 Jarnsaxa]],他们生下的孩子是''[[曼尼|玛格尼 Magni]]''。他是力量的象征,是众神中力量最大的一位。
后来他又和''希芙女神''结婚,一般认为他们有两个孩子,儿子摩迪和女儿斯露德。摩迪是愤怒的人格化,斯露德则是女武神之一。
除此之外,希芙另外还有一个孩子,冬神——乌勒尔。
!! 托尔的武器与装备
* [[🔨妙尔尼尔(雷神之锤) Mjölnir]]:其名带有粉碎之意。俗称“雷神之锤”。
* [[雅恩格利佩尔(Iarngreiper)/铁手套|铁手套雅恩格利佩尔 Iarngreiper]]:根据北欧神话的记载,托尔在得到妙尔尼尔之后和侏儒额外订做的手套,此手套专门拿来搭配使用妙尔尼尔,让托尔无论怎么挥舞槌子都不会感到疲倦。这个宝物并没有出现在《旧艾达经》中,所以一般相信,这是《新艾达经》的作者史洛里从对现今来说已经遗失的资料中所引用之物,或是史洛里自己的创造之物。
* [[梅金吉奥德(Megingjord)/力量腰带|梅金吉奥德(力量腰带) Megingjord]]:托尔本身拥有的宝物,只要将此腰带系上即可涌现比平时更加强大的力量。这个宝物同样的也没有出现在《旧艾达经》中,所以一般相信,这是《新艾达经》的作者史洛里从遗失的资料中所引用之物,或是史洛里自己的创造之物。
!! 托尔的宿敌
索尔一生中几乎无人能敌,但是他仍有一个终生的宿敌,就是大蛇耶梦加得,耶梦加得为洛基的儿子,拥有与地球同等长的巨大身躯与无比的力量,索尔曾经和它冲突多次,最终在诸神的黄昏中索尔力战耶梦加得,''结果双双战亡''。
{{valkyrie.mp3}}
女武神,又称瓦尔基莉、巴尔基里。是北欧神话里登场的“狄丝”(Dísir)女神(半神)。
“瓦尔基莉”这个字的原意是“''贪食尸体者''”,到后来慢慢演变成“挑战死者的女神”,另外还有后人赋予所谓“出现在英雄面前的梦中情人”的形象。
!! 人数
至于女武神的人数,各种传说的说法不一;最多是十六个,最少是三个,但一般则说是九人。因各种版本的传说不同,瓦尔基莉们的名字也有差异。现将所有见于记载的名字尽量列举如下:
# 亚尔薇特(Alvit)
# [[布伦希尔德 Brynhild]]
# 洁萝露尔(Geironul)
# 洁尔诗科古尔(Geirskogul)
# 格蕾 (Goll)
# 格恩达尔(Gondul)
# 古娜(Gunn)
# 古丝(Guth)
# 海芙约特(Herfjotur)
# 赫尔薇尔(Hervor)
# 希露德(Hildr)
# 荷拉德古娜(Hladgunnr)
# 荷拉斯古丝(Hlathguth)
# 赫萝克(Hlokk)
# 荷瑞丝特(Hrist)
# 密丝特(Mist)
# 奥尔露恩(Olrun)
# 萝塔(Rota)
# 兰蒂格瑞丝(Randgrith)
# 拉丝格瑞丝(Rathgrith)
# 瑞 吉蕾芙(Reginleif)
# 希格德莉法(Sigrdrifa)
# [[希格露恩(Sigrun)|赫尔吉 Helge]]
# 诗嘉古尔(Skagull,奥丁的斟酒侍女)
# 斯克嘉莉德(Skeggjald)
# 诗蔻蒂(Skuld,命运女神)
# 斯薇法(Svafa)
# 斯露德(Thrud,托尔的女儿)
其中''布伦希尔德''可能等同于''希格德莉法''。另有一说,侍奉''恩赫里亚(Einheriar)们''的是荷瑞丝特、密丝特 和斯露德三人。又,瓦格纳''《尼伯龙根指环》''中提到的九位女武神除布伦希尔德外都是他原创的,和传说没什么关系。
!! 形象与任务
她们''一般是来自地上国王的女儿,或是奥丁自己的女儿,或是发誓侍奉奥丁而被诸神选中上天的处女战士''。她们被称为“好战处女”。她们在战场上赐与战死者美妙的一吻,并引领他们带往英灵殿。这么做的目的是为了在诸神的黄昏来临之前,扩充神域的兵力以应付战场所需。
她们的形象是:''戴著金盔或银盔,穿血红色的紧身战袍,头上戴著以羽毛装饰或鸟翼型的头盔,拿著发光的矛和盾,骑著小巧精悍、会飞的白马。''一般人相信她们是雾或云的人格化。而她们骑的白马,人们想像马的鬃毛间能够落下霜和露,因此这些马也受到人们尊敬。在北欧人看来,瓦尔基丽们和她们的马都是有惠于人类的。而北极光有时亦被认为是瓦尔基丽们驱马在夜空中奔驰时,铠甲闪耀的光芒。
瓦尔基丽们不单在陆地的战场上挑选勇敢的战死者,她们也到海上,从沉没的大龙船里挑选将死的勇敢的维京人。在英灵殿,服侍这些战士的灵魂也是女武神的任务之一。另有一说,负责殿上侍奉的是荷瑞丝特、密丝特和斯露德三人。
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
! 医学、治愈、复兴和医生之神
''Asclepius'' (''/æsˈkliːpiəs/;'' Greek: Ἀσκληπιός Asklēpiós [asklɛːpiós]; Latin: Aesculapius)
|标志 |[[⚕️阿斯克勒庇俄斯之杖 Rod of Asclepius]] |
|对应罗马/伊特鲁里亚神 |Vejovis |
|对应埃及神 |Imhotep |
|父母 |[[☀️太阳神阿波罗 Apollo]] and [[科洛尼斯 Coronis]] |
阿斯克勒庇俄斯代表医学艺术的治疗方面;他的女儿是Hygieia("卫生",清洁的女神)、Iaso(病后恢复的女神)、Aceso(治疗过程的女神)、Aegle(健康的女神)、Panacea(普遍补救的女神)。
''他与阿波罗共享Paean("治疗者")的外号''。
[[阿斯克勒庇俄斯之杖Rod of Asclepius|⚕️阿斯克勒庇俄斯之杖 Rod of Asclepius]],一个缠绕着蛇的杖,(类似于[[墨丘利的节杖 卡杜西斯 Caduceus|墨丘利的节杖 Caduceus]])''今天仍然是医学的象征''。那些为这位神服务的医生和侍者被称为阿斯克勒庇俄斯的治疗师。
!! 关于出生
* ''说法1: ''阿斯克勒庇俄斯是阿波罗的儿子,__根据最早的记载__,他是一个名叫[[Coronis|科洛尼斯 Coronis]]的凡人女子。当她与一个名叫伊希斯的凡人睡觉而表现出不忠时,阿波罗用他的预言能力知道了这一点,并杀死了伊希斯。科罗尼斯因为对阿波罗不忠而被阿耳特弥斯杀死,并被放在葬礼的火堆上烧掉,但阿波罗从Coronis的子宫里把孩子救了出来。
* ''说法2: ''__根据德尔菲(Delphian)的传统__,阿斯克勒庇俄斯出生在阿波罗神殿中,[[Lachesis|🧵命运三女神 Moirai]]担任助产士,阿波罗减轻了Coronis的痛苦。阿波罗以Coronis的昵称埃格尔Aegle为孩子取名。
* ''说法3:''__腓尼基(Delphian)传统__认为阿斯克勒庇俄斯是阿波罗所生,没有任何女性参与。
* ''说法4:''根据__罗马版本__,阿波罗通过他的乌鸦得知科洛尼斯背叛了凡人伊斯奇斯,并用他的箭杀死了她。在她死前,她向阿波罗透露她怀上了他的孩子。a阿波罗后悔自己的行为,试图救她但没有成功。最后,在她被大火吞噬之前,他安全地从她的肚子里取出了他们的儿子。
* ''说法5:''在另一个版本中,已经怀有阿波罗孩子的科洛尼斯不得不陪伴她的父亲前往伯罗奔尼撒半岛。她对父亲隐瞒了怀孕。在埃皮达鲁斯,她生了一个儿子,并把他暴露在一座叫做乳头(Nipple)的山上。这个孩子由在山上放牧的一只山羊喂奶,并由牧群的看门狗看守。 Aresthanas——山羊和护卫犬的主人找到了这个孩子。走近一看,他看到那孩子身上闪过一道闪电,心想这是神迹,便留下了孩子。阿斯克勒庇俄斯后来被阿波罗带走。
!! 获得医学知识
阿波罗将获救的婴儿命名为“阿斯克勒庇俄斯”,并养育了他一段时间,并教会了他许多医学知识。 然而,和他同父异母的兄弟[[阿里斯泰厄斯Aristaeus|阿里斯泰俄斯 Aristaeus]]一样,阿斯克勒庇俄斯在半人马(centaur)奇龙(Chiron)的指导下接受了正式的教育,Chiron指导他学习医学的艺术。
据说为了报答阿斯克勒庇俄斯的恩情,''一条蛇把阿斯克勒庇俄斯的耳朵舔干净,并向他传授了秘密知识''(对希腊人来说,蛇是智慧、治疗和复活的神圣生物)。阿斯克勒庇俄斯拿着一根缠绕着蛇的棍子,这根棍子就与治疗联系在一起。
另一个版本说,当阿斯克勒庇俄斯(或另一个神话中的波里德斯 Polyidus)被命令恢复格拉乌斯(Glaucus)的生命时,他被关在一个秘密监狱里。在思考他应该做什么的时候,一条蛇爬到了他的杖旁。阿斯克勒庇俄斯沉浸在自己的思绪中,不知不觉地用他的法杖一次又一次地击打它,把它杀死了。后来,另一条蛇来到那里,嘴里叼着一株草药,放在死蛇的头上,死蛇很快就活过来了。看到这一幕,阿斯克勒庇俄斯使用了同样的草药,使格拉乌斯(Glaucus)复活了。一种无毒的泛地中海蛇,埃斯库拉皮亚蛇(Zamenis longissimus)就是以该神命名。
他最初被称为赫皮乌斯 Hepius ,但在他治愈了眼睛患有不治之症的埃皮达罗斯的统治者阿瑟尔斯Ascles后,得到了他的流行名字阿斯克勒庇俄斯。阿斯克勒庇俄斯作为一个治疗者变得如此精通,以至于他超越了Chiron和他的父亲阿波罗。因此,阿斯克勒庇俄斯能够躲避死亡,并将他人从死亡边缘或更远的地方救活过来。这引起了人类的涌入,''宙斯为了维持人类数量的平衡,不得不杀死他''。
!! 死亡
阿斯克勒庇俄斯曾经开始让丁达勒斯(Tyndareus)、卡帕努斯(Tyndareus)、格劳库斯(Tyndareus)、希米奈斯(Tyndareus)、利库古斯(Tyndareus)等死人复活。还有人说他应阿耳特弥斯的要求让[[西波吕托斯(Hippolytus)|希波吕托斯 Hippolytus]]起死回生,并为此接受了黄金。这是唯一提到的阿斯克勒庇俄斯复活死人的情况。在所有其他的记载中,他被说成只是作为一个医生使用他的技能。
然而,哈迪斯指责阿斯克勒庇俄斯偷走了他的臣民,并向他的兄弟宙斯抱怨。 根据其他人的说法,__宙斯害怕阿斯克勒庇俄斯将复活的艺术也传授给其他人类__。''所以他用雷电杀死了阿斯克勒庇俄斯。这激怒了阿波罗,他又杀死了为宙斯制造雷电的独眼巨人。''因为这一行为,宙斯将阿波罗驱逐出奥林匹斯山 ,并命令他为塞萨利国王阿德米特斯服务一年。
''阿斯克勒庇俄斯死后,宙斯将他的尸体放在星星中,成为蛇夫座 Ophiuchus ("蛇夫座")''。
[img[https://upload.wikimedia.org/wikipedia/commons/thumb/9/98/Asklepios_-_Epidauros.jpg/640px-Asklepios_-_Epidauros.jpg?1625121681133]]
[img height=200 [https://upload.wikimedia.org/wikipedia/commons/thumb/e/e3/Rod_of_Asclepius2.svg/320px-Rod_of_Asclepius2.svg.png?1625122350258]]
!! 应用
[img height=200 [世卫组织|https://upload.wikimedia.org/wikipedia/commons/thumb/8/89/Flag_of_WHO.svg/1024px-Flag_of_WHO.svg.png?1625122410025]]
[img height=200 [紧急服务部门的生命之星|https://upload.wikimedia.org/wikipedia/commons/thumb/5/5b/Star_of_life2.svg/320px-Star_of_life2.svg.png?1625122460941]]
|!父母 |[[天空之神乌拉诺斯 Uranus]] and [[🌍大地女神盖亚 Gaea]] |
|!配偶 |[[⚡天神宙斯 Zeus]] |
<a href="https://www.wikiwand.com/en/Themis">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/5/50/0029MAN-Themis.jpg/440px-0029MAN-Themis.jpg"
caption:"Themis of Rhamnous, Attica, by the sculptor Chairestratos, c. 280 BCE"
width:"300px"
align:"right"
tooltip:"">>
</a>
!! Offspring
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
<a href="https://www.wikiwand.com/en/Forseti">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/3/37/AM_738_4to%2C_39v%2C_BW_Forseti.jpeg/340px-AM_738_4to%2C_39v%2C_BW_Forseti.jpeg"
caption:"Forseti, 1680"
width:"300px"
align:"right"
tooltip:"">>
</a>
他是[[光明之神巴德尔 Baldr]]和[[南娜 Nanna]]之子。是真理与正义之神。他的宫殿名为''格利特尼尔Glitnir,意即“闪耀、光亮”'',因为此殿有著银色的屋顶和金色的柱子,散发著光芒,即使在远处也看得到。
在北欧诸神中,这位神祇并没有在诸神的黄昏被提及,似可解释他是一个不喜战斗的和平之神。
他出生之后,就被认为是[[北欧十二主神之一|Nordic Twelve Gods]]。他的职务和[[🛡️战神提尔 Tyr]]是相对的,提尔主持的是有关''流血斗争的纷争'';而凡赛堤则是对需要''调解的事务提出仲裁''。
他是诸神中最聪明正直、善雄辩的一位,他的判决也绝对公正,没有人能违抗他的判决,违抗者将得到他正直不私的处罚──死亡。所以最重要的誓言,常是指著他的名义发下的。
传说他也是古代的''弗里西亚人''最主要的神或是祖先。另有说法指出,佛尔塞提可能是由''弗里西亚人''原先信仰的神明演变过来的。
一般认为,巴德尔是个在仲裁纷争时没有决断力的神,因此借用了原为会议守护之神的神名,成为''巴德尔''的儿子,最后纳入北欧神话中,成为真理与正义之神。
奥丁,意为“''狂暴者''”,是北欧神话阿萨神族的主神,传说为五十岁左右,身材高大,''失去一目'',头戴宽边帽,冰冷又严肃的人物。
|标志 |渡鸦 |
|武器 |[[冈格尼尔 Gungnir]] |
|坐骑 |[[🐴八脚马史莱普尼尔 Sleipnir]] |
''星期三''被认为是奥丁的日子,Wednesday一词正是由''古英语Wōden''得名。
正妻是北欧神话中拥有最高神级的女神[[众神之母弗丽嘉 Frigga]],与其生有三个儿子,[[光明之神巴德尔|光明之神巴德尔 Baldr]]和[[黑暗之神霍德尔|黑暗之神霍德尔 Hoder]]。
!! 奥丁的能力和称呼
奥丁因为在一场与原战神提尔的战斗中获胜因而获得 ''“战神”、“战争之神”、“胜利之神”、“军队指挥者”''。所以战争也被称作“奥丁的愤怒”、“暴风雨”。
手持“冈格尼尔”的奥丁,也是“风暴之神”、“矛主”。日耳曼人相信,奥丁会领著亡灵在天空飞翔,所以暴风就是奥丁带来的死亡之风。而当奥丁挥舞手中的枪时,在人们眼里看到的就是''闪电''。他也有几个和风有关的名字:“漂泊者”、“吵闹的男人”、“远行的人”。
他很少参加战斗,却是战略家,利用计谋战胜敌人。奥丁常因为一己之好,随意的给予战争某一方胜利,即使是原先支持的一方,也随时会被他抛弃而战败。一说法是奥丁会让伟大的战士死亡,让战士的灵魂进入英灵殿,这是为了替诸神的黄昏培养强大的兵力。
由于他有引导死亡灵魂的能力,所以也是''“死者之神”、“选战士的人”、“亡灵之王”'',帮助他在战场中接引亡魂的就是奥丁的婢女──[[⚔️女武神瓦尔基莉 Valkyries]];日耳曼人也称他是“粗野的猎人”、“疯狂的军人”;他同弗蕾亚分享那些最勇敢的英灵。
为了获得知识,奥丁曾以一只眼睛换得喝一口[[⛲密米尔之泉(智慧之泉) Mímisbrunnr]]的泉水,所以他也是“知识之神”。''由于独眼,所以又被称为“独眼龙”、“单眼的男人”'',为了遮蔽他的独眼,他会戴上一顶宽边的帽子,所以也有“戴著宽边帽的男人”称呼。
另外,他也曾倒吊在[[🌲世界之树 Yggdrasil]]上,以矛刺伤自己,进而发现了卢恩字母。所以也有“吊神”、“绞刑台之王”的称呼。
他用计偷喝了以人类“[[🍯智慧体克瓦希尔 Kvasir]]”——诸神创造出来的智者——的血酿成的蜂蜜酒,而成为“''诗歌之神''”。世界因此产生歌唱、语言等行为。
他也擅长法术和化身术,也有人说他是偷学自华纳神族派遣来的人质[[女战神弗蕾亚 Freyja]]。但由于故事中常可见他施展法术,所以也是''“法术之父”、“千面神”、“老迈的法术家”''。
由于众神大多出于祂,又称为''“众神之父”(/Aldafodur/Alfodur)''。
!! 奥丁的宝物
* [[冈格尼尔 Gungnir]]:奥丁左手所持有的长枪,当奥丁掷出时,会发出划越空际的亮光,地上的人称之为“闪电”,这枝枪投出后必定命中。这枪是神圣的,一但对着此枪发誓,便不能再反悔。
* [[𓏌戒指德罗普尼尔 Draupnir]]:戒指,财富的象征,这戒指每隔九天便会自行复制八个出来。
* [[🐴八脚马史莱普尼尔 Sleipnir]]:奥丁的座骑,毛白胜雪,有八只脚,是神骏的天马。这只天马''据说是由洛基化身的母马与巨人之马史瓦帝法利所生的''。
* 奥丁双肩上栖息着''两只乌鸦'',分别是代表“''思维''”的''福金''及代表“''记忆''”的''雾尼'',祂们是''奥丁的眼线'',会将每日所见的物向主人报告,当别的神祇饮宴时,奥丁便思索“思维”和“记忆”告诉祂的话。
* ''狼'':分别是代表贪欲的''基利''及代表饥饿的''库力奇''。
* 其宫殿被称作“金宫”。
! 众神之王/天空之神
{{zeus.mp3}}
|!父母 |[[天后瑞亚 Rhea]] and [[🌾丰收之神克洛诺斯 Cronus]] |
|标志 |霹雳、鹰、公牛、橡树 |
|对应罗马神 |Jupiter |
|对应挪威神 |[[⚒️雷神托尔 Thor]] |
|对应斯拉夫神 |Perun |
|对应印度教神 |Indra |
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/c/c8/Jupiter_Smyrna_Louvre_Ma13.jpg"
caption:"Zeus"
width:"300px"
align:"right"
tooltip:"Zeus">>
被母亲[[天后瑞亚 Rhea]]藏在''克里特岛''上,根据一些版本的故事,他被一只名叫''阿马尔西亚Amalthea的山羊''养大,而一群身穿盔甲的男性舞者Kouretes,用叫声和拍手声以掩盖婴儿哭声,不让''克洛诺斯''听到。
其他版本的神话中,宙斯是由仙女(nymph)''阿达曼提亚Adamanthea''抚养长大的,她把宙斯用绳子吊在树上,让他悬浮在大地、海洋和天空之间,所有这些地方都是由他的父亲''克洛诺斯''统治的。
长大后,''宙斯用[[盖亚|🌍大地女神盖亚 Gaea]]给他的催吐剂迫使克洛诺斯以相反的顺序吐出胃里的东西'':首先是石头,它被放在帕纳索斯山峡谷下的皮托,昭示凡人,然后是他的两个兄弟和三个姐妹。在这个故事的其他版本中,[[墨提斯|墨提斯 Metis]]给克洛诺斯一种催吐剂,迫使他把孩子们吐出来。
在释放了他的兄弟姐妹后,宙斯__释放了[[百臂巨人|百臂巨人 Hecatoncheires]]和[[独眼巨人|👁️独眼巨人 Cyclopes]]__,''后者为他铸造了雷电、波塞冬的三叉戟和哈迪斯的[[隐形头盔|哈迪斯之帽/隐形帽 Cap of invisibility]]''。
在一场被称为'' "[[泰坦之战(Titanomachy)|Titanomachy 泰坦大战]] "''的大规模战争中,宙斯和他的哥哥姐姐们在百臂巨人和独眼巨人的帮助下,__推翻了''克洛诺斯''和其他泰坦__。
之后,许多泰坦被禁锢在[[塔尔塔罗斯 Tartarus|😈地狱塔尔塔罗斯 Tartarus]](地狱底下的深渊)。然而,[[🌊大洋之神俄刻阿诺斯 Oceanus]]、[[☀️太阳神赫利俄斯 Helios]] 、[[阿特拉斯 Atlas]] 、[[🪔普罗米修斯 Prometheus]]、[[厄庇墨透斯 Epimetheus]] 和[[墨诺提俄斯 Menoetius]] 在泰坦之战后没有被囚禁。盖亚生下了怪物[[泰丰 Typhon|🌪️提丰 Typhon]],为被囚禁的泰坦们报了仇。
泰坦之战后,宙斯和哥哥[[波塞冬|🔱海神波塞冬 Poseidon]]及[[哈迪斯|💀冥王哈迪斯 Hades]]通过抽签的方式分享了世界:
* ''宙斯得到天空和空气''
* ''波塞冬得到水''
* ''哈迪斯得到冥界''
盖亚憎恨宙斯对待泰坦的方式,因为他们是她的孩子。在登上众神之王的宝座后不久,宙斯就不得不与盖亚的其他一些孩子,怪物''提丰(Typhon)''和[[艾奇德娜(Echidna)|🐍厄客德娜 Echidna]]战斗。他征服了提丰并将他困在埃特纳火山下,但让''艾奇德娜''和她的孩子们活下来了。
!! 人类洪水
当宙斯在奥林匹斯山顶上时,他对人类的牺牲和其他人类的颓废迹象感到震惊。他决定消灭人类,并在其兄弟''波塞冬''的帮助下淹没了整个世界。洪水过后,只剩下[[丢卡利翁 Deucalion|丢卡利翁 Deucalion]] 和皮拉 Pyrrha 。这种洪水叙事是神话中常见的主题。
!! 宙斯的变身
有过9次婚姻。
|爱人 |伪装 |h
|[[埃伊纳 Aegina|埃吉娜 Aegina]] |鹰或火焰 |
|阿尔克烯 Alcmene |安菲特里翁 Amphitryon |
|安蒂奥普 Antiope |一个[[satyr|萨堤尔 satyr]](一种男性自然精灵,有类似于马的耳朵和尾巴,以及永久性的、夸张的勃起) |
|阿索皮斯 Asopis |一团火 |
|卡利斯托 Callisto |阿尔忒弥斯 Artemis |
|卡西奥佩娅 Cassiopeia |腓尼基 Phoenix(Cassiopeia的丈夫) |
|[[达那厄 Danaë|达那厄 Danaë]] |金雨 |
|[[欧罗巴 Europa|欧罗巴 Europa]] |一头公牛 |
|欧律美杜莎 Eurymedousa |蚂蚁 |
|加尼米德 Ganymede |一只鹰 |
|[[赫拉 Hera|天后赫拉 Hera]] |一只杜鹃 |
|伊曼德拉 Imandra |淋浴 |
|拉米亚 Lamia |一只小鸡 |
|[[丽达 Leda|Leda]] |一只天鹅和一颗星星 |
|曼西娅 Manthea |一只熊 |
|摩涅摩绪涅 Mnemosyne |牧羊人 |
|[[涅墨西斯 Nemesis|复仇女神涅墨西斯 Nemesis]] |一只鹅 |
|[[珀尔塞福涅 Persephone|珀尔塞福涅 Persephone]] |一条蛇 |
|[[塞梅勒 Semele|塞墨勒 Semele]] |一场火(a fire) |
|[[塔利亚 Thalia|美惠三女神 Kharites/Charites/Graces]] |秃鹫 |
[[🌍大地女神盖亚 Gaea]]第一批小孩中的一个。
是北欧神话中的圣域之一。
乌尔达泉位于[[🌲世界之树 Yggdrasil]]深入神域[[亚萨神国阿斯加特 Asgard]]的一条巨大树根旁边。
接近诺伦三女神(兀儿德、薇儿丹蒂、诗寇蒂)所居住的宫殿。并以诺伦三女神之首''兀儿德''来命名。''她们在世界之树上刻下所有人类的命运。''
密米尔之泉,Mímisbrunnr 。北欧神话中的智慧之泉,座落于[[巨人之国尤腾海姆 Jotunheim]],[[🌲世界之树 Yggdrasil]]的第二根树根边。
据说只要喝上一口泉水就能得到智慧,看守此泉的是密米尔(Mimir)。
[[⚡众神之父奥丁(神圣) Odin]]曾为了获得智慧而来到水泉边,并以自己的''右眼''作为交换。喝下泉水后的奥丁获得了世间的知识,但知识的重担也让奥丁从此没有了笑容。
赫瓦格密尔(Hvergelmir)是太古时代永远的微光诞生的一股不竭之泉,意即「沸腾的大锅」(The seething cauldron)。
此泉位于[[雾之国尼弗尔海姆 Niflheim]],源源不绝的泉水供应著12条大河,这12条河被合称为「''埃利伐加尔」(Elivagar,“Ice Waves”)'',而''「维穆尔」(Vimur)''就是其中最大的一条河。据说由此流出的河里面有一条河的水中含有剧毒,最初的巨人血液中含有这种毒,因此巨人都是邪恶的。
除此之外,[[🌲世界之树 Yggdrasil]]的三个分根之一也著根于此。有一只毒龙名为[[🐉尼德霍格 Nidhogg]]不停地啃噬生命之树的根。
12条河是:
# Vimur 维穆尔
# Svöl
# Gunnthrá
# Fjörm
# Fimbulthul
# Slíd
# Hríd
# Sylgr
# Ylgr
# Víd
# Leiptr
# Gjöll 吉欧尔(冥河)
"Ring-horn", "Ship with a circle on the stem.",巴德尔的葬船,所有船只中最伟大的一艘。由于众神无法亲自下水,他们寻求女巨人希罗金(Hyrrokkin,“Fire-withered”)的帮助。她走到船边,轻轻一推,船就浮了起来,但运动是如此剧烈,以至于滚筒上的火光闪烁,四周的大地都在摇晃,这让托尔非常恼火。随后,巴德尔的尸体被抬到船上的火葬场。
这个仪式对 Baldr 的妻子 Nanna 产生了巨大的影响,以至于她悲痛而死,她的尸体和她丈夫的尸体被放在同一个火堆上焚烧。托尔随后站起身来,用[[🔨妙尔尼尔(雷神之锤) Mjölnir]]焚烧了火堆,''并在仪式中将一个名叫利特尔(Litr)的矮人踢进了火堆''(?)。奥丁将戒指 "[[德罗普尼尔|𓏌戒指德罗普尼尔 Draupnir]] "放在火堆上。最后,鲍德尔的战马披挂整齐地被牵到火堆前,与主人的尸体一同葬身火海。
''背叛者犹大''
|!标志 |斧子、棍棒、船、浆、纪念章 |
|!主保 |亚美尼亚;失落的事业;绝望的处境;医院;佛罗里达州圣彼得堡;科塔;芝加哥警察局;弗拉门戈俱乐部(位于巴西里约热内卢);菲律宾的一些地方(奎松的卢塞纳、安提瓜的西巴洛姆和卡维特的特雷塞马蒂雷斯);以及西纳加纳(位于关岛) |
<a href="https://www.wikiwand.com/en/Judas_Iscariot">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/4/4b/%C3%9Altima_Cena_-_Da_Vinci_5.jpg/1920px-%C3%9Altima_Cena_-_Da_Vinci_5.jpg"
caption:"[[The Last Supper (Leonardo)|https://www.wikiwand.com/en/The_Last_Supper_(Leonardo)]] c. 1495–1498"
width:"auto"
align:"center"
>>
</a>
加略人犹大(,希伯来语:יהודה איש-קריות;阿拉姆语:ܝܗܘܕܐ ܣܟܪܝܘܛܐ;圣经希腊语: Ἰούδας Ἰσκαριώτης),又称''犹大、背叛者'',天主教翻译为依斯加略的犹达斯、加略人西门之子。
本名犹大·伊哈略(Juda Ihariot)《新约》中是耶稣最初的十二使徒之一。受犹太公会三十块银钱贿赂亲吻并背叛耶稣。他的名字常用来指代背叛。
虽然犹大的死法有很多说法,传统上认为他背叛后自绞,如《马太福音》中记载。他在十二使徒中的地位日后由马提亚替代。
虽然犹大在福音书中臭名昭著,但在基督教历史上颇有争议。例如,犹大的背叛导致耶稣受难以及之后的复活,从传统神学上讲耶稣死而复活为全人类带来拯救。而异端诺斯底主义则认为犹大为人类带来救赎,称赞他是''最佳使徒''。
!! 圣经有关的叙述
!!! 作为使徒
犹大在对观福音、约翰福音和使徒行传开头提及。而犹大在新约时期是个非常普遍的俗名,因此不应将加略人犹大与十二使徒中的犹达·达陡或犹大·多马混淆。
马太、马可和路加福音称耶稣派出“十二”(包括犹大)能够战胜邪灵、医病的使徒去传道:很明显,犹大和其余十一使徒一道行动。奥利振在评论《约翰福音》时认为犹大在背叛之前和其他使徒一样都是自信十足。然而,在约翰福音中,犹大形象与他人不同,由于讲道深奥难懂,许多门徒不再跟随耶稣,耶稣就问十二门徒要不要退出。西门·彼得代表发言:“主阿、你有永生之道、我们还归从谁呢。”但耶稣看了看后称其中一位是“魔鬼”。
马太对犹大背叛直言受贿“''三十块银钱''”,用亲吻来向大祭司该亚法打报告,犹太公会随即将耶稣转交给犹太行省的罗马帝国总督本丢·彼拉多。
《马可福音》称祭司长想要逮捕耶稣,但因怕生乱不敢在逾越节期间下手。于是,他们在节日前趁天黑捉人。据路加记录,此时魔鬼进入犹大的心。
据《约翰福音》记录,犹大拿着使徒的钱袋子(希腊语:, glōssokomon),但没有提及三十银钱的事情。福音书作者就《约翰福音》第12章第5节至第6节参评论称犹大说要给穷人施舍,但事实上他自己贪污。但在《约翰福音》第13章第27节至第30节参中,犹大离开大家前去密谋,一些门徒以为犹大是去买东西或做慈善。
!!! 犹大之死
对犹大死法的叙述各不相同,包括两部正典之间存在差异:
* 《[[马太福音 Gospel of Matthew c.41]]》第27章第3节至第10节参中称犹大看到耶稣被定罪,后悔出卖耶稣,把钱还给祭司,随后''上吊自杀''。祭司用钱购买窑户的一块田,用来埋葬异乡人。所以那块地叫做“血地”。福音书称这样满足了先知的预言。([[撒迦利亚书 Book of Zechariah 518 BC]] 11:7)
* 《[[使徒行传 Acts of Apostles c.61]]》第1章第18节至第19节参中称犹大用这些钱买了一块地,但“''身子仆倒、肚腹崩裂、肠子都流出来''”。这片地叫亚革大马、就是“血田”。
* 伪经《犹大福音》称犹大看到使徒们''拿石头砸他的幻象''。
* 另一个记录来自早期基督教领袖帕皮亚:“犹大在世是不虔诚的反面例子;他的身体膨胀之大以至于二轮战车能过的都过不去,他''被战车碾死'',内脏都流了出来。”
犹大之死现存记录之间相互矛盾让一些学者担忧,认为这是威胁了经文的可靠性。例如,这些问题让C·S·刘易斯反对“经文所有的话都是历史事实”的观点。
另一些人试图协调线索。通常,他们采取奥古斯丁的解释,认为这不过是同一事件不同的视角:犹大上吊自尽,绳子断了,摔破身体;或者说《使徒行传》和马太说的是两回事。一些人则认为这是比喻:“身子仆倒”是犹大的痛苦,“肚腹崩裂”是精神崩溃。
!! 代表和象征
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/9/94/Judas_Iscariot_in_Stained_Glass_Depiction.jpg/440px-Judas_Iscariot_in_Stained_Glass_Depiction.jpg"
caption:"约维尔施洗圣约翰教堂的犹大头顶黑洞"
width:"300px"
align:"left"
>>
犹大在许多语言中成了''叛徒的同义词'',犹大也成了西方文学中叛徒的原型。几乎所有提及犹大的文学都会讲述耶稣受难的故事,包括现代小说和电影。
在东正教神圣周三的圣诗中(在复活节前的周三),一位妇女用昂贵的香水膏抹耶稣,并含泪给他洗脚,犹大与她做了对比。据《约翰福音》,犹大抗议奢靡浪费,认为应该赒济穷人。随后犹大受贿,向大祭司告发。神圣周三的圣诗对比二人,鼓励信徒远离堕落门徒,学习玛丽的忏悔。同时,周三也是斋戒日,禁戒肉、奶或橄榄油等来反思犹大的背叛。准备接受圣餐礼的祷告也提及犹大的背叛:“我不会向敌人告发你的秘密,也不会像犹大那样用亲吻来背叛,但要像十字架上的小偷那样向你忏悔。”
加略人犹大在西班牙文化中和威廉·莎士比亚笔下常以''红发''出现。文艺复兴时期常将犹太人描述为红发,这两种习俗有些类似,常常将加略人犹大和当代犹太人相贬低。
在描绘最后的晚餐中,犹大常常''头顶黑洞(其它使徒顶上生辉)''来强调他原来的使徒身份。更常见的是坐席上唯独犹大头上暗淡无光。在一些教堂的花窗玻璃上,犹大也常常头顶黑洞,如约维尔施洗圣约翰教堂的一块玻璃窗。
|!标志 |双生子,将手指放在基督的侧面,荷花,矛(他的基督教殉道的手段),方形(他的职业,建筑商) |
|!主保 |建筑师,为印度(包括圣托马斯基督徒和马德拉斯-米拉波尔大主教管区)、泰米尔纳德邦、斯里兰卡和普拉(克罗地亚)的基督徒服务 |
<a href="https://www.wikiwand.com/en/Thomas_the_Apostle">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/Rubens_apostel_thomas.jpg/440px-Rubens_apostel_thomas.jpg"
caption:"St Thomas (c. 1611) by ''Peter Paul Rubens'', "
width:"400px"
align:"right"
>>
</a>
多马(天主教称多默),又称“低土马”(意即“''双生子''”),耶稣十二门徒之一。
近年有学者提出多马为耶稣的孖生兄弟的论述,但相关说法仍有待考证。《对观福音》和《[[使徒行传 Acts of Apostles c.61]]》把他列在门徒名单上(《马太福音》第10章第3节、《马可福音》第3章第18节、《路加福音》第6章第15节),但有关资料不多,对他的叙述集中在[[约翰福音 Gospel of John c.98]]。
!! 事迹
<a href="https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%A4%9A%E9%BB%98%E7%9A%84%E6%80%80%E7%96%91%20(%E5%8D%A1%E6%8B%89%E7%93%A6%E4%B9%94)%20The%20Incredulity%20of%20Saint%20Thomas%20(Caravaggio)%201601-1602:%5B%5B%E5%A4%9A%E9%BB%98%E7%9A%84%E6%80%80%E7%96%91%20(%E5%8D%A1%E6%8B%89%E7%93%A6%E4%B9%94)%20The%20Incredulity%20of%20Saint%20Thomas%20(Caravaggio)%201601-1602%5D%5D">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/e/e0/Caravaggio_-_The_Incredulity_of_Saint_Thomas.jpg"
caption:"The Incredulity of Saint Thomas by [[Caravaggio"
width:"400px"
align:"left"
>>
</a>
约翰福音数次提到他。在拉撒路刚死去,耶稣对门徒说,要再往犹太地去,门徒即表示那将是危险的行程(《约翰福音》第11章第7-8节),因为之前犹太人曾想用石头打死他。当耶稣表明坚决之态度后,多马向其他使徒说:“我们也去和祂同死吧!”(约翰福音11:16)
当耶稣在最后晚餐向门徒明示自己将要离去,并向门徒保证自己必再来接门徒到所预备的地方同住,同时又说这条路门徒是知道的(《约翰福音》第14章第1-4节),而多马抗议他们不知道。(《约翰福音》第14章第5节),耶稣就此说了一段详细而难明有关他与上帝关系的道。
多马最为人知在《约翰福音》第20章第24-25节,他怀疑耶稣复活,表示要摸到他的伤口才相信真有其事,而耶稣亦显示了其身上的伤痕证实自己复活。在看到活著的耶稣后,他宣告对耶稣的信心,耶稣亦称他为信徒。
''耶稣第一位门徒''
|!标志 |长白发白胡须的老者,手持福音书或卷轴,倚靠于圣安德鲁十字上 |
|!主保 |俄罗斯,乌克兰 ,''苏格兰'', 西西里岛 , 希腊 , 罗马尼亚 , 教区, 菲律宾 , 阿马尔菲 , Luqa ( 马耳他 )和普鲁士; 维多利亚教区 ,陆军游骑兵,''水手,渔民,鱼贩,绳制造商,歌手,高尔夫球和表演'' |
<a href="https://www.wikiwand.com/en/Andrew_the_Apostle">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/5/53/Rubens_apostel_andreas_grt.jpg/440px-Rubens_apostel_andreas_grt.jpg"
caption:"Saint Andrew (c. 1611) ''Peter Paul Rubens'', depicting Peter"
width:"400px"
align:"right"
>>
</a>
安得烈,耶稣基督的''第一位门徒''。被普世圣公宗称为''首召者''。也是耶稣的十二使徒之一,[[✝️彼得 Saint Peter]]的兄弟;相传在希腊被钉X型十字架而死。为俄罗斯、罗马尼亚和苏格兰的主保圣人。相传为第一任拜占庭主教,即后来的普世牧首。在正教会中被称为Πρωτόκλητος (Protokletos, 普罗托克列托斯),意为第一个受召者,第一门徒。
安得烈生于位于加利利海边城镇(《约翰福音》1:44)。由于他是''犹太人'',安得烈这个希腊化的名字肯定不是他的原名,但其希伯来文或亚兰文名字并未流传。
他曾是施洗约翰的门徒,也是''耶稣第一个门徒''(《约翰福音》1:37-40)。在见到耶稣后,把耶稣的事告诉了哥哥''彼得''。他住在迦百农(《马可福音》1:29)。在福音书曾有数个重要场合他被指认为和耶稣较亲密的门徒。 (《马可福音》13:3;《约翰福音》6:8,12:22);《使徒行传》只提过他一次。
安得烈是个''喜欢领人认识''主耶稣的人。圣经中三次提到他,都是提到他怎样把人带到主耶稣面前。
公元10世纪中期,传说有数件安得烈的圣物被带到苏格兰,安放在今天的小镇圣安德鲁斯。安得烈从此成为''苏格兰的主保圣人''(也成为苏格兰国旗)。
''升天见证人''
|!标志 |刀和他剥下的皮,殉道者 |
|!主保 |亚美尼亚;订书者bookbinders;屠夫;佛罗伦萨的奶酪和盐商;卡特巴洛甘;甘巴泰萨,意大利;Għargħur,马耳他;神经疾病;制鞋者;泥瓦匠;矿坑通风口管理员;颤搐;漂布者 |
<a href="https://www.wikiwand.com/en/Bartholomew_the_Apostle">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Rubens_apostel_bartolomeus_grt.jpg/440px-Rubens_apostel_bartolomeus_grt.jpg"
caption:"St Bartholomew (c. 1611) by ''Peter Paul Rubens'', "
width:"400px"
align:"right"
>>
</a>
巴多罗买或译巴托罗缪(天主教译为巴尔多禄茂),是耶稣十二门徒之一。 巴多罗买一名(希腊文“Βαρθολομαίος”,转写为“Bartholomaios”)源于亚兰文,意即“''多罗买之子''”。一般相信他就是拿但业。在对观福音马太、马可和路加中腓力和巴多罗买常联在一起而没提过拿但业,而[[约翰福音 Gospel of John c.98]]刚好相反。
除了是十二门徒,巴多罗买被列为升天见证人(使徒行传1:4,12,13)。
!! 事迹
据说耶稣升天之后,巴多罗买带着马太到印度传教。传说他在亚美尼亚传道时,被钉在十字架上殉道。
巴多罗买和达陡号称在1世纪把基督教带到了亚美尼亚。因此亚美尼亚国教被称作亚美尼亚使徒教会,并且,他们被认为是教堂的守护圣人。
''天主教首位教宗''
|!标志 |天国的钥匙,红色殉道者,披肩,教皇法衣,拿着一本书或卷轴的倒钉在十字架上的使徒,[[圣彼得十字架|圣彼得十字架 Cross of Saint Peter]]|
|!主保 |[[Patronage|https://www.wikiwand.com/en/Saint_Peter#Patronage]] |
<a href="https://www.wikiwand.com/en/Saint_Peter">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/2/2d/Pope-peter_pprubens.jpg/440px-Pope-peter_pprubens.jpg"
caption:"Saint Peter (c. 1610–1612) by ''Peter Paul Rubens'', depicting Peter, vested in the pallium, and holding the Keys of Heaven"
width:"400px"
align:"right"
>>
</a>
全名“''西门彼得''”,''渔夫'',耶稣为他起名“矶法”,翻译出来就是“彼得”,意为磐石;天主教视为首位教宗。
他有两封书信被收入新约圣经,另外,撰写[[马可福音 Gospel of Mark c.61-65]]的马可是他的门徒。
天主教会认为他建立了罗马教会,是''罗马教会的第一位主教'',也追认他为天主教会第一任教宗。''基督新教则认为这个说法没有证据''。
按照《新约圣经》记载,彼得是加利利海边的一位渔夫,本名西门天主教中文译西满(希腊语:),由兄弟安德肋带领认识耶稣。耶稣给他改名为矶法天主教中文译刻法(希腊语:),即亚兰文“磐石”的意思,翻译成彼得,又称伯多禄。他开始跟随耶稣,承认耶稣是神之子,是耶稣最亲近的门徒之一,耶稣曾说将天国之钥给予彼得,故彼得被尊为“第一门徒”。
<<card
text:"
耶稣来到凯撒里亚腓立比城附近,就问门徒:“人们说人子是谁?” 他们说:“有的说是施浸者约翰,有的说是以利亚,还有的说是耶利米或先知中的一位。”
<br><br>
耶稣对他们说:“你们呢?你们说我是谁?” ''西门·彼得''回答说:“你是基督,是真神的儿子。”
<br><br>
耶稣就对他说:“约拿的儿子西门,你是有福的,因为使你知道这件事的,不是血肉之躯,而是我的天父。 我又告诉你,你是彼得,在这块磐石上,我要建造我的会众。这会众不会被囚禁在坟墓的门内。 我要赐给你天上王国的钥匙。凡是你在地上捆绑的,都是天上已经捆绑的;凡是你在地上解开的,都是天上已经解开的。” 然后他郑重地吩咐门徒,不要向任何人说他是基督。
"
footer:"Matthew 16:13"
>>
且四福音中对十二门徒的记载,也以彼得最多。
最后的晚餐时,[[🧔🏻♀️耶稣 Jesus c.4 BC-33]]预言自己死后门徒都会离弃他,彼得说他不会,耶稣说“我实在告诉你,在今天晚上,鸡叫以前,''你会三次不认我''。” ''彼得''对他说:“即使我必须跟你一起死,也绝不会不认你。” 其他的门徒也全都说了同样的话。(Matthew 26:34)
耶稣被捕以后,他失去信心,别人问他是否是耶稣的门徒,他三次否认,正如耶稣预言的一样。耶稣复活以后,他重新坚定信心。耶稣升天以后,他开始讲道,传讲福音,他大传耶稣是救世主、也就是弥赛亚,也就是基督的好消息,并成为基督教会的领导人。
按照教会传统说法,他后来在尼禄逼迫基督教的时候到了罗马传福音,不久之后殉道。据传官府应他的要求将其''倒钉十字架''而死,因为他认为自己不配像耶稣一样端正地钉十字架。
在耶稣复活又升天以后,''彼得''成为门徒中的领导,开始建立教会。''彼得、约翰与主的兄弟雅各,被称为教会的__三大柱石__''。
彼得是保罗在教会中最初的支持者,他们彼此都很支持。''保罗''的主要事工对象是罗马帝国境内的外邦人,就是''非犹太人'',使基督教得以在罗马帝国中传播。彼得的主要事工对象可能是''犹太人''。
''保罗''曾经直言不讳地批评过彼得“在守割礼的犹太人面前‘装假’”,但彼得在去世前不久的书信中仍然非常推崇保罗。
|!标志 |斧子、棍棒、船、浆、纪念章 |
|!主保 |亚美尼亚;失落的事业;绝望的处境;医院;佛罗里达州圣彼得堡;科塔;芝加哥警察局;弗拉门戈俱乐部(位于巴西里约热内卢);菲律宾的一些地方(奎松的卢塞纳、安提瓜的西巴洛姆和卡维特的特雷塞马蒂雷斯);以及西纳加纳(位于关岛) |
<a href="https://www.wikiwand.com/en/Simon_the_Zealot">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/4/4f/Anthonis_van_Dyck%2C_%2C_Kunsthistorisches_Museum_Wien%2C_Gem%C3%A4ldegalerie_-_Apostel_Judas_Thadd%C3%A4us_-_GG_6809_-_Kunsthistorisches_Museum.jpg/440px-Anthonis_van_Dyck%2C_%2C_Kunsthistorisches_Museum_Wien%2C_Gem%C3%A4ldegalerie_-_Apostel_Judas_Thadd%C3%A4us_-_GG_6809_-_Kunsthistorisches_Museum.jpg"
caption:"The Apostle Judas Thaddeus by [[Anthony van Dyck|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%AE%89%E4%B8%9C%E5%B0%BC%C2%B7%E5%87%A1%C2%B7%E6%88%B4%E5%85%8B%20Anthony%20van%20Dyck%201599-1641:%5B%5B%E5%AE%89%E4%B8%9C%E5%B0%BC%C2%B7%E5%87%A1%C2%B7%E6%88%B4%E5%85%8B%20Anthony%20van%20Dyck%201599-1641%5D%5D]]"
width:"300px"
align:"right"
>>
</a>
圣犹达,是耶稣的十二门徒之一,他亦被称为圣达陡。因此他也被称为犹大·达太(''Jude Thaddaeus'',或''Judas Thaddaeus'')或犹大·利贝乌(''Jude Lebbeus''、''Judas Lebbeus'')。有时,他被认作“耶稣的兄弟”犹大。应当注意的是,''他不是出卖耶稣的加略人犹大''。
圣犹达的象征是''棍棒''。在圣像中,他的头顶常围绕着火焰。犹达的另一个象征是他握着''曼德兰基督圣像''。有些场合中,犹达会拿着一支''卷轴、书本'',表明他是公函犹大书的作者。还有就是拿着''木匠的尺''。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/f2/Saint_Tadeos_Glxavor.jpg/440px-Saint_Tadeos_Glxavor.jpg">
<div class="desc"><a href="https://www.wikiwand.com/en/Saint_Thaddeus_Church,_Masis">Saint Thaddeus Church, Masis, 2015</a></div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Thaddeus_San_Giovanni_in_Laterano_2006-09-07.jpg/440px-Thaddeus_San_Giovanni_in_Laterano_2006-09-07.jpg">
<div class="desc">Statue of St. Jude in the Archbasilica of St. John Lateran by Lorenzo Ottoni</div>
</div>
</div>
''《启示录》作者''
|!标志 |书,圣餐杯中的蛇,大锅,鹰 |
|!主保 |作者,被下毒者,神学家,出版商,书商,编辑,友谊,画家 |
<a href="https://www.wikiwand.com/en/John_the_Apostle">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/7/79/Rubens_apostel_johannes_grt.jpg/440px-Rubens_apostel_johannes_grt.jpg"
caption:"St John (c. 1611) by ''Peter Paul Rubens'', "
width:"400px"
align:"right"
>>
</a>
约翰,天主教汉译若望,耶稣十二门徒之一。传统上认为,约翰是《新约》中《[[约翰福音|约翰福音 Gospel of John c.98]]》、三封书信和《[[启示录|启示录 Book of Revelation c.96]]》的执笔者,''被认为是耶稣所爱的门徒''。在天主教和东正教都公认他为圣人,其圣日为12月27日。
!! 事迹
# 蒙召成为使徒——根据《圣经》记载,约翰与兄弟雅各和彼得在经历耶稣的神迹获得大量鱼获后(路加福音5:1-11),决心放下一切而应主的呼召,一生跟随耶稣。
# 转变个性:本与哥哥雅各同是性情冲动的“半尼奇”(雷电的孩子)(马可福音3:17),从后来约翰的表现和书信中经常强调爱的教训,并吩咐信徒永记“彼此相爱”的命令。 (约翰一书2:7-8)可见他在所受的教导下出现相当大的转变。当约翰在福音书叙述自己时,总不提自己的名字,只称为“主所爱的门徒”(约翰福音13:23;21:20),有人以此为约翰着重“爱”的教导的表现。
# 受耶稣的重托:在耶稣受刑之时,受托奉养耶稣的母亲玛丽亚。就在那天,把马利亚接到自己家中去。 (约翰福音19:25-27)
# 遭受逼迫——根据铁徒良的说法,约翰曾因传道而遭受严酷的逼迫,晚年更被流放拔摩岛。当他被放逐至拔摩岛时,耶稣把末后之事启示他,让他一一记录下来,写成《[[启示录|启示录 Book of Revelation c.96]]》。
|!标志 |年长且长胡须的圣徒;手持面包和[[T型十字架|T型十字架 Tau Cross]] |
|!主保 |制帽人;佛得角;糕饼厨师;圣菲利普普韦布洛;乌拉圭 |
<a href="https://www.wikiwand.com/en/Philip_the_Apostle">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/5/52/Rubens_apostel_philippus.jpg/440px-Rubens_apostel_philippus.jpg"
caption:"St. Philip, by (c. 1611) by ''Peter Paul Rubens''"
width:"400px"
align:"right"
>>
</a>
腓力,天主教汉译斐理伯(罗马天主教翻译为圣斐理伯,希腊语:, Philippos),耶稣十二门徒之一。教会传统上叙述他作为使徒,去往希腊、叙利亚和弗里吉亚传教。在天主教历法中,其瞻礼日为5月3日。
!! 事迹
在对观福音书中,除了在宗徒名单中提到腓力的名字以外,对腓力未有其他记述。
反之,[[约翰福音 Gospel of John c.98]]第一章,对于耶稣召选他的经过情形,记述如下:耶稣遇见腓力,对他说:“你跟我来吧。”腓力一听到耶稣的召唤,毫不犹豫,立即追随耶稣,做了门徒。同时他去通知了''巴多罗买''(很可能就是宗徒巴多罗买),他对巴多罗买道:“摩西在法律上所记载的,先知们所预报的,我们找着了。”也就是说耶稣是以色列人盼望的弥赛亚。巴多罗买说道:“从拿撒勒还能出什么好的吗?”腓力对他的答复是:“你来看一看吧。”
若望福音第六章记载耶稣用五饼二鱼供五千人吃饱时,他也在场。耶稣举目看见许多群众来到他前,就问腓力,“我们往哪里买饼,叫这些吃呢?”耶稣自己原知道要怎么做,说这话是为了试验腓力。腓力是心直口快的人,就回答说:“即使有两百块银币的饼,也不够他们每人分得一小块。”
之后,约翰福音第十二章记载了逾越节前不久,那些来耶路撒冷过节的人中,有几个希腊人去见他,要求引见耶稣。腓力不敢作主,便和安得烈商量,两人再去禀报耶稣。
在最后的晚餐中,耶稣对使徒们说:“我是道路、真理、生命。除非经过我,谁也不能到圣父那里去。你们认识我,也就认识了我父。现在你们已认识他,并且已看见他。”
腓力对他说:“主,把父显示给我们,我们就心满意足了。”耶稣对他说:“腓力,这么长久的时间,我和你们在一起,而你们还不认识我吗?谁看见了我,就看见了父。你怎么说:'把父显示给我们呢'?”
在图密善执政时期,为真理致命,钉死在十字架上,钉的时候,头在下,脚在上。
|!标志 |船; 十字架; 鱼(或两条鱼); 长矛; |
|!主保 |制革匠; 鞣皮匠 |
<a href="https://www.wikiwand.com/en/Simon_the_Zealot">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/b/bb/Rubens_apostel_simon.jpg/440px-Rubens_apostel_simon.jpg"
caption:"St. Simon (c. 1611) by ''Peter Paul Rubens'', "
width:"400px"
align:"right"
>>
</a>
使徒西门,在罗马天主教(思高圣经)《新约》中经常被称为热诚者西满(新教翻译为奋锐党的西门;或热烈派的西门;),也被称为迦南人西门),耶稣的十二门徒之一,基督教圣人,''是十二门徒中留下资料最少的一个''。
''第一位殉道的使徒''
|!标志 |贝壳,朝圣帽 |
|!主保 |''地区'':阿科马普韦布洛,萨瓦约,克雷塔罗,加利西亚,危地马拉,尼加拉瓜,西班牙;<br>''职业'':兽医,马术者 ,皮草制作者,皮革制作者,药剂师 |
<a href="https://www.wikiwand.com/en/James_the_Great">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e5/Peter_Paul_Rubens_-_St_James_the_Apostle_-_WGA20192.jpg/440px-Peter_Paul_Rubens_-_St_James_the_Apostle_-_WGA20192.jpg"
caption:"St James the Elder (c. 1612–1613) by ''Peter Paul Rubens'', "
width:"400px"
align:"right"
>>
</a>
西庇太的儿子雅各,是耶稣十二门徒之一,天主教称载伯德的儿子雅各伯或圣雅各伯,以区别于亚勒腓的儿子雅各。
是''西班牙、士兵、朝圣者、骑手''的主保圣人,相传其遗骨葬于''圣地亚哥-德孔波斯特拉'',通往该城的''圣雅各之路''是朝圣热点。
母亲撒罗米(撒罗默)是[[耶稣|🧔🏻♀️耶稣 Jesus c.4 BC-33]]的母亲[[马利亚|🤱🏽马利亚 Mary, mother of Jesus]](玛利亚)的妹妹,传说她在丈夫''西庇太''死后也跟随了耶稣。雅各、[[约翰|✝️约翰 John the Apostle]]两兄弟在跟随耶稣之前都曾经是施洗约翰的门徒,因脾气暴躁,两兄弟皆被耶稣称为雷霆之子。他们对于“以色列复兴”、“挣脱罗马帝国的殖民统治”以及“恢复大卫(达味)王朝的光荣”有着高度的热忱。这也是他们跟随施洗约翰或耶稣的原始动机。直到他们目睹复活的基督以后,才激发他们宣扬福音的意识与使命。
当彼得(伯多禄)把船借给耶稣用,并顺服主的指示下网,圈住许多鱼时,雅各被招呼前去帮助,把鱼装满了两条船,在惊讶之时,听见主呼召的应许:“要得人如得鱼”,他便与彼得他们一同撇下所有的,跟从主耶稣,作得人的渔夫(路加福音5章:4-11)。
!! 事迹
# ''个性的改变'':雅各本来的个性是相当猛烈如暴躁的,如有一次因撒玛利亚(撒玛黎亚)的一个村庄的人不肯接待耶稣,他就向主建议,求主从天上降火下来,烧灭这些对神的儿子侮慢的人,如古时以利亚求神用火烧死那轻慢先知的人一样(路9:51-54),所以耶稣为他取个外号,叫半尼其(Boanerges),就是雷子的意思(马可福音3:17);但后来因着耶稣的训诲和圣灵内住之改变,成为一个能接纳,宽容人的使徒。
# ''最先殉道'':五旬节圣灵降临之后,使徒们勇敢为耶稣作见证,神迹显明,信徒相爱,使很多人归信耶稣,但更引起很多人的怨恨,而逼迫,阻挡门徒。圣经记载希律王(传统上认为是希律亚基帕一世)用刀处决了雅各(使徒行传12:1-2) 。雅各成为第一位殉道的使徒。
''第一位耶路撒冷主教''
|!标志 |木匠锯;木匠棒 |
|!主保 |药剂师; 药商; 垂死的人; 意大利弗拉斯卡蒂; 漂白工人; 女帽商; 意大利蒙特罗东多; 药剂师; 乌拉圭 |
<a href="https://www.wikiwand.com/en/Thomas_the_Apostle">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/1/1c/Rubens_apostel_jakobus_mindere_grt.jpg/400px-Rubens_apostel_jakobus_mindere_grt.jpg"
caption:"St James the Minor (c. 1611) by ''Peter Paul Rubens'', "
width:"400px"
align:"right"
>>
</a>
阿尔斐的儿子雅各伯,基督新教译为亚勒腓的儿子雅各,耶稣十二门徒之一。传统上认为他即是''小雅各''。他在新约中只被提及四次,每一次都出现在使徒名单里。注意不要与另一位使徒,[[西庇太的儿子雅各弄|✝️雅各 James the Great]]混淆。
!! 事迹
新约全集中,''雅各伯书''是被认为是圣雅各伯所写。宗徒圣雅各伯写此信的动机,似乎是因为他听到信友们当时处于道德堕落的可怜光景中,因为有人只着重于信德,而轻忽了善行,所以写这信的目的,即是要纠正他们对道德的错误观念,同时劝勉他们要勇敢忍受来自各方种种困苦灾难。
这封书信虽是以相当流利的希腊文写成的,但很显然是属于''闪族''的文学作品,因为和《智慧书》的风格很相接近,多对偶的句子和美妙的比喻,喜用具体的例证,尤其多引用旧约。对作者本人来说,本书充分显示出作者对拯救灵魂的热诚,对穷人的同情,在信仰方面的坚定,在困苦灾难中的喜乐。
''四个传福音者之一''
|!标志 |天使 |
|!主保 |会计师;意大利城市萨莱诺;银行家;税吏;香料商;公务员 |
<a href="https://www.wikiwand.com/en/Bartholomew_the_Apostle">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Rubens_apostel_mattheus_grt.jpg/440px-Rubens_apostel_mattheus_grt.jpg"
caption:"Saint Matthew (c. 1611) by ''Peter Paul Rubens'', "
width:"400px"
align:"right"
>>
</a>
马太,天主教汉译玛窦(希伯来语:,Mattityahu,或希伯来语:,Mattay,意为“YHVH的礼物”,希腊语:,Matthaios,英语:,天主教汉译为玛窦,东方正教会译为玛尔泰,唐朝景教译为明泰法王),耶稣的十二使徒之一、四个传福音者之一。传统相信他是《新约》中《[[马太福音 Gospel of Matthew c.41]]》的作者。在跟从耶稣之前,原任罗马帝国犹太行省的''税吏长''。
《[[路加福音 Gospel of Luke c.56-58]]》记载耶稣呼召他的时候他大摆宴席招待耶稣和门徒。 最后提到他是《使徒行传》。
<a href="https://www.wikiwand.com/en/The_Calling_of_St_Matthew_(Caravaggio)">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/4/48/The_Calling_of_Saint_Matthew-Caravaggo_%281599-1600%29.jpg/1478px-The_Calling_of_Saint_Matthew-Caravaggo_%281599-1600%29.jpg"
caption:"The Calling of Saint Matthew by [[Caravaggio|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%8D%A1%E6%8B%89%E7%93%A6%E4%B9%94%20Caravaggio%201571-1610:%5B%5B%E5%8D%A1%E6%8B%89%E7%93%A6%E4%B9%94%20Caravaggio%201571-1610%5D%5D]] 1599–1600"
width:"300px"
align:"left"
tooltip:"">>
</a>
他是''伪经《多马福音》''提到的少数门徒之一,显示他在早期教会地位。传说他在耶稣升天后四处传道一直到埃塞俄比亚最后殉道。有关细节并不清晰。有些说他在埃塞俄比亚殉道,但另一些说在帕提亚的希拉波利斯。
!! 事迹
在新约中,''关于马太的记录很少''。他是耶稣的十二使徒之一,《马可福音》与《路加福音》只称他为马太,《马太福音》则称他是税吏马太,是耶稣亲近的门徒。耶稣升天后,他同其他使徒及门徒一同祈祷。
《马可福音》与《路加福音》中出现了一位税吏,名叫亚勒腓的儿子,利未,耶稣在迦百农传教时认识他,是一名税吏,为希律·安提帕斯服务。耶稣在他的家中吃喝与传教,被法利赛人责备,耶稣则回答:他来是为了召罪人,而不是为了召义人。《马太福音》在类似段落中,称他为马太。传统上认为这三个段落说的是同一个人,这位税吏,名叫马太,也就是亚勒腓的儿子利未。这位税吏,也就是十二使徒中的马太。
《约翰福音》中则''从来没有提过马太''。
''犹大替补''
|!标志 |斧子 |
|!主保 |酗酒; 木匠; 盖瑞城; 天主教大瀑布城-比灵斯教区, 蒙大拿州; 天花; 裁缝; 望德; 坚忍不屈 |
<a href="https://www.wikiwand.com/en/Matthias_the_Apostle">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a6/Rubens_apostle_Matthias_grt.jpg/440px-Rubens_apostle_Matthias_grt.jpg"
caption:"St Matthias by ''Peter Paul Rubens'', c. 1611"
width:"400px"
align:"right"
>>
</a>
马提亚(希伯来语:,拉丁化转写:Mattityahu),天主教常译作玛弟亚、玛迪,据《使徒行传》记载,是耶稣的使徒(基督教)中剩下的十一位在耶稣升天后补选出的宗徒,代替因自杀而死的[[✝️加略人犹大 Judas Iscariot]]。他作为一名使徒的圣召是独特的,因为他受召于耶稣升天之后,又在圣神降临之前。
!! 圣经有关的叙述
在对观福音中,没有记载马提亚的事迹。根据[[使徒行传 Acts of Apostles c.61]]第一章,在耶稣升天之后,十一位使徒为递补死去的犹大,于是选举两个人,就是''巴撒巴''和马提亚。 众人就祷告说:主啊,你知道万人的心,求你从这两个人中,指明你所拣选的是谁,叫他得这使徒的位分。这位分犹大已经丢弃,往自己的地方去了。 于是众人为他们摇签,摇出马提亚来;他就和十一个使徒同列。
之后新约中没有关于马提亚更多的记载。其他文献中,甚至他的名字也是可变的:欧瑟伯文献的叙利亚版本称呼他为“多禄茂”,这并非指原十二使徒里的巴多罗买(又译巴尔多禄茂;亚历山大的克雷芒则认为马提亚即是撒该;Clementine Recognitions(英语:)记载他是巴拿巴;Hilgenfeld(英语:)认为他就是约翰福音里所说的拿但业。
<a href="https://www.wikiwand.com/en/Star_of_David">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/4/49/Star_of_David.svg/400px-Star_of_David.svg.png"
caption:"Star of David"
width:"300px"
align:"right"
>>
</a>
大卫星,又称''六芒星、大卫之星、所罗门之星、所罗门封印、希伯来之星、犹太星等,又或者直接称为六角星''),是由两个方向相反的等边三角形组成的六角星,是犹太教和犹太文化的标志。以色列建国后将大卫星放在以色列国旗上,因此''大卫星也成为了以色列的象征''。
在犹太会堂中大卫星可能装饰经匣,由于它的保护功能它也被称为''大卫盾''。大卫星本来也有可能作为礼拜堂的建筑装饰。在德国在一些大教堂上也有大卫星作为装饰。
犹太传说将大卫星与''[[所罗门王|👑所罗门 Solomon]]''的印联系到一起;传说所罗门王有一个戒指可以使他指挥魔鬼和幽灵。另一个传说说这个标记与[[大卫王|👑大卫王 David]]的盾有关;传说大卫王有一面保护他的盾。
法国大革命后随着犹太人的解放他们选择大卫星作为自己的代表,就如''十字''是基督教的代表一样。今天大卫星被放在以色列的国旗上。
大卫星的形状是一颗六角星。在其它信仰中有类似的标志。在这些信仰中六角星的使用有可能比犹太人的使用还要早。今天在犹太文化尤其在神秘学中它被使用。在''占星术''中大卫星也是一个重要的符号。还有人认为它是象征大卫王诞生的星。
''卡律布狄斯''(英语:Charybdis,希腊语:Χάρυβδις)为希腊神话中,座落在女妖''斯库拉''对面像大漩涡的怪物,会吞噬所有经过的东西,包括船只。
奥德修斯返乡过程得其中一道考验即是要经过这里,由于船的宽度刚好填满了位于在漩涡边缘和[[斯库拉|🧜🏼♀️锡拉 Scylla]]之间的安全带,因而后来斯库拉勾到了他们的桨将船拉过去并掠走了六名水手。
Dellingr,(古挪威语可能是“''黎明”或“光辉者”'')是一位神。
Dellingr 的说法在 13 世纪根据早期传统资料汇编而成的《诗意埃达》和由斯诺里·斯图鲁森于 13 世纪撰写的《散文埃达》中得到了证实。在这两个来源中,德林格都被描述为达格(Dagr)(化身日)的父亲。散文埃达补充说,根据手稿的变化,他要么是拟人化的夜晚[[🌌诺特 Nott]]的''第三任丈夫'',要么是拟人化的大地[[🌎大地女神乔迪 Jord]]的丈夫。 Dellingr 在传奇传奇 Hervarar saga ok Heiðreks 中也得到了证实。
学者们提出,德林格尔是''黎明的化身'',他的名字可能同时出现在英文姓氏和地名中。
!! Oppspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
! 彩虹女神/众神的使者
|!父母 |[[陶玛斯 Thaumas]] and [[厄勒克特拉 Electra (Oceanid)]] |
|!配偶 |[[陶玛斯 Thaumas]] |
|!标志 |彩虹、[[Caduceus|☤卡杜斯-墨丘利的节杖 Caduceus]]、水壶 |
|!对应罗马神 |Iris, Arcus |
''Iris'' (''/ˈaɪrɪs/''; Greek: Ἶρις, Ancient Greek: [îːris])
她也被称为海洋和天空的女神之一。伊利斯将众神与人类联系起来。她以风的速度从世界的一端到另一端,并进入大海和冥界的深处。
也是''神使'',因为她跑得很快。
[img[https://upload.wikimedia.org/wikipedia/commons/a/aa/Winged_goddess_Cdm_Paris_392.jpg]]
//Winged female figure holding a caduceus: Iris (messenger of the gods) or [[Nike|耐克 Nike]] (Victory)//
彩虹桥(Bifrost,Bifröst,古北欧语:Bilröst),意即“''摇晃的天国道路''”。在北欧神话中,是连结[[亚萨神国阿斯加特 Asgard]]和[[人类之国米德加尔德 Midgard]](中庭)的巨大彩虹桥。
[[亚萨神族 Aesir]](Aesir)的诸神每天都会沿著彩虹桥来到世界之树旁的兀儿德之泉开会。[[💂🏻破晓之神海姆达尔 Heimdallr]]是此桥的守护者,他在此监视巨人国,防止他们对阿斯嘉特的侵扰。海姆达尔的居所''希敏约格”(Himinbjorg)''其大厅就位在桥的末端。
在诸神的黄昏中,彩虹桥将被史尔特尔等巨人践踏而崩塌。
关于彩虹桥的描述,大多出现在《散文埃达》里,但《诗体埃达》也有提到一些。有些学者认为,原本在《诗体埃达》中,Bifrost指的是“银河”,而《散文埃达》的作者史洛里·斯图拉松重新诠释后变成了彩虹。
''所有河流和海洋女神之父''
|!父母 |[[天空之神乌拉诺斯 Uranus]] and [[🌍大地女神盖亚 Gaea]]|
|!妻子 |[[河神和海洋之母忒堤斯 Tethys]] |
和妻子/姐姐生下3000个儿子和3000个女儿。
<a href="https://www.wikiwand.com/en/Oceanus">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/4/45/Oceanus_at_Trevi.JPG/440px-Oceanus_at_Trevi.JPG"
caption:"Oceanus in the Trevi Fountain, Rome"
width:"400px"
align:"right"
tooltip:"">>
</a>
<div class="tc-table-of-contents">
<<toc-selective-expandable "🌊大洋之神俄刻阿诺斯 Oceanus">>
</div>
! 海的神态
|!父母 |[[🌍大地女神盖亚 Gaea]] |
''Pontus'' (''/ˈpɒntəs/''; Greek: Πόντος, translit. Póntos, lit. "Sea")
由[[盖亚|🌍大地女神盖亚 Gaea]]所生,没有父亲。
他和盖亚又生育了海洋老人[[涅柔斯 Nereus |老者涅柔斯 Nereus]]和陶玛斯 Thaumas(“奇迹”)、象征大海危险的[[福耳库斯Phorcys|福耳库斯 Phorcys]]和刻托[[Ceto|刻托 Ceto]]、刚强的女神[[欧律比亚Eurybia|欧律比亚 Eurybia]]。
他同[[塔拉萨Thalassa|塔拉萨 Thalassa]]生育了忒尔喀涅斯们Telchines。
子女:
<div>
<<toc-selective-expandable "🌊海神蓬托斯 Pontus/Pontos">>
</div>
埃吉尔 Hlér。亦称阿戈尔,在北欧神话中,他是深海的海神,名字就是“水 Sea”的意思。他另外的名字有赫勒尔(海)及盖密尔(Gymir)。
埃吉尔的妻子是[[澜 Ran]],他们的女儿就是''[[九名海浪化身的女神|扬波之女 Nine Daughters of Aegir and Ran]]'',这九名女神的儿子就是[[💂🏻破晓之神海姆达尔 Heimdallr]]。另外,埃吉尔还有两名仆人:费玛芬格(Fimafeng)和他的妻子埃尔迪尔(Eldir)。
他是古老的巨人族,和诸神敌对的''霜巨人''并不属于相同的族群,是更加古老的神,可以说是古老自然力量的化身。他对诸神或巨人族都不支持也不反对,基本上是''中立的存在''。当“诸神的黄昏”发生之后,即使诸神和巨人都灭亡了,他也依然会存在。
埃吉尔的形象是白发和非常瘦长的爪。
和近海海神的[[华纳神族|华纳神族 Vanir]]不同,他没有受到人民的爱戴,人们对他只是畏惧其力量的可怕。当出海的船只翻覆之时,船上的宝物及货物就会变成他的所有物,''所以其住所充满各式的珠宝与财富,甚至到了用黄金来照明的地步'',因此黄金也被称为“埃吉尔之火”。
传说他的豪宅就位在中庭的西边的雷色岛(Hlesey),一个叫福雷斯耶的地方。诸神有时也会到他的住所聚会,有个故事就说到雷神索尔应埃吉尔的要求,从巨人那边抢来巨大的锅子供其酿酒,因此也有诗人称埃吉尔为“''啤酒的酿造者''”。
[[诺尔维 Narfi]]的女儿,她是代表“夜”的女神。
她曾经结过三次婚,第一段婚姻的丈夫是[[Naglfari]],生一子奥德(Aud)。第二段婚姻的丈夫是安那尔 Annar,他们的女儿就是''乔迪(Jord, 地)''。第三段婚姻的丈夫是''德尔林(Delling,黎明)'',他们的孩子是白昼之神''达格(Dag,昼)''。
诺特是个''黑发黑肤''的女神,她骑著奥丁赐与的''赫利姆法克西(Hrimfaxi,霜之马)'',和她的儿子达古轮流骑马奔驰于天空。
!! Offspring
* with Naglfari: <<list-links "[tag[Naglfari]] +[sort[title]]">>
* with Annar: <<list-links "[tag[安那尔 Annar]] +[sort[title]]">>
* with Delling: <<list-links "[tag[🌄德尔林 Dellingr]] +[sort[title]]">>
! 黑夜女神
|!父母 |[[卡俄斯 Chaos]] |
|!配偶 |[[虚冥厄瑞玻斯 Erebus]] |
|对应罗马神 |Nox|
盖亚的姐妹。
<<list-links "[tag[🌌黑夜女神尼克斯 Nyx]]">>
!! Personification of the Earth
|对应罗马神 |Terra |
|对应北欧神 |[[🌎大地女神乔迪 Jord]] |
|对应印度教神 |Bhumi |
''Gaia'' (''/ˈɡeɪə, ˈɡaɪə/''; from Ancient Greek Γαῖα, a poetical form of Γῆ Gē, "''land''" or "''earth''"), also spelled ''Gaea'' ''/ˈdʒiːə/'')
<div>
<<toc-selective-expandable "🌍大地女神盖亚 Gaea">>
</div>
Jörð,在北欧神话中,''象征“大地”或是“地球”的女神''。在北欧的古诗中,乔迪被视为''挪威的国土象征'',她的头发化作松树森林。
她是''雷神托尔''的母亲,也是[[⚡众神之父奥丁(神圣) Odin]]的性伴侣。
Jörð 在丹麦历史上有记载:12 世纪由丹麦历史学家 Saxo Grammaticus 创作的《丹麦史诗》(Gesta Danorum);13 世纪由一个或多个不知名的人编纂的《诗歌埃达》(Poetic Edda);以及同样创作于 13 世纪的《散文埃达》(Prose Edda)。她的名字经常在斯卡尔德诗歌和 Kennings 中使用,''作为土地或大地的诗歌术语''。
! 月亮女神
|!父母 |[[☀️太阳神亥伯龙神 Hyperion]] and [[光明女神忒亚 Theia]] |
|!标志 |新月、战车、火炬、滚滚斗篷、公牛 |
|!配偶 |恩底弥翁 Endymion |
|!对应罗马神 |Luna |
按照奥林匹斯教的谱系,塞勒涅是一个女提坦。关于她的出身有多种说法。''赫西俄德''说塞勒涅和太阳神[[赫利俄斯|☀️太阳神赫利俄斯 Helios]]是雙胞胎,都是第一代提坦神[[亥伯龙神|☀️太阳神亥伯龙神 Hyperion]]和[[忒亚|光明女神忒亚 Theia]]的孩子。''欧里庇得斯''则认为塞勒涅是[[赫利俄斯|☀️太阳神赫利俄斯 Helios]]的女儿。还有些神话记载说塞勒涅与[[赫利俄斯|☀️太阳神赫利俄斯 Helios]]是夫妻关系。由于后来被与阿耳忒弥斯相混的结果,一些古典作家开始称塞勒涅为[[宙斯|⚡天神宙斯 Zeus]]的女儿。此外,还有说法认为她是提坦神[[帕拉斯|帕拉斯 Pallas]]的女儿。
塞勒涅在神话中的传统形象是:''长有双翼,头顶金色光环,乘坐一辆由两匹神马(一说是牛,取以牛角象征新月之意)拉动的马车在夜空中飞驰,当白昼来临时消失于大洋河中。''文艺复兴以后的艺术作品也常把她表现成皮肤白皙、驾驶着马车(或骑马)的女神,有时手持火炬(古希腊女诗人萨福在其作品中就提到过这种形象)。
在古典神话中,塞勒涅与其兄弟''赫利俄斯''每天轮流驾车从天空经过,形成昼夜交替;而在这之间,是他们的姐姐、黎明女神[[厄俄斯|黎明女神厄俄斯 Eos]]主导的时期。
!! 和[[恩底弥翁 Endymion|恩底弥翁 Endymion]]
塞勒涅与恩底弥翁的爱情故事在希腊神话里非常有名。恩底弥翁是一个受塞勒涅爱慕的美少年,被众神赐予了永恒的青春,但代价是在卡里亚的拉特穆斯山的山洞里永远长眠。厄勒亚(古希腊一地区,大致相当于今伊利亚州)地区的神话说,''塞勒涅给恩底弥翁生育了50个女儿,这是对古希腊历法(农历/Lunar months)中一年有50个星期的反映。''
阿波罗尼乌斯较为详细地记载了这个神话。恩底弥翁是一个凡人猎手或牧羊人(按照''保萨尼阿斯''的说法,恩底弥翁则是''厄勒亚的国王'')。他的外貌俊美无比,被这种惊人的美貌迷住的塞勒涅请求宙斯让恩底弥翁永葆青春。但塞勒涅从厄俄斯处得知,请求神赐予凡人永生是不可能的,于是这个请求变成了让恩底弥翁永远沉睡,这样他就既不会死去也不会离开她。西塞罗也说在这个事件中是''塞勒涅主动提出了让恩底弥翁沉睡的请求''。
但在其他版本中,长眠不醒是恩底弥翁自己做出的决定。恩底弥翁所在的拉特穆斯山离米利都很近。每天夜里塞勒涅从天空经过时都会面带愁容地探望沉睡中的恩底弥翁。
!! 巨人之战 Gigantomachy
[[盖亚|🌍大地女神盖亚 Gaea]]对她的孩子们泰坦在被打败后被扔进[[塔尔塔罗斯|😈地狱塔尔塔罗斯 Tartarus]]感到愤怒,于是带来了巨人,在一场被称为Gigantomachy的战争中攻击诸神。
当盖亚听到一个预言,说一个凡人将帮助众神打败巨人时,她想找到一种草药,使他们不被打败。
宙斯听说后,命令塞勒涅以及她的兄弟姐妹[[赫利俄斯 Helios|☀️太阳神赫利俄斯 Helios]](太阳)和[[Eos|黎明女神厄俄斯 Eos]](黎明)不要发亮,并为自己收获了所有的植物。
!! 和[[🌪️提丰 Typhon]]的战斗
根据后来对诺努斯( Nonnus)的记载,当巨大的怪物堤丰围攻天空时,他也向塞勒涅投掷公牛来攻击她。塞勒涅击退了巨人,与提丰对峙;之后,她的眼球上有许多伤疤,让人想起他们的战斗。
!! 和[[Ampelos]]
有一天,根据Nonnus的描述,Ampelus骑在一头公牛上,接着把自己和Selene相提并论,说他是她的对手,和她一样有角,一样骑公牛。女神很生气,派了一只牛虻去蜇Ampelus的公牛。公牛惊慌失措,扔下Ampelus,把他刺死了。
!! [[🦁涅墨亚狮子 Nemean lion]]
在赫西俄德看来,涅墨亚狮子是由[[艾奇德娜 |🐍厄客德娜 Echidna]]所生,由''赫拉''抚养,而其他的说法则是''塞勒涅''以某种方式参与了它的出生或抚养。"他们说涅墨亚狮子是从月亮上掉下来的",引用埃皮门尼德(Epimenides)的话:
"因为我是月亮上衣着美丽的塞琳娜所生,她在一次可怕的颤抖中甩掉了尼米亚的野蛮狮子,并在赫拉女王的命令下把它带了出来"。
阿纳克萨戈拉(Anaxagoras )也报告说,尼米亚狮子据说是从月亮上掉下来的。
伪普鲁塔克(Pseudo-Plutarch')的《论河流》中,赫拉与塞勒涅合作,"使用了神奇的咒语",从一个装满泡沫的箱子中创造了涅墨亚狮子,Hyginus说Selene曾在一个 "双口洞 "中 "滋养 "了狮子。
!! [[潘 Pan|潘 Pan]]
根据维吉尔的说法,塞琳娜也曾与潘神发生过关系,潘神用 "雪白的羊毛 "勾引她。关于维吉尔的学者们补充了一个归于尼坎德的故事,即作为勾引的一部分,潘神把自己裹在羊皮里。
!! 战车
就像她的兄弟太阳神赫利俄斯一样,他每天都驾驶着他的太阳战车飞过天空,据说塞勒涅也驾着战车飞过天空。 塞勒涅的赞美诗,提供了一个描述:
<<<
The air, unlit before, glows with the light of her golden crown, and her rays beam clear, whensoever bright Selene having bathed her lovely body in the waters of Ocean, and donned her far-gleaming raiment, and yoked her strong-necked, shining team, drives on her long-maned horses at full speed, at eventime in the mid-month: then her great orbit is full and then her beams shine brightest as she increases. So she is a sure token and a sign to mortal men.
<<<Hymn to Selene
已知最早的关于塞勒涅驾驶战车的描述是在公元前5世纪初的一个红图杯内,据说是布莱戈斯画家的作品,显示塞勒涅在两匹带翅膀的马的牵引下,将战车投入大海。 虽然月亮战车经常被描述为银色,但对品达(Pindar)来说,它是金色的。
太阳战车有四匹马,而塞琳娜的战车通常有两匹,被奥维德描述为 "雪白色"。在某些情况下,''战车由牛或公牛牵引''。
!! 外貌描述
除了那些适用于月亮本身的描述外,现存的关于塞琳娜的外貌和性格的描述非常少。有三个早期资料提到了塞琳娜的头发。《赫利俄斯之歌》和《塞琳娜之歌》都使用了εὐπλόκαμος一词,有的译为 ''"丰富的"、"明亮的 "或 "美丽的头发"'',而埃皮门尼德则使用了 ''"可爱的头发 "''这一称谓。 《塞琳娜之歌》将这位女神描述为非常美丽,拥有长长的翅膀和金色的头饰,称她 "白臂 "和 "仁慈的"。 《奥菲克赞美诗》赋予塞琳娜角和火炬,将她描述为 "全知"、"全智"、爱马和警觉,以及 "给自然界的作品提供它们注定的结局 "的 "争斗的敌人" 。
! 希腊狩猎女神、荒野女神、野生动物女神、月亮女神和贞操女神
|标志 |弓、箭、箭袋、猎刀、战车(由黄金制成,由四只金角鹿(Elaphoi Khrysokeroi)牵引。她战车的缰绳也是金子做的)、长矛、网和七弦琴(作为处女舞蹈和歌曲的女神,阿尔忒弥斯经常被描绘成拿着七弦琴)<br/><br/>月亮、鹿(鹿是唯一被阿尔忒弥斯视为神圣的动物)、柏、猎犬、熊、野猪、珍珠鸡(阿尔忒弥斯为梅利亚格一家哀悼他们失去的兄弟Meleager,因此她将他们变成了珍珠鸡,成为她最喜欢的动物)、 秃鹰 |
|对应罗马神 |Diana |
|对应北欧神 |[[🌖玛尼 Mani]] |
[[阿波罗|☀️太阳神阿波罗 Apollo]]的孪生姐妹。
阿尔忒弥斯与[[艾蕾西亚|eil]]一起被崇拜为分娩和助产的主要女神之一。
就像[[雅典娜|🦉智慧女神雅典娜 Athena]]和[[赫斯提|👩🍳灶神赫斯提 Hestia]]一样,阿尔忒弥斯更喜欢保持少女状态,并且发誓永不结婚。
阿尔忒弥斯''相信她被命运选为助产士'',特别是因为她曾协助母亲接生双胞胎兄弟阿波罗。她''所有的同伴都还是处女'',阿尔忒弥斯严[[密保护自己的贞操。
!! 与男性
河神[[阿尔斐俄斯 Alpheus|阿尔斐俄斯 Alpheus]]爱上了阿尔忒弥斯,但当他意识到自己无法赢得她的心时,他决定抓住她。当阿尔特弥斯和她在勒特诺伊的同伴们去找阿尔斐俄斯时,她对他的动机产生了怀疑,并用泥巴遮住脸,这样他就认不出她了。
在另一个故事中,阿尔斐俄斯试图强奸阿尔忒弥斯的随从阿瑞瑟斯(Arethusa)。阿尔忒弥斯同情这个女孩并救了她,把她变成了莱特里尼的阿尔忒弥斯-阿尔费亚神庙中的女神和她的随从在那里饮水的泉水。
泰坦[[伊阿佩托斯|伊阿佩托斯 Iapetus]]的儿子布法戈斯想强奸阿尔忒弥斯,被她读出这个罪恶的想法,于是在福洛山(Mount Pholoe)把他打倒。
在另一个故事中,一个男孩Siproites,或者因为意外看到阿尔忒弥斯洗澡,或者因为他试图强奸她,''被女神变成了一个女孩''。
!! [[亚克托安 Actaeon|亚克托安 Actaeon]]
亚克托安神话有多个版本,但很多都是零散的。细节各不相同,但核心是涉及伟大的猎人亚克托安,''阿尔特弥斯因为他的违法行为把他变成了一只雄鹿,然后他被猎狗杀死。''
根据关于这部作品的标准现代文本,拉马尔-罗纳德-莱西的//Lacey's The Myth of Aktaion: Literary and Iconographic Studies//,这个神话最可能的原始版本将亚克托安描绘成女神的狩猎伙伴,他看到女神在她的圣泉中赤身裸体,试图强行占有她。由于这种傲慢,他变成了一只雄鹿,被自己的猎犬吞噬。
在一些现存的版本中,亚克托安是一个偶然遇到阿尔忒弥斯的陌生人。根据罗马人奥维德(Ovid)讲述的拉丁文版本,他在西塔伦山意外地看到了正在洗澡的戴安娜,他被她变成了一头雄鹿,然后被他的50条猎狗追杀。
各种说法在猎人的违法行为方面也有分歧:__有时只是看到处女女神的裸体,有时自诩是比她更好的猎人,甚至只是作为宙斯的对手来争夺[[塞墨勒 Semele|塞墨勒 Semele]]的感情__。
!! [[阿多尼斯 Adonis|阿多尼斯 Adonis]]
在阿多尼斯故事的某些版本中,阿尔忒弥斯派了一头野猪杀死他,''以惩罚他傲慢地吹嘘自己比她更好的猎人''。
[img[https://upload.wikimedia.org/wikipedia/commons/thumb/7/77/Giuseppe-Mazzuoli-The-Death-of-Adonis-hermitag.jpg/440px-Giuseppe-Mazzuoli-The-Death-of-Adonis-hermitag.jpg]]
在其他版本中,阿耳特弥斯为了复仇而杀死了阿多尼斯。在后来的神话中,阿多尼斯是[[阿佛洛狄忒|💗爱情女神阿佛洛狄忒 Aphrodite]]的宠儿,阿佛洛狄忒对[[希波吕托斯|希波吕托斯 Hippolytus]]的死负有责任,而西波吕托斯曾是阿尔忒弥斯的宠儿。因此,阿尔忒弥斯杀死阿多尼斯是为了给希波吕托斯的死亡报仇。
!! [[俄里翁 Orion|俄里翁 Orion]]
俄里翁是阿尔忒弥斯的狩猎伙伴。在一些故事中,他被阿尔忒弥斯杀死,而在另一些故事中,他被盖亚派来的蝎子杀死。
在其他版本中,俄里翁试图引诱奥皮斯——阿尔忒弥斯的追随者之一,她杀死了他。在Aratus 的一个版本中,俄里翁抓住阿尔忒弥斯的长袍,她出于自卫杀死了他。
在另一个版本中,是阿波罗发出了致命的蝎子。根据Hyginus,阿尔忒弥斯曾经爱过俄里翁(尽管来源较晚,但这个版本似乎是她作为前奥林匹亚女神的罕见遗留物),但被她的哥哥阿波罗骗去杀了他,因为他要 "保护 "他妹妹的少女身份。
!! 阿洛泰人 The Aloadae
波塞冬和伊菲德米亚的双胞胎儿子奥托斯和埃菲阿特斯在年幼时就长得非常大。
他们是好斗的熟练猎手,除非被对方杀死,否则不可能被杀死。
阿洛泰人的成长从未停止过,他们吹嘘说,只要他们能到达天堂,他们就会绑架阿尔忒弥斯和赫拉,并娶她们为妻。众神都害怕他们,只有阿尔忒弥斯抓住了一只优良的鹿(或者在故事的另一个版本中,她把自己变成了一只母鹿),在他们之间跳了出来。阿洛泰人投掷了他们的长矛,因此错误地杀死了对方。
在另一个版本中,阿波罗把鹿送进了Aloadae的中间,导致他们意外地杀死了对方。
!! [[卡利斯托 Callisto|卡利斯托 Callisto]]
卡利斯托是阿卡迪亚国王吕卡翁的女儿,也是阿尔忒弥斯的狩猎侍从之一。作为阿尔忒弥斯的同伴,她立下了贞洁的誓言。宙斯伪装成阿尔忒弥斯出现在她面前;或者在某些故事中,是阿波罗获得了她的信任并利用了她或(根据奥维德的说法)强奸了她,从而产生了阿卡斯的概念。
被激怒的赫拉或阿尔忒弥斯(有些人说两者都有)把卡利斯托变成了一只熊。阿卡斯差点杀了熊,但宙斯及时阻止了他,把熊放在了天上;因此,Callisto the Bear 的起源是一个星座。一些故事说他将阿卡斯和卡利斯托作为熊放入天空,形成了小熊星座和大熊星座。
!! 和[[依菲琴尼亚|依菲琴尼亚 Iphigenia]]
!! [[Niobe|尼俄伯 Niobe]]
!! [[Chione|Chione]]
!! Atalanta, Oeneus and the Meleagrids
在她的父亲抛弃她之后,阿尔忒弥斯拯救了婴儿Atalanta,使其免于暴露。她派了一只母熊来照顾婴儿,然后由猎人抚养长大。在一些故事中,阿尔忒弥斯后来派了一头熊去伤害Atalanta,因为其他人声称Atalanta是一名优秀的猎人。
在其他冒险中,Atalanta参加了卡吕冬野猪狩猎,阿尔忒弥斯派人去摧毁卡吕冬,因为国王Oeneus在收获祭时忘记了她。在狩猎中,Atalanta抽到了第一滴血,并获得了野猪皮奖。她把它挂在 Tegea 的一个神圣的树林里,作为对阿尔忒弥斯的奉献。
Meleager是埃托利亚的英雄。 Oeneus 国王命令他召集希腊各地的英雄来猎杀卡吕多尼亚野猪。 Meleager 死后,Artemis 将他悲伤的姐妹 Meleagrids 变成了 Artemis 喜欢的珍珠鸡。
!! Aura
在 Nonnus Dionysiaca,Aura 是 Lelantos 和 Periboia 的女儿。她是一个处女女猎手,就像阿尔忒弥斯一样,为自己的少女时代而自豪。然而,她断言阿尔忒弥斯的身体过于女性化,并怀疑女神的童贞。阿尔忒弥斯向涅墨西斯寻求帮助,为她报仇;然后她导致狄俄尼索斯强奸奥拉,之后Aura成为一个疯狂的杀手。当她生了一对双胞胎儿子时,她吃了一个,而另一个,Iacchus,被阿尔忒弥斯救了。伊阿库斯后来成为得墨忒耳的随从和厄琉西尼亚之谜的领袖。
!! [[Polyphonte|Polyphonte]]
!! 特洛伊战争
阿尔忒弥斯可能被视为特洛伊的支持者,因为她的兄弟阿波罗是这座城市的守护神,而她本人在历史上在安纳托利亚西部受到广泛崇拜。在伊利亚特中,当希腊人和特洛伊人的神圣盟友发生冲突时,她与赫拉发生了冲突。赫拉用自己的箭袋击中阿尔忒弥斯的耳朵,使箭掉了下来。阿尔忒弥斯逃跑,向宙斯哭泣,[[勒托|勒托 Leto]]收起了弓箭。
阿尔忒弥斯在战争中发挥了重要作用。像[[勒托|勒托 Leto]]和阿波罗(在特洛伊受到广泛崇拜)一样,阿尔忒弥斯站在特洛伊人一边。
在希腊人前往特洛伊的旅程开始时,阿尔忒弥斯使大海平静下来,直到有神谕说他们可以通过牺牲阿伽门农的女儿[[Iphigenia|依菲琴尼亚 Iphigenia]]来赢得女神的芳心。阿伽门农曾经向女神许诺,他会为他献上最亲爱的东西,那就是伊菲革涅亚,但违背了这个诺言。在神话的某些版本中,阿尔忒弥斯让伊菲革涅亚成为她的侍从,或者将她变成黑卡忒、黑夜女神、巫术女神和冥界女神。
!! 关于童贞 Virginity
阿耳特弥斯的人格和崇拜的一个重要方面是她的处女身份,考虑到她作为一个与生育有关的女神的角色,这似乎是矛盾的。
''阿尔特弥斯是一位处女女神的想法很可能与她作为女猎手的主要角色有关。传统上,猎人在打猎前会禁欲,这是一种纯洁的仪式,也是出于对气味会吓跑潜在猎物的信念''。
阿尔特弥斯崇拜出现的古代文化背景也认为,处女是婚姻的先决条件,已婚妇女要服从丈夫的安排。从这个角度来看,''阿尔特弥斯的处女身份也与她的权力和独立有关''。与其说这是一种无性的形式,不如说这是一种属性,''表明阿尔特弥斯是自己的主人,拥有与男神同等的权力''。也有可能她的处女身份代表了一种集中的生育能力,可以在她的追随者中传播,就像早期的母神形象一样。然而,后来的一些希腊作家确实将阿耳特弥斯视为天生无性,是阿佛洛狄忒的反面人物。
!! 母神
尽管她是处女,但现代学者和古代评论都将阿尔忒弥斯与母神的原型联系起来。阿耳忒弥斯在传统上与生育能力有关,并被请求协助妇女生育。
根据希罗多德的说法,希腊剧作家埃斯库罗斯将阿尔忒弥斯与德墨忒尔的女儿珀耳塞福涅相提并论。她在阿卡迪亚的崇拜者传统上也将她与德墨忒耳和珀耳塞福涅联系起来。在小亚细亚,她经常与当地的母神人物混在一起,如赛贝勒和伊朗的阿娜希塔。然而,母神的原型与希腊万神殿并不高度一致,尽管希腊人早在公元前7世纪就采用了西贝勒和其他安纳托利亚母神的崇拜,但她并没有直接与任何希腊女神混为一谈;相反,随着东方影响的扩散,她的崇拜和各个方面都被阿耳特弥斯、阿芙洛狄忒等人不同程度地吸收了。
!! 艺术表现
希腊古代艺术中最古老的阿尔忒弥斯形象将她描绘为Potnia Theron(“百兽之王”):一个有翅膀的女神,手里拿着一头雄鹿和一头母狮,或者有时是一头母狮和一头狮子。这位长着翅膀的阿尔忒弥斯以阿尔忒弥斯·奥尔蒂亚的身份在前投票中徘徊,在斯巴达附近有一个避难所。
在希腊古典艺术中,她通常被描绘成一个少女女猎手,年轻、高大、苗条,穿着女孩的短裙,[80]带着狩猎靴、箭袋、弓[81]和箭。通常,她以射击姿势出现,并伴随着猎犬或雄鹿。当被描绘成月亮女神时,阿尔忒弥斯穿着一件长袍,有时头上盖着面纱。她的阴暗面在一些花瓶画中显露出来,在那里她被描绘成带来死亡的女神,她的箭射向了年轻的少女和女人,例如尼俄伯的女儿。
阿耳特弥斯在古典艺术中有时会用新月的冠冕来表现,比如在月神Luna和其他的人身上也发现了这种情况。
玛尼(Mani),是北欧神话中的''月亮驭者,是月亮的化身''。他是巨人[[蒙迪尔法利(Mundilfari)|蒙迪尔法利 Mundilfari]]的儿子,他的姊妹是苏尔(Sol),苏尔是太阳的驭者。
玛尼的月车,是由''亚斯维德尔(Alsvider,永远迅速者)''的马拉著,不像苏尔的日车,因为太阳过度强烈的热力还需要''斯瓦林(Svalin)''盾保护著,月亮光和热都是温和的。
一只名为''[[哈提|🐺哈梯 Hati]](Hati,憎恨)''的狼总是在车后追逐月亮,想把它吞下去,当他追上时,这时就会发生月蚀。地上的人们必须敲锣打鼓以吓走天狼。但当诸神的黄昏到来时,哈提终将会把月亮一口吞下。
如今的月亮与及''星期一''(''即Moon及Monday'')的英文,就是演变自这位月神的名字。
希腊语:Τυφωευς / Τυφων / Τυφαων / Τυφως;英语:''Typhoeus / Typhon / Typhaon / Typhos''
|!父母 |[[😈地狱塔尔塔罗斯 Tartarus]] and [[🌍大地女神盖亚 Gaea]] or [[🌍大地女神盖亚 Gaea]] herself|
|!配偶 |[[🐍厄客德娜 Echidna]]|
|!标志 ||
|!对应罗马神 ||
!! 长相
堤丰有百个龙头,最为出名。每张口中,暗色的蛇信伸缩吞吐。百双骇人的眼里不时喷出烈焰。它的吼声也变化多端:有时作人言,有时如牛吼,如狮啸,如犬吠,声若奔雷,响彻四极。关于它的身体,各典籍说法不一。《神谱》只提到四肢力大无匹。阿坡罗陀洛斯(Apollodorus)的《书库》(The Library)描述它自肩至股为人形,股以下如巨蟒。身量高出山岳之上,头顶触着星辰,一手在极东,另一手可以伸到极西。许多翅膀从它身上长出。毛发缠结,沾满尘土。安东尼努斯·莱伯拉里斯(Antoninus Liberalis)的《变形记》(Metamorphoses)更说它不仅有百头百翼,还有百只巨手。
史诗《狄奥尼西卡》(Dionysiaca)对堤丰外貌的描述,与诸本颇不相同。在这部史诗中,堤丰的各头或如狮、或如豹、或如牛、或如野猪,百兽云集,穷形尽相,只有当中那个头作人形。每个头的周围,都有千万条毒蛇蟠回。这些蛇发一旦怒张开来,再加上一百双如蟒巨臂,能够遮蔽整片天空。下半条蛇身所过之处,地陷成沮,毒涎滴落,将群山溅得一片污秽。吼叫起来,当中一头发出人声,其余狼嚎、狮啸、牛鸣、蛇嘶、豹吼,诸音杂作,威势足以震慑奥林匹斯诸神。
!! 和宙斯的战斗
!!! 《神谱》的版本
《神谱》比较简略地描述了这场战斗:宙斯刚将泰坦打入冥渊,分派好各神的座次与职务,盖亚又怀上了最后一子——堤丰。这个妖魔惊世骇俗,甫一诞生,就被天神察觉。宙斯从奥林匹斯山上降下霹雳来。雷火混杂着堤丰的飓风,震荡了天地,摇动了山川,将海中搅得巨浪翻腾。这种威势声响,连哈得斯和深囚地底的泰坦也闻之变色。接着宙斯一跃而下,与妖魔大战。堤丰的百头最终被神雷击中,着起了火。他倒在地上,身旁的飚风带动烈焰,四散蔓延,大地都开始熔化。宙斯盛怒之下,将堤丰也打入冥渊。
!!! 《狄奥尼西卡》的版本
诺努斯(Nonnus)的《狄奥尼西卡》用了近九千字篇幅将这场战斗的始末娓娓道来。整个故事大致可分为三部分:堤丰盗走宙斯的雷火、卡德摩斯助宙斯骗回雷火、堤丰和宙斯大战。
宙斯将雷火藏在一个山洞裡,跑去与仙女普卢图(Plouto)幽会。神雷在洞中放出烟气与火星,白色的山崖立时熏得漆黑。堤丰偷出这威力无穷的雷火,安置在石缝中。随即它狂吼厉啸,在四极间冲突往来,撑开蛇发,举起巨臂上击云霄。诸天被搅得混乱不堪:星宿错位,或者陨落海中,日月同时出现。它击中日之神的日车。月之神与它对抗,却落得满身伤痕。连四方风神 北风之神、西风之神、南風之神、東风之神 也难逃此劫。它又冲入大海。水还没不到这巨魔的腰部。它搅动海水,激起滔天的巨浪,又劈波斩涛,将波塞冬的座车拽出水面。它又返回陆地,取出雷火。堤丰虽有两百条巨臂,抬起重逾万钧的神雷也颇感吃力。这武器它还无法运用得心,但仅仅扬起示威也足令诸神魂飞魄散。他们变为各种飞禽走兽,仓皇逃往埃及。
此时宙斯正化为白牛,在克里特岛与腓尼基公主 欧罗巴缠绵。闻讯后他赶回与堤丰作战,但失了兵器,不是对手,遭妖魔击敗,被取出神力,败下阵来。欧罗巴的弟弟卡德摩斯找寻失踪姐姐,途遇宙斯。宙斯于是心生一计,命随行的畜牧之神 潘召来牛群羊群,自己搭起茅棚,把卡德摩斯打扮成牧童模样,让他从堤丰那里骗回雷火,并将和谐女神 哈默尼亚许以为妻。一切停当,宙斯变为公牛,混入牛群中。卡德摩斯坐在树下,吹起芦笛。妖魔听到乐声,将神雷藏在洞中,赶来欣赏,还说将来占据奥林匹斯山,要请牧童随侍演奏,许以种种好处。卡德摩斯便道他的竖琴更为高妙,但要宙斯的神力来作琴弦。妖魔为笛音所惑,欣然交出。此时天神已赶到山洞,取走兵器。堤丰回来不见雷火,顿时醒悟,勃然大怒,向宙斯叫阵,扬言要娶赫拉为妻,贬诸神为奴,解放冥渊诸巨人,将天地重新融合,归入混沌。双方于是再次大战。
宙斯以雲为甲,以雷为盾,以闪电为矛,以霹雳为箭,乘光阴车(Khronos's Chariot)从霄汉上直冲下来。骚乱之神 佛伯斯(Phobos)和恐惧之神 德摩斯(Deimos)在左右扈从,胜利女神 尼克(Nike)举盾护持在前。四方风神都供其驱策。堤丰也不示弱,垒石垛挡在身前,又奋神力举起一条冰河,向宙斯扔去,希望能浇熄雷霆。可是凡水灭不了天火。接着它扳下大片山崖,连连投出。宙斯或避让,或以雷电劈开,或举手抄住反掷,又驱起诸神力量不斷向妖魔攻去。最后堤丰不支倒地。宙斯嘲弄一番后,将它压在西西里岛的埃特納火山(Mt Aetna)下。
!!! 《书库》的版本
《书库》所述与诺努斯较为相似,只是简略得多。说宙斯发雷火,又用刚玉镰刀与堤丰战斗。妖魔受伤败逃。宙斯追到叙利亚的卡西安山(Mount Kasium),与其和身肉搏。堤丰用蛇髮将天神缠住,夺下镰刀,取下他的神力。它把宙斯身体弃于契里琼山洞,神力则藏在一张熊皮下。旅行者之神 赫耳墨斯和埃基潘(Aigipan)将神力盗出,安回到宙斯身体上。宙斯重获力量,乘云车,驾风马,擎神雷,将堤丰逐到色雷斯地方。妖魔祭起整座山岳,却被霹雳击中,欲从西西里海逃遁。宙斯召来爱特纳山,将它压在下面。
!!! 诸神奔逃
堤丰逞威时,除宙斯和雅典娜,其余诸神都吓得逃往埃及。他们听了潘的建议,化成各种动物,以便匿藏。赫拉变为白色母牛、阿波罗变为鹰,赫耳墨斯变为朱鹭,阿瑞斯变为鱼,阿耳忒弥斯变为猫,狄俄倪索斯变为山羊,海格力斯变为小鹿,赫淮斯托斯变为公牛,勒托变为老鼠。其余神祇也各有化身。潘自己也变作上身为羊,下身为鱼的模样,摩羯座因此而来。
许癸努斯(Hyginus)的《天文学》(Astronautica)讲阿芙蘿黛蒂和儿子厄洛斯游幼发拉底河,遇上堤丰作怪。二神跳入河水,化为双鱼。这就是双鱼座的由来。
!! 囚禁
《伊利亚特》中说堤丰在阿里摩亚人(Arimoi)的土地上被宙斯打败,一直躺在彼处。根据《神谱》,母蛇艾奇德娜也盘踞在阿里摩亚的山洞。也许那儿就是冥渊大门的所在。《奥德赛》裡提到有个叫奇摩罗伊(Kimmeroi)的地方,终年冰雪,长夜不昼,可能和阿里摩亚有渊源。大地理学家斯特拉伯(Strabo)推断该处即当时利底亚的火山平原。
瑟伯尼亚湖(the Serbonian Lake)位于当时埃及和腓尼基(Phoenicia)的边境。希罗多德(Herodotus)等认为堤丰的囚牢该在彼处。但这多半源于堤丰和古埃及塞特神(Set)的关系。
更多的版本认为堤丰被压在西西里岛的爱特纳火山之下。它在山底欲挣扎脱困,就带来地震,魔焰神烟冲出山头,造成火山喷发。宙斯派了赫斐斯托斯在山上镇压,顺便用那烈焰打铁。埃斯库罗斯预言:堤丰的火气无法浇灭,有朝一日岩浆会汇聚成河,将整岛的土壤烧尽。斯特拉伯认为不仅西西里一地,附近的岛屿都压在堤丰身上。一旦妖魔翻身,便酿成大灾。
!! 神话学意义
宙斯与堤丰的搏斗是他与提坦争战的余绪。《神谱》与其它古希腊典籍都暗示了这点。该亚不满宙斯将其子女打入冥渊,于是生出了堤丰。在《狄奥尼西卡》中,堤丰明确提到要取代宙斯的地位,入主奥利匹斯山,还想把它的哥哥提坦们从地底放出。从某个角度看,诸神战胜提坦暗喻秩序压倒混沌,天地开辟,万类清明,而堤丰的出现,则代表狂暴的自然力对秩序的反扑。它搅扰日月星辰,以及扬言要合并天地,都佐证了这个观点。
品达(Pindar)曾将堤丰和巨人首领波尔费里翁(Porphyrion)相提并论。两者确有相似之处。普非良也是盖亚所生,曾劫走赫拉,欲施奸淫,结果被宙斯赶来,用雷劈死。在《狄奥尼西卡》中,堤丰也扬言要以赫拉为妻。而很多典籍中也以“巨人”(Gigante)来称呼它。
力量的拟人体现。这点上它又和巨人恩克拉多斯(Enceladus)有很大渊源。}}在巨人战争中,恩克拉多斯本欲逃走,雅典娜将爱特纳火山压在它身上。另一方面,赫斐斯托斯作为火山神,与堤丰也颇相埒。虽然一神一魔,但两者都是赫拉不孕而生。
堤丰也象征恶风。《神谱》说它战败后,从身上生出无数股狂飚,专门滋害往来的海船。这个希腊词到波斯变为طوفان(Tufân),特指印度洋的风暴,到了英语里便成了Typhoon。中文台风一词的由来,有人认为来自台湾的“台”,也有说就是Typhoon的音译。但据清王士禛《香祖笔记》,“台湾风信与他海殊异,风大而烈者为飓,又甚者为台。飓倏发倏止,台常连日夜不止。正、二、三、四月发者为飓,五、六、七、八月发者为台。”可见今日的“台风”一词,源出彼时的“台”字。仅此一字,不太可能是音译typhoon。又有说该词源于粤语“大风”者,或源自闽南语“风筛”。迄无定论。
<a href="https://www.wikiwand.com/zh-hans/人类世界_(北欧神话%29">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/f/f1/Norse_Nine_Worlds.jpg"
caption:"北欧神话九世界"
width:"400px"
align:"right"
tooltip:"">>
</a>
世界之树,又称为“宇宙树”或“乾坤树”,“生命之树”,在北欧神话和芬兰神话中,这个巨木的枝干构成了整个世界。
其音译名为“''尤克特拉希尔''”。所谓“尤克”表示令人害怕之意,而“特拉希尔”是指马,因此组合起来就是“奥丁的马”。其由来是因为奥丁曾经把自己吊在树上,并用长枪—[[冈格尼尔 Gungnir]]刺伤自己,因而发现了''卢恩字母''。奥丁将此举说是“骑马”,世界之树因此有了尤克特拉希尔之名。
此树的树种是白蜡树,高达天际。于此树上衍生有九个王国。
{{Nine Worlds}}
其下有三根粗大的根:
# 第一根树根深入[[亚萨神国阿斯加特 Asgard]],根下有''[[⛲乌尔达泉(命运之泉) Urdarbrunnr]]'',每日诸神会聚在泉水旁边开会讨论。此外还住著的''诺伦三女神'',亦即掌管命运的女神。
# 第二根树根深入[[巨人之国尤腾海姆 Jotunheim]]─巨人的居所,其根下有[[⛲密米尔之泉(智慧之泉) Mímisbrunnr]],是智慧与知识之泉,由[[智慧巨人密米尔 Mimir]]所有。
# 第三根树根深入[[雾之国尼弗尔海姆 Niflheim]]─雾之国,其树根下有泉[[⛲赫瓦格密尔(不竭之泉) Hvergelmir]]和一条不断啃食树根的邪龙“尼德霍格”。它不停地咬著树根,直到有一天当它终能咬断这株树,诸神的黄昏就会来临。
''最小的儿子/初代泰坦/丰收之神 God of the Harvest(所以手持镰刀)''
|!父母 |[[天空之神乌拉诺斯 Uranus]] and [[🌍大地女神盖亚 Gaea]] |
|!妻子 |[[天后瑞亚 Rhea]] |
|标志 |蛇,谷物,镰刀,大镰刀|
|对应罗马神 |''萨顿 Saturn'' |
|对应斯拉夫神 |Rod |
|对应印度教神 |Balaram |
|对应埃及神 |Geb |
|对应美索不达米亚神 |Ninurta |
<a href="https://www.wikiwand.com/en/Cronus">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Rubens_saturn.jpg/360px-Rubens_saturn.jpg"
caption:"Cronus devouring one of his sons, 17th-century oil painting by ''[[Peter Paul Rubens|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%BD%BC%E5%BE%97%C2%B7%E4%BF%9D%E7%BD%97%C2%B7%E9%B2%81%E6%9C%AC%E6%96%AF%20Peter%20Paul%20Rubens%201577-1640:%5B%5B%E5%BD%BC%E5%BE%97%C2%B7%E4%BF%9D%E7%BD%97%C2%B7%E9%B2%81%E6%9C%AC%E6%96%AF%20Peter%20Paul%20Rubens%201577-1640%5D%5D]]''"
width:"400px"
align:"right"
tooltip:"">>
</a>
推翻父亲[[尤拉纳斯|天空之神乌拉诺斯 Uranus]]的统治,后被儿子宙斯推翻。
克洛诺斯通常被描绘成带着竖琴、大镰刀(scythe)或镰刀(sickle),即阉割他父亲尤拉纳斯的武器。
和妻子一起生了三男三女:
* [[赫斯提(灶神) Hestia|👩🍳灶神赫斯提 Hestia]]
* [[得墨忒耳(农业女神) Demeter|🥖丰收女神得墨忒耳 Demeter]]
* [[赫拉 Hera|天后赫拉 Hera]]
* [[哈迪斯 Hades|💀冥王哈迪斯 Hades]]
* [[波塞冬 Poseidon|🔱海神波塞冬 Poseidon]]
* [[宙斯 Zeus|⚡天神宙斯 Zeus]]
推翻父亲后,重新把[[百臂巨人|百臂巨人 Hecatoncheires]]和[[独眼巨人|👁️独眼巨人 Cyclopes]]囚禁,并和自己的姐姐[[瑞亚|天后瑞亚 Rhea]]结婚。
统治时期被称为''黄金时期 Golden Age''。
''从父母处得知自己会被自己的儿子推翻,所以把自己刚出生的小孩一个个吃掉。''瑞亚在最小的儿子宙斯被吃掉前把他用石头替换掉,宙斯活了下来。
宙斯在''泰坦之战''中打败克罗诺斯。
关于克洛诺斯在泰坦之战后的命运的说法不一。在荷马史诗和其他文本中,他与其他泰坦一起被囚禁在塔尔塔罗斯。在奥菲克诗中,他被永远地囚禁在尼克斯洞穴中。品达描述了他从塔尔塔罗斯被释放,在那里他被宙斯封为极乐世界的国王。在另一个版本中,泰坦将独眼巨人从塔尔塔罗斯释放出来,克洛诺斯被授予他们中的王位,开始了黄金时代。在维吉尔的《埃涅伊德》中,克洛诺斯在被他的儿子宙斯打败后,逃到了拉蒂姆,并作为国王和法律制定者登上了拉蒂姆。
在罗伯特-格雷夫斯提到的另一种说法中(他声称是按照拜占庭神话学家Tzetzes的说法),据说__克洛诺斯被他的儿子宙斯阉割了__,就像之前尤拉纳斯被他的儿子克洛诺斯阉割了一样。然而,儿子阉割自己的父亲,或者仅仅是一般的阉割,这个话题被当时的希腊神话学家所否定,以至于他们在基督教时代(Tzetzes写作时)才将其从他们的描述中释放出来。
!! 在罗马神话
虽然希腊人认为克洛诺斯是一种残酷而狂暴的混乱和无序的力量,但相信奥林匹斯众神通过从粗暴和恶意的泰坦手中夺取权力带来了一个和平与秩序的时代,''罗马人采取了更积极和无害的观点通过将他们的土著神萨顿(Saturn)与克洛诺斯结合''。因此,虽然希腊人认为克洛诺斯只是尤拉诺斯和宙斯之间的一个中间阶段,但他是罗马宗教的一个更重要的神。农神节是为纪念他而设立的节日,在古老的罗马王国中至少已经存在一座萨顿(Saturn)神庙。
''他与 "星期六 "黄金时代的联系最终使他成为 "时间 "之神,即历法、季节和收获''--现在不与一般的时间的体现者Chronos混淆。尽管如此,在亚历山大的希腊化学者中,以及在文艺复兴时期,克洛诺斯与 "时间之父 "的化身Chronos的名字混为一谈。
由于克洛诺斯对罗马人的重要性,<span class="highlight">他的罗马变体--萨顿(Saturn)对西方文化产生了很大影响。犹太教-基督教一周中的第七天在拉丁语中被称为Dies Saturni("土星之日"),这又被改编为英文单词Saturday,并成为该词的来源。在天文学中,土星是以罗马神的名字命名的。它是经典行星(肉眼可见的天文行星)的最外层</span>。
[img[https://upload.wikimedia.org/wikipedia/commons/2/27/Saturnus_fig274.png]]
伊登(Idun)是北欧神话中的一位女神,她是青春与春天的化身,同时负责掌管能让诸神保持青春的黄金苹果。她也是诗神布拉基(Bragi)的妻子。
她的出身颇为神秘,有说法认为她属于华纳神族,还有一说她是侏儒伊[[瓦尔德(Ivald)|伊瓦尔迪 Ivaldi]]的女儿。在北欧神话中很少提到她和她的丈夫,不过倒是提到伊登曾被巨人抢走,让诸神没法取得青春苹果,诸神开始老化,引起很大的恐慌。
!! 神话
故事事由邪神Loki开始,一天山巨人[[夏基(Thiazi)|夏基 Thiazi]]变成老鹰抓走洛基,换取自由的条件是要拿伊登和青春苹果交换。洛基回到神之国,趁诸神不注意的时,把伊登骗出户外,夏基再次变成老鹰抓走伊登。当诸神开始老化,才发现事情不好。被揪出做了坏事的洛基,再次肩负救出伊登的任务,他向[[女战神弗蕾亚 Freyja]]借了羽衣,化作老鹰飞到夏基的住处,将伊登变成一颗核果藏在身上,带著她逃出约顿巨人的根据地。愤怒的夏基第三次化作老鹰追了上来,这时诸神升起大火,将疾飞到神之国的夏基给烧死。
北欧神话里一种奇特的存在。
据说当[[亚萨神族 Aesir]]和[[华纳神族 Vanir]]互相争战而后来讲和的时候,两方的神都照规矩吐些唾沫在一个器皿内,算是坚誓的意思。这混合的唾沫后来被诸神造成一个小东西,叫''克瓦希尔(Kvasir)'',以''智慧著名'',常在人间帮助和指导人类。
侏儒法亚拉和戈拉杀了克瓦希尔,并用他的血酿酒,创造出只要喝一口就能拥有诗人才能的神奇蜜酒。一说最后这酒被[[⚡众神之父奥丁(神圣) Odin]]用计骗到手,因此成了诗歌之神。
除了这个故事外,克瓦希尔还出现在围捕[[🦹邪神洛基 Loki]]时,他发现了洛基遗留的渔网,因此判断出洛基化成鱼躲在水里。
!葡萄收获、酿酒和葡萄酒、生育、果园和水果、植被、精神错乱、仪式疯狂、宗教狂喜、节日和戏剧的神
|标志 |Thyrsus<<footnote "wand" "是一根魔杖或大茴香(Ferula communis)的杖,上面覆盖着常春藤和叶子,有时还缠绕着taeniae,上面有一个松果或一束葡萄叶和葡萄或常春藤叶和浆果,在希腊的节日和宗教仪式上携带。 thyrsus通常与希腊神狄奥尼索斯或其罗马对应的巴克斯联系在一起,并代表着与狄奥尼索斯类似的繁荣、肥沃和享乐主义的象征。">>、葡萄藤、公牛、豹子、常春藤、山羊、面具、圣杯 |
|对应罗马神 |Bacchus, Liber |
|对应埃特鲁里亚神 |Fufluns |
|对应埃特鲁里亚神 |Osiris |
潘多拉神话首次出现在''赫西奥德史诗篇《神谱》''(约公元前 8 至 7 世纪)的第560 至 612 行中,但从未给这个女人起过名字。
在人类收到普罗米修斯偷来的火之礼物后,愤怒的宙斯决定给人类一份惩罚性的礼物,以补偿他们所获得的恩惠。他命令赫菲斯托斯从地球上塑造第一个女人,一个“美丽的邪恶”,其后代将折磨人类。赫菲斯托斯这样做之后,雅典娜给她穿上了一件银色的长袍、绣有面纱、花环和华丽的银冠。这个女人在神谱中无名,但大概是潘多拉。
<<<
From her is the race of women and female kind: of her is the deadly race and tribe of women who live amongst mortal men to their great trouble, no helpmeets in hateful poverty, but only in wealth。
<<<Hesiod, the Theogony,(590-594)
潘多拉神话更著名的版本来自赫西奥德的另一首诗《作品与日子》。在这个版本的神话中(第60-105行), 赫西俄德对她的起源进行了扩展,而且扩大了她对人类造成的痛苦的范围。和以前一样,她是由赫菲斯托斯创造的,但现在更多的神为她的完成做出了贡献(63-82行):
* 雅典娜教她做针线活和编织(63-4),
* 阿佛洛狄忒 "在她的头上洒下恩惠和残酷的渴望以及使四肢疲惫的忧虑"(65-6)
* 赫尔墨斯给了她 "无耻的思想和欺骗的本性"(67-8)。赫尔墨斯也给了她说话的能力,把 "谎言和狡猾的话语 "放在她身上(77-80);
* 雅典娜然后给她穿上衣服(72);接下来佩托(Persuasion)和夏利特人用项链和其他装饰品来装饰她(72-4);
*Horae(掌管季节和时间的自然部分的女神)用花环冠冕来装饰她(75)
* 最后,赫尔墨斯给这个女人起了个名字:"潘多拉[即 "所有的礼物"],因为所有住在奥林匹斯山的人都给每个人一份礼物——即给吃面包的人(代之人类)一个灾祸。"(81-2)。
在她的故事的重述中,潘多拉狡猾的女性天性成为人类最不担心的问题,因为她带来了一个罐子''(由于 16 世纪的文字损坏,后来被称为盒子)''装有“无数瘟疫”。普罗米修斯警告他的兄弟厄庇墨修斯不要接受宙斯的任何礼物。但是厄庇墨修斯不听。他接受了潘多拉,潘多拉立刻把她罐子里的东西散开了。
! 永恒的青春、壮年、宽恕的女神,众神的持杯人
''Hebe''(''/ˈhiːbiː/''; Greek: Ἥβη)
|!父母 |[[宙斯|⚡天神宙斯 Zeus]]和[[赫拉|天后赫拉 Hera]] |
|!对应罗马神 |Juventas |
|!对应北欧神 |[[🍎青春女神伊登 Idun]]|
战神[[阿瑞斯|🛡️战神阿瑞斯 Ares]]的亲妹妹。
赫柏漂亮而活泼可爱,是个永远年轻貌美的青春女神。通常她的形象''是一位少女,头戴花冠,手里捧著一个金碗或金杯,有时正在喂养宙斯的鹰,有时也会帮助母亲赫拉换马具、驾车等''。另外,她也是奥林匹斯山诸神的''斟酒官'',在每次宴会中,由她替诸神斟酒,而这些酒会使诸神心花怒放,永保青春活力,并永无倦意。
赫柏还同[[缪斯|缪斯 Muses]]女神和时序女神荷赖一起伴随着阿波罗七弦琴的优美音乐,在众神的宴席场间翩翩起舞。她还曾经使[[伊俄拉俄斯(Iolaus)|伊俄拉俄斯 Iolaus]]返老还童。在哥哥阿瑞斯同[[狄俄墨得斯|狄俄墨得斯 Diomedes]](Diomedes)战斗后,她则为阿瑞斯擦洗身体,帮他治疗伤口。
后来她嫁给升上天界的大英雄[[赫拉克勒斯|💪大力神赫拉克勒斯 Heracles]],并为他生下两个儿子。
赫柏身为神界的正宫公主,可她却是众女神中混得最差的一位。她时刻准备着按照宙斯的意愿为诸神斟满美酒。可遗憾的是,这位年轻貌美的女神,在一个不该摔倒的时刻摔倒,不慎露出了下体,有伤大雅,因此而闹得满城风雨,最后她在不得已之下辞去了为诸神斟酒的职务。后来斟酒官一职,宙斯则从人间找来年轻英俊的特洛伊王子伽倪墨得斯来代替她。__(这个故事并非正统的希腊神话来源,是16世纪英格兰教会转化成一个道德化的故事,警告女性在任何时候都必须要有适当的衣着,裸体女性被教会视为可耻。)__
维达(或做Víðarr、Viðarr)是奥丁和[[女巨人格莉德|格莉德 Grid]]所生的孩子。他是不灭的自然力之拟人化,或称“森林之神”或“原始森林之神”。他注定在诸神的黄昏之后,和他的兄弟[[瓦利|瓦利 Vali(son of Odin)]]成为新世界的神。
维达住在阿斯嘉特一片广大的森林中,他的居所叫''兰德维迪'',意即“广土”或维迪(Vidi),意即“宽广”。他的另一个称呼是“''沉默之神''”,他从[[🔮诺伦三女神(命运三女神) Norns]]处得知自己命运的预言后,就待在森林深处,不发一语。
他的形象是高大,穿甲胄,带著一把阔剑,''穿著一只靴子''。有些人认为这靴子是铁做的,由于他的母亲''格莉德''知道他永将与火相争,所以为他做铁靴子以防火。另一个说法是他的靴子为皮革做的,甚至是由皮革匠们丢弃的废皮拼凑而成的。在诸神的黄昏时,[[🐺魔狼芬里尔 Fenrir]]击败奥丁并将其吞下肚,维达赶上前,一脚踩住芬里尔的下额,两手抓住狼的上颚,最后把芬里尔撕为两半,报了父仇。所以也有人说他是“''复仇之神''”。
另在神话中向来只提到维达的一脚和一靴,也许可以解释他是一个独脚的神。
她是[[塔尔塔洛斯|😈地狱塔尔塔罗斯 Tartarus]]的独眼巨人和百手的守卫,泰坦的统治者[[克洛诺斯|🌾丰收之神克洛诺斯 Cronus]]将他们囚禁在那里。
当有人向[[宙斯|⚡天神宙斯 Zeus]]预言他将在泰坦之战——对抗泰坦的伟大战争中取得胜利——在坎珀的俘虏的帮助下,他杀死了坎珀,释放了独眼巨人和百手,然后他们帮助宙斯打败了克洛诺斯。
在神话中,坎珀是''一个龙(或蛇)形的怪物,但长着女人的躯干和头,尾巴则像蝎子''。古希腊诗人诺努斯在其长诗狄奥尼西卡中详尽地描述了坎珀的外貌。
尼德霍格是北欧神话中的邪龙,尼德霍格盘据在[[🌲世界之树 Yggdrasil]]的底部,不断啃蚀著世界之树的树根。
在史洛里·斯图拉松的《散文埃达》〈欺骗古鲁菲〉中提到,世界之树的根就位在尼福尔海姆[[⛲赫瓦格密尔(不竭之泉) Hvergelmir]]旁,而尼德霍格就在这拼命的想将世界之树弄倒,另外还有不少毒蛇也在帮他的忙,这些蛇有:格因、摩因、格拉巴克、格拉弗沃鲁德、奥弗尼尔、和斯瓦弗尼尔。等到它们将世界之树的根咬穿时,“''诸神的黄昏''”也就到来。
在《诗体埃达》中除了提到尼德霍格啃咬树根之事外,还有它和世界之树顶端的''老鹰维德佛尔尼尔''彼此结怨,而''松鼠拉塔托斯克''是它们之间的挑拨者。另外,它也吃因为作恶多端而在死后被抛到''赫瓦格密尔泉''的死者灵魂。〈女巫的预言〉中提到,诸神黄昏之后,尼德霍格鼓动双翅并满载死尸于战场上飞翔。
拉冬是一条像蛇一样的龙,缠绕在赫斯珀里德花园的树上,守护着金苹果。被前来盗取金苹果的赫拉克勒斯所杀,死后被提升至空中,成为天龙座。
在神话的另一个版本中,拉冬从未被杀死,赫拉克勒斯反而让泰坦神[[阿特拉斯|阿特拉斯 Atlas]]去取回苹果。同时,[[赫拉克勒斯|💪大力神赫拉克勒斯 Heracles]]取代了阿特拉斯的位置,撑起了天空。
他可能有多个头,在阿里斯托芬(Aristophanes)的《青蛙》(第 475 行中的一段话)中有一百个,它们可能会用不同的声音说话。
''科尔奇斯凶龙''(δράκων Κολχικός)是在科尔奇斯王国(古希腊语:Κολχίς)''守护金羊毛的不眠龙''。它盘据在科尔奇斯境内的战神森林里橡木树上,不眠不休守护金羊毛。最终被科尔奇斯公主美蒂亚(古希腊语:Μήδεια/拉丁语:Medea)用药所催眠,使英雄伊阿宋(古希腊语:Ἰάσων/拉丁语:Iason)取得金羊毛。但在《变形记》中所述,是美蒂亚把遗忘河的草药汁(拉丁语:Lethaei gramine suci)给伊阿宋,使其接近凶龙,用药洒向凶龙三遍才使其有睡意,并得金羊毛,但似乎没有斩杀他。
''利维坦''(Leviathan),又译''巨灵'',1874年施约瑟翻译的旧约全书译为利未雅坦,之后的圣经和合本译为鳄鱼,现在的和合本修订版译为力威亚探,圣经思高本译为里外雅堂,圣经现代中文译本译为''海怪'',是''《希伯来圣经》''的一种怪物,形象原型可能来自鲸及鳄鱼甚至滑齿龙及沧龙或者龙王鲸。“利维坦”一词在希伯来语中有着''“扭曲”、“漩涡”''的含义。《以赛亚书》第二十七章描述利维坦为''“曲行的蛇”'';乌加里特史诗则记载利维坦为利坦(Litan),并形容其为“缠绕之蛇”。后世每提到这个词语,''都指来自海中的巨大怪兽,而且大多呈大海蛇形态''。
根据《以诺书》记载“在那天,两个兽将要被分开,母的兽叫利维坦,她住在海的深处,水的里面;公的名叫贝赫莫特,他住在伊甸园东面的一个旷野里,旷野的名字叫登达烟,是人不能看见的”。
!! 形象
《希伯来圣经》里的利维坦,是一头强到足以与萨麦尔相提并论的强大怪兽,其形象亦与《以赛亚书》中的海怪“拉哈比”(Rahab)十分相似,类似形象的生物在圣经中尚有许多,相信都是利维坦的形象来源。
《约伯记》(第41章)中提到,利维坦是一头巨大的生物。它畅泳于大海之时,波涛亦为之逆流。它口中喷着火焰,鼻子冒出烟雾,拥有锐利的牙齿,身体好像包裹着铠甲般坚固。性格冷酷无情,暴戾好杀,它在海洋之中寻找猎物,令四周生物闻之色变。
《以诺书》中,利维坦是在上帝创造世界的第六天制造的两只怪物中的一只,她是混沌的巨龙,有说像巨蛇有说像鳄鱼,也有说是巨鲸的模样。
! 巨蟒
在希腊神话中,Python(希腊语:Πύθων;gen. Πύθωνος)是一条蛇,有时被描绘成一条中世纪风格的龙,生活在地球的中心,古希腊人相信它在德尔斐[[Delphi|Delphi]]。
Python,有时写作Pytho,主持德尔菲克(Delphic)神谕,该神谕存在于其母亲[[盖亚Gaia|🌍大地女神盖亚 Gaea]]的崇拜中心,即 "地球",Pytho是替代早期Krisa的地名。''希腊人认为该地点是地球的中心,由一块石头代表,即蟒蛇守护的//圆锥形神石 omphalos//<<footnote "rock" "omphalos是一种宗教石制工艺品,或称Baetylus。在古希腊语中,ὀμφᾰλός(omphalós)这个词的意思是“肚脐”。在古希腊人中,人们普遍认为德尔斐是世界的中心。根据有关德尔菲神谕的建立的神话,宙斯为了确定地球中心的位置,从世界的两端发射了两只鹰,这两只鹰同时出发,以相同的速度飞行,在德尔菲地区的上空交汇,所以是宙斯放置石头的地方。 翁法洛斯也是送给克洛诺斯的石头的名字。在古代地中海世界,它是一个强大的宗教象征。Omphalos综合症指的是相信一个地缘政治权力和货币的地方是世界上最重要的地方。">>或肚脐。''
蟒蛇成为后来的奥林匹斯神阿波罗的敌人,阿波罗杀死了它,并接管了蟒蛇的故居和神谕。这些都是古希腊和古罗马世界中最著名和最受尊敬的。''像许多怪物一样,蟒蛇被称为盖亚之子,并被预言为盖亚之子。因此,阿波罗在Delphoi建立他的神庙之前,必须消灭这个对手。''
!! 阿波罗杀Python的几个版本
希吉努斯(Hyginus)的版本认为,当宙斯与女神莱托躺在一起时,她怀上了阿耳特弥斯和阿波罗,赫拉嫉妒了,派Python在各地追捕莱托,以阻止她生下双神。因此,当阿波罗长大后,他想为他母亲的困境报仇,于是追赶Python,直奔大蛇居住的帕纳索斯山,并追赶它到德尔菲的盖亚神谕;在那里,他敢于穿透神圣的区域,在女祭司坐在鼎上的岩石裂缝旁用箭射死它。罗伯特-格雷夫斯(Robert Graves)习惯于在原始神话中重述古代的政治和社会动荡,他在这里看到了希腊人对一个前希腊神庙的占领。"他在《希腊神话》中写道:''"为了安抚德尔菲的当地舆论,我们定期举行葬礼,以纪念死去的英雄蟒蛇,她的女祭司也被留任。" ''
Erwin Rohde写道,Python是大地的精灵,被阿波罗征服,并被埋葬在//omphalos//之下,这是一个神在另一个神的坟墓上建立他的神庙的案例。
[[德尔斐Delphi|Delphi]]的神谕女祭司被称为 Pythia,以地名 Pytho 命名,希腊人将其解释为以被杀死的蛇的尸体在 Hyperion(白天)或 Helios(太阳)的力量下腐烂(πύθειν)命名。
又译''许德拉''。
勒拿九头蛇因传说中其所栖身的沼泽位在勒拿湖附近而得名。它是体形硕大的水蛇之属,关于其头的个数,说法不一。保萨尼亚斯认为只有一个,西蒙尼特斯说有五个,托普塞(Edward Topsell)增加至七个,到了狄奥多罗斯的版本中甚至多达一百个。但大部分典籍都以九头为准,尤其指出最中心的那个头刀枪不入(也有说是金色的)。
<a href="">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6c/Hydra_04.jpg/540px-Hydra_04.jpg"
caption:"十六世纪的德国插画家,受到《兽名数目》的影响所绘制的九头蛇"
width:"400px"
align:"right"
tooltip:"">>
</a>
!! 与[[赫拉克勒斯|💪大力神赫拉克勒斯 Heracles]]
九头蛇因赫拉克勒斯而出名。那位英雄十二大伟绩中的第二件便是杀死这妖魔。九头蛇剧毒无比,沼泽的水也因此长年恶臭,四周土地变为褐色。它还经常吞食过往行人牲口,为害一方。赫拉克勒斯与侄子伊奥劳斯驾马车来到沼泽。他命伊奥劳斯看住车辆,自己用火箭将九头蛇引出。双方展开大战,每当英雄用剑(一说为镰刀)砍掉那魔怪的一个头,另一个新头(一说两个)又重新生出。赫拉克勒斯于是喊侄子来帮忙。伊奥劳斯用火炬烧灼断颈,头便无法重生。最后赫拉克勒斯将八头一一砍下,又用巨棍打落正中的主头,埋于土中,用大石压住,才算铲除这一祸害。后来宙斯为纪念赫拉克勒斯的丰功伟绩,将被他杀死的九头蛇升到空中,变成了长蛇座。
[img[https://upload.wikimedia.org/wikipedia/commons/thumb/c/c0/Antonio_del_Pollaiolo_-_Ercole_e_l%27Idra_e_Ercole_e_Anteo_-_Google_Art_Project.jpg/440px-Antonio_del_Pollaiolo_-_Ercole_e_l%27Idra_e_Ercole_e_Anteo_-_Google_Art_Project.jpg]]
根据其它版本所述,双方搏斗正酣之际,赫拉派来一只巨蟹来协助魔物。巨蟹钳了海格力斯一下,旋即被英雄杀死。这只巨蟹成为了天空中''巨蟹座''的来源。
九头蛇死后,海格力斯将其胆部的毒汁涂抹在箭头上。这些毒箭后来误伤了人马喀戎。喀戎是不死之身,但蛇毒入骨,疼痛难当,他便放弃了永生,宁愿一死,飞上天空成了''人马座''。
|!父母 |[[刻托 Ceto]] and [[福耳库斯 Phorcys]] |
|!配偶 |[[🌪️提丰 Typhon]] |
|!标志 ||
|!对应罗马神 ||
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/8/83/Echidna_-_parco_dei_mostri.jpg"
caption:"Pirro Ligorio的雕塑,1555年,意大利拉齐奥Parco dei Mostri(怪物公园)。"
width:"400px"
align:"right"
tooltip:"">>
厄客德娜(厄克德娜,古希腊语:Ἔχιδνα,字面意思为“''雌性毒蛇''”;英文:Echidna)是希腊神话中半人半蛇的怪物。
她的上半身是美貌的女子,下半身却是蛇的躯体(有时有两条蛇尾)。
厄客德娜居住的地点或说是[[冥界|冥界 Greek underworld]],或说是斯基泰地区,或说是奇里乞亚地下名为阿里马的深不可测的洞穴。
她是可怕的怪物[[堤丰|🌪️提丰 Typhon]]的配偶,也是希腊神话中许多最著名怪物的母亲。
关于厄客德娜的父母,有很多种不同的说法。赫西俄德说她是''福耳库斯''和''刻托''之女。保萨尼阿斯则认为她是''珀拉斯''(宙斯的一个孙子)和''斯梯克斯''之女。其它的说法还包括''塔耳塔罗斯''和''盖亚''之女,或''克吕萨俄耳''和''卡利罗厄''之女等等。
厄客德娜的结局是在睡觉时被百眼巨人[[阿耳戈斯|阿尔戈斯 Argos/Argus Panoptes]]杀死。
!! 子女
厄客德娜与堤丰结合生了许多可怕的怪物。这当中包括:
# [[🦁涅墨亚狮子 Nemean lion]]
# [[🐶刻耳柏洛斯/地狱三头犬 Cerberus]]
# [[🐶双头犬 Orthrus]]
# [[🐉拉冬 Ladon]]
# [[🐉科尔喀斯凶龙 The Colchian dragon]]
# [[🐐奇美拉 Chimera]]
# [[🦁斯芬克斯 Sphinx]]
# [[🐍勒拿九头蛇 Lernaean Hydra]]
# 高加索神鹰 Caucasian Eagle
# [[🦊透墨索斯恶狐 Teumessian fox]]
# [[🐷克罗美昂尼的牝猪 Crommyonian Sow]]
! 神话中的食蚁蛇
The ''amphisbaena'' (''/ˌæmfɪsˈbiːnə/'', plural: amphisbaenae; Ancient Greek: ἀμφίσβαινα),也被称作''amphisbaina, amphisbene, amphisboena, amphisbona, amphista, amfivena, amphivena, or anphivena''。
根据希腊神话,当珀尔修斯手持[[美杜莎|🐍美杜莎 Medusa]]的头飞越利比亚沙漠时,从她的头部滴下的血液中产生了两栖动物,之后卡托的军队在行军中与其他蛇一起遇到了它。
[img[https://upload.wikimedia.org/wikipedia/commons/d/dc/%D0%90%D0%BC%D1%84%D0%B8%D1%81%D0%B1%D0%B5%D0%BD%D0%B0._%D0%9C%D0%B8%D0%BD%D0%B8%D0%B0%D1%82%D1%8E%D1%80%D0%B0_%D0%B8%D0%B7_%D0%90%D0%B1%D0%B5%D1%80%D0%B4%D0%B8%D0%BD%D1%81%D0%BA%D0%BE%D0%B3%D0%BE_%D0%B1%D0%B5%D1%81%D1%82%D0%B8%D0%B0%D1%80%D0%B8%D1%8F.png]]
//Amphisbaena in an illustration from the Aberdeen Bestiary (c. 1200)//
|父母 |[[Phorcys|福耳库斯 Phorcys]] and [[Ceto|刻托 Ceto]] |
''戈耳工''(Gorgon,或者译作蛇发女妖,意为可怕的,另有人谓为高声咆哮的),是一种长有尖牙,头生毒蛇的女性怪物。戈耳工最早出现在希腊神话中,指的是三姊妹:
# [[斯忒诺 Stheno]]
# [[欧律阿勒 Euryale]]
# [[🐍美杜莎 Medusa]]
她和她的妹妹尤里阿勒都是不死之身,而第三个妹妹美杜莎则是凡人。
!! 历代传闻
和现今大众文化中流传的戈耳工形象(头生毒蛇的女性怪物)不同,最早在希腊神话中登场的戈耳工有着不一样的面貌。有些传闻将祂们描绘成''身长金色羽翼、黄铜利爪、野猪獠牙''。在神话中,看到戈耳工颜面的人会化为石头。
''荷马(Homer)''在《伊利亚特》(ΙΛΙΑΣ,Iliad)中只论及一个戈耳工,祂的头颅被嵌在宙斯的神盾埃癸斯(Aegis)之中。在《奥德赛》(Odyssey)中,这个戈耳工被描绘成一个''地底妖怪''。
''赫西俄德(Hesiod,公元前8-7世纪)''将戈耳工的数量增加到三个—''斯忒诺(Stheno,富有力量的)、欧律阿勒(Euryale,“遥远的漫游”或“广阔的大海”)、美杜莎(Medusa,皇后)'',并使她们成为海神福耳库斯(Phorcys)和刻托(Ceto)的女儿。据后来来自利比亚的可靠资料称,她们的居所在西洋的辽远之处。
在由''欧里庇得斯(Euripides, 480B.C. - 406B.C.)''所重新上演的雅典传统剧目里戈耳工成了一个妖怪,祂由盖亚(Gaia)所创,来辅助其几个儿子对付众神;为雅典娜(Athena,相当于罗马神话中密涅瓦)所杀。
''Medusa'' (/''mɪˈdjuːzə, -sə/''; Ancient Greek: Μέδουσα "guardian, protectress 监护人,保护者")
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/9/98/Gorgona_pushkin.jpg">
<div class="desc">公元前4世纪的希腊美杜莎形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/6/63/Gorgoneion_Syrakus.jpg">
<div class="desc">公元前7世纪美杜莎雕塑</div>
</div>
</div>
希腊神话中,美杜莎(古希腊语:Μέδουσα,意为“守护者、保护者”等),或译梅杜莎、墨杜萨等,是戈尔贡之一。她通常被描述为有翅膀的女性,头发内有活的毒蛇。那些凝视她眼睛的人都会变成石头。大多资料将她描述为佛西士(Phorcys)和克托(Ceto)的女儿,尽管希吉努斯将她描述为戈尔贡和克托的女儿(或她与姐妹为堤丰和艾奇娜的孩子)。
在希腊神话中,美杜莎被[[珀尔修斯|珀尔修斯 Perseus]]斩首,然后珀尔修斯使用她的头作为武器,直到他把它交给女神雅典娜放在她的盾牌上,她的头保留了将旁观者变成石头的能力。在古典时代,美杜莎的头像出现在被称为女魔脸形饰(Gorgoneion)的驱邪装置中。
根据珀尔修斯的说法,她在伊奥利亚海滨城镇 Κισθήνη 附近的萨尔佩顿(Sarpedon)生活和死亡。公元前 2 世纪的小说家 Dionysios Skytobrachion 将她放在古利比亚的某个地方,希罗多德曾说在那里柏柏尔人在他们的传统宗教之中发想出她的神话。
根据诗人阿波罗多洛斯的《书库》所述,美杜莎在外观有缠著龙鳞的头、像野猪一般的獠牙、青铜般的手爪、金色的翅膀。
!! 传说
古代传说中,美杜莎的形象就几经变化。公元前8世纪的《荷马史诗》称美杜莎的头被用来装饰盾牌以吓阻敌人,但其中未介绍戈耳工神话之来源。公元前7世纪的《神谱》较完整介绍了美杜莎的故事,此时美杜莎相关的艺术作品已遍及希腊各地,常见描述是面目可憎、吐舌、猪齿、头缠毒蛇的巨型女妖。公元前490年左右的《皮托凯歌(10)》有所不同,其中的美杜莎面容娇好,此后该形象也流传于希腊各地及文献中。在罗马帝国地理学家保萨尼亚斯笔下,美杜莎是屈顿尼斯湖(英语:)的守护者。奥维德的《变形记》中,美杜莎本是一名美丽少女也是担任雅典娜神庙的女祭司深受波塞冬的仰慕,当她在雅典娜神庙中跟波塞冬幽会(另一个说法是受到凌辱)被雅典娜得知此事因而受罚,使自己的秀发变为毒蛇,双眼被师法成看到她的人会变成石头。阿波罗多洛斯的《神话全书》中,美丽的美杜莎不自量力与雅典娜比美而被变为女妖。
赫西俄德的《神谱》也称黑发的波塞冬被金发的美杜莎吸引住而与美杜莎共度一夜。欧里庇得斯的《伊翁》中也称美杜莎是盖亚生出来与诸神作怪的妖怪。美杜莎一词有“极度丑陋的女子”之含意。
罗马诗人奥维德的《变形记》中记述,在纯洁的密涅瓦神庙里,涅普顿获得美杜莎的爱[可疑]。也提及涅普顿变成一只鸟和蛇发的美杜莎生下飞马,因而被密涅瓦变成蛇发,但石化人的能力仍是美杜莎所天生拥有的。
戈尔贡三姐妹中只有美杜莎是血肉之躯(并非凡人,仅表示可以被杀死的),所以珀耳修斯受到雅典娜和赫耳墨斯等诸神的帮助才成功砍下她的头颅,珀耳修斯将美杜莎的头颅装在特制的皮囊中,随后飞上天空逃走。在天空中还遭遇狂风,在经过利比亚沙漠时,皮囊不小心倾斜一下,从美杜莎头颅上滴下的点点鲜血落到地上,变成各型各色的毒蛇。珀耳修斯借助美杜莎头颅的力量除掉海怪解救安德洛墨达还将菲纽斯和他的士兵们变成石像。最后珀耳修斯将美杜莎的头颅献给雅典娜,雅典娜将它镶嵌在神盾埃癸斯的中央(也有的神话说是嵌在雅典娜的护甲上)。根据另一说法,珀耳修斯将美杜莎的头颅埋在阿尔戈斯的市集内。据说赫拉克勒斯从雅典娜那里得到一撮美杜莎的蛇发(和头颅具有同样的魔力)并且把它送给刻甫斯的女儿斯忒洛珀,以保护忒革亚城避免受到攻击。这撮头发一出现在人民眼前就会引起一场暴风雨使敌人逃窜。此外,传说美杜莎与波塞冬生有两个儿子,他们在美杜莎被杀后,从她脖子里喷出的血液中出现,即:飞马珀伽索斯(后来变成飞马座)及巨人克律萨俄耳(希腊语:)。不仅如此,珀耳修斯还收集到美杜莎身躯里流淌出来的血液,因为它有着神奇的作用。从美杜莎左翅脉血管中淌出来的血是一种致命的毒药,而右翅脉血管中淌出来的血则具有起死回生的功效,雅典娜把拥有起死回生功效的血液赠给医神阿斯克勒庇俄斯让他用这种血液来做药。
<a href="https://www.wikiwand.com/en/Thor_Battering_the_Midgard_Serpent">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Johann_Heinrich_Fussli-Tor_and_Jormundgandr.jpg/997px-Johann_Heinrich_Fussli-Tor_and_Jormundgandr.jpg"
caption:"Thor Battering the Midgard Serpent (1790) by ''Henry Fuseli''"
width:"400px"
align:"right"
tooltip:"">>
</a>
耶梦加德(Jörmungandr),又译约尔蒙干德、尤蒙刚德,或称为中土巨蛇、米德加特大虫,本意是“巨大的怪兽”,是北欧神话中的巨大海蛇,是邪神洛基与女巨人安尔伯达(Angerboda)所生的三名儿女中的次子,哥哥是[[魔狼芬里尔|🐺魔狼芬里尔 Fenrir]],妹妹是死神赫尔(Hel)。
根据《埃达经》的记载,耶梦加德是一条身型极为庞大的巨蛇,它与巨狼芬里尔、死神赫尔都充满著邪恶的力量。主神[[奥丁|⚡众神之父奥丁(神圣) Odin]]感到洛基的这三名儿女都是阿斯嘉特的重大威胁,也将会是破坏世界的祸根,于是分别想出主意来压制它们。
奥丁趁耶梦加得还年轻时,就把它扔进环绕著人间世界的无底深海之中,可是巨蛇的体型已经非常庞大,它把身子伸展,竟然刚好在深海的另一端咬著自己的尾巴(姿态仿如''衔尾蛇'')。耶梦加得在海中不能挣脱,只好把身体紧拢著,把整个尘世(Midgard)围堵了,因而被称为“世界蛇(World Serpent)”、“尘世巨蟒(Midgard Serpent)”及“围绕中庭的巨蛇(Midgardsormr,Midgard-Worm)”。而它生命中的宿敌,就是诸神之中最强的[[⚒️雷神托尔 Thor]]。
!! 神话
!!! [[被Thor举起的猫|雷神托尔]]
某次,雷神Thor探访外域,遇到了当地的国王乌特迦·洛奇。国王出了一些难题刁难Thor,其中一项便是要求Thor把国王所养的一只猫举起。以力大无穷闻名的Thor接受考验,谁知使尽力气都只能举起猫的一只脚,这结果令Thor沮丧不已。最后,国王告诉Thor,原来一路以来的考验都是国王所施的法术,他要求Thor举起的猫,真身其实就是大蛇耶梦加德。耶梦加得的巨大足以环绕人间世界,而Thor竟然可以把它举起一部份,可见Thor的力量如何强大。
!!! 垂钓巨蛇
另一个关于巨蛇的故事也是跟Thor有关的。某次,Thor随巨人西米尔出海捕鱼,为了向西米尔显露实力,Thor把船开到离岸远处,以巨牛的头部当作鱼饵,放到海洋深处,用尽毕生气力与咬著牛头的巨蛇角力,成功把巨蛇引出海面。巨蛇耶梦加德冲到海面后,既惊且怒,它不断释放毒气与蛇血,并使力拉扯著,连Thor立足的船只都受到破坏。这时候,Thor拿起巨锤想要击在巨蛇头上,可是西米尔却怕得把丝线剪断了。跌回大海的巨蛇,从此与Thor有著不共戴天之仇。
!!! 诸神的黄昏
在北欧神话的末日之战“诸神的黄昏”中,耶梦加德与地上的邪恶势力互相产生共鸣。它从睡梦中苏醒过来,在海底不断翻腾著,引起滔天巨浪淹没世界,并且来到阿斯加特的土地上,正式向诸神宣战。它的交战对手,正是与它有极深恩怨的雷神Thor。Thor深深了解巨蛇的威力,不敢怠慢,三度将雷神之锤掷向耶梦加德,都被耶梦加得巧妙避过。巨蛇亦不示弱,一直向Thor喷出毒液。最后,Thor成功以巨锤击中了巨蛇,巨蛇的毒液亦深入Thor的身体,结果双方同归于尽。
<a href="">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/b/b3/Chimera_Apulia_Louvre_K362.jpg"
caption:"普利亚盘子上的客迈拉,大约公元350-340年 (卢浮宫)"
width:"400px"
align:"right"
tooltip:"">>
</a>
''客迈拉''(希腊语:Χίμαιρα;拉丁语:Chimaera;英语:Chimera)或译''凯美拉、奇美拉'',是希腊神话中会喷火的怪物。它居住于安纳托利亚的吕基亚。是为母兽,其名字来自普通名词χίμαιρα,意思为“母羊”。
“Chimera”一词在近代演变为异种生物部位混和之神话幻想生物的泛称。
!! 外貌
传闻它上半身像狮子,中间像山羊,下半身像毒蛇,口中喷吐着火苗。根据书库所描述,客迈拉的山羊头会喷火,位置可能是在腰部(原文写做中间,或许是身体的中间)。
加姆在北欧神话中是一只守护著死人国度“[[冥界 Helheimr]]”的地狱巨犬,住在海姆冥界边界的永劫深渊''格尼巴(Gnipahellir)''里。它总是以全身鲜血的形象出现,是神话里除了[[🐺魔狼芬里尔 Fenrir]]以外最大的犬科动物。
最后在诸神的黄昏时,加姆与[[🛡️战神提尔 Tyr]]同归于尽。
奥德姆拉(Auðumbla)是北欧神话中的一头母牛,奥德姆拉和始祖巨人尤弥尔是世界上最早出现的生物。尤弥尔吸食奥德姆拉的乳水维生,奥德姆拉拉则舔食著冰上的盐粒,三天三夜之后,欧德姆布拉舔食的冰里出现了布利,布利是所有神祇的祖先,也是奥丁、威利,和菲三兄弟的祖父。
欧德姆布拉只出现在''散文埃达''中,散文埃达是由斯诺里·斯蒂德吕松于十三世纪所著作。学者认为奥德姆拉的形象起源于早期的日耳曼神话,可能与其他神话中以牛科动物形象出现,或是和乳牛有关联的女神相关。
{{sleipnir.mp3}}
<a href="https://pantheon.org/gallery/norse/sleipnir2.html">
<<image-basic "https://pantheon.org/gallery/norse/vi4vmpvqbgvxavy7.jpg"
caption:"Odin and Sleipnir 1760"
width:"400px"
align:"right"
tooltip:"">>
</a>
斯雷普尼尔(Sleipnir),另译斯莱普尼斯。是北欧神话中[[⚡众神之父奥丁(神圣) Odin]]的座骑,一匹有''八只脚''的神骏天马,所以也译为八脚马。
在《诗体埃达》及《散文埃达》中指斯雷普尼尔是由洛基及斯瓦迪尔法利所生,是最好的马。''奥丁''曾策骑它到冥府。《散文埃达》亦纪录了它的出生及身体呈灰色。13世纪《赫瓦拉尔萨迦》内的一个谜语曾提及斯雷普尼尔;《沃尔松格萨迦》指它是格拉尼的祖先;《丹麦人的事迹》内亦有提及它。
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
''喀戎''(转写:Chiron)也译''奇戎'',是希腊神话中非常著名的贤人,属于半人马族。
|!父母 |[[🌾丰收之神克洛诺斯 Cronus]] and [[菲吕拉 Philyra(Oceanid)]] |
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
在希腊神话中,半人马居住于希腊中东部屏达思山和爱琴海之间、叫做忒萨利和阿耳卡狄亚的两个地区。他们经常因为放荡和好色而被描述成[[🍺酒神狄俄尼索斯 Dionysus]]的追随者,他们中的一个例外便是喀戎。
!! 故事
Chiron是水仙女''菲吕拉''与''克洛诺斯''的孩子。无法接受Chiron样貌的''菲吕拉'',请''宙斯''将自己变成''菩提树'',抛弃了Chiron。
与其他凶残野蛮的半人马不同,Chiron以其和''善及智慧''著称,所以在中文里也常被美称为''人马''。
他从[[阿波罗|☀️太阳神阿波罗 Apollo]]和[[🌖月神阿尔忒弥斯 Artemis]]学习了音乐、医术、狩猎等各种技艺,尔后成为多位希腊英雄的导师,当中包括[[珀尔修斯 Perseus]]、[[忒修斯 Theseus]]、[[阿喀琉斯 Achilles]]、[[伊阿宋 Jason]]和[[💪大力神赫拉克勒斯 Heracles]]。他也是医药之神[[⚕️医药之神阿斯克勒庇俄斯 Asclepius]]的老师。
欧律提翁(Eurytion),阿卡迪亚的一位半人马(Centaur),他要求娶奥莱努斯的德克萨米努斯(Dexamenus)的女儿(姆内西玛克(Mnesimache)或得阿尼拉(Deianira)),或者威胁在他的女儿希波吕忒(Hippolyte)与阿赞(Azan)结婚的那天对她施以暴力。
她的父亲被迫同意,但[[赫拉克勒斯|💪大力神赫拉克勒斯 Heracles]]介入并杀死了野马人。
|!父母 |[[🐍美杜莎 Medusa]] and [[🔱海神波塞冬 Poseidon]] |
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
<a href="https://www.wikiwand.com/en/Pegasus%20(constellation)#Media/File:PegasusCC.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/2/2c/PegasusCC.jpg"
caption:"The constellation Pegasus as it can be seen by the naked eye"
width:"400px"
align:"right"
tooltip:"">>
</a>
''珀伽索斯''(古希腊语:Πήγασος,Pégasos,拉丁语:Pegasus),又称佩格索斯,佩伽索斯,俗称天马或飞马,是希腊神话中著名的奇幻生物。他是一匹长有双翼的马,通常为白色。他是[[美杜莎|🐍美杜莎 Medusa]]与海神[[🔱海神波塞冬 Poseidon]]所生,角色是马神。
希腊罗马诗人描写他出生后升天拜见众神之王[[⚡天神宙斯 Zeus]],宙斯指示他从奥林帕斯山带来闪电和雷声。他是[[缪斯|缪斯 Muses]]女神的朋友。
他被希腊英雄''柏勒洛丰''驯服,他允许柏勒洛丰骑着他和怪兽喀迈拉战斗。但当柏勒洛丰试着骑他前往奥林帕斯山时,它让柏勒洛丰从他马背上摔下来。''宙斯将他变成飞马座/天马座(Pegasus),放置在天空中。''
! 冥界地狱犬
|!父母 |[[🐍厄客德娜 Echidna]] and [[🌪️提丰 Typhon]]|
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
又译''刻尔柏若斯''。
赫西俄德在《神谱》中说此犬''有50个头'',而后来的一些艺术作品则大多表现它有3个头(可能是为了便于雕刻所致),一条蛇作为尾巴,身体的多个部位都有蛇伸出来。地狱犬主要因其被[[赫拉克勒斯|💪大力神赫拉克勒斯 Heracles]]捕获而闻名,这是赫拉克勒斯的十二项英雄事迹之一。因此在汉语语境里(尤其是通俗文化中)也常称这怪物为地狱三头犬。
!! 描述
对刻耳柏洛斯的描述各不相同,包括他的头数。地狱犬通常有三个头,但并不总是如此。地狱犬有几个多头的亲戚。他的父亲是多蛇头的提丰,而地狱犬是另外三个多头怪物的兄弟,即多蛇头的勒纳海德拉;双头狗Orthrus,它守护着杰里昂的牛;以及奇美拉,它有三个头:狮子、山羊和蛇。
|!父母 |[[🐍厄客德娜 Echidna]] and [[🌪️提丰 Typhon]] |
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
''双头犬''(Orthrus;欧特鲁斯、俄耳托斯、俄耳托洛斯)是希腊神话中的怪物,尾巴是一条蛇。它是[[🐍厄客德娜 Echidna]]及[[🌪️提丰 Typhon]]所生下的怪物。[[🐶刻耳柏洛斯/地狱三头犬 Cerberus]]和喀迈拉是它的姐妹,它与[[喀迈拉|🐐奇美拉 Chimera]]诞下斯芬克斯及[[🦁涅墨亚狮子 Nemean lion]]。
双头犬由拥有三个身躯的泰坦神[[革律翁(Geryon)|革律翁 Geryon]]饲养。它与欧律提翁(Eurytion)负责守护“日落之岛”厄律忒亚(Erytheia)的牛群,厄律忒亚岛是赫斯珀里得斯仙女所居的岛屿之一。
[[海格力斯|💪大力神赫拉克勒斯 Heracles]]最终杀死了双头犬、欧律提翁和革德翁,然后把牛带走,完成了他的''第十件英雄事迹''。
欧律提翁(Eurytion)和[[🐶双头犬 Orthrus]]是[[革律翁(Geryon)|革律翁 Geryon]]牛群的守护者,被[[赫拉克勒斯|💪大力神赫拉克勒斯 Heracles]]杀死。
一个野猪,也称为Φαιά (Phaia "Grey") after the woman who owned it),在梅加拉和科林斯之间的克罗米亚村周围地区肆虐,最终在早期冒险中被[[特修斯|忒修斯 Theseus]]杀死。根据Pseudo-Apollodorus的Bibliotheca,有人说它是Echidna和Typhon的女儿,并以养育它的老妇人命名。
根据Strabo,据说这头母猪是Calydonian Boar的母亲。Gaius Julius Hyginus说,特修斯在Crommyon杀死的猪是一头公猪。
Plutarch重复了这个故事,但表示他也被告知Phaia本人是一个凶残的女强盗,因其粗鲁的举止而被昵称为“母猪”,而她是被忒修斯杀死的“母猪”。
古林博斯帝,意即“''金毛猪''”、“金鬃”。他另一个别名是“斯利卓格丹尼”,意即“有恐怖獠牙的猪”。
古林博斯帝是[[丰饶之神弗雷 Freyr]]的所有物,弗雷用他来拖曳战车。“猪”和“马”都是弗雷的圣兽。在此多产的猪更是[[华纳神族 Vanir]]的最爱。
古林博斯帝''一身金光的毛则代表金色的太阳光'',或象征了地面五谷的成熟。
这只猪是洛基引发在希芙之发的事件中,由侏儒布洛克和伊特理制作的。
''这只猪能在海上和陆地上奔跑,而且速度比马还快。''
哈梯(Hati,憎恨),[[🐺魔狼芬里尔 Fenrir]]的儿子,追逐太阳[[☀️苏尔 Sol]]
当他追上时,这时就会发生月蚀。地上的人们必须敲锣打鼓以吓走天狼。但当诸神的黄昏到来时,哈提终将会把月亮一口吞下。
斯库尔(Skoll,Sköll,嫌忌),[[🐺魔狼芬里尔 Fenrir]]的儿子,追逐月亮[[🌖玛尼 Mani]]
''斯库尔(Sköll,嫌忌)''总是在车后追逐太阳,想把它吞下去。当发生日蚀时,就表示苏尔被追上了,这时候地上的人们就会敲锣打鼓以吓走天狼。''但总有一天,斯库尔将把太阳吞下,那时就是__诸神的黄昏__到来的时候''。
瓦利(Vali,Váli),他是[[🦹邪神洛基 Loki]]和[[西格恩 Sigyn]]的孩子,[[光明之神巴德尔 Baldr]]之死的罪魁祸首其实是洛基,所以奥丁将他的孩子瓦利变成狼,让他咬死了他的兄弟[[纳尔弗|纳尔弗 Narfi(son of Loki)]],用纳尔弗的肠子捆绑洛基,让洛基接受处罚直到诸神的黄昏到来。
神话中,还有另一个也叫瓦利的角色,他是奥丁和琳达所生的孩子,是自然之神,出生的目的是为了报光明神巴德尔被杀之仇。
芬里尔(Fenrir),北欧神话中的巨大魔狼,[[🦹邪神洛基 Loki]]与女巨人[[安尔伯达|安尔伯达 Angrboda]]的长子,耶梦加得与赫尔的兄弟,由于它和它的弟妹将会在名为“诸神的黄昏”的战争中成为北欧诸神的最大威胁,因此它遭到“众神之父”──[[⚡众神之父奥丁(神圣) Odin]]和其他诸神给拘禁起来。后来在“诸神的黄昏”的战争中,芬里尔已变得能张口吞噬天地的魔狼并且在吞噬奥丁之后被奥丁之子[[🏞️森林之神维达 Vidar]]所杀。
!! 子女
芬里尔有两个儿子,[[哈提(Hati)|🌖玛尼 Mani]]和[[斯库尔(Sköll)|☀️苏尔 Sol]],哈提追逐月亮,斯库尔则追逐太阳。他们俩一直分别追赶著装著太阳与月亮的马车,直到诸神的黄昏才终于将其吞噬。
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
<a href="https://www.wikiwand.com/en/Cyclopes">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/c/cb/Head_of_a_Cyclops_Colosseum.jpg"
caption:"A first century AD head of a Cyclops from the Roman Colosseum"
width:"400px"
align:"right"
tooltip:"">>
</a>
"''Circle-eyes''" or "''Round-eyes''",也是独眼工匠,为[[⚡天神宙斯 Zeus]]造了雷电,他们还教给[[🔥火神赫菲斯托斯 Hephaestus]]和[[🦉智慧女神雅典娜 Athena]]手工制造 的技艺
代表三种恐怖:
* 雷霆(Brontes: Thunder)
* 闪电(Steropes: Lightning)
* 霹雳(Arges: Bright)
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
古埃及传奇国王/儿子/和[[达纳斯Danaus|👑达纳斯 Danaus]]是双胞胎兄弟
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
''tenth'' king of the ancient Kingdom of [[Judah|犹大国 Kingdom of Judah]], and one of [[Amaziah|👑亚玛谢 Amaziah of Judah]]'s sons
the ''fifteenth'' King of Judah, succeeded his father [[👑玛拿西 Manasseh of Judah]]
the ''seventh'' king of Israel, son of [[👑暗利 Omri]]
!! 相关事件
[[以利亚在以色列作预言者]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
the ''twelfth'' king of Judah, and the son and successor of[[👑约坦 Jotham]]
the ''eighth'' king of the ''northern Kingdom of Israel'' and the son of [[Ahab|👑亚哈 Ahab]] and [[Jezebel|耶洗别 Jezebel]].
son of[[👑亚比央 Abijam]], king of [[犹大国 Kingdom of Judah]]
son of [[👑罗波安 Rehoboam]], king of [[犹大国 Kingdom of Judah]]
the ''ninth'' king of [[Judah|犹大国 Kingdom of Judah]] and the son and successor of [[👑约阿施 Jehoash of Judah]]
the ''fourth'' king of Israel
''拉皮斯(Lapiths)之王''
|父母 |[[阿瑞斯 Ares|🛡️战神阿瑞斯 Ares]], or Leonteus, or Antion and Perimele, or Phlegyas |
|配偶 |[[☁️云之女神涅斐勒 Nephele]] and Dia |
<a href="https://www.wikiwand.com/en/Ixion#Media/File:Le_roi_Ixion_tromp%C3%A9_par_Junon,_qu'il_voulait_s%C3%A9duire_(Louvre_RF_2121)_01.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/9/9d/Le_roi_Ixion_tromp%C3%A9_par_Junon%2C_qu%27il_voulait_s%C3%A9duire_%28Louvre_RF_2121%29_01.jpg/1920px-Le_roi_Ixion_tromp%C3%A9_par_Junon%2C_qu%27il_voulait_s%C3%A9duire_%28Louvre_RF_2121%29_01.jpg"
caption:"King Ixion fooled by Juno, whom he wanted to seduce, by [[Peter Paul Rubens|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%BD%BC%E5%BE%97%C2%B7%E4%BF%9D%E7%BD%97%C2%B7%E9%B2%81%E6%9C%AC%E6%96%AF%20Peter%20Paul%20Rubens%201577-1640:%5B%5B%E5%BD%BC%E5%BE%97%C2%B7%E4%BF%9D%E7%BD%97%C2%B7%E9%B2%81%E6%9C%AC%E6%96%AF%20Peter%20Paul%20Rubens%201577-1640%5D%5D]], 1615 (Louvre Museum)"
width:"400px"
align:"right"
tooltip:"">>
</a>
伊克西翁娶了狄俄纽斯 Deioneus(或埃俄纽斯 Eioneus)的女儿迪亚Dia,并许诺给他的岳父一份珍贵的礼物。然而,他没有支付彩礼,所以Deioneus偷了伊克西翁的一些马作为报复。
伊克西翁隐藏了他的怨恨,邀请他的岳父去拉里萨参加宴会。当 Deioneus 到达时,Ixion 将他推到了燃烧的煤和木头上。这些情况对于 Ixion 的原始谋杀行为来说是次要的;它可以有完全不同的解释:在希腊文选 (iii.12) 中,在 Cyzicus 一座寺庙的铭文集合中,有一段关于 Ixion 杀死 Phorbas 和 Polymelos 的警句描述,后者杀死了他的母亲墨伽拉,“伟大的母亲”。
伊克西翁因自己的行为发疯了;邻近的王子们被这种背叛和侵犯xenia的行为所冒犯,他们拒绝举行仪式来洗刷伊克西翁的罪孽。
此后,伊克西翁过着亡命之徒的生活,被人避之不及。''由于杀死了自己的岳父,伊克西翁被认为是希腊神话中第一个杀害亲属的人''。
仅此一项行为就足以让伊克西翁受到可怕的惩罚,但宙斯对伊克西翁表示同情,将他带到奥林匹斯山并将他介绍给众神。伊克西翁并没有心存感激,反而对赫拉产生了欲望,这进一步违反了宾主关系。宙斯发现了他的意图并制作了一个赫拉形状的云,它被称为 Nephele(来自 nephos “云”)并诱使 Ixion 与它结合。
Pindar 说从 Ixion 和假赫拉云的结合中出现了 Imbros 或 Centauros,他们与 Pelion 山上的 Magnesian 母马交配, 产生了半人马种族,他们被称为 Ixionidae。
伊克西翁被赶出了奥林匹斯山,并被雷电轰击。宙斯命令赫尔墨斯将伊克西翁绑在一个有翼的火轮上,这个火轮一直在旋转。因此,伊克西翁被永远捆绑在一个燃烧的太阳轮上,起初在天上旋转,但在后来的神话中被转移到[[塔尔塔罗斯|😈地狱塔尔塔罗斯 Tartarus]]。只有当[[俄耳浦斯 Orpheus|俄耳浦斯 Orpheus]]在前往冥界拯救欧律狄刻时弹奏他的琴,它才暂时停止。
!! Offspring
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
second King of the Kingdom of Israel, son of [[Ahinoam]] and [[👑扫罗 Saul]]
''Ish-bosheth'' ("''man of shame''"), also called Eshbaal (alternatively spelled Ishbaal, "man of Baal(''owner'')") was, according to the Hebrew Bible, the ''second monarch'' of the Kingdom of Israel. After the death of his father, ''Saul'', Ish-bosheth ascended to the throne and reigned for a brief period of ''two years''.
During his reign, ''Ish-bosheth'' engaged in a protracted conflict with [[David|👑大卫王 David]], who had been anointed as ''Saul'''s successor by the Tribe of Judah.
This rivalry between the two leaders shaped the political landscape of the kingdom at the time. The Hebrew Bible recounts that Ish-bosheth's reign was marked by war with David's forces, as both factions vied for control and legitimacy. According to biblical accounts, ''he was killed by two of his own army captains'', Baanah and Rechab, who believed that __assassinating Ish-bosheth would earn them favour with ''David''__. This act not only brought a premature conclusion to Ish-bosheth's rule but also played a significant role in the subsequent unification of the kingdom under ''David's'' leadership.
the ''nineteenth'' and ''last king'' of the northern Kingdom of Israel and son of Elah (not the Israelite king Elah)
统治10年。
* 以色列王国 <<list-links "[tag[Kings of Israel]]-[tag[North]] +[nsort[num]]">>
* 北以色列王国 <<list-links "[tag[Kings of Israel]]+[tag[North]] +[nsort[num]]">>
* 犹大王国 <<list-links "[tag[犹大国 Kingdom of Judah]]+[nsort[num]]">>
son of [[耶西 Jesse]]
耶西的儿子大卫,是以色列王国的第二任国王。大卫乃“''被爱的”、“蒙爱者''”之意。他在位四十年;其中有七年六个月在希伯仑。
大部份关于大卫的记载都出自《希伯来圣经》中的《撒母耳记上》和《撒母耳记下》。大卫在以色列历代国王中,《圣经》描述他是一位有为的君主,并且是一位专心倚靠上帝的人,是优秀的战士、音乐家和诗人(在《圣经》中赞美上帝的《诗篇》绝大部分是他的著作)。根据《圣经》,''耶稣肉身的母亲马利亚,和马利亚的丈夫约瑟都是大卫的后裔''。
!! 相关事迹
* [[撒母耳记 Books of Samuel c.1078-1040 BC]] 大卫部分
!! Offspring
* with [[亚希暖 Ahinoam of Jezreel]] <<list-links "[tag[亚希暖 Ahinoam of Jezreel]] +[sort[title]]">>
* with [[亚比该 Abigail (widow of Nabal of Carmel)]] <<list-links "[tag[亚比该 Abigail (widow of Nabal of Carmel)]] +[sort[title]]">>
* with [[玛迦 Maacah (daughter of Talmai, king of Geshur)]] <<list-links "[tag[玛迦 Maacah (daughter of Talmai, king of Geshur)]] +[sort[title]]">>
* with [[哈及 Haggith]] <<list-links "[tag[哈及 Haggith]] +[sort[title]]">>
* with [[Abital]] <<list-links "[tag[Abital]] +[sort[title]]">>
* with [[Eglah]] <<list-links "[tag[Eglah]] +[sort[title]]">>
!! 相关周边
* [[✡大卫星 Star of David]]
* [[扑克牌的黑桃King|https://www.bakumatata.com/notes/MedievalEurope/8kuNoteBook_MedievalEurope.html#%E6%89%91%E5%85%8B%E7%89%8C%E4%B8%8A%E7%9A%84%E8%B1%A1%E5%BE%81:%E6%89%91%E5%85%8B%E7%89%8C%E4%B8%8A%E7%9A%84%E8%B1%A1%E5%BE%81]]
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/1b/Florenz_-_Bargello_2014-08-09r.jpg/340px-Florenz_-_Bargello_2014-08-09r.jpg">
<div class="desc">David by ''[[Donatello|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%A4%9A%E9%82%A3%E5%A4%AA%E7%BD%97%20Donatello%201386%20-%201466:%5B%5B%E5%A4%9A%E9%82%A3%E5%A4%AA%E7%BD%97%20Donatello%201386%20-%201466%5D%5D]]''</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/ae/David%2C_Andrea_del_Verrocchio%2C_ca._1466-69%2C_Bargello_Florenz-01.jpg/390px-David%2C_Andrea_del_Verrocchio%2C_ca._1466-69%2C_Bargello_Florenz-01.jpg">
<div class="desc">David by ''[[Verrocchio|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%AE%89%E5%BE%B7%E7%83%88%E4%BA%9A%C2%B7%E5%BE%B7%E5%B0%94%C2%B7%E9%9F%A6%E7%BD%97%E5%9F%BA%E5%A5%A5%20Andrea%20del%20Verrocchio%201435-1488:%5B%5B%E5%AE%89%E5%BE%B7%E7%83%88%E4%BA%9A%C2%B7%E5%BE%B7%E5%B0%94%C2%B7%E9%9F%A6%E7%BD%97%E5%9F%BA%E5%A5%A5%20Andrea%20del%20Verrocchio%201435-1488%5D%5D]]''</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/%27David%27_by_Michelangelo_Fir_JBU005_denoised.jpg/400px-%27David%27_by_Michelangelo_Fir_JBU005_denoised.jpg">
<div class="desc">David by ''Michelangelo''</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/92/Bernini%27s_David_02.jpg/400px-Bernini%27s_David_02.jpg">
<div class="desc">David by ''[[Gian Lorenzo Bernini|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%90%89%E5%AE%89%C2%B7%E6%B4%9B%E4%BC%A6%E4%BD%90%C2%B7%E8%B4%9D%E5%B0%BC%E5%B0%BC%20Gian%20Lorenzo%20Bernini%201598%E2%80%931680:%5B%5B%E5%90%89%E5%AE%89%C2%B7%E6%B4%9B%E4%BC%A6%E4%BD%90%C2%B7%E8%B4%9D%E5%B0%BC%E5%B0%BC%20Gian%20Lorenzo%20Bernini%201598%E2%80%931680%5D%5D]]''</div>
</div>
</div>
the ''third'' king of the northern Israelite Kingdom of Israel
the son of[[👑亚哈斯 Ahaz]] and the ''13th'' king of Judah
[[犹大王希西家]]
The ''fifth'' king of Israel. His reign lasted ''only seven days''.
According to Louis Ginzberg, Zimri was the only monarch born from the [[Tribe of Simeon|Tribe of Simeon]]. Reportedly, this Tribe ''never received a blessing from [[Moses|摩西 Moses]]'', and __did not have an impact in the royal successions of Israel__.
!! 相关事件
[[在以色列]]
son of [[拔示巴 Bathsheba]] and [[👑大卫王 David]]
''Reign: c. 970–931 BCE''
another name is ''耶底底亚Jedidiah''
据圣经记载,所罗门王是[[耶路撒冷第一圣殿|所罗门圣殿 Solomon's Temple]]的建造者,并有超人的智慧,大量的财富和无上的权力。但最后由于所罗门王晚年的罪过导致在他的儿子罗波安执政时期王国发生了分裂。所罗门王还是后世许多文献和传说的主角。
根据《圣经》记载,所罗门有 ''700 个妻子和 300 个妾''。
!! 相关事件
* [[列王纪 Books of Kings 580 BC]]
* [[所罗门七十二柱魔神 List of demons in the Ars Goetia]]
* [[所罗门圣殿 Solomon's Temple]]
<a href="https://www.wikiwand.com/en/Saul">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a2/Saul_1878.jpg/460px-Saul_1878.jpg"
caption:"Saul depicted in a detail from an 1878 oil painting by Ernst Josephson"
width:"300px"
align:"right"
>>
</a>
son of [[Kish]],the ''first'' [[King|Kings of Israel]] of ''United Kingdom of Israel''.
!! 相关事迹
[[以色列的首任君王扫罗]]
!! Offspring
* with [[Ahinoam]] <<list-links "[tag[Ahinoam]] +[sort[title]]">>
* with [[Rizpah]] <<list-links "[tag[Rizpah]] +[sort[title]]">>
son of [[👑耶罗波安 Jeroboam]], the ''second king ''of the northern Israelite Kingdom of Israel
''撒拉铁''(希伯来语:שְׁאַלְתִּйאֵל,Shəʾaltīʾēl),希腊语音译为撒拉铁(希腊语:Σαλαθιηλ,Salăthiēl),是犹大王[[👑约雅斤/耶哥尼雅 Jeconiah]]的儿子。 (历代志上,历代志上 3:17-18)[[马太福音 Gospel of Matthew c.41]] 1:12 也将撒拉铁列为耶哥尼雅(所罗门后裔)的儿子。
公元前 597 年第一次围攻耶路撒冷后,耶哥尼雅、撒拉铁以及大部分王室成员和王室精英被巴比伦[[🤴尼布甲尼撒二世 Nebuchadnezzar II 642-562 BC]]下令流放到巴比伦。在巴比伦被囚禁期间,撒拉铁被视为继他父亲之后的''第二位流亡王(或流亡王)''。
在[[路加福音 Gospel of Luke c.56-58]]中他的父亲是[[Neri]]
the ''fourteenth'' king of the northern Israelite Kingdom of [[Israel|Kings of Israel]], and son of [[👑耶罗波安二世 Jeroboam II]]
the ''sixth'' king of Israel
the ''eighteenth'' and penultimate king of [[Israel|Kings of Israel]]. He was a ''captain'' in the army of king[[👑比加辖 Pekahiah]] of Israel, whom he killed to become king. Pekah was the son of Remaliah.
统治8年。
the ''seventeenth'' and antepenultimate king of [[Israel|Kings of Israel]] and the son of [[👑米拿现 Menahem]], whom he succeeded, and the ''second and last king'' of Israel from the House of Gadi. He ruled from the capital of[[撒马利亚 Samaria]].
统治2年后被刺杀。
the ''fifteenth'' king of the ancient Kingdom of [[Israel|Kings of Israel]], and the son of Jabesh
在位仅一个月
the ''fourteenth'' king of the Kingdom of [[Judah|犹大国 Kingdom of Judah]]. He was the oldest of the sons of[[👑希西家 Hezekiah]] and his mother Hephzibah
the ''sixteenth'' king of the northern Israelite Kingdom of [[Israel|Kings of Israel]]. He was the son of Gadi, and the founder of the dynasty known as the House of Gadi or House of Menahem.
统治期10年。
the ''ninth'' king of the ''northern Kingdom of Israel'' .
He was the son of [[Ahab|👑亚哈 Ahab]] and [[Jezebel|耶洗别 Jezebel]], and brother to [[Ahaziah|👑亚哈谢 Ahaziah of Israel]] and Athaliah.
the ''fifth'' king of Judah, and the son of king [[Jehoshaphat|👑约沙法 Jehoshaphat]]
the ''eleventh'' king of Israel and the son of [[👑耶户 Jehu]]
the ''seventeenth'' king of [[Judah|犹大国 Kingdom of Judah]] (3 months in 609 BC) and the fourth son of king [[👑约西亚 Josiah]] whom he succeeded
the ''eleventh'' king of [[Judah|犹大国 Kingdom of Judah]], and son of King [[👑乌西雅/亚撒利雅 Uzziah/Azariah]]
son of [[👑亚撒 Asa]], king of [[犹大国 Kingdom of Judah]]
the ''16th'' King of [[Judah|犹大国 Kingdom of Judah]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
the ''twelfth'' king of the ancient northern Kingdom of Israel (Samaria) and the son of [[👑约哈斯 Jehoahaz of Israel]]
the ''eighth'' king of [[Judah|犹大国 Kingdom of Judah]], and the sole surviving son of[[👑亚哈谢 Ahaziah of Israel]] after the massacre of the royal family ordered by his grandmother,[[👸亚她利雅 Athaliah]]
the ''eighteenth'' and antepenultimate King of [[Judah|犹大国 Kingdom of Judah]], and the second son of King [[👑约西亚 Josiah]] and Zebidah, the daughter of Pedaiah of Rumah
Also known as ''Coniah'' and as ''Jehoiachin'' , was the ''nineteenth'' and penultimate king of [[Judah|犹大国 Kingdom of Judah]] who was dethroned by the King of ''Babylon'', Nebuchadnezzar II in the 6th century BCE and was taken into captivity. He was the son and successor of King[[👑约雅敬/以利亚 Jehoiakim/Eliakim]]
son of [[👑所罗门 Solomon]]
the first monarch of the ''[[Kingdom of Judah|犹大国 Kingdom of Judah]]'' after the split of the ''united Kingdom of Israel''
the ''tenth'' king of the northern Kingdom of Israel, son of [[Nimshi]]
!! 相关事件
[[以色列王耶户]]
son of [[Nebat]], the ''first'' king of the ''northern Kingdom of Israel''
the son and successor of[[👑约阿施 Jehoash of Israel]] (alternatively spelled Joash) and the ''thirteenth'' king of the ancient [[Kingdom of Israel|Kings of Israel]]
the ''twentieth'' and final King of [[Judah|犹大国 Kingdom of Judah]] before the conquest of the kingdom by ''Nebuchadnezzar II'' of Babylon. His birth name was ''Mattaniah/Mattanyahu''.
|!父母 |[[🔱海神波塞冬 Poseidon]] and [[利比亚 Libya]]|
|!配偶 |Achiroe, or Side |
|!标志 ||
|!对应罗马神 ||
贝鲁斯是[[波塞冬|🔱海神波塞冬 Poseidon]]和利比亚的儿子。他也可能是Busiris,利比亚的儿子,埃及的统治者,被[[赫拉克勒斯|💪大力神赫拉克勒斯 Heracles]]杀死,尽管赫拉克勒斯比Belus晚出生很多代。
妻子是[[Achiroe|Achiroe]]。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
在希腊神话中,达纳斯(/ˈdæneɪ.əs/;[1] 古希腊语:Δαναός Danaós)是利比亚的国王。他的神话是伯罗奔尼撒半岛最重要的迈锡尼人城市之一阿尔戈斯的奠基传说(或再奠基传说)。在荷马的《伊利亚特》中,"Danaans"("Danaus的部落")和 "Argives "通常指的是反对特洛伊人的希腊军队。
! 壁炉、家庭、家庭、童贞、家庭和国家的女神
|标志 |壁炉和它的火 |
|对应罗马神 |Vesta |
|父母 |[[克洛诺斯|🌾丰收之神克洛诺斯 Cronus]] [[瑞亚|天后瑞亚 Rhea]] |
与[[雅典娜|🦉智慧女神雅典娜 Athena]]和[[阿耳忒弥斯|🌖月神阿尔忒弥斯 Artemis]]并称为奥林匹斯''三大处女神'',赫西俄德及其以后的作家认为她是克罗诺斯和瑞亚''最大的孩子'',赫拉、得墨忒尔等的大姐。是早一辈的古神,原是奥林波斯十二神之一,但为避免各神争夺王位,而自愿退出十二神的行列,同时把王位让给[[狄俄尼索斯|🍺酒神狄俄尼索斯 Dionysus]]。
赫斯提亚拒绝了波塞冬和阿波罗的求婚,发誓永远保持童贞。
宙斯赋予赫斯提亚一项职责,即用献给诸神的动物祭品中的脂肪、可燃部分来喂养和维持奥林匹亚的炉火。凡是烹制食物或焚烧祭品的地方,她都有自己的一份荣誉;同样,在所有诸神的庙宇里,她也有一份荣誉。"在所有凡人中,她是女神的首领"
赫斯提亚几乎没有任何具体的故事。据说原因在于,对于这样一位贞洁无瑕的低调女子,''不应该饶舌多嘴;而且你不搬弄她的是非,她也不会为你家招惹是非。''
赫斯提亚等同于罗马神话中的维斯塔。在古罗马有灶神节,还有灶神的祭坛,里面供奉着长明的圣火。维护圣火的是六名女祭司,称为''维斯塔贞女'',她们必须保持三十年贞洁,否则将受到活埋的处罚。
赫斯提亚被认为是一个有形物体的壁炉,以及对社区和家庭的抽象,但对她的描绘很少见。 在古典希腊艺术中,她偶尔被描绘成一个女人,简单而谦虚地披着头纱。有时,它会显示她手里拿着一根棍子或一堆火。她坐在一个带有白色羊毛垫子的普通木制宝座上,她的祭祀动物是一只家猪。
[img[https://upload.wikimedia.org/wikipedia/commons/a/a5/Hestia_Giustiniani.jpg]]
! 灰女巫三姐妹
the ''Graeae'' (''/ˈɡraɪiː/''; English translation: "old women", "grey ones", or "grey witches"; alternatively spelled ''Graiai'' (Γραῖαι) and ''Graiae''), also called the ''Grey Sisters'' and the ''Phorcides'' ("daughters of Phorcys")
|父母 |[[福耳库斯 Phorcys]] and [[刻托 Ceto]]|
代表了''海水的白色泡沫'',格赖埃是三个姐妹,''她们共用一只眼睛和一颗牙齿'':
# Deino/Dino:恐怖
# Enyo:暴戾
# Pemphredo/Pephredo:刻毒
!! 传说
英雄[[珀尔修斯|珀尔修斯 Perseus]]偷了他们的眼睛,迫使他们告诉他们杀死[[🐍美杜莎 Medusa]]所需的三个物体的下落(在其他版本中是美杜莎的下落),通过勒索他们共享的眼睛来获取信息。
{{erinyes.mp3}}
''厄里倪厄斯''(希腊语:Ἐρινύες / Erinyes ,单数为Ἐρινύς / Erinys,字面意思为“''愤怒''”)是希腊神话中的三个复仇女神。在古典时代的阿提卡地区,人们举行祭祀仪式时从不直接提到这些女神的名字,而使用其别名''欧墨尼得斯''(古希腊语:Εὐμενίδες,意为“善良”)。在罗马神话中,厄里倪厄斯的对应者是''孚里埃''(拉丁语:Furiæ,“''愤怒''”)。在雅典娜的劝说下改变了复仇的形象,转为繁荣的保护者,被尊称为仁慈女神(Kindly Ones)。
!! 来源
厄里倪厄斯的数量和来源有多种不同说法。''荷马''有时只提到一个厄里倪厄斯,有时又认为她们有一群。''埃斯库罗斯''认为厄里倪厄斯是复数个神祇。后来她们的数量固定为三个,名字分别为:
# ''提西福涅''(Τισιφόνη,意为“向凶手复仇”)
# ''阿勒克托''(Ἀληκτώ,“永无止尽”)
# ''墨盖拉''(Μέγαιρα,“嫉妒”)
厄里倪厄斯包括三位女神的说法最早出自''欧里庇得斯''的著作。关于厄里倪厄斯的父母,赫西俄德说她们是该亚吸收了[[尤拉纳斯 Uranus|天空之神乌拉诺斯 Uranus]]被[[克罗诺斯|🌾丰收之神克洛诺斯 Cronus]]阉割后飞溅的血液所生出的女儿;埃斯库罗斯说她们是夜神倪克斯的女儿;索福克勒斯则说她们是该亚和厄瑞玻斯的女儿。
在''罗马神话''中,通常以孚里埃对应厄里倪厄斯。但根据维吉尔的著作,复仇三女神在不同的地方使用不同的名字:她们在地狱里叫孚里埃,在人间叫''哈耳庇厄''(Harpȳia,“抢夺”),在天国叫''狄赖''(Diræ,“可怕的”)。
!! 简介
厄里倪厄斯是生活在冥府(一说是[[塔尔塔罗斯|😈地狱塔尔塔罗斯 Tartarus]])的下界神祇(克托尼俄斯),她们只有在要惩罚人间的罪孽时才来到地面上。通常,她们被描写成头上''长满毒蛇,背后生有翅膀,手执火炬(或鞭子)的丑老太婆,有时甚至以人头狗身的形象出现''。厄里倪厄斯的心中充满复仇的怒火,在地狱里,她们用鞭子严刑拷打生前犯下罪孽的人。
厄里倪厄斯决不罢休地追究每一件凶恶残暴的事,特别是杀害亲属。高傲专横、违背誓言和怠慢客人也要遭到惩罚。荷马说,“地下的她们(指复仇女神)惩罚那些发假誓的人”。__有罪者被厄里倪厄斯不分昼夜地追赶,并遭受各种苦难,直到他们疯掉为止__。除非有人愿意为他们举行宗教净洗礼来洗除罪恶,否则这折磨就不会停止。''厄里倪厄斯的报复可能不一定什么时候到来,但却必定会来。''
根据一些古典作家的说法,厄里倪厄斯的权力极大(类似[[命运三女神|🧵命运三女神 Moirai]])。''她们是出生于奥林匹斯神族之前的老一代神祇,因此即使奥林匹斯神灭亡,她们仍会继续存在。''
她们经常与奥林匹斯神发生冲突(体现在俄瑞斯忒斯的神话中)。厄里倪厄斯具有决定性的力量:据赫拉克利特说,''没有复仇女神的允许,太阳神赫利俄斯也不能改变太阳在天空中运行的轨道'';还有神话说,即使宙斯也不能帮助有罪之人从厄里倪厄斯的折磨中摆脱。
!! 神话
<a href="https://www.wikiwand.com/en/Erinyes#Media/File:Orestes_Pursued_by_the_Furies_by_William-Adolphe_Bouguereau_(1862)_-_Google_Art_Project.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/8/81/Orestes_Pursued_by_the_Furies_by_William-Adolphe_Bouguereau_%281862%29_-_Google_Art_Project.jpg/1697px-Orestes_Pursued_by_the_Furies_by_William-Adolphe_Bouguereau_%281862%29_-_Google_Art_Project.jpg"
caption:"The Remorse of Orestes, where he is surrounded by the Erinyes, by ''William-Adolphe Bouguereau'', 1862"
width:"400px"
align:"right"
tooltip:"">>
</a>
在关于厄里倪厄斯的神话中,最著名的是[[俄瑞斯忒斯|俄瑞斯忒斯 Orestes]]的神话。
''俄瑞斯忒斯''是特洛伊战争中希腊联军的领袖[[阿伽门农|阿伽门农 Agamemnon]]的儿子,他犯下了弑母重罪。整个事件的过程如下:阿伽门农为了战争的胜利而杀死女儿[[伊菲革涅亚|依菲琴尼亚 Iphigenia]]向女神[[阿耳忒弥斯|🌖月神阿尔忒弥斯 Artemis]]献祭,因而触怒了''厄里倪厄斯''(杀害血亲是最不能宽恕的罪行),''厄里倪厄斯诅咒阿伽门农全家将为此大祸临头''。结果灾祸果然接二连三地降临到阿伽门农的家族。
阿伽门农出征归来后,其妻[[克吕泰涅斯特拉|克吕泰涅斯特拉 Clytemnestra]]已经与人通奸。克吕泰涅斯特拉的奸夫''埃癸斯托斯''(阿伽门农的叔伯兄弟)杀害了阿伽门农。在另一些神话中,是''克吕泰涅斯特拉''本人杀害了阿伽门农。
为了给父亲报仇,''俄瑞斯忒斯''杀死了母亲''克吕泰涅斯特拉'';后来的神话学家根据这一点分析该神话可能反映了母权制与父权制的斗争(该观点最早是瑞士学者巴霍芬在其著作《母权》中提出的)。厄里倪厄斯开始追逐、迫害俄瑞斯忒斯,逼得他无处容身。
''俄瑞斯忒斯''向[[阿波罗|☀️太阳神阿波罗 Apollo]]求救,后者又叫他去找[[雅典娜|🦉智慧女神雅典娜 Athena]]。雅典娜把此案交给一个由雅典长老组成的特别法庭来审理。''厄里倪厄斯''在法庭上与庇护''俄瑞斯忒斯''的''阿波罗''及''雅典娜''爆发激烈争论。''俄瑞斯忒斯''为自己辩解说,他的母亲犯有双重罪行:杀害丈夫和儿子的父亲,所以他才把她杀了。厄里倪厄斯则反诘道报仇只限于母系血亲,妻子与丈夫并没有血缘上的关系(因此杀死丈夫就不可能受到来自“己方”亲属的报复),俄瑞斯忒斯的弑母行为才是不可饶恕的大罪。阿波罗又表态说他认为父亲比母亲更重要,而妻子杀死丈夫等同于奴隶杀死主人__(清楚地表达了父权制的观点)__。双方僵持不下,最后由于雅典娜投了决定性的一票,法官裁决俄瑞斯忒斯无罪。
关于此事的结局,一种说法认为厄里倪厄斯接受了裁决,而雅典娜为了平息她们的怒气,帮她们改了一个好听的名字“欧墨尼得斯”(意为“善良的”;实际上,这一别名更可能是古希腊人的一种委婉称呼,以免因提到复仇女神的名字而把她们招来。在古代,人们经常避免提到一些特定神祇,如珀耳塞福涅的名字)。然而根据另一种说法,''狂怒的厄里倪厄斯对雅典娜及雅典城进行了一系列报复行动''。
!! 神话学
厄里倪厄斯被认为是母系社会的残余。''她们最初可能是母系亲族的保护神'',因此在神话中也特别致力于维护母系血缘关系,积极打击杀害母系亲属的人。俄瑞斯忒斯神话中厄里倪厄斯的败诉,象征着父权制对母权制的胜利。后来,厄里倪厄斯的性质发生了变化,她们从维护母权制的神变为捍卫真理的神祇。这种性质表现在古典时代一些哲学家的著作里。
关于厄里倪厄斯形象的起源,有两种理论。一种理论认为厄里倪厄斯起源于血亲复仇。这表现为在没有法律的原始社会中,对杀人者施加制裁的唯一形式就是由被杀者的亲属进行复仇。这样,厄里倪厄斯就是对被杀者的愤怒的超自然人格化。另一种理论认为,厄里倪厄斯起源于对诅咒的拟人化。根据这种说法,厄里倪厄斯象征着因诅咒而引起的神秘力量,对遭到诅咒的犯罪者进行报复。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
|!父母 |[[🌌黑夜女神尼克斯 Nyx]] |
|!配偶 ||
In Greek mythology, ''Geras'' /ˈdʒɪərəs/ (Ancient Greek: Γῆρας, romanized: Gễras), also written Gēras, was the ''god of old age''.
He was depicted as a ''tiny, shriveled old man''. Gēras's opposite was [[Hebe|🏆青春女神赫柏 Hebe]], the goddess of youth. His Roman equivalent was Senectus. He is known primarily from vase depictions that show him with the hero Heracles; the mythic story that inspired these depictions has been lost.
the daughter of King [[Ahab|👑亚哈 Ahab]] and Queen [[Jezebel of Israel|耶洗别 Jezebel]], the queen consort of Judah as the wife of King [[Jehoram|👑约兰(犹大) Jehoram of Judah]]
又作''撒旦''。
于亚伯拉罕信仰中撒但会引诱人类犯罪,
在''犹太教''中,撒但也常被视为''冲动''的表征。
在基督教和伊斯兰教中,撒但为''反抗神的[[堕天使|堕天使 Fallen angel]]或镇尼<<fnote "镇尼(''Genie''或''Jinni'',阿拉伯文复数为جن ǧinn,单数جني ǧinnī,也译为魔神、精灵、巨灵、杰尼、妖灵)是伊斯兰教对于超自然存在的统称,印度也沿用此称呼;据闻由阿拉用无烟之火造成,来自于镇尼斯坦(Jinnistan)。镇尼有善有恶,能任意改变形态,恶镇尼可能会妨碍信仰">>'',而反抗神后丧失本来身份,但经由神的允许使其''取得统治地狱和众多魔鬼的权限''。
''撒但''这一人物首先以上天的控告者、''顺服耶和华的神之子''的身份出现在《[[希伯来圣经|旧约 Old Testament]]》中,他在天上的法庭控告犹大王国并强迫他们忍受来检验他们是否忠于神。
在旧约和新约之间的时间里,很有可能是受到琐罗亚斯德教人物阿里曼的影响,撒但演变为具有可憎性质和恶意的存在,与神二元对立。在经外书(正典以外的经书),神给予撒但(即莫斯提马,在禧年书中相当于撒但,并非撒但真正的名字)权威以号召看守天使及其后代,以引诱人类犯罪并对其处罚。
在《对观福音》中,撒但在沙漠中引诱耶稣并被认做是疾病和诱惑的根源。在《''启示录''》中,撒但作为''大红龙''出现,被天使[[米迦勒|😇米迦勒 Michael(who is like God?)]]击败并扔出天国。此后一千年,他被束缚。最后,经过短暂的自由之后,撒但被最终击败并扔进火湖。
在''基督教''中,撒但也被当做魔鬼。尽管《创世纪》中没有提到他,__他常被视作伊甸园中的蛇__。''中世纪时,撒但在基督教神学中并不常出现,仅作为喜剧角色于神学剧中出现。然而在近世,由于魔鬼附身和巫术的观念日渐流行,撒但的重要性显著提高。''启蒙运动时期,相信撒但存在的观念遭到严厉批判。不过,相信撒但的观念仍然延续下来,尤其以美洲为甚。
在《古兰经》中。''晒衣陀乃''或''伊布力斯''是一个火做的存在,由于拒绝向新造的亚当鞠躬被逐出天国,他以恶念感染人心以引发人类犯罪。虽然撒但常被视为邪恶,但一些群体有不同想法。
在''撒但神话''中,撒但被认为是受到崇拜和敬仰的神,在奉勒维撒但教中,撒但是各种''高尚品质和自由''的象征。
<span class="highlight">''撒但的模样从未在圣经中描述过''</span>,但自公元9世纪起,基督教艺术把撒但展现为长有犄角、蹄子,还常加上毛腿、尾巴,裸露且握有叉子的样式。这些都来自之前各种异教神的特征,如潘、波塞冬、贝斯。撒但常出现在基督教文学中,如但丁的《神曲》、各种浮士德的变种、约翰·弥尔顿的《失乐园》、《复乐园》以及威廉·布莱克的诗。至今,撒但仍在电影、电视和音乐中出现。
!! 语义
撒但来自希伯来语:שָׂטָן (Satan),Satan是一个源自动语的名词,原意为''敌对、反对'',在《希伯来圣经》常常''将台面上的政治事件引申到操纵该政治背后的撒但''。
在《[[约伯记|约伯记 Book of Job c.1473 BC]]》1至2章中出现10次,《撒迦利亚书》3章中出现3次。在其中,''它被称为神之子,或神的使者,相当于天使的地位。''
!! 在《启示录》里
据启示录所述,魔鬼撒但后来会被捆绑一千年,扔在无底坑里,无底坑被关闭,用印封上,使撒但不得再迷惑列国。当那一千年的结束时,撒但必从监牢里被释放,出来要迷惑地上四方的列国,就是歌革和玛各,叫他们聚集争战。他们的人数有如海沙。他们上来遍满了全地,围住圣徒的营与蒙爱的城,将有火从天降下,烧灭了他们。那迷惑他们的魔鬼被扔在硫磺的火湖里、昼夜受痛苦,直到永永远远。
----
<<showfnotes>>
! 爱与欲望之神
|标志 |弓、箭、蠟燭、心、翅膀和親吻 |
|对应罗马神 |Cupid 丘比特/Amor |
|父母 |[[🛡️战神阿瑞斯 Ares]] and [[💗爱情女神阿佛洛狄忒 Aphrodite]], or [[卡俄斯 Chaos]] as primordial god |
''Eros'' (UK: /ˈɪərɒs, ˈɛrɒs/, US: ''/ˈɛrɒs, ˈɛroʊs/''; Ancient Greek: Ἔρως, romanized: Érōs, lit. '''Desire''')
在最早的记载中,他是一个原始神,而在后来的记载中,他被描述为阿佛洛狄忒和阿瑞斯的孩子之一,并且和他的一些兄弟姐妹一起,是Erotes(一群有翅膀的爱神)的一员。
!! 作为原始神
根据希腊最古老的资料之一赫西奥德的《神谱》(约公元前700年),爱神是继[[混沌|卡俄斯 Chaos]]、[[盖亚|🌍大地女神盖亚 Gaea]](地球)和[[塔尔塔罗斯|😈地狱塔尔塔罗斯 Tartarus]](深渊)之后出现的第四位神。
!! 作为阿佛洛狄忒的儿子
在后来的神话中,他是阿佛洛狄忒和阿瑞斯神的儿子:这些后来的神话中的爱神是Erotes之一。爱神被描绘成经常携带七弦琴或弓箭。
! 冥神/死亡和财富之神
是 克罗诺斯Cronus 和 瑞亚Rhea 第一个儿子,他还有三个姐姐:赫斯提 Hestia,得墨忒耳 Demeter,赫拉 Hera。
弟弟是宙斯Zeus和波塞冬Poseidon。
|标志 |[[聚宝盆(Cornucopia)|聚宝盆 Cornucopia]]、柏树、水仙、钥匙、蛇、薄荷、白杨、狗、石榴、羊、牛、猫头鹰、马、战车 |
|对应罗马神 |Dis Pater, Orcus, Pluto |
|伊特鲁里亚(Etruscan)神 |Aita |
|北欧神话 |[[💀死亡女神赫尔 Hel]] |
<div class="right" style="width:200px;">
[img[https://upload.wikimedia.org/wikipedia/commons/d/d0/Hermes_Ingenui_Pio-Clementino_Inv544.jpg]]
//Hermes Ingenui (Vatican Museums), Roman copy of the second century BC after a Greek original of the 5th century BC.//
</div>
也许是因为害怕说出他的名字,大约在公元前 5 世纪,希腊人开始将冥王称为 Plouton (Πλούτων Ploútōn),''其词根意为“富有的”'',考虑到从下面的住所(即土壤)而来的是财富(例如,肥沃的作物、金属等)普劳顿成为罗马神,既统治着冥界,又从地下分配财富。这位神祇是希腊神哈迪斯和厄琉西尼亚(Eleusinian)神普卢托斯(Ploutos)的混合体,他还获得了一位女祭司,这在希腊以前是没有的。
相同类型的更详细的名称是 Ploutodótēs (Πλουτοδότης) 或 Ploutodotḗr (Πλουτοδοτήρ),''意思是“财富的给予者”''。
那些回避他的真实姓名的人也称他为 __Zeus katachthonios__(Ζεὺς καταχθόνιος),''意思是 "冥界的宙斯"'',因为他对冥界有完全的控制。
哈迪斯在宙斯的授意下通过绑架获得了他的妻子和王后[[珀尔塞福涅 Persephone|珀尔塞福涅 Persephone]],''这也是最早的关于绑架的故事''。
[[忒修斯|忒修斯 Theseus]]和[[皮里图斯|皮里图斯 Pirithous]]发誓要绑架宙斯的女儿并与其结婚。忒修斯选择了海伦,''他们一起绑架了她,并决定扣留她,直到她足够大时才结婚''。
皮里图斯选择了珀尔塞福涅。他们把海伦留给忒修斯的母亲艾瑟拉,然后去了冥界。哈迪斯知道他们要抓他妻子的计划,所以他假装款待他们,并摆了一桌酒席;这对夫妇刚坐下,蛇就盘住了他们的脚,把他们困在那里。忒修斯最终被[[赫拉克勒斯|💪大力神赫拉克勒斯 Heracles]]救出,但皮里图斯仍被困住,作为对他敢于为自己寻找一个神的妻子的惩罚。
!! 形象
尽管现代人认为死亡是邪恶的,但哈迪斯在神话中实际上''更倾向于利他主义''。哈迪斯经常被描绘成被动的,而不是邪恶的;''他的作用往往是维持相对的平衡''。
尽管如此,他''也被描述为冷酷和严厉的'',他让所有的臣民对他的法律承担同等的责任。 他的个性的任何其他方面都没有给出,因为希腊人避免给他更多的描述,以免引起他的注意。
哈迪斯统治着死人,由他拥有完全权力的其他人协助。哈迪斯的房子被描述为充满了 "客人",尽管他很少离开冥界。他很少关心上面的世界发生了什么,因为他主要关注的是确保他的臣民没有一个离开他的领域。
一位古老的消息来源说他拥有隐形之帽。''他的战车由四匹黑马牵引'',令人生畏,令人印象深刻。
!! 艺术表现
<span class="highlight">哈迪斯在艺术作品以及神话中很少被描绘,因为希腊人非常害怕他</span>。他的艺术表现,一般在古陶器中被发现,甚至没有被具体地认为是神,但人们强烈地认为图中人物确实是哈迪斯。 在这些插图中,哈迪斯通常是年轻的,但在其他作品中他也被显示为不同的年龄。
在陶器上,他留着黑胡子,在 "乌木宝座 "上被表现为一个庄严的形象。
''他在艺术上的属性包括权杖、角杯、公鸡和一把钥匙,这既代表他对冥界的控制,也提醒人们冥界的大门总是锁着,灵魂无法离开。'' 即使门是开着的,地狱犬,''冥界的三头看门狗'',也要确保虽然所有的灵魂都可以自由进入冥界,但没有人可以逃脱。
''狗经常被描绘在神的旁边,作为一种容易识别的手段,因为没有其他神与它有如此直接的关系。''有时,艺术家们把哈迪斯画成远离其他神灵的样子,因为他和人类一样被其他神灵所厌恶。
在罗马神话里,作为Plouton,他被认为是一个更积极的形象。他拿着一个聚宝盆,代表他赐予人们的礼物以及生育能力,他与生育能力有关。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Hermod_before_Hela.jpg/440px-Hermod_before_Hela.jpg"
caption:""Hermod before Hela" (1909) by John Charles Dollman."
width:"400px"
align:"right"
tooltip:"">>
''赫尔''(又译作海拉,“''underworld''”)是北欧神话中司管冥界的死亡女神。
她原本是[[邪神洛基|🦹邪神洛基 Loki]]与[[冰霜女巨人安尔伯达|安尔伯达 Angrboda]]的小女儿,后来被奥丁贬降到黑暗的阴间作为冥界女王。因此,[[光明之神巴德尔 Baldr]]死后,赫尔傲然拒绝将他的灵魂还给奥丁。
她还有另外两名兄长,一为[[魔狼芬里尔|🐺魔狼芬里尔 Fenrir]],另一为[[🐍耶梦加得 Jormungand]]。''赫尔极其阴森可怕的宫殿后来成为了地狱的代名词。''
在三兄妹中,赫尔尽管长成人形,但站在人群中却像她的两名兄长一样突出。''从腰部以上来看,她是个正常且健康的女人,而腰部以下却腐烂发黑,面部表情永远狰狞恐怖。''
海姆达尔(古北欧语:Heimdallr),是''光之神、破晓之神''。是北欧神话中一个比较神秘的神祇。另一个名字是里格 Rígr。
在北欧两大神族群里,尚不能确定海姆达尔是属于阿萨神族还是华纳神族。一般认为其父亲为[[⚡众神之父奥丁(神圣) Odin]],但也有人认为和海洋有密切关系的''海姆达尔'',应属于掌管海、风等物的''[[华纳神族|华纳神族 Vanir]]''。
传说中,海姆达尔的母亲是''[[扬波之女 Nine Daughters of Aegir and Ran]]'',〈海姆达尔之神秘〉诗中提到:“我是九个母亲的孩子,也是九个姊妹的儿子”,诗中所指的这九个姊妹可能是海浪的化身。
海姆达尔是[[亚萨神国阿斯加特 Asgard]]的守护者,为了肩负这样的任务,诸神让他拥有最好的眼睛,即使在黑夜中也可看到蚂蚁的爬动。给他非常灵敏的耳朵,连草木、羊毛生长的声音也可听到,而且日夜不休息也不会疲惫。他还拥有一个名为“''加拉尔''”的警告号角。海姆达尔平日就守在彩虹桥附近,用他过人的眼睛和耳朵监视著,不让巨人偷跑进神国领域。但他也有自己的宫殿“''希敏约格”(,意即“天卫之宫”)''。另外,他的马叫“''古尔托普''”(,意即“金顶”)。
他最讨厌的人是[[🦹邪神洛基 Loki]],因此他也被称作“洛基的敌人”。在诸神的黄昏中,海姆达尔将会和洛基展开对决。同时,他也是''最后倒下的神''。
由于他的任务关系,他也常被比喻作大天使[[😇加百列 Gabriel(God is my strength)]]。也有人认为他象征著世界之树的人格。最特别的是海姆达尔有一口金牙齿,故又有别名叫''古尔林塔尼(Gullintani,金齿者)''。另外他也被叫做“白神”或“白阿萨”,一说是因为他的''皮肤白皙''。另一说法是和芬族的祖神“白色的年轻人”有关。也有人认为海姆达尔其实是长著尖角的公羊化身。
! 爱情、美丽与性爱女神
{{aphrodite.mp3}}
|!父母 |[[天空之神乌拉诺斯 Uranus]]生殖器中生出 |
|!配偶 |[[🔥火神赫菲斯托斯 Hephaestus]] and [[🛡️战神阿瑞斯 Ares]] and [[阿多尼斯 Adonis]] and [[☤神使赫尔墨斯 Hermes]] and [[🍺酒神狄俄尼索斯 Dionysus]] and [[安喀塞斯 Anchises]] |
|标志 |海豚、玫瑰、扇贝、香桃木、白鸽、麻雀、紧身褡、镜子、天鹅 |
|对应罗马神 |Venus |
|对应美索不达米亚神 |Inanna/Ishtar |
|对应迦南神 |Astarte |
<a href="https://www.wikiwand.com/en/Aphrodite">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Cnidus_Aphrodite_Altemps_Inv8619.jpg/440px-Cnidus_Aphrodite_Altemps_Inv8619.jpg"
caption:"The Ludovisi Cnidian Aphrodite, Roman marble copy (torso and thighs) with restored head, arms, legs and drapery support"
width:"400px"
align:"right"
tooltip:"">>
</a>
阿佛洛狄忒("sea-foam" or "risen from the foam")有著古希臘最完美的身段和樣貌,象徵愛情與女性的美麗,被認為是女性體格美的最高象徵。在帕里斯的评判中,阿佛洛狄忒被选定为最高位的美神,并获得象征最美女神的金苹果。
由于阿佛洛狄忒的天生丽质,使眾天神都爱慕她追求她。宙斯也追求過她但却遭到拒絕,因此宙斯一气之下把她许配給既醜陋又瘸腿的火神铁匠赫淮斯托斯作他的妻子,''对此不满的阿佛洛狄忒为了报复宙斯,使他变得风流成性,让被他所冷落的妻子赫拉去惩罚他的情人和后代''。
阿佛洛狄忒所爱慕的是戰神阿瑞斯,并和阿瑞斯生下愛情之神厄洛斯、情欲之神安忒洛斯、协调女神哈耳摩尼亚和一對雙胞胎,分別是恐怖之神福波斯和恐懼之神得摩斯等几个儿女。
尤拉纳斯生殖器扔到海里,海里产生泡沫,生出。
阿佛洛狄忒身为爱神,但却无法支配自己的权能。因为她总是被命运捉弄着得不到属于自己的真爱,所以人类也无法得到圆满的爱的幸福,''从此人类的爱情之路上也被蒙上了猜疑、忧虑、痛苦和哀伤的阴影''。
阿佛洛狄忒还拥有一条金色的''爱情腰带''(也有的神话说是披纱),其中隐藏着她诱惑他人的秘密,只要将腰带戴在腰上,就能增长自身的魅力,勾起他者的注意力和情欲。
<<<
阿佛洛狄特 (水沫所生的女神 , 发环华美的库忒瑞娅 ),
<br>神和人都这么唤她, 因她在水沫中生成 ;
<br>或库忒瑞娅 , 因她从库忒拉经过 ;
<br>或塞浦若格尼娅 , 因她生于海浪环护的塞浦路斯 ;
<br>或''爱阴茎的'' , 因她从天神的生殖器生成。
<<<神谱(吴雅凌)
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
* with [[🔥火神赫菲斯托斯 Hephaestus]] <<list-links "[tag[🔥火神赫菲斯托斯 Hephaestus]] +[sort[title]]">>
* with [[🛡️战神阿瑞斯 Ares]]
** [[👼爱神厄洛斯 Eros]]
** [[协调女神哈耳摩尼亚 Harmonia]]
** [[🫦情欲之神安特罗斯 Anteros]]
** [[协调女神哈耳摩尼亚 Harmonia]]
** [[恐怖之神佛波斯 Phobos]]
** [[恐惧之神得摩斯 Deimos]]
* with [[阿多尼斯 Adonis]] <<list-links "[tag[阿多尼斯 Adonis]] +[sort[title]]">>
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/61/El_nacimiento_de_Venus%2C_por_Sandro_Botticelli.jpg/1324px-El_nacimiento_de_Venus%2C_por_Sandro_Botticelli.jpg">
<div class="desc">《维纳斯的诞生》是[[桑德罗·波提切利|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E6%A1%91%E5%BE%B7%E7%BD%97%C2%B7%E6%B3%A2%E6%8F%90%E5%88%87%E5%88%A9%20Botticelli%201445%E2%80%931510:%5B%5B%E6%A1%91%E5%BE%B7%E7%BD%97%C2%B7%E6%B3%A2%E6%8F%90%E5%88%87%E5%88%A9%20Botticelli%201445%E2%80%931510%5D%5D]]于1482年-1486年所绘的蛋彩画,佛罗伦萨乌菲齐美术馆藏。画中描述阿佛洛狄忒(维纳斯)诞生于大海的泡沫中,缓缓从贝壳里升起,与春神相伴的西风之神把阿佛洛狄忒吹向海岸边,并由季节女神为她披上艳丽的斗篷。她的美具有全希腊的意义。</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/f8/Venere_di_Milo_02.JPG/1057px-Venere_di_Milo_02.JPG">
<div class="desc">Aphrodite of Milos (c. 100 BC), Louvre</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Dante_Gabriel_Rossetti_-_Venus_Verticordia.jpg/1174px-Dante_Gabriel_Rossetti_-_Venus_Verticordia.jpg">
<div class="desc">Venus Verticordia (1868) by [[Dante Gabriel Rossetti|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%8A%A0%E5%B8%83%E9%87%8C%E5%9F%83%E5%B0%94%C2%B7%E7%BD%97%E5%A1%9E%E8%92%82%20Dante%20Gabriel%20Rossetti%201828%E2%80%931882:%5B%5B%E5%8A%A0%E5%B8%83%E9%87%8C%E5%9F%83%E5%B0%94%C2%B7%E7%BD%97%E5%A1%9E%E8%92%82%20Dante%20Gabriel%20Rossetti%201828%E2%80%931882%5D%5D]]</div>
</div>
</div>
Kári ("Wind"),他是杰古尔 Jökull(“冰川”)的父亲,而后者又是老斯奈尔 Snær the Old(“雪”)的父亲。
斯奈尔有一个儿子Þorri(“冰冻的雪”)和三个女儿:Fönn(“雪堆”)、Drífa(“降雪”)和 Mjöll(“粉雪”)。
卡里 (Kári) 的儿子杰古尔 (Jökull) 在芬丁诺雷格 (Fundinn Noregr) 中被称为弗罗斯塔 (Frost)(“弗罗斯特”)。
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
|!父母 |[[⚡天神宙斯 Zeus]] and [[阿尔克墨涅 Alcmene]]|
|!配偶 |Megara, Omphale, Deianira, [[Hebe|🏆青春女神赫柏 Hebe]] |
|!标志 |橄榄木棒(club), 狮皮|
|!对应罗马神 |Hercules |
|!对应伊特鲁里亚神 |Hercle |
|!对应迦南神 |Melqart |
<a href="https://www.wikiwand.com/en/Heracles">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/ad/Herakles_Farnese_MAN_Napoli_Inv6001_n01.jpg/440px-Herakles_Farnese_MAN_Napoli_Inv6001_n01.jpg"
caption:"One of the most famous depictions of Heracles, Farnese Hercules, Roman marble statue on the basis of an original by ''Lysippos'', 216 CE. National Archaeological Museum, Naples, Italy"
width:"400px"
align:"right"
tooltip:"">>
</a>
赫拉克勒斯(希腊语:Ηρακλής,Hēraklēs,引申自Hēra“赫拉”和kleos“荣耀”,即赫拉克勒斯被称为赫拉的荣耀[1],转写:Heracles,音译赫剌克勒斯、海格力斯、海克力士、赫克力士),是希腊神话最伟大的半神英雄,男性的杰出典范,伟大的赫拉克勒斯后裔祖先。
后来的罗马皇帝,比如康茂德和马克西米安都常常以其自居。罗马人基本采用希腊人对赫拉克勒斯生活和事迹刻画的版本,并零星的补充一些罗马风格的细节,有些甚至将其和统一地中海的英雄联系起来。在罗马也曾大行对赫丘利的崇拜之风。
赫拉克勒斯是''宙斯诱奸珀耳修斯的孙女、底比斯大将安菲特律翁之妻[[阿尔克墨涅|阿尔克墨涅 Alcmene]]后,与安菲特律翁的儿子伊菲克勒斯一同诞生的双胞胎兄弟''。因此他既是[[珀耳修斯|珀尔修斯 Perseus]]的曾外孙又是他的同母异父兄弟。半人半神的他自幼在名师的传授下,学会了各种武艺和技能,能勇善战,成为众人皆知的大力士。
赫拉克勒斯不仅具有非凡的实力、勇气、智慧、技能和技巧,在他的性格属性中还同时''具有男性和女性特征''。虽然他未必有奥德修斯那么聪明,赫拉克勒斯却非常善于使用自己的智慧弥补其能力上的不足:比如将安泰俄斯举起以战胜他,或是用一个小小的诡计让阿特拉斯将天空重新放回自己的肩膀。
他和[[赫耳墨斯|☤神使赫尔墨斯 Hermes]]同为古希腊的''体育馆和角力学校的庇护人和保护者''。
他的象征物为肩上的狮皮和手上的橄榄木棒。
同时他又具有爱好嬉戏的性格,常常用游戏来使自己从常年的劳役中放松,还喜欢和孩子们打赌开玩笑。
由于他征服了很多古老而危险的原始力量,赫拉克勒斯被称为“''让人类取得世界安全''”的恩人。
赫拉克勒斯是个热情而性情化的人物,他可以为了朋友出生入死(比如为了报答艾德梅塔斯王子的盛情款待而和塔纳托斯角斗,或是帮助被驱逐的斯巴达国王廷达瑞俄斯重返王位),他同时又是那些背叛他的敌人(如奥革阿斯,涅琉斯和拉俄墨冬)的噩梦。
!! 十二项功绩
# 杀死[[涅墨亚狮子|🦁涅墨亚狮子 Nemean lion]](狮子成为狮子座)
# 杀死[[九头蛇海德拉|🐍勒拿九头蛇 Lernaean Hydra]](还顺便击杀了欲攻击海克力斯的巨泥蟹,成为了巨蟹座,而九头蛇为长蛇座)
# 捕获“狩猎女神”阿耳忒弥斯的刻律涅牝鹿
# 活捉厄律曼托斯山野猪
# 清洗奥革阿斯的牛厩
# 杀死斯廷法利斯湖怪鸟
# 制伏克里特公牛
# 制伏狄俄墨得斯牝马
# 夺取亚马逊女王希波吕忒的腰带
# 牵回巨人革律翁的牛群
# [[摘取赫斯珀里得斯的金苹果|🐉拉冬 Ladon]]
# 活捉“地狱三头犬”[[刻耳柏洛斯|🐶刻耳柏洛斯/地狱三头犬 Cerberus]]
|!父母 |[[🌌黑夜女神尼克斯 Nyx]] and [[虚冥厄瑞玻斯 Erebus]] |
|!标志 ||
|!对应罗马神 |Somnia |
{{oneiros.mp3}}
''Oneiros'' (Ancient Greek: Ὀνείρων means 'dream') or ''Oneiroi'' (Ονειροι means 'dreams')
[[😴睡神希普诺斯 Hypnos]]的兄弟。
在荷马的《伊利亚特》中,宙斯决定向特洛伊战争期间希腊军队的指挥官[[阿伽门农|阿伽门农 Agamemnon]]发送一个“恶梦”。Oneiros被宙斯召唤,奉命前往特洛伊的希腊人营地,传达宙斯的信息,敦促他参加战斗。
Oneiros很快来到阿伽门农的帐篷,发现他睡着了,站在阿伽门农的头顶上方,并化身为阿伽门农值得信赖的顾问内斯特,Oneiros按照宙斯的指示与阿伽门农交谈。
!! 形象
ONEIROI 是梦中的黑翼精灵(daimones),他们每天晚上像一群蝙蝠一样从他们位于[[厄瑞波斯(Erebus)|虚冥厄瑞玻斯 Erebus]]的洞穴家园中出现——这是升起的太阳之外的永恒黑暗之地。梦神穿过两个门之一(pylai)。第一个是由角制成的,是预言神赐的梦的来源,而另一个是由象牙制成的,是虚假和没有意义的梦的来源。噩梦的术语是melas oneiros(黑色的梦)。
布里希嘉曼(Brisingamen,有“闪亮的项链”(Bright necklace)、“情热”(brisinga flaming或glowing)之意)是一串耀眼无比,华丽绝伦的项链。传说它可能是由黄金或是珍珠制成的。
这个项链的故事出现在一篇由''基督教牧师''所写的小说 Sorla Thattr(Sörla þáttr)中。女神弗蕾亚(Freya)在文中是名人类,同时也是奥丁王的宠妾。一日见到四位侏儒:杜华林(Dvalinn)、阿尔弗利克(Alfrigg)、贝尔林(Berling)和格尔(Grer)合力所造的项链,为了得到此炼,弗蕾亚同意与四名侏儒分别各过一夜。在此之后则是基督圣人如何破除项链魔力及击败异教徒的故事,在此文中,此炼尚无名称。之后故事再被改写,成了现在我们比较熟悉的神话故事情节。
北欧神话中的提到,''布里希嘉曼''拥有魔力,可以''使穿戴的女性更加美丽'',使男人都无法抗拒。这个项链是女神[[女战神弗蕾亚 Freyja]]的宝物,平时绝不离身。
但雷神索尔有一次为了抢回被巨人索列姆(Thrym)偷的雷神之锤时,不得已假扮弗蕾亚时也戴过它。此外,邪神洛基曾经偷走这条项链,弗蕾亚发现后,找来[[💂🏻破晓之神海姆达尔 Heimdallr]]帮她抢回了项链。这件事情让洛基和海姆达尔结下梁子。''之后在诸神的黄昏里,这两个仇敌会互战而死。''
! 火神、锻造之神、砌石之神、雕刻艺术之神/赫拉的儿子
{{hephaestus.mp3}}
|!父母 |[[天后赫拉 Hera]] or [[天后赫拉 Hera]] and [[⚡天神宙斯 Zeus]] |
|!配偶 |[[💗爱情女神阿佛洛狄忒 Aphrodite]] |
|标志 |锤子、铁砧、火鉗(Tongs)、鹌鹑 |
|对应罗马神 |Vulcan |
|对应北欧神 |[[🔥罗吉 Logi]] |
|对应迦南神 |Kothar-wa-Khasis |
又译赫淮斯托斯,作为锻造之神,赫菲斯托斯''在奥林匹斯山制造了众神的所有武器''。他担任众神的铁匠,在希腊的制造业和工业中心,尤其是雅典受到崇拜。赫菲斯托斯的崇拜基于莱姆诺斯岛。 据说几乎所有出现在希腊神话中的精雕细琢的金属制品都是由赫菲斯托斯锻造的。
根据赫西奥德(Theogony, 927-928 ) 的说法,''赫拉独自生下了''赫菲斯托斯'',以报复宙斯在没有她的情况下生下了[[雅典娜|🦉智慧女神雅典娜 Athena]]''。
!! 跛足
在希腊神话的一个分支中,赫拉将赫菲斯托斯从天上逐出,因为他“足部萎缩”。他掉入海中,由[[忒堤斯|河神和海洋之母忒堤斯 Tethys]](阿喀琉斯之母,50 个海神之一)和Oceanid Eurynome抚养长大。
在另一个记载中,赫菲斯托斯试图从宙斯的进攻中救出他的母亲,却被宙斯从天上扔了下来。
!! 与阿芙罗狄忒
阿佛洛狄忒虽然嫁给了赫菲斯托斯,却与战神阿瑞斯有染。最终,赫菲斯托斯通过无所不知的太阳赫利俄斯发现了阿佛洛狄忒的婚外情,并在他们的一次幽会期间策划了一个陷阱。''当阿佛洛狄忒和阿瑞斯一起躺在床上时,赫菲斯托斯将他们困在一个牢不可破的链网中,小到看不见,并将他们拖到奥林匹斯山,在其他众神面前羞辱他们以进行报复。''
!! 与雅典娜
雅典娜來訂做新武器时,赫菲斯托斯開始追逐雅典娜,因為他跛腳,所以費了好大一番功夫才終于追到雅典娜。他想要和她結婚,卻被她嚴厲的叫聲打退,但是在過程中赫菲斯托斯的精液沾到了女神的大腿上,她趕緊用羊毛拭去。並把羊毛丟下凡間,羊毛落地,使盖亚怀孕,生下厄里克托尼俄斯 Erichthonius。
!! 形象
赫菲斯托斯有时被描绘成一个留着胡子的精力充沛的人,他的''特点是他的锤子或其他一些工艺工具'',他的椭圆形帽子和披肩。
赫菲斯托斯在神话资料中被描述为 "跛脚"(chōlos)和 "停顿"(ēpedanos)。他被描绘成跛脚和畸形,要么是天生的,要么是由于他从奥林匹斯山摔下来的结果。在花瓶画中,赫菲斯托斯通常表现为跛脚,弯腰在他的铁砧上,努力地进行着金属创作,有时他的脚是前后排列的:Hephaistos amphigyēeis。他借助一根棍子行走。
在一些神话中,赫菲斯托斯为自己''建造了一个“轮椅”或战车'',可以用来移动,从而帮助他克服跛足,同时向其他神展示他的技能。
[[佛恩尤特 Fornjót]]的儿子
[[欺骗古鲁菲]]
<a href="https://www.wikiwand.com/en/Mj%C3%B6lnir#Media/File:Claes_Kurck_Sk%C3%A5ne_hammer_-_HST_DIG55488_original.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Claes_Kurck_Sk%C3%A5ne_hammer_-_HST_DIG55488_original.jpg/1762px-Claes_Kurck_Sk%C3%A5ne_hammer_-_HST_DIG55488_original.jpg"
caption:"Photograph of a silver-gilded Thor's hammer found in Scania, Sweden, that once belonged to the collection of Baron Claes Kurck."
width:"300px"
align:"right"
tooltip:"">>
</a>
意译为雷神之锤、雷霆战锤,是雷神索尔的武器。Mjölnir在古诺斯语中有“粉碎”的意思。
妙尔尼尔是''洛基''在戏弄诸神与[[侏儒|地精之国斯瓦塔尔法海姆 Svartalfaheim]]时意外得到的武器。后来赠送给索尔使用。然而因为洛基的捣蛋而使武器的握柄变得稍短,但即使如此,''妙尔尼尔仍为北欧神话中最强的武器之一''。
由于此锤拥有强大的力量,索尔又是极受崇拜的神,''所以古代的北欧常以此锤的形状作成项链,当作护身符。''
!! 形状
据说此锤的头是坚硬的岩石或是铁所打造而成,握柄部份则是以[[🌲世界之树 Yggdrasil]]的木材作成。不用的时候还可以缩小放进口袋里。此武器的功能为可以击穿任何东西,要是把它扔出去,它会毫无误差地击中目标,而且飞出去之后还会自动飞回持有者的手中。
!! 相关故事
<a href="https://www.wikiwand.com/en/Mj%C3%B6lnir#Media/File:Ah,_what_a_lovely_maid_it_is!_by_Elmer_Boyd_Smith.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/2/2b/Ah%2C_what_a_lovely_maid_it_is%21_by_Elmer_Boyd_Smith.jpg"
caption:"Ah, what a lovely maid it is! (1902) by Elmer Boyd Smith: Thor is unhappily dressed by the goddess [[Freyja|女战神弗蕾亚 Freyja]] and her attendants as herself"
width:"300px"
align:"left"
tooltip:"">>
</a>
此锤曾经被巨人[[索列姆 Thrym]]偷走过,并以此要胁诸神必须将[[女战神弗蕾亚 Freyja]]嫁给他。索尔遂扮成新娘的样子,趁机夺回宝锤,所以这把锤也是''祝福新嫁娘的神圣用品''。
另外,索尔也曾经在前往巨人的国度时,宴请一户农家吃羊,并在隔天以此锤将羊复活。所以妙尔尼尔同时也拥有''复活的力量''。
诺伦三女神是[[智慧巨人密米尔 Mimir]]的三个女儿,另一说是巨人[[诺尔维 Narfi]]的女儿。
其中大女儿兀儿德(Urd)司掌“过去”,二女儿薇儿丹蒂(Verthandi)司掌“现在”,小女儿斯库尔德(Skuld)司掌“未来”。这三姊妹不仅掌握了人类的命运,甚至也能预告诸神、巨人以及侏儒的命运,她们的出现被视为诸神黄金时代的结束。她们同时也是司掌法律的女神。但实际上三人的名字都代表未来之意,分别代表过现未三时可能是因为与摩伊赖搞混的缘故。
在《新埃达》中,兀儿德被称作“高贵之人”,薇儿丹蒂被称作“同样高贵的人”,斯库尔德被称为“第三高贵的人”,同时也称她们作“支配命运的姊妹”(weird sisters),weird是日耳曼语中“命运(wyrd)”的字源。另外她们也被称作“记述的女神”(die Schreiberinnen)用木片雕刻如尼文字。她们的主要任务织造命运之网,以及从兀儿德之泉中汲水浇灌世界之树,这样它的树枝就不会腐烂。
她们的形象是:兀儿德是短发、薇儿丹蒂是长发、斯库尔德则绑著发辫。在古老的图画中,手持天秤的诺伦三女神,是公平与正义的化身。
<<list-links "[tag<currentTiddler>] +[sort[num]]">>
! 海洋、地震、土地、风暴与马匹之神
''Poseidon'' (''/pəˈsaɪdən'', pɒ-, poʊ-/;[1] Greek: Ποσειδῶν, pronounced [poseːdɔ̂ːn])
|!父母 |[[🌾丰收之神克洛诺斯 Cronus]] and [[Rhea|天后瑞亚 Rhea]] |
|!标志 |三叉戟(Trident of Poseidon),鱼,海豚,马,公牛 |
|!配偶 |[[安菲特里忒 Amphitrite]] |
|!对应罗马神 |Neptune |
是希腊神话中的海神,宙斯的哥哥。其象征物为“波赛冬三叉戟”。相应于其被希腊神话承袭的罗马神话的尼普顿 Neptune ,''他是海王星希腊名的来源''。他的坐骑是白马驾驶的黄金战车。在神话中为人类带来马匹,所以也被视为''马匹之神''。
[img[https://upload.wikimedia.org/wikipedia/commons/b/b4/0036MAN_Poseidon.jpg]]
//Poseidon from Milos, 2nd century BC (National Archaeological Museum of Athens)//
!! 武器和象征物
在讨伐[[克罗诺斯|🌾丰收之神克洛诺斯 Cronus]]时,独眼巨人送给[[宙斯|⚡天神宙斯 Zeus]]雷霆,给波赛冬三叉戟,给[[哈迪斯|💀冥王哈迪斯 Hades]]隐形头盔。此后波赛冬经常手持三叉戟,成了他的标志。当他愤怒时海底就会出现怪物,挥动三叉戟能轻易掀起滔天巨浪,引起风暴和海啸来使大陆沉没、天地崩裂,甚至能引发震撼整个世界的强大地震。然而象征他的圣兽''海豚''则代表了海的宁静和波赛冬亲切的神性。爱琴海附近的希腊海员和渔民对他极为的崇拜。
[img[https://upload.wikimedia.org/wikipedia/commons/7/7d/Poseidon_sculpture_Copenhagen_2005.jpg]]
//Poseidon sculpture Copenhagen 2005//
波塞冬的三叉戟并非只用来当武器,也被用来击碎岩石,从裂缝中流出的清泉浇灌大地,使农民五谷丰登,所以波塞冬又被称为''丰收神''。波塞冬也给予了人类第一匹马,他乘座的战车就是用金色的战马所拉的,当他的战车在大海上奔驰时,波浪会变的平静,并且周围有海豚跟随。
波塞冬的神性广泛,有强烈的侵略性和极大的野心。他曾密谋夺取宙斯的天帝宝座,但被宙斯发觉,把他放逐到地上受刑,帮助拉奥墨多王修建特洛伊城。
他常与诸神交战,与雅典娜在雅典和特罗森争霸。一次他和雅典娜就新城雅典起名之事争吵,最后被迫向雅典娜让步。另一次他因科林斯的国王之故与阿波罗激烈争吵,最后以胜利告终。
!! 神话
!!! 雅典城
波塞冬曾与智慧女神雅典娜争夺对雅典城的保护权,以便能掌握这个富裕城市的财富。波赛冬戟敲击海面,海面上跃出一匹骏马;雅典娜将长矛插在地上,地上长出了一颗橄榄树。骏马是战车的带动力,象征着战争,而橄榄树是和平的象征,并拥有可观的农业价值。宙斯主持奥林匹斯众神投票裁决,雅典娜以多数票胜出。
!!! [[安菲特里忒 Amphitrite]]
波赛冬和宙斯一样爱好女色。他的妻子安菲特里忒在成为王后之前是海河中的美丽海仙女。有一天她和姐妹们在纳克索斯岛上跳舞,波赛冬一见钟情。精灵们一见到波赛冬就潜入海底,波赛冬立刻派一只海豚追逐。安菲特里忒不是对手,最后疲倦之际,只得乖乖坐在海豚的背上,成了波赛冬的新娘。他们生出来的独生子叫做[[特里同|特里同 Triton]],上半身是人身,下半身是鱼尾,而且长满了海藻,是个''男美人鱼''。这位海中的王子,继承了父亲喜好女色的个性,娶了几个海中仙女,和她们发生性关系。其子女都会吹海螺,在祖父、祖母出游时,就鸣螺开道。
!!! 子女
波赛冬像宙斯一样还与各个情人生了很多儿子,但比起宙斯底下各个俊男美女差一些,波赛冬的私生子''多是巨人和粗野的英雄''。他和自然女神涅瑞伊得斯生的一群儿子叫[[独眼巨人 库克罗佩斯|👁️独眼巨人 Cyclopes]],其中独眼巨人''波吕斐摩斯''特别出色,后来被[[奥德修斯|奥德修斯 Odysseus]]给刺瞎了眼睛。
波赛冬与地母[[盖亚|🌍大地女神盖亚 Gaea]](波赛冬的祖母)生了个巨人儿子安泰,又称[[安泰俄斯|安泰俄斯 Antaeus]],安泰特别恋母,睡觉都不用床,直接躺在大地母亲的怀抱,安泰生性好斗,所有经过利比亚的人都必须和他格斗,他在格斗时只要不离开大地,就能从大地母亲的身上汲取力量,当他遇到宙斯的英雄儿子[[赫拉克勒斯|💪大力神赫拉克勒斯 Heracles]]时,被三次打倒都无损伤,但赫拉克勒斯发现了他恢复力气的秘密,也是他用强有力的手臂把安泰举在空中,然后将他给掐死,人们习惯上用这个故事来比喻,人离不开大地,或英雄离不开人民。
!! 子女
<div>
<<toc-selective-expandable "🔱海神波塞冬 Poseidon">>
</div>
<a href="https://www.wikiwand.com/en/Temple_menorah">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a4/Menorah_0307.jpg/500px-Menorah_0307.jpg"
caption:"Reconstruction of the menorah of the Temple in Jerusalem, created by the Temple Institute of Israel"
width:"300px"
align:"right"
>>
</a>
犹太教灯台(发音:[mənoːˈɾaː])是犹太人的当中一个最古旧的标志,根据出埃及记25章31、33、37节,摩西以杏花形状制作七个分支的金灯盏。起初在犹大旷野会幕中使用,后来在耶路撒冷圣殿中使用。
许多灯台__不只有七烛台__,而是有''九烛台'',四个烛台在灯台左右,代表油用八天的奇迹。灯台中间的烛台称''Shamash'',使用它的灯火点燃其他烛台。这类型的灯台可称再献圣殿节灯台或犹太教九灯烛台,简称''Menorah''。
烛台七个灯盏推测是根据旧约圣经创世纪,''神用六天创造天地,第七天安息,中间灯盏代表安息日''。
<a href="https://www.wikiwand.com/en/Temple_menorah#Media/File:The_Arch_of_Titus,_Upper_Via_Sacra,_Rome_(31862188061).jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a4/The_Arch_of_Titus%2C_Upper_Via_Sacra%2C_Rome_%2831862188061%29.jpg/440px-The_Arch_of_Titus%2C_Upper_Via_Sacra%2C_Rome_%2831862188061%29.jpg"
caption:"提图斯凯旋门来自耶路撒冷的战利品金灯台"
width:"300px"
align:"left"
>>
</a>
公元70年,耶路撒冷在犹太战争中被罗马帝国将军提图斯攻陷,第二圣殿也被毁,圣殿里的圣物被掳往帝国首都罗马城,为纪念这件事情,罗马人开建了提图斯凯旋门。自公元411年西哥特王国攻占罗马城后圣物现已下落不明,凯旋门上的雕塑成为人们对圣物的推测根据。
提图斯凯旋门上的金灯台图案,于1948年以色列国建国时,采用为国徽的蓝图。
在''基督教教会中保留七灯台的情况很少'',目前只有''俄罗斯东正教''会和''丹麦路德教会''在教堂布置中使用,一般布置在祭坛之上并且放一个。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/8/8f/Emblem_of_Israel.svg/440px-Emblem_of_Israel.svg.png"
caption:"The Emblem of Israel shows a menorah surrounded by an olive branch on each side and the writing "ישראל" (Israel) based on its depiction on the Arch of Titus."
width:"200px"
align:"right"
>>
<a href="https://www.wikiwand.com/en/Keys_of_Heaven">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/8/81/Emblem_of_the_Papacy_SE.svg/400px-Emblem_of_the_Papacy_SE.svg.png"
caption:"The emblem of the papacy used by the Catholic Church"
width:"300px"
align:"right"
>>
</a>
天国之钥,又称[[圣彼得|✝️彼得 Saint Peter]]之钥,指圣彼得职位的隐喻钥匙、天国之钥或天国的钥匙。圣经[[马太福音 Gospel of Matthew c.41]] 16:19 明确提到了这一点。
<a href="https://www.wikiwand.com/en/Elijah#Media/File:ElijahByLouisHersent.JPG">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/c/c8/ElijahByLouisHersent.JPG"
caption:"Elijah reviving the Son of the Widow of Zarephath by Louis Hersent"
width:"400px"
align:"right"
>>
</a>
''以利亚''出现于公元前9世纪,当时以色列王国 (前期)进入[[南北分裂时期|王国分裂]],分为以色列王国 (后期)及南犹大。
《圣经》记载,''以利亚''按照神的旨意,警告[[亚哈|👑亚哈 Ahab]]王,如果继续崇拜偶像,神将审判以色列,让以色列经历旱灾。
以利亚寄住撒勒法的寡妇家时,也施行了救活寡妇儿子的神迹及油与面不短缺的神迹。
以色列经历三年的旱灾后,以利亚再次与''亚哈王''见面,并约好在迦密山,透过献燔祭,确认哪边敬拜的神才是真神。结果以利亚的祭坛兴起降火的神迹,让所有人不得不承认“耶和华才是真神!”并解除了三年旱灾的窘境。
后来以利亚仍被以色列王室逼迫。最后在约旦河乘旋风升天去了,后来由''以利沙''继承以利亚先知的使命。
!! Disciples
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
[[🗣️以利亚 Elijah]]的继任者
!! 相关事迹
* [[以利沙接替以利亚]]
* [[以利沙进一步施行奇迹]]
* [[以色列王约哈斯及约阿施]]
<a href="https://www.wikiwand.com/en/Ezekiel">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/5/5a/Ezekiel_by_Michelangelo%2C_restored_-_large.jpg/440px-Ezekiel_by_Michelangelo%2C_restored_-_large.jpg"
caption:"Ezekiel, as depicted by Michelangelo on the Sistine Chapel ceiling"
width:"400px"
align:"right"
>>
</a>
''“异象”的先知''
''以西结'',天主教译为''厄则克耳''(意思是“上帝必坚固”)是圣经记载的一位祭司,以西结是布西的儿子,出身在祭司家庭(结1:3),是''撒督''的后裔,承袭亚伦之子''以利亚撒''的脉络,属祭司中的贵族,他在前6世纪,在被掳到巴比伦期间,看见异象,说预言22年,正如以西结书所记载。
基督教将以西结当作圣徒和先知。伊斯兰教的古兰经中有提到过以西结两次,犹太教认为以西结书是经典的一部分,认为以西结是第三位大先知。
[[以西结书 Book of Ezekiel c.591 BC]]
<a href="https://www.wikiwand.com/en/Isaiah">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Jesaja_%28Michelangelo%29.jpg/440px-Jesaja_%28Michelangelo%29.jpg"
caption:"Fresco from the Sistine Chapel ceiling by ''Michelangelo''"
width:"400px"
align:"right"
>>
</a>
[[以赛亚书 Book of Isaiah 732 BC]]
''但以理''(希伯来文:דָּנִיּאֵל)(?-前530年),天主教圣经译作''达尼尔'',巴比伦名字是''伯提沙撒'',圣经中说是犹大国的希伯来人。前607年被新巴比伦王国所掳,并在巴比伦宫廷接受教育。
名字的意思是“我的审判者是上帝”
旧约圣经但以理书中,他与另外三个希伯来年青人被选中服侍巴比伦王''[[🤴尼布甲尼撒二世 Nebuchadnezzar II 642-562 BC]]'',在巴比伦国中任职。
因为解释尼布甲尼撒二世不能理解的梦,在巴比伦受王重用。及至巴比伦伯沙撒亡国,直到被波斯米底亚双元帝国取代,''但以理都一直被重用''。在其后的波斯帝国,更受任官职。
前530年死后被葬于首都苏萨(Susa,在今日伊朗西部的胡泽斯坦省),并建有一个巨型华丽的墓园。后来中世纪帖木儿帝国入侵,把他的骸骨掳到帖木儿首都撒马儿罕安葬,原因不明。
[[但以理书 Book of Daniel c.536 BC]]
何西阿,天主教译为欧瑟亚(Hosea)是《圣经‧旧约全书》里[[何西阿书|何西阿书 Book of Hosea 745 BC]]一卷的作者,他是公元前8世纪的一位先知,父亲备利(Belee)亦是当时的一位先知。
他依照上帝的说话,娶了歌蔑为妻,并育有数名子女。后来歌蔑果然正如上帝所言,抛夫弃子私奔去,但何西亚依然期待著她回来。果然后来歌蔑的确重新回来。上帝希望藉著这一件事来预言,虽然以色列人会离弃上帝,但上帝依然期待他们的回心转意。
one of the disciples of [[🗣️以利亚 Elijah]],[[俄巴底亚书 Book of Obadiah c.607 BC]]的作者。
他生于何时何地,''属于哪个支派,他的生平事迹——这一切都不详
在希伯来文圣经里,哈巴谷是另一位“小”先知。哈巴谷书的头一句便说:“先知哈巴谷所得的默示。”(哈巴谷书1:1)
这位名叫哈巴谷(希伯来语Chavaq‧quq′,查瓦奎)——名字的意思是“''热烈的拥抱''”。书中并''没有提供有关哈巴谷的出身、所属的支派、生活境况或死亡等资料''。虽然预言者在书的结语里留下一点提示:“这歌交与伶长”,却不能够肯定他是否圣殿里的一位''利未歌手''。
同期先知:[[🗣️耶利米 Jeremiah c.650-c.570 BC]]
“哈该”(希伯来文Chag·gai′,חגי) 这个名字的意思是“''在节日中[诞生]''”,这也许表示他是在节期中出生的。他的身分是预言者及“耶和华的使者”。哈该是第十位所谓的“小”先知。在犹太人于公元前537年返回故土后,他是在国内服务的三位预言者中的第一位。其馀两位是[[👑撒迦利亚 Zechariah of Israel]]和玛拉基。
根据犹太人的传统,合理的见解是哈该''生于巴比伦'',然后跟随所罗巴伯及大祭司''约书亚''一起返回耶路撒冷。哈该与预言者[[👑撒迦利亚 Zechariah of Israel]]并肩工作,以斯拉记5:1及6:14透露这两位预言者一同勉励被掳归回的人恢复重建圣殿的工作。
他在两方面履行身为耶和华的预言者的职责,一方面''劝勉犹太人要向上帝履行他们的责任'',同时又说预言,包括预告上帝会震动万国。(哈该书2:6,7)
弥迦,天主教译为米该亚,是犹太教中的一个先知,于公元前737至696年在犹大王国活动,是《[[弥迦书|弥迦书 Book of Micah 717 BC]]》的作者。
希伯来圣经将其视为十二位小先知之一,与[[🗣️以赛亚 Isaiah]]、[[🗣️阿摩司 Amos]]、[[🗣️何西阿 Hosea]]处于同一时代。来自犹大王国西南部,在[[👑约坦 Jotham]]、[[👑亚哈斯 Ahaz]]、[[👑希西家 Hezekiah]]统治时期进行预言。
“弥迦”为“米该亚”的简称,意即:“谁能像耶和华”
弥迦是个''农村预言者'',来自位于耶路撒冷西南肥沃高原地带的摩利沙村。他对农村的事物耳熟能详,从他作宣告时屡次运用比喻去阐明要点的方式可以见之。弥迦多半在民间传扬上帝的话,被称为“''乡村的先知''”。
弥迦可能在犹大的农村中长大,但他的表达能力甚强。圣经中若干最优美的言词即出自此书。第6章是以有力的对话形式写成。弥迦从一个论点迅速转到另一个论点,时而咒诅,时而祝福,再又咒诅,这种突如其来的转变紧扣读者的心弦。书中充满许多生动传神的意象:当耶和华出动时,“众山在他以下必消化,诸谷必崩裂,如蜡化在火中,如水冲下山坡。”
弥迦是一位成熟的男子,长年累月、忠心耿耿地事奉耶和华。他十分勇敢,有胆量向国家的领袖们说:“你们恶善好恶,……吃我民的肉,剥他们的皮。”他凭上帝的灵说了许多铿锵有力的话,然后把一切功劳全归给耶和华。他的话包藏着丰富的知识,予人有益的训示。
同期先知:[[🗣️以赛亚 Isaiah]]和[[🗣️弥迦 Micah]]主要对犹大国。[[🗣️阿摩司 Amos]]和[[🗣️何西阿 Hosea]]则主要对以色列。
<a href="https://www.wikiwand.com/en/Zechariah_(Hebrew_prophet)">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/2/27/Michelangelo_Buonarroti_031.jpg/440px-Michelangelo_Buonarroti_031.jpg"
caption:"Zechariah as depicted on the ceiling of the Sistine Chapel"
width:"400px"
align:"right"
>>
</a>
撒迦利亚,天主教译为匝加利亚,伊斯兰教译为宰凯里雅(,意为YHWH所记念),是希伯来圣经中的人物,犹大王国的先知,《[[撒迦利亚书|撒迦利亚书 Book of Zechariah 518 BC]]》(12卷小先知书中的第11卷)的作者。
撒迦利亚和[[🗣️以西结 Ezekiel]]一样,也出身于祭司家庭。他是比利家的儿子,易多的孙子。在巴比伦囚虏时期,生在巴比伦。
大约在公元前520年,波斯国王大流士一世在位的第二年,在第一批犹太人归回16年之后,所罗巴伯和约书亚的带领犹太人回到耶路撒冷,重建圣殿,撒迦利亚作为易多家族的族长,也在归回的犹太人之列。这时,他和哈该作为先知,鼓励以色列人。
<a href="https://www.wikiwand.com/zh-hans/%E6%96%BD%E6%B4%97%E7%BA%A6%E7%BF%B0#Media/File:Andrea_del_Verrocchio,_Leonardo_da_Vinci_-_Baptism_of_Christ_-_Uffizi.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/b/bc/Andrea_del_Verrocchio%2C_Leonardo_da_Vinci_-_Baptism_of_Christ_-_Uffizi.jpg/400px-Andrea_del_Verrocchio%2C_Leonardo_da_Vinci_-_Baptism_of_Christ_-_Uffizi.jpg"
caption:"[[委罗兹奥|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%AE%89%E5%BE%B7%E7%83%88%E4%BA%9A%C2%B7%E5%BE%B7%E5%B0%94%C2%B7%E9%9F%A6%E7%BD%97%E5%9F%BA%E5%A5%A5%20Andrea%20del%20Verrocchio%201435-1488:%5B%5B%E5%AE%89%E5%BE%B7%E7%83%88%E4%BA%9A%C2%B7%E5%BE%B7%E5%B0%94%C2%B7%E9%9F%A6%E7%BD%97%E5%9F%BA%E5%A5%A5%20Andrea%20del%20Verrocchio%201435-1488%5D%5D]]作品,施洗者约翰为耶稣基督进行施洗。其中最左侧天使为当时是学徒的[[达文西|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%88%97%E5%A5%A5%E7%BA%B3%E5%A4%9A%C2%B7%E8%BE%BE%C2%B7%E8%8A%AC%E5%A5%87%20Leonardo%20da%20Vinci%201452-1519:%5B%5B%E5%88%97%E5%A5%A5%E7%BA%B3%E5%A4%9A%C2%B7%E8%BE%BE%C2%B7%E8%8A%AC%E5%A5%87%20Leonardo%20da%20Vinci%201452-1519%5D%5D]]手笔"
width:"400px"
align:"right"
>>
</a>
据基督教的说法,施洗者约翰在约旦河中为人施洗礼、劝人悔改,后来他因公开抨击当时的加利利及比利亚的分封王''[[🤴大希律王 Herod the Great 74 BC-4 BC]]''被捕入狱并遭到处决。
<<card
text:"
希律为了他哥哥腓力的妻子希罗底的缘故,把约翰逮捕捆绑,关在监牢里,因为约翰屡次对希律说:“你娶这个女人是不合法的。”
<br><br>
他想杀掉约翰,但又害怕民众,因为他们认为约翰是先知。到了庆祝希律生日的时候,希罗底的女儿''莎乐美Salome''出来跳舞助兴,希律十分开心,于是发誓说,不管她求什么,都会给她。
<br><br>
她受了母亲教唆,就说:“请把施浸者约翰的头放在盘子上,送到这里来给我。”王很忧愁,无奈自己发了誓,席上的宾客也听见了,只好命人给她。王就派人到监狱去斩了约翰的头,把头放在盘子上带来,交给那个女孩,女孩就拿去给她母亲。
<br><br>
事后约翰的门徒来把尸身领去埋葬了,然后来向耶稣报告。耶稣听到这个消息后,就坐船离开那里,到一个偏僻的地方去,不想让人打扰。民众听说了,就从各城出来,走路跟随他。
"
footer:"Matthew 14:3"
>>
<a href="https://www.wikiwand.com/en/Salome#Media/File:Franz_von_Stuck_010.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/8/88/Franz_von_Stuck_010.jpg/1098px-Franz_von_Stuck_010.jpg"
caption:"Salome by Franz von Stuck, 1906"
width:"auto"
align:"center"
tooltip:"">>
</a>
玛拉基(希伯来文:מַלְאָכִי Mal·’a·khi′),意思是“''我(神)的使者''”(参3:1)。他的''家系或个人背景资料无从稽考''。
但从他所说的预言的要旨看来,他显然在事奉耶和华上帝方面极为热心。他拥护上帝的圣名,竭力持守纯真的崇拜。此外,他对那些声称事奉上帝,但骨子里却自私自利的人大感愤怒。尽管只有4章内容,执''笔者却提及耶和华这个名字共达48次之多''。
He is one of the four disciples of [[Elijah|🗣️以利亚 Elijah]]
<a href="https://www.wikiwand.com/en/Jonah">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/f/fe/Sistine_jonah.jpg"
caption:"The Prophet Jonah (c. 1508–1512)
by Michelangelo (the Sistine Chapel ceiling)"
width:"400px"
align:"right"
>>
</a>
one of disciples of [[🗣️以利亚 Elijah]]
[[约拿书 Book of Jonah c.844 BC]]的作者。
[[约珥书 Book of Joel c.820 BC]]的作者。
这本书一开始便说:“耶和华的话临到毗土珥的儿子约珥。”圣经对约珥的生平就只有这么简短的描述。''圣经所着重的是书中的信息而非执笔者本身''。
“约珥”(希伯来文Yoh·’el′,约尔)这个名字的意思是“''耶和华是上帝''”。
约珥对耶路撒冷、其中的圣殿和殿中各项职事均十分熟悉,这显示他可能在耶路撒冷或犹大执笔写成这本书,他甚至乎可能是属于祭司的团体。
<a href="https://www.wikiwand.com/en/Jeremiah">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/9/9b/Michelangelo_Buonarroti_027.jpg"
caption:"Jeremiah, as depicted by ''Michelangelo'' from the Sistine Chapel ceiling"
width:"400px"
align:"right"
>>
</a>
''流泪的先知''
''耶利米'',天主教译为耶肋米亚,是《圣经》中犹大国灭国前,最黑暗时的一位先知,《旧约圣经》中《耶利米书》、《耶利米哀歌》、《列王纪上》及《列王纪下》的作者。
他被称作“流泪的先知”,因为他明知犹太人离弃上帝后,所注定的悲哀命运,但不能改变他们顽梗的心。
!! 生平
耶利米出身于耶路撒冷东北不远的亚拿突,是[[便雅悯|Tribe of Benjamin]]支派境内祭司希勒家的儿子,生来就有祭司的地位。犹大国约西亚王第十三年(前627年)蒙召,那个时候他可能很年轻。耶利米蒙召时的反应是畏惧和自感不足,但神承诺将引领他未来的路程,最后作先知四十年。
他奉差遣传神审判的信息,他的逆耳忠言为所爱的同胞所痛恨,一再忍受反对、鞭打、监禁等逼迫,面对百姓的罪恶与神将临的惩罚,他内心的痛苦与冲突达到极点,但他仍忠心地传讲与国家政策相违的信息,甚至必须与政治,宗教领袖敌对,在那个周围有各样攻击的环境中,神让耶利米单独凭著信心继续传道。
当''[[新巴比伦帝国 Neo-Babylonian Empire 626-539 BC]]''大军攻陷耶路撒冷时,耶利米伤心地看著他的预言应验。在国家沦亡,百姓被掳后,耶利米获释,并受巴比伦王''[[🤴尼布甲尼撒二世 Nebuchadnezzar II 642-562 BC]]''优待。耶利米与先知哈巴谷、西番雅、但以理、以西结是同时代的人,他们有人被掳到巴比伦,但耶利米选择仍留在耶路撒冷。
直到后来,留在耶路撒冷的犹太人叛逆巴比伦,耶利米被迫随他们逃往埃及,在埃及去世。
[[耶利米书 Book of Jeremiah 580 BC]]
[[👑希西家 Hezekiah]]王的元孙,[[👑约西亚 Josiah]]王期间的先知, [[西番雅书|西番雅书 Book of Zephaniah 648 BC]]的作者。
阿摩司,天主教译作亚毛斯,是以色列人的先知,《圣经·旧约全书·[[阿摩司书|🗣️阿摩司 Amos]]》的作者,十二小先知之一。“阿摩司”在希伯来语的意思为“负荷”或“挑重担者”。
有关阿摩司的生平只在《阿摩司书》内记载:他本身是犹大王国在伯利恒南方的乡村提哥亚(英语:)的牧人,又是修理桑树的农夫(1章:1节,7:14),却奉命到北方以色列王国传警告。当时,犹大的王是[[👑乌西雅/亚撒利雅 Uzziah/Azariah]],以色列王是[[👑耶罗波安二世 Jeroboam II]]。
|!父母 |[[🌌黑夜女神尼克斯 Nyx]] |
|!配偶 ||
In Greek mythology, Philotes (/ˈfɪlətiːz/; Ancient Greek: Φιλότης) was a minor goddess or spirit (daimones) personifying affection, friendship, and sexual intercourse.
|!父母 |[[🌌黑夜女神尼克斯 Nyx]] |
|!配偶 ||
摩墨斯(Momus,引申自μομφή,意为''谴责''),是希腊神话中的嘲弄,谴责,讽刺之神,同时也是作家和诗人的守护神,具有如同恶魔般爱好谴责和进行不公批评的个性。在古典艺术中常常被刻画为带著嘲弄面具极为毒舌的神明。他在罗马神话中对应为奎瑞拉(Querella),他的对立者是赞美女神欧斐墨(Eupheme)。
据赫西俄德描述,摩墨斯是[[🌌黑夜女神尼克斯 Nyx]]的儿子。
琉善提到,他嘲笑[[☤神使赫尔墨斯 Hermes]],说他忘记在人类的胸口上开窗,使得众神无法获知人类的想法。他嘲笑[[💗爱情女神阿佛洛狄忒 Aphrodite]],称她为饶舌妇,将她的嘎吱嘎吱的凉鞋作为笑料。 他甚至敢嘲弄[[宙斯|⚡天神宙斯 Zeus]],称其为暴力神和淫神,生了两个和他一样的令人厌恶的恶棍儿子(出自阿波罗纽斯·摩隆的作品)。由于他过于毒舌,最后被从奥林匹斯山流放。
! 不和女神
|!父母 |[[⚡天神宙斯 Zeus]] and [[天后赫拉 Hera]] or [[🌌黑夜女神尼克斯 Nyx]]|
|!配偶 ||
|标志 |不和谐的金苹果 |
|对应罗马神 |Discordia |
在《伊利亚特》(荷马)中她是战神阿瑞斯的姊妹,因此也是宙斯和赫拉的女儿,她在敌对双方间散布着痛苦和仇恨;在《神谱》(赫西俄德)和《工作与时日》中她则是倪克斯 Nyx 和克洛诺斯 Cronus 的女儿。
她因为没有被邀请参加珀琉斯和忒提斯的婚礼而怀恨在心,抛下了一个刻有“献给最美的”(Ἡ καλὴ λαϐέτω)的''金苹果'',引起了一连串的纷争与混乱。
!! Offspring
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
''耶稣的母亲''
根据《新约圣经》记载,玛利亚/马利亚是一名居住于加利利地区拿撒勒(纳匝勒)城的犹太妇女,[[🧔🏻♀️耶稣 Jesus c.4 BC-33]]的母亲。
基督徒认定《新约圣经》对''玛利亚''还是童贞女时顺从天主,受圣神感孕而怀孕生出''耶稣'',并且认定她所生的是基督(或称默西亚),降生成人的天主之子。当时玛利亚已与[[圣若瑟|约瑟 Joseph,son of Jacob,son of Matthan]]订婚,若瑟把玛利亚娶过来之后,便陪伴她去了伯利恒,在那里,她生下了耶稣。
《路加福音》从描写玛利亚接受天使[[😇加百列 Gabriel(God is my strength)]]预报的降生开始。尽管其中对玛利亚在耶稣在天上公开传道后的描述不多,圣史路加记录了当耶稣受难时,无人在十字架下默默地陪伴着他。弥赛亚基督主,在耶路撒冷的早期基督教团体中,玛利亚乃是非常重要的一员。''有部分秘经记载玛利亚从未经历死亡,而是肉体与灵魂直接升入天国。''
玛利亚是基督教中''最重要的女性人物'',从基督教早期开始就倍受尊敬,对其有“圣母”、“蒙福童贞玛利亚”等尊称。罗马天主教、东方正教会以及部份圣公宗、循道宗、长老宗和路德宗相信玛利亚卒世童贞、蒙召升天。
天主教相信玛利亚无染原罪。罗马天主教、东方正教会、东方正统教会、圣公宗以及路德宗的基督徒们都相信玛利亚是“天主之母”。''而很多新教派系不接受这些观点,这些派系认为玛利亚是“基督之母”,不是天主之母。他们也不认同立玛利亚圣像,并认为此举违反[[十诫|摩西十诫 Ten Commandments]]的“不可敬拜偶像”。''
''希律''(前74年—前4年),又译''希律王''、''黑落德王'',亦被称为''大希律王''(Herod the Great)、''希律大帝'',''希律一世''(Herod I),''希律王朝''的首位国王,是''罗马共和国''(公元前27年起成为罗马帝国)境内作为自治国的''希律犹太王国''(英语:)的''犹太王''。
他是犹太历史上''最著名的建设者'',他扩建了耶路撒冷的[[第二圣殿 Second Temple]](又称希律的圣殿)—西墙是其中的一部分,修建了凯撒利亚的港口,建立马萨达与希律宫(Herodium)的城墙。他的生平资料主要来自于公元1世纪犹大史学家弗拉维奥·约瑟夫斯的著作。
希律王也出现在基督教《新约圣经》[[马太福音 Gospel of Matthew c.41]]中,作为犹太地统治者在[[🧔🏻♀️耶稣 Jesus c.4 BC-33]]诞生时下令罗马驻军将伯利恒及其周围境内两岁以下的所有男婴杀死,尽管大多数希律王传记作者并不相信这一事件发生过。根据国家地理杂志的研究报导除了圣经之外并无其他历史资料纪录这件大量杀死婴儿的事件。然而当时的''伯利恒''乃一小村庄,两岁以下男婴的数量可能不超过二十,这也许是为何这起事件缺乏史料记载的原因。
尽管他取得了成功,包括从几乎一无所有中一手打造了一个新王朝,他仍然受到了各种历史学家的批评。历史学家对他的统治意见两极化,有些人认为他的遗产是成功的证据,有些人则认为这是对他残暴统治的提醒。
!! 生平
希律生于''以东'',是哈斯蒙尼王朝"大祭司"(国王)''约翰·海卡努斯''二世身边的亲罗马权臣安提帕特的其中一位儿子,希律的母亲赛普勒斯是一名纳巴泰(今约旦)人的阿拉伯公主。父亲[[以东人安提帕特 Antipater the Idumaean c.113/114-43 BC]]是以东人,母亲则是犹太人并且他的祖先早已皈依犹太教,所以希律自小就作为''犹太人''长大。
希律的崛起很大程度上是透过他父亲和''罗马共和国''前三头同盟之一的''尤利乌斯·凯撒''(亦是后来罗马皇帝屋大维的养父,血缘上屋大维是凯撒的外甥)的良好关系,因此受凯撒的信任,更将犹太的公共事务委托给安提帕特。
公元前47年,''希律''被任命为加利利省长,当时希律大约25岁或28岁(希腊文原文:“15 岁”)。 在那里,他忠诚地为共和国元老院征收该地区的税收,并成功地消灭了该地区的强盗。''他很享受罗马人的支持,但犹太公会谴责他的暴行''。
当希律还是个普通人时,他就决定惩罚哈斯蒙尼大祭司(国王)''海卡努斯二世'',后者曾因谋杀罪传唤希律受审,但由于他父亲安提帕特和哥哥法萨尔的干预,希律未能这样做。
公元前41年,罗马共和国后三头同盟之一的''马克·安东尼''任命希律和他的哥哥法撒尔为分封王,他们被安排担任分封王是为了支持''海卡努斯二世''。
公元前40年,海卡努斯二世的侄子安提柯二世在帕提亚帝国的帮助下从他的叔叔手中夺取了犹太王位。 希律逃往罗马城,恳求共和国复辟海卡努斯二世。罗马人对犹太地区有著特殊的兴趣,因为他们著名的庞贝将军于公元前63年征服了哈斯蒙尼王朝和耶路撒冷,从而使[[''哈斯蒙尼王朝''|哈斯蒙尼王朝 Hasmonean dynasty 140 BC-37 BC]]成为罗马附属国。在罗马,希律出乎意料地被元老院任命为犹太人的王,世称''大希律王''。
希律和罗马叙利亚总督索西乌斯在安东尼的要求下,于公元前37年率领大军出发,占领了[[耶路撒冷 Jerusalem]],希律随后将末代哈斯蒙尼王朝国王安提柯二世送去被安东尼处决。 从这一刻起,希律成为''犹太的唯一统治者'',并获得了巴西勒斯(Βασιλεύς,“国王”)的头衔,开创了''希律王朝'',结束了马加比家族的''哈斯蒙尼王朝''。
由于有些人认为希律王的家人皈依了犹太教,他的宗教信仰受到了犹太社会一些人士的质疑。当约翰·海卡努斯的哈斯蒙尼王朝在公元前140-130年征服以土买地区(希伯来圣经中的以东)时,他要求所有以土买人遵守犹太法律,否则就离开; 大多数以土买人因此皈依了犹太教,这意味著他们必须接受割礼,并且许多人与犹太人通婚并接受了他们的习俗。 虽然希律王公开表明自己是犹太人,并且被一些人认为是犹太人,但这种宗教身份被希律党人颓废的生活方式所破坏,这会让他们招致虔诚的犹太人的反感。
希律后来处决了他自己的几名家庭成员,包括他的妻子''米利暗一世''。
希律王和罗马帝国的开国皇帝奥古斯都(屋大维)之间的关系表明神化的皇帝和统治犹太人及其圣地的国王之间的脆弱政治。当他们互动时,希律王既要满足他王国中的犹太人和非犹太人的愿望,又必须满足奥古斯都在整个帝国传播罗马文化、建筑和价值观的目标。 奥古斯都和罗马帝国对政策的影响导致整个希律王国都采用古罗马建筑。希律为了效忠罗马而对犹太地区进行建筑扩张的一个例子可以从他委托建造的''第三座圣殿''—奥古斯都圣殿(Temple of Divus Augustus)中供奉奥古斯都的圣殿中看出。
希律晚年因儿子夺位而非常烦恼。最后希律王在耶利哥病逝,至此他已统治以色列地区37年。死后葬在圣城以外12公里的希律堡,其后按照罗马帝国皇帝屋大维(奥古斯都)分封,三名儿子''希律·阿基劳斯''、''希律·安提帕斯''和''希律·菲利普二世'',另外还有希律的妹妹''莎乐美一世''分了他的领土。
领有包含耶路撒冷在内的犹太地、以东和撒马利亚封地的''希律·阿基劳斯''因为残暴统治,在公元6年被罗马皇帝''奥古斯都''罢免,他的领土随后被罗马直接派罗马人长官/总督管理,成为了众所周知的“犹太行省”。
!! 圣经中的希律
最为熟悉是他在[[马太福音 Gospel of Matthew c.41]]第二章的作为。他是[[🧔🏻♀️耶稣 Jesus c.4 BC-33]]童年时代整个犹太人地区的统治者。
在《新约圣经》中,他知道伯利恒有个君王诞生了,就让三智者先行,假意跟随朝拜。当三智者从另一方向离开后,他下令罗马驻军将伯利恒及其周围境内两岁以下的所有男婴杀死,而耶稣一家在其死后才回到拿撒勒。
|!父母 |[[Alcaeus]] and Astydameia|
|!配偶 |[[阿尔克墨涅 Alcmene]] |
|!标志 ||
|!对应罗马神 ||
希腊神话中的底比斯王子,[[💪大力神赫拉克勒斯 Heracles]]的养父。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
''尼布甲尼撒二世''(约前642年—前562年),是''巴比伦迦勒底帝国Neo-Babylonian Empire''的君主,在位时间约为前605年-前562年,知名于''建成空中花园''、''毁坏所罗门圣殿''。他曾征服犹大王国的耶路撒冷,并流放犹太人,《[[圣经列王纪|列王纪 Books of Kings 580 BC]]》和《[[耶利米书|耶利米书 Book of Jeremiah 580 BC]]》描述了他征服犹大王国的过程。
!! 圣经中的描写
''尼布甲尼撒''多次在《圣经》中出现。《[[列王纪 Books of Kings 580 BC]]》中描述了尼布甲尼撒两次包围耶路撒冷,《[[耶利米书 Book of Jeremiah 580 BC]]》则描述了第二次围城和洗劫摧毁所罗门圣殿。
''尼布甲尼撒二世''也是《[[但以理书 Book of Daniel c.536 BC]]》中的重要人物,4章1-37节中描述他的梦境、对神的赞颂,此梦见于但以理所誊录的巴比伦国史文献内。
首先尼布甲尼撒承认至高上帝的大能及他的王国,然后叙述他可怕的梦,并解释这梦如何应验在他身上。
他梦见一棵大树,高得顶天,所产的果子可供众生食用,其荫可遮庇万民。一位守望者大声喊叫说:‘要伐倒这树。把树的残株用铁圈和铜圈箍住。经过七期,好叫世人知道至高者在人的国中掌权,要将国赐给极卑微的人统治。’(但以理书4:14-17)但以理把梦讲解出来,指明树代表尼布甲尼撒。这个含有预言性的梦不久便实现了,有一天国王因自己的威荣而自命不凡,随即变成有如疯子一般,在田间吃草为生,与兽无异,一共过了七年。此后他的神智回复正常,他于是称颂耶和华的至尊地位。
持批判意见的学者共同认为,但以理书是历史虚构小说,''尼布甲尼撒不太可能真的承认耶和华''。;''他陷入疯狂的时期也属虚构'',历史学家将此归因于那波尼德在泰马时的谣言,后来通过异文合并的过程用于''尼布甲尼撒''身上。
<a href="https://www.wikiwand.com/zh-hans/%E6%96%B0%E5%B7%B4%E6%AF%94%E5%80%AB%E7%8E%8B%E5%9C%8B#Media/File:Neo-Babylonian_Empire_map_zh-hans.svg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/0/0d/Neo-Babylonian_Empire_map_zh-hans.svg"
caption:"全盛时期的新巴比伦帝国"
width:"auto"
align:"center"
>>
</a>
! 丰收、农业、生育和神圣法律的女神
|标志 |聚宝盆,小麦,火炬,面包,罂粟 |
|对应罗马神 |Ceres |
|对应弗里吉亚Phrygian神 |Cybele |
虽然得墨忒耳经常被简单地描述为丰收的女神,''但她也主持着神圣的法律和生死的循环''。
在阿卡迪亚 Arcadia ,她被描绘成蛇发女郎,手持鸽子和海豚,或许象征着她对冥界、空气和水的力量。
她和她的女儿[[珀尔塞福涅 Persephone|珀尔塞福涅 Persephone]](与宙斯的)是埃卢西尼奥秘( Eleusinian Mysteries)的核心人物,这个宗教传统早于奥林匹亚万神殿,其根源可能是公元前1400-1200年的迈锡尼时期。
德墨忒耳经常被认为是与安纳托利亚女神赛贝勒(Cybele)是同一个人物,她被认为是罗马女神瑟雷斯(Ceres)。
得墨忒耳经常与收获的图像联系在一起,包括鲜花、水果和谷物。她有时也与她的女儿珀尔塞福涅合影。德墨忒尔通常不会与她的任何配偶一起描绘。唯一的例外是''伊阿西翁 Iasion'',克里特岛的年轻人,她和她一起躺在三次犁过的田地里,''后来被嫉妒的宙斯用霹雳杀死了''。
//荷马和赫西奥德(Hesiod)在大约公元前700年的写作中,都将农业英雄伊阿辛描述为德墨忒耳的配偶,说他们在 "三次耕种的休耕地 "中发生了关系。 根据赫西奥德所说,这次结合导致了普鲁托斯 Plutus 的诞生。//
在阿卡迪亚 Arcadia ,她被称为 "黑德墨忒尔"。据说她为了躲避弟弟波塞冬的追捕,化身为一匹母马,''尽管她进行了伪装,但还是被波塞冬强奸了'',她穿上一身黑衣,躲进一个山洞里哀悼并净化自己。因此,她在这个地区被描绘成马头。
[img[https://upload.wikimedia.org/wikipedia/commons/thumb/a/a2/Demeter_Altemps_Inv8546.jpg/640px-Demeter_Altemps_Inv8546.jpg]]
[[赫尔墨斯|☤神使赫尔墨斯 Hermes]]的靴子,据说是[[赫菲斯托斯|🔥火神赫菲斯托斯 Hephaestus]]用棕榈和桃金娘的枝条做的,被形容为美丽的,金色的和不朽的,是一种崇高的艺术,能随风而行。
原本,它们没有翅膀,但在艺术表现的后期,它们被描绘出来。在某些图像中,翅膀直接从脚踝弹出。
[img[https://upload.wikimedia.org/wikipedia/commons/thumb/8/87/Talaria.svg/640px-Talaria.svg.png?1625642085683]]
<a href="https://www.wikiwand.com/en/Sphinx">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/1/1b/Sphinx_CdM_Paris_DeRidder865_n2.jpg"
caption:"斯芬克斯,公元前5世纪下半叶。来自诺拉(意大利)。"
width:"400px"
align:"right"
tooltip:"">>
</a>
|!父母 |[[🐶双头犬 Orthrus]] and [[🐐奇美拉 Chimera]] |
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
斯芬克斯(Sphinx)最初源于古埃及的神话,是长有翅膀的怪物,通常为雄性,当时的传说中有三种斯芬克斯——人面狮身的Androsphinx、羊头狮身的Criosphinx(阿曼的圣物)、鹰头狮身的Hieracosphinx。亚述人和波斯人则把斯芬克斯描述为一只长有翅膀的公牛,长着人面、络腮胡子,戴有皇冠。到了希腊神话,斯芬克斯却变成雌性的邪恶之物,代表“神的惩罚”。“Sphinx”源自希腊语“Sphiggein”,意思是“拉紧”或“结合”,因为希腊人把斯芬克斯想像成一个会使人致死的怪物。
在希腊神话中,赫拉派斯芬克斯坐在忒拜城附近的悬崖上,拦住过往的路人,用缪斯所传授的谜语问他们,猜不中者就会被它吃掉,这个谜语是:“什么动物早晨用四条腿走路,中午用两条腿走路,晚上用三条腿走路?腿最多的时候,也正是他走路最慢,体力最弱的时候。”俄狄浦斯猜中了正确答案,谜底是“人”。斯芬克斯羞愧万分,投海自溺而死(一说为被俄狄浦斯所杀)。据雅典的阿波罗多洛斯记载,斯芬克斯是厄喀德那同她的儿子双头犬奥特休斯所生。''斯芬克斯的人面象征着智慧和知识。一说斯芬克斯之谜在更深层次的表现为“恐惧和诱惑”,即“现实生活”。''
在欧洲的装饰艺术里,斯芬克斯随着文艺复兴而得到了很大的重视。随后,与古埃及相近的斯芬克斯形象传进各个其他文化中,尽管因为不同的描述而形象各异以及在不同文化传统里得到不同的发展。
一般来说,斯芬克斯常常与皇家的墓葬和宗教庙宇等建筑形式联系在一起。最早的已知斯芬克斯形象被发现在土耳其的公元前9500年的哥贝克力石阵。
|!父母 |[[🐶双头犬 Orthrus]] and [[🐐奇美拉 Chimera]] |
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
涅墨亚狮子(希腊语:Λεον Νεμειο,涅墨厄)希腊神话中的巨狮。它的皮坚逾金铁,刀枪不能入。“涅墨亚”三字源于它常年盘踞的涅墨亚(英语:Nemea)地方。该地一马平川,位于阿卡迪亚山脉东面。
《神谱》称涅墨亚狮子的父母为双头犬和奇美拉。而伪阿波罗多洛斯认为它由众妖之祖堤丰与厄客德娜所生。
它的外貌与一般狮子无异,但体型更为巨硕。它最大的特点便是一身厚皮,刀箭不能入。性格尤其凶残贪暴,食人无数。特莱托斯(Tretos)、阿匹萨斯(Apesas)和涅墨亚三个地方都受到它的侵害。
!!! 与[[赫拉克勒斯|💪大力神赫拉克勒斯 Heracles]]
杀死涅墨亚狮子是赫拉克勒斯十二项伟绩的头一件。而根据《神谱》,天后赫拉豢养此狮日久,正是要对付赫拉克勒斯的。古希腊诗人忒奥克里托斯(Theocritus)记载搏狮的过程最为详尽:欧律斯透斯请赫拉克勒斯除掉这戕害人民的恶兽,并带回狮皮为证。英雄背起弓箭,又用橄榄木制成一棍,旋即出发,经过半日,终于在山中发现巢穴。他隐身树丛后,待狮子归来时,趁其不备,朝它左胁射了一箭。哪知箭头弹了开去,无法透入狮皮分毫。他又发一矢,正中胸口,却同样无功。此时狮子已发现英雄行藏,扑上前来。赫拉克勒斯以木棍猛击其头,棍应声而裂。狮子头皮虽未破,但震荡之下也立足不稳,晕眩倒地。于是英雄抛下弓箭,以双臂扼住狮颈,渐渐将整个狮身举了起来。恶兽终于窒息而亡。
! 智慧、手工艺和战争女神/三大处女神之一
''Athena''/(əˈθiːnə/),''Athene''(/əˈθiːniː/)
{{athena.mp3}}
雅典娜是主司手工艺、艺术、智慧以及军事的女神,同时也是农业、园艺、雕刻家、建筑家、城市和未婚少女、英雄的保护神。
|标志 |猫头鹰、橄榄枝、蛇、埃吉斯盾牌、佩普洛斯长裙、芦苇笔、纺纱杆、纺锤 |
|对应罗马神 |弥涅耳瓦 Minerva |
|对应北欧神 |[[女战神弗蕾亚 Freyja]] |
|对应迦南神 |Anat |
|对应埃及神 |[[涅伊特 Neith]] |
|对应凯尔特(Celtic)神 |Sulis |
''雅典娜被视为希腊各个城市的守护神和保护神,尤其是雅典城'',她的名字很可能就是从那里得来的。在雅典卫城的帕台农神庙是献给她的。
''从宙斯的前额里生出来,使宙斯最宠爱的女儿。''
根据赫西奥德的神谱,宙斯成功强奸了议会女神[[墨提斯|墨提斯 Metis]]并把她吃掉。
然而宙斯并未能如愿地阻止雅典娜的诞生。''吞下孩子的母亲后,他开始剧烈地头痛,以至于大声号叫。原来墨提斯在他的头内打铁为雅典娜铸造一身盔甲。''普罗米修斯、赫淮斯托斯和赫爾墨斯赶来,将他带到特里同河(Τρίτων),在那里煉冶神赫菲斯托斯用大斧劈开了他的颅骨,全副武装的雅典娜就此跳出。
在荷马史诗《伊利亚特》中,雅典娜作为战争女神,激励着希腊英雄并与之并肩作战;她的援助是军事实力的代名词。同样在《伊利亚特》中,主神宙斯将战争领域专门分配给了战神阿瑞斯和雅典娜。''雅典娜在道德和军事上优于阿瑞斯的部分原因是她代表了战争的知识和文明方面以及正义和技能的美德,而阿瑞斯仅代表嗜血''。
雅典娜在''荷马的奥德赛''中作为[[奥德修斯|奥德修斯 Odysseus]]的守护神出现,后来的神话将她描绘成珀尔修斯和赫拉克勒斯(赫拉克勒斯)的助手。作为国王福利的守护者,''雅典娜成为了善意、谨慎克制和实际洞察力以及战争的女神''。在一个谨慎的克制和实际的洞察力,以及战争。
!! 与赫菲斯托斯
雅典娜來訂做新武器时,赫菲斯托斯開始追逐雅典娜,因為他跛腳,所以費了好大一番功夫才終于追到雅典娜。他想要和她結婚,卻被她嚴厲的叫聲打退,但是在過程中赫菲斯托斯的精液沾到了女神的大腿上,她趕緊用羊毛拭去。並把羊毛丟下凡間,羊毛落地,使盖亚怀孕,生下厄里克托尼俄斯 Erichthonius。
!! 与美杜莎
在为解释戈尔贡的起源而发明的晚期神话中,美杜莎被描述为一位年轻的女祭司,曾在雅典的雅典娜神庙任职。''波塞冬对美杜莎情有独钟,并在雅典娜神庙强奸了她'',拒绝让她的贞操誓言妨碍他。在发现她的神庙遭到亵渎后,''雅典娜将美杜莎变成了一个可怕的怪物,头发有蛇,其凝视会使任何凡人变成石头''。
!! 金苹果事件
希腊神话中重要的承前启后的事件(金苹果事件→帕里斯的评判→特洛伊战争)。
事发人间英雄[[佩琉斯|佩琉斯 Peleus]]与海中女神忒提斯的婚宴。''由于婚事直接由天神宙斯撮合,当时邀请了一批神级较高的神祇赴宴''。据一些史诗记载是因为金製的名贵餐具有限——当然也不排除其本身不受欢迎的因素——''管辖纠纷的女神[[厄里斯(Eris)|🤬不和女神厄里斯 Eris]]未被邀请''。
觉得受到冒犯的厄里斯Eris不请自来,一言不发,在宴席上留下一个硕大华丽的黄金苹果,上面刻有“καλλίστῃ”(kallistē(i)/ Kallisti)的字样,意思是“献给最美丽的女神”;该物被称为“引致纠纷的金苹果”。
在场神级最高、同时也最为美艳的三位女神:''雅典娜、阿佛罗狄忒和赫拉卷入了金苹果所引致的纠纷'',她们要求宙斯评判谁可以获得金苹果。宙斯则认为,凡间一位潇洒俊朗、一表人才的王子''[[帕里斯Paris|Paris]]''更适合成为这道难题的评判,其人当时正在特洛伊城附近的艾达山上牧羊。于是,天后赫拉、智慧女神雅典娜与爱神阿佛罗狄忒在神使赫耳墨斯的前导下,前往艾达山,请帕里斯王子作仲裁(在现存的古代对巴黎审判的描绘中,阿佛洛狄忒只是偶尔出现裸体,而雅典娜和赫拉总是穿着整齐。 然而,自文艺复兴以来,西方绘画通常将三位女神描绘成完全裸体)。
三位女神分别以权力(赫拉)、智慧(雅典娜)和美女(阿尔忒弥斯)作为条件,帕里斯将象征“最美女神”的金苹果给了爱神''阿佛罗狄忒'',<span class="wavy">因为她承诺帕里斯将会得到人间最美丽女子[[海伦|海伦 Helen of Troy]]</span>。
其他两位女神被激怒,''直接导致在特洛伊战争中站在希腊人一边''。
!! 特洛伊战争
阿佛罗狄忒助帕里斯Paris拐走了希腊王后海伦,使希腊城邦向特洛伊宣戰,爆發了長達十年之久的特洛伊战争。
在《伊利亚特》第五至第六卷中,雅典娜帮助了英雄狄[[俄墨得斯Diomedes|狄俄墨得斯 Diomedes]],在阿喀琉斯 Achilles 不在的情况下,他证明自己是最有效的希腊战士。 公元前六世纪初的一些艺术表现可能显示了雅典娜和狄俄墨得斯, 包括一个公元前六世纪初的盾牌带,描绘了雅典娜和一个骑在战车上的身份不明的战士,一幅战士和他的战车手面对雅典娜的花瓶画,以及一块刻有狄俄墨得斯和雅典娜乘坐战车的泥板。 《伊利亚特》中的许多段落还提到雅典娜以前曾是狄俄墨得斯的父亲泰德罗斯的赞助人。 当特洛伊妇女去雅典娜在卫城的神庙恳求她保护狄俄墨得斯时,雅典娜没有理会她们。
在《伊利亚特》第二十二卷中,当阿喀琉斯在特洛伊城墙上追赶[[赫克托Hector|赫克托 Hector]]时,雅典娜伪装成赫克托的兄弟[[迪普霍布斯Deiphobus|Deiphobus]]出现在他面前,劝说他不要轻举妄动,以便他们可以一起对抗阿喀琉斯。 然后,赫克托向阿喀琉斯投掷长矛,但没有击中,他期待迪普霍布斯Deiphobus再给他一支长矛,但雅典娜却消失了,留下赫克托独自面对,没有长矛。 在索福克勒斯的悲剧《阿贾克斯》中,她惩罚了奥德修斯的对手[[大阿贾克斯Ajax|大埃阿斯 Ajax the Great]],把他逼疯了,使他屠杀了阿凯亚人的牲畜,以为他在屠杀阿凯亚人自己。 阿贾克斯后来因受辱而自杀。
透墨索斯恶狐(希腊语:ἀλώπηξ Τευμησσία,英语:Teumessian fox或Cadmean vixen)是希腊神话中永远不会被捕捉的母狐狸怪物。据说是神(可能是酒神狄俄倪索斯)派来惩罚底比斯人,而栖息在东北部的透墨索斯,频繁地吞噬孩童。
当时的底比斯国王克瑞翁的侄子,安菲特律翁来向他借军队报仇,克瑞翁要求安菲特律翁帮助他捉住恶狐作为条件。安菲特律翁最终向雅典公主Procris借来,能抓住任何猎物的神之猎犬拉普耶斯(Λαίλαπος,意思是“飓风”)来捕捉恶狐。
永远不会被捕捉的狐狸与能抓住任何猎物的猎犬,面对这矛盾的命运冲突,宙斯将它们变成石头并将两者放到天上成了大犬座 Canis Major (猎犬 Laelaps )与小犬座 Canis Minor (恶狐)。
! 蛇王
巴西利斯克(basilisk),又叫蛇尾鸡或者有翼蜥蜴,在希腊和欧洲的传说里,是所有蛇类之王,并且能以眼神致人于死。根据Pliny the Elder的Naturalis Historia,巴西利斯克是一种有剧毒的小蛇,其爬行过的土地会留下有毒的黏液,''而他的凝视同样也是致命的''。
[img[https://upload.wikimedia.org/wikipedia/commons/1/14/Basilisk_aldrovandi.jpg]]
关于巴西利斯克的形象,有三种不同的描述:''巨大的蜥蜴、巨大的蛇或是一只三尺高、有着蛇尾巴和牙齿的公鸡''。
据说它的头上有法冠或皇冠状的羽饰,故被称为“国王”,一般把它定位在一种鸡身蛇尾的怪物,与鸡蛇(cockatrice)类似。关于巴西利斯克还有一个另人难以置信的传说,据说它是从公鸡所孵化的蛇蛋出生(和鸡蛇的传言-由蛇孵化的鸡蛋-刚好相反)的。在中世纪的欧洲,巴西利斯克和公鸡的形象才慢慢重叠,Geoffrey Chaucer就曾在其著作Canterbury Tales中描绘巴西利斯克(其称之为basilicok)的样子。
乡野传说和故事也不断为巴西利斯克的致命能力加油添醋,如将其描述成一只会吐火的巨大的野兽、光以它的声音就能杀人等等,甚至有作家说他不只光碰触就能杀人,还能以碰触受害者接触的东西来杀害他-如他手中所握的剑。巴西利斯克也是瑞士城市巴塞尔(Basel)的守护生物。
! 一个半人半鸟的风暴的化身
|!父母 |[[陶玛斯 Thaumas]] and [[厄勒克特拉 Electra (Oceanid)]] |
HARPYIAI (Harpies) 是突如其来的狂风的精灵 (daimones),他们在荷马史诗中占有重要地位。
他们被称为宙斯的猎犬,被神派去抢夺(harpazô)地球上的人和物。突然的、神秘的失踪通常被归咎于 Harpyiai。
Harpyiai 曾经被宙斯派去plague Thrake 的国王 Phineus(色雷斯),作为揭露众神秘密的惩罚。每当一盘食物摆在他面前时,Harpyiai 就会俯冲而下,把它抢走,把剩下的任何碎屑弄脏。当阿尔戈英雄来访时,有翼的[[北风神 Boreades|北风神 Boreas]]追击并追赶鹰身女妖到斯洛帕德斯群岛,在那里女神[[伊利斯 Iris|🌈彩虹女神伊利斯 Iris]]命令他们返回并释放了风暴之灵。
Harpyiai 被描绘成有翅膀的女性,有时长着丑陋的脸庞,或者有着鸟的下半身。
[img[https://upload.wikimedia.org/wikipedia/commons/5/56/Harpy.PNG]]
! 海妖
''塞壬''(Siren)是希腊神话中''人首鸟身(或鸟首人身、甚至跟人鱼相类)的女怪物'',经常降临在海中礁石或航行中的船舶之上,又被称为海妖或美人鸟。
|父母 |[[Achelous|Achelous]] and Sterope |
她们是河神埃克罗厄斯(Achelous)和斯忒洛珀(Sterope)的女儿(一说是埃克罗厄斯和缪斯女神之一的墨尔波墨涅或忒耳普西科瑞所生)。她们的别名是阿刻罗伊得斯(Acheloides),意即“阿刻罗俄斯的女儿们”。
根据荷马史诗《奥德赛》中描写,塞壬女妖们居住在西西里岛附近海域的一座遍地是白骨的岛屿上,她们用自己天籁般的歌喉使得过往的水手倾听失神,航船触礁沉没。
民间的迷信传说认为,塞壬最初为美丽的海上仙女,后来被描绘为邪恶的精灵。她们同样是女人的头和鸟的身躯,塞壬与哈耳庇厄相似,但鸟身女妖多被描写成凶暴粗野,兴灾作乱的恶兽;而诱人致命的塞壬,却是姿容娇艳、体态优雅,有时也会被描绘为美人鱼的形象。
荷马史诗《奥德赛》中说塞壬女妖只有两位,书中并没有给出她们的名字。荷马史诗的研究学者—萨洛尼卡的欧斯塔修斯(Eustathius of Thessalonica)在评点《奥德赛》时,提到荷马史诗中两位塞壬的名字应该是:
* 阿格劳斐墨(Αγλαοφεμη、Aglaopheme,“华美”之意)
* 忒尔克西厄珀亚(Θελξιεπεια、Thelxiepeia,“魅惑”之意)。
古希腊陶瓶艺术的绘画中同样也提到了两位塞壬的名字:
* 希墨洛珀(Ίμερόπη、Himerope,“柔音”之意)
* 忒尔克西厄珀亚(Θελξιεπεια、Thelxiepeia,“魅惑”之意)。
有些作家则说塞壬女妖有三位或者是四位,一般塞壬女妖以三位而著称,三姐妹通常一个吹笛,一个唱歌,另一个弹琴。古希腊悲剧诗人吕哥弗隆的《亚历山德拉》(Alexandra)中说她们是:
* ''帕耳忒诺珀''(Παρθενοπη、Parthenope,“贞音”之意)
* ''利革亚''(Λιγεια、Ligeia,“清调”之意)
* ''琉科西亚''(Λευκωσια、Leucosia,“白女”之意)。
许癸努斯的著作《传说集》(Fabulae)中则说她们是四位,名字为:
* 忒勒斯(Θελες、Teles,“精确”之意)
* 赖德涅(Ραιдνη、Raidne,“改善”之意)
* 摩尔珀(Μολπη、Molpe,“歌曲”之意)
* 忒尔克西俄珀(Θελξιόπη、Thelxiope,“魅音”之意)。
在其它版本中,与上述名字的写法略有不同,但意思相近,伪阿波罗多洛斯的《书库》E7. 18说她们是:
* 珀伊西诺厄(Πεισινοη、Peisinoe,“动感”之意)
* 阿格劳珀(Αγλαοπη、Aglaope,“华音”之意)
* 忒尔克西厄珀亚(Θελξιεπεια、Thelxiepeia,“魅惑”之意)。
阿波罗尼奥斯引用了赫西俄德给出的名字,说她们是:
* 忒尔克西诺厄(Θελξινοη、Thelxinoe,“陶醉”之意)
* 摩尔珀(Μολπη、Molpe,“歌曲”之意)
* 阿格劳福诺斯(Αγλαοφωνος、Aglaophonus,“华声”之意)。
!! 神话
塞壬是河神埃克罗厄斯的女儿,是从他的血液中诞生的美丽妖精。''因为与缪斯比赛音乐落败而被缪斯拔去双翅,使之无法飞翔。''失去翅膀后的塞壬只好在海岸线附近游弋,有时会变幻为美人鱼。用自己的音乐天赋吸引过往的水手使他们遭遇灭顶之灾。塞壬居住的小岛位于墨西拿海峡附近,在那里还同时居住着另外两位海妖[[斯库拉 Scylla|🧜🏼♀️锡拉 Scylla]] 和[[卡律布狄斯 Charybdis|🌀卡律布狄斯 Charybdis]] 。也正是如此,那一带海域早已堆满了受害者的白骨。
只有两位希腊神话中的英雄安全经过了塞壬的领域,其一是阿尔戈英雄中的[[俄耳甫斯|俄耳浦斯 Orpheus]],他弹奏竖琴令塞壬亦为之倾倒;另一位是特洛伊战争英雄[[奥德修斯|奥德修斯 Odysseus]],他让手下的海员以白腊封住双耳,为了聆听塞壬的歌声而将自己绑缚在桅杆上,因此塞壬女妖用自己的歌声引诱奥德修斯与他的伙伴们失败后,三姐妹中的老大''帕耳忒诺珀''因为深深地爱慕著奥德修斯。所以当他的船只走过后,帕耳忒诺珀与其他姐妹一同投海自尽,化为悬崖岩壁。也有别的说法是帕耳忒诺珀投海自尽后,她的尸体漂浮到了那不勒斯湾,在那里人们专门为她修了一座纪念碑。
在其它记载中,塞壬是冥界的引路人。相传塞壬原本是美丽的''山林女仙'',是冥王所劫的冥后[[珀耳塞福涅|珀尔塞福涅 Persephone]]的玩伴,因未能尽到保护珀耳塞福涅的职责,被农业女神[[得墨忒耳|🥖丰收女神得墨忒耳 Demeter]]罚变为人首鸟身的怪形,专为亡魂向冥界引路。''鸟体女妖在某些传说中是勾魂的使者,进一步显示了两者间的可能关联。''
|!父母 |[[🔱海神波塞冬 Poseidon]] |
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
死后变成天鹅。
|!父母 |[[普萨玛忒 Psamathe(Nereid)]] and [[埃阿科斯 Aeacus]] |
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
洛基(Loki)又译洛奇,北欧神话的神祇。父母法布提和劳菲属于巨人族,由于母亲是奥丁的养母,所以和奥丁成为结拜兄弟,也因此能以巨人的身份留在阿斯加特,北欧神话中重要的神祇之一。
!! 洛基的性格
洛基在北欧神话中有很多绰号,可以看出这是个性格丰富的神。
首先,他是''诡计与欺骗的大师'',但他并不是十恶不赦的,他经常在作弄别人后与其和好,比如说剪断希芙的头发后又使其复原;协助夏基虏走伊登又将其救回。他最初是善恶兼半,或者说他的恶亦非出于本意。但后来,随著洛基杀死奥丁之子巴德尔,渐渐的真正成了斯堪的纳维亚诸神的敌人。众神视洛基为恶神,并将他逐出阿斯加德。
!! 洛基在北欧神话特殊意义
可以说洛基经常帮助诸神,比如说,欺骗巨人修筑仙宫围墙,生育八足神驹。也与许多最重要的宝物有关:奥丁的长矛永恒之枪、耕耘之神弗雷的船斯基德普拉特尼、希芙的假发、雷神索尔的雷神之锤。
尽管洛基是诸神黄昏中最主要敌人 : 巨狼芬里尔、大蛇耶梦加得和死神赫尔的父亲,但没有洛基也就没有可以对付它们的武器。''是他引起了诸神黄昏,也是他提供了终止它的方法。''
!! 杀害巴德尔
洛基杀害[[光明之神巴德尔 Baldr]]是北欧神话中最重要的故事之一,因为这和接着发生的诸神的黄昏有著密切的关系。
在一个仲夏的午后,光明之神巴德尔做了一个关于“死亡”的恶梦,他的母亲[[众神之母弗丽嘉 Frigga]]知道之后,惊恐万分,认为自己儿子的生命受到了死亡的威胁。
弗丽嘉要求世界上的一切向她发誓,保证它们永不伤害巴德尔,大千万物“弓箭”、“长刀”、“巨锤”、“匕首”都已立誓,甚至“花朵”、“疾病”、“石头”都已立誓。只有生长在英灵殿旁边的''槲寄生''没有被要求立誓,因为弗丽嘉认为它太弱小了。
弗丽嘉认为已经万无一失了,于是请来了诸神国度的众神验证誓言的效果,众神将武器往巴德尔扔去,众神的一切武器果然都无法伤害巴德尔,甚至包括诸神最厉害的武器-[[🔨妙尔尼尔(雷神之锤) Mjölnir]],诸神为巴德尔感到高兴。
生性善妒的洛基想给巴德尔点颜色看看。于是洛基幻化成女人来到弗丽嘉的宫殿,从弗丽嘉口中套出只有槲寄生没有立誓,因为它太幼小、太柔弱,没有力量伤人。
于是洛基唆使盲眼的[[黑暗之神霍德尔 Hoder]]用槲寄生的尖枝投向巴德尔,槲寄生的尖枝便像长枪一样贯穿了巴德尔的胸口,巴德尔的雪白长袍立刻被鲜血染红了,而巴德尔亦气绝而死。
!! 洛基受罚
杀害巴德尔后洛基受到了最严厉的惩罚。奥丁把洛基的儿子瓦利变成狼,让它咬死了自己的兄弟纳尔弗,并用纳尔弗的肠子捆绑洛基。并让丝卡蒂唤来一条巨大的毒蛇,从它可怕的毒牙缝间,滴出一滴又一滴的毒液落到洛基脸上,一秒也不停息。
只有洛基的妻子西格恩同情祂,她坐在被绑缚住的洛基旁,用杯子来承受毒液,不让毒液落到丈夫脸上。但是每当杯子的毒液满溢出来,她必须站起来去把毒液倒掉,这时洛基脸上的皮肤就会被毒液灼烂。在恐怖与痛苦中,洛基失声痛哭,浑身发颤,甚至引起地震。
就这样子,等待着向奥丁复仇直到诸神的黄昏,才挣脱桎梏。
!! 洛基的子孙
洛基是北欧神话中许多邪恶怪物的父亲。和女巨人结合在斯堪的纳维亚诸神中并不常见,不过由于北欧神话中女巨人大多有著绝色的美貌,因此也不乏其例,奥丁本身就开了一个先例。由于洛基自己也是一个巨人,所以情妇是一个女巨人并不奇怪。
洛基曾化为一匹母马与公马交配生下[[🐴八脚马史莱普尼尔 Sleipnir]],后成为''奥丁''的座骑。
由于[[🔮诺伦三女神(命运三女神) Norns]]曾预言洛基与安尔伯达的孩子将会带来诸神的黄昏,于是''巨狼芬里尔''与''大蛇耶梦加得''出生即被放逐。而女儿''赫尔''出生即死亡,后成为冥界的女王。
* with a mare [[🐴八脚马史莱普尼尔 Sleipnir]]
* with [[安尔伯达 Angrboda]] <<list-links "[tag[安尔伯达 Angrboda]] +[sort[title]]">>
* with [[西格恩 Sigyn]] <<list-links "[tag[西格恩 Sigyn]] +[sort[title]]">>
''克律萨俄耳''(古希腊语:Χρυσάωρ, Chrȳsāōr,英语:Chrysaor),希腊神话中登场的巨人,名字有“黄金之剑持有者”的意思。
在珀耳修斯斩下美杜莎的首级后,与兄弟飞马珀伽索斯一同从美杜莎的血泊中出生,因此,他跟飞马是双子关系。
一生下来手里就握著黄金之剑,与大洋神俄刻阿诺斯的女儿[[卡利罗厄|卡利若厄 Callirhoe]]相爱,生下了三头巨人[[革律翁|革律翁 Geryon]]。
''Hesiod版本''
癸干忒斯(希腊语:Γίγαντες,也可译为巨灵)希腊神话中身形雄伟、力大无穷的巨人族。癸干忒斯与奥林帕斯神之间的战争,即所谓癸干忒斯战争(Gigantomachy),是希腊神话中继泰坦战争之后最伟大的神祇战争。
癸干忒斯共有150人,是大地女神盖亚与天神乌拉诺斯的孩子。盖亚与乌拉诺斯先后生育了12个提坦、3个独眼巨人和3个百臂巨人;乌拉诺斯无休止的生殖使盖亚非常痛苦,于是她怂恿提坦去阉割他们的父亲。只有最小的泰坦克罗诺斯敢去做这件事,他用一把大镰刀阉割了乌拉诺斯。乌拉诺斯喷出的鲜血被盖亚吸收,后者因此生下了癸干忒斯。
命运决定癸干忒斯最终将死于与奥林帕斯眾神之间的战争,当人类英雄前来帮助众神战斗时,就是癸干忒斯战死之时。盖亚知道这件事,于是就寻找一种不死仙草,希望救癸干忒斯的命;但是宙斯提前割走了仙草,破坏了盖亚的计划。
后来癸干忒斯果然起来反抗宙斯的统治,这就是癸干忒斯战争。癸干忒斯们的领袖是阿尔库俄纽斯和波耳费里翁;在这两个的领导下,他们企图把色萨利山、珀利翁山和俄萨山疊在一起,好爬到奥林波斯山上去。诸神为了迎战,把独眼巨人和百臂巨人都找来帮忙。按照雅典娜的建议,宙斯召来了他的儿子、凡人英雄赫拉克勒斯,因为神谕显示必须有他参与才能战胜癸干忒斯。
这场战斗极其惨烈,其规模宏大可与泰坦战争相比。战场在佛勒格拉平原(这个地名的意思是“火场”)。癸干忒斯们用巨大的石头和着火的林木向奥林帕斯山上砸去,众神则用他们强大的武器作战。由于赫拉克勒斯的帮助,奥林波斯神取得了胜利,所有癸干忒斯都被消灭。
petasos或petasus(希腊语:πέτασος)是一种起源于塞萨利亚的太阳帽,由古希腊人、色雷斯人和伊特鲁里亚人佩戴,通常与chlamys披风结合使用。它通常由''羊毛毡、皮革或稻草制成,有一个宽大、松软的帽檐''。它主要由农民和旅行者佩戴,并被认为是农村人的特征。
作为一种带翅膀的帽子,它''成为希腊神话中信使神赫尔墨斯的象征''。
[img[img/Petasos.jpg]]
耶稣(约前4年—公元33年), 东正教译为伊伊稣斯,唐朝景教译为移鼠或翳数,伊斯兰教译为尔撒,摩尼教译为夷数,也被称为拿撒勒人耶稣、耶稣基督等,是公元1世纪初期以色列地(今巴勒斯坦地区)的一位犹太传道者和宗教领袖。
耶稣是世界第一大宗教基督教的''中心人物'',被大部分基督徒视为神、神的儿子、造物主、救世主、[[🙏弥赛亚 Messiah]](基督)及最后审判者。''公元纪年(又称西元纪年或基督纪年)是以耶稣诞生的那一年开始计算的''。
耶稣的历史性过去在学界长期受争论。现代学界普遍认同耶稣在历史上确有其人,西元30年左右生活在以色列地,且对基督教的形成有至关重要的影响,但对于基督教福音书中的记载与历史是否相符仍有争议。
!! 名号
!!! 耶稣 Jesus
“耶稣”一词''音译自希腊语'',在《新约圣经》中的希腊语原文是,这来自于希伯来名字“''约书亚''”。当时希腊文是罗马帝国的通行语言,最初的《新约圣经》就是用希腊文写成,这是当时犹太人中一个常见的名字。)根据《马太福音》记载,这个名字是天使启示下来的,天使向马利亚宣告她要怀孕生子的时候,对她说:你要给他起名叫[[神的王权(7-12章)]],因他要将自己的百姓从罪恶里救出来。(马太福音1:21)耶稣说:“我奉差遣,不过是到以色列家迷失的羊那里去。”(马太福音15:24 )。
耶稣以道成肉身的形式来到世人中间,带来得救的救恩与自由之福音。在他钉十字架,复活升天后再来之前,神恩膏耶稣这名成为大有能力的名,凡信他的人必归入耶稣这名,成为神的儿女。
耶稣被罗马帝国犹太行省的巡抚本丢·彼拉多钉上十字架时,钉板上写著“犹太人的王拿撒勒人耶稣”,神预备耶稣为百姓的罪、世人的罪,这名成了犹太百姓与世人的中保(帮助者,辩护者)。当耶稣再来时,不再道成肉身,不为罪,只为拯救,不再以羔羊的身份而是以君王的身份。如经上所记:“像这样,基督既然一次被献,担当了多人的罪,将来要向那等候祂的人第二次显现,并与罪无关,乃是为拯救他们”。
!!! 基督 Christ
“基督”的原文是希腊语:(转写为Christos),是希伯来文称号“[[弥赛亚|🙏弥赛亚 Messiah]]”(希伯来语:,转写为māšîaḥ)的''希腊文翻译'',是“''受膏者''”的意思。《旧约》中多处提到君王、祭司在册立的时候要用油膏抹,称为“受膏者”,旧约圣经意译为“受膏者”。在旧约《以赛亚书》和《但以理书》等多部先知书中,“弥赛亚”是先知所预言的解救万民的救主。
耶稣基督有许多别的头衔和称呼:麦基洗德、受膏者、以马内利、神的儿子、人子、道、中保、大祭司、君王、万王之王、万主之主、羔羊、明亮的晨星(晓明)、大卫的儿子(大卫的子孙)、大卫的根、拉比或拉波尼(老师的意思)、拿撒勒人耶稣……等等。
!! 相关
[[耶稣的谱系 Genealogy of Jesus]]
[[十二使徒 Twelve Apostles]]
[[耶稣的其他使徒 Other apostles of Jesus]]
''Nymph'' (Greek: νύμφη, romanized: nýmphē; Attic Greek: [ným.pʰɛː], Modern Greek: [ˈniɱ.fi])
与希腊女神不同,宁芙通常被视为自然的化身,通常与特定的地方或地貌联系在一起,通常被描绘成美丽的少女。他们不一定是不朽的,但比人类活得更长。
它们通常分为各种广泛的亚组,例如 ''Meliae''(白蜡树宁芙)、''Naiads''(淡水宁芙)、''Nereids''(海宁芙)和 ''Oreads''(山宁芙)。
宁芙经常出现在经典的艺术作品、文学作品、神话和小说中。自中世纪以来,宁芙有时普遍与[[fairies|仙女 Fairy]]联系在一起,甚至与fairies混淆。
在神谱中,他们产生于[[天空之神乌拉诺斯 Uranus]]的被割下生殖器溅在大地上的血。
!! 词源
The Greek word nýmphē has the primary meaning of "''young woman; bride, young wife''" but is __not usually associated with deities in particular.__ Yet the etymology of the noun nýmphē remains uncertain. The Doric and Aeolic (Homeric) form is nýmfa (νύμφα).
Modern usage more often applies to young women at the peak of their attractiveness, contrasting with parthenos (παρθένος) "a virgin (of any age)", and generically as kore (κόρη < κόρϝα) "maiden, girl". The term is sometimes used by women to address each other and remains the regular Modern Greek term for "bride".
!! 在早期希腊神话中
宁芙有时会受到许多人的喜爱并居住在与自然环境相关的特定区域:例如山区;森林;山泉。
其他宁芙是神(如狄俄尼索斯、赫尔墨斯或潘)或女神(通常是女猎手阿尔忒弥斯)的随从的一部分。
! 海妖
''Scylla'' (''/ˈsɪlə/'' SIL-ə; Greek: Σκύλλα, translit. Skúlla, pronounced [skýl.la])
是希腊神话中吞吃水手的女海妖。她的身体有''六个头十二只脚,口中有三排利齿,并且有猫的尾巴''。她守护在墨西拿海峡的一侧,这个海峡的另一侧有名为卡律布狄斯(Charybdis)的漩涡。船只经过该海峡时只能选择经过[[卡律布狄斯|🌀卡律布狄斯 Charybdis]]漩涡或者是她的领地。而当船只经过时她便要吃掉船上的六名船员。
古罗马诗人奥维德描述了斯库拉的身世。斯库拉原先是一个水仙女,是海神福耳库斯(Phorcys)的众多子女之一,她的兄弟姐妹中著名的包括:金苹果园的看守仙女赫斯珀里得斯姊妹(Hesperides),美杜莎(Gorgon Medusa)三姐妹,独眼巨人波吕斐摩斯(Polyphemus)的母亲海仙女Thoose,以及共享一只眼睛和一颗牙齿的格赖埃三姐妹(Graeae)。
斯库拉在水边漫步时被一位英俊的渔夫格劳科斯(Glaucus)爱上。然而斯库拉并不喜欢他,并且躲避着他的追求。于是格劳科便向女巫师喀耳刻(Circe)陈述了自己的爱慕并请求帮助。喀耳刻却因为这些爱情故事爱上了这位渔夫。但格劳科没有接受她的爱,因爱成恨的喀耳刻把怨恨都归结到斯库拉身上,并在斯库拉洗澡的水中投下药水,使得她的下半身变成恐怖的六头十二足妖兽模样。最后斯库拉和她所蛰伏的石壁一起石化成一座峭壁。
在《奥德赛》故事中,刚逃离塞壬海妖的奥德修斯听到喀耳刻的提示,最终选择了牺牲六名船员的方式通过该海峡。
|标志 |螺纹、鸽子、纺锤、剪刀 |
|对应罗马神 |Clotho - Nona <br/>Lachesis - Decima <br/>Atropos - Morta |
三个 Moirai 是原始女神[[Nyx|🌌黑夜女神尼克斯 Nyx]](“黑夜”)的女儿,以及''[[☠️横死女神凯瑞斯 Keres]]、[[Thanatos|☠️死神塔纳托斯 Thanatos]](“死亡”)和[[Nemesis|复仇女神涅墨西斯 Nemesis]](“报应”)''的姐妹。 后来他们是宙斯和泰坦女神 忒弥斯(“教官”)的女儿,是''神圣秩序和法律的化身''。 和Eunomia(“合法、秩序”)、Dike(“正义”)和 Eirene(“和平”)的姐妹。
!! 三女神
!!! 克洛索——Clotho 命运的纺线者
负责将生命线从她的卷线杆缠到纺锤上。她在罗马神话中的对应者称为诺娜(Nona,第九),最初是象征怀孕第九个月的女神。
!!! 拉刻西斯——Lachesis 命运的决策者
负责用她的杆子丈量丝线。她在罗马对应为得客玛(Decima,第十)。
!!! 克洛索——Atropos 命运的终结者
剪断生命线的人。正是她用她那“令人痛恨的剪子”决定了人的死亡。她在罗马对应为墨尔塔(Morta,死亡)。
[img[img/Moirai_Michelangelo.jpg]]
//Moirai 米开朗琪罗//
! 深谋远虑、火焰和诡计的神
{{prometheus.mp3}}
|!父母 |[[伊阿佩托斯 Iapetus]] and [[Asia]]|
|!配偶 ||
|!后代|[[丢卡利翁 Deucalion]] |
|!标志 ||
|!对应罗马神 ||
<a href="https://www.wikiwand.com/en/Prometheus#Media/File:Prometheus_and_Atlas,_Laconian_black-figure_kylix,_by_the_Arkesilas_Painter,_560-550_BC,_inv._16592_-_Museo_Gregoriano_Etrusco_-_Vatican_Museums_-_DSC01069.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/7/72/Prometheus_and_Atlas%2C_Laconian_black-figure_kylix%2C_by_the_Arkesilas_Painter%2C_560-550_BC%2C_inv._16592_-_Museo_Gregoriano_Etrusco_-_Vatican_Museums_-_DSC01069.jpg/1765px-Prometheus_and_Atlas%2C_Laconian_black-figure_kylix%2C_by_the_Arkesilas_Painter%2C_560-550_BC%2C_inv._16592_-_Museo_Gregoriano_Etrusco_-_Vatican_Museums_-_DSC01069.jpg"
caption:"Prometheus"
width:"300px"
align:"right"
tooltip:"">>
</a>
''普罗米修斯被认为从泥土中创造了人类,并违抗众神的命令偷取火种并将其作为文明给予人类''。
普罗米修斯以其聪明才智和对人类的拥护而闻名,也被普遍视为人类艺术和科学的创造者。他有时被认为是洪水故事中的英雄德卡里翁的父亲。
因盗取火种,普罗米修斯被绑在一块石头上,一只鹰--宙斯的象征--被派去吃他的肝脏(''在古希腊,肝脏通常被认为是人类情感的所在'')。然后他的肝脏会在一夜之间长出来,第二天又被吃掉,循环往复。普罗米修斯最终被英雄[[赫拉克勒斯|💪大力神赫拉克勒斯 Heracles]]释放。
<span class="highlight">在西方古典传统中,普罗米修斯成为一个代表人类努力(尤其是对科学知识的追求)和过度追求或意外后果风险的人物</span>。
特别是他在浪漫主义时代被视为体现了''孤独的天才,其改善人类生存的努力也可能导致悲剧的发生''。例如,<span class="wavy">玛丽-雪莱将 "现代普罗米修斯 "作为她的小说《弗兰肯斯坦》(1818年)的副标题</span>。
!! Offspring
<$set name="story" filter="[tag[story]]">
<div class="tc-table-of-contents">
<$macrocall $name="toc-selective-expandable" tag={{!!title}} sort="sort[created]" exclude=<<story>> />
</div>
</$set>
[[天空之神乌拉诺斯 Uranus]]血溅大地生出/灰树仙女
梣木女神,也就是人类种族的祖先, 因为,赫西俄德在《劳作与时日》第 145 行说道,青铜时代的人类生于梣木。
Njörðr,掌管了海洋、风暴、渔业、航海、财富和丰饶。
他本是[[华纳神族|华纳神族 Vanir]]的一员,自小在华纳海姆长大,但后来与儿女弗雷和弗蕾亚一起成为阿萨神族的人质,并被接纳为阿萨神族的一员。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
! 回报之爱神/暗恋的复仇者 God of requited love, avenger of unrequited love
|标志 |带铅箭的金棒 |
|父母 |[[阿瑞斯 Ares|🛡️战神阿瑞斯 Ares]] and [[Aphrodite|💗爱情女神阿佛洛狄忒 Aphrodite]] or [[Poseidon|🔱海神波塞冬 Poseidon]] and Nerites |
他是Erotes<<footnote "Aphrodite的随从" "Erotes (/əˈroʊtiːz/) 是一群与爱和性交相关的有翼众神。">>的其中一个。
在身体上,他被描绘成在各方面都与爱神相似,但有着长发和羽毛蝴蝶翅膀。他也被描述为手持金棒或铅箭。
雅典的梅蒂克人为安特罗斯(Anteros)竖起了一座祭坛,以纪念被雅典梅勒斯(Meles)拒绝的梅蒂克蒂玛格拉斯(Timagoras)被唾弃的爱情。听到蒂玛戈拉斯对他的爱慕之情,年轻人嘲讽地命令他从一块高大的岩石上摔下来。看到蒂玛戈拉斯死了,梅莱斯后悔了,从同一块岩石上摔了下来。
<a href="https://www.wikiwand.com/en/Uriel">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/4/4c/Saint_Uriel_-_stained_glass_window_in_the_cloisters_of_Chester_Cathedral.jpg"
caption:"Stained glass of archangel Uriel as regent of the sun in the cloisters of Chester Cathedral."
width:"400px"
align:"right"
tooltip:"">>
</a>
''乌列尔''或译''乌列''、''乌利尔''(英语:Uriel;希伯来语:אוריאל,标准希伯来语:Uriʾel,提比里安发音:ʾÛrîʾēl;希腊语:Ουριήλ;科普特语:ⲟⲩⲣⲓⲏⲗ;东正教译名:总领天使邬里伊尔,天主教译名:总领天使优礼,基督新教译名:天使长乌列尔;''其名意为“神之光”''),是犹太教及基督教信仰中一位天使长(大天使)的名字。但__不包括在正典书籍及不被罗马天主教会官方认可__,但在犹太教、基督教神秘文学中祂是一位重要的天使长。
在基督教诺斯替教派经文,以及旧约圣经的伪经《埃塞俄比亚语以诺书》(The Ethiopic Book of Enoch)、《以斯拉续篇下卷》和新约圣经的伪经《彼得启示录(英语:Apocalypse of Peter)》中,名字有被提及。文中祂向先知以斯拉传授玄学的内涵,及哲学问题的解答,协助以斯拉与上帝进行意味深长的对谈。''他和米迦勒、加百列及拉斐尔同为站在上帝宝座前的“四大天使”。''
“乌列尔”这个名字的含义是“神之光明”或“神之火焰”。在东正教圣像中,''祂被描绘为手持火焰或火焰圣剑''(英语:Flaming sword (mythology))的总领天使;在圣公宗的图像艺术中,祂通常以''手捧书本、卷轴、日轮或星辰圆盘''的天使长形像出现。
据说乌列尔''不只是大天使,也是炽天使和智天使''。在启示录著作、卡巴拉著作和神秘主义著作里,乌列尔通常与乌利亚(Urial)、沙利叶(意思为“神之令”)、法纽尔(英语:Phanuel (angel))(意思为“神之颜”)等混同。
在不同的宗教中,''加百列''或称''加百利''、''加俾额尔''(天主教通译)、''伽弗里伊尔''(东正教译名)、''吉卜利勒''、''吉布利尔''、''吉布列''(阿拉伯语:جبريل, Jibrīl或جبرائيل, Jibrāʾīl)、加布里耶尔(希伯来语:גַּבְרִיאֵל Gavriʼel),拉丁语:Gabrielus,希腊语:Γαβριήλ,阿姆哈拉语:ገብርኤል,英语:Gabriel)是一个传达天主讯息的[[炽天使 Seraph]]。
加百利第一次的出现是在''希伯来圣经[[但以理书|公绵羊和公山羊的异象 The Ram, He-Goat and Horn]]''中,名字的意思是“天主的人”、“天神的英雄”、“上帝已经显示了他的神力”、或“将上帝之秘密启示的人”。他也被认为是上帝之(左)手。
根据亚伯拉罕诸教,加百列是''负责为神传讯息的天使长''。有时候,他亦被视为''死亡天使、火与雷的王子'',不过最常见的还是作为其中一个主要为''神传达讯息的使者''。根据天主教宗教传统,他是''天使长''之一。加百列经常与[[😇米迦勒 Michael(who is like God?)]]混为一谈,而两者皆为最高阶的''炽天使'',__由于在圣经中记载多半向女性显现神迹,绘画作品中加百列被绘为''女性形象'',一般认为加百列是女性的保护者。__
而在伊斯兰教中,受真主之命向先知穆罕默德降示《古兰经》,但认知上与犹太教和基督教有所出入。在巴哈伊信仰的典籍中也有提及加伯利,最明显的例子就是巴哈欧拉的形上著作《七谷经》与《四谷经》(The Seven Valleys and the Four Valleys)。
巴拉基勒,希伯来文意思为“''神的雷光''”或“''神的祝福''”,主要的炽天使之一,他藉著持神的闪电持行他的统治。
<a href="https://www.wikiwand.com/en/Barachiel">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/El_Arc%C3%A1ngel_Baraquiel_esparciendo_flores%2C_de_Bartolom%C3%A9_Rom%C3%A1n_%28Museo_del_Prado%29.jpg/440px-El_Arc%C3%A1ngel_Baraquiel_esparciendo_flores%2C_de_Bartolom%C3%A9_Rom%C3%A1n_%28Museo_del_Prado%29.jpg"
caption:"Archangel Barachiel Scattering Flowers by Bartolomé Román, 17th century."
width:"400px"
align:"right"
tooltip:"">>
</a>
!! 形象
在肖像画中,巴拉基勒有时会在胸前''捧着一朵白玫瑰,或者将玫瑰花瓣散落在衣服上,尤其是斗篷上''。玫瑰花瓣的散落象征或代表上帝对人们的甜蜜祝福。在罗马天主教中,巴拉契尔被描绘成拿着''面包篮或手杖'',两者都象征着上帝赐予父母的孩子的祝福。
''拉斐尔''、伊斯拉菲勒(阿拉伯语:إِسْـرَافِـيْـل,Isrāfīl或رافائيل,Rāfāʾīl),(希伯来语:רָפָאֵל,Rāp̄āʾēl),天主教通译为辣法额尔,思高本圣经译为辣法耳,东正教译为拉法伊尔,名称意为“神治愈了”。
|!象征 |总领天使; 拿著瓶子的天使; 与多俾亚同行的天使; 提著鱼的少年; 拿手杖的少年 |
|!主保 |药剂师; 盲人; 身体疾病; 天主教麦迪逊教区; 天主教迪比克总教区; 眼部疾病; 守护天使; 快乐的见面; 精神病; 恋人; 精神疾病; 噩梦; 护士; 内科医师; 天主教西雅图总教区; 牧者; 病人; 旅行者; 年轻人 |
<a href="https://www.wikiwand.com/en/Raphael_(archangel)">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Saint_Raphael.JPG/440px-Saint_Raphael.JPG"
caption:"Saint Raphael the Archangel by Bartolomé Esteban Murillo"
width:"400px"
align:"right"
tooltip:"">>
</a>
是犹太教、天主教及伊斯兰教信仰中一位天使长的名字。''据传祂行使一切治愈的神迹''。
__由于拉斐尔是操治愈术的天使,和''蛇的形象''便有了牵连__。拉斐尔为第二天的支配天使、力天使的君主、伊甸园生命之树的守护者、经常站之在神的御座前的[[七名天使之一|七大天使 Seven Archangels]]。
拉斐尔的传说极其纷乱,__他既是大天使,又是力天使,却有炽天使的六翼,又同时属于智天使、主天使、能天使三位阶。 __
拉斐尔的形象一直都是幸福的,除了治愈人的疾苦,还传授诺亚建造方舟的知识与技巧。
祂治疗的不仅是人的身体,还包括人的信仰。
<a href="https://www.wikiwand.com/en/Selaphiel">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/f/f1/El_Arc%C3%A1ngel_Seatiel_con_incensario%2C_de_Bartolom%C3%A9_Rom%C3%A1n_%28Museo_del_Prado%29.jpg/500px-El_Arc%C3%A1ngel_Seatiel_con_incensario%2C_de_Bartolom%C3%A9_Rom%C3%A1n_%28Museo_del_Prado%29.jpg"
caption:"Archangel Selaphiel Carrying a Thurible by Bartolomé Román, 17th century."
width:"400px"
align:"right"
tooltip:"">>
</a>
!! 形像
祂在圣像中被描绘为一位双目低垂,双臂交叉于胸前,正在虔诚祈祷的天使形像。祂有时也被描绘为以下跪之姿祈祷,祈祷被认为是祂的特性。提炉是祂的另一象征标志。
!! 主保
在东正教和某些天主教传统中,撒拉斐尔通常被看作是祈祷和团体服侍的守护圣者。
<a href="https://www.wikiwand.com/en/Michael_(archangel)">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Luca_Giordano_-_The_Fall_of_the_Rebel_Angels_-_Google_Art_Project.jpg/440px-Luca_Giordano_-_The_Fall_of_the_Rebel_Angels_-_Google_Art_Project.jpg"
caption:"Saint Michael in The Fall of the Rebel Angels by Luca Giordano"
width:"400px"
align:"right"
tooltip:"">>
</a>
''米迦勒''(希伯来语:מיכאל Michaʼel 或 Mîkhāʼēl;拉丁语:Michael 或 Míchaël;阿拉伯语:ميخائيل ، مِيكَالَ ، ميكائيل,罗马化: Mīkā'īl,Mīkāl 或 Mīkhā'īl;希腊语:Μιχαήλ,罗马化: Mikhaḗl),天主教通译为总领天神弥额尔,基督新教为''天使长米迦勒'',东正教译为''总天使弥哈伊尔''。
是《圣经》提及的天使名字,天主所指定的伊甸园守护者,''也是圣经提到唯一具有天使长头衔的天使''。
“米迦勒”这个名字是希伯来文,意思是“谁与神相似”。
!! 圣经中的记载
!!! 与希腊和波斯的魔王争战
根据《[[但以理书 Book of Daniel c.536 BC]]》第10章第20-21节的描述,加百列向先知[[🗣️但以理 Daniel(?-530 BC)]]显现,并告之但以理他将与希腊与波斯的魔王争战,而除了以色列人的守护天使米迦勒外,没有人可以帮助加百列抵挡他们。由此可见米迦勒的能力之大。
!!! 于末日以前出现
《但以理书》第12章中,[[😇加百列 Gabriel(God is my strength)]]亦告知''但以理''在末日以前,''米迦勒''身为保护以色列民的守护天使会出现。
!!! 与魔鬼争辩
在《犹大书》第1章第9节,犹大曾提及米迦勒与撒旦就摩西尸体争辩的事,米迦勒对路西法说:“主责备你吧。”而没有用诽谤的话。
!!! 率领天使大军
在《启示录》第12章第7-12节中,''米迦勒''率领天使与巨龙争战,并将其击败,摔在地上。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/0/03/Jegudil.jpg"
caption:"Icon of the Archangel Jegudiel"
width:"300px"
align:"right"
tooltip:"">>
耶胡迪尔 (东正教译耶谷迪伊尔),名字意为“神之赞美”,是东正教会和东仪天主教会传统中的七大天使长之一。
!! 形像
祂在圣像中被描绘为''手持皇冠''和''带有三根鞭条的鞭子''。皇冠象征上帝给予义人的奖赏,鞭子象征对罪人的惩罚。东正教对祂的传统表现形式是站立之像,右手持皇冠,左手持权杖。
!! 主保
耶胡迪尔是那些努力工作之人的守护圣者,祂手持之皇冠即象征著对那些成功的灵性劳作者的奖励。
塔尔塔罗斯,是希腊神话中“''地狱''”的代名词,同时也被认为是一种原始的力量或神。塔尔塔罗斯是关押、惩罚恶人的监狱,用冥河与人间世界连通。
希腊神话中,主神宙斯囚禁了父亲万神之王克罗诺斯而取得天、地、海和地狱的统治权之后把克罗诺斯等泰坦巨神丢到塔耳塔洛斯,并自己留下天空和万神之主的身份,把大地留给自己的祖母盖亚,把海洋赠给自己的哥哥波塞顿,地狱则被送给自己的大哥黑帝斯,在神话中的黑帝斯也成为地狱的代名词(事实上他是冥王)。
塔尔塔罗斯也就是冥界的最底层,这一深度实际上已经超越冥界,而成为支撑它的“地狱”本身。而[[复仇女神涅墨西斯 Nemesis]]则是住在比塔尔塔罗斯再上面一点的冥界 (希腊神话)。
在赫西俄德笔下,塔耳塔罗斯还以人身化形象出现过一次,与大地[[🌍大地女神盖亚 Gaea]]相爱结合,生下浑王[[🌪️提丰 Typhon]]。
|!父母 |[[🌌黑夜女神尼克斯 Nyx]] |
|!配偶 ||
在希腊神话中,Oizys(/ˈoʊɪzɪs/;古希腊语:Ὀϊzeύς,罗马化:Oïzús,字面意思是“苦难”)或 Oezys 是痛苦或困扰的化身。
! 睡眠拟人化 personification of sleep
|对应罗马神 |Somnus |
|父母 |[[Nyx|🌌黑夜女神尼克斯 Nyx]] and [[Erebus|虚冥厄瑞玻斯 Erebus]] |
''Hypnos'' (''/ˈhɪpnɒs/''; Ancient Greek: Ὕπνος means 'sleep')
他的哥哥是[[☠️死神塔纳托斯 Thanatos]]。这两个兄弟都生活在冥界(Hades)或希腊冥界的另一个山谷Erebus中。祂的宫殿是一个阳光永远不会到达的阴暗山洞;其宫殿的门前种植了大量的罂粟及具有催眠作用的植物。''英语中的“催眠”(Hypnogenesis)一词,语源正是来自希普诺斯。''
根据传言,Hypnos住在一个大山洞里,Lethe("遗忘")河就来自这个山洞,白天和黑夜在这里交汇。
他的床是用乌木做的,在洞口长着许多罂粟和其他令人窒息的植物。没有任何光线和声音会进入他的洞穴。根据荷马的说法,他住在莱姆诺斯岛Lemnos,后来有人说这是他自己的梦境。
''据说他是一个平静而温和的神,因为他帮助有需要的人类,由于他们的睡眠,他拥有他们生命的一半。''
据传说,许普诺斯所居住的洞穴位于希腊某个岛屿的下方,洞穴内流动著有“遗忘之河”之称的勒忒河。许普诺斯和帕西忒亚生有三个儿子,他们三个是所有其他梦神(Oniros)的头头。分别是司掌“野兽姿态的梦”的伊刻罗斯,司掌“物体形态的梦”的方塔苏斯,司掌“人类姿态的梦”的摩耳甫斯,这三人出没于万物的睡梦之中,并分别能化成人形、动物及没有生命的物体。
被大神宙斯赐予永恒睡眠的恩底弥翁,曾经从许普诺斯处得到能睁著双眼的能力,才能永远望著他心爱的月亮女神 塞勒涅。不过根据希腊诗歌“Licymnius of Chios”所示,应该是许普诺斯恋上了年轻的牧羊人恩底弥翁,因此才让他能于睡眠中睁开双眼,让自己能好好欣赏这少年的美貌。
在一些艺术作品中,许普诺斯被描绘成一位赤裸的年轻男子,有时长著胡子,背后则长有翅膀。祂的另一个形象是安睡在一张羽毛床上,并以黑色的帘幕遮盖自己。睡梦之神奥涅伊洛斯作为祂的侍仆,为祂阻隔外界的一切骚扰。在斯巴达,许普诺斯永远都与死亡相提并论。
特洛伊战争期间,宙斯曾让许普诺斯派遣梦神(Oneiroi)去给希腊联军的领袖阿迦门农托梦。
特洛伊战争期间,许普诺斯和兄弟塔那托斯曾负责安葬宙斯与欧罗巴之子萨耳珀冬(Sarpedon),将他的遗体带至冥界不为凡人所侵扰。
塔尔斯国王刻宇克斯(Ceyx)遭遇海难死亡后,赫拉曾经派遣彩虹女神伊里斯(Iris)带话给睡神,让他的儿子们去给刻宇克斯的妻子托梦,告知其夫的死讯。
!! Hypnos在伊利亚特Iliad神话里
''许普诺斯''与兄弟[[☠️死神塔纳托斯 Thanatos]]一起生活于地底,每当母亲[[🌌黑夜女神尼克斯 Nyx]]令世界落入黑夜之时,祂就会吩咐从者到大地上诱使人类入睡。与其无情的兄弟相对,许普诺斯的性格较为温柔,往往在人的死亡之际,给予其恒久的睡眠。
与塔那托斯不同,许普诺斯受到凡人的喜爱,因为睡眠有助于缓解人生的压力与痛苦。而且,睡神的能力,不光对凡人有效,对神也同样有效。 只要祂以神力诱使人类,就能使人入睡。而祂的催眠术,是人神皆不能相拒的。他力量大于诸神,连宙斯也逃不过他的魔力。
!!! 催眠宙斯
Hypnos用他的力量来欺骗[[⚡天神宙斯 Zeus]]。Hypnos能够欺骗他并帮助达纳人赢得特洛伊战争。
在战争期间,赫拉厌恶她的哥哥和丈夫宙斯,所以她设计了一个阴谋来欺骗他。她决定,为了欺骗他,她需要让他对她如此着迷,以至于他能上当受骗。于是,她用安息香洗净自己,用专门为她调制的油膏涂抹自己,使自己对宙斯无法抗拒。她把鲜花插在头发上,戴上三个明亮的吊坠作为耳环,并穿上了一件奇妙的长袍。然后她找来爱神阿佛洛狄忒,向她求得一道符咒,以确保她的诡计不会失败。然而,为了得到这个符咒,她对阿佛洛狄特撒了谎,因为他们在战争中站在了对立面。她告诉阿佛洛狄忒,''她想要这个符咒来帮助自己和宙斯停止战斗''。阿佛洛狄忒心甘情愿地同意了。赫拉几乎已经准备好欺骗宙斯,但她需要Hypnos的帮助,他以前曾经欺骗过宙斯。
赫拉找来Hypnos,请他帮助她让宙斯睡觉。Hypnos很不情愿,因为上次他让宙斯睡觉时,他醒来时很生气。
宙斯的儿子赫拉克勒斯洗劫了特洛伊人的城市,她对此非常愤怒。于是她让Hypnos让宙斯睡觉,并在海面上刮起了怒风,当时赫拉克勒斯还在航行回家。当宙斯醒来的时候,他很生气,并疯狂地寻找Hypnos。Hypnos躲在他母亲尼克斯的身边,设法避开了宙斯。
这使得Hypnos不愿意接受赫拉的提议,帮助她再次欺骗宙斯。赫拉首先向他提供了一个美丽的、永远不会散架的黄金座椅和一个与之配套的脚凳。他拒绝了这第一个提议,因为他想起了上次欺骗宙斯的事情。赫拉终于让他同意了,''她承诺他将与他一直想娶的最年轻的圣女之一帕西提亚Pasithea结婚。''Hypnos让她在冥河边发誓,并召集冥界诸神做证人,这样就能保证他能娶到帕西提亚。
赫拉在伊达山的最顶峰Gargarus去见宙斯。宙斯被她迷得神魂颠倒,什么也没怀疑,因为Hypnos被笼罩在浓雾中,藏在一棵松树上,离赫拉和宙斯谈话的地方很近。宙斯问赫拉她在那里做什么,为什么从奥林匹斯山来,她告诉他她对阿佛洛狄忒说的同样的谎言。她告诉他,''她想去帮助她的父母停止争吵'',她在那里停下来咨询他,因为她不想在他不知情的情况下去,让他发现后对她生气。宙斯说她随时都可以去,她应该推迟访问,和他一起留在那里,这样他们可以享受彼此的陪伴。他告诉她,他从来没有像此时此刻那样爱过任何人。他把她抱在怀里,Hypnos开始工作,让他在赫拉的怀里睡觉。在这期间,Hypnos来到阿凯亚人的船上,告诉海神波塞冬,他现在可以帮助达纳人,在宙斯睡觉时给他们带来胜利。这就是Hypnos离开故事的地方,留下波塞冬急于帮助达纳人。由于Hypnos帮助欺骗了宙斯,战争改变了方向,对赫拉有利,而宙斯再也没有发现Hypnos欺骗了他一次。
''救世主''
''弥赛亚''(天主教汉译''默西亚'',伊斯兰教汉译作''麦西哈'',''景教''译弥施诃),基督宗教术语“受膏者”,常指“大祭司”、“以色列的王”、“圣者”或特指“弥赛亚:救世主耶稣”,意指受上帝指派,来拯救世人的救世主。
''基督教''主张“拿撒勒人''耶稣''就是弥赛亚,因为耶稣的出现,应验了许多旧约圣经中的预言”,''回教''也认同耶稣就是弥赛亚,称他为“麦西哈尔撒”;而''犹太教''信徒则予以否认,并仍然期待他们心中的弥赛亚来临。
一些被指为异端和普遍认为是邪教的教派,其创办人大多以弥赛亚自居,并且骗取他人财物与身体。例如麻原彰晃、文鲜明、又吉耶稣等。这些异端不符合各大经书的严格预言及条件。
!! 词义
弥赛亚来自于希伯来文(''moshiahch''),与希腊语词基督(''christos'')同义,直译为''受膏者''。受膏是一种宗教仪式,经由先知,以圣膏油涂在候选者的头上,确认此人是上帝所选中的人,将可以成为君主或是祭司。在阿拉伯语中مسح(masah)亦有擦拭之意。《旧约》记载的第一位受膏者是祭司''[[亚伦 Aaron]]'',经由[[摩西 Moses]]为他执行受膏礼。数百年后,[[撒母耳 Samuel]]为[[👑大卫王 David]]执行受膏礼,宣告他将继任,成为以色列王
犹太教也用这个词来指出自''大卫家系''的拯救者,由他带领以色列国恢复大卫统治时期的辉煌盛世。
! 冥界摆渡者
他是冥王[[哈迪斯|💀冥王哈迪斯 Hades]]的船夫,负责划船将刚离人世的亡魂渡过冥河斯堤克斯。
根据神话,斯堤克斯河分隔了人世和冥界。古希腊人会在死者的嘴巴上面或里面放一枚“卡戎的银币”(通常是奥波勒斯小银币),作为亡魂给付卡戎的“渡河钱”。
<a href="https://www.wikiwand.com/en/Hlidskjalf#Media/File:Frigg_and_Odin_in_Gr%C3%ADmnism%C3%A1l_by_Fr%C3%B8lich.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/7/7b/Frigg_and_Odin_in_Gr%C3%ADmnism%C3%A1l_by_Fr%C3%B8lich.jpg/440px-Frigg_and_Odin_in_Gr%C3%ADmnism%C3%A1l_by_Fr%C3%B8lich.jpg"
caption:"Frigg and Odin wagering upon Hliðskjálf in Grímnismál (1895) by Lorenz Frølich."
width:"400px"
align:"right"
tooltip:"">>
</a>
此座椅位于白银之厅的高塔上,坐在这椅子上,可以看到[[九个世界|Nine Worlds]]的一切事物。坐上这张椅子的特权只有[[⚡众神之父奥丁(神圣) Odin]]和[[众神之母弗丽嘉 Frigga]]可以拥有,但是即使身为奥丁的妻子,弗丽嘉也必须要经过允许才能坐上。
不过,[[丰饶之神弗雷 Freyr]]曾经在奥丁不在的时候偷偷坐上此椅,并对看到的一名女巨人—葛德(Gerd)一见钟情。之后,弗雷把自己的胜利之剑和马交给随从—史基尼尔(Skirnir),好让史基尼尔能代他前往巨人国度求婚。''也因此在诸神的黄昏到来之际,失去武器的弗雷便只能力战身亡。''
! 战争女神
''Enyo'' (''/ɪˈnaɪoʊ/''; Ancient Greek: Ἐνυώ Enȳō)
|!标志 |军用头盔和火炬 |
|!配偶 |[[阿瑞斯|🛡️战神阿瑞斯 Ares]] |
|!对应罗马神 |[[战争女神 贝洛娜 Bellona]] |
厄倪俄(希腊语:Ένυώ)希腊神话中象征战争的残忍的女神,经常作为[[阿瑞斯|🛡️战神阿瑞斯 Ares]]的陪伴出现。据说在特洛伊被攻陷的那天,她醉饮遍野的鲜血,兴之所至,在城中舞成一股飓风。她的称号是“城镇的终结者”,经常表现为身披鲜血,手拿武器。她有时还被描述为[[福耳库斯|福耳库斯 Phorcys]]和[[刻托|刻托 Ceto]]的女儿,格赖埃之一。
她的罗马神话对应者贝罗纳([[Bellona|战争女神 贝洛娜 Bellona]])''更为有名'',是朝野崇拜的对象。
提尔(Tyr,古北欧语:Týr),也翻作“泰尔”。在北欧神话中,他是战神,或说象征勇气与英雄的神。其他国家里,对应的名字有:Tyz(哥德语),Ty(古挪威语),Ti(古瑞典语),Tiw、Tiu、Tio、Tig (古英语),Týr(现代冰岛语),Ziu、Zio(古德语)。
|!对应希腊神 |[[🛡️战神阿瑞斯 Ares]] |
英语的''星期二“Tuesday''”其实是“提尔日”的意思,这是因为在古英语中,提尔的读音与“Tiw”相似,所以把他的名字命名为一星期中的第二天。
!! 神话中的提尔
在北欧神话中,提尔是[[希密尔 Hymir]]的儿子。他是北欧主要神祇之一,但他没有自己的宫殿,而是长住在''英灵殿''中。提尔也可以差遣[[女武神(Valkyries)|⚔️女武神瓦尔基莉 Valkyries]]们。
提尔只有一只手,他的另一只手是被[[🐺魔狼芬里尔 Fenrir]]给咬断的。芬里尔是[[🦹邪神洛基 Loki]]的孩子,其弟妹是[[🐍耶梦加得 Jormungand]]和[[💀死亡女神赫尔 Hel]]。
[[奥丁|⚡众神之父奥丁(神圣) Odin]]看出三兄妹会对众神造成危害,就分别流放了他们。但对''芬里尔'',奥丁却想不到安置的地方,所以就以测试力气的理由,想要用铁链将他绑住,但都被芬里尔轻松挣脱。
后来,众神请侏儒造了一条魔法的锁链。虽然诸神向芬里尔保证如果挣脱不开,会帮他松绑,但芬里尔已知诸神们心怀不轨,因此不肯轻易就范。这时提尔以自己的右手作为保证,放入魔狼的口中,芬里尔因此相信诸神才甘愿被缚。
但当他发现自己上当后,就愤而咬断了口中的手臂,提尔因此成了独手的神,在诸神的黄昏中,提尔和[[🐕加姆 Garmr]]同归于尽。
! 勇气与战争之神
|标志 |剑、矛、盾牌、头盔、战车、火炬、狗、野猪、秃鹫 |
|对应罗马神 |Mars |
|对应北欧神 |[[🛡️战神提尔 Tyr]] |
|父母 |宙斯,赫拉 |
在希腊神话中,他经常代表''战争的肉体或暴力和野蛮的方面'',是纯粹的野蛮和嗜血的化身,与他的妹妹,装甲''雅典娜''形成鲜明对比,后者作为情报女神的职能包括军事战略和将军。
希腊人对阿瑞斯的态度是矛盾的:尽管他体现了在战争中取得成功所必需的身体上的英勇,但他是一种危险的力量,"压倒性的,在战斗中贪得无厌,具有破坏性,对人进行屠杀。"
他的儿子Phobos(恐惧)和Deimos(恐怖)以及他的情人或妹妹Eris(不和谐)在他的战车上陪伴他。 在《伊利亚特》中,''他的父亲宙斯告诉他,他是他最讨厌的神''。与阿瑞斯的联系赋予了地方和物体以野蛮、危险或军事化的品质。
他作为战神的价值受到了怀疑:在特洛伊战争中,''阿瑞斯是失败的一方'',而雅典娜,在希腊艺术中经常被描绘为手握[[Nike|耐克 Nike]](胜利)(什么意思?),偏爱胜利的希腊人。
阿瑞斯在希腊神话中扮演的角色相对有限,尽管他的众多恋情和丰富的后代经常被提及。 当阿瑞斯在神话中出现时,他通常面临羞辱。 ''他是众所周知的爱神阿佛洛狄忒的情人'',后者嫁给了手工艺之神赫淮斯托斯。 与阿瑞斯和阿佛洛狄忒有关的最著名的故事显示,他们通过赫淮斯托斯的装置暴露在嘲笑中(查看 [[赫淮斯托斯|🔥火神赫菲斯托斯 Hephaestus]] )。
罗马诸神中与阿瑞斯相对应的是Mars,作为罗马人民的父亲,''他在__古罗马宗教__中被赋予了更重要和更有尊严的地位,成为守护神''。在拉丁文学的希腊化过程中,阿瑞斯的神话被罗马作家以Mars的名义重新解释。罗马统治下的希腊作家也以阿瑞斯的名义记录了与火星有关的崇拜活动和信仰。<span class="wavy">因此,在后来西方艺术和文学的古典传统中,这两个人物的神话后来几乎变得没有区别</span>。
斯基德普拉特尼Skíðblaðnir,是[[丰饶之神弗雷 Freyr]]所拥有的船,在希芙(Sif)之发的事件里,侏儒伊瓦尔迪的儿子们建造献给弗雷的礼物。
这艘船可随意伸缩,伸到最大的时候能装载[[亚萨神国阿斯加特 Asgard]]所有诸神和他们的装备,收起来时则变成约手帕的大小收到袋子里;当它的帆扬起时,永远都有一股清风会鼓动著船帆;它可以航行于海上和陆地。
在“''诸神的黄昏''”里,阿斯嘉特众神就是乘著此船与敌手战斗。
{{$:/themes/jd/Mono/EmptyStoryMessage}}
{
"tiddlers": {
"$:/Acknowledgements": {
"title": "$:/Acknowledgements",
"text": "TiddlyWiki incorporates code from these fine OpenSource projects:\n\n* [[The Stanford Javascript Crypto Library|http://bitwiseshiftleft.github.io/sjcl/]]\n* [[The Jasmine JavaScript Test Framework|http://pivotal.github.io/jasmine/]]\n* [[Normalize.css by Nicolas Gallagher|http://necolas.github.io/normalize.css/]]\n\nAnd media from these projects:\n\n* World flag icons from [[Wikipedia|http://commons.wikimedia.org/wiki/Category:SVG_flags_by_country]]\n"
},
"$:/core/copyright.txt": {
"title": "$:/core/copyright.txt",
"type": "text/plain",
"text": "TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright (c) 2004-2007, Jeremy Ruston\nCopyright (c) 2007-2020, UnaMesa Association\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
},
"$:/core/icon": {
"title": "$:/core/icon",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path d=\"M64 0l54.56 32v64L64 128 9.44 96V32L64 0zm21.127 95.408c-3.578-.103-5.15-.094-6.974-3.152l-1.42.042c-1.653-.075-.964-.04-2.067-.097-1.844-.07-1.548-1.86-1.873-2.8-.52-3.202.687-6.43.65-9.632-.014-1.14-1.593-5.17-2.157-6.61-1.768.34-3.546.406-5.34.497-4.134-.01-8.24-.527-12.317-1.183-.8 3.35-3.16 8.036-1.21 11.44 2.37 3.52 4.03 4.495 6.61 4.707 2.572.212 3.16 3.18 2.53 4.242-.55.73-1.52.864-2.346 1.04l-1.65.08c-1.296-.046-2.455-.404-3.61-.955-1.93-1.097-3.925-3.383-5.406-5.024.345.658.55 1.938.24 2.53-.878 1.27-4.665 1.26-6.4.47-1.97-.89-6.73-7.162-7.468-11.86 1.96-3.78 4.812-7.07 6.255-11.186-3.146-2.05-4.83-5.384-4.61-9.16l.08-.44c-3.097.59-1.49.37-4.82.628-10.608-.032-19.935-7.37-14.68-18.774.34-.673.664-1.287 1.243-.994.466.237.4 1.18.166 2.227-3.005 13.627 11.67 13.732 20.69 11.21.89-.25 2.67-1.936 3.905-2.495 2.016-.91 4.205-1.282 6.376-1.55 5.4-.63 11.893 2.276 15.19 2.37 3.3.096 7.99-.805 10.87-.615 2.09.098 4.143.483 6.16 1.03 1.306-6.49 1.4-11.27 4.492-12.38 1.814.293 3.213 2.818 4.25 4.167 2.112-.086 4.12.46 6.115 1.066 3.61-.522 6.642-2.593 9.833-4.203-3.234 2.69-3.673 7.075-3.303 11.127.138 2.103-.444 4.386-1.164 6.54-1.348 3.507-3.95 7.204-6.97 7.014-1.14-.036-1.805-.695-2.653-1.4-.164 1.427-.81 2.7-1.434 3.96-1.44 2.797-5.203 4.03-8.687 7.016-3.484 2.985 1.114 13.65 2.23 15.594 1.114 1.94 4.226 2.652 3.02 4.406-.37.58-.936.785-1.54 1.01l-.82.11zm-40.097-8.85l.553.14c.694-.27 2.09.15 2.83.353-1.363-1.31-3.417-3.24-4.897-4.46-.485-1.47-.278-2.96-.174-4.46l.02-.123c-.582 1.205-1.322 2.376-1.72 3.645-.465 1.71 2.07 3.557 3.052 4.615l.336.3z\" fill-rule=\"evenodd\"/></svg>"
},
"$:/core/images/add-comment": {
"title": "$:/core/images/add-comment",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-add-comment tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 56H36a8 8 0 100 16h20v20a8 8 0 1016 0V72h20a8 8 0 100-16H72V36a8 8 0 10-16 0v20zm-12.595 58.362c-6.683 7.659-20.297 12.903-36.006 12.903-2.196 0-4.35-.102-6.451-.3 9.652-3.836 17.356-12.24 21.01-22.874C8.516 94.28 0 79.734 0 63.5 0 33.953 28.206 10 63 10s63 23.953 63 53.5S97.794 117 63 117c-6.841 0-13.428-.926-19.595-2.638z\"/></svg>"
},
"$:/core/images/advanced-search-button": {
"title": "$:/core/images/advanced-search-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-advanced-search-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M74.565 87.985A47.776 47.776 0 0148 96C21.49 96 0 74.51 0 48S21.49 0 48 0s48 21.49 48 48c0 9.854-2.97 19.015-8.062 26.636l34.347 34.347a9.443 9.443 0 010 13.36 9.446 9.446 0 01-13.36 0l-34.36-34.358zM48 80c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/><circle cx=\"48\" cy=\"48\" r=\"8\"/><circle cx=\"28\" cy=\"48\" r=\"8\"/><circle cx=\"68\" cy=\"48\" r=\"8\"/></g></svg>"
},
"$:/core/images/auto-height": {
"title": "$:/core/images/auto-height",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-auto-height tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M67.987 114.356l-.029-14.477a4 4 0 00-2.067-3.494l-15.966-8.813-1.933 7.502H79.9c4.222 0 5.564-5.693 1.786-7.58L49.797 71.572 48.01 79.15h31.982c4.217 0 5.564-5.682 1.795-7.575L49.805 55.517l-1.795 7.575h31.982c4.212 0 5.563-5.67 1.805-7.57l-16.034-8.105 2.195 3.57V35.614l9.214 9.213a4 4 0 105.656-5.656l-16-16a4 4 0 00-5.656 0l-16 16a4 4 0 105.656 5.656l9.13-9.13v15.288a4 4 0 002.195 3.57l16.035 8.106 1.804-7.57H48.01c-4.217 0-5.564 5.682-1.795 7.574l31.982 16.059 1.795-7.575H48.01c-4.222 0-5.564 5.693-1.787 7.579l31.89 15.923 1.787-7.578H47.992c-4.133 0-5.552 5.504-1.933 7.501l15.966 8.813-2.067-3.494.029 14.436-9.159-9.158a4 4 0 00-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656l-9.185 9.184zM16 20h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"
},
"$:/core/images/blank": {
"title": "$:/core/images/blank",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-blank tc-image-button\" viewBox=\"0 0 128 128\"/>"
},
"$:/core/images/bold": {
"title": "$:/core/images/bold",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-bold tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.146 51.81V21.87h26.353c2.51 0 4.93.21 7.26.628 2.33.418 4.392 1.165 6.185 2.24 1.793 1.076 3.227 2.57 4.302 4.482 1.076 1.913 1.614 4.363 1.614 7.35 0 5.379-1.613 9.263-4.84 11.653-3.227 2.39-7.35 3.586-12.37 3.586H41.146zM13 0v128h62.028a65.45 65.45 0 0016.762-2.151c5.438-1.434 10.278-3.645 14.52-6.633 4.244-2.988 7.62-6.842 10.13-11.563 2.51-4.721 3.764-10.308 3.764-16.762 0-8.008-1.942-14.85-5.826-20.527-3.884-5.677-9.77-9.65-17.658-11.921 5.737-2.75 10.069-6.275 12.997-10.577 2.928-4.303 4.392-9.681 4.392-16.135 0-5.976-.986-10.995-2.958-15.059-1.972-4.063-4.75-7.32-8.336-9.77-3.585-2.45-7.888-4.213-12.907-5.289C84.888.538 79.33 0 73.235 0H13zm28.146 106.129V70.992H71.8c6.095 0 10.995 1.404 14.7 4.212 3.705 2.81 5.558 7.5 5.558 14.073 0 3.347-.568 6.096-1.703 8.247-1.136 2.151-2.66 3.854-4.572 5.11-1.912 1.254-4.123 2.15-6.633 2.688-2.51.538-5.139.807-7.888.807H41.146z\"/></svg>"
},
"$:/core/images/cancel-button": {
"title": "$:/core/images/cancel-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-cancel-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 76.314l-16.97 16.97a7.999 7.999 0 01-11.314 0c-3.118-3.118-3.124-8.19 0-11.313L52.686 65l-16.97-16.97a7.999 7.999 0 010-11.314c3.118-3.118 8.19-3.124 11.313 0L64 53.686l16.97-16.97a7.999 7.999 0 0111.314 0c3.118 3.118 3.124 8.19 0 11.313L75.314 65l16.97 16.97a7.999 7.999 0 010 11.314c-3.118 3.118-8.19 3.124-11.313 0L64 76.314zM64 129c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 1 0 29.654 0 65c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 17 64 17 16 38.49 16 65s21.49 48 48 48z\"/></svg>"
},
"$:/core/images/chevron-down": {
"title": "$:/core/images/chevron-down",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-down tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.053 85.456a7.889 7.889 0 01-5.6-2.316L2.473 27.16a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0L64.05 66.344l50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.105 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.317z\"/><path d=\"M64.053 124.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></g></svg>"
},
"$:/core/images/chevron-left": {
"title": "$:/core/images/chevron-left",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M47.544 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L66.656 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.105 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.317-5.595z\"/><path d=\"M8.931 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L28.041 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.104 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.316-5.595z\"/></g></svg>"
},
"$:/core/images/chevron-right": {
"title": "$:/core/images/chevron-right",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-right tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M83.456 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196L64.344 63.95 13.963 13.567a7.92 7.92 0 010-11.195c3.086-3.085 8.105-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.317 5.595z\"/><path d=\"M122.069 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></g></svg>"
},
"$:/core/images/chevron-up": {
"title": "$:/core/images/chevron-up",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-up tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M63.947 44.544c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 63.656l-50.382 50.382a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.317z\"/><path d=\"M63.947 5.931c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 25.041 13.567 75.423a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.104 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.316z\"/></g></svg>"
},
"$:/core/images/clone-button": {
"title": "$:/core/images/clone-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-clone-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M32.265 96v24.002A7.996 7.996 0 0040.263 128h79.74a7.996 7.996 0 007.997-7.998v-79.74a7.996 7.996 0 00-7.998-7.997H96V48h12.859a2.99 2.99 0 012.994 2.994v57.865a2.99 2.99 0 01-2.994 2.994H50.994A2.99 2.99 0 0148 108.859V96H32.265z\"/><path d=\"M40 56h-7.993C27.588 56 24 52.418 24 48c0-4.41 3.585-8 8.007-8H40v-7.993C40 27.588 43.582 24 48 24c4.41 0 8 3.585 8 8.007V40h7.993C68.412 40 72 43.582 72 48c0 4.41-3.585 8-8.007 8H56v7.993C56 68.412 52.418 72 48 72c-4.41 0-8-3.585-8-8.007V56zM8 0C3.58 0 0 3.588 0 8v80c0 4.419 3.588 8 8 8h80c4.419 0 8-3.588 8-8V8c0-4.419-3.588-8-8-8H8zM19 16A2.997 2.997 0 0016 19.001v57.998A2.997 2.997 0 0019.001 80h57.998A2.997 2.997 0 0080 76.999V19.001A2.997 2.997 0 0076.999 16H19.001z\"/></g></svg>"
},
"$:/core/images/close-all-button": {
"title": "$:/core/images/close-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-close-all-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M28 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L16.686 100 2.543 85.856a8 8 0 0111.313-11.313L28 88.686l14.144-14.143a8 8 0 0111.313 11.313L39.314 100l14.143 14.144a8 8 0 01-11.313 11.313L28 111.314zM28 39.314L13.856 53.457A8 8 0 012.543 42.144L16.686 28 2.543 13.856A8 8 0 0113.856 2.543L28 16.686 42.144 2.543a8 8 0 0111.313 11.313L39.314 28l14.143 14.144a8 8 0 01-11.313 11.313L28 39.314zM100 39.314L85.856 53.457a8 8 0 01-11.313-11.313L88.686 28 74.543 13.856A8 8 0 0185.856 2.543L100 16.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 28l14.143 14.144a8 8 0 01-11.313 11.313L100 39.314zM100 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L88.686 100 74.543 85.856a8 8 0 0111.313-11.313L100 88.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 100l14.143 14.144a8 8 0 01-11.313 11.313L100 111.314z\"/></g></svg>"
},
"$:/core/images/close-button": {
"title": "$:/core/images/close-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M65.086 75.41l-50.113 50.113c-3.121 3.121-8.192 3.126-11.316.002-3.118-3.118-3.123-8.19.002-11.316l50.114-50.114L3.659 13.982C.538 10.86.533 5.79 3.657 2.666c3.118-3.118 8.19-3.123 11.316.002l50.113 50.114L115.2 2.668c3.121-3.121 8.192-3.126 11.316-.002 3.118 3.118 3.123 8.19-.002 11.316L76.4 64.095l50.114 50.114c3.121 3.121 3.126 8.192.002 11.316-3.118 3.118-8.19 3.123-11.316-.002L65.086 75.409z\"/></svg>"
},
"$:/core/images/close-others-button": {
"title": "$:/core/images/close-others-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-others-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48zm0-16c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32zm0-16c8.837 0 16-7.163 16-16s-7.163-16-16-16-16 7.163-16 16 7.163 16 16 16z\"/></svg>"
},
"$:/core/images/copy-clipboard": {
"title": "$:/core/images/copy-clipboard",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-copy-clipboard tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"33\" height=\"8\" x=\"40\" y=\"40\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"82\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"54\" rx=\"4\"/><rect width=\"33\" height=\"8\" x=\"40\" y=\"96\" rx=\"4\"/><rect width=\"12\" height=\"8\" x=\"40\" y=\"68\" rx=\"4\"/><path d=\"M40 16H24c-4.419 0-8 3.59-8 8a8.031 8.031 0 000 .01v95.98a8.03 8.03 0 000 .01c0 4.41 3.581 8 8 8h80a7.975 7.975 0 005.652-2.34 7.958 7.958 0 002.348-5.652v-16.016c0-4.414-3.582-7.992-8-7.992-4.41 0-8 3.578-8 7.992V112H32V32h64v8.008C96 44.422 99.582 48 104 48c4.41 0 8-3.578 8-7.992V23.992a7.963 7.963 0 00-2.343-5.651A7.995 7.995 0 00104.001 16H88c0-4.41-3.585-8-8.007-8H48.007C43.588 8 40 11.582 40 16zm4-1.004A4.001 4.001 0 0148 11h32c2.21 0 4 1.797 4 3.996v4.008A4.001 4.001 0 0180 23H48c-2.21 0-4-1.797-4-3.996v-4.008z\"/><rect width=\"66\" height=\"16\" x=\"62\" y=\"64\" rx=\"8\"/><path d=\"M84.657 82.343l-16-16v11.314l16-16a8 8 0 10-11.314-11.314l-16 16a8 8 0 000 11.314l16 16a8 8 0 1011.314-11.314z\"/></g></svg>"
},
"$:/core/images/delete-button": {
"title": "$:/core/images/delete-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-delete-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(12)\"><rect width=\"105\" height=\"16\" y=\"11\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"28\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"8\" y=\"16\" rx=\"8\"/><rect width=\"88\" height=\"16\" x=\"8\" y=\"112\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"80\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"56\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"32\" y=\"16\" rx=\"8\"/></g></svg>"
},
"$:/core/images/done-button": {
"title": "$:/core/images/done-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-done-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M42.26 111.032c-2.051.001-4.103-.78-5.668-2.345L2.662 74.758a8 8 0 01-.005-11.32c3.118-3.117 8.192-3.12 11.32.007l28.278 28.278 72.124-72.124a8.002 8.002 0 0111.314-.001c3.118 3.118 3.124 8.19 0 11.315l-77.78 77.78a7.978 7.978 0 01-5.658 2.343z\"/></svg>"
},
"$:/core/images/down-arrow": {
"title": "$:/core/images/down-arrow",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-down-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M64.177 100.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.086 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></svg>"
},
"$:/core/images/download-button": {
"title": "$:/core/images/download-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-download-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\" class=\"tc-image-download-button-ring\"/><path d=\"M34.35 66.43l26.892 27.205a4.57 4.57 0 006.516 0L94.65 66.43a4.7 4.7 0 000-6.593 4.581 4.581 0 00-3.258-1.365h-8.46c-2.545 0-4.608-2.087-4.608-4.661v-15.15c0-2.575-2.063-4.662-4.608-4.662H55.284c-2.545 0-4.608 2.087-4.608 4.662v15.15c0 2.574-2.063 4.661-4.608 4.661h-8.46c-2.545 0-4.608 2.087-4.608 4.662a4.69 4.69 0 001.35 3.296z\"/></g></svg>"
},
"$:/core/images/edit-button": {
"title": "$:/core/images/edit-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-edit-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M95.627 10.059l-5.656 5.657 11.313 11.313 5.657-5.656-11.314-11.314zm5.657-5.657l1.966-1.966c3.123-3.122 8.194-3.129 11.319-.005 3.117 3.118 3.122 8.192-.005 11.32l-1.966 1.965-11.314-11.314zm-16.97 16.97l-60.25 60.25a8.12 8.12 0 00-.322.342c-.1.087-.198.179-.295.275-5.735 5.735-10.702 22.016-10.702 22.016s16.405-5.09 22.016-10.702c.095-.096.186-.193.272-.292a8.12 8.12 0 00.345-.325l60.25-60.25-11.314-11.313zM35.171 124.19c6.788-.577 13.898-2.272 23.689-5.348 1.825-.573 3.57-1.136 6.336-2.04 16-5.226 21.877-6.807 28.745-7.146 8.358-.413 13.854 2.13 17.58 8.699a4 4 0 006.959-3.946c-5.334-9.406-13.745-13.296-24.933-12.744-7.875.39-14.057 2.052-30.835 7.533-2.739.894-4.46 1.45-6.25 2.012-19.46 6.112-30.77 7.072-39.597 1.747a4 4 0 10-4.132 6.85c6.333 3.82 13.754 5.12 22.438 4.383z\"/></g></svg>"
},
"$:/core/images/erase": {
"title": "$:/core/images/erase",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-erase tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.087 127.996l63.015-63.015c6.535-6.535 6.528-17.115-.003-23.646L99.466 17.702c-6.539-6.538-17.117-6.532-23.646-.003L4.898 88.62c-6.535 6.534-6.528 17.115.003 23.646l15.73 15.73h39.456zm-34.95-7.313l-14.324-14.325c-3.267-3.268-3.268-8.564-.008-11.824L46.269 59.07l35.462 35.462-26.15 26.15H25.137z\"/></svg>"
},
"$:/core/images/excise": {
"title": "$:/core/images/excise",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-excise tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 107.314l-2.343 2.343a8 8 0 11-11.314-11.314l16-16a8 8 0 0111.314 0l16 16a8 8 0 11-11.314 11.314L72 107.314v14.284c0 3.536-3.582 6.402-8 6.402s-8-2.866-8-6.402v-14.284zM0 40.007C0 35.585 3.59 32 8 32c4.418 0 8 3.588 8 8.007v31.986C16 76.415 12.41 80 8 80c-4.418 0-8-3.588-8-8.007V40.007zm32 0C32 35.585 35.59 32 40 32c4.418 0 8 3.588 8 8.007v31.986C48 76.415 44.41 80 40 80c-4.418 0-8-3.588-8-8.007V40.007zm48 0C80 35.585 83.59 32 88 32c4.418 0 8 3.588 8 8.007v31.986C96 76.415 92.41 80 88 80c-4.418 0-8-3.588-8-8.007V40.007zm-24-32C56 3.585 59.59 0 64 0c4.418 0 8 3.588 8 8.007v31.986C72 44.415 68.41 48 64 48c-4.418 0-8-3.588-8-8.007V8.007zm56 32c0-4.422 3.59-8.007 8-8.007 4.418 0 8 3.588 8 8.007v31.986c0 4.422-3.59 8.007-8 8.007-4.418 0-8-3.588-8-8.007V40.007z\"/></svg>"
},
"$:/core/images/export-button": {
"title": "$:/core/images/export-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-export-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.003 128H119.993a7.984 7.984 0 005.664-2.349v.007A7.975 7.975 0 00128 120V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v56H16V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v64c0 4.418 3.59 8 8 8h.003zm48.62-100.689l-8.965 8.966c-3.125 3.125-8.195 3.13-11.319.005-3.118-3.118-3.122-8.192.005-11.319L58.962 2.346A7.986 7.986 0 0164.625 0l-.006.002c2.05-.001 4.102.78 5.666 2.344l22.618 22.617c3.124 3.125 3.129 8.195.005 11.319-3.118 3.118-8.192 3.122-11.319-.005l-8.965-8.966v61.256c0 4.411-3.582 8-8 8-4.41 0-8-3.582-8-8V27.311z\"/></svg>"
},
"$:/core/images/file": {
"title": "$:/core/images/file",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-file tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M111.968 30.5H112V120a8 8 0 01-8 8H24a8 8 0 01-8-8V8a8 8 0 018-8h57v.02a7.978 7.978 0 015.998 2.337l22.627 22.627a7.975 7.975 0 012.343 5.516zM81 8H24v112h80V30.5H89c-4.418 0-8-3.578-8-8V8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"68\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"84\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"100\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/></svg>"
},
"$:/core/images/fixed-height": {
"title": "$:/core/images/fixed-height",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fixed-height tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60 35.657l-9.172 9.171a4 4 0 11-5.656-5.656l16-16a4 4 0 015.656 0l16 16a4 4 0 01-5.656 5.656L68 35.657v57.686l9.172-9.171a4 4 0 115.656 5.656l-16 16a4 4 0 01-5.656 0l-16-16a4 4 0 115.656-5.656L60 93.343V35.657zM16 116h96a4 4 0 100-8H16a4 4 0 100 8zm0-96h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"
},
"$:/core/images/fold-all-button": {
"title": "$:/core/images/fold-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M64.03 20.004c-2.05 0-4.102.78-5.667 2.344L35.746 44.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 22.348a7.986 7.986 0 00-5.663-2.346zM64.03 85.002c-2.05-.001-4.102.78-5.667 2.344l-22.617 22.617c-3.125 3.125-3.13 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.966 16.966 16.966c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.192-.005-11.319L69.687 87.346A7.986 7.986 0 0064.024 85z\"/></g></svg>"
},
"$:/core/images/fold-button": {
"title": "$:/core/images/fold-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M64.03 25.004c-2.05 0-4.102.78-5.667 2.344L35.746 49.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 27.348a7.986 7.986 0 00-5.663-2.346zM64.005 67.379c-2.05 0-4.102.78-5.666 2.344L35.722 92.34c-3.125 3.125-3.13 8.195-.006 11.32 3.118 3.117 8.192 3.121 11.32-.006L64 86.69l16.965 16.965c3.125 3.125 8.195 3.13 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L69.663 69.723A7.986 7.986 0 0064 67.377z\"/></g></svg>"
},
"$:/core/images/fold-others-button": {
"title": "$:/core/images/fold-others-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-others tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" y=\"56.031\" rx=\"8\"/><path d=\"M86.632 79.976c-2.05 0-4.102.78-5.666 2.345L64 99.286 47.034 82.321a7.986 7.986 0 00-5.662-2.346l.005.001c-2.05 0-4.102.78-5.666 2.345l-22.618 22.617c-3.124 3.125-3.129 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.966-16.966 16.965 16.966a7.986 7.986 0 005.663 2.346l-.005-.002c2.05 0 4.102-.78 5.666-2.344l16.965-16.966 16.966 16.966c3.125 3.124 8.194 3.129 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L92.289 82.321a7.986 7.986 0 00-5.663-2.346zM86.7 48.024c-2.05 0-4.102-.78-5.666-2.345L64.07 28.714 47.103 45.679a7.986 7.986 0 01-5.663 2.346l.005-.001c-2.05 0-4.101-.78-5.666-2.345L13.162 23.062c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L41.44 28.714l16.966-16.966a7.986 7.986 0 015.662-2.346l-.005.002c2.05 0 4.102.78 5.666 2.344l16.966 16.966 16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L92.358 45.679a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/folder": {
"title": "$:/core/images/folder",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-folder tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.694 128H8C3.58 128 0 124.414 0 119.996V48.004C0 43.584 3.584 40 7.999 40H16v-8c0-4.418 3.578-8 8-8h32a8 8 0 018 8v8h40.001c4.418 0 7.999 3.586 7.999 8.004V59.83l-8-.082v-7.749A4 4 0 0099.997 48H56V36c0-2.21-1.793-4-4.004-4H28.004A4 4 0 0024 36v12H12.003A4 4 0 008 52v64a4 4 0 004.003 4h46.76l-3.069 8z\"/><path d=\"M23.873 55.5h96.003c4.417 0 7.004 4.053 5.774 9.063l-13.344 54.374c-1.228 5.005-5.808 9.063-10.223 9.063H6.08c-4.417 0-7.003-4.053-5.774-9.063L13.65 64.563c1.228-5.005 5.808-9.063 10.223-9.063zm1.78 8.5h87.994c2.211 0 3.504 2.093 2.891 4.666l-11.12 46.668c-.614 2.577-2.902 4.666-5.115 4.666H12.31c-2.211 0-3.504-2.093-2.891-4.666l11.12-46.668C21.152 66.09 23.44 64 25.653 64z\"/></g></svg>"
},
"$:/core/images/full-screen-button": {
"title": "$:/core/images/full-screen-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-full-screen-button tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 8a8 8 0 018-8h32a8 8 0 110 16H16v24a8 8 0 11-16 0V8zM128 120a8 8 0 01-8 8H88a8 8 0 110-16h24V88a8 8 0 1116 0v32zM8 128a8 8 0 01-8-8V88a8 8 0 1116 0v24h24a8 8 0 110 16H8zM120 0a8 8 0 018 8v32a8 8 0 11-16 0V16H88a8 8 0 110-16h32z\"/></svg>"
},
"$:/core/images/github": {
"title": "$:/core/images/github",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-github tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M63.938 1.607c-35.336 0-63.994 28.69-63.994 64.084 0 28.312 18.336 52.329 43.768 60.802 3.202.59 4.37-1.388 4.37-3.088 0-1.518-.056-5.55-.087-10.897-17.802 3.871-21.558-8.591-21.558-8.591-2.911-7.404-7.108-9.375-7.108-9.375-5.81-3.973.44-3.895.44-3.895 6.424.453 9.803 6.606 9.803 6.606 5.709 9.791 14.981 6.963 18.627 5.322.582-4.138 2.236-6.963 4.063-8.564-14.211-1.617-29.153-7.117-29.153-31.672 0-6.995 2.495-12.718 6.589-17.195-.66-1.621-2.856-8.14.629-16.96 0 0 5.37-1.722 17.597 6.57 5.104-1.424 10.58-2.132 16.022-2.16 5.438.028 10.91.736 16.022 2.16 12.22-8.292 17.582-6.57 17.582-6.57 3.493 8.82 1.297 15.339.64 16.96 4.102 4.477 6.578 10.2 6.578 17.195 0 24.618-14.966 30.035-29.22 31.62 2.295 1.98 4.342 5.89 4.342 11.87 0 8.564-.079 15.476-.079 17.576 0 1.715 1.155 3.71 4.4 3.084 25.413-8.493 43.733-32.494 43.733-60.798 0-35.394-28.657-64.084-64.006-64.084\"/></svg>"
},
"$:/core/images/gitter": {
"title": "$:/core/images/gitter",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-gitter tc-image-button\" viewBox=\"0 0 18 25\"><path d=\"M15 5h2v10h-2zM10 5h2v20h-2zM5 5h2v20H5zM0 0h2v15H0z\"/></svg>"
},
"$:/core/images/globe": {
"title": "$:/core/images/globe",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-globe tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M72.811 37.128v2.554c0 2.196.978 6.881 0 8.832-1.466 2.928-4.65 3.54-6.394 5.867-1.182 1.577-4.618 10.601-3.69 12.92 3.969 9.922 11.534 3.187 17.962 9.293.864.821 2.887 2.273 3.296 3.296 3.29 8.223-7.576 15.009 3.757 26.3 1.245 1.24 3.813-3.817 4.079-4.614.852-2.563 6.725-5.45 9.088-7.053 2.02-1.37 4.873-2.667 6.328-4.745 2.27-3.244 1.48-7.514 3.098-10.745 2.139-4.274 3.828-9.635 5.998-13.966 3.898-7.781 4.721 2.093 5.067 2.439.358.357 1.011 0 1.517 0 .094 0 1.447.099 1.516 0 .65-.935-1.043-17.92-1.318-19.297-1.404-7.01-6.944-15.781-11.865-20.5-6.274-6.015-7.09-16.197-18.259-14.954-.204.022-5.084 10.148-7.777 13.512-3.728 4.657-2.47-4.153-6.526-4.153-.081 0-1.183-.103-1.253 0-.586.88-1.44 3.896-2.306 4.417-.265.16-1.722-.239-1.846 0-2.243 4.3 8.256 2.212 5.792 7.952-2.352 5.481-6.328-1.997-6.328 8.56M44.467 7.01c9.685 6.13.682 12.198 2.694 16.215 1.655 3.303 4.241 5.395 1.714 9.814-2.063 3.608-6.87 3.966-9.623 6.723-3.04 3.044-5.464 8.94-6.79 12.911-1.617 4.843 14.547 6.866 12.063 11.008-1.386 2.311-6.746 1.466-8.437.198-1.165-.873-3.593-.546-4.417-1.78-2.613-3.915-2.26-8.023-3.625-12.128-.938-2.822-6.313-2.12-7.844-.593-.523.522-.33 1.792-.33 2.505 0 5.285 7.12 3.316 7.12 6.46 0 14.636 3.927 6.534 11.14 11.336 10.036 6.683 7.844 7.303 14.946 14.404 3.673 3.673 7.741 3.686 9.425 9.294 1.602 5.331-9.327 5.339-11.716 7.448-1.123.991-2.813 4.146-4.219 4.615-1.792.598-3.234.496-4.944 1.78-2.427 1.82-3.9 4.932-4.02 4.81-2.148-2.147-3.52-15.479-3.89-18.257-.588-4.42-5.59-5.54-6.986-9.03-1.57-3.927 1.524-9.52-1.129-13.761-6.52-10.424-11.821-14.5-15.35-26.292-.942-3.148 3.342-6.529 4.877-8.833 1.877-2.816 2.662-5.854 4.746-8.635C22.147 24.19 40.855 9.461 43.857 8.635l.61-1.625z\"/><path d=\"M64 126c34.242 0 62-27.758 62-62 0-34.242-27.758-62-62-62C29.758 2 2 29.758 2 64c0 34.242 27.758 62 62 62zm0-6c30.928 0 56-25.072 56-56S94.928 8 64 8 8 33.072 8 64s25.072 56 56 56z\"/></g></svg>"
},
"$:/core/images/heading-1": {
"title": "$:/core/images/heading-1",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-1 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M14 30h13.25v30.104H61.7V30h13.25v75.684H61.7V71.552H27.25v34.132H14V30zm70.335 13.78c2.544 0 5.017-.212 7.42-.636 2.403-.424 4.576-1.13 6.52-2.12 1.942-.99 3.603-2.261 4.981-3.816 1.378-1.555 2.28-3.463 2.703-5.724h9.858v74.2h-13.25V53.32H84.335v-9.54z\"/></svg>"
},
"$:/core/images/heading-2": {
"title": "$:/core/images/heading-2",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-2 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm119.52 75.684H74.85c.07-6.148 1.555-11.519 4.452-16.112 2.897-4.593 6.855-8.586 11.872-11.978a133.725 133.725 0 017.526-5.141 59.6 59.6 0 007.208-5.353c2.19-1.908 3.993-3.975 5.406-6.201 1.413-2.226 2.155-4.788 2.226-7.685 0-1.343-.159-2.774-.477-4.293a11.357 11.357 0 00-1.855-4.24c-.919-1.307-2.19-2.403-3.816-3.286-1.625-.883-3.745-1.325-6.36-1.325-2.403 0-4.399.477-5.989 1.431-1.59.954-2.862 2.261-3.816 3.922-.954 1.66-1.66 3.622-2.12 5.883-.46 2.261-.724 4.7-.795 7.314H76.23c0-4.099.548-7.897 1.643-11.395 1.095-3.498 2.738-6.519 4.93-9.063 2.19-2.544 4.857-4.54 8.002-5.989C93.95 30.724 97.606 30 101.775 30c4.523 0 8.303.742 11.342 2.226 3.039 1.484 5.494 3.357 7.367 5.618 1.873 2.261 3.198 4.717 3.975 7.367.777 2.65 1.166 5.176 1.166 7.579 0 2.968-.46 5.653-1.378 8.056a25.942 25.942 0 01-3.71 6.625 37.5 37.5 0 01-5.3 5.565 79.468 79.468 0 01-6.148 4.77 165.627 165.627 0 01-6.36 4.24 94.28 94.28 0 00-5.883 4.028c-1.802 1.343-3.374 2.738-4.717 4.187-1.343 1.449-2.261 2.986-2.756 4.611h36.146v10.812z\"/></svg>"
},
"$:/core/images/heading-3": {
"title": "$:/core/images/heading-3",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-3 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm88.885 32.224c1.979.07 3.957-.07 5.936-.424 1.979-.353 3.745-.972 5.3-1.855a10.365 10.365 0 003.763-3.657c.954-1.555 1.431-3.463 1.431-5.724 0-3.18-1.078-5.724-3.233-7.632-2.155-1.908-4.929-2.862-8.32-2.862-2.12 0-3.958.424-5.513 1.272a11.318 11.318 0 00-3.869 3.445c-1.025 1.449-1.784 3.074-2.279 4.876a18.335 18.335 0 00-.636 5.565H75.381c.141-3.604.813-6.943 2.014-10.017 1.201-3.074 2.844-5.742 4.93-8.003 2.084-2.261 4.61-4.028 7.578-5.3C92.871 30.636 96.228 30 99.973 30a29.2 29.2 0 018.533 1.272c2.791.848 5.3 2.085 7.526 3.71s4.01 3.692 5.353 6.201c1.343 2.509 2.014 5.388 2.014 8.639 0 3.745-.848 7.014-2.544 9.805-1.696 2.791-4.346 4.823-7.95 6.095v.212c4.24.848 7.544 2.95 9.911 6.307s3.551 7.438 3.551 12.243c0 3.533-.707 6.696-2.12 9.487a21.538 21.538 0 01-5.724 7.102c-2.403 1.943-5.194 3.445-8.374 4.505-3.18 1.06-6.537 1.59-10.07 1.59-4.31 0-8.074-.618-11.289-1.855s-5.9-2.986-8.056-5.247c-2.155-2.261-3.798-4.982-4.929-8.162-1.13-3.18-1.731-6.713-1.802-10.6h12.084c-.141 4.523.972 8.286 3.34 11.289 2.366 3.003 5.917 4.505 10.652 4.505 4.028 0 7.402-1.148 10.123-3.445 2.72-2.297 4.081-5.565 4.081-9.805 0-2.897-.565-5.194-1.696-6.89a10.97 10.97 0 00-4.452-3.869c-1.837-.883-3.904-1.431-6.2-1.643a58.067 58.067 0 00-7.05-.212v-9.01z\"/></svg>"
},
"$:/core/images/heading-4": {
"title": "$:/core/images/heading-4",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-4 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8 30h13.25v30.104H55.7V30h13.25v75.684H55.7V71.552H21.25v34.132H8V30zm76.59 48.548h22.471V45.9h-.212L84.59 78.548zm43.46 9.54h-9.54v17.596H107.06V88.088h-31.8V76.11l31.8-44.626h11.448v47.064h9.54v9.54z\"/></svg>"
},
"$:/core/images/heading-5": {
"title": "$:/core/images/heading-5",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-5 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm77.755 1.484h38.372v10.812H92.765L88.95 61.164l.212.212c1.625-1.837 3.692-3.233 6.201-4.187 2.509-.954 5-1.431 7.473-1.431 3.675 0 6.96.618 9.858 1.855 2.897 1.237 5.335 2.968 7.314 5.194s3.48 4.858 4.505 7.897c1.025 3.039 1.537 6.325 1.537 9.858 0 2.968-.477 6.024-1.43 9.169a25.161 25.161 0 01-4.559 8.586c-2.085 2.58-4.752 4.7-8.003 6.36-3.25 1.66-7.137 2.491-11.66 2.491-3.604 0-6.943-.477-10.017-1.431-3.074-.954-5.777-2.385-8.109-4.293-2.332-1.908-4.187-4.258-5.565-7.049-1.378-2.791-2.138-6.06-2.279-9.805h12.084c.353 4.028 1.731 7.12 4.134 9.275 2.403 2.155 5.583 3.233 9.54 3.233 2.544 0 4.7-.424 6.466-1.272 1.767-.848 3.198-2.014 4.293-3.498 1.095-1.484 1.873-3.215 2.332-5.194.46-1.979.69-4.099.69-6.36 0-2.05-.284-4.01-.849-5.883-.565-1.873-1.413-3.516-2.544-4.929-1.13-1.413-2.597-2.544-4.399-3.392-1.802-.848-3.904-1.272-6.307-1.272-2.544 0-4.929.477-7.155 1.431-2.226.954-3.834 2.738-4.823 5.353H75.805l7.95-40.598z\"/></svg>"
},
"$:/core/images/heading-6": {
"title": "$:/core/images/heading-6",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-6 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm106.587 20.246c-.283-3.039-1.36-5.494-3.233-7.367-1.873-1.873-4.399-2.809-7.579-2.809-2.19 0-4.08.406-5.67 1.219a12.435 12.435 0 00-4.029 3.233c-1.095 1.343-1.979 2.88-2.65 4.611a37.696 37.696 0 00-1.643 5.459 46.08 46.08 0 00-.9 5.671 722.213 722.213 0 00-.478 5.247l.212.212c1.625-2.968 3.87-5.176 6.731-6.625 2.862-1.449 5.954-2.173 9.275-2.173 3.675 0 6.96.636 9.858 1.908 2.897 1.272 5.353 3.021 7.367 5.247 2.014 2.226 3.551 4.858 4.611 7.897 1.06 3.039 1.59 6.325 1.59 9.858 0 3.604-.583 6.943-1.749 10.017-1.166 3.074-2.844 5.76-5.035 8.056-2.19 2.297-4.805 4.081-7.844 5.353-3.039 1.272-6.395 1.908-10.07 1.908-5.441 0-9.91-1.007-13.409-3.021-3.498-2.014-6.254-4.77-8.268-8.268-2.014-3.498-3.41-7.597-4.187-12.296-.777-4.7-1.166-9.77-1.166-15.211 0-4.452.477-8.94 1.431-13.462.954-4.523 2.526-8.639 4.717-12.349 2.19-3.71 5.07-6.731 8.64-9.063C92.676 31.166 97.075 30 102.304 30c2.968 0 5.76.495 8.374 1.484 2.615.99 4.93 2.367 6.943 4.134 2.014 1.767 3.657 3.887 4.93 6.36 1.271 2.473 1.978 5.23 2.12 8.268h-12.085zm-11.66 46.852c2.19 0 4.099-.442 5.724-1.325a12.869 12.869 0 004.081-3.445c1.095-1.413 1.908-3.056 2.438-4.929.53-1.873.795-3.798.795-5.777s-.265-3.887-.795-5.724c-.53-1.837-1.343-3.445-2.438-4.823-1.095-1.378-2.456-2.491-4.08-3.339-1.626-.848-3.534-1.272-5.725-1.272-2.19 0-4.116.406-5.777 1.219-1.66.813-3.056 1.908-4.187 3.286-1.13 1.378-1.979 2.986-2.544 4.823-.565 1.837-.848 3.78-.848 5.83 0 2.05.283 3.993.848 5.83.565 1.837 1.413 3.48 2.544 4.929a12.39 12.39 0 004.187 3.445c1.66.848 3.586 1.272 5.777 1.272z\"/></svg>"
},
"$:/core/images/help": {
"title": "$:/core/images/help",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-help tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M36.055 111.441c-5.24 4.396-15.168 7.362-26.555 7.362-1.635 0-3.24-.06-4.806-.179 7.919-2.64 14.062-8.6 16.367-16.014C8.747 92.845 1.05 78.936 1.05 63.5c0-29.547 28.206-53.5 63-53.5s63 23.953 63 53.5-28.206 53.5-63 53.5c-10.055 0-19.56-2-27.994-5.559zm35.35-33.843a536.471 536.471 0 00.018-4.682 199.02 199.02 0 00-.023-3.042c.008-1.357.595-2.087 3.727-4.235.112-.077 1.085-.74 1.386-.948 3.093-2.133 5.022-3.786 6.762-6.187 2.34-3.228 3.558-7.077 3.558-11.649 0-13.292-9.86-21.952-21.455-21.952-11.103 0-22.499 9.609-24.066 22.295a6.023 6.023 0 1011.956 1.477c.806-6.527 6.972-11.726 12.11-11.726 5.265 0 9.408 3.64 9.408 9.906 0 3.634-1.1 5.153-5.111 7.919l-1.362.93c-2.682 1.84-4.227 3.1-5.7 4.931-2.109 2.62-3.242 5.717-3.258 9.314.013.892.02 1.86.022 2.981a470.766 470.766 0 01-.022 4.943 6.023 6.023 0 1012.046.12l.003-.395zm-6.027 24.499a7.529 7.529 0 100-15.058 7.529 7.529 0 000 15.058z\"/></svg>"
},
"$:/core/images/home-button": {
"title": "$:/core/images/home-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-home-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112.985 119.502c.01-.165.015-.331.015-.499V67.568c3.137 2.948 8.076 2.884 11.134-.174a7.999 7.999 0 00-.002-11.316L70.396 2.343A7.978 7.978 0 0064.734 0a7.957 7.957 0 00-5.656 2.343L33 28.42V8.007C33 3.585 29.41 0 25 0c-4.418 0-8 3.59-8 8.007V44.42L5.342 56.078c-3.125 3.125-3.12 8.198-.002 11.316a7.999 7.999 0 0011.316-.003l.344-.343v52.945a8.11 8.11 0 000 .007c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8a8.11 8.11 0 00-.015-.498zM97 112V51.574L64.737 19.31 33 51.048V112h64z\"/></svg>"
},
"$:/core/images/import-button": {
"title": "$:/core/images/import-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-import-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M114.832 60.436s3.235-3.27 6.921.417c3.686 3.686.231 7.14.231 7.14l-42.153 42.92s-30.765 32.367-58.798 4.333C-7 87.213 24.59 55.623 24.59 55.623L67.363 12.85s22.725-24.6 43.587-3.738c20.862 20.862-3.96 43.09-3.96 43.09l-35.04 35.04S49.903 112.546 36.426 99.07c-13.476-13.477 11.83-35.523 11.83-35.523l35.04-35.04s3.902-3.902 7.78-.023c3.879 3.878.118 7.921.118 7.921l-35.04 35.04s-13.212 13.212-8.872 17.551c4.34 4.34 16.77-9.653 16.77-9.653l35.04-35.04s16.668-14.598 3.966-27.3c-13.893-13.892-27.565 3.702-27.565 3.702l-42.91 42.91s-23.698 23.698-3.658 43.738 43.012-4.385 43.012-4.385l42.895-42.533z\"/></svg>"
},
"$:/core/images/info-button": {
"title": "$:/core/images/info-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-info-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(.05)\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\"/><circle cx=\"64\" cy=\"32\" r=\"8\"/><rect width=\"16\" height=\"56\" x=\"56\" y=\"48\" rx=\"8\"/></g></svg>"
},
"$:/core/images/italic": {
"title": "$:/core/images/italic",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-italic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M66.711 0h22.41L62.408 128H40z\"/></svg>"
},
"$:/core/images/left-arrow": {
"title": "$:/core/images/left-arrow",
"created": "20150315234410875",
"modified": "20150315235324760",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-left-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 64.177c0-2.026.771-4.054 2.317-5.6l55.98-55.98a7.92 7.92 0 0111.195.001c3.086 3.085 3.092 8.104.001 11.195L19.111 64.175l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.086-8.105 3.092-11.196.001l-55.98-55.98A7.892 7.892 0 010 64.177z\"/></svg>"
},
"$:/core/images/line-width": {
"title": "$:/core/images/line-width",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-line-width tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M16 18h96a2 2 0 000-4H16a2 2 0 100 4zm0 17h96a4 4 0 100-8H16a4 4 0 100 8zm0 21h96a6 6 0 000-12H16a6 6 0 100 12zm0 29h96c5.523 0 10-4.477 10-10s-4.477-10-10-10H16c-5.523 0-10 4.477-10 10s4.477 10 10 10zm0 43h96c8.837 0 16-7.163 16-16s-7.163-16-16-16H16c-8.837 0-16 7.163-16 16s7.163 16 16 16z\"/></svg>"
},
"$:/core/images/link": {
"title": "$:/core/images/link",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-link tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M42.263 69.38a31.919 31.919 0 006.841 10.13c12.5 12.5 32.758 12.496 45.255 0l22.627-22.628c12.502-12.501 12.497-32.758 0-45.255-12.5-12.5-32.758-12.496-45.254 0L49.104 34.255a32.333 32.333 0 00-2.666 3.019 36.156 36.156 0 0121.94.334l14.663-14.663c6.25-6.25 16.382-6.254 22.632-.004 6.248 6.249 6.254 16.373-.004 22.631l-22.62 22.62c-6.25 6.25-16.381 6.254-22.631.004a15.93 15.93 0 01-4.428-8.433 11.948 11.948 0 00-7.59 3.48l-6.137 6.137z\"/><path d=\"M86.35 59.234a31.919 31.919 0 00-6.84-10.13c-12.5-12.5-32.758-12.497-45.255 0L11.627 71.732c-12.501 12.5-12.496 32.758 0 45.254 12.5 12.5 32.758 12.497 45.255 0L79.51 94.36a32.333 32.333 0 002.665-3.02 36.156 36.156 0 01-21.94-.333l-14.663 14.663c-6.25 6.25-16.381 6.253-22.63.004-6.25-6.249-6.255-16.374.003-22.632l22.62-22.62c6.25-6.25 16.381-6.253 22.631-.003a15.93 15.93 0 014.428 8.432 11.948 11.948 0 007.59-3.48l6.137-6.136z\"/></g></svg>"
},
"$:/core/images/linkify": {
"title": "$:/core/images/linkify",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-linkify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M17.031 31.919H9.048V96.85h7.983v6.92H0V25h17.031v6.919zm24.66 0h-7.983V96.85h7.983v6.92H24.66V25h17.03v6.919zM67.77 56.422l11.975-3.903 2.306 7.096-12.063 3.903 7.628 10.379-6.12 4.435-7.63-10.467-7.45 10.2-5.943-4.523L58.1 63.518 45.95 59.35l2.306-7.096 12.064 4.17V43.825h7.45v12.596zM86.31 96.85h7.982V31.92H86.31V25h17.031v78.77H86.31v-6.92zm24.659 0h7.983V31.92h-7.983V25H128v78.77h-17.031v-6.92z\"/></svg>"
},
"$:/core/images/list-bullet": {
"title": "$:/core/images/list-bullet",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-bullet tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M11.636 40.273c6.427 0 11.637-5.21 11.637-11.637C23.273 22.21 18.063 17 11.636 17 5.21 17 0 22.21 0 28.636c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.637 0-6.426-5.21-11.636-11.637-11.636C5.21 51.91 0 57.12 0 63.545c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.636 0-6.427-5.21-11.637-11.637-11.637C5.21 86.818 0 92.028 0 98.455c0 6.426 5.21 11.636 11.636 11.636zM34.91 22.818H128v11.637H34.91V22.818zm0 34.91H128v11.636H34.91V57.727zm0 34.908H128v11.637H34.91V92.636z\"/></svg>"
},
"$:/core/images/list-number": {
"title": "$:/core/images/list-number",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-number tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M33.84 22.356H128v11.77H33.84v-11.77zm0 35.31H128v11.77H33.84v-11.77zm0 35.311H128v11.77H33.84v-11.77zM.38 42.631v-2.223h.998c.826 0 1.445-.14 1.858-.42.413-.28.619-.948.619-2.002V22.769c0-1.442-.193-2.336-.58-2.683-.385-.347-1.477-.52-3.275-.52v-2.143c3.502-.147 6.252-.955 8.25-2.423h2.117v22.865c0 .921.15 1.575.449 1.963.3.387.949.58 1.948.58h.998v2.223H.38zm-.3 35.356v-1.902c7.19-6.554 10.786-12.58 10.786-18.08 0-1.562-.326-2.81-.979-3.744-.652-.934-1.524-1.402-2.616-1.402-.893 0-1.655.317-2.287.952-.633.634-.95 1.364-.95 2.192 0 .974.247 1.829.74 2.563.106.16.16.28.16.36 0 .147-.16.28-.48.4-.213.08-.752.308-1.618.681-.839.374-1.358.561-1.558.561-.24 0-.512-.37-.819-1.111A6.2 6.2 0 010 57.064c0-1.949.849-3.544 2.547-4.785 1.698-1.242 3.798-1.862 6.302-1.862 2.463 0 4.53.67 6.202 2.012 1.67 1.341 2.506 3.093 2.506 5.256a8.644 8.644 0 01-.849 3.724c-.566 1.201-1.92 3.053-4.064 5.556a165.471 165.471 0 01-6.272 6.938h11.445l-1.019 5.726h-2.117c.08-.28.12-.534.12-.76 0-.388-.1-.631-.3-.731-.2-.1-.599-.15-1.198-.15H.08zm12.124 19.207c1.745.04 3.236.637 4.474 1.792 1.239 1.154 1.858 2.773 1.858 4.855 0 2.99-1.132 5.393-3.396 7.208-2.263 1.815-5 2.723-8.209 2.723-2.01 0-3.669-.384-4.974-1.151C.652 111.853 0 110.849 0 109.607c0-.774.27-1.398.809-1.872.54-.474 1.128-.71 1.768-.71.639 0 1.162.2 1.568.6.406.4.782 1.055 1.128 1.962.466 1.268 1.239 1.902 2.317 1.902 1.265 0 2.287-.477 3.066-1.431.78-.955 1.169-2.686 1.169-5.196 0-1.709-.12-3.023-.36-3.944-.24-.921-.792-1.382-1.658-1.382-.586 0-1.185.307-1.797.921-.493.494-.932.741-1.319.741-.333 0-.602-.147-.809-.44-.206-.294-.31-.574-.31-.841 0-.32.104-.594.31-.821.207-.227.69-.594 1.449-1.102 2.876-1.922 4.314-4.017 4.314-6.287 0-1.188-.306-2.092-.919-2.713a3.001 3.001 0 00-2.217-.93c-.799 0-1.525.263-2.177.79-.653.528-.979 1.158-.979 1.892 0 .641.253 1.235.76 1.782.172.2.259.367.259.5 0 .121-.57.428-1.708.922-1.139.494-1.854.74-2.147.74-.413 0-.75-.333-1.009-1-.26-.668-.39-1.282-.39-1.842 0-1.749.93-3.224 2.787-4.425 1.858-1.202 3.965-1.802 6.322-1.802 2.064 0 3.851.447 5.363 1.341 1.511.895 2.267 2.116 2.267 3.664 0 1.362-.57 2.623-1.708 3.784a13.387 13.387 0 01-3.945 2.784z\"/></svg>"
},
"$:/core/images/list": {
"title": "$:/core/images/list",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M87.748 128H23.999c-4.418 0-7.999-3.59-7.999-8.007V8.007C16 3.585 19.588 0 24 0h80c4.419 0 8 3.59 8 8.007V104H91.25c-.965 0-1.84.392-2.473 1.025a3.476 3.476 0 00-1.029 2.476V128zm8-.12l15.88-15.88h-15.88v15.88zM40 15.508A3.502 3.502 0 0143.5 12h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 20h-55a3.498 3.498 0 01-3.5-3.509v-.982zM32 22a6 6 0 100-12 6 6 0 000 12zm8 9.509A3.502 3.502 0 0143.5 28h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 36h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 44h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 52h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 60h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 68h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 76h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 84h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 92h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 100h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.505 3.505 0 0143.497 108h33.006A3.497 3.497 0 0180 111.509v.982A3.505 3.505 0 0176.503 116H43.497A3.497 3.497 0 0140 112.491v-.982zM32 38a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12z\"/></svg>"
},
"$:/core/images/locked-padlock": {
"title": "$:/core/images/locked-padlock",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-locked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M96.472 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h8c.003-15.723.303-47.731 32.16-47.731 31.794 0 32.305 32.057 32.312 47.731zm-15.897 0H48.44c.002-16.287.142-32 15.719-32 15.684 0 16.977 16.136 16.415 32zM67.732 92.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"
},
"$:/core/images/mail": {
"title": "$:/core/images/mail",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mail tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M122.827 104.894a7.986 7.986 0 01-2.834.516H8.007c-.812 0-1.597-.12-2.335-.345l34.163-34.163 20.842 20.842a3.998 3.998 0 003.418 1.134 4.003 4.003 0 003.395-1.134L88.594 70.64c.075.09.155.176.24.26l33.993 33.994zm5.076-6.237c.064-.406.097-.823.097-1.247v-64c0-.669-.082-1.318-.237-1.94L94.23 65.006c.09.075.177.154.261.239l33.413 33.413zm-127.698.56A8.023 8.023 0 010 97.41v-64c0-.716.094-1.41.271-2.071l33.907 33.906L.205 99.218zM5.93 25.684a8.012 8.012 0 012.078-.273h111.986c.766 0 1.507.108 2.209.308L64.083 83.837 5.93 25.683z\"/></svg>"
},
"$:/core/images/menu-button": {
"title": "$:/core/images/menu-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-menu-button tc-image-button\" viewBox=\"0 0 128 128\"><rect width=\"128\" height=\"16\" y=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"56\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"96\" rx=\"8\"/></svg>"
},
"$:/core/images/mono-block": {
"title": "$:/core/images/mono-block",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-block tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M23.965 32.967h.357c.755 0 1.328.192 1.72.577.39.384.586.947.586 1.688 0 .824-.206 1.418-.618 1.782-.413.363-1.094.545-2.045.545h-6.31c-.965 0-1.65-.178-2.056-.535-.405-.356-.608-.954-.608-1.792 0-.811.203-1.391.608-1.74.406-.35 1.09-.525 2.055-.525h.734l-.86-2.453H8.471l-.902 2.453h.734c.95 0 1.632.178 2.044.535.413.356.619.933.619 1.73 0 .824-.206 1.418-.619 1.782-.412.363-1.094.545-2.044.545h-5.41c-.964 0-1.649-.182-2.054-.545-.406-.364-.608-.958-.608-1.782 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.719-.577h.356l5.62-15.641H6.835c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.95-.619-1.76 0-.825.207-1.42.619-1.783.412-.363 1.094-.545 2.044-.545h7.863c1.244 0 2.118.67 2.62 2.013v.063l6.647 18.2zM12.98 17.326l-3.04 8.848h6.08l-3.04-8.848zm22.402 9.372v6.395h3.145c2.223 0 3.788-.245 4.697-.734.908-.49 1.362-1.307 1.362-2.453 0-1.16-.433-1.985-1.3-2.474-.866-.49-2.383-.734-4.55-.734h-3.354zm10.693-2.327c1.524.559 2.642 1.324 3.355 2.295.713.972 1.07 2.212 1.07 3.722 0 1.272-.308 2.432-.923 3.48-.615 1.049-1.496 1.909-2.642 2.58a7.499 7.499 0 01-2.254.849c-.832.174-2.01.262-3.533.262H30.202c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.782 0-.741.189-1.304.566-1.688.378-.385.93-.577 1.657-.577h.356V17.326h-.356c-.727 0-1.28-.196-1.657-.587-.377-.392-.566-.965-.566-1.72 0-.81.203-1.401.608-1.771.406-.37 1.062-.556 1.971-.556h9.645c2.95 0 5.19.573 6.72 1.72 1.53 1.145 2.296 2.823 2.296 5.031 0 1.09-.234 2.052-.703 2.883-.468.832-1.163 1.513-2.086 2.045zM35.381 17.2v5.284h2.83c1.72 0 2.932-.203 3.638-.609.706-.405 1.06-1.09 1.06-2.054 0-.909-.319-1.573-.955-1.992-.636-.42-1.667-.63-3.093-.63h-3.48zm35.863-3.816c.28-.503.566-.86.86-1.07.293-.21.664-.314 1.111-.314.685 0 1.17.182 1.457.545.287.364.43.986.43 1.866l.042 5.452c0 .964-.157 1.614-.472 1.95-.314.335-.884.503-1.709.503-.587 0-1.037-.14-1.352-.42-.314-.28-.584-.796-.807-1.551-.364-1.328-.944-2.282-1.74-2.862-.797-.58-1.901-.87-3.313-.87-2.153 0-3.802.727-4.948 2.18-1.147 1.454-1.72 3.558-1.72 6.311 0 2.74.58 4.844 1.74 6.311 1.16 1.468 2.817 2.202 4.97 2.202 1.467 0 3.085-.49 4.854-1.468 1.768-.978 2.883-1.467 3.344-1.467.545 0 1.003.23 1.373.692.37.46.556 1.034.556 1.719 0 1.23-1.084 2.39-3.25 3.48-2.167 1.09-4.606 1.636-7.318 1.636-3.662 0-6.625-1.21-8.89-3.627-2.264-2.419-3.396-5.578-3.396-9.478 0-3.76 1.146-6.884 3.438-9.372 2.293-2.488 5.2-3.732 8.723-3.732.992 0 1.97.112 2.935.335.964.224 1.992.574 3.082 1.049zm10.22 19.583V17.326h-.356c-.755 0-1.328-.196-1.72-.587-.39-.392-.586-.965-.586-1.72 0-.81.21-1.401.629-1.771.42-.37 1.097-.556 2.034-.556h5.178c2.922 0 5.06.126 6.416.377 1.356.252 2.51.671 3.46 1.258 1.691 1.007 2.988 2.443 3.89 4.31.9 1.865 1.352 4.021 1.352 6.467 0 2.586-.514 4.847-1.541 6.783-1.028 1.936-2.485 3.4-4.372 4.393-.853.447-1.852.772-2.998.975-1.147.203-2.852.304-5.116.304h-6.269c-.965 0-1.65-.178-2.055-.535-.406-.356-.608-.954-.608-1.792 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.72-.577h.356zm5.41-15.725v15.725h1.195c2.642 0 4.592-.646 5.85-1.94 1.258-1.292 1.887-3.28 1.887-5.965 0-2.641-.64-4.612-1.918-5.912-1.28-1.3-3.205-1.95-5.777-1.95-.335 0-.59.003-.765.01a7.992 7.992 0 00-.472.032zm35.067-.126h-9.75v5.368h3.69v-.252c0-.797.175-1.39.524-1.782.35-.392.88-.587 1.594-.587.629 0 1.142.178 1.54.534.4.357.598.808.598 1.353 0 .028.007.118.021.272.014.154.021.308.021.462v4.34c0 .936-.167 1.607-.503 2.013-.335.405-.88.608-1.635.608-.713 0-1.251-.19-1.615-.567-.363-.377-.545-.936-.545-1.677v-.377h-3.69v6.269h9.75v-2.495c0-.937.178-1.608.534-2.013.357-.405.94-.608 1.75-.608.798 0 1.367.2 1.71.597.342.399.513 1.073.513 2.024v5.074c0 .755-.146 1.258-.44 1.51-.293.251-.873.377-1.74.377h-17.172c-.923 0-1.583-.182-1.982-.545-.398-.364-.597-.958-.597-1.782 0-.741.189-1.304.566-1.688.377-.385.93-.577 1.656-.577h.357V17.326h-.357c-.712 0-1.261-.2-1.646-.598-.384-.398-.576-.968-.576-1.709 0-.81.203-1.401.608-1.771.405-.37 1.062-.556 1.97-.556h17.173c.853 0 1.43.13 1.73.388.3.258.45.772.45 1.54v4.698c0 .95-.174 1.631-.524 2.044-.35.412-.915.618-1.698.618-.81 0-1.394-.21-1.75-.629-.357-.419-.535-1.097-.535-2.033v-2.202zM19.77 47.641c.267-.504.55-.86.85-1.07.3-.21.675-.314 1.122-.314.685 0 1.17.181 1.457.545.287.363.43.985.43 1.866l.042 5.451c0 .965-.157 1.615-.472 1.95-.314.336-.891.504-1.73.504-.587 0-1.045-.144-1.373-.43-.329-.287-.598-.8-.807-1.541-.378-1.342-.958-2.3-1.74-2.873-.783-.573-1.88-.86-3.292-.86-2.153 0-3.799.727-4.938 2.181-1.14 1.454-1.709 3.557-1.709 6.311s.598 4.882 1.793 6.385C10.599 67.248 12.294 68 14.488 68c.503 0 1.077-.06 1.72-.179a23.809 23.809 0 002.264-.555v-3.313h-2.37c-.95 0-1.624-.175-2.023-.524-.398-.35-.597-.93-.597-1.74 0-.84.199-1.437.597-1.793.399-.357 1.073-.535 2.024-.535h7.569c.978 0 1.667.175 2.065.524.398.35.598.937.598 1.762 0 .74-.2 1.31-.598 1.708-.398.399-.975.598-1.73.598h-.335v5.242c0 .447-.05.758-.147.933-.098.174-.293.353-.587.534-.797.476-2.062.895-3.795 1.258a25.576 25.576 0 01-5.263.546c-3.662 0-6.625-1.21-8.89-3.628-2.264-2.418-3.397-5.577-3.397-9.477 0-3.76 1.147-6.884 3.44-9.372 2.292-2.488 5.199-3.732 8.721-3.732.979 0 1.954.112 2.925.335.972.224 2.003.573 3.093 1.049zm15.84 3.941v4.823h6.857v-4.823h-.336c-.754 0-1.331-.195-1.73-.587-.398-.391-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.364 1.093-.545 2.044-.545h5.41c.95 0 1.624.181 2.023.545.398.363.597.957.597 1.782 0 .755-.192 1.328-.576 1.72-.385.39-.947.586-1.688.586h-.357v15.642h.357c.755 0 1.328.192 1.719.576.391.385.587.947.587 1.688 0 .825-.203 1.419-.608 1.782-.405.364-1.09.546-2.055.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.2-1.303.598-1.688.398-.384.975-.576 1.73-.576h.335v-6.186h-6.856v6.186h.335c.755 0 1.331.192 1.73.576.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.412.364-1.094.546-2.044.546h-5.41c-.964 0-1.65-.179-2.055-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.392-.384.965-.576 1.72-.576h.356V51.582h-.356c-.741 0-1.304-.195-1.688-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.073-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.335zm31.754 0v15.642h3.523c.95 0 1.632.178 2.044.534.412.357.618.933.618 1.73 0 .811-.21 1.402-.629 1.772-.419.37-1.097.556-2.033.556H58.433c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.957-.619-1.782 0-.81.203-1.39.608-1.74.406-.35 1.09-.524 2.055-.524h3.523V51.582h-3.523c-.95 0-1.632-.181-2.044-.545-.412-.363-.619-.95-.619-1.761 0-.825.203-1.412.608-1.761.406-.35 1.09-.524 2.055-.524h12.455c.992 0 1.684.174 2.075.524.392.35.587.936.587 1.761 0 .81-.202 1.398-.608 1.761-.405.364-1.09.545-2.054.545h-3.523zm30.496 0v11.994c0 1.873-.122 3.228-.367 4.067a5.876 5.876 0 01-1.227 2.244c-.74.852-1.768 1.495-3.082 1.929-1.314.433-2.893.65-4.738.65-1.3 0-2.555-.126-3.764-.378a16.843 16.843 0 01-3.491-1.132c-.615-.28-1.017-.643-1.206-1.09-.188-.448-.283-1.175-.283-2.18v-4.32c0-1.202.175-2.04.525-2.516.349-.475.957-.713 1.824-.713 1.244 0 1.929.915 2.054 2.747.014.321.035.566.063.733.168 1.622.545 2.73 1.133 3.324.587.594 1.523.89 2.81.89 1.593 0 2.714-.422 3.364-1.268.65-.845.975-2.386.975-4.623V51.582H88.93c-.95 0-1.632-.181-2.044-.545-.413-.363-.619-.95-.619-1.761 0-.825.2-1.412.598-1.761.398-.35 1.086-.524 2.065-.524h10.693c.979 0 1.667.174 2.065.524.399.35.598.936.598 1.761 0 .81-.206 1.398-.619 1.761-.412.364-1.093.545-2.044.545h-1.761zm14.644 0v6.353l6.48-6.478c-.728-.084-1.238-.29-1.531-.619-.294-.328-.44-.85-.44-1.562 0-.825.198-1.419.597-1.782.398-.364 1.073-.545 2.023-.545h5.137c.95 0 1.625.181 2.023.545.399.363.598.957.598 1.782 0 .769-.2 1.345-.598 1.73-.398.384-.982.576-1.75.576h-.483l-6.101 6.06c1.132.839 2.167 1.94 3.103 3.302.937 1.363 2.034 3.456 3.292 6.28h.692c.825 0 1.44.188 1.845.566.405.377.608.943.608 1.698 0 .825-.206 1.419-.619 1.782-.412.364-1.093.546-2.044.546h-2.579c-1.132 0-2.048-.762-2.746-2.286-.126-.28-.224-.503-.294-.67-.923-1.958-1.768-3.467-2.537-4.53a16.616 16.616 0 00-2.705-2.914l-1.97 1.887v3.92h.335c.755 0 1.331.193 1.73.577.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.413.364-1.094.546-2.045.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.391-.384.965-.576 1.72-.576h.356V51.582h-.357c-.74 0-1.303-.195-1.687-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.072-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.336zM13.44 96.326l4.005-11.889c.251-.782.6-1.352 1.048-1.709.447-.356 1.041-.534 1.782-.534h3.271c.95 0 1.632.182 2.044.545.413.363.619.957.619 1.782 0 .755-.2 1.328-.598 1.72-.398.39-.975.587-1.73.587h-.335l.587 15.641h.357c.754 0 1.32.192 1.698.577.377.384.566.947.566 1.687 0 .825-.2 1.42-.598 1.783-.398.363-1.072.545-2.023.545h-4.718c-.95 0-1.624-.178-2.023-.535-.398-.356-.597-.954-.597-1.793 0-.74.192-1.303.576-1.687.385-.385.954-.577 1.709-.577h.335l-.293-12.79-3.061 9.52c-.224.712-.542 1.226-.954 1.54-.413.315-.982.472-1.709.472-.727 0-1.303-.157-1.73-.472-.426-.314-.751-.828-.975-1.54l-3.04-9.52-.294 12.79h.336c.755 0 1.324.192 1.709.577.384.384.576.947.576 1.687 0 .825-.202 1.42-.608 1.783-.405.363-1.076.545-2.013.545H2.621c-.937 0-1.608-.182-2.013-.545-.405-.364-.608-.958-.608-1.783 0-.74.192-1.303.577-1.687.384-.385.954-.577 1.708-.577h.336l.608-15.641h-.336c-.754 0-1.331-.196-1.73-.588-.398-.39-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.363 1.093-.545 2.044-.545h3.27c.728 0 1.311.175 1.752.524.44.35.8.923 1.08 1.72l4.109 11.888zm30.454 2.054V86.828H42.74c-.922 0-1.583-.182-1.981-.546-.398-.363-.598-.95-.598-1.76 0-.812.2-1.402.598-1.773.398-.37 1.059-.555 1.981-.555h5.955c.909 0 1.566.185 1.97.555.406.37.609.961.609 1.772 0 .741-.192 1.31-.577 1.709-.384.398-.933.598-1.646.598h-.356v19.038c0 .657-.07 1.069-.21 1.237-.14.167-.454.251-.943.251h-2.097c-.67 0-1.143-.07-1.415-.21-.273-.14-.507-.384-.703-.733l-8.722-15.327v11.385h1.216c.909 0 1.559.175 1.95.524.392.35.587.93.587 1.74 0 .825-.199 1.42-.597 1.783-.399.363-1.045.545-1.94.545h-6.017c-.909 0-1.566-.182-1.971-.545-.406-.364-.608-.958-.608-1.783 0-.74.188-1.303.566-1.687.377-.385.936-.577 1.677-.577h.336V86.828h-.336c-.713 0-1.265-.2-1.656-.598-.392-.398-.587-.968-.587-1.709 0-.81.206-1.401.618-1.772.413-.37 1.066-.555 1.96-.555h3.44c.824 0 1.383.108 1.677.325.293.216.622.653.985 1.31l7.989 14.551zM64.66 86.366c-1.803 0-3.218.727-4.245 2.18-1.028 1.455-1.541 3.474-1.541 6.06 0 2.586.517 4.613 1.551 6.08 1.034 1.468 2.446 2.202 4.235 2.202 1.804 0 3.222-.73 4.257-2.19 1.034-1.461 1.551-3.492 1.551-6.092 0-2.586-.513-4.605-1.54-6.06-1.028-1.453-2.45-2.18-4.268-2.18zm0-4.864c3.44 0 6.27 1.23 8.492 3.69 2.223 2.46 3.334 5.598 3.334 9.414 0 3.844-1.104 6.99-3.313 9.436-2.208 2.446-5.046 3.669-8.513 3.669-3.424 0-6.255-1.234-8.491-3.701-2.237-2.467-3.355-5.602-3.355-9.404 0-3.83 1.108-6.971 3.323-9.424 2.216-2.454 5.057-3.68 8.523-3.68zM87.461 98.17v4.298h2.16c.908 0 1.555.175 1.94.524.384.35.576.93.576 1.74 0 .825-.196 1.42-.587 1.783-.392.363-1.035.545-1.93.545h-7.254c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.783 0-.74.189-1.303.566-1.687.378-.385.93-.577 1.657-.577h.356V86.828h-.356c-.713 0-1.262-.2-1.646-.598-.385-.398-.577-.968-.577-1.709 0-.81.203-1.401.608-1.772.406-.37 1.063-.555 1.971-.555h8.66c3.424 0 6.014.657 7.768 1.97 1.754 1.315 2.631 3.25 2.631 5.809 0 2.697-.873 4.738-2.62 6.122-1.748 1.384-4.34 2.076-7.78 2.076h-3.564zm0-11.343v6.625h2.977c1.65 0 2.89-.28 3.722-.839.832-.559 1.248-1.397 1.248-2.516 0-1.048-.43-1.855-1.29-2.421-.86-.566-2.086-.85-3.68-.85h-2.977zm27.267 20.568l-1.636 1.636a12.37 12.37 0 011.772-.44c.58-.098 1.15-.147 1.709-.147 1.104 0 2.268.164 3.491.492 1.223.329 1.967.493 2.233.493.447 0 1.03-.15 1.75-.45.72-.301 1.206-.452 1.458-.452.517 0 .947.2 1.29.598.342.398.513.898.513 1.5 0 .796-.472 1.474-1.415 2.033-.944.56-2.1.839-3.47.839-.937 0-2.139-.22-3.607-.66-1.467-.441-2.53-.661-3.187-.661-.992 0-2.11.272-3.354.817-1.244.546-2.013.818-2.307.818a2.14 2.14 0 01-1.53-.597c-.42-.399-.63-.878-.63-1.437 0-.391.134-.807.4-1.247.265-.44.733-1.01 1.404-1.709l2.118-2.139c-2.335-.852-4.194-2.386-5.578-4.602-1.384-2.215-2.075-4.763-2.075-7.642 0-3.802 1.104-6.909 3.312-9.32 2.209-2.411 5.053-3.617 8.534-3.617 3.467 0 6.304 1.209 8.513 3.627 2.208 2.418 3.312 5.522 3.312 9.31 0 3.774-1.097 6.884-3.291 9.33-2.195 2.446-4.977 3.67-8.345 3.67a22.5 22.5 0 01-1.384-.043zm1.195-21.03c-1.803 0-3.218.727-4.246 2.18-1.027 1.455-1.54 3.474-1.54 6.06 0 2.586.516 4.613 1.55 6.08 1.035 1.468 2.447 2.202 4.236 2.202 1.803 0 3.222-.73 4.256-2.19 1.035-1.461 1.552-3.492 1.552-6.092 0-2.586-.514-4.605-1.541-6.06-1.028-1.453-2.45-2.18-4.267-2.18z\"/></svg>"
},
"$:/core/images/mono-line": {
"title": "$:/core/images/mono-line",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-line tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.437 84.523h.908c1.922 0 3.381.489 4.378 1.468.997.979 1.495 2.411 1.495 4.298 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388h-16.07c-2.456 0-4.2-.454-5.232-1.361-1.032-.908-1.548-2.43-1.548-4.565 0-2.065.516-3.542 1.548-4.432 1.032-.89 2.776-1.334 5.232-1.334h1.869l-2.19-6.247H20.983l-2.296 6.247h1.87c2.42 0 4.155.453 5.205 1.361 1.05.908 1.575 2.376 1.575 4.405 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388H6.781c-2.456 0-4.2-.463-5.233-1.388C.516 93.9 0 92.389 0 90.289c0-1.887.498-3.32 1.495-4.298.997-.979 2.456-1.468 4.378-1.468h.908l14.308-39.83h-4.271c-2.42 0-4.156-.462-5.206-1.387-1.05-.926-1.575-2.42-1.575-4.485 0-2.1.525-3.613 1.575-4.538 1.05-.926 2.785-1.388 5.206-1.388h20.021c3.168 0 5.392 1.708 6.674 5.125v.16l16.924 46.343zm-27.976-39.83L24.72 67.225h15.483l-7.742-22.53zM89.506 68.56v16.284h8.008c5.66 0 9.646-.623 11.96-1.869 2.313-1.245 3.47-3.328 3.47-6.246 0-2.955-1.103-5.055-3.31-6.3-2.207-1.246-6.069-1.869-11.586-1.869h-8.542zm27.229-5.926c3.88 1.423 6.727 3.372 8.542 5.846 1.815 2.474 2.723 5.633 2.723 9.477 0 3.239-.783 6.193-2.35 8.862-1.565 2.67-3.808 4.859-6.726 6.567-1.709.997-3.622 1.718-5.74 2.163-2.118.445-5.116.667-8.996.667h-27.87c-2.349 0-4.03-.463-5.045-1.388-1.014-.926-1.521-2.438-1.521-4.538 0-1.887.48-3.32 1.441-4.298.961-.979 2.367-1.468 4.218-1.468h.907v-39.83h-.907c-1.851 0-3.257-.498-4.218-1.494-.961-.997-1.441-2.456-1.441-4.378 0-2.065.516-3.568 1.548-4.512 1.032-.943 2.705-1.414 5.018-1.414h24.56c7.51 0 13.214 1.459 17.111 4.377 3.898 2.92 5.847 7.19 5.847 12.814 0 2.776-.597 5.223-1.789 7.341-1.192 2.118-2.963 3.853-5.312 5.206zm-27.23-18.26v13.455h7.208c4.378 0 7.466-.516 9.264-1.549 1.797-1.032 2.696-2.776 2.696-5.232 0-2.313-.81-4.004-2.43-5.072-1.619-1.068-4.244-1.602-7.874-1.602h-8.863z\"/></svg>"
},
"$:/core/images/new-button": {
"title": "$:/core/images/new-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 72H8.007C3.591 72 0 68.418 0 64c0-4.41 3.585-8 8.007-8H56V8.007C56 3.591 59.582 0 64 0c4.41 0 8 3.585 8 8.007V56h47.993c4.416 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H72v47.993c0 4.416-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V72z\"/></svg>"
},
"$:/core/images/new-here-button": {
"title": "$:/core/images/new-here-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-here-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.838 20.935l-3.572.938c-3.688.968-8.23 4.43-10.136 7.731L3.37 96.738c-1.905 3.3-.771 7.524 2.534 9.432l33.717 19.466c3.297 1.904 7.53.78 9.435-2.521l38.76-67.134c1.905-3.3 2.632-8.963 1.623-12.646L83.285 20.88c-1.009-3.68-4.821-5.884-8.513-4.915l-7.603 1.995.043.287c.524 3.394 2.053 7.498 4.18 11.55.418.163.829.36 1.23.59a8.864 8.864 0 014.438 8.169c.104.132.21.264.316.395l-.386.318a8.663 8.663 0 01-1.082 3.137c-2.42 4.192-7.816 5.608-12.051 3.163-4.12-2.379-5.624-7.534-3.476-11.671-2.177-4.394-3.788-8.874-4.543-12.964z\"/><path d=\"M69.554 44.76c-5.944-7.476-10.74-17.196-11.955-25.059-1.68-10.875 3.503-18.216 15.082-18.04 10.407.158 19.975 5.851 24.728 13.785 5.208 8.695 2.95 17.868-6.855 20.496l-2.037-7.601c4.232-1.134 4.999-4.248 2.24-8.853-3.37-5.626-10.465-9.848-18.146-9.965-6.392-.097-8.31 2.62-7.323 9.01.999 6.465 5.318 15.138 10.582 21.65l-.072.06c.559 1.553-4.17 6.44-5.938 4.888l-.005.004-.028-.034a1.323 1.323 0 01-.124-.135 2.618 2.618 0 01-.149-.205z\"/><rect width=\"16\" height=\"48\" x=\"96\" y=\"80\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"80\" y=\"96\" rx=\"8\"/></g></svg>"
},
"$:/core/images/new-image-button": {
"title": "$:/core/images/new-image-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-image-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.362 73.627l15.826-27.41a2.626 2.626 0 00-.962-3.59l-50.01-28.872a2.626 2.626 0 00-3.588.961L30.058 36.49l10.04-5.261c3.042-1.595 6.771.114 7.55 3.46l3.607 17.702 9.88.85a5.25 5.25 0 014.571 3.77c.034.115.1.344.199.671.165.553.353 1.172.562 1.843.595 1.914 1.23 3.85 1.872 5.678.207.588.412 1.156.614 1.701.625 1.685 1.209 3.114 1.725 4.207.255.54.485.977.726 1.427.214.212.547.425 1.011.622 1.141.482 2.784.74 4.657.758.864.008 1.71-.034 2.492-.11.448-.043.753-.085.871-.104.315-.053.625-.077.927-.076zM37.47 2.649A5.257 5.257 0 0144.649.725l63.645 36.746a5.257 5.257 0 011.923 7.178L73.47 108.294a5.257 5.257 0 01-7.177 1.923L2.649 73.47a5.257 5.257 0 01-1.924-7.177L37.471 2.649zm42.837 50.49a5.25 5.25 0 105.25-9.092 5.25 5.25 0 00-5.25 9.093zM96 112h-7.993c-4.419 0-8.007-3.582-8.007-8 0-4.41 3.585-8 8.007-8H96v-7.993C96 83.588 99.582 80 104 80c4.41 0 8 3.585 8 8.007V96h7.993c4.419 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H112v7.993c0 4.419-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V112zM33.347 51.791c7.428 7.948 9.01 10.69 7.449 13.394-1.56 2.703-13.838-2.328-16.094 1.58-2.256 3.908-.907 3.258-2.437 5.908l19.73 11.39s-5.605-8.255-4.235-10.628c2.515-4.356 8.77-1.256 10.365-4.019 2.414-4.181-5.103-9.639-14.778-17.625z\"/></svg>"
},
"$:/core/images/new-journal-button": {
"title": "$:/core/images/new-journal-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-journal-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.545 112.818v11.818c0 1.306 1.086 2.364 2.425 2.364h6.06c1.34 0 2.425-1.058 2.425-2.364v-11.818h12.12c1.34 0 2.425-1.058 2.425-2.363v-5.91c0-1.305-1.085-2.363-2.424-2.363h-12.121V90.364c0-1.306-1.086-2.364-2.425-2.364h-6.06c-1.34 0-2.425 1.058-2.425 2.364v11.818h-12.12c-1.34 0-2.425 1.058-2.425 2.363v5.91c0 1.305 1.085 2.363 2.424 2.363h12.121zM60.016 4.965c-4.781-2.76-10.897-1.118-13.656 3.66L5.553 79.305A9.993 9.993 0 009.21 92.963l51.04 29.468c4.78 2.76 10.897 1.118 13.655-3.66l40.808-70.681a9.993 9.993 0 00-3.658-13.656L60.016 4.965zm-3.567 27.963a6 6 0 106-10.393 6 6 0 00-6 10.393zm31.697 17.928a6 6 0 106-10.392 6 6 0 00-6 10.392z\"/><text class=\"tc-fill-background\" font-family=\"Helvetica\" font-size=\"47.172\" font-weight=\"bold\" transform=\"rotate(30 25.742 95.82)\"><tspan x=\"42\" y=\"77.485\" text-anchor=\"middle\"><<now \"DD\">></tspan></text></g></svg>"
},
"$:/core/images/opacity": {
"title": "$:/core/images/opacity",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-opacity tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.362 65a51.595 51.595 0 01-1.942 6H82.584a35.867 35.867 0 002.997-6h16.78zm.472-2c.423-1.961.734-3.963.929-6H87.656a35.78 35.78 0 01-1.368 6h16.546zm-3.249 10a51.847 51.847 0 01-3.135 6H75.812a36.205 36.205 0 005.432-6h18.341zm-4.416 8c-1.424 2.116-3 4.12-4.71 6H60.46a35.843 35.843 0 0012.874-6h21.834zm-7.513-34h16.107C101.247 20.627 79.033 0 52 0 23.281 0 0 23.281 0 52c0 25.228 17.965 46.26 41.8 51h20.4a51.66 51.66 0 0015.875-6H39v-2h42.25a52.257 52.257 0 007.288-6H39v-2h4.539C27.739 83.194 16 68.968 16 52c0-19.882 16.118-36 36-36 18.186 0 33.222 13.484 35.656 31zm.22 2h16.039a52.823 52.823 0 010 6H87.877a36.483 36.483 0 000-6z\"/><path d=\"M76 128c28.719 0 52-23.281 52-52s-23.281-52-52-52-52 23.281-52 52 23.281 52 52 52zm0-16c19.882 0 36-16.118 36-36S95.882 40 76 40 40 56.118 40 76s16.118 36 36 36z\"/><path d=\"M37 58h53v4H37v-4zm3-8h53v4H40v-4zm0-8h53v4H40v-4zm-8 24h53v4H32v-4zm-2 8h53v4H30v-4zm-3 8h53v4H27v-4z\"/></g></svg>"
},
"$:/core/images/open-window": {
"title": "$:/core/images/open-window",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-open-window tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M16 112h88.994c3.87 0 7.006 3.59 7.006 8 0 4.418-3.142 8-7.006 8H7.006C3.136 128 0 124.41 0 120a9.321 9.321 0 010-.01V24.01C0 19.586 3.59 16 8 16c4.418 0 8 3.584 8 8.01V112z\"/><path d=\"M96 43.196V56a8 8 0 1016 0V24c0-4.41-3.585-8-8.007-8H72.007C67.588 16 64 19.582 64 24c0 4.41 3.585 8 8.007 8H84.57l-36.3 36.299a8 8 0 00-.001 11.316c3.117 3.117 8.19 3.123 11.316-.003L96 43.196zM32 7.999C32 3.581 35.588 0 40 0h80c4.419 0 8 3.588 8 8v80c0 4.419-3.588 8-8 8H40c-4.419 0-8-3.588-8-8V8z\"/></g></svg>"
},
"$:/core/images/options-button": {
"title": "$:/core/images/options-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-options-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M110.488 76a47.712 47.712 0 01-5.134 12.384l6.724 6.724c3.123 3.123 3.132 8.192.011 11.313l-5.668 5.668c-3.12 3.12-8.186 3.117-11.313-.01l-6.724-6.725c-3.82 2.258-7.98 4-12.384 5.134v9.505c0 4.417-3.578 8.007-7.992 8.007h-8.016C55.58 128 52 124.415 52 119.993v-9.505a47.712 47.712 0 01-12.384-5.134l-6.724 6.725c-3.123 3.122-8.192 3.131-11.313.01l-5.668-5.668c-3.12-3.12-3.116-8.186.01-11.313l6.725-6.724c-2.257-3.82-4-7.98-5.134-12.384H8.007C3.591 76 0 72.422 0 68.01v-8.017C0 55.58 3.585 52 8.007 52h9.505a47.712 47.712 0 015.134-12.383l-6.724-6.725c-3.123-3.122-3.132-8.191-.011-11.312l5.668-5.669c3.12-3.12 8.186-3.116 11.313.01l6.724 6.725c3.82-2.257 7.98-4 12.384-5.134V8.007C52 3.591 55.578 0 59.992 0h8.016C72.42 0 76 3.585 76 8.007v9.505a47.712 47.712 0 0112.384 5.134l6.724-6.724c3.123-3.123 8.192-3.132 11.313-.01l5.668 5.668c3.12 3.12 3.116 8.186-.01 11.312l-6.725 6.725c2.257 3.82 4 7.979 5.134 12.383h9.505c4.416 0 8.007 3.578 8.007 7.992v8.017c0 4.411-3.585 7.991-8.007 7.991h-9.505zM64 96c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/></svg>"
},
"$:/core/images/paint": {
"title": "$:/core/images/paint",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-paint tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M83.527 76.19C90.43 69.287 91.892 59 87.91 50.665l37.903-37.902c2.919-2.92 2.913-7.659 0-10.572a7.474 7.474 0 00-10.572 0L77.338 40.093c-8.335-3.982-18.622-2.521-25.526 4.383l31.715 31.715zm-2.643 2.644L49.169 47.119S8.506 81.243 0 80.282c0 0 3.782 5.592 6.827 8.039 14.024-5.69 37.326-24.6 37.326-24.6l.661.66S19.45 90.222 9.18 92.047c1.222 1.44 4.354 4.053 6.247 5.776 5.417-1.488 34.733-28.57 34.733-28.57l.661.66-32.407 31.022 5.285 5.286L56.106 75.2l.662.66s-27.864 30.536-28.684 32.432c0 0 6.032 6.853 7.569 7.824.702-2.836 27.884-33.485 27.884-33.485l.661.66s-20.597 23.755-24.964 36.732c3.21 3.549 7.5 5.137 10.926 6.298-2.19-11.817 30.724-47.487 30.724-47.487z\"/></svg>"
},
"$:/core/images/palette": {
"title": "$:/core/images/palette",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-palette tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.247 39.182a93.52 93.52 0 00-16.228-1.4C28.662 37.781 0 57.131 0 81.002c0 9.642 4.676 18.546 12.58 25.735C23.504 91.19 26.34 72.395 36.89 63.562c15.183-12.713 26.538-7.828 26.538-7.828l16.82-16.552zm26.535 9.655c13.049 7.913 21.257 19.392 21.257 32.166 0 9.35.519 17.411-11.874 25.08-10.797 6.681-3.824-6.536-11.844-10.898s-19.946 1.308-18.213 7.906c3.2 12.181 19.422 11.455 6.314 16.658-13.107 5.202-18.202 4.476-28.403 4.476-7.821 0-15.315-.947-22.243-2.68 9.844-4.197 27.88-12.539 33.354-19.456C82.788 92.409 87.37 80 83.324 72.484c-.194-.359 11.215-11.668 23.458-23.647zM1.134 123.867l-.66.002c33.479-14.94 22.161-64.226 58.818-64.226.317 1.418.644 2.944 1.062 4.494-25.907-4.166-23.567 48.031-59.22 59.73zm.713-.007c38.872-.506 78.152-22.347 78.152-44.813-9.27 0-14.073-3.48-16.816-7.942-16.597-7.003-30.365 45.715-61.336 52.755zm65.351-64.008c-4.45 4.115 4.886 16.433 11.318 11.318l45.27-45.27c11.317-11.318 0-22.635-11.318-11.318-11.317 11.318-33.518 34.405-45.27 45.27z\"/></svg>"
},
"$:/core/images/permalink-button": {
"title": "$:/core/images/permalink-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permalink-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.483 48l-7.387 32h-25.58l7.388-32h25.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L100.598 32h3.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-7.096l-7.387 32H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H85.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L69.402 96h-25.58L38.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L27.402 96h-3.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h7.096l7.387-32H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h18.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L58.598 32h25.58z\"/></svg>"
},
"$:/core/images/permaview-button": {
"title": "$:/core/images/permaview-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permaview-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.483 48l-1.846 8h-5.58l1.847-8h5.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L101.598 32h2.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-6.096l-1.847 8h7.944c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H92.364l-1.846 8H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H86.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L70.402 96h-5.58L59.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L48.402 96h-5.58L37.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L26.402 96h-2.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h6.096l1.847-8h-7.944C19.59 72 16 68.418 16 64c0-4.41 3.581-8 8-8h11.637l1.846-8H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h17.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L57.598 32h5.58L68.8 7.642c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L79.598 32h5.58zM53.904 48l-1.847 8h5.58l1.846-8h-5.579zm22.039 24l-1.847 8h-5.58l1.847-8h5.58zm-27.58 0l-1.846 8h5.579l1.847-8h-5.58z\"/></svg>"
},
"$:/core/images/picture": {
"title": "$:/core/images/picture",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-picture tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112 68.233v-48.23A4.001 4.001 0 00107.997 16H20.003A4.001 4.001 0 0016 20.003v38.31l9.241-14.593c2.8-4.422 9.023-5.008 12.6-1.186l18.247 20.613 13.687-6.407a8 8 0 018.903 1.492 264.97 264.97 0 002.92 2.739 249.44 249.44 0 006.798 6.066 166.5 166.5 0 002.106 1.778c2.108 1.747 3.967 3.188 5.482 4.237.748.518 1.383.92 2.044 1.33.444.117 1.046.144 1.809.05 1.873-.233 4.238-1.144 6.723-2.547a36.016 36.016 0 003.205-2.044c.558-.4.93-.686 1.07-.802.376-.31.765-.577 1.165-.806zM0 8.007A8.01 8.01 0 018.007 0h111.986A8.01 8.01 0 01128 8.007v111.986a8.01 8.01 0 01-8.007 8.007H8.007A8.01 8.01 0 010 119.993V8.007zM95 42a8 8 0 100-16 8 8 0 000 16zM32 76c15.859 4.83 20.035 7.244 20.035 12S32 95.471 32 102.347c0 6.876 1.285 4.99 1.285 9.653H68s-13.685-6.625-13.685-10.8c0-7.665 10.615-8.34 10.615-13.2 0-7.357-14.078-8.833-32.93-12z\"/></svg>"
},
"$:/core/images/plugin-generic-language": {
"title": "$:/core/images/plugin-generic-language",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M61.207 68.137c-4.324 2.795-6.999 6.656-6.999 10.921 0 7.906 9.19 14.424 21.042 15.336 2.162 3.902 8.598 6.785 16.318 7.01-5.126-1.125-9.117-3.742-10.62-7.01C92.805 93.487 102 86.967 102 79.059c0-8.53-10.699-15.445-23.896-15.445-6.599 0-12.572 1.729-16.897 4.524zm12.794-14.158c-4.324 2.795-10.298 4.524-16.897 4.524-2.619 0-5.14-.272-7.497-.775-3.312 2.25-8.383 3.69-14.067 3.69l-.255-.002c4.119-.892 7.511-2.747 9.478-5.13-6.925-2.704-11.555-7.617-11.555-13.228 0-8.53 10.699-15.445 23.896-15.445C70.301 27.613 81 34.528 81 43.058c0 4.265-2.675 8.126-6.999 10.921zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></svg>"
},
"$:/core/images/plugin-generic-plugin": {
"title": "$:/core/images/plugin-generic-plugin",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M40.397 76.446V95.34h14.12l-.001-.005a6.912 6.912 0 005.364-11.593l.046-.023a6.912 6.912 0 119.979.526l.086.055a6.914 6.914 0 004.408 10.948l-.023.092h21.32V75.568l-.15.038a6.912 6.912 0 00-11.593-5.364l-.022-.046a6.912 6.912 0 11.526-9.979l.055-.086a6.914 6.914 0 0010.948-4.408c.079.018.158.038.236.059v-15.74h-21.32l.023-.094a6.914 6.914 0 01-4.408-10.947 10.23 10.23 0 00-.086-.055 6.912 6.912 0 10-9.979-.526l-.046.023a6.912 6.912 0 01-5.364 11.593l.001.005h-14.12v12.847A6.912 6.912 0 0129.5 59.843l-.054.086a6.912 6.912 0 10-.526 9.979l.023.046a6.912 6.912 0 0111.455 6.492zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></svg>"
},
"$:/core/images/plugin-generic-theme": {
"title": "$:/core/images/plugin-generic-theme",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M29.408 91.472L51.469 69.41l-.004-.005a2.22 2.22 0 01.004-3.146c.87-.87 2.281-.872 3.147-.005l9.465 9.464a2.22 2.22 0 01-.005 3.147c-.87.87-2.28.871-3.147.005l-.005-.005-22.061 22.062a6.686 6.686 0 11-9.455-9.455zM60.802 66.38c-2.436-2.704-4.465-5.091-5.817-6.869-6.855-9.014-10.313-4.268-14.226 0-3.913 4.268 1.03 7.726-2.683 10.741-3.713 3.015-3.484 4.06-9.752-1.455-6.267-5.516-6.7-7.034-3.823-10.181 2.877-3.147 5.281 1.808 11.159-3.785 5.877-5.593.94-10.55.94-10.55s12.237-25.014 28.588-23.167c16.351 1.848-6.186-2.392-11.792 17.226-2.4 8.4.447 6.42 4.998 9.968 1.394 1.086 6.03 4.401 11.794 8.685l20.677-20.676 1.615-4.766 7.84-4.689 3.151 3.152-4.688 7.84-4.766 1.615-20.224 20.223c12.663 9.547 28.312 22.146 28.312 26.709 0 7.217-3.071 11.526-9.535 9.164-4.693-1.715-18.768-15.192-28.753-25.897l-2.893 2.893-3.151-3.152 3.029-3.029zM63.953 0l54.56 32v64l-54.56 32-54.56-32V32l54.56-32z\"/></svg>"
},
"$:/core/images/preview-closed": {
"title": "$:/core/images/preview-closed",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-closed tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M.088 64a7.144 7.144 0 001.378 5.458C16.246 88.818 39.17 100.414 64 100.414c24.83 0 47.753-11.596 62.534-30.956A7.144 7.144 0 00127.912 64C110.582 78.416 88.304 87.086 64 87.086 39.696 87.086 17.418 78.416.088 64z\"/><rect width=\"4\" height=\"16\" x=\"62\" y=\"96\" rx=\"4\"/><rect width=\"4\" height=\"16\" x=\"78\" y=\"93\" rx=\"4\" transform=\"rotate(-5 80 101)\"/><rect width=\"4\" height=\"16\" x=\"46\" y=\"93\" rx=\"4\" transform=\"rotate(5 48 101)\"/><rect width=\"4\" height=\"16\" x=\"30\" y=\"88\" rx=\"4\" transform=\"rotate(10 32 96)\"/><rect width=\"4\" height=\"16\" x=\"94\" y=\"88\" rx=\"4\" transform=\"rotate(-10 96 96)\"/><rect width=\"4\" height=\"16\" x=\"110\" y=\"80\" rx=\"4\" transform=\"rotate(-20 112 88)\"/><rect width=\"4\" height=\"16\" x=\"14\" y=\"80\" rx=\"4\" transform=\"rotate(20 16 88)\"/></g></svg>"
},
"$:/core/images/preview-open": {
"title": "$:/core/images/preview-open",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-open tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.11 99.588c-24.83 0-47.754-11.596-62.534-30.957a7.148 7.148 0 010-8.675C16.356 40.596 39.28 29 64.11 29c24.83 0 47.753 11.596 62.534 30.956a7.148 7.148 0 010 8.675c-14.78 19.36-37.703 30.957-62.534 30.957zm46.104-32.007c1.44-1.524 1.44-3.638 0-5.162C99.326 50.9 82.439 44 64.147 44S28.968 50.9 18.08 62.42c-1.44 1.523-1.44 3.637 0 5.16C28.968 79.1 45.855 86 64.147 86s35.179-6.9 46.067-18.42z\"/><path d=\"M63.5 88C76.479 88 87 77.479 87 64.5S76.479 41 63.5 41 40 51.521 40 64.5 50.521 88 63.5 88z\"/></g></svg>"
},
"$:/core/images/print-button": {
"title": "$:/core/images/print-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-print-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M112 71V30.5h-.032c-.035-2-.816-3.99-2.343-5.516L86.998 2.357A7.978 7.978 0 0081 .02V0H24a8 8 0 00-8 8v63h8V8h57v14.5c0 4.422 3.582 8 8 8h15V71h8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/><path d=\"M0 80.005C0 71.165 7.156 64 16 64h96c8.836 0 16 7.155 16 16.005v31.99c0 8.84-7.156 16.005-16 16.005H16c-8.836 0-16-7.155-16-16.005v-31.99zM104 96a8 8 0 100-16 8 8 0 000 16z\"/></g></svg>"
},
"$:/core/images/quote": {
"title": "$:/core/images/quote",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-quote tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M51.219 117.713V62.199H27.427c0-8.891 1.683-16.401 5.047-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.36 3.184-20.728 6.669-6.368 3.484-11.835 7.87-16.401 13.157C9.524 27.113 5.98 33.241 3.456 40.21.933 47.18-.21 54.63.03 62.56v55.153H51.22zm76.781 0V62.199h-23.791c0-8.891 1.682-16.401 5.046-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.359 3.184-20.727 6.669-6.369 3.484-11.836 7.87-16.402 13.157-4.566 5.287-8.11 11.415-10.634 18.384-2.523 6.97-3.665 14.42-3.424 22.35v55.153H128z\"/></svg>"
},
"$:/core/images/refresh-button": {
"title": "$:/core/images/refresh-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-refresh-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M106.369 39.433c10.16 20.879 6.57 46.764-10.771 64.106-21.87 21.87-57.327 21.87-79.196 0-21.87-21.87-21.87-57.326 0-79.196a8 8 0 1111.314 11.314c-15.621 15.62-15.621 40.947 0 56.568 15.62 15.621 40.947 15.621 56.568 0C97.72 78.79 99.6 58.175 89.924 42.73l-6.44 12.264a8 8 0 11-14.166-7.437L84.435 18.76a8 8 0 0110.838-3.345l28.873 15.345a8 8 0 11-7.51 14.129l-10.267-5.457zm-8.222-12.368c-.167-.19-.336-.38-.506-.57l.96-.296-.454.866z\"/></svg>"
},
"$:/core/images/right-arrow": {
"title": "$:/core/images/right-arrow",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-right-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M99.069 64.173c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></svg>"
},
"$:/core/images/rotate-left": {
"title": "$:/core/images/rotate-left",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-rotate-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"32\" height=\"80\" rx=\"8\"/><rect width=\"80\" height=\"32\" x=\"48\" y=\"96\" rx=\"8\"/><path d=\"M61.32 36.65c19.743 2.45 35.023 19.287 35.023 39.693a4 4 0 01-8 0c0-15.663-11.254-28.698-26.117-31.46l3.916 3.916a4 4 0 11-5.657 5.657L49.172 43.142a4 4 0 010-5.657l11.313-11.313a4 4 0 115.657 5.656l-4.821 4.822z\"/></g></svg>"
},
"$:/core/images/save-button": {
"title": "$:/core/images/save-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-save-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M120.783 34.33c4.641 8.862 7.266 18.948 7.266 29.646 0 35.347-28.653 64-64 64-35.346 0-64-28.653-64-64 0-35.346 28.654-64 64-64 18.808 0 35.72 8.113 47.43 21.03l2.68-2.68c3.13-3.13 8.197-3.132 11.321-.008 3.118 3.118 3.121 8.193-.007 11.32l-4.69 4.691zm-12.058 12.058a47.876 47.876 0 013.324 17.588c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48c14.39 0 27.3 6.332 36.098 16.362L58.941 73.544 41.976 56.578c-3.127-3.127-8.201-3.123-11.32-.005-3.123 3.124-3.119 8.194.006 11.319l22.617 22.617a7.992 7.992 0 005.659 2.347c2.05 0 4.101-.783 5.667-2.349l44.12-44.12z\"/></svg>"
},
"$:/core/images/size": {
"title": "$:/core/images/size",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-size tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M92.343 26l-9.171 9.172a4 4 0 105.656 5.656l16-16a4 4 0 000-5.656l-16-16a4 4 0 10-5.656 5.656L92.343 18H22a4 4 0 00-4 4v70.343l-9.172-9.171a4 4 0 10-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656L26 92.343V22l-4 4h70.343zM112 52v64l4-4H52a4 4 0 100 8h64a4 4 0 004-4V52a4 4 0 10-8 0z\"/></svg>"
},
"$:/core/images/spiral": {
"title": "$:/core/images/spiral",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-spiral tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M64.534 68.348c3.39 0 6.097-2.62 6.476-5.968l-4.755-.538 4.75.583c.377-3.07-1.194-6.054-3.89-7.78-2.757-1.773-6.34-2.01-9.566-.7-3.46 1.403-6.14 4.392-7.35 8.148l-.01.026c-1.3 4.08-.72 8.64 1.58 12.52 2.5 4.2 6.77 7.2 11.76 8.27 5.37 1.15 11.11-.05 15.83-3.31 5.04-3.51 8.46-9.02 9.45-15.3 1.05-6.7-.72-13.63-4.92-19.19l.02.02c-4.42-5.93-11.2-9.82-18.78-10.78-7.96-1.01-16.13 1.31-22.59 6.43-6.81 5.39-11.18 13.41-12.11 22.26-.98 9.27 1.87 18.65 7.93 26.02 6.32 7.69 15.6 12.56 25.74 13.48 10.54.96 21.15-2.42 29.45-9.4l.01-.01c8.58-7.25 13.94-17.78 14.86-29.21.94-11.84-2.96-23.69-10.86-32.9-8.19-9.5-19.95-15.36-32.69-16.27-13.16-.94-26.24 3.49-36.34 12.34l.01-.01c-10.41 9.08-16.78 22.1-17.68 36.15-.93 14.44 4.03 28.77 13.79 39.78 10.03 11.32 24.28 18.2 39.6 19.09 15.73.92 31.31-4.56 43.24-15.234 12.23-10.954 19.61-26.44 20.5-43.074a4.785 4.785 0 00-4.52-5.03 4.778 4.778 0 00-5.03 4.52c-.75 14.1-7 27.2-17.33 36.45-10.03 8.98-23.11 13.58-36.3 12.81-12.79-.75-24.67-6.48-33-15.89-8.07-9.11-12.17-20.94-11.41-32.827.74-11.52 5.942-22.15 14.43-29.54l.01-.01c8.18-7.17 18.74-10.75 29.35-9.998 10.21.726 19.6 5.41 26.11 12.96 6.24 7.273 9.32 16.61 8.573 25.894-.718 8.9-4.88 17.064-11.504 22.66l.01-.007c-6.36 5.342-14.44 7.92-22.425 7.19-7.604-.68-14.52-4.314-19.21-10.027-4.44-5.4-6.517-12.23-5.806-18.94.67-6.3 3.76-11.977 8.54-15.766 4.46-3.54 10.05-5.128 15.44-4.44 5.03.63 9.46 3.18 12.32 7.01l.02.024c2.65 3.5 3.75 7.814 3.1 11.92-.59 3.71-2.58 6.925-5.45 8.924-2.56 1.767-5.61 2.403-8.38 1.81-2.42-.516-4.42-1.92-5.53-3.79-.93-1.56-1.15-3.3-.69-4.75l-4.56-1.446L59.325 65c.36-1.12 1.068-1.905 1.84-2.22.25-.103.48-.14.668-.13.06.006.11.015.14.025.01 0 .01 0-.01-.01a1.047 1.047 0 01-.264-.332c-.15-.29-.23-.678-.18-1.11l-.005.04c.15-1.332 1.38-2.523 3.035-2.523-2.65 0-4.79 2.144-4.79 4.787s2.14 4.785 4.78 4.785z\"/></svg>"
},
"$:/core/images/stamp": {
"title": "$:/core/images/stamp",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-stamp tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M49.733 64H16.01C11.584 64 8 67.583 8 72.003V97h112V72.003A8 8 0 00111.99 64H78.267A22.813 22.813 0 0175.5 53.077c0-6.475 2.687-12.324 7.009-16.497A22.818 22.818 0 0087 22.952C87 10.276 76.703 0 64 0S41 10.276 41 22.952c0 5.103 1.669 9.817 4.491 13.628 4.322 4.173 7.009 10.022 7.009 16.497 0 3.954-1.002 7.675-2.767 10.923zM8 104h112v8H8v-8z\"/></svg>"
},
"$:/core/images/star-filled": {
"title": "$:/core/images/star-filled",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-star-filled tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M61.836 96.823l37.327 27.287c2.72 1.99 6.379-.69 5.343-3.912L90.29 75.988l-1.26 3.91 37.285-27.345c2.718-1.993 1.32-6.327-2.041-6.33l-46.113-.036 3.3 2.416L67.176 4.416c-1.04-3.221-5.563-3.221-6.604 0L46.29 48.603l3.3-2.416-46.113.036c-3.362.003-4.759 4.337-2.04 6.33L38.72 79.898l-1.26-3.91-14.216 44.21c-1.036 3.223 2.622 5.901 5.343 3.912l37.326-27.287h-4.078z\"/></svg>"
},
"$:/core/images/storyview-classic": {
"title": "$:/core/images/storyview-classic",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-classic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm0 48C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0 32C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"
},
"$:/core/images/storyview-pop": {
"title": "$:/core/images/storyview-pop",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-pop tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm-7.99 40C11.587 56 8 59.578 8 63.992v16.016C8 84.422 11.584 88 16.01 88h95.98c4.424 0 8.01-3.578 8.01-7.992V63.992c0-4.414-3.584-7.992-8.01-7.992H16.01zM24 96C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0-32C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"
},
"$:/core/images/storyview-zoomin": {
"title": "$:/core/images/storyview-zoomin",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-zoomin tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16A8 8 0 0016 24.009V71.99C16 76.414 19.588 80 24 80h80a8 8 0 008-8.009V24.01c0-4.423-3.588-8.009-8-8.009H24z\"/></svg>"
},
"$:/core/images/strikethrough": {
"title": "$:/core/images/strikethrough",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-strikethrough tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M92.794 38.726h15.422c-.229-6.74-1.514-12.538-3.856-17.393-2.342-4.855-5.54-8.881-9.596-12.08-4.055-3.199-8.767-5.54-14.136-7.025C75.258.743 69.433 0 63.15 0a62.76 62.76 0 00-16.364 2.142C41.474 3.57 36.733 5.74 32.564 8.653c-4.17 2.913-7.511 6.626-10.025 11.138-2.513 4.512-3.77 9.853-3.77 16.022 0 5.597 1.115 10.252 3.342 13.965 2.228 3.712 5.198 6.74 8.91 9.081 3.713 2.342 7.911 4.227 12.595 5.655a194.641 194.641 0 0014.308 3.77c4.855 1.085 9.624 2.142 14.308 3.17 4.683 1.028 8.881 2.37 12.594 4.027 3.713 1.656 6.683 3.798 8.91 6.425 2.228 2.628 3.342 6.055 3.342 10.281 0 4.456-.914 8.111-2.742 10.967a19.953 19.953 0 01-7.197 6.768c-2.97 1.657-6.311 2.828-10.024 3.513a60.771 60.771 0 01-11.052 1.028c-4.57 0-9.025-.571-13.366-1.713-4.34-1.143-8.139-2.913-11.394-5.312-3.256-2.4-5.884-5.455-7.883-9.168-1.999-3.712-2.998-8.139-2.998-13.28H15c0 7.426 1.342 13.852 4.027 19.278 2.684 5.426 6.34 9.881 10.966 13.365 4.627 3.484 9.996 6.083 16.107 7.797 6.112 1.713 12.595 2.57 19.449 2.57 5.597 0 11.223-.657 16.878-1.97 5.655-1.314 10.767-3.428 15.336-6.34 4.57-2.914 8.31-6.683 11.224-11.31 2.913-4.626 4.37-10.195 4.37-16.707 0-6.054-1.115-11.08-3.342-15.079-2.228-3.998-5.198-7.31-8.91-9.938-3.713-2.627-7.911-4.712-12.595-6.254a170.83 170.83 0 00-14.308-4.027 549.669 549.669 0 00-14.308-3.17c-4.683-.971-8.881-2.2-12.594-3.684-3.713-1.485-6.683-3.399-8.91-5.74-2.228-2.342-3.342-5.398-3.342-9.168 0-3.998.771-7.34 2.313-10.024 1.543-2.685 3.599-4.826 6.17-6.426 2.57-1.599 5.51-2.741 8.824-3.427a49.767 49.767 0 0110.11-1.028c8.453 0 15.393 1.97 20.819 5.912 5.426 3.94 8.596 10.31 9.51 19.106z\"/><path d=\"M5 54h118v16H5z\"/></g></svg>"
},
"$:/core/images/subscript": {
"title": "$:/core/images/subscript",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-subscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 128.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"
},
"$:/core/images/superscript": {
"title": "$:/core/images/superscript",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-superscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 63.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"
},
"$:/core/images/tag-button": {
"title": "$:/core/images/tag-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tag-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M18.164 47.66l.004 4.105c.003 3.823 2.19 9.097 4.885 11.792l61.85 61.85c2.697 2.697 7.068 2.69 9.769-.01L125.767 94.3a6.903 6.903 0 00.01-9.77L63.928 22.683c-2.697-2.697-7.976-4.88-11.796-4.881l-27.076-.007a6.902 6.902 0 00-6.91 6.91l.008 9.96.287.033c3.73.411 8.489-.044 13.365-1.153a9.702 9.702 0 0111.14-3.662l.291-.13.128.285a9.7 9.7 0 013.3 2.17c3.796 3.796 3.801 9.945.012 13.734-3.618 3.618-9.386 3.777-13.204.482-5.365 1.122-10.674 1.596-15.309 1.237z\"/><path d=\"M47.633 39.532l.023.051c-9.689 4.356-21.584 6.799-30.396 5.828C5.273 44.089-1.028 36.43 2.443 24.078 5.562 12.976 14.3 4.361 24.047 1.548c10.68-3.083 19.749 1.968 19.749 13.225h-8.623c0-4.859-3.078-6.573-8.735-4.94-6.91 1.995-13.392 8.383-15.694 16.577-1.915 6.818.417 9.653 7.46 10.43 7.126.785 17.531-1.352 25.917-5.121l.027.06.036-.017c1.76-.758 6.266 6.549 3.524 7.74a2.8 2.8 0 01-.075.03z\"/></g></svg>"
},
"$:/core/images/theme-button": {
"title": "$:/core/images/theme-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-theme-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.854 66.945a122.626 122.626 0 01-3.9-4.819c-11.064-14.548-16.645-6.888-22.96 0-6.315 6.888 1.664 12.47-4.33 17.335-5.993 4.866-5.623 6.552-15.737-2.35-10.115-8.9-10.815-11.351-6.172-16.43 4.644-5.08 8.524 2.918 18.01-6.108 9.485-9.026 1.517-17.026 1.517-17.026S42.03-2.824 68.42.157c26.39 2.982-9.984-3.86-19.031 27.801-3.874 13.556.72 10.362 8.066 16.087 1.707 1.33 6.428 4.732 12.671 9.318-6.129 5.879-11.157 10.669-14.273 13.582zm11.641 12.947c16.013 17.036 37.742 37.726 45.117 40.42 10.432 3.813 15.388-3.141 15.388-14.79 0-7.151-23.83-26.542-43.924-41.769-7.408 7.156-13.376 12.953-16.58 16.139z\"/><path d=\"M11.069 109.828L46.31 74.587a3.56 3.56 0 115.037-5.032l15.098 15.098a3.56 3.56 0 11-5.032 5.037l-35.24 35.241c-4.171 4.17-10.933 4.17-15.104 0-4.17-4.17-4.17-10.933 0-15.103zM124.344 6.622l5.034 5.034-7.49 12.524-7.613 2.58L61.413 79.62l-5.034-5.034 52.861-52.862 2.58-7.614 12.524-7.49z\"/></g></svg>"
},
"$:/core/images/timestamp-off": {
"title": "$:/core/images/timestamp-off",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-off tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10a5 5 0 010-10H66.69a5 5 0 015 5c.006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M58.25 35.88c-18.777 0-33.998 15.224-33.998 33.998 0 18.773 15.22 34.002 33.998 34.002 18.784 0 34.002-15.23 34.002-34.002 0-18.774-15.218-33.998-34.002-33.998zm-3.03 50.123H44.196v-34H55.22v34zm16.976 0H61.17v-34h11.025v34z\"/></g></svg>"
},
"$:/core/images/timestamp-on": {
"title": "$:/core/images/timestamp-on",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-on tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10a5 5 0 010-10H66.69a5 5 0 015 5c.006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M13.41 27.178a5.005 5.005 0 01-7.045-.613 5.008 5.008 0 01.616-7.047l9.95-8.348a5 5 0 016.429 7.661l-9.95 8.348zm89.573 0a5.005 5.005 0 007.045-.613 5.008 5.008 0 00-.616-7.047l-9.95-8.348a5 5 0 00-6.428 7.661l9.95 8.348zM65.097 71.072c0 3.826-3.09 6.928-6.897 6.928-3.804.006-6.9-3.102-6.903-6.928 0 0 4.76-39.072 6.903-39.072s6.897 39.072 6.897 39.072z\"/></g></svg>"
},
"$:/core/images/tip": {
"title": "$:/core/images/tip",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tip tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128.242c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64 0 35.346 28.654 64 64 64zm11.936-36.789c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349C54.33 94.05 58.824 95.82 64 95.82c5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.456c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zM64.3 24.242c11.618 0 23.699 7.82 23.699 24.2S75.92 71.754 75.92 83.576c0 5.873-5.868 9.26-11.92 9.26s-12.027-3.006-12.027-9.26C51.973 71.147 40 65.47 40 48.442s12.683-24.2 24.301-24.2z\"/></svg>"
},
"$:/core/images/transcludify": {
"title": "$:/core/images/transcludify",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-transcludify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M0 59.482c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 002.75-.932 6.762 6.762 0 002.306-1.907c.651-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 00-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 00-2.75-1.02C1.36 67.377.591 67.288 0 67.288v-7.806zm24.66 0c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 002.75-.932 6.762 6.762 0 002.306-1.907c.65-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 00-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 00-2.75-1.02c-.946-.177-1.715-.266-2.306-.266v-7.806zm43.965-3.538L80.6 52.041l2.306 7.097-12.063 3.903 7.628 10.378-6.12 4.435-7.63-10.467-7.45 10.201-5.943-4.524 7.628-10.023-12.152-4.17 2.306-7.096 12.064 4.17V43.347h7.451v12.596zm34.425 11.344c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 00-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 00.71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 00-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 002.262 2.084 8.868 8.868 0 002.75 1.02c.946.177 1.745.266 2.395.266v7.806zm24.66 0c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 00-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 00.71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 00-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 002.262 2.084 8.868 8.868 0 002.75 1.02c.946.177 1.745.266 2.395.266v7.806z\"/></svg>"
},
"$:/core/images/twitter": {
"title": "$:/core/images/twitter",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-twitter tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.626 115.803A73.376 73.376 0 012 104.235c2.022.238 4.08.36 6.166.36 12.111 0 23.258-4.117 32.105-11.023-11.312-.208-20.859-7.653-24.148-17.883a25.98 25.98 0 0011.674-.441C15.971 72.881 7.061 62.474 7.061 49.997c0-.108 0-.216.002-.323a25.824 25.824 0 0011.709 3.22c-6.936-4.617-11.5-12.5-11.5-21.433 0-4.719 1.274-9.142 3.5-12.945 12.75 15.579 31.797 25.83 53.281 26.904-.44-1.884-.67-3.85-.67-5.868 0-14.22 11.575-25.75 25.852-25.75a25.865 25.865 0 0118.869 8.132 51.892 51.892 0 0016.415-6.248c-1.93 6.012-6.029 11.059-11.366 14.246A51.844 51.844 0 00128 25.878a52.428 52.428 0 01-12.9 13.33c.05 1.104.075 2.214.075 3.33 0 34.028-26 73.265-73.549 73.265\"/></svg>"
},
"$:/core/images/underline": {
"title": "$:/core/images/underline",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-underline tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M7 117.421h114.248V128H7v-10.579zm97.871-18.525V0h-16.26v55.856c0 4.463-.605 8.576-1.816 12.338-1.212 3.762-3.03 7.046-5.452 9.851-2.423 2.806-5.452 4.974-9.086 6.504-3.635 1.53-7.939 2.296-12.912 2.296-6.25 0-11.159-1.786-14.73-5.356-3.57-3.571-5.356-8.417-5.356-14.538V0H23v65.038c0 5.356.542 10.234 1.626 14.633 1.084 4.4 2.965 8.194 5.643 11.382 2.678 3.188 6.185 5.643 10.52 7.365 4.337 1.721 9.756 2.582 16.26 2.582 7.27 0 13.582-1.435 18.938-4.304 5.356-2.87 9.755-7.365 13.199-13.486h.382v15.686h15.303z\"/></svg>"
},
"$:/core/images/unfold-all-button": {
"title": "$:/core/images/unfold-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M63.945 60.624c-2.05 0-4.101-.78-5.666-2.345L35.662 35.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 41.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 58.279a7.986 7.986 0 01-5.663 2.346zM64.004 124.565c-2.05 0-4.102-.78-5.666-2.345L35.721 99.603c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 105.255l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.662 122.22a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/unfold-button": {
"title": "$:/core/images/unfold-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M63.945 63.624c-2.05 0-4.101-.78-5.666-2.345L35.662 38.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 44.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 61.279a7.986 7.986 0 01-5.663 2.346zM64.004 105.682c-2.05.001-4.102-.78-5.666-2.344L35.721 80.721c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 86.373l16.966-16.966c3.124-3.125 8.194-3.13 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319l-22.617 22.617a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/unlocked-padlock": {
"title": "$:/core/images/unlocked-padlock",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unlocked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M48.627 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h6.136c-10.455-12.651-27.364-35.788-4.3-55.142 24.636-20.672 45.835 4.353 55.777 16.201 9.943 11.85-2.676 22.437-12.457 9.892-9.78-12.545-21.167-24.146-33.207-14.043-12.041 10.104-1.757 22.36 8.813 34.958 2.467 2.94 3.641 5.732 3.865 8.134zm19.105 28.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"
},
"$:/core/images/up-arrow": {
"title": "$:/core/images/up-arrow",
"created": "20150316000544368",
"modified": "20150316000831867",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-up-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M63.892.281c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.104 3.092-11.196 0L63.894 19.393 13.513 69.774a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98A7.892 7.892 0 0163.893.28z\"/></svg>"
},
"$:/core/images/video": {
"title": "$:/core/images/video",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-video tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 12c-34.91 0-55.273 2.917-58.182 5.833C2.91 20.75 0 41.167 0 64.5c0 23.333 2.91 43.75 5.818 46.667C8.728 114.083 29.091 117 64 117c34.91 0 55.273-2.917 58.182-5.833C125.09 108.25 128 87.833 128 64.5c0-23.333-2.91-43.75-5.818-46.667C119.272 14.917 98.909 12 64 12zm-9.084 32.618c-3.813-2.542-6.905-.879-6.905 3.698v31.368c0 4.585 3.099 6.235 6.905 3.698l22.168-14.779c3.813-2.542 3.806-6.669 0-9.206L54.916 44.618z\"/></svg>"
},
"$:/core/images/warning": {
"title": "$:/core/images/warning",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-warning tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M57.072 11c3.079-5.333 10.777-5.333 13.856 0l55.426 96c3.079 5.333-.77 12-6.928 12H8.574c-6.158 0-10.007-6.667-6.928-12l55.426-96zM64 37c-4.418 0-8 3.582-8 7.994v28.012C56 77.421 59.59 81 64 81c4.418 0 8-3.582 8-7.994V44.994C72 40.579 68.41 37 64 37zm0 67a8 8 0 100-16 8 8 0 000 16z\"/></svg>"
},
"$:/language/Buttons/AdvancedSearch/Caption": {
"title": "$:/language/Buttons/AdvancedSearch/Caption",
"text": "advanced search"
},
"$:/language/Buttons/AdvancedSearch/Hint": {
"title": "$:/language/Buttons/AdvancedSearch/Hint",
"text": "Advanced search"
},
"$:/language/Buttons/Cancel/Caption": {
"title": "$:/language/Buttons/Cancel/Caption",
"text": "cancel"
},
"$:/language/Buttons/Cancel/Hint": {
"title": "$:/language/Buttons/Cancel/Hint",
"text": "Discard changes to this tiddler"
},
"$:/language/Buttons/Clone/Caption": {
"title": "$:/language/Buttons/Clone/Caption",
"text": "clone"
},
"$:/language/Buttons/Clone/Hint": {
"title": "$:/language/Buttons/Clone/Hint",
"text": "Clone this tiddler"
},
"$:/language/Buttons/Close/Caption": {
"title": "$:/language/Buttons/Close/Caption",
"text": "close"
},
"$:/language/Buttons/Close/Hint": {
"title": "$:/language/Buttons/Close/Hint",
"text": "Close this tiddler"
},
"$:/language/Buttons/CloseAll/Caption": {
"title": "$:/language/Buttons/CloseAll/Caption",
"text": "close all"
},
"$:/language/Buttons/CloseAll/Hint": {
"title": "$:/language/Buttons/CloseAll/Hint",
"text": "Close all tiddlers"
},
"$:/language/Buttons/CloseOthers/Caption": {
"title": "$:/language/Buttons/CloseOthers/Caption",
"text": "close others"
},
"$:/language/Buttons/CloseOthers/Hint": {
"title": "$:/language/Buttons/CloseOthers/Hint",
"text": "Close other tiddlers"
},
"$:/language/Buttons/ControlPanel/Caption": {
"title": "$:/language/Buttons/ControlPanel/Caption",
"text": "control panel"
},
"$:/language/Buttons/ControlPanel/Hint": {
"title": "$:/language/Buttons/ControlPanel/Hint",
"text": "Open control panel"
},
"$:/language/Buttons/CopyToClipboard/Caption": {
"title": "$:/language/Buttons/CopyToClipboard/Caption",
"text": "copy to clipboard"
},
"$:/language/Buttons/CopyToClipboard/Hint": {
"title": "$:/language/Buttons/CopyToClipboard/Hint",
"text": "Copy this text to the clipboard"
},
"$:/language/Buttons/Delete/Caption": {
"title": "$:/language/Buttons/Delete/Caption",
"text": "delete"
},
"$:/language/Buttons/Delete/Hint": {
"title": "$:/language/Buttons/Delete/Hint",
"text": "Delete this tiddler"
},
"$:/language/Buttons/Edit/Caption": {
"title": "$:/language/Buttons/Edit/Caption",
"text": "edit"
},
"$:/language/Buttons/Edit/Hint": {
"title": "$:/language/Buttons/Edit/Hint",
"text": "Edit this tiddler"
},
"$:/language/Buttons/Encryption/Caption": {
"title": "$:/language/Buttons/Encryption/Caption",
"text": "encryption"
},
"$:/language/Buttons/Encryption/Hint": {
"title": "$:/language/Buttons/Encryption/Hint",
"text": "Set or clear a password for saving this wiki"
},
"$:/language/Buttons/Encryption/ClearPassword/Caption": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Caption",
"text": "clear password"
},
"$:/language/Buttons/Encryption/ClearPassword/Hint": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Hint",
"text": "Clear the password and save this wiki without encryption"
},
"$:/language/Buttons/Encryption/SetPassword/Caption": {
"title": "$:/language/Buttons/Encryption/SetPassword/Caption",
"text": "set password"
},
"$:/language/Buttons/Encryption/SetPassword/Hint": {
"title": "$:/language/Buttons/Encryption/SetPassword/Hint",
"text": "Set a password for saving this wiki with encryption"
},
"$:/language/Buttons/ExportPage/Caption": {
"title": "$:/language/Buttons/ExportPage/Caption",
"text": "export all"
},
"$:/language/Buttons/ExportPage/Hint": {
"title": "$:/language/Buttons/ExportPage/Hint",
"text": "Export all tiddlers"
},
"$:/language/Buttons/ExportTiddler/Caption": {
"title": "$:/language/Buttons/ExportTiddler/Caption",
"text": "export tiddler"
},
"$:/language/Buttons/ExportTiddler/Hint": {
"title": "$:/language/Buttons/ExportTiddler/Hint",
"text": "Export tiddler"
},
"$:/language/Buttons/ExportTiddlers/Caption": {
"title": "$:/language/Buttons/ExportTiddlers/Caption",
"text": "export tiddlers"
},
"$:/language/Buttons/ExportTiddlers/Hint": {
"title": "$:/language/Buttons/ExportTiddlers/Hint",
"text": "Export tiddlers"
},
"$:/language/Buttons/SidebarSearch/Hint": {
"title": "$:/language/Buttons/SidebarSearch/Hint",
"text": "Select the sidebar search field"
},
"$:/language/Buttons/Fold/Caption": {
"title": "$:/language/Buttons/Fold/Caption",
"text": "fold tiddler"
},
"$:/language/Buttons/Fold/Hint": {
"title": "$:/language/Buttons/Fold/Hint",
"text": "Fold the body of this tiddler"
},
"$:/language/Buttons/Fold/FoldBar/Caption": {
"title": "$:/language/Buttons/Fold/FoldBar/Caption",
"text": "fold-bar"
},
"$:/language/Buttons/Fold/FoldBar/Hint": {
"title": "$:/language/Buttons/Fold/FoldBar/Hint",
"text": "Optional bars to fold and unfold tiddlers"
},
"$:/language/Buttons/Unfold/Caption": {
"title": "$:/language/Buttons/Unfold/Caption",
"text": "unfold tiddler"
},
"$:/language/Buttons/Unfold/Hint": {
"title": "$:/language/Buttons/Unfold/Hint",
"text": "Unfold the body of this tiddler"
},
"$:/language/Buttons/FoldOthers/Caption": {
"title": "$:/language/Buttons/FoldOthers/Caption",
"text": "fold other tiddlers"
},
"$:/language/Buttons/FoldOthers/Hint": {
"title": "$:/language/Buttons/FoldOthers/Hint",
"text": "Fold the bodies of other opened tiddlers"
},
"$:/language/Buttons/FoldAll/Caption": {
"title": "$:/language/Buttons/FoldAll/Caption",
"text": "fold all tiddlers"
},
"$:/language/Buttons/FoldAll/Hint": {
"title": "$:/language/Buttons/FoldAll/Hint",
"text": "Fold the bodies of all opened tiddlers"
},
"$:/language/Buttons/UnfoldAll/Caption": {
"title": "$:/language/Buttons/UnfoldAll/Caption",
"text": "unfold all tiddlers"
},
"$:/language/Buttons/UnfoldAll/Hint": {
"title": "$:/language/Buttons/UnfoldAll/Hint",
"text": "Unfold the bodies of all opened tiddlers"
},
"$:/language/Buttons/FullScreen/Caption": {
"title": "$:/language/Buttons/FullScreen/Caption",
"text": "full-screen"
},
"$:/language/Buttons/FullScreen/Hint": {
"title": "$:/language/Buttons/FullScreen/Hint",
"text": "Enter or leave full-screen mode"
},
"$:/language/Buttons/Help/Caption": {
"title": "$:/language/Buttons/Help/Caption",
"text": "help"
},
"$:/language/Buttons/Help/Hint": {
"title": "$:/language/Buttons/Help/Hint",
"text": "Show help panel"
},
"$:/language/Buttons/Import/Caption": {
"title": "$:/language/Buttons/Import/Caption",
"text": "import"
},
"$:/language/Buttons/Import/Hint": {
"title": "$:/language/Buttons/Import/Hint",
"text": "Import many types of file including text, image, TiddlyWiki or JSON"
},
"$:/language/Buttons/Info/Caption": {
"title": "$:/language/Buttons/Info/Caption",
"text": "info"
},
"$:/language/Buttons/Info/Hint": {
"title": "$:/language/Buttons/Info/Hint",
"text": "Show information for this tiddler"
},
"$:/language/Buttons/Home/Caption": {
"title": "$:/language/Buttons/Home/Caption",
"text": "home"
},
"$:/language/Buttons/Home/Hint": {
"title": "$:/language/Buttons/Home/Hint",
"text": "Open the default tiddlers"
},
"$:/language/Buttons/Language/Caption": {
"title": "$:/language/Buttons/Language/Caption",
"text": "language"
},
"$:/language/Buttons/Language/Hint": {
"title": "$:/language/Buttons/Language/Hint",
"text": "Choose the user interface language"
},
"$:/language/Buttons/Manager/Caption": {
"title": "$:/language/Buttons/Manager/Caption",
"text": "tiddler manager"
},
"$:/language/Buttons/Manager/Hint": {
"title": "$:/language/Buttons/Manager/Hint",
"text": "Open tiddler manager"
},
"$:/language/Buttons/More/Caption": {
"title": "$:/language/Buttons/More/Caption",
"text": "more"
},
"$:/language/Buttons/More/Hint": {
"title": "$:/language/Buttons/More/Hint",
"text": "More actions"
},
"$:/language/Buttons/NewHere/Caption": {
"title": "$:/language/Buttons/NewHere/Caption",
"text": "new here"
},
"$:/language/Buttons/NewHere/Hint": {
"title": "$:/language/Buttons/NewHere/Hint",
"text": "Create a new tiddler tagged with this one"
},
"$:/language/Buttons/NewJournal/Caption": {
"title": "$:/language/Buttons/NewJournal/Caption",
"text": "new journal"
},
"$:/language/Buttons/NewJournal/Hint": {
"title": "$:/language/Buttons/NewJournal/Hint",
"text": "Create a new journal tiddler"
},
"$:/language/Buttons/NewJournalHere/Caption": {
"title": "$:/language/Buttons/NewJournalHere/Caption",
"text": "new journal here"
},
"$:/language/Buttons/NewJournalHere/Hint": {
"title": "$:/language/Buttons/NewJournalHere/Hint",
"text": "Create a new journal tiddler tagged with this one"
},
"$:/language/Buttons/NewImage/Caption": {
"title": "$:/language/Buttons/NewImage/Caption",
"text": "new image"
},
"$:/language/Buttons/NewImage/Hint": {
"title": "$:/language/Buttons/NewImage/Hint",
"text": "Create a new image tiddler"
},
"$:/language/Buttons/NewMarkdown/Caption": {
"title": "$:/language/Buttons/NewMarkdown/Caption",
"text": "new Markdown tiddler"
},
"$:/language/Buttons/NewMarkdown/Hint": {
"title": "$:/language/Buttons/NewMarkdown/Hint",
"text": "Create a new Markdown tiddler"
},
"$:/language/Buttons/NewTiddler/Caption": {
"title": "$:/language/Buttons/NewTiddler/Caption",
"text": "new tiddler"
},
"$:/language/Buttons/NewTiddler/Hint": {
"title": "$:/language/Buttons/NewTiddler/Hint",
"text": "Create a new tiddler"
},
"$:/language/Buttons/OpenWindow/Caption": {
"title": "$:/language/Buttons/OpenWindow/Caption",
"text": "open in new window"
},
"$:/language/Buttons/OpenWindow/Hint": {
"title": "$:/language/Buttons/OpenWindow/Hint",
"text": "Open tiddler in new window"
},
"$:/language/Buttons/Palette/Caption": {
"title": "$:/language/Buttons/Palette/Caption",
"text": "palette"
},
"$:/language/Buttons/Palette/Hint": {
"title": "$:/language/Buttons/Palette/Hint",
"text": "Choose the colour palette"
},
"$:/language/Buttons/Permalink/Caption": {
"title": "$:/language/Buttons/Permalink/Caption",
"text": "permalink"
},
"$:/language/Buttons/Permalink/Hint": {
"title": "$:/language/Buttons/Permalink/Hint",
"text": "Set browser address bar to a direct link to this tiddler"
},
"$:/language/Buttons/Permaview/Caption": {
"title": "$:/language/Buttons/Permaview/Caption",
"text": "permaview"
},
"$:/language/Buttons/Permaview/Hint": {
"title": "$:/language/Buttons/Permaview/Hint",
"text": "Set browser address bar to a direct link to all the tiddlers in this story"
},
"$:/language/Buttons/Print/Caption": {
"title": "$:/language/Buttons/Print/Caption",
"text": "print page"
},
"$:/language/Buttons/Print/Hint": {
"title": "$:/language/Buttons/Print/Hint",
"text": "Print the current page"
},
"$:/language/Buttons/Refresh/Caption": {
"title": "$:/language/Buttons/Refresh/Caption",
"text": "refresh"
},
"$:/language/Buttons/Refresh/Hint": {
"title": "$:/language/Buttons/Refresh/Hint",
"text": "Perform a full refresh of the wiki"
},
"$:/language/Buttons/Save/Caption": {
"title": "$:/language/Buttons/Save/Caption",
"text": "ok"
},
"$:/language/Buttons/Save/Hint": {
"title": "$:/language/Buttons/Save/Hint",
"text": "Confirm changes to this tiddler"
},
"$:/language/Buttons/SaveWiki/Caption": {
"title": "$:/language/Buttons/SaveWiki/Caption",
"text": "save changes"
},
"$:/language/Buttons/SaveWiki/Hint": {
"title": "$:/language/Buttons/SaveWiki/Hint",
"text": "Save changes"
},
"$:/language/Buttons/StoryView/Caption": {
"title": "$:/language/Buttons/StoryView/Caption",
"text": "storyview"
},
"$:/language/Buttons/StoryView/Hint": {
"title": "$:/language/Buttons/StoryView/Hint",
"text": "Choose the story visualisation"
},
"$:/language/Buttons/HideSideBar/Caption": {
"title": "$:/language/Buttons/HideSideBar/Caption",
"text": "hide sidebar"
},
"$:/language/Buttons/HideSideBar/Hint": {
"title": "$:/language/Buttons/HideSideBar/Hint",
"text": "Hide sidebar"
},
"$:/language/Buttons/ShowSideBar/Caption": {
"title": "$:/language/Buttons/ShowSideBar/Caption",
"text": "show sidebar"
},
"$:/language/Buttons/ShowSideBar/Hint": {
"title": "$:/language/Buttons/ShowSideBar/Hint",
"text": "Show sidebar"
},
"$:/language/Buttons/TagManager/Caption": {
"title": "$:/language/Buttons/TagManager/Caption",
"text": "tag manager"
},
"$:/language/Buttons/TagManager/Hint": {
"title": "$:/language/Buttons/TagManager/Hint",
"text": "Open tag manager"
},
"$:/language/Buttons/Timestamp/Caption": {
"title": "$:/language/Buttons/Timestamp/Caption",
"text": "timestamps"
},
"$:/language/Buttons/Timestamp/Hint": {
"title": "$:/language/Buttons/Timestamp/Hint",
"text": "Choose whether modifications update timestamps"
},
"$:/language/Buttons/Timestamp/On/Caption": {
"title": "$:/language/Buttons/Timestamp/On/Caption",
"text": "timestamps are on"
},
"$:/language/Buttons/Timestamp/On/Hint": {
"title": "$:/language/Buttons/Timestamp/On/Hint",
"text": "Update timestamps when tiddlers are modified"
},
"$:/language/Buttons/Timestamp/Off/Caption": {
"title": "$:/language/Buttons/Timestamp/Off/Caption",
"text": "timestamps are off"
},
"$:/language/Buttons/Timestamp/Off/Hint": {
"title": "$:/language/Buttons/Timestamp/Off/Hint",
"text": "Don't update timestamps when tiddlers are modified"
},
"$:/language/Buttons/Theme/Caption": {
"title": "$:/language/Buttons/Theme/Caption",
"text": "theme"
},
"$:/language/Buttons/Theme/Hint": {
"title": "$:/language/Buttons/Theme/Hint",
"text": "Choose the display theme"
},
"$:/language/Buttons/Bold/Caption": {
"title": "$:/language/Buttons/Bold/Caption",
"text": "bold"
},
"$:/language/Buttons/Bold/Hint": {
"title": "$:/language/Buttons/Bold/Hint",
"text": "Apply bold formatting to selection"
},
"$:/language/Buttons/Clear/Caption": {
"title": "$:/language/Buttons/Clear/Caption",
"text": "clear"
},
"$:/language/Buttons/Clear/Hint": {
"title": "$:/language/Buttons/Clear/Hint",
"text": "Clear image to solid colour"
},
"$:/language/Buttons/EditorHeight/Caption": {
"title": "$:/language/Buttons/EditorHeight/Caption",
"text": "editor height"
},
"$:/language/Buttons/EditorHeight/Caption/Auto": {
"title": "$:/language/Buttons/EditorHeight/Caption/Auto",
"text": "Automatically adjust height to fit content"
},
"$:/language/Buttons/EditorHeight/Caption/Fixed": {
"title": "$:/language/Buttons/EditorHeight/Caption/Fixed",
"text": "Fixed height:"
},
"$:/language/Buttons/EditorHeight/Hint": {
"title": "$:/language/Buttons/EditorHeight/Hint",
"text": "Choose the height of the text editor"
},
"$:/language/Buttons/Excise/Caption": {
"title": "$:/language/Buttons/Excise/Caption",
"text": "excise"
},
"$:/language/Buttons/Excise/Caption/Excise": {
"title": "$:/language/Buttons/Excise/Caption/Excise",
"text": "Perform excision"
},
"$:/language/Buttons/Excise/Caption/MacroName": {
"title": "$:/language/Buttons/Excise/Caption/MacroName",
"text": "Macro name:"
},
"$:/language/Buttons/Excise/Caption/NewTitle": {
"title": "$:/language/Buttons/Excise/Caption/NewTitle",
"text": "Title of new tiddler:"
},
"$:/language/Buttons/Excise/Caption/Replace": {
"title": "$:/language/Buttons/Excise/Caption/Replace",
"text": "Replace excised text with:"
},
"$:/language/Buttons/Excise/Caption/Replace/Macro": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Macro",
"text": "macro"
},
"$:/language/Buttons/Excise/Caption/Replace/Link": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Link",
"text": "link"
},
"$:/language/Buttons/Excise/Caption/Replace/Transclusion": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion",
"text": "transclusion"
},
"$:/language/Buttons/Excise/Caption/Tag": {
"title": "$:/language/Buttons/Excise/Caption/Tag",
"text": "Tag new tiddler with the title of this tiddler"
},
"$:/language/Buttons/Excise/Caption/TiddlerExists": {
"title": "$:/language/Buttons/Excise/Caption/TiddlerExists",
"text": "Warning: tiddler already exists"
},
"$:/language/Buttons/Excise/Hint": {
"title": "$:/language/Buttons/Excise/Hint",
"text": "Excise the selected text into a new tiddler"
},
"$:/language/Buttons/Heading1/Caption": {
"title": "$:/language/Buttons/Heading1/Caption",
"text": "heading 1"
},
"$:/language/Buttons/Heading1/Hint": {
"title": "$:/language/Buttons/Heading1/Hint",
"text": "Apply heading level 1 formatting to lines containing selection"
},
"$:/language/Buttons/Heading2/Caption": {
"title": "$:/language/Buttons/Heading2/Caption",
"text": "heading 2"
},
"$:/language/Buttons/Heading2/Hint": {
"title": "$:/language/Buttons/Heading2/Hint",
"text": "Apply heading level 2 formatting to lines containing selection"
},
"$:/language/Buttons/Heading3/Caption": {
"title": "$:/language/Buttons/Heading3/Caption",
"text": "heading 3"
},
"$:/language/Buttons/Heading3/Hint": {
"title": "$:/language/Buttons/Heading3/Hint",
"text": "Apply heading level 3 formatting to lines containing selection"
},
"$:/language/Buttons/Heading4/Caption": {
"title": "$:/language/Buttons/Heading4/Caption",
"text": "heading 4"
},
"$:/language/Buttons/Heading4/Hint": {
"title": "$:/language/Buttons/Heading4/Hint",
"text": "Apply heading level 4 formatting to lines containing selection"
},
"$:/language/Buttons/Heading5/Caption": {
"title": "$:/language/Buttons/Heading5/Caption",
"text": "heading 5"
},
"$:/language/Buttons/Heading5/Hint": {
"title": "$:/language/Buttons/Heading5/Hint",
"text": "Apply heading level 5 formatting to lines containing selection"
},
"$:/language/Buttons/Heading6/Caption": {
"title": "$:/language/Buttons/Heading6/Caption",
"text": "heading 6"
},
"$:/language/Buttons/Heading6/Hint": {
"title": "$:/language/Buttons/Heading6/Hint",
"text": "Apply heading level 6 formatting to lines containing selection"
},
"$:/language/Buttons/Italic/Caption": {
"title": "$:/language/Buttons/Italic/Caption",
"text": "italic"
},
"$:/language/Buttons/Italic/Hint": {
"title": "$:/language/Buttons/Italic/Hint",
"text": "Apply italic formatting to selection"
},
"$:/language/Buttons/LineWidth/Caption": {
"title": "$:/language/Buttons/LineWidth/Caption",
"text": "line width"
},
"$:/language/Buttons/LineWidth/Hint": {
"title": "$:/language/Buttons/LineWidth/Hint",
"text": "Set line width for painting"
},
"$:/language/Buttons/Link/Caption": {
"title": "$:/language/Buttons/Link/Caption",
"text": "link"
},
"$:/language/Buttons/Link/Hint": {
"title": "$:/language/Buttons/Link/Hint",
"text": "Create wikitext link"
},
"$:/language/Buttons/Linkify/Caption": {
"title": "$:/language/Buttons/Linkify/Caption",
"text": "wikilink"
},
"$:/language/Buttons/Linkify/Hint": {
"title": "$:/language/Buttons/Linkify/Hint",
"text": "Wrap selection in square brackets"
},
"$:/language/Buttons/ListBullet/Caption": {
"title": "$:/language/Buttons/ListBullet/Caption",
"text": "bulleted list"
},
"$:/language/Buttons/ListBullet/Hint": {
"title": "$:/language/Buttons/ListBullet/Hint",
"text": "Apply bulleted list formatting to lines containing selection"
},
"$:/language/Buttons/ListNumber/Caption": {
"title": "$:/language/Buttons/ListNumber/Caption",
"text": "numbered list"
},
"$:/language/Buttons/ListNumber/Hint": {
"title": "$:/language/Buttons/ListNumber/Hint",
"text": "Apply numbered list formatting to lines containing selection"
},
"$:/language/Buttons/MonoBlock/Caption": {
"title": "$:/language/Buttons/MonoBlock/Caption",
"text": "monospaced block"
},
"$:/language/Buttons/MonoBlock/Hint": {
"title": "$:/language/Buttons/MonoBlock/Hint",
"text": "Apply monospaced block formatting to lines containing selection"
},
"$:/language/Buttons/MonoLine/Caption": {
"title": "$:/language/Buttons/MonoLine/Caption",
"text": "monospaced"
},
"$:/language/Buttons/MonoLine/Hint": {
"title": "$:/language/Buttons/MonoLine/Hint",
"text": "Apply monospaced character formatting to selection"
},
"$:/language/Buttons/Opacity/Caption": {
"title": "$:/language/Buttons/Opacity/Caption",
"text": "opacity"
},
"$:/language/Buttons/Opacity/Hint": {
"title": "$:/language/Buttons/Opacity/Hint",
"text": "Set painting opacity"
},
"$:/language/Buttons/Paint/Caption": {
"title": "$:/language/Buttons/Paint/Caption",
"text": "paint colour"
},
"$:/language/Buttons/Paint/Hint": {
"title": "$:/language/Buttons/Paint/Hint",
"text": "Set painting colour"
},
"$:/language/Buttons/Picture/Caption": {
"title": "$:/language/Buttons/Picture/Caption",
"text": "picture"
},
"$:/language/Buttons/Picture/Hint": {
"title": "$:/language/Buttons/Picture/Hint",
"text": "Insert picture"
},
"$:/language/Buttons/Preview/Caption": {
"title": "$:/language/Buttons/Preview/Caption",
"text": "preview"
},
"$:/language/Buttons/Preview/Hint": {
"title": "$:/language/Buttons/Preview/Hint",
"text": "Show preview pane"
},
"$:/language/Buttons/PreviewType/Caption": {
"title": "$:/language/Buttons/PreviewType/Caption",
"text": "preview type"
},
"$:/language/Buttons/PreviewType/Hint": {
"title": "$:/language/Buttons/PreviewType/Hint",
"text": "Choose preview type"
},
"$:/language/Buttons/Quote/Caption": {
"title": "$:/language/Buttons/Quote/Caption",
"text": "quote"
},
"$:/language/Buttons/Quote/Hint": {
"title": "$:/language/Buttons/Quote/Hint",
"text": "Apply quoted text formatting to lines containing selection"
},
"$:/language/Buttons/RotateLeft/Caption": {
"title": "$:/language/Buttons/RotateLeft/Caption",
"text": "rotate left"
},
"$:/language/Buttons/RotateLeft/Hint": {
"title": "$:/language/Buttons/RotateLeft/Hint",
"text": "Rotate image left by 90 degrees"
},
"$:/language/Buttons/Size/Caption": {
"title": "$:/language/Buttons/Size/Caption",
"text": "image size"
},
"$:/language/Buttons/Size/Caption/Height": {
"title": "$:/language/Buttons/Size/Caption/Height",
"text": "Height:"
},
"$:/language/Buttons/Size/Caption/Resize": {
"title": "$:/language/Buttons/Size/Caption/Resize",
"text": "Resize image"
},
"$:/language/Buttons/Size/Caption/Width": {
"title": "$:/language/Buttons/Size/Caption/Width",
"text": "Width:"
},
"$:/language/Buttons/Size/Hint": {
"title": "$:/language/Buttons/Size/Hint",
"text": "Set image size"
},
"$:/language/Buttons/Stamp/Caption": {
"title": "$:/language/Buttons/Stamp/Caption",
"text": "stamp"
},
"$:/language/Buttons/Stamp/Caption/New": {
"title": "$:/language/Buttons/Stamp/Caption/New",
"text": "Add your own"
},
"$:/language/Buttons/Stamp/Hint": {
"title": "$:/language/Buttons/Stamp/Hint",
"text": "Insert a preconfigured snippet of text"
},
"$:/language/Buttons/Stamp/New/Title": {
"title": "$:/language/Buttons/Stamp/New/Title",
"text": "Name as shown in menu"
},
"$:/language/Buttons/Stamp/New/Text": {
"title": "$:/language/Buttons/Stamp/New/Text",
"text": "Text of snippet. (Remember to add a descriptive title in the caption field)."
},
"$:/language/Buttons/Strikethrough/Caption": {
"title": "$:/language/Buttons/Strikethrough/Caption",
"text": "strikethrough"
},
"$:/language/Buttons/Strikethrough/Hint": {
"title": "$:/language/Buttons/Strikethrough/Hint",
"text": "Apply strikethrough formatting to selection"
},
"$:/language/Buttons/Subscript/Caption": {
"title": "$:/language/Buttons/Subscript/Caption",
"text": "subscript"
},
"$:/language/Buttons/Subscript/Hint": {
"title": "$:/language/Buttons/Subscript/Hint",
"text": "Apply subscript formatting to selection"
},
"$:/language/Buttons/Superscript/Caption": {
"title": "$:/language/Buttons/Superscript/Caption",
"text": "superscript"
},
"$:/language/Buttons/Superscript/Hint": {
"title": "$:/language/Buttons/Superscript/Hint",
"text": "Apply superscript formatting to selection"
},
"$:/language/Buttons/ToggleSidebar/Hint": {
"title": "$:/language/Buttons/ToggleSidebar/Hint",
"text": "Toggle the sidebar visibility"
},
"$:/language/Buttons/Transcludify/Caption": {
"title": "$:/language/Buttons/Transcludify/Caption",
"text": "transclusion"
},
"$:/language/Buttons/Transcludify/Hint": {
"title": "$:/language/Buttons/Transcludify/Hint",
"text": "Wrap selection in curly brackets"
},
"$:/language/Buttons/Underline/Caption": {
"title": "$:/language/Buttons/Underline/Caption",
"text": "underline"
},
"$:/language/Buttons/Underline/Hint": {
"title": "$:/language/Buttons/Underline/Hint",
"text": "Apply underline formatting to selection"
},
"$:/language/ControlPanel/Advanced/Caption": {
"title": "$:/language/ControlPanel/Advanced/Caption",
"text": "Advanced"
},
"$:/language/ControlPanel/Advanced/Hint": {
"title": "$:/language/ControlPanel/Advanced/Hint",
"text": "Internal information about this TiddlyWiki"
},
"$:/language/ControlPanel/Appearance/Caption": {
"title": "$:/language/ControlPanel/Appearance/Caption",
"text": "Appearance"
},
"$:/language/ControlPanel/Appearance/Hint": {
"title": "$:/language/ControlPanel/Appearance/Hint",
"text": "Ways to customise the appearance of your TiddlyWiki."
},
"$:/language/ControlPanel/Basics/AnimDuration/Prompt": {
"title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt",
"text": "Animation duration"
},
"$:/language/ControlPanel/Basics/AutoFocus/Prompt": {
"title": "$:/language/ControlPanel/Basics/AutoFocus/Prompt",
"text": "Default focus field for new tiddlers"
},
"$:/language/ControlPanel/Basics/Caption": {
"title": "$:/language/ControlPanel/Basics/Caption",
"text": "Basics"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint",
"text": "Use [[double square brackets]] for titles with spaces. Or you can choose to <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">retain story ordering</$button>"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt",
"text": "Default tiddlers"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint",
"text": "Choose which tiddlers are displayed at startup"
},
"$:/language/ControlPanel/Basics/Language/Prompt": {
"title": "$:/language/ControlPanel/Basics/Language/Prompt",
"text": "Hello! Current language:"
},
"$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt",
"text": "Title of new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewJournal/Text/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt",
"text": "Text for new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt",
"text": "Tags for new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt",
"text": "Title of new tiddlers"
},
"$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt",
"text": "Tags for new tiddlers"
},
"$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt",
"text": "Number of overridden shadow tiddlers"
},
"$:/language/ControlPanel/Basics/RemoveTags": {
"title": "$:/language/ControlPanel/Basics/RemoveTags",
"text": "Update to current format"
},
"$:/language/ControlPanel/Basics/RemoveTags/Hint": {
"title": "$:/language/ControlPanel/Basics/RemoveTags/Hint",
"text": "Update the tags configuration to the latest format"
},
"$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt",
"text": "Number of shadow tiddlers"
},
"$:/language/ControlPanel/Basics/Subtitle/Prompt": {
"title": "$:/language/ControlPanel/Basics/Subtitle/Prompt",
"text": "Subtitle"
},
"$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt",
"text": "Number of system tiddlers"
},
"$:/language/ControlPanel/Basics/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/Tags/Prompt",
"text": "Number of tags"
},
"$:/language/ControlPanel/Basics/Tiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt",
"text": "Number of tiddlers"
},
"$:/language/ControlPanel/Basics/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/Title/Prompt",
"text": "Title of this ~TiddlyWiki"
},
"$:/language/ControlPanel/Basics/Username/Prompt": {
"title": "$:/language/ControlPanel/Basics/Username/Prompt",
"text": "Username for signing edits"
},
"$:/language/ControlPanel/Basics/Version/Prompt": {
"title": "$:/language/ControlPanel/Basics/Version/Prompt",
"text": "~TiddlyWiki version"
},
"$:/language/ControlPanel/EditorTypes/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Caption",
"text": "Editor Types"
},
"$:/language/ControlPanel/EditorTypes/Editor/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Editor/Caption",
"text": "Editor"
},
"$:/language/ControlPanel/EditorTypes/Hint": {
"title": "$:/language/ControlPanel/EditorTypes/Hint",
"text": "These tiddlers determine which editor is used to edit specific tiddler types."
},
"$:/language/ControlPanel/EditorTypes/Type/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Type/Caption",
"text": "Type"
},
"$:/language/ControlPanel/Info/Caption": {
"title": "$:/language/ControlPanel/Info/Caption",
"text": "Info"
},
"$:/language/ControlPanel/Info/Hint": {
"title": "$:/language/ControlPanel/Info/Hint",
"text": "Information about this TiddlyWiki"
},
"$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt",
"text": "Type shortcut here"
},
"$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption",
"text": "add shortcut"
},
"$:/language/ControlPanel/KeyboardShortcuts/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Caption",
"text": "Keyboard Shortcuts"
},
"$:/language/ControlPanel/KeyboardShortcuts/Hint": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Hint",
"text": "Manage keyboard shortcut assignments"
},
"$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption",
"text": "No keyboard shortcuts assigned"
},
"$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint",
"text": "remove keyboard shortcut"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/All": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All",
"text": "All platforms"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac",
"text": "Macintosh platform only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac",
"text": "Non-Macintosh platforms only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux",
"text": "Linux platform only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux",
"text": "Non-Linux platforms only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows",
"text": "Windows platform only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows",
"text": "Non-Windows platforms only"
},
"$:/language/ControlPanel/LayoutSwitcher/Caption": {
"title": "$:/language/ControlPanel/LayoutSwitcher/Caption",
"text": "Layout"
},
"$:/language/ControlPanel/LoadedModules/Caption": {
"title": "$:/language/ControlPanel/LoadedModules/Caption",
"text": "Loaded Modules"
},
"$:/language/ControlPanel/LoadedModules/Hint": {
"title": "$:/language/ControlPanel/LoadedModules/Hint",
"text": "These are the currently loaded tiddler modules linked to their source tiddlers. Any italicised modules lack a source tiddler, typically because they were setup during the boot process."
},
"$:/language/ControlPanel/Palette/Caption": {
"title": "$:/language/ControlPanel/Palette/Caption",
"text": "Palette"
},
"$:/language/ControlPanel/Palette/Editor/Clone/Caption": {
"title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption",
"text": "clone"
},
"$:/language/ControlPanel/Palette/Editor/Clone/Prompt": {
"title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt",
"text": "It is recommended that you clone this shadow palette before editing it"
},
"$:/language/ControlPanel/Palette/Editor/Delete/Hint": {
"title": "$:/language/ControlPanel/Palette/Editor/Delete/Hint",
"text": "delete this entry from the current palette"
},
"$:/language/ControlPanel/Palette/Editor/Names/External/Show": {
"title": "$:/language/ControlPanel/Palette/Editor/Names/External/Show",
"text": "Show color names that are not part of the current palette"
},
"$:/language/ControlPanel/Palette/Editor/Prompt/Modified": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified",
"text": "This shadow palette has been modified"
},
"$:/language/ControlPanel/Palette/Editor/Prompt": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt",
"text": "Editing"
},
"$:/language/ControlPanel/Palette/Editor/Reset/Caption": {
"title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption",
"text": "reset"
},
"$:/language/ControlPanel/Palette/HideEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/HideEditor/Caption",
"text": "hide editor"
},
"$:/language/ControlPanel/Palette/Prompt": {
"title": "$:/language/ControlPanel/Palette/Prompt",
"text": "Current palette:"
},
"$:/language/ControlPanel/Palette/ShowEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/ShowEditor/Caption",
"text": "show editor"
},
"$:/language/ControlPanel/Parsing/Caption": {
"title": "$:/language/ControlPanel/Parsing/Caption",
"text": "Parsing"
},
"$:/language/ControlPanel/Parsing/Hint": {
"title": "$:/language/ControlPanel/Parsing/Hint",
"text": "Here you can globally disable/enable wiki parser rules. For changes to take effect, save and reload your wiki. Disabling certain parser rules can prevent <$text text=\"TiddlyWiki\"/> from functioning correctly. Use [[safe mode|https://tiddlywiki.com/#SafeMode]] to restore normal operation."
},
"$:/language/ControlPanel/Parsing/Block/Caption": {
"title": "$:/language/ControlPanel/Parsing/Block/Caption",
"text": "Block Parse Rules"
},
"$:/language/ControlPanel/Parsing/Inline/Caption": {
"title": "$:/language/ControlPanel/Parsing/Inline/Caption",
"text": "Inline Parse Rules"
},
"$:/language/ControlPanel/Parsing/Pragma/Caption": {
"title": "$:/language/ControlPanel/Parsing/Pragma/Caption",
"text": "Pragma Parse Rules"
},
"$:/language/ControlPanel/Plugins/Add/Caption": {
"title": "$:/language/ControlPanel/Plugins/Add/Caption",
"text": "Get more plugins"
},
"$:/language/ControlPanel/Plugins/Add/Hint": {
"title": "$:/language/ControlPanel/Plugins/Add/Hint",
"text": "Install plugins from the official library"
},
"$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint",
"text": "This plugin is already installed at version <$text text=<<installedVersion>>/>"
},
"$:/language/ControlPanel/Plugins/AlsoRequires": {
"title": "$:/language/ControlPanel/Plugins/AlsoRequires",
"text": "Also requires:"
},
"$:/language/ControlPanel/Plugins/Caption": {
"title": "$:/language/ControlPanel/Plugins/Caption",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Disable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Disable/Caption",
"text": "disable"
},
"$:/language/ControlPanel/Plugins/Disable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Disable/Hint",
"text": "Disable this plugin when reloading page"
},
"$:/language/ControlPanel/Plugins/Disabled/Status": {
"title": "$:/language/ControlPanel/Plugins/Disabled/Status",
"text": "(disabled)"
},
"$:/language/ControlPanel/Plugins/Downgrade/Caption": {
"title": "$:/language/ControlPanel/Plugins/Downgrade/Caption",
"text": "downgrade"
},
"$:/language/ControlPanel/Plugins/Empty/Hint": {
"title": "$:/language/ControlPanel/Plugins/Empty/Hint",
"text": "None"
},
"$:/language/ControlPanel/Plugins/Enable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Enable/Caption",
"text": "enable"
},
"$:/language/ControlPanel/Plugins/Enable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Enable/Hint",
"text": "Enable this plugin when reloading page"
},
"$:/language/ControlPanel/Plugins/Install/Caption": {
"title": "$:/language/ControlPanel/Plugins/Install/Caption",
"text": "install"
},
"$:/language/ControlPanel/Plugins/Installed/Hint": {
"title": "$:/language/ControlPanel/Plugins/Installed/Hint",
"text": "Currently installed plugins:"
},
"$:/language/ControlPanel/Plugins/Languages/Caption": {
"title": "$:/language/ControlPanel/Plugins/Languages/Caption",
"text": "Languages"
},
"$:/language/ControlPanel/Plugins/Languages/Hint": {
"title": "$:/language/ControlPanel/Plugins/Languages/Hint",
"text": "Language pack plugins"
},
"$:/language/ControlPanel/Plugins/NoInfoFound/Hint": {
"title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint",
"text": "No ''\"<$text text=<<currentTab>>/>\"'' found"
},
"$:/language/ControlPanel/Plugins/NotInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint",
"text": "This plugin is not currently installed"
},
"$:/language/ControlPanel/Plugins/OpenPluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary",
"text": "open plugin library"
},
"$:/language/ControlPanel/Plugins/ClosePluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/ClosePluginLibrary",
"text": "close plugin library"
},
"$:/language/ControlPanel/Plugins/PluginWillRequireReload": {
"title": "$:/language/ControlPanel/Plugins/PluginWillRequireReload",
"text": "(requires reload)"
},
"$:/language/ControlPanel/Plugins/Plugins/Caption": {
"title": "$:/language/ControlPanel/Plugins/Plugins/Caption",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Plugins/Hint": {
"title": "$:/language/ControlPanel/Plugins/Plugins/Hint",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Reinstall/Caption": {
"title": "$:/language/ControlPanel/Plugins/Reinstall/Caption",
"text": "reinstall"
},
"$:/language/ControlPanel/Plugins/Themes/Caption": {
"title": "$:/language/ControlPanel/Plugins/Themes/Caption",
"text": "Themes"
},
"$:/language/ControlPanel/Plugins/Themes/Hint": {
"title": "$:/language/ControlPanel/Plugins/Themes/Hint",
"text": "Theme plugins"
},
"$:/language/ControlPanel/Plugins/Update/Caption": {
"title": "$:/language/ControlPanel/Plugins/Update/Caption",
"text": "update"
},
"$:/language/ControlPanel/Plugins/Updates/Caption": {
"title": "$:/language/ControlPanel/Plugins/Updates/Caption",
"text": "Updates"
},
"$:/language/ControlPanel/Plugins/Updates/Hint": {
"title": "$:/language/ControlPanel/Plugins/Updates/Hint",
"text": "Available updates to installed plugins"
},
"$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption": {
"title": "$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption",
"text": "Update <<update-count>> plugins"
},
"$:/language/ControlPanel/Plugins/SubPluginPrompt": {
"title": "$:/language/ControlPanel/Plugins/SubPluginPrompt",
"text": "With <<count>> sub-plugins available"
},
"$:/language/ControlPanel/Saving/Caption": {
"title": "$:/language/ControlPanel/Saving/Caption",
"text": "Saving"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description",
"text": "Permit automatic saving for the download saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint",
"text": "Enable Autosave for Download Saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Caption": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Caption",
"text": "Download Saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Hint",
"text": "These settings apply to the HTML5-compatible download saver"
},
"$:/language/ControlPanel/Saving/General/Caption": {
"title": "$:/language/ControlPanel/Saving/General/Caption",
"text": "General"
},
"$:/language/ControlPanel/Saving/General/Hint": {
"title": "$:/language/ControlPanel/Saving/General/Hint",
"text": "These settings apply to all the loaded savers"
},
"$:/language/ControlPanel/Saving/Hint": {
"title": "$:/language/ControlPanel/Saving/Hint",
"text": "Settings used for saving the entire TiddlyWiki as a single file via a saver module"
},
"$:/language/ControlPanel/Saving/GitService/Branch": {
"title": "$:/language/ControlPanel/Saving/GitService/Branch",
"text": "Target branch for saving"
},
"$:/language/ControlPanel/Saving/GitService/CommitMessage": {
"title": "$:/language/ControlPanel/Saving/GitService/CommitMessage",
"text": "Saved by TiddlyWiki"
},
"$:/language/ControlPanel/Saving/GitService/Description": {
"title": "$:/language/ControlPanel/Saving/GitService/Description",
"text": "These settings are only used when saving to <<service-name>>"
},
"$:/language/ControlPanel/Saving/GitService/Filename": {
"title": "$:/language/ControlPanel/Saving/GitService/Filename",
"text": "Filename of target file (e.g. `index.html`)"
},
"$:/language/ControlPanel/Saving/GitService/Path": {
"title": "$:/language/ControlPanel/Saving/GitService/Path",
"text": "Path to target file (e.g. `/wiki/`)"
},
"$:/language/ControlPanel/Saving/GitService/Repo": {
"title": "$:/language/ControlPanel/Saving/GitService/Repo",
"text": "Target repository (e.g. `Jermolene/TiddlyWiki5`)"
},
"$:/language/ControlPanel/Saving/GitService/ServerURL": {
"title": "$:/language/ControlPanel/Saving/GitService/ServerURL",
"text": "Server API URL"
},
"$:/language/ControlPanel/Saving/GitService/UserName": {
"title": "$:/language/ControlPanel/Saving/GitService/UserName",
"text": "Username"
},
"$:/language/ControlPanel/Saving/GitService/GitHub/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/GitHub/Caption",
"text": "~GitHub Saver"
},
"$:/language/ControlPanel/Saving/GitService/GitHub/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitHub/Password",
"text": "Password, OAUTH token, or personal access token (see [[GitHub help page|https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line]] for details)"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Caption",
"text": "~GitLab Saver"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Password",
"text": "Personal access token for API (see [[GitLab help page|https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html]] for details)"
},
"$:/language/ControlPanel/Saving/GitService/Gitea/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/Gitea/Caption",
"text": "Gitea Saver"
},
"$:/language/ControlPanel/Saving/GitService/Gitea/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/Gitea/Password",
"text": "Personal access token for API (via Gitea’s web interface: `Settings | Applications | Generate New Token`)"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading",
"text": "Advanced Settings"
},
"$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir",
"text": "Backup Directory"
},
"$:/language/ControlPanel/Saving/TiddlySpot/ControlPanel": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/ControlPanel",
"text": "~TiddlySpot Control Panel"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Backups": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups",
"text": "Backups"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Caption": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Caption",
"text": "~TiddlySpot Saver"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Description": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Description",
"text": "These settings are only used when saving to http://tiddlyspot.com or a compatible remote server"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Filename": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename",
"text": "Upload Filename"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading",
"text": "~TiddlySpot"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Hint": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint",
"text": "//The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Password": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Password",
"text": "Password"
},
"$:/language/ControlPanel/Saving/TiddlySpot/ReadOnly": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/ReadOnly",
"text": "The ~TiddlySpot service is currently only available in read-only form. Please see http://tiddlyspot.com/ for the latest details. The ~TiddlySpot saver can still be used to save to compatible servers."
},
"$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL",
"text": "Server URL"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir",
"text": "Upload Directory"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UserName": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName",
"text": "Wiki Name"
},
"$:/language/ControlPanel/Settings/AutoSave/Caption": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Caption",
"text": "Autosave"
},
"$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description",
"text": "Do not save changes automatically"
},
"$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description",
"text": "Save changes automatically"
},
"$:/language/ControlPanel/Settings/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Hint",
"text": "Attempt to automatically save changes during editing when using a supporting saver"
},
"$:/language/ControlPanel/Settings/CamelCase/Caption": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Caption",
"text": "Camel Case Wiki Links"
},
"$:/language/ControlPanel/Settings/CamelCase/Hint": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Hint",
"text": "You can globally disable automatic linking of ~CamelCase phrases. Requires reload to take effect"
},
"$:/language/ControlPanel/Settings/CamelCase/Description": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Description",
"text": "Enable automatic ~CamelCase linking"
},
"$:/language/ControlPanel/Settings/Caption": {
"title": "$:/language/ControlPanel/Settings/Caption",
"text": "Settings"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption",
"text": "Editor Toolbar"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint",
"text": "Enable or disable the editor toolbar:"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Description": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Description",
"text": "Show editor toolbar"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Caption": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Caption",
"text": "Tiddler Info Panel Mode"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Hint": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Hint",
"text": "Control when the tiddler info panel closes:"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description",
"text": "Tiddler info panel closes automatically"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description",
"text": "Tiddler info panel stays open until explicitly closed"
},
"$:/language/ControlPanel/Settings/Hint": {
"title": "$:/language/ControlPanel/Settings/Hint",
"text": "These settings let you customise the behaviour of TiddlyWiki."
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption",
"text": "Navigation Address Bar"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint",
"text": "Behaviour of the browser address bar when navigating to a tiddler:"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description",
"text": "Do not update the address bar"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description",
"text": "Include the target tiddler"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description",
"text": "Include the target tiddler and the current story sequence"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption",
"text": "Navigation History"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint",
"text": "Update browser history when navigating to a tiddler:"
},
"$:/language/ControlPanel/Settings/NavigationHistory/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description",
"text": "Do not update history"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description",
"text": "Update history"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption",
"text": "Permalink/permaview Mode"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint",
"text": "Choose how permalink/permaview is handled:"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description",
"text": "Copy permalink/permaview URL to clipboard"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description",
"text": "Update address bar with permalink/permaview URL"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption",
"text": "Performance Instrumentation"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint",
"text": "Displays performance statistics in the browser developer console. Requires reload to take effect"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description",
"text": "Enable performance instrumentation"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption",
"text": "Toolbar Button Style"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint",
"text": "Choose the style for toolbar buttons:"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless",
"text": "Borderless"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed",
"text": "Boxed"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded",
"text": "Rounded"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption",
"text": "Toolbar Buttons"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint",
"text": "Default toolbar button appearance:"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description",
"text": "Include icon"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description",
"text": "Include text"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption",
"text": "Default Sidebar Tab"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint",
"text": "Specify which sidebar tab is displayed by default"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption",
"text": "Default More Sidebar Tab"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint",
"text": "Specify which More sidebar tab is displayed by default"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption",
"text": "Tiddler Opening Behaviour"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint",
"text": "Navigation from //within// the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint",
"text": "Navigation from //outside// the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove",
"text": "Open above the current tiddler"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow",
"text": "Open below the current tiddler"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop",
"text": "Open at the top of the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom",
"text": "Open at the bottom of the story river"
},
"$:/language/ControlPanel/Settings/TitleLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Caption",
"text": "Tiddler Titles"
},
"$:/language/ControlPanel/Settings/TitleLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Hint",
"text": "Optionally display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/TitleLinks/No/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description",
"text": "Do not display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description",
"text": "Display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/MissingLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Caption",
"text": "Wiki Links"
},
"$:/language/ControlPanel/Settings/MissingLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Hint",
"text": "Choose whether to link to tiddlers that do not exist yet"
},
"$:/language/ControlPanel/Settings/MissingLinks/Description": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Description",
"text": "Enable links to missing tiddlers"
},
"$:/language/ControlPanel/StoryView/Caption": {
"title": "$:/language/ControlPanel/StoryView/Caption",
"text": "Story View"
},
"$:/language/ControlPanel/StoryView/Prompt": {
"title": "$:/language/ControlPanel/StoryView/Prompt",
"text": "Current view:"
},
"$:/language/ControlPanel/Stylesheets/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Caption",
"text": "Stylesheets"
},
"$:/language/ControlPanel/Stylesheets/Expand/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Expand/Caption",
"text": "Expand All"
},
"$:/language/ControlPanel/Stylesheets/Hint": {
"title": "$:/language/ControlPanel/Stylesheets/Hint",
"text": "This is the rendered CSS of the current stylesheet tiddlers tagged with <<tag \"$:/tags/Stylesheet\">>"
},
"$:/language/ControlPanel/Stylesheets/Restore/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Restore/Caption",
"text": "Restore"
},
"$:/language/ControlPanel/Theme/Caption": {
"title": "$:/language/ControlPanel/Theme/Caption",
"text": "Theme"
},
"$:/language/ControlPanel/Theme/Prompt": {
"title": "$:/language/ControlPanel/Theme/Prompt",
"text": "Current theme:"
},
"$:/language/ControlPanel/TiddlerFields/Caption": {
"title": "$:/language/ControlPanel/TiddlerFields/Caption",
"text": "Tiddler Fields"
},
"$:/language/ControlPanel/TiddlerFields/Hint": {
"title": "$:/language/ControlPanel/TiddlerFields/Hint",
"text": "This is the full set of TiddlerFields in use in this wiki (including system tiddlers but excluding shadow tiddlers)."
},
"$:/language/ControlPanel/Toolbars/Caption": {
"title": "$:/language/ControlPanel/Toolbars/Caption",
"text": "Toolbars"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption",
"text": "Edit Toolbar"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint",
"text": "Choose which buttons are displayed for tiddlers in edit mode. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/Hint": {
"title": "$:/language/ControlPanel/Toolbars/Hint",
"text": "Select which toolbar buttons are displayed"
},
"$:/language/ControlPanel/Toolbars/PageControls/Caption": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Caption",
"text": "Page Toolbar"
},
"$:/language/ControlPanel/Toolbars/PageControls/Hint": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Hint",
"text": "Choose which buttons are displayed on the main page toolbar. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption",
"text": "Editor Toolbar"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint",
"text": "Choose which buttons are displayed in the editor toolbar. Note that some buttons will only appear when editing tiddlers of a certain type. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption",
"text": "View Toolbar"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint",
"text": "Choose which buttons are displayed for tiddlers in view mode. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Tools/Download/Full/Caption": {
"title": "$:/language/ControlPanel/Tools/Download/Full/Caption",
"text": "Download full wiki"
},
"$:/language/Date/DaySuffix/1": {
"title": "$:/language/Date/DaySuffix/1",
"text": "st"
},
"$:/language/Date/DaySuffix/2": {
"title": "$:/language/Date/DaySuffix/2",
"text": "nd"
},
"$:/language/Date/DaySuffix/3": {
"title": "$:/language/Date/DaySuffix/3",
"text": "rd"
},
"$:/language/Date/DaySuffix/4": {
"title": "$:/language/Date/DaySuffix/4",
"text": "th"
},
"$:/language/Date/DaySuffix/5": {
"title": "$:/language/Date/DaySuffix/5",
"text": "th"
},
"$:/language/Date/DaySuffix/6": {
"title": "$:/language/Date/DaySuffix/6",
"text": "th"
},
"$:/language/Date/DaySuffix/7": {
"title": "$:/language/Date/DaySuffix/7",
"text": "th"
},
"$:/language/Date/DaySuffix/8": {
"title": "$:/language/Date/DaySuffix/8",
"text": "th"
},
"$:/language/Date/DaySuffix/9": {
"title": "$:/language/Date/DaySuffix/9",
"text": "th"
},
"$:/language/Date/DaySuffix/10": {
"title": "$:/language/Date/DaySuffix/10",
"text": "th"
},
"$:/language/Date/DaySuffix/11": {
"title": "$:/language/Date/DaySuffix/11",
"text": "th"
},
"$:/language/Date/DaySuffix/12": {
"title": "$:/language/Date/DaySuffix/12",
"text": "th"
},
"$:/language/Date/DaySuffix/13": {
"title": "$:/language/Date/DaySuffix/13",
"text": "th"
},
"$:/language/Date/DaySuffix/14": {
"title": "$:/language/Date/DaySuffix/14",
"text": "th"
},
"$:/language/Date/DaySuffix/15": {
"title": "$:/language/Date/DaySuffix/15",
"text": "th"
},
"$:/language/Date/DaySuffix/16": {
"title": "$:/language/Date/DaySuffix/16",
"text": "th"
},
"$:/language/Date/DaySuffix/17": {
"title": "$:/language/Date/DaySuffix/17",
"text": "th"
},
"$:/language/Date/DaySuffix/18": {
"title": "$:/language/Date/DaySuffix/18",
"text": "th"
},
"$:/language/Date/DaySuffix/19": {
"title": "$:/language/Date/DaySuffix/19",
"text": "th"
},
"$:/language/Date/DaySuffix/20": {
"title": "$:/language/Date/DaySuffix/20",
"text": "th"
},
"$:/language/Date/DaySuffix/21": {
"title": "$:/language/Date/DaySuffix/21",
"text": "st"
},
"$:/language/Date/DaySuffix/22": {
"title": "$:/language/Date/DaySuffix/22",
"text": "nd"
},
"$:/language/Date/DaySuffix/23": {
"title": "$:/language/Date/DaySuffix/23",
"text": "rd"
},
"$:/language/Date/DaySuffix/24": {
"title": "$:/language/Date/DaySuffix/24",
"text": "th"
},
"$:/language/Date/DaySuffix/25": {
"title": "$:/language/Date/DaySuffix/25",
"text": "th"
},
"$:/language/Date/DaySuffix/26": {
"title": "$:/language/Date/DaySuffix/26",
"text": "th"
},
"$:/language/Date/DaySuffix/27": {
"title": "$:/language/Date/DaySuffix/27",
"text": "th"
},
"$:/language/Date/DaySuffix/28": {
"title": "$:/language/Date/DaySuffix/28",
"text": "th"
},
"$:/language/Date/DaySuffix/29": {
"title": "$:/language/Date/DaySuffix/29",
"text": "th"
},
"$:/language/Date/DaySuffix/30": {
"title": "$:/language/Date/DaySuffix/30",
"text": "th"
},
"$:/language/Date/DaySuffix/31": {
"title": "$:/language/Date/DaySuffix/31",
"text": "st"
},
"$:/language/Date/Long/Day/0": {
"title": "$:/language/Date/Long/Day/0",
"text": "Sunday"
},
"$:/language/Date/Long/Day/1": {
"title": "$:/language/Date/Long/Day/1",
"text": "Monday"
},
"$:/language/Date/Long/Day/2": {
"title": "$:/language/Date/Long/Day/2",
"text": "Tuesday"
},
"$:/language/Date/Long/Day/3": {
"title": "$:/language/Date/Long/Day/3",
"text": "Wednesday"
},
"$:/language/Date/Long/Day/4": {
"title": "$:/language/Date/Long/Day/4",
"text": "Thursday"
},
"$:/language/Date/Long/Day/5": {
"title": "$:/language/Date/Long/Day/5",
"text": "Friday"
},
"$:/language/Date/Long/Day/6": {
"title": "$:/language/Date/Long/Day/6",
"text": "Saturday"
},
"$:/language/Date/Long/Month/1": {
"title": "$:/language/Date/Long/Month/1",
"text": "January"
},
"$:/language/Date/Long/Month/2": {
"title": "$:/language/Date/Long/Month/2",
"text": "February"
},
"$:/language/Date/Long/Month/3": {
"title": "$:/language/Date/Long/Month/3",
"text": "March"
},
"$:/language/Date/Long/Month/4": {
"title": "$:/language/Date/Long/Month/4",
"text": "April"
},
"$:/language/Date/Long/Month/5": {
"title": "$:/language/Date/Long/Month/5",
"text": "May"
},
"$:/language/Date/Long/Month/6": {
"title": "$:/language/Date/Long/Month/6",
"text": "June"
},
"$:/language/Date/Long/Month/7": {
"title": "$:/language/Date/Long/Month/7",
"text": "July"
},
"$:/language/Date/Long/Month/8": {
"title": "$:/language/Date/Long/Month/8",
"text": "August"
},
"$:/language/Date/Long/Month/9": {
"title": "$:/language/Date/Long/Month/9",
"text": "September"
},
"$:/language/Date/Long/Month/10": {
"title": "$:/language/Date/Long/Month/10",
"text": "October"
},
"$:/language/Date/Long/Month/11": {
"title": "$:/language/Date/Long/Month/11",
"text": "November"
},
"$:/language/Date/Long/Month/12": {
"title": "$:/language/Date/Long/Month/12",
"text": "December"
},
"$:/language/Date/Period/am": {
"title": "$:/language/Date/Period/am",
"text": "am"
},
"$:/language/Date/Period/pm": {
"title": "$:/language/Date/Period/pm",
"text": "pm"
},
"$:/language/Date/Short/Day/0": {
"title": "$:/language/Date/Short/Day/0",
"text": "Sun"
},
"$:/language/Date/Short/Day/1": {
"title": "$:/language/Date/Short/Day/1",
"text": "Mon"
},
"$:/language/Date/Short/Day/2": {
"title": "$:/language/Date/Short/Day/2",
"text": "Tue"
},
"$:/language/Date/Short/Day/3": {
"title": "$:/language/Date/Short/Day/3",
"text": "Wed"
},
"$:/language/Date/Short/Day/4": {
"title": "$:/language/Date/Short/Day/4",
"text": "Thu"
},
"$:/language/Date/Short/Day/5": {
"title": "$:/language/Date/Short/Day/5",
"text": "Fri"
},
"$:/language/Date/Short/Day/6": {
"title": "$:/language/Date/Short/Day/6",
"text": "Sat"
},
"$:/language/Date/Short/Month/1": {
"title": "$:/language/Date/Short/Month/1",
"text": "Jan"
},
"$:/language/Date/Short/Month/2": {
"title": "$:/language/Date/Short/Month/2",
"text": "Feb"
},
"$:/language/Date/Short/Month/3": {
"title": "$:/language/Date/Short/Month/3",
"text": "Mar"
},
"$:/language/Date/Short/Month/4": {
"title": "$:/language/Date/Short/Month/4",
"text": "Apr"
},
"$:/language/Date/Short/Month/5": {
"title": "$:/language/Date/Short/Month/5",
"text": "May"
},
"$:/language/Date/Short/Month/6": {
"title": "$:/language/Date/Short/Month/6",
"text": "Jun"
},
"$:/language/Date/Short/Month/7": {
"title": "$:/language/Date/Short/Month/7",
"text": "Jul"
},
"$:/language/Date/Short/Month/8": {
"title": "$:/language/Date/Short/Month/8",
"text": "Aug"
},
"$:/language/Date/Short/Month/9": {
"title": "$:/language/Date/Short/Month/9",
"text": "Sep"
},
"$:/language/Date/Short/Month/10": {
"title": "$:/language/Date/Short/Month/10",
"text": "Oct"
},
"$:/language/Date/Short/Month/11": {
"title": "$:/language/Date/Short/Month/11",
"text": "Nov"
},
"$:/language/Date/Short/Month/12": {
"title": "$:/language/Date/Short/Month/12",
"text": "Dec"
},
"$:/language/RelativeDate/Future/Days": {
"title": "$:/language/RelativeDate/Future/Days",
"text": "<<period>> days from now"
},
"$:/language/RelativeDate/Future/Hours": {
"title": "$:/language/RelativeDate/Future/Hours",
"text": "<<period>> hours from now"
},
"$:/language/RelativeDate/Future/Minutes": {
"title": "$:/language/RelativeDate/Future/Minutes",
"text": "<<period>> minutes from now"
},
"$:/language/RelativeDate/Future/Months": {
"title": "$:/language/RelativeDate/Future/Months",
"text": "<<period>> months from now"
},
"$:/language/RelativeDate/Future/Second": {
"title": "$:/language/RelativeDate/Future/Second",
"text": "1 second from now"
},
"$:/language/RelativeDate/Future/Seconds": {
"title": "$:/language/RelativeDate/Future/Seconds",
"text": "<<period>> seconds from now"
},
"$:/language/RelativeDate/Future/Years": {
"title": "$:/language/RelativeDate/Future/Years",
"text": "<<period>> years from now"
},
"$:/language/RelativeDate/Past/Days": {
"title": "$:/language/RelativeDate/Past/Days",
"text": "<<period>> days ago"
},
"$:/language/RelativeDate/Past/Hours": {
"title": "$:/language/RelativeDate/Past/Hours",
"text": "<<period>> hours ago"
},
"$:/language/RelativeDate/Past/Minutes": {
"title": "$:/language/RelativeDate/Past/Minutes",
"text": "<<period>> minutes ago"
},
"$:/language/RelativeDate/Past/Months": {
"title": "$:/language/RelativeDate/Past/Months",
"text": "<<period>> months ago"
},
"$:/language/RelativeDate/Past/Second": {
"title": "$:/language/RelativeDate/Past/Second",
"text": "1 second ago"
},
"$:/language/RelativeDate/Past/Seconds": {
"title": "$:/language/RelativeDate/Past/Seconds",
"text": "<<period>> seconds ago"
},
"$:/language/RelativeDate/Past/Years": {
"title": "$:/language/RelativeDate/Past/Years",
"text": "<<period>> years ago"
},
"$:/language/Docs/ModuleTypes/allfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/allfilteroperator",
"text": "A sub-operator for the ''all'' filter operator."
},
"$:/language/Docs/ModuleTypes/animation": {
"title": "$:/language/Docs/ModuleTypes/animation",
"text": "Animations that may be used with the RevealWidget."
},
"$:/language/Docs/ModuleTypes/authenticator": {
"title": "$:/language/Docs/ModuleTypes/authenticator",
"text": "Defines how requests are authenticated by the built-in HTTP server."
},
"$:/language/Docs/ModuleTypes/bitmapeditoroperation": {
"title": "$:/language/Docs/ModuleTypes/bitmapeditoroperation",
"text": "A bitmap editor toolbar operation."
},
"$:/language/Docs/ModuleTypes/command": {
"title": "$:/language/Docs/ModuleTypes/command",
"text": "Commands that can be executed under Node.js."
},
"$:/language/Docs/ModuleTypes/config": {
"title": "$:/language/Docs/ModuleTypes/config",
"text": "Data to be inserted into `$tw.config`."
},
"$:/language/Docs/ModuleTypes/filteroperator": {
"title": "$:/language/Docs/ModuleTypes/filteroperator",
"text": "Individual filter operator methods."
},
"$:/language/Docs/ModuleTypes/global": {
"title": "$:/language/Docs/ModuleTypes/global",
"text": "Global data to be inserted into `$tw`."
},
"$:/language/Docs/ModuleTypes/info": {
"title": "$:/language/Docs/ModuleTypes/info",
"text": "Publishes system information via the [[$:/temp/info-plugin]] pseudo-plugin."
},
"$:/language/Docs/ModuleTypes/isfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/isfilteroperator",
"text": "Operands for the ''is'' filter operator."
},
"$:/language/Docs/ModuleTypes/library": {
"title": "$:/language/Docs/ModuleTypes/library",
"text": "Generic module type for general purpose JavaScript modules."
},
"$:/language/Docs/ModuleTypes/macro": {
"title": "$:/language/Docs/ModuleTypes/macro",
"text": "JavaScript macro definitions."
},
"$:/language/Docs/ModuleTypes/parser": {
"title": "$:/language/Docs/ModuleTypes/parser",
"text": "Parsers for different content types."
},
"$:/language/Docs/ModuleTypes/route": {
"title": "$:/language/Docs/ModuleTypes/route",
"text": "Defines how individual URL patterns are handled by the built-in HTTP server."
},
"$:/language/Docs/ModuleTypes/saver": {
"title": "$:/language/Docs/ModuleTypes/saver",
"text": "Savers handle different methods for saving files from the browser."
},
"$:/language/Docs/ModuleTypes/startup": {
"title": "$:/language/Docs/ModuleTypes/startup",
"text": "Startup functions."
},
"$:/language/Docs/ModuleTypes/storyview": {
"title": "$:/language/Docs/ModuleTypes/storyview",
"text": "Story views customise the animation and behaviour of list widgets."
},
"$:/language/Docs/ModuleTypes/texteditoroperation": {
"title": "$:/language/Docs/ModuleTypes/texteditoroperation",
"text": "A text editor toolbar operation."
},
"$:/language/Docs/ModuleTypes/tiddlerdeserializer": {
"title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer",
"text": "Converts different content types into tiddlers."
},
"$:/language/Docs/ModuleTypes/tiddlerfield": {
"title": "$:/language/Docs/ModuleTypes/tiddlerfield",
"text": "Defines the behaviour of an individual tiddler field."
},
"$:/language/Docs/ModuleTypes/tiddlermethod": {
"title": "$:/language/Docs/ModuleTypes/tiddlermethod",
"text": "Adds methods to the `$tw.Tiddler` prototype."
},
"$:/language/Docs/ModuleTypes/upgrader": {
"title": "$:/language/Docs/ModuleTypes/upgrader",
"text": "Applies upgrade processing to tiddlers during an upgrade/import."
},
"$:/language/Docs/ModuleTypes/utils": {
"title": "$:/language/Docs/ModuleTypes/utils",
"text": "Adds methods to `$tw.utils`."
},
"$:/language/Docs/ModuleTypes/utils-node": {
"title": "$:/language/Docs/ModuleTypes/utils-node",
"text": "Adds Node.js-specific methods to `$tw.utils`."
},
"$:/language/Docs/ModuleTypes/widget": {
"title": "$:/language/Docs/ModuleTypes/widget",
"text": "Widgets encapsulate DOM rendering and refreshing."
},
"$:/language/Docs/ModuleTypes/wikimethod": {
"title": "$:/language/Docs/ModuleTypes/wikimethod",
"text": "Adds methods to `$tw.Wiki`."
},
"$:/language/Docs/ModuleTypes/wikirule": {
"title": "$:/language/Docs/ModuleTypes/wikirule",
"text": "Individual parser rules for the main WikiText parser."
},
"$:/language/Docs/PaletteColours/alert-background": {
"title": "$:/language/Docs/PaletteColours/alert-background",
"text": "Alert background"
},
"$:/language/Docs/PaletteColours/alert-border": {
"title": "$:/language/Docs/PaletteColours/alert-border",
"text": "Alert border"
},
"$:/language/Docs/PaletteColours/alert-highlight": {
"title": "$:/language/Docs/PaletteColours/alert-highlight",
"text": "Alert highlight"
},
"$:/language/Docs/PaletteColours/alert-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/alert-muted-foreground",
"text": "Alert muted foreground"
},
"$:/language/Docs/PaletteColours/background": {
"title": "$:/language/Docs/PaletteColours/background",
"text": "General background"
},
"$:/language/Docs/PaletteColours/blockquote-bar": {
"title": "$:/language/Docs/PaletteColours/blockquote-bar",
"text": "Blockquote bar"
},
"$:/language/Docs/PaletteColours/button-background": {
"title": "$:/language/Docs/PaletteColours/button-background",
"text": "Default button background"
},
"$:/language/Docs/PaletteColours/button-border": {
"title": "$:/language/Docs/PaletteColours/button-border",
"text": "Default button border"
},
"$:/language/Docs/PaletteColours/button-foreground": {
"title": "$:/language/Docs/PaletteColours/button-foreground",
"text": "Default button foreground"
},
"$:/language/Docs/PaletteColours/dirty-indicator": {
"title": "$:/language/Docs/PaletteColours/dirty-indicator",
"text": "Unsaved changes indicator"
},
"$:/language/Docs/PaletteColours/code-background": {
"title": "$:/language/Docs/PaletteColours/code-background",
"text": "Code background"
},
"$:/language/Docs/PaletteColours/code-border": {
"title": "$:/language/Docs/PaletteColours/code-border",
"text": "Code border"
},
"$:/language/Docs/PaletteColours/code-foreground": {
"title": "$:/language/Docs/PaletteColours/code-foreground",
"text": "Code foreground"
},
"$:/language/Docs/PaletteColours/download-background": {
"title": "$:/language/Docs/PaletteColours/download-background",
"text": "Download button background"
},
"$:/language/Docs/PaletteColours/download-foreground": {
"title": "$:/language/Docs/PaletteColours/download-foreground",
"text": "Download button foreground"
},
"$:/language/Docs/PaletteColours/dragger-background": {
"title": "$:/language/Docs/PaletteColours/dragger-background",
"text": "Dragger background"
},
"$:/language/Docs/PaletteColours/dragger-foreground": {
"title": "$:/language/Docs/PaletteColours/dragger-foreground",
"text": "Dragger foreground"
},
"$:/language/Docs/PaletteColours/dropdown-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-background",
"text": "Dropdown background"
},
"$:/language/Docs/PaletteColours/dropdown-border": {
"title": "$:/language/Docs/PaletteColours/dropdown-border",
"text": "Dropdown border"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected",
"text": "Dropdown tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background",
"text": "Dropdown tab background"
},
"$:/language/Docs/PaletteColours/dropzone-background": {
"title": "$:/language/Docs/PaletteColours/dropzone-background",
"text": "Dropzone background"
},
"$:/language/Docs/PaletteColours/external-link-background-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-background-hover",
"text": "External link background hover"
},
"$:/language/Docs/PaletteColours/external-link-background-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-background-visited",
"text": "External link background visited"
},
"$:/language/Docs/PaletteColours/external-link-background": {
"title": "$:/language/Docs/PaletteColours/external-link-background",
"text": "External link background"
},
"$:/language/Docs/PaletteColours/external-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-hover",
"text": "External link foreground hover"
},
"$:/language/Docs/PaletteColours/external-link-foreground-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-visited",
"text": "External link foreground visited"
},
"$:/language/Docs/PaletteColours/external-link-foreground": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground",
"text": "External link foreground"
},
"$:/language/Docs/PaletteColours/foreground": {
"title": "$:/language/Docs/PaletteColours/foreground",
"text": "General foreground"
},
"$:/language/Docs/PaletteColours/menubar-background": {
"title": "$:/language/Docs/PaletteColours/menubar-background",
"text": "Menu bar background"
},
"$:/language/Docs/PaletteColours/menubar-foreground": {
"title": "$:/language/Docs/PaletteColours/menubar-foreground",
"text": "Menu bar foreground"
},
"$:/language/Docs/PaletteColours/message-background": {
"title": "$:/language/Docs/PaletteColours/message-background",
"text": "Message box background"
},
"$:/language/Docs/PaletteColours/message-border": {
"title": "$:/language/Docs/PaletteColours/message-border",
"text": "Message box border"
},
"$:/language/Docs/PaletteColours/message-foreground": {
"title": "$:/language/Docs/PaletteColours/message-foreground",
"text": "Message box foreground"
},
"$:/language/Docs/PaletteColours/modal-backdrop": {
"title": "$:/language/Docs/PaletteColours/modal-backdrop",
"text": "Modal backdrop"
},
"$:/language/Docs/PaletteColours/modal-background": {
"title": "$:/language/Docs/PaletteColours/modal-background",
"text": "Modal background"
},
"$:/language/Docs/PaletteColours/modal-border": {
"title": "$:/language/Docs/PaletteColours/modal-border",
"text": "Modal border"
},
"$:/language/Docs/PaletteColours/modal-footer-background": {
"title": "$:/language/Docs/PaletteColours/modal-footer-background",
"text": "Modal footer background"
},
"$:/language/Docs/PaletteColours/modal-footer-border": {
"title": "$:/language/Docs/PaletteColours/modal-footer-border",
"text": "Modal footer border"
},
"$:/language/Docs/PaletteColours/modal-header-border": {
"title": "$:/language/Docs/PaletteColours/modal-header-border",
"text": "Modal header border"
},
"$:/language/Docs/PaletteColours/muted-foreground": {
"title": "$:/language/Docs/PaletteColours/muted-foreground",
"text": "General muted foreground"
},
"$:/language/Docs/PaletteColours/notification-background": {
"title": "$:/language/Docs/PaletteColours/notification-background",
"text": "Notification background"
},
"$:/language/Docs/PaletteColours/notification-border": {
"title": "$:/language/Docs/PaletteColours/notification-border",
"text": "Notification border"
},
"$:/language/Docs/PaletteColours/page-background": {
"title": "$:/language/Docs/PaletteColours/page-background",
"text": "Page background"
},
"$:/language/Docs/PaletteColours/pre-background": {
"title": "$:/language/Docs/PaletteColours/pre-background",
"text": "Preformatted code background"
},
"$:/language/Docs/PaletteColours/pre-border": {
"title": "$:/language/Docs/PaletteColours/pre-border",
"text": "Preformatted code border"
},
"$:/language/Docs/PaletteColours/primary": {
"title": "$:/language/Docs/PaletteColours/primary",
"text": "General primary"
},
"$:/language/Docs/PaletteColours/select-tag-background": {
"title": "$:/language/Docs/PaletteColours/select-tag-background",
"text": "`<select>` element background"
},
"$:/language/Docs/PaletteColours/select-tag-foreground": {
"title": "$:/language/Docs/PaletteColours/select-tag-foreground",
"text": "`<select>` element text"
},
"$:/language/Docs/PaletteColours/sidebar-button-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-button-foreground",
"text": "Sidebar button foreground"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover",
"text": "Sidebar controls foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground",
"text": "Sidebar controls foreground"
},
"$:/language/Docs/PaletteColours/sidebar-foreground-shadow": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow",
"text": "Sidebar foreground shadow"
},
"$:/language/Docs/PaletteColours/sidebar-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground",
"text": "Sidebar foreground"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover",
"text": "Sidebar muted foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground",
"text": "Sidebar muted foreground"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected",
"text": "Sidebar tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background",
"text": "Sidebar tab background"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected",
"text": "Sidebar tab border for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border",
"text": "Sidebar tab border"
},
"$:/language/Docs/PaletteColours/sidebar-tab-divider": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-divider",
"text": "Sidebar tab divider"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected",
"text": "Sidebar tab foreground for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground",
"text": "Sidebar tab foreground"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover",
"text": "Sidebar tiddler link foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground",
"text": "Sidebar tiddler link foreground"
},
"$:/language/Docs/PaletteColours/site-title-foreground": {
"title": "$:/language/Docs/PaletteColours/site-title-foreground",
"text": "Site title foreground"
},
"$:/language/Docs/PaletteColours/static-alert-foreground": {
"title": "$:/language/Docs/PaletteColours/static-alert-foreground",
"text": "Static alert foreground"
},
"$:/language/Docs/PaletteColours/tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/tab-background-selected",
"text": "Tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-background": {
"title": "$:/language/Docs/PaletteColours/tab-background",
"text": "Tab background"
},
"$:/language/Docs/PaletteColours/tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/tab-border-selected",
"text": "Tab border for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-border": {
"title": "$:/language/Docs/PaletteColours/tab-border",
"text": "Tab border"
},
"$:/language/Docs/PaletteColours/tab-divider": {
"title": "$:/language/Docs/PaletteColours/tab-divider",
"text": "Tab divider"
},
"$:/language/Docs/PaletteColours/tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tab-foreground-selected",
"text": "Tab foreground for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-foreground": {
"title": "$:/language/Docs/PaletteColours/tab-foreground",
"text": "Tab foreground"
},
"$:/language/Docs/PaletteColours/table-border": {
"title": "$:/language/Docs/PaletteColours/table-border",
"text": "Table border"
},
"$:/language/Docs/PaletteColours/table-footer-background": {
"title": "$:/language/Docs/PaletteColours/table-footer-background",
"text": "Table footer background"
},
"$:/language/Docs/PaletteColours/table-header-background": {
"title": "$:/language/Docs/PaletteColours/table-header-background",
"text": "Table header background"
},
"$:/language/Docs/PaletteColours/tag-background": {
"title": "$:/language/Docs/PaletteColours/tag-background",
"text": "Tag background"
},
"$:/language/Docs/PaletteColours/tag-foreground": {
"title": "$:/language/Docs/PaletteColours/tag-foreground",
"text": "Tag foreground"
},
"$:/language/Docs/PaletteColours/tiddler-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-background",
"text": "Tiddler background"
},
"$:/language/Docs/PaletteColours/tiddler-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-border",
"text": "Tiddler border"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover",
"text": "Tiddler controls foreground hover"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected",
"text": "Tiddler controls foreground for selected controls"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground",
"text": "Tiddler controls foreground"
},
"$:/language/Docs/PaletteColours/tiddler-editor-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-background",
"text": "Tiddler editor background"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border-image": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image",
"text": "Tiddler editor border image"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border",
"text": "Tiddler editor border"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-even": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even",
"text": "Tiddler editor background for even fields"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd",
"text": "Tiddler editor background for odd fields"
},
"$:/language/Docs/PaletteColours/tiddler-info-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-background",
"text": "Tiddler info panel background"
},
"$:/language/Docs/PaletteColours/tiddler-info-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-border",
"text": "Tiddler info panel border"
},
"$:/language/Docs/PaletteColours/tiddler-info-tab-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background",
"text": "Tiddler info panel tab background"
},
"$:/language/Docs/PaletteColours/tiddler-link-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-background",
"text": "Tiddler link background"
},
"$:/language/Docs/PaletteColours/tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-foreground",
"text": "Tiddler link foreground"
},
"$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground",
"text": "Tiddler subtitle foreground"
},
"$:/language/Docs/PaletteColours/tiddler-title-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-title-foreground",
"text": "Tiddler title foreground"
},
"$:/language/Docs/PaletteColours/toolbar-new-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-new-button",
"text": "Toolbar 'new tiddler' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-options-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-options-button",
"text": "Toolbar 'options' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-save-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-save-button",
"text": "Toolbar 'save' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-info-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-info-button",
"text": "Toolbar 'info' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-edit-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-edit-button",
"text": "Toolbar 'edit' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-close-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-close-button",
"text": "Toolbar 'close' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-delete-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-delete-button",
"text": "Toolbar 'delete' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-cancel-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-cancel-button",
"text": "Toolbar 'cancel' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-done-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-done-button",
"text": "Toolbar 'done' button foreground"
},
"$:/language/Docs/PaletteColours/untagged-background": {
"title": "$:/language/Docs/PaletteColours/untagged-background",
"text": "Untagged pill background"
},
"$:/language/Docs/PaletteColours/very-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/very-muted-foreground",
"text": "Very muted foreground"
},
"$:/language/EditTemplate/Body/External/Hint": {
"title": "$:/language/EditTemplate/Body/External/Hint",
"text": "This tiddler shows content stored outside of the main TiddlyWiki file. You can edit the tags and fields but cannot directly edit the content itself"
},
"$:/language/EditTemplate/Body/Placeholder": {
"title": "$:/language/EditTemplate/Body/Placeholder",
"text": "Type the text for this tiddler"
},
"$:/language/EditTemplate/Body/Preview/Type/Output": {
"title": "$:/language/EditTemplate/Body/Preview/Type/Output",
"text": "output"
},
"$:/language/EditTemplate/Field/Remove/Caption": {
"title": "$:/language/EditTemplate/Field/Remove/Caption",
"text": "remove field"
},
"$:/language/EditTemplate/Field/Remove/Hint": {
"title": "$:/language/EditTemplate/Field/Remove/Hint",
"text": "Remove field"
},
"$:/language/EditTemplate/Field/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Field/Dropdown/Caption",
"text": "field list"
},
"$:/language/EditTemplate/Field/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Field/Dropdown/Hint",
"text": "Show field list"
},
"$:/language/EditTemplate/Fields/Add/Button": {
"title": "$:/language/EditTemplate/Fields/Add/Button",
"text": "add"
},
"$:/language/EditTemplate/Fields/Add/Button/Hint": {
"title": "$:/language/EditTemplate/Fields/Add/Button/Hint",
"text": "Add the new field to the tiddler"
},
"$:/language/EditTemplate/Fields/Add/Name/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder",
"text": "field name"
},
"$:/language/EditTemplate/Fields/Add/Prompt": {
"title": "$:/language/EditTemplate/Fields/Add/Prompt",
"text": "Add a new field:"
},
"$:/language/EditTemplate/Fields/Add/Value/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder",
"text": "field value"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/System": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/System",
"text": "System fields"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/User": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/User",
"text": "User fields"
},
"$:/language/EditTemplate/Shadow/Warning": {
"title": "$:/language/EditTemplate/Shadow/Warning",
"text": "This is a shadow tiddler. Any changes you make will override the default version from the plugin <<pluginLink>>"
},
"$:/language/EditTemplate/Shadow/OverriddenWarning": {
"title": "$:/language/EditTemplate/Shadow/OverriddenWarning",
"text": "This is a modified shadow tiddler. You can revert to the default version in the plugin <<pluginLink>> by deleting this tiddler"
},
"$:/language/EditTemplate/Tags/Add/Button": {
"title": "$:/language/EditTemplate/Tags/Add/Button",
"text": "add"
},
"$:/language/EditTemplate/Tags/Add/Button/Hint": {
"title": "$:/language/EditTemplate/Tags/Add/Button/Hint",
"text": "add tag"
},
"$:/language/EditTemplate/Tags/Add/Placeholder": {
"title": "$:/language/EditTemplate/Tags/Add/Placeholder",
"text": "tag name"
},
"$:/language/EditTemplate/Tags/ClearInput/Caption": {
"title": "$:/language/EditTemplate/Tags/ClearInput/Caption",
"text": "clear input"
},
"$:/language/EditTemplate/Tags/ClearInput/Hint": {
"title": "$:/language/EditTemplate/Tags/ClearInput/Hint",
"text": "Clear tag input"
},
"$:/language/EditTemplate/Tags/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Caption",
"text": "tag list"
},
"$:/language/EditTemplate/Tags/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Hint",
"text": "Show tag list"
},
"$:/language/EditTemplate/Title/BadCharacterWarning": {
"title": "$:/language/EditTemplate/Title/BadCharacterWarning",
"text": "Warning: avoid using any of the characters <<bad-chars>> in tiddler titles"
},
"$:/language/EditTemplate/Title/Exists/Prompt": {
"title": "$:/language/EditTemplate/Title/Exists/Prompt",
"text": "Target tiddler already exists"
},
"$:/language/EditTemplate/Title/Relink/Prompt": {
"title": "$:/language/EditTemplate/Title/Relink/Prompt",
"text": "Update ''<$text text=<<fromTitle>>/>'' to ''<$text text=<<toTitle>>/>'' in the //tags// and //list// fields of other tiddlers"
},
"$:/language/EditTemplate/Title/References/Prompt": {
"title": "$:/language/EditTemplate/Title/References/Prompt",
"text": "The following references to this tiddler will not be automatically updated:"
},
"$:/language/EditTemplate/Type/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Type/Dropdown/Caption",
"text": "content type list"
},
"$:/language/EditTemplate/Type/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Type/Dropdown/Hint",
"text": "Show content type list"
},
"$:/language/EditTemplate/Type/Delete/Caption": {
"title": "$:/language/EditTemplate/Type/Delete/Caption",
"text": "delete content type"
},
"$:/language/EditTemplate/Type/Delete/Hint": {
"title": "$:/language/EditTemplate/Type/Delete/Hint",
"text": "Delete content type"
},
"$:/language/EditTemplate/Type/Placeholder": {
"title": "$:/language/EditTemplate/Type/Placeholder",
"text": "content type"
},
"$:/language/EditTemplate/Type/Prompt": {
"title": "$:/language/EditTemplate/Type/Prompt",
"text": "Type:"
},
"$:/language/Exporters/StaticRiver": {
"title": "$:/language/Exporters/StaticRiver",
"text": "Static HTML"
},
"$:/language/Exporters/JsonFile": {
"title": "$:/language/Exporters/JsonFile",
"text": "JSON file"
},
"$:/language/Exporters/CsvFile": {
"title": "$:/language/Exporters/CsvFile",
"text": "CSV file"
},
"$:/language/Exporters/TidFile": {
"title": "$:/language/Exporters/TidFile",
"text": "\".tid\" file"
},
"$:/language/Docs/Fields/_canonical_uri": {
"title": "$:/language/Docs/Fields/_canonical_uri",
"text": "The full URI of an external image tiddler"
},
"$:/language/Docs/Fields/bag": {
"title": "$:/language/Docs/Fields/bag",
"text": "The name of the bag from which a tiddler came"
},
"$:/language/Docs/Fields/caption": {
"title": "$:/language/Docs/Fields/caption",
"text": "The text to be displayed on a tab or button"
},
"$:/language/Docs/Fields/color": {
"title": "$:/language/Docs/Fields/color",
"text": "The CSS color value associated with a tiddler"
},
"$:/language/Docs/Fields/component": {
"title": "$:/language/Docs/Fields/component",
"text": "The name of the component responsible for an [[alert tiddler|AlertMechanism]]"
},
"$:/language/Docs/Fields/current-tiddler": {
"title": "$:/language/Docs/Fields/current-tiddler",
"text": "Used to cache the top tiddler in a [[history list|HistoryMechanism]]"
},
"$:/language/Docs/Fields/created": {
"title": "$:/language/Docs/Fields/created",
"text": "The date a tiddler was created"
},
"$:/language/Docs/Fields/creator": {
"title": "$:/language/Docs/Fields/creator",
"text": "The name of the person who created a tiddler"
},
"$:/language/Docs/Fields/dependents": {
"title": "$:/language/Docs/Fields/dependents",
"text": "For a plugin, lists the dependent plugin titles"
},
"$:/language/Docs/Fields/description": {
"title": "$:/language/Docs/Fields/description",
"text": "The descriptive text for a plugin, or a modal dialogue"
},
"$:/language/Docs/Fields/draft.of": {
"title": "$:/language/Docs/Fields/draft.of",
"text": "For draft tiddlers, contains the title of the tiddler of which this is a draft"
},
"$:/language/Docs/Fields/draft.title": {
"title": "$:/language/Docs/Fields/draft.title",
"text": "For draft tiddlers, contains the proposed new title of the tiddler"
},
"$:/language/Docs/Fields/footer": {
"title": "$:/language/Docs/Fields/footer",
"text": "The footer text for a wizard"
},
"$:/language/Docs/Fields/hide-body": {
"title": "$:/language/Docs/Fields/hide-body",
"text": "The view template will hide bodies of tiddlers if set to: ''yes''"
},
"$:/language/Docs/Fields/icon": {
"title": "$:/language/Docs/Fields/icon",
"text": "The title of the tiddler containing the icon associated with a tiddler"
},
"$:/language/Docs/Fields/library": {
"title": "$:/language/Docs/Fields/library",
"text": "Indicates that a tiddler should be saved as a JavaScript library if set to: ''yes''"
},
"$:/language/Docs/Fields/list": {
"title": "$:/language/Docs/Fields/list",
"text": "An ordered list of tiddler titles associated with a tiddler"
},
"$:/language/Docs/Fields/list-before": {
"title": "$:/language/Docs/Fields/list-before",
"text": "If set, the title of a tiddler before which this tiddler should be added to the ordered list of tiddler titles, or at the start of the list if this field is present but empty"
},
"$:/language/Docs/Fields/list-after": {
"title": "$:/language/Docs/Fields/list-after",
"text": "If set, the title of the tiddler after which this tiddler should be added to the ordered list of tiddler titles, or at the end of the list if this field is present but empty"
},
"$:/language/Docs/Fields/modified": {
"title": "$:/language/Docs/Fields/modified",
"text": "The date and time at which a tiddler was last modified"
},
"$:/language/Docs/Fields/modifier": {
"title": "$:/language/Docs/Fields/modifier",
"text": "The tiddler title associated with the person who last modified a tiddler"
},
"$:/language/Docs/Fields/name": {
"title": "$:/language/Docs/Fields/name",
"text": "The human readable name associated with a plugin tiddler"
},
"$:/language/Docs/Fields/plugin-priority": {
"title": "$:/language/Docs/Fields/plugin-priority",
"text": "A numerical value indicating the priority of a plugin tiddler"
},
"$:/language/Docs/Fields/plugin-type": {
"title": "$:/language/Docs/Fields/plugin-type",
"text": "The type of plugin in a plugin tiddler"
},
"$:/language/Docs/Fields/revision": {
"title": "$:/language/Docs/Fields/revision",
"text": "The revision of the tiddler held at the server"
},
"$:/language/Docs/Fields/released": {
"title": "$:/language/Docs/Fields/released",
"text": "Date of a TiddlyWiki release"
},
"$:/language/Docs/Fields/source": {
"title": "$:/language/Docs/Fields/source",
"text": "The source URL associated with a tiddler"
},
"$:/language/Docs/Fields/subtitle": {
"title": "$:/language/Docs/Fields/subtitle",
"text": "The subtitle text for a wizard"
},
"$:/language/Docs/Fields/tags": {
"title": "$:/language/Docs/Fields/tags",
"text": "A list of tags associated with a tiddler"
},
"$:/language/Docs/Fields/text": {
"title": "$:/language/Docs/Fields/text",
"text": "The body text of a tiddler"
},
"$:/language/Docs/Fields/throttle.refresh": {
"title": "$:/language/Docs/Fields/throttle.refresh",
"text": "If present, throttles refreshes of this tiddler"
},
"$:/language/Docs/Fields/title": {
"title": "$:/language/Docs/Fields/title",
"text": "The unique name of a tiddler"
},
"$:/language/Docs/Fields/toc-link": {
"title": "$:/language/Docs/Fields/toc-link",
"text": "Suppresses the tiddler's link in a Table of Contents tree if set to: ''no''"
},
"$:/language/Docs/Fields/type": {
"title": "$:/language/Docs/Fields/type",
"text": "The content type of a tiddler"
},
"$:/language/Docs/Fields/version": {
"title": "$:/language/Docs/Fields/version",
"text": "Version information for a plugin"
},
"$:/language/Docs/Fields/_is_skinny": {
"title": "$:/language/Docs/Fields/_is_skinny",
"text": "If present, indicates that the tiddler text field must be loaded from the server"
},
"$:/language/Filters/AllTiddlers": {
"title": "$:/language/Filters/AllTiddlers",
"text": "All tiddlers except system tiddlers"
},
"$:/language/Filters/RecentSystemTiddlers": {
"title": "$:/language/Filters/RecentSystemTiddlers",
"text": "Recently modified tiddlers, including system tiddlers"
},
"$:/language/Filters/RecentTiddlers": {
"title": "$:/language/Filters/RecentTiddlers",
"text": "Recently modified tiddlers"
},
"$:/language/Filters/AllTags": {
"title": "$:/language/Filters/AllTags",
"text": "All tags except system tags"
},
"$:/language/Filters/Missing": {
"title": "$:/language/Filters/Missing",
"text": "Missing tiddlers"
},
"$:/language/Filters/Drafts": {
"title": "$:/language/Filters/Drafts",
"text": "Draft tiddlers"
},
"$:/language/Filters/Orphans": {
"title": "$:/language/Filters/Orphans",
"text": "Orphan tiddlers"
},
"$:/language/Filters/SystemTiddlers": {
"title": "$:/language/Filters/SystemTiddlers",
"text": "System tiddlers"
},
"$:/language/Filters/ShadowTiddlers": {
"title": "$:/language/Filters/ShadowTiddlers",
"text": "Shadow tiddlers"
},
"$:/language/Filters/OverriddenShadowTiddlers": {
"title": "$:/language/Filters/OverriddenShadowTiddlers",
"text": "Overridden shadow tiddlers"
},
"$:/language/Filters/SessionTiddlers": {
"title": "$:/language/Filters/SessionTiddlers",
"text": "Tiddlers modified since the wiki was loaded"
},
"$:/language/Filters/SystemTags": {
"title": "$:/language/Filters/SystemTags",
"text": "System tags"
},
"$:/language/Filters/StoryList": {
"title": "$:/language/Filters/StoryList",
"text": "Tiddlers in the story river, excluding <$text text=\"$:/AdvancedSearch\"/>"
},
"$:/language/Filters/TypedTiddlers": {
"title": "$:/language/Filters/TypedTiddlers",
"text": "Non wiki-text tiddlers"
},
"GettingStarted": {
"title": "GettingStarted",
"text": "\\define lingo-base() $:/language/ControlPanel/Basics/\nWelcome to ~TiddlyWiki and the ~TiddlyWiki community\n\nBefore you start storing important information in ~TiddlyWiki it is vital to make sure that you can reliably save changes. See https://tiddlywiki.com/#GettingStarted for details\n\n!! Set up this ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\nSee the [[control panel|$:/ControlPanel]] for more options.\n"
},
"$:/language/Help/build": {
"title": "$:/language/Help/build",
"description": "Automatically run configured commands",
"text": "Build the specified build targets for the current wiki. If no build targets are specified then all available targets will be built.\n\n```\n--build <target> [<target> ...]\n```\n\nBuild targets are defined in the `tiddlywiki.info` file of a wiki folder.\n\n"
},
"$:/language/Help/clearpassword": {
"title": "$:/language/Help/clearpassword",
"description": "Clear a password for subsequent crypto operations",
"text": "Clear the password for subsequent crypto operations\n\n```\n--clearpassword\n```\n"
},
"$:/language/Help/default": {
"title": "$:/language/Help/default",
"text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\nusage: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]\n```\n\nAvailable commands:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\nTo get detailed help on a command:\n\n```\ntiddlywiki --help <command>\n```\n"
},
"$:/language/Help/deletetiddlers": {
"title": "$:/language/Help/deletetiddlers",
"description": "Deletes a group of tiddlers",
"text": "<<.from-version \"5.1.20\">> Deletes a group of tiddlers identified by a filter.\n\n```\n--deletetiddlers <filter>\n```\n"
},
"$:/language/Help/editions": {
"title": "$:/language/Help/editions",
"description": "Lists the available editions of TiddlyWiki",
"text": "Lists the names and descriptions of the available editions. You can create a new wiki of a specified edition with the `--init` command.\n\n```\n--editions\n```\n"
},
"$:/language/Help/fetch": {
"title": "$:/language/Help/fetch",
"description": "Fetch tiddlers from wiki by URL",
"text": "Fetch one or more files over HTTP/HTTPS, and import the tiddlers matching a filter, optionally transforming the incoming titles.\n\n```\n--fetch file <url> <import-filter> <transform-filter>\n--fetch files <url-filter> <import-filter> <transform-filter>\n--fetch raw-file <url> <transform-filter>\n--fetch raw-files <url-filter> <transform-filter>\n```\n\nThe \"file\" and \"files\" variants fetch the specified files and attempt to import the tiddlers within them (the same processing as if the files were dragged into the browser window). The \"raw-file\" and \"raw-files\" variants fetch the specified files and then store the raw file data in tiddlers, without applying the import logic.\n\nWith the \"file\" and \"raw-file\" variants only a single file is fetched and the first parameter is the URL of the file to read.\n\nWith the \"files\" and \"raw-files\" variants, multiple files are fetched and the first parameter is a filter yielding a list of URLs of the files to read. For example, given a set of tiddlers tagged \"remote-server\" that have a field \"url\" the filter `[tag[remote-server]get[url]]` will retrieve all the available URLs.\n\nFor the \"file\" and \"files\" variants, the `<import-filter>` parameter specifies a filter determining which tiddlers are imported. It defaults to `[all[tiddlers]]` if not provided.\n\nFor all variants, the `<transform-filter>` parameter specifies an optional filter that transforms the titles of the imported tiddlers. For example, `[addprefix[$:/myimports/]]` would add the prefix `$:/myimports/` to each title.\n\nPreceding the `--fetch` command with `--verbose` will output progress information during the import.\n\nNote that TiddlyWiki will not fetch an older version of an already loaded plugin.\n\nThe following example retrieves all the non-system tiddlers from https://tiddlywiki.com and saves them to a JSON file:\n\n```\ntiddlywiki --verbose --fetch file \"https://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n\nThe following example retrieves the \"favicon\" file from tiddlywiki.com and saves it in a file called \"output.ico\". Note that the intermediate tiddler \"Icon Tiddler\" is quoted in the \"--fetch\" command because it is being used as a transformation filter to replace the default title, while there are no quotes for the \"--savetiddler\" command because it is being used directly as a title.\n\n```\ntiddlywiki --verbose --fetch raw-file \"https://tiddlywiki.com/favicon.ico\" \"[[Icon Tiddler]]\" --savetiddler \"Icon Tiddler\" output.ico\n```\n\n"
},
"$:/language/Help/help": {
"title": "$:/language/Help/help",
"description": "Display help for TiddlyWiki commands",
"text": "Displays help text for a command:\n\n```\n--help [<command>]\n```\n\nIf the command name is omitted then a list of available commands is displayed.\n"
},
"$:/language/Help/import": {
"title": "$:/language/Help/import",
"description": "Import tiddlers from a file",
"text": "Import tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The deserializer must be explicitly specified, unlike the `load` command which infers the deserializer from the file extension.\n\n```\n--import <filepath> <deserializer> [<title>] [<encoding>]\n```\n\nThe deserializers in the core include:\n\n* application/javascript\n* application/json\n* application/x-tiddler\n* application/x-tiddler-html-div\n* application/x-tiddlers\n* text/html\n* text/plain\n\nThe title of the imported tiddler defaults to the filename.\n\nThe encoding defaults to \"utf8\", but can be \"base64\" for importing binary files.\n\nNote that TiddlyWiki will not import an older version of an already loaded plugin.\n"
},
"$:/language/Help/init": {
"title": "$:/language/Help/init",
"description": "Initialise a new wiki folder",
"text": "Initialise an empty [[WikiFolder|WikiFolders]] with a copy of the specified edition.\n\n```\n--init <edition> [<edition> ...]\n```\n\nFor example:\n\n```\ntiddlywiki ./MyWikiFolder --init empty\n```\n\nNote:\n\n* The wiki folder directory will be created if necessary\n* The \"edition\" defaults to ''empty''\n* The init command will fail if the wiki folder is not empty\n* The init command removes any `includeWikis` definitions in the edition's `tiddlywiki.info` file\n* When multiple editions are specified, editions initialised later will overwrite any files shared with earlier editions (so, the final `tiddlywiki.info` file will be copied from the last edition)\n* `--editions` returns a list of available editions\n"
},
"$:/language/Help/listen": {
"title": "$:/language/Help/listen",
"description": "Provides an HTTP server interface to TiddlyWiki",
"text": "Serves a wiki over HTTP.\n\nThe listen command uses NamedCommandParameters:\n\n```\n--listen [<name>=<value>]...\n```\n\nAll parameters are optional with safe defaults, and can be specified in any order. The recognised parameters are:\n\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''credentials'' - pathname of credentials CSV file (relative to wiki folder)\n* ''anon-username'' - the username for signing edits for anonymous users\n* ''username'' - optional username for basic authentication\n* ''password'' - optional password for basic authentication\n* ''authenticated-user-header'' - optional name of header to be used for trusted authentication\n* ''readers'' - comma separated list of principals allowed to read from this wiki\n* ''writers'' - comma separated list of principals allowed to write to this wiki\n* ''csrf-disable'' - set to \"yes\" to disable CSRF checks (defaults to \"no\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''tls-cert'' - pathname of TLS certificate file (relative to wiki folder)\n* ''tls-key'' - pathname of TLS key file (relative to wiki folder)\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n* ''gzip'' - set to \"yes\" to enable gzip compression for some http endpoints (defaults to \"no\")\n\nFor information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\n"
},
"$:/language/Help/load": {
"title": "$:/language/Help/load",
"description": "Load tiddlers from a file",
"text": "Load tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The processing applied to incoming files is determined by the file extension. Use the alternative `import` command if you need to specify the deserializer and encoding explicitly.\n\n```\n--load <filepath> [noerror]\n--load <dirpath> [noerror]\n```\n\nBy default, the load command raises an error if no tiddlers are found. The error can be suppressed by providing the optional \"noerror\" parameter.\n\nTo load tiddlers from an encrypted TiddlyWiki file you should first specify the password with the PasswordCommand. For example:\n\n```\ntiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html\n```\n\nNote that TiddlyWiki will not load an older version of an already loaded plugin.\n"
},
"$:/language/Help/makelibrary": {
"title": "$:/language/Help/makelibrary",
"description": "Construct library plugin required by upgrade process",
"text": "Constructs the `$:/UpgradeLibrary` tiddler for the upgrade process.\n\nThe upgrade library is formatted as an ordinary plugin tiddler with the plugin type `library`. It contains a copy of each of the plugins, themes and language packs available within the TiddlyWiki5 repository.\n\nThis command is intended for internal use; it is only relevant to users constructing a custom upgrade procedure.\n\n```\n--makelibrary <title>\n```\n\nThe title argument defaults to `$:/UpgradeLibrary`.\n"
},
"$:/language/Help/notfound": {
"title": "$:/language/Help/notfound",
"text": "No such help item"
},
"$:/language/Help/output": {
"title": "$:/language/Help/output",
"description": "Set the base output directory for subsequent commands",
"text": "Sets the base output directory for subsequent commands. The default output directory is the `output` subdirectory of the edition directory.\n\n```\n--output <pathname>\n```\n\nIf the specified pathname is relative then it is resolved relative to the current working directory. For example `--output .` sets the output directory to the current working directory.\n\n"
},
"$:/language/Help/password": {
"title": "$:/language/Help/password",
"description": "Set a password for subsequent crypto operations",
"text": "Set a password for subsequent crypto operations\n\n```\n--password <password>\n```\n\n''Note'': This should not be used for serving TiddlyWiki with password protection. Instead, see the password option under the [[ServerCommand]].\n"
},
"$:/language/Help/render": {
"title": "$:/language/Help/render",
"description": "Renders individual tiddlers to files",
"text": "Render individual tiddlers identified by a filter and save the results to the specified files.\n\nOptionally, the title of a template tiddler can be specified. In this case, instead of directly rendering each tiddler, the template tiddler is rendered with the \"currentTiddler\" variable set to the title of the tiddler that is being rendered.\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--render <tiddler-filter> [<filename-filter>] [<render-type>] [<template>] [<name>] [<value>]\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be rendered\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]addsuffix[.html]]`, which uses the unchanged tiddler title as the filename\n* ''render-type'': Optional render type: `text/html` (the default) returns the full HTML text and `text/plain` just returns the text content (ie it ignores HTML tags and other unprintable material)\n* ''template'': Optional template through which each tiddler is rendered\n* ''name'': Name of optional variable\n* ''value'': Value of optional variable\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When referring to a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--render \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being rendered, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--render` command is a more flexible replacement for both the `--rendertiddler` and `--rendertiddlers` commands, which are deprecated\n\nExamples:\n\n* `--render \"[!is[system]]\" \"[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]\"` -- renders all non-system tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles and the extension HTML\n\n"
},
"$:/language/Help/rendertiddler": {
"title": "$:/language/Help/rendertiddler",
"description": "Render an individual tiddler as a specified ContentType",
"text": "(Note: The `--rendertiddler` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender an individual tiddler as a specified ContentType, defaulting to `text/html` and save it to the specified filename.\n\nOptionally the title of a template tiddler can be specified, in which case the template tiddler is rendered with the \"currentTiddler\" variable set to the tiddler that is being rendered (the first parameter value).\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--rendertiddler <title> <filename> [<type>] [<template>] [<name>] [<value>]\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n\nFor example, the following command saves all tiddlers matching the filter `[tag[done]]` to a JSON file titled `output.json` by employing the core template `$:/core/templates/exporters/JsonFile`.\n\n```\n--rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[tag[done]]\"\n```\n"
},
"$:/language/Help/rendertiddlers": {
"title": "$:/language/Help/rendertiddlers",
"description": "Render tiddlers matching a filter to a specified ContentType",
"text": "(Note: The `--rendertiddlers` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender a set of tiddlers matching a filter to separate files of a specified ContentType (defaults to `text/html`) and extension (defaults to `.html`).\n\n```\n--rendertiddlers '<filter>' <template> <pathname> [<type>] [<extension>] [\"noclean\"]\n```\n\nFor example:\n\n```\n--rendertiddlers '[!is[system]]' $:/core/templates/static.tiddler.html ./static text/plain\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny files in the target directory are deleted unless the ''noclean'' flag is specified. The target directory is recursively created if it is missing.\n"
},
"$:/language/Help/save": {
"title": "$:/language/Help/save",
"description": "Saves individual raw tiddlers to files",
"text": "Saves individual tiddlers identified by a filter in their raw text or binary format to the specified files.\n\n```\n--save <tiddler-filter> <filename-filter>\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be saved\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]]`, which uses the unchanged tiddler title as the filename\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When saving a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--save \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being saved, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--save` command is a more flexible replacement for both the `--savetiddler` and `--savetiddlers` commands, which are deprecated\n\nExamples:\n\n* `--save \"[!is[system]is[image]]\" \"[encodeuricomponent[]addprefix[tiddlers/]]\"` -- saves all non-system image tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles\n"
},
"$:/language/Help/savetiddler": {
"title": "$:/language/Help/savetiddler",
"description": "Saves a raw tiddler to a file",
"text": "(Note: The `--savetiddler` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves an individual tiddler in its raw text or binary format to the specified filename.\n\n```\n--savetiddler <title> <filename>\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n"
},
"$:/language/Help/savetiddlers": {
"title": "$:/language/Help/savetiddlers",
"description": "Saves a group of raw tiddlers to a directory",
"text": "(Note: The `--savetiddlers` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves a group of tiddlers in their raw text or binary format to the specified directory.\n\n```\n--savetiddlers <filter> <pathname> [\"noclean\"]\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nThe output directory is cleared of existing files before saving the specified files. The deletion can be disabled by specifying the ''noclean'' flag.\n\nAny missing directories in the pathname are automatically created.\n"
},
"$:/language/Help/savewikifolder": {
"title": "$:/language/Help/savewikifolder",
"description": "Saves a wiki to a new wiki folder",
"text": "<<.from-version \"5.1.20\">> Saves the current wiki as a wiki folder, including tiddlers, plugins and configuration:\n\n```\n--savewikifolder <wikifolderpath> [<filter>]\n```\n\n* The target wiki folder must be empty or non-existent\n* The filter specifies which tiddlers should be included. It is optional, defaulting to `[all[tiddlers]]`\n* Plugins from the official plugin library are replaced with references to those plugins in the `tiddlywiki.info` file\n* Custom plugins are unpacked into their own folder\n\nA common usage is to convert a TiddlyWiki HTML file into a wiki folder:\n\n```\ntiddlywiki --load ./mywiki.html --savewikifolder ./mywikifolder\n```\n"
},
"$:/language/Help/server": {
"title": "$:/language/Help/server",
"description": "Provides an HTTP server interface to TiddlyWiki (deprecated in favour of the new listen command)",
"text": "Legacy command to serve a wiki over HTTP.\n\n```\n--server <port> <root-tiddler> <root-render-type> <root-serve-type> <username> <password> <host> <path-prefix> <debug-level>\n```\n\nThe parameters are:\n\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''username'' - the default username for signing edits\n* ''password'' - optional password for basic authentication\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n\nIf the password parameter is specified then the browser will prompt the user for the username and password. Note that the password is transmitted in plain text so this implementation should only be used on a trusted network or over HTTPS.\n\nFor example:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n\nThe username and password can be specified as empty strings if you need to set the hostname or pathprefix and don't want to require a password.\n\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\nUsing an address like this exposes your system to the local network. For information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\nTo run multiple TiddlyWiki servers at the same time you'll need to put each one on a different port. It can be useful to use an environment variable to pass the port number to the Node.js process. This example references an environment variable called \"MY_PORT_NUMBER\":\n\n```\n--server MY_PORT_NUMBER $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n"
},
"$:/language/Help/setfield": {
"title": "$:/language/Help/setfield",
"description": "Prepares external tiddlers for use",
"text": "//Note that this command is experimental and may change or be replaced before being finalised//\n\nSets the specified field of a group of tiddlers to the result of wikifying a template tiddler with the `currentTiddler` variable set to the tiddler.\n\n```\n--setfield <filter> <fieldname> <templatetitle> <rendertype>\n```\n\nThe parameters are:\n\n* ''filter'' - filter identifying the tiddlers to be affected\n* ''fieldname'' - the field to modify (defaults to \"text\")\n* ''templatetitle'' - the tiddler to wikify into the specified field. If blank or missing then the specified field is deleted\n* ''rendertype'' - the text type to render (defaults to \"text/plain\"; \"text/html\" can be used to include HTML tags)\n"
},
"$:/language/Help/unpackplugin": {
"title": "$:/language/Help/unpackplugin",
"description": "Unpack the payload tiddlers from a plugin",
"text": "Extract the payload tiddlers from a plugin, creating them as ordinary tiddlers:\n\n```\n--unpackplugin <title>\n```\n"
},
"$:/language/Help/verbose": {
"title": "$:/language/Help/verbose",
"description": "Triggers verbose output mode",
"text": "Triggers verbose output, useful for debugging\n\n```\n--verbose\n```\n"
},
"$:/language/Help/version": {
"title": "$:/language/Help/version",
"description": "Displays the version number of TiddlyWiki",
"text": "Displays the version number of TiddlyWiki.\n\n```\n--version\n```\n"
},
"$:/language/Import/Imported/Hint": {
"title": "$:/language/Import/Imported/Hint",
"text": "The following tiddlers were imported:"
},
"$:/language/Import/Listing/Cancel/Caption": {
"title": "$:/language/Import/Listing/Cancel/Caption",
"text": "Cancel"
},
"$:/language/Import/Listing/Hint": {
"title": "$:/language/Import/Listing/Hint",
"text": "These tiddlers are ready to import:"
},
"$:/language/Import/Listing/Import/Caption": {
"title": "$:/language/Import/Listing/Import/Caption",
"text": "Import"
},
"$:/language/Import/Listing/Select/Caption": {
"title": "$:/language/Import/Listing/Select/Caption",
"text": "Select"
},
"$:/language/Import/Listing/Status/Caption": {
"title": "$:/language/Import/Listing/Status/Caption",
"text": "Status"
},
"$:/language/Import/Listing/Title/Caption": {
"title": "$:/language/Import/Listing/Title/Caption",
"text": "Title"
},
"$:/language/Import/Listing/Preview": {
"title": "$:/language/Import/Listing/Preview",
"text": "Preview:"
},
"$:/language/Import/Listing/Preview/Text": {
"title": "$:/language/Import/Listing/Preview/Text",
"text": "Text"
},
"$:/language/Import/Listing/Preview/TextRaw": {
"title": "$:/language/Import/Listing/Preview/TextRaw",
"text": "Text (Raw)"
},
"$:/language/Import/Listing/Preview/Fields": {
"title": "$:/language/Import/Listing/Preview/Fields",
"text": "Fields"
},
"$:/language/Import/Listing/Preview/Diff": {
"title": "$:/language/Import/Listing/Preview/Diff",
"text": "Diff"
},
"$:/language/Import/Listing/Preview/DiffFields": {
"title": "$:/language/Import/Listing/Preview/DiffFields",
"text": "Diff (Fields)"
},
"$:/language/Import/Listing/Rename/Tooltip": {
"title": "$:/language/Import/Listing/Rename/Tooltip",
"text": "Rename tiddler before importing"
},
"$:/language/Import/Listing/Rename/Prompt": {
"title": "$:/language/Import/Listing/Rename/Prompt",
"text": "Rename to:"
},
"$:/language/Import/Listing/Rename/ConfirmRename": {
"title": "$:/language/Import/Listing/Rename/ConfirmRename",
"text": "Rename tiddler"
},
"$:/language/Import/Listing/Rename/CancelRename": {
"title": "$:/language/Import/Listing/Rename/CancelRename",
"text": "Cancel"
},
"$:/language/Import/Listing/Rename/OverwriteWarning": {
"title": "$:/language/Import/Listing/Rename/OverwriteWarning",
"text": "A tiddler with this title already exists."
},
"$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": {
"title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible",
"text": "Blocked incompatible or obsolete plugin."
},
"$:/language/Import/Upgrader/Plugins/Suppressed/Version": {
"title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version",
"text": "Blocked plugin (due to incoming <<incoming>> not being newer than existing <<existing>>)."
},
"$:/language/Import/Upgrader/Plugins/Upgraded": {
"title": "$:/language/Import/Upgrader/Plugins/Upgraded",
"text": "Upgraded plugin from <<incoming>> to <<upgraded>>."
},
"$:/language/Import/Upgrader/State/Suppressed": {
"title": "$:/language/Import/Upgrader/State/Suppressed",
"text": "Blocked temporary state tiddler."
},
"$:/language/Import/Upgrader/System/Suppressed": {
"title": "$:/language/Import/Upgrader/System/Suppressed",
"text": "Blocked system tiddler."
},
"$:/language/Import/Upgrader/System/Warning": {
"title": "$:/language/Import/Upgrader/System/Warning",
"text": "Core module tiddler."
},
"$:/language/Import/Upgrader/System/Alert": {
"title": "$:/language/Import/Upgrader/System/Alert",
"text": "You are about to import a tiddler that will overwrite a core module tiddler. This is not recommended as it may make the system unstable."
},
"$:/language/Import/Upgrader/ThemeTweaks/Created": {
"title": "$:/language/Import/Upgrader/ThemeTweaks/Created",
"text": "Migrated theme tweak from <$text text=<<from>>/>."
},
"$:/language/AboveStory/ClassicPlugin/Warning": {
"title": "$:/language/AboveStory/ClassicPlugin/Warning",
"text": "It looks like you are trying to load a plugin designed for ~TiddlyWiki Classic. Please note that [[these plugins do not work with TiddlyWiki version 5.x.x|https://tiddlywiki.com/#TiddlyWikiClassic]]. ~TiddlyWiki Classic plugins detected:"
},
"$:/language/BinaryWarning/Prompt": {
"title": "$:/language/BinaryWarning/Prompt",
"text": "This tiddler contains binary data"
},
"$:/language/ClassicWarning/Hint": {
"title": "$:/language/ClassicWarning/Hint",
"text": "This tiddler is written in TiddlyWiki Classic wiki text format, which is not fully compatible with TiddlyWiki version 5. See https://tiddlywiki.com/static/Upgrading.html for more details."
},
"$:/language/ClassicWarning/Upgrade/Caption": {
"title": "$:/language/ClassicWarning/Upgrade/Caption",
"text": "upgrade"
},
"$:/language/CloseAll/Button": {
"title": "$:/language/CloseAll/Button",
"text": "close all"
},
"$:/language/ColourPicker/Recent": {
"title": "$:/language/ColourPicker/Recent",
"text": "Recent:"
},
"$:/language/ConfirmCancelTiddler": {
"title": "$:/language/ConfirmCancelTiddler",
"text": "Do you wish to discard changes to the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmDeleteTiddler": {
"title": "$:/language/ConfirmDeleteTiddler",
"text": "Do you wish to delete the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmOverwriteTiddler": {
"title": "$:/language/ConfirmOverwriteTiddler",
"text": "Do you wish to overwrite the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmEditShadowTiddler": {
"title": "$:/language/ConfirmEditShadowTiddler",
"text": "You are about to edit a ShadowTiddler. Any changes will override the default system making future upgrades non-trivial. Are you sure you want to edit \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmAction": {
"title": "$:/language/ConfirmAction",
"text": "Do you wish to proceed?"
},
"$:/language/Count": {
"title": "$:/language/Count",
"text": "count"
},
"$:/language/DefaultNewTiddlerTitle": {
"title": "$:/language/DefaultNewTiddlerTitle",
"text": "New Tiddler"
},
"$:/language/Diffs/CountMessage": {
"title": "$:/language/Diffs/CountMessage",
"text": "<<diff-count>> differences"
},
"$:/language/DropMessage": {
"title": "$:/language/DropMessage",
"text": "Drop here (or use the 'Escape' key to cancel)"
},
"$:/language/Encryption/Cancel": {
"title": "$:/language/Encryption/Cancel",
"text": "Cancel"
},
"$:/language/Encryption/ConfirmClearPassword": {
"title": "$:/language/Encryption/ConfirmClearPassword",
"text": "Do you wish to clear the password? This will remove the encryption applied when saving this wiki"
},
"$:/language/Encryption/PromptSetPassword": {
"title": "$:/language/Encryption/PromptSetPassword",
"text": "Set a new password for this TiddlyWiki"
},
"$:/language/Encryption/Username": {
"title": "$:/language/Encryption/Username",
"text": "Username"
},
"$:/language/Encryption/Password": {
"title": "$:/language/Encryption/Password",
"text": "Password"
},
"$:/language/Encryption/RepeatPassword": {
"title": "$:/language/Encryption/RepeatPassword",
"text": "Repeat password"
},
"$:/language/Encryption/PasswordNoMatch": {
"title": "$:/language/Encryption/PasswordNoMatch",
"text": "Passwords do not match"
},
"$:/language/Encryption/SetPassword": {
"title": "$:/language/Encryption/SetPassword",
"text": "Set password"
},
"$:/language/Error/Caption": {
"title": "$:/language/Error/Caption",
"text": "Error"
},
"$:/language/Error/EditConflict": {
"title": "$:/language/Error/EditConflict",
"text": "File changed on server"
},
"$:/language/Error/Filter": {
"title": "$:/language/Error/Filter",
"text": "Filter error"
},
"$:/language/Error/FilterSyntax": {
"title": "$:/language/Error/FilterSyntax",
"text": "Syntax error in filter expression"
},
"$:/language/Error/FilterRunPrefix": {
"title": "$:/language/Error/FilterRunPrefix",
"text": "Filter Error: Unknown prefix for filter run"
},
"$:/language/Error/IsFilterOperator": {
"title": "$:/language/Error/IsFilterOperator",
"text": "Filter Error: Unknown operand for the 'is' filter operator"
},
"$:/language/Error/FormatFilterOperator": {
"title": "$:/language/Error/FormatFilterOperator",
"text": "Filter Error: Unknown suffix for the 'format' filter operator"
},
"$:/language/Error/LoadingPluginLibrary": {
"title": "$:/language/Error/LoadingPluginLibrary",
"text": "Error loading plugin library"
},
"$:/language/Error/NetworkErrorAlert": {
"title": "$:/language/Error/NetworkErrorAlert",
"text": "`<h2>''Network Error''</h2>It looks like the connection to the server has been lost. This may indicate a problem with your network connection. Please attempt to restore network connectivity before continuing.<br><br>''Any unsaved changes will be automatically synchronised when connectivity is restored''.`"
},
"$:/language/Error/RecursiveTransclusion": {
"title": "$:/language/Error/RecursiveTransclusion",
"text": "Recursive transclusion error in transclude widget"
},
"$:/language/Error/RetrievingSkinny": {
"title": "$:/language/Error/RetrievingSkinny",
"text": "Error retrieving skinny tiddler list"
},
"$:/language/Error/SavingToTWEdit": {
"title": "$:/language/Error/SavingToTWEdit",
"text": "Error saving to TWEdit"
},
"$:/language/Error/WhileSaving": {
"title": "$:/language/Error/WhileSaving",
"text": "Error while saving"
},
"$:/language/Error/XMLHttpRequest": {
"title": "$:/language/Error/XMLHttpRequest",
"text": "XMLHttpRequest error code"
},
"$:/language/InternalJavaScriptError/Title": {
"title": "$:/language/InternalJavaScriptError/Title",
"text": "Internal JavaScript Error"
},
"$:/language/InternalJavaScriptError/Hint": {
"title": "$:/language/InternalJavaScriptError/Hint",
"text": "Well, this is embarrassing. It is recommended that you restart TiddlyWiki by refreshing your browser"
},
"$:/language/InvalidFieldName": {
"title": "$:/language/InvalidFieldName",
"text": "Illegal characters in field name \"<$text text=<<fieldName>>/>\". Fields can only contain lowercase letters, digits and the characters underscore (`_`), hyphen (`-`) and period (`.`)"
},
"$:/language/LayoutSwitcher/Description": {
"title": "$:/language/LayoutSwitcher/Description",
"text": "Open the layout switcher"
},
"$:/language/LazyLoadingWarning": {
"title": "$:/language/LazyLoadingWarning",
"text": "<p>Trying to load external content from ''<$text text={{!!_canonical_uri}}/>''</p><p>If this message doesn't disappear, either the tiddler content type doesn't match the type of the external content, or you may be using a browser that doesn't support external content for wikis loaded as standalone files. See https://tiddlywiki.com/#ExternalText</p>"
},
"$:/language/LoginToTiddlySpace": {
"title": "$:/language/LoginToTiddlySpace",
"text": "Login to TiddlySpace"
},
"$:/language/Manager/Controls/FilterByTag/None": {
"title": "$:/language/Manager/Controls/FilterByTag/None",
"text": "(none)"
},
"$:/language/Manager/Controls/FilterByTag/Prompt": {
"title": "$:/language/Manager/Controls/FilterByTag/Prompt",
"text": "Filter by tag:"
},
"$:/language/Manager/Controls/Order/Prompt": {
"title": "$:/language/Manager/Controls/Order/Prompt",
"text": "Reverse order"
},
"$:/language/Manager/Controls/Search/Placeholder": {
"title": "$:/language/Manager/Controls/Search/Placeholder",
"text": "Search"
},
"$:/language/Manager/Controls/Search/Prompt": {
"title": "$:/language/Manager/Controls/Search/Prompt",
"text": "Search:"
},
"$:/language/Manager/Controls/Show/Option/Tags": {
"title": "$:/language/Manager/Controls/Show/Option/Tags",
"text": "tags"
},
"$:/language/Manager/Controls/Show/Option/Tiddlers": {
"title": "$:/language/Manager/Controls/Show/Option/Tiddlers",
"text": "tiddlers"
},
"$:/language/Manager/Controls/Show/Prompt": {
"title": "$:/language/Manager/Controls/Show/Prompt",
"text": "Show:"
},
"$:/language/Manager/Controls/Sort/Prompt": {
"title": "$:/language/Manager/Controls/Sort/Prompt",
"text": "Sort by:"
},
"$:/language/Manager/Item/Colour": {
"title": "$:/language/Manager/Item/Colour",
"text": "Colour"
},
"$:/language/Manager/Item/Fields": {
"title": "$:/language/Manager/Item/Fields",
"text": "Fields"
},
"$:/language/Manager/Item/Icon/None": {
"title": "$:/language/Manager/Item/Icon/None",
"text": "(none)"
},
"$:/language/Manager/Item/Icon": {
"title": "$:/language/Manager/Item/Icon",
"text": "Icon"
},
"$:/language/Manager/Item/RawText": {
"title": "$:/language/Manager/Item/RawText",
"text": "Raw text"
},
"$:/language/Manager/Item/Tags": {
"title": "$:/language/Manager/Item/Tags",
"text": "Tags"
},
"$:/language/Manager/Item/Tools": {
"title": "$:/language/Manager/Item/Tools",
"text": "Tools"
},
"$:/language/Manager/Item/WikifiedText": {
"title": "$:/language/Manager/Item/WikifiedText",
"text": "Wikified text"
},
"$:/language/MissingTiddler/Hint": {
"title": "$:/language/MissingTiddler/Hint",
"text": "Missing tiddler \"<$text text=<<currentTiddler>>/>\" -- click {{||$:/core/ui/Buttons/edit}} to create"
},
"$:/language/No": {
"title": "$:/language/No",
"text": "No"
},
"$:/language/OfficialPluginLibrary": {
"title": "$:/language/OfficialPluginLibrary",
"text": "Official ~TiddlyWiki Plugin Library"
},
"$:/language/OfficialPluginLibrary/Hint": {
"title": "$:/language/OfficialPluginLibrary/Hint",
"text": "The official ~TiddlyWiki plugin library at tiddlywiki.com. Plugins, themes and language packs are maintained by the core team."
},
"$:/language/PageTemplate/Description": {
"title": "$:/language/PageTemplate/Description",
"text": "the default ~TiddlyWiki layout"
},
"$:/language/PageTemplate/Name": {
"title": "$:/language/PageTemplate/Name",
"text": "Default ~PageTemplate"
},
"$:/language/PluginReloadWarning": {
"title": "$:/language/PluginReloadWarning",
"text": "Please save {{$:/core/ui/Buttons/save-wiki}} and reload {{$:/core/ui/Buttons/refresh}} to allow changes to ~JavaScript plugins to take effect"
},
"$:/language/RecentChanges/DateFormat": {
"title": "$:/language/RecentChanges/DateFormat",
"text": "DDth MMM YYYY"
},
"$:/language/Shortcuts/Input/AdvancedSearch/Hint": {
"title": "$:/language/Shortcuts/Input/AdvancedSearch/Hint",
"text": "Open the ~AdvancedSearch panel from within the sidebar search field"
},
"$:/language/Shortcuts/Input/Accept/Hint": {
"title": "$:/language/Shortcuts/Input/Accept/Hint",
"text": "Accept the selected item"
},
"$:/language/Shortcuts/Input/AcceptVariant/Hint": {
"title": "$:/language/Shortcuts/Input/AcceptVariant/Hint",
"text": "Accept the selected item (variant)"
},
"$:/language/Shortcuts/Input/Cancel/Hint": {
"title": "$:/language/Shortcuts/Input/Cancel/Hint",
"text": "Clear the input field"
},
"$:/language/Shortcuts/Input/Down/Hint": {
"title": "$:/language/Shortcuts/Input/Down/Hint",
"text": "Select the next item"
},
"$:/language/Shortcuts/Input/Tab-Left/Hint": {
"title": "$:/language/Shortcuts/Input/Tab-Left/Hint",
"text": "Select the previous Tab"
},
"$:/language/Shortcuts/Input/Tab-Right/Hint": {
"title": "$:/language/Shortcuts/Input/Tab-Right/Hint",
"text": "Select the next Tab"
},
"$:/language/Shortcuts/Input/Up/Hint": {
"title": "$:/language/Shortcuts/Input/Up/Hint",
"text": "Select the previous item"
},
"$:/language/Shortcuts/SidebarLayout/Hint": {
"title": "$:/language/Shortcuts/SidebarLayout/Hint",
"text": "Change the sidebar layout"
},
"$:/language/Switcher/Subtitle/theme": {
"title": "$:/language/Switcher/Subtitle/theme",
"text": "Switch Theme"
},
"$:/language/Switcher/Subtitle/layout": {
"title": "$:/language/Switcher/Subtitle/layout",
"text": "Switch Layout"
},
"$:/language/Switcher/Subtitle/language": {
"title": "$:/language/Switcher/Subtitle/language",
"text": "Switch Language"
},
"$:/language/Switcher/Subtitle/palette": {
"title": "$:/language/Switcher/Subtitle/palette",
"text": "Switch Palette"
},
"$:/language/SystemTiddler/Tooltip": {
"title": "$:/language/SystemTiddler/Tooltip",
"text": "This is a system tiddler"
},
"$:/language/SystemTiddlers/Include/Prompt": {
"title": "$:/language/SystemTiddlers/Include/Prompt",
"text": "Include system tiddlers"
},
"$:/language/TagManager/Colour/Heading": {
"title": "$:/language/TagManager/Colour/Heading",
"text": "Colour"
},
"$:/language/TagManager/Count/Heading": {
"title": "$:/language/TagManager/Count/Heading",
"text": "Count"
},
"$:/language/TagManager/Icon/Heading": {
"title": "$:/language/TagManager/Icon/Heading",
"text": "Icon"
},
"$:/language/TagManager/Icons/None": {
"title": "$:/language/TagManager/Icons/None",
"text": "None"
},
"$:/language/TagManager/Info/Heading": {
"title": "$:/language/TagManager/Info/Heading",
"text": "Info"
},
"$:/language/TagManager/Tag/Heading": {
"title": "$:/language/TagManager/Tag/Heading",
"text": "Tag"
},
"$:/language/Tiddler/DateFormat": {
"title": "$:/language/Tiddler/DateFormat",
"text": "DDth MMM YYYY at hh12:0mmam"
},
"$:/language/UnsavedChangesWarning": {
"title": "$:/language/UnsavedChangesWarning",
"text": "You have unsaved changes in TiddlyWiki"
},
"$:/language/Yes": {
"title": "$:/language/Yes",
"text": "Yes"
},
"$:/language/Modals/Download": {
"title": "$:/language/Modals/Download",
"subtitle": "Download changes",
"footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
"help": "https://tiddlywiki.com/static/DownloadingChanges.html",
"text": "Your browser only supports manual saving.\n\nTo save your modified wiki, right click on the download link below and select \"Download file\" or \"Save file\", and then choose the folder and filename.\n\n//You can marginally speed things up by clicking the link with the control key (Windows) or the options/alt key (Mac OS X). You will not be prompted for the folder or filename, but your browser is likely to give it an unrecognisable name -- you may need to rename the file to include an `.html` extension before you can do anything useful with it.//\n\nOn smartphones that do not allow files to be downloaded you can instead bookmark the link, and then sync your bookmarks to a desktop computer from where the wiki can be saved normally.\n"
},
"$:/language/Modals/SaveInstructions": {
"title": "$:/language/Modals/SaveInstructions",
"subtitle": "Save your work",
"footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
"help": "https://tiddlywiki.com/static/SavingChanges.html",
"text": "Your changes to this wiki need to be saved as a ~TiddlyWiki HTML file.\n\n!!! Desktop browsers\n\n# Select ''Save As'' from the ''File'' menu\n# Choose a filename and location\n#* Some browsers also require you to explicitly specify the file saving format as ''Webpage, HTML only'' or similar\n# Close this tab\n\n!!! Smartphone browsers\n\n# Create a bookmark to this page\n#* If you've got iCloud or Google Sync set up then the bookmark will automatically sync to your desktop where you can open it and save it as above\n# Close this tab\n\n//If you open the bookmark again in Mobile Safari you will see this message again. If you want to go ahead and use the file, just click the ''close'' button below//\n"
},
"$:/config/NewJournal/Title": {
"title": "$:/config/NewJournal/Title",
"text": "DDth MMM YYYY"
},
"$:/config/NewJournal/Text": {
"title": "$:/config/NewJournal/Text",
"text": ""
},
"$:/config/NewJournal/Tags": {
"title": "$:/config/NewJournal/Tags",
"text": "Journal\n"
},
"$:/language/Notifications/Save/Done": {
"title": "$:/language/Notifications/Save/Done",
"text": "Saved wiki"
},
"$:/language/Notifications/Save/Starting": {
"title": "$:/language/Notifications/Save/Starting",
"text": "Starting to save wiki"
},
"$:/language/Notifications/CopiedToClipboard/Succeeded": {
"title": "$:/language/Notifications/CopiedToClipboard/Succeeded",
"text": "Copied to clipboard!"
},
"$:/language/Notifications/CopiedToClipboard/Failed": {
"title": "$:/language/Notifications/CopiedToClipboard/Failed",
"text": "Failed to copy to clipboard!"
},
"$:/language/Search/DefaultResults/Caption": {
"title": "$:/language/Search/DefaultResults/Caption",
"text": "List"
},
"$:/language/Search/Filter/Caption": {
"title": "$:/language/Search/Filter/Caption",
"text": "Filter"
},
"$:/language/Search/Filter/Hint": {
"title": "$:/language/Search/Filter/Hint",
"text": "Search via a [[filter expression|https://tiddlywiki.com/static/Filters.html]]"
},
"$:/language/Search/Filter/Matches": {
"title": "$:/language/Search/Filter/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Matches": {
"title": "$:/language/Search/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Matches/All": {
"title": "$:/language/Search/Matches/All",
"text": "All matches:"
},
"$:/language/Search/Matches/Title": {
"title": "$:/language/Search/Matches/Title",
"text": "Title matches:"
},
"$:/language/Search/Search": {
"title": "$:/language/Search/Search",
"text": "Search"
},
"$:/language/Search/Search/TooShort": {
"title": "$:/language/Search/Search/TooShort",
"text": "Search text too short"
},
"$:/language/Search/Shadows/Caption": {
"title": "$:/language/Search/Shadows/Caption",
"text": "Shadows"
},
"$:/language/Search/Shadows/Hint": {
"title": "$:/language/Search/Shadows/Hint",
"text": "Search for shadow tiddlers"
},
"$:/language/Search/Shadows/Matches": {
"title": "$:/language/Search/Shadows/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Standard/Caption": {
"title": "$:/language/Search/Standard/Caption",
"text": "Standard"
},
"$:/language/Search/Standard/Hint": {
"title": "$:/language/Search/Standard/Hint",
"text": "Search for standard tiddlers"
},
"$:/language/Search/Standard/Matches": {
"title": "$:/language/Search/Standard/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/System/Caption": {
"title": "$:/language/Search/System/Caption",
"text": "System"
},
"$:/language/Search/System/Hint": {
"title": "$:/language/Search/System/Hint",
"text": "Search for system tiddlers"
},
"$:/language/Search/System/Matches": {
"title": "$:/language/Search/System/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/SideBar/All/Caption": {
"title": "$:/language/SideBar/All/Caption",
"text": "All"
},
"$:/language/SideBar/Contents/Caption": {
"title": "$:/language/SideBar/Contents/Caption",
"text": "Contents"
},
"$:/language/SideBar/Drafts/Caption": {
"title": "$:/language/SideBar/Drafts/Caption",
"text": "Drafts"
},
"$:/language/SideBar/Explorer/Caption": {
"title": "$:/language/SideBar/Explorer/Caption",
"text": "Explorer"
},
"$:/language/SideBar/Missing/Caption": {
"title": "$:/language/SideBar/Missing/Caption",
"text": "Missing"
},
"$:/language/SideBar/More/Caption": {
"title": "$:/language/SideBar/More/Caption",
"text": "More"
},
"$:/language/SideBar/Open/Caption": {
"title": "$:/language/SideBar/Open/Caption",
"text": "Open"
},
"$:/language/SideBar/Orphans/Caption": {
"title": "$:/language/SideBar/Orphans/Caption",
"text": "Orphans"
},
"$:/language/SideBar/Recent/Caption": {
"title": "$:/language/SideBar/Recent/Caption",
"text": "Recent"
},
"$:/language/SideBar/Shadows/Caption": {
"title": "$:/language/SideBar/Shadows/Caption",
"text": "Shadows"
},
"$:/language/SideBar/System/Caption": {
"title": "$:/language/SideBar/System/Caption",
"text": "System"
},
"$:/language/SideBar/Tags/Caption": {
"title": "$:/language/SideBar/Tags/Caption",
"text": "Tags"
},
"$:/language/SideBar/Tags/Untagged/Caption": {
"title": "$:/language/SideBar/Tags/Untagged/Caption",
"text": "untagged"
},
"$:/language/SideBar/Tools/Caption": {
"title": "$:/language/SideBar/Tools/Caption",
"text": "Tools"
},
"$:/language/SideBar/Types/Caption": {
"title": "$:/language/SideBar/Types/Caption",
"text": "Types"
},
"$:/SiteSubtitle": {
"title": "$:/SiteSubtitle",
"text": "a non-linear personal web notebook"
},
"$:/SiteTitle": {
"title": "$:/SiteTitle",
"text": "My ~TiddlyWiki"
},
"$:/language/Snippets/ListByTag": {
"title": "$:/language/Snippets/ListByTag",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "List of tiddlers by tag",
"text": "<<list-links \"[tag[task]sort[title]]\">>\n"
},
"$:/language/Snippets/MacroDefinition": {
"title": "$:/language/Snippets/MacroDefinition",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Macro definition",
"text": "\\define macroName(param1:\"default value\",param2)\nText of the macro\n\\end\n"
},
"$:/language/Snippets/Table4x3": {
"title": "$:/language/Snippets/Table4x3",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Table with 4 columns by 3 rows",
"text": "|! |!Alpha |!Beta |!Gamma |!Delta |\n|!One | | | | |\n|!Two | | | | |\n|!Three | | | | |\n"
},
"$:/language/Snippets/TableOfContents": {
"title": "$:/language/Snippets/TableOfContents",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Table of Contents",
"text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>"
},
"$:/language/ThemeTweaks/ThemeTweaks": {
"title": "$:/language/ThemeTweaks/ThemeTweaks",
"text": "Theme Tweaks"
},
"$:/language/ThemeTweaks/ThemeTweaks/Hint": {
"title": "$:/language/ThemeTweaks/ThemeTweaks/Hint",
"text": "You can tweak certain aspects of the ''Vanilla'' theme."
},
"$:/language/ThemeTweaks/Options": {
"title": "$:/language/ThemeTweaks/Options",
"text": "Options"
},
"$:/language/ThemeTweaks/Options/SidebarLayout": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout",
"text": "Sidebar layout"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid",
"text": "Fixed story, fluid sidebar"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed",
"text": "Fluid story, fixed sidebar"
},
"$:/language/ThemeTweaks/Options/StickyTitles": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles",
"text": "Sticky titles"
},
"$:/language/ThemeTweaks/Options/StickyTitles/Hint": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint",
"text": "Causes tiddler titles to \"stick\" to the top of the browser window"
},
"$:/language/ThemeTweaks/Options/CodeWrapping": {
"title": "$:/language/ThemeTweaks/Options/CodeWrapping",
"text": "Wrap long lines in code blocks"
},
"$:/language/ThemeTweaks/Settings": {
"title": "$:/language/ThemeTweaks/Settings",
"text": "Settings"
},
"$:/language/ThemeTweaks/Settings/FontFamily": {
"title": "$:/language/ThemeTweaks/Settings/FontFamily",
"text": "Font family"
},
"$:/language/ThemeTweaks/Settings/CodeFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/CodeFontFamily",
"text": "Code font family"
},
"$:/language/ThemeTweaks/Settings/EditorFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/EditorFontFamily",
"text": "Editor font family"
},
"$:/language/ThemeTweaks/Settings/BackgroundImage": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImage",
"text": "Page background image"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment",
"text": "Page background image attachment"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll",
"text": "Scroll with tiddlers"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed",
"text": "Fixed to window"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize",
"text": "Page background image size"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto",
"text": "Auto"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover",
"text": "Cover"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain",
"text": "Contain"
},
"$:/language/ThemeTweaks/Metrics": {
"title": "$:/language/ThemeTweaks/Metrics",
"text": "Sizes"
},
"$:/language/ThemeTweaks/Metrics/FontSize": {
"title": "$:/language/ThemeTweaks/Metrics/FontSize",
"text": "Font size"
},
"$:/language/ThemeTweaks/Metrics/LineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/LineHeight",
"text": "Line height"
},
"$:/language/ThemeTweaks/Metrics/BodyFontSize": {
"title": "$:/language/ThemeTweaks/Metrics/BodyFontSize",
"text": "Font size for tiddler body"
},
"$:/language/ThemeTweaks/Metrics/BodyLineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight",
"text": "Line height for tiddler body"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft",
"text": "Story left position"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint",
"text": "how far the left margin of the story river<br>(tiddler area) is from the left of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryTop": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop",
"text": "Story top position"
},
"$:/language/ThemeTweaks/Metrics/StoryTop/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint",
"text": "how far the top margin of the story river<br>is from the top of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryRight": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight",
"text": "Story right"
},
"$:/language/ThemeTweaks/Metrics/StoryRight/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint",
"text": "how far the left margin of the sidebar <br>is from the left of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth",
"text": "Story width"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint",
"text": "the overall width of the story river"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth",
"text": "Tiddler width"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint",
"text": "within the story river"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint",
"text": "Sidebar breakpoint"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint",
"text": "the minimum page width at which the story<br>river and sidebar will appear side by side"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth",
"text": "Sidebar width"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint",
"text": "the width of the sidebar in fluid-fixed layout"
},
"$:/language/TiddlerInfo/Advanced/Caption": {
"title": "$:/language/TiddlerInfo/Advanced/Caption",
"text": "Advanced"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint",
"text": "none"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading",
"text": "Plugin Details"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint",
"text": "This plugin contains the following shadow tiddlers:"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading",
"text": "Shadow Status"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint",
"text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is not a shadow tiddler"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint",
"text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is a shadow tiddler"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source",
"text": "It is defined in the plugin <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint",
"text": "It is overridden by an ordinary tiddler"
},
"$:/language/TiddlerInfo/Fields/Caption": {
"title": "$:/language/TiddlerInfo/Fields/Caption",
"text": "Fields"
},
"$:/language/TiddlerInfo/List/Caption": {
"title": "$:/language/TiddlerInfo/List/Caption",
"text": "List"
},
"$:/language/TiddlerInfo/List/Empty": {
"title": "$:/language/TiddlerInfo/List/Empty",
"text": "This tiddler does not have a list"
},
"$:/language/TiddlerInfo/Listed/Caption": {
"title": "$:/language/TiddlerInfo/Listed/Caption",
"text": "Listed"
},
"$:/language/TiddlerInfo/Listed/Empty": {
"title": "$:/language/TiddlerInfo/Listed/Empty",
"text": "This tiddler is not listed by any others"
},
"$:/language/TiddlerInfo/References/Caption": {
"title": "$:/language/TiddlerInfo/References/Caption",
"text": "Backlinks"
},
"$:/language/TiddlerInfo/References/Empty": {
"title": "$:/language/TiddlerInfo/References/Empty",
"text": "No tiddlers link to this one"
},
"$:/language/TiddlerInfo/Tagging/Caption": {
"title": "$:/language/TiddlerInfo/Tagging/Caption",
"text": "Tagging"
},
"$:/language/TiddlerInfo/Tagging/Empty": {
"title": "$:/language/TiddlerInfo/Tagging/Empty",
"text": "No tiddlers are tagged with this one"
},
"$:/language/TiddlerInfo/Tools/Caption": {
"title": "$:/language/TiddlerInfo/Tools/Caption",
"text": "Tools"
},
"$:/language/Docs/Types/application/javascript": {
"title": "$:/language/Docs/Types/application/javascript",
"description": "JavaScript code",
"name": "application/javascript",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/application/json": {
"title": "$:/language/Docs/Types/application/json",
"description": "JSON data",
"name": "application/json",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/application/x-tiddler-dictionary": {
"title": "$:/language/Docs/Types/application/x-tiddler-dictionary",
"description": "Data dictionary",
"name": "application/x-tiddler-dictionary",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/image/gif": {
"title": "$:/language/Docs/Types/image/gif",
"description": "GIF image",
"name": "image/gif",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/jpeg": {
"title": "$:/language/Docs/Types/image/jpeg",
"description": "JPEG image",
"name": "image/jpeg",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/png": {
"title": "$:/language/Docs/Types/image/png",
"description": "PNG image",
"name": "image/png",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/svg+xml": {
"title": "$:/language/Docs/Types/image/svg+xml",
"description": "Structured Vector Graphics image",
"name": "image/svg+xml",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/x-icon": {
"title": "$:/language/Docs/Types/image/x-icon",
"description": "ICO format icon file",
"name": "image/x-icon",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/text/css": {
"title": "$:/language/Docs/Types/text/css",
"description": "Static stylesheet",
"name": "text/css",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/text/html": {
"title": "$:/language/Docs/Types/text/html",
"description": "HTML markup",
"name": "text/html",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/plain": {
"title": "$:/language/Docs/Types/text/plain",
"description": "Plain text",
"name": "text/plain",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/vnd.tiddlywiki": {
"title": "$:/language/Docs/Types/text/vnd.tiddlywiki",
"description": "TiddlyWiki 5",
"name": "text/vnd.tiddlywiki",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/x-tiddlywiki": {
"title": "$:/language/Docs/Types/text/x-tiddlywiki",
"description": "TiddlyWiki Classic",
"name": "text/x-tiddlywiki",
"group": "Text",
"group-sort": "0"
},
"$:/languages/en-GB/icon": {
"title": "$:/languages/en-GB/icon",
"type": "image/svg+xml",
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 60 30\" width=\"1200\" height=\"600\">\n<clipPath id=\"t\">\n\t<path d=\"M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z\"/>\n</clipPath>\n<path d=\"M0,0 v30 h60 v-30 z\" fill=\"#00247d\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#fff\" stroke-width=\"6\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" clip-path=\"url(#t)\" stroke=\"#cf142b\" stroke-width=\"4\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#fff\" stroke-width=\"10\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#cf142b\" stroke-width=\"6\"/>\n</svg>\n"
},
"$:/languages/en-GB": {
"title": "$:/languages/en-GB",
"name": "en-GB",
"description": "English (British)",
"author": "JeremyRuston",
"core-version": ">=5.0.0\"",
"text": "Stub pseudo-plugin for the default language"
},
"$:/core/modules/commander.js": {
"title": "$:/core/modules/commander.js",
"text": "/*\\\ntitle: $:/core/modules/commander.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Commander class is a command interpreter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a sequence of commands\n\tcommandTokens: an array of command string tokens\n\twiki: reference to the wiki store object\n\tstreams: {output:, error:}, each of which has a write(string) method\n\tcallback: a callback invoked as callback(err) where err is null if there was no error\n*/\nvar Commander = function(commandTokens,callback,wiki,streams) {\n\tvar path = require(\"path\");\n\tthis.commandTokens = commandTokens;\n\tthis.nextToken = 0;\n\tthis.callback = callback;\n\tthis.wiki = wiki;\n\tthis.streams = streams;\n\tthis.outputPath = path.resolve($tw.boot.wikiPath,$tw.config.wikiOutputSubDir);\n};\n\n/*\nLog a string if verbose flag is set\n*/\nCommander.prototype.log = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str + \"\\n\");\n\t}\n};\n\n/*\nWrite a string if verbose flag is set\n*/\nCommander.prototype.write = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str);\n\t}\n};\n\n/*\nAdd a string of tokens to the command queue\n*/\nCommander.prototype.addCommandTokens = function(commandTokens) {\n\tvar params = commandTokens.slice(0);\n\tparams.unshift(0);\n\tparams.unshift(this.nextToken);\n\tArray.prototype.splice.apply(this.commandTokens,params);\n};\n\n/*\nExecute the sequence of commands and invoke a callback on completion\n*/\nCommander.prototype.execute = function() {\n\tthis.executeNextCommand();\n};\n\n/*\nExecute the next command in the sequence\n*/\nCommander.prototype.executeNextCommand = function() {\n\tvar self = this;\n\t// Invoke the callback if there are no more commands\n\tif(this.nextToken >= this.commandTokens.length) {\n\t\tthis.callback(null);\n\t} else {\n\t\t// Get and check the command token\n\t\tvar commandName = this.commandTokens[this.nextToken++];\n\t\tif(commandName.substr(0,2) !== \"--\") {\n\t\t\tthis.callback(\"Missing command: \" + commandName);\n\t\t} else {\n\t\t\tcommandName = commandName.substr(2); // Trim off the --\n\t\t\t// Accumulate the parameters to the command\n\t\t\tvar params = [];\n\t\t\twhile(this.nextToken < this.commandTokens.length && \n\t\t\t\tthis.commandTokens[this.nextToken].substr(0,2) !== \"--\") {\n\t\t\t\tparams.push(this.commandTokens[this.nextToken++]);\n\t\t\t}\n\t\t\t// Get the command info\n\t\t\tvar command = $tw.commands[commandName],\n\t\t\t\tc,err;\n\t\t\tif(!command) {\n\t\t\t\tthis.callback(\"Unknown command: \" + commandName);\n\t\t\t} else {\n\t\t\t\tif(this.verbose) {\n\t\t\t\t\tthis.streams.output.write(\"Executing command: \" + commandName + \" \" + params.join(\" \") + \"\\n\");\n\t\t\t\t}\n\t\t\t\t// Parse named parameters if required\n\t\t\t\tif(command.info.namedParameterMode) {\n\t\t\t\t\tparams = this.extractNamedParameters(params,command.info.mandatoryParameters);\n\t\t\t\t\tif(typeof params === \"string\") {\n\t\t\t\t\t\treturn this.callback(params);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(command.info.synchronous) {\n\t\t\t\t\t// Synchronous command\n\t\t\t\t\tc = new command.Command(params,this);\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.executeNextCommand();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Asynchronous command\n\t\t\t\t\tc = new command.Command(params,this,function(err) {\n\t\t\t\t\t\tif(err) {\n\t\t\t\t\t\t\tself.callback(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.executeNextCommand();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nGiven an array of parameter strings `params` in name:value format, and an array of mandatory parameter names in `mandatoryParameters`, returns a hashmap of values or a string if error\n*/\nCommander.prototype.extractNamedParameters = function(params,mandatoryParameters) {\n\tmandatoryParameters = mandatoryParameters || [];\n\tvar errors = [],\n\t\tparamsByName = Object.create(null);\n\t// Extract the parameters\n\t$tw.utils.each(params,function(param) {\n\t\tvar index = param.indexOf(\"=\");\n\t\tif(index < 1) {\n\t\t\terrors.push(\"malformed named parameter: '\" + param + \"'\");\n\t\t}\n\t\tparamsByName[param.slice(0,index)] = $tw.utils.trim(param.slice(index+1));\n\t});\n\t// Check the mandatory parameters are present\n\t$tw.utils.each(mandatoryParameters,function(mandatoryParameter) {\n\t\tif(!$tw.utils.hop(paramsByName,mandatoryParameter)) {\n\t\t\terrors.push(\"missing mandatory parameter: '\" + mandatoryParameter + \"'\");\n\t\t}\n\t});\n\t// Return any errors\n\tif(errors.length > 0) {\n\t\treturn errors.join(\" and\\n\");\n\t} else {\n\t\treturn paramsByName;\t\t\n\t}\n};\n\nCommander.initCommands = function(moduleType) {\n\tmoduleType = moduleType || \"command\";\n\t$tw.commands = {};\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tvar c = $tw.commands[module.info.name] = {};\n\t\t// Add the methods defined by the module\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\tc[f] = module[f];\n\t\t\t}\n\t\t}\n\t});\n};\n\nexports.Commander = Commander;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/commands/build.js": {
"title": "$:/core/modules/commands/build.js",
"text": "/*\\\ntitle: $:/core/modules/commands/build.js\ntype: application/javascript\nmodule-type: command\n\nCommand to build a build target\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"build\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\t// Get the build targets defined in the wiki\n\tvar buildTargets = $tw.boot.wikiInfo.build;\n\tif(!buildTargets) {\n\t\treturn \"No build targets defined\";\n\t}\n\t// Loop through each of the specified targets\n\tvar targets;\n\tif(this.params.length > 0) {\n\t\ttargets = this.params;\n\t} else {\n\t\ttargets = Object.keys(buildTargets);\n\t}\n\tfor(var targetIndex=0; targetIndex<targets.length; targetIndex++) {\n\t\tvar target = targets[targetIndex],\n\t\t\tcommands = buildTargets[target];\n\t\tif(!commands) {\n\t\t\treturn \"Build target '\" + target + \"' not found\";\n\t\t}\n\t\t// Add the commands to the queue\n\t\tthis.commander.addCommandTokens(commands);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/clearpassword.js": {
"title": "$:/core/modules/commands/clearpassword.js",
"text": "/*\\\ntitle: $:/core/modules/commands/clearpassword.js\ntype: application/javascript\nmodule-type: command\n\nClear password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"clearpassword\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\t$tw.crypto.setPassword(null);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/deletetiddlers.js": {
"title": "$:/core/modules/commands/deletetiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/deletetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to delete tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"deletetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filter\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\twiki.deleteTiddler(title);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/editions.js": {
"title": "$:/core/modules/commands/editions.js",
"text": "/*\\\ntitle: $:/core/modules/commands/editions.js\ntype: application/javascript\nmodule-type: command\n\nCommand to list the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"editions\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\t// Output the list\n\tthis.commander.streams.output.write(\"Available editions:\\n\\n\");\n\tvar editionInfo = $tw.utils.getEditionInfo();\n\t$tw.utils.each(editionInfo,function(info,name) {\n\t\tself.commander.streams.output.write(\" \" + name + \": \" + info.description + \"\\n\");\n\t});\n\tthis.commander.streams.output.write(\"\\n\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/fetch.js": {
"title": "$:/core/modules/commands/fetch.js",
"text": "/*\\\ntitle: $:/core/modules/commands/fetch.js\ntype: application/javascript\nmodule-type: command\n\nCommands to fetch external tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"fetch\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing subcommand and url\";\n\t}\n\tswitch(this.params[0]) {\n\t\tcase \"raw-file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turl: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turl: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"raw-files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t}\n\treturn null;\n};\n\nCommand.prototype.fetchFiles = function(options) {\n\tvar self = this;\n\t// Get the list of URLs\n\tvar urls;\n\tif(options.url) {\n\t\turls = [options.url]\n\t} else if(options.urlFilter) {\n\t\turls = this.commander.wiki.filterTiddlers(options.urlFilter);\n\t} else {\n\t\treturn \"Missing URL\";\n\t}\n\t// Process each URL in turn\n\tvar next = 0;\n\tvar getNextFile = function(err) {\n\t\tif(err) {\n\t\t\treturn options.callback(err);\n\t\t}\n\t\tif(next < urls.length) {\n\t\t\tself.fetchFile(urls[next++],options,getNextFile);\n\t\t} else {\n\t\t\toptions.callback(null);\n\t\t}\n\t};\n\tgetNextFile(null);\n\t// Success\n\treturn null;\n};\n\nCommand.prototype.fetchFile = function(url,options,callback,redirectCount) {\n\tif(redirectCount > 10) {\n\t\treturn callback(\"Error too many redirects retrieving \" + url);\n\t}\n\tvar self = this,\n\t\tlib = url.substr(0,8) === \"https://\" ? require(\"https\") : require(\"http\");\n\tlib.get(url).on(\"response\",function(response) {\n\t var type = (response.headers[\"content-type\"] || \"\").split(\";\")[0],\n\t \tdata = [];\n\t self.commander.write(\"Reading \" + url + \": \");\n\t response.on(\"data\",function(chunk) {\n\t data.push(chunk);\n\t self.commander.write(\".\");\n\t });\n\t response.on(\"end\",function() {\n\t self.commander.write(\"\\n\");\n\t if(response.statusCode === 200) {\n\t\t self.processBody(Buffer.concat(data),type,options,url);\n\t\t callback(null);\n\t } else {\n\t \tif(response.statusCode === 302 || response.statusCode === 303 || response.statusCode === 307) {\n\t \t\treturn self.fetchFile(response.headers.location,options,callback,redirectCount + 1);\n\t \t} else {\n\t\t \treturn callback(\"Error \" + response.statusCode + \" retrieving \" + url)\t \t\t\n\t \t}\n\t }\n\t \t});\n\t \tresponse.on(\"error\",function(e) {\n\t\t\tconsole.log(\"Error on GET request: \" + e);\n\t\t\tcallback(e);\n\t \t});\n\t});\n\treturn null;\n};\n\nCommand.prototype.processBody = function(body,type,options,url) {\n\tvar self = this;\n\t// Collect the tiddlers in a wiki\n\tvar incomingWiki = new $tw.Wiki();\n\tif(options.raw) {\n\t\tvar typeInfo = type ? $tw.config.contentTypeInfo[type] : null,\n\t\t\tencoding = typeInfo ? typeInfo.encoding : \"utf8\";\n\t\tincomingWiki.addTiddler(new $tw.Tiddler({\n\t\t\ttitle: url,\n\t\t\ttype: type,\n\t\t\ttext: body.toString(encoding)\n\t\t}));\n\t} else {\n\t\t// Deserialise the file to extract the tiddlers\n\t\tvar tiddlers = this.commander.wiki.deserializeTiddlers(type || \"text/html\",body.toString(\"utf8\"),{});\n\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\tincomingWiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t});\n\t}\n\t// Filter the tiddlers to select the ones we want\n\tvar filteredTitles = incomingWiki.filterTiddlers(options.importFilter || \"[all[tiddlers]]\");\n\t// Import the selected tiddlers\n\tvar count = 0;\n\tincomingWiki.each(function(tiddler,title) {\n\t\tif(filteredTitles.indexOf(title) !== -1) {\n\t\t\tvar newTiddler;\n\t\t\tif(options.transformFilter) {\n\t\t\t\tvar transformedTitle = (incomingWiki.filterTiddlers(options.transformFilter,null,self.commander.wiki.makeTiddlerIterator([title])) || [\"\"])[0];\n\t\t\t\tif(transformedTitle) {\n\t\t\t\t\tself.commander.log(\"Importing \" + title + \" as \" + transformedTitle)\n\t\t\t\t\tnewTiddler = new $tw.Tiddler(tiddler,{title: transformedTitle});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.commander.log(\"Importing \" + title)\n\t\t\t\tnewTiddler = tiddler;\n\t\t\t}\n\t\t\tself.commander.wiki.importTiddler(newTiddler);\n\t\t\tcount++;\n\t\t}\n\t});\n\tself.commander.log(\"Imported \" + count + \" tiddlers\")\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/help.js": {
"title": "$:/core/modules/commands/help.js",
"text": "/*\\\ntitle: $:/core/modules/commands/help.js\ntype: application/javascript\nmodule-type: command\n\nHelp command\n\n\\*/\n(function(){\n\n/*jshint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"help\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar subhelp = this.params[0] || \"default\",\n\t\thelpBase = \"$:/language/Help/\",\n\t\ttext;\n\tif(!this.commander.wiki.getTiddler(helpBase + subhelp)) {\n\t\tsubhelp = \"notfound\";\n\t}\n\t// Wikify the help as formatted text (ie block elements generate newlines)\n\ttext = this.commander.wiki.renderTiddler(\"text/plain-formatted\",helpBase + subhelp);\n\t// Remove any leading linebreaks\n\ttext = text.replace(/^(\\r?\\n)*/g,\"\");\n\tthis.commander.streams.output.write(text);\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/import.js": {
"title": "$:/core/modules/commands/import.js",
"text": "/*\\\ntitle: $:/core/modules/commands/import.js\ntype: application/javascript\nmodule-type: command\n\nCommand to import tiddlers from a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"import\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 2) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar filename = self.params[0],\n\t\tdeserializer = self.params[1],\n\t\ttitle = self.params[2] || filename,\n\t\tencoding = self.params[3] || \"utf8\",\n\t\ttext = fs.readFileSync(filename,encoding),\n\t\ttiddlers = this.commander.wiki.deserializeTiddlers(null,text,{title: title},{deserializer: deserializer});\n\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t});\n\tthis.commander.log(tiddlers.length + \" tiddler(s) imported\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/init.js": {
"title": "$:/core/modules/commands/init.js",
"text": "/*\\\ntitle: $:/core/modules/commands/init.js\ntype: application/javascript\nmodule-type: command\n\nCommand to initialise an empty wiki folder\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"init\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\t// Check that we don't already have a valid wiki folder\n\tif($tw.boot.wikiTiddlersPath || ($tw.utils.isDirectory($tw.boot.wikiPath) && !$tw.utils.isDirectoryEmpty($tw.boot.wikiPath))) {\n\t\treturn \"Wiki folder is not empty\";\n\t}\n\t// Loop through each of the specified editions\n\tvar editions = this.params.length > 0 ? this.params : [\"empty\"];\n\tfor(var editionIndex=0; editionIndex<editions.length; editionIndex++) {\n\t\tvar editionName = editions[editionIndex];\n\t\t// Check the edition exists\n\t\tvar editionPath = $tw.findLibraryItem(editionName,$tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar));\n\t\tif(!$tw.utils.isDirectory(editionPath)) {\n\t\t\treturn \"Edition '\" + editionName + \"' not found\";\n\t\t}\n\t\t// Copy the edition content\n\t\tvar err = $tw.utils.copyDirectory(editionPath,$tw.boot.wikiPath);\n\t\tif(!err) {\n\t\t\tthis.commander.streams.output.write(\"Copied edition '\" + editionName + \"' to \" + $tw.boot.wikiPath + \"\\n\");\n\t\t} else {\n\t\t\treturn err;\n\t\t}\n\t}\n\t// Tweak the tiddlywiki.info to remove any included wikis\n\tvar packagePath = $tw.boot.wikiPath + \"/tiddlywiki.info\",\n\t\tpackageJson = JSON.parse(fs.readFileSync(packagePath));\n\tdelete packageJson.includeWikis;\n\tfs.writeFileSync(packagePath,JSON.stringify(packageJson,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/listen.js": {
"title": "$:/core/modules/commands/listen.js",
"text": "/*\\\ntitle: $:/core/modules/commands/listen.js\ntype: application/javascript\nmodule-type: command\n\nListen for HTTP requests and serve tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Server = require(\"$:/core/modules/server/server.js\").Server;\n\nexports.info = {\n\tname: \"listen\",\n\tsynchronous: true,\n\tnamedParameterMode: true,\n\tmandatoryParameters: [],\n};\n\nvar Command = function(params,commander,callback) {\n\tvar self = this;\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\t// Set up server\n\tthis.server = new Server({\n\t\twiki: this.commander.wiki,\n\t\tvariables: self.params\n\t});\n\tvar nodeServer = this.server.listen();\n\t$tw.hooks.invokeHook(\"th-server-command-post-start\",this.server,nodeServer,\"tiddlywiki\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/load.js": {
"title": "$:/core/modules/commands/load.js",
"text": "/*\\\ntitle: $:/core/modules/commands/load.js\ntype: application/javascript\nmodule-type: command\n\nCommand to load tiddlers from a file or directory\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"load\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar tiddlers = $tw.loadTiddlersFromPath(self.params[0]),\n\t\tcount = 0;\n\t$tw.utils.each(tiddlers,function(tiddlerInfo) {\n\t\t$tw.utils.each(tiddlerInfo.tiddlers,function(tiddler) {\n\t\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t\t\tcount++;\n\t\t});\n\t});\n\tif(!count && self.params[1] !== \"noerror\") {\n\t\tself.callback(\"No tiddlers found in file \\\"\" + self.params[0] + \"\\\"\");\n\t} else {\n\t\tself.callback(null);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/makelibrary.js": {
"title": "$:/core/modules/commands/makelibrary.js",
"text": "/*\\\ntitle: $:/core/modules/commands/makelibrary.js\ntype: application/javascript\nmodule-type: command\n\nCommand to pack all of the plugins in the library into a plugin tiddler of type \"library\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"makelibrary\",\n\tsynchronous: true\n};\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar wiki = this.commander.wiki,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tupgradeLibraryTitle = this.params[0] || UPGRADE_LIBRARY_TITLE,\n\t\ttiddlers = {};\n\t// Collect up the library plugins\n\tvar collectPlugins = function(folder) {\n\t\t\tvar pluginFolders = $tw.utils.getSubdirectories(folder) || [];\n\t\t\tfor(var p=0; p<pluginFolders.length; p++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(pluginFolders[p])) {\n\t\t\t\t\tpluginFields = $tw.loadPluginFolder(path.resolve(folder,\"./\" + pluginFolders[p]));\n\t\t\t\t\tif(pluginFields && pluginFields.title) {\n\t\t\t\t\t\ttiddlers[pluginFields.title] = pluginFields;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcollectPublisherPlugins = function(folder) {\n\t\t\tvar publisherFolders = $tw.utils.getSubdirectories(folder) || [];\n\t\t\tfor(var t=0; t<publisherFolders.length; t++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(publisherFolders[t])) {\n\t\t\t\t\tcollectPlugins(path.resolve(folder,\"./\" + publisherFolders[t]));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.pluginsPath,$tw.config.pluginsEnvVar),collectPublisherPlugins);\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.themesPath,$tw.config.themesEnvVar),collectPublisherPlugins);\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.languagesPath,$tw.config.languagesEnvVar),collectPlugins);\n\t// Save the upgrade library tiddler\n\tvar pluginFields = {\n\t\ttitle: upgradeLibraryTitle,\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"library\",\n\t\t\"text\": JSON.stringify({tiddlers: tiddlers})\n\t};\n\twiki.addTiddler(new $tw.Tiddler(pluginFields));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/output.js": {
"title": "$:/core/modules/commands/output.js",
"text": "/*\\\ntitle: $:/core/modules/commands/output.js\ntype: application/javascript\nmodule-type: command\n\nCommand to set the default output location (defaults to current working directory)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"output\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing output path\";\n\t}\n\tthis.commander.outputPath = path.resolve(process.cwd(),this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/password.js": {
"title": "$:/core/modules/commands/password.js",
"text": "/*\\\ntitle: $:/core/modules/commands/password.js\ntype: application/javascript\nmodule-type: command\n\nSave password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"password\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing password\";\n\t}\n\t$tw.crypto.setPassword(this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/render.js": {
"title": "$:/core/modules/commands/render.js",
"text": "/*\\\ntitle: $:/core/modules/commands/render.js\ntype: application/javascript\nmodule-type: command\n\nRender individual tiddlers and save the results to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"render\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing tiddler filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]addsuffix[.html]]\",\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tvarName = this.params[4],\n\t\tvarValue = this.params[5],\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template || title),\n\t\t\tvariables = {currentTiddler: title};\n\t\tif(varName) {\n\t\t\tvariables[varName] = varValue || \"\";\n\t\t}\n\t\tvar widgetNode = wiki.makeWidget(parser,{variables: variables}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Rendering \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/rendertiddler.js": {
"title": "$:/core/modules/commands/rendertiddler.js",
"text": "/*\\\ntitle: $:/core/modules/commands/rendertiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render a tiddler and save it to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"rendertiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tname = this.params[4],\n\t\tvalue = this.params[5],\n\t\tvariables = {};\n\t$tw.utils.createFileDirectories(filename);\n\tif(template) {\n\t\tvariables.currentTiddler = title;\n\t\ttitle = template;\n\t}\n\tif(name && value) {\n\t\tvariables[name] = value;\n\t}\n\tfs.writeFile(filename,this.commander.wiki.renderTiddler(type,title,{variables: variables}),\"utf8\",function(err) {\n\t\tself.callback(err);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/rendertiddlers.js": {
"title": "$:/core/modules/commands/rendertiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/rendertiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"rendertiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttemplate = this.params[1],\n\t\toutputPath = this.commander.outputPath,\n\t\tpathname = path.resolve(outputPath,this.params[2]),\t\t\n\t\ttype = this.params[3] || \"text/html\",\n\t\textension = this.params[4] || \".html\",\n\t\tdeleteDirectory = (this.params[5] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template),\n\t\t\twidgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\texportPath = null;\n\t\tif($tw.utils.hop($tw.macros,\"tv-get-export-path\")) {\n\t\t\tvar macroPath = $tw.macros[\"tv-get-export-path\"].run.apply(self,[title]);\n\t\t\tif(macroPath) {\n\t\t\t\texportPath = path.resolve(outputPath,macroPath + extension);\n\t\t\t}\n\t\t}\n\t\tvar finalPath = exportPath || path.resolve(pathname,encodeURIComponent(title) + extension);\n\t\t$tw.utils.createFileDirectories(finalPath);\n\t\tfs.writeFileSync(finalPath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/save.js": {
"title": "$:/core/modules/commands/save.js",
"text": "/*\\\ntitle: $:/core/modules/commands/save.js\ntype: application/javascript\nmodule-type: command\n\nSaves individual tiddlers in their raw text or binary format to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"save\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]]\",\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Saving \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savelibrarytiddlers.js": {
"title": "$:/core/modules/commands/savelibrarytiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savelibrarytiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the subtiddlers of a bundle tiddler as a series of JSON files\n\n--savelibrarytiddlers <tiddler> <tiddler-filter> <pathname> <skinnylisting>\n\nThe tiddler identifies the bundle tiddler that contains the subtiddlers.\n\nThe tiddler filter specifies the plugins to be included.\n\nThe pathname specifies the pathname to the folder in which the JSON files should be saved. The filename is the URL encoded title of the subtiddler.\n\nThe skinnylisting specifies the title of the tiddler to which a JSON catalogue of the subtiddlers will be saved. The JSON file contains the same data as the bundle tiddler but with the `text` field removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savelibrarytiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tcontainerTitle = this.params[0],\n\t\tfilter = this.params[1],\n\t\tbasepath = this.params[2],\n\t\tskinnyListTitle = this.params[3];\n\t// Get the container tiddler as data\n\tvar containerData = self.commander.wiki.getTiddlerDataCached(containerTitle,undefined);\n\tif(!containerData) {\n\t\treturn \"'\" + containerTitle + \"' is not a tiddler bundle\";\n\t}\n\t// Filter the list of plugins\n\tvar pluginList = [];\n\t$tw.utils.each(containerData.tiddlers,function(tiddler,title) {\n\t\tpluginList.push(title);\n\t});\n\tvar filteredPluginList;\n\tif(filter) {\n\t\tfilteredPluginList = self.commander.wiki.filterTiddlers(filter,null,self.commander.wiki.makeTiddlerIterator(pluginList));\n\t} else {\n\t\tfilteredPluginList = pluginList;\n\t}\n\t// Iterate through the plugins\n\tvar skinnyList = [];\n\t$tw.utils.each(filteredPluginList,function(title) {\n\t\tvar tiddler = containerData.tiddlers[title];\n\t\t// Save each JSON file and collect the skinny data\n\t\tvar pathname = path.resolve(self.commander.outputPath,basepath + encodeURIComponent(title) + \".json\");\n\t\t$tw.utils.createFileDirectories(pathname);\n\t\tfs.writeFileSync(pathname,JSON.stringify(tiddler),\"utf8\");\n\t\t// Collect the skinny list data\n\t\tvar pluginTiddlers = JSON.parse(tiddler.text),\n\t\t\treadmeContent = (pluginTiddlers.tiddlers[title + \"/readme\"] || {}).text,\n\t\t\tdoesRequireReload = !!self.commander.wiki.doesPluginInfoRequireReload(pluginTiddlers),\n\t\t\ticonTiddler = pluginTiddlers.tiddlers[title + \"/icon\"] || {},\n\t\t\ticonType = iconTiddler.type,\n\t\t\ticonText = iconTiddler.text,\n\t\t\ticonContent;\n\t\tif(iconType && iconText) {\n\t\t\ticonContent = $tw.utils.makeDataUri(iconText,iconType);\n\t\t}\n\t\tskinnyList.push($tw.utils.extend({},tiddler,{\n\t\t\ttext: undefined,\n\t\t\treadme: readmeContent,\n\t\t\t\"requires-reload\": doesRequireReload ? \"yes\" : \"no\",\n\t\t\ticon: iconContent\n\t\t}));\n\t});\n\t// Save the catalogue tiddler\n\tif(skinnyListTitle) {\n\t\tself.commander.wiki.setTiddlerData(skinnyListTitle,skinnyList);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savetiddler.js": {
"title": "$:/core/modules/commands/savetiddler.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savetiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the content of a tiddler to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savetiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttiddler = this.commander.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar type = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"};\n\t\t$tw.utils.createFileDirectories(filename);\n\t\tfs.writeFile(filename,tiddler.fields.text,contentTypeInfo.encoding,function(err) {\n\t\t\tself.callback(err);\n\t\t});\n\t} else {\n\t\treturn \"Missing tiddler: \" + title;\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savetiddlers.js": {
"title": "$:/core/modules/commands/savetiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"savetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tpathname = path.resolve(this.commander.outputPath,this.params[1]),\n\t\tdeleteDirectory = (this.params[2] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.createDirectory(pathname);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilename = path.resolve(pathname,encodeURIComponent(title));\n\t\tfs.writeFileSync(filename,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savewikifolder.js": {
"title": "$:/core/modules/commands/savewikifolder.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savewikifolder.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the current wiki as a wiki folder\n\n--savewikifolder <wikifolderpath> [<filter>]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savewikifolder\",\n\tsynchronous: true\n};\n\nvar fs,path;\nif($tw.node) {\n\tfs = require(\"fs\");\n\tpath = require(\"path\");\n}\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing wiki folder path\";\n\t}\n\tvar wikifoldermaker = new WikiFolderMaker(this.params[0],this.params[1],this.commander);\n\treturn wikifoldermaker.save();\n};\n\nfunction WikiFolderMaker(wikiFolderPath,wikiFilter,commander) {\n\tthis.wikiFolderPath = wikiFolderPath;\n\tthis.wikiFilter = wikiFilter || \"[all[tiddlers]]\";\n\tthis.commander = commander;\n\tthis.wiki = commander.wiki;\n\tthis.savedPaths = []; // So that we can detect filename clashes\n}\n\nWikiFolderMaker.prototype.log = function(str) {\n\tif(this.commander.verbose) {\n\t\tconsole.log(str);\n\t}\n};\n\nWikiFolderMaker.prototype.tiddlersToIgnore = [\n\t\"$:/boot/boot.css\",\n\t\"$:/boot/boot.js\",\n\t\"$:/boot/bootprefix.js\",\n\t\"$:/core\",\n\t\"$:/library/sjcl.js\",\n\t\"$:/temp/info-plugin\"\n];\n\n/*\nReturns null if successful, or an error string if there was an error\n*/\nWikiFolderMaker.prototype.save = function() {\n\tvar self = this;\n\t// Check that the output directory doesn't exist\n\tif(fs.existsSync(this.wikiFolderPath) && !$tw.utils.isDirectoryEmpty(this.wikiFolderPath)) {\n\t\treturn \"The unpackwiki command requires that the output wiki folder be empty\";\n\t}\n\t// Get the tiddlers from the source wiki\n\tvar tiddlerTitles = this.wiki.filterTiddlers(this.wikiFilter);\n\t// Initialise a new tiddlwiki.info file\n\tvar newWikiInfo = {};\n\t// Process each incoming tiddler in turn\n\t$tw.utils.each(tiddlerTitles,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tif(self.tiddlersToIgnore.indexOf(title) !== -1) {\n\t\t\t\t// Ignore the core plugin and the ephemeral info plugin\n\t\t\t\tself.log(\"Ignoring tiddler: \" + title);\n\t\t\t} else {\n\t\t\t\tvar type = tiddler.fields.type,\n\t\t\t\t\tpluginType = tiddler.fields[\"plugin-type\"];\n\t\t\t\tif(type === \"application/json\" && pluginType) {\n\t\t\t\t\t// Plugin tiddler\n\t\t\t\t\tvar libraryDetails = self.findPluginInLibrary(title);\n\t\t\t\t\tif(libraryDetails) {\n\t\t\t\t\t\t// A plugin from the core library\n\t\t\t\t\t\tself.log(\"Adding built-in plugin: \" + libraryDetails.name);\n\t\t\t\t\t\tnewWikiInfo[libraryDetails.type] = newWikiInfo[libraryDetails.type] || [];\n\t\t\t\t\t\t$tw.utils.pushTop(newWikiInfo[libraryDetails.type],libraryDetails.name);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// A custom plugin\n\t\t\t\t\t\tself.log(\"Processing custom plugin: \" + title);\n\t\t\t\t\t\tself.saveCustomPlugin(tiddler);\n\t\t\t\t\t}\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t// Ordinary tiddler\n\t\t\t\t\tself.saveTiddler(\"tiddlers\",tiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Save the tiddlywiki.info file\n\tthis.saveJSONFile(\"tiddlywiki.info\",newWikiInfo);\n\tself.log(\"Writing tiddlywiki.info: \" + JSON.stringify(newWikiInfo,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\n/*\nTest whether the specified tiddler is a plugin in the plugin library\n*/\nWikiFolderMaker.prototype.findPluginInLibrary = function(title) {\n\tvar parts = title.split(\"/\"),\n\t\tpluginPath, type, name;\n\tif(parts[0] === \"$:\") {\n\t\tif(parts[1] === \"languages\" && parts.length === 3) {\n\t\t\tpluginPath = \"languages\" + path.sep + parts[2];\n\t\t\ttype = parts[1];\n\t\t\tname = parts[2];\n\t\t} else if(parts[1] === \"plugins\" || parts[1] === \"themes\" && parts.length === 4) {\n\t\t\tpluginPath = parts[1] + path.sep + parts[2] + path.sep + parts[3];\n\t\t\ttype = parts[1];\n\t\t\tname = parts[2] + \"/\" + parts[3];\n\t\t}\n\t}\n\tif(pluginPath && type && name) {\n\t\tpluginPath = path.resolve($tw.boot.bootPath,\"..\",pluginPath);\n\t\tif(fs.existsSync(pluginPath)) {\n\t\t\treturn {\n\t\t\t\tpluginPath: pluginPath,\n\t\t\t\ttype: type,\n\t\t\t\tname: name\n\t\t\t};\n\t\t}\n\t}\n\treturn false;\n};\n\nWikiFolderMaker.prototype.saveCustomPlugin = function(pluginTiddler) {\n\tvar self = this,\n\t\tpluginTitle = pluginTiddler.fields.title,\n\t\ttitleParts = pluginTitle.split(\"/\"),\n\t\tdirectory = $tw.utils.generateTiddlerFilepath(titleParts[titleParts.length - 1],{\n\t\t\tdirectory: path.resolve(this.wikiFolderPath,pluginTiddler.fields[\"plugin-type\"] + \"s\")\n\t\t}),\n\t\tpluginInfo = pluginTiddler.getFieldStrings({exclude: [\"text\",\"type\"]});\n\tthis.saveJSONFile(directory + path.sep + \"plugin.info\",pluginInfo);\n\tself.log(\"Writing \" + directory + path.sep + \"plugin.info: \" + JSON.stringify(pluginInfo,null,$tw.config.preferences.jsonSpaces));\n\tvar pluginTiddlers = JSON.parse(pluginTiddler.fields.text).tiddlers; // A hashmap of tiddlers in the plugin\n\t$tw.utils.each(pluginTiddlers,function(tiddler) {\n\t\tself.saveTiddler(directory,new $tw.Tiddler(tiddler));\n\t});\n};\n\nWikiFolderMaker.prototype.saveTiddler = function(directory,tiddler) {\n\tvar fileInfo = $tw.utils.generateTiddlerFileInfo(tiddler,{\n\t\tdirectory: path.resolve(this.wikiFolderPath,directory),\n\t\twiki: this.wiki\n\t});\n\t$tw.utils.saveTiddlerToFileSync(tiddler,fileInfo);\n};\n\nWikiFolderMaker.prototype.saveJSONFile = function(filename,json) {\n\tthis.saveTextFile(filename,JSON.stringify(json,null,$tw.config.preferences.jsonSpaces));\n};\n\nWikiFolderMaker.prototype.saveTextFile = function(filename,data) {\n\tthis.saveFile(filename,\"utf8\",data);\n};\n\nWikiFolderMaker.prototype.saveFile = function(filename,encoding,data) {\n\tvar filepath = path.resolve(this.wikiFolderPath,filename);\n\t$tw.utils.createFileDirectories(filepath);\n\tfs.writeFileSync(filepath,data,encoding);\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/server.js": {
"title": "$:/core/modules/commands/server.js",
"text": "/*\\\ntitle: $:/core/modules/commands/server.js\ntype: application/javascript\nmodule-type: command\n\nDeprecated legacy command for serving tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Server = require(\"$:/core/modules/server/server.js\").Server;\n\nexports.info = {\n\tname: \"server\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tvar self = this;\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\t// Set up server\n\tthis.server = new Server({\n\t\twiki: this.commander.wiki,\n\t\tvariables: {\n\t\t\tport: this.params[0],\n\t\t\thost: this.params[6],\n\t\t\t\"root-tiddler\": this.params[1],\n\t\t\t\"root-render-type\": this.params[2],\n\t\t\t\"root-serve-type\": this.params[3],\n\t\t\tusername: this.params[4],\n\t\t\tpassword: this.params[5],\n\t\t\t\"path-prefix\": this.params[7],\n\t\t\t\"debug-level\": this.params[8]\n\t\t}\n\t});\n\tvar nodeServer = this.server.listen();\n\t$tw.hooks.invokeHook(\"th-server-command-post-start\",this.server,nodeServer,\"tiddlywiki\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/setfield.js": {
"title": "$:/core/modules/commands/setfield.js",
"text": "/*\\\ntitle: $:/core/modules/commands/setfield.js\ntype: application/javascript\nmodule-type: command\n\nCommand to modify selected tiddlers to set a field to the text of a template tiddler that has been wikified with the selected tiddler as the current tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"setfield\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 4) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tfieldname = this.params[1] || \"text\",\n\t\ttemplatetitle = this.params[2],\n\t\trendertype = this.params[3] || \"text/plain\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(templatetitle),\n\t\t\tnewFields = {},\n\t\t\ttiddler = wiki.getTiddler(title);\n\t\tif(parser) {\n\t\t\tvar widgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}});\n\t\t\tvar container = $tw.fakeDocument.createElement(\"div\");\n\t\t\twidgetNode.render(container,null);\n\t\t\tnewFields[fieldname] = rendertype === \"text/html\" ? container.innerHTML : container.textContent;\n\t\t} else {\n\t\t\tnewFields[fieldname] = undefined;\n\t\t}\n\t\twiki.addTiddler(new $tw.Tiddler(tiddler,newFields));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/unpackplugin.js": {
"title": "$:/core/modules/commands/unpackplugin.js",
"text": "/*\\\ntitle: $:/core/modules/commands/unpackplugin.js\ntype: application/javascript\nmodule-type: command\n\nCommand to extract the shadow tiddlers from within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"unpackplugin\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing plugin name\";\n\t}\n\tvar self = this,\n\t\ttitle = this.params[0],\n\t\tpluginData = this.commander.wiki.getTiddlerDataCached(title);\n\tif(!pluginData) {\n\t\treturn \"Plugin '\" + title + \"' not found\";\n\t}\n\t$tw.utils.each(pluginData.tiddlers,function(tiddler) {\n\t\tself.commander.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/verbose.js": {
"title": "$:/core/modules/commands/verbose.js",
"text": "/*\\\ntitle: $:/core/modules/commands/verbose.js\ntype: application/javascript\nmodule-type: command\n\nVerbose command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"verbose\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.verbose = true;\n\t// Output the boot message log\n\tthis.commander.streams.output.write(\"Boot log:\\n \" + $tw.boot.logMessages.join(\"\\n \") + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/version.js": {
"title": "$:/core/modules/commands/version.js",
"text": "/*\\\ntitle: $:/core/modules/commands/version.js\ntype: application/javascript\nmodule-type: command\n\nVersion command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"version\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.streams.output.write($tw.version + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/config.js": {
"title": "$:/core/modules/config.js",
"text": "/*\\\ntitle: $:/core/modules/config.js\ntype: application/javascript\nmodule-type: config\n\nCore configuration constants\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.preferences = {};\n\nexports.preferences.notificationDuration = 3 * 1000;\nexports.preferences.jsonSpaces = 4;\n\nexports.textPrimitives = {\n\tupperLetter: \"[A-Z\\u00c0-\\u00d6\\u00d8-\\u00de\\u0150\\u0170]\",\n\tlowerLetter: \"[a-z\\u00df-\\u00f6\\u00f8-\\u00ff\\u0151\\u0171]\",\n\tanyLetter: \"[A-Za-z0-9\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\",\n\tblockPrefixLetters:\t\"[A-Za-z0-9-_\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\"\n};\n\nexports.textPrimitives.unWikiLink = \"~\";\nexports.textPrimitives.wikiLink = exports.textPrimitives.upperLetter + \"+\" +\n\texports.textPrimitives.lowerLetter + \"+\" +\n\texports.textPrimitives.upperLetter +\n\texports.textPrimitives.anyLetter + \"*\";\n\nexports.htmlEntities = {quot:34, amp:38, apos:39, lt:60, gt:62, nbsp:160, iexcl:161, cent:162, pound:163, curren:164, yen:165, brvbar:166, sect:167, uml:168, copy:169, ordf:170, laquo:171, not:172, shy:173, reg:174, macr:175, deg:176, plusmn:177, sup2:178, sup3:179, acute:180, micro:181, para:182, middot:183, cedil:184, sup1:185, ordm:186, raquo:187, frac14:188, frac12:189, frac34:190, iquest:191, Agrave:192, Aacute:193, Acirc:194, Atilde:195, Auml:196, Aring:197, AElig:198, Ccedil:199, Egrave:200, Eacute:201, Ecirc:202, Euml:203, Igrave:204, Iacute:205, Icirc:206, Iuml:207, ETH:208, Ntilde:209, Ograve:210, Oacute:211, Ocirc:212, Otilde:213, Ouml:214, times:215, Oslash:216, Ugrave:217, Uacute:218, Ucirc:219, Uuml:220, Yacute:221, THORN:222, szlig:223, agrave:224, aacute:225, acirc:226, atilde:227, auml:228, aring:229, aelig:230, ccedil:231, egrave:232, eacute:233, ecirc:234, euml:235, igrave:236, iacute:237, icirc:238, iuml:239, eth:240, ntilde:241, ograve:242, oacute:243, ocirc:244, otilde:245, ouml:246, divide:247, oslash:248, ugrave:249, uacute:250, ucirc:251, uuml:252, yacute:253, thorn:254, yuml:255, OElig:338, oelig:339, Scaron:352, scaron:353, Yuml:376, fnof:402, circ:710, tilde:732, Alpha:913, Beta:914, Gamma:915, Delta:916, Epsilon:917, Zeta:918, Eta:919, Theta:920, Iota:921, Kappa:922, Lambda:923, Mu:924, Nu:925, Xi:926, Omicron:927, Pi:928, Rho:929, Sigma:931, Tau:932, Upsilon:933, Phi:934, Chi:935, Psi:936, Omega:937, alpha:945, beta:946, gamma:947, delta:948, epsilon:949, zeta:950, eta:951, theta:952, iota:953, kappa:954, lambda:955, mu:956, nu:957, xi:958, omicron:959, pi:960, rho:961, sigmaf:962, sigma:963, tau:964, upsilon:965, phi:966, chi:967, psi:968, omega:969, thetasym:977, upsih:978, piv:982, ensp:8194, emsp:8195, thinsp:8201, zwnj:8204, zwj:8205, lrm:8206, rlm:8207, ndash:8211, mdash:8212, lsquo:8216, rsquo:8217, sbquo:8218, ldquo:8220, rdquo:8221, bdquo:8222, dagger:8224, Dagger:8225, bull:8226, hellip:8230, permil:8240, prime:8242, Prime:8243, lsaquo:8249, rsaquo:8250, oline:8254, frasl:8260, euro:8364, image:8465, weierp:8472, real:8476, trade:8482, alefsym:8501, larr:8592, uarr:8593, rarr:8594, darr:8595, harr:8596, crarr:8629, lArr:8656, uArr:8657, rArr:8658, dArr:8659, hArr:8660, forall:8704, part:8706, exist:8707, empty:8709, nabla:8711, isin:8712, notin:8713, ni:8715, prod:8719, sum:8721, minus:8722, lowast:8727, radic:8730, prop:8733, infin:8734, ang:8736, and:8743, or:8744, cap:8745, cup:8746, int:8747, there4:8756, sim:8764, cong:8773, asymp:8776, ne:8800, equiv:8801, le:8804, ge:8805, sub:8834, sup:8835, nsub:8836, sube:8838, supe:8839, oplus:8853, otimes:8855, perp:8869, sdot:8901, lceil:8968, rceil:8969, lfloor:8970, rfloor:8971, lang:9001, rang:9002, loz:9674, spades:9824, clubs:9827, hearts:9829, diams:9830 };\n\nexports.htmlVoidElements = \"area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr\".split(\",\");\n\nexports.htmlBlockElements = \"address,article,aside,audio,blockquote,canvas,dd,div,dl,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,li,noscript,ol,output,p,pre,section,table,tfoot,ul,video\".split(\",\");\n\nexports.htmlUnsafeElements = \"script\".split(\",\");\n\n})();\n",
"type": "application/javascript",
"module-type": "config"
},
"$:/core/modules/deserializers.js": {
"title": "$:/core/modules/deserializers.js",
"text": "/*\\\ntitle: $:/core/modules/deserializers.js\ntype: application/javascript\nmodule-type: tiddlerdeserializer\n\nFunctions to deserialise tiddlers from a block of text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nUtility function to parse an old-style tiddler DIV in a *.tid file. It looks like this:\n\n<div title=\"Title\" creator=\"JoeBloggs\" modifier=\"JoeBloggs\" created=\"201102111106\" modified=\"201102111310\" tags=\"myTag [[my long tag]]\">\n<pre>The text of the tiddler (without the expected HTML encoding).\n</pre>\n</div>\n\nNote that the field attributes are HTML encoded, but that the body of the <PRE> tag is not encoded.\n\nWhen these tiddler DIVs are encountered within a TiddlyWiki HTML file then the body is encoded in the usual way.\n*/\nvar parseTiddlerDiv = function(text /* [,fields] */) {\n\t// Slot together the default results\n\tvar result = {};\n\tif(arguments.length > 1) {\n\t\tfor(var f=1; f<arguments.length; f++) {\n\t\t\tvar fields = arguments[f];\n\t\t\tfor(var t in fields) {\n\t\t\t\tresult[t] = fields[t];\t\t\n\t\t\t}\n\t\t}\n\t}\n\t// Parse the DIV body\n\tvar startRegExp = /^\\s*<div\\s+([^>]*)>(\\s*<pre>)?/gi,\n\t\tendRegExp,\n\t\tmatch = startRegExp.exec(text);\n\tif(match) {\n\t\t// Old-style DIVs don't have the <pre> tag\n\t\tif(match[2]) {\n\t\t\tendRegExp = /<\\/pre>\\s*<\\/div>\\s*$/gi;\n\t\t} else {\n\t\t\tendRegExp = /<\\/div>\\s*$/gi;\n\t\t}\n\t\tvar endMatch = endRegExp.exec(text);\n\t\tif(endMatch) {\n\t\t\t// Extract the text\n\t\t\tresult.text = text.substring(match.index + match[0].length,endMatch.index);\n\t\t\t// Process the attributes\n\t\t\tvar attrRegExp = /\\s*([^=\\s]+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)')/gi,\n\t\t\t\tattrMatch;\n\t\t\tdo {\n\t\t\t\tattrMatch = attrRegExp.exec(match[1]);\n\t\t\t\tif(attrMatch) {\n\t\t\t\t\tvar name = attrMatch[1];\n\t\t\t\t\tvar value = attrMatch[2] !== undefined ? attrMatch[2] : attrMatch[3];\n\t\t\t\t\tresult[name] = value;\n\t\t\t\t}\n\t\t\t} while(attrMatch);\n\t\t\treturn result;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports[\"application/x-tiddler-html-div\"] = function(text,fields) {\n\treturn [parseTiddlerDiv(text,fields)];\n};\n\nexports[\"application/json\"] = function(text,fields) {\n\tvar incoming,\n\t\tresults = [];\n\ttry {\n\t\tincoming = JSON.parse(text);\n\t} catch(e) {\n\t\tincoming = [{\n\t\t\ttitle: \"JSON error: \" + e,\n\t\t\ttext: \"\"\n\t\t}]\n\t}\n\tif(!$tw.utils.isArray(incoming)) {\n\t\tincoming = [incoming];\n\t}\n\tfor(var t=0; t<incoming.length; t++) {\n\t\tvar incomingFields = incoming[t],\n\t\t\tfields = {};\n\t\tfor(var f in incomingFields) {\n\t\t\tif(typeof incomingFields[f] === \"string\") {\n\t\t\t\tfields[f] = incomingFields[f];\n\t\t\t}\n\t\t}\n\t\tresults.push(fields);\n\t}\n\treturn results;\n};\n\n/*\nParse an HTML file into tiddlers. There are three possibilities:\n# A TiddlyWiki classic HTML file containing `text/x-tiddlywiki` tiddlers\n# A TiddlyWiki5 HTML file containing `text/vnd.tiddlywiki` tiddlers\n# An ordinary HTML file\n*/\nexports[\"text/html\"] = function(text,fields) {\n\t// Check if we've got a store area\n\tvar storeAreaMarkerRegExp = /<div id=[\"']?storeArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\tmatch = storeAreaMarkerRegExp.exec(text);\n\tif(match) {\n\t\t// If so, it's either a classic TiddlyWiki file or an unencrypted TW5 file\n\t\t// First read the normal tiddlers\n\t\tvar results = deserializeTiddlyWikiFile(text,storeAreaMarkerRegExp.lastIndex,!!match[1],fields);\n\t\t// Then any system tiddlers\n\t\tvar systemAreaMarkerRegExp = /<div id=[\"']?systemArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\t\tsysMatch = systemAreaMarkerRegExp.exec(text);\n\t\tif(sysMatch) {\n\t\t\tresults.push.apply(results,deserializeTiddlyWikiFile(text,systemAreaMarkerRegExp.lastIndex,!!sysMatch[1],fields));\n\t\t}\n\t\treturn results;\n\t} else {\n\t\t// Check whether we've got an encrypted file\n\t\tvar encryptedStoreArea = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedStoreArea) {\n\t\t\t// If so, attempt to decrypt it using the current password\n\t\t\treturn $tw.utils.decryptStoreArea(encryptedStoreArea);\n\t\t} else {\n\t\t\t// It's not a TiddlyWiki so we'll return the entire HTML file as a tiddler\n\t\t\treturn deserializeHtmlFile(text,fields);\n\t\t}\n\t}\n};\n\nfunction deserializeHtmlFile(text,fields) {\n\tvar result = {};\n\t$tw.utils.each(fields,function(value,name) {\n\t\tresult[name] = value;\n\t});\n\tresult.text = text;\n\tresult.type = \"text/html\";\n\treturn [result];\n}\n\nfunction deserializeTiddlyWikiFile(text,storeAreaEnd,isTiddlyWiki5,fields) {\n\tvar results = [],\n\t\tendOfDivRegExp = /(<\\/div>\\s*)/gi,\n\t\tstartPos = storeAreaEnd,\n\t\tdefaultType = isTiddlyWiki5 ? undefined : \"text/x-tiddlywiki\";\n\tendOfDivRegExp.lastIndex = startPos;\n\tvar match = endOfDivRegExp.exec(text);\n\twhile(match) {\n\t\tvar endPos = endOfDivRegExp.lastIndex,\n\t\t\ttiddlerFields = parseTiddlerDiv(text.substring(startPos,endPos),fields,{type: defaultType});\n\t\tif(!tiddlerFields) {\n\t\t\tbreak;\n\t\t}\n\t\t$tw.utils.each(tiddlerFields,function(value,name) {\n\t\t\tif(typeof value === \"string\") {\n\t\t\t\ttiddlerFields[name] = $tw.utils.htmlDecode(value);\n\t\t\t}\n\t\t});\n\t\tif(tiddlerFields.text !== null) {\n\t\t\tresults.push(tiddlerFields);\n\t\t}\n\t\tstartPos = endPos;\n\t\tmatch = endOfDivRegExp.exec(text);\n\t}\n\treturn results;\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "tiddlerdeserializer"
},
"$:/core/modules/editor/engines/framed.js": {
"title": "$:/core/modules/editor/engines/framed.js",
"text": "/*\\\ntitle: $:/core/modules/editor/engines/framed.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea within an iframe. This is done so that the selection is preserved even when clicking away from the textarea\n\n\\*/\n(function(){\n\n/*jslint node: true,browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction FramedEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Create our hidden dummy text area for reading styles\n\tthis.dummyTextArea = this.widget.document.createElement(\"textarea\");\n\tif(this.widget.editClass) {\n\t\tthis.dummyTextArea.className = this.widget.editClass;\n\t}\n\tthis.dummyTextArea.setAttribute(\"hidden\",\"true\");\n\tthis.parentNode.insertBefore(this.dummyTextArea,this.nextSibling);\n\tthis.widget.domNodes.push(this.dummyTextArea);\n\t// Create the iframe\n\tthis.iframeNode = this.widget.document.createElement(\"iframe\");\n\tthis.parentNode.insertBefore(this.iframeNode,this.nextSibling);\n\tthis.iframeDoc = this.iframeNode.contentWindow.document;\n\t// (Firefox requires us to put some empty content in the iframe)\n\tthis.iframeDoc.open();\n\tthis.iframeDoc.write(\"\");\n\tthis.iframeDoc.close();\n\t// Style the iframe\n\tthis.iframeNode.className = this.dummyTextArea.className;\n\tthis.iframeNode.style.border = \"none\";\n\tthis.iframeNode.style.padding = \"0\";\n\tthis.iframeNode.style.resize = \"none\";\n\tthis.iframeDoc.body.style.margin = \"0\";\n\tthis.iframeDoc.body.style.padding = \"0\";\n\tthis.widget.domNodes.push(this.iframeNode);\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.iframeDoc.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.iframeDoc.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editTabIndex) {\n\t\tthis.iframeNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\n\t}\n\tif(this.widget.editAutoComplete) {\n\t\tthis.domNode.setAttribute(\"autocomplete\",this.widget.editAutoComplete);\n\t}\n\tif(this.widget.isDisabled === \"yes\") {\n\t\tthis.domNode.setAttribute(\"disabled\",true);\n\t}\t\n\t// Copy the styles from the dummy textarea\n\tthis.copyStyles();\n\t// Add event listeners\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"click\",handlerObject: this,handlerMethod: \"handleClickEvent\"},\n\t\t{name: \"input\",handlerObject: this,handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"keydown\",handlerObject: this.widget,handlerMethod: \"handleKeydownEvent\"},\n\t\t{name: \"focus\",handlerObject: this,handlerMethod: \"handleFocusEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.iframeDoc.body.appendChild(this.domNode);\n}\n\n/*\nCopy styles from the dummy text area to the textarea in the iframe\n*/\nFramedEngine.prototype.copyStyles = function() {\n\t// Copy all styles\n\t$tw.utils.copyStyles(this.dummyTextArea,this.domNode);\n\t// Override the ones that should not be set the same as the dummy textarea\n\tthis.domNode.style.display = \"block\";\n\tthis.domNode.style.width = \"100%\";\n\tthis.domNode.style.margin = \"0\";\n\t// In Chrome setting -webkit-text-fill-color overrides the placeholder text colour\n\tthis.domNode.style[\"-webkit-text-fill-color\"] = \"currentcolor\";\n};\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nFramedEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode) {\n\t\t\tthis.updateDomNodeText(text);\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nUpdate the DomNode with the new text\n*/\nFramedEngine.prototype.updateDomNodeText = function(text) {\n\tthis.domNode.value = text;\n};\n\n/*\nGet the text of the engine\n*/\nFramedEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nFramedEngine.prototype.fixHeight = function() {\n\t// Make sure styles are updated\n\tthis.copyStyles();\n\t// Adjust height\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tvar newHeight = $tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t\tthis.iframeNode.style.height = (newHeight + 14) + \"px\"; // +14 for the border on the textarea\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t\tthis.iframeNode.style.height = (fixedHeight + 14) + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nFramedEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a focus event\n*/\nFramedEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editCancelPopups) {\n\t\t$tw.popup.cancel(0);\t\n\t}\n};\n\n/*\nHandle a click\n*/\nFramedEngine.prototype.handleClickEvent = function(event) {\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nFramedEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\tif(this.widget.editInputActions) {\n\t\tthis.widget.invokeActionString(this.widget.editInputActions);\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nFramedEngine.prototype.createTextOperation = function() {\n\tvar operation = {\n\t\ttext: this.domNode.value,\n\t\tselStart: this.domNode.selectionStart,\n\t\tselEnd: this.domNode.selectionEnd,\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nFramedEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t\t// Attempt to use a execCommand to modify the value of the control\n\t\tif(this.iframeDoc.queryCommandSupported(\"insertText\") && this.iframeDoc.queryCommandSupported(\"delete\") && !$tw.browser.isFirefox) {\n\t\t\tthis.domNode.focus();\n\t\t\tthis.domNode.setSelectionRange(operation.cutStart,operation.cutEnd);\n\t\t\tif(operation.replacement === \"\") {\n\t\t\t\tthis.iframeDoc.execCommand(\"delete\",false,\"\");\n\t\t\t} else {\n\t\t\t\tthis.iframeDoc.execCommand(\"insertText\",false,operation.replacement);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.domNode.value = newText;\n\t\t}\n\t\tthis.domNode.focus();\n\t\tthis.domNode.setSelectionRange(operation.newSelStart,operation.newSelEnd);\n\t}\n\tthis.domNode.focus();\n\treturn newText;\n};\n\nexports.FramedEngine = FramedEngine;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/engines/simple.js": {
"title": "$:/core/modules/editor/engines/simple.js",
"text": "/*\\\ntitle: $:/core/modules/editor/engines/simple.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction SimpleEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.widget.document.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.widget.document.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editClass) {\n\t\tthis.domNode.className = this.widget.editClass;\n\t}\n\tif(this.widget.editTabIndex) {\n\t\tthis.domNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\n\t}\n\tif(this.widget.editAutoComplete) {\n\t\tthis.domNode.setAttribute(\"autocomplete\",this.widget.editAutoComplete);\n\t}\n\tif(this.widget.isDisabled === \"yes\") {\n\t\tthis.domNode.setAttribute(\"disabled\",true);\n\t}\n\t// Add an input event handler\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"focus\", handlerObject: this, handlerMethod: \"handleFocusEvent\"},\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.parentNode.insertBefore(this.domNode,this.nextSibling);\n\tthis.widget.domNodes.push(this.domNode);\n}\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nSimpleEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode || text === \"\") {\n\t\t\tthis.updateDomNodeText(text);\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nUpdate the DomNode with the new text\n*/\nSimpleEngine.prototype.updateDomNodeText = function(text) {\n\tthis.domNode.value = text;\n};\n\n/*\nGet the text of the engine\n*/\nSimpleEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nSimpleEngine.prototype.fixHeight = function() {\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\t$tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nSimpleEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nSimpleEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\tif(this.widget.editInputActions) {\n\t\tthis.widget.invokeActionString(this.widget.editInputActions);\n\t}\n\treturn true;\n};\n\n/*\nHandle a dom \"focus\" event\n*/\nSimpleEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editCancelPopups) {\n\t\t$tw.popup.cancel(0);\n\t}\n\tif(this.widget.editFocusPopup) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNode,\n\t\t\ttitle: this.widget.editFocusPopup,\n\t\t\twiki: this.widget.wiki,\n\t\t\tforce: true\n\t\t});\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nSimpleEngine.prototype.createTextOperation = function() {\n\treturn null;\n};\n\n/*\nExecute a text operation\n*/\nSimpleEngine.prototype.executeTextOperation = function(operation) {\n};\n\nexports.SimpleEngine = SimpleEngine;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/factory.js": {
"title": "$:/core/modules/editor/factory.js",
"text": "/*\\\ntitle: $:/core/modules/editor/factory.js\ntype: application/javascript\nmodule-type: library\n\nFactory for constructing text editor widgets with specified engines for the toolbar and non-toolbar cases\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_MIN_TEXT_AREA_HEIGHT = \"100px\"; // Minimum height of textareas in pixels\n\n// Configuration tiddlers\nvar HEIGHT_MODE_TITLE = \"$:/config/TextEditor/EditorHeight/Mode\";\nvar ENABLE_TOOLBAR_TITLE = \"$:/config/TextEditor/EnableToolbar\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nfunction editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {\n\n\tvar EditTextWidget = function(parseTreeNode,options) {\n\t\t// Initialise the editor operations if they've not been done already\n\t\tif(!this.editorOperations) {\n\t\t\tEditTextWidget.prototype.editorOperations = {};\n\t\t\t$tw.modules.applyMethods(\"texteditoroperation\",this.editorOperations);\n\t\t}\n\t\tthis.initialise(parseTreeNode,options);\n\t};\n\n\t/*\n\tInherit from the base widget class\n\t*/\n\tEditTextWidget.prototype = new Widget();\n\n\t/*\n\tRender this widget into the DOM\n\t*/\n\tEditTextWidget.prototype.render = function(parent,nextSibling) {\n\t\t// Save the parent dom node\n\t\tthis.parentDomNode = parent;\n\t\t// Compute our attributes\n\t\tthis.computeAttributes();\n\t\t// Execute our logic\n\t\tthis.execute();\n\t\t// Create the wrapper for the toolbar and render its content\n\t\tif(this.editShowToolbar) {\n\t\t\tthis.toolbarNode = this.document.createElement(\"div\");\n\t\t\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\t\t\tparent.insertBefore(this.toolbarNode,nextSibling);\n\t\t\tthis.renderChildren(this.toolbarNode,null);\n\t\t\tthis.domNodes.push(this.toolbarNode);\n\t\t}\n\t\t// Create our element\n\t\tvar editInfo = this.getEditInfo(),\n\t\t\tEngine = this.editShowToolbar ? toolbarEngine : nonToolbarEngine;\n\t\tthis.engine = new Engine({\n\t\t\t\twidget: this,\n\t\t\t\tvalue: editInfo.value,\n\t\t\t\ttype: editInfo.type,\n\t\t\t\tparentNode: parent,\n\t\t\t\tnextSibling: nextSibling\n\t\t\t});\n\t\t// Call the postRender hook\n\t\tif(this.postRender) {\n\t\t\tthis.postRender();\n\t\t}\n\t\t// Fix height\n\t\tthis.engine.fixHeight();\n\t\t// Focus if required\n\t\tif(this.editFocus === \"true\" || this.editFocus === \"yes\") {\n\t\t\tthis.engine.focus();\n\t\t}\n\t\t// Add widget message listeners\n\t\tthis.addEventListeners([\n\t\t\t{type: \"tm-edit-text-operation\", handler: \"handleEditTextOperationMessage\"}\n\t\t]);\n\t};\n\n\t/*\n\tGet the tiddler being edited and current value\n\t*/\n\tEditTextWidget.prototype.getEditInfo = function() {\n\t\t// Get the edit value\n\t\tvar self = this,\n\t\t\tvalue,\n\t\t\ttype = \"text/plain\",\n\t\t\tupdate;\n\t\tif(this.editIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.editTitle,this.editIndex,this.editDefault);\n\t\t\tupdate = function(value) {\n\t\t\t\tvar data = self.wiki.getTiddlerData(self.editTitle,{});\n\t\t\t\tif(data[self.editIndex] !== value) {\n\t\t\t\t\tdata[self.editIndex] = value;\n\t\t\t\t\tself.wiki.setTiddlerData(self.editTitle,data);\n\t\t\t\t}\n\t\t\t};\n\t\t} else {\n\t\t\t// Get the current tiddler and the field name\n\t\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\t\tif(tiddler) {\n\t\t\t\t// If we've got a tiddler, the value to display is the field string value\n\t\t\t\tvalue = tiddler.getFieldString(this.editField);\n\t\t\t\tif(this.editField === \"text\") {\n\t\t\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise, we need to construct a default value for the editor\n\t\t\t\tswitch(this.editField) {\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\tvalue = \"Type the text for the tiddler '\" + this.editTitle + \"'\";\n\t\t\t\t\t\ttype = \"text/vnd.tiddlywiki\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"title\":\n\t\t\t\t\t\tvalue = this.editTitle;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvalue = \"\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(this.editDefault !== undefined) {\n\t\t\t\t\tvalue = this.editDefault;\n\t\t\t\t}\n\t\t\t}\n\t\t\tupdate = function(value) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(self.editTitle),\n\t\t\t\t\tupdateFields = {\n\t\t\t\t\t\ttitle: self.editTitle\n\t\t\t\t\t};\n\t\t\t\tupdateFields[self.editField] = value;\n\t\t\t\tself.wiki.addTiddler(new $tw.Tiddler(self.wiki.getCreationFields(),tiddler,updateFields,self.wiki.getModificationFields()));\n\t\t\t};\n\t\t}\n\t\tif(this.editType) {\n\t\t\ttype = this.editType;\n\t\t}\n\t\treturn {value: value || \"\", type: type, update: update};\n\t};\n\n\t/*\n\tHandle an edit text operation message from the toolbar\n\t*/\n\tEditTextWidget.prototype.handleEditTextOperationMessage = function(event) {\n\t\t// Prepare information about the operation\n\t\tvar operation = this.engine.createTextOperation();\n\t\t// Invoke the handler for the selected operation\n\t\tvar handler = this.editorOperations[event.param];\n\t\tif(handler) {\n\t\t\thandler.call(this,event,operation);\n\t\t}\n\t\t// Execute the operation via the engine\n\t\tvar newText = this.engine.executeTextOperation(operation);\n\t\t// Fix the tiddler height and save changes\n\t\tthis.engine.fixHeight();\n\t\tthis.saveChanges(newText);\n\t};\n\n\t/*\n\tCompute the internal state of the widget\n\t*/\n\tEditTextWidget.prototype.execute = function() {\n\t\t// Get our parameters\n\t\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t\tthis.editField = this.getAttribute(\"field\",\"text\");\n\t\tthis.editIndex = this.getAttribute(\"index\");\n\t\tthis.editDefault = this.getAttribute(\"default\");\n\t\tthis.editClass = this.getAttribute(\"class\");\n\t\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\t\tthis.editSize = this.getAttribute(\"size\");\n\t\tthis.editRows = this.getAttribute(\"rows\");\n\t\tthis.editAutoHeight = this.wiki.getTiddlerText(HEIGHT_MODE_TITLE,\"auto\");\n\t\tthis.editAutoHeight = this.getAttribute(\"autoHeight\",this.editAutoHeight === \"auto\" ? \"yes\" : \"no\") === \"yes\";\n\t\tthis.editMinHeight = this.getAttribute(\"minHeight\",DEFAULT_MIN_TEXT_AREA_HEIGHT);\n\t\tthis.editFocusPopup = this.getAttribute(\"focusPopup\");\n\t\tthis.editFocus = this.getAttribute(\"focus\");\n\t\tthis.editTabIndex = this.getAttribute(\"tabindex\");\n\t\tthis.editCancelPopups = this.getAttribute(\"cancelPopups\",\"\") === \"yes\";\n\t\tthis.editInputActions = this.getAttribute(\"inputActions\");\n\t\tthis.editRefreshTitle = this.getAttribute(\"refreshTitle\");\n\t\tthis.editAutoComplete = this.getAttribute(\"autocomplete\");\n\t\tthis.isDisabled = this.getAttribute(\"disabled\",\"no\");\n\t\t// Get the default editor element tag and type\n\t\tvar tag,type;\n\t\tif(this.editField === \"text\") {\n\t\t\ttag = \"textarea\";\n\t\t} else {\n\t\t\ttag = \"input\";\n\t\t\tvar fieldModule = $tw.Tiddler.fieldModules[this.editField];\n\t\t\tif(fieldModule && fieldModule.editTag) {\n\t\t\t\ttag = fieldModule.editTag;\n\t\t\t}\n\t\t\tif(fieldModule && fieldModule.editType) {\n\t\t\t\ttype = fieldModule.editType;\n\t\t\t}\n\t\t\ttype = type || \"text\";\n\t\t}\n\t\t// Get the rest of our parameters\n\t\tthis.editTag = this.getAttribute(\"tag\",tag) || \"input\";\n\t\tthis.editType = this.getAttribute(\"type\",type);\n\t\t// Make the child widgets\n\t\tthis.makeChildWidgets();\n\t\t// Determine whether to show the toolbar\n\t\tthis.editShowToolbar = this.wiki.getTiddlerText(ENABLE_TOOLBAR_TITLE,\"yes\");\n\t\tthis.editShowToolbar = (this.editShowToolbar === \"yes\") && !!(this.children && this.children.length > 0) && (!this.document.isTiddlyWikiFakeDom);\n\t};\n\n\t/*\n\tSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n\t*/\n\tEditTextWidget.prototype.refresh = function(changedTiddlers) {\n\t\tvar changedAttributes = this.computeAttributes();\n\t\t// Completely rerender if any of our attributes have changed\n\t\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.placeholder || changedAttributes.size || changedAttributes.autoHeight || changedAttributes.minHeight || changedAttributes.focusPopup || changedAttributes.rows || changedAttributes.tabindex || changedAttributes.cancelPopups || changedAttributes.inputActions || changedAttributes.refreshTitle || changedAttributes.autocomplete || changedTiddlers[HEIGHT_MODE_TITLE] || changedTiddlers[ENABLE_TOOLBAR_TITLE] || changedAttributes.disabled) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t\t} else if (changedTiddlers[this.editRefreshTitle]) {\n\t\t\tthis.engine.updateDomNodeText(this.getEditInfo().value);\n\t\t} else if(changedTiddlers[this.editTitle]) {\n\t\t\tvar editInfo = this.getEditInfo();\n\t\t\tthis.updateEditor(editInfo.value,editInfo.type);\n\t\t}\n\t\tthis.engine.fixHeight();\n\t\tif(this.editShowToolbar) {\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t/*\n\tUpdate the editor with new text. This method is separate from updateEditorDomNode()\n\tso that subclasses can override updateEditor() and still use updateEditorDomNode()\n\t*/\n\tEditTextWidget.prototype.updateEditor = function(text,type) {\n\t\tthis.updateEditorDomNode(text,type);\n\t};\n\n\t/*\n\tUpdate the editor dom node with new text\n\t*/\n\tEditTextWidget.prototype.updateEditorDomNode = function(text,type) {\n\t\tthis.engine.setText(text,type);\n\t};\n\n\t/*\n\tSave changes back to the tiddler store\n\t*/\n\tEditTextWidget.prototype.saveChanges = function(text) {\n\t\tvar editInfo = this.getEditInfo();\n\t\tif(text !== editInfo.value) {\n\t\t\teditInfo.update(text);\n\t\t}\n\t};\n\n\t/*\n\tHandle a dom \"keydown\" event, which we'll bubble up to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.handleKeydownEvent = function(event) {\n\t\t// Check for a keyboard shortcut\n\t\tif(this.toolbarNode) {\n\t\t\tvar shortcutElements = this.toolbarNode.querySelectorAll(\"[data-tw-keyboard-shortcut]\");\n\t\t\tfor(var index=0; index<shortcutElements.length; index++) {\n\t\t\t\tvar el = shortcutElements[index],\n\t\t\t\t\tshortcutData = el.getAttribute(\"data-tw-keyboard-shortcut\"),\n\t\t\t\t\tkeyInfoArray = $tw.keyboardManager.parseKeyDescriptors(shortcutData,{\n\t\t\t\t\t\twiki: this.wiki\n\t\t\t\t\t});\n\t\t\t\tif($tw.keyboardManager.checkKeyDescriptors(event,keyInfoArray)) {\n\t\t\t\t\tvar clickEvent = this.document.createEvent(\"Events\");\n\t\t\t\t clickEvent.initEvent(\"click\",true,false);\n\t\t\t\t el.dispatchEvent(clickEvent);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Propogate the event to the container\n\t\tif(this.propogateKeydownEvent(event)) {\n\t\t\t// Ignore the keydown if it was already handled\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise, process the keydown normally\n\t\treturn false;\n\t};\n\n\t/*\n\tPropogate keydown events to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.propogateKeydownEvent = function(event) {\n\t\tvar newEvent = this.document.createEventObject ? this.document.createEventObject() : this.document.createEvent(\"Events\");\n\t\tif(newEvent.initEvent) {\n\t\t\tnewEvent.initEvent(\"keydown\", true, true);\n\t\t}\n\t\tnewEvent.keyCode = event.keyCode;\n\t\tnewEvent.which = event.which;\n\t\tnewEvent.metaKey = event.metaKey;\n\t\tnewEvent.ctrlKey = event.ctrlKey;\n\t\tnewEvent.altKey = event.altKey;\n\t\tnewEvent.shiftKey = event.shiftKey;\n\t\treturn !this.parentDomNode.dispatchEvent(newEvent);\n\t};\n\n\treturn EditTextWidget;\n\n}\n\nexports.editTextWidgetFactory = editTextWidgetFactory;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/operations/bitmap/clear.js": {
"title": "$:/core/modules/editor/operations/bitmap/clear.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/clear.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to clear the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"clear\"] = function(event) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.globalAlpha = 1;\n\tctx.fillStyle = event.paramObject.colour || \"white\";\n\tctx.fillRect(0,0,this.canvasDomNode.width,this.canvasDomNode.height);\n\t// Save changes\n\tthis.strokeEnd();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/bitmap/resize.js": {
"title": "$:/core/modules/editor/operations/bitmap/resize.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/resize.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to resize the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"resize\"] = function(event) {\n\t// Get the new width\n\tvar newWidth = parseInt(event.paramObject.width || this.canvasDomNode.width,10),\n\t\tnewHeight = parseInt(event.paramObject.height || this.canvasDomNode.height,10);\n\t// Update if necessary\n\tif(newWidth > 0 && newHeight > 0 && !(newWidth === this.currCanvas.width && newHeight === this.currCanvas.height)) {\n\t\tthis.changeCanvasSize(newWidth,newHeight);\n\t}\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/bitmap/rotate-left.js": {
"title": "$:/core/modules/editor/operations/bitmap/rotate-left.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/rotate-left.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to rotate the image left by 90 degrees\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"rotate-left\"] = function(event) {\n\t// Rotate the canvas left by 90 degrees\n\tthis.rotateCanvasLeft();\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/text/excise.js": {
"title": "$:/core/modules/editor/operations/text/excise.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/excise.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to excise the selection to a new tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"excise\"] = function(event,operation) {\n\tvar editTiddler = this.wiki.getTiddler(this.editTitle),\n\t\teditTiddlerTitle = this.editTitle;\n\tif(editTiddler && editTiddler.fields[\"draft.of\"]) {\n\t\teditTiddlerTitle = editTiddler.fields[\"draft.of\"];\n\t}\n\tvar excisionTitle = event.paramObject.title || this.wiki.generateNewTitle(\"New Excision\");\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\tthis.wiki.getModificationFields(),\n\t\t{\n\t\t\ttitle: excisionTitle,\n\t\t\ttext: operation.selection,\n\t\t\ttags: event.paramObject.tagnew === \"yes\" ? [editTiddlerTitle] : []\n\t\t}\n\t));\n\toperation.replacement = excisionTitle;\n\tswitch(event.paramObject.type || \"transclude\") {\n\t\tcase \"transclude\":\n\t\t\toperation.replacement = \"{{\" + operation.replacement+ \"}}\";\n\t\t\tbreak;\n\t\tcase \"link\":\n\t\t\toperation.replacement = \"[[\" + operation.replacement+ \"]]\";\n\t\t\tbreak;\n\t\tcase \"macro\":\n\t\t\toperation.replacement = \"<<\" + (event.paramObject.macro || \"translink\") + \" \\\"\\\"\\\"\" + operation.replacement + \"\\\"\\\"\\\">>\";\n\t\t\tbreak;\n\t}\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/make-link.js": {
"title": "$:/core/modules/editor/operations/text/make-link.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/make-link.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to make a link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"make-link\"] = function(event,operation) {\n\tif(operation.selection) {\n\t\toperation.replacement = \"[[\" + operation.selection + \"|\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t} else {\n\t\toperation.replacement = \"[[\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t}\n\toperation.newSelStart = operation.selStart + operation.replacement.length;\n\toperation.newSelEnd = operation.newSelStart;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/prefix-lines.js": {
"title": "$:/core/modules/editor/operations/text/prefix-lines.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/prefix-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to add a prefix to the selected lines\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"prefix-lines\"] = function(event,operation) {\n\tvar targetCount = parseInt(event.paramObject.count + \"\",10);\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Compose the required prefix\n\tvar prefix = $tw.utils.repeat(event.paramObject.character,targetCount);\n\t// Process each line\n\tvar lines = operation.text.substring(operation.cutStart,operation.cutEnd).split(/\\r?\\n/mg);\n\t$tw.utils.each(lines,function(line,index) {\n\t\t// Remove and count any existing prefix characters\n\t\tvar count = 0;\n\t\twhile(line.charAt(0) === event.paramObject.character) {\n\t\t\tline = line.substring(1);\n\t\t\tcount++;\n\t\t}\n\t\t// Remove any whitespace\n\t\twhile(line.charAt(0) === \" \") {\n\t\t\tline = line.substring(1);\n\t\t}\n\t\t// We're done if we removed the exact required prefix, otherwise add it\n\t\tif(count !== targetCount) {\n\t\t\t// Apply the prefix\n\t\t\tline = prefix + \" \" + line;\n\t\t}\n\t\t// Save the modified line\n\t\tlines[index] = line;\n\t});\n\t// Stitch the replacement text together and set the selection\n\toperation.replacement = lines.join(\"\\n\");\n\tif(lines.length === 1) {\n\t\toperation.newSelStart = operation.cutStart + operation.replacement.length;\n\t\toperation.newSelEnd = operation.newSelStart;\n\t} else {\n\t\toperation.newSelStart = operation.cutStart;\n\t\toperation.newSelEnd = operation.newSelStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/replace-all.js": {
"title": "$:/core/modules/editor/operations/text/replace-all.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-all.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the entire text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-all\"] = function(event,operation) {\n\toperation.cutStart = 0;\n\toperation.cutEnd = operation.text.length;\n\toperation.replacement = event.paramObject.text;\n\toperation.newSelStart = 0;\n\toperation.newSelEnd = operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/replace-selection.js": {
"title": "$:/core/modules/editor/operations/text/replace-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the selection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-selection\"] = function(event,operation) {\n\toperation.replacement = event.paramObject.text;\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/save-selection.js": {
"title": "$:/core/modules/editor/operations/text/save-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/save-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to save the current selection in a specified tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"save-selection\"] = function(event,operation) {\n\tvar tiddler = event.paramObject.tiddler,\n\t\tfield = event.paramObject.field || \"text\";\n\tif(tiddler && field) {\n\t\tthis.wiki.setText(tiddler,field,null,operation.text.substring(operation.selStart,operation.selEnd));\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/wrap-lines.js": {
"title": "$:/core/modules/editor/operations/text/wrap-lines.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selected lines with a prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-lines\"] = function(event,operation) {\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Add the prefix and suffix\n\toperation.replacement = event.paramObject.prefix + \"\\n\" +\n\t\t\t\toperation.text.substring(operation.cutStart,operation.cutEnd) + \"\\n\" +\n\t\t\t\tevent.paramObject.suffix + \"\\n\";\n\toperation.newSelStart = operation.cutStart + event.paramObject.prefix.length + 1;\n\toperation.newSelEnd = operation.newSelStart + (operation.cutEnd - operation.cutStart);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/wrap-selection.js": {
"title": "$:/core/modules/editor/operations/text/wrap-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selection with the specified prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-selection\"] = function(event,operation) {\n\tif(operation.selStart === operation.selEnd) {\n\t\t// No selection; check if we're within the prefix/suffix\n\t\tif(operation.text.substring(operation.selStart - event.paramObject.prefix.length,operation.selStart + event.paramObject.suffix.length) === event.paramObject.prefix + event.paramObject.suffix) {\n\t\t\t// Remove the prefix and suffix\n\t\t\toperation.cutStart = operation.selStart - event.paramObject.prefix.length;\n\t\t\toperation.cutEnd = operation.selEnd + event.paramObject.suffix.length;\n\t\t\toperation.replacement = \"\";\n\t\t\toperation.newSelStart = operation.cutStart;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t} else {\n\t\t\t// Wrap the cursor instead\n\t\t\toperation.cutStart = operation.selStart;\n\t\t\toperation.cutEnd = operation.selEnd;\n\t\t\toperation.replacement = event.paramObject.prefix + event.paramObject.suffix;\n\t\t\toperation.newSelStart = operation.selStart + event.paramObject.prefix.length;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t}\n\t} else if(operation.text.substring(operation.selStart,operation.selStart + event.paramObject.prefix.length) === event.paramObject.prefix && operation.text.substring(operation.selEnd - event.paramObject.suffix.length,operation.selEnd) === event.paramObject.suffix) {\n\t\t// Prefix and suffix are already present, so remove them\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = operation.selection.substring(event.paramObject.prefix.length,operation.selection.length - event.paramObject.suffix.length);\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t} else {\n\t\t// Add the prefix and suffix\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = event.paramObject.prefix + operation.selection + event.paramObject.suffix;\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/filterrunprefixes/all.js": {
"title": "$:/core/modules/filterrunprefixes/all.js",
"text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/all.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\nUnion of sets without de-duplication.\nEquivalent to = filter run prefix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.all = function(operationSubFunction) {\n\treturn function(results,source,widget) {\n\t\tresults.push.apply(results, operationSubFunction(source,widget));\n\t};\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filterrunprefix"
},
"$:/core/modules/filterrunprefixes/and.js": {
"title": "$:/core/modules/filterrunprefixes/and.js",
"text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/and.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\nIntersection of sets.\nEquivalent to + filter run prefix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.and = function(operationSubFunction,options) {\n\treturn function(results,source,widget) {\n\t\t// This replaces all the elements of the array, but keeps the actual array so that references to it are preserved\n\t\tsource = options.wiki.makeTiddlerIterator(results.toArray());\n\t\tresults.clear();\n\t\tresults.pushTop(operationSubFunction(source,widget));\n\t};\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filterrunprefix"
},
"$:/core/modules/filterrunprefixes/else.js": {
"title": "$:/core/modules/filterrunprefixes/else.js",
"text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/else.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\nEquivalent to ~ filter run prefix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.else = function(operationSubFunction) {\n\treturn function(results,source,widget) {\n\t\tif(results.length === 0) {\n\t\t\t// Main result so far is empty\n\t\t\tresults.pushTop(operationSubFunction(source,widget));\n\t\t}\n\t};\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filterrunprefix"
},
"$:/core/modules/filterrunprefixes/except.js": {
"title": "$:/core/modules/filterrunprefixes/except.js",
"text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/except.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\nDifference of sets.\nEquivalent to - filter run prefix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.except = function(operationSubFunction) {\n\treturn function(results,source,widget) {\n\t\tresults.remove(operationSubFunction(source,widget));\n\t};\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filterrunprefix"
},
"$:/core/modules/filterrunprefixes/filter.js": {
"title": "$:/core/modules/filterrunprefixes/filter.js",
"text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/filter.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.filter = function(operationSubFunction,options) {\n\treturn function(results,source,widget) {\n\t\tif(results.length > 0) {\n\t\t\tvar resultsToRemove = [];\n\t\t\tresults.each(function(result) {\n\t\t\t\tvar filtered = operationSubFunction(options.wiki.makeTiddlerIterator([result]),widget);\n\t\t\t\tif(filtered.length === 0) {\n\t\t\t\t\tresultsToRemove.push(result);\n\t\t\t\t}\n\t\t\t});\n\t\t\tresults.remove(resultsToRemove);\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filterrunprefix"
},
"$:/core/modules/filterrunprefixes/intersection.js": {
"title": "$:/core/modules/filterrunprefixes/intersection.js",
"text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/intersection.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.intersection = function(operationSubFunction) {\n\treturn function(results,source,widget) {\n\t\tif(results.length !== 0) {\n\t\t\tvar secondRunResults = operationSubFunction(source,widget);\n\t\t\tvar firstRunResults = results.toArray();\n\t\t\tresults.clear();\n\t\t\t$tw.utils.each(firstRunResults,function(title) {\n\t\t\t\tif(secondRunResults.indexOf(title) !== -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filterrunprefix"
},
"$:/core/modules/filterrunprefixes/or.js": {
"title": "$:/core/modules/filterrunprefixes/or.js",
"text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/or.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\nEquivalent to a filter run with no prefix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.or = function(operationSubFunction) {\n\treturn function(results,source,widget) {\n\t\tresults.pushTop(operationSubFunction(source,widget));\n\t};\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filterrunprefix"
},
"$:/core/modules/filterrunprefixes/reduce.js": {
"title": "$:/core/modules/filterrunprefixes/reduce.js",
"text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/reduce.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.reduce = function(operationSubFunction,options) {\n\treturn function(results,source,widget) {\n\t\tif(results.length > 0) {\n\t\t\tvar accumulator = \"\";\n\t\t\tvar index = 0;\n\t\t\tresults.each(function(title) {\n\t\t\t\tvar list = operationSubFunction(options.wiki.makeTiddlerIterator([title]),{\n\t\t\t\t\t\tgetVariable: function(name) {\n\t\t\t\t\t\t\tswitch(name) {\n\t\t\t\t\t\t\t\tcase \"currentTiddler\":\n\t\t\t\t\t\t\t\t\treturn \"\" + title;\n\t\t\t\t\t\t\t\tcase \"accumulator\":\n\t\t\t\t\t\t\t\t\treturn \"\" + accumulator;\n\t\t\t\t\t\t\t\tcase \"index\":\n\t\t\t\t\t\t\t\t\treturn \"\" + index;\n\t\t\t\t\t\t\t\tcase \"revIndex\":\n\t\t\t\t\t\t\t\t\treturn \"\" + (results.length - 1 - index);\n\t\t\t\t\t\t\t\tcase \"length\":\n\t\t\t\t\t\t\t\t\treturn \"\" + results.length;\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn widget.getVariable(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\tif(list.length > 0) {\n\t\t\t\t\taccumulator = \"\" + list[0];\n\t\t\t\t}\n\t\t\t\t++index;\n\t\t\t});\n\t\t\tresults.clear();\n\t\t\tresults.push(accumulator);\t\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filterrunprefix"
},
"$:/core/modules/filters/addprefix.js": {
"title": "$:/core/modules/filters/addprefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/addprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a prefix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand + title);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/addsuffix.js": {
"title": "$:/core/modules/filters/addsuffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/addsuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a suffix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addsuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title + operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/after.js": {
"title": "$:/core/modules/filters/after.js",
"text": "/*\\\ntitle: $:/core/modules/filters/after.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is after the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.after = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index === -1 || index > (results.length - 2)) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index + 1]];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/all/current.js": {
"title": "$:/core/modules/filters/all/current.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/current.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar currTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(currTiddlerTitle) {\n\t\treturn [currTiddlerTitle];\n\t} else {\n\t\treturn [];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/missing.js": {
"title": "$:/core/modules/filters/all/missing.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/missing.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\treturn options.wiki.getMissingTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/orphans.js": {
"title": "$:/core/modules/filters/all/orphans.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/orphans.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[orphans]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphans = function(source,prefix,options) {\n\treturn options.wiki.getOrphanTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/shadows.js": {
"title": "$:/core/modules/filters/all/shadows.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/shadows.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[shadows]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadows = function(source,prefix,options) {\n\treturn options.wiki.allShadowTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/tags.js": {
"title": "$:/core/modules/filters/all/tags.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/tags.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tags]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,prefix,options) {\n\treturn Object.keys(options.wiki.getTagMap());\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/tiddlers.js": {
"title": "$:/core/modules/filters/all/tiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/tiddlers.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddlers = function(source,prefix,options) {\n\treturn options.wiki.allTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all.js": {
"title": "$:/core/modules/filters/all.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for selecting tiddlers\n\n[all[shadows+tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar allFilterOperators;\n\nfunction getAllFilterOperators() {\n\tif(!allFilterOperators) {\n\t\tallFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"allfilteroperator\",allFilterOperators);\n\t}\n\treturn allFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.all = function(source,operator,options) {\n\t// Get our suboperators\n\tvar allFilterOperators = getAllFilterOperators();\n\t// Cycle through the suboperators accumulating their results\n\tvar results = [],\n\t\tsubops = operator.operand.split(\"+\");\n\t// Check for common optimisations\n\tif(subops.length === 1 && subops[0] === \"\") {\n\t\treturn source;\n\t} else if(subops.length === 1 && subops[0] === \"tiddlers\") {\n\t\treturn options.wiki.each;\n\t} else if(subops.length === 1 && subops[0] === \"shadows\") {\n\t\treturn options.wiki.eachShadow;\n\t} else if(subops.length === 2 && subops[0] === \"tiddlers\" && subops[1] === \"shadows\") {\n\t\treturn options.wiki.eachTiddlerPlusShadows;\n\t} else if(subops.length === 2 && subops[0] === \"shadows\" && subops[1] === \"tiddlers\") {\n\t\treturn options.wiki.eachShadowPlusTiddlers;\n\t}\n\t// Do it the hard way\n\tfor(var t=0; t<subops.length; t++) {\n\t\tvar subop = allFilterOperators[subops[t]];\n\t\tif(subop) {\n\t\t\t$tw.utils.pushTop(results,subop(source,operator.prefix,options));\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/backlinks.js": {
"title": "$:/core/modules/filters/backlinks.js",
"text": "/*\\\ntitle: $:/core/modules/filters/backlinks.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the backlinks from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.backlinks = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerBacklinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/before.js": {
"title": "$:/core/modules/filters/before.js",
"text": "/*\\\ntitle: $:/core/modules/filters/before.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is before the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.before = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index <= 0) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index - 1]];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/commands.js": {
"title": "$:/core/modules/filters/commands.js",
"text": "/*\\\ntitle: $:/core/modules/filters/commands.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the commands available in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.commands = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.commands,function(commandInfo,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/compare.js": {
"title": "$:/core/modules/filters/compare.js",
"text": "/*\\\ntitle: $:/core/modules/filters/compare.js\ntype: application/javascript\nmodule-type: filteroperator\n\nGeneral purpose comparison operator\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.compare = function(source,operator,options) {\n\tvar suffixes = operator.suffixes || [],\n\t\ttype = (suffixes[0] || [])[0],\n\t\tmode = (suffixes[1] || [])[0],\n\t\ttypeFn = $tw.utils.makeCompareFunction(type,{defaultType: \"number\"}),\n\t\tmodeFn = modes[mode] || modes.eq,\n\t\tinvert = operator.prefix === \"!\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tif(modeFn(typeFn(title,operator.operand)) !== invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\nvar modes = {\n\t\"eq\": function(value) {return value === 0;},\n\t\"ne\": function(value) {return value !== 0;},\n\t\"gteq\": function(value) {return value >= 0;},\n\t\"gt\": function(value) {return value > 0;},\n\t\"lteq\": function(value) {return value <= 0;},\n\t\"lt\": function(value) {return value < 0;}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/contains.js": {
"title": "$:/core/modules/filters/contains.js",
"text": "/*\\\ntitle: $:/core/modules/filters/contains.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for finding values in array fields\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.contains = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"list\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvar list = tiddler.getFieldList(fieldname);\n\t\t\t\tif(list.indexOf(operator.operand) === -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvar list = tiddler.getFieldList(fieldname);\n\t\t\t\tif(list.indexOf(operator.operand) !== -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/count.js": {
"title": "$:/core/modules/filters/count.js",
"text": "/*\\\ntitle: $:/core/modules/filters/count.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the number of entries in the current list.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.count = function(source,operator,options) {\n\tvar count = 0;\n\tsource(function(tiddler,title) {\n\t\tcount++;\n\t});\n\treturn [count + \"\"];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/days.js": {
"title": "$:/core/modules/filters/days.js",
"text": "/*\\\ntitle: $:/core/modules/filters/days.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a specified date field within a specified date interval.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.days = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\tdayInterval = (parseInt(operator.operand,10)||0),\n\t\tdayIntervalSign = $tw.utils.sign(dayInterval),\n\t\ttargetTimeStamp = (new Date()).setHours(0,0,0,0) + 1000*60*60*24*dayInterval,\n\t\tisWithinDays = function(dateField) {\n\t\t\tvar sign = $tw.utils.sign(targetTimeStamp - (new Date(dateField)).setHours(0,0,0,0));\n\t\t\treturn sign === 0 || sign === dayIntervalSign;\n\t\t};\n\n\tif(operator.prefix === \"!\") {\n\t\ttargetTimeStamp = targetTimeStamp - 1000*60*60*24*dayIntervalSign;\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(!isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/duplicateslugs.js": {
"title": "$:/core/modules/filters/duplicateslugs.js",
"text": "/*\\\ntitle: $:/core/modules/filters/duplicateslugs.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter function for [duplicateslugs[]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.duplicateslugs = function(source,operator,options) {\n\tvar slugs = Object.create(null), // Hashmap by slug of title, replaced with \"true\" if the duplicate title has already been output\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tvar slug = options.wiki.slugify(title);\n\t\tif(slug in slugs) {\n\t\t\tif(slugs[slug] !== true) {\n\t\t\t\tresults.push(slugs[slug]);\n\t\t\t\tslugs[slug] = true;\n\t\t\t}\n\t\t\tresults.push(title);\n\t\t} else {\n\t\t\tslugs[slug] = title;\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/each.js": {
"title": "$:/core/modules/filters/each.js",
"text": "/*\\\ntitle: $:/core/modules/filters/each.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique value of the specified field.\nWith suffix \"list\", selects all tiddlers that are values in a specified list field.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.each = function(source,operator,options) {\n\tvar results =[] ,\n\tvalue,values = {},\n\tfield = operator.operand || \"title\";\n\tif(operator.suffix === \"value\" && field === \"title\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(values,title)) {\n\t\t\t\tvalues[title] = true;\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else if(operator.suffix !== \"list-item\") {\n\t\tif(field === \"title\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && !$tw.utils.hop(values,title)) {\n\t\t\t\t\tvalues[title] = true;\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvalue = tiddler.getFieldString(field);\n\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\t$tw.utils.each(\n\t\t\t\t\toptions.wiki.getTiddlerList(title,field),\n\t\t\t\t\tfunction(value) {\n\t\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\t\tresults.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/eachday.js": {
"title": "$:/core/modules/filters/eachday.js",
"text": "/*\\\ntitle: $:/core/modules/filters/eachday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique day covered by the specified date field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.eachday = function(source,operator,options) {\n\tvar results = [],\n\t\tvalues = [],\n\t\tfieldName = operator.operand || \"modified\";\n\t// Function to convert a date/time to a date integer\n\tvar toDate = function(value) {\n\t\tvalue = (new Date(value)).setHours(0,0,0,0);\n\t\treturn value+0;\n\t};\n\tsource(function(tiddler,title) {\n\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\tvar value = toDate($tw.utils.parseDate(tiddler.fields[fieldName]));\n\t\t\tif(values.indexOf(value) === -1) {\n\t\t\t\tvalues.push(value);\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/editiondescription.js": {
"title": "$:/core/modules/filters/editiondescription.js",
"text": "/*\\\ntitle: $:/core/modules/filters/editiondescription.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the descriptions of the specified edition names\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editiondescription = function(source,operator,options) {\n\tvar results = [];\n\tif($tw.node) {\n\t\tvar editionInfo = $tw.utils.getEditionInfo();\n\t\tif(editionInfo) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif($tw.utils.hop(editionInfo,title)) {\n\t\t\t\t\tresults.push(editionInfo[title].description || \"\");\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/editions.js": {
"title": "$:/core/modules/filters/editions.js",
"text": "/*\\\ntitle: $:/core/modules/filters/editions.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the available editions in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editions = function(source,operator,options) {\n\tvar results = [];\n\tif($tw.node) {\n\t\tvar editionInfo = $tw.utils.getEditionInfo();\n\t\tif(editionInfo) {\n\t\t\t$tw.utils.each(editionInfo,function(info,name) {\n\t\t\t\tresults.push(name);\n\t\t\t});\n\t\t}\n\t\tresults.sort();\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/else.js": {
"title": "$:/core/modules/filters/else.js",
"text": "/*\\\ntitle: $:/core/modules/filters/else.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing an empty input list with a constant, passing a non-empty input list straight through\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.else = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tif(results.length === 0) {\n\t\treturn [operator.operand];\n\t} else {\n\t\treturn results;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/decodeuricomponent.js": {
"title": "$:/core/modules/filters/decodeuricomponent.js",
"text": "/*\\\ntitle: $:/core/modules/filters/decodeuricomponent.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for applying decodeURIComponent() to each item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter functions\n*/\n\nexports.decodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar value = title;\n\t\ttry {\n\t\t\tvalue = decodeURIComponent(title);\n\t\t} catch(e) {\n\t\t}\n\t\tresults.push(value);\n\t});\n\treturn results;\n};\n\nexports.encodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURIComponent(title));\n\t});\n\treturn results;\n};\n\nexports.decodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar value = title;\n\t\ttry {\n\t\t\tvalue = decodeURI(title);\n\t\t} catch(e) {\n\t\t}\n\t\tresults.push(value);\n\t});\n\treturn results;\n};\n\nexports.encodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURI(title));\n\t});\n\treturn results;\n};\n\nexports.decodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlDecode(title));\n\t});\n\treturn results;\n};\n\nexports.encodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlEncode(title));\n\t});\n\treturn results;\n};\n\nexports.stringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.stringify(title,(operator.suffix === \"rawunicode\")));\n\t});\n\treturn results;\n};\n\nexports.jsonstringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.jsonStringify(title,(operator.suffix === \"rawunicode\")));\n\t});\n\treturn results;\n};\n\nexports.escaperegexp = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.escapeRegExp(title));\n\t});\n\treturn results;\n};\n\nexports.escapecss = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t// escape any character with a special meaning in CSS using CSS.escape()\n\t\tresults.push(CSS.escape(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/enlist.js": {
"title": "$:/core/modules/filters/enlist.js",
"text": "/*\\\ntitle: $:/core/modules/filters/enlist.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand parsed as a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.enlist = function(source,operator,options) {\n\tvar allowDuplicates = false;\n\tswitch(operator.suffix) {\n\t\tcase \"raw\":\n\t\t\tallowDuplicates = true;\n\t\t\tbreak;\n\t\tcase \"dedupe\":\n\t\t\tallowDuplicates = false;\n\t\t\tbreak;\n\t}\n\tvar list = $tw.utils.parseStringArray(operator.operand,allowDuplicates);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/field.js": {
"title": "$:/core/modules/filters/field.js",
"text": "/*\\\ntitle: $:/core/modules/filters/field.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.field = function(source,operator,options) {\n\tvar results = [],indexedResults,\n\t\tfieldname = (operator.suffix || operator.operator || \"title\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text !== operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !!operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tif(source.byField && operator.operand) {\n\t\t\t\tindexedResults = source.byField(fieldname,operator.operand);\n\t\t\t\tif(indexedResults) {\n\t\t\t\t\treturn indexedResults\n\t\t\t\t}\n\t\t\t}\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text === operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/fields.js": {
"title": "$:/core/modules/filters/fields.js",
"text": "/*\\\ntitle: $:/core/modules/filters/fields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.fields = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName,\n\t\tsuffixes = (operator.suffixes || [])[0] || [],\n\t\toperand = $tw.utils.parseStringArray(operator.operand);\n\t\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(suffixes.indexOf(\"include\") !== -1) {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t(operand.indexOf(fieldName) !== -1) ? $tw.utils.pushTop(results,fieldName) : \"\";\n\t\t\t\t}\n\t\t\t} else if (suffixes.indexOf(\"exclude\") !== -1) {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t(operand.indexOf(fieldName) !== -1) ? \"\" : $tw.utils.pushTop(results,fieldName);\n\t\t\t\t}\n\t\t\t} // else if\n\t\t\telse {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t\t}\n\t\t\t} // else\n\t\t} // if (tiddler)\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/filter.js": {
"title": "$:/core/modules/filters/filter.js",
"text": "/*\\\ntitle: $:/core/modules/filters/filter.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning those input titles that pass a subfilter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.filter = function(source,operator,options) {\n\tvar filterFn = options.wiki.compileFilter(operator.operand),\n\t\tresults = [],\n\t\ttarget = operator.prefix !== \"!\";\n\tsource(function(tiddler,title) {\n\t\tvar list = filterFn.call(options.wiki,options.wiki.makeTiddlerIterator([title]));\n\t\tif((list.length > 0) === target) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/format/date.js": {
"title": "$:/core/modules/filters/format/date.js",
"text": "/*\\\ntitle: $:/core/modules/filters/format/date.js\ntype: application/javascript\nmodule-type: formatfilteroperator\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.date = function(source,operand,options) {\n\tvar results = [];\t\n\tsource(function(tiddler,title) {\n\t\tvar value = $tw.utils.parseDate(title);\n\t\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\t\tresults.push($tw.utils.formatDateString(value,operand || \"YYYY MM DD 0hh:0mm\"));\n\t\t}\n\t});\t\n\treturn results;\n};\n\n})();",
"type": "application/javascript",
"module-type": "formatfilteroperator"
},
"$:/core/modules/filters/format/relativedate.js": {
"title": "$:/core/modules/filters/format/relativedate.js",
"text": "/*\\\ntitle: $:/core/modules/filters/format/relativedate.js\ntype: application/javascript\nmodule-type: formatfilteroperator\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.relativedate = function(source,operand,options) {\n\tvar results = [];\t\n\tsource(function(tiddler,title) {\n\t\tvar value = $tw.utils.parseDate(title);\n\t\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\t\tresults.push($tw.utils.getRelativeDate((new Date()) - (new Date(value))).description);\n\t\t}\n\t});\t\n\treturn results;\n};\n\n})();",
"type": "application/javascript",
"module-type": "formatfilteroperator"
},
"$:/core/modules/filters/format.js": {
"title": "$:/core/modules/filters/format.js",
"text": "/*\\\ntitle: $:/core/modules/filters/format.js\ntype: application/javascript\nmodule-type: filteroperator\nFilter operator for formatting strings\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar formatFilterOperators;\n\nfunction getFormatFilterOperators() {\n\tif(!formatFilterOperators) {\n\t\tformatFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"formatfilteroperator\",formatFilterOperators);\n\t}\n\treturn formatFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.format = function(source,operator,options) {\n\t// Dispatch to the correct formatfilteroperator\n\tvar formatFilterOperators = getFormatFilterOperators();\n\tif(operator.suffix) {\n\t\tvar formatFilterOperator = formatFilterOperators[operator.suffix];\n\t\tif(formatFilterOperator) {\n\t\t\treturn formatFilterOperator(source,operator.operand,options);\n\t\t} else {\n\t\t\treturn [$tw.language.getString(\"Error/FormatFilterOperator\")];\n\t\t}\n\t} else {\n\t\t// Return all unchanged if the suffix is missing\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t}\n};\n\n})();",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/get.js": {
"title": "$:/core/modules/filters/get.js",
"text": "/*\\\ntitle: $:/core/modules/filters/get.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing tiddler titles by the value of the field specified in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.get = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tvar value = tiddler.getFieldString(operator.operand);\n\t\t\tif(value) {\n\t\t\t\tresults.push(value);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/getindex.js": {
"title": "$:/core/modules/filters/getindex.js",
"text": "/*\\\ntitle: $:/core/modules/filters/getindex.js\ntype: application/javascript\nmodule-type: filteroperator\n\nreturns the value at a given index of datatiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getindex = function(source,operator,options) {\n\tvar data,title,results = [];\n\tif(operator.operand){\n\t\tsource(function(tiddler,title) {\n\t\t\ttitle = tiddler ? tiddler.fields.title : title;\n\t\t\tdata = options.wiki.extractTiddlerDataItem(tiddler,operator.operand);\n\t\t\tif(data) {\n\t\t\t\tresults.push(data);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/getvariable.js": {
"title": "$:/core/modules/filters/getvariable.js",
"text": "/*\\\ntitle: $:/core/modules/filters/getvariable.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing input values by the value of the variable with the same name, or blank if the variable is missing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getvariable = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.widget.getVariable(title) || \"\");\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/has.js": {
"title": "$:/core/modules/filters/has.js",
"text": "/*\\\ntitle: $:/core/modules/filters/has.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a tiddler has the specified field or index\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.has = function(source,operator,options) {\n\tvar results = [],\n\t\tinvert = operator.prefix === \"!\";\n\n\tif(operator.suffix === \"field\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop(tiddler.fields,operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\telse if(operator.suffix === \"index\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop(options.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(options.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\telse {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || !$tw.utils.hop(tiddler.fields,operator.operand) || (tiddler.fields[operator.operand].length === 0)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && (tiddler.fields[operator.operand].length !== 0)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\t\t\t\t\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/haschanged.js": {
"title": "$:/core/modules/filters/haschanged.js",
"text": "/*\\\ntitle: $:/core/modules/filters/haschanged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returns tiddlers from the list that have a non-zero changecount.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.haschanged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) === 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) > 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/indexes.js": {
"title": "$:/core/modules/filters/indexes.js",
"text": "/*\\\ntitle: $:/core/modules/filters/indexes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the indexes of a data tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.indexes = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar data = options.wiki.getTiddlerDataCached(title);\n\t\tif(data) {\n\t\t\t$tw.utils.pushTop(results,Object.keys(data));\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/insertbefore.js": {
"title": "$:/core/modules/filters/insertbefore.js",
"text": "/*\\\ntitle: $:/core/modules/filters/insertbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nInsert an item before another item in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.insertbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar target = options.widget && options.widget.getVariable(operator.suffix || \"currentTiddler\");\n\tif(target !== operator.operand) {\n\t\t// Remove the entry from the list if it is present\n\t\tvar pos = results.indexOf(operator.operand);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,1);\n\t\t}\n\t\t// Insert the entry before the target marker\n\t\tpos = results.indexOf(target);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,0,operator.operand);\n\t\t} else {\n\t\t\tresults.push(operator.operand);\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/is/binary.js": {
"title": "$:/core/modules/filters/is/binary.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/binary.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[binary]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.binary = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isBinaryTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isBinaryTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/blank.js": {
"title": "$:/core/modules/filters/is/blank.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/blank.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[blank]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.blank = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!title) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/current.js": {
"title": "$:/core/modules/filters/is/current.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/current.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar results = [],\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title !== currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title === currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/draft.js": {
"title": "$:/core/modules/filters/is/draft.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/draft.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[draft]] analagous to [has[draft.of]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.draft = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!tiddler || !$tw.utils.hop(tiddler.fields,\"draft.of\")) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,\"draft.of\") && (tiddler.fields[\"draft.of\"].length !== 0)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\t\t\t\t\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/image.js": {
"title": "$:/core/modules/filters/is/image.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/image.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[image]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.image = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/missing.js": {
"title": "$:/core/modules/filters/is/missing.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/missing.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/orphan.js": {
"title": "$:/core/modules/filters/is/orphan.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/orphan.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[orphan]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphan = function(source,prefix,options) {\n\tvar results = [],\n\t\torphanTitles = options.wiki.getOrphanTitles();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) !== -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/shadow.js": {
"title": "$:/core/modules/filters/is/shadow.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/shadow.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[shadow]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadow = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/system.js": {
"title": "$:/core/modules/filters/is/system.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/system.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[system]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.system = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/tag.js": {
"title": "$:/core/modules/filters/is/tag.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/tag.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tag]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,prefix,options) {\n\tvar results = [],\n\t\ttagMap = options.wiki.getTagMap();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/tiddler.js": {
"title": "$:/core/modules/filters/is/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/tiddler.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tiddler]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddler = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/variable.js": {
"title": "$:/core/modules/filters/is/variable.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/variable.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[variable]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.variable = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!(title in options.widget.variables)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title in options.widget.variables) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is.js": {
"title": "$:/core/modules/filters/is.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking tiddler properties\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar isFilterOperators;\n\nfunction getIsFilterOperators() {\n\tif(!isFilterOperators) {\n\t\tisFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"isfilteroperator\",isFilterOperators);\n\t}\n\treturn isFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.is = function(source,operator,options) {\n\t// Dispatch to the correct isfilteroperator\n\tvar isFilterOperators = getIsFilterOperators();\n\tif(operator.operand) {\n\t\tvar isFilterOperator = isFilterOperators[operator.operand];\n\t\tif(isFilterOperator) {\n\t\t\treturn isFilterOperator(source,operator.prefix,options);\n\t\t} else {\n\t\t\treturn [$tw.language.getString(\"Error/IsFilterOperator\")];\n\t\t}\n\t} else {\n\t\t// Return all tiddlers if the operand is missing\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t}\n};\n\n})();",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/limit.js": {
"title": "$:/core/modules/filters/limit.js",
"text": "/*\\\ntitle: $:/core/modules/filters/limit.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for chopping the results to a specified maximum number of entries\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.limit = function(source,operator,options) {\n\tvar results = [];\n\t// Convert to an array\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\t// Slice the array if necessary\n\tvar limit = Math.min(results.length,parseInt(operator.operand,10));\n\tif(operator.prefix === \"!\") {\n\t\tresults = results.slice(-limit);\n\t} else {\n\t\tresults = results.slice(0,limit);\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/links.js": {
"title": "$:/core/modules/filters/links.js",
"text": "/*\\\ntitle: $:/core/modules/filters/links.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the links from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.links = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerLinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/list.js": {
"title": "$:/core/modules/filters/list.js",
"text": "/*\\\ntitle: $:/core/modules/filters/list.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddlers whose title is listed in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.list = function(source,operator,options) {\n\tvar results = [],\n\t\ttr = $tw.utils.parseTextReference(operator.operand),\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\"),\n\t\tlist = options.wiki.getTiddlerList(tr.title || currTiddlerTitle,tr.field,tr.index);\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults = list;\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/listed.js": {
"title": "$:/core/modules/filters/listed.js",
"text": "/*\\\ntitle: $:/core/modules/filters/listed.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that have the selected tiddlers in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.listed = function(source,operator,options) {\n\tvar field = operator.operand || \"list\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.findListingsOfTiddler(title,field));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/listops.js": {
"title": "$:/core/modules/filters/listops.js",
"text": "/*\\\ntitle: $:/core/modules/filters/listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for manipulating the current selection list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.order = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.operand.toLowerCase() === \"reverse\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.unshift(title);\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t}\n\treturn results;\n};\n\n/*\nReverse list\n*/\nexports.reverse = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.unshift(title);\n\t});\n\treturn results;\n};\n\n/*\nFirst entry/entries in list\n*/\nexports.first = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,count);\n};\n\n/*\nLast entry/entries in list\n*/\nexports.last = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(-count);\n};\n\n/*\nAll but the first entry/entries of the list\n*/\nexports.rest = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count);\n};\nexports.butfirst = exports.rest;\nexports.bf = exports.rest;\n\n/*\nAll but the last entry/entries of the list\n*/\nexports.butlast = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,-count);\n};\nexports.bl = exports.butlast;\n\n/*\nThe nth member of the list\n*/\nexports.nth = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count - 1,count);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/lookup.js": {
"title": "$:/core/modules/filters/lookup.js",
"text": "/*\\\ntitle: $:/core/modules/filters/lookup.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that looks up values via a title prefix\n\n[lookup:<field>[<prefix>]]\n\nPrepends the prefix to the selected items and returns the specified field value\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.lookup = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.wiki.getTiddlerText(operator.operand + title) || operator.suffix);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/match.js": {
"title": "$:/core/modules/filters/match.js",
"text": "/*\\\ntitle: $:/core/modules/filters/match.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title matches a string\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.match = function(source,operator,options) {\n\tvar results = [],\n\t\tsuffixes = (operator.suffixes || [])[0] || [];\n\tif(suffixes.indexOf(\"caseinsensitive\") !== -1) {\n\t\tif(operator.prefix === \"!\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title.toLowerCase() !== (operator.operand || \"\").toLowerCase()) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title.toLowerCase() === (operator.operand || \"\").toLowerCase()) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.prefix === \"!\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title !== operator.operand) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title === operator.operand) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/math.js": {
"title": "$:/core/modules/filters/math.js",
"text": "/*\\\ntitle: $:/core/modules/filters/math.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for math. Unary/binary operators work on each item in turn, and return a new item list.\n\nSum/product/maxall/minall operate on the entire list, returning a single item.\n\nNote that strings are converted to numbers automatically. Trailing non-digits are ignored.\n\n* \"\" converts to 0\n* \"12kk\" converts to 12\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.negate = makeNumericBinaryOperator(\n\tfunction(a) {return -a}\n);\n\nexports.abs = makeNumericBinaryOperator(\n\tfunction(a) {return Math.abs(a)}\n);\n\nexports.ceil = makeNumericBinaryOperator(\n\tfunction(a) {return Math.ceil(a)}\n);\n\nexports.floor = makeNumericBinaryOperator(\n\tfunction(a) {return Math.floor(a)}\n);\n\nexports.round = makeNumericBinaryOperator(\n\tfunction(a) {return Math.round(a)}\n);\n\nexports.trunc = makeNumericBinaryOperator(\n\tfunction(a) {return Math.trunc(a)}\n);\n\nexports.untrunc = makeNumericBinaryOperator(\n\tfunction(a) {return Math.ceil(Math.abs(a)) * Math.sign(a)}\n);\n\nexports.sign = makeNumericBinaryOperator(\n\tfunction(a) {return Math.sign(a)}\n);\n\nexports.add = makeNumericBinaryOperator(\n\tfunction(a,b) {return a + b;}\n);\n\nexports.subtract = makeNumericBinaryOperator(\n\tfunction(a,b) {return a - b;}\n);\n\nexports.multiply = makeNumericBinaryOperator(\n\tfunction(a,b) {return a * b;}\n);\n\nexports.divide = makeNumericBinaryOperator(\n\tfunction(a,b) {return a / b;}\n);\n\nexports.remainder = makeNumericBinaryOperator(\n\tfunction(a,b) {return a % b;}\n);\n\nexports.max = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.max(a,b);}\n);\n\nexports.min = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.min(a,b);}\n);\n\nexports.fixed = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toFixed.call(a,Math.min(Math.max(b,0),100));}\n);\n\nexports.precision = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toPrecision.call(a,Math.min(Math.max(b,1),100));}\n);\n\nexports.exponential = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toExponential.call(a,Math.min(Math.max(b,0),100));}\n);\n\nexports.power = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.pow(a,b);}\n);\n\nexports.log = makeNumericBinaryOperator(\n\tfunction(a,b) {\n\t\tif(b) {\n\t\t\treturn Math.log(a)/Math.log(b);\n\t\t} else {\n\t\t\treturn Math.log(a);\n\t\t}\n\t}\n);\n\nexports.sum = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return accumulator + value},\n\t0 // Initial value\n);\n\nexports.product = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return accumulator * value},\n\t1 // Initial value\n);\n\nexports.maxall = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return Math.max(accumulator,value)},\n\t-Infinity // Initial value\n);\n\nexports.minall = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return Math.min(accumulator,value)},\n\tInfinity // Initial value\n);\n\nfunction makeNumericBinaryOperator(fnCalc) {\n\treturn function(source,operator,options) {\n\t\tvar result = [],\n\t\t\tnumOperand = $tw.utils.parseNumber(operator.operand);\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push($tw.utils.stringifyNumber(fnCalc($tw.utils.parseNumber(title),numOperand)));\n\t\t});\n\t\treturn result;\n\t};\n}\n\nfunction makeNumericReducingOperator(fnCalc,initialValue) {\n\tinitialValue = initialValue || 0;\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push(title);\n\t\t});\n\t\treturn [$tw.utils.stringifyNumber(result.reduce(function(accumulator,currentValue) {\n\t\t\treturn fnCalc(accumulator,$tw.utils.parseNumber(currentValue));\n\t\t},initialValue))];\n\t};\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/minlength.js": {
"title": "$:/core/modules/filters/minlength.js",
"text": "/*\\\ntitle: $:/core/modules/filters/minlength.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for filtering out titles that don't meet the minimum length in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.minlength = function(source,operator,options) {\n\tvar results = [],\n\t\tminLength = parseInt(operator.operand || \"\",10) || 0;\n\tsource(function(tiddler,title) {\n\t\tif(title.length >= minLength) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/modules.js": {
"title": "$:/core/modules/filters/modules.js",
"text": "/*\\\ntitle: $:/core/modules/filters/modules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the modules of a given type in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.modules = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.each($tw.modules.types[title],function(moduleInfo,moduleName) {\n\t\t\tresults.push(moduleName);\n\t\t});\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/moduletypes.js": {
"title": "$:/core/modules/filters/moduletypes.js",
"text": "/*\\\ntitle: $:/core/modules/filters/moduletypes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the module types in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.moduletypes = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.modules.types,function(moduleInfo,type) {\n\t\tresults.push(type);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/next.js": {
"title": "$:/core/modules/filters/next.js",
"text": "/*\\\ntitle: $:/core/modules/filters/next.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs next in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.next = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch++;\n\t\tif(match > 0 && match < list.length) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/plugintiddlers.js": {
"title": "$:/core/modules/filters/plugintiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/filters/plugintiddlers.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the shadow tiddlers within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.plugintiddlers = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar pluginInfo = options.wiki.getPluginInfo(title) || options.wiki.getTiddlerDataCached(title,{tiddlers:[]});\n\t\tif(pluginInfo && pluginInfo.tiddlers) {\n\t\t\t$tw.utils.each(pluginInfo.tiddlers,function(fields,title) {\n\t\t\t\tresults.push(title);\n\t\t\t});\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/prefix.js": {
"title": "$:/core/modules/filters/prefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/prefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title starts with a prefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.prefix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/previous.js": {
"title": "$:/core/modules/filters/previous.js",
"text": "/*\\\ntitle: $:/core/modules/filters/previous.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs immediately prior in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.previous = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch--;\n\t\tif(match >= 0) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/range.js": {
"title": "$:/core/modules/filters/range.js",
"text": "/*\\\ntitle: $:/core/modules/filters/range.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for generating a numeric range.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.range = function(source,operator,options) {\n\tvar results = [];\n\t// Split the operand into numbers delimited by these symbols\n\tvar parts = operator.operand.split(/[,:;]/g),\n\t\tbeg, end, inc, i, fixed = 0;\n\tfor (i=0; i<parts.length; i++) {\n\t\t// Validate real number\n\t\tif(!/^\\s*[+-]?((\\d+(\\.\\d*)?)|(\\.\\d+))\\s*$/.test(parts[i])) {\n\t\t\treturn [\"range: bad number \\\"\" + parts[i] + \"\\\"\"];\n\t\t}\n\t\t// Count digits; the most precise number determines decimal places in output.\n\t\tvar frac = /\\.\\d+/.exec(parts[i]);\n\t\tif(frac) {\n\t\t\tfixed = Math.max(fixed,frac[0].length-1);\n\t\t}\n\t\tparts[i] = parseFloat(parts[i]);\n\t}\n\tswitch(parts.length) {\n\t\tcase 1:\n\t\t\tend = parts[0];\n\t\t\tif (end >= 1) {\n\t\t\t\tbeg = 1;\n\t\t\t}\n\t\t\telse if (end <= -1) {\n\t\t\t\tbeg = -1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = Math.abs(parts[2]);\n\t\t\tbreak;\n\t}\n\tif(inc === 0) {\n\t\treturn [\"range: increment 0 causes infinite loop\"];\n\t}\n\t// May need to count backwards\n\tvar direction = ((end < beg) ? -1 : 1);\n\tinc *= direction;\n\t// Estimate number of resulting elements\n\tif((end - beg) / inc > 10000) {\n\t\treturn [\"range: too many steps (over 10K)\"];\n\t}\n\t// Avoid rounding error on last step\n\tend += direction * 0.5 * Math.pow(0.1,fixed);\n\tvar safety = 10010;\n\t// Enumerate the range\n\tif (end<beg) {\n\t\tfor(i=beg; i>end; i+=inc) {\n\t\t\tresults.push(i.toFixed(fixed));\n\t\t\tif(--safety<0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor(i=beg; i<end; i+=inc) {\n\t\t\tresults.push(i.toFixed(fixed));\n\t\t\tif(--safety<0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tif(safety<0) {\n\t\treturn [\"range: unexpectedly large output\"];\n\t}\n\t// Reverse?\n\tif(operator.prefix === \"!\") {\n\t\tresults.reverse();\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/reduce.js": {
"title": "$:/core/modules/filters/reduce.js",
"text": "/*\\\ntitle: $:/core/modules/filters/reduce.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator evaluates a subfilter for each item, making the running total available in the variable `accumulator`, and the current index available in the variable `index`\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.reduce = function(source,operator,options) {\n\t// Accumulate the list\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\t// Run the filter over each item\n\tvar filterFn = options.wiki.compileFilter(operator.operand),\n\t\taccumulator = operator.operands[1] || \"\";\n\tfor(var index=0; index<results.length; index++) {\n\t\tvar title = results[index],\n\t\t\tlist = filterFn.call(options.wiki,options.wiki.makeTiddlerIterator([title]),{\n\t\t\t\tgetVariable: function(name) {\n\t\t\t\t\tswitch(name) {\n\t\t\t\t\t\tcase \"currentTiddler\":\n\t\t\t\t\t\t\treturn \"\" + title;\n\t\t\t\t\t\tcase \"accumulator\":\n\t\t\t\t\t\t\treturn \"\" + accumulator;\n\t\t\t\t\t\tcase \"index\":\n\t\t\t\t\t\t\treturn \"\" + index;\n\t\t\t\t\t\tcase \"revIndex\":\n\t\t\t\t\t\t\treturn \"\" + (results.length - 1 - index);\n\t\t\t\t\t\tcase \"length\":\n\t\t\t\t\t\t\treturn \"\" + results.length;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn options.widget.getVariable(name);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\tif(list.length > 0) {\n\t\t\taccumulator = \"\" + list[0];\n\t\t}\n\t}\n\tif(results.length > 0) {\n\t\treturn [accumulator];\n\t} else {\n\t\treturn [];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/regexp.js": {
"title": "$:/core/modules/filters/regexp.js",
"text": "/*\\\ntitle: $:/core/modules/filters/regexp.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for regexp matching\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.regexp = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"title\").toLowerCase(),\n\t\tregexpString, regexp, flags = \"\", match,\n\t\tgetFieldString = function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\treturn tiddler.getFieldString(fieldname);\n\t\t\t} else if(fieldname === \"title\") {\n\t\t\t\treturn title;\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\t// Process flags and construct regexp\n\tregexpString = operator.operand;\n\tmatch = /^\\(\\?([gim]+)\\)/.exec(regexpString);\n\tif(match) {\n\t\tflags = match[1];\n\t\tregexpString = regexpString.substr(match[0].length);\n\t} else {\n\t\tmatch = /\\(\\?([gim]+)\\)$/.exec(regexpString);\n\t\tif(match) {\n\t\t\tflags = match[1];\n\t\t\tregexpString = regexpString.substr(0,regexpString.length - match[0].length);\n\t\t}\n\t}\n\ttry {\n\t\tregexp = new RegExp(regexpString,flags);\n\t} catch(e) {\n\t\treturn [\"\" + e];\n\t}\n\t// Process the incoming tiddlers\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/removeprefix.js": {
"title": "$:/core/modules/filters/removeprefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/removeprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a prefix from each title in the list. Titles that do not start with the prefix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removeprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/removesuffix.js": {
"title": "$:/core/modules/filters/removesuffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/removesuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a suffix from each title in the list. Titles that do not end with the suffix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removesuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title && title.substr(-operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(0,title.length - operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/sameday.js": {
"title": "$:/core/modules/filters/sameday.js",
"text": "/*\\\ntitle: $:/core/modules/filters/sameday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a modified date field on the same day as the provided value.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sameday = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\ttargetDate = (new Date($tw.utils.parseDate(operator.operand))).setHours(0,0,0,0);\n\t// Function to convert a date/time to a date integer\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(tiddler.getFieldDay(fieldName) === targetDate) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/search.js": {
"title": "$:/core/modules/filters/search.js",
"text": "/*\\\ntitle: $:/core/modules/filters/search.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for searching for the text in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.search = function(source,operator,options) {\n\tvar invert = operator.prefix === \"!\";\n\tif(operator.suffixes) {\n\t\tvar hasFlag = function(flag) {\n\t\t\t\treturn (operator.suffixes[1] || []).indexOf(flag) !== -1;\n\t\t\t},\n\t\t\texcludeFields = false,\n\t\t\tfieldList = operator.suffixes[0] || [],\n\t\t\tfirstField = fieldList[0] || \"\", \n\t\t\tfirstChar = firstField.charAt(0),\n\t\t\tfields;\n\t\tif(firstChar === \"-\") {\n\t\t\tfields = [firstField.slice(1)].concat(fieldList.slice(1));\n\t\t\texcludeFields = true;\n\t\t} else if(fieldList[0] === \"*\"){\n\t\t\tfields = [];\n\t\t\texcludeFields = true;\n\t\t} else {\n\t\t\tfields = fieldList.slice(0);\n\t\t}\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert,\n\t\t\tfield: fields,\n\t\t\texcludeField: excludeFields,\n\t\t\tcaseSensitive: hasFlag(\"casesensitive\"),\n\t\t\tliteral: hasFlag(\"literal\"),\n\t\t\twhitespace: hasFlag(\"whitespace\"),\n\t\t\tanchored: hasFlag(\"anchored\"),\n\t\t\tregexp: hasFlag(\"regexp\"),\n\t\t\twords: hasFlag(\"words\")\n\t\t});\n\t} else {\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/shadowsource.js": {
"title": "$:/core/modules/filters/shadowsource.js",
"text": "/*\\\ntitle: $:/core/modules/filters/shadowsource.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the source plugins for shadow tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadowsource = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar source = options.wiki.getShadowSource(title);\n\t\tif(source) {\n\t\t\t$tw.utils.pushTop(results,source);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/slugify.js": {
"title": "$:/core/modules/filters/slugify.js",
"text": "/*\\\ntitle: $:/core/modules/filters/slugify.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for slugifying a tiddler title\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.slugify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.wiki.slugify(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/sort.js": {
"title": "$:/core/modules/filters/sort.js",
"text": "/*\\\ntitle: $:/core/modules/filters/sort.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for sorting\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,false);\n\treturn results;\n};\n\nexports.nsort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,true);\n\treturn results;\n};\n\nexports.sortan = function(source, operator, options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results, operator.operand || \"title\", operator.prefix === \"!\",false,false,true);\n\treturn results;\n};\n\nexports.sortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,false);\n\treturn results;\n};\n\nexports.nsortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,true);\n\treturn results;\n};\n\nvar prepare_results = function (source) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/sortsub.js": {
"title": "$:/core/modules/filters/sortsub.js",
"text": "/*\\\ntitle: $:/core/modules/filters/sortsub.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for sorting by a subfilter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sortsub = function(source,operator,options) {\n\t// Compile the subfilter\n\tvar filterFn = options.wiki.compileFilter(operator.operand);\n\t// Collect the input titles and the corresponding sort keys\n\tvar inputTitles = [],\n\t\tsortKeys = [];\n\tsource(function(tiddler,title) {\n\t\tinputTitles.push(title);\n\t\tvar r = filterFn.call(options.wiki,function(iterator) {\n\t\t\titerator(options.wiki.getTiddler(title),title);\n\t\t},{\n\t\t\tgetVariable: function(name) {\n\t\t\t\tif(name === \"currentTiddler\") {\n\t\t\t\t\treturn title;\n\t\t\t\t} else {\n\t\t\t\t\treturn options.widget.getVariable(name);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tsortKeys.push(r[0] || \"\");\n\t});\n\t// Rather than sorting the titles array, we'll sort the indexes so that we can consult both arrays\n\tvar indexes = new Array(inputTitles.length);\n\tfor(var t=0; t<inputTitles.length; t++) {\n\t\tindexes[t] = t;\n\t}\n\t// Sort the indexes\n\tvar compareFn = $tw.utils.makeCompareFunction(operator.suffix,{defaultType: \"string\",invert: operator.prefix === \"!\"});\n\tindexes = indexes.sort(function(a,b) {\n\t\treturn compareFn(sortKeys[a],sortKeys[b]);\n\t});\n\t// Make the results array in order\n\tvar results = [];\n\t$tw.utils.each(indexes,function(index) {\n\t\tresults.push(inputTitles[index]);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/splitbefore.js": {
"title": "$:/core/modules/filters/splitbefore.js",
"text": "/*\\\ntitle: $:/core/modules/filters/splitbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that splits each result on the first occurance of the specified separator and returns the unique values.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.splitbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar parts = title.split(operator.operand);\n\t\tif(parts.length === 1) {\n\t\t\t$tw.utils.pushTop(results,parts[0]);\n\t\t} else {\n\t\t\t$tw.utils.pushTop(results,parts[0] + operator.operand);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/storyviews.js": {
"title": "$:/core/modules/filters/storyviews.js",
"text": "/*\\\ntitle: $:/core/modules/filters/storyviews.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the story views in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.storyviews = function(source,operator,options) {\n\tvar results = [],\n\t\tstoryviews = {};\n\t$tw.modules.applyMethods(\"storyview\",storyviews);\n\t$tw.utils.each(storyviews,function(info,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/strings.js": {
"title": "$:/core/modules/filters/strings.js",
"text": "/*\\\ntitle: $:/core/modules/filters/strings.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for strings. Unary/binary operators work on each item in turn, and return a new item list.\n\nSum/product/maxall/minall operate on the entire list, returning a single item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.length = makeStringBinaryOperator(\n\tfunction(a) {return [\"\" + (\"\" + a).length];}\n);\n\nexports.uppercase = makeStringBinaryOperator(\n\tfunction(a) {return [(\"\" + a).toUpperCase()];}\n);\n\nexports.lowercase = makeStringBinaryOperator(\n\tfunction(a) {return [(\"\" + a).toLowerCase()];}\n);\n\nexports.sentencecase = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.toSentenceCase(a)];}\n);\n\nexports.titlecase = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.toTitleCase(a)];}\n);\n\nexports.trim = function(source,operator,options) {\n\tvar result = [],\n\t\tsuffix = operator.suffix || \"\",\n\t\toperand = (operator.operand || \"\"),\n\t\tfnCalc;\n\tif(suffix === \"prefix\") {\n\t\tfnCalc = function(a,b) {return [$tw.utils.trimPrefix(a,b)];}\n\t} else if(suffix === \"suffix\") {\n\t\tfnCalc = function(a,b) {return [$tw.utils.trimSuffix(a,b)];}\n\t} else {\n\t\tif(operand === \"\") {\n\t\t\tfnCalc = function(a) {return [$tw.utils.trim(a)];}\n\t\t} else {\n\t\t\tfnCalc = function(a,b) {return [$tw.utils.trimSuffix($tw.utils.trimPrefix(a,b),b)];}\n\t\t}\n\t}\n\tsource(function(tiddler,title) {\n\t\tArray.prototype.push.apply(result,fnCalc(title,operand));\n\t});\n\treturn result;\n};\n\nexports.split = makeStringBinaryOperator(\n\tfunction(a,b) {return (\"\" + a).split(b);}\n);\n\nexports[\"enlist-input\"] = makeStringBinaryOperator(\n\tfunction(a,o,s) {return $tw.utils.parseStringArray(\"\" + a,(s === \"raw\"));}\n);\n\nexports.join = makeStringReducingOperator(\n\tfunction(accumulator,value,operand) {\n\t\tif(accumulator === null) {\n\t\t\treturn value;\n\t\t} else {\n\t\t\treturn accumulator + operand + value;\n\t\t}\n\t},null\n);\n\nfunction makeStringBinaryOperator(fnCalc) {\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tArray.prototype.push.apply(result,fnCalc(title,operator.operand || \"\",operator.suffix || \"\"));\n\t\t});\n\t\treturn result;\n\t};\n}\n\nfunction makeStringReducingOperator(fnCalc,initialValue) {\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push(title);\n\t\t});\n\t\tif(result.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\treturn [result.reduce(function(accumulator,currentValue) {\n\t\t\treturn fnCalc(accumulator,currentValue,operator.operand || \"\");\n\t\t},initialValue) || \"\"];\n\t};\n}\n\nexports.splitregexp = function(source,operator,options) {\n\tvar result = [],\n\t\tsuffix = operator.suffix || \"\",\n\t\tflags = (suffix.indexOf(\"m\") !== -1 ? \"m\" : \"\") + (suffix.indexOf(\"i\") !== -1 ? \"i\" : \"\"),\n\t\tregExp;\n\ttry {\n\t\tregExp = new RegExp(operator.operand || \"\",flags);\t\t\n\t} catch(ex) {\n\t\treturn [\"RegExp error: \" + ex];\n\t}\n\tsource(function(tiddler,title) {\n\t\tArray.prototype.push.apply(result,title.split(regExp));\n\t});\t\t\n\treturn result;\n};\n\nexports[\"search-replace\"] = function(source,operator,options) {\n\tvar results = [],\n\t\tsuffixes = operator.suffixes || [],\n\t\tflagSuffix = (suffixes[0] ? (suffixes[0][0] || \"\") : \"\"),\n\t\tflags = (flagSuffix.indexOf(\"g\") !== -1 ? \"g\" : \"\") + (flagSuffix.indexOf(\"i\") !== -1 ? \"i\" : \"\"),\n\t\tisRegExp = (suffixes[1] && suffixes[1][0] === \"regexp\") ? true : false,\n\t\tsearchTerm,\n\t\tregExp;\n\t\n\tsource(function(tiddler,title) {\n\t\tif(title && (operator.operands.length > 1)) {\n\t\t\t//Escape regexp characters if the operand is not a regular expression\n\t\t\tsearchTerm = isRegExp ? operator.operand : $tw.utils.escapeRegExp(operator.operand);\n\t\t\ttry {\n\t\t\t\tregExp = new RegExp(searchTerm,flags);\n\t\t\t} catch(ex) {\n\t\t\t\treturn [\"RegExp error: \" + ex];\n\t\t\t}\n\t\t\tresults.push(\n\t\t\t\ttitle.replace(regExp,operator.operands[1])\n\t\t\t);\n\t\t} else {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\nexports.pad = function(source,operator,options) {\n\tvar results = [],\n\t\ttargetLength = operator.operand ? parseInt(operator.operand) : 0,\n\t\tfill = operator.operands[1] || \"0\";\n\n\tsource(function(tiddler,title) {\n\t\tif(title && title.length) {\n\t\t\tif(title.length >= targetLength) {\n\t\t\t\tresults.push(title);\n\t\t\t} else {\n\t\t\t\tvar padString = \"\",\n\t\t\t\t\tpadStringLength = targetLength - title.length;\n\t\t\t\twhile (padStringLength > padString.length) {\n\t\t\t\t\tpadString += fill;\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t//make sure we do not exceed the specified length\n\t\t\t\tpadString = padString.slice(0,padStringLength);\n\t\t\t\tif(operator.suffix && (operator.suffix === \"suffix\")) {\n\t\t\t\t\ttitle = title + padString;\n\t\t\t\t} else {\n\t\t\t\t\ttitle = padString + title;\n\t\t\t\t}\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/subfilter.js": {
"title": "$:/core/modules/filters/subfilter.js",
"text": "/*\\\ntitle: $:/core/modules/filters/subfilter.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand evaluated as a filter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.subfilter = function(source,operator,options) {\n\tvar list = options.wiki.filterTiddlers(operator.operand,options.widget,source);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/subtiddlerfields.js": {
"title": "$:/core/modules/filters/subtiddlerfields.js",
"text": "/*\\\ntitle: $:/core/modules/filters/subtiddlerfields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected subtiddlers of the plugin named in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.subtiddlerfields = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar subtiddler = options.wiki.getSubTiddler(operator.operand,title);\n\t\tif(subtiddler) {\n\t\t\tfor(var fieldName in subtiddler.fields) {\n\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/suffix.js": {
"title": "$:/core/modules/filters/suffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/suffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title ends with a suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.suffix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tag.js": {
"title": "$:/core/modules/filters/tag.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tag.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking for the presence of a tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,operator,options) {\n\tvar results = [],indexedResults;\n\tif((operator.suffix || \"\").toLowerCase() === \"strict\" && !operator.operand) {\n\t\t// New semantics:\n\t\t// Always return copy of input if operator.operand is missing\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t} else {\n\t\t// Old semantics:\n\t\tvar tiddlers;\n\t\tif(operator.prefix === \"!\") {\n\t\t\t// Returns a copy of the input if operator.operand is missing\n\t\t\ttiddlers = options.wiki.getTiddlersWithTag(operator.operand);\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddlers.indexOf(title) === -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// Returns empty results if operator.operand is missing\n\t\t\tif(source.byTag) {\n\t\t\t\tindexedResults = source.byTag(operator.operand);\n\t\t\t\tif(indexedResults) {\n\t\t\t\t\treturn indexedResults;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttiddlers = options.wiki.getTiddlersWithTag(operator.operand);\n\t\t\t\tsource(function(tiddler,title) {\n\t\t\t\t\tif(tiddlers.indexOf(title) !== -1) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresults = options.wiki.sortByList(results,operator.operand);\n\t\t\t}\n\t\t}\t\t\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tagging.js": {
"title": "$:/core/modules/filters/tagging.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tagging.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that are tagged with the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tagging = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlersWithTag(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tags.js": {
"title": "$:/core/modules/filters/tags.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tags.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the tags of the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,operator,options) {\n\tvar tags = {};\n\tsource(function(tiddler,title) {\n\t\tvar t, length;\n\t\tif(tiddler && tiddler.fields.tags) {\n\t\t\tfor(t=0, length=tiddler.fields.tags.length; t<length; t++) {\n\t\t\t\ttags[tiddler.fields.tags[t]] = true;\n\t\t\t}\n\t\t}\n\t});\n\treturn Object.keys(tags);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/then.js": {
"title": "$:/core/modules/filters/then.js",
"text": "/*\\\ntitle: $:/core/modules/filters/then.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing any titles with a constant\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.then = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/title.js": {
"title": "$:/core/modules/filters/title.js",
"text": "/*\\\ntitle: $:/core/modules/filters/title.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing title fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.title = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields.title !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults.push(operator.operand);\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/untagged.js": {
"title": "$:/core/modules/filters/untagged.js",
"text": "/*\\\ntitle: $:/core/modules/filters/untagged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the selected tiddlers that are untagged\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.untagged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && $tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length > 0) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!tiddler || !tiddler.hasField(\"tags\") || ($tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length === 0)) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/variables.js": {
"title": "$:/core/modules/filters/variables.js",
"text": "/*\\\ntitle: $:/core/modules/filters/variables.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the active variables\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.variables = function(source,operator,options) {\n\tvar names = [];\n\tfor(var variable in options.widget.variables) {\n\t\tnames.push(variable);\n\t}\n\treturn names.sort();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/wikiparserrules.js": {
"title": "$:/core/modules/filters/wikiparserrules.js",
"text": "/*\\\ntitle: $:/core/modules/filters/wikiparserrules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the wiki parser rules in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.wikiparserrules = function(source,operator,options) {\n\tvar results = [],\n\t\toperand = operator.operand;\n\t$tw.utils.each($tw.modules.types.wikirule,function(mod) {\n\t\tvar exp = mod.exports;\n\t\tif(!operand || exp.types[operand]) {\n\t\t\tresults.push(exp.name);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/x-listops.js": {
"title": "$:/core/modules/filters/x-listops.js",
"text": "/*\\\ntitle: $:/core/modules/filters/x-listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nExtended filter operators to manipulate the current list.\n\n\\*/\n(function () {\n\n\t/*jslint node: true, browser: true */\n\t/*global $tw: false */\n\t\"use strict\";\n\n\t/*\n\tFetch titles from the current list\n\t*/\n\tvar prepare_results = function (source) {\n\tvar results = [];\n\t\tsource(function (tiddler, title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t};\n\n\t/*\n\tMoves a number of items from the tail of the current list before the item named in the operand\n\t*/\n\texports.putbefore = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1);\n\t\treturn (index === -1) ?\n\t\t\tresults.slice(0, -1) :\n\t\t\tresults.slice(0, index).concat(results.slice(-count)).concat(results.slice(index, -count));\n\t};\n\n\t/*\n\tMoves a number of items from the tail of the current list after the item named in the operand\n\t*/\n\texports.putafter = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1);\n\t\treturn (index === -1) ?\n\t\t\tresults.slice(0, -1) :\n\t\t\tresults.slice(0, index + 1).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n\t};\n\n\t/*\n\tReplaces the item named in the operand with a number of items from the tail of the current list\n\t*/\n\texports.replace = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1);\n\t\treturn (index === -1) ?\n\t\t\tresults.slice(0, -count) :\n\t\t\tresults.slice(0, index).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n\t};\n\n\t/*\n\tMoves a number of items from the tail of the current list to the head of the list\n\t*/\n\texports.putfirst = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1);\n\t\treturn results.slice(-count).concat(results.slice(0, -count));\n\t};\n\n\t/*\n\tMoves a number of items from the head of the current list to the tail of the list\n\t*/\n\texports.putlast = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1);\n\t\treturn results.slice(count).concat(results.slice(0, count));\n\t};\n\n\t/*\n\tMoves the item named in the operand a number of places forward or backward in the list\n\t*/\n\texports.move = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1),\n\t\t\tmarker = results.splice(index, 1),\n\t\t\toffset = (index + count) > 0 ? index + count : 0;\n\t\treturn results.slice(0, offset).concat(marker).concat(results.slice(offset));\n\t};\n\n\t/*\n\tReturns the items from the current list that are after the item named in the operand\n\t*/\n\texports.allafter = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand);\n\t\treturn (index === -1) ? [] :\n\t\t\t(operator.suffix) ? results.slice(index) :\n\t\t\tresults.slice(index + 1);\n\t};\n\n\t/*\n\tReturns the items from the current list that are before the item named in the operand\n\t*/\n\texports.allbefore = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand);\n\t\treturn (index === -1) ? [] :\n\t\t\t(operator.suffix) ? results.slice(0, index + 1) :\n\t\t\tresults.slice(0, index);\n\t};\n\n\t/*\n\tAppends the items listed in the operand array to the tail of the current list\n\t*/\n\texports.append = function (source, operator) {\n\t\tvar append = $tw.utils.parseStringArray(operator.operand, \"true\"),\n\t\t\tresults = prepare_results(source),\n\t\t\tcount = parseInt(operator.suffix) || append.length;\n\t\treturn (append.length === 0) ? results :\n\t\t\t(operator.prefix) ? results.concat(append.slice(-count)) :\n\t\t\tresults.concat(append.slice(0, count));\n\t};\n\n\t/*\n\tPrepends the items listed in the operand array to the head of the current list\n\t*/\n\texports.prepend = function (source, operator) {\n\t\tvar prepend = $tw.utils.parseStringArray(operator.operand, \"true\"),\n\t\t\tresults = prepare_results(source),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,prepend.length);\n\t\treturn (prepend.length === 0) ? results :\n\t\t\t(operator.prefix) ? prepend.slice(-count).concat(results) :\n\t\t\tprepend.slice(0, count).concat(results);\n\t};\n\n\t/*\n\tReturns all items from the current list except the items listed in the operand array\n\t*/\n\texports.remove = function (source, operator) {\n\t\tvar array = $tw.utils.parseStringArray(operator.operand, \"true\"),\n\t\t\tresults = prepare_results(source),\n\t\t\tcount = parseInt(operator.suffix) || array.length,\n\t\t\tp,\n\t\t\tlen,\n\t\t\tindex;\n\t\tlen = array.length - 1;\n\t\tfor (p = 0; p < count; ++p) {\n\t\t\tif (operator.prefix) {\n\t\t\t\tindex = results.indexOf(array[len - p]);\n\t\t\t} else {\n\t\t\t\tindex = results.indexOf(array[p]);\n\t\t\t}\n\t\t\tif (index !== -1) {\n\t\t\t\tresults.splice(index, 1);\n\t\t\t}\n\t\t}\n\t\treturn results;\n\t};\n\n\t/*\n\tReturns all items from the current list sorted in the order of the items in the operand array\n\t*/\n\texports.sortby = function (source, operator) {\n\t\tvar results = prepare_results(source);\n\t\tif (!results || results.length < 2) {\n\t\t\treturn results;\n\t\t}\n\t\tvar lookup = $tw.utils.parseStringArray(operator.operand, \"true\");\n\t\tresults.sort(function (a, b) {\n\t\t\treturn lookup.indexOf(a) - lookup.indexOf(b);\n\t\t});\n\t\treturn results;\n\t};\n\n\t/*\n\tRemoves all duplicate items from the current list\n\t*/\n\texports.unique = function (source, operator) {\n\t\tvar results = prepare_results(source);\n\t\tvar set = results.reduce(function (a, b) {\n\t\t\tif (a.indexOf(b) < 0) {\n\t\t\t\ta.push(b);\n\t\t\t}\n\t\t\treturn a;\n\t\t}, []);\n\t\treturn set;\n\t};\n\n\tvar cycleValueInArray = function(results,operands,stepSize) {\n\t\tvar resultsIndex,\n\t\t\tstep = stepSize || 1,\n\t\t\ti = 0,\n\t\t\topLength = operands.length,\n\t\t\tnextOperandIndex;\t\t\n\t\tfor(i; i < opLength; i++) {\n\t\t\tresultsIndex = results.indexOf(operands[i]);\n\t\t\tif(resultsIndex !== -1) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif(resultsIndex !== -1) {\n\t\t\ti = i + step;\n\t\t\tnextOperandIndex = (i < opLength ? i : i - opLength);\n\t\t\tif(operands.length > 1) {\n\t\t\t\tresults.splice(resultsIndex,1,operands[nextOperandIndex]);\n\t\t\t} else {\n\t\t\t\tresults.splice(resultsIndex,1);\n\t\t\t}\n\t\t} else {\n\t\t\tresults.push(operands[0]);\n\t\t}\n\t\treturn results;\t\t\n\t}\n\n\t/*\n\tToggles an item in the current list.\n\t*/\t\n\texports.toggle = function(source,operator) {\n\t\treturn cycleValueInArray(prepare_results(source),operator.operands);\n\t}\n\n\texports.cycle = function(source,operator) {\n\t\tvar results = prepare_results(source),\n\t\t\toperands = (operator.operand.length ? $tw.utils.parseStringArray(operator.operand, \"true\") : [\"\"]),\n\t\t\tstep = $tw.utils.getInt(operator.operands[1]||\"\",1);\n\t\tif(step < 0) {\n\t\t\toperands.reverse();\n\t\t\tstep = Math.abs(step);\n\t\t}\t\n\t\treturn cycleValueInArray(results,operands,step);\n\t}\n\t\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters.js": {
"title": "$:/core/modules/filters.js",
"text": "/*\\\ntitle: $:/core/modules/filters.js\ntype: application/javascript\nmodule-type: wikimethod\n\nAdds tiddler filtering methods to the $tw.Wiki object.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParses an operation (i.e. a run) within a filter string\n\toperators: Array of array of operator nodes into which results should be inserted\n\tfilterString: filter string\n\tp: start position within the string\nReturns the new start position, after the parsed operation\n*/\nfunction parseFilterOperation(operators,filterString,p) {\n\tvar nextBracketPos, operator;\n\t// Skip the starting square bracket\n\tif(filterString.charAt(p++) !== \"[\") {\n\t\tthrow \"Missing [ in filter expression\";\n\t}\n\t// Process each operator in turn\n\tdo {\n\t\toperator = {};\n\t\t// Check for an operator prefix\n\t\tif(filterString.charAt(p) === \"!\") {\n\t\t\toperator.prefix = filterString.charAt(p++);\n\t\t}\n\t\t// Get the operator name\n\t\tnextBracketPos = filterString.substring(p).search(/[\\[\\{<\\/]/);\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing [ in filter expression\";\n\t\t}\n\t\tnextBracketPos += p;\n\t\tvar bracket = filterString.charAt(nextBracketPos);\n\t\toperator.operator = filterString.substring(p,nextBracketPos);\n\t\t// Any suffix?\n\t\tvar colon = operator.operator.indexOf(':');\n\t\tif(colon > -1) {\n\t\t\t// The raw suffix for older filters\n\t\t\toperator.suffix = operator.operator.substring(colon + 1);\n\t\t\toperator.operator = operator.operator.substring(0,colon) || \"field\";\n\t\t\t// The processed suffix for newer filters\n\t\t\toperator.suffixes = [];\n\t\t\t$tw.utils.each(operator.suffix.split(\":\"),function(subsuffix) {\n\t\t\t\toperator.suffixes.push([]);\n\t\t\t\t$tw.utils.each(subsuffix.split(\",\"),function(entry) {\n\t\t\t\t\tentry = $tw.utils.trim(entry);\n\t\t\t\t\tif(entry) {\n\t\t\t\t\t\toperator.suffixes[operator.suffixes.length - 1].push(entry); \n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\t// Empty operator means: title\n\t\telse if(operator.operator === \"\") {\n\t\t\toperator.operator = \"title\";\n\t\t}\n\t\toperator.operands = [];\n\t\tfunction parseOperand(bracketType) {\n\t\t\tvar operand = {};\n\t\t\tswitch (bracketType) {\n\t\t\t\tcase \"{\": // Curly brackets\n\t\t\t\t\toperand.indirect = true;\n\t\t\t\t\tnextBracketPos = filterString.indexOf(\"}\",p);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"[\": // Square brackets\n\t\t\t\t\tnextBracketPos = filterString.indexOf(\"]\",p);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"<\": // Angle brackets\n\t\t\t\t\toperand.variable = true;\n\t\t\t\t\tnextBracketPos = filterString.indexOf(\">\",p);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"/\": // regexp brackets\n\t\t\t\t\tvar rex = /^((?:[^\\\\\\/]*|\\\\.)*)\\/(?:\\(([mygi]+)\\))?/g,\n\t\t\t\t\t\trexMatch = rex.exec(filterString.substring(p));\n\t\t\t\t\tif(rexMatch) {\n\t\t\t\t\t\toperator.regexp = new RegExp(rexMatch[1], rexMatch[2]);\n\t// DEPRECATION WARNING\n\tconsole.log(\"WARNING: Filter\",operator.operator,\"has a deprecated regexp operand\",operator.regexp);\n\t\t\t\t\t\tnextBracketPos = p + rex.lastIndex - 1;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthrow \"Unterminated regular expression in filter expression\";\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif(nextBracketPos === -1) {\n\t\t\t\tthrow \"Missing closing bracket in filter expression\";\n\t\t\t}\n\t\t\tif(!operator.regexp) {\n\t\t\t\toperand.text = filterString.substring(p,nextBracketPos);\n\t\t\t\toperator.operands.push(operand);\n\t\t\t}\n\t\t\tp = nextBracketPos + 1;\n\t\t}\n\t\t\n\t\tp = nextBracketPos + 1;\n\t\tparseOperand(bracket);\n\t\t\n\t\t// Check for multiple operands\n\t\twhile(filterString.charAt(p) === \",\") {\n\t\t\tp++;\n\t\t\tif(/^[\\[\\{<\\/]/.test(filterString.substring(p))) {\n\t\t\t\tnextBracketPos = p;\n\t\t\t\tp++;\n\t\t\t\tparseOperand(filterString.charAt(nextBracketPos));\n\t\t\t} else {\n\t\t\t\tthrow \"Missing [ in filter expression\";\n\t\t\t}\n\t\t}\n\t\t\n\t\t// Push this operator\n\t\toperators.push(operator);\n\t} while(filterString.charAt(p) !== \"]\");\n\t// Skip the ending square bracket\n\tif(filterString.charAt(p++) !== \"]\") {\n\t\tthrow \"Missing ] in filter expression\";\n\t}\n\t// Return the parsing position\n\treturn p;\n}\n\n/*\nParse a filter string\n*/\nexports.parseFilter = function(filterString) {\n\tfilterString = filterString || \"\";\n\tvar results = [], // Array of arrays of operator nodes {operator:,operand:}\n\t\tp = 0, // Current position in the filter string\n\t\tmatch;\n\tvar whitespaceRegExp = /(\\s+)/mg,\n\t\toperandRegExp = /((?:\\+|\\-|~|=|\\:(\\w+))?)(?:(\\[)|(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s\\[\\]]+))/mg;\n\twhile(p < filterString.length) {\n\t\t// Skip any whitespace\n\t\twhitespaceRegExp.lastIndex = p;\n\t\tmatch = whitespaceRegExp.exec(filterString);\n\t\tif(match && match.index === p) {\n\t\t\tp = p + match[0].length;\n\t\t}\n\t\t// Match the start of the operation\n\t\tif(p < filterString.length) {\n\t\t\toperandRegExp.lastIndex = p;\n\t\t\tmatch = operandRegExp.exec(filterString);\n\t\t\tif(!match || match.index !== p) {\n\t\t\t\tthrow $tw.language.getString(\"Error/FilterSyntax\");\n\t\t\t}\n\t\t\tvar operation = {\n\t\t\t\tprefix: \"\",\n\t\t\t\toperators: []\n\t\t\t};\n\t\t\tif(match[1]) {\n\t\t\t\toperation.prefix = match[1];\n\t\t\t\tp = p + operation.prefix.length;\n\t\t\t\tif(match[2]) {\n\t\t\t\t\toperation.namedPrefix = match[2];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(match[3]) { // Opening square bracket\n\t\t\t\tp = parseFilterOperation(operation.operators,filterString,p);\n\t\t\t} else {\n\t\t\t\tp = match.index + match[0].length;\n\t\t\t}\n\t\t\tif(match[4] || match[5] || match[6]) { // Double quoted string, single quoted string or unquoted title\n\t\t\t\toperation.operators.push(\n\t\t\t\t\t{operator: \"title\", operands: [{text: match[4] || match[5] || match[6]}]}\n\t\t\t\t);\n\t\t\t}\n\t\t\tresults.push(operation);\n\t\t}\n\t}\n\treturn results;\n};\n\nexports.getFilterOperators = function() {\n\tif(!this.filterOperators) {\n\t\t$tw.Wiki.prototype.filterOperators = {};\n\t\t$tw.modules.applyMethods(\"filteroperator\",this.filterOperators);\n\t}\n\treturn this.filterOperators;\n};\n\nexports.getFilterRunPrefixes = function() {\n\tif(!this.filterRunPrefixes) {\n\t\t$tw.Wiki.prototype.filterRunPrefixes = {};\n\t\t$tw.modules.applyMethods(\"filterrunprefix\",this.filterRunPrefixes);\n\t}\n\treturn this.filterRunPrefixes;\n}\n\nexports.filterTiddlers = function(filterString,widget,source) {\n\tvar fn = this.compileFilter(filterString);\n\treturn fn.call(this,source,widget);\n};\n\n/*\nCompile a filter into a function with the signature fn(source,widget) where:\nsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\nwidget: an optional widget node for retrieving the current tiddler etc.\n*/\nexports.compileFilter = function(filterString) {\n\tvar filterParseTree;\n\ttry {\n\t\tfilterParseTree = this.parseFilter(filterString);\n\t} catch(e) {\n\t\treturn function(source,widget) {\n\t\t\treturn [$tw.language.getString(\"Error/Filter\") + \": \" + e];\n\t\t};\n\t}\n\t// Get the hashmap of filter operator functions\n\tvar filterOperators = this.getFilterOperators();\n\t// Assemble array of functions, one for each operation\n\tvar operationFunctions = [];\n\t// Step through the operations\n\tvar self = this;\n\t$tw.utils.each(filterParseTree,function(operation) {\n\t\t// Create a function for the chain of operators in the operation\n\t\tvar operationSubFunction = function(source,widget) {\n\t\t\tvar accumulator = source,\n\t\t\t\tresults = [],\n\t\t\t\tcurrTiddlerTitle = widget && widget.getVariable(\"currentTiddler\");\n\t\t\t$tw.utils.each(operation.operators,function(operator) {\n\t\t\t\tvar operands = [],\n\t\t\t\t\toperatorFunction;\n\t\t\t\tif(!operator.operator) {\n\t\t\t\t\toperatorFunction = filterOperators.title;\n\t\t\t\t} else if(!filterOperators[operator.operator]) {\n\t\t\t\t\toperatorFunction = filterOperators.field;\n\t\t\t\t} else {\n\t\t\t\t\toperatorFunction = filterOperators[operator.operator];\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$tw.utils.each(operator.operands,function(operand) {\n\t\t\t\t\tif(operand.indirect) {\n\t\t\t\t\t\toperand.value = self.getTextReference(operand.text,\"\",currTiddlerTitle);\n\t\t\t\t\t} else if(operand.variable) {\n\t\t\t\t\t\toperand.value = widget.getVariable(operand.text,{defaultValue: \"\"});\n\t\t\t\t\t} else {\n\t\t\t\t\t\toperand.value = operand.text;\n\t\t\t\t\t}\n\t\t\t\t\toperands.push(operand.value);\n\t\t\t\t});\n\n\t\t\t\t// Invoke the appropriate filteroperator module\n\t\t\t\tresults = operatorFunction(accumulator,{\n\t\t\t\t\t\t\toperator: operator.operator,\n\t\t\t\t\t\t\toperand: operands.length > 0 ? operands[0] : undefined,\n\t\t\t\t\t\t\toperands: operands,\n\t\t\t\t\t\t\tprefix: operator.prefix,\n\t\t\t\t\t\t\tsuffix: operator.suffix,\n\t\t\t\t\t\t\tsuffixes: operator.suffixes,\n\t\t\t\t\t\t\tregexp: operator.regexp\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\twiki: self,\n\t\t\t\t\t\t\twidget: widget\n\t\t\t\t\t\t});\n\t\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\t\taccumulator = self.makeTiddlerIterator(results);\n\t\t\t\t} else {\n\t\t\t\t\taccumulator = results;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\treturn results;\n\t\t\t} else {\n\t\t\t\tvar resultArray = [];\n\t\t\t\tresults(function(tiddler,title) {\n\t\t\t\t\tresultArray.push(title);\n\t\t\t\t});\n\t\t\t\treturn resultArray;\n\t\t\t}\n\t\t};\n\t\tvar filterRunPrefixes = self.getFilterRunPrefixes();\n\t\t// Wrap the operator functions in a wrapper function that depends on the prefix\n\t\toperationFunctions.push((function() {\n\t\t\tvar options = {wiki: self};\n\t\t\tswitch(operation.prefix || \"\") {\n\t\t\t\tcase \"\": // No prefix means that the operation is unioned into the result\n\t\t\t\t\treturn filterRunPrefixes[\"or\"](operationSubFunction, options);\n\t\t\t\tcase \"=\": // The results of the operation are pushed into the result without deduplication\n\t\t\t\t\treturn filterRunPrefixes[\"all\"](operationSubFunction, options);\n\t\t\t\tcase \"-\": // The results of this operation are removed from the main result\n\t\t\t\t\treturn filterRunPrefixes[\"except\"](operationSubFunction, options);\n\t\t\t\tcase \"+\": // This operation is applied to the main results so far\n\t\t\t\t\treturn filterRunPrefixes[\"and\"](operationSubFunction, options);\n\t\t\t\tcase \"~\": // This operation is unioned into the result only if the main result so far is empty\n\t\t\t\t\treturn filterRunPrefixes[\"else\"](operationSubFunction, options);\n\t\t\t\tdefault: \n\t\t\t\t\tif(operation.namedPrefix && filterRunPrefixes[operation.namedPrefix]) {\n\t\t\t\t\t\treturn filterRunPrefixes[operation.namedPrefix](operationSubFunction, options);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t\tresults.clear();\n\t\t\t\t\t\t\tresults.push($tw.language.getString(\"Error/FilterRunPrefix\"));\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t}\n\t\t})());\n\t});\n\t// Return a function that applies the operations to a source iterator of tiddler titles\n\treturn $tw.perf.measure(\"filter: \" + filterString,function filterFunction(source,widget) {\n\t\tif(!source) {\n\t\t\tsource = self.each;\n\t\t} else if(typeof source === \"object\") { // Array or hashmap\n\t\t\tsource = self.makeTiddlerIterator(source);\n\t\t}\n\t\tvar results = new $tw.utils.LinkedList();\n\t\t$tw.utils.each(operationFunctions,function(operationFunction) {\n\t\t\toperationFunction(results,source,widget);\n\t\t});\n\t\treturn results.toArray();\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/core/modules/indexers/backlinks-indexer.js": {
"title": "$:/core/modules/indexers/backlinks-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/backlinks-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers' backlinks\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\n\nfunction BacklinksIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nBacklinksIndexer.prototype.init = function() {\n\tthis.index = null;\n}\n\nBacklinksIndexer.prototype.rebuild = function() {\n\tthis.index = null;\n}\n\nBacklinksIndexer.prototype._getLinks = function(tiddler) {\n\tvar parser = this.wiki.parseText(tiddler.fields.type, tiddler.fields.text, {});\n\tif(parser) {\n\t\treturn this.wiki.extractLinks(parser.tree);\n\t}\n\treturn [];\n}\n\nBacklinksIndexer.prototype.update = function(updateDescriptor) {\n\tif(!this.index) {\n\t\treturn;\n\t}\n\tvar newLinks = [],\n\t oldLinks = [],\n\t self = this;\n\tif(updateDescriptor.old.exists) {\n\t\toldLinks = this._getLinks(updateDescriptor.old.tiddler);\n\t}\n\tif(updateDescriptor.new.exists) {\n\t\tnewLinks = this._getLinks(updateDescriptor.new.tiddler);\n\t}\n\n\t$tw.utils.each(oldLinks,function(link) {\n\t\tif(self.index[link]) {\n\t\t\tdelete self.index[link][updateDescriptor.old.tiddler.fields.title];\n\t\t}\n\t});\n\t$tw.utils.each(newLinks,function(link) {\n\t\tif(!self.index[link]) {\n\t\t\tself.index[link] = Object.create(null);\n\t\t}\n\t\tself.index[link][updateDescriptor.new.tiddler.fields.title] = true;\n\t});\n}\n\nBacklinksIndexer.prototype.lookup = function(title) {\n\tif(!this.index) {\n\t\tthis.index = Object.create(null);\n\t\tvar self = this;\n\t\tthis.wiki.forEachTiddler(function(title,tiddler) {\n\t\t\tvar links = self._getLinks(tiddler);\n\t\t\t$tw.utils.each(links, function(link) {\n\t\t\t\tif(!self.index[link]) {\n\t\t\t\t\tself.index[link] = Object.create(null);\n\t\t\t\t}\n\t\t\t\tself.index[link][title] = true;\n\t\t\t});\n\t\t});\n\t}\n\tif(this.index[title]) {\n\t\treturn Object.keys(this.index[title]);\n\t} else {\n\t\treturn [];\n\t}\n}\n\nexports.BacklinksIndexer = BacklinksIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/indexers/field-indexer.js": {
"title": "$:/core/modules/indexers/field-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/field-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers with each field value\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\nvar DEFAULT_MAXIMUM_INDEXED_VALUE_LENGTH = 128;\n\nfunction FieldIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nFieldIndexer.prototype.init = function() {\n\tthis.index = null;\n\tthis.maxIndexedValueLength = DEFAULT_MAXIMUM_INDEXED_VALUE_LENGTH;\n\tthis.addIndexMethods();\n}\n\n// Provided for testing\nFieldIndexer.prototype.setMaxIndexedValueLength = function(length) {\n\tthis.index = null;\n\tthis.maxIndexedValueLength = length;\n};\n\nFieldIndexer.prototype.addIndexMethods = function() {\n\tvar self = this;\n\tthis.wiki.each.byField = function(name,value) {\n\t\tvar titles = self.wiki.allTitles(),\n\t\t\tlookup = self.lookup(name,value);\n\t\treturn lookup && lookup.filter(function(title) {\n\t\t\treturn titles.indexOf(title) !== -1;\n\t\t});\n\t};\n\tthis.wiki.eachShadow.byField = function(name,value) {\n\t\tvar titles = self.wiki.allShadowTitles(),\n\t\t\tlookup = self.lookup(name,value);\n\t\treturn lookup && lookup.filter(function(title) {\n\t\t\treturn titles.indexOf(title) !== -1;\n\t\t});\n\t};\n\tthis.wiki.eachTiddlerPlusShadows.byField = function(name,value) {\n\t\tvar lookup = self.lookup(name,value);\n\t\treturn lookup ? lookup.slice(0) : null;\n\t};\n\tthis.wiki.eachShadowPlusTiddlers.byField = function(name,value) {\n\t\tvar lookup = self.lookup(name,value);\n\t\treturn lookup ? lookup.slice(0) : null;\n\t};\n};\n\n/*\nTear down and then rebuild the index as if all tiddlers have changed\n*/\nFieldIndexer.prototype.rebuild = function() {\n\t// Invalidate the index so that it will be rebuilt when it is next used\n\tthis.index = null;\n};\n\n/*\nBuild the index for a particular field\n*/\nFieldIndexer.prototype.buildIndexForField = function(name) {\n\tvar self = this;\n\t// Hashmap by field name of hashmap by field value of array of tiddler titles\n\tthis.index = this.index || Object.create(null);\n\tthis.index[name] = Object.create(null);\n\tvar baseIndex = this.index[name];\n\t// Update the index for each tiddler\n\tthis.wiki.eachTiddlerPlusShadows(function(tiddler,title) {\n\t\tif(name in tiddler.fields) {\n\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\t// Skip any values above the maximum length\n\t\t\tif(value.length < self.maxIndexedValueLength) {\n\t\t\t\tbaseIndex[value] = baseIndex[value] || [];\n\t\t\t\tbaseIndex[value].push(title);\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nUpdate the index in the light of a tiddler value changing; note that the title must be identical. (Renames are handled as a separate delete and create)\nupdateDescriptor: {old: {tiddler: <tiddler>, shadow: <boolean>, exists: <boolean>},new: {tiddler: <tiddler>, shadow: <boolean>, exists: <boolean>}}\n*/\nFieldIndexer.prototype.update = function(updateDescriptor) {\n\tvar self = this;\n\t// Don't do anything if the index hasn't been built yet\n\tif(this.index === null) {\n\t\treturn;\n\t}\n\t// Remove the old tiddler from the index\n\tif(updateDescriptor.old.tiddler) {\n\t\t$tw.utils.each(this.index,function(indexEntry,name) {\n\t\t\tif(name in updateDescriptor.old.tiddler.fields) {\n\t\t\t\tvar value = updateDescriptor.old.tiddler.getFieldString(name),\n\t\t\t\t\ttiddlerList = indexEntry[value];\n\t\t\t\tif(tiddlerList) {\n\t\t\t\t\tvar index = tiddlerList.indexOf(updateDescriptor.old.tiddler.fields.title);\n\t\t\t\t\tif(index !== -1) {\n\t\t\t\t\t\ttiddlerList.splice(index,1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t// Add the new tiddler to the index\n\tif(updateDescriptor[\"new\"].tiddler) {\n\t\t$tw.utils.each(this.index,function(indexEntry,name) {\n\t\t\tif(name in updateDescriptor[\"new\"].tiddler.fields) {\n\t\t\t\tvar value = updateDescriptor[\"new\"].tiddler.getFieldString(name);\n\t\t\t\tif(value.length < self.maxIndexedValueLength) {\n\t\t\t\t\tindexEntry[value] = indexEntry[value] || [];\n\t\t\t\t\tindexEntry[value].push(updateDescriptor[\"new\"].tiddler.fields.title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\t\t\n\t}\n};\n\n// Lookup the given field returning a list of tiddler titles\nFieldIndexer.prototype.lookup = function(name,value) {\n\t// Fail the lookup if the value is too long\n\tif(value.length >= this.maxIndexedValueLength) {\n\t\treturn null;\n\t}\n\t// Update the index if it has yet to be built\n\tif(this.index === null || !this.index[name]) {\n\t\tthis.buildIndexForField(name);\n\t}\n\treturn this.index[name][value] || [];\n};\n\nexports.FieldIndexer = FieldIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/indexers/tag-indexer.js": {
"title": "$:/core/modules/indexers/tag-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/tag-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers with each tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\nfunction TagIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nTagIndexer.prototype.init = function() {\n\tthis.subIndexers = [\n\t\tnew TagSubIndexer(this,\"each\"),\n\t\tnew TagSubIndexer(this,\"eachShadow\"),\n\t\tnew TagSubIndexer(this,\"eachTiddlerPlusShadows\"),\n\t\tnew TagSubIndexer(this,\"eachShadowPlusTiddlers\")\n\t];\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.addIndexMethod();\n\t});\n};\n\nTagIndexer.prototype.rebuild = function() {\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.rebuild();\n\t});\n};\n\nTagIndexer.prototype.update = function(updateDescriptor) {\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.update(updateDescriptor);\n\t});\n};\n\nfunction TagSubIndexer(indexer,iteratorMethod) {\n\tthis.indexer = indexer;\n\tthis.iteratorMethod = iteratorMethod;\n\tthis.index = null; // Hashmap of tag title to {isSorted: bool, titles: [array]} or null if not yet initialised\n}\n\nTagSubIndexer.prototype.addIndexMethod = function() {\n\tvar self = this;\n\tthis.indexer.wiki[this.iteratorMethod].byTag = function(tag) {\n\t\treturn self.lookup(tag).slice(0);\n\t};\n};\n\nTagSubIndexer.prototype.rebuild = function() {\n\tvar self = this;\n\t// Hashmap by tag of array of {isSorted:, titles:[]}\n\tthis.index = Object.create(null);\n\t// Add all the tags\n\tthis.indexer.wiki[this.iteratorMethod](function(tiddler,title) {\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\tif(!self.index[tag]) {\n\t\t\t\tself.index[tag] = {isSorted: false, titles: [title]};\n\t\t\t} else {\n\t\t\t\tself.index[tag].titles.push(title);\n\t\t\t}\n\t\t});\t\t\n\t});\n};\n\nTagSubIndexer.prototype.update = function(updateDescriptor) {\n\tthis.index = null;\n};\n\nTagSubIndexer.prototype.lookup = function(tag) {\n\t// Update the index if it has yet to be built\n\tif(this.index === null) {\n\t\tthis.rebuild();\n\t}\n\tvar indexRecord = this.index[tag];\n\tif(indexRecord) {\n\t\tif(!indexRecord.isSorted) {\n\t\t\tif(this.indexer.wiki.sortByList) {\n\t\t\t\tindexRecord.titles = this.indexer.wiki.sortByList(indexRecord.titles,tag);\n\t\t\t}\t\t\t\n\t\t\tindexRecord.isSorted = true;\n\t\t}\n\t\treturn indexRecord.titles;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n\nexports.TagIndexer = TagIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/info/platform.js": {
"title": "$:/core/modules/info/platform.js",
"text": "/*\\\ntitle: $:/core/modules/info/platform.js\ntype: application/javascript\nmodule-type: info\n\nInitialise basic platform $:/info/ tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.getInfoTiddlerFields = function(updateInfoTiddlersCallback) {\n\tvar mapBoolean = function(value) {return value ? \"yes\" : \"no\";},\n\t\tinfoTiddlerFields = [];\n\t// Basics\n\tinfoTiddlerFields.push({title: \"$:/info/browser\", text: mapBoolean(!!$tw.browser)});\n\tinfoTiddlerFields.push({title: \"$:/info/node\", text: mapBoolean(!!$tw.node)});\n\tinfoTiddlerFields.push({title: \"$:/info/startup-timestamp\", text: $tw.utils.stringifyDate(new Date())});\n\tif($tw.browser) {\n\t\t// Document location\n\t\tvar setLocationProperty = function(name,value) {\n\t\t\t\tinfoTiddlerFields.push({title: \"$:/info/url/\" + name, text: value});\t\t\t\n\t\t\t},\n\t\t\tlocation = document.location;\n\t\tsetLocationProperty(\"full\", (location.toString()).split(\"#\")[0]);\n\t\tsetLocationProperty(\"host\", location.host);\n\t\tsetLocationProperty(\"hostname\", location.hostname);\n\t\tsetLocationProperty(\"protocol\", location.protocol);\n\t\tsetLocationProperty(\"port\", location.port);\n\t\tsetLocationProperty(\"pathname\", location.pathname);\n\t\tsetLocationProperty(\"search\", location.search);\n\t\tsetLocationProperty(\"origin\", location.origin);\n\t\t// Screen size\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/width\", text: window.screen.width.toString()});\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/height\", text: window.screen.height.toString()});\n \t\t// Dark mode through event listener on MediaQueryList\n \t\tvar mqList = window.matchMedia(\"(prefers-color-scheme: dark)\"),\n \t\t\tgetDarkModeTiddler = function() {return {title: \"$:/info/darkmode\", text: mqList.matches ? \"yes\" : \"no\"};};\n \t\tinfoTiddlerFields.push(getDarkModeTiddler());\n \t\tmqList.addListener(function(event) {\n \t\t\tupdateInfoTiddlersCallback([getDarkModeTiddler()]);\n \t\t});\n\t\t// Language\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/language\", text: navigator.language || \"\"});\n\t}\n\treturn infoTiddlerFields;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "info"
},
"$:/core/modules/keyboard.js": {
"title": "$:/core/modules/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/keyboard.js\ntype: application/javascript\nmodule-type: global\n\nKeyboard handling utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar namedKeys = {\n\t\"cancel\": 3,\n\t\"help\": 6,\n\t\"backspace\": 8,\n\t\"tab\": 9,\n\t\"clear\": 12,\n\t\"return\": 13,\n\t\"enter\": 13,\n\t\"pause\": 19,\n\t\"escape\": 27,\n\t\"space\": 32,\n\t\"page_up\": 33,\n\t\"page_down\": 34,\n\t\"end\": 35,\n\t\"home\": 36,\n\t\"left\": 37,\n\t\"up\": 38,\n\t\"right\": 39,\n\t\"down\": 40,\n\t\"printscreen\": 44,\n\t\"insert\": 45,\n\t\"delete\": 46,\n\t\"0\": 48,\n\t\"1\": 49,\n\t\"2\": 50,\n\t\"3\": 51,\n\t\"4\": 52,\n\t\"5\": 53,\n\t\"6\": 54,\n\t\"7\": 55,\n\t\"8\": 56,\n\t\"9\": 57,\n\t\"firefoxsemicolon\": 59,\n\t\"firefoxequals\": 61,\n\t\"a\": 65,\n\t\"b\": 66,\n\t\"c\": 67,\n\t\"d\": 68,\n\t\"e\": 69,\n\t\"f\": 70,\n\t\"g\": 71,\n\t\"h\": 72,\n\t\"i\": 73,\n\t\"j\": 74,\n\t\"k\": 75,\n\t\"l\": 76,\n\t\"m\": 77,\n\t\"n\": 78,\n\t\"o\": 79,\n\t\"p\": 80,\n\t\"q\": 81,\n\t\"r\": 82,\n\t\"s\": 83,\n\t\"t\": 84,\n\t\"u\": 85,\n\t\"v\": 86,\n\t\"w\": 87,\n\t\"x\": 88,\n\t\"y\": 89,\n\t\"z\": 90,\n\t\"numpad0\": 96,\n\t\"numpad1\": 97,\n\t\"numpad2\": 98,\n\t\"numpad3\": 99,\n\t\"numpad4\": 100,\n\t\"numpad5\": 101,\n\t\"numpad6\": 102,\n\t\"numpad7\": 103,\n\t\"numpad8\": 104,\n\t\"numpad9\": 105,\n\t\"multiply\": 106,\n\t\"add\": 107,\n\t\"separator\": 108,\n\t\"subtract\": 109,\n\t\"decimal\": 110,\n\t\"divide\": 111,\n\t\"f1\": 112,\n\t\"f2\": 113,\n\t\"f3\": 114,\n\t\"f4\": 115,\n\t\"f5\": 116,\n\t\"f6\": 117,\n\t\"f7\": 118,\n\t\"f8\": 119,\n\t\"f9\": 120,\n\t\"f10\": 121,\n\t\"f11\": 122,\n\t\"f12\": 123,\n\t\"f13\": 124,\n\t\"f14\": 125,\n\t\"f15\": 126,\n\t\"f16\": 127,\n\t\"f17\": 128,\n\t\"f18\": 129,\n\t\"f19\": 130,\n\t\"f20\": 131,\n\t\"f21\": 132,\n\t\"f22\": 133,\n\t\"f23\": 134,\n\t\"f24\": 135,\n\t\"firefoxminus\": 173,\n\t\"semicolon\": 186,\n\t\"equals\": 187,\n\t\"comma\": 188,\n\t\"dash\": 189,\n\t\"period\": 190,\n\t\"slash\": 191,\n\t\"backquote\": 192,\n\t\"openbracket\": 219,\n\t\"backslash\": 220,\n\t\"closebracket\": 221,\n\t\"quote\": 222\n};\n\nfunction KeyboardManager(options) {\n\tvar self = this;\n\toptions = options || \"\";\n\t// Save the named key hashmap\n\tthis.namedKeys = namedKeys;\n\t// Create a reverse mapping of code to keyname\n\tthis.keyNames = [];\n\t$tw.utils.each(namedKeys,function(keyCode,name) {\n\t\tself.keyNames[keyCode] = name.substr(0,1).toUpperCase() + name.substr(1);\n\t});\n\t// Save the platform-specific name of the \"meta\" key\n\tthis.metaKeyName = $tw.platform.isMac ? \"cmd-\" : \"win-\";\n\tthis.shortcutKeysList = [], // Stores the shortcut-key descriptors\n\tthis.shortcutActionList = [], // Stores the corresponding action strings\n\tthis.shortcutParsedList = []; // Stores the parsed key descriptors\n\tthis.lookupNames = [\"shortcuts\"];\n\tthis.lookupNames.push($tw.platform.isMac ? \"shortcuts-mac\" : \"shortcuts-not-mac\")\n\tthis.lookupNames.push($tw.platform.isWindows ? \"shortcuts-windows\" : \"shortcuts-not-windows\");\n\tthis.lookupNames.push($tw.platform.isLinux ? \"shortcuts-linux\" : \"shortcuts-not-linux\");\n\tthis.updateShortcutLists(this.getShortcutTiddlerList());\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tself.handleShortcutChanges(changes);\n\t});\n}\n\n/*\nReturn an array of keycodes for the modifier keys ctrl, shift, alt, meta\n*/\nKeyboardManager.prototype.getModifierKeys = function() {\n\treturn [\n\t\t16, // Shift\n\t\t17, // Ctrl\n\t\t18, // Alt\n\t\t20, // CAPS LOCK\n\t\t91, // Meta (left)\n\t\t93, // Meta (right)\n\t\t224 // Meta (Firefox)\n\t]\n};\n\n/*\nParses a key descriptor into the structure:\n{\n\tkeyCode: numeric keycode\n\tshiftKey: boolean\n\taltKey: boolean\n\tctrlKey: boolean\n\tmetaKey: boolean\n}\nKey descriptors have the following format:\n\tctrl+enter\n\tctrl+shift+alt+A\n*/\nKeyboardManager.prototype.parseKeyDescriptor = function(keyDescriptor) {\n\tvar components = keyDescriptor.split(/\\+|\\-/),\n\t\tinfo = {\n\t\t\tkeyCode: 0,\n\t\t\tshiftKey: false,\n\t\t\taltKey: false,\n\t\t\tctrlKey: false,\n\t\t\tmetaKey: false\n\t\t};\n\tfor(var t=0; t<components.length; t++) {\n\t\tvar s = components[t].toLowerCase(),\n\t\t\tc = s.charCodeAt(0);\n\t\t// Look for modifier keys\n\t\tif(s === \"ctrl\") {\n\t\t\tinfo.ctrlKey = true;\n\t\t} else if(s === \"shift\") {\n\t\t\tinfo.shiftKey = true;\n\t\t} else if(s === \"alt\") {\n\t\t\tinfo.altKey = true;\n\t\t} else if(s === \"meta\" || s === \"cmd\" || s === \"win\") {\n\t\t\tinfo.metaKey = true;\n\t\t}\n\t\t// Replace named keys with their code\n\t\tif(this.namedKeys[s]) {\n\t\t\tinfo.keyCode = this.namedKeys[s];\n\t\t}\n\t}\n\tif(info.keyCode) {\n\t\treturn info;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nParse a list of key descriptors into an array of keyInfo objects. The key descriptors can be passed as an array of strings or a space separated string\n*/\nKeyboardManager.prototype.parseKeyDescriptors = function(keyDescriptors,options) {\n\tvar self = this;\n\toptions = options || {};\n\toptions.stack = options.stack || [];\n\tvar wiki = options.wiki || $tw.wiki;\n\tif(typeof keyDescriptors === \"string\" && keyDescriptors === \"\") {\n\t\treturn [];\n\t}\n\tif(!$tw.utils.isArray(keyDescriptors)) {\n\t\tkeyDescriptors = keyDescriptors.split(\" \");\n\t}\n\tvar result = [];\n\t$tw.utils.each(keyDescriptors,function(keyDescriptor) {\n\t\t// Look for a named shortcut\n\t\tif(keyDescriptor.substr(0,2) === \"((\" && keyDescriptor.substr(-2,2) === \"))\") {\n\t\t\tif(options.stack.indexOf(keyDescriptor) === -1) {\n\t\t\t\toptions.stack.push(keyDescriptor);\n\t\t\t\tvar name = keyDescriptor.substring(2,keyDescriptor.length - 2),\n\t\t\t\t\tlookupName = function(configName) {\n\t\t\t\t\t\tvar keyDescriptors = wiki.getTiddlerText(\"$:/config/\" + configName + \"/\" + name);\n\t\t\t\t\t\tif(keyDescriptors) {\n\t\t\t\t\t\t\tresult.push.apply(result,self.parseKeyDescriptors(keyDescriptors,options));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t$tw.utils.each(self.lookupNames,function(platformDescriptor) {\n\t\t\t\t\tlookupName(platformDescriptor);\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tresult.push(self.parseKeyDescriptor(keyDescriptor));\n\t\t}\n\t});\n\treturn result;\n};\n\nKeyboardManager.prototype.getPrintableShortcuts = function(keyInfoArray) {\n\tvar self = this,\n\t\tresult = [];\n\t$tw.utils.each(keyInfoArray,function(keyInfo) {\n\t\tif(keyInfo) {\n\t\t\tresult.push((keyInfo.ctrlKey ? \"ctrl-\" : \"\") + \n\t\t\t\t (keyInfo.shiftKey ? \"shift-\" : \"\") + \n\t\t\t\t (keyInfo.altKey ? \"alt-\" : \"\") + \n\t\t\t\t (keyInfo.metaKey ? self.metaKeyName : \"\") + \n\t\t\t\t (self.keyNames[keyInfo.keyCode]));\n\t\t}\n\t});\n\treturn result;\n}\n\nKeyboardManager.prototype.checkKeyDescriptor = function(event,keyInfo) {\n\treturn keyInfo &&\n\t\t\tevent.keyCode === keyInfo.keyCode && \n\t\t\tevent.shiftKey === keyInfo.shiftKey && \n\t\t\tevent.altKey === keyInfo.altKey && \n\t\t\tevent.ctrlKey === keyInfo.ctrlKey && \n\t\t\tevent.metaKey === keyInfo.metaKey;\n};\n\nKeyboardManager.prototype.checkKeyDescriptors = function(event,keyInfoArray) {\n\tfor(var t=0; t<keyInfoArray.length; t++) {\n\t\tif(this.checkKeyDescriptor(event,keyInfoArray[t])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\nKeyboardManager.prototype.getEventModifierKeyDescriptor = function(event) {\n\treturn event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey ? \"ctrl\" : \n\t\tevent.shiftKey && !event.ctrlKey && !event.altKey && !event.metaKey ? \"shift\" : \n\t\tevent.ctrlKey && event.shiftKey && !event.altKey && !event.metaKey ? \"ctrl-shift\" : \n\t\tevent.altKey && !event.shiftKey && !event.ctrlKey && !event.metaKey ? \"alt\" : \n\t\tevent.altKey && event.shiftKey && !event.ctrlKey && !event.metaKey ? \"alt-shift\" : \n\t\tevent.altKey && event.ctrlKey && !event.shiftKey && !event.metaKey ? \"ctrl-alt\" : \n\t\tevent.altKey && event.shiftKey && event.ctrlKey && !event.metaKey ? \"ctrl-alt-shift\" : \n\t\tevent.metaKey && !event.ctrlKey && !event.shiftKey && !event.altKey ? \"meta\" : \n\t\tevent.metaKey && event.ctrlKey && !event.shiftKey && !event.altKey ? \"meta-ctrl\" :\n\t\tevent.metaKey && event.ctrlKey && event.shiftKey && !event.altKey ? \"meta-ctrl-shift\" :\n\t\tevent.metaKey && event.ctrlKey & event.shiftKey && event.altKey ? \"meta-ctrl-alt-shift\" : \"normal\";\n};\n\nKeyboardManager.prototype.getShortcutTiddlerList = function() {\n\treturn $tw.wiki.getTiddlersWithTag(\"$:/tags/KeyboardShortcut\");\n};\n\nKeyboardManager.prototype.updateShortcutLists = function(tiddlerList) {\n\tthis.shortcutTiddlers = tiddlerList;\n\tfor(var i=0; i<tiddlerList.length; i++) {\n\t\tvar title = tiddlerList[i],\n\t\t\ttiddlerFields = $tw.wiki.getTiddler(title).fields;\n\t\tthis.shortcutKeysList[i] = tiddlerFields.key !== undefined ? tiddlerFields.key : undefined;\n\t\tthis.shortcutActionList[i] = tiddlerFields.text;\n\t\tthis.shortcutParsedList[i] = this.shortcutKeysList[i] !== undefined ? this.parseKeyDescriptors(this.shortcutKeysList[i]) : undefined;\n\t}\n};\n\nKeyboardManager.prototype.handleKeydownEvent = function(event) {\n\tvar key, action;\n\tfor(var i=0; i<this.shortcutTiddlers.length; i++) {\n\t\tif(this.shortcutParsedList[i] !== undefined && this.checkKeyDescriptors(event,this.shortcutParsedList[i])) {\n\t\t\tkey = this.shortcutParsedList[i];\n\t\t\taction = this.shortcutActionList[i];\n\t\t}\n\t}\n\tif(key !== undefined) {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\t$tw.rootWidget.invokeActionString(action,$tw.rootWidget);\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nKeyboardManager.prototype.detectNewShortcuts = function(changedTiddlers) {\n\tvar shortcutConfigTiddlers = [],\n\t\thandled = false;\n\t$tw.utils.each(this.lookupNames,function(platformDescriptor) {\n\t\tvar descriptorString = \"$:/config/\" + platformDescriptor + \"/\";\n\t\tObject.keys(changedTiddlers).forEach(function(configTiddler) {\n\t\t\tvar configString = configTiddler.substr(0, configTiddler.lastIndexOf(\"/\") + 1);\n\t\t\tif(configString === descriptorString) {\n\t\t\t\tshortcutConfigTiddlers.push(configTiddler);\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t});\n\t});\n\tif(handled) {\n\t\treturn $tw.utils.hopArray(changedTiddlers,shortcutConfigTiddlers);\n\t} else {\n\t\treturn false;\n\t}\n};\n\nKeyboardManager.prototype.handleShortcutChanges = function(changedTiddlers) {\n\tvar newList = this.getShortcutTiddlerList();\n\tvar hasChanged = $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers) ? true :\n\t\t($tw.utils.hopArray(changedTiddlers,newList) ? true :\n\t\t(this.detectNewShortcuts(changedTiddlers))\n\t);\n\t// Re-cache shortcuts if something changed\n\tif(hasChanged) {\n\t\tthis.updateShortcutLists(newList);\n\t}\n};\n\nexports.KeyboardManager = KeyboardManager;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/language.js": {
"title": "$:/core/modules/language.js",
"text": "/*\\\ntitle: $:/core/modules/language.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Language() manages translateable strings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate an instance of the language manager. Options include:\nwiki: wiki from which to retrieve translation tiddlers\n*/\nfunction Language(options) {\n\toptions = options || \"\";\n\tthis.wiki = options.wiki || $tw.wiki;\n}\n\n/*\nReturn a wikified translateable string. The title is automatically prefixed with \"$:/language/\"\nOptions include:\nvariables: optional hashmap of variables to supply to the language wikification\n*/\nLanguage.prototype.getString = function(title,options) {\n\toptions = options || {};\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.renderTiddler(\"text/plain\",title,{variables: options.variables});\n};\n\n/*\nReturn a raw, unwikified translateable string. The title is automatically prefixed with \"$:/language/\"\n*/\nLanguage.prototype.getRawString = function(title) {\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.getTiddlerText(title);\n};\n\nexports.Language = Language;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/macros/changecount.js": {
"title": "$:/core/modules/macros/changecount.js",
"text": "/*\\\ntitle: $:/core/modules/macros/changecount.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the changecount for the current tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"changecount\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn this.wiki.getChangeCount(this.getVariable(\"currentTiddler\")) + \"\";\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/contrastcolour.js": {
"title": "$:/core/modules/macros/contrastcolour.js",
"text": "/*\\\ntitle: $:/core/modules/macros/contrastcolour.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to choose which of two colours has the highest contrast with a base colour\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"contrastcolour\";\n\nexports.params = [\n\t{name: \"target\"},\n\t{name: \"fallbackTarget\"},\n\t{name: \"colourA\"},\n\t{name: \"colourB\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(target,fallbackTarget,colourA,colourB) {\n\tvar rgbTarget = $tw.utils.parseCSSColor(target) || $tw.utils.parseCSSColor(fallbackTarget);\n\tif(!rgbTarget) {\n\t\treturn colourA;\n\t}\n\tvar rgbColourA = $tw.utils.parseCSSColor(colourA),\n\t\trgbColourB = $tw.utils.parseCSSColor(colourB);\n\tif(rgbColourA && !rgbColourB) {\n\t\treturn rgbColourA;\n\t}\n\tif(rgbColourB && !rgbColourA) {\n\t\treturn rgbColourB;\n\t}\n\tif(!rgbColourA && !rgbColourB) {\n\t\t// If neither colour is readable, return a crude inverse of the target\n\t\treturn [255 - rgbTarget[0],255 - rgbTarget[1],255 - rgbTarget[2],rgbTarget[3]];\n\t}\n\t// Colour brightness formula derived from http://www.w3.org/WAI/ER/WD-AERT/#color-contrast\n\tvar brightnessTarget = rgbTarget[0] * 0.299 + rgbTarget[1] * 0.587 + rgbTarget[2] * 0.114,\n\t\tbrightnessA = rgbColourA[0] * 0.299 + rgbColourA[1] * 0.587 + rgbColourA[2] * 0.114,\n\t\tbrightnessB = rgbColourB[0] * 0.299 + rgbColourB[1] * 0.587 + rgbColourB[2] * 0.114;\n\treturn Math.abs(brightnessTarget - brightnessA) > Math.abs(brightnessTarget - brightnessB) ? colourA : colourB;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/csvtiddlers.js": {
"title": "$:/core/modules/macros/csvtiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/macros/csvtiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to CSV\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"csvtiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"format\"},\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,format) {\n\tvar self = this,\n\t\ttiddlers = this.wiki.filterTiddlers(filter),\n\t\ttiddler,\n\t\tfields = [],\n\t\tt,f;\n\t// Collect all the fields\n\tfor(t=0;t<tiddlers.length; t++) {\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\tfor(f in tiddler.fields) {\n\t\t\tif(fields.indexOf(f) === -1) {\n\t\t\t\tfields.push(f);\n\t\t\t}\n\t\t}\n\t}\n\t// Sort the fields and bring the standard ones to the front\n\tfields.sort();\n\t\"title text modified modifier created creator\".split(\" \").reverse().forEach(function(value,index) {\n\t\tvar p = fields.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tfields.splice(p,1);\n\t\t\tfields.unshift(value)\n\t\t}\n\t});\n\t// Output the column headings\n\tvar output = [], row = [];\n\tfields.forEach(function(value) {\n\t\trow.push(quoteAndEscape(value))\n\t});\n\toutput.push(row.join(\",\"));\n\t// Output each tiddler\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\trow = [];\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\t\tfor(f=0; f<fields.length; f++) {\n\t\t\t\trow.push(quoteAndEscape(tiddler ? tiddler.getFieldString(fields[f]) || \"\" : \"\"));\n\t\t\t}\n\t\toutput.push(row.join(\",\"));\n\t}\n\treturn output.join(\"\\n\");\n};\n\nfunction quoteAndEscape(value) {\n\treturn \"\\\"\" + value.replace(/\"/mg,\"\\\"\\\"\") + \"\\\"\";\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/displayshortcuts.js": {
"title": "$:/core/modules/macros/displayshortcuts.js",
"text": "/*\\\ntitle: $:/core/modules/macros/displayshortcuts.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to display a list of keyboard shortcuts in human readable form. Notably, it resolves named shortcuts like `((bold))` to the underlying keystrokes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"displayshortcuts\";\n\nexports.params = [\n\t{name: \"shortcuts\"},\n\t{name: \"prefix\"},\n\t{name: \"separator\"},\n\t{name: \"suffix\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(shortcuts,prefix,separator,suffix) {\n\tvar shortcutArray = $tw.keyboardManager.getPrintableShortcuts($tw.keyboardManager.parseKeyDescriptors(shortcuts,{\n\t\twiki: this.wiki\n\t}));\n\tif(shortcutArray.length > 0) {\n\t\tshortcutArray.sort(function(a,b) {\n\t\t return a.toLowerCase().localeCompare(b.toLowerCase());\n\t\t})\n\t\treturn prefix + shortcutArray.join(separator) + suffix;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/jsontiddler.js": {
"title": "$:/core/modules/macros/jsontiddler.js",
"text": "/*\\\ntitle: $:/core/modules/macros/jsontiddler.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output a single tiddler to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddler\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\ttitle = title || this.getVariable(\"currentTiddler\");\n\tvar tiddler = !!title && this.wiki.getTiddler(title),\n\t\tfields = new Object();\n\tif(tiddler) {\n\t\tfor(var field in tiddler.fields) {\n\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t}\n\t}\n\treturn JSON.stringify(fields,null,$tw.config.preferences.jsonSpaces);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/jsontiddlers.js": {
"title": "$:/core/modules/macros/jsontiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/macros/jsontiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"spaces\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,spaces) {\n\treturn this.wiki.getTiddlersAsJson(filter,$tw.utils.parseInt(spaces));\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/makedatauri.js": {
"title": "$:/core/modules/macros/makedatauri.js",
"text": "/*\\\ntitle: $:/core/modules/macros/makedatauri.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to convert a string of text to a data URI\n\n<<makedatauri text:\"Text to be converted\" type:\"text/vnd.tiddlywiki\">>\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"makedatauri\";\n\nexports.params = [\n\t{name: \"text\"},\n\t{name: \"type\"},\n\t{name: \"_canonical_uri\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(text,type,_canonical_uri) {\n\treturn $tw.utils.makeDataUri(text,type,_canonical_uri);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/now.js": {
"title": "$:/core/modules/macros/now.js",
"text": "/*\\\ntitle: $:/core/modules/macros/now.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return a formatted version of the current time\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"now\";\n\nexports.params = [\n\t{name: \"format\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(format) {\n\treturn $tw.utils.formatDateString(new Date(),format || \"0hh:0mm, DDth MMM YYYY\");\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/qualify.js": {
"title": "$:/core/modules/macros/qualify.js",
"text": "/*\\\ntitle: $:/core/modules/macros/qualify.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to qualify a state tiddler title according\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"qualify\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\treturn title + \"-\" + this.getStateQualifier();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/resolvepath.js": {
"title": "$:/core/modules/macros/resolvepath.js",
"text": "/*\\\ntitle: $:/core/modules/macros/resolvepath.js\ntype: application/javascript\nmodule-type: macro\n\nResolves a relative path for an absolute rootpath.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"resolvepath\";\n\nexports.params = [\n\t{name: \"source\"},\n\t{name: \"root\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(source, root) {\n\treturn $tw.utils.resolvePath(source, root);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/unusedtitle.js": {
"title": "$:/core/modules/macros/unusedtitle.js",
"text": "/*\\\ntitle: $:/core/modules/macros/unusedtitle.js\ntype: application/javascript\nmodule-type: macro\nMacro to return a new title that is unused in the wiki. It can be given a name as a base.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"unusedtitle\";\n\nexports.params = [\n\t{name: \"baseName\"},\n\t{name: \"options\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(baseName, options) {\n\tif(!baseName) {\n\t\tbaseName = $tw.language.getString(\"DefaultNewTiddlerTitle\");\n\t}\n\treturn this.wiki.generateNewTitle(baseName, options);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/version.js": {
"title": "$:/core/modules/macros/version.js",
"text": "/*\\\ntitle: $:/core/modules/macros/version.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the TiddlyWiki core version number\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"version\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn $tw.version;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/parsers/audioparser.js": {
"title": "$:/core/modules/parsers/audioparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/audioparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe audio parser parses an audio tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar AudioParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"audio\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"},\n\t\t\t\tstyle: {type: \"string\", value: \"width: 100%; object-fit: contain\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"audio/ogg\"] = AudioParser;\nexports[\"audio/mpeg\"] = AudioParser;\nexports[\"audio/mp3\"] = AudioParser;\nexports[\"audio/mp4\"] = AudioParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/binaryparser.js": {
"title": "$:/core/modules/parsers/binaryparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/binaryparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe binary parser parses a binary tiddler into a warning message and download link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\nvar EXPORT_BUTTON_IMAGE = \"$:/core/images/export-button\";\n\nvar BinaryParser = function(type,text,options) {\n\t// Transclude the binary data tiddler warning message\n\tvar warn = {\n\t\ttype: \"element\",\n\t\ttag: \"p\",\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Create download link based on binary tiddler title\n\tvar link = {\n\t\ttype: \"element\",\n\t\ttag: \"a\",\n\t\tattributes: {\n\t\t\ttitle: {type: \"indirect\", textReference: \"!!title\"},\n\t\t\tdownload: {type: \"indirect\", textReference: \"!!title\"}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: EXPORT_BUTTON_IMAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Set the link href to external or internal data URI\n\tif(options._canonical_uri) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: options._canonical_uri\n\t\t};\n\t} else if(text) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: \"data:\" + type + \";base64,\" + text\n\t\t};\n\t}\n\t// Combine warning message and download link in a div\n\tvar element = {\n\t\ttype: \"element\",\n\t\ttag: \"div\",\n\t\tattributes: {\n\t\t\tclass: {type: \"string\", value: \"tc-binary-warning\"}\n\t\t},\n\t\tchildren: [warn, link]\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/octet-stream\"] = BinaryParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/csvparser.js": {
"title": "$:/core/modules/parsers/csvparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/csvparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe CSV text parser processes CSV files into a table wrapped in a scrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar CsvParser = function(type,text,options) {\n\t// Table framework\n\tthis.tree = [{\n\t\t\"type\": \"scrollable\", \"children\": [{\n\t\t\t\"type\": \"element\", \"tag\": \"table\", \"children\": [{\n\t\t\t\t\"type\": \"element\", \"tag\": \"tbody\", \"children\": []\n\t\t\t}], \"attributes\": {\n\t\t\t\t\"class\": {\"type\": \"string\", \"value\": \"tc-csv-table\"}\n\t\t\t}\n\t\t}]\n\t}];\n\t// Split the text into lines\n\tvar lines = text.split(/\\r?\\n/mg),\n\t\ttag = \"th\";\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar lineText = lines[line];\n\t\tif(lineText) {\n\t\t\tvar row = {\n\t\t\t\t\t\"type\": \"element\", \"tag\": \"tr\", \"children\": []\n\t\t\t\t};\n\t\t\tvar columns = lineText.split(\",\");\n\t\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\t\trow.children.push({\n\t\t\t\t\t\t\"type\": \"element\", \"tag\": tag, \"children\": [{\n\t\t\t\t\t\t\t\"type\": \"text\",\n\t\t\t\t\t\t\t\"text\": columns[column]\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t}\n\t\t\ttag = \"td\";\n\t\t\tthis.tree[0].children[0].children[0].children.push(row);\n\t\t}\n\t}\n};\n\nexports[\"text/csv\"] = CsvParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/htmlparser.js": {
"title": "$:/core/modules/parsers/htmlparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/htmlparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe HTML parser displays text as raw HTML\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HtmlParser = function(type,text,options) {\n\tvar src;\n\tif(options._canonical_uri) {\n\t\tsrc = options._canonical_uri;\n\t} else if(text) {\n\t\tsrc = \"data:text/html;charset=utf-8,\" + encodeURIComponent(text);\n\t}\n\tthis.tree = [{\n\t\ttype: \"element\",\n\t\ttag: \"iframe\",\n\t\tattributes: {\n\t\t\tsrc: {type: \"string\", value: src},\n\t\t\tsandbox: {type: \"string\", value: \"\"}\n\t\t}\n\t}];\n};\n\nexports[\"text/html\"] = HtmlParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/imageparser.js": {
"title": "$:/core/modules/parsers/imageparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/imageparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe image parser parses an image into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"img\",\n\t\t\tattributes: {}\n\t\t};\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\tif(type === \"image/svg+xml\" || type === \".svg\") {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:image/svg+xml,\" + encodeURIComponent(text)};\n\t\t} else {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t\t}\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"image/svg+xml\"] = ImageParser;\nexports[\"image/jpg\"] = ImageParser;\nexports[\"image/jpeg\"] = ImageParser;\nexports[\"image/png\"] = ImageParser;\nexports[\"image/gif\"] = ImageParser;\nexports[\"image/webp\"] = ImageParser;\nexports[\"image/heic\"] = ImageParser;\nexports[\"image/heif\"] = ImageParser;\nexports[\"image/x-icon\"] = ImageParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/utils/parseutils.js": {
"title": "$:/core/modules/utils/parseutils.js",
"text": "/*\\\ntitle: $:/core/modules/utils/parseutils.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions concerned with parsing text into tokens.\n\nMost functions have the following pattern:\n\n* The parameters are:\n** `source`: the source string being parsed\n** `pos`: the current parse position within the string\n** Any further parameters are used to identify the token that is being parsed\n* The return value is:\n** null if the token was not found at the specified position\n** an object representing the token with the following standard fields:\n*** `type`: string indicating the type of the token\n*** `start`: start position of the token in the source string\n*** `end`: end position of the token in the source string\n*** Any further fields required to describe the token\n\nThe exception is `skipWhiteSpace`, which just returns the position after the whitespace.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for a whitespace token. Returns null if not found, otherwise returns {type: \"whitespace\", start:, end:,}\n*/\nexports.parseWhiteSpace = function(source,pos) {\n\tvar p = pos,c;\n\twhile(true) {\n\t\tc = source.charAt(p);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tp++;\n\t\t} else {\n\t\t\tbreak;\n\t\t}\n\t}\n\tif(p === pos) {\n\t\treturn null;\n\t} else {\n\t\treturn {\n\t\t\ttype: \"whitespace\",\n\t\t\tstart: pos,\n\t\t\tend: p\n\t\t}\n\t}\n};\n\n/*\nConvenience wrapper for parseWhiteSpace. Returns the position after the whitespace\n*/\nexports.skipWhiteSpace = function(source,pos) {\n\tvar c;\n\twhile(true) {\n\t\tc = source.charAt(pos);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tpos++;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n};\n\n/*\nLook for a given string token. Returns null if not found, otherwise returns {type: \"token\", value:, start:, end:,}\n*/\nexports.parseTokenString = function(source,pos,token) {\n\tvar match = source.indexOf(token,pos) === pos;\n\tif(match) {\n\t\treturn {\n\t\t\ttype: \"token\",\n\t\t\tvalue: token,\n\t\t\tstart: pos,\n\t\t\tend: pos + token.length\n\t\t};\n\t}\n\treturn null;\n};\n\n/*\nLook for a token matching a regex. Returns null if not found, otherwise returns {type: \"regexp\", match:, start:, end:,}\n*/\nexports.parseTokenRegExp = function(source,pos,reToken) {\n\tvar node = {\n\t\ttype: \"regexp\",\n\t\tstart: pos\n\t};\n\treToken.lastIndex = pos;\n\tnode.match = reToken.exec(source);\n\tif(node.match && node.match.index === pos) {\n\t\tnode.end = pos + node.match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a string literal. Returns null if not found, otherwise returns {type: \"string\", value:, start:, end:,}\n*/\nexports.parseStringLiteral = function(source,pos) {\n\tvar node = {\n\t\ttype: \"string\",\n\t\tstart: pos\n\t};\n\tvar reString = /(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\")|(?:'([^']*)')/g;\n\treString.lastIndex = pos;\n\tvar match = reString.exec(source);\n\tif(match && match.index === pos) {\n\t\tnode.value = match[1] !== undefined ? match[1] :(\n\t\t\tmatch[2] !== undefined ? match[2] : match[3] \n\t\t\t\t\t);\n\t\tnode.end = pos + match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a macro invocation parameter. Returns null if not found, or {type: \"macro-parameter\", name:, value:, start:, end:}\n*/\nexports.parseMacroParameter = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macro-parameter\",\n\t\tstart: pos\n\t};\n\t// Define our regexp\n\tvar reMacroParameter = /(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\\s>\"'=]+)))/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the parameter\n\tvar token = $tw.utils.parseTokenRegExp(source,pos,reMacroParameter);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the parameter details\n\tnode.value = token.match[2] !== undefined ? token.match[2] : (\n\t\t\t\t\ttoken.match[3] !== undefined ? token.match[3] : (\n\t\t\t\t\t\ttoken.match[4] !== undefined ? token.match[4] : (\n\t\t\t\t\t\t\ttoken.match[5] !== undefined ? token.match[5] : (\n\t\t\t\t\t\t\t\ttoken.match[6] !== undefined ? token.match[6] : (\n\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\tif(token.match[1]) {\n\t\tnode.name = token.match[1];\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for a macro invocation. Returns null if not found, or {type: \"macrocall\", name:, parameters:, start:, end:}\n*/\nexports.parseMacroInvocation = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macrocall\",\n\t\tstart: pos,\n\t\tparams: []\n\t};\n\t// Define our regexps\n\tvar reMacroName = /([^\\s>\"'=]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double less than sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"<<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the macro name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reMacroName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Process parameters\n\tvar parameter = $tw.utils.parseMacroParameter(source,pos);\n\twhile(parameter) {\n\t\tnode.params.push(parameter);\n\t\tpos = parameter.end;\n\t\t// Get the next parameter\n\t\tparameter = $tw.utils.parseMacroParameter(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">>\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for an HTML attribute definition. Returns null if not found, otherwise returns {type: \"attribute\", name:, valueType: \"string|indirect|macro\", value:, start:, end:,}\n*/\nexports.parseAttribute = function(source,pos) {\n\tvar node = {\n\t\tstart: pos\n\t};\n\t// Define our regexps\n\tvar reAttributeName = /([^\\/\\s>\"'=]+)/g,\n\t\treUnquotedAttribute = /([^\\/\\s<>\"'=]+)/g,\n\t\treFilteredValue = /\\{\\{\\{(.+?)\\}\\}\\}/g,\n\t\treIndirectValue = /\\{\\{([^\\}]+)\\}\\}/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the attribute name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reAttributeName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for an equals sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"=\");\n\tif(token) {\n\t\tpos = token.end;\n\t\t// Skip whitespace\n\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t// Look for a string literal\n\t\tvar stringLiteral = $tw.utils.parseStringLiteral(source,pos);\n\t\tif(stringLiteral) {\n\t\t\tpos = stringLiteral.end;\n\t\t\tnode.type = \"string\";\n\t\t\tnode.value = stringLiteral.value;\n\t\t} else {\n\t\t\t// Look for a filtered value\n\t\t\tvar filteredValue = $tw.utils.parseTokenRegExp(source,pos,reFilteredValue);\n\t\t\tif(filteredValue) {\n\t\t\t\tpos = filteredValue.end;\n\t\t\t\tnode.type = \"filtered\";\n\t\t\t\tnode.filter = filteredValue.match[1];\n\t\t\t} else {\n\t\t\t\t// Look for an indirect value\n\t\t\t\tvar indirectValue = $tw.utils.parseTokenRegExp(source,pos,reIndirectValue);\n\t\t\t\tif(indirectValue) {\n\t\t\t\t\tpos = indirectValue.end;\n\t\t\t\t\tnode.type = \"indirect\";\n\t\t\t\t\tnode.textReference = indirectValue.match[1];\n\t\t\t\t} else {\n\t\t\t\t\t// Look for a unquoted value\n\t\t\t\t\tvar unquotedValue = $tw.utils.parseTokenRegExp(source,pos,reUnquotedAttribute);\n\t\t\t\t\tif(unquotedValue) {\n\t\t\t\t\t\tpos = unquotedValue.end;\n\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\tnode.value = unquotedValue.match[1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Look for a macro invocation value\n\t\t\t\t\t\tvar macroInvocation = $tw.utils.parseMacroInvocation(source,pos);\n\t\t\t\t\t\tif(macroInvocation) {\n\t\t\t\t\t\t\tpos = macroInvocation.end;\n\t\t\t\t\t\t\tnode.type = \"macro\";\n\t\t\t\t\t\t\tnode.value = macroInvocation;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\t\tnode.value = \"true\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tnode.type = \"string\";\n\t\tnode.value = \"true\";\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/parsers/pdfparser.js": {
"title": "$:/core/modules/parsers/pdfparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/pdfparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe PDF parser embeds a PDF viewer\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"embed\",\n\t\t\tattributes: {}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:application/pdf;base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/pdf\"] = ImageParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/textparser.js": {
"title": "$:/core/modules/parsers/textparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/textparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe plain text parser processes blocks of source text into a degenerate parse tree consisting of a single text node\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TextParser = function(type,text,options) {\n\tthis.tree = [{\n\t\ttype: \"codeblock\",\n\t\tattributes: {\n\t\t\tcode: {type: \"string\", value: text},\n\t\t\tlanguage: {type: \"string\", value: type}\n\t\t}\n\t}];\n};\n\nexports[\"text/plain\"] = TextParser;\nexports[\"text/x-tiddlywiki\"] = TextParser;\nexports[\"application/javascript\"] = TextParser;\nexports[\"application/json\"] = TextParser;\nexports[\"text/css\"] = TextParser;\nexports[\"application/x-tiddler-dictionary\"] = TextParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/videoparser.js": {
"title": "$:/core/modules/parsers/videoparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/videoparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe video parser parses a video tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar VideoParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"video\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"},\n\t\t\t\tstyle: {type: \"string\", value: \"width: 100%; object-fit: contain\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"video/ogg\"] = VideoParser;\nexports[\"video/webm\"] = VideoParser;\nexports[\"video/mp4\"] = VideoParser;\nexports[\"video/quicktime\"] = VideoParser;\n\n})();\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/wikiparser/rules/codeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/codeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for code blocks. For example:\n\n```\n\t```\n\tThis text will not be //wikified//\n\t```\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match and get language if defined\n\tthis.matchRegExp = /```([\\w-]*)\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\\r?\\n```$)/mg;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Return the $codeblock widget\n\treturn [{\n\t\t\ttype: \"codeblock\",\n\t\t\tattributes: {\n\t\t\t\t\tcode: {type: \"string\", value: text},\n\t\t\t\t\tlanguage: {type: \"string\", value: this.match[1]}\n\t\t\t}\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/codeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/codeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for code runs. For example:\n\n```\n\tThis is a `code run`.\n\tThis is another ``code run``\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(``?)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar reEnd = new RegExp(this.match[1], \"mg\");\n\t// Look for the end marker\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the text\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"code\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: text\n\t\t}]\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/commentblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/commentblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/commentinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/commentinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/dash.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/dash.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/dash.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for dashes. For example:\n\n```\nThis is an en-dash: --\n\nThis is an em-dash: ---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"dash\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{2,3}(?!-)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar dash = this.match[0].length === 2 ? \"–\" : \"—\";\n\treturn [{\n\t\ttype: \"entity\",\n\t\tentity: dash\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/bold.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - bold. For example:\n\n```\n\tThis is ''bold'' text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except bold \n\\rules only bold \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"bold\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /''/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/''/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strong\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/italic.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - italic. For example:\n\n```\n\tThis is //italic// text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except italic\n\\rules only italic\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"italic\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\/\\//mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\/\\//mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"em\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - strikethrough. For example:\n\n```\n\tThis is ~~strikethrough~~ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except strikethrough \n\\rules only strikethrough \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"strikethrough\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~~/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/~~/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strike\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - subscript. For example:\n\n```\n\tThis is ,,subscript,, text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except subscript \n\\rules only subscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"subscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /,,/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/,,/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sub\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - superscript. For example:\n\n```\n\tThis is ^^superscript^^ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except superscript \n\\rules only superscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"superscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\^\\^/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\^\\^/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sup\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - underscore. For example:\n\n```\n\tThis is __underscore__ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except underscore \n\\rules only underscore\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"underscore\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /__/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/__/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"u\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/entity.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/entity.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/entity.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML entities. For example:\n\n```\n\tThis is a copyright symbol: ©\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"entity\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(&#?[a-zA-Z0-9]{2,8};)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar entityString = this.match[1];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Return the entity\n\treturn [{type: \"entity\", entity: this.match[0]}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/extlink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/extlink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/extlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\nAn external link: https://www.tiddlywiki.com/\n\nA suppressed external link: ~http://www.tiddlyspace.com/\n```\n\nExternal links can be suppressed by preceding them with `~`.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"extlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~?(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(this.match[0].substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: this.match[0].substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: this.match[0]},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: this.match[0]\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t},\n\t\tisBlock: true\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t}\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for marking areas with hard line breaks. For example:\n\n```\n\"\"\"\nThis is some text\nThat is set like\nIt is a Poem\nWhen it is\nClearly\nNot\n\"\"\"\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"hardlinebreaks\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\"\"\"(?:\\r?\\n)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\"\"\")|(\\r?\\n)/mg,\n\t\ttree = [],\n\t\tmatch;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tdo {\n\t\t// Parse the run up to the terminator\n\t\ttree.push.apply(tree,this.parser.parseInlineRun(reEnd,{eatTerminator: false}));\n\t\t// Redo the terminator match\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tmatch = reEnd.exec(this.parser.source);\n\t\tif(match) {\n\t\t\tthis.parser.pos = reEnd.lastIndex;\n\t\t\t// Add a line break if the terminator was a line break\n\t\t\tif(match[2]) {\n\t\t\t\ttree.push({type: \"element\", tag: \"br\"});\n\t\t\t}\n\t\t}\n\t} while(match && !match[1]);\n\t// Return the nodes\n\treturn tree;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/heading.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/heading.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/heading.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for headings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"heading\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(!{1,6})/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar headingLevel = this.match[1].length;\n\t// Move past the !s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse any classes, whitespace and then the heading itself\n\tvar classes = this.parser.parseClasses();\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// Return the heading\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"h\" + headingLevel, \n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: classes.join(\" \")}\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/horizrule.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/horizrule.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/horizrule.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for rules. For example:\n\n```\n---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"horizrule\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{3,}\\r?(?:\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\treturn [{type: \"element\", tag: \"hr\"}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/html.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/html.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/html.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for HTML elements and widgets. For example:\n\n{{{\n<aside>\nThis is an HTML5 aside element\n</aside>\n\n<$slider target=\"MyTiddler\">\nThis is a widget invocation\n</$slider>\n\n}}}\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"html\";\nexports.types = {inline: true, block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextTag = this.findNextTag(this.parser.source,startPos,{\n\t\trequireLineBreak: this.is.block\n\t});\n\treturn this.nextTag ? this.nextTag.start : undefined;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Retrieve the most recent match so that recursive calls don't overwrite it\n\tvar tag = this.nextTag;\n\tthis.nextTag = null;\n\t// Advance the parser position to past the tag\n\tthis.parser.pos = tag.end;\n\t// Check for an immediately following double linebreak\n\tvar hasLineBreak = !tag.isSelfClosing && !!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t// Set whether we're in block mode\n\ttag.isBlock = this.is.block || hasLineBreak;\n\t// Parse the body if we need to\n\tif(!tag.isSelfClosing && $tw.config.htmlVoidElements.indexOf(tag.tag) === -1) {\n\t\t\tvar reEndString = \"</\" + $tw.utils.escapeRegExp(tag.tag) + \">\",\n\t\t\t\treEnd = new RegExp(\"(\" + reEndString + \")\",\"mg\");\n\t\tif(hasLineBreak) {\n\t\t\ttag.children = this.parser.parseBlocks(reEndString);\n\t\t} else {\n\t\t\ttag.children = this.parser.parseInlineRun(reEnd);\n\t\t}\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tvar endMatch = reEnd.exec(this.parser.source);\n\t\tif(endMatch && endMatch.index === this.parser.pos) {\n\t\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t\t}\n\t}\n\t// Return the tag\n\treturn [tag];\n};\n\n/*\nLook for an HTML tag. Returns null if not found, otherwise returns {type: \"element\", name:, attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseTag = function(source,pos,options) {\n\toptions = options || {};\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Define our regexps\n\tvar reTagName = /([a-zA-Z0-9\\-\\$]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a less than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\"<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the tag name\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,reTagName);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tnode.tag = token.match[1];\n\tif(node.tag.slice(1).indexOf(\"$\") !== -1) {\n\t\treturn null;\n\t}\n\tif(node.tag.charAt(0) === \"$\") {\n\t\tnode.type = node.tag.substr(1);\n\t}\n\tpos = token.end;\n\t// Check that the tag is terminated by a space, / or >\n\tif(!$tw.utils.parseWhiteSpace(source,pos) && !(source.charAt(pos) === \"/\") && !(source.charAt(pos) === \">\") ) {\n\t\treturn null;\n\t}\n\t// Process attributes\n\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\twhile(attribute) {\n\t\tnode.attributes[attribute.name] = attribute;\n\t\tpos = attribute.end;\n\t\t// Get the next attribute\n\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a closing slash\n\ttoken = $tw.utils.parseTokenString(source,pos,\"/\");\n\tif(token) {\n\t\tpos = token.end;\n\t\tnode.isSelfClosing = true;\n\t}\n\t// Look for a greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Check for a required line break\n\tif(options.requireLineBreak) {\n\t\ttoken = $tw.utils.parseTokenRegExp(source,pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t\tif(!token) {\n\t\t\treturn null;\n\t\t}\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\nexports.findNextTag = function(source,pos,options) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /<([a-zA-Z\\-\\$]+)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseTag(source,match.index,options);\n\t\t// Return success\n\t\tif(tag && this.isLegalTag(tag)) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\nexports.isLegalTag = function(tag) {\n\t// Widgets are always OK\n\tif(tag.type !== \"element\") {\n\t\treturn true;\n\t// If it's an HTML tag that starts with a dash then it's not legal\n\t} else if(tag.tag.charAt(0) === \"-\") {\n\t\treturn false;\n\t} else {\n\t\t// Otherwise it's OK\n\t\treturn true;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/image.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/image.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/image.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for embedding images. For example:\n\n```\n[img[https://tiddlywiki.com/fractalveg.jpg]]\n[img width=23 height=24 [https://tiddlywiki.com/fractalveg.jpg]]\n[img width={{!!width}} height={{!!height}} [https://tiddlywiki.com/fractalveg.jpg]]\n[img[Description of image|https://tiddlywiki.com/fractalveg.jpg]]\n[img[TiddlerTitle]]\n[img[Description of image|TiddlerTitle]]\n```\n\nGenerates the `<$image>` widget.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"image\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextImage = this.findNextImage(this.parser.source,startPos);\n\treturn this.nextImage ? this.nextImage.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextImage.end;\n\tvar node = {\n\t\ttype: \"image\",\n\t\tattributes: this.nextImage.attributes\n\t};\n\treturn [node];\n};\n\n/*\nFind the next image from the current position\n*/\nexports.findNextImage = function(source,pos) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /(\\[img)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseImage(source,match.index);\n\t\t// Return success\n\t\tif(tag) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an image at the specified position. Returns null if not found, otherwise returns {type: \"image\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseImage = function(source,pos) {\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"image\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[img`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[img\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Process attributes\n\tif(source.charAt(pos) !== \"[\") {\n\t\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\t\twhile(attribute) {\n\t\t\tnode.attributes[attribute.name] = attribute;\n\t\t\tpos = attribute.end;\n\t\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t\tif(source.charAt(pos) !== \"[\") {\n\t\t\t\t// Get the next attribute\n\t\t\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t\t\t} else {\n\t\t\t\tattribute = null;\n\t\t\t}\n\t\t}\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[` after the attributes\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the source up to the terminating `]]`\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,/(?:([^|\\]]*?)\\|)?([^\\]]+?)\\]\\]/g);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\tif(token.match[1]) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: token.match[1].trim()};\n\t}\n\tnode.attributes.source = {type: \"string\", value: (token.match[2] || \"\").trim()};\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/import.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/import.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/import.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for importing variable definitions\n\n```\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"import\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\import[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar self = this;\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the filter terminated by a line break\n\tvar reMatch = /(.*)(\\r?\\n)|$/mg;\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\tthis.parser.pos = reMatch.lastIndex;\n\t// Parse tree nodes to return\n\treturn [{\n\t\ttype: \"importvariables\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: match[1]}\n\t\t},\n\t\tchildren: []\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/list.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/list.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/list.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for lists. For example:\n\n```\n* This is an unordered list\n* It has two items\n\n# This is a numbered list\n## With a subitem\n# And a third item\n\n; This is a term that is being defined\n: This is the definition of that term\n```\n\nNote that lists can be nested arbitrarily:\n\n```\n#** One\n#* Two\n#** Three\n#**** Four\n#**# Five\n#**## Six\n## Seven\n### Eight\n## Nine\n```\n\nA CSS class can be applied to a list item as follows:\n\n```\n* List item one\n*.active List item two has the class `active`\n* List item three\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"list\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /([\\*#;:>]+)/mg;\n};\n\nvar listTypes = {\n\t\"*\": {listTag: \"ul\", itemTag: \"li\"},\n\t\"#\": {listTag: \"ol\", itemTag: \"li\"},\n\t\";\": {listTag: \"dl\", itemTag: \"dt\"},\n\t\":\": {listTag: \"dl\", itemTag: \"dd\"},\n\t\">\": {listTag: \"blockquote\", itemTag: \"div\"}\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Array of parse tree nodes for the previous row of the list\n\tvar listStack = [];\n\t// Cycle through the items in the list\n\twhile(true) {\n\t\t// Match the list marker\n\t\tvar reMatch = /([\\*#;:>]+)/mg;\n\t\treMatch.lastIndex = this.parser.pos;\n\t\tvar match = reMatch.exec(this.parser.source);\n\t\tif(!match || match.index !== this.parser.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check whether the list type of the top level matches\n\t\tvar listInfo = listTypes[match[0].charAt(0)];\n\t\tif(listStack.length > 0 && listStack[0].tag !== listInfo.listTag) {\n\t\t\tbreak;\n\t\t}\n\t\t// Move past the list marker\n\t\tthis.parser.pos = match.index + match[0].length;\n\t\t// Walk through the list markers for the current row\n\t\tfor(var t=0; t<match[0].length; t++) {\n\t\t\tlistInfo = listTypes[match[0].charAt(t)];\n\t\t\t// Remove any stacked up element if we can't re-use it because the list type doesn't match\n\t\t\tif(listStack.length > t && listStack[t].tag !== listInfo.listTag) {\n\t\t\t\tlistStack.splice(t,listStack.length - t);\n\t\t\t}\n\t\t\t// Construct the list element or reuse the previous one at this level\n\t\t\tif(listStack.length <= t) {\n\t\t\t\tvar listElement = {type: \"element\", tag: listInfo.listTag, children: [\n\t\t\t\t\t{type: \"element\", tag: listInfo.itemTag, children: []}\n\t\t\t\t]};\n\t\t\t\t// Link this list element into the last child item of the parent list item\n\t\t\t\tif(t) {\n\t\t\t\t\tvar prevListItem = listStack[t-1].children[listStack[t-1].children.length-1];\n\t\t\t\t\tprevListItem.children.push(listElement);\n\t\t\t\t}\n\t\t\t\t// Save this element in the stack\n\t\t\t\tlistStack[t] = listElement;\n\t\t\t} else if(t === (match[0].length - 1)) {\n\t\t\t\tlistStack[t].children.push({type: \"element\", tag: listInfo.itemTag, children: []});\n\t\t\t}\n\t\t}\n\t\tif(listStack.length > match[0].length) {\n\t\t\tlistStack.splice(match[0].length,listStack.length - match[0].length);\n\t\t}\n\t\t// Process the body of the list item into the last list item\n\t\tvar lastListChildren = listStack[listStack.length-1].children,\n\t\t\tlastListItem = lastListChildren[lastListChildren.length-1],\n\t\t\tclasses = this.parser.parseClasses();\n\t\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\t\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t\tlastListItem.children.push.apply(lastListItem.children,tree);\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(lastListItem,classes.join(\" \"));\n\t\t}\n\t\t// Consume any whitespace following the list item\n\t\tthis.parser.skipWhitespace();\n\t}\n\t// Return the root element of the list\n\treturn [listStack[0]];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrocallblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for block macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^>\\s]+)(?:\\s*)((?:[^>]|(?:>(?!>)))*?)>>(?:\\r?\\n|$)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params,\n\t\tisBlock: true\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrocallinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^\\s>]+)\\s*([\\s\\S]*?)>>/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5]|| paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrodef.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrodef.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrodef.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for macro definitions\n\n```\n\\define name(param:defaultvalue,param2:defaultvalue)\ndefinition text, including $param$ markers\n\\end\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrodef\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\define\\s+([^(\\s]+)\\(\\s*([^)]*)\\)(\\s*\\r?\\n)?/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the macro name and parameters\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the parameters\n\tvar paramString = this.match[2],\n\t\tparams = [];\n\tif(paramString !== \"\") {\n\t\tvar reParam = /\\s*([A-Za-z0-9\\-_]+)(?:\\s*:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))?/mg,\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\twhile(paramMatch) {\n\t\t\t// Save the parameter details\n\t\t\tvar paramInfo = {name: paramMatch[1]},\n\t\t\t\tdefaultValue = paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6];\n\t\t\tif(defaultValue) {\n\t\t\t\tparamInfo[\"default\"] = defaultValue;\n\t\t\t}\n\t\t\tparams.push(paramInfo);\n\t\t\t// Look for the next parameter\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\t}\n\t}\n\t// Is this a multiline definition?\n\tvar reEnd;\n\tif(this.match[3]) {\n\t\t// If so, the end of the body is marked with \\end\n\t\treEnd = /(\\r?\\n\\\\end[^\\S\\n\\r]*(?:$|\\r?\\n))/mg;\n\t} else {\n\t\t// Otherwise, the end of the definition is marked by the end of the line\n\t\treEnd = /($|\\r?\\n)/mg;\n\t\t// Move past any whitespace\n\t\tthis.parser.pos = $tw.utils.skipWhiteSpace(this.parser.source,this.parser.pos);\n\t}\n\t// Find the end of the definition\n\treEnd.lastIndex = this.parser.pos;\n\tvar text,\n\t\tendMatch = reEnd.exec(this.parser.source);\n\tif(endMatch) {\n\t\ttext = this.parser.source.substring(this.parser.pos,endMatch.index);\n\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t} else {\n\t\t// We didn't find the end of the definition, so we'll make it blank\n\t\ttext = \"\";\n\t}\n\t// Save the macro definition\n\treturn [{\n\t\ttype: \"set\",\n\t\tattributes: {\n\t\t\tname: {type: \"string\", value: this.match[1]},\n\t\t\tvalue: {type: \"string\", value: text}\n\t\t},\n\t\tchildren: [],\n\t\tparams: params,\n\t\tisMacroDefinition: true\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/prettyextlink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettyextlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\n[ext[https://tiddlywiki.com/fractalveg.jpg]]\n[ext[Tooltip|https://tiddlywiki.com/fractalveg.jpg]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettyextlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextLink = this.findNextLink(this.parser.source,startPos);\n\treturn this.nextLink ? this.nextLink.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextLink.end;\n\treturn [this.nextLink];\n};\n\n/*\nFind the next link from the current position\n*/\nexports.findNextLink = function(source,pos) {\n\t// A regexp for finding candidate links\n\tvar reLookahead = /(\\[ext\\[)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a link\n\t\tvar link = this.parseLink(source,match.index);\n\t\t// Return success\n\t\tif(link) {\n\t\t\treturn link;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an link at the specified position. Returns null if not found, otherwise returns {type: \"element\", tag: \"a\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseLink = function(source,pos) {\n\tvar token,\n\t\ttextNode = {\n\t\t\ttype: \"text\"\n\t\t},\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tstart: pos,\n\t\t\tattributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t},\n\t\t\tchildren: [textNode]\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[ext[`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[ext[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Look ahead for the terminating `]]`\n\tvar closePos = source.indexOf(\"]]\",pos);\n\tif(closePos === -1) {\n\t\treturn null;\n\t}\n\t// Look for a `|` separating the tooltip\n\tvar splitPos = source.indexOf(\"|\",pos);\n\tif(splitPos === -1 || splitPos > closePos) {\n\t\tsplitPos = null;\n\t}\n\t// Pull out the tooltip and URL\n\tvar tooltip, URL;\n\tif(splitPos) {\n\t\tURL = source.substring(splitPos + 1,closePos).trim();\n\t\ttextNode.text = source.substring(pos,splitPos).trim();\n\t} else {\n\t\tURL = source.substring(pos,closePos).trim();\n\t\ttextNode.text = URL;\n\t}\n\tnode.attributes.href = {type: \"string\", value: URL};\n\tnode.attributes.target = {type: \"string\", value: \"_blank\"};\n\tnode.attributes.rel = {type: \"string\", value: \"noopener noreferrer\"};\n\t// Update the end position\n\tnode.end = closePos + 2;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/prettylink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/prettylink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettylink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for pretty links. For example:\n\n```\n[[Introduction]]\n\n[[Link description|TiddlerTitle]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettylink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\[\\[(.*?)(?:\\|(.*?))?\\]\\]/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Process the link\n\tvar text = this.match[1],\n\t\tlink = this.match[2] || text;\n\tif($tw.utils.isLinkExternal(link)) {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: link},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: link}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/quoteblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/quoteblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/quoteblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for quote blocks. For example:\n\n```\n\t<<<.optionalClass(es) optional cited from\n\ta quote\n\t<<<\n\t\n\t<<<.optionalClass(es)\n\ta quote\n\t<<< optional cited from\n```\n\nQuotes can be quoted by putting more <s\n\n```\n\t<<<\n\tQuote Level 1\n\t\n\t<<<<\n\tQuoteLevel 2\n\t<<<<\n\t\n\t<<<\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"quoteblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(<<<+)/mg;\n};\n\nexports.parse = function() {\n\tvar classes = [\"tc-quote\"];\n\t// Get all the details of the match\n\tvar reEndString = \"^\" + this.match[1] + \"(?!<)\";\n\t// Move past the <s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\n\t// Parse any classes, whitespace and then the optional cite itself\n\tclasses.push.apply(classes, this.parser.parseClasses());\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar cite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// before handling the cite, parse the body of the quote\n\tvar tree= this.parser.parseBlocks(reEndString);\n\t// If we got a cite, put it before the text\n\tif(cite.length > 0) {\n\t\ttree.unshift({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Parse any optional cite\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tcite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// If we got a cite, push it\n\tif(cite.length > 0) {\n\t\ttree.push({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Return the blockquote element\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"blockquote\",\n\t\tattributes: {\n\t\t\tclass: { type: \"string\", value: classes.join(\" \") },\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/rules.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/rules.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/rules.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for rules specifications\n\n```\n\\rules except ruleone ruletwo rulethree\n\\rules only ruleone ruletwo rulethree\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"rules\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\rules[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\tif(tokens.length > 0) {\n\t\tthis.parser.amendRules(tokens[0],tokens.slice(1));\n\t}\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/styleblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/styleblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for assigning styles and classes to paragraphs and other blocks. For example:\n\n```\n@@.myClass\n@@background-color:red;\nThis paragraph will have the CSS class `myClass`.\n\n* The `<ul>` around this list will also have the class `myClass`\n* List item 2\n\n@@\n```\n\nNote that classes and styles can be mixed subject to the rule that styles must precede classes. For example\n\n```\n@@.myFirstClass.mySecondClass\n@@width:100px;.myThirdClass\nThis is a paragraph\n@@\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(?:\\.([^\\r\\n\\s]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEndString = \"^@@(?:\\\\r?\\\\n)?\";\n\tvar classes = [], styles = [];\n\tdo {\n\t\t// Get the class and style\n\t\tif(this.match[1]) {\n\t\t\tstyles.push(this.match[1]);\n\t\t}\n\t\tif(this.match[2]) {\n\t\t\tclasses.push(this.match[2].split(\".\").join(\" \"));\n\t\t}\n\t\t// Move past the match\n\t\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\t// Look for another line of classes and styles\n\t\tthis.match = this.matchRegExp.exec(this.parser.source);\n\t} while(this.match && this.match.index === this.parser.pos);\n\t// Parse the body\n\tvar tree = this.parser.parseBlocks(reEndString);\n\tfor(var t=0; t<tree.length; t++) {\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(tree[t],classes.join(\" \"));\n\t\t}\n\t\tif(styles.length > 0) {\n\t\t\t$tw.utils.addAttributeToParseTreeNode(tree[t],\"style\",styles.join(\"\"));\n\t\t}\n\t}\n\treturn tree;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/styleinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/styleinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for assigning styles and classes to inline runs. For example:\n\n```\n@@.myClass This is some text with a class@@\n@@background-color:red;This is some text with a background colour@@\n@@width:100px;.myClass This is some text with a class and a width@@\n```\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(\\.(?:[^\\r\\n\\s]+)\\s+)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /@@/g;\n\t// Get the styles and class\n\tvar stylesString = this.match[1],\n\t\tclassString = this.match[2] ? this.match[2].split(\".\").join(\" \") : undefined;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the run up to the terminator\n\tvar tree = this.parser.parseInlineRun(reEnd,{eatTerminator: true});\n\t// Return the classed span\n\tvar node = {\n\t\ttype: \"element\",\n\t\ttag: \"span\",\n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: \"tc-inline-style\"}\n\t\t},\n\t\tchildren: tree\n\t};\n\tif(classString) {\n\t\t$tw.utils.addClassToParseTreeNode(node,classString);\n\t}\n\tif(stylesString) {\n\t\t$tw.utils.addAttributeToParseTreeNode(node,\"style\",stylesString);\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/syslink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/syslink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/syslink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for system tiddler links.\nCan be suppressed preceding them with `~`.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"syslink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp(\n\t\t\"~?\\\\$:\\\\/[\" +\n\t\t$tw.config.textPrimitives.anyLetter.substr(1,$tw.config.textPrimitives.anyLetter.length - 2) +\n\t\t\"\\/._-]+\",\n\t\t\"mg\"\n\t);\n};\n\nexports.parse = function() {\n\tvar match = this.match[0];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(match.substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: match.substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: match}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: match\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/table.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/table.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/table.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for tables.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"table\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\|(?:[^\\n]*)\\|(?:[fhck]?)\\r?(?:\\n|$)/mg;\n};\n\nvar processRow = function(prevColumns) {\n\tvar cellRegExp = /(?:\\|([^\\n\\|]*)\\|)|(\\|[fhck]?\\r?(?:\\n|$))/mg,\n\t\tcellTermRegExp = /((?:\\x20*)\\|)/mg,\n\t\ttree = [],\n\t\tcol = 0,\n\t\tcolSpanCount = 1,\n\t\tprevCell,\n\t\tvAlign;\n\t// Match a single cell\n\tcellRegExp.lastIndex = this.parser.pos;\n\tvar cellMatch = cellRegExp.exec(this.parser.source);\n\twhile(cellMatch && cellMatch.index === this.parser.pos) {\n\t\tif(cellMatch[1] === \"~\") {\n\t\t\t// Rowspan\n\t\t\tvar last = prevColumns[col];\n\t\t\tif(last) {\n\t\t\t\tlast.rowSpanCount++;\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"rowspan\",last.rowSpanCount);\n\t\t\t\tvAlign = $tw.utils.getAttributeValueFromParseTreeNode(last.element,\"valign\",\"center\");\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"valign\",vAlign);\n\t\t\t\tif(colSpanCount > 1) {\n\t\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"colspan\",colSpanCount);\n\t\t\t\t\tcolSpanCount = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \">\") {\n\t\t\t// Colspan\n\t\t\tcolSpanCount++;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \"<\" && prevCell) {\n\t\t\tcolSpanCount = 1 + $tw.utils.getAttributeValueFromParseTreeNode(prevCell,\"colspan\",1);\n\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\tcolSpanCount = 1;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[2]) {\n\t\t\t// End of row\n\t\t\tif(prevCell && colSpanCount > 1) {\n\t\t\t\tif(prevCell.attributes && prevCell.attributes && prevCell.attributes.colspan) {\n\t\t\t\t\t\tcolSpanCount += prevCell.attributes.colspan.value;\n\t\t\t\t} else {\n\t\t\t\t\tcolSpanCount -= 1;\n\t\t\t\t}\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\t}\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t\tbreak;\n\t\t} else {\n\t\t\t// For ordinary cells, step beyond the opening `|`\n\t\t\tthis.parser.pos++;\n\t\t\t// Look for a space at the start of the cell\n\t\t\tvar spaceLeft = false;\n\t\t\tvAlign = null;\n\t\t\tif(this.parser.source.substr(this.parser.pos).search(/^\\^([^\\^]|\\^\\^)/) === 0) {\n\t\t\t\tvAlign = \"top\";\n\t\t\t} else if(this.parser.source.substr(this.parser.pos).search(/^,([^,]|,,)/) === 0) {\n\t\t\t\tvAlign = \"bottom\";\n\t\t\t}\n\t\t\tif(vAlign) {\n\t\t\t\tthis.parser.pos++;\n\t\t\t}\n\t\t\tvar chr = this.parser.source.substr(this.parser.pos,1);\n\t\t\twhile(chr === \" \") {\n\t\t\t\tspaceLeft = true;\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tchr = this.parser.source.substr(this.parser.pos,1);\n\t\t\t}\n\t\t\t// Check whether this is a heading cell\n\t\t\tvar cell;\n\t\t\tif(chr === \"!\") {\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tcell = {type: \"element\", tag: \"th\", children: []};\n\t\t\t} else {\n\t\t\t\tcell = {type: \"element\", tag: \"td\", children: []};\n\t\t\t}\n\t\t\ttree.push(cell);\n\t\t\t// Record information about this cell\n\t\t\tprevCell = cell;\n\t\t\tprevColumns[col] = {rowSpanCount:1,element:cell};\n\t\t\t// Check for a colspan\n\t\t\tif(colSpanCount > 1) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"colspan\",colSpanCount);\n\t\t\t\tcolSpanCount = 1;\n\t\t\t}\n\t\t\t// Parse the cell\n\t\t\tcell.children = this.parser.parseInlineRun(cellTermRegExp,{eatTerminator: true});\n\t\t\t// Set the alignment for the cell\n\t\t\tif(vAlign) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"valign\",vAlign);\n\t\t\t}\n\t\t\tif(this.parser.source.substr(this.parser.pos - 2,1) === \" \") { // spaceRight\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",spaceLeft ? \"center\" : \"left\");\n\t\t\t} else if(spaceLeft) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",\"right\");\n\t\t\t}\n\t\t\t// Move back to the closing `|`\n\t\t\tthis.parser.pos--;\n\t\t}\n\t\tcol++;\n\t\tcellRegExp.lastIndex = this.parser.pos;\n\t\tcellMatch = cellRegExp.exec(this.parser.source);\n\t}\n\treturn tree;\n};\n\nexports.parse = function() {\n\tvar rowContainerTypes = {\"c\":\"caption\", \"h\":\"thead\", \"\":\"tbody\", \"f\":\"tfoot\"},\n\t\ttable = {type: \"element\", tag: \"table\", children: []},\n\t\trowRegExp = /^\\|([^\\n]*)\\|([fhck]?)\\r?(?:\\n|$)/mg,\n\t\trowTermRegExp = /(\\|(?:[fhck]?)\\r?(?:\\n|$))/mg,\n\t\tprevColumns = [],\n\t\tcurrRowType,\n\t\trowContainer,\n\t\trowCount = 0;\n\t// Match the row\n\trowRegExp.lastIndex = this.parser.pos;\n\tvar rowMatch = rowRegExp.exec(this.parser.source);\n\twhile(rowMatch && rowMatch.index === this.parser.pos) {\n\t\tvar rowType = rowMatch[2];\n\t\t// Check if it is a class assignment\n\t\tif(rowType === \"k\") {\n\t\t\t$tw.utils.addClassToParseTreeNode(table,rowMatch[1]);\n\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t} else {\n\t\t\t// Otherwise, create a new row if this one is of a different type\n\t\t\tif(rowType !== currRowType) {\n\t\t\t\trowContainer = {type: \"element\", tag: rowContainerTypes[rowType], children: []};\n\t\t\t\ttable.children.push(rowContainer);\n\t\t\t\tcurrRowType = rowType;\n\t\t\t}\n\t\t\t// Is this a caption row?\n\t\t\tif(currRowType === \"c\") {\n\t\t\t\t// If so, move past the opening `|` of the row\n\t\t\t\tthis.parser.pos++;\n\t\t\t\t// Move the caption to the first row if it isn't already\n\t\t\t\tif(table.children.length !== 1) {\n\t\t\t\t\ttable.children.pop(); // Take rowContainer out of the children array\n\t\t\t\t\ttable.children.splice(0,0,rowContainer); // Insert it at the bottom\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t// Set the alignment - TODO: figure out why TW did this\n//\t\t\t\trowContainer.attributes.align = rowCount === 0 ? \"top\" : \"bottom\";\n\t\t\t\t// Parse the caption\n\t\t\t\trowContainer.children = this.parser.parseInlineRun(rowTermRegExp,{eatTerminator: true});\n\t\t\t} else {\n\t\t\t\t// Create the row\n\t\t\t\tvar theRow = {type: \"element\", tag: \"tr\", children: []};\n\t\t\t\t$tw.utils.addClassToParseTreeNode(theRow,rowCount%2 ? \"oddRow\" : \"evenRow\");\n\t\t\t\trowContainer.children.push(theRow);\n\t\t\t\t// Process the row\n\t\t\t\ttheRow.children = processRow.call(this,prevColumns);\n\t\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t\t\t// Increment the row count\n\t\t\t\trowCount++;\n\t\t\t}\n\t\t}\n\t\trowMatch = rowRegExp.exec(this.parser.source);\n\t}\n\treturn [table];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/transcludeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {},\n\t\t\tisBlock: true\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tisBlock: true,\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/transcludeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {}\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/typedblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/typedblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/typedblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for typed blocks. For example:\n\n```\n$$$.js\nThis will be rendered as JavaScript\n$$$\n\n$$$.svg\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"150\" height=\"100\">\n <circle cx=\"100\" cy=\"50\" r=\"40\" stroke=\"black\" stroke-width=\"2\" fill=\"red\" />\n</svg>\n$$$\n\n$$$text/vnd.tiddlywiki>text/html\nThis will be rendered as an //HTML representation// of WikiText\n$$$\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.name = \"typedblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\$\\$\\$([^ >\\r\\n]*)(?: *> *([^ \\r\\n]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /\\r?\\n\\$\\$\\$\\r?(?:\\n|$)/mg;\n\t// Save the type\n\tvar parseType = this.match[1],\n\t\trenderType = this.match[2];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Parse the block according to the specified type\n\tvar parser = this.parser.wiki.parseText(parseType,text,{defaultType: \"text/plain\"});\n\t// If there's no render type, just return the parse tree\n\tif(!renderType) {\n\t\treturn parser.tree;\n\t} else {\n\t\t// Otherwise, render to the rendertype and return in a <PRE> tag\n\t\tvar widgetNode = this.parser.wiki.makeWidget(parser),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\ttext = renderType === \"text/html\" ? container.innerHTML : container.textContent;\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"pre\",\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/whitespace.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/whitespace.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/whitespace.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for whitespace specifications\n\n```\n\\whitespace trim\n\\whitespace notrim\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"whitespace\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\whitespace[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar self = this;\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\t$tw.utils.each(tokens,function(token) {\n\t\tswitch(token) {\n\t\t\tcase \"trim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = true;\n\t\t\t\tbreak;\n\t\t\tcase \"notrim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = false;\n\t\t\t\tbreak;\n\t\t}\n\t});\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/wikilink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/wikilink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikilink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for wiki links. For example:\n\n```\nAWikiLink\nAnotherLink\n~SuppressedLink\n```\n\nPrecede a camel case word with `~` to prevent it from being recognised as a link.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"wikilink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp($tw.config.textPrimitives.unWikiLink + \"?\" + $tw.config.textPrimitives.wikiLink,\"mg\");\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get the details of the match\n\tvar linkText = this.match[0];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// If the link starts with the unwikilink character then just output it as plain text\n\tif(linkText.substr(0,1) === $tw.config.textPrimitives.unWikiLink) {\n\t\treturn [{type: \"text\", text: linkText.substr(1)}];\n\t}\n\t// If the link has been preceded with a blocked letter then don't treat it as a link\n\tif(this.match.index > 0) {\n\t\tvar preRegExp = new RegExp($tw.config.textPrimitives.blockPrefixLetters,\"mg\");\n\t\tpreRegExp.lastIndex = this.match.index-1;\n\t\tvar preMatch = preRegExp.exec(this.parser.source);\n\t\tif(preMatch && preMatch.index === this.match.index-1) {\n\t\t\treturn [{type: \"text\", text: linkText}];\n\t\t}\n\t}\n\treturn [{\n\t\ttype: \"link\",\n\t\tattributes: {\n\t\t\tto: {type: \"string\", value: linkText}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: linkText\n\t\t}]\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/wikiparser.js": {
"title": "$:/core/modules/parsers/wikiparser/wikiparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/wikiparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe wiki text parser processes blocks of source text into a parse tree.\n\nThe parse tree is made up of nested arrays of these JavaScript objects:\n\n\t{type: \"element\", tag: <string>, attributes: {}, children: []} - an HTML element\n\t{type: \"text\", text: <string>} - a text node\n\t{type: \"entity\", value: <string>} - an entity\n\t{type: \"raw\", html: <string>} - raw HTML\n\nAttributes are stored as hashmaps of the following objects:\n\n\t{type: \"string\", value: <string>} - literal string\n\t{type: \"indirect\", textReference: <textReference>} - indirect through a text reference\n\t{type: \"macro\", macro: <TBD>} - indirect through a macro invocation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar WikiParser = function(type,text,options) {\n\tthis.wiki = options.wiki;\n\tvar self = this;\n\t// Check for an externally linked tiddler\n\tif($tw.browser && (text || \"\") === \"\" && options._canonical_uri) {\n\t\tthis.loadRemoteTiddler(options._canonical_uri);\n\t\ttext = $tw.language.getRawString(\"LazyLoadingWarning\");\n\t}\n\t// Initialise the classes if we don't have them already\n\tif(!this.pragmaRuleClasses) {\n\t\tWikiParser.prototype.pragmaRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"pragma\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.pragmaRuleClasses,\"$:/config/WikiParserRules/Pragmas/\");\n\t}\n\tif(!this.blockRuleClasses) {\n\t\tWikiParser.prototype.blockRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"block\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.blockRuleClasses,\"$:/config/WikiParserRules/Block/\");\n\t}\n\tif(!this.inlineRuleClasses) {\n\t\tWikiParser.prototype.inlineRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"inline\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.inlineRuleClasses,\"$:/config/WikiParserRules/Inline/\");\n\t}\n\t// Save the parse text\n\tthis.type = type || \"text/vnd.tiddlywiki\";\n\tthis.source = text || \"\";\n\tthis.sourceLength = this.source.length;\n\t// Flag for ignoring whitespace\n\tthis.configTrimWhiteSpace = false;\n\t// Set current parse position\n\tthis.pos = 0;\n\t// Instantiate the pragma parse rules\n\tthis.pragmaRules = this.instantiateRules(this.pragmaRuleClasses,\"pragma\",0);\n\t// Instantiate the parser block and inline rules\n\tthis.blockRules = this.instantiateRules(this.blockRuleClasses,\"block\",0);\n\tthis.inlineRules = this.instantiateRules(this.inlineRuleClasses,\"inline\",0);\n\t// Parse any pragmas\n\tthis.tree = [];\n\tvar topBranch = this.parsePragmas();\n\t// Parse the text into inline runs or blocks\n\tif(options.parseAsInline) {\n\t\ttopBranch.push.apply(topBranch,this.parseInlineRun());\n\t} else {\n\t\ttopBranch.push.apply(topBranch,this.parseBlocks());\n\t}\n\t// Return the parse tree\n};\n\n/*\n*/\nWikiParser.prototype.loadRemoteTiddler = function(url) {\n\tvar self = this;\n\t$tw.utils.httpRequest({\n\t\turl: url,\n\t\ttype: \"GET\",\n\t\tcallback: function(err,data) {\n\t\t\tif(!err) {\n\t\t\t\tvar tiddlers = self.wiki.deserializeTiddlers(\".tid\",data,self.wiki.getCreationFields());\n\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\ttiddler[\"_canonical_uri\"] = url;\n\t\t\t\t});\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tself.wiki.addTiddlers(tiddlers);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\n*/\nWikiParser.prototype.setupRules = function(proto,configPrefix) {\n\tvar self = this;\n\tif(!$tw.safemode) {\n\t\t$tw.utils.each(proto,function(object,name) {\n\t\t\tif(self.wiki.getTiddlerText(configPrefix + name,\"enable\") !== \"enable\") {\n\t\t\t\tdelete proto[name];\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nInstantiate an array of parse rules\n*/\nWikiParser.prototype.instantiateRules = function(classes,type,startPos) {\n\tvar rulesInfo = [],\n\t\tself = this;\n\t$tw.utils.each(classes,function(RuleClass) {\n\t\t// Instantiate the rule\n\t\tvar rule = new RuleClass(self);\n\t\trule.is = {};\n\t\trule.is[type] = true;\n\t\trule.init(self);\n\t\tvar matchIndex = rule.findNextMatch(startPos);\n\t\tif(matchIndex !== undefined) {\n\t\t\trulesInfo.push({\n\t\t\t\trule: rule,\n\t\t\t\tmatchIndex: matchIndex\n\t\t\t});\n\t\t}\n\t});\n\treturn rulesInfo;\n};\n\n/*\nSkip any whitespace at the current position. Options are:\n\ttreatNewlinesAsNonWhitespace: true if newlines are NOT to be treated as whitespace\n*/\nWikiParser.prototype.skipWhitespace = function(options) {\n\toptions = options || {};\n\tvar whitespaceRegExp = options.treatNewlinesAsNonWhitespace ? /([^\\S\\n]+)/mg : /(\\s+)/mg;\n\twhitespaceRegExp.lastIndex = this.pos;\n\tvar whitespaceMatch = whitespaceRegExp.exec(this.source);\n\tif(whitespaceMatch && whitespaceMatch.index === this.pos) {\n\t\tthis.pos = whitespaceRegExp.lastIndex;\n\t}\n};\n\n/*\nGet the next match out of an array of parse rule instances\n*/\nWikiParser.prototype.findNextMatch = function(rules,startPos) {\n\t// Find the best matching rule by finding the closest match position\n\tvar matchingRule,\n\t\tmatchingRulePos = this.sourceLength;\n\t// Step through each rule\n\tfor(var t=0; t<rules.length; t++) {\n\t\tvar ruleInfo = rules[t];\n\t\t// Ask the rule to get the next match if we've moved past the current one\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex < startPos) {\n\t\t\truleInfo.matchIndex = ruleInfo.rule.findNextMatch(startPos);\n\t\t}\n\t\t// Adopt this match if it's closer than the current best match\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex <= matchingRulePos) {\n\t\t\tmatchingRule = ruleInfo;\n\t\t\tmatchingRulePos = ruleInfo.matchIndex;\n\t\t}\n\t}\n\treturn matchingRule;\n};\n\n/*\nParse any pragmas at the beginning of a block of parse text\n*/\nWikiParser.prototype.parsePragmas = function() {\n\tvar currentTreeBranch = this.tree;\n\twhile(true) {\n\t\t// Skip whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check for the end of the text\n\t\tif(this.pos >= this.sourceLength) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check if we've arrived at a pragma rule match\n\t\tvar nextMatch = this.findNextMatch(this.pragmaRules,this.pos);\n\t\t// If not, just exit\n\t\tif(!nextMatch || nextMatch.matchIndex !== this.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the pragma rule\n\t\tvar subTree = nextMatch.rule.parse();\n\t\tif(subTree.length > 0) {\n\t\t\t// Quick hack; we only cope with a single parse tree node being returned, which is true at the moment\n\t\t\tcurrentTreeBranch.push.apply(currentTreeBranch,subTree);\n\t\t\tsubTree[0].children = [];\n\t\t\tcurrentTreeBranch = subTree[0].children;\n\t\t}\n\t}\n\treturn currentTreeBranch;\n};\n\n/*\nParse a block from the current position\n\tterminatorRegExpString: optional regular expression string that identifies the end of plain paragraphs. Must not include capturing parenthesis\n*/\nWikiParser.prototype.parseBlock = function(terminatorRegExpString) {\n\tvar terminatorRegExp = terminatorRegExpString ? new RegExp(\"(\" + terminatorRegExpString + \"|\\\\r?\\\\n\\\\r?\\\\n)\",\"mg\") : /(\\r?\\n\\r?\\n)/mg;\n\tthis.skipWhitespace();\n\tif(this.pos >= this.sourceLength) {\n\t\treturn [];\n\t}\n\t// Look for a block rule that applies at the current position\n\tvar nextMatch = this.findNextMatch(this.blockRules,this.pos);\n\tif(nextMatch && nextMatch.matchIndex === this.pos) {\n\t\treturn nextMatch.rule.parse();\n\t}\n\t// Treat it as a paragraph if we didn't find a block rule\n\treturn [{type: \"element\", tag: \"p\", children: this.parseInlineRun(terminatorRegExp)}];\n};\n\n/*\nParse a series of blocks of text until a terminating regexp is encountered or the end of the text\n\tterminatorRegExpString: terminating regular expression\n*/\nWikiParser.prototype.parseBlocks = function(terminatorRegExpString) {\n\tif(terminatorRegExpString) {\n\t\treturn this.parseBlocksTerminated(terminatorRegExpString);\n\t} else {\n\t\treturn this.parseBlocksUnterminated();\n\t}\n};\n\n/*\nParse a block from the current position to the end of the text\n*/\nWikiParser.prototype.parseBlocksUnterminated = function() {\n\tvar tree = [];\n\twhile(this.pos < this.sourceLength) {\n\t\ttree.push.apply(tree,this.parseBlock());\n\t}\n\treturn tree;\n};\n\n/*\nParse blocks of text until a terminating regexp is encountered\n*/\nWikiParser.prototype.parseBlocksTerminated = function(terminatorRegExpString) {\n\tvar terminatorRegExp = new RegExp(\"(\" + terminatorRegExpString + \")\",\"mg\"),\n\t\ttree = [];\n\t// Skip any whitespace\n\tthis.skipWhitespace();\n\t// Check if we've got the end marker\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar match = terminatorRegExp.exec(this.source);\n\t// Parse the text into blocks\n\twhile(this.pos < this.sourceLength && !(match && match.index === this.pos)) {\n\t\tvar blocks = this.parseBlock(terminatorRegExpString);\n\t\ttree.push.apply(tree,blocks);\n\t\t// Skip any whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check if we've got the end marker\n\t\tterminatorRegExp.lastIndex = this.pos;\n\t\tmatch = terminatorRegExp.exec(this.source);\n\t}\n\tif(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t}\n\treturn tree;\n};\n\n/*\nParse a run of text at the current position\n\tterminatorRegExp: a regexp at which to stop the run\n\toptions: see below\nOptions available:\n\teatTerminator: move the parse position past any encountered terminator (default false)\n*/\nWikiParser.prototype.parseInlineRun = function(terminatorRegExp,options) {\n\tif(terminatorRegExp) {\n\t\treturn this.parseInlineRunTerminated(terminatorRegExp,options);\n\t} else {\n\t\treturn this.parseInlineRunUnterminated(options);\n\t}\n};\n\nWikiParser.prototype.parseInlineRunUnterminated = function(options) {\n\tvar tree = [];\n\t// Find the next occurrence of an inline rule\n\tvar nextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around the matches until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && nextMatch) {\n\t\t// Process the text preceding the run rule\n\t\tif(nextMatch.matchIndex > this.pos) {\n\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,nextMatch.matchIndex));\n\t\t\tthis.pos = nextMatch.matchIndex;\n\t\t}\n\t\t// Process the run rule\n\t\ttree.push.apply(tree,nextMatch.rule.parse());\n\t\t// Look for the next run rule\n\t\tnextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\nWikiParser.prototype.parseInlineRunTerminated = function(terminatorRegExp,options) {\n\toptions = options || {};\n\tvar tree = [];\n\t// Find the next occurrence of the terminator\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar terminatorMatch = terminatorRegExp.exec(this.source);\n\t// Find the next occurrence of a inlinerule\n\tvar inlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && (terminatorMatch || inlineRuleMatch)) {\n\t\t// Return if we've found the terminator, and it precedes any inline rule match\n\t\tif(terminatorMatch) {\n\t\t\tif(!inlineRuleMatch || inlineRuleMatch.matchIndex >= terminatorMatch.index) {\n\t\t\t\tif(terminatorMatch.index > this.pos) {\n\t\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,terminatorMatch.index));\n\t\t\t\t}\n\t\t\t\tthis.pos = terminatorMatch.index;\n\t\t\t\tif(options.eatTerminator) {\n\t\t\t\t\tthis.pos += terminatorMatch[0].length;\n\t\t\t\t}\n\t\t\t\treturn tree;\n\t\t\t}\n\t\t}\n\t\t// Process any inline rule, along with the text preceding it\n\t\tif(inlineRuleMatch) {\n\t\t\t// Preceding text\n\t\t\tif(inlineRuleMatch.matchIndex > this.pos) {\n\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,inlineRuleMatch.matchIndex));\n\t\t\t\tthis.pos = inlineRuleMatch.matchIndex;\n\t\t\t}\n\t\t\t// Process the inline rule\n\t\t\ttree.push.apply(tree,inlineRuleMatch.rule.parse());\n\t\t\t// Look for the next inline rule\n\t\t\tinlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t\t\t// Look for the next terminator match\n\t\t\tterminatorRegExp.lastIndex = this.pos;\n\t\t\tterminatorMatch = terminatorRegExp.exec(this.source);\n\t\t}\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\n/*\nPush a text widget onto an array, respecting the configTrimWhiteSpace setting\n*/\nWikiParser.prototype.pushTextWidget = function(array,text) {\n\tif(this.configTrimWhiteSpace) {\n\t\ttext = $tw.utils.trim(text);\n\t}\n\tif(text) {\n\t\tarray.push({type: \"text\", text: text});\t\t\n\t}\n};\n\n/*\nParse zero or more class specifiers `.classname`\n*/\nWikiParser.prototype.parseClasses = function() {\n\tvar classRegExp = /\\.([^\\s\\.]+)/mg,\n\t\tclassNames = [];\n\tclassRegExp.lastIndex = this.pos;\n\tvar match = classRegExp.exec(this.source);\n\twhile(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t\tclassNames.push(match[1]);\n\t\tmatch = classRegExp.exec(this.source);\n\t}\n\treturn classNames;\n};\n\n/*\nAmend the rules used by this instance of the parser\n\ttype: `only` keeps just the named rules, `except` keeps all but the named rules\n\tnames: array of rule names\n*/\nWikiParser.prototype.amendRules = function(type,names) {\n\tnames = names || [];\n\t// Define the filter function\n\tvar target;\n\tif(type === \"only\") {\n\t\ttarget = true;\n\t} else if(type === \"except\") {\n\t\ttarget = false;\n\t} else {\n\t\treturn;\n\t}\n\t// Define a function to process each of our rule arrays\n\tvar processRuleArray = function(ruleArray) {\n\t\tfor(var t=ruleArray.length-1; t>=0; t--) {\n\t\t\tif((names.indexOf(ruleArray[t].rule.name) === -1) === target) {\n\t\t\t\truleArray.splice(t,1);\n\t\t\t}\n\t\t}\n\t};\n\t// Process each rule array\n\tprocessRuleArray(this.pragmaRules);\n\tprocessRuleArray(this.blockRules);\n\tprocessRuleArray(this.inlineRules);\n};\n\nexports[\"text/vnd.tiddlywiki\"] = WikiParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/wikiparser/rules/wikirulebase.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikirulebase.js\ntype: application/javascript\nmodule-type: global\n\nBase class for wiki parser rules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nThis constructor is always overridden with a blank constructor, and so shouldn't be used\n*/\nvar WikiRuleBase = function() {\n};\n\n/*\nTo be overridden by individual rules\n*/\nWikiRuleBase.prototype.init = function(parser) {\n\tthis.parser = parser;\n};\n\n/*\nDefault implementation of findNextMatch uses RegExp matching\n*/\nWikiRuleBase.prototype.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\treturn this.match ? this.match.index : undefined;\n};\n\nexports.WikiRuleBase = WikiRuleBase;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/pluginswitcher.js": {
"title": "$:/core/modules/pluginswitcher.js",
"text": "/*\\\ntitle: $:/core/modules/pluginswitcher.js\ntype: application/javascript\nmodule-type: global\n\nManages switching plugins for themes and languages.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\noptions:\nwiki: wiki store to be used\npluginType: type of plugin to be switched\ncontrollerTitle: title of tiddler used to control switching of this resource\ndefaultPlugins: array of default plugins to be used if nominated plugin isn't found\nonSwitch: callback when plugin is switched (single parameter is array of plugin titles)\n*/\nfunction PluginSwitcher(options) {\n\tthis.wiki = options.wiki;\n\tthis.pluginType = options.pluginType;\n\tthis.controllerTitle = options.controllerTitle;\n\tthis.defaultPlugins = options.defaultPlugins || [];\n\tthis.onSwitch = options.onSwitch;\n\t// Switch to the current plugin\n\tthis.switchPlugins();\n\t// Listen for changes to the selected plugin\n\tvar self = this;\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,self.controllerTitle)) {\n\t\t\tself.switchPlugins();\n\t\t}\n\t});\n}\n\nPluginSwitcher.prototype.switchPlugins = function() {\n\t// Get the name of the current theme\n\tvar selectedPluginTitle = this.wiki.getTiddlerText(this.controllerTitle);\n\t// If it doesn't exist, then fallback to one of the default themes\n\tvar index = 0;\n\twhile(!this.wiki.getTiddler(selectedPluginTitle) && index < this.defaultPlugins.length) {\n\t\tselectedPluginTitle = this.defaultPlugins[index++];\n\t}\n\t// Accumulate the titles of the plugins that we need to load\n\tvar plugins = [],\n\t\tself = this,\n\t\taccumulatePlugin = function(title) {\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tif(tiddler && tiddler.isPlugin() && plugins.indexOf(title) === -1) {\n\t\t\t\tplugins.push(title);\n\t\t\t\tvar pluginInfo = JSON.parse(self.wiki.getTiddlerText(title)),\n\t\t\t\t\tdependents = $tw.utils.parseStringArray(tiddler.fields.dependents || \"\");\n\t\t\t\t$tw.utils.each(dependents,function(title) {\n\t\t\t\t\taccumulatePlugin(title);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\taccumulatePlugin(selectedPluginTitle);\n\t// Read the plugin info for the incoming plugins\n\tvar changes = $tw.wiki.readPluginInfo(plugins);\n\t// Unregister any existing theme tiddlers\n\tvar unregisteredTiddlers = $tw.wiki.unregisterPluginTiddlers(this.pluginType);\n\t// Register any new theme tiddlers\n\tvar registeredTiddlers = $tw.wiki.registerPluginTiddlers(this.pluginType,plugins);\n\t// Unpack the current theme tiddlers\n\t$tw.wiki.unpackPluginTiddlers();\n\t// Call the switch handler\n\tif(this.onSwitch) {\n\t\tthis.onSwitch(plugins);\n\t}\n};\n\nexports.PluginSwitcher = PluginSwitcher;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/saver-handler.js": {
"title": "$:/core/modules/saver-handler.js",
"text": "/*\\\ntitle: $:/core/modules/saver-handler.js\ntype: application/javascript\nmodule-type: global\n\nThe saver handler tracks changes to the store and handles saving the entire wiki via saver modules.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInstantiate the saver handler with the following options:\nwiki: wiki to be synced\ndirtyTracking: true if dirty tracking should be performed\n*/\nfunction SaverHandler(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\tthis.dirtyTracking = options.dirtyTracking;\n\tthis.preloadDirty = options.preloadDirty || [];\n\tthis.pendingAutoSave = false;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"saver-handler\");\n\t// Initialise our savers\n\tif($tw.browser) {\n\t\tthis.initSavers();\n\t}\n\t// Only do dirty tracking if required\n\tif($tw.browser && this.dirtyTracking) {\n\t\t// Compile the dirty tiddler filter\n\t\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t\t// Count of changes that have not yet been saved\n\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(self.preloadDirty,function(title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t});\n\t\tthis.numChanges = filteredChanges.length;\n\t\t// Listen out for changes to tiddlers\n\t\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t\t// Filter the changes so that we only count changes to tiddlers that we care about\n\t\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t\t});\n\t\t\t// Adjust the number of changes\n\t\t\tself.numChanges += filteredChanges.length;\n\t\t\tself.updateDirtyStatus();\n\t\t\t// Do any autosave if one is pending and there's no more change events\n\t\t\tif(self.pendingAutoSave && self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tself.pendingAutoSave = false;\n\t\t\t}\n\t\t});\n\t\t// Listen for the autosave event\n\t\t$tw.rootWidget.addEventListener(\"tm-auto-save-wiki\",function(event) {\n\t\t\t// Do the autosave unless there are outstanding tiddler change events\n\t\t\tif(self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise put ourselves in the \"pending autosave\" state and wait for the change event before we do the autosave\n\t\t\t\tself.pendingAutoSave = true;\n\t\t\t}\n\t\t});\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t}\n\t// Install the save action handlers\n\tif($tw.browser) {\n\t\t$tw.rootWidget.addEventListener(\"tm-save-wiki\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-download-file\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\tmethod: \"download\",\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t}\n}\n\nSaverHandler.prototype.titleSyncFilter = \"$:/config/SaverFilter\";\nSaverHandler.prototype.titleAutoSave = \"$:/config/AutoSave\";\nSaverHandler.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\n\n/*\nSelect the appropriate saver modules and set them up\n*/\nSaverHandler.prototype.initSavers = function(moduleType) {\n\tmoduleType = moduleType || \"saver\";\n\t// Instantiate the available savers\n\tthis.savers = [];\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tif(module.canSave(self)) {\n\t\t\tself.savers.push(module.create(self.wiki));\n\t\t}\n\t});\n\t// Sort the savers into priority order\n\tthis.savers.sort(function(a,b) {\n\t\tif(a.info.priority < b.info.priority) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(a.info.priority > b.info.priority) {\n\t\t\t\treturn +1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nSave the wiki contents. Options are:\n\tmethod: \"save\", \"autosave\" or \"download\"\n\ttemplate: the tiddler containing the template to save\n\tdownloadType: the content type for the saved file\n*/\nSaverHandler.prototype.saveWiki = function(options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tmethod = options.method || \"save\";\n\t// Ignore autosave if disabled\n\tif(method === \"autosave\" && ($tw.config.disableAutoSave || this.wiki.getTiddlerText(this.titleAutoSave,\"yes\") !== \"yes\")) {\n\t\treturn false;\n\t}\n\tvar\tvariables = options.variables || {},\n\t\ttemplate = options.template || \"$:/core/save/all\",\n\t\tdownloadType = options.downloadType || \"text/plain\",\n\t\ttext = this.wiki.renderTiddler(downloadType,template,options),\n\t\tcallback = function(err) {\n\t\t\tif(err) {\n\t\t\t\talert($tw.language.getString(\"Error/WhileSaving\") + \":\\n\\n\" + err);\n\t\t\t} else {\n\t\t\t\t// Clear the task queue if we're saving (rather than downloading)\n\t\t\t\tif(method !== \"download\") {\n\t\t\t\t\tself.numChanges = 0;\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t}\n\t\t\t\t$tw.notifier.display(self.titleSavedNotification);\n\t\t\t\tif(options.callback) {\n\t\t\t\t\toptions.callback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t// Call the highest priority saver that supports this method\n\tfor(var t=this.savers.length-1; t>=0; t--) {\n\t\tvar saver = this.savers[t];\n\t\tif(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback,{variables: {filename: variables.filename}})) {\n\t\t\tthis.logger.log(\"Saving wiki with method\",method,\"through saver\",saver.info.name);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSaverHandler.prototype.isDirty = function() {\n\treturn this.numChanges > 0;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSaverHandler.prototype.updateDirtyStatus = function() {\n\tvar self = this;\n\tif($tw.browser) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\n\t\t$tw.utils.each($tw.windows,function(win) {\n\t\t\t$tw.utils.toggleClass(win.document.body,\"tc-dirty\",self.isDirty());\n\t\t});\n\t}\n};\n\nexports.SaverHandler = SaverHandler;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/savers/andtidwiki.js": {
"title": "$:/core/modules/savers/andtidwiki.js",
"text": "/*\\\ntitle: $:/core/modules/savers/andtidwiki.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the AndTidWiki Android app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar AndTidWiki = function(wiki) {\n};\n\nAndTidWiki.prototype.save = function(text,method,callback,options) {\n\tvar filename = options && options.variables ? options.variables.filename : null;\n\tif (method === \"download\") {\n\t\t// Support download\n\t\tif (window.twi.saveDownload) {\n\t\t\ttry {\n\t\t\t\twindow.twi.saveDownload(text,filename);\n\t\t\t} catch(err) {\n\t\t\t\tif (err.message === \"Method not found\") {\n\t\t\t\t\twindow.twi.saveDownload(text);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tvar link = document.createElement(\"a\");\n\t\t\tlink.setAttribute(\"href\",\"data:text/plain,\" + encodeURIComponent(text));\n\t\t\tif (filename) {\n\t\t\t link.setAttribute(\"download\",filename);\n\t\t\t}\n\t\t\tdocument.body.appendChild(link);\n\t\t\tlink.click();\n\t\t\tdocument.body.removeChild(link);\n\t\t}\n\t} else if (window.twi.saveWiki) {\n\t\t// Direct save in Tiddloid\n\t\twindow.twi.saveWiki(text);\n\t} else {\n\t\t// Get the pathname of this document\n\t\tvar pathname = decodeURIComponent(document.location.toString().split(\"#\")[0]);\n\t\t// Strip the file://\n\t\tif(pathname.indexOf(\"file://\") === 0) {\n\t\t\tpathname = pathname.substr(7);\n\t\t}\n\t\t// Strip any query or location part\n\t\tvar p = pathname.indexOf(\"?\");\n\t\tif(p !== -1) {\n\t\t\tpathname = pathname.substr(0,p);\n\t\t}\n\t\tp = pathname.indexOf(\"#\");\n\t\tif(p !== -1) {\n\t\t\tpathname = pathname.substr(0,p);\n\t\t}\n\t\t// Save the file\n\t\twindow.twi.saveFile(pathname,text);\n\t}\n\t// Call the callback\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nAndTidWiki.prototype.info = {\n\tname: \"andtidwiki\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.twi && !!window.twi.saveFile;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new AndTidWiki(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/beaker.js": {
"title": "$:/core/modules/savers/beaker.js",
"text": "/*\\\ntitle: $:/core/modules/savers/beaker.js\ntype: application/javascript\nmodule-type: saver\n\nSaves files using the Beaker browser's (https://beakerbrowser.com) Dat protocol (https://datproject.org/)\nCompatible with beaker >= V0.7.2\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet up the saver\n*/\nvar BeakerSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nBeakerSaver.prototype.save = function(text,method,callback) {\n\tvar dat = new DatArchive(\"\" + window.location),\n\t\tpathname = (\"\" + window.location.pathname).split(\"#\")[0];\n\tdat.stat(pathname).then(function(value) {\n\t\tif(value.isDirectory()) {\n\t\t\tpathname = pathname + \"/index.html\";\n\t\t}\n\t\tdat.writeFile(pathname,text,\"utf8\").then(function(value) {\n\t\t\tcallback(null);\n\t\t},function(reason) {\n\t\t\tcallback(\"Beaker Saver Write Error: \" + reason);\n\t\t});\n\t},function(reason) {\n\t\tcallback(\"Beaker Saver Stat Error: \" + reason);\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nBeakerSaver.prototype.info = {\n\tname: \"beaker\",\n\tpriority: 3000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.DatArchive && location.protocol===\"dat:\";\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new BeakerSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/custom.js": {
"title": "$:/core/modules/savers/custom.js",
"text": "/*\\\ntitle: $:/core/modules/savers/custom.js\ntype: application/javascript\nmodule-type: saver\n\nLooks for `window.$tw.customSaver` first on the current window, then\non the parent window (of an iframe). If present, the saver must define\n\tsave: function(text,method,callback) { ... }\nand the saver may define\n\tpriority: number\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar findSaver = function(window) {\n\ttry {\n\t\treturn window && window.$tw && window.$tw.customSaver;\n\t} catch (err) {\n\t\t// Catching the exception is the most reliable way to detect cross-origin iframe errors.\n\t\t// For example, instead of saying that `window.parent.$tw` is undefined, Firefox will throw\n\t\t// Uncaught DOMException: Permission denied to access property \"$tw\" on cross-origin object\n\t\tconsole.log({ msg: \"custom saver is disabled\", reason: err });\n\t\treturn null;\n\t}\n}\nvar saver = findSaver(window) || findSaver(window.parent) || {};\n\nvar CustomSaver = function(wiki) {\n};\n\nCustomSaver.prototype.save = function(text,method,callback) {\n\treturn saver.save(text, method, callback);\n};\n\n/*\nInformation about this saver\n*/\nCustomSaver.prototype.info = {\n\tname: \"custom\",\n\tpriority: saver.priority || 4000,\n\tcapabilities: [\"save\",\"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!(saver.save);\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new CustomSaver(wiki);\n};\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/download.js": {
"title": "$:/core/modules/savers/download.js",
"text": "/*\\\ntitle: $:/core/modules/savers/download.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar DownloadSaver = function(wiki) {\n};\n\nDownloadSaver.prototype.save = function(text,method,callback,options) {\n\toptions = options || {};\n\t// Get the current filename\n\tvar filename = options.variables.filename;\n\tif(!filename) {\n\t\tvar p = document.location.pathname.lastIndexOf(\"/\");\n\t\tif(p !== -1) {\n\t\t\t// We decode the pathname because document.location is URL encoded by the browser\n\t\t\tfilename = decodeURIComponent(document.location.pathname.substr(p+1));\n\t\t}\n\t}\n\tif(!filename) {\n\t\tfilename = \"tiddlywiki.html\";\n\t}\n\t// Set up the link\n\tvar link = document.createElement(\"a\");\n\tif(Blob !== undefined) {\n\t\tvar blob = new Blob([text], {type: \"text/html\"});\n\t\tlink.setAttribute(\"href\", URL.createObjectURL(blob));\n\t} else {\n\t\tlink.setAttribute(\"href\",\"data:text/html,\" + encodeURIComponent(text));\n\t}\n\tlink.setAttribute(\"download\",filename);\n\tdocument.body.appendChild(link);\n\tlink.click();\n\tdocument.body.removeChild(link);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nDownloadSaver.prototype.info = {\n\tname: \"download\",\n\tpriority: 100\n};\n\nObject.defineProperty(DownloadSaver.prototype.info, \"capabilities\", {\n\tget: function() {\n\t\tvar capabilities = [\"save\", \"download\"];\n\t\tif(($tw.wiki.getTextReference(\"$:/config/DownloadSaver/AutoSave\") || \"\").toLowerCase() === \"yes\") {\n\t\t\tcapabilities.push(\"autosave\");\n\t\t}\n\t\treturn capabilities;\n\t}\n});\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn document.createElement(\"a\").download !== undefined;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new DownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/fsosaver.js": {
"title": "$:/core/modules/savers/fsosaver.js",
"text": "/*\\\ntitle: $:/core/modules/savers/fsosaver.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via MS FileSystemObject ActiveXObject\n\nNote: Since TiddlyWiki's markup contains the MOTW, the FileSystemObject normally won't be available. \nHowever, if the wiki is loaded as an .HTA file (Windows HTML Applications) then the FSO can be used.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar FSOSaver = function(wiki) {\n};\n\nFSOSaver.prototype.save = function(text,method,callback) {\n\t// Get the pathname of this document\n\tvar pathname = unescape(document.location.pathname);\n\t// Test for a Windows path of the form /x:\\blah...\n\tif(/^\\/[A-Z]\\:\\\\[^\\\\]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t} else if(document.location.hostname !== \"\" && /^\\/\\\\[^\\\\]+\\\\[^\\\\]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t\t// reconstruct UNC path\n\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t} else {\n\t\treturn false;\n\t}\n\t// Save the file (as UTF-16)\n\tvar fso = new ActiveXObject(\"Scripting.FileSystemObject\");\n\tvar file = fso.OpenTextFile(pathname,2,-1,-1);\n\tfile.Write(text);\n\tfile.Close();\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nFSOSaver.prototype.info = {\n\tname: \"FSOSaver\",\n\tpriority: 120,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\ttry {\n\t\treturn (window.location.protocol === \"file:\") && !!(new ActiveXObject(\"Scripting.FileSystemObject\"));\n\t} catch(e) { return false; }\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new FSOSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/gitea.js": {
"title": "$:/core/modules/savers/gitea.js",
"text": "/*\\\ntitle: $:/core/modules/savers/gitea.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the gitea\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GiteaSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGiteaSaver.prototype.save = function(text,method,callback) {\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/Gitea/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"Gitea\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/Gitea/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/Gitea/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/Gitea/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/Gitea/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/Gitea/ServerURL\") || \"https://gitea\",\n\t\theaders = {\n\t\t\t\"Accept\": \"application/json\",\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Authorization\": \"token \" + password\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/repos/\" + repo + \"/contents\" + path;\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tdata: {\n\t\t\tref: branch\n\t\t},\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar use_put = true;\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(sha === \"\"){\n\t\t\t\t\tuse_put = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tmessage: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: $tw.utils.base64Encode(text),\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: endpoint + \"/repos/\" + repo + \"/branches/\" + branch,\n\t\t\t\ttype: \"GET\",\n\t\t\t\theaders: headers,\n\t\t\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\t\t\tif(xhr.status === 404) {\n\t\t\t\t\t\tcallback(\"Please ensure the branch in the Gitea repo exists\");\n\t\t\t\t\t}else{\n\t\t\t\t\t\tdata[\"branch\"] = branch;\n\t\t\t\t\t\tself.upload(uri + filename, use_put?\"PUT\":\"POST\", headers, data, callback);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\nGiteaSaver.prototype.upload = function(uri,method,headers,data,callback) {\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: method,\n\t\theaders: headers,\n\t\tdata: JSON.stringify(data),\n\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\tcallback(null);\n\t\t}\n\t});\n};\n\n/*\nInformation about this saver\n*/\nGiteaSaver.prototype.info = {\n\tname: \"Gitea\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GiteaSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/github.js": {
"title": "$:/core/modules/savers/github.js",
"text": "/*\\\ntitle: $:/core/modules/savers/github.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the GitHub v3 REST API\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GitHubSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGitHubSaver.prototype.save = function(text,method,callback) {\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/GitHub/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"github\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/GitHub/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/GitHub/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/GitHub/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/GitHub/Branch\") || \"main\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/GitHub/ServerURL\") || \"https://api.github.com\",\n\t\theaders = {\n\t\t\t\"Accept\": \"application/vnd.github.v3+json\",\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Authorization\": \"Basic \" + window.btoa(username + \":\" + password),\n\t\t\t\"If-None-Match\": \"\"\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/repos/\" + repo + \"/contents\" + path;\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tdata: {\n\t\t\tref: branch\n\t\t},\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tmessage: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: $tw.utils.base64Encode(text),\n\t\t\t\tbranch: branch,\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t// Perform a PUT request to save the file\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: uri + filename,\n\t\t\t\ttype: \"PUT\",\n\t\t\t\theaders: headers,\n\t\t\t\tdata: JSON.stringify(data),\n\t\t\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nGitHubSaver.prototype.info = {\n\tname: \"github\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GitHubSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/gitlab.js": {
"title": "$:/core/modules/savers/gitlab.js",
"text": "/*\\\ntitle: $:/core/modules/savers/gitlab.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the GitLab REST API\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: true */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GitLabSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGitLabSaver.prototype.save = function(text,method,callback) {\n\t/* See https://docs.gitlab.com/ee/api/repository_files.html */\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/GitLab/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"gitlab\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/GitLab/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/GitLab/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/GitLab/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/GitLab/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/GitLab/ServerURL\") || \"https://gitlab.com/api/v4\",\n\t\theaders = {\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Private-Token\": password\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/projects/\" + encodeURIComponent(repo) + \"/repository/\";\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri + \"tree/?path=\" + encodeURIComponent(path.replace(/^\\/+|\\/$/g, '')) + \"&branch=\" + encodeURIComponent(branch.replace(/^\\/+|\\/$/g, '')),\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar requestType = \"POST\";\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\trequestType = \"PUT\";\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tcommit_message: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: text,\n\t\t\t\tbranch: branch,\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t// Perform a request to save the file\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: uri + \"files/\" + encodeURIComponent(path.replace(/^\\/+/, '') + filename),\n\t\t\t\ttype: requestType,\n\t\t\t\theaders: headers,\n\t\t\t\tdata: JSON.stringify(data),\n\t\t\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nGitLabSaver.prototype.info = {\n\tname: \"gitlab\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GitLabSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/hyperdrive.js": {
"title": "$:/core/modules/savers/hyperdrive.js",
"text": "/*\\\ntitle: $:/core/modules/savers/hyperdrive.js\ntype: application/javascript\nmodule-type: saver\n\nSaves files using the Hyperdrive Protocol (https://hypercore-protocol.org/#hyperdrive) Beaker browser beta-1.0 and later (https://beakerbrowser.com)\nCompatible with beaker >= V1.0.0\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet up the saver\n*/\nvar HyperdriveSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nHyperdriveSaver.prototype.save = function(text,method,callback) {\n\tvar dat = beaker.hyperdrive.drive(\"\" + window.location),\n\t\tpathname = (\"\" + window.location.pathname).split(\"#\")[0];\n\tdat.stat(pathname).then(function(value) {\n\t\tif(value.isDirectory()) {\n\t\t\tpathname = pathname + \"/index.html\";\n\t\t}\n\t\tdat.writeFile(pathname,text,\"utf8\").then(function(value) {\n\t\t\tcallback(null);\n\t\t},function(reason) {\n\t\t\tcallback(\"Hyperdrive Saver Write Error: \" + reason);\n\t\t});\n\t},function(reason) {\n\t\tcallback(\"Hyperdrive Saver Stat Error: \" + reason);\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nHyperdriveSaver.prototype.info = {\n\tname: \"beaker-1.x\",\n\tpriority: 3000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.beaker && !!beaker.hyperdrive && location.protocol===\"hyper:\";\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new HyperdriveSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/manualdownload.js": {
"title": "$:/core/modules/savers/manualdownload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/manualdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Title of the tiddler containing the download message\nvar downloadInstructionsTitle = \"$:/language/Modals/Download\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar ManualDownloadSaver = function(wiki) {\n};\n\nManualDownloadSaver.prototype.save = function(text,method,callback) {\n\t$tw.modal.display(downloadInstructionsTitle,{\n\t\tdownloadLink: \"data:text/html,\" + encodeURIComponent(text)\n\t});\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nManualDownloadSaver.prototype.info = {\n\tname: \"manualdownload\",\n\tpriority: 0,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new ManualDownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/msdownload.js": {
"title": "$:/core/modules/savers/msdownload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/msdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via window.navigator.msSaveBlob()\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar MsDownloadSaver = function(wiki) {\n};\n\nMsDownloadSaver.prototype.save = function(text,method,callback) {\n\t// Get the current filename\n\tvar filename = \"tiddlywiki.html\",\n\t\tp = document.location.pathname.lastIndexOf(\"/\");\n\tif(p !== -1) {\n\t\tfilename = document.location.pathname.substr(p+1);\n\t}\n\t// Set up the link\n\tvar blob = new Blob([text], {type: \"text/html\"});\n\twindow.navigator.msSaveBlob(blob,filename);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nMsDownloadSaver.prototype.info = {\n\tname: \"msdownload\",\n\tpriority: 110,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.navigator.msSaveBlob;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new MsDownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/put.js": {
"title": "$:/core/modules/savers/put.js",
"text": "/*\\\ntitle: $:/core/modules/savers/put.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by performing a PUT request to the server\n\nWorks with any server which accepts a PUT request\nto the current URL, such as a WebDAV server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRetrieve ETag if available\n*/\nvar retrieveETag = function(self) {\n\tvar headers = {\n\t\tAccept: \"*/*;charset=UTF-8\"\n\t};\n\t$tw.utils.httpRequest({\n\t\turl: self.uri(),\n\t\ttype: \"HEAD\",\n\t\theaders: headers,\n\t\tcallback: function(err,data,xhr) {\n\t\t\tif(err) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar etag = xhr.getResponseHeader(\"ETag\");\n\t\t\tif(!etag) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tself.etag = etag.replace(/^W\\//,\"\");\n\t\t}\n\t});\n};\n\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar PutSaver = function(wiki) {\n\tthis.wiki = wiki;\n\tvar self = this;\n\tvar uri = this.uri();\n\t// Async server probe. Until probe finishes, save will fail fast\n\t// See also https://github.com/Jermolene/TiddlyWiki5/issues/2276\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"OPTIONS\",\n\t\tcallback: function(err,data,xhr) {\n\t\t\t// Check DAV header http://www.webdav.org/specs/rfc2518.html#rfc.section.9.1\n\t\t\tif(!err) {\n\t\t\t\tself.serverAcceptsPuts = xhr.status === 200 && !!xhr.getResponseHeader(\"dav\");\n\t\t\t}\n\t\t}\n\t});\n\tretrieveETag(this);\n};\n\nPutSaver.prototype.uri = function() {\n\treturn document.location.toString().split(\"#\")[0];\n};\n\n// TODO: in case of edit conflict\n// Prompt: Do you want to save over this? Y/N\n// Merging would be ideal, and may be possible using future generic merge flow\nPutSaver.prototype.save = function(text,method,callback) {\n\tif(!this.serverAcceptsPuts) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tvar headers = {\n\t\t\"Content-Type\": \"text/html;charset=UTF-8\"\n\t};\n\tif(this.etag) {\n\t\theaders[\"If-Match\"] = this.etag;\n\t}\n\t$tw.utils.httpRequest({\n\t\turl: this.uri(),\n\t\ttype: \"PUT\",\n\t\theaders: headers,\n\t\tdata: text,\n\t\tcallback: function(err,data,xhr) {\n\t\t\tif(err) {\n\t\t\t\t// response is textual: \"XMLHttpRequest error code: 412\"\n\t\t\t\tvar status = Number(err.substring(err.indexOf(':') + 2, err.length))\n\t\t\t\tif(status === 412) { // edit conflict\n\t\t\t\t\tvar message = $tw.language.getString(\"Error/EditConflict\");\n\t\t\t\t\tcallback(message);\n\t\t\t\t} else {\n\t\t\t\t\tcallback(err); // fail\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.etag = xhr.getResponseHeader(\"ETag\");\n\t\t\t\tif(self.etag == null) {\n\t\t\t\t\tretrieveETag(self);\n\t\t\t\t}\n\t\t\t\tcallback(null); // success\n\t\t\t}\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nPutSaver.prototype.info = {\n\tname: \"put\",\n\tpriority: 2000,\n\tcapabilities: [\"save\",\"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn /^https?:/.test(location.protocol);\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new PutSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/tiddlyfox.js": {
"title": "$:/core/modules/savers/tiddlyfox.js",
"text": "/*\\\ntitle: $:/core/modules/savers/tiddlyfox.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TiddlyFox file extension\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TiddlyFoxSaver = function(wiki) {\n};\n\nTiddlyFoxSaver.prototype.save = function(text,method,callback) {\n\tvar messageBox = document.getElementById(\"tiddlyfox-message-box\");\n\tif(messageBox) {\n\t\t// Get the pathname of this document\n\t\tvar pathname = document.location.toString().split(\"#\")[0];\n\t\t// Replace file://localhost/ with file:///\n\t\tif(pathname.indexOf(\"file://localhost/\") === 0) {\n\t\t\tpathname = \"file://\" + pathname.substr(16);\n\t\t}\n\t\t// Windows path file:///x:/blah/blah --> x:\\blah\\blah\n\t\tif(/^file\\:\\/\\/\\/[A-Z]\\:\\//i.test(pathname)) {\n\t\t\t// Remove the leading slash and convert slashes to backslashes\n\t\t\tpathname = pathname.substr(8).replace(/\\//g,\"\\\\\");\n\t\t// Firefox Windows network path file://///server/share/blah/blah --> //server/share/blah/blah\n\t\t} else if(pathname.indexOf(\"file://///\") === 0) {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(10)).replace(/\\//g,\"\\\\\");\n\t\t// Mac/Unix local path file:///path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:///\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(7));\n\t\t// Mac/Unix local path file:/path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:/\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(5));\n\t\t// Otherwise Windows networth path file://server/share/path/path --> \\\\server\\share\\path\\path\n\t\t} else {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(7)).replace(new RegExp(\"/\",\"g\"),\"\\\\\");\n\t\t}\n\t\t// Create the message element and put it in the message box\n\t\tvar message = document.createElement(\"div\");\n\t\tmessage.setAttribute(\"data-tiddlyfox-path\",decodeURIComponent(pathname));\n\t\tmessage.setAttribute(\"data-tiddlyfox-content\",text);\n\t\tmessageBox.appendChild(message);\n\t\t// Add an event handler for when the file has been saved\n\t\tmessage.addEventListener(\"tiddlyfox-have-saved-file\",function(event) {\n\t\t\tcallback(null);\n\t\t}, false);\n\t\t// Create and dispatch the custom event to the extension\n\t\tvar event = document.createEvent(\"Events\");\n\t\tevent.initEvent(\"tiddlyfox-save-file\",true,false);\n\t\tmessage.dispatchEvent(event);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyFoxSaver.prototype.info = {\n\tname: \"tiddlyfox\",\n\tpriority: 1500,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyFoxSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/tiddlyie.js": {
"title": "$:/core/modules/savers/tiddlyie.js",
"text": "/*\\\ntitle: $:/core/modules/savers/tiddlyie.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via Internet Explorer BHO extenion (TiddlyIE)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar TiddlyIESaver = function(wiki) {\n};\n\nTiddlyIESaver.prototype.save = function(text,method,callback) {\n\t// Check existence of TiddlyIE BHO extension (note: only works after document is complete)\n\tif(typeof(window.TiddlyIE) != \"undefined\") {\n\t\t// Get the pathname of this document\n\t\tvar pathname = unescape(document.location.pathname);\n\t\t// Test for a Windows path of the form /x:/blah...\n\t\tif(/^\\/[A-Z]\\:\\/[^\\/]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+ (is this better?: ^/[a-z]:/[^/]+(/[^/]+)*\\.[^/]+ )\n\t\t\t// Remove the leading slash\n\t\t\tpathname = pathname.substr(1);\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t} else if(document.hostname !== \"\" && /^\\/[^\\/]+\\/[^\\/]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t\t// reconstruct UNC path\n\t\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t\t} else return false;\n\t\t// Prompt the user to save the file\n\t\twindow.TiddlyIE.save(pathname, text);\n\t\t// Callback that we succeeded\n\t\tcallback(null);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyIESaver.prototype.info = {\n\tname: \"tiddlyiesaver\",\n\tpriority: 1500,\n\tcapabilities: [\"save\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn (window.location.protocol === \"file:\");\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyIESaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/twedit.js": {
"title": "$:/core/modules/savers/twedit.js",
"text": "/*\\\ntitle: $:/core/modules/savers/twedit.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TWEdit iOS app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TWEditSaver = function(wiki) {\n};\n\nTWEditSaver.prototype.save = function(text,method,callback) {\n\t// Bail if we're not running under TWEdit\n\tif(typeof DeviceInfo !== \"object\") {\n\t\treturn false;\n\t}\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.pathname);\n\t// Strip any query or location part\n\tvar p = pathname.indexOf(\"?\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\tp = pathname.indexOf(\"#\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\t// Remove the leading \"/Documents\" from path\n\tvar prefix = \"/Documents\";\n\tif(pathname.indexOf(prefix) === 0) {\n\t\tpathname = pathname.substr(prefix.length);\n\t}\n\t// Error handler\n\tvar errorHandler = function(event) {\n\t\t// Error\n\t\tcallback($tw.language.getString(\"Error/SavingToTWEdit\") + \": \" + event.target.error.code);\n\t};\n\t// Get the file system\n\twindow.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem) {\n\t\t// Now we've got the filesystem, get the fileEntry\n\t\tfileSystem.root.getFile(pathname, {create: true}, function(fileEntry) {\n\t\t\t// Now we've got the fileEntry, create the writer\n\t\t\tfileEntry.createWriter(function(writer) {\n\t\t\t\twriter.onerror = errorHandler;\n\t\t\t\twriter.onwrite = function() {\n\t\t\t\t\tcallback(null);\n\t\t\t\t};\n\t\t\t\twriter.position = 0;\n\t\t\t\twriter.write(text);\n\t\t\t},errorHandler);\n\t\t}, errorHandler);\n\t}, errorHandler);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nTWEditSaver.prototype.info = {\n\tname: \"twedit\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TWEditSaver(wiki);\n};\n\n/////////////////////////// Hack\n// HACK: This ensures that TWEdit recognises us as a TiddlyWiki document\nif($tw.browser) {\n\twindow.version = {title: \"TiddlyWiki\"};\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/upload.js": {
"title": "$:/core/modules/savers/upload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/upload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via upload to a server.\n\nDesigned to be compatible with BidiX's UploadPlugin at http://tiddlywiki.bidix.info/#UploadPlugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar UploadSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nUploadSaver.prototype.save = function(text,method,callback) {\n\t// Get the various parameters we need\n\tvar backupDir = this.wiki.getTextReference(\"$:/UploadBackupDir\") || \".\",\n\t\tusername = this.wiki.getTextReference(\"$:/UploadName\"),\n\t\tpassword = $tw.utils.getPassword(\"upload\"),\n\t\tuploadDir = this.wiki.getTextReference(\"$:/UploadDir\") || \".\",\n\t\tuploadFilename = this.wiki.getTextReference(\"$:/UploadFilename\") || \"index.html\",\n\t\turl = this.wiki.getTextReference(\"$:/UploadURL\");\n\t// Bail out if we don't have the bits we need\n\tif(!username || username.toString().trim() === \"\" || !password || password.toString().trim() === \"\") {\n\t\treturn false;\n\t}\n\t// Construct the url if not provided\n\tif(!url) {\n\t\turl = \"http://\" + username + \".tiddlyspot.com/store.cgi\";\n\t}\n\t// Assemble the header\n\tvar boundary = \"---------------------------\" + \"AaB03x\";\t\n\tvar uploadFormName = \"UploadPlugin\";\n\tvar head = [];\n\thead.push(\"--\" + boundary + \"\\r\\nContent-disposition: form-data; name=\\\"UploadPlugin\\\"\\r\\n\");\n\thead.push(\"backupDir=\" + backupDir + \";user=\" + username + \";password=\" + password + \";uploaddir=\" + uploadDir + \";;\"); \n\thead.push(\"\\r\\n\" + \"--\" + boundary);\n\thead.push(\"Content-disposition: form-data; name=\\\"userfile\\\"; filename=\\\"\" + uploadFilename + \"\\\"\");\n\thead.push(\"Content-Type: text/html;charset=UTF-8\");\n\thead.push(\"Content-Length: \" + text.length + \"\\r\\n\");\n\thead.push(\"\");\n\t// Assemble the tail and the data itself\n\tvar tail = \"\\r\\n--\" + boundary + \"--\\r\\n\",\n\t\tdata = head.join(\"\\r\\n\") + text + tail;\n\t// Do the HTTP post\n\tvar http = new XMLHttpRequest();\n\thttp.open(\"POST\",url,true,username,password);\n\thttp.setRequestHeader(\"Content-Type\",\"multipart/form-data; charset=UTF-8; boundary=\" + boundary);\n\thttp.onreadystatechange = function() {\n\t\tif(http.readyState == 4 && http.status == 200) {\n\t\t\tif(http.responseText.substr(0,4) === \"0 - \") {\n\t\t\t\tcallback(null);\n\t\t\t} else {\n\t\t\t\tcallback(http.responseText);\n\t\t\t}\n\t\t}\n\t};\n\ttry {\n\t\thttp.send(data);\n\t} catch(ex) {\n\t\treturn callback($tw.language.getString(\"Error/Caption\") + \":\" + ex);\n\t}\n\t$tw.notifier.display(\"$:/language/Notifications/Save/Starting\");\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nUploadSaver.prototype.info = {\n\tname: \"upload\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new UploadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/server/authenticators/basic.js": {
"title": "$:/core/modules/server/authenticators/basic.js",
"text": "/*\\\ntitle: $:/core/modules/server/authenticators/basic.js\ntype: application/javascript\nmodule-type: authenticator\n\nAuthenticator for WWW basic authentication\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\");\n}\n\nfunction BasicAuthenticator(server) {\n\tthis.server = server;\n\tthis.credentialsData = [];\n}\n\n/*\nReturns true if the authenticator is active, false if it is inactive, or a string if there is an error\n*/\nBasicAuthenticator.prototype.init = function() {\n\t// Read the credentials data\n\tthis.credentialsFilepath = this.server.get(\"credentials\");\n\tif(this.credentialsFilepath) {\n\t\tvar resolveCredentialsFilepath = path.resolve(this.server.boot.wikiPath,this.credentialsFilepath);\n\t\tif(fs.existsSync(resolveCredentialsFilepath) && !fs.statSync(resolveCredentialsFilepath).isDirectory()) {\n\t\t\tvar credentialsText = fs.readFileSync(resolveCredentialsFilepath,\"utf8\"),\n\t\t\t\tcredentialsData = $tw.utils.parseCsvStringWithHeader(credentialsText);\n\t\t\tif(typeof credentialsData === \"string\") {\n\t\t\t\treturn \"Error: \" + credentialsData + \" reading credentials from '\" + resolveCredentialsFilepath + \"'\";\n\t\t\t} else {\n\t\t\t\tthis.credentialsData = credentialsData;\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"Error: Unable to load user credentials from '\" + resolveCredentialsFilepath + \"'\";\n\t\t}\n\t}\n\t// Add the hardcoded username and password if specified\n\tif(this.server.get(\"username\") && this.server.get(\"password\")) {\n\t\tthis.credentialsData = this.credentialsData || [];\n\t\tthis.credentialsData.push({\n\t\t\tusername: this.server.get(\"username\"),\n\t\t\tpassword: this.server.get(\"password\")\n\t\t});\n\t}\n\treturn this.credentialsData.length > 0;\n};\n\n/*\nReturns true if the request is authenticated and assigns the \"authenticatedUsername\" state variable.\nReturns false if the request couldn't be authenticated having sent an appropriate response to the browser\n*/\nBasicAuthenticator.prototype.authenticateRequest = function(request,response,state) {\n\t// Extract the incoming username and password from the request\n\tvar header = request.headers.authorization || \"\";\n\tif(!header && state.allowAnon) {\n\t\t// If there's no header and anonymous access is allowed then we don't set authenticatedUsername\n\t\treturn true;\n\t}\n\tvar token = header.split(/\\s+/).pop() || \"\",\n\t\tauth = $tw.utils.base64Decode(token),\n\t\tparts = auth.split(/:/),\n\t\tincomingUsername = parts[0],\n\t\tincomingPassword = parts[1];\n\t// Check that at least one of the credentials matches\n\tvar matchingCredentials = this.credentialsData.find(function(credential) {\n\t\treturn credential.username === incomingUsername && credential.password === incomingPassword;\n\t});\n\tif(matchingCredentials) {\n\t\t// If so, add the authenticated username to the request state\n\t\tstate.authenticatedUsername = incomingUsername;\n\t\treturn true;\n\t} else {\n\t\t// If not, return an authentication challenge\n\t\tresponse.writeHead(401,\"Authentication required\",{\n\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + state.server.servername + '\"'\n\t\t});\n\t\tresponse.end();\n\t\treturn false;\n\t}\n};\n\nexports.AuthenticatorClass = BasicAuthenticator;\n\n})();\n",
"type": "application/javascript",
"module-type": "authenticator"
},
"$:/core/modules/server/authenticators/header.js": {
"title": "$:/core/modules/server/authenticators/header.js",
"text": "/*\\\ntitle: $:/core/modules/server/authenticators/header.js\ntype: application/javascript\nmodule-type: authenticator\n\nAuthenticator for trusted header authentication\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction HeaderAuthenticator(server) {\n\tthis.server = server;\n\tthis.header = server.get(\"authenticated-user-header\") ? server.get(\"authenticated-user-header\").toLowerCase() : undefined;\n}\n\n/*\nReturns true if the authenticator is active, false if it is inactive, or a string if there is an error\n*/\nHeaderAuthenticator.prototype.init = function() {\n\treturn !!this.header;\n};\n\n/*\nReturns true if the request is authenticated and assigns the \"authenticatedUsername\" state variable.\nReturns false if the request couldn't be authenticated having sent an appropriate response to the browser\n*/\nHeaderAuthenticator.prototype.authenticateRequest = function(request,response,state) {\n\t// Otherwise, authenticate as the username in the specified header\n\tvar username = request.headers[this.header];\n\tif(!username && !state.allowAnon) {\n\t\tresponse.writeHead(401,\"Authorization header required to login to '\" + state.server.servername + \"'\");\n\t\tresponse.end();\n\t\treturn false;\n\t} else {\n\t\t// authenticatedUsername will be undefined for anonymous users\n\t\tstate.authenticatedUsername = username;\n\t\treturn true;\n\t}\n};\n\nexports.AuthenticatorClass = HeaderAuthenticator;\n\n})();\n",
"type": "application/javascript",
"module-type": "authenticator"
},
"$:/core/modules/server/routes/delete-tiddler.js": {
"title": "$:/core/modules/server/routes/delete-tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/delete-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nDELETE /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"DELETE\";\n\nexports.path = /^\\/bags\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]);\n\tstate.wiki.deleteTiddler(title);\n\tresponse.writeHead(204, \"OK\", {\n\t\t\"Content-Type\": \"text/plain\"\n\t});\n\tresponse.end();\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-favicon.js": {
"title": "$:/core/modules/server/routes/get-favicon.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-favicon.js\ntype: application/javascript\nmodule-type: route\n\nGET /favicon.ico\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/favicon.ico$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": \"image/x-icon\"});\n\tvar buffer = state.wiki.getTiddlerText(\"$:/favicon.ico\",\"\");\n\tresponse.end(buffer,\"base64\");\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-file.js": {
"title": "$:/core/modules/server/routes/get-file.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-file.js\ntype: application/javascript\nmodule-type: route\n\nGET /files/:filepath\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/files\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar path = require(\"path\"),\n\t\tfs = require(\"fs\"),\n\t\tutil = require(\"util\"),\n\t\tsuppliedFilename = decodeURIComponent(state.params[0]),\n\t\tfilename = path.resolve(state.boot.wikiPath,\"files\",suppliedFilename),\n\t\textension = path.extname(filename);\n\tfs.readFile(filename,function(err,content) {\n\t\tvar status,content,type = \"text/plain\";\n\t\tif(err) {\n\t\t\tconsole.log(\"Error accessing file \" + filename + \": \" + err.toString());\n\t\t\tstatus = 404;\n\t\t\tcontent = \"File '\" + suppliedFilename + \"' not found\";\n\t\t} else {\n\t\t\tstatus = 200;\n\t\t\tcontent = content;\n\t\t\ttype = ($tw.config.fileExtensionInfo[extension] ? $tw.config.fileExtensionInfo[extension].type : \"application/octet-stream\");\n\t\t}\n\t\tresponse.writeHead(status,{\n\t\t\t\"Content-Type\": type\n\t\t});\n\t\tresponse.end(content);\n\t});\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-index.js": {
"title": "$:/core/modules/server/routes/get-index.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-index.js\ntype: application/javascript\nmodule-type: route\n\nGET /\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar zlib = require(\"zlib\");\n\nexports.method = \"GET\";\n\nexports.path = /^\\/$/;\n\nexports.handler = function(request,response,state) {\n\tvar acceptEncoding = request.headers[\"accept-encoding\"];\n\tif(!acceptEncoding) {\n\t\tacceptEncoding = \"\";\n\t}\n\tvar text = state.wiki.renderTiddler(state.server.get(\"root-render-type\"),state.server.get(\"root-tiddler\")),\n\t\tresponseHeaders = {\n\t\t\"Content-Type\": state.server.get(\"root-serve-type\")\n\t};\n\t/*\n\tIf the gzip=yes flag for `listen` is set, check if the user agent permits\n\tcompression. If so, compress our response. Note that we use the synchronous\n\tfunctions from zlib to stay in the imperative style. The current `Server`\n\tdoesn't depend on this, and we may just as well use the async versions.\n\t*/\n\tif(state.server.enableGzip) {\n\t\tif (/\\bdeflate\\b/.test(acceptEncoding)) {\n\t\t\tresponseHeaders[\"Content-Encoding\"] = \"deflate\";\n\t\t\ttext = zlib.deflateSync(text);\n\t\t} else if (/\\bgzip\\b/.test(acceptEncoding)) {\n\t\t\tresponseHeaders[\"Content-Encoding\"] = \"gzip\";\n\t\t\ttext = zlib.gzipSync(text);\n\t\t}\n\t}\n\tresponse.writeHead(200,responseHeaders);\n\tresponse.end(text);\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-login-basic.js": {
"title": "$:/core/modules/server/routes/get-login-basic.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-login-basic.js\ntype: application/javascript\nmodule-type: route\n\nGET /login-basic -- force a Basic Authentication challenge\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/login-basic$/;\n\nexports.handler = function(request,response,state) {\n\tif(!state.authenticatedUsername) {\n\t\t// Challenge if there's no username\n\t\tresponse.writeHead(401,{\n\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + state.server.servername + '\"'\n\t\t});\n\t\tresponse.end();\t\t\n\t} else {\n\t\t// Redirect to the root wiki if login worked\n\t\tresponse.writeHead(302,{\n\t\t\tLocation: \"/\"\n\t\t});\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-status.js": {
"title": "$:/core/modules/server/routes/get-status.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-status.js\ntype: application/javascript\nmodule-type: route\n\nGET /status\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/status$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\tvar text = JSON.stringify({\n\t\tusername: state.authenticatedUsername || state.server.get(\"anon-username\") || \"\",\n\t\tanonymous: !state.authenticatedUsername,\n\t\tread_only: !state.server.isAuthorized(\"writers\",state.authenticatedUsername),\n\t\tspace: {\n\t\t\trecipe: \"default\"\n\t\t},\n\t\ttiddlywiki_version: $tw.version\n\t});\n\tresponse.end(text,\"utf8\");\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-tiddler-html.js": {
"title": "$:/core/modules/server/routes/get-tiddler-html.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddler-html.js\ntype: application/javascript\nmodule-type: route\n\nGET /:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/([^\\/]+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\t\ttiddler = state.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar renderType = tiddler.getFieldString(\"_render_type\"),\n\t\t\trenderTemplate = tiddler.getFieldString(\"_render_template\");\n\t\t// Tiddler fields '_render_type' and '_render_template' overwrite\n\t\t// system wide settings for render type and template\n\t\tif(state.wiki.isSystemTiddler(title)) {\n\t\t\trenderType = renderType || state.server.get(\"system-tiddler-render-type\");\n\t\t\trenderTemplate = renderTemplate || state.server.get(\"system-tiddler-render-template\");\n\t\t} else {\n\t\t\trenderType = renderType || state.server.get(\"tiddler-render-type\");\n\t\t\trenderTemplate = renderTemplate || state.server.get(\"tiddler-render-template\");\n\t\t}\n\t\tvar text = state.wiki.renderTiddler(renderType,renderTemplate,{parseAsInline: true, variables: {currentTiddler: title}});\n\t\t// Naughty not to set a content-type, but it's the easiest way to ensure the browser will see HTML pages as HTML, and accept plain text tiddlers as CSS or JS\n\t\tresponse.writeHead(200);\n\t\tresponse.end(text,\"utf8\");\n\t} else {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-tiddler.js": {
"title": "$:/core/modules/server/routes/get-tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nGET /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\t\ttiddler = state.wiki.getTiddler(title),\n\t\ttiddlerFields = {},\n\t\tknownFields = [\n\t\t\t\"bag\", \"created\", \"creator\", \"modified\", \"modifier\", \"permissions\", \"recipe\", \"revision\", \"tags\", \"text\", \"title\", \"type\", \"uri\"\n\t\t];\n\tif(tiddler) {\n\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\tif(knownFields.indexOf(name) !== -1) {\n\t\t\t\ttiddlerFields[name] = value;\n\t\t\t} else {\n\t\t\t\ttiddlerFields.fields = tiddlerFields.fields || {};\n\t\t\t\ttiddlerFields.fields[name] = value;\n\t\t\t}\n\t\t});\n\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\ttiddlerFields.bag = \"default\";\n\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\tresponse.end(JSON.stringify(tiddlerFields),\"utf8\");\n\t} else {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-tiddlers-json.js": {
"title": "$:/core/modules/server/routes/get-tiddlers-json.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddlers-json.js\ntype: application/javascript\nmodule-type: route\n\nGET /recipes/default/tiddlers.json?filter=<filter>\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_FILTER = \"[all[tiddlers]!is[system]sort[title]]\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers.json$/;\n\nexports.handler = function(request,response,state) {\n\tvar filter = state.queryParameters.filter || DEFAULT_FILTER;\n\tif(state.wiki.getTiddlerText(\"$:/config/Server/AllowAllExternalFilters\") !== \"yes\") {\n\t\tif(state.wiki.getTiddlerText(\"$:/config/Server/ExternalFilters/\" + filter) !== \"yes\") {\n\t\t\tconsole.log(\"Blocked attempt to GET /recipes/default/tiddlers.json with filter: \" + filter);\n\t\t\tresponse.writeHead(403);\n\t\t\tresponse.end();\n\t\t\treturn;\n\t\t}\n\t}\n\tif(state.wiki.getTiddlerText(\"$:/config/SyncSystemTiddlersFromServer\") === \"no\") {\n\t\tfilter += \"+[!is[system]]\";\n\t}\n\tvar excludeFields = (state.queryParameters.exclude || \"text\").split(\",\"),\n\t\ttitles = state.wiki.filterTiddlers(filter);\n\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\tvar tiddlers = [];\n\t$tw.utils.each(titles,function(title) {\n\t\tvar tiddler = state.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tvar tiddlerFields = tiddler.getFieldStrings({exclude: excludeFields});\n\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\ttiddlers.push(tiddlerFields);\n\t\t}\n\t});\n\tvar text = JSON.stringify(tiddlers);\n\tresponse.end(text,\"utf8\");\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/put-tiddler.js": {
"title": "$:/core/modules/server/routes/put-tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/put-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nPUT /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"PUT\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\tfields = JSON.parse(state.data);\n\t// Pull up any subfields in the `fields` object\n\tif(fields.fields) {\n\t\t$tw.utils.each(fields.fields,function(field,name) {\n\t\t\tfields[name] = field;\n\t\t});\n\t\tdelete fields.fields;\n\t}\n\t// Remove any revision field\n\tif(fields.revision) {\n\t\tdelete fields.revision;\n\t}\n\tstate.wiki.addTiddler(new $tw.Tiddler(state.wiki.getCreationFields(),fields,{title: title},state.wiki.getModificationFields()));\n\tvar changeCount = state.wiki.getChangeCount(title).toString();\n\tresponse.writeHead(204, \"OK\",{\n\t\tEtag: \"\\\"default/\" + encodeURIComponent(title) + \"/\" + changeCount + \":\\\"\",\n\t\t\"Content-Type\": \"text/plain\"\n\t});\n\tresponse.end();\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/server.js": {
"title": "$:/core/modules/server/server.js",
"text": "/*\\\ntitle: $:/core/modules/server/server.js\ntype: application/javascript\nmodule-type: library\n\nServe tiddlers over http\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\"),\n\t\tquerystring = require(\"querystring\");\n}\n\n/*\nA simple HTTP server with regexp-based routes\noptions: variables - optional hashmap of variables to set (a misnomer - they are really constant parameters)\n\t\t routes - optional array of routes to use\n\t\t wiki - reference to wiki object\n*/\nfunction Server(options) {\n\tvar self = this;\n\tthis.routes = options.routes || [];\n\tthis.authenticators = options.authenticators || [];\n\tthis.wiki = options.wiki;\n\tthis.boot = options.boot || $tw.boot;\n\tthis.servername = $tw.utils.transliterateToSafeASCII(this.wiki.getTiddlerText(\"$:/SiteTitle\") || \"TiddlyWiki5\");\n\t// Initialise the variables\n\tthis.variables = $tw.utils.extend({},this.defaultVariables);\n\tif(options.variables) {\n\t\tfor(var variable in options.variables) {\n\t\t\tif(options.variables[variable]) {\n\t\t\t\tthis.variables[variable] = options.variables[variable];\n\t\t\t}\n\t\t}\t\t\n\t}\n\t$tw.utils.extend({},this.defaultVariables,options.variables);\n\t// Initialise CSRF\n\tthis.csrfDisable = this.get(\"csrf-disable\") === \"yes\";\n\t// Initialize Gzip compression\n\tthis.enableGzip = this.get(\"gzip\") === \"yes\";\n\t// Initialise authorization\n\tvar authorizedUserName = (this.get(\"username\") && this.get(\"password\")) ? this.get(\"username\") : \"(anon)\";\n\tthis.authorizationPrincipals = {\n\t\treaders: (this.get(\"readers\") || authorizedUserName).split(\",\").map($tw.utils.trim),\n\t\twriters: (this.get(\"writers\") || authorizedUserName).split(\",\").map($tw.utils.trim)\n\t}\n\t// Load and initialise authenticators\n\t$tw.modules.forEachModuleOfType(\"authenticator\", function(title,authenticatorDefinition) {\n\t\t// console.log(\"Loading server route \" + title);\n\t\tself.addAuthenticator(authenticatorDefinition.AuthenticatorClass);\n\t});\n\t// Load route handlers\n\t$tw.modules.forEachModuleOfType(\"route\", function(title,routeDefinition) {\n\t\t// console.log(\"Loading server route \" + title);\n\t\tself.addRoute(routeDefinition);\n\t});\n\t// Initialise the http vs https\n\tthis.listenOptions = null;\n\tthis.protocol = \"http\";\n\tvar tlsKeyFilepath = this.get(\"tls-key\"),\n\t\ttlsCertFilepath = this.get(\"tls-cert\");\n\tif(tlsCertFilepath && tlsKeyFilepath) {\n\t\tthis.listenOptions = {\n\t\t\tkey: fs.readFileSync(path.resolve(this.boot.wikiPath,tlsKeyFilepath),\"utf8\"),\n\t\t\tcert: fs.readFileSync(path.resolve(this.boot.wikiPath,tlsCertFilepath),\"utf8\")\n\t\t};\n\t\tthis.protocol = \"https\";\n\t}\n\tthis.transport = require(this.protocol);\n}\n\nServer.prototype.defaultVariables = {\n\tport: \"8080\",\n\thost: \"127.0.0.1\",\n\t\"root-tiddler\": \"$:/core/save/all\",\n\t\"root-render-type\": \"text/plain\",\n\t\"root-serve-type\": \"text/html\",\n\t\"tiddler-render-type\": \"text/html\",\n\t\"tiddler-render-template\": \"$:/core/templates/server/static.tiddler.html\",\n\t\"system-tiddler-render-type\": \"text/plain\",\n\t\"system-tiddler-render-template\": \"$:/core/templates/wikified-tiddler\",\n\t\"debug-level\": \"none\",\n\t\"gzip\": \"no\"\n};\n\nServer.prototype.get = function(name) {\n\treturn this.variables[name];\n};\n\nServer.prototype.addRoute = function(route) {\n\tthis.routes.push(route);\n};\n\nServer.prototype.addAuthenticator = function(AuthenticatorClass) {\n\t// Instantiate and initialise the authenticator\n\tvar authenticator = new AuthenticatorClass(this),\n\t\tresult = authenticator.init();\n\tif(typeof result === \"string\") {\n\t\t$tw.utils.error(\"Error: \" + result);\n\t} else if(result) {\n\t\t// Only use the authenticator if it initialised successfully\n\t\tthis.authenticators.push(authenticator);\n\t}\n};\n\nServer.prototype.findMatchingRoute = function(request,state) {\n\tfor(var t=0; t<this.routes.length; t++) {\n\t\tvar potentialRoute = this.routes[t],\n\t\t\tpathRegExp = potentialRoute.path,\n\t\t\tpathname = state.urlInfo.pathname,\n\t\t\tmatch;\n\t\tif(state.pathPrefix) {\n\t\t\tif(pathname.substr(0,state.pathPrefix.length) === state.pathPrefix) {\n\t\t\t\tpathname = pathname.substr(state.pathPrefix.length) || \"/\";\n\t\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t\t} else {\n\t\t\t\tmatch = false;\n\t\t\t}\n\t\t} else {\n\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t}\n\t\tif(match && request.method === potentialRoute.method) {\n\t\t\tstate.params = [];\n\t\t\tfor(var p=1; p<match.length; p++) {\n\t\t\t\tstate.params.push(match[p]);\n\t\t\t}\n\t\t\treturn potentialRoute;\n\t\t}\n\t}\n\treturn null;\n};\n\nServer.prototype.methodMappings = {\n\t\"GET\": \"readers\",\n\t\"OPTIONS\": \"readers\",\n\t\"HEAD\": \"readers\",\n\t\"PUT\": \"writers\",\n\t\"POST\": \"writers\",\n\t\"DELETE\": \"writers\"\n};\n\n/*\nCheck whether a given user is authorized for the specified authorizationType (\"readers\" or \"writers\"). Pass null or undefined as the username to check for anonymous access\n*/\nServer.prototype.isAuthorized = function(authorizationType,username) {\n\tvar principals = this.authorizationPrincipals[authorizationType] || [];\n\treturn principals.indexOf(\"(anon)\") !== -1 || (username && (principals.indexOf(\"(authenticated)\") !== -1 || principals.indexOf(username) !== -1));\n}\n\nServer.prototype.requestHandler = function(request,response,options) {\n\toptions = options || {};\n\t// Compose the state object\n\tvar self = this;\n\tvar state = {};\n\tstate.wiki = options.wiki || self.wiki;\n\tstate.boot = options.boot || self.boot;\n\tstate.server = self;\n\tstate.urlInfo = url.parse(request.url);\n\tstate.queryParameters = querystring.parse(state.urlInfo.query);\n\tstate.pathPrefix = options.pathPrefix || this.get(\"path-prefix\") || \"\";\n\t// Get the principals authorized to access this resource\n\tvar authorizationType = this.methodMappings[request.method] || \"readers\";\n\t// Check for the CSRF header if this is a write\n\tif(!this.csrfDisable && authorizationType === \"writers\" && request.headers[\"x-requested-with\"] !== \"TiddlyWiki\") {\n\t\tresponse.writeHead(403,\"'X-Requested-With' header required to login to '\" + this.servername + \"'\");\n\t\tresponse.end();\n\t\treturn;\t\t\n\t}\n\t// Check whether anonymous access is granted\n\tstate.allowAnon = this.isAuthorized(authorizationType,null);\n\t// Authenticate with the first active authenticator\n\tif(this.authenticators.length > 0) {\n\t\tif(!this.authenticators[0].authenticateRequest(request,response,state)) {\n\t\t\t// Bail if we failed (the authenticator will have sent the response)\n\t\t\treturn;\n\t\t}\t\t\n\t}\n\t// Authorize with the authenticated username\n\tif(!this.isAuthorized(authorizationType,state.authenticatedUsername)) {\n\t\tresponse.writeHead(401,\"'\" + state.authenticatedUsername + \"' is not authorized to access '\" + this.servername + \"'\");\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Find the route that matches this path\n\tvar route = self.findMatchingRoute(request,state);\n\t// Optionally output debug info\n\tif(self.get(\"debug-level\") !== \"none\") {\n\t\tconsole.log(\"Request path:\",JSON.stringify(state.urlInfo));\n\t\tconsole.log(\"Request headers:\",JSON.stringify(request.headers));\n\t\tconsole.log(\"authenticatedUsername:\",state.authenticatedUsername);\n\t}\n\t// Return a 404 if we didn't find a route\n\tif(!route) {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Receive the request body if necessary and hand off to the route handler\n\tif(route.bodyFormat === \"stream\" || request.method === \"GET\" || request.method === \"HEAD\") {\n\t\t// Let the route handle the request stream itself\n\t\troute.handler(request,response,state);\n\t} else if(route.bodyFormat === \"string\" || !route.bodyFormat) {\n\t\t// Set the encoding for the incoming request\n\t\trequest.setEncoding(\"utf8\");\n\t\tvar data = \"\";\n\t\trequest.on(\"data\",function(chunk) {\n\t\t\tdata += chunk.toString();\n\t\t});\n\t\trequest.on(\"end\",function() {\n\t\t\tstate.data = data;\n\t\t\troute.handler(request,response,state);\n\t\t});\n\t} else if(route.bodyFormat === \"buffer\") {\n\t\tvar data = [];\n\t\trequest.on(\"data\",function(chunk) {\n\t\t\tdata.push(chunk);\n\t\t});\n\t\trequest.on(\"end\",function() {\n\t\t\tstate.data = Buffer.concat(data);\n\t\t\troute.handler(request,response,state);\n\t\t})\n\t} else {\n\t\tresponse.writeHead(400,\"Invalid bodyFormat \" + route.bodyFormat + \" in route \" + route.method + \" \" + route.path.source);\n\t\tresponse.end();\n\t}\n};\n\n/*\nListen for requests\nport: optional port number (falls back to value of \"port\" variable)\nhost: optional host address (falls back to value of \"host\" variable)\nprefix: optional prefix (falls back to value of \"path-prefix\" variable)\n*/\nServer.prototype.listen = function(port,host,prefix) {\n\tvar self = this;\n\t// Handle defaults for port and host\n\tport = port || this.get(\"port\");\n\thost = host || this.get(\"host\");\n\tprefix = prefix || this.get(\"path-prefix\") || \"\";\n\t// Check for the port being a string and look it up as an environment variable\n\tif(parseInt(port,10).toString() !== port) {\n\t\tport = process.env[port] || 8080;\n\t}\n\t// Warn if required plugins are missing\n\tif(!this.wiki.getTiddler(\"$:/plugins/tiddlywiki/tiddlyweb\") || !this.wiki.getTiddler(\"$:/plugins/tiddlywiki/filesystem\")) {\n\t\t$tw.utils.warning(\"Warning: Plugins required for client-server operation (\\\"tiddlywiki/filesystem\\\" and \\\"tiddlywiki/tiddlyweb\\\") are missing from tiddlywiki.info file\");\n\t}\n\t// Create the server\n\tvar server;\n\tif(this.listenOptions) {\n\t\tserver = this.transport.createServer(this.listenOptions,this.requestHandler.bind(this));\n\t} else {\n\t\tserver = this.transport.createServer(this.requestHandler.bind(this));\n\t}\n\t// Display the port number after we've started listening (the port number might have been specified as zero, in which case we will get an assigned port)\n\tserver.on(\"listening\",function() {\n\t\tvar address = server.address();\n\t\t$tw.utils.log(\"Serving on \" + self.protocol + \"://\" + address.address + \":\" + address.port + prefix,\"brown/orange\");\n\t\t$tw.utils.log(\"(press ctrl-C to exit)\",\"red\");\n\t});\n\t// Listen\n\treturn server.listen(port,host);\n};\n\nexports.Server = Server;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/browser-messaging.js": {
"title": "$:/core/modules/browser-messaging.js",
"text": "/*\\\ntitle: $:/core/modules/browser-messaging.js\ntype: application/javascript\nmodule-type: startup\n\nBrowser message handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"browser-messaging\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*\nLoad a specified url as an iframe and call the callback when it is loaded. If the url is already loaded then the existing iframe instance is used\n*/\nfunction loadIFrame(url,callback) {\n\t// Check if iframe already exists\n\tvar iframeInfo = $tw.browserMessaging.iframeInfoMap[url];\n\tif(iframeInfo) {\n\t\t// We've already got the iframe\n\t\tcallback(null,iframeInfo);\n\t} else {\n\t\t// Create the iframe and save it in the list\n\t\tvar iframe = document.createElement(\"iframe\");\n\t\tiframeInfo = {\n\t\t\turl: url,\n\t\t\tstatus: \"loading\",\n\t\t\tdomNode: iframe\n\t\t};\n\t\t$tw.browserMessaging.iframeInfoMap[url] = iframeInfo;\n\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t// Add the iframe to the DOM and hide it\n\t\tiframe.style.display = \"none\";\n\t\tiframe.setAttribute(\"library\",\"true\");\n\t\tdocument.body.appendChild(iframe);\n\t\t// Set up onload\n\t\tiframe.onload = function() {\n\t\t\tiframeInfo.status = \"loaded\";\n\t\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t\tcallback(null,iframeInfo);\n\t\t};\n\t\tiframe.onerror = function() {\n\t\t\tcallback(\"Cannot load iframe\");\n\t\t};\n\t\ttry {\n\t\t\tiframe.src = url;\n\t\t} catch(ex) {\n\t\t\tcallback(ex);\n\t\t}\n\t}\n}\n\n/*\nUnload library iframe for given url\n*/\nfunction unloadIFrame(url){\n\t$tw.utils.each(document.getElementsByTagName('iframe'), function(iframe) {\n\t\tif(iframe.getAttribute(\"library\") === \"true\" &&\n\t\t iframe.getAttribute(\"src\") === url) {\n\t\t\tiframe.parentNode.removeChild(iframe);\n\t\t}\n\t});\n}\n\nfunction saveIFrameInfoTiddler(iframeInfo) {\n\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),{\n\t\ttitle: \"$:/temp/ServerConnection/\" + iframeInfo.url,\n\t\ttext: iframeInfo.status,\n\t\ttags: [\"$:/tags/ServerConnection\"],\n\t\turl: iframeInfo.url\n\t},$tw.wiki.getModificationFields()));\n}\n\nexports.startup = function() {\n\t// Initialise the store of iframes we've created\n\t$tw.browserMessaging = {\n\t\tiframeInfoMap: {} // Hashmap by URL of {url:,status:\"loading/loaded\",domNode:}\n\t};\n\t// Listen for widget messages to control loading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\tif(url) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers.json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-info\",\n\t\t\t\t\t\t\tinfoTitlePrefix: paramObject.infoTitlePrefix || \"$:/temp/RemoteAssetInfo/\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for widget messages to control unloading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-unload-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\t$tw.browserMessaging.iframeInfoMap[url] = undefined;\n\t\tif(url) {\n\t\t\tunloadIFrame(url);\n\t\t\t$tw.utils.each(\n\t\t\t\t$tw.wiki.filterTiddlers(\"[[$:/temp/ServerConnection/\" + url + \"]] [prefix[$:/temp/RemoteAssetInfo/\" + url + \"/]]\"),\n\t\t\t\tfunction(title) {\n\t\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-from-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url,\n\t\t\ttitle = paramObject.title;\n\t\tif(url && title) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers/\" + encodeURIComponent(title) + \".json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-tiddler\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for window messages from other windows\n\twindow.addEventListener(\"message\",function listener(event){\n\t\t// console.log(\"browser-messaging: \",document.location.toString())\n\t\t// console.log(\"browser-messaging: Received message from\",event.origin);\n\t\t// console.log(\"browser-messaging: Message content\",event.data);\n\t\tswitch(event.data.verb) {\n\t\t\tcase \"GET-RESPONSE\":\n\t\t\t\tif(event.data.status.charAt(0) === \"2\") {\n\t\t\t\t\tif(event.data.cookies) {\n\t\t\t\t\t\tif(event.data.cookies.type === \"save-info\") {\n\t\t\t\t\t\t\tvar tiddlers = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\t\t\t\t\ttitle: event.data.cookies.infoTitlePrefix + event.data.cookies.url + \"/\" + tiddler.title,\n\t\t\t\t\t\t\t\t\t\"original-title\": tiddler.title,\n\t\t\t\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\t\t\t\ttype: \"text/vnd.tiddlywiki\",\n\t\t\t\t\t\t\t\t\t\"original-type\": tiddler.type,\n\t\t\t\t\t\t\t\t\t\"plugin-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-plugin-type\": tiddler[\"plugin-type\"],\n\t\t\t\t\t\t\t\t\t\"module-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-module-type\": tiddler[\"module-type\"],\n\t\t\t\t\t\t\t\t\ttags: [\"$:/tags/RemoteAssetInfo\"],\n\t\t\t\t\t\t\t\t\t\"original-tags\": $tw.utils.stringifyList(tiddler.tags || []),\n\t\t\t\t\t\t\t\t\t\"server-url\": event.data.cookies.url\n\t\t\t\t\t\t\t\t},$tw.wiki.getModificationFields()));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if(event.data.cookies.type === \"save-tiddler\") {\n\t\t\t\t\t\t\tvar tiddler = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t},false);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/commands.js": {
"title": "$:/core/modules/startup/commands.js",
"text": "/*\\\ntitle: $:/core/modules/startup/commands.js\ntype: application/javascript\nmodule-type: startup\n\nCommand processing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"commands\";\nexports.platforms = [\"node\"];\nexports.after = [\"story\"];\nexports.synchronous = false;\n\nexports.startup = function(callback) {\n\t// On the server, start a commander with the command line arguments\n\tvar commander = new $tw.Commander(\n\t\t$tw.boot.argv,\n\t\tfunction(err) {\n\t\t\tif(err) {\n\t\t\t\treturn $tw.utils.error(\"Error: \" + err);\n\t\t\t}\n\t\t\tcallback();\n\t\t},\n\t\t$tw.wiki,\n\t\t{output: process.stdout, error: process.stderr}\n\t);\n\tcommander.execute();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/CSSescape.js": {
"title": "$:/core/modules/startup/CSSescape.js",
"text": "/*\\\ntitle: $:/core/modules/startup/CSSescape.js\ntype: application/javascript\nmodule-type: startup\n\nPolyfill for CSS.escape()\n\n\\*/\n(function(root,factory){\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"css-escape\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */\n// https://github.com/umdjs/umd/blob/master/returnExports.js\nexports.startup = factory(root);\n}(typeof global != 'undefined' ? global : this, function(root) {\n\n\tif (root.CSS && root.CSS.escape) {\n\t\treturn;\n\t}\n\n\t// https://drafts.csswg.org/cssom/#serialize-an-identifier\n\tvar cssEscape = function(value) {\n\t\tif (arguments.length == 0) {\n\t\t\tthrow new TypeError('`CSS.escape` requires an argument.');\n\t\t}\n\t\tvar string = String(value);\n\t\tvar length = string.length;\n\t\tvar index = -1;\n\t\tvar codeUnit;\n\t\tvar result = '';\n\t\tvar firstCodeUnit = string.charCodeAt(0);\n\t\twhile (++index < length) {\n\t\t\tcodeUnit = string.charCodeAt(index);\n\t\t\t// Note: there’s no need to special-case astral symbols, surrogate\n\t\t\t// pairs, or lone surrogates.\n\n\t\t\t// If the character is NULL (U+0000), then the REPLACEMENT CHARACTER\n\t\t\t// (U+FFFD).\n\t\t\tif (codeUnit == 0x0000) {\n\t\t\t\tresult += '\\uFFFD';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is in the range [\\1-\\1F] (U+0001 to U+001F) or is\n\t\t\t\t// U+007F, […]\n\t\t\t\t(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||\n\t\t\t\t// If the character is the first character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039), […]\n\t\t\t\t(index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||\n\t\t\t\t// If the character is the second character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]\n\t\t\t\t(\n\t\t\t\t\tindex == 1 &&\n\t\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 &&\n\t\t\t\t\tfirstCodeUnit == 0x002D\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n\t\t\t\tresult += '\\\\' + codeUnit.toString(16) + ' ';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is the first character and is a `-` (U+002D), and\n\t\t\t\t// there is no second character, […]\n\t\t\t\tindex == 0 &&\n\t\t\t\tlength == 1 &&\n\t\t\t\tcodeUnit == 0x002D\n\t\t\t) {\n\t\t\t\tresult += '\\\\' + string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If the character is not handled by one of the above rules and is\n\t\t\t// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or\n\t\t\t// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to\n\t\t\t// U+005A), or [a-z] (U+0061 to U+007A), […]\n\t\t\tif (\n\t\t\t\tcodeUnit >= 0x0080 ||\n\t\t\t\tcodeUnit == 0x002D ||\n\t\t\t\tcodeUnit == 0x005F ||\n\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 ||\n\t\t\t\tcodeUnit >= 0x0041 && codeUnit <= 0x005A ||\n\t\t\t\tcodeUnit >= 0x0061 && codeUnit <= 0x007A\n\t\t\t) {\n\t\t\t\t// the character itself\n\t\t\t\tresult += string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Otherwise, the escaped character.\n\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character\n\t\t\tresult += '\\\\' + string.charAt(index);\n\n\t\t}\n\t\treturn result;\n\t};\n\n\tif (!root.CSS) {\n\t\troot.CSS = {};\n\t}\n\n\troot.CSS.escape = cssEscape;\n\n}));\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/favicon.js": {
"title": "$:/core/modules/startup/favicon.js",
"text": "/*\\\ntitle: $:/core/modules/startup/favicon.js\ntype: application/javascript\nmodule-type: startup\n\nFavicon handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"favicon\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\t\t\n// Favicon tiddler\nvar FAVICON_TITLE = \"$:/favicon.ico\";\n\nexports.startup = function() {\n\t// Set up the favicon\n\tsetFavicon();\n\t// Reset the favicon when the tiddler changes\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,FAVICON_TITLE)) {\n\t\t\tsetFavicon();\n\t\t}\n\t});\n};\n\nfunction setFavicon() {\n\tvar tiddler = $tw.wiki.getTiddler(FAVICON_TITLE);\n\tif(tiddler) {\n\t\tvar faviconLink = document.getElementById(\"faviconLink\");\n\t\tfaviconLink.setAttribute(\"href\",$tw.utils.makeDataUri(tiddler.fields.text,tiddler.fields.type,tiddler.fields._canonical_uri));\n\t}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/info.js": {
"title": "$:/core/modules/startup/info.js",
"text": "/*\\\ntitle: $:/core/modules/startup/info.js\ntype: application/javascript\nmodule-type: startup\n\nInitialise $:/info tiddlers via $:/temp/info-plugin pseudo-plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"info\";\nexports.before = [\"startup\"];\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nvar TITLE_INFO_PLUGIN = \"$:/temp/info-plugin\";\n\nexports.startup = function() {\n\t// Function to bake the info plugin with new tiddlers\n\tvar updateInfoPlugin = function(tiddlerFieldsArray) {\n\t\t// Get the existing tiddlers\n\t\tvar json = $tw.wiki.getTiddlerData(TITLE_INFO_PLUGIN,{tiddlers: {}});\n\t\t// Add the new ones\n\t\t$tw.utils.each(tiddlerFieldsArray,function(fields) {\n\t\t\tif(fields && fields.title) {\n\t\t\t\tjson.tiddlers[fields.title] = fields;\n\t\t\t}\n\t\t});\n\t\t// Bake the info tiddlers into a plugin. We use the non-standard plugin-type \"info\" because ordinary plugins are only registered asynchronously after being loaded dynamically\n\t\tvar fields = {\n\t\t\ttitle: TITLE_INFO_PLUGIN,\n\t\t\ttype: \"application/json\",\n\t\t\t\"plugin-type\": \"info\",\n\t\t\ttext: JSON.stringify(json,null,$tw.config.preferences.jsonSpaces)\n\t\t};\n\t\t$tw.wiki.addTiddler(new $tw.Tiddler(fields));\n\n\t};\n\t// Collect up the info tiddlers\n\tvar tiddlerFieldsArray = [];\n\t// Give each info module a chance to provide as many info tiddlers as they want as an array, and give them a callback for dynamically updating them\n\t$tw.modules.forEachModuleOfType(\"info\",function(title,moduleExports) {\n\t\tif(moduleExports && moduleExports.getInfoTiddlerFields) {\n\t\t\tArray.prototype.push.apply(tiddlerFieldsArray,moduleExports.getInfoTiddlerFields(updateInfoPlugin));\n\t\t}\n\t});\n\tupdateInfoPlugin(tiddlerFieldsArray);\n\tvar changes = $tw.wiki.readPluginInfo([TITLE_INFO_PLUGIN]);\n\t$tw.wiki.registerPluginTiddlers(\"info\",[TITLE_INFO_PLUGIN]);\n\t$tw.wiki.unpackPluginTiddlers();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/load-modules.js": {
"title": "$:/core/modules/startup/load-modules.js",
"text": "/*\\\ntitle: $:/core/modules/startup/load-modules.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"load-modules\";\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Load modules\n\t$tw.modules.applyMethods(\"utils\",$tw.utils);\n\tif($tw.node) {\n\t\t$tw.modules.applyMethods(\"utils-node\",$tw.utils);\n\t}\n\t$tw.modules.applyMethods(\"global\",$tw);\n\t$tw.modules.applyMethods(\"config\",$tw.config);\n\t$tw.Tiddler.fieldModules = $tw.modules.getModulesByTypeAsHashmap(\"tiddlerfield\");\n\t$tw.modules.applyMethods(\"tiddlermethod\",$tw.Tiddler.prototype);\n\t$tw.modules.applyMethods(\"wikimethod\",$tw.Wiki.prototype);\n\t$tw.wiki.addIndexersToWiki();\n\t$tw.modules.applyMethods(\"tiddlerdeserializer\",$tw.Wiki.tiddlerDeserializerModules);\n\t$tw.macros = $tw.modules.getModulesByTypeAsHashmap(\"macro\");\n\t$tw.wiki.initParsers();\n\t$tw.Commander.initCommands();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/password.js": {
"title": "$:/core/modules/startup/password.js",
"text": "/*\\\ntitle: $:/core/modules/startup/password.js\ntype: application/javascript\nmodule-type: startup\n\nPassword handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"password\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t$tw.rootWidget.addEventListener(\"tm-set-password\",function(event) {\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: $tw.language.getString(\"Encryption/PromptSetPassword\"),\n\t\t\tnoUserName: true,\n\t\t\tsubmitText: $tw.language.getString(\"Encryption/SetPassword\"),\n\t\t\tcanCancel: true,\n\t\t\trepeatPassword: true,\n\t\t\tcallback: function(data) {\n\t\t\t\tif(data) {\n\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t}\n\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t}\n\t\t});\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-clear-password\",function(event) {\n\t\tif($tw.browser) {\n\t\t\tif(!confirm($tw.language.getString(\"Encryption/ConfirmClearPassword\"))) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t$tw.crypto.setPassword(null);\n\t});\n\t// Ensure that $:/isEncrypted is maintained properly\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,\"$:/isEncrypted\")) {\n\t\t\t$tw.crypto.updateCryptoStateTiddler();\n\t\t}\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/plugins.js": {
"title": "$:/core/modules/startup/plugins.js",
"text": "/*\\\ntitle: $:/core/modules/startup/plugins.js\ntype: application/javascript\nmodule-type: startup\n\nStartup logic concerned with managing plugins\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"plugins\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nvar TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE = \"$:/status/RequireReloadDueToPluginChange\";\n\nvar PREFIX_CONFIG_REGISTER_PLUGIN_TYPE = \"$:/config/RegisterPluginType/\";\n\nexports.startup = function() {\n\t$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: \"no\"});\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\t// Work out which of the changed tiddlers are plugins that we need to reregister\n\t\tvar changesToProcess = [],\n\t\t\trequireReloadDueToPluginChange = false;\n\t\t$tw.utils.each(Object.keys(changes),function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\t\trequiresReload = $tw.wiki.doesPluginRequireReload(title);\n\t\t\tif(requiresReload) {\n\t\t\t\trequireReloadDueToPluginChange = true;\n\t\t\t} else if(tiddler) {\n\t\t\t\tvar pluginType = tiddler.fields[\"plugin-type\"];\n\t\t\t\tif($tw.wiki.getTiddlerText(PREFIX_CONFIG_REGISTER_PLUGIN_TYPE + (tiddler.fields[\"plugin-type\"] || \"\"),\"no\") === \"yes\") {\n\t\t\t\t\tchangesToProcess.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t// Issue warning if any of the tiddlers require a reload\n\t\tif(requireReloadDueToPluginChange) {\n\t\t\t$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: \"yes\"});\n\t\t}\n\t\t// Read or delete the plugin info of the changed tiddlers\n\t\tif(changesToProcess.length > 0) {\n\t\t\tvar changes = $tw.wiki.readPluginInfo(changesToProcess);\n\t\t\tif(changes.modifiedPlugins.length > 0 || changes.deletedPlugins.length > 0) {\n\t\t\t\tvar changedShadowTiddlers = {};\n\t\t\t\t// Collect the shadow tiddlers of any deleted plugins\n\t\t\t\t$tw.utils.each(changes.deletedPlugins,function(pluginTitle) {\n\t\t\t\t\tvar pluginInfo = $tw.wiki.getPluginInfo(pluginTitle);\n\t\t\t\t\tif(pluginInfo) {\n\t\t\t\t\t\t$tw.utils.each(Object.keys(pluginInfo.tiddlers),function(title) {\n\t\t\t\t\t\t\tchangedShadowTiddlers[title] = true;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t// Collect the shadow tiddlers of any modified plugins\n\t\t\t\t$tw.utils.each(changes.modifiedPlugins,function(pluginTitle) {\n\t\t\t\t\tvar pluginInfo = $tw.wiki.getPluginInfo(pluginTitle);\n\t\t\t\t\tif(pluginInfo) {\n\t\t\t\t\t\t$tw.utils.each(Object.keys(pluginInfo.tiddlers),function(title) {\n\t\t\t\t\t\t\tchangedShadowTiddlers[title] = false;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t// (Re-)register any modified plugins\n\t\t\t\t$tw.wiki.registerPluginTiddlers(null,changes.modifiedPlugins);\n\t\t\t\t// Unregister any deleted plugins\n\t\t\t\t$tw.wiki.unregisterPluginTiddlers(null,changes.deletedPlugins);\n\t\t\t\t// Unpack the shadow tiddlers\n\t\t\t\t$tw.wiki.unpackPluginTiddlers();\n\t\t\t\t// Queue change events for the changed shadow tiddlers\n\t\t\t\t$tw.utils.each(Object.keys(changedShadowTiddlers),function(title) {\n\t\t\t\t\t$tw.wiki.enqueueTiddlerEvent(title,changedShadowTiddlers[title]);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/render.js": {
"title": "$:/core/modules/startup/render.js",
"text": "/*\\\ntitle: $:/core/modules/startup/render.js\ntype: application/javascript\nmodule-type: startup\n\nTitle, stylesheet and page rendering\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"render\";\nexports.platforms = [\"browser\"];\nexports.after = [\"story\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar PAGE_TITLE_TITLE = \"$:/core/wiki/title\";\nvar PAGE_STYLESHEET_TITLE = \"$:/core/ui/PageStylesheet\";\nvar PAGE_TEMPLATE_TITLE = \"$:/core/ui/RootTemplate\";\n\n// Time (in ms) that we defer refreshing changes to draft tiddlers\nvar DRAFT_TIDDLER_TIMEOUT_TITLE = \"$:/config/Drafts/TypingTimeout\";\nvar THROTTLE_REFRESH_TIMEOUT = 400;\n\nexports.startup = function() {\n\t// Set up the title\n\t$tw.titleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TITLE_TITLE,{document: $tw.fakeDocument, parseAsInline: true});\n\t$tw.titleContainer = $tw.fakeDocument.createElement(\"div\");\n\t$tw.titleWidgetNode.render($tw.titleContainer,null);\n\tdocument.title = $tw.titleContainer.textContent;\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.titleWidgetNode.refresh(changes,$tw.titleContainer,null)) {\n\t\t\tdocument.title = $tw.titleContainer.textContent;\n\t\t}\n\t});\n\t// Set up the styles\n\t$tw.styleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_STYLESHEET_TITLE,{document: $tw.fakeDocument});\n\t$tw.styleContainer = $tw.fakeDocument.createElement(\"style\");\n\t$tw.styleWidgetNode.render($tw.styleContainer,null);\n\t$tw.styleElement = document.createElement(\"style\");\n\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\tdocument.head.insertBefore($tw.styleElement,document.head.firstChild);\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"styleRefresh\",function(changes) {\n\t\tif($tw.styleWidgetNode.refresh(changes,$tw.styleContainer,null)) {\n\t\t\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\t\t}\n\t}));\n\t// Display the $:/core/ui/PageTemplate tiddler to kick off the display\n\t$tw.perf.report(\"mainRender\",function() {\n\t\t$tw.pageWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TEMPLATE_TITLE,{document: document, parentWidget: $tw.rootWidget, recursionMarker: \"no\"});\n\t\t$tw.pageContainer = document.createElement(\"div\");\n\t\t$tw.utils.addClass($tw.pageContainer,\"tc-page-container-wrapper\");\n\t\tdocument.body.insertBefore($tw.pageContainer,document.body.firstChild);\n\t\t$tw.pageWidgetNode.render($tw.pageContainer,null);\n \t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t})();\n\t// Remove any splash screen elements\n\tvar removeList = document.querySelectorAll(\".tc-remove-when-wiki-loaded\");\n\t$tw.utils.each(removeList,function(removeItem) {\n\t\tif(removeItem.parentNode) {\n\t\t\tremoveItem.parentNode.removeChild(removeItem);\n\t\t}\n\t});\n\t// Prepare refresh mechanism\n\tvar deferredChanges = Object.create(null),\n\t\ttimerId;\n\tfunction refresh() {\n\t\t// Process the refresh\n\t\t$tw.hooks.invokeHook(\"th-page-refreshing\");\n\t\t$tw.pageWidgetNode.refresh(deferredChanges);\n\t\tdeferredChanges = Object.create(null);\n\t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t}\n\t// Add the change event handler\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"mainRefresh\",function(changes) {\n\t\t// Check if only tiddlers that are throttled have changed\n\t\tvar onlyThrottledTiddlersHaveChanged = true;\n\t\tfor(var title in changes) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(!tiddler || !(tiddler.hasField(\"draft.of\") || tiddler.hasField(\"throttle.refresh\"))) {\n\t\t\t\tonlyThrottledTiddlersHaveChanged = false;\n\t\t\t}\n\t\t}\n\t\t// Defer the change if only drafts have changed\n\t\tif(timerId) {\n\t\t\tclearTimeout(timerId);\n\t\t}\n\t\ttimerId = null;\n\t\tif(onlyThrottledTiddlersHaveChanged) {\n\t\t\tvar timeout = parseInt($tw.wiki.getTiddlerText(DRAFT_TIDDLER_TIMEOUT_TITLE,\"\"),10);\n\t\t\tif(isNaN(timeout)) {\n\t\t\t\ttimeout = THROTTLE_REFRESH_TIMEOUT;\n\t\t\t}\n\t\t\ttimerId = setTimeout(refresh,timeout);\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t} else {\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t\trefresh();\n\t\t}\n\t}));\n\t// Fix up the link between the root widget and the page container\n\t$tw.rootWidget.domNodes = [$tw.pageContainer];\n\t$tw.rootWidget.children = [$tw.pageWidgetNode];\n\t// Run any post-render startup actions\n\t$tw.rootWidget.invokeActionsByTag(\"$:/tags/StartupAction/PostRender\");\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/rootwidget.js": {
"title": "$:/core/modules/startup/rootwidget.js",
"text": "/*\\\ntitle: $:/core/modules/startup/rootwidget.js\ntype: application/javascript\nmodule-type: startup\n\nSetup the root widget and the core root widget handlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"rootwidget\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.before = [\"story\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Install the modal message mechanism\n\t$tw.modal = new $tw.utils.Modal($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-modal\",function(event) {\n\t\t$tw.modal.display(event.param,{variables: event.paramObject, event: event});\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-show-switcher\",function(event) {\n\t\t$tw.modal.display(\"$:/core/ui/SwitcherModal\",{variables: event.paramObject, event: event});\n\t});\t\n\t// Install the notification mechanism\n\t$tw.notifier = new $tw.utils.Notifier($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-notify\",function(event) {\n\t\t$tw.notifier.display(event.param,{variables: event.paramObject});\n\t});\n\t// Install the copy-to-clipboard mechanism\n\t$tw.rootWidget.addEventListener(\"tm-copy-to-clipboard\",function(event) {\n\t\t$tw.utils.copyToClipboard(event.param);\n\t});\n\t// Install the tm-focus-selector message\n\t$tw.rootWidget.addEventListener(\"tm-focus-selector\",function(event) {\n\t\tvar selector = event.param || \"\",\n\t\t\telement;\n\t\ttry {\n\t\t\telement = document.querySelector(selector);\n\t\t} catch(e) {\n\t\t\tconsole.log(\"Error in selector: \",selector)\n\t\t}\n\t\tif(element && element.focus) {\n\t\t\telement.focus(event.paramObject);\n\t\t}\n\t});\n\t// Install the scroller\n\t$tw.pageScroller = new $tw.utils.PageScroller();\n\t$tw.rootWidget.addEventListener(\"tm-scroll\",function(event) {\n\t\t$tw.pageScroller.handleEvent(event);\n\t});\n\tvar fullscreen = $tw.utils.getFullScreenApis();\n\tif(fullscreen) {\n\t\t$tw.rootWidget.addEventListener(\"tm-full-screen\",function(event) {\n\t\t\tvar fullScreenDocument = event.event ? event.event.target.ownerDocument : document;\n\t\t\tif(event.param === \"enter\") {\n\t\t\t\tfullScreenDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t} else if(event.param === \"exit\") {\n\t\t\t\tfullScreenDocument[fullscreen._exitFullscreen]();\n\t\t\t} else {\n\t\t\t\tif(fullScreenDocument[fullscreen._fullscreenElement]) {\n\t\t\t\t\tfullScreenDocument[fullscreen._exitFullscreen]();\n\t\t\t\t} else {\n\t\t\t\t\tfullScreenDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\t// If we're being viewed on a data: URI then give instructions for how to save\n\tif(document.location.protocol === \"data:\") {\n\t\t$tw.rootWidget.dispatchEvent({\n\t\t\ttype: \"tm-modal\",\n\t\t\tparam: \"$:/language/Modals/SaveInstructions\"\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup.js": {
"title": "$:/core/modules/startup.js",
"text": "/*\\\ntitle: $:/core/modules/startup.js\ntype: application/javascript\nmodule-type: startup\n\nMiscellaneous startup logic for both the client and server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"startup\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\n// Set to `true` to enable performance instrumentation\nvar PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE = \"$:/config/Performance/Instrumentation\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.startup = function() {\n\tvar modules,n,m,f;\n\t// Minimal browser detection\n\tif($tw.browser) {\n\t\t$tw.browser.isIE = (/msie|trident/i.test(navigator.userAgent));\n\t\t$tw.browser.isFirefox = !!document.mozFullScreenEnabled;\n\t}\n\t// Platform detection\n\t$tw.platform = {};\n\tif($tw.browser) {\n\t\t$tw.platform.isMac = /Mac/.test(navigator.platform);\n\t\t$tw.platform.isWindows = /win/i.test(navigator.platform);\n\t\t$tw.platform.isLinux = /Linux/i.test(navigator.platform);\n\t} else {\n\t\tswitch(require(\"os\").platform()) {\n\t\t\tcase \"darwin\":\n\t\t\t\t$tw.platform.isMac = true;\n\t\t\t\tbreak;\n\t\t\tcase \"win32\":\n\t\t\t\t$tw.platform.isWindows = true;\n\t\t\t\tbreak;\n\t\t\tcase \"freebsd\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t\tcase \"linux\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t// Initialise version\n\t$tw.version = $tw.utils.extractVersionInfo();\n\t// Set up the performance framework\n\t$tw.perf = new $tw.Performance($tw.wiki.getTiddlerText(PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE,\"no\") === \"yes\");\n\t// Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers\n\t$tw.rootWidget = new widget.widget({\n\t\ttype: \"widget\",\n\t\tchildren: []\n\t},{\n\t\twiki: $tw.wiki,\n\t\tdocument: $tw.browser ? document : $tw.fakeDocument\n\t});\n\t// Execute any startup actions\n\t$tw.rootWidget.invokeActionsByTag(\"$:/tags/StartupAction\");\n\tif($tw.browser) {\n\t\t$tw.rootWidget.invokeActionsByTag(\"$:/tags/StartupAction/Browser\");\t\t\n\t}\n\tif($tw.node) {\n\t\t$tw.rootWidget.invokeActionsByTag(\"$:/tags/StartupAction/Node\");\t\t\n\t}\n\t// Kick off the language manager and switcher\n\t$tw.language = new $tw.Language();\n\t$tw.languageSwitcher = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"language\",\n\t\tcontrollerTitle: \"$:/language\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/languages/en-GB\"\n\t\t],\n\t\tonSwitch: function(plugins) {\n\t\t\tif($tw.browser) {\n\t\t\t\tvar pluginTiddler = $tw.wiki.getTiddler(plugins[0]);\n\t\t\t\tif(pluginTiddler) {\n\t\t\t\t\tdocument.documentElement.setAttribute(\"dir\",pluginTiddler.getFieldString(\"text-direction\") || \"auto\");\n\t\t\t\t} else {\n\t\t\t\t\tdocument.documentElement.removeAttribute(\"dir\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Kick off the theme manager\n\t$tw.themeManager = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"theme\",\n\t\tcontrollerTitle: \"$:/theme\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/themes/tiddlywiki/snowwhite\",\n\t\t\t\"$:/themes/tiddlywiki/vanilla\"\n\t\t]\n\t});\n\t// Kick off the keyboard manager\n\t$tw.keyboardManager = new $tw.KeyboardManager();\n\t// Listen for shortcuts\n\tif($tw.browser) {\n\t\t$tw.utils.addEventListeners(document,[{\n\t\t\tname: \"keydown\",\n\t\t\thandlerObject: $tw.keyboardManager,\n\t\t\thandlerMethod: \"handleKeydownEvent\"\n\t\t}]);\n\t}\n\t// Clear outstanding tiddler store change events to avoid an unnecessary refresh cycle at startup\n\t$tw.wiki.clearTiddlerEventQueue();\n\t// Find a working syncadaptor\n\t$tw.syncadaptor = undefined;\n\t$tw.modules.forEachModuleOfType(\"syncadaptor\",function(title,module) {\n\t\tif(!$tw.syncadaptor && module.adaptorClass) {\n\t\t\t$tw.syncadaptor = new module.adaptorClass({wiki: $tw.wiki});\n\t\t}\n\t});\n\t// Set up the syncer object if we've got a syncadaptor\n\tif($tw.syncadaptor) {\n\t\t$tw.syncer = new $tw.Syncer({wiki: $tw.wiki, syncadaptor: $tw.syncadaptor});\n\t}\n\t// Setup the saver handler\n\t$tw.saverHandler = new $tw.SaverHandler({\n\t\twiki: $tw.wiki,\n\t\tdirtyTracking: !$tw.syncadaptor,\n\t\tpreloadDirty: $tw.boot.preloadDirty || []\n\t});\n\t// Host-specific startup\n\tif($tw.browser) {\n\t\t// Install the popup manager\n\t\t$tw.popup = new $tw.utils.Popup();\n\t\t// Install the animator\n\t\t$tw.anim = new $tw.utils.Animator();\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/story.js": {
"title": "$:/core/modules/startup/story.js",
"text": "/*\\\ntitle: $:/core/modules/startup/story.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"story\";\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar DEFAULT_STORY_TITLE = \"$:/StoryList\";\nvar DEFAULT_HISTORY_TITLE = \"$:/HistoryList\";\n\n// Default tiddlers\nvar DEFAULT_TIDDLERS_TITLE = \"$:/DefaultTiddlers\";\n\n// Config\nvar CONFIG_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/UpdateAddressBar\"; // Can be \"no\", \"permalink\", \"permaview\"\nvar CONFIG_UPDATE_HISTORY = \"$:/config/Navigation/UpdateHistory\"; // Can be \"yes\" or \"no\"\nvar CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD = \"$:/config/Navigation/Permalinkview/CopyToClipboard\"; // Can be \"yes\" (default) or \"no\"\nvar CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/Permalinkview/UpdateAddressBar\"; // Can be \"yes\" (default) or \"no\"\n\n\n// Links to help, if there is no param\nvar HELP_OPEN_EXTERNAL_WINDOW = \"http://tiddlywiki.com/#WidgetMessage%3A%20tm-open-external-window\";\n\nexports.startup = function() {\n\t// Open startup tiddlers\n\topenStartupTiddlers({\n\t\tdisableHistory: $tw.boot.disableStartupNavigation\n\t});\n\tif($tw.browser) {\n\t\t// Set up location hash update\n\t\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\t\tif($tw.utils.hop(changes,DEFAULT_STORY_TITLE) || $tw.utils.hop(changes,DEFAULT_HISTORY_TITLE)) {\n\t\t\t\tupdateLocationHash({\n\t\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_UPDATE_ADDRESS_BAR,\"permaview\").trim(),\n\t\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim()\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\t// Listen for changes to the browser location hash\n\t\twindow.addEventListener(\"hashchange\",function() {\n\t\t\tvar hash = $tw.utils.getLocationHash();\n\t\t\tif(hash !== $tw.locationHash) {\n\t\t\t\t$tw.locationHash = hash;\n\t\t\t\topenStartupTiddlers({defaultToCurrentStory: true});\n\t\t\t}\n\t\t},false);\n\t\t// Listen for the tm-browser-refresh message\n\t\t$tw.rootWidget.addEventListener(\"tm-browser-refresh\",function(event) {\n\t\t\twindow.location.reload(true);\n\t\t});\n\t\t// Listen for tm-open-external-window message\n\t\t$tw.rootWidget.addEventListener(\"tm-open-external-window\",function(event) {\n\t\t\tvar paramObject = event.paramObject || {},\n\t\t\t\tstrUrl = event.param || HELP_OPEN_EXTERNAL_WINDOW,\n\t\t\t\tstrWindowName = paramObject.windowName,\n\t\t\t\tstrWindowFeatures = paramObject.windowFeatures;\n\t\t\twindow.open(strUrl, strWindowName, strWindowFeatures);\n\t\t});\n\t\t// Listen for the tm-print message\n\t\t$tw.rootWidget.addEventListener(\"tm-print\",function(event) {\n\t\t\t(event.event.view || window).print();\n\t\t});\n\t\t// Listen for the tm-home message\n\t\t$tw.rootWidget.addEventListener(\"tm-home\",function(event) {\n\t\t\twindow.location.hash = \"\";\n\t\t\tvar storyFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE),\n\t\t\t\tstoryList = $tw.wiki.filterTiddlers(storyFilter);\n\t\t\t//invoke any hooks that might change the default story list\n\t\t\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t\t\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t\t\tif(storyList[0]) {\n\t\t\t\t$tw.wiki.addToHistory(storyList[0]);\n\t\t\t}\n\t\t});\n\t\t// Listen for the tm-permalink message\n\t\t$tw.rootWidget.addEventListener(\"tm-permalink\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR,\"yes\").trim() === \"yes\" ? \"permalink\" : \"none\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle,\n\t\t\t\tcopyToClipboard: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD,\"yes\").trim() === \"yes\" ? \"permalink\" : \"none\"\n\t\t\t});\n\t\t});\n\t\t// Listen for the tm-permaview message\n\t\t$tw.rootWidget.addEventListener(\"tm-permaview\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR,\"yes\").trim() === \"yes\" ? \"permaview\" : \"none\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle,\n\t\t\t\tcopyToClipboard: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD,\"yes\").trim() === \"yes\" ? \"permaview\" : \"none\"\n\t\t\t});\t\t\t\t\n\t\t});\n\t}\n};\n\n/*\nProcess the location hash to open the specified tiddlers. Options:\ndisableHistory: if true $:/History is NOT updated\ndefaultToCurrentStory: If true, the current story is retained as the default, instead of opening the default tiddlers\n*/\nfunction openStartupTiddlers(options) {\n\toptions = options || {};\n\t// Work out the target tiddler and the story filter. \"null\" means \"unspecified\"\n\tvar target = null,\n\t\tstoryFilter = null;\n\tif($tw.locationHash.length > 1) {\n\t\tvar hash = $tw.locationHash.substr(1),\n\t\t\tsplit = hash.indexOf(\":\");\n\t\tif(split === -1) {\n\t\t\ttarget = decodeURIComponent(hash.trim());\n\t\t} else {\n\t\t\ttarget = decodeURIComponent(hash.substr(0,split).trim());\n\t\t\tstoryFilter = decodeURIComponent(hash.substr(split + 1).trim());\n\t\t}\n\t}\n\t// If the story wasn't specified use the current tiddlers or a blank story\n\tif(storyFilter === null) {\n\t\tif(options.defaultToCurrentStory) {\n\t\t\tvar currStoryList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE);\n\t\t\tstoryFilter = $tw.utils.stringifyList(currStoryList);\n\t\t} else {\n\t\t\tif(target && target !== \"\") {\n\t\t\t\tstoryFilter = \"\";\n\t\t\t} else {\n\t\t\t\tstoryFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE);\n\t\t\t}\n\t\t}\n\t}\n\t// Process the story filter to get the story list\n\tvar storyList = $tw.wiki.filterTiddlers(storyFilter);\n\t// Invoke any hooks that want to change the default story list\n\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t// If the target tiddler isn't included then splice it in at the top\n\tif(target && storyList.indexOf(target) === -1) {\n\t\tstoryList.unshift(target);\n\t}\n\t// Save the story list\n\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t// Update history\n\tvar story = new $tw.Story({\n\t\twiki: $tw.wiki,\n\t\tstoryTitle: DEFAULT_STORY_TITLE,\n\t\thistoryTitle: DEFAULT_HISTORY_TITLE\n\t});\n\tif(!options.disableHistory) {\n\t\t// If a target tiddler was specified add it to the history stack\n\t\tif(target && target !== \"\") {\n\t\t\t// The target tiddler doesn't need double square brackets, but we'll silently remove them if they're present\n\t\t\tif(target.indexOf(\"[[\") === 0 && target.substr(-2) === \"]]\") {\n\t\t\t\ttarget = target.substr(2,target.length - 4);\n\t\t\t}\n\t\t\tstory.addToHistory(target);\n\t\t} else if(storyList.length > 0) {\n\t\t\tstory.addToHistory(storyList[0]);\n\t\t}\t\t\n\t}\n}\n\n/*\noptions: See below\noptions.updateAddressBar: \"permalink\", \"permaview\" or \"no\" (defaults to \"permaview\")\noptions.updateHistory: \"yes\" or \"no\" (defaults to \"no\")\noptions.copyToClipboard: \"permalink\", \"permaview\" or \"no\" (defaults to \"no\")\noptions.targetTiddler: optional title of target tiddler for permalink\n*/\nfunction updateLocationHash(options) {\n\t// Get the story and the history stack\n\tvar storyList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE),\n\t\thistoryList = $tw.wiki.getTiddlerData(DEFAULT_HISTORY_TITLE,[]),\n\t\ttargetTiddler = \"\";\n\tif(options.targetTiddler) {\n\t\ttargetTiddler = options.targetTiddler;\n\t} else {\n\t\t// The target tiddler is the one at the top of the stack\n\t\tif(historyList.length > 0) {\n\t\t\ttargetTiddler = historyList[historyList.length-1].title;\n\t\t}\n\t\t// Blank the target tiddler if it isn't present in the story\n\t\tif(storyList.indexOf(targetTiddler) === -1) {\n\t\t\ttargetTiddler = \"\";\n\t\t}\n\t}\n\t// Assemble the location hash\n\tswitch(options.updateAddressBar) {\n\t\tcase \"permalink\":\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler);\n\t\t\tbreak;\n\t\tcase \"permaview\":\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList));\n\t\t\tbreak;\n\t}\n\t// Copy URL to the clipboard\n\tswitch(options.copyToClipboard) {\n\t\tcase \"permalink\":\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getLocationPath() + \"#\" + encodeURIComponent(targetTiddler));\n\t\t\tbreak;\n\t\tcase \"permaview\":\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getLocationPath() + \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList)));\n\t\t\tbreak;\n\t}\n\t// Only change the location hash if we must, thus avoiding unnecessary onhashchange events\n\tif($tw.utils.getLocationHash() !== $tw.locationHash) {\n\t\tif(options.updateHistory === \"yes\") {\n\t\t\t// Assign the location hash so that history is updated\n\t\t\twindow.location.hash = $tw.locationHash;\n\t\t} else {\n\t\t\t// We use replace so that browser history isn't affected\n\t\t\twindow.location.replace(window.location.toString().split(\"#\")[0] + $tw.locationHash);\n\t\t}\n\t}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/windows.js": {
"title": "$:/core/modules/startup/windows.js",
"text": "/*\\\ntitle: $:/core/modules/startup/windows.js\ntype: application/javascript\nmodule-type: startup\n\nSetup root widget handlers for the messages concerned with opening external browser windows\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"windows\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Global to keep track of open windows (hashmap by title)\n$tw.windows = {};\n\nexports.startup = function() {\n\t// Handle open window message\n\t$tw.rootWidget.addEventListener(\"tm-open-window\",function(event) {\n\t\t// Get the parameters\n\t\tvar refreshHandler,\n\t\t\ttitle = event.param || event.tiddlerTitle,\n\t\t\tparamObject = event.paramObject || {},\n\t\t\twindowTitle = paramObject.windowTitle || title,\n\t\t\ttemplate = paramObject.template || \"$:/core/templates/single.tiddler.window\",\n\t\t\twidth = paramObject.width || \"700\",\n\t\t\theight = paramObject.height || \"600\",\n\t\t\tvariables = $tw.utils.extend({},paramObject,{currentTiddler: title});\n\t\t// Open the window\n\t\tvar srcWindow,\n\t\t srcDocument;\n\t\t// In case that popup blockers deny opening a new window\n\t\ttry {\n\t\t\tsrcWindow = window.open(\"\",\"external-\" + title,\"scrollbars,width=\" + width + \",height=\" + height),\n\t\t\tsrcDocument = srcWindow.document;\n\t\t}\n\t\tcatch(e) {\n\t\t\treturn;\n\t\t}\n\t\t$tw.windows[title] = srcWindow;\n\t\t// Check for reopening the same window\n\t\tif(srcWindow.haveInitialisedWindow) {\n\t\t\treturn;\n\t\t}\n\t\t// Initialise the document\n\t\tsrcDocument.write(\"<html><head></head><body class='tc-body tc-single-tiddler-window'></body></html>\");\n\t\tsrcDocument.close();\n\t\tsrcDocument.title = windowTitle;\n\t\tsrcWindow.addEventListener(\"beforeunload\",function(event) {\n\t\t\tdelete $tw.windows[title];\n\t\t\t$tw.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t},false);\n\t\t// Set up the styles\n\t\tvar styleWidgetNode = $tw.wiki.makeTranscludeWidget(\"$:/core/ui/PageStylesheet\",{\n\t\t\t\tdocument: $tw.fakeDocument,\n\t\t\t\tvariables: variables,\n\t\t\t\timportPageMacros: true}),\n\t\t\tstyleContainer = $tw.fakeDocument.createElement(\"style\");\n\t\tstyleWidgetNode.render(styleContainer,null);\n\t\tvar styleElement = srcDocument.createElement(\"style\");\n\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\tsrcDocument.head.insertBefore(styleElement,srcDocument.head.firstChild);\n\t\t// Render the text of the tiddler\n\t\tvar parser = $tw.wiki.parseTiddler(template),\n\t\t\twidgetNode = $tw.wiki.makeWidget(parser,{document: srcDocument, parentWidget: $tw.rootWidget, variables: variables});\n\t\twidgetNode.render(srcDocument.body,srcDocument.body.firstChild);\n\t\t// Function to handle refreshes\n\t\trefreshHandler = function(changes) {\n\t\t\tif(styleWidgetNode.refresh(changes,styleContainer,null)) {\n\t\t\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\t\t}\n\t\t\twidgetNode.refresh(changes);\n\t\t};\n\t\t$tw.wiki.addEventListener(\"change\",refreshHandler);\n\t\t// Listen for keyboard shortcuts\n\t\t$tw.utils.addEventListeners(srcDocument,[{\n\t\t\tname: \"keydown\",\n\t\t\thandlerObject: $tw.keyboardManager,\n\t\t\thandlerMethod: \"handleKeydownEvent\"\n\t\t}]);\n\t\tsrcWindow.document.documentElement.addEventListener(\"click\",$tw.popup,true);\n\t\tsrcWindow.haveInitialisedWindow = true;\n\t});\n\t// Close open windows when unloading main window\n\t$tw.addUnloadTask(function() {\n\t\t$tw.utils.each($tw.windows,function(win) {\n\t\t\twin.close();\n\t\t});\n\t});\n\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/story.js": {
"title": "$:/core/modules/story.js",
"text": "/*\\\ntitle: $:/core/modules/story.js\ntype: application/javascript\nmodule-type: global\n\nLightweight object for managing interactions with the story and history lists.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nConstruct Story object with options:\nwiki: reference to wiki object to use to resolve tiddler titles\nstoryTitle: title of story list tiddler\nhistoryTitle: title of history list tiddler\n*/\nfunction Story(options) {\n\toptions = options || {};\n\tthis.wiki = options.wiki || $tw.wiki;\n\tthis.storyTitle = options.storyTitle || \"$:/StoryList\";\n\tthis.historyTitle = options.historyTitle || \"$:/HistoryList\";\n};\n\nStory.prototype.navigateTiddler = function(navigateTo,navigateFromTitle,navigateFromClientRect) {\n\tthis.addToStory(navigateTo,navigateFromTitle);\n\tthis.addToHistory(navigateTo,navigateFromClientRect);\n};\n\nStory.prototype.getStoryList = function() {\n\treturn this.wiki.getTiddlerList(this.storyTitle) || [];\n};\n\nStory.prototype.addToStory = function(navigateTo,navigateFromTitle,options) {\n\toptions = options || {};\n\tvar storyList = this.getStoryList();\n\t// See if the tiddler is already there\n\tvar slot = storyList.indexOf(navigateTo);\n\t// Quit if it already exists in the story river\n\tif(slot >= 0) {\n\t\treturn;\n\t}\n\t// First we try to find the position of the story element we navigated from\n\tvar fromIndex = storyList.indexOf(navigateFromTitle);\n\tif(fromIndex >= 0) {\n\t\t// The tiddler is added from inside the river\n\t\t// Determine where to insert the tiddler; Fallback is \"below\"\n\t\tswitch(options.openLinkFromInsideRiver) {\n\t\t\tcase \"top\":\n\t\t\t\tslot = 0;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tslot = storyList.length;\n\t\t\t\tbreak;\n\t\t\tcase \"above\":\n\t\t\t\tslot = fromIndex;\n\t\t\t\tbreak;\n\t\t\tcase \"below\": // Intentional fall-through\n\t\t\tdefault:\n\t\t\t\tslot = fromIndex + 1;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\t// The tiddler is opened from outside the river. Determine where to insert the tiddler; default is \"top\"\n\t\tif(options.openLinkFromOutsideRiver === \"bottom\") {\n\t\t\t// Insert at bottom\n\t\t\tslot = storyList.length;\n\t\t} else {\n\t\t\t// Insert at top\n\t\t\tslot = 0;\n\t\t}\n\t}\n\t// Add the tiddler\n\tstoryList.splice(slot,0,navigateTo);\n\t// Save the story\n\tthis.saveStoryList(storyList);\n};\n\nStory.prototype.saveStoryList = function(storyList) {\n\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList},\n\t\tthis.wiki.getModificationFields()\n\t));\n};\n\nStory.prototype.addToHistory = function(navigateTo,navigateFromClientRect) {\n\tvar titles = $tw.utils.isArray(navigateTo) ? navigateTo : [navigateTo];\n\t// Add a new record to the top of the history stack\n\tvar historyList = this.wiki.getTiddlerData(this.historyTitle,[]);\n\t$tw.utils.each(titles,function(title) {\n\t\thistoryList.push({title: title, fromPageRect: navigateFromClientRect});\n\t});\n\tthis.wiki.setTiddlerData(this.historyTitle,historyList,{\"current-tiddler\": titles[titles.length-1]});\n};\n\nStory.prototype.storyCloseTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCloseAllTiddlers = function() {\n// TBD\n};\n\nStory.prototype.storyCloseOtherTiddlers = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyEditTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyDeleteTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storySaveTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCancelTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyNewTiddler = function(targetTitle) {\n// TBD\n};\n\nexports.Story = Story;\n\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/storyviews/classic.js": {
"title": "$:/core/modules/storyviews/classic.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/classic.js\ntype: application/javascript\nmodule-type: storyview\n\nViews the story as a linear sequence\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ClassicStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nClassicStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration()\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\tif(duration) {\n\t\t// Scroll the node into view\n\t\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\t\n\t} else {\n\t\ttargetElement.scrollIntoView();\n\t}\n};\n\nClassicStoryView.prototype.insert = function(widget) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tif(duration) {\n\t\tvar targetElement = widget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(targetElement instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\t// Get the current height of the tiddler\n\t\tvar computedStyle = window.getComputedStyle(targetElement),\n\t\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t\t// Reset the margin once the transition is over\n\t\tsetTimeout(function() {\n\t\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t\t{transition: \"none\"},\n\t\t\t\t{marginBottom: \"\"}\n\t\t\t]);\n\t\t},duration);\n\t\t// Set up the initial position of the element\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t\t{opacity: \"0.0\"}\n\t\t]);\n\t\t$tw.utils.forceLayout(targetElement);\n\t\t// Transition to the final position\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t\t{opacity: \"1.0\"}\n\t]);\n\t}\n};\n\nClassicStoryView.prototype.remove = function(widget) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tif(duration) {\n\t\tvar targetElement = widget.findFirstDomNode(),\n\t\t\tremoveElement = function() {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t};\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(targetElement instanceof Element)) {\n\t\t\tremoveElement();\n\t\t\treturn;\n\t\t}\n\t\t// Get the current height of the tiddler\n\t\tvar currWidth = targetElement.offsetWidth,\n\t\t\tcomputedStyle = window.getComputedStyle(targetElement),\n\t\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t\t// Remove the dom nodes of the widget at the end of the transition\n\t\tsetTimeout(removeElement,duration);\n\t\t// Animate the closure\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"translateX(0px)\"},\n\t\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t\t{opacity: \"1.0\"}\n\t\t]);\n\t\t$tw.utils.forceLayout(targetElement);\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t\t{transform: \"translateX(-\" + currWidth + \"px)\"},\n\t\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t\t{opacity: \"0.0\"}\n\t\t]);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n};\n\nexports.classic = ClassicStoryView;\n\n})();",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/storyviews/pop.js": {
"title": "$:/core/modules/storyviews/pop.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/pop.js\ntype: application/javascript\nmodule-type: storyview\n\nAnimates list insertions and removals\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar PopStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nPopStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Scroll the node into view\n\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\n};\n\nPopStoryView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Reset once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"none\"}\n\t\t]);\n\t\t$tw.utils.setStyle(widget.document.body,[\n\t\t\t{\"overflow-x\": \"\"}\n\t\t]);\n\t},duration);\n\t// Prevent the page from overscrolling due to the zoom factor\n\t$tw.utils.setStyle(widget.document.body,[\n\t\t{\"overflow-x\": \"hidden\"}\n\t]);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(2)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t// Transition to the final position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nPopStoryView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\tif(targetElement && targetElement.parentNode) {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t}\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Remove the element at the end of the transition\n\tsetTimeout(removeElement,duration);\n\t// Animate the closure\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(0.1)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.pop = PopStoryView;\n\n})();\n",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/storyviews/zoomin.js": {
"title": "$:/core/modules/storyviews/zoomin.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/zoomin.js\ntype: application/javascript\nmodule-type: storyview\n\nZooms between individual tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ZoominListView = function(listWidget) {\n\tvar self = this;\n\tthis.listWidget = listWidget;\n\t// Get the index of the tiddler that is at the top of the history\n\tvar history = this.listWidget.wiki.getTiddlerDataCached(this.listWidget.historyTitle,[]),\n\t\ttargetTiddler;\n\tif(history.length > 0) {\n\t\ttargetTiddler = history[history.length-1].title;\n\t}\n\t// Make all the tiddlers position absolute, and hide all but the top (or first) one\n\t$tw.utils.each(this.listWidget.children,function(itemWidget,index) {\n\t\tvar domNode = itemWidget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(domNode instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\tif((targetTiddler && targetTiddler !== itemWidget.parseTreeNode.itemTitle) || (!targetTiddler && index)) {\n\t\t\tdomNode.style.display = \"none\";\n\t\t} else {\n\t\t\tself.currentTiddlerDomNode = domNode;\n\t\t}\n\t\t$tw.utils.addClass(domNode,\"tc-storyview-zoomin-tiddler\");\n\t});\n};\n\nZoominListView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration(),\n\t\tlistElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the new tiddler be position absolute and visible so that we can measure it\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"0 0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t// Get the position of the source node, or use the centre of the window as the source position\n\tvar sourceBounds = historyInfo.fromPageRect || {\n\t\t\tleft: window.innerWidth/2 - 2,\n\t\t\ttop: window.innerHeight/2 - 2,\n\t\t\twidth: window.innerWidth/8,\n\t\t\theight: window.innerHeight/8\n\t\t};\n\t// Try to find the title node in the target tiddler\n\tvar titleDomNode = findTitleDomNode(listItemWidget) || listItemWidget.findFirstDomNode(),\n\t\tzoomBounds = titleDomNode.getBoundingClientRect();\n\t// Compute the transform for the target tiddler to make the title lie over the source rectange\n\tvar targetBounds = targetElement.getBoundingClientRect(),\n\t\tscale = sourceBounds.width / zoomBounds.width,\n\t\tx = sourceBounds.left - targetBounds.left - (zoomBounds.left - targetBounds.left) * scale,\n\t\ty = sourceBounds.top - targetBounds.top - (zoomBounds.top - targetBounds.top) * scale;\n\t// Transform the target tiddler to its starting position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(targetElement);\n\t// Apply the ending transitions with a timeout to ensure that the previously applied transformations are applied first\n\tvar self = this,\n\t\tprevCurrentTiddler = this.currentTiddlerDomNode;\n\tthis.currentTiddlerDomNode = targetElement;\n\t// Transform the target tiddler to its natural size\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{zIndex: \"500\"},\n\t]);\n\t// Transform the previous tiddler out of the way and then hide it\n\tif(prevCurrentTiddler && prevCurrentTiddler !== targetElement) {\n\t\tscale = zoomBounds.width / sourceBounds.width;\n\t\tx = zoomBounds.left - targetBounds.left - (sourceBounds.left - targetBounds.left) * scale;\n\t\ty = zoomBounds.top - targetBounds.top - (sourceBounds.top - targetBounds.top) * scale;\n\t\t$tw.utils.setStyle(prevCurrentTiddler,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transformOrigin: \"0 0\"},\n\t\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"},\n\t\t\t{zIndex: \"0\"}\n\t\t]);\n\t\t// Hide the tiddler when the transition has finished\n\t\tsetTimeout(function() {\n\t\t\tif(self.currentTiddlerDomNode !== prevCurrentTiddler) {\n\t\t\t\tprevCurrentTiddler.style.display = \"none\";\n\t\t\t}\n\t\t},duration);\n\t}\n\t// Scroll the target into view\n//\t$tw.pageScroller.scrollIntoView(targetElement);\n};\n\n/*\nFind the first child DOM node of a widget that has the class \"tc-title\"\n*/\nfunction findTitleDomNode(widget,targetClass) {\n\ttargetClass = targetClass || \"tc-title\";\n\tvar domNode = widget.findFirstDomNode();\n\tif(domNode && domNode.querySelector) {\n\t\treturn domNode.querySelector(\".\" + targetClass);\n\t}\n\treturn null;\n}\n\nZoominListView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the newly inserted node position absolute and hidden\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"none\"}\n\t]);\n};\n\nZoominListView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\twidget.removeChildDomNodes();\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Abandon if hidden\n\tif(targetElement.style.display != \"block\" ) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Set up the tiddler that is being closed\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\t// We'll move back to the previous or next element in the story\n\tvar toWidget = widget.previousSibling();\n\tif(!toWidget) {\n\t\ttoWidget = widget.nextSibling();\n\t}\n\tvar toWidgetDomNode = toWidget && toWidget.findFirstDomNode();\n\t// Set up the tiddler we're moving back in\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.addClass(toWidgetDomNode,\"tc-storyview-zoomin-tiddler\");\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{display: \"block\"},\n\t\t\t{transformOrigin: \"50% 50%\"},\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(10)\"},\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0\"},\n\t\t\t{zIndex: \"500\"}\n\t\t]);\n\t\tthis.currentTiddlerDomNode = toWidgetDomNode;\n\t}\n\t// Animate them both\n\t// Force layout\n\t$tw.utils.forceLayout(this.listWidget.parentDomNode);\n\t// First, the tiddler we're closing\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(0.1)\"},\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"0\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\tsetTimeout(removeElement,duration);\n\t// Now the tiddler we're going back to\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t\t{opacity: \"1\"}\n\t\t]);\n\t}\n\treturn true; // Indicate that we'll delete the DOM node\n};\n\nexports.zoomin = ZoominListView;\n\n})();\n",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/syncer.js": {
"title": "$:/core/modules/syncer.js",
"text": "/*\\\ntitle: $:/core/modules/syncer.js\ntype: application/javascript\nmodule-type: global\n\nThe syncer tracks changes to the store and synchronises them to a remote data store represented as a \"sync adaptor\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDefaults\n*/\nSyncer.prototype.titleIsLoggedIn = \"$:/status/IsLoggedIn\";\nSyncer.prototype.titleIsAnonymous = \"$:/status/IsAnonymous\";\nSyncer.prototype.titleIsReadOnly = \"$:/status/IsReadOnly\";\nSyncer.prototype.titleUserName = \"$:/status/UserName\";\nSyncer.prototype.titleSyncFilter = \"$:/config/SyncFilter\";\nSyncer.prototype.titleSyncPollingInterval = \"$:/config/SyncPollingInterval\";\nSyncer.prototype.titleSyncDisableLazyLoading = \"$:/config/SyncDisableLazyLoading\";\nSyncer.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\nSyncer.prototype.titleSyncThrottleInterval = \"$:/config/SyncThrottleInterval\";\nSyncer.prototype.taskTimerInterval = 1 * 1000; // Interval for sync timer\nSyncer.prototype.throttleInterval = 1 * 1000; // Defer saving tiddlers if they've changed in the last 1s...\nSyncer.prototype.errorRetryInterval = 5 * 1000; // Interval to retry after an error\nSyncer.prototype.fallbackInterval = 10 * 1000; // Unless the task is older than 10s\nSyncer.prototype.pollTimerInterval = 60 * 1000; // Interval for polling for changes from the adaptor\n\n/*\nInstantiate the syncer with the following options:\nsyncadaptor: reference to syncadaptor to be used\nwiki: wiki to be synced\n*/\nfunction Syncer(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\t// Save parameters\n\tthis.syncadaptor = options.syncadaptor;\n\tthis.disableUI = !!options.disableUI;\n\tthis.titleIsLoggedIn = options.titleIsLoggedIn || this.titleIsLoggedIn;\n\tthis.titleUserName = options.titleUserName || this.titleUserName;\n\tthis.titleSyncFilter = options.titleSyncFilter || this.titleSyncFilter;\n\tthis.titleSavedNotification = options.titleSavedNotification || this.titleSavedNotification;\n\tthis.taskTimerInterval = options.taskTimerInterval || this.taskTimerInterval;\n\tthis.throttleInterval = options.throttleInterval || parseInt(this.wiki.getTiddlerText(this.titleSyncThrottleInterval,\"\"),10) || this.throttleInterval;\n\tthis.errorRetryInterval = options.errorRetryInterval || this.errorRetryInterval;\n\tthis.fallbackInterval = options.fallbackInterval || this.fallbackInterval;\n\tthis.pollTimerInterval = options.pollTimerInterval || parseInt(this.wiki.getTiddlerText(this.titleSyncPollingInterval,\"\"),10) || this.pollTimerInterval;\n\tthis.logging = \"logging\" in options ? options.logging : true;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\") + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\"),{\n\t\tcolour: \"cyan\",\n\t\tenable: this.logging,\n\t\tsaveHistory: true\n\t});\n\t// Make another logger for connection errors\n\tthis.loggerConnection = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\") + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\") + \"-connection\",{\n\t\tcolour: \"cyan\",\n\t\tenable: this.logging\n\t});\n\t// Ask the syncadaptor to use the main logger\n\tif(this.syncadaptor.setLoggerSaveBuffer) {\n\t\tthis.syncadaptor.setLoggerSaveBuffer(this.logger);\n\t}\n\t// Compile the dirty tiddler filter\n\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t// Record information for known tiddlers\n\tthis.readTiddlerInfo();\n\tthis.titlesToBeLoaded = {}; // Hashmap of titles of tiddlers that need loading from the server\n\tthis.titlesHaveBeenLazyLoaded = {}; // Hashmap of titles of tiddlers that have already been lazily loaded from the server\n\t// Timers\n\tthis.taskTimerId = null; // Timer for task dispatch\n\tthis.pollTimerId = null; // Timer for polling server\n\t// Number of outstanding requests\n\tthis.numTasksInProgress = 0;\n\t// Listen out for changes to tiddlers\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t// Filter the changes to just include ones that are being synced\n\t\tvar filteredChanges = self.getSyncedTiddlers(function(callback) {\n\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\tvar tiddler = self.wiki.tiddlerExists(title) && self.wiki.getTiddler(title);\n\t\t\t\tcallback(tiddler,title);\n\t\t\t});\n\t\t});\n\t\tif(filteredChanges.length > 0) {\n\t\t\tself.processTaskQueue();\n\t\t} else {\n\t\t\t// Look for deletions of tiddlers we're already syncing\t\n\t\t\tvar outstandingDeletion = false\n\t\t\t$tw.utils.each(changes,function(change,title,object) {\n\t\t\t\tif(change.deleted && $tw.utils.hop(self.tiddlerInfo,title)) {\n\t\t\t\t\toutstandingDeletion = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(outstandingDeletion) {\n\t\t\t\tself.processTaskQueue();\n\t\t\t}\n\t\t}\n\t});\n\t// Browser event handlers\n\tif($tw.browser && !this.disableUI) {\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t\t// Listen out for login/logout/refresh events in the browser\n\t\t$tw.rootWidget.addEventListener(\"tm-login\",function(event) {\n\t\t\tvar username = event && event.paramObject && event.paramObject.username,\n\t\t\t\tpassword = event && event.paramObject && event.paramObject.password;\n\t\t\tif(username && password) {\n\t\t\t\t// Login with username and password\n\t\t\t\tself.login(username,password,function() {});\n\t\t\t} else {\n\t\t\t\t// No username and password, so we display a prompt\n\t\t\t\tself.handleLoginEvent();\t\t\t\t\n\t\t\t}\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-logout\",function() {\n\t\t\tself.handleLogoutEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-server-refresh\",function() {\n\t\t\tself.handleRefreshEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-copy-syncer-logs-to-clipboard\",function() {\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getSystemInfo() + \"\\n\\nLog:\\n\" + self.logger.getBuffer());\n\t\t});\n\t}\n\t// Listen out for lazyLoad events\n\tif(!this.disableUI && this.wiki.getTiddlerText(this.titleSyncDisableLazyLoading) !== \"yes\") {\n\t\tthis.wiki.addEventListener(\"lazyLoad\",function(title) {\n\t\t\tself.handleLazyLoadEvent(title);\n\t\t});\t\t\n\t}\n\t// Get the login status\n\tthis.getStatus(function(err,isLoggedIn) {\n\t\t// Do a sync from the server\n\t\tself.syncFromServer();\n\t});\n}\n\n/*\nShow a generic network error alert\n*/\nSyncer.prototype.displayError = function(msg,err) {\n\tif(err === ($tw.language.getString(\"Error/XMLHttpRequest\") + \": 0\")) {\n\t\tthis.loggerConnection.alert($tw.language.getString(\"Error/NetworkErrorAlert\"));\n\t\tthis.logger.log(msg + \":\",err);\n\t} else {\n\t\tthis.logger.alert(msg + \":\",err);\n\t}\n};\n\n/*\nReturn an array of the tiddler titles that are subjected to syncing\n*/\nSyncer.prototype.getSyncedTiddlers = function(source) {\n\treturn this.filterFn.call(this.wiki,source);\n};\n\n/*\nReturn an array of the tiddler titles that are subjected to syncing\n*/\nSyncer.prototype.getTiddlerRevision = function(title) {\n\tif(this.syncadaptor && this.syncadaptor.getTiddlerRevision) {\n\t\treturn this.syncadaptor.getTiddlerRevision(title);\n\t} else {\n\t\treturn this.wiki.getTiddler(title).fields.revision;\t\n\t} \n};\n\n/*\nRead (or re-read) the latest tiddler info from the store\n*/\nSyncer.prototype.readTiddlerInfo = function() {\n\t// Hashmap by title of {revision:,changeCount:,adaptorInfo:}\n\t// \"revision\" is the revision of the tiddler last seen on the server, and \"changecount\" is the corresponding local changecount\n\tthis.tiddlerInfo = {};\n\t// Record information for known tiddlers\n\tvar self = this,\n\t\ttiddlers = this.getSyncedTiddlers();\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tself.tiddlerInfo[title] = {\n\t\t\t\trevision: self.getTiddlerRevision(title),\n\t\t\t\tadaptorInfo: self.syncadaptor && self.syncadaptor.getTiddlerInfo(tiddler),\n\t\t\t\tchangeCount: self.wiki.getChangeCount(title)\n\t\t\t};\n\t\t}\n\t});\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSyncer.prototype.isDirty = function() {\n\tthis.logger.log(\"Checking dirty status\");\n\t// Check tiddlers that are in the store and included in the filter function\n\tvar titles = this.getSyncedTiddlers();\n\tfor(var index=0; index<titles.length; index++) {\n\t\tvar title = titles[index],\n\t\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\tif(this.wiki.tiddlerExists(title)) {\n\t\t\tif(tiddlerInfo) {\n\t\t\t\t// If the tiddler is known on the server and has been modified locally then it needs to be saved to the server\n\t\t\t\tif(this.wiki.getChangeCount(title) > tiddlerInfo.changeCount) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If the tiddler isn't known on the server then it needs to be saved to the server\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\t// Check tiddlers that are known from the server but not currently in the store\n\ttitles = Object.keys(this.tiddlerInfo);\n\tfor(index=0; index<titles.length; index++) {\n\t\tif(!this.wiki.tiddlerExists(titles[index])) {\n\t\t\t// There must be a pending delete\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSyncer.prototype.updateDirtyStatus = function() {\n\tif($tw.browser && !this.disableUI) {\n\t\tvar dirty = this.isDirty();\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",dirty);\n\t\tif(!dirty) {\n\t\t\tthis.loggerConnection.clearAlerts();\n\t\t}\n\t}\n};\n\n/*\nSave an incoming tiddler in the store, and updates the associated tiddlerInfo\n*/\nSyncer.prototype.storeTiddler = function(tiddlerFields) {\n\t// Save the tiddler\n\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\tthis.wiki.addTiddler(tiddler);\n\t// Save the tiddler revision and changeCount details\n\tthis.tiddlerInfo[tiddlerFields.title] = {\n\t\trevision: this.getTiddlerRevision(tiddlerFields.title),\n\t\tadaptorInfo: this.syncadaptor.getTiddlerInfo(tiddler),\n\t\tchangeCount: this.wiki.getChangeCount(tiddlerFields.title)\n\t};\n};\n\nSyncer.prototype.getStatus = function(callback) {\n\tvar self = this;\n\t// Check if the adaptor supports getStatus()\n\tif(this.syncadaptor && this.syncadaptor.getStatus) {\n\t\t// Mark us as not logged in\n\t\tthis.wiki.addTiddler({title: this.titleIsLoggedIn,text: \"no\"});\n\t\t// Get login status\n\t\tthis.syncadaptor.getStatus(function(err,isLoggedIn,username,isReadOnly,isAnonymous) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\t// Set the various status tiddlers\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsReadOnly,text: isReadOnly ? \"yes\" : \"no\"});\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsAnonymous,text: isAnonymous ? \"yes\" : \"no\"});\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsLoggedIn,text: isLoggedIn ? \"yes\" : \"no\"});\n\t\t\t\tif(isLoggedIn) {\n\t\t\t\t\tself.wiki.addTiddler({title: self.titleUserName,text: username || \"\"});\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tif(callback) {\n\t\t\t\tcallback(err,isLoggedIn,username);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tcallback(null,true,\"UNAUTHENTICATED\");\n\t}\n};\n\n/*\nSynchronise from the server by reading the skinny tiddler list and queuing up loads for any tiddlers that we don't already have up to date\n*/\nSyncer.prototype.syncFromServer = function() {\n\tvar self = this,\n\t\tcancelNextSync = function() {\n\t\t\tif(self.pollTimerId) {\n\t\t\t\tclearTimeout(self.pollTimerId);\n\t\t\t\tself.pollTimerId = null;\n\t\t\t}\n\t\t},\n\t\ttriggerNextSync = function() {\n\t\t\tself.pollTimerId = setTimeout(function() {\n\t\t\t\tself.pollTimerId = null;\n\t\t\t\tself.syncFromServer.call(self);\n\t\t\t},self.pollTimerInterval);\n\t\t},\n\t\tsyncSystemFromServer = (self.wiki.getTiddlerText(\"$:/config/SyncSystemTiddlersFromServer\") === \"yes\" ? true : false);\n\tif(this.syncadaptor && this.syncadaptor.getUpdatedTiddlers) {\n\t\tthis.logger.log(\"Retrieving updated tiddler list\");\n\t\tcancelNextSync();\n\t\tthis.syncadaptor.getUpdatedTiddlers(self,function(err,updates) {\n\t\t\ttriggerNextSync();\n\t\t\tif(err) {\n\t\t\t\tself.displayError($tw.language.getString(\"Error/RetrievingSkinny\"),err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(updates) {\n\t\t\t\t$tw.utils.each(updates.modifications,function(title) {\n\t\t\t\t\tself.titlesToBeLoaded[title] = true;\n\t\t\t\t});\n\t\t\t\t$tw.utils.each(updates.deletions,function(title) {\n\t\t\t\t\tif(syncSystemFromServer || !self.wiki.isSystemTiddler(title)) {\n\t\t\t\t\t\tdelete self.tiddlerInfo[title];\n\t\t\t\t\t\tself.logger.log(\"Deleting tiddler missing from server:\",title);\n\t\t\t\t\t\tself.wiki.deleteTiddler(title);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(updates.modifications.length > 0 || updates.deletions.length > 0) {\n\t\t\t\t\tself.processTaskQueue();\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\t\t});\n\t} else if(this.syncadaptor && this.syncadaptor.getSkinnyTiddlers) {\n\t\tthis.logger.log(\"Retrieving skinny tiddler list\");\n\t\tcancelNextSync();\n\t\tthis.syncadaptor.getSkinnyTiddlers(function(err,tiddlers) {\n\t\t\ttriggerNextSync();\n\t\t\t// Check for errors\n\t\t\tif(err) {\n\t\t\t\tself.displayError($tw.language.getString(\"Error/RetrievingSkinny\"),err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Keep track of which tiddlers we already know about have been reported this time\n\t\t\tvar previousTitles = Object.keys(self.tiddlerInfo);\n\t\t\t// Process each incoming tiddler\n\t\t\tfor(var t=0; t<tiddlers.length; t++) {\n\t\t\t\t// Get the incoming tiddler fields, and the existing tiddler\n\t\t\t\tvar tiddlerFields = tiddlers[t],\n\t\t\t\t\tincomingRevision = tiddlerFields.revision + \"\",\n\t\t\t\t\ttiddler = self.wiki.tiddlerExists(tiddlerFields.title) && self.wiki.getTiddler(tiddlerFields.title),\n\t\t\t\t\ttiddlerInfo = self.tiddlerInfo[tiddlerFields.title],\n\t\t\t\t\tcurrRevision = tiddlerInfo ? tiddlerInfo.revision : null,\n\t\t\t\t\tindexInPreviousTitles = previousTitles.indexOf(tiddlerFields.title);\n\t\t\t\tif(indexInPreviousTitles !== -1) {\n\t\t\t\t\tpreviousTitles.splice(indexInPreviousTitles,1);\n\t\t\t\t}\n\t\t\t\t// Ignore the incoming tiddler if it's the same as the revision we've already got\n\t\t\t\tif(currRevision !== incomingRevision) {\n\t\t\t\t\t// Only load the skinny version if we don't already have a fat version of the tiddler\n\t\t\t\t\tif(!tiddler || tiddler.fields.text === undefined) {\n\t\t\t\t\t\tself.storeTiddler(tiddlerFields);\n\t\t\t\t\t}\n\t\t\t\t\t// Do a full load of this tiddler\n\t\t\t\t\tself.titlesToBeLoaded[tiddlerFields.title] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Delete any tiddlers that were previously reported but missing this time\n\t\t\t$tw.utils.each(previousTitles,function(title) {\n\t\t\t\tif(syncSystemFromServer || !self.wiki.isSystemTiddler(title)) {\n\t\t\t\t\tdelete self.tiddlerInfo[title];\n\t\t\t\t\tself.logger.log(\"Deleting tiddler missing from server:\",title);\n\t\t\t\t\tself.wiki.deleteTiddler(title);\n\t\t\t\t}\n\t\t\t});\n\t\t\tself.processTaskQueue();\n\t\t});\n\t}\n};\n\n/*\nForce load a tiddler from the server\n*/\nSyncer.prototype.enqueueLoadTiddler = function(title) {\n\tthis.titlesToBeLoaded[title] = true;\n\tthis.processTaskQueue();\n};\n\n/*\nLazily load a skinny tiddler if we can\n*/\nSyncer.prototype.handleLazyLoadEvent = function(title) {\n\t// Ignore if the syncadaptor doesn't handle it\n\tif(!this.syncadaptor.supportsLazyLoading) {\n\t\treturn;\n\t}\n\t// Don't lazy load the same tiddler twice\n\tif(!this.titlesHaveBeenLazyLoaded[title]) {\n\t\t// Don't lazy load if the tiddler isn't included in the sync filter\n\t\tif(this.getSyncedTiddlers().indexOf(title) !== -1) {\n\t\t\t// Mark the tiddler as needing loading, and having already been lazily loaded\n\t\t\tthis.titlesToBeLoaded[title] = true;\n\t\t\tthis.titlesHaveBeenLazyLoaded[title] = true;\n\t\t}\n\t}\n};\n\n/*\nDispay a password prompt and allow the user to login\n*/\nSyncer.prototype.handleLoginEvent = function() {\n\tvar self = this;\n\tthis.getStatus(function(err,isLoggedIn,username) {\n\t\tif(!err && !isLoggedIn) {\n\t\t\tif(self.syncadaptor && self.syncadaptor.displayLoginPrompt) {\n\t\t\t\tself.syncadaptor.displayLoginPrompt(self);\n\t\t\t} else {\n\t\t\t\tself.displayLoginPrompt();\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nDispay a password prompt\n*/\nSyncer.prototype.displayLoginPrompt = function() {\n\tvar self = this;\n\tvar promptInfo = $tw.passwordPrompt.createPrompt({\n\t\tserviceName: $tw.language.getString(\"LoginToTiddlySpace\"),\n\t\tcallback: function(data) {\n\t\t\tself.login(data.username,data.password,function(err,isLoggedIn) {\n\t\t\t\tself.syncFromServer();\n\t\t\t});\n\t\t\treturn true; // Get rid of the password prompt\n\t\t}\n\t});\n};\n\n/*\nAttempt to login to TiddlyWeb.\n\tusername: username\n\tpassword: password\n\tcallback: invoked with arguments (err,isLoggedIn)\n*/\nSyncer.prototype.login = function(username,password,callback) {\n\tthis.logger.log(\"Attempting to login as\",username);\n\tvar self = this;\n\tif(this.syncadaptor.login) {\n\t\tthis.syncadaptor.login(username,password,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.getStatus(function(err,isLoggedIn,username) {\n\t\t\t\tif(callback) {\n\t\t\t\t\tcallback(err,isLoggedIn);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t} else {\n\t\tcallback(null,true);\n\t}\n};\n\n/*\nAttempt to log out of TiddlyWeb\n*/\nSyncer.prototype.handleLogoutEvent = function() {\n\tthis.logger.log(\"Attempting to logout\");\n\tvar self = this;\n\tif(this.syncadaptor.logout) {\n\t\tthis.syncadaptor.logout(function(err) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\tself.getStatus();\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nImmediately refresh from the server\n*/\nSyncer.prototype.handleRefreshEvent = function() {\n\tthis.syncFromServer();\n};\n\n/*\nProcess the next task\n*/\nSyncer.prototype.processTaskQueue = function() {\n\tvar self = this;\n\t// Only process a task if the sync adaptor is fully initialised and we're not already performing\n\t// a task. If we are already performing a task then we'll dispatch the next one when it completes\n\tif((!this.syncadaptor.isReady || this.syncadaptor.isReady()) && this.numTasksInProgress === 0) {\n\t\t// Choose the next task to perform\n\t\tvar task = this.chooseNextTask();\n\t\t// Perform the task if we had one\n\t\tif(typeof task === \"object\" && task !== null) {\n\t\t\tthis.numTasksInProgress += 1;\n\t\t\ttask.run(function(err) {\n\t\t\t\tself.numTasksInProgress -= 1;\n\t\t\t\tif(err) {\n\t\t\t\t\tself.displayError(\"Sync error while processing \" + task.type + \" of '\" + task.title + \"'\",err);\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t\tself.triggerTimeout(self.errorRetryInterval);\n\t\t\t\t} else {\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t\t// Process the next task\n\t\t\t\t\tself.processTaskQueue.call(self);\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// No task is ready so update the status\n\t\t\tthis.updateDirtyStatus();\n\t\t\t// And trigger a timeout if there is a pending task\n\t\t\tif(task === true) {\n\t\t\t\tthis.triggerTimeout();\t\t\t\t\n\t\t\t}\n\t\t}\n\t} else {\n\t\tthis.updateDirtyStatus();\t\t\n\t}\n};\n\nSyncer.prototype.triggerTimeout = function(interval) {\n\tvar self = this;\n\tif(!this.taskTimerId) {\n\t\tthis.taskTimerId = setTimeout(function() {\n\t\t\tself.taskTimerId = null;\n\t\t\tself.processTaskQueue.call(self);\n\t\t},interval || self.taskTimerInterval);\n\t}\n};\n\n/*\nChoose the next sync task. We prioritise saves, then deletes, then loads from the server\n\nReturns either a task object, null if there's no upcoming tasks, or the boolean true if there are pending tasks that aren't yet due\n*/\nSyncer.prototype.chooseNextTask = function() {\n\tvar thresholdLastSaved = (new Date()) - this.throttleInterval,\n\t\thavePending = null;\n\t// First we look for tiddlers that have been modified locally and need saving back to the server\n\tvar titles = this.getSyncedTiddlers();\n\tfor(var index=0; index<titles.length; index++) {\n\t\tvar title = titles[index],\n\t\t\ttiddler = this.wiki.tiddlerExists(title) && this.wiki.getTiddler(title),\n\t\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\tif(tiddler) {\n\t\t\t// If the tiddler is not known on the server, or has been modified locally no more recently than the threshold then it needs to be saved to the server\n\t\t\tvar hasChanged = !tiddlerInfo || this.wiki.getChangeCount(title) > tiddlerInfo.changeCount,\n\t\t\t\tisReadyToSave = !tiddlerInfo || !tiddlerInfo.timestampLastSaved || tiddlerInfo.timestampLastSaved < thresholdLastSaved;\n\t\t\tif(hasChanged) {\n\t\t\t\tif(isReadyToSave) {\n\t\t\t\t\treturn new SaveTiddlerTask(this,title); \t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\thavePending = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Second, we check tiddlers that are known from the server but not currently in the store, and so need deleting on the server\n\ttitles = Object.keys(this.tiddlerInfo);\n\tfor(index=0; index<titles.length; index++) {\n\t\ttitle = titles[index];\n\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\ttiddler = this.wiki.tiddlerExists(title) && this.wiki.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\treturn new DeleteTiddlerTask(this,title);\n\t\t}\n\t}\n\t// Check for tiddlers that need loading\n\ttitle = Object.keys(this.titlesToBeLoaded)[0];\n\tif(title) {\n\t\tdelete this.titlesToBeLoaded[title];\n\t\treturn new LoadTiddlerTask(this,title);\n\t}\n\t// No tasks are ready\n\treturn havePending;\n};\n\nfunction SaveTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"save\";\n}\n\nSaveTiddlerTask.prototype.run = function(callback) {\n\tvar self = this,\n\t\tchangeCount = this.syncer.wiki.getChangeCount(this.title),\n\t\ttiddler = this.syncer.wiki.tiddlerExists(this.title) && this.syncer.wiki.getTiddler(this.title);\n\tthis.syncer.logger.log(\"Dispatching 'save' task:\",this.title);\n\tif(tiddler) {\n\t\tthis.syncer.syncadaptor.saveTiddler(tiddler,function(err,adaptorInfo,revision) {\n\t\t\t// If there's an error, exit without changing any internal state\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\t// Adjust the info stored about this tiddler\n\t\t\tself.syncer.tiddlerInfo[self.title] = {\n\t\t\t\tchangeCount: changeCount,\n\t\t\t\tadaptorInfo: adaptorInfo,\n\t\t\t\trevision: revision,\n\t\t\t\ttimestampLastSaved: new Date()\n\t\t\t};\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t},{\n\t\t\ttiddlerInfo: self.syncer.tiddlerInfo[self.title]\n\t\t});\n\t} else {\n\t\tthis.syncer.logger.log(\" Not Dispatching 'save' task:\",this.title,\"tiddler does not exist\");\n\t\t$tw.utils.nextTick(callback(null));\n\t}\n};\n\nfunction DeleteTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"delete\";\n}\n\nDeleteTiddlerTask.prototype.run = function(callback) {\n\tvar self = this;\n\tthis.syncer.logger.log(\"Dispatching 'delete' task:\",this.title);\n\tthis.syncer.syncadaptor.deleteTiddler(this.title,function(err) {\n\t\t// If there's an error, exit without changing any internal state\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\t// Remove the info stored about this tiddler\n\t\tdelete self.syncer.tiddlerInfo[self.title];\n\t\tif($tw.boot.files){\n\t\t\t// Remove the tiddler from $tw.boot.files\n\t\t\tdelete $tw.boot.files[self.title];\n\t\t}\n\t\t// Invoke the callback\n\t\tcallback(null);\n\t},{\n\t\ttiddlerInfo: self.syncer.tiddlerInfo[this.title]\n\t});\n};\n\nfunction LoadTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"load\";\n}\n\nLoadTiddlerTask.prototype.run = function(callback) {\n\tvar self = this;\n\tthis.syncer.logger.log(\"Dispatching 'load' task:\",this.title);\n\tthis.syncer.syncadaptor.loadTiddler(this.title,function(err,tiddlerFields) {\n\t\t// If there's an error, exit without changing any internal state\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\t// Update the info stored about this tiddler\n\t\tif(tiddlerFields) {\n\t\t\tself.syncer.storeTiddler(tiddlerFields);\n\t\t}\n\t\t// Invoke the callback\n\t\tcallback(null);\n\t});\n};\n\nexports.Syncer = Syncer;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/tiddler.js": {
"title": "$:/core/modules/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/tiddler.js\ntype: application/javascript\nmodule-type: tiddlermethod\n\nExtension methods for the $tw.Tiddler object (constructor and methods required at boot time are in boot/boot.js)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.hasTag = function(tag) {\n\treturn this.fields.tags && this.fields.tags.indexOf(tag) !== -1;\n};\n\nexports.isPlugin = function() {\n\treturn this.fields.type === \"application/json\" && this.hasField(\"plugin-type\");\n};\n\nexports.isDraft = function() {\n\treturn this.hasField(\"draft.of\");\n};\n\nexports.getFieldString = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn \"\";\n\t}\n\t// Parse the field with the associated module (if any)\n\tvar fieldModule = $tw.Tiddler.fieldModules[field];\n\tif(fieldModule && fieldModule.stringify) {\n\t\treturn fieldModule.stringify.call(this,value);\n\t} else {\n\t\treturn value.toString();\n\t}\n};\n\n/*\nGet the value of a field as a list\n*/\nexports.getFieldList = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn [];\n\t}\n\treturn $tw.utils.parseStringArray(value);\n};\n\n/*\nGet all the fields as a hashmap of strings. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStrings = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [];\n\tvar fields = {};\n\tfor(var field in this.fields) {\n\t\tif($tw.utils.hop(this.fields,field)) {\n\t\t\tif(exclude.indexOf(field) === -1) {\n\t\t\t\tfields[field] = this.getFieldString(field);\n\t\t\t}\n\t\t}\n\t}\n\treturn fields;\n};\n\n/*\nGet all the fields as a name:value block. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStringBlock = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [],\n\t\tfields = Object.keys(this.fields).sort(),\n\t\tresult = [];\n\tfor(var t=0; t<fields.length; t++) {\n\t\tvar field = fields[t];\n\t\tif(exclude.indexOf(field) === -1) {\n\t\t\tresult.push(field + \": \" + this.getFieldString(field));\n\t\t}\n\t}\n\treturn result.join(\"\\n\");\n};\n\nexports.getFieldDay = function(field) {\n\tif(this.cache && this.cache.day && $tw.utils.hop(this.cache.day,field) ) {\n\t\treturn this.cache.day[field];\n\t}\n\tvar day = \"\";\n\tif(this.fields[field]) {\n\t\tday = (new Date($tw.utils.parseDate(this.fields[field]))).setHours(0,0,0,0);\n\t}\n\tthis.cache.day = this.cache.day || {};\n\tthis.cache.day[field] = day;\n\treturn day;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "tiddlermethod"
},
"$:/core/modules/upgraders/plugins.js": {
"title": "$:/core/modules/upgraders/plugins.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/plugins.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that checks that plugins are newer than any already installed version\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar BLOCKED_PLUGINS = {\n\t\"$:/themes/tiddlywiki/stickytitles\": {\n\t\tversions: [\"*\"]\n\t},\n\t\"$:/plugins/tiddlywiki/fullscreen\": {\n\t\tversions: [\"*\"]\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tupgradeLibrary,\n\t\tgetLibraryTiddler = function(title) {\n\t\t\tif(!upgradeLibrary) {\n\t\t\t\tupgradeLibrary = wiki.getTiddlerData(UPGRADE_LIBRARY_TITLE,{});\n\t\t\t\tupgradeLibrary.tiddlers = upgradeLibrary.tiddlers || {};\n\t\t\t}\n\t\t\treturn upgradeLibrary.tiddlers[title];\n\t\t};\n\n\t// Go through all the incoming tiddlers\n\t$tw.utils.each(titles,function(title) {\n\t\tvar incomingTiddler = tiddlers[title];\n\t\t// Check if we're dealing with a plugin\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"]) {\n\t\t\t// Check whether the plugin contains JS modules\n\t\t\tvar requiresReload = wiki.doesPluginInfoRequireReload(JSON.parse(incomingTiddler.text)) ? (wiki.getTiddlerText(\"$:/language/ControlPanel/Plugins/PluginWillRequireReload\") + \" \") : \"\";\n\t\t\tmessages[title] = requiresReload;\n\t\t\tif(incomingTiddler.version) {\n\t\t\t\t// Upgrade the incoming plugin if it is in the upgrade library\n\t\t\t\tvar libraryTiddler = getLibraryTiddler(title);\n\t\t\t\tif(libraryTiddler && libraryTiddler[\"plugin-type\"] && libraryTiddler.version) {\n\t\t\t\t\ttiddlers[title] = libraryTiddler;\n\t\t\t\t\tmessages[title] = requiresReload + $tw.language.getString(\"Import/Upgrader/Plugins/Upgraded\",{variables: {incoming: incomingTiddler.version, upgraded: libraryTiddler.version}});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Suppress the incoming plugin if it is older than the currently installed one\n\t\t\t\tvar existingTiddler = wiki.getTiddler(title);\n\t\t\t\tif(existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t\t\t\t// Reject the incoming plugin by blanking all its fields\n\t\t\t\t\tif($tw.utils.checkVersions(existingTiddler.fields.version,incomingTiddler.version)) {\n\t\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Version\",{variables: {incoming: incomingTiddler.version, existing: existingTiddler.fields.version}});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Check whether the plugin is on the blocked list\n\t\t\tvar blockInfo = BLOCKED_PLUGINS[title];\n\t\t\tif(blockInfo) {\n\t\t\t\tif(blockInfo.versions.indexOf(\"*\") !== -1 || (incomingTiddler.version && blockInfo.versions.indexOf(incomingTiddler.version) !== -1)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Incompatible\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/upgraders/system.js": {
"title": "$:/core/modules/upgraders/system.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/system.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that suppresses certain system tiddlers that shouldn't be imported\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DONT_IMPORT_LIST = [\"$:/StoryList\",\"$:/HistoryList\"],\n\tDONT_IMPORT_PREFIX_LIST = [\"$:/temp/\",\"$:/state/\",\"$:/Import\"],\n\tWARN_IMPORT_PREFIX_LIST = [\"$:/core/modules/\"];\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tshowAlert = false;\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tif(DONT_IMPORT_LIST.indexOf(title) !== -1) {\n\t\t\ttiddlers[title] = Object.create(null);\n\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Suppressed\");\n\t\t} else {\n\t\t\tfor(var t=0; t<DONT_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = DONT_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/State/Suppressed\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor(var t=0; t<WARN_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = WARN_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix && wiki.isShadowTiddler(title)) {\n\t\t\t\t\tshowAlert = true;\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Warning\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\tif(showAlert) {\n\t\tvar logger = new $tw.utils.Logger(\"import\");\n\t\tlogger.alert($tw.language.getString(\"Import/Upgrader/System/Alert\"));\n\t}\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/upgraders/themetweaks.js": {
"title": "$:/core/modules/upgraders/themetweaks.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/themetweaks.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that handles the change in theme tweak storage introduced in 5.0.14-beta.\n\nPreviously, theme tweaks were stored in two data tiddlers:\n\n* $:/themes/tiddlywiki/vanilla/metrics\n* $:/themes/tiddlywiki/vanilla/settings\n\nNow, each tweak is stored in its own separate tiddler.\n\nThis upgrader copies any values from the old format to the new. The old data tiddlers are not deleted in case they have been used to store additional indexes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar MAPPINGS = {\n\t\"$:/themes/tiddlywiki/vanilla/metrics\": {\n\t\t\"fontsize\": \"$:/themes/tiddlywiki/vanilla/metrics/fontsize\",\n\t\t\"lineheight\": \"$:/themes/tiddlywiki/vanilla/metrics/lineheight\",\n\t\t\"storyleft\": \"$:/themes/tiddlywiki/vanilla/metrics/storyleft\",\n\t\t\"storytop\": \"$:/themes/tiddlywiki/vanilla/metrics/storytop\",\n\t\t\"storyright\": \"$:/themes/tiddlywiki/vanilla/metrics/storyright\",\n\t\t\"storywidth\": \"$:/themes/tiddlywiki/vanilla/metrics/storywidth\",\n\t\t\"tiddlerwidth\": \"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"\n\t},\n\t\"$:/themes/tiddlywiki/vanilla/settings\": {\n\t\t\"fontfamily\": \"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {};\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tvar mapping = MAPPINGS[title];\n\t\tif(mapping) {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlers[title]),\n\t\t\t\ttiddlerData = wiki.getTiddlerDataCached(tiddler,{});\n\t\t\tfor(var index in mapping) {\n\t\t\t\tvar mappedTitle = mapping[index];\n\t\t\t\tif(!tiddlers[mappedTitle] || tiddlers[mappedTitle].title !== mappedTitle) {\n\t\t\t\t\ttiddlers[mappedTitle] = {\n\t\t\t\t\t\ttitle: mappedTitle,\n\t\t\t\t\t\ttext: tiddlerData[index]\n\t\t\t\t\t};\n\t\t\t\t\tmessages[mappedTitle] = $tw.language.getString(\"Import/Upgrader/ThemeTweaks/Created\",{variables: {\n\t\t\t\t\t\tfrom: title + \"##\" + index\n\t\t\t\t\t}});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/utils/base64-utf8/base64-utf8.module.js": {
"text": "(function(){// From https://gist.github.com/Nijikokun/5192472\n//\n// UTF8 Module\n//\n// Cleaner and modularized utf-8 encoding and decoding library for javascript.\n//\n// copyright: MIT\n// author: Nijiko Yonskai, @nijikokun, nijikokun@gmail.com\n!function(r,e,o,t){void 0!==o.module&&o.module.exports?o.module.exports=e.apply(o):void 0!==o.define&&\"function\"===o.define&&o.define.amd?define(\"utf8\",[],e):o.utf8=e.apply(o)}(0,function(){return{encode:function(r){if(\"string\"!=typeof r)return r;r=r.replace(/\\r\\n/g,\"\\n\");for(var e,o=\"\",t=0;t<r.length;t++)if((e=r.charCodeAt(t))<128)o+=String.fromCharCode(e);else if(e>127&&e<2048)o+=String.fromCharCode(e>>6|192),o+=String.fromCharCode(63&e|128);else if(e>55295&&e<57344&&r.length>t+1){var i=e,n=r.charCodeAt(t+1);t++;var d=65536+(i-55296<<10|n-56320);o+=String.fromCharCode(d>>18|240),o+=String.fromCharCode(d>>12&63|128),o+=String.fromCharCode(d>>6&63|128),o+=String.fromCharCode(63&d|128)}else o+=String.fromCharCode(e>>12|224),o+=String.fromCharCode(e>>6&63|128),o+=String.fromCharCode(63&e|128);return o},decode:function(r){if(\"string\"!=typeof r)return r;for(var e=\"\",o=0,t=0;o<r.length;)if((t=r.charCodeAt(o))<128)e+=String.fromCharCode(t),o++;else if(t>191&&t<224)e+=String.fromCharCode((31&t)<<6|63&r.charCodeAt(o+1)),o+=2;else if(t>223&&t<240)e+=String.fromCharCode((15&t)<<12|(63&r.charCodeAt(o+1))<<6|63&r.charCodeAt(o+2)),o+=3;else{var i=(7&t)<<18|(63&r.charCodeAt(o+1))<<12|(63&r.charCodeAt(o+2))<<6|63&r.charCodeAt(o+3);e+=String.fromCharCode(55296+(i-65536>>10))+String.fromCharCode(56320+(i-65536&1023)),o+=4}return e}}},this),function(r,e,o,t){if(void 0!==o.module&&o.module.exports){if(t&&o.require)for(var i=0;i<t.length;i++)o[t[i]]=o.require(t[i]);o.module.exports=e.apply(o)}else void 0!==o.define&&\"function\"===o.define&&o.define.amd?define(\"base64\",t||[],e):o.base64=e.apply(o)}(0,function(r){var e=r||this.utf8,o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";return{encode:function(r){if(void 0===e)throw{error:\"MissingMethod\",message:\"UTF8 Module is missing.\"};if(\"string\"!=typeof r)return r;r=e.encode(r);for(var t,i,n,d,f,a,h,C=\"\",c=0;c<r.length;)d=(t=r.charCodeAt(c++))>>2,f=(3&t)<<4|(i=r.charCodeAt(c++))>>4,a=(15&i)<<2|(n=r.charCodeAt(c++))>>6,h=63&n,isNaN(i)?a=h=64:isNaN(n)&&(h=64),C+=o.charAt(d)+o.charAt(f)+o.charAt(a)+o.charAt(h);return C},decode:function(r){if(void 0===e)throw{error:\"MissingMethod\",message:\"UTF8 Module is missing.\"};if(\"string\"!=typeof r)return r;r=r.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");for(var t,i,n,d,f,a,h=\"\",C=0;C<r.length;)t=o.indexOf(r.charAt(C++))<<2|(d=o.indexOf(r.charAt(C++)))>>4,i=(15&d)<<4|(f=o.indexOf(r.charAt(C++)))>>2,n=(3&f)<<6|(a=o.indexOf(r.charAt(C++))),h+=String.fromCharCode(t),64!=f&&(h+=String.fromCharCode(i)),64!=a&&(h+=String.fromCharCode(n));return e.decode(h)}}},this,[\"utf8\"]);}).call(exports);",
"type": "application/javascript",
"title": "$:/core/modules/utils/base64-utf8/base64-utf8.module.js",
"module-type": "library"
},
"$:/core/modules/utils/crypto.js": {
"title": "$:/core/modules/utils/crypto.js",
"text": "/*\\\ntitle: $:/core/modules/utils/crypto.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions related to crypto.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for an encrypted store area in the text of a TiddlyWiki file\n*/\nexports.extractEncryptedStoreArea = function(text) {\n\tvar encryptedStoreAreaStartMarker = \"<pre id=\\\"encryptedStoreArea\\\" type=\\\"text/plain\\\" style=\\\"display:none;\\\">\",\n\t\tencryptedStoreAreaStart = text.indexOf(encryptedStoreAreaStartMarker);\n\tif(encryptedStoreAreaStart !== -1) {\n\t\tvar encryptedStoreAreaEnd = text.indexOf(\"</pre>\",encryptedStoreAreaStart);\n\t\tif(encryptedStoreAreaEnd !== -1) {\n\t\t\treturn $tw.utils.htmlDecode(text.substring(encryptedStoreAreaStart + encryptedStoreAreaStartMarker.length,encryptedStoreAreaEnd-1));\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If the password is not provided then the password in the password store will be used\n*/\nexports.decryptStoreArea = function(encryptedStoreArea,password) {\n\tvar decryptedText = $tw.crypto.decrypt(encryptedStoreArea,password);\n\tif(decryptedText) {\n\t\tvar json = JSON.parse(decryptedText),\n\t\t\ttiddlers = [];\n\t\tfor(var title in json) {\n\t\t\tif(title !== \"$:/isEncrypted\") {\n\t\t\t\ttiddlers.push(json[title]);\n\t\t\t}\n\t\t}\n\t\treturn tiddlers;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If that fails, the user is prompted for a password.\nencryptedStoreArea: text of the TiddlyWiki encrypted store area\ncallback: function(tiddlers) called with the array of decrypted tiddlers\n\nThe following configuration settings are supported:\n\n$tw.config.usePasswordVault: causes any password entered by the user to also be put into the system password vault\n*/\nexports.decryptStoreAreaInteractive = function(encryptedStoreArea,callback,options) {\n\t// Try to decrypt with the current password\n\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea);\n\tif(tiddlers) {\n\t\tcallback(tiddlers);\n\t} else {\n\t\t// Prompt for a new password and keep trying\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: \"Enter a password to decrypt the imported TiddlyWiki\",\n\t\t\tnoUserName: true,\n\t\t\tcanCancel: true,\n\t\t\tsubmitText: \"Decrypt\",\n\t\t\tcallback: function(data) {\n\t\t\t\t// Exit if the user cancelled\n\t\t\t\tif(!data) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// Attempt to decrypt the tiddlers\n\t\t\t\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea,data.password);\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tif($tw.config.usePasswordVault) {\n\t\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t\t}\n\t\t\t\t\tcallback(tiddlers);\n\t\t\t\t\t// Exit and remove the password prompt\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\t// We didn't decrypt everything, so continue to prompt for password\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/csv.js": {
"title": "$:/core/modules/utils/csv.js",
"text": "/*\\\ntitle: $:/core/modules/utils/csv.js\ntype: application/javascript\nmodule-type: utils\n\nA barebones CSV parser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a CSV string with a header row and return an array of hashmaps.\n*/\nexports.parseCsvStringWithHeader = function(text,options) {\n\toptions = options || {};\n\tvar separator = options.separator || \",\",\n\t\trows = text.split(/\\r?\\n/mg).map(function(row) {\n\t\t\treturn $tw.utils.trim(row);\n\t\t}).filter(function(row) {\n\t\t\treturn row !== \"\";\n\t\t});\n\tif(rows.length < 1) {\n\t\treturn \"Missing header row\";\n\t}\n\tvar headings = rows[0].split(separator),\n\t\tresults = [];\n\tfor(var row=1; row<rows.length; row++) {\n\t\tvar columns = rows[row].split(separator),\n\t\t\tcolumnResult = Object.create(null);\n\t\tif(columns.length !== headings.length) {\n\t\t\treturn \"Malformed CSV row '\" + rows[row] + \"'\";\n\t\t}\n\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\tvar columnName = headings[column];\n\t\t\tcolumnResult[columnName] = $tw.utils.trim(columns[column] || \"\");\n\t\t}\n\t\tresults.push(columnResult);\t\t\t\n\t}\n\treturn results;\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/diff-match-patch/diff_match_patch.js": {
"text": "(function(){function diff_match_patch(){this.Diff_Timeout=1;this.Diff_EditCost=4;this.Match_Threshold=.5;this.Match_Distance=1E3;this.Patch_DeleteThreshold=.5;this.Patch_Margin=4;this.Match_MaxBits=32}var DIFF_DELETE=-1,DIFF_INSERT=1,DIFF_EQUAL=0;\ndiff_match_patch.prototype.diff_main=function(a,b,c,d){\"undefined\"==typeof d&&(d=0>=this.Diff_Timeout?Number.MAX_VALUE:(new Date).getTime()+1E3*this.Diff_Timeout);if(null==a||null==b)throw Error(\"Null input. (diff_main)\");if(a==b)return a?[[DIFF_EQUAL,a]]:[];\"undefined\"==typeof c&&(c=!0);var e=c,f=this.diff_commonPrefix(a,b);c=a.substring(0,f);a=a.substring(f);b=b.substring(f);f=this.diff_commonSuffix(a,b);var g=a.substring(a.length-f);a=a.substring(0,a.length-f);b=b.substring(0,b.length-f);a=this.diff_compute_(a,\nb,e,d);c&&a.unshift([DIFF_EQUAL,c]);g&&a.push([DIFF_EQUAL,g]);this.diff_cleanupMerge(a);return a};\ndiff_match_patch.prototype.diff_compute_=function(a,b,c,d){if(!a)return[[DIFF_INSERT,b]];if(!b)return[[DIFF_DELETE,a]];var e=a.length>b.length?a:b,f=a.length>b.length?b:a,g=e.indexOf(f);return-1!=g?(c=[[DIFF_INSERT,e.substring(0,g)],[DIFF_EQUAL,f],[DIFF_INSERT,e.substring(g+f.length)]],a.length>b.length&&(c[0][0]=c[2][0]=DIFF_DELETE),c):1==f.length?[[DIFF_DELETE,a],[DIFF_INSERT,b]]:(e=this.diff_halfMatch_(a,b))?(b=e[1],f=e[3],a=e[4],e=this.diff_main(e[0],e[2],c,d),c=this.diff_main(b,f,c,d),e.concat([[DIFF_EQUAL,\na]],c)):c&&100<a.length&&100<b.length?this.diff_lineMode_(a,b,d):this.diff_bisect_(a,b,d)};\ndiff_match_patch.prototype.diff_lineMode_=function(a,b,c){var d=this.diff_linesToChars_(a,b);a=d.chars1;b=d.chars2;d=d.lineArray;a=this.diff_main(a,b,!1,c);this.diff_charsToLines_(a,d);this.diff_cleanupSemantic(a);a.push([DIFF_EQUAL,\"\"]);for(var e=d=b=0,f=\"\",g=\"\";b<a.length;){switch(a[b][0]){case DIFF_INSERT:e++;g+=a[b][1];break;case DIFF_DELETE:d++;f+=a[b][1];break;case DIFF_EQUAL:if(1<=d&&1<=e){a.splice(b-d-e,d+e);b=b-d-e;d=this.diff_main(f,g,!1,c);for(e=d.length-1;0<=e;e--)a.splice(b,0,d[e]);b+=\nd.length}d=e=0;g=f=\"\"}b++}a.pop();return a};\ndiff_match_patch.prototype.diff_bisect_=function(a,b,c){for(var d=a.length,e=b.length,f=Math.ceil((d+e)/2),g=2*f,h=Array(g),l=Array(g),k=0;k<g;k++)h[k]=-1,l[k]=-1;h[f+1]=0;l[f+1]=0;k=d-e;for(var m=0!=k%2,p=0,x=0,w=0,q=0,t=0;t<f&&!((new Date).getTime()>c);t++){for(var v=-t+p;v<=t-x;v+=2){var n=f+v;var r=v==-t||v!=t&&h[n-1]<h[n+1]?h[n+1]:h[n-1]+1;for(var y=r-v;r<d&&y<e&&a.charAt(r)==b.charAt(y);)r++,y++;h[n]=r;if(r>d)x+=2;else if(y>e)p+=2;else if(m&&(n=f+k-v,0<=n&&n<g&&-1!=l[n])){var u=d-l[n];if(r>=\nu)return this.diff_bisectSplit_(a,b,r,y,c)}}for(v=-t+w;v<=t-q;v+=2){n=f+v;u=v==-t||v!=t&&l[n-1]<l[n+1]?l[n+1]:l[n-1]+1;for(r=u-v;u<d&&r<e&&a.charAt(d-u-1)==b.charAt(e-r-1);)u++,r++;l[n]=u;if(u>d)q+=2;else if(r>e)w+=2;else if(!m&&(n=f+k-v,0<=n&&n<g&&-1!=h[n]&&(r=h[n],y=f+r-n,u=d-u,r>=u)))return this.diff_bisectSplit_(a,b,r,y,c)}}return[[DIFF_DELETE,a],[DIFF_INSERT,b]]};\ndiff_match_patch.prototype.diff_bisectSplit_=function(a,b,c,d,e){var f=a.substring(0,c),g=b.substring(0,d);a=a.substring(c);b=b.substring(d);f=this.diff_main(f,g,!1,e);e=this.diff_main(a,b,!1,e);return f.concat(e)};\ndiff_match_patch.prototype.diff_linesToChars_=function(a,b){function c(a){for(var b=\"\",c=0,f=-1,g=d.length;f<a.length-1;){f=a.indexOf(\"\\n\",c);-1==f&&(f=a.length-1);var h=a.substring(c,f+1);c=f+1;(e.hasOwnProperty?e.hasOwnProperty(h):void 0!==e[h])?b+=String.fromCharCode(e[h]):(b+=String.fromCharCode(g),e[h]=g,d[g++]=h)}return b}var d=[],e={};d[0]=\"\";var f=c(a),g=c(b);return{chars1:f,chars2:g,lineArray:d}};\ndiff_match_patch.prototype.diff_charsToLines_=function(a,b){for(var c=0;c<a.length;c++){for(var d=a[c][1],e=[],f=0;f<d.length;f++)e[f]=b[d.charCodeAt(f)];a[c][1]=e.join(\"\")}};diff_match_patch.prototype.diff_commonPrefix=function(a,b){if(!a||!b||a.charAt(0)!=b.charAt(0))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(f,e)==b.substring(f,e)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonSuffix=function(a,b){if(!a||!b||a.charAt(a.length-1)!=b.charAt(b.length-1))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(a.length-e,a.length-f)==b.substring(b.length-e,b.length-f)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonOverlap_=function(a,b){var c=a.length,d=b.length;if(0==c||0==d)return 0;c>d?a=a.substring(c-d):c<d&&(b=b.substring(0,c));c=Math.min(c,d);if(a==b)return c;d=0;for(var e=1;;){var f=a.substring(c-e);f=b.indexOf(f);if(-1==f)return d;e+=f;if(0==f||a.substring(c-e)==b.substring(0,e))d=e,e++}};\ndiff_match_patch.prototype.diff_halfMatch_=function(a,b){function c(a,b,c){for(var d=a.substring(c,c+Math.floor(a.length/4)),e=-1,g=\"\",h,k,l,m;-1!=(e=b.indexOf(d,e+1));){var p=f.diff_commonPrefix(a.substring(c),b.substring(e)),u=f.diff_commonSuffix(a.substring(0,c),b.substring(0,e));g.length<u+p&&(g=b.substring(e-u,e)+b.substring(e,e+p),h=a.substring(0,c-u),k=a.substring(c+p),l=b.substring(0,e-u),m=b.substring(e+p))}return 2*g.length>=a.length?[h,k,l,m,g]:null}if(0>=this.Diff_Timeout)return null;\nvar d=a.length>b.length?a:b,e=a.length>b.length?b:a;if(4>d.length||2*e.length<d.length)return null;var f=this,g=c(d,e,Math.ceil(d.length/4));d=c(d,e,Math.ceil(d.length/2));if(g||d)g=d?g?g[4].length>d[4].length?g:d:d:g;else return null;if(a.length>b.length){d=g[0];e=g[1];var h=g[2];var l=g[3]}else h=g[0],l=g[1],d=g[2],e=g[3];return[d,e,h,l,g[4]]};\ndiff_match_patch.prototype.diff_cleanupSemantic=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=0,h=0,l=0,k=0;f<a.length;)a[f][0]==DIFF_EQUAL?(c[d++]=f,g=l,h=k,k=l=0,e=a[f][1]):(a[f][0]==DIFF_INSERT?l+=a[f][1].length:k+=a[f][1].length,e&&e.length<=Math.max(g,h)&&e.length<=Math.max(l,k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,d--,f=0<d?c[d-1]:-1,k=l=h=g=0,e=null,b=!0)),f++;b&&this.diff_cleanupMerge(a);this.diff_cleanupSemanticLossless(a);for(f=1;f<a.length;){if(a[f-1][0]==\nDIFF_DELETE&&a[f][0]==DIFF_INSERT){b=a[f-1][1];c=a[f][1];d=this.diff_commonOverlap_(b,c);e=this.diff_commonOverlap_(c,b);if(d>=e){if(d>=b.length/2||d>=c.length/2)a.splice(f,0,[DIFF_EQUAL,c.substring(0,d)]),a[f-1][1]=b.substring(0,b.length-d),a[f+1][1]=c.substring(d),f++}else if(e>=b.length/2||e>=c.length/2)a.splice(f,0,[DIFF_EQUAL,b.substring(0,e)]),a[f-1][0]=DIFF_INSERT,a[f-1][1]=c.substring(0,c.length-e),a[f+1][0]=DIFF_DELETE,a[f+1][1]=b.substring(e),f++;f++}f++}};\ndiff_match_patch.prototype.diff_cleanupSemanticLossless=function(a){function b(a,b){if(!a||!b)return 6;var c=a.charAt(a.length-1),d=b.charAt(0),e=c.match(diff_match_patch.nonAlphaNumericRegex_),f=d.match(diff_match_patch.nonAlphaNumericRegex_),g=e&&c.match(diff_match_patch.whitespaceRegex_),h=f&&d.match(diff_match_patch.whitespaceRegex_);c=g&&c.match(diff_match_patch.linebreakRegex_);d=h&&d.match(diff_match_patch.linebreakRegex_);var k=c&&a.match(diff_match_patch.blanklineEndRegex_),l=d&&b.match(diff_match_patch.blanklineStartRegex_);\nreturn k||l?5:c||d?4:e&&!g&&h?3:g||h?2:e||f?1:0}for(var c=1;c<a.length-1;){if(a[c-1][0]==DIFF_EQUAL&&a[c+1][0]==DIFF_EQUAL){var d=a[c-1][1],e=a[c][1],f=a[c+1][1],g=this.diff_commonSuffix(d,e);if(g){var h=e.substring(e.length-g);d=d.substring(0,d.length-g);e=h+e.substring(0,e.length-g);f=h+f}g=d;h=e;for(var l=f,k=b(d,e)+b(e,f);e.charAt(0)===f.charAt(0);){d+=e.charAt(0);e=e.substring(1)+f.charAt(0);f=f.substring(1);var m=b(d,e)+b(e,f);m>=k&&(k=m,g=d,h=e,l=f)}a[c-1][1]!=g&&(g?a[c-1][1]=g:(a.splice(c-\n1,1),c--),a[c][1]=h,l?a[c+1][1]=l:(a.splice(c+1,1),c--))}c++}};diff_match_patch.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/;diff_match_patch.whitespaceRegex_=/\\s/;diff_match_patch.linebreakRegex_=/[\\r\\n]/;diff_match_patch.blanklineEndRegex_=/\\n\\r?\\n$/;diff_match_patch.blanklineStartRegex_=/^\\r?\\n\\r?\\n/;\ndiff_match_patch.prototype.diff_cleanupEfficiency=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=!1,h=!1,l=!1,k=!1;f<a.length;)a[f][0]==DIFF_EQUAL?(a[f][1].length<this.Diff_EditCost&&(l||k)?(c[d++]=f,g=l,h=k,e=a[f][1]):(d=0,e=null),l=k=!1):(a[f][0]==DIFF_DELETE?k=!0:l=!0,e&&(g&&h&&l&&k||e.length<this.Diff_EditCost/2&&3==g+h+l+k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,e=null,g&&h?(l=k=!0,d=0):(d--,f=0<d?c[d-1]:-1,l=k=!1),b=!0)),f++;b&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_cleanupMerge=function(a){a.push([DIFF_EQUAL,\"\"]);for(var b=0,c=0,d=0,e=\"\",f=\"\",g;b<a.length;)switch(a[b][0]){case DIFF_INSERT:d++;f+=a[b][1];b++;break;case DIFF_DELETE:c++;e+=a[b][1];b++;break;case DIFF_EQUAL:1<c+d?(0!==c&&0!==d&&(g=this.diff_commonPrefix(f,e),0!==g&&(0<b-c-d&&a[b-c-d-1][0]==DIFF_EQUAL?a[b-c-d-1][1]+=f.substring(0,g):(a.splice(0,0,[DIFF_EQUAL,f.substring(0,g)]),b++),f=f.substring(g),e=e.substring(g)),g=this.diff_commonSuffix(f,e),0!==g&&(a[b][1]=f.substring(f.length-\ng)+a[b][1],f=f.substring(0,f.length-g),e=e.substring(0,e.length-g))),0===c?a.splice(b-d,c+d,[DIFF_INSERT,f]):0===d?a.splice(b-c,c+d,[DIFF_DELETE,e]):a.splice(b-c-d,c+d,[DIFF_DELETE,e],[DIFF_INSERT,f]),b=b-c-d+(c?1:0)+(d?1:0)+1):0!==b&&a[b-1][0]==DIFF_EQUAL?(a[b-1][1]+=a[b][1],a.splice(b,1)):b++,c=d=0,f=e=\"\"}\"\"===a[a.length-1][1]&&a.pop();c=!1;for(b=1;b<a.length-1;)a[b-1][0]==DIFF_EQUAL&&a[b+1][0]==DIFF_EQUAL&&(a[b][1].substring(a[b][1].length-a[b-1][1].length)==a[b-1][1]?(a[b][1]=a[b-1][1]+a[b][1].substring(0,\na[b][1].length-a[b-1][1].length),a[b+1][1]=a[b-1][1]+a[b+1][1],a.splice(b-1,1),c=!0):a[b][1].substring(0,a[b+1][1].length)==a[b+1][1]&&(a[b-1][1]+=a[b+1][1],a[b][1]=a[b][1].substring(a[b+1][1].length)+a[b+1][1],a.splice(b+1,1),c=!0)),b++;c&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_xIndex=function(a,b){var c=0,d=0,e=0,f=0,g;for(g=0;g<a.length;g++){a[g][0]!==DIFF_INSERT&&(c+=a[g][1].length);a[g][0]!==DIFF_DELETE&&(d+=a[g][1].length);if(c>b)break;e=c;f=d}return a.length!=g&&a[g][0]===DIFF_DELETE?f:f+(b-e)};\ndiff_match_patch.prototype.diff_prettyHtml=function(a){for(var b=[],c=/&/g,d=/</g,e=/>/g,f=/\\n/g,g=0;g<a.length;g++){var h=a[g][0],l=a[g][1].replace(c,\"&\").replace(d,\"<\").replace(e,\">\").replace(f,\"¶<br>\");switch(h){case DIFF_INSERT:b[g]='<ins style=\"background:#e6ffe6;\">'+l+\"</ins>\";break;case DIFF_DELETE:b[g]='<del style=\"background:#ffe6e6;\">'+l+\"</del>\";break;case DIFF_EQUAL:b[g]=\"<span>\"+l+\"</span>\"}}return b.join(\"\")};\ndiff_match_patch.prototype.diff_text1=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_INSERT&&(b[c]=a[c][1]);return b.join(\"\")};diff_match_patch.prototype.diff_text2=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_DELETE&&(b[c]=a[c][1]);return b.join(\"\")};\ndiff_match_patch.prototype.diff_levenshtein=function(a){for(var b=0,c=0,d=0,e=0;e<a.length;e++){var f=a[e][1];switch(a[e][0]){case DIFF_INSERT:c+=f.length;break;case DIFF_DELETE:d+=f.length;break;case DIFF_EQUAL:b+=Math.max(c,d),d=c=0}}return b+=Math.max(c,d)};\ndiff_match_patch.prototype.diff_toDelta=function(a){for(var b=[],c=0;c<a.length;c++)switch(a[c][0]){case DIFF_INSERT:b[c]=\"+\"+encodeURI(a[c][1]);break;case DIFF_DELETE:b[c]=\"-\"+a[c][1].length;break;case DIFF_EQUAL:b[c]=\"=\"+a[c][1].length}return b.join(\"\\t\").replace(/%20/g,\" \")};\ndiff_match_patch.prototype.diff_fromDelta=function(a,b){for(var c=[],d=0,e=0,f=b.split(/\\t/g),g=0;g<f.length;g++){var h=f[g].substring(1);switch(f[g].charAt(0)){case \"+\":try{c[d++]=[DIFF_INSERT,decodeURI(h)]}catch(k){throw Error(\"Illegal escape in diff_fromDelta: \"+h);}break;case \"-\":case \"=\":var l=parseInt(h,10);if(isNaN(l)||0>l)throw Error(\"Invalid number in diff_fromDelta: \"+h);h=a.substring(e,e+=l);\"=\"==f[g].charAt(0)?c[d++]=[DIFF_EQUAL,h]:c[d++]=[DIFF_DELETE,h];break;default:if(f[g])throw Error(\"Invalid diff operation in diff_fromDelta: \"+\nf[g]);}}if(e!=a.length)throw Error(\"Delta length (\"+e+\") does not equal source text length (\"+a.length+\").\");return c};diff_match_patch.prototype.match_main=function(a,b,c){if(null==a||null==b||null==c)throw Error(\"Null input. (match_main)\");c=Math.max(0,Math.min(c,a.length));return a==b?0:a.length?a.substring(c,c+b.length)==b?c:this.match_bitap_(a,b,c):-1};\ndiff_match_patch.prototype.match_bitap_=function(a,b,c){function d(a,d){var e=a/b.length,g=Math.abs(c-d);return f.Match_Distance?e+g/f.Match_Distance:g?1:e}if(b.length>this.Match_MaxBits)throw Error(\"Pattern too long for this browser.\");var e=this.match_alphabet_(b),f=this,g=this.Match_Threshold,h=a.indexOf(b,c);-1!=h&&(g=Math.min(d(0,h),g),h=a.lastIndexOf(b,c+b.length),-1!=h&&(g=Math.min(d(0,h),g)));var l=1<<b.length-1;h=-1;for(var k,m,p=b.length+a.length,x,w=0;w<b.length;w++){k=0;for(m=p;k<m;)d(w,\nc+m)<=g?k=m:p=m,m=Math.floor((p-k)/2+k);p=m;k=Math.max(1,c-m+1);var q=Math.min(c+m,a.length)+b.length;m=Array(q+2);for(m[q+1]=(1<<w)-1;q>=k;q--){var t=e[a.charAt(q-1)];m[q]=0===w?(m[q+1]<<1|1)&t:(m[q+1]<<1|1)&t|(x[q+1]|x[q])<<1|1|x[q+1];if(m[q]&l&&(t=d(w,q-1),t<=g))if(g=t,h=q-1,h>c)k=Math.max(1,2*c-h);else break}if(d(w+1,c)>g)break;x=m}return h};\ndiff_match_patch.prototype.match_alphabet_=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=0;for(c=0;c<a.length;c++)b[a.charAt(c)]|=1<<a.length-c-1;return b};\ndiff_match_patch.prototype.patch_addContext_=function(a,b){if(0!=b.length){for(var c=b.substring(a.start2,a.start2+a.length1),d=0;b.indexOf(c)!=b.lastIndexOf(c)&&c.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)d+=this.Patch_Margin,c=b.substring(a.start2-d,a.start2+a.length1+d);d+=this.Patch_Margin;(c=b.substring(a.start2-d,a.start2))&&a.diffs.unshift([DIFF_EQUAL,c]);(d=b.substring(a.start2+a.length1,a.start2+a.length1+d))&&a.diffs.push([DIFF_EQUAL,d]);a.start1-=c.length;a.start2-=\nc.length;a.length1+=c.length+d.length;a.length2+=c.length+d.length}};\ndiff_match_patch.prototype.patch_make=function(a,b,c){if(\"string\"==typeof a&&\"string\"==typeof b&&\"undefined\"==typeof c){var d=a;b=this.diff_main(d,b,!0);2<b.length&&(this.diff_cleanupSemantic(b),this.diff_cleanupEfficiency(b))}else if(a&&\"object\"==typeof a&&\"undefined\"==typeof b&&\"undefined\"==typeof c)b=a,d=this.diff_text1(b);else if(\"string\"==typeof a&&b&&\"object\"==typeof b&&\"undefined\"==typeof c)d=a;else if(\"string\"==typeof a&&\"string\"==typeof b&&c&&\"object\"==typeof c)d=a,b=c;else throw Error(\"Unknown call format to patch_make.\");\nif(0===b.length)return[];c=[];a=new diff_match_patch.patch_obj;for(var e=0,f=0,g=0,h=d,l=0;l<b.length;l++){var k=b[l][0],m=b[l][1];e||k===DIFF_EQUAL||(a.start1=f,a.start2=g);switch(k){case DIFF_INSERT:a.diffs[e++]=b[l];a.length2+=m.length;d=d.substring(0,g)+m+d.substring(g);break;case DIFF_DELETE:a.length1+=m.length;a.diffs[e++]=b[l];d=d.substring(0,g)+d.substring(g+m.length);break;case DIFF_EQUAL:m.length<=2*this.Patch_Margin&&e&&b.length!=l+1?(a.diffs[e++]=b[l],a.length1+=m.length,a.length2+=m.length):\nm.length>=2*this.Patch_Margin&&e&&(this.patch_addContext_(a,h),c.push(a),a=new diff_match_patch.patch_obj,e=0,h=d,f=g)}k!==DIFF_INSERT&&(f+=m.length);k!==DIFF_DELETE&&(g+=m.length)}e&&(this.patch_addContext_(a,h),c.push(a));return c};\ndiff_match_patch.prototype.patch_deepCopy=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c],e=new diff_match_patch.patch_obj;e.diffs=[];for(var f=0;f<d.diffs.length;f++)e.diffs[f]=d.diffs[f].slice();e.start1=d.start1;e.start2=d.start2;e.length1=d.length1;e.length2=d.length2;b[c]=e}return b};\ndiff_match_patch.prototype.patch_apply=function(a,b){if(0==a.length)return[b,[]];a=this.patch_deepCopy(a);var c=this.patch_addPadding(a);b=c+b+c;this.patch_splitMax(a);for(var d=0,e=[],f=0;f<a.length;f++){var g=a[f].start2+d,h=this.diff_text1(a[f].diffs),l=-1;if(h.length>this.Match_MaxBits){var k=this.match_main(b,h.substring(0,this.Match_MaxBits),g);-1!=k&&(l=this.match_main(b,h.substring(h.length-this.Match_MaxBits),g+h.length-this.Match_MaxBits),-1==l||k>=l)&&(k=-1)}else k=this.match_main(b,h,\ng);if(-1==k)e[f]=!1,d-=a[f].length2-a[f].length1;else if(e[f]=!0,d=k-g,g=-1==l?b.substring(k,k+h.length):b.substring(k,l+this.Match_MaxBits),h==g)b=b.substring(0,k)+this.diff_text2(a[f].diffs)+b.substring(k+h.length);else if(g=this.diff_main(h,g,!1),h.length>this.Match_MaxBits&&this.diff_levenshtein(g)/h.length>this.Patch_DeleteThreshold)e[f]=!1;else{this.diff_cleanupSemanticLossless(g);h=0;var m;for(l=0;l<a[f].diffs.length;l++){var p=a[f].diffs[l];p[0]!==DIFF_EQUAL&&(m=this.diff_xIndex(g,h));p[0]===\nDIFF_INSERT?b=b.substring(0,k+m)+p[1]+b.substring(k+m):p[0]===DIFF_DELETE&&(b=b.substring(0,k+m)+b.substring(k+this.diff_xIndex(g,h+p[1].length)));p[0]!==DIFF_DELETE&&(h+=p[1].length)}}}b=b.substring(c.length,b.length-c.length);return[b,e]};\ndiff_match_patch.prototype.patch_addPadding=function(a){for(var b=this.Patch_Margin,c=\"\",d=1;d<=b;d++)c+=String.fromCharCode(d);for(d=0;d<a.length;d++)a[d].start1+=b,a[d].start2+=b;d=a[0];var e=d.diffs;if(0==e.length||e[0][0]!=DIFF_EQUAL)e.unshift([DIFF_EQUAL,c]),d.start1-=b,d.start2-=b,d.length1+=b,d.length2+=b;else if(b>e[0][1].length){var f=b-e[0][1].length;e[0][1]=c.substring(e[0][1].length)+e[0][1];d.start1-=f;d.start2-=f;d.length1+=f;d.length2+=f}d=a[a.length-1];e=d.diffs;0==e.length||e[e.length-\n1][0]!=DIFF_EQUAL?(e.push([DIFF_EQUAL,c]),d.length1+=b,d.length2+=b):b>e[e.length-1][1].length&&(f=b-e[e.length-1][1].length,e[e.length-1][1]+=c.substring(0,f),d.length1+=f,d.length2+=f);return c};\ndiff_match_patch.prototype.patch_splitMax=function(a){for(var b=this.Match_MaxBits,c=0;c<a.length;c++)if(!(a[c].length1<=b)){var d=a[c];a.splice(c--,1);for(var e=d.start1,f=d.start2,g=\"\";0!==d.diffs.length;){var h=new diff_match_patch.patch_obj,l=!0;h.start1=e-g.length;h.start2=f-g.length;\"\"!==g&&(h.length1=h.length2=g.length,h.diffs.push([DIFF_EQUAL,g]));for(;0!==d.diffs.length&&h.length1<b-this.Patch_Margin;){g=d.diffs[0][0];var k=d.diffs[0][1];g===DIFF_INSERT?(h.length2+=k.length,f+=k.length,h.diffs.push(d.diffs.shift()),\nl=!1):g===DIFF_DELETE&&1==h.diffs.length&&h.diffs[0][0]==DIFF_EQUAL&&k.length>2*b?(h.length1+=k.length,e+=k.length,l=!1,h.diffs.push([g,k]),d.diffs.shift()):(k=k.substring(0,b-h.length1-this.Patch_Margin),h.length1+=k.length,e+=k.length,g===DIFF_EQUAL?(h.length2+=k.length,f+=k.length):l=!1,h.diffs.push([g,k]),k==d.diffs[0][1]?d.diffs.shift():d.diffs[0][1]=d.diffs[0][1].substring(k.length))}g=this.diff_text2(h.diffs);g=g.substring(g.length-this.Patch_Margin);k=this.diff_text1(d.diffs).substring(0,\nthis.Patch_Margin);\"\"!==k&&(h.length1+=k.length,h.length2+=k.length,0!==h.diffs.length&&h.diffs[h.diffs.length-1][0]===DIFF_EQUAL?h.diffs[h.diffs.length-1][1]+=k:h.diffs.push([DIFF_EQUAL,k]));l||a.splice(++c,0,h)}}};diff_match_patch.prototype.patch_toText=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=a[c];return b.join(\"\")};\ndiff_match_patch.prototype.patch_fromText=function(a){var b=[];if(!a)return b;a=a.split(\"\\n\");for(var c=0,d=/^@@ -(\\d+),?(\\d*) \\+(\\d+),?(\\d*) @@$/;c<a.length;){var e=a[c].match(d);if(!e)throw Error(\"Invalid patch string: \"+a[c]);var f=new diff_match_patch.patch_obj;b.push(f);f.start1=parseInt(e[1],10);\"\"===e[2]?(f.start1--,f.length1=1):\"0\"==e[2]?f.length1=0:(f.start1--,f.length1=parseInt(e[2],10));f.start2=parseInt(e[3],10);\"\"===e[4]?(f.start2--,f.length2=1):\"0\"==e[4]?f.length2=0:(f.start2--,f.length2=\nparseInt(e[4],10));for(c++;c<a.length;){e=a[c].charAt(0);try{var g=decodeURI(a[c].substring(1))}catch(h){throw Error(\"Illegal escape in patch_fromText: \"+g);}if(\"-\"==e)f.diffs.push([DIFF_DELETE,g]);else if(\"+\"==e)f.diffs.push([DIFF_INSERT,g]);else if(\" \"==e)f.diffs.push([DIFF_EQUAL,g]);else if(\"@\"==e)break;else if(\"\"!==e)throw Error('Invalid patch mode \"'+e+'\" in: '+g);c++}}return b};diff_match_patch.patch_obj=function(){this.diffs=[];this.start2=this.start1=null;this.length2=this.length1=0};\ndiff_match_patch.patch_obj.prototype.toString=function(){for(var a=[\"@@ -\"+(0===this.length1?this.start1+\",0\":1==this.length1?this.start1+1:this.start1+1+\",\"+this.length1)+\" +\"+(0===this.length2?this.start2+\",0\":1==this.length2?this.start2+1:this.start2+1+\",\"+this.length2)+\" @@\\n\"],b,c=0;c<this.diffs.length;c++){switch(this.diffs[c][0]){case DIFF_INSERT:b=\"+\";break;case DIFF_DELETE:b=\"-\";break;case DIFF_EQUAL:b=\" \"}a[c+1]=b+encodeURI(this.diffs[c][1])+\"\\n\"}return a.join(\"\").replace(/%20/g,\" \")};\nthis.diff_match_patch=diff_match_patch;this.DIFF_DELETE=DIFF_DELETE;this.DIFF_INSERT=DIFF_INSERT;this.DIFF_EQUAL=DIFF_EQUAL;\n}).call(exports);",
"type": "application/javascript",
"title": "$:/core/modules/utils/diff-match-patch/diff_match_patch.js",
"module-type": "library"
},
"$:/core/modules/utils/dom/animations/slide.js": {
"title": "$:/core/modules/utils/dom/animations/slide.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/animations/slide.js\ntype: application/javascript\nmodule-type: animation\n\nA simple slide animation that varies the height of the element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction slideOpen(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration();\n\t// Get the current height of the domNode\n\tvar computedStyle = window.getComputedStyle(domNode),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrPaddingBottom = parseInt(computedStyle.paddingBottom,10),\n\t\tcurrPaddingTop = parseInt(computedStyle.paddingTop,10),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Reset the margin once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"none\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{marginTop: currMarginTop + \"px\"},\n\t\t{paddingBottom: currPaddingBottom + \"px\"},\n\t\t{paddingTop: currPaddingTop + \"px\"},\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n}\n\nfunction slideClosed(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration(),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Clear the properties we've set when the animation is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n}\n\nexports.slide = {\n\topen: slideOpen,\n\tclose: slideClosed\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "animation"
},
"$:/core/modules/utils/dom/animator.js": {
"title": "$:/core/modules/utils/dom/animator.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/animator.js\ntype: application/javascript\nmodule-type: utils\n\nOrchestrates animations and transitions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Animator() {\n\t// Get the registered animation modules\n\tthis.animations = {};\n\t$tw.modules.applyMethods(\"animation\",this.animations);\n}\n\nAnimator.prototype.perform = function(type,domNode,options) {\n\toptions = options || {};\n\t// Find an animation that can handle this type\n\tvar chosenAnimation;\n\t$tw.utils.each(this.animations,function(animation,name) {\n\t\tif($tw.utils.hop(animation,type)) {\n\t\t\tchosenAnimation = animation[type];\n\t\t}\n\t});\n\tif(!chosenAnimation) {\n\t\tchosenAnimation = function(domNode,options) {\n\t\t\tif(options.callback) {\n\t\t\t\toptions.callback();\n\t\t\t}\n\t\t};\n\t}\n\t// Call the animation\n\tchosenAnimation(domNode,options);\n};\n\nexports.Animator = Animator;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/browser.js": {
"title": "$:/core/modules/utils/dom/browser.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/browser.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser feature detection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet style properties of an element\n\telement: dom node\n\tstyles: ordered array of {name: value} pairs\n*/\nexports.setStyle = function(element,styles) {\n\tif(element.nodeType === 1) { // Element.ELEMENT_NODE\n\t\tfor(var t=0; t<styles.length; t++) {\n\t\t\tfor(var styleName in styles[t]) {\n\t\t\t\telement.style[$tw.utils.convertStyleNameToPropertyName(styleName)] = styles[t][styleName];\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nConverts a standard CSS property name into the local browser-specific equivalent. For example:\n\t\"background-color\" --> \"backgroundColor\"\n\t\"transition\" --> \"webkitTransition\"\n*/\n\nvar styleNameCache = {}; // We'll cache the style name conversions\n\nexports.convertStyleNameToPropertyName = function(styleName) {\n\t// Return from the cache if we can\n\tif(styleNameCache[styleName]) {\n\t\treturn styleNameCache[styleName];\n\t}\n\t// Convert it by first removing any hyphens\n\tvar propertyName = $tw.utils.unHyphenateCss(styleName);\n\t// Then check if it needs a prefix\n\tif($tw.browser && document.body.style[propertyName] === undefined) {\n\t\tvar prefixes = [\"O\",\"MS\",\"Moz\",\"webkit\"];\n\t\tfor(var t=0; t<prefixes.length; t++) {\n\t\t\tvar prefixedName = prefixes[t] + propertyName.substr(0,1).toUpperCase() + propertyName.substr(1);\n\t\t\tif(document.body.style[prefixedName] !== undefined) {\n\t\t\t\tpropertyName = prefixedName;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t// Put it in the cache too\n\tstyleNameCache[styleName] = propertyName;\n\treturn propertyName;\n};\n\n/*\nConverts a JS format CSS property name back into the dashed form used in CSS declarations. For example:\n\t\"backgroundColor\" --> \"background-color\"\n\t\"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.convertPropertyNameToStyleName = function(propertyName) {\n\t// Rehyphenate the name\n\tvar styleName = $tw.utils.hyphenateCss(propertyName);\n\t// If there's a webkit prefix, add a dash (other browsers have uppercase prefixes, and so get the dash automatically)\n\tif(styleName.indexOf(\"webkit\") === 0) {\n\t\tstyleName = \"-\" + styleName;\n\t} else if(styleName.indexOf(\"-m-s\") === 0) {\n\t\tstyleName = \"-ms\" + styleName.substr(4);\n\t}\n\treturn styleName;\n};\n\n/*\nRound trip a stylename to a property name and back again. For example:\n\t\"transform\" --> \"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.roundTripPropertyName = function(propertyName) {\n\treturn $tw.utils.convertPropertyNameToStyleName($tw.utils.convertStyleNameToPropertyName(propertyName));\n};\n\n/*\nConverts a standard event name into the local browser specific equivalent. For example:\n\t\"animationEnd\" --> \"webkitAnimationEnd\"\n*/\n\nvar eventNameCache = {}; // We'll cache the conversions\n\nvar eventNameMappings = {\n\t\"transitionEnd\": {\n\t\tcorrespondingCssProperty: \"transition\",\n\t\tmappings: {\n\t\t\ttransition: \"transitionend\",\n\t\t\tOTransition: \"oTransitionEnd\",\n\t\t\tMSTransition: \"msTransitionEnd\",\n\t\t\tMozTransition: \"transitionend\",\n\t\t\twebkitTransition: \"webkitTransitionEnd\"\n\t\t}\n\t},\n\t\"animationEnd\": {\n\t\tcorrespondingCssProperty: \"animation\",\n\t\tmappings: {\n\t\t\tanimation: \"animationend\",\n\t\t\tOAnimation: \"oAnimationEnd\",\n\t\t\tMSAnimation: \"msAnimationEnd\",\n\t\t\tMozAnimation: \"animationend\",\n\t\t\twebkitAnimation: \"webkitAnimationEnd\"\n\t\t}\n\t}\n};\n\nexports.convertEventName = function(eventName) {\n\tif(eventNameCache[eventName]) {\n\t\treturn eventNameCache[eventName];\n\t}\n\tvar newEventName = eventName,\n\t\tmappings = eventNameMappings[eventName];\n\tif(mappings) {\n\t\tvar convertedProperty = $tw.utils.convertStyleNameToPropertyName(mappings.correspondingCssProperty);\n\t\tif(mappings.mappings[convertedProperty]) {\n\t\t\tnewEventName = mappings.mappings[convertedProperty];\n\t\t}\n\t}\n\t// Put it in the cache too\n\teventNameCache[eventName] = newEventName;\n\treturn newEventName;\n};\n\n/*\nReturn the names of the fullscreen APIs\n*/\nexports.getFullScreenApis = function() {\n\tvar d = document,\n\t\tdb = d.body,\n\t\tresult = {\n\t\t\"_requestFullscreen\": db.webkitRequestFullscreen !== undefined ? \"webkitRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.mozRequestFullScreen !== undefined ? \"mozRequestFullScreen\" :\n\t\t\t\t\t\t\tdb.msRequestFullscreen !== undefined ? \"msRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.requestFullscreen !== undefined ? \"requestFullscreen\" : \"\",\n\t\t\"_exitFullscreen\": d.webkitExitFullscreen !== undefined ? \"webkitExitFullscreen\" :\n\t\t\t\t\t\t\td.mozCancelFullScreen !== undefined ? \"mozCancelFullScreen\" :\n\t\t\t\t\t\t\td.msExitFullscreen !== undefined ? \"msExitFullscreen\" :\n\t\t\t\t\t\t\td.exitFullscreen !== undefined ? \"exitFullscreen\" : \"\",\n\t\t\"_fullscreenElement\": d.webkitFullscreenElement !== undefined ? \"webkitFullscreenElement\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozFullScreenElement\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"msFullscreenElement\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenElement\" : \"\",\n\t\t\"_fullscreenChange\": d.webkitFullscreenElement !== undefined ? \"webkitfullscreenchange\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozfullscreenchange\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"MSFullscreenChange\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenchange\" : \"\"\n\t};\n\tif(!result._requestFullscreen || !result._exitFullscreen || !result._fullscreenElement || !result._fullscreenChange) {\n\t\treturn null;\n\t} else {\n\t\treturn result;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/csscolorparser.js": {
"title": "$:/core/modules/utils/dom/csscolorparser.js",
"text": "// (c) Dean McNamee <dean@gmail.com>, 2012.\n//\n// https://github.com/deanm/css-color-parser-js\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n// IN THE SOFTWARE.\n\n// http://www.w3.org/TR/css3-color/\nvar kCSSColorTable = {\n \"transparent\": [0,0,0,0], \"aliceblue\": [240,248,255,1],\n \"antiquewhite\": [250,235,215,1], \"aqua\": [0,255,255,1],\n \"aquamarine\": [127,255,212,1], \"azure\": [240,255,255,1],\n \"beige\": [245,245,220,1], \"bisque\": [255,228,196,1],\n \"black\": [0,0,0,1], \"blanchedalmond\": [255,235,205,1],\n \"blue\": [0,0,255,1], \"blueviolet\": [138,43,226,1],\n \"brown\": [165,42,42,1], \"burlywood\": [222,184,135,1],\n \"cadetblue\": [95,158,160,1], \"chartreuse\": [127,255,0,1],\n \"chocolate\": [210,105,30,1], \"coral\": [255,127,80,1],\n \"cornflowerblue\": [100,149,237,1], \"cornsilk\": [255,248,220,1],\n \"crimson\": [220,20,60,1], \"cyan\": [0,255,255,1],\n \"darkblue\": [0,0,139,1], \"darkcyan\": [0,139,139,1],\n \"darkgoldenrod\": [184,134,11,1], \"darkgray\": [169,169,169,1],\n \"darkgreen\": [0,100,0,1], \"darkgrey\": [169,169,169,1],\n \"darkkhaki\": [189,183,107,1], \"darkmagenta\": [139,0,139,1],\n \"darkolivegreen\": [85,107,47,1], \"darkorange\": [255,140,0,1],\n \"darkorchid\": [153,50,204,1], \"darkred\": [139,0,0,1],\n \"darksalmon\": [233,150,122,1], \"darkseagreen\": [143,188,143,1],\n \"darkslateblue\": [72,61,139,1], \"darkslategray\": [47,79,79,1],\n \"darkslategrey\": [47,79,79,1], \"darkturquoise\": [0,206,209,1],\n \"darkviolet\": [148,0,211,1], \"deeppink\": [255,20,147,1],\n \"deepskyblue\": [0,191,255,1], \"dimgray\": [105,105,105,1],\n \"dimgrey\": [105,105,105,1], \"dodgerblue\": [30,144,255,1],\n \"firebrick\": [178,34,34,1], \"floralwhite\": [255,250,240,1],\n \"forestgreen\": [34,139,34,1], \"fuchsia\": [255,0,255,1],\n \"gainsboro\": [220,220,220,1], \"ghostwhite\": [248,248,255,1],\n \"gold\": [255,215,0,1], \"goldenrod\": [218,165,32,1],\n \"gray\": [128,128,128,1], \"green\": [0,128,0,1],\n \"greenyellow\": [173,255,47,1], \"grey\": [128,128,128,1],\n \"honeydew\": [240,255,240,1], \"hotpink\": [255,105,180,1],\n \"indianred\": [205,92,92,1], \"indigo\": [75,0,130,1],\n \"ivory\": [255,255,240,1], \"khaki\": [240,230,140,1],\n \"lavender\": [230,230,250,1], \"lavenderblush\": [255,240,245,1],\n \"lawngreen\": [124,252,0,1], \"lemonchiffon\": [255,250,205,1],\n \"lightblue\": [173,216,230,1], \"lightcoral\": [240,128,128,1],\n \"lightcyan\": [224,255,255,1], \"lightgoldenrodyellow\": [250,250,210,1],\n \"lightgray\": [211,211,211,1], \"lightgreen\": [144,238,144,1],\n \"lightgrey\": [211,211,211,1], \"lightpink\": [255,182,193,1],\n \"lightsalmon\": [255,160,122,1], \"lightseagreen\": [32,178,170,1],\n \"lightskyblue\": [135,206,250,1], \"lightslategray\": [119,136,153,1],\n \"lightslategrey\": [119,136,153,1], \"lightsteelblue\": [176,196,222,1],\n \"lightyellow\": [255,255,224,1], \"lime\": [0,255,0,1],\n \"limegreen\": [50,205,50,1], \"linen\": [250,240,230,1],\n \"magenta\": [255,0,255,1], \"maroon\": [128,0,0,1],\n \"mediumaquamarine\": [102,205,170,1], \"mediumblue\": [0,0,205,1],\n \"mediumorchid\": [186,85,211,1], \"mediumpurple\": [147,112,219,1],\n \"mediumseagreen\": [60,179,113,1], \"mediumslateblue\": [123,104,238,1],\n \"mediumspringgreen\": [0,250,154,1], \"mediumturquoise\": [72,209,204,1],\n \"mediumvioletred\": [199,21,133,1], \"midnightblue\": [25,25,112,1],\n \"mintcream\": [245,255,250,1], \"mistyrose\": [255,228,225,1],\n \"moccasin\": [255,228,181,1], \"navajowhite\": [255,222,173,1],\n \"navy\": [0,0,128,1], \"oldlace\": [253,245,230,1],\n \"olive\": [128,128,0,1], \"olivedrab\": [107,142,35,1],\n \"orange\": [255,165,0,1], \"orangered\": [255,69,0,1],\n \"orchid\": [218,112,214,1], \"palegoldenrod\": [238,232,170,1],\n \"palegreen\": [152,251,152,1], \"paleturquoise\": [175,238,238,1],\n \"palevioletred\": [219,112,147,1], \"papayawhip\": [255,239,213,1],\n \"peachpuff\": [255,218,185,1], \"peru\": [205,133,63,1],\n \"pink\": [255,192,203,1], \"plum\": [221,160,221,1],\n \"powderblue\": [176,224,230,1], \"purple\": [128,0,128,1],\n \"red\": [255,0,0,1], \"rosybrown\": [188,143,143,1],\n \"royalblue\": [65,105,225,1], \"saddlebrown\": [139,69,19,1],\n \"salmon\": [250,128,114,1], \"sandybrown\": [244,164,96,1],\n \"seagreen\": [46,139,87,1], \"seashell\": [255,245,238,1],\n \"sienna\": [160,82,45,1], \"silver\": [192,192,192,1],\n \"skyblue\": [135,206,235,1], \"slateblue\": [106,90,205,1],\n \"slategray\": [112,128,144,1], \"slategrey\": [112,128,144,1],\n \"snow\": [255,250,250,1], \"springgreen\": [0,255,127,1],\n \"steelblue\": [70,130,180,1], \"tan\": [210,180,140,1],\n \"teal\": [0,128,128,1], \"thistle\": [216,191,216,1],\n \"tomato\": [255,99,71,1], \"turquoise\": [64,224,208,1],\n \"violet\": [238,130,238,1], \"wheat\": [245,222,179,1],\n \"white\": [255,255,255,1], \"whitesmoke\": [245,245,245,1],\n \"yellow\": [255,255,0,1], \"yellowgreen\": [154,205,50,1]}\n\nfunction clamp_css_byte(i) { // Clamp to integer 0 .. 255.\n i = Math.round(i); // Seems to be what Chrome does (vs truncation).\n return i < 0 ? 0 : i > 255 ? 255 : i;\n}\n\nfunction clamp_css_float(f) { // Clamp to float 0.0 .. 1.0.\n return f < 0 ? 0 : f > 1 ? 1 : f;\n}\n\nfunction parse_css_int(str) { // int or percentage.\n if (str[str.length - 1] === '%')\n return clamp_css_byte(parseFloat(str) / 100 * 255);\n return clamp_css_byte(parseInt(str));\n}\n\nfunction parse_css_float(str) { // float or percentage.\n if (str[str.length - 1] === '%')\n return clamp_css_float(parseFloat(str) / 100);\n return clamp_css_float(parseFloat(str));\n}\n\nfunction css_hue_to_rgb(m1, m2, h) {\n if (h < 0) h += 1;\n else if (h > 1) h -= 1;\n\n if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;\n if (h * 2 < 1) return m2;\n if (h * 3 < 2) return m1 + (m2 - m1) * (2/3 - h) * 6;\n return m1;\n}\n\nfunction parseCSSColor(css_str) {\n // Remove all whitespace, not compliant, but should just be more accepting.\n var str = css_str.replace(/ /g, '').toLowerCase();\n\n // Color keywords (and transparent) lookup.\n if (str in kCSSColorTable) return kCSSColorTable[str].slice(); // dup.\n\n // #abc and #abc123 syntax.\n if (str[0] === '#') {\n if (str.length === 4) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xfff)) return null; // Covers NaN.\n return [((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8),\n (iv & 0xf0) | ((iv & 0xf0) >> 4),\n (iv & 0xf) | ((iv & 0xf) << 4),\n 1];\n } else if (str.length === 7) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xffffff)) return null; // Covers NaN.\n return [(iv & 0xff0000) >> 16,\n (iv & 0xff00) >> 8,\n iv & 0xff,\n 1];\n }\n\n return null;\n }\n\n var op = str.indexOf('('), ep = str.indexOf(')');\n if (op !== -1 && ep + 1 === str.length) {\n var fname = str.substr(0, op);\n var params = str.substr(op+1, ep-(op+1)).split(',');\n var alpha = 1; // To allow case fallthrough.\n switch (fname) {\n case 'rgba':\n if (params.length !== 4) return null;\n alpha = parse_css_float(params.pop());\n // Fall through.\n case 'rgb':\n if (params.length !== 3) return null;\n return [parse_css_int(params[0]),\n parse_css_int(params[1]),\n parse_css_int(params[2]),\n alpha];\n case 'hsla':\n if (params.length !== 4) return null;\n alpha = parse_css_float(params.pop());\n // Fall through.\n case 'hsl':\n if (params.length !== 3) return null;\n var h = (((parseFloat(params[0]) % 360) + 360) % 360) / 360; // 0 .. 1\n // NOTE(deanm): According to the CSS spec s/l should only be\n // percentages, but we don't bother and let float or percentage.\n var s = parse_css_float(params[1]);\n var l = parse_css_float(params[2]);\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var m1 = l * 2 - m2;\n return [clamp_css_byte(css_hue_to_rgb(m1, m2, h+1/3) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h-1/3) * 255),\n alpha];\n default:\n return null;\n }\n }\n\n return null;\n}\n\ntry { exports.parseCSSColor = parseCSSColor } catch(e) { }\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom.js": {
"title": "$:/core/modules/utils/dom.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static DOM-related utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDetermines whether element 'a' contains element 'b'\nCode thanks to John Resig, http://ejohn.org/blog/comparing-document-position/\n*/\nexports.domContains = function(a,b) {\n\treturn a.contains ?\n\t\ta !== b && a.contains(b) :\n\t\t!!(a.compareDocumentPosition(b) & 16);\n};\n\nexports.removeChildren = function(node) {\n\twhile(node.hasChildNodes()) {\n\t\tnode.removeChild(node.firstChild);\n\t}\n};\n\nexports.hasClass = function(el,className) {\n\treturn el && el.hasAttribute && el.hasAttribute(\"class\") && el.getAttribute(\"class\").split(\" \").indexOf(className) !== -1;\n};\n\nexports.addClass = function(el,className) {\n\tvar c = (el.getAttribute(\"class\") || \"\").split(\" \");\n\tif(c.indexOf(className) === -1) {\n\t\tc.push(className);\n\t\tel.setAttribute(\"class\",c.join(\" \"));\n\t}\n};\n\nexports.removeClass = function(el,className) {\n\tvar c = (el.getAttribute(\"class\") || \"\").split(\" \"),\n\t\tp = c.indexOf(className);\n\tif(p !== -1) {\n\t\tc.splice(p,1);\n\t\tel.setAttribute(\"class\",c.join(\" \"));\n\t}\n};\n\nexports.toggleClass = function(el,className,status) {\n\tif(status === undefined) {\n\t\tstatus = !exports.hasClass(el,className);\n\t}\n\tif(status) {\n\t\texports.addClass(el,className);\n\t} else {\n\t\texports.removeClass(el,className);\n\t}\n};\n\n/*\nGet the first parent element that has scrollbars or use the body as fallback.\n*/\nexports.getScrollContainer = function(el) {\n\tvar doc = el.ownerDocument;\n\twhile(el.parentNode) {\t\n\t\tel = el.parentNode;\n\t\tif(el.scrollTop) {\n\t\t\treturn el;\n\t\t}\n\t}\n\treturn doc.body;\n};\n\n/*\nGet the scroll position of the viewport\nReturns:\n\t{\n\t\tx: horizontal scroll position in pixels,\n\t\ty: vertical scroll position in pixels\n\t}\n*/\nexports.getScrollPosition = function(srcWindow) {\n\tvar scrollWindow = srcWindow || window;\n\tif(\"scrollX\" in scrollWindow) {\n\t\treturn {x: scrollWindow.scrollX, y: scrollWindow.scrollY};\n\t} else {\n\t\treturn {x: scrollWindow.document.documentElement.scrollLeft, y: scrollWindow.document.documentElement.scrollTop};\n\t}\n};\n\n/*\nAdjust the height of a textarea to fit its content, preserving scroll position, and return the height\n*/\nexports.resizeTextAreaToFit = function(domNode,minHeight) {\n\t// Get the scroll container and register the current scroll position\n\tvar container = $tw.utils.getScrollContainer(domNode),\n\t\tscrollTop = container.scrollTop;\n // Measure the specified minimum height\n\tdomNode.style.height = minHeight;\n\tvar measuredHeight = domNode.offsetHeight || parseInt(minHeight,10);\n\t// Set its height to auto so that it snaps to the correct height\n\tdomNode.style.height = \"auto\";\n\t// Calculate the revised height\n\tvar newHeight = Math.max(domNode.scrollHeight + domNode.offsetHeight - domNode.clientHeight,measuredHeight);\n\t// Only try to change the height if it has changed\n\tif(newHeight !== domNode.offsetHeight) {\n\t\tdomNode.style.height = newHeight + \"px\";\n\t\t// Make sure that the dimensions of the textarea are recalculated\n\t\t$tw.utils.forceLayout(domNode);\n\t\t// Set the container to the position we registered at the beginning\n\t\tcontainer.scrollTop = scrollTop;\n\t}\n\treturn newHeight;\n};\n\n/*\nGets the bounding rectangle of an element in absolute page coordinates\n*/\nexports.getBoundingPageRect = function(element) {\n\tvar scrollPos = $tw.utils.getScrollPosition(element.ownerDocument.defaultView),\n\t\tclientRect = element.getBoundingClientRect();\n\treturn {\n\t\tleft: clientRect.left + scrollPos.x,\n\t\twidth: clientRect.width,\n\t\tright: clientRect.right + scrollPos.x,\n\t\ttop: clientRect.top + scrollPos.y,\n\t\theight: clientRect.height,\n\t\tbottom: clientRect.bottom + scrollPos.y\n\t};\n};\n\n/*\nSaves a named password in the browser\n*/\nexports.savePassword = function(name,password) {\n\tvar done = false;\n\ttry {\n\t\twindow.localStorage.setItem(\"tw5-password-\" + name,password);\n\t\tdone = true;\n\t} catch(e) {\n\t}\n\tif(!done) {\n\t\t$tw.savedPasswords = $tw.savedPasswords || Object.create(null);\n\t\t$tw.savedPasswords[name] = password;\n\t}\n};\n\n/*\nRetrieve a named password from the browser\n*/\nexports.getPassword = function(name) {\n\tvar value;\n\ttry {\n\t\tvalue = window.localStorage.getItem(\"tw5-password-\" + name);\n\t} catch(e) {\n\t}\n\tif(value !== undefined) {\n\t\treturn value;\n\t} else {\n\t\treturn ($tw.savedPasswords || Object.create(null))[name] || \"\";\n\t}\n};\n\n/*\nForce layout of a dom node and its descendents\n*/\nexports.forceLayout = function(element) {\n\tvar dummy = element.offsetWidth;\n};\n\n/*\nPulse an element for debugging purposes\n*/\nexports.pulseElement = function(element) {\n\t// Event handler to remove the class at the end\n\telement.addEventListener($tw.browser.animationEnd,function handler(event) {\n\t\telement.removeEventListener($tw.browser.animationEnd,handler,false);\n\t\t$tw.utils.removeClass(element,\"pulse\");\n\t},false);\n\t// Apply the pulse class\n\t$tw.utils.removeClass(element,\"pulse\");\n\t$tw.utils.forceLayout(element);\n\t$tw.utils.addClass(element,\"pulse\");\n};\n\n/*\nAttach specified event handlers to a DOM node\ndomNode: where to attach the event handlers\nevents: array of event handlers to be added (see below)\nEach entry in the events array is an object with these properties:\nhandlerFunction: optional event handler function\nhandlerObject: optional event handler object\nhandlerMethod: optionally specifies object handler method name (defaults to `handleEvent`)\n*/\nexports.addEventListeners = function(domNode,events) {\n\t$tw.utils.each(events,function(eventInfo) {\n\t\tvar handler;\n\t\tif(eventInfo.handlerFunction) {\n\t\t\thandler = eventInfo.handlerFunction;\n\t\t} else if(eventInfo.handlerObject) {\n\t\t\tif(eventInfo.handlerMethod) {\n\t\t\t\thandler = function(event) {\n\t\t\t\t\teventInfo.handlerObject[eventInfo.handlerMethod].call(eventInfo.handlerObject,event);\n\t\t\t\t};\t\n\t\t\t} else {\n\t\t\t\thandler = eventInfo.handlerObject;\n\t\t\t}\n\t\t}\n\t\tdomNode.addEventListener(eventInfo.name,handler,false);\n\t});\n};\n\n/*\nGet the computed styles applied to an element as an array of strings of individual CSS properties\n*/\nexports.getComputedStyles = function(domNode) {\n\tvar textAreaStyles = window.getComputedStyle(domNode,null),\n\t\tstyleDefs = [],\n\t\tname;\n\tfor(var t=0; t<textAreaStyles.length; t++) {\n\t\tname = textAreaStyles[t];\n\t\tstyleDefs.push(name + \": \" + textAreaStyles.getPropertyValue(name) + \";\");\n\t}\n\treturn styleDefs;\n};\n\n/*\nApply a set of styles passed as an array of strings of individual CSS properties\n*/\nexports.setStyles = function(domNode,styleDefs) {\n\tdomNode.style.cssText = styleDefs.join(\"\");\n};\n\n/*\nCopy the computed styles from a source element to a destination element\n*/\nexports.copyStyles = function(srcDomNode,dstDomNode) {\n\t$tw.utils.setStyles(dstDomNode,$tw.utils.getComputedStyles(srcDomNode));\n};\n\n/*\nCopy plain text to the clipboard on browsers that support it\n*/\nexports.copyToClipboard = function(text,options) {\n\toptions = options || {};\n\tvar textArea = document.createElement(\"textarea\");\n\ttextArea.style.position = \"fixed\";\n\ttextArea.style.top = 0;\n\ttextArea.style.left = 0;\n\ttextArea.style.fontSize = \"12pt\";\n\ttextArea.style.width = \"2em\";\n\ttextArea.style.height = \"2em\";\n\ttextArea.style.padding = 0;\n\ttextArea.style.border = \"none\";\n\ttextArea.style.outline = \"none\";\n\ttextArea.style.boxShadow = \"none\";\n\ttextArea.style.background = \"transparent\";\n\ttextArea.value = text;\n\tdocument.body.appendChild(textArea);\n\ttextArea.select();\n\ttextArea.setSelectionRange(0,text.length);\n\tvar succeeded = false;\n\ttry {\n\t\tsucceeded = document.execCommand(\"copy\");\n\t} catch (err) {\n\t}\n\tif(!options.doNotNotify) {\n\t\t$tw.notifier.display(succeeded ? \"$:/language/Notifications/CopiedToClipboard/Succeeded\" : \"$:/language/Notifications/CopiedToClipboard/Failed\");\n\t}\n\tdocument.body.removeChild(textArea);\n};\n\nexports.getLocationPath = function() {\n\treturn window.location.toString().split(\"#\")[0];\n};\n\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/dragndrop.js": {
"title": "$:/core/modules/utils/dom/dragndrop.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/dragndrop.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser data transfer utilities, used with the clipboard and drag and drop\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOptions:\n\ndomNode: dom node to make draggable\ndragImageType: \"pill\" or \"dom\"\ndragTiddlerFn: optional function to retrieve the title of tiddler to drag\ndragFilterFn: optional function to retreive the filter defining a list of tiddlers to drag\nwidget: widget to use as the contect for the filter\n*/\nexports.makeDraggable = function(options) {\n\tvar dragImageType = options.dragImageType || \"dom\",\n\t\tdragImage,\n\t\tdomNode = options.domNode;\n\t// Make the dom node draggable (not necessary for anchor tags)\n\tif((domNode.tagName || \"\").toLowerCase() !== \"a\") {\n\t\tdomNode.setAttribute(\"draggable\",\"true\");\t\t\n\t}\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragstart\", handlerFunction: function(event) {\n\t\t\tif(event.dataTransfer === undefined) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Collect the tiddlers being dragged\n\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t \tstartActions = options.startActions;\n\t\t\tif(dragFilter) {\n\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t}\n\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t// Check that we've something to drag\n\t\t\tif(titles.length > 0 && event.target === domNode) {\n\t\t\t\t// Mark the drag in progress\n\t\t\t\t$tw.dragInProgress = domNode;\n\t\t\t\t// Set the dragging class on the element being dragged\n\t\t\t\t$tw.utils.addClass(event.target,\"tc-dragging\");\n\t\t\t\t// Invoke drag-start actions if given\n\t\t\t\tif(startActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(startActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Create the drag image elements\n\t\t\t\tdragImage = options.widget.document.createElement(\"div\");\n\t\t\t\tdragImage.className = \"tc-tiddler-dragger\";\n\t\t\t\tvar inner = options.widget.document.createElement(\"div\");\n\t\t\t\tinner.className = \"tc-tiddler-dragger-inner\";\n\t\t\t\tinner.appendChild(options.widget.document.createTextNode(\n\t\t\t\t\ttitles.length === 1 ? \n\t\t\t\t\t\ttitles[0] :\n\t\t\t\t\t\ttitles.length + \" tiddlers\"\n\t\t\t\t));\n\t\t\t\tdragImage.appendChild(inner);\n\t\t\t\toptions.widget.document.body.appendChild(dragImage);\n\t\t\t\t// Set the data transfer properties\n\t\t\t\tvar dataTransfer = event.dataTransfer;\n\t\t\t\t// Set up the image\n\t\t\t\tdataTransfer.effectAllowed = \"all\";\n\t\t\t\tif(dataTransfer.setDragImage) {\n\t\t\t\t\tif(dragImageType === \"pill\") {\n\t\t\t\t\t\tdataTransfer.setDragImage(dragImage.firstChild,-16,-16);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar r = domNode.getBoundingClientRect();\n\t\t\t\t\t\tdataTransfer.setDragImage(domNode,event.clientX-r.left,event.clientY-r.top);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Set up the data transfer\n\t\t\t\tif(dataTransfer.clearData) {\n\t\t\t\t\tdataTransfer.clearData();\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tvar jsonData = [];\n\t\t\t\tif(titles.length > 1) {\n\t\t\t\t\ttitles.forEach(function(title) {\n\t\t\t\t\t\tjsonData.push(options.widget.wiki.getTiddlerAsJson(title));\n\t\t\t\t\t});\n\t\t\t\t\tjsonData = \"[\" + jsonData.join(\",\") + \"]\";\n\t\t\t\t} else {\n\t\t\t\t\tjsonData = options.widget.wiki.getTiddlerAsJson(titles[0]);\n\t\t\t\t}\n\t\t\t\t// IE doesn't like these content types\n\t\t\t\tif(!$tw.browser.isIE) {\n\t\t\t\t\tdataTransfer.setData(\"text/vnd.tiddler\",jsonData);\n\t\t\t\t\tdataTransfer.setData(\"text/plain\",titleString);\n\t\t\t\t\tdataTransfer.setData(\"text/x-moz-url\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\t}\n\t\t\t\tdataTransfer.setData(\"URL\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\tdataTransfer.setData(\"Text\",titleString);\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t\treturn false;\n\t\t}},\n\t\t{name: \"dragend\", handlerFunction: function(event) {\n\t\t\tif(event.target === domNode) {\n\t\t\t\t// Collect the tiddlers being dragged\n\t\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t \t\tendActions = options.endActions;\n\t\t\t\tif(dragFilter) {\n\t\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t\t}\n\t\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t\t$tw.dragInProgress = null;\n\t\t\t\t// Invoke drag-end actions if given\n\t\t\t\tif(endActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(endActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Remove the dragging class on the element being dragged\n\t\t\t\t$tw.utils.removeClass(event.target,\"tc-dragging\");\n\t\t\t\t// Delete the drag image element\n\t\t\t\tif(dragImage) {\n\t\t\t\t\tdragImage.parentNode.removeChild(dragImage);\n\t\t\t\t\tdragImage = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}}\n\t]);\n};\n\nexports.importDataTransfer = function(dataTransfer,fallbackTitle,callback) {\n\t// Try each provided data type in turn\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Available data types:\");\n\t\tfor(var type=0; type<dataTransfer.types.length; type++) {\n\t\t\tconsole.log(\"type\",dataTransfer.types[type],dataTransfer.getData(dataTransfer.types[type]))\n\t\t}\n\t}\n\tfor(var t=0; t<importDataTypes.length; t++) {\n\t\tif(!$tw.browser.isIE || importDataTypes[t].IECompatible) {\n\t\t\t// Get the data\n\t\t\tvar dataType = importDataTypes[t];\n\t\t\t\tvar data = dataTransfer.getData(dataType.type);\n\t\t\t// Import the tiddlers in the data\n\t\t\tif(data !== \"\" && data !== null) {\n\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\tconsole.log(\"Importing data type '\" + dataType.type + \"', data: '\" + data + \"'\")\n\t\t\t\t}\n\t\t\t\tvar tiddlerFields = dataType.toTiddlerFieldsArray(data,fallbackTitle);\n\t\t\t\tcallback(tiddlerFields);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar importDataTypes = [\n\t{type: \"text/vnd.tiddler\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn parseJSONTiddlers(data,fallbackTitle);\n\t}},\n\t{type: \"URL\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/x-moz-url\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/html\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/plain\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"Text\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/uri-list\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}}\n];\n\nfunction parseJSONTiddlers(json,fallbackTitle) {\n\tvar data = JSON.parse(json);\n\tif(!$tw.utils.isArray(data)) {\n\t\tdata = [data];\n\t}\n\tdata.forEach(function(fields) {\n\t\tfields.title = fields.title || fallbackTitle;\n\t});\n\treturn data;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/http.js": {
"title": "$:/core/modules/utils/dom/http.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/http.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser HTTP support\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nA quick and dirty HTTP function; to be refactored later. Options are:\n\turl: URL to retrieve\n\theaders: hashmap of headers to send\n\ttype: GET, PUT, POST etc\n\tcallback: function invoked with (err,data,xhr)\n\treturnProp: string name of the property to return as first argument of callback\n*/\nexports.httpRequest = function(options) {\n\tvar type = options.type || \"GET\",\n\t\turl = options.url,\n\t\theaders = options.headers || {accept: \"application/json\"},\n\t\thasHeader = function(targetHeader) {\n\t\t\ttargetHeader = targetHeader.toLowerCase();\n\t\t\tvar result = false;\n\t\t\t$tw.utils.each(headers,function(header,headerTitle,object) {\n\t\t\t\tif(headerTitle.toLowerCase() === targetHeader) {\n\t\t\t\t\tresult = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn result;\n\t\t},\n\t\treturnProp = options.returnProp || \"responseText\",\n\t\trequest = new XMLHttpRequest(),\n\t\tdata = \"\",\n\t\tf,results;\n\t// Massage the data hashmap into a string\n\tif(options.data) {\n\t\tif(typeof options.data === \"string\") { // Already a string\n\t\t\tdata = options.data;\n\t\t} else { // A hashmap of strings\n\t\t\tresults = [];\n\t\t\t$tw.utils.each(options.data,function(dataItem,dataItemTitle) {\n\t\t\t\tresults.push(dataItemTitle + \"=\" + encodeURIComponent(dataItem));\n\t\t\t});\n\t\t\tif(type === \"GET\" || type === \"HEAD\") {\n\t\t\t\turl += \"?\" + results.join(\"&\");\n\t\t\t} else {\n\t\t\t\tdata = results.join(\"&\");\n\t\t\t}\n\t\t}\n\t}\n\t// Set up the state change handler\n\trequest.onreadystatechange = function() {\n\t\tif(this.readyState === 4) {\n\t\t\tif(this.status === 200 || this.status === 201 || this.status === 204) {\n\t\t\t\t// Success!\n\t\t\t\toptions.callback(null,this[returnProp],this);\n\t\t\t\treturn;\n\t\t\t}\n\t\t// Something went wrong\n\t\toptions.callback($tw.language.getString(\"Error/XMLHttpRequest\") + \": \" + this.status,null,this);\n\t\t}\n\t};\n\t// Make the request\n\trequest.open(type,url,true);\n\tif(headers) {\n\t\t$tw.utils.each(headers,function(header,headerTitle,object) {\n\t\t\trequest.setRequestHeader(headerTitle,header);\n\t\t});\n\t}\n\tif(data && !hasHeader(\"Content-Type\")) {\n\t\trequest.setRequestHeader(\"Content-Type\",\"application/x-www-form-urlencoded; charset=UTF-8\");\n\t}\n\tif(!hasHeader(\"X-Requested-With\")) {\n\t\trequest.setRequestHeader(\"X-Requested-With\",\"TiddlyWiki\");\n\t}\n\ttry {\n\t\trequest.send(data);\n\t} catch(e) {\n\t\toptions.callback(e,null,this);\n\t}\n\treturn request;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/keyboard.js": {
"title": "$:/core/modules/utils/dom/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/keyboard.js\ntype: application/javascript\nmodule-type: utils\n\nKeyboard utilities; now deprecated. Instead, use $tw.keyboardManager\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n[\"parseKeyDescriptor\",\"checkKeyDescriptor\"].forEach(function(method) {\n\texports[method] = function() {\n\t\tif($tw.keyboardManager) {\n\t\t\treturn $tw.keyboardManager[method].apply($tw.keyboardManager,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t};\n});\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/modal.js": {
"title": "$:/core/modules/utils/dom/modal.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/modal.js\ntype: application/javascript\nmodule-type: utils\n\nModal message mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\nvar navigator = require(\"$:/core/modules/widgets/navigator.js\");\n\nvar Modal = function(wiki) {\n\tthis.wiki = wiki;\n\tthis.modalCount = 0;\n};\n\n/*\nDisplay a modal dialogue\n\ttitle: Title of tiddler to display\n\toptions: see below\nOptions include:\n\tdownloadLink: Text of a big download link to include\n*/\nModal.prototype.display = function(title,options) {\n\toptions = options || {};\n\tthis.srcDocument = options.variables && (options.variables.rootwindow === \"true\" ||\n\t\t\t\toptions.variables.rootwindow === \"yes\") ? document :\n\t\t\t\t(options.event.event && options.event.event.target ? options.event.event.target.ownerDocument : document);\n\tthis.srcWindow = this.srcDocument.defaultView;\n\tvar self = this,\n\t\trefreshHandler,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\ttiddler = this.wiki.getTiddler(title);\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Create the variables\n\tvar variables = $tw.utils.extend({\n\t\t\tcurrentTiddler: title,\n\t\t\t\"tv-story-list\": (options.event && options.event.widget ? options.event.widget.getVariable(\"tv-story-list\") : \"\"),\n\t\t\t\"tv-history-list\": (options.event && options.event.widget ? options.event.widget.getVariable(\"tv-history-list\") : \"\")\n\t\t},options.variables);\n\n\t// Create the wrapper divs\n\tvar wrapper = this.srcDocument.createElement(\"div\"),\n\t\tmodalBackdrop = this.srcDocument.createElement(\"div\"),\n\t\tmodalWrapper = this.srcDocument.createElement(\"div\"),\n\t\tmodalHeader = this.srcDocument.createElement(\"div\"),\n\t\theaderTitle = this.srcDocument.createElement(\"h3\"),\n\t\tmodalBody = this.srcDocument.createElement(\"div\"),\n\t\tmodalLink = this.srcDocument.createElement(\"a\"),\n\t\tmodalFooter = this.srcDocument.createElement(\"div\"),\n\t\tmodalFooterHelp = this.srcDocument.createElement(\"span\"),\n\t\tmodalFooterButtons = this.srcDocument.createElement(\"span\");\n\t// Up the modal count and adjust the body class\n\tthis.modalCount++;\n\tthis.adjustPageClass();\n\t// Add classes\n\t$tw.utils.addClass(wrapper,\"tc-modal-wrapper\");\n\tif(tiddler.fields && tiddler.fields.class) {\n\t\t$tw.utils.addClass(wrapper,tiddler.fields.class);\n\t}\n\t$tw.utils.addClass(modalBackdrop,\"tc-modal-backdrop\");\n\t$tw.utils.addClass(modalWrapper,\"tc-modal\");\n\t$tw.utils.addClass(modalHeader,\"tc-modal-header\");\n\t$tw.utils.addClass(modalBody,\"tc-modal-body\");\n\t$tw.utils.addClass(modalFooter,\"tc-modal-footer\");\n\t// Join them together\n\twrapper.appendChild(modalBackdrop);\n\twrapper.appendChild(modalWrapper);\n\tmodalHeader.appendChild(headerTitle);\n\tmodalWrapper.appendChild(modalHeader);\n\tmodalWrapper.appendChild(modalBody);\n\tmodalFooter.appendChild(modalFooterHelp);\n\tmodalFooter.appendChild(modalFooterButtons);\n\tmodalWrapper.appendChild(modalFooter);\n\tvar navigatorTree = {\n\t\t\"type\": \"navigator\",\n\t\t\"attributes\": {\n\t\t\t\"story\": {\n\t\t\t\t\"name\": \"story\",\n\t\t\t\t\"type\": \"string\",\n\t\t\t\t\"value\": variables[\"tv-story-list\"]\n\t\t\t},\n\t\t\t\"history\": {\n\t\t\t\t\"name\": \"history\",\n\t\t\t\t\"type\": \"string\",\n\t\t\t\t\"value\": variables[\"tv-history-list\"]\n\t\t\t}\n\t\t},\n\t\t\"tag\": \"$navigator\",\n\t\t\"isBlock\": true,\n\t\t\"children\": []\n\t};\n\tvar navigatorWidgetNode = new navigator.navigator(navigatorTree, {\n\t\twiki: this.wiki,\n\t\tdocument : this.srcDocument,\n\t\tparentWidget: $tw.rootWidget\n\t});\n\tnavigatorWidgetNode.render(modalBody,null);\n\t\n\t// Render the title of the message\n\tvar headerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"subtitle\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\tattributes: {\n\t\t\t\ttext: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title\n\t\t}}}],\n\t\tparentWidget: navigatorWidgetNode,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\theaderWidgetNode.render(headerTitle,null);\n\t// Render the body of the message\n\tvar bodyWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: navigatorWidgetNode,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\n\tbodyWidgetNode.render(modalBody,null);\n\t// Setup the link if present\n\tif(options.downloadLink) {\n\t\tmodalLink.href = options.downloadLink;\n\t\tmodalLink.appendChild(this.srcDocument.createTextNode(\"Right-click to save changes\"));\n\t\tmodalBody.appendChild(modalLink);\n\t}\n\t// Render the footer of the message\n\tif(tiddler.fields && tiddler.fields.help) {\n\t\tvar link = this.srcDocument.createElement(\"a\");\n\t\tlink.setAttribute(\"href\",tiddler.fields.help);\n\t\tlink.setAttribute(\"target\",\"_blank\");\n\t\tlink.setAttribute(\"rel\",\"noopener noreferrer\");\n\t\tlink.appendChild(this.srcDocument.createTextNode(\"Help\"));\n\t\tmodalFooterHelp.appendChild(link);\n\t\tmodalFooterHelp.style.float = \"left\";\n\t}\n\tvar footerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"footer\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"button\",\n\t\t\tattributes: {\n\t\t\t\tmessage: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: \"tm-close-tiddler\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\tattributes: {\n\t\t\t\t\ttext: {\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\tvalue: $tw.language.getString(\"Buttons/Close/Caption\")\n\t\t\t}}}\n\t\t]}],\n\t\tparentWidget: navigatorWidgetNode,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tfooterWidgetNode.render(modalFooterButtons,null);\n\t// Set up the refresh handler\n\trefreshHandler = function(changes) {\n\t\theaderWidgetNode.refresh(changes,modalHeader,null);\n\t\tbodyWidgetNode.refresh(changes,modalBody,null);\n\t\tfooterWidgetNode.refresh(changes,modalFooterButtons,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Add the close event handler\n\tvar closeHandler = function(event) {\n\t\t// Remove our refresh handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Decrease the modal count and adjust the body class\n\t\tself.modalCount--;\n\t\tself.adjustPageClass();\n\t\t// Force layout and animate the modal message away\n\t\t$tw.utils.forceLayout(modalBackdrop);\n\t\t$tw.utils.forceLayout(modalWrapper);\n\t\t$tw.utils.setStyle(modalBackdrop,[\n\t\t\t{opacity: \"0\"}\n\t\t]);\n\t\t$tw.utils.setStyle(modalWrapper,[\n\t\t\t{transform: \"translateY(\" + self.srcWindow.innerHeight + \"px)\"}\n\t\t]);\n\t\t// Set up an event for the transition end\n\t\tself.srcWindow.setTimeout(function() {\n\t\t\tif(wrapper.parentNode) {\n\t\t\t\t// Remove the modal message from the DOM\n\t\t\t\tself.srcDocument.body.removeChild(wrapper);\n\t\t\t}\n\t\t},duration);\n\t\t// Don't let anyone else handle the tm-close-tiddler message\n\t\treturn false;\n\t};\n\theaderWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tbodyWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tfooterWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\t// Set the initial styles for the message\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-this.srcWindow.innerHeight) + \"px)\"}\n\t]);\n\t// Put the message into the document\n\tthis.srcDocument.body.appendChild(wrapper);\n\t// Set up animation for the styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{transition: \"opacity \" + duration + \"ms ease-out\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(modalBackdrop);\n\t$tw.utils.forceLayout(modalWrapper);\n\t// Set final animated styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0.7\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n};\n\nModal.prototype.adjustPageClass = function() {\n\tvar windowContainer = $tw.pageContainer ? ($tw.pageContainer === this.srcDocument.body.firstChild ? $tw.pageContainer : this.srcDocument.body.firstChild) : null;\n\tif(windowContainer) {\n\t\t$tw.utils.toggleClass(windowContainer,\"tc-modal-displayed\",this.modalCount > 0);\n\t}\n};\n\nexports.Modal = Modal;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/notifier.js": {
"title": "$:/core/modules/utils/dom/notifier.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/notifier.js\ntype: application/javascript\nmodule-type: utils\n\nNotifier mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Notifier = function(wiki) {\n\tthis.wiki = wiki;\n};\n\n/*\nDisplay a notification\n\ttitle: Title of tiddler containing the notification text\n\toptions: see below\nOptions include:\n*/\nNotifier.prototype.display = function(title,options) {\n\toptions = options || {};\n\t// Create the wrapper divs\n\tvar self = this,\n\t\tnotification = document.createElement(\"div\"),\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\trefreshHandler;\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Add classes\n\t$tw.utils.addClass(notification,\"tc-notification\");\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Render the body of the notification\n\tvar widgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true});\n\twidgetNode.render(notification,null);\n\trefreshHandler = function(changes) {\n\t\twidgetNode.refresh(changes,notification,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Set the initial styles for the notification\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"0\"},\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-window.innerHeight) + \"px)\"},\n\t\t{transition: \"opacity \" + duration + \"ms ease-out, \" + $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Add the notification to the DOM\n\tdocument.body.appendChild(notification);\n\t// Force layout\n\t$tw.utils.forceLayout(notification);\n\t// Set final animated styles\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n\t// Set a timer to remove the notification\n\twindow.setTimeout(function() {\n\t\t// Remove our change event handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Force layout and animate the notification away\n\t\t$tw.utils.forceLayout(notification);\n\t\t$tw.utils.setStyle(notification,[\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transform: \"translateX(\" + (notification.offsetWidth) + \"px)\"}\n\t\t]);\n\t\t// Remove the modal message from the DOM once the transition ends\n\t\tsetTimeout(function() {\n\t\t\tif(notification.parentNode) {\n\t\t\t\tdocument.body.removeChild(notification);\n\t\t\t}\n\t\t},duration);\n\t},$tw.config.preferences.notificationDuration);\n};\n\nexports.Notifier = Notifier;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/popup.js": {
"title": "$:/core/modules/utils/dom/popup.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/popup.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Popup object prototype that manages popups in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreates a Popup object with these options:\n\trootElement: the DOM element to which the popup zapper should be attached\n*/\nvar Popup = function(options) {\n\toptions = options || {};\n\tthis.rootElement = options.rootElement || document.documentElement;\n\tthis.popups = []; // Array of {title:,wiki:,domNode:} objects\n};\n\n/*\nTrigger a popup open or closed. Parameters are in a hashmap:\n\ttitle: title of the tiddler where the popup details are stored\n\tdomNode: dom node to which the popup will be positioned (one of domNode or domNodeRect is required)\n\tdomNodeRect: rectangle to which the popup will be positioned\n\twiki: wiki\n\tforce: if specified, forces the popup state to true or false (instead of toggling it)\n\tfloating: if true, skips registering the popup, meaning that it will need manually clearing\n*/\nPopup.prototype.triggerPopup = function(options) {\n\t// Check if this popup is already active\n\tvar index = this.findPopup(options.title);\n\t// Compute the new state\n\tvar state = index === -1;\n\tif(options.force !== undefined) {\n\t\tstate = options.force;\n\t}\n\t// Show or cancel the popup according to the new state\n\tif(state) {\n\t\tthis.show(options);\n\t} else {\n\t\tthis.cancel(index);\n\t}\n};\n\nPopup.prototype.findPopup = function(title) {\n\tvar index = -1;\n\tfor(var t=0; t<this.popups.length; t++) {\n\t\tif(this.popups[t].title === title) {\n\t\t\tindex = t;\n\t\t}\n\t}\n\treturn index;\n};\n\nPopup.prototype.handleEvent = function(event) {\n\tif(event.type === \"click\") {\n\t\t// Find out what was clicked on\n\t\tvar info = this.popupInfo(event.target),\n\t\t\tcancelLevel = info.popupLevel - 1;\n\t\t// Don't remove the level that was clicked on if we clicked on a handle\n\t\tif(info.isHandle) {\n\t\t\tcancelLevel++;\n\t\t}\n\t\t// Cancel\n\t\tthis.cancel(cancelLevel);\n\t}\n};\n\n/*\nFind the popup level containing a DOM node. Returns:\npopupLevel: count of the number of nested popups containing the specified element\nisHandle: true if the specified element is within a popup handle\n*/\nPopup.prototype.popupInfo = function(domNode) {\n\tvar isHandle = false,\n\t\tpopupCount = 0,\n\t\tnode = domNode;\n\t// First check ancestors to see if we're within a popup handle\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup-handle\")) {\n\t\t\tisHandle = true;\n\t\t\tpopupCount++;\n\t\t}\n\t\tif($tw.utils.hasClass(node,\"tc-popup-keep\")) {\n\t\t\tisHandle = true;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\t// Then count the number of ancestor popups\n\tnode = domNode;\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup\")) {\n\t\t\tpopupCount++;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\tvar info = {\n\t\tpopupLevel: popupCount,\n\t\tisHandle: isHandle\n\t};\n\treturn info;\n};\n\n/*\nDisplay a popup by adding it to the stack\n*/\nPopup.prototype.show = function(options) {\n\t// Find out what was clicked on\n\tvar info = this.popupInfo(options.domNode);\n\t// Cancel any higher level popups\n\tthis.cancel(info.popupLevel);\n\n\t// Store the popup details if not already there\n\tif(!options.floating && this.findPopup(options.title) === -1) {\n\t\tthis.popups.push({\n\t\t\ttitle: options.title,\n\t\t\twiki: options.wiki,\n\t\t\tdomNode: options.domNode,\n\t\t\tnoStateReference: options.noStateReference\n\t\t});\n\t}\n\t// Set the state tiddler\n\tvar rect;\n\tif(options.domNodeRect) {\n\t\trect = options.domNodeRect;\n\t} else {\n\t\trect = {\n\t\t\tleft: options.domNode.offsetLeft,\n\t\t\ttop: options.domNode.offsetTop,\n\t\t\twidth: options.domNode.offsetWidth,\n\t\t\theight: options.domNode.offsetHeight\n\t\t};\n\t}\n\tvar popupRect = \"(\" + rect.left + \",\" + rect.top + \",\" + \n\t\t\t\trect.width + \",\" + rect.height + \")\";\n\tif(options.noStateReference) {\n\t\toptions.wiki.setText(options.title,\"text\",undefined,popupRect);\n\t} else {\n\t\toptions.wiki.setTextReference(options.title,popupRect);\n\t}\n\t// Add the click handler if we have any popups\n\tif(this.popups.length > 0) {\n\t\tthis.rootElement.addEventListener(\"click\",this,true);\t\t\n\t}\n};\n\n/*\nCancel all popups at or above a specified level or DOM node\nlevel: popup level to cancel (0 cancels all popups)\n*/\nPopup.prototype.cancel = function(level) {\n\tvar numPopups = this.popups.length;\n\tlevel = Math.max(0,Math.min(level,numPopups));\n\tfor(var t=level; t<numPopups; t++) {\n\t\tvar popup = this.popups.pop();\n\t\tif(popup.title) {\n\t\t\tif(popup.noStateReference) {\n\t\t\t\tpopup.wiki.deleteTiddler(popup.title);\n\t\t\t} else {\n\t\t\t\tpopup.wiki.deleteTiddler($tw.utils.parseTextReference(popup.title).title);\n \t\t}\n\t\t}\n\t}\n\tif(this.popups.length === 0) {\n\t\tthis.rootElement.removeEventListener(\"click\",this,false);\n\t}\n};\n\n/*\nReturns true if the specified title and text identifies an active popup\n*/\nPopup.prototype.readPopupState = function(text) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/;\n\treturn popupLocationRegExp.test(text);\n};\n\nexports.Popup = Popup;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/scroller.js": {
"title": "$:/core/modules/utils/dom/scroller.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/scroller.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Scroller object prototype that manages scrolling in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nEvent handler for when the `tm-scroll` event hits the document body\n*/\nvar PageScroller = function() {\n\tthis.idRequestFrame = null;\n\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\twindow.webkitRequestAnimationFrame ||\n\t\twindow.mozRequestAnimationFrame ||\n\t\tfunction(callback) {\n\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t};\n\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\twindow.webkitCancelAnimationFrame ||\n\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\twindow.mozCancelAnimationFrame ||\n\t\twindow.mozCancelRequestAnimationFrame ||\n\t\tfunction(id) {\n\t\t\twindow.clearTimeout(id);\n\t\t};\n};\n\nPageScroller.prototype.isScrolling = function() {\n\treturn this.idRequestFrame !== null;\n}\n\nPageScroller.prototype.cancelScroll = function(srcWindow) {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(srcWindow,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle an event\n*/\nPageScroller.prototype.handleEvent = function(event) {\n\tif(event.type === \"tm-scroll\") {\n\t\tif(event.paramObject && event.paramObject.selector) {\n\t\t\tthis.scrollSelectorIntoView(null,event.paramObject.selector);\n\t\t} else {\n\t\t\tthis.scrollIntoView(event.target);\t\t\t\n\t\t}\n\t\treturn false; // Event was handled\n\t}\n\treturn true;\n};\n\n/*\nHandle a scroll event hitting the page document\n*/\nPageScroller.prototype.scrollIntoView = function(element,callback) {\n\tvar self = this,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t srcWindow = element ? element.ownerDocument.defaultView : window;\n\t// Now get ready to scroll the body\n\tthis.cancelScroll(srcWindow);\n\tthis.startTime = Date.now();\n\t// Get the height of any position:fixed toolbars\n\tvar toolbar = srcWindow.document.querySelector(\".tc-adjust-top-of-scroll\"),\n\t\toffset = 0;\n\tif(toolbar) {\n\t\toffset = toolbar.offsetHeight;\n\t}\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar getBounds = function() {\n\t\t\tvar clientBounds = typeof callback === 'function' ? callback() : element.getBoundingClientRect(),\n\t\t\t\tscrollPosition = $tw.utils.getScrollPosition(srcWindow);\n\t\t\treturn {\n\t\t\t\tleft: clientBounds.left + scrollPosition.x,\n\t\t\t\ttop: clientBounds.top + scrollPosition.y - offset,\n\t\t\t\twidth: clientBounds.width,\n\t\t\t\theight: clientBounds.height\n\t\t\t};\n\t\t},\n\t\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\t\t// targetPos/targetSize - position and size of the target element\n\t\t// currentPos/currentSize - position and size of the current scroll viewport\n\t\t// returns: new position of the scroll viewport\n\t\tgetEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\tvar newPos = targetPos;\n\t\t\t// If we are scrolling within 50 pixels of the top/left then snap to zero\n\t\t\tif(newPos < 50) {\n\t\t\t\tnewPos = 0;\n\t\t\t}\n\t\t\treturn newPos;\n\t\t},\n\t\tdrawFrame = function drawFrame() {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll(srcWindow);\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tvar scrollPosition = $tw.utils.getScrollPosition(srcWindow),\n\t\t\t\tbounds = getBounds(),\n\t\t\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,srcWindow.innerWidth),\n\t\t\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,srcWindow.innerHeight);\n\t\t\tsrcWindow.scrollTo(scrollPosition.x + (endX - scrollPosition.x) * t,scrollPosition.y + (endY - scrollPosition.y) * t);\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(srcWindow,drawFrame);\n\t\t\t}\n\t\t};\n\tdrawFrame();\n};\n\nPageScroller.prototype.scrollSelectorIntoView = function(baseElement,selector,callback) {\n\tbaseElement = baseElement || document.body;\n\tvar element = baseElement.querySelector(selector);\n\tif(element) {\n\t\tthis.scrollIntoView(element,callback);\t\t\n\t}\n};\n\nexports.PageScroller = PageScroller;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/edition-info.js": {
"title": "$:/core/modules/utils/edition-info.js",
"text": "/*\\\ntitle: $:/core/modules/utils/edition-info.js\ntype: application/javascript\nmodule-type: utils-node\n\nInformation about the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\nvar editionInfo;\n\nexports.getEditionInfo = function() {\n\tif(!editionInfo) {\n\t\t// Enumerate the edition paths\n\t\tvar editionPaths = $tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar);\n\t\teditionInfo = {};\n\t\tfor(var editionIndex=0; editionIndex<editionPaths.length; editionIndex++) {\n\t\t\tvar editionPath = editionPaths[editionIndex];\n\t\t\t// Enumerate the folders\n\t\t\tvar entries = fs.readdirSync(editionPath);\n\t\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\t\tvar entry = entries[entryIndex];\n\t\t\t\t// Check if directories have a valid tiddlywiki.info\n\t\t\t\tif(!editionInfo[entry] && $tw.utils.isDirectory(path.resolve(editionPath,entry))) {\n\t\t\t\t\tvar info;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tinfo = JSON.parse(fs.readFileSync(path.resolve(editionPath,entry,\"tiddlywiki.info\"),\"utf8\"));\n\t\t\t\t\t} catch(ex) {\n\t\t\t\t\t}\n\t\t\t\t\tif(info) {\n\t\t\t\t\t\teditionInfo[entry] = info;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn editionInfo;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils-node"
},
"$:/core/modules/utils/fakedom.js": {
"title": "$:/core/modules/utils/fakedom.js",
"text": "/*\\\ntitle: $:/core/modules/utils/fakedom.js\ntype: application/javascript\nmodule-type: global\n\nA barebones implementation of DOM interfaces needed by the rendering mechanism.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Sequence number used to enable us to track objects for testing\nvar sequenceNumber = null;\n\nvar bumpSequenceNumber = function(object) {\n\tif(sequenceNumber !== null) {\n\t\tobject.sequenceNumber = sequenceNumber++;\n\t}\n};\n\nvar TW_Node = function (){\n\tthrow TypeError(\"Illegal constructor\");\n};\n\nObject.defineProperty(TW_Node.prototype, 'ELEMENT_NODE', {\n\tget: function() {\n\t\treturn 1;\n\t}\n});\n\nObject.defineProperty(TW_Node.prototype, 'TEXT_NODE', {\n\tget: function() {\n\t\treturn 3;\n\t}\n});\n\nvar TW_TextNode = function(text) {\n\tbumpSequenceNumber(this);\n\tthis.textContent = text + \"\";\n};\n\nTW_TextNode.prototype = Object.create(TW_Node.prototype);\n\nObject.defineProperty(TW_TextNode.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn this.TEXT_NODE;\n\t}\n});\n\nObject.defineProperty(TW_TextNode.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\treturn this.textContent.replace(/(\\r?\\n)/g,\"\");\n\t}\n});\n\nvar TW_Element = function(tag,namespace) {\n\tbumpSequenceNumber(this);\n\tthis.isTiddlyWikiFakeDom = true;\n\tthis.tag = tag;\n\tthis.attributes = {};\n\tthis.isRaw = false;\n\tthis.children = [];\n\tthis._style = {};\n\tthis.namespaceURI = namespace || \"http://www.w3.org/1999/xhtml\";\n};\n\nTW_Element.prototype = Object.create(TW_Node.prototype);\n\nObject.defineProperty(TW_Element.prototype, \"style\", {\n\tget: function() {\n\t\treturn this._style;\n\t},\n\tset: function(str) {\n\t\tvar self = this;\n\t\tstr = str || \"\";\n\t\t$tw.utils.each(str.split(\";\"),function(declaration) {\n\t\t\tvar parts = declaration.split(\":\"),\n\t\t\t\tname = $tw.utils.trim(parts[0]),\n\t\t\t\tvalue = $tw.utils.trim(parts[1]);\n\t\t\tif(name && value) {\n\t\t\t\tself._style[$tw.utils.convertStyleNameToPropertyName(name)] = value;\n\t\t\t}\n\t\t});\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn this.ELEMENT_NODE;\n\t}\n});\n\nTW_Element.prototype.getAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot getAttribute on a raw TW_Element\";\n\t}\n\treturn this.attributes[name];\n};\n\nTW_Element.prototype.setAttribute = function(name,value) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot setAttribute on a raw TW_Element\";\n\t}\n\tthis.attributes[name] = value + \"\";\n};\n\nTW_Element.prototype.setAttributeNS = function(namespace,name,value) {\n\tthis.setAttribute(name,value);\n};\n\nTW_Element.prototype.removeAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot removeAttribute on a raw TW_Element\";\n\t}\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\tdelete this.attributes[name];\n\t}\n};\n\nTW_Element.prototype.appendChild = function(node) {\n\tthis.children.push(node);\n\tnode.parentNode = this;\n};\n\nTW_Element.prototype.insertBefore = function(node,nextSibling) {\n\tif(nextSibling) {\n\t\tvar p = this.children.indexOf(nextSibling);\n\t\tif(p !== -1) {\n\t\t\tthis.children.splice(p,0,node);\n\t\t\tnode.parentNode = this;\n\t\t} else {\n\t\t\tthis.appendChild(node);\n\t\t}\n\t} else {\n\t\tthis.appendChild(node);\n\t}\n};\n\nTW_Element.prototype.removeChild = function(node) {\n\tvar p = this.children.indexOf(node);\n\tif(p !== -1) {\n\t\tthis.children.splice(p,1);\n\t}\n};\n\nTW_Element.prototype.hasChildNodes = function() {\n\treturn !!this.children.length;\n};\n\nObject.defineProperty(TW_Element.prototype, \"childNodes\", {\n\tget: function() {\n\t\treturn this.children;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"firstChild\", {\n\tget: function() {\n\t\treturn this.children[0];\n\t}\n});\n\nTW_Element.prototype.addEventListener = function(type,listener,useCapture) {\n\t// Do nothing\n};\n\nObject.defineProperty(TW_Element.prototype, \"tagName\", {\n\tget: function() {\n\t\treturn this.tag || \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"className\", {\n\tget: function() {\n\t\treturn this.attributes[\"class\"] || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes[\"class\"] = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"value\", {\n\tget: function() {\n\t\treturn this.attributes.value || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes.value = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"outerHTML\", {\n\tget: function() {\n\t\tvar output = [],attr,a,v;\n\t\toutput.push(\"<\",this.tag);\n\t\tif(this.attributes) {\n\t\t\tattr = [];\n\t\t\tfor(a in this.attributes) {\n\t\t\t\tattr.push(a);\n\t\t\t}\n\t\t\tattr.sort();\n\t\t\tfor(a=0; a<attr.length; a++) {\n\t\t\t\tv = this.attributes[attr[a]];\n\t\t\t\tif(v !== undefined) {\n\t\t\t\t\toutput.push(\" \",attr[a],\"=\\\"\",$tw.utils.htmlEncode(v),\"\\\"\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(this._style) {\n\t\t\tvar style = [];\n\t\t\tfor(var s in this._style) {\n\t\t\t\tstyle.push($tw.utils.convertPropertyNameToStyleName(s) + \":\" + this._style[s] + \";\");\n\t\t\t}\n\t\t\tif(style.length > 0) {\n\t\t\t\toutput.push(\" style=\\\"\",style.join(\"\"),\"\\\"\");\n\t\t\t}\n\t\t}\n\t\toutput.push(\">\");\n\t\tif($tw.config.htmlVoidElements.indexOf(this.tag) === -1) {\n\t\t\toutput.push(this.innerHTML);\n\t\t\toutput.push(\"</\",this.tag,\">\");\n\t\t}\n\t\treturn output.join(\"\");\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"innerHTML\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn this.rawHTML;\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tif(node instanceof TW_Element) {\n\t\t\t\t\tb.push(node.outerHTML);\n\t\t\t\t} else if(node instanceof TW_TextNode) {\n\t\t\t\t\tb.push($tw.utils.htmlEncode(node.textContent));\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.isRaw = true;\n\t\tthis.rawHTML = value;\n\t\tthis.rawTextContent = null;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textInnerHTML\", {\n\tset: function(value) {\n\t\tif(this.isRaw) {\n\t\t\tthis.rawTextContent = value;\n\t\t} else {\n\t\t\tthrow \"Cannot set textInnerHTML of a non-raw TW_Element\";\n\t\t}\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\tif(this.rawTextContent === null) {\n\t\t\t\treturn \"\";\n\t\t\t} else {\n\t\t\t\treturn this.rawTextContent;\n\t\t\t}\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.textContent);\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.children = [new TW_TextNode(value)];\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn \"\";\n\t\t} else {\n\t\t\tvar b = [],\n\t\t\t\tisBlock = $tw.config.htmlBlockElements.indexOf(this.tag) !== -1;\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\tif(this.tag === \"li\") {\n\t\t\t\tb.push(\"* \");\n\t\t\t}\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.formattedTextContent);\n\t\t\t});\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\treturn b.join(\"\");\n\t\t}\n\t}\n});\n\nvar document = {\n\tsetSequenceNumber: function(value) {\n\t\tsequenceNumber = value;\n\t},\n\tcreateElementNS: function(namespace,tag) {\n\t\treturn new TW_Element(tag,namespace);\n\t},\n\tcreateElement: function(tag) {\n\t\treturn new TW_Element(tag);\n\t},\n\tcreateTextNode: function(text) {\n\t\treturn new TW_TextNode(text);\n\t},\n\tcompatMode: \"CSS1Compat\", // For KaTeX to know that we're not a browser in quirks mode\n\tisTiddlyWikiFakeDom: true\n};\n\nexports.fakeDocument = document;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/utils/filesystem.js": {
"title": "$:/core/modules/utils/filesystem.js",
"text": "/*\\\ntitle: $:/core/modules/utils/filesystem.js\ntype: application/javascript\nmodule-type: utils-node\n\nFile system utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\n/*\nReturn the subdirectories of a path\n*/\nexports.getSubdirectories = function(dirPath) {\n\tif(!$tw.utils.isDirectory(dirPath)) {\n\t\treturn null;\n\t}\n\tvar subdirs = [];\n\t$tw.utils.each(fs.readdirSync(dirPath),function(item) {\n\t\tif($tw.utils.isDirectory(path.resolve(dirPath,item))) {\n\t\t\tsubdirs.push(item);\n\t\t}\n\t});\n\treturn subdirs;\n}\n\n/*\nRecursively (and synchronously) copy a directory and all its content\n*/\nexports.copyDirectory = function(srcPath,dstPath) {\n\t// Remove any trailing path separators\n\tsrcPath = path.resolve($tw.utils.removeTrailingSeparator(srcPath));\n\tdstPath = path.resolve($tw.utils.removeTrailingSeparator(dstPath));\n\t// Check that neither director is within the other\n\tif(srcPath.substring(0,dstPath.length) === dstPath || dstPath.substring(0,srcPath.length) === srcPath) {\n\t\treturn \"Cannot copy nested directories\";\n\t}\n\t// Create the destination directory\n\tvar err = $tw.utils.createDirectory(dstPath);\n\tif(err) {\n\t\treturn err;\n\t}\n\t// Function to copy a folder full of files\n\tvar copy = function(srcPath,dstPath) {\n\t\tvar srcStats = fs.lstatSync(srcPath),\n\t\t\tdstExists = fs.existsSync(dstPath);\n\t\tif(srcStats.isFile()) {\n\t\t\t$tw.utils.copyFile(srcPath,dstPath);\n\t\t} else if(srcStats.isDirectory()) {\n\t\t\tvar items = fs.readdirSync(srcPath);\n\t\t\tfor(var t=0; t<items.length; t++) {\n\t\t\t\tvar item = items[t],\n\t\t\t\t\terr = copy(srcPath + path.sep + item,dstPath + path.sep + item);\n\t\t\t\tif(err) {\n\t\t\t\t\treturn err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\tcopy(srcPath,dstPath);\n\treturn null;\n};\n\n/*\nCopy a file\n*/\nvar FILE_BUFFER_LENGTH = 64 * 1024,\n\tfileBuffer;\n\nexports.copyFile = function(srcPath,dstPath) {\n\t// Create buffer if required\n\tif(!fileBuffer) {\n\t\tfileBuffer = Buffer.alloc(FILE_BUFFER_LENGTH);\n\t}\n\t// Create any directories in the destination\n\t$tw.utils.createDirectory(path.dirname(dstPath));\n\t// Copy the file\n\tvar srcFile = fs.openSync(srcPath,\"r\"),\n\t\tdstFile = fs.openSync(dstPath,\"w\"),\n\t\tbytesRead = 1,\n\t\tpos = 0;\n\twhile (bytesRead > 0) {\n\t\tbytesRead = fs.readSync(srcFile,fileBuffer,0,FILE_BUFFER_LENGTH,pos);\n\t\tfs.writeSync(dstFile,fileBuffer,0,bytesRead);\n\t\tpos += bytesRead;\n\t}\n\tfs.closeSync(srcFile);\n\tfs.closeSync(dstFile);\n\treturn null;\n};\n\n/*\nRemove trailing path separator\n*/\nexports.removeTrailingSeparator = function(dirPath) {\n\tvar len = dirPath.length;\n\tif(dirPath.charAt(len-1) === path.sep) {\n\t\tdirPath = dirPath.substr(0,len-1);\n\t}\n\treturn dirPath;\n};\n\n/*\nRecursively create a directory\n*/\nexports.createDirectory = function(dirPath) {\n\tif(dirPath.substr(dirPath.length-1,1) !== path.sep) {\n\t\tdirPath = dirPath + path.sep;\n\t}\n\tvar pos = 1;\n\tpos = dirPath.indexOf(path.sep,pos);\n\twhile(pos !== -1) {\n\t\tvar subDirPath = dirPath.substr(0,pos);\n\t\tif(!$tw.utils.isDirectory(subDirPath)) {\n\t\t\ttry {\n\t\t\t\tfs.mkdirSync(subDirPath);\n\t\t\t} catch(e) {\n\t\t\t\treturn \"Error creating directory '\" + subDirPath + \"'\";\n\t\t\t}\n\t\t}\n\t\tpos = dirPath.indexOf(path.sep,pos + 1);\n\t}\n\treturn null;\n};\n\n/*\nRecursively create directories needed to contain a specified file\n*/\nexports.createFileDirectories = function(filePath) {\n\treturn $tw.utils.createDirectory(path.dirname(filePath));\n};\n\n/*\nRecursively delete a directory\n*/\nexports.deleteDirectory = function(dirPath) {\n\tif(fs.existsSync(dirPath)) {\n\t\tvar entries = fs.readdirSync(dirPath);\n\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\tvar currPath = dirPath + path.sep + entries[entryIndex];\n\t\t\tif(fs.lstatSync(currPath).isDirectory()) {\n\t\t\t\t$tw.utils.deleteDirectory(currPath);\n\t\t\t} else {\n\t\t\t\tfs.unlinkSync(currPath);\n\t\t\t}\n\t\t}\n\tfs.rmdirSync(dirPath);\n\t}\n\treturn null;\n};\n\n/*\nCheck if a path identifies a directory\n*/\nexports.isDirectory = function(dirPath) {\n\treturn fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory();\n};\n\n/*\nCheck if a path identifies a directory that is empty\n*/\nexports.isDirectoryEmpty = function(dirPath) {\n\tif(!$tw.utils.isDirectory(dirPath)) {\n\t\treturn false;\n\t}\n\tvar files = fs.readdirSync(dirPath),\n\t\tempty = true;\n\t$tw.utils.each(files,function(file,index) {\n\t\tif(file.charAt(0) !== \".\") {\n\t\t\tempty = false;\n\t\t}\n\t});\n\treturn empty;\n};\n\n/*\nRecursively delete a tree of empty directories\n*/\nexports.deleteEmptyDirs = function(dirpath,callback) {\n\tvar self = this;\n\tfs.readdir(dirpath,function(err,files) {\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\tif(files.length > 0) {\n\t\t\treturn callback(null);\n\t\t}\n\t\tfs.rmdir(dirpath,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.deleteEmptyDirs(path.dirname(dirpath),callback);\n\t\t});\n\t});\n};\n\n/*\nCreate a fileInfo object for saving a tiddler:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file on disk (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n\tisEditableFile: true if the tiddler was loaded via non-standard options & marked editable\nOptions include:\n\tdirectory: absolute path of root directory to which we are saving\n\tpathFilters: optional array of filters to be used to generate the base path\n\textFilters: optional array of filters to be used to generate the base path\n\twiki: optional wiki for evaluating the pathFilters,\n\tfileInfo: an existing fileInfo to check against\n\toriginalpath: a preferred filepath if no pathFilters match\n*/\nexports.generateTiddlerFileInfo = function(tiddler,options) {\n\tvar fileInfo = {}, metaExt;\n\t// Propagate the isEditableFile flag\n\tif(options.fileInfo) {\n\t\tfileInfo.isEditableFile = options.fileInfo.isEditableFile || false;\n\t}\n\t// Check if the tiddler has any unsafe fields that can't be expressed in a .tid or .meta file: containing control characters, or leading/trailing whitespace\n\tvar hasUnsafeFields = false;\n\t$tw.utils.each(tiddler.getFieldStrings(),function(value,fieldName) {\n\t\tif(fieldName !== \"text\") {\n\t\t\thasUnsafeFields = hasUnsafeFields || /[\\x00-\\x1F]/mg.test(value);\n\t\t\thasUnsafeFields = hasUnsafeFields || ($tw.utils.trim(value) !== value);\n\t\t}\n\t});\n\t// Check for field values \n\tif(hasUnsafeFields) {\n\t\t// Save as a JSON file\n\t\tfileInfo.type = \"application/json\";\n\t\tfileInfo.hasMetaFile = false;\n\t} else {\n\t\t// Save as a .tid or a text/binary file plus a .meta file\n\t\tvar tiddlerType = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\tif(tiddlerType === \"text/vnd.tiddlywiki\") {\n\t\t\t// Save as a .tid file\n\t\t\tfileInfo.type = \"application/x-tiddler\";\n\t\t\tfileInfo.hasMetaFile = false;\n\t\t} else {\n\t\t\t// Save as a text/binary file and a .meta file\n\t\t\tfileInfo.type = tiddlerType;\n\t\t\tfileInfo.hasMetaFile = true;\n\t\t}\n\t\tif(options.extFilters) {\n\t\t\t// Check for extension override\n\t\t\tmetaExt = $tw.utils.generateTiddlerExtension(tiddler.fields.title,{\n\t\t\t\textFilters: options.extFilters,\n\t\t\t\twiki: options.wiki\n\t\t\t});\n\t\t\tif(metaExt){\n\t\t\t\tif(metaExt === \".tid\") {\n\t\t\t\t\t// Overriding to the .tid extension needs special handling\n\t\t\t\t\tfileInfo.type = \"application/x-tiddler\";\n\t\t\t\t\tfileInfo.hasMetaFile = false;\n\t\t\t\t} else if (metaExt === \".json\") {\n\t\t\t\t\t// Overriding to the .json extension needs special handling\n\t\t\t\t\tfileInfo.type = \"application/json\";\n\t\t\t\t\tfileInfo.hasMetaFile = false;\n\t\t\t\t} else {\n\t\t\t\t\t//If the new type matches a known extention, use that MIME type's encoding\n\t\t\t\t\tvar extInfo = $tw.utils.getFileExtensionInfo(metaExt);\n\t\t\t\t\tfileInfo.type = extInfo ? extInfo.type : null;\n\t\t\t\t\tfileInfo.encoding = $tw.utils.getTypeEncoding(metaExt);\n\t\t\t\t\tfileInfo.hasMetaFile = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Take the file extension from the tiddler content type or metaExt\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[fileInfo.type] || {extension: \"\"};\n\t// Generate the filepath\n\tfileInfo.filepath = $tw.utils.generateTiddlerFilepath(tiddler.fields.title,{\n\t\textension: metaExt || contentTypeInfo.extension,\n\t\tdirectory: options.directory,\n\t\tpathFilters: options.pathFilters,\n\t\twiki: options.wiki,\n\t\tfileInfo: options.fileInfo,\n\t\toriginalpath: options.originalpath\n\t});\n\treturn fileInfo;\n};\n\n/*\nGenerate the file extension for saving a tiddler\nOptions include:\n\textFilters: optional array of filters to be used to generate the extention\n\twiki: optional wiki for evaluating the extFilters\n*/\nexports.generateTiddlerExtension = function(title,options) {\n\tvar self = this,\n\t\textension;\n\t// Check if any of the extFilters applies\n\tif(options.extFilters && options.wiki) { \n\t\t$tw.utils.each(options.extFilters,function(filter) {\n\t\t\tif(!extension) {\n\t\t\t\tvar source = options.wiki.makeTiddlerIterator([title]),\n\t\t\t\t\tresult = options.wiki.filterTiddlers(filter,null,source);\n\t\t\t\tif(result.length > 0) {\n\t\t\t\t\textension = result[0];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn extension;\n};\n\n/*\nGenerate the filepath for saving a tiddler\nOptions include:\n\textension: file extension to be added the finished filepath\n\tdirectory: absolute path of root directory to which we are saving\n\tpathFilters: optional array of filters to be used to generate the base path\n\twiki: optional wiki for evaluating the pathFilters\n\tfileInfo: an existing fileInfo object to check against\n*/\nexports.generateTiddlerFilepath = function(title,options) {\n\tvar self = this,\n\t\tdirectory = options.directory || \"\",\n\t\textension = options.extension || \"\",\n\t\toriginalpath = options.originalpath || \"\",\n\t\tfilepath;\t\n\t// Check if any of the pathFilters applies\n\tif(options.pathFilters && options.wiki) {\n\t\t$tw.utils.each(options.pathFilters,function(filter) {\n\t\t\tif(!filepath) {\n\t\t\t\tvar source = options.wiki.makeTiddlerIterator([title]),\n\t\t\t\t\tresult = options.wiki.filterTiddlers(filter,null,source);\n\t\t\t\tif(result.length > 0) {\n\t\t\t\t\tfilepath = result[0];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\tif(!filepath && originalpath !== \"\") {\n\t\t//Use the originalpath without the extension\n\t\tvar ext = path.extname(originalpath);\n\t\tfilepath = originalpath.substring(0,originalpath.length - ext.length);\n\t} else if(!filepath) {\n\t\tfilepath = title;\n\t\t// If the filepath already ends in the extension then remove it\n\t\tif(filepath.substring(filepath.length - extension.length) === extension) {\n\t\t\tfilepath = filepath.substring(0,filepath.length - extension.length);\n\t\t}\n\t\t// Remove any forward or backward slashes so we don't create directories\n\t\tfilepath = filepath.replace(/\\/|\\\\/g,\"_\");\n\t}\n\t//If the path does not start with \".\" or \"..\" and a path seperator, then\n\tif(!/^\\.{1,2}[/\\\\]/g.test(filepath)) {\n\t\t// Don't let the filename start with any dots because such files are invisible on *nix\n\t\tfilepath = filepath.replace(/^\\.+/g,\"_\");\n\t}\n\t// Remove any characters that can't be used in cross-platform filenames\n\tfilepath = $tw.utils.transliterate(filepath.replace(/<|>|~|\\:|\\\"|\\||\\?|\\*|\\^/g,\"_\"));\n\t// Truncate the filename if it is too long\n\tif(filepath.length > 200) {\n\t\tfilepath = filepath.substr(0,200);\n\t}\n\t// If the resulting filename is blank (eg because the title is just punctuation characters)\n\tif(!filepath) {\n\t\t// ...then just use the character codes of the title\n\t\tfilepath = \"\";\t\n\t\t$tw.utils.each(title.split(\"\"),function(char) {\n\t\t\tif(filepath) {\n\t\t\t\tfilepath += \"-\";\n\t\t\t}\n\t\t\tfilepath += char.charCodeAt(0).toString();\n\t\t});\n\t}\n\t// Add a uniquifier if the file already exists\n\tvar fullPath, oldPath = (options.fileInfo) ? options.fileInfo.filepath : undefined,\n\t\tcount = 0;\n\tdo {\n\t\tfullPath = path.resolve(directory,filepath + (count ? \"_\" + count : \"\") + extension);\n\t\tif(oldPath && oldPath == fullPath) {\n\t\t\tbreak;\n\t\t}\n\t\tcount++;\n\t} while(fs.existsSync(fullPath));\n\t// If the last write failed with an error, or if path does not start with:\n\t//\tthe resolved options.directory, the resolved wikiPath directory, or the wikiTiddlersPath directory, \n\t//\tthen encodeURIComponent() and resolve to tiddler directory\n\tvar newPath = fullPath,\n\t\tencode = (options.fileInfo || {writeError: false}).writeError == true;\n\tif(!encode){\n\t\tencode = !(fullPath.indexOf(path.resolve(directory)) == 0 ||\n\t\t\tfullPath.indexOf(path.resolve($tw.boot.wikiPath)) == 0 ||\n\t\t\tfullPath.indexOf($tw.boot.wikiTiddlersPath) == 0);\n\t\t}\n\tif(encode){\n\t\tfullPath = path.resolve(directory, encodeURIComponent(fullPath));\n\t}\n\t// Call hook to allow plugins to modify the final path\n\tfullPath = $tw.hooks.invokeHook(\"th-make-tiddler-path\", newPath, fullPath);\n\t// Return the full path to the file\n\treturn fullPath;\n};\n\n/*\nSave a tiddler to a file described by the fileInfo:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n*/\nexports.saveTiddlerToFile = function(tiddler,fileInfo,callback) {\n\t$tw.utils.createDirectory(path.dirname(fileInfo.filepath));\n\tif(fileInfo.hasMetaFile) {\n\t\t// Save the tiddler as a separate body and meta file\n\t\tvar typeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/plain\"] || {encoding: \"utf8\"};\n\t\tfs.writeFile(fileInfo.filepath,tiddler.fields.text,typeInfo.encoding,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tfs.writeFile(fileInfo.filepath + \".meta\",tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}),\"utf8\",callback);\n\t\t});\n\t} else {\n\t\t// Save the tiddler as a self contained templated file\n\t\tif(fileInfo.type === \"application/x-tiddler\") {\n\t\t\tfs.writeFile(fileInfo.filepath,tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}) + (!!tiddler.fields.text ? \"\\n\\n\" + tiddler.fields.text : \"\"),\"utf8\",callback);\n\t\t} else {\n\t\t\tfs.writeFile(fileInfo.filepath,JSON.stringify([tiddler.getFieldStrings({exclude: [\"bag\"]})],null,$tw.config.preferences.jsonSpaces),\"utf8\",callback);\n\t\t}\n\t}\n};\n\n/*\nSave a tiddler to a file described by the fileInfo:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n*/\nexports.saveTiddlerToFileSync = function(tiddler,fileInfo) {\n\t$tw.utils.createDirectory(path.dirname(fileInfo.filepath));\n\tif(fileInfo.hasMetaFile) {\n\t\t// Save the tiddler as a separate body and meta file\n\t\tvar typeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/plain\"] || {encoding: \"utf8\"};\n\t\tfs.writeFileSync(fileInfo.filepath,tiddler.fields.text,typeInfo.encoding);\n\t\tfs.writeFileSync(fileInfo.filepath + \".meta\",tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}),\"utf8\");\n\t} else {\n\t\t// Save the tiddler as a self contained templated file\n\t\tif(fileInfo.type === \"application/x-tiddler\") {\n\t\t\tfs.writeFileSync(fileInfo.filepath,tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}) + (!!tiddler.fields.text ? \"\\n\\n\" + tiddler.fields.text : \"\"),\"utf8\");\n\t\t} else {\n\t\t\tfs.writeFileSync(fileInfo.filepath,JSON.stringify([tiddler.getFieldStrings({exclude: [\"bag\"]})],null,$tw.config.preferences.jsonSpaces),\"utf8\");\n\t\t}\n\t}\n};\n\n/*\nDelete a file described by the fileInfo if it exits\n*/\nexports.deleteTiddlerFile = function(fileInfo, callback) {\n\t//Only attempt to delete files that exist on disk\n\tif(!fileInfo.filepath || !fs.existsSync(fileInfo.filepath)) {\n\t\treturn callback(null);\n\t}\n\t// Delete the file\n\tfs.unlink(fileInfo.filepath,function(err) {\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\t\n\t\t// Delete the metafile if present\n\t\tif(fileInfo.hasMetaFile && fs.existsSync(fileInfo.filepath + \".meta\")) {\n\t\t\tfs.unlink(fileInfo.filepath + \".meta\",function(err) {\n\t\t\t\tif(err) {\n\t\t\t\t\treturn callback(err);\n\t\t\t\t}\n\t\t\t\treturn $tw.utils.deleteEmptyDirs(path.dirname(fileInfo.filepath),callback);\n\t\t\t});\n\t\t} else {\n\t\t\treturn $tw.utils.deleteEmptyDirs(path.dirname(fileInfo.filepath),callback);\n\t\t}\n\t});\n};\n\n/*\nCleanup old files on disk, by comparing the options values:\n\tadaptorInfo from $tw.syncer.tiddlerInfo\n\tbootInfo from $tw.boot.files\n*/\nexports.cleanupTiddlerFiles = function(options, callback) {\n\tvar adaptorInfo = options.adaptorInfo || {},\n\tbootInfo = options.bootInfo || {},\n\ttitle = options.title || \"undefined\";\n\tif(adaptorInfo.filepath && bootInfo.filepath && adaptorInfo.filepath !== bootInfo.filepath) {\n\t\treturn $tw.utils.deleteTiddlerFile(adaptorInfo, function(err){\n\t\t\tif(err) {\n\t\t\t\tif ((err.code == \"EPERM\" || err.code == \"EACCES\") && err.syscall == \"unlink\") {\n\t\t\t\t\t// Error deleting the previous file on disk, should fail gracefully\n\t\t\t\t\t$tw.syncer.displayError(\"Server desynchronized. Error cleaning up previous file for tiddler: \"+title, err);\n\t\t\t\t\treturn callback(null);\n\t\t\t\t} else {\n\t\t\t\t\treturn callback(err);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn callback(null);\n\t\t});\n\t} else {\n\t\treturn callback(null);\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils-node"
},
"$:/core/modules/utils/linkedlist.js": {
"title": "$:/core/modules/utils/linkedlist.js",
"text": "/*\\\nmodule-type: utils\ntitle: $:/core/modules/utils/linkedlist.js\ntype: application/javascript\n\nThis is a doubly-linked indexed list intended for manipulation, particularly\npushTop, which it does with significantly better performance than an array.\n\n\\*/\n(function(){\n\nfunction LinkedList() {\n\tthis.clear();\n};\n\nLinkedList.prototype.clear = function() {\n\tthis.index = Object.create(null);\n\t// LinkedList performs the duty of both the head and tail node\n\tthis.next = this;\n\tthis.prev = this;\n\tthis.length = 0;\n};\n\nLinkedList.prototype.remove = function(value) {\n\tif($tw.utils.isArray(value)) {\n\t\tfor(var t=0; t<value.length; t++) {\n\t\t\t_removeOne(this,value[t]);\n\t\t}\n\t} else {\n\t\t_removeOne(this,value);\n\t}\n};\n\nLinkedList.prototype.push = function(/* values */) {\n\tfor(var i = 0; i < arguments.length; i++) {\n\t\tvar value = arguments[i];\n\t\tvar node = {value: value};\n\t\tvar preexistingNode = this.index[value];\n\t\t_linkToEnd(this,node);\n\t\tif(preexistingNode) {\n\t\t\t// We want to keep pointing to the first instance, but we want\n\t\t\t// to have that instance (or chain of instances) point to the\n\t\t\t// new one.\n\t\t\twhile (preexistingNode.copy) {\n\t\t\t\tpreexistingNode = preexistingNode.copy;\n\t\t\t}\n\t\t\tpreexistingNode.copy = node;\n\t\t} else {\n\t\t\tthis.index[value] = node;\n\t\t}\n\t}\n};\n\nLinkedList.prototype.pushTop = function(value) {\n\tif($tw.utils.isArray(value)) {\n\t\tfor(var t=0; t<value.length; t++) {\n\t\t\t_removeOne(this,value[t]);\n\t\t}\n\t\tthis.push.apply(this,value);\n\t} else {\n\t\tvar node = _removeOne(this,value);\n\t\tif(!node) {\n\t\t\tnode = {value: value};\n\t\t\tthis.index[value] = node;\n\t\t} else {\n\t\t\t// Put this node at the end of the copy chain.\n\t\t\tvar preexistingNode = node;\n\t\t\twhile(preexistingNode.copy) {\n\t\t\t\tpreexistingNode = preexistingNode.copy;\n\t\t\t}\n\t\t\t// The order of these three statements is important,\n\t\t\t// because sometimes preexistingNode == node.\n\t\t\tpreexistingNode.copy = node;\n\t\t\tthis.index[value] = node.copy;\n\t\t\tnode.copy = undefined;\n\t\t}\n\t\t_linkToEnd(this,node);\n\t}\n};\n\nLinkedList.prototype.each = function(callback) {\n\tfor(var ptr = this.next; ptr !== this; ptr = ptr.next) {\n\t\tcallback(ptr.value);\n\t}\n};\n\nLinkedList.prototype.toArray = function() {\n\tvar output = [];\n\tfor(var ptr = this.next; ptr !== this; ptr = ptr.next) {\n\t\toutput.push(ptr.value);\n\t}\n\treturn output;\n};\n\nfunction _removeOne(list,value) {\n\tvar node = list.index[value];\n\tif(node) {\n\t\tnode.prev.next = node.next;\n\t\tnode.next.prev = node.prev;\n\t\tlist.length -= 1;\n\t\t// Point index to the next instance of the same value, maybe nothing.\n\t\tlist.index[value] = node.copy;\n\t}\n\treturn node;\n};\n\nfunction _linkToEnd(list,node) {\n\t// Sticks the given node onto the end of the list.\n\tlist.prev.next = node;\n\tnode.prev = list.prev;\n\tlist.prev = node;\n\tnode.next = list;\n\tlist.length += 1;\n};\n\nexports.LinkedList = LinkedList;\n\n})();\n",
"module-type": "utils",
"type": "application/javascript"
},
"$:/core/modules/utils/logger.js": {
"title": "$:/core/modules/utils/logger.js",
"text": "/*\\\ntitle: $:/core/modules/utils/logger.js\ntype: application/javascript\nmodule-type: utils\n\nA basic logging implementation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ALERT_TAG = \"$:/tags/Alert\";\n\n/*\nMake a new logger\n*/\nfunction Logger(componentName,options) {\n\toptions = options || {};\n\tthis.componentName = componentName || \"\";\n\tthis.colour = options.colour || \"white\";\n\tthis.enable = \"enable\" in options ? options.enable : true;\n\tthis.save = \"save\" in options ? options.save : true;\n\tthis.saveLimit = options.saveLimit || 100 * 1024;\n\tthis.saveBufferLogger = this;\n\tthis.buffer = \"\";\n\tthis.alertCount = 0;\n}\n\nLogger.prototype.setSaveBuffer = function(logger) {\n\tthis.saveBufferLogger = logger;\n};\n\n/*\nLog a message\n*/\nLogger.prototype.log = function(/* args */) {\n\tvar self = this;\n\tif(this.enable) {\n\t\tif(this.saveBufferLogger.save) {\n\t\t\tthis.saveBufferLogger.buffer += $tw.utils.formatDateString(new Date(),\"YYYY MM DD 0hh:0mm:0ss.0XXX\") + \":\";\n\t\t\t$tw.utils.each(Array.prototype.slice.call(arguments,0),function(arg,index) {\n\t\t\t\tself.saveBufferLogger.buffer += \" \" + arg;\n\t\t\t});\n\t\t\tthis.saveBufferLogger.buffer += \"\\n\";\n\t\t\tthis.saveBufferLogger.buffer = this.saveBufferLogger.buffer.slice(-this.saveBufferLogger.saveLimit);\t\t\t\n\t\t}\n\t\tif(console !== undefined && console.log !== undefined) {\n\t\t\treturn Function.apply.call(console.log, console, [$tw.utils.terminalColour(this.colour),this.componentName + \":\"].concat(Array.prototype.slice.call(arguments,0)).concat($tw.utils.terminalColour()));\n\t\t}\n\t} \n};\n\n/*\nRead the message buffer\n*/\nLogger.prototype.getBuffer = function() {\n\treturn this.saveBufferLogger.buffer;\n};\n\n/*\nLog a structure as a table\n*/\nLogger.prototype.table = function(value) {\n\t(console.table || console.log)(value);\n};\n\n/*\nAlert a message\n*/\nLogger.prototype.alert = function(/* args */) {\n\tif(this.enable) {\n\t\t// Prepare the text of the alert\n\t\tvar text = Array.prototype.join.call(arguments,\" \");\n\t\t// Create alert tiddlers in the browser\n\t\tif($tw.browser) {\n\t\t\t// Check if there is an existing alert with the same text and the same component\n\t\t\tvar existingAlerts = $tw.wiki.getTiddlersWithTag(ALERT_TAG),\n\t\t\t\talertFields,\n\t\t\t\texistingCount,\n\t\t\t\tself = this;\n\t\t\t$tw.utils.each(existingAlerts,function(title) {\n\t\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\t\tif(tiddler.fields.text === text && tiddler.fields.component === self.componentName && tiddler.fields.modified && (!alertFields || tiddler.fields.modified < alertFields.modified)) {\n\t\t\t\t\t\talertFields = $tw.utils.extend({},tiddler.fields);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(alertFields) {\n\t\t\t\texistingCount = alertFields.count || 1;\n\t\t\t} else {\n\t\t\t\talertFields = {\n\t\t\t\t\ttitle: $tw.wiki.generateNewTitle(\"$:/temp/alerts/alert\",{prefix: \"\"}),\n\t\t\t\t\ttext: text,\n\t\t\t\t\ttags: [ALERT_TAG],\n\t\t\t\t\tcomponent: this.componentName\n\t\t\t\t};\n\t\t\t\texistingCount = 0;\n\t\t\t\tthis.alertCount += 1;\n\t\t\t}\n\t\t\talertFields.modified = new Date();\n\t\t\tif(++existingCount > 1) {\n\t\t\t\talertFields.count = existingCount;\n\t\t\t} else {\n\t\t\t\talertFields.count = undefined;\n\t\t\t}\n\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(alertFields));\n\t\t\t// Log the alert as well\n\t\t\tthis.log.apply(this,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\t// Print an orange message to the console if not in the browser\n\t\t\tconsole.error(\"\\x1b[1;33m\" + text + \"\\x1b[0m\");\n\t\t}\t\t\n\t}\n};\n\n/*\nClear outstanding alerts\n*/\nLogger.prototype.clearAlerts = function() {\n\tvar self = this;\n\tif($tw.browser && this.alertCount > 0) {\n\t\t$tw.utils.each($tw.wiki.getTiddlersWithTag(ALERT_TAG),function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(tiddler.fields.component === self.componentName) {\n\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t}\n\t\t});\n\t\tthis.alertCount = 0;\n\t}\n};\n\nexports.Logger = Logger;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/parsetree.js": {
"title": "$:/core/modules/utils/parsetree.js",
"text": "/*\\\ntitle: $:/core/modules/utils/parsetree.js\ntype: application/javascript\nmodule-type: utils\n\nParse tree utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.addAttributeToParseTreeNode = function(node,name,value) {\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[name] = {type: \"string\", value: value};\n};\n\nexports.getAttributeValueFromParseTreeNode = function(node,name,defaultValue) {\n\tif(node.attributes && node.attributes[name] && node.attributes[name].value !== undefined) {\n\t\treturn node.attributes[name].value;\n\t}\n\treturn defaultValue;\n};\n\nexports.addClassToParseTreeNode = function(node,classString) {\n\tvar classes = [];\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[\"class\"] = node.attributes[\"class\"] || {type: \"string\", value: \"\"};\n\tif(node.attributes[\"class\"].type === \"string\") {\n\t\tif(node.attributes[\"class\"].value !== \"\") {\n\t\t\tclasses = node.attributes[\"class\"].value.split(\" \");\n\t\t}\n\t\tif(classString !== \"\") {\n\t\t\t$tw.utils.pushTop(classes,classString.split(\" \"));\n\t\t}\n\t\tnode.attributes[\"class\"].value = classes.join(\" \");\n\t}\n};\n\nexports.addStyleToParseTreeNode = function(node,name,value) {\n\t\tnode.attributes = node.attributes || {};\n\t\tnode.attributes.style = node.attributes.style || {type: \"string\", value: \"\"};\n\t\tif(node.attributes.style.type === \"string\") {\n\t\t\tnode.attributes.style.value += name + \":\" + value + \";\";\n\t\t}\n};\n\nexports.findParseTreeNode = function(nodeArray,search) {\n\tfor(var t=0; t<nodeArray.length; t++) {\n\t\tif(nodeArray[t].type === search.type && nodeArray[t].tag === search.tag) {\n\t\t\treturn nodeArray[t];\n\t\t}\n\t}\n\treturn undefined;\n};\n\n/*\nHelper to get the text of a parse tree node or array of nodes\n*/\nexports.getParseTreeText = function getParseTreeText(tree) {\n\tvar output = [];\n\tif($tw.utils.isArray(tree)) {\n\t\t$tw.utils.each(tree,function(node) {\n\t\t\toutput.push(getParseTreeText(node));\n\t\t});\n\t} else {\n\t\tif(tree.type === \"text\") {\n\t\t\toutput.push(tree.text);\n\t\t}\n\t\tif(tree.children) {\n\t\t\treturn getParseTreeText(tree.children);\n\t\t}\n\t}\n\treturn output.join(\"\");\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/performance.js": {
"title": "$:/core/modules/utils/performance.js",
"text": "/*\\\ntitle: $:/core/modules/utils/performance.js\ntype: application/javascript\nmodule-type: global\n\nPerformance measurement.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Performance(enabled) {\n\tthis.enabled = !!enabled;\n\tthis.measures = {}; // Hashmap by measurement name of {time:, invocations:}\n\tthis.logger = new $tw.utils.Logger(\"performance\");\n\tthis.showGreeting();\n}\n\nPerformance.prototype.showGreeting = function() {\n\tif($tw.browser) {\n\t\tthis.logger.log(\"Execute $tw.perf.log(); to see filter execution timings\");\t\t\n\t}\n};\n\n/*\nWrap performance reporting around a top level function\n*/\nPerformance.prototype.report = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tself.logger.log(name + \": \" + $tw.utils.timer(startTime).toFixed(2) + \"ms\");\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nPerformance.prototype.log = function() {\n\tvar self = this,\n\t\ttotalTime = 0,\n\t\torderedMeasures = Object.keys(this.measures).sort(function(a,b) {\n\t\t\tif(self.measures[a].time > self.measures[b].time) {\n\t\t\t\treturn -1;\n\t\t\t} else if (self.measures[a].time < self.measures[b].time) {\n\t\t\t\treturn + 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t});\n\t$tw.utils.each(orderedMeasures,function(name) {\n\t\ttotalTime += self.measures[name].time;\n\t});\n\tvar results = []\n\t$tw.utils.each(orderedMeasures,function(name) {\n\t\tvar measure = self.measures[name];\n\t\tresults.push({name: name,invocations: measure.invocations, avgTime: measure.time / measure.invocations, totalTime: measure.time, percentTime: (measure.time / totalTime) * 100})\n\t});\n\tself.logger.table(results);\n};\n\n/*\nWrap performance measurements around a subfunction\n*/\nPerformance.prototype.measure = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tif(!(name in self.measures)) {\n\t\t\t\tself.measures[name] = {time: 0, invocations: 0};\n\t\t\t}\n\t\t\tself.measures[name].time += $tw.utils.timer(startTime);\n\t\t\tself.measures[name].invocations++;\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nexports.Performance = Performance;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/utils/pluginmaker.js": {
"title": "$:/core/modules/utils/pluginmaker.js",
"text": "/*\\\ntitle: $:/core/modules/utils/pluginmaker.js\ntype: application/javascript\nmodule-type: utils\n\nA quick and dirty way to pack up plugins within the browser.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRepack a plugin, and then delete any non-shadow payload tiddlers\n*/\nexports.repackPlugin = function(title,additionalTiddlers,excludeTiddlers) {\n\tadditionalTiddlers = additionalTiddlers || [];\n\texcludeTiddlers = excludeTiddlers || [];\n\t// Get the plugin tiddler\n\tvar pluginTiddler = $tw.wiki.getTiddler(title);\n\tif(!pluginTiddler) {\n\t\tthrow \"No such tiddler as \" + title;\n\t}\n\t// Extract the JSON\n\tvar jsonPluginTiddler;\n\ttry {\n\t\tjsonPluginTiddler = JSON.parse(pluginTiddler.fields.text);\n\t} catch(e) {\n\t\tthrow \"Cannot parse plugin tiddler \" + title + \"\\n\" + $tw.language.getString(\"Error/Caption\") + \": \" + e;\n\t}\n\t// Get the list of tiddlers\n\tvar tiddlers = Object.keys(jsonPluginTiddler.tiddlers);\n\t// Add the additional tiddlers\n\t$tw.utils.pushTop(tiddlers,additionalTiddlers);\n\t// Remove any excluded tiddlers\n\tfor(var t=tiddlers.length-1; t>=0; t--) {\n\t\tif(excludeTiddlers.indexOf(tiddlers[t]) !== -1) {\n\t\t\ttiddlers.splice(t,1);\n\t\t}\n\t}\n\t// Pack up the tiddlers into a block of JSON\n\tvar plugins = {};\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\tfields = {};\n\t\t$tw.utils.each(tiddler.fields,function (value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\tplugins[title] = fields;\n\t});\n\t// Retrieve and bump the version number\n\tvar pluginVersion = $tw.utils.parseVersion(pluginTiddler.getFieldString(\"version\") || \"0.0.0\") || {\n\t\t\tmajor: \"0\",\n\t\t\tminor: \"0\",\n\t\t\tpatch: \"0\"\n\t\t};\n\tpluginVersion.patch++;\n\tvar version = pluginVersion.major + \".\" + pluginVersion.minor + \".\" + pluginVersion.patch;\n\tif(pluginVersion.prerelease) {\n\t\tversion += \"-\" + pluginVersion.prerelease;\n\t}\n\tif(pluginVersion.build) {\n\t\tversion += \"+\" + pluginVersion.build;\n\t}\n\t// Save the tiddler\n\t$tw.wiki.addTiddler(new $tw.Tiddler(pluginTiddler,{text: JSON.stringify({tiddlers: plugins},null,4), version: version}));\n\t// Delete any non-shadow constituent tiddlers\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tif($tw.wiki.tiddlerExists(title)) {\n\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t}\n\t});\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t// Return a heartwarming confirmation\n\treturn \"Plugin \" + title + \" successfully saved\";\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/transliterate.js": {
"title": "$:/core/modules/utils/transliterate.js",
"text": "/*\\\ntitle: $:/core/modules/utils/transliterate.js\ntype: application/javascript\nmodule-type: utils\n\nTransliteration static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nTransliterate string to ASCII\n\n(Some pairs taken from http://semplicewebsites.com/removing-accents-javascript)\n*/\nexports.transliterationPairs = {\n\t\"Á\":\"A\",\n\t\"Ă\":\"A\",\n\t\"Ắ\":\"A\",\n\t\"Ặ\":\"A\",\n\t\"Ằ\":\"A\",\n\t\"Ẳ\":\"A\",\n\t\"Ẵ\":\"A\",\n\t\"Ǎ\":\"A\",\n\t\"Â\":\"A\",\n\t\"Ấ\":\"A\",\n\t\"Ậ\":\"A\",\n\t\"Ầ\":\"A\",\n\t\"Ẩ\":\"A\",\n\t\"Ẫ\":\"A\",\n\t\"Ä\":\"A\",\n\t\"Ǟ\":\"A\",\n\t\"Ȧ\":\"A\",\n\t\"Ǡ\":\"A\",\n\t\"Ạ\":\"A\",\n\t\"Ȁ\":\"A\",\n\t\"À\":\"A\",\n\t\"Ả\":\"A\",\n\t\"Ȃ\":\"A\",\n\t\"Ā\":\"A\",\n\t\"Ą\":\"A\",\n\t\"Å\":\"A\",\n\t\"Ǻ\":\"A\",\n\t\"Ḁ\":\"A\",\n\t\"Ⱥ\":\"A\",\n\t\"Ã\":\"A\",\n\t\"Ꜳ\":\"AA\",\n\t\"Æ\":\"AE\",\n\t\"Ǽ\":\"AE\",\n\t\"Ǣ\":\"AE\",\n\t\"Ꜵ\":\"AO\",\n\t\"Ꜷ\":\"AU\",\n\t\"Ꜹ\":\"AV\",\n\t\"Ꜻ\":\"AV\",\n\t\"Ꜽ\":\"AY\",\n\t\"Ḃ\":\"B\",\n\t\"Ḅ\":\"B\",\n\t\"Ɓ\":\"B\",\n\t\"Ḇ\":\"B\",\n\t\"Ƀ\":\"B\",\n\t\"Ƃ\":\"B\",\n\t\"Ć\":\"C\",\n\t\"Č\":\"C\",\n\t\"Ç\":\"C\",\n\t\"Ḉ\":\"C\",\n\t\"Ĉ\":\"C\",\n\t\"Ċ\":\"C\",\n\t\"Ƈ\":\"C\",\n\t\"Ȼ\":\"C\",\n\t\"Ď\":\"D\",\n\t\"Ḑ\":\"D\",\n\t\"Ḓ\":\"D\",\n\t\"Ḋ\":\"D\",\n\t\"Ḍ\":\"D\",\n\t\"Ɗ\":\"D\",\n\t\"Ḏ\":\"D\",\n\t\"Dz\":\"D\",\n\t\"Dž\":\"D\",\n\t\"Đ\":\"D\",\n\t\"Ƌ\":\"D\",\n\t\"DZ\":\"DZ\",\n\t\"DŽ\":\"DZ\",\n\t\"É\":\"E\",\n\t\"Ĕ\":\"E\",\n\t\"Ě\":\"E\",\n\t\"Ȩ\":\"E\",\n\t\"Ḝ\":\"E\",\n\t\"Ê\":\"E\",\n\t\"Ế\":\"E\",\n\t\"Ệ\":\"E\",\n\t\"Ề\":\"E\",\n\t\"Ể\":\"E\",\n\t\"Ễ\":\"E\",\n\t\"Ḙ\":\"E\",\n\t\"Ë\":\"E\",\n\t\"Ė\":\"E\",\n\t\"Ẹ\":\"E\",\n\t\"Ȅ\":\"E\",\n\t\"È\":\"E\",\n\t\"Ẻ\":\"E\",\n\t\"Ȇ\":\"E\",\n\t\"Ē\":\"E\",\n\t\"Ḗ\":\"E\",\n\t\"Ḕ\":\"E\",\n\t\"Ę\":\"E\",\n\t\"Ɇ\":\"E\",\n\t\"Ẽ\":\"E\",\n\t\"Ḛ\":\"E\",\n\t\"Ꝫ\":\"ET\",\n\t\"Ḟ\":\"F\",\n\t\"Ƒ\":\"F\",\n\t\"Ǵ\":\"G\",\n\t\"Ğ\":\"G\",\n\t\"Ǧ\":\"G\",\n\t\"Ģ\":\"G\",\n\t\"Ĝ\":\"G\",\n\t\"Ġ\":\"G\",\n\t\"Ɠ\":\"G\",\n\t\"Ḡ\":\"G\",\n\t\"Ǥ\":\"G\",\n\t\"Ḫ\":\"H\",\n\t\"Ȟ\":\"H\",\n\t\"Ḩ\":\"H\",\n\t\"Ĥ\":\"H\",\n\t\"Ⱨ\":\"H\",\n\t\"Ḧ\":\"H\",\n\t\"Ḣ\":\"H\",\n\t\"Ḥ\":\"H\",\n\t\"Ħ\":\"H\",\n\t\"Í\":\"I\",\n\t\"Ĭ\":\"I\",\n\t\"Ǐ\":\"I\",\n\t\"Î\":\"I\",\n\t\"Ï\":\"I\",\n\t\"Ḯ\":\"I\",\n\t\"İ\":\"I\",\n\t\"Ị\":\"I\",\n\t\"Ȉ\":\"I\",\n\t\"Ì\":\"I\",\n\t\"Ỉ\":\"I\",\n\t\"Ȋ\":\"I\",\n\t\"Ī\":\"I\",\n\t\"Į\":\"I\",\n\t\"Ɨ\":\"I\",\n\t\"Ĩ\":\"I\",\n\t\"Ḭ\":\"I\",\n\t\"Ꝺ\":\"D\",\n\t\"Ꝼ\":\"F\",\n\t\"Ᵹ\":\"G\",\n\t\"Ꞃ\":\"R\",\n\t\"Ꞅ\":\"S\",\n\t\"Ꞇ\":\"T\",\n\t\"Ꝭ\":\"IS\",\n\t\"Ĵ\":\"J\",\n\t\"Ɉ\":\"J\",\n\t\"Ḱ\":\"K\",\n\t\"Ǩ\":\"K\",\n\t\"Ķ\":\"K\",\n\t\"Ⱪ\":\"K\",\n\t\"Ꝃ\":\"K\",\n\t\"Ḳ\":\"K\",\n\t\"Ƙ\":\"K\",\n\t\"Ḵ\":\"K\",\n\t\"Ꝁ\":\"K\",\n\t\"Ꝅ\":\"K\",\n\t\"Ĺ\":\"L\",\n\t\"Ƚ\":\"L\",\n\t\"Ľ\":\"L\",\n\t\"Ļ\":\"L\",\n\t\"Ḽ\":\"L\",\n\t\"Ḷ\":\"L\",\n\t\"Ḹ\":\"L\",\n\t\"Ⱡ\":\"L\",\n\t\"Ꝉ\":\"L\",\n\t\"Ḻ\":\"L\",\n\t\"Ŀ\":\"L\",\n\t\"Ɫ\":\"L\",\n\t\"Lj\":\"L\",\n\t\"Ł\":\"L\",\n\t\"LJ\":\"LJ\",\n\t\"Ḿ\":\"M\",\n\t\"Ṁ\":\"M\",\n\t\"Ṃ\":\"M\",\n\t\"Ɱ\":\"M\",\n\t\"Ń\":\"N\",\n\t\"Ň\":\"N\",\n\t\"Ņ\":\"N\",\n\t\"Ṋ\":\"N\",\n\t\"Ṅ\":\"N\",\n\t\"Ṇ\":\"N\",\n\t\"Ǹ\":\"N\",\n\t\"Ɲ\":\"N\",\n\t\"Ṉ\":\"N\",\n\t\"Ƞ\":\"N\",\n\t\"Nj\":\"N\",\n\t\"Ñ\":\"N\",\n\t\"NJ\":\"NJ\",\n\t\"Ó\":\"O\",\n\t\"Ŏ\":\"O\",\n\t\"Ǒ\":\"O\",\n\t\"Ô\":\"O\",\n\t\"Ố\":\"O\",\n\t\"Ộ\":\"O\",\n\t\"Ồ\":\"O\",\n\t\"Ổ\":\"O\",\n\t\"Ỗ\":\"O\",\n\t\"Ö\":\"O\",\n\t\"Ȫ\":\"O\",\n\t\"Ȯ\":\"O\",\n\t\"Ȱ\":\"O\",\n\t\"Ọ\":\"O\",\n\t\"Ő\":\"O\",\n\t\"Ȍ\":\"O\",\n\t\"Ò\":\"O\",\n\t\"Ỏ\":\"O\",\n\t\"Ơ\":\"O\",\n\t\"Ớ\":\"O\",\n\t\"Ợ\":\"O\",\n\t\"Ờ\":\"O\",\n\t\"Ở\":\"O\",\n\t\"Ỡ\":\"O\",\n\t\"Ȏ\":\"O\",\n\t\"Ꝋ\":\"O\",\n\t\"Ꝍ\":\"O\",\n\t\"Ō\":\"O\",\n\t\"Ṓ\":\"O\",\n\t\"Ṑ\":\"O\",\n\t\"Ɵ\":\"O\",\n\t\"Ǫ\":\"O\",\n\t\"Ǭ\":\"O\",\n\t\"Ø\":\"O\",\n\t\"Ǿ\":\"O\",\n\t\"Õ\":\"O\",\n\t\"Ṍ\":\"O\",\n\t\"Ṏ\":\"O\",\n\t\"Ȭ\":\"O\",\n\t\"Ƣ\":\"OI\",\n\t\"Ꝏ\":\"OO\",\n\t\"Ɛ\":\"E\",\n\t\"Ɔ\":\"O\",\n\t\"Ȣ\":\"OU\",\n\t\"Ṕ\":\"P\",\n\t\"Ṗ\":\"P\",\n\t\"Ꝓ\":\"P\",\n\t\"Ƥ\":\"P\",\n\t\"Ꝕ\":\"P\",\n\t\"Ᵽ\":\"P\",\n\t\"Ꝑ\":\"P\",\n\t\"Ꝙ\":\"Q\",\n\t\"Ꝗ\":\"Q\",\n\t\"Ŕ\":\"R\",\n\t\"Ř\":\"R\",\n\t\"Ŗ\":\"R\",\n\t\"Ṙ\":\"R\",\n\t\"Ṛ\":\"R\",\n\t\"Ṝ\":\"R\",\n\t\"Ȑ\":\"R\",\n\t\"Ȓ\":\"R\",\n\t\"Ṟ\":\"R\",\n\t\"Ɍ\":\"R\",\n\t\"Ɽ\":\"R\",\n\t\"Ꜿ\":\"C\",\n\t\"Ǝ\":\"E\",\n\t\"Ś\":\"S\",\n\t\"Ṥ\":\"S\",\n\t\"Š\":\"S\",\n\t\"Ṧ\":\"S\",\n\t\"Ş\":\"S\",\n\t\"Ŝ\":\"S\",\n\t\"Ș\":\"S\",\n\t\"Ṡ\":\"S\",\n\t\"Ṣ\":\"S\",\n\t\"Ṩ\":\"S\",\n\t\"Ť\":\"T\",\n\t\"Ţ\":\"T\",\n\t\"Ṱ\":\"T\",\n\t\"Ț\":\"T\",\n\t\"Ⱦ\":\"T\",\n\t\"Ṫ\":\"T\",\n\t\"Ṭ\":\"T\",\n\t\"Ƭ\":\"T\",\n\t\"Ṯ\":\"T\",\n\t\"Ʈ\":\"T\",\n\t\"Ŧ\":\"T\",\n\t\"Ɐ\":\"A\",\n\t\"Ꞁ\":\"L\",\n\t\"Ɯ\":\"M\",\n\t\"Ʌ\":\"V\",\n\t\"Ꜩ\":\"TZ\",\n\t\"Ú\":\"U\",\n\t\"Ŭ\":\"U\",\n\t\"Ǔ\":\"U\",\n\t\"Û\":\"U\",\n\t\"Ṷ\":\"U\",\n\t\"Ü\":\"U\",\n\t\"Ǘ\":\"U\",\n\t\"Ǚ\":\"U\",\n\t\"Ǜ\":\"U\",\n\t\"Ǖ\":\"U\",\n\t\"Ṳ\":\"U\",\n\t\"Ụ\":\"U\",\n\t\"Ű\":\"U\",\n\t\"Ȕ\":\"U\",\n\t\"Ù\":\"U\",\n\t\"Ủ\":\"U\",\n\t\"Ư\":\"U\",\n\t\"Ứ\":\"U\",\n\t\"Ự\":\"U\",\n\t\"Ừ\":\"U\",\n\t\"Ử\":\"U\",\n\t\"Ữ\":\"U\",\n\t\"Ȗ\":\"U\",\n\t\"Ū\":\"U\",\n\t\"Ṻ\":\"U\",\n\t\"Ų\":\"U\",\n\t\"Ů\":\"U\",\n\t\"Ũ\":\"U\",\n\t\"Ṹ\":\"U\",\n\t\"Ṵ\":\"U\",\n\t\"Ꝟ\":\"V\",\n\t\"Ṿ\":\"V\",\n\t\"Ʋ\":\"V\",\n\t\"Ṽ\":\"V\",\n\t\"Ꝡ\":\"VY\",\n\t\"Ẃ\":\"W\",\n\t\"Ŵ\":\"W\",\n\t\"Ẅ\":\"W\",\n\t\"Ẇ\":\"W\",\n\t\"Ẉ\":\"W\",\n\t\"Ẁ\":\"W\",\n\t\"Ⱳ\":\"W\",\n\t\"Ẍ\":\"X\",\n\t\"Ẋ\":\"X\",\n\t\"Ý\":\"Y\",\n\t\"Ŷ\":\"Y\",\n\t\"Ÿ\":\"Y\",\n\t\"Ẏ\":\"Y\",\n\t\"Ỵ\":\"Y\",\n\t\"Ỳ\":\"Y\",\n\t\"Ƴ\":\"Y\",\n\t\"Ỷ\":\"Y\",\n\t\"Ỿ\":\"Y\",\n\t\"Ȳ\":\"Y\",\n\t\"Ɏ\":\"Y\",\n\t\"Ỹ\":\"Y\",\n\t\"Ź\":\"Z\",\n\t\"Ž\":\"Z\",\n\t\"Ẑ\":\"Z\",\n\t\"Ⱬ\":\"Z\",\n\t\"Ż\":\"Z\",\n\t\"Ẓ\":\"Z\",\n\t\"Ȥ\":\"Z\",\n\t\"Ẕ\":\"Z\",\n\t\"Ƶ\":\"Z\",\n\t\"IJ\":\"IJ\",\n\t\"Œ\":\"OE\",\n\t\"ᴀ\":\"A\",\n\t\"ᴁ\":\"AE\",\n\t\"ʙ\":\"B\",\n\t\"ᴃ\":\"B\",\n\t\"ᴄ\":\"C\",\n\t\"ᴅ\":\"D\",\n\t\"ᴇ\":\"E\",\n\t\"ꜰ\":\"F\",\n\t\"ɢ\":\"G\",\n\t\"ʛ\":\"G\",\n\t\"ʜ\":\"H\",\n\t\"ɪ\":\"I\",\n\t\"ʁ\":\"R\",\n\t\"ᴊ\":\"J\",\n\t\"ᴋ\":\"K\",\n\t\"ʟ\":\"L\",\n\t\"ᴌ\":\"L\",\n\t\"ᴍ\":\"M\",\n\t\"ɴ\":\"N\",\n\t\"ᴏ\":\"O\",\n\t\"ɶ\":\"OE\",\n\t\"ᴐ\":\"O\",\n\t\"ᴕ\":\"OU\",\n\t\"ᴘ\":\"P\",\n\t\"ʀ\":\"R\",\n\t\"ᴎ\":\"N\",\n\t\"ᴙ\":\"R\",\n\t\"ꜱ\":\"S\",\n\t\"ᴛ\":\"T\",\n\t\"ⱻ\":\"E\",\n\t\"ᴚ\":\"R\",\n\t\"ᴜ\":\"U\",\n\t\"ᴠ\":\"V\",\n\t\"ᴡ\":\"W\",\n\t\"ʏ\":\"Y\",\n\t\"ᴢ\":\"Z\",\n\t\"á\":\"a\",\n\t\"ă\":\"a\",\n\t\"ắ\":\"a\",\n\t\"ặ\":\"a\",\n\t\"ằ\":\"a\",\n\t\"ẳ\":\"a\",\n\t\"ẵ\":\"a\",\n\t\"ǎ\":\"a\",\n\t\"â\":\"a\",\n\t\"ấ\":\"a\",\n\t\"ậ\":\"a\",\n\t\"ầ\":\"a\",\n\t\"ẩ\":\"a\",\n\t\"ẫ\":\"a\",\n\t\"ä\":\"a\",\n\t\"ǟ\":\"a\",\n\t\"ȧ\":\"a\",\n\t\"ǡ\":\"a\",\n\t\"ạ\":\"a\",\n\t\"ȁ\":\"a\",\n\t\"à\":\"a\",\n\t\"ả\":\"a\",\n\t\"ȃ\":\"a\",\n\t\"ā\":\"a\",\n\t\"ą\":\"a\",\n\t\"ᶏ\":\"a\",\n\t\"ẚ\":\"a\",\n\t\"å\":\"a\",\n\t\"ǻ\":\"a\",\n\t\"ḁ\":\"a\",\n\t\"ⱥ\":\"a\",\n\t\"ã\":\"a\",\n\t\"ꜳ\":\"aa\",\n\t\"æ\":\"ae\",\n\t\"ǽ\":\"ae\",\n\t\"ǣ\":\"ae\",\n\t\"ꜵ\":\"ao\",\n\t\"ꜷ\":\"au\",\n\t\"ꜹ\":\"av\",\n\t\"ꜻ\":\"av\",\n\t\"ꜽ\":\"ay\",\n\t\"ḃ\":\"b\",\n\t\"ḅ\":\"b\",\n\t\"ɓ\":\"b\",\n\t\"ḇ\":\"b\",\n\t\"ᵬ\":\"b\",\n\t\"ᶀ\":\"b\",\n\t\"ƀ\":\"b\",\n\t\"ƃ\":\"b\",\n\t\"ɵ\":\"o\",\n\t\"ć\":\"c\",\n\t\"č\":\"c\",\n\t\"ç\":\"c\",\n\t\"ḉ\":\"c\",\n\t\"ĉ\":\"c\",\n\t\"ɕ\":\"c\",\n\t\"ċ\":\"c\",\n\t\"ƈ\":\"c\",\n\t\"ȼ\":\"c\",\n\t\"ď\":\"d\",\n\t\"ḑ\":\"d\",\n\t\"ḓ\":\"d\",\n\t\"ȡ\":\"d\",\n\t\"ḋ\":\"d\",\n\t\"ḍ\":\"d\",\n\t\"ɗ\":\"d\",\n\t\"ᶑ\":\"d\",\n\t\"ḏ\":\"d\",\n\t\"ᵭ\":\"d\",\n\t\"ᶁ\":\"d\",\n\t\"đ\":\"d\",\n\t\"ɖ\":\"d\",\n\t\"ƌ\":\"d\",\n\t\"ı\":\"i\",\n\t\"ȷ\":\"j\",\n\t\"ɟ\":\"j\",\n\t\"ʄ\":\"j\",\n\t\"dz\":\"dz\",\n\t\"dž\":\"dz\",\n\t\"é\":\"e\",\n\t\"ĕ\":\"e\",\n\t\"ě\":\"e\",\n\t\"ȩ\":\"e\",\n\t\"ḝ\":\"e\",\n\t\"ê\":\"e\",\n\t\"ế\":\"e\",\n\t\"ệ\":\"e\",\n\t\"ề\":\"e\",\n\t\"ể\":\"e\",\n\t\"ễ\":\"e\",\n\t\"ḙ\":\"e\",\n\t\"ë\":\"e\",\n\t\"ė\":\"e\",\n\t\"ẹ\":\"e\",\n\t\"ȅ\":\"e\",\n\t\"è\":\"e\",\n\t\"ẻ\":\"e\",\n\t\"ȇ\":\"e\",\n\t\"ē\":\"e\",\n\t\"ḗ\":\"e\",\n\t\"ḕ\":\"e\",\n\t\"ⱸ\":\"e\",\n\t\"ę\":\"e\",\n\t\"ᶒ\":\"e\",\n\t\"ɇ\":\"e\",\n\t\"ẽ\":\"e\",\n\t\"ḛ\":\"e\",\n\t\"ꝫ\":\"et\",\n\t\"ḟ\":\"f\",\n\t\"ƒ\":\"f\",\n\t\"ᵮ\":\"f\",\n\t\"ᶂ\":\"f\",\n\t\"ǵ\":\"g\",\n\t\"ğ\":\"g\",\n\t\"ǧ\":\"g\",\n\t\"ģ\":\"g\",\n\t\"ĝ\":\"g\",\n\t\"ġ\":\"g\",\n\t\"ɠ\":\"g\",\n\t\"ḡ\":\"g\",\n\t\"ᶃ\":\"g\",\n\t\"ǥ\":\"g\",\n\t\"ḫ\":\"h\",\n\t\"ȟ\":\"h\",\n\t\"ḩ\":\"h\",\n\t\"ĥ\":\"h\",\n\t\"ⱨ\":\"h\",\n\t\"ḧ\":\"h\",\n\t\"ḣ\":\"h\",\n\t\"ḥ\":\"h\",\n\t\"ɦ\":\"h\",\n\t\"ẖ\":\"h\",\n\t\"ħ\":\"h\",\n\t\"ƕ\":\"hv\",\n\t\"í\":\"i\",\n\t\"ĭ\":\"i\",\n\t\"ǐ\":\"i\",\n\t\"î\":\"i\",\n\t\"ï\":\"i\",\n\t\"ḯ\":\"i\",\n\t\"ị\":\"i\",\n\t\"ȉ\":\"i\",\n\t\"ì\":\"i\",\n\t\"ỉ\":\"i\",\n\t\"ȋ\":\"i\",\n\t\"ī\":\"i\",\n\t\"į\":\"i\",\n\t\"ᶖ\":\"i\",\n\t\"ɨ\":\"i\",\n\t\"ĩ\":\"i\",\n\t\"ḭ\":\"i\",\n\t\"ꝺ\":\"d\",\n\t\"ꝼ\":\"f\",\n\t\"ᵹ\":\"g\",\n\t\"ꞃ\":\"r\",\n\t\"ꞅ\":\"s\",\n\t\"ꞇ\":\"t\",\n\t\"ꝭ\":\"is\",\n\t\"ǰ\":\"j\",\n\t\"ĵ\":\"j\",\n\t\"ʝ\":\"j\",\n\t\"ɉ\":\"j\",\n\t\"ḱ\":\"k\",\n\t\"ǩ\":\"k\",\n\t\"ķ\":\"k\",\n\t\"ⱪ\":\"k\",\n\t\"ꝃ\":\"k\",\n\t\"ḳ\":\"k\",\n\t\"ƙ\":\"k\",\n\t\"ḵ\":\"k\",\n\t\"ᶄ\":\"k\",\n\t\"ꝁ\":\"k\",\n\t\"ꝅ\":\"k\",\n\t\"ĺ\":\"l\",\n\t\"ƚ\":\"l\",\n\t\"ɬ\":\"l\",\n\t\"ľ\":\"l\",\n\t\"ļ\":\"l\",\n\t\"ḽ\":\"l\",\n\t\"ȴ\":\"l\",\n\t\"ḷ\":\"l\",\n\t\"ḹ\":\"l\",\n\t\"ⱡ\":\"l\",\n\t\"ꝉ\":\"l\",\n\t\"ḻ\":\"l\",\n\t\"ŀ\":\"l\",\n\t\"ɫ\":\"l\",\n\t\"ᶅ\":\"l\",\n\t\"ɭ\":\"l\",\n\t\"ł\":\"l\",\n\t\"lj\":\"lj\",\n\t\"ſ\":\"s\",\n\t\"ẜ\":\"s\",\n\t\"ẛ\":\"s\",\n\t\"ẝ\":\"s\",\n\t\"ḿ\":\"m\",\n\t\"ṁ\":\"m\",\n\t\"ṃ\":\"m\",\n\t\"ɱ\":\"m\",\n\t\"ᵯ\":\"m\",\n\t\"ᶆ\":\"m\",\n\t\"ń\":\"n\",\n\t\"ň\":\"n\",\n\t\"ņ\":\"n\",\n\t\"ṋ\":\"n\",\n\t\"ȵ\":\"n\",\n\t\"ṅ\":\"n\",\n\t\"ṇ\":\"n\",\n\t\"ǹ\":\"n\",\n\t\"ɲ\":\"n\",\n\t\"ṉ\":\"n\",\n\t\"ƞ\":\"n\",\n\t\"ᵰ\":\"n\",\n\t\"ᶇ\":\"n\",\n\t\"ɳ\":\"n\",\n\t\"ñ\":\"n\",\n\t\"nj\":\"nj\",\n\t\"ó\":\"o\",\n\t\"ŏ\":\"o\",\n\t\"ǒ\":\"o\",\n\t\"ô\":\"o\",\n\t\"ố\":\"o\",\n\t\"ộ\":\"o\",\n\t\"ồ\":\"o\",\n\t\"ổ\":\"o\",\n\t\"ỗ\":\"o\",\n\t\"ö\":\"o\",\n\t\"ȫ\":\"o\",\n\t\"ȯ\":\"o\",\n\t\"ȱ\":\"o\",\n\t\"ọ\":\"o\",\n\t\"ő\":\"o\",\n\t\"ȍ\":\"o\",\n\t\"ò\":\"o\",\n\t\"ỏ\":\"o\",\n\t\"ơ\":\"o\",\n\t\"ớ\":\"o\",\n\t\"ợ\":\"o\",\n\t\"ờ\":\"o\",\n\t\"ở\":\"o\",\n\t\"ỡ\":\"o\",\n\t\"ȏ\":\"o\",\n\t\"ꝋ\":\"o\",\n\t\"ꝍ\":\"o\",\n\t\"ⱺ\":\"o\",\n\t\"ō\":\"o\",\n\t\"ṓ\":\"o\",\n\t\"ṑ\":\"o\",\n\t\"ǫ\":\"o\",\n\t\"ǭ\":\"o\",\n\t\"ø\":\"o\",\n\t\"ǿ\":\"o\",\n\t\"õ\":\"o\",\n\t\"ṍ\":\"o\",\n\t\"ṏ\":\"o\",\n\t\"ȭ\":\"o\",\n\t\"ƣ\":\"oi\",\n\t\"ꝏ\":\"oo\",\n\t\"ɛ\":\"e\",\n\t\"ᶓ\":\"e\",\n\t\"ɔ\":\"o\",\n\t\"ᶗ\":\"o\",\n\t\"ȣ\":\"ou\",\n\t\"ṕ\":\"p\",\n\t\"ṗ\":\"p\",\n\t\"ꝓ\":\"p\",\n\t\"ƥ\":\"p\",\n\t\"ᵱ\":\"p\",\n\t\"ᶈ\":\"p\",\n\t\"ꝕ\":\"p\",\n\t\"ᵽ\":\"p\",\n\t\"ꝑ\":\"p\",\n\t\"ꝙ\":\"q\",\n\t\"ʠ\":\"q\",\n\t\"ɋ\":\"q\",\n\t\"ꝗ\":\"q\",\n\t\"ŕ\":\"r\",\n\t\"ř\":\"r\",\n\t\"ŗ\":\"r\",\n\t\"ṙ\":\"r\",\n\t\"ṛ\":\"r\",\n\t\"ṝ\":\"r\",\n\t\"ȑ\":\"r\",\n\t\"ɾ\":\"r\",\n\t\"ᵳ\":\"r\",\n\t\"ȓ\":\"r\",\n\t\"ṟ\":\"r\",\n\t\"ɼ\":\"r\",\n\t\"ᵲ\":\"r\",\n\t\"ᶉ\":\"r\",\n\t\"ɍ\":\"r\",\n\t\"ɽ\":\"r\",\n\t\"ↄ\":\"c\",\n\t\"ꜿ\":\"c\",\n\t\"ɘ\":\"e\",\n\t\"ɿ\":\"r\",\n\t\"ś\":\"s\",\n\t\"ṥ\":\"s\",\n\t\"š\":\"s\",\n\t\"ṧ\":\"s\",\n\t\"ş\":\"s\",\n\t\"ŝ\":\"s\",\n\t\"ș\":\"s\",\n\t\"ṡ\":\"s\",\n\t\"ṣ\":\"s\",\n\t\"ṩ\":\"s\",\n\t\"ʂ\":\"s\",\n\t\"ᵴ\":\"s\",\n\t\"ᶊ\":\"s\",\n\t\"ȿ\":\"s\",\n\t\"ɡ\":\"g\",\n\t\"ᴑ\":\"o\",\n\t\"ᴓ\":\"o\",\n\t\"ᴝ\":\"u\",\n\t\"ť\":\"t\",\n\t\"ţ\":\"t\",\n\t\"ṱ\":\"t\",\n\t\"ț\":\"t\",\n\t\"ȶ\":\"t\",\n\t\"ẗ\":\"t\",\n\t\"ⱦ\":\"t\",\n\t\"ṫ\":\"t\",\n\t\"ṭ\":\"t\",\n\t\"ƭ\":\"t\",\n\t\"ṯ\":\"t\",\n\t\"ᵵ\":\"t\",\n\t\"ƫ\":\"t\",\n\t\"ʈ\":\"t\",\n\t\"ŧ\":\"t\",\n\t\"ᵺ\":\"th\",\n\t\"ɐ\":\"a\",\n\t\"ᴂ\":\"ae\",\n\t\"ǝ\":\"e\",\n\t\"ᵷ\":\"g\",\n\t\"ɥ\":\"h\",\n\t\"ʮ\":\"h\",\n\t\"ʯ\":\"h\",\n\t\"ᴉ\":\"i\",\n\t\"ʞ\":\"k\",\n\t\"ꞁ\":\"l\",\n\t\"ɯ\":\"m\",\n\t\"ɰ\":\"m\",\n\t\"ᴔ\":\"oe\",\n\t\"ɹ\":\"r\",\n\t\"ɻ\":\"r\",\n\t\"ɺ\":\"r\",\n\t\"ⱹ\":\"r\",\n\t\"ʇ\":\"t\",\n\t\"ʌ\":\"v\",\n\t\"ʍ\":\"w\",\n\t\"ʎ\":\"y\",\n\t\"ꜩ\":\"tz\",\n\t\"ú\":\"u\",\n\t\"ŭ\":\"u\",\n\t\"ǔ\":\"u\",\n\t\"û\":\"u\",\n\t\"ṷ\":\"u\",\n\t\"ü\":\"u\",\n\t\"ǘ\":\"u\",\n\t\"ǚ\":\"u\",\n\t\"ǜ\":\"u\",\n\t\"ǖ\":\"u\",\n\t\"ṳ\":\"u\",\n\t\"ụ\":\"u\",\n\t\"ű\":\"u\",\n\t\"ȕ\":\"u\",\n\t\"ù\":\"u\",\n\t\"ủ\":\"u\",\n\t\"ư\":\"u\",\n\t\"ứ\":\"u\",\n\t\"ự\":\"u\",\n\t\"ừ\":\"u\",\n\t\"ử\":\"u\",\n\t\"ữ\":\"u\",\n\t\"ȗ\":\"u\",\n\t\"ū\":\"u\",\n\t\"ṻ\":\"u\",\n\t\"ų\":\"u\",\n\t\"ᶙ\":\"u\",\n\t\"ů\":\"u\",\n\t\"ũ\":\"u\",\n\t\"ṹ\":\"u\",\n\t\"ṵ\":\"u\",\n\t\"ᵫ\":\"ue\",\n\t\"ꝸ\":\"um\",\n\t\"ⱴ\":\"v\",\n\t\"ꝟ\":\"v\",\n\t\"ṿ\":\"v\",\n\t\"ʋ\":\"v\",\n\t\"ᶌ\":\"v\",\n\t\"ⱱ\":\"v\",\n\t\"ṽ\":\"v\",\n\t\"ꝡ\":\"vy\",\n\t\"ẃ\":\"w\",\n\t\"ŵ\":\"w\",\n\t\"ẅ\":\"w\",\n\t\"ẇ\":\"w\",\n\t\"ẉ\":\"w\",\n\t\"ẁ\":\"w\",\n\t\"ⱳ\":\"w\",\n\t\"ẘ\":\"w\",\n\t\"ẍ\":\"x\",\n\t\"ẋ\":\"x\",\n\t\"ᶍ\":\"x\",\n\t\"ý\":\"y\",\n\t\"ŷ\":\"y\",\n\t\"ÿ\":\"y\",\n\t\"ẏ\":\"y\",\n\t\"ỵ\":\"y\",\n\t\"ỳ\":\"y\",\n\t\"ƴ\":\"y\",\n\t\"ỷ\":\"y\",\n\t\"ỿ\":\"y\",\n\t\"ȳ\":\"y\",\n\t\"ẙ\":\"y\",\n\t\"ɏ\":\"y\",\n\t\"ỹ\":\"y\",\n\t\"ź\":\"z\",\n\t\"ž\":\"z\",\n\t\"ẑ\":\"z\",\n\t\"ʑ\":\"z\",\n\t\"ⱬ\":\"z\",\n\t\"ż\":\"z\",\n\t\"ẓ\":\"z\",\n\t\"ȥ\":\"z\",\n\t\"ẕ\":\"z\",\n\t\"ᵶ\":\"z\",\n\t\"ᶎ\":\"z\",\n\t\"ʐ\":\"z\",\n\t\"ƶ\":\"z\",\n\t\"ɀ\":\"z\",\n\t\"ff\":\"ff\",\n\t\"ffi\":\"ffi\",\n\t\"ffl\":\"ffl\",\n\t\"fi\":\"fi\",\n\t\"fl\":\"fl\",\n\t\"ij\":\"ij\",\n\t\"œ\":\"oe\",\n\t\"st\":\"st\",\n\t\"ₐ\":\"a\",\n\t\"ₑ\":\"e\",\n\t\"ᵢ\":\"i\",\n\t\"ⱼ\":\"j\",\n\t\"ₒ\":\"o\",\n\t\"ᵣ\":\"r\",\n\t\"ᵤ\":\"u\",\n\t\"ᵥ\":\"v\",\n\t\"ₓ\":\"x\",\n\t\"Ё\":\"YO\",\n\t\"Й\":\"I\",\n\t\"Ц\":\"TS\",\n\t\"У\":\"U\",\n\t\"К\":\"K\",\n\t\"Е\":\"E\",\n\t\"Н\":\"N\",\n\t\"Г\":\"G\",\n\t\"Ш\":\"SH\",\n\t\"Щ\":\"SCH\",\n\t\"З\":\"Z\",\n\t\"Х\":\"H\",\n\t\"Ъ\":\"'\",\n\t\"ё\":\"yo\",\n\t\"й\":\"i\",\n\t\"ц\":\"ts\",\n\t\"у\":\"u\",\n\t\"к\":\"k\",\n\t\"е\":\"e\",\n\t\"н\":\"n\",\n\t\"г\":\"g\",\n\t\"ш\":\"sh\",\n\t\"щ\":\"sch\",\n\t\"з\":\"z\",\n\t\"х\":\"h\",\n\t\"ъ\":\"'\",\n\t\"Ф\":\"F\",\n\t\"Ы\":\"I\",\n\t\"В\":\"V\",\n\t\"А\":\"a\",\n\t\"П\":\"P\",\n\t\"Р\":\"R\",\n\t\"О\":\"O\",\n\t\"Л\":\"L\",\n\t\"Д\":\"D\",\n\t\"Ж\":\"ZH\",\n\t\"Э\":\"E\",\n\t\"ф\":\"f\",\n\t\"ы\":\"i\",\n\t\"в\":\"v\",\n\t\"а\":\"a\",\n\t\"п\":\"p\",\n\t\"р\":\"r\",\n\t\"о\":\"o\",\n\t\"л\":\"l\",\n\t\"д\":\"d\",\n\t\"ж\":\"zh\",\n\t\"э\":\"e\",\n\t\"Я\":\"Ya\",\n\t\"Ч\":\"CH\",\n\t\"С\":\"S\",\n\t\"М\":\"M\",\n\t\"И\":\"I\",\n\t\"Т\":\"T\",\n\t\"Ь\":\"'\",\n\t\"Б\":\"B\",\n\t\"Ю\":\"YU\",\n\t\"я\":\"ya\",\n\t\"ч\":\"ch\",\n\t\"с\":\"s\",\n\t\"м\":\"m\",\n\t\"и\":\"i\",\n\t\"т\":\"t\",\n\t\"ь\":\"'\",\n\t\"б\":\"b\",\n\t\"ю\":\"yu\"\n};\n\nexports.transliterate = function(str) {\n\treturn str.replace(/[^A-Za-z0-9\\[\\] ]/g,function(ch) {\n\t\treturn exports.transliterationPairs[ch] || ch\n\t});\n};\n\nexports.transliterateToSafeASCII = function(str) {\n\treturn str.replace(/[^\\x00-\\x7F]/g,function(ch) {\n\t\treturn exports.transliterationPairs[ch] || \"\"\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/utils.js": {
"title": "$:/core/modules/utils/utils.js",
"text": "/*\\\ntitle: $:/core/modules/utils/utils.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar base64utf8 = require(\"$:/core/modules/utils/base64-utf8/base64-utf8.module.js\");\n\n/*\nDisplay a message, in colour if we're on a terminal\n*/\nexports.log = function(text,colour) {\n\tconsole.log($tw.node ? exports.terminalColour(colour) + text + exports.terminalColour() : text);\n};\n\nexports.terminalColour = function(colour) {\n\tif(!$tw.browser && $tw.node && process.stdout.isTTY) {\n\t\tif(colour) {\n\t\t\tvar code = exports.terminalColourLookup[colour];\n\t\t\tif(code) {\n\t\t\t\treturn \"\\x1b[\" + code + \"m\";\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"\\x1b[0m\"; // Cancel colour\n\t\t}\n\t}\n\treturn \"\";\n};\n\nexports.terminalColourLookup = {\n\t\"black\": \"0;30\",\n\t\"red\": \"0;31\",\n\t\"green\": \"0;32\",\n\t\"brown/orange\": \"0;33\",\n\t\"blue\": \"0;34\",\n\t\"purple\": \"0;35\",\n\t\"cyan\": \"0;36\",\n\t\"light gray\": \"0;37\"\n};\n\n/*\nDisplay a warning, in colour if we're on a terminal\n*/\nexports.warning = function(text) {\n\texports.log(text,\"brown/orange\");\n};\n\n/*\nLog a table of name: value pairs\n*/\nexports.logTable = function(data) {\n\tif(console.table) {\n\t\tconsole.table(data);\n\t} else {\n\t\t$tw.utils.each(data,function(value,name) {\n\t\t\tconsole.log(name + \": \" + value);\n\t\t});\n\t}\n}\n\n/*\nReturn the integer represented by the str (string).\nReturn the dflt (default) parameter if str is not a base-10 number.\n*/\nexports.getInt = function(str,deflt) {\n\tvar i = parseInt(str,10);\n\treturn isNaN(i) ? deflt : i;\n}\n\n/*\nRepeatedly replaces a substring within a string. Like String.prototype.replace, but without any of the default special handling of $ sequences in the replace string\n*/\nexports.replaceString = function(text,search,replace) {\n\treturn text.replace(search,function() {\n\t\treturn replace;\n\t});\n};\n\n/*\nRepeats a string\n*/\nexports.repeat = function(str,count) {\n\tvar result = \"\";\n\tfor(var t=0;t<count;t++) {\n\t\tresult += str;\n\t}\n\treturn result;\n};\n\n/*\nTrim whitespace from the start and end of a string\nThanks to Steven Levithan, http://blog.stevenlevithan.com/archives/faster-trim-javascript\n*/\nexports.trim = function(str) {\n\tif(typeof str === \"string\") {\n\t\treturn str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n\t} else {\n\t\treturn str;\n\t}\n};\n\nexports.trimPrefix = function(str,unwanted) {\n\tif(typeof str === \"string\" && typeof unwanted === \"string\") {\n\t\tif(unwanted === \"\") {\n\t\t\treturn str.replace(/^\\s\\s*/, '');\n\t\t} else {\n\t\t\t// Safely regexp-escape the unwanted text\n\t\t\tunwanted = unwanted.replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\t\t\tvar regex = new RegExp('^(' + unwanted + ')+');\n\t\t\treturn str.replace(regex, '');\n\t\t}\n\t} else {\n\t\treturn str;\n\t}\n};\n\nexports.trimSuffix = function(str,unwanted) {\n\tif(typeof str === \"string\" && typeof unwanted === \"string\") {\n\t\tif(unwanted === \"\") {\n\t\t\treturn str.replace(/\\s\\s*$/, '');\n\t\t} else {\n\t\t\t// Safely regexp-escape the unwanted text\n\t\t\tunwanted = unwanted.replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\t\t\tvar regex = new RegExp('(' + unwanted + ')+$');\n\t\t\treturn str.replace(regex, '');\n\t\t}\n\t} else {\n\t\treturn str;\n\t}\n};\n\n/*\nConvert a string to sentence case (ie capitalise first letter)\n*/\nexports.toSentenceCase = function(str) {\n\treturn (str || \"\").replace(/^\\S/, function(c) {return c.toUpperCase();});\n}\n\n/*\nConvert a string to title case (ie capitalise each initial letter)\n*/\nexports.toTitleCase = function(str) {\n\treturn (str || \"\").replace(/(^|\\s)\\S/g, function(c) {return c.toUpperCase();});\n}\n\t\n/*\nFind the line break preceding a given position in a string\nReturns position immediately after that line break, or the start of the string\n*/\nexports.findPrecedingLineBreak = function(text,pos) {\n\tvar result = text.lastIndexOf(\"\\n\",pos - 1);\n\tif(result === -1) {\n\t\tresult = 0;\n\t} else {\n\t\tresult++;\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nFind the line break following a given position in a string\n*/\nexports.findFollowingLineBreak = function(text,pos) {\n\t// Cut to just past the following line break, or to the end of the text\n\tvar result = text.indexOf(\"\\n\",pos);\n\tif(result === -1) {\n\t\tresult = text.length;\n\t} else {\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nReturn the number of keys in an object\n*/\nexports.count = function(object) {\n\treturn Object.keys(object || {}).length;\n};\n\n/*\nDetermine whether an array-item is an object-property\n*/\nexports.hopArray = function(object,array) {\n\tfor(var i=0; i<array.length; i++) {\n\t\tif($tw.utils.hop(object,array[i])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nRemove entries from an array\n\tarray: array to modify\n\tvalue: a single value to remove, or an array of values to remove\n*/\nexports.removeArrayEntries = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\tfor(t=0; t<value.length; t++) {\n\t\t\tp = array.indexOf(value[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tarray.splice(p,1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tp = array.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tarray.splice(p,1);\n\t\t}\n\t}\n};\n\n/*\nCheck whether any members of a hashmap are present in another hashmap\n*/\nexports.checkDependencies = function(dependencies,changes) {\n\tvar hit = false;\n\t$tw.utils.each(changes,function(change,title) {\n\t\tif($tw.utils.hop(dependencies,title)) {\n\t\t\thit = true;\n\t\t}\n\t});\n\treturn hit;\n};\n\nexports.extend = function(object /* [, src] */) {\n\t$tw.utils.each(Array.prototype.slice.call(arguments, 1), function(source) {\n\t\tif(source) {\n\t\t\tfor(var property in source) {\n\t\t\t\tobject[property] = source[property];\n\t\t\t}\n\t\t}\n\t});\n\treturn object;\n};\n\nexports.deepCopy = function(object) {\n\tvar result,t;\n\tif($tw.utils.isArray(object)) {\n\t\t// Copy arrays\n\t\tresult = object.slice(0);\n\t} else if(typeof object === \"object\") {\n\t\tresult = {};\n\t\tfor(t in object) {\n\t\t\tif(object[t] !== undefined) {\n\t\t\t\tresult[t] = $tw.utils.deepCopy(object[t]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = object;\n\t}\n\treturn result;\n};\n\nexports.extendDeepCopy = function(object,extendedProperties) {\n\tvar result = $tw.utils.deepCopy(object),t;\n\tfor(t in extendedProperties) {\n\t\tif(extendedProperties[t] !== undefined) {\n\t\t\tresult[t] = $tw.utils.deepCopy(extendedProperties[t]);\n\t\t}\n\t}\n\treturn result;\n};\n\nexports.deepFreeze = function deepFreeze(object) {\n\tvar property, key;\n\tif(object) {\n\t\tObject.freeze(object);\n\t\tfor(key in object) {\n\t\t\tproperty = object[key];\n\t\t\tif($tw.utils.hop(object,key) && (typeof property === \"object\") && !Object.isFrozen(property)) {\n\t\t\t\tdeepFreeze(property);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexports.slowInSlowOut = function(t) {\n\treturn (1 - ((Math.cos(t * Math.PI) + 1) / 2));\n};\n\nexports.formatDateString = function(date,template) {\n\tvar result = \"\",\n\t\tt = template,\n\t\tmatches = [\n\t\t\t[/^0hh12/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getHours12(date));\n\t\t\t}],\n\t\t\t[/^wYYYY/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getYearForWeekNo(date),4);\n\t\t\t}],\n\t\t\t[/^hh12/, function() {\n\t\t\t\treturn $tw.utils.getHours12(date);\n\t\t\t}],\n\t\t\t[/^DDth/, function() {\n\t\t\t\treturn date.getDate() + $tw.utils.getDaySuffix(date);\n\t\t\t}],\n\t\t\t[/^YYYY/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getFullYear(),4);\n\t\t\t}],\n\t\t\t[/^aYYYY/, function() {\n\t\t\t\treturn $tw.utils.pad(Math.abs(date.getFullYear()),4);\n\t\t\t}],\n\t\t\t[/^\\{era:([^,\\|}]*)\\|([^}\\|]*)\\|([^}]*)\\}/, function(match) {\n\t\t\t\tvar year = date.getFullYear();\n\t\t\t\treturn year === 0 ? match[2] : (year < 0 ? match[1] : match[3]);\n\t\t\t}],\n\t\t\t[/^0hh/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getHours());\n\t\t\t}],\n\t\t\t[/^0mm/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMinutes());\n\t\t\t}],\n\t\t\t[/^0ss/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getSeconds());\n\t\t\t}],\n\t\t\t[/^0XXX/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMilliseconds(),3);\n\t\t\t}],\n\t\t\t[/^0DD/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getDate());\n\t\t\t}],\n\t\t\t[/^0MM/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMonth()+1);\n\t\t\t}],\n\t\t\t[/^0WW/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getWeek(date));\n\t\t\t}],\n\t\t\t[/^ddd/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^mmm/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^DDD/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^MMM/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^TZD/, function() {\n\t\t\t\tvar tz = date.getTimezoneOffset(),\n\t\t\t\tatz = Math.abs(tz);\n\t\t\t\treturn (tz < 0 ? '+' : '-') + $tw.utils.pad(Math.floor(atz / 60)) + ':' + $tw.utils.pad(atz % 60);\n\t\t\t}],\n\t\t\t[/^wYY/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getYearForWeekNo(date) - 2000);\n\t\t\t}],\n\t\t\t[/^[ap]m/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toLowerCase();\n\t\t\t}],\n\t\t\t[/^hh/, function() {\n\t\t\t\treturn date.getHours();\n\t\t\t}],\n\t\t\t[/^mm/, function() {\n\t\t\t\treturn date.getMinutes();\n\t\t\t}],\n\t\t\t[/^ss/, function() {\n\t\t\t\treturn date.getSeconds();\n\t\t\t}],\n\t\t\t[/^XXX/, function() {\n\t\t\t\treturn date.getMilliseconds();\n\t\t\t}],\n\t\t\t[/^[AP]M/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toUpperCase();\n\t\t\t}],\n\t\t\t[/^DD/, function() {\n\t\t\t\treturn date.getDate();\n\t\t\t}],\n\t\t\t[/^MM/, function() {\n\t\t\t\treturn date.getMonth() + 1;\n\t\t\t}],\n\t\t\t[/^WW/, function() {\n\t\t\t\treturn $tw.utils.getWeek(date);\n\t\t\t}],\n\t\t\t[/^YY/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getFullYear() - 2000);\n\t\t\t}]\n\t\t];\n\t// If the user wants everything in UTC, shift the datestamp\n\t// Optimize for format string that essentially means\n\t// 'return raw UTC (tiddlywiki style) date string.'\n\tif(t.indexOf(\"[UTC]\") == 0 ) {\n\t\tif(t == \"[UTC]YYYY0MM0DD0hh0mm0ssXXX\")\n\t\t\treturn $tw.utils.stringifyDate(new Date());\n\t\tvar offset = date.getTimezoneOffset() ; // in minutes\n\t\tdate = new Date(date.getTime()+offset*60*1000) ;\n\t\tt = t.substr(5) ;\n\t}\n\twhile(t.length){\n\t\tvar matchString = \"\";\n\t\t$tw.utils.each(matches, function(m) {\n\t\t\tvar match = m[0].exec(t);\n\t\t\tif(match) {\n\t\t\t\tmatchString = m[1].call(null,match);\n\t\t\t\tt = t.substr(match[0].length);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif(matchString) {\n\t\t\tresult += matchString;\n\t\t} else {\n\t\t\tresult += t.charAt(0);\n\t\t\tt = t.substr(1);\n\t\t}\n\t}\n\tresult = result.replace(/\\\\(.)/g,\"$1\");\n\treturn result;\n};\n\nexports.getAmPm = function(date) {\n\treturn $tw.language.getString(\"Date/Period/\" + (date.getHours() >= 12 ? \"pm\" : \"am\"));\n};\n\nexports.getDaySuffix = function(date) {\n\treturn $tw.language.getString(\"Date/DaySuffix/\" + date.getDate());\n};\n\nexports.getWeek = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week to calculate weekNo\n\tvar x = new Date(dt.getFullYear(),0,1);\n\tvar n = Math.floor((dt.getTime() - x.getTime()) / 86400000);\n\treturn Math.floor(n / 7) + 1;\n};\n\nexports.getYearForWeekNo = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week\n\treturn dt.getFullYear();\n};\n\nexports.getHours12 = function(date) {\n\tvar h = date.getHours();\n\treturn h > 12 ? h-12 : ( h > 0 ? h : 12 );\n};\n\n/*\nConvert a date delta in milliseconds into a string representation of \"23 seconds ago\", \"27 minutes ago\" etc.\n\tdelta: delta in milliseconds\nReturns an object with these members:\n\tdescription: string describing the delta period\n\tupdatePeriod: time in millisecond until the string will be inaccurate\n*/\nexports.getRelativeDate = function(delta) {\n\tvar futurep = false;\n\tif(delta < 0) {\n\t\tdelta = -1 * delta;\n\t\tfuturep = true;\n\t}\n\tvar units = [\n\t\t{name: \"Years\", duration: 365 * 24 * 60 * 60 * 1000},\n\t\t{name: \"Months\", duration: (365/12) * 24 * 60 * 60 * 1000},\n\t\t{name: \"Days\", duration: 24 * 60 * 60 * 1000},\n\t\t{name: \"Hours\", duration: 60 * 60 * 1000},\n\t\t{name: \"Minutes\", duration: 60 * 1000},\n\t\t{name: \"Seconds\", duration: 1000}\n\t];\n\tfor(var t=0; t<units.length; t++) {\n\t\tvar result = Math.floor(delta / units[t].duration);\n\t\tif(result >= 2) {\n\t\t\treturn {\n\t\t\t\tdelta: delta,\n\t\t\t\tdescription: $tw.language.getString(\n\t\t\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/\" + units[t].name,\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{period: result.toString()}\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t\tupdatePeriod: units[t].duration\n\t\t\t};\n\t\t}\n\t}\n\treturn {\n\t\tdelta: delta,\n\t\tdescription: $tw.language.getString(\n\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/Second\",\n\t\t\t{variables:\n\t\t\t\t{period: \"1\"}\n\t\t\t}\n\t\t),\n\t\tupdatePeriod: 1000\n\t};\n};\n\n// Convert & to \"&\", < to \"<\", > to \">\", \" to \""\"\nexports.htmlEncode = function(s) {\n\tif(s) {\n\t\treturn s.toString().replace(/&/mg,\"&\").replace(/</mg,\"<\").replace(/>/mg,\">\").replace(/\\\"/mg,\""\");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n// Converts all HTML entities to their character equivalents\nexports.entityDecode = function(s) {\n\tvar converter = String.fromCodePoint || String.fromCharCode,\n\t\te = s.substr(1,s.length-2), // Strip the & and the ;\n\t\tc;\n\tif(e.charAt(0) === \"#\") {\n\t\tif(e.charAt(1) === \"x\" || e.charAt(1) === \"X\") {\n\t\t\tc = parseInt(e.substr(2),16);\n\t\t} else {\n\t\t\tc = parseInt(e.substr(1),10);\n\t\t}\n\t\tif(isNaN(c)) {\n\t\t\treturn s;\n\t\t} else {\n\t\t\treturn converter(c);\n\t\t}\n\t} else {\n\t\tc = $tw.config.htmlEntities[e];\n\t\tif(c) {\n\t\t\treturn converter(c);\n\t\t} else {\n\t\t\treturn s; // Couldn't convert it as an entity, just return it raw\n\t\t}\n\t}\n};\n\nexports.unescapeLineBreaks = function(s) {\n\treturn s.replace(/\\\\n/mg,\"\\n\").replace(/\\\\b/mg,\" \").replace(/\\\\s/mg,\"\\\\\").replace(/\\r/mg,\"\");\n};\n\n/*\n * Returns an escape sequence for given character. Uses \\x for characters <=\n * 0xFF to save space, \\u for the rest.\n *\n * The code needs to be in sync with th code template in the compilation\n * function for \"action\" nodes.\n */\n// Copied from peg.js, thanks to David Majda\nexports.escape = function(ch) {\n\tvar charCode = ch.charCodeAt(0);\n\tif(charCode <= 0xFF) {\n\t\treturn '\\\\x' + $tw.utils.pad(charCode.toString(16).toUpperCase());\n\t} else {\n\t\treturn '\\\\u' + $tw.utils.pad(charCode.toString(16).toUpperCase(),4);\n\t}\n};\n\n// Turns a string into a legal JavaScript string\n// Copied from peg.js, thanks to David Majda\nexports.stringify = function(s, rawUnicode) {\n\t/*\n\t* ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a string\n\t* literal except for the closing quote character, backslash, carriage return,\n\t* line separator, paragraph separator, and line feed. Any character may\n\t* appear in the form of an escape sequence.\n\t*\n\t* For portability, we also escape all non-ASCII characters.\n\t*/\n\tvar regex = rawUnicode ? /[\\x00-\\x1f]/g : /[\\x00-\\x1f\\x80-\\uFFFF]/g;\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\') // backslash\n\t\t.replace(/\"/g, '\\\\\"') // double quote character\n\t\t.replace(/'/g, \"\\\\'\") // single quote character\n\t\t.replace(/\\r/g, '\\\\r') // carriage return\n\t\t.replace(/\\n/g, '\\\\n') // line feed\n\t\t.replace(regex, exports.escape); // non-ASCII characters\n};\n\n// Turns a string into a legal JSON string\n// Derived from peg.js, thanks to David Majda\nexports.jsonStringify = function(s, rawUnicode) {\n\t// See http://www.json.org/\n\tvar regex = rawUnicode ? /[\\x00-\\x1f]/g : /[\\x00-\\x1f\\x80-\\uFFFF]/g;\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\') // backslash\n\t\t.replace(/\"/g, '\\\\\"') // double quote character\n\t\t.replace(/\\r/g, '\\\\r') // carriage return\n\t\t.replace(/\\n/g, '\\\\n') // line feed\n\t\t.replace(/\\x08/g, '\\\\b') // backspace\n\t\t.replace(/\\x0c/g, '\\\\f') // formfeed\n\t\t.replace(/\\t/g, '\\\\t') // tab\n\t\t.replace(regex,function(s) {\n\t\t\treturn '\\\\u' + $tw.utils.pad(s.charCodeAt(0).toString(16).toUpperCase(),4);\n\t\t}); // non-ASCII characters\n};\n\n/*\nEscape the RegExp special characters with a preceding backslash\n*/\nexports.escapeRegExp = function(s) {\n return s.replace(/[\\-\\/\\\\\\^\\$\\*\\+\\?\\.\\(\\)\\|\\[\\]\\{\\}]/g, '\\\\$&');\n};\n\n// Checks whether a link target is external, i.e. not a tiddler title\nexports.isLinkExternal = function(to) {\n\tvar externalRegExp = /^(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/i;\n\treturn externalRegExp.test(to);\n};\n\nexports.nextTick = function(fn) {\n/*global window: false */\n\tif(typeof process === \"undefined\") {\n\t\t// Apparently it would be faster to use postMessage - http://dbaron.org/log/20100309-faster-timeouts\n\t\twindow.setTimeout(fn,4);\n\t} else {\n\t\tprocess.nextTick(fn);\n\t}\n};\n\n/*\nConvert a hyphenated CSS property name into a camel case one\n*/\nexports.unHyphenateCss = function(propName) {\n\treturn propName.replace(/-([a-z])/gi, function(match0,match1) {\n\t\treturn match1.toUpperCase();\n\t});\n};\n\n/*\nConvert a camelcase CSS property name into a dashed one (\"backgroundColor\" --> \"background-color\")\n*/\nexports.hyphenateCss = function(propName) {\n\treturn propName.replace(/([A-Z])/g, function(match0,match1) {\n\t\treturn \"-\" + match1.toLowerCase();\n\t});\n};\n\n/*\nParse a text reference of one of these forms:\n* title\n* !!field\n* title!!field\n* title##index\n* etc\nReturns an object with the following fields, all optional:\n* title: tiddler title\n* field: tiddler field name\n* index: JSON property index\n*/\nexports.parseTextReference = function(textRef) {\n\t// Separate out the title, field name and/or JSON indices\n\tvar reTextRef = /(?:(.*?)!!(.+))|(?:(.*?)##(.+))|(.*)/mg,\n\t\tmatch = reTextRef.exec(textRef),\n\t\tresult = {};\n\tif(match && reTextRef.lastIndex === textRef.length) {\n\t\t// Return the parts\n\t\tif(match[1]) {\n\t\t\tresult.title = match[1];\n\t\t}\n\t\tif(match[2]) {\n\t\t\tresult.field = match[2];\n\t\t}\n\t\tif(match[3]) {\n\t\t\tresult.title = match[3];\n\t\t}\n\t\tif(match[4]) {\n\t\t\tresult.index = match[4];\n\t\t}\n\t\tif(match[5]) {\n\t\t\tresult.title = match[5];\n\t\t}\n\t} else {\n\t\t// If we couldn't parse it\n\t\tresult.title = textRef\n\t}\n\treturn result;\n};\n\n/*\nChecks whether a string is a valid fieldname\n*/\nexports.isValidFieldName = function(name) {\n\tif(!name || typeof name !== \"string\") {\n\t\treturn false;\n\t}\n\tname = name.toLowerCase().trim();\n\tvar fieldValidatorRegEx = /^[a-z0-9\\-\\._]+$/mg;\n\treturn fieldValidatorRegEx.test(name);\n};\n\n/*\nExtract the version number from the meta tag or from the boot file\n*/\n\n// Browser version\nexports.extractVersionInfo = function() {\n\tif($tw.packageInfo) {\n\t\treturn $tw.packageInfo.version;\n\t} else {\n\t\tvar metatags = document.getElementsByTagName(\"meta\");\n\t\tfor(var t=0; t<metatags.length; t++) {\n\t\t\tvar m = metatags[t];\n\t\t\tif(m.name === \"tiddlywiki-version\") {\n\t\t\t\treturn m.content;\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the animation duration in ms\n*/\nexports.getAnimationDuration = function() {\n\treturn parseInt($tw.wiki.getTiddlerText(\"$:/config/AnimationDuration\",\"400\"),10) || 0;\n};\n\n/*\nHash a string to a number\nDerived from http://stackoverflow.com/a/15710692\n*/\nexports.hashString = function(str) {\n\treturn str.split(\"\").reduce(function(a,b) {\n\t\ta = ((a << 5) - a) + b.charCodeAt(0);\n\t\treturn a & a;\n\t},0);\n};\n\n/*\nDecode a base64 string\n*/\nexports.base64Decode = function(string64) {\n\treturn base64utf8.base64.decode.call(base64utf8,string64);\n};\n\n/*\nEncode a string to base64\n*/\nexports.base64Encode = function(string64) {\n\treturn base64utf8.base64.encode.call(base64utf8,string64);\n};\n\n/*\nConvert a hashmap into a tiddler dictionary format sequence of name:value pairs\n*/\nexports.makeTiddlerDictionary = function(data) {\n\tvar output = [];\n\tfor(var name in data) {\n\t\toutput.push(name + \": \" + data[name]);\n\t}\n\treturn output.join(\"\\n\");\n};\n\n/*\nHigh resolution microsecond timer for profiling\n*/\nexports.timer = function(base) {\n\tvar m;\n\tif($tw.node) {\n\t\tvar r = process.hrtime();\n\t\tm = r[0] * 1e3 + (r[1] / 1e6);\n\t} else if(window.performance) {\n\t\tm = performance.now();\n\t} else {\n\t\tm = Date.now();\n\t}\n\tif(typeof base !== \"undefined\") {\n\t\tm = m - base;\n\t}\n\treturn m;\n};\n\n/*\nConvert text and content type to a data URI\n*/\nexports.makeDataUri = function(text,type,_canonical_uri) {\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar typeInfo = $tw.config.contentTypeInfo[type] || $tw.config.contentTypeInfo[\"text/plain\"],\n\t\tisBase64 = typeInfo.encoding === \"base64\",\n\t\tparts = [];\n\tif(_canonical_uri) {\n\t\tparts.push(_canonical_uri);\n\t} else {\n\t\tparts.push(\"data:\");\n\t\tparts.push(type);\n\t\tparts.push(isBase64 ? \";base64\" : \"\");\n\t\tparts.push(\",\");\n\t\tparts.push(isBase64 ? text : encodeURIComponent(text));\t\t\n\t}\n\treturn parts.join(\"\");\n};\n\n/*\nUseful for finding out the fully escaped CSS selector equivalent to a given tag. For example:\n\n$tw.utils.tagToCssSelector(\"$:/tags/Stylesheet\") --> tc-tagged-\\%24\\%3A\\%2Ftags\\%2FStylesheet\n*/\nexports.tagToCssSelector = function(tagName) {\n\treturn \"tc-tagged-\" + encodeURIComponent(tagName).replace(/[!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^`{\\|}~,]/mg,function(c) {\n\t\treturn \"\\\\\" + c;\n\t});\n};\n\n/*\nIE does not have sign function\n*/\nexports.sign = Math.sign || function(x) {\n\tx = +x; // convert to a number\n\tif (x === 0 || isNaN(x)) {\n\t\treturn x;\n\t}\n\treturn x > 0 ? 1 : -1;\n};\n\n/*\nIE does not have an endsWith function\n*/\nexports.strEndsWith = function(str,ending,position) {\n\tif(str.endsWith) {\n\t\treturn str.endsWith(ending,position);\n\t} else {\n\t\tif (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > str.length) {\n\t\t\tposition = str.length;\n\t\t}\n\t\tposition -= ending.length;\n\t\tvar lastIndex = str.indexOf(ending, position);\n\t\treturn lastIndex !== -1 && lastIndex === position;\n\t}\n};\n\n/*\nReturn system information useful for debugging\n*/\nexports.getSystemInfo = function(str,ending,position) {\n\tvar results = [],\n\t\tsave = function(desc,value) {\n\t\t\tresults.push(desc + \": \" + value);\n\t\t};\n\tif($tw.browser) {\n\t\tsave(\"User Agent\",navigator.userAgent);\n\t\tsave(\"Online Status\",window.navigator.onLine);\n\t}\n\tif($tw.node) {\n\t\tsave(\"Node Version\",process.version);\n\t}\n\treturn results.join(\"\\n\");\n};\n\nexports.parseNumber = function(str) {\n\treturn parseFloat(str) || 0;\n};\n\nexports.parseInt = function(str) {\n\treturn parseInt(str,10) || 0;\n};\n\nexports.stringifyNumber = function(num) {\n\treturn num + \"\";\n};\n\nexports.makeCompareFunction = function(type,options) {\n\toptions = options || {};\n\tvar gt = options.invert ? -1 : +1,\n\t\tlt = options.invert ? +1 : -1,\n\t\tcompare = function(a,b) {\n\t\t\tif(a > b) {\n\t\t\t\treturn gt ;\n\t\t\t} else if(a < b) {\n\t\t\t\treturn lt;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t},\n\t\ttypes = {\n\t\t\t\"number\": function(a,b) {\n\t\t\t\treturn compare($tw.utils.parseNumber(a),$tw.utils.parseNumber(b));\n\t\t\t},\n\t\t\t\"integer\": function(a,b) {\n\t\t\t\treturn compare($tw.utils.parseInt(a),$tw.utils.parseInt(b));\n\t\t\t},\n\t\t\t\"string\": function(a,b) {\n\t\t\t\treturn compare(\"\" + a,\"\" +b);\n\t\t\t},\n\t\t\t\"date\": function(a,b) {\n\t\t\t\tvar dateA = $tw.utils.parseDate(a),\n\t\t\t\t\tdateB = $tw.utils.parseDate(b);\n\t\t\t\tif(!isFinite(dateA)) {\n\t\t\t\t\tdateA = new Date(0);\n\t\t\t\t}\n\t\t\t\tif(!isFinite(dateB)) {\n\t\t\t\t\tdateB = new Date(0);\n\t\t\t\t}\n\t\t\t\treturn compare(dateA,dateB);\n\t\t\t},\n\t\t\t\"version\": function(a,b) {\n\t\t\t\treturn $tw.utils.compareVersions(a,b);\n\t\t\t}\n\t\t};\n\treturn (types[type] || types[options.defaultType] || types.number);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/widgets/action-confirm.js": {
"title": "$:/core/modules/widgets/action-confirm.js",
"text": "/*\\\n\ntitle: $:/core/modules/widgets/action-confirm.js\ntype: application/javascript\nmodule-type: widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ConfirmWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nConfirmWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nConfirmWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.parentDomNode = parent;\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nConfirmWidget.prototype.execute = function() {\n\tthis.message = this.getAttribute(\"$message\",$tw.language.getString(\"ConfirmAction\"));\n\tthis.prompt = (this.getAttribute(\"$prompt\",\"yes\") == \"no\" ? false : true);\n\tthis.makeChildWidgets();\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nConfirmWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$message\"] || changedAttributes[\"$prompt\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nConfirmWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar invokeActions = true,\n\t\thandled = true;\n\tif(this.prompt) {\n\t\tinvokeActions = confirm(this.message);\n\t}\n\tif(invokeActions) {\n\t\thandled = this.invokeActions(triggeringWidget,event);\n\t}\n\treturn handled;\n};\n\nConfirmWidget.prototype.allowActionPropagation = function() {\n\treturn false;\n};\n\nexports[\"action-confirm\"] = ConfirmWidget;\n\n})();",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-createtiddler.js": {
"title": "$:/core/modules/widgets/action-createtiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-createtiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to create a new tiddler with a unique name and specified fields.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw:false, require:false, exports:false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CreateTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCreateTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCreateTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nCreateTiddlerWidget.prototype.execute = function() {\n\tthis.actionBaseTitle = this.getAttribute(\"$basetitle\");\n\tthis.hasBase = !!this.actionBaseTitle;\n\tthis.actionSaveTitle = this.getAttribute(\"$savetitle\");\n\tthis.actionSaveDraftTitle = this.getAttribute(\"$savedrafttitle\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n\t//Following params are new since 5.1.22\n\tthis.actionTemplate = this.getAttribute(\"$template\");\n\tthis.useTemplate = !!this.actionTemplate;\n\tthis.actionOverwrite = this.getAttribute(\"$overwrite\",\"no\");\n\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nCreateTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nCreateTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar title = this.wiki.getTiddlerText(\"$:/language/DefaultNewTiddlerTitle\"), // Get the initial new-tiddler title\n\t\tfields = {},\n\t\tcreationFields,\n\t\tmodificationFields;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tfields[name] = attribute;\n\t\t}\n\t});\n\tif(this.actionTimestamp) {\n\t\tcreationFields = this.wiki.getCreationFields();\n\t\tmodificationFields = this.wiki.getModificationFields();\n\t}\n\tif(this.hasBase && this.actionOverwrite === \"no\") {\n\t\ttitle = this.wiki.generateNewTitle(this.actionBaseTitle);\n\t} else if (this.hasBase && this.actionOverwrite === \"yes\") {\n\t\ttitle = this.actionBaseTitle\n\t}\n\t// NO $basetitle BUT $template parameter is available\n\t// the title MUST be unique, otherwise the template would be overwritten\n\tif (!this.hasBase && this.useTemplate) {\n\t\ttitle = this.wiki.generateNewTitle(this.actionTemplate);\n\t} else if (!this.hasBase && !this.useTemplate) {\n\t\t// If NO $basetitle AND NO $template use initial title\n\t\t// DON'T overwrite any stuff\n\t\ttitle = this.wiki.generateNewTitle(title);\n\t}\n\tvar templateTiddler = this.wiki.getTiddler(this.actionTemplate) || {};\n\tvar tiddler = this.wiki.addTiddler(new $tw.Tiddler(templateTiddler.fields,creationFields,fields,modificationFields,{title: title}));\n\tif(this.actionSaveTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveTitle,title,this.getVariable(\"currentTiddler\"));\n\t}\n\tif(this.actionSaveDraftTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveDraftTitle,this.wiki.generateDraftTitle(title),this.getVariable(\"currentTiddler\"));\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-createtiddler\"] = CreateTiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-deletefield.js": {
"title": "$:/core/modules/widgets/action-deletefield.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-deletefield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete fields of a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\ttiddler = this.wiki.getTiddler(self.actionTiddler),\n\t\tremoveFields = {},\n\t\thasChanged = false;\n\tif(this.actionField && tiddler) {\n\t\tremoveFields[this.actionField] = undefined;\n\t\tif(this.actionField in tiddler.fields) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(tiddler) {\n\t\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\t\tif(name.charAt(0) !== \"$\" && name !== \"title\") {\n\t\t\t\tremoveFields[name] = undefined;\n\t\t\t\thasChanged = true;\n\t\t\t}\n\t\t});\n\t\tif(hasChanged) {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,removeFields,this.wiki.getModificationFields()));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletefield\"] = DeleteFieldWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-deletetiddler.js": {
"title": "$:/core/modules/widgets/action-deletetiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-deletetiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteTiddlerWidget.prototype.execute = function() {\n\tthis.actionFilter = this.getAttribute(\"$filter\");\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$filter\"] || changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar tiddlers = [];\n\tif(this.actionFilter) {\n\t\ttiddlers = this.wiki.filterTiddlers(this.actionFilter,this);\n\t}\n\tif(this.actionTiddler) {\n\t\ttiddlers.push(this.actionTiddler);\n\t}\n\tfor(var t=0; t<tiddlers.length; t++) {\n\t\tthis.wiki.deleteTiddler(tiddlers[t]);\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletetiddler\"] = DeleteTiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-listops.js": {
"title": "$:/core/modules/widgets/action-listops.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-listops.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to apply list operations to any tiddler field (defaults to the 'list' field of the current tiddler)\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar ActionListopsWidget = function(parseTreeNode, options) {\n\tthis.initialise(parseTreeNode, options);\n};\n/**\n * Inherit from the base widget class\n */\nActionListopsWidget.prototype = new Widget();\n/**\n * Render this widget into the DOM\n */\nActionListopsWidget.prototype.render = function(parent, nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n/**\n * Compute the internal state of the widget\n */\nActionListopsWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.target = this.getAttribute(\"$tiddler\", this.getVariable(\n\t\t\"currentTiddler\"));\n\tthis.filter = this.getAttribute(\"$filter\");\n\tthis.subfilter = this.getAttribute(\"$subfilter\");\n\tthis.listField = this.getAttribute(\"$field\", \"list\");\n\tthis.listIndex = this.getAttribute(\"$index\");\n\tthis.filtertags = this.getAttribute(\"$tags\");\n};\n/**\n * \tRefresh the widget by ensuring our attributes are up to date\n */\nActionListopsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.$tiddler || changedAttributes.$filter ||\n\t\tchangedAttributes.$subfilter || changedAttributes.$field ||\n\t\tchangedAttributes.$index || changedAttributes.$tags) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n/**\n * \tInvoke the action associated with this widget\n */\nActionListopsWidget.prototype.invokeAction = function(triggeringWidget,\n\tevent) {\n\t//Apply the specified filters to the lists\n\tvar field = this.listField,\n\t\tindex,\n\t\ttype = \"!!\",\n\t\tlist = this.listField;\n\tif(this.listIndex) {\n\t\tfield = undefined;\n\t\tindex = this.listIndex;\n\t\ttype = \"##\";\n\t\tlist = this.listIndex;\n\t}\n\tif(this.filter) {\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(this.filter, this)));\n\t}\n\tif(this.subfilter) {\n\t\tvar subfilter = \"[list[\" + this.target + type + list + \"]] \" + this.subfilter;\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(subfilter, this)));\n\t}\n\tif(this.filtertags) {\n\t\tvar tiddler = this.wiki.getTiddler(this.target),\n\t\t\toldtags = tiddler ? (tiddler.fields.tags || []).slice(0) : [],\n\t\t\ttagfilter = \"[list[\" + this.target + \"!!tags]] \" + this.filtertags,\n\t\t\tnewtags = this.wiki.filterTiddlers(tagfilter,this);\n\t\tif($tw.utils.stringifyList(oldtags.sort()) !== $tw.utils.stringifyList(newtags.sort())) {\n\t\t\tthis.wiki.setText(this.target,\"tags\",undefined,$tw.utils.stringifyList(newtags));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-listops\"] = ActionListopsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-log.js": {
"title": "$:/core/modules/widgets/action-log.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-log.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to log debug messages\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LogWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLogWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLogWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\nLogWidget.prototype.execute = function(){\n\tthis.message = this.getAttribute(\"$$message\",\"debug\");\n\tthis.logAll = this.getAttribute(\"$$all\",\"no\") === \"yes\" ? true : false;\n\tthis.filter = this.getAttribute(\"$$filter\");\n}\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nLogWidget.prototype.refresh = function(changedTiddlers) {\n\tthis.refreshSelf();\n\treturn true;\n};\n\n/*\nInvoke the action associated with this widget\n*/\nLogWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tthis.log();\n\treturn true; // Action was invoked\n};\n\nLogWidget.prototype.log = function() {\n\tvar data = {},\n\t\tdataCount,\n\t\tallVars = {},\n\t\tfilteredVars;\n\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.substring(0,2) !== \"$$\") {\n\t\t\tdata[name] = attribute;\n\t\t}\t\t\n\t});\n\n\tfor(var v in this.variables) {\n\t\tallVars[v] = this.getVariable(v,{defaultValue:\"\"});\n\t}\t\n\tif(this.filter) {\n\t\tfilteredVars = this.wiki.compileFilter(this.filter).call(this.wiki,this.wiki.makeTiddlerIterator(allVars));\n\t\t$tw.utils.each(filteredVars,function(name) {\n\t\t\tdata[name] = allVars[name];\n\t\t});\t\t\n\t}\n\tdataCount = $tw.utils.count(data);\n\n\tconsole.group(this.message);\n\tif(dataCount > 0) {\n\t\t$tw.utils.logTable(data);\n\t}\n\tif(this.logAll || !dataCount) {\n\t\tconsole.groupCollapsed(\"All variables\");\n\t\t$tw.utils.logTable(allVars);\n\t\tconsole.groupEnd();\n\t}\n\tconsole.groupEnd();\n}\n\nexports[\"action-log\"] = LogWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-navigate.js": {
"title": "$:/core/modules/widgets/action-navigate.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-navigate.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to navigate to a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigateWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigateWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigateWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigateWidget.prototype.execute = function() {\n\tthis.actionTo = this.getAttribute(\"$to\");\n\tthis.actionScroll = this.getAttribute(\"$scroll\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nNavigateWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$to\"] || changedAttributes[\"$scroll\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nNavigateWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tevent = event || {};\n\tvar bounds = triggeringWidget && triggeringWidget.getBoundingClientRect && triggeringWidget.getBoundingClientRect(),\n\t\tsuppressNavigation = event.metaKey || event.ctrlKey || (event.button === 1);\n\tif(this.actionScroll === \"yes\") {\n\t\tsuppressNavigation = false;\n\t} else if(this.actionScroll === \"no\") {\n\t\tsuppressNavigation = true;\n\t}\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.actionTo === undefined ? this.getVariable(\"currentTiddler\") : this.actionTo,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: triggeringWidget,\n\t\tnavigateFromClientRect: bounds && { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: suppressNavigation\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-navigate\"] = NavigateWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-popup.js": {
"title": "$:/core/modules/widgets/action-popup.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-popup.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to trigger a popup.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ActionPopupWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nActionPopupWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nActionPopupWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nActionPopupWidget.prototype.execute = function() {\n\tthis.actionState = this.getAttribute(\"$state\");\n\tthis.actionCoords = this.getAttribute(\"$coords\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nActionPopupWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$state\"] || changedAttributes[\"$coords\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nActionPopupWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Trigger the popup\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(this.actionCoords || \"\");\n\tif(match) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: null,\n\t\t\tdomNodeRect: {\n\t\t\t\tleft: parseFloat(match[1]),\n\t\t\t\ttop: parseFloat(match[2]),\n\t\t\t\twidth: parseFloat(match[3]),\n\t\t\t\theight: parseFloat(match[4])\n\t\t\t},\n\t\t\ttitle: this.actionState,\n\t\t\twiki: this.wiki\n\t\t});\n\t} else {\n\t\t$tw.popup.cancel(0);\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-popup\"] = ActionPopupWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-sendmessage.js": {
"title": "$:/core/modules/widgets/action-sendmessage.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-sendmessage.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to send a message\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SendMessageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSendMessageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSendMessageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSendMessageWidget.prototype.execute = function() {\n\tthis.actionMessage = this.getAttribute(\"$message\");\n\tthis.actionParam = this.getAttribute(\"$param\");\n\tthis.actionName = this.getAttribute(\"$name\");\n\tthis.actionValue = this.getAttribute(\"$value\",\"\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSendMessageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSendMessageWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Get the string parameter\n\tvar param = this.actionParam;\n\t// Assemble the attributes as a hashmap\n\tvar paramObject = Object.create(null);\n\tvar count = 0;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparamObject[name] = attribute;\n\t\t\tcount++;\n\t\t}\n\t});\n\t// Add name/value pair if present\n\tif(this.actionName) {\n\t\tparamObject[this.actionName] = this.actionValue;\n\t}\n\t// Dispatch the message\n\tthis.dispatchEvent({\n\t\ttype: this.actionMessage,\n\t\tparam: param,\n\t\tparamObject: paramObject,\n\t\ttiddlerTitle: this.getVariable(\"currentTiddler\"),\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tevent: event\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-sendmessage\"] = SendMessageWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-setfield.js": {
"title": "$:/core/modules/widgets/action-setfield.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-setfield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to set a single field or index on a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n\tthis.actionIndex = this.getAttribute(\"$index\");\n\tthis.actionValue = this.getAttribute(\"$value\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSetFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"] || changedAttributes[\"$field\"] || changedAttributes[\"$index\"] || changedAttributes[\"$value\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSetFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\toptions = {};\n\toptions.suppressTimestamp = !this.actionTimestamp;\n\tif((typeof this.actionField == \"string\") || (typeof this.actionIndex == \"string\") || (typeof this.actionValue == \"string\")) {\n\t\tthis.wiki.setText(this.actionTiddler,this.actionField,this.actionIndex,this.actionValue,options);\n\t}\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tself.wiki.setText(self.actionTiddler,name,undefined,attribute,options);\n\t\t}\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-setfield\"] = SetFieldWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/browse.js": {
"title": "$:/core/modules/widgets/browse.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/browse.js\ntype: application/javascript\nmodule-type: widget\n\nBrowse widget for browsing for files to import\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar BrowseWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nBrowseWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nBrowseWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"file\");\n\tif(this.browseMultiple) {\n\t\tdomNode.setAttribute(\"multiple\",\"multiple\");\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\t// Nw.js supports \"nwsaveas\" to force a \"save as\" dialogue that allows a new or existing file to be selected\n\tif(this.nwsaveas) {\n\t\tdomNode.setAttribute(\"nwsaveas\",this.nwsaveas);\n\t}\n\tif(this.accept) {\n\t\tdomNode.setAttribute(\"accept\",this.accept);\n\t}\n\t// Nw.js supports \"webkitdirectory\" and \"nwdirectory\" to allow a directory to be selected\n\tif(this.webkitdirectory) {\n\t\tdomNode.setAttribute(\"webkitdirectory\",this.webkitdirectory);\n\t}\n\tif(this.nwdirectory) {\n\t\tdomNode.setAttribute(\"nwdirectory\",this.nwdirectory);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"change\",function (event) {\n\t\tif(self.message) {\n\t\t\tself.dispatchEvent({type: self.message, param: self.param, files: event.target.files});\n\t\t} else {\n\t\t\tself.wiki.readFiles(event.target.files,{\n\t\t\t\tcallback: function(tiddlerFieldsArray) {\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t\t\t},\n\t\t\t\tdeserializer: self.deserializer\n\t\t\t});\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nBrowseWidget.prototype.execute = function() {\n\tthis.browseMultiple = this.getAttribute(\"multiple\");\n\tthis.deserializer = this.getAttribute(\"deserializer\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.nwsaveas = this.getAttribute(\"nwsaveas\");\n\tthis.accept = this.getAttribute(\"accept\");\n\tthis.webkitdirectory = this.getAttribute(\"webkitdirectory\");\n\tthis.nwdirectory = this.getAttribute(\"nwdirectory\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nBrowseWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.browse = BrowseWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/button.js": {
"title": "$:/core/modules/widgets/button.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/button.js\ntype: application/javascript\nmodule-type: widget\n\nButton widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ButtonWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nButtonWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nButtonWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this,\n\t\ttag = \"button\",\n\t\tdomNode;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tif(this.buttonTag && $tw.config.htmlUnsafeElements.indexOf(this.buttonTag) === -1) {\n\t\ttag = this.buttonTag;\n\t}\n\tdomNode = this.document.createElement(tag);\n\tthis.domNode = domNode;\n\t// Assign classes\n\tvar classes = this[\"class\"].split(\" \") || [],\n\t\tisPoppedUp = (this.popup || this.popupTitle) && this.isPoppedUp();\n\tif(this.selectedClass) {\n\t\tif((this.set || this.setTitle) && this.setTo && this.isSelected()) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t\tif(isPoppedUp) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t}\n\tif(isPoppedUp) {\n\t\t$tw.utils.pushTop(classes,\"tc-popup-handle\");\n\t}\n\tdomNode.className = classes.join(\" \");\n\t// Assign other attributes\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Set the tabindex\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\n\tif(this.isDisabled === \"yes\") {\n\t\tdomNode.setAttribute(\"disabled\",true);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"click\",function (event) {\n\t\tvar handled = false;\n\t\tif(self.invokeActions(self,event)) {\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.to) {\n\t\t\tself.navigateTo(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.message) {\n\t\t\tself.dispatchMessage(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.popup || self.popupTitle) {\n\t\t\tself.triggerPopup(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.set || self.setTitle) {\n\t\t\tself.setTiddler();\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.actions) {\n\t\t\tvar modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\n\t\t\tself.invokeActionString(self.actions,self,event,{modifier: modifierKey});\n\t\t}\n\t\tif(handled) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\treturn handled;\n\t},false);\n\t// Make it draggable if required\n\tif(this.dragTiddler || this.dragFilter) {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.dragTiddler;},\n\t\t\tdragFilterFn: function() {return self.dragFilter;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nWe don't allow actions to propagate because we trigger actions ourselves\n*/\nButtonWidget.prototype.allowActionPropagation = function() {\n\treturn false;\n};\n\nButtonWidget.prototype.getBoundingClientRect = function() {\n\treturn this.domNodes[0].getBoundingClientRect();\n};\n\nButtonWidget.prototype.isSelected = function() {\n return this.setTitle ? (this.setField ? this.wiki.getTiddler(this.setTitle).getFieldString(this.setField) === this.setTo :\n\t\t(this.setIndex ? this.wiki.extractTiddlerDataItem(this.setTitle,this.setIndex) === this.setTo :\n\t\t\tthis.wiki.getTiddlerText(this.setTitle))) || this.defaultSetValue || this.getVariable(\"currentTiddler\") :\n\t\tthis.wiki.getTextReference(this.set,this.defaultSetValue,this.getVariable(\"currentTiddler\")) === this.setTo;\n};\n\nButtonWidget.prototype.isPoppedUp = function() {\n\tvar tiddler = this.popupTitle ? this.wiki.getTiddler(this.popupTitle) : this.wiki.getTiddler(this.popup);\n\tvar result = tiddler && tiddler.fields.text ? $tw.popup.readPopupState(tiddler.fields.text) : false;\n\treturn result;\n};\n\nButtonWidget.prototype.navigateTo = function(event) {\n\tvar bounds = this.getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tevent: event\n\t});\n};\n\nButtonWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\"), event: event});\n};\n\nButtonWidget.prototype.triggerPopup = function(event) {\n\tif(this.popupTitle) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNodes[0],\n\t\t\ttitle: this.popupTitle,\n\t\t\twiki: this.wiki,\n\t\t\tnoStateReference: true\n\t\t});\n\t} else {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNodes[0],\n\t\t\ttitle: this.popup,\n\t\t\twiki: this.wiki\n\t\t});\n\t}\n};\n\nButtonWidget.prototype.setTiddler = function() {\n\tif(this.setTitle) {\n\t\tthis.setField ? this.wiki.setText(this.setTitle,this.setField,undefined,this.setTo) :\n\t\t\t\t(this.setIndex ? this.wiki.setText(this.setTitle,undefined,this.setIndex,this.setTo) :\n\t\t\t\tthis.wiki.setText(this.setTitle,\"text\",undefined,this.setTo));\n\t} else {\n\t\tthis.wiki.setTextReference(this.set,this.setTo,this.getVariable(\"currentTiddler\"));\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nButtonWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\");\n\tthis.to = this.getAttribute(\"to\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.set = this.getAttribute(\"set\");\n\tthis.setTo = this.getAttribute(\"setTo\");\n\tthis.popup = this.getAttribute(\"popup\");\n\tthis.hover = this.getAttribute(\"hover\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.style = this.getAttribute(\"style\");\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis.selectedClass = this.getAttribute(\"selectedClass\");\n\tthis.defaultSetValue = this.getAttribute(\"default\",\"\");\n\tthis.buttonTag = this.getAttribute(\"tag\");\n\tthis.dragTiddler = this.getAttribute(\"dragTiddler\");\n\tthis.dragFilter = this.getAttribute(\"dragFilter\");\n\tthis.setTitle = this.getAttribute(\"setTitle\");\n\tthis.setField = this.getAttribute(\"setField\");\n\tthis.setIndex = this.getAttribute(\"setIndex\");\n\tthis.popupTitle = this.getAttribute(\"popupTitle\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\tthis.isDisabled = this.getAttribute(\"disabled\",\"no\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\nButtonWidget.prototype.updateDomNodeClasses = function() {\n\tvar domNodeClasses = this.domNode.className.split(\" \"),\n\t\toldClasses = this.class.split(\" \"),\n\t\tnewClasses;\t\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tnewClasses = this.class.split(\" \");\n\t//Remove classes assigned from the old value of class attribute\n\t$tw.utils.each(oldClasses,function(oldClass){\n\t\tvar i = domNodeClasses.indexOf(oldClass);\n\t\tif(i !== -1) {\n\t\t\tdomNodeClasses.splice(i,1);\n\t\t}\n\t});\n\t//Add new classes from updated class attribute.\n\t$tw.utils.pushTop(domNodeClasses,newClasses);\n\tthis.domNode.className = domNodeClasses.join(\" \");\n}\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nButtonWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.actions || changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes.selectedClass || changedAttributes.style || changedAttributes.dragFilter || changedAttributes.dragTiddler || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup]) || (this.popupTitle && changedTiddlers[this.popupTitle]) || changedAttributes.setTitle || changedAttributes.setField || changedAttributes.setIndex || changedAttributes.popupTitle || changedAttributes.disabled) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedAttributes[\"class\"]) {\n\t\tthis.updateDomNodeClasses();\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.button = ButtonWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/checkbox.js": {
"title": "$:/core/modules/widgets/checkbox.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/checkbox.js\ntype: application/javascript\nmodule-type: widget\n\nCheckbox widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CheckboxWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCheckboxWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCheckboxWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",this.checkboxClass);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"checkbox\");\n\tif(this.getValue()) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tif(this.isDisabled === \"yes\") {\n\t\tthis.inputDomNode.setAttribute(\"disabled\",true);\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nCheckboxWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.checkboxTitle);\n\tif(tiddler) {\n\t\tif(this.checkboxTag) {\n\t\t\tif(this.checkboxInvertTag) {\n\t\t\t\treturn !tiddler.hasTag(this.checkboxTag);\n\t\t\t} else {\n\t\t\t\treturn tiddler.hasTag(this.checkboxTag);\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tvar value;\n\t\t\tif($tw.utils.hop(tiddler.fields,this.checkboxField)) {\n\t\t\t\tvalue = tiddler.fields[this.checkboxField] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.checkboxDefault || \"\";\n\t\t\t}\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxIndex) {\n\t\t\tvar value = this.wiki.extractTiddlerDataItem(tiddler,this.checkboxIndex,this.checkboxDefault || \"\");\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif(this.checkboxTag) {\n\t\t\treturn false;\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tif(this.checkboxDefault === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(this.checkboxDefault === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nCheckboxWidget.prototype.handleChangeEvent = function(event) {\n\tvar checked = this.inputDomNode.checked,\n\t\ttiddler = this.wiki.getTiddler(this.checkboxTitle),\n\t\tfallbackFields = {text: \"\"},\n\t\tnewFields = {title: this.checkboxTitle},\n\t\thasChanged = false,\n\t\ttagCheck = false,\n\t\thasTag = tiddler && tiddler.hasTag(this.checkboxTag),\n\t\tvalue = checked ? this.checkboxChecked : this.checkboxUnchecked;\n\tif(this.checkboxTag && this.checkboxInvertTag === \"yes\") {\n\t\ttagCheck = hasTag === checked;\n\t} else {\n\t\ttagCheck = hasTag !== checked;\n\t}\n\t// Set the tag if specified\n\tif(this.checkboxTag && (!tiddler || tagCheck)) {\n\t\tnewFields.tags = tiddler ? (tiddler.fields.tags || []).slice(0) : [];\n\t\tvar pos = newFields.tags.indexOf(this.checkboxTag);\n\t\tif(pos !== -1) {\n\t\t\tnewFields.tags.splice(pos,1);\n\t\t}\n\t\tif(this.checkboxInvertTag === \"yes\" && !checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t} else if(this.checkboxInvertTag !== \"yes\" && checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t}\n\t\thasChanged = true;\n\t}\n\t// Set the field if specified\n\tif(this.checkboxField) {\n\t\tif(!tiddler || tiddler.fields[this.checkboxField] !== value) {\n\t\t\tnewFields[this.checkboxField] = value;\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\t// Set the index if specified\n\tif(this.checkboxIndex) {\n\t\tvar indexValue = this.wiki.extractTiddlerDataItem(this.checkboxTitle,this.checkboxIndex);\n\t\tif(!tiddler || indexValue !== value) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(hasChanged) {\n\t\tif(this.checkboxIndex) {\n\t\t\tthis.wiki.setText(this.checkboxTitle,\"\",this.checkboxIndex,value);\n\t\t} else {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),fallbackFields,tiddler,newFields,this.wiki.getModificationFields()));\n\t\t}\n\t}\n\t// Trigger actions\n\tif(this.checkboxActions) {\n\t\tthis.invokeActionString(this.checkboxActions,this,event);\n\t}\n\tif(this.checkboxCheckActions && checked) {\n\t\tthis.invokeActionString(this.checkboxCheckActions,this,event);\n\t}\n\tif(this.checkboxUncheckActions && !checked) {\n\t\tthis.invokeActionString(this.checkboxUncheckActions,this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCheckboxWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.checkboxActions = this.getAttribute(\"actions\");\n\tthis.checkboxCheckActions = this.getAttribute(\"checkactions\");\n\tthis.checkboxUncheckActions = this.getAttribute(\"uncheckactions\");\n\tthis.checkboxTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.checkboxTag = this.getAttribute(\"tag\");\n\tthis.checkboxField = this.getAttribute(\"field\");\n\tthis.checkboxIndex = this.getAttribute(\"index\");\n\tthis.checkboxChecked = this.getAttribute(\"checked\");\n\tthis.checkboxUnchecked = this.getAttribute(\"unchecked\");\n\tthis.checkboxDefault = this.getAttribute(\"default\");\n\tthis.checkboxClass = this.getAttribute(\"class\",\"\");\n\tthis.checkboxInvertTag = this.getAttribute(\"invertTag\",\"\");\n\tthis.isDisabled = this.getAttribute(\"disabled\",\"no\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCheckboxWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.tag || changedAttributes.invertTag || changedAttributes.field || changedAttributes.index || changedAttributes.checked || changedAttributes.unchecked || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.disabled) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.checkboxTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue();\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.checkbox = CheckboxWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/codeblock.js": {
"title": "$:/core/modules/widgets/codeblock.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/codeblock.js\ntype: application/javascript\nmodule-type: widget\n\nCode block node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CodeBlockWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCodeBlockWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCodeBlockWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar codeNode = this.document.createElement(\"code\"),\n\t\tdomNode = this.document.createElement(\"pre\");\n\tcodeNode.appendChild(this.document.createTextNode(this.getAttribute(\"code\")));\n\tdomNode.appendChild(codeNode);\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n\tif(this.postRender) {\n\t\tthis.postRender();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCodeBlockWidget.prototype.execute = function() {\n\tthis.language = this.getAttribute(\"language\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCodeBlockWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.codeblock = CodeBlockWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/count.js": {
"title": "$:/core/modules/widgets/count.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/count.js\ntype: application/javascript\nmodule-type: widget\n\nCount widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CountWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCountWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCountWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.currentCount);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nCountWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Execute the filter\n\tif(this.filter) {\n\t\tthis.currentCount = this.wiki.filterTiddlers(this.filter,this).length;\n\t} else {\n\t\tthis.currentCount = \"0\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCountWidget.prototype.refresh = function(changedTiddlers) {\n\t// Re-execute the filter to get the count\n\tthis.computeAttributes();\n\tvar oldCount = this.currentCount;\n\tthis.execute();\n\tif(this.currentCount !== oldCount) {\n\t\t// Regenerate and rerender the widget and replace the existing DOM node\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n\n};\n\nexports.count = CountWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/diff-text.js": {
"title": "$:/core/modules/widgets/diff-text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/diff-text.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display a diff between two texts\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget,\n\tdmp = require(\"$:/core/modules/utils/diff-match-patch/diff_match_patch.js\");\n\nvar DiffTextWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDiffTextWidget.prototype = new Widget();\n\nDiffTextWidget.prototype.invisibleCharacters = {\n\t\"\\n\": \"↩︎\\n\",\n\t\"\\r\": \"⇠\",\n\t\"\\t\": \"⇥\\t\"\n};\n\n/*\nRender this widget into the DOM\n*/\nDiffTextWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create the diff\n\tvar dmpObject = new dmp.diff_match_patch(),\n\t\tdiffs = dmpObject.diff_main(this.getAttribute(\"source\"),this.getAttribute(\"dest\"));\n\t// Apply required cleanup\n\tswitch(this.getAttribute(\"cleanup\",\"semantic\")) {\n\t\tcase \"none\":\n\t\t\t// No cleanup\n\t\t\tbreak;\n\t\tcase \"efficiency\":\n\t\t\tdmpObject.diff_cleanupEfficiency(diffs);\n\t\t\tbreak;\n\t\tdefault: // case \"semantic\"\n\t\t\tdmpObject.diff_cleanupSemantic(diffs);\n\t\t\tbreak;\n\t}\n\t// Create the elements\n\tvar domContainer = this.document.createElement(\"div\"), \n\t\tdomDiff = this.createDiffDom(diffs);\n\tparent.insertBefore(domContainer,nextSibling);\n\t// Set variables\n\tthis.setVariable(\"diff-count\",diffs.reduce(function(acc,diff) {\n\t\tif(diff[0] !== dmp.DIFF_EQUAL) {\n\t\t\tacc++;\n\t\t}\n\t\treturn acc;\n\t},0).toString());\n\t// Render child widgets\n\tthis.renderChildren(domContainer,null);\n\t// Render the diff\n\tdomContainer.appendChild(domDiff);\n\t// Save our container\n\tthis.domNodes.push(domContainer);\n};\n\n/*\nCreate DOM elements representing a list of diffs\n*/\nDiffTextWidget.prototype.createDiffDom = function(diffs) {\n\tvar self = this;\n\t// Create the element and assign the attributes\n\tvar domPre = this.document.createElement(\"pre\"),\n\t\tdomCode = this.document.createElement(\"code\");\n\t$tw.utils.each(diffs,function(diff) {\n\t\tvar tag = diff[0] === dmp.DIFF_INSERT ? \"ins\" : (diff[0] === dmp.DIFF_DELETE ? \"del\" : \"span\"),\n\t\t\tclassName = diff[0] === dmp.DIFF_INSERT ? \"tc-diff-insert\" : (diff[0] === dmp.DIFF_DELETE ? \"tc-diff-delete\" : \"tc-diff-equal\"),\n\t\t\tdom = self.document.createElement(tag),\n\t\t\ttext = diff[1],\n\t\t\tcurrPos = 0,\n\t\t\tre = /([\\x00-\\x1F])/mg,\n\t\t\tmatch = re.exec(text),\n\t\t\tspan,\n\t\t\tprintable;\n\t\tdom.className = className;\n\t\twhile(match) {\n\t\t\tif(currPos < match.index) {\n\t\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos,match.index)));\n\t\t\t}\n\t\t\tspan = self.document.createElement(\"span\");\n\t\t\tspan.className = \"tc-diff-invisible\";\n\t\t\tprintable = self.invisibleCharacters[match[0]] || (\"[0x\" + match[0].charCodeAt(0).toString(16) + \"]\");\n\t\t\tspan.appendChild(self.document.createTextNode(printable));\n\t\t\tdom.appendChild(span);\n\t\t\tcurrPos = match.index + match[0].length;\n\t\t\tmatch = re.exec(text);\n\t\t}\n\t\tif(currPos < text.length) {\n\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos)));\n\t\t}\n\t\tdomCode.appendChild(dom);\n\t});\n\tdomPre.appendChild(domCode);\n\treturn domPre;\n};\n\n/*\nCompute the internal state of the widget\n*/\nDiffTextWidget.prototype.execute = function() {\n\t// Make child widgets\n\tvar parseTreeNodes;\n\tif(this.parseTreeNode && this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\tparseTreeNodes = this.parseTreeNode.children;\n\t} else {\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: \"$:/language/Diffs/CountMessage\"}\n\t\t\t}\n\t\t}];\n\t}\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDiffTextWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.dest || changedAttributes.cleanup) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports[\"diff-text\"] = DiffTextWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/draggable.js": {
"title": "$:/core/modules/widgets/draggable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/draggable.js\ntype: application/javascript\nmodule-type: widget\n\nDraggable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DraggableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDraggableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDraggableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Sanitise the specified tag\n\tvar tag = this.draggableTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"div\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [\"tc-draggable\"];\n\tif(this.draggableClasses) {\n\t\tclasses.push(this.draggableClasses);\n\t}\n\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t// Add event handlers\n\t$tw.utils.makeDraggable({\n\t\tdomNode: domNode,\n\t\tdragTiddlerFn: function() {return self.getAttribute(\"tiddler\");},\n\t\tdragFilterFn: function() {return self.getAttribute(\"filter\");},\n\t\tstartActions: self.startActions,\n\t\tendActions: self.endActions,\n\t\twidget: this\n\t});\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nDraggableWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.draggableTag = this.getAttribute(\"tag\",\"div\");\n\tthis.draggableClasses = this.getAttribute(\"class\");\n\tthis.startActions = this.getAttribute(\"startactions\");\n\tthis.endActions = this.getAttribute(\"endactions\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDraggableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tag || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.draggable = DraggableWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/droppable.js": {
"title": "$:/core/modules/widgets/droppable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/droppable.js\ntype: application/javascript\nmodule-type: widget\n\nDroppable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DroppableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDroppableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDroppableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this,\n\t\ttag = this.parseTreeNode.isBlock ? \"div\" : \"span\",\n\t\tdomNode;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tif(this.droppableTag && $tw.config.htmlUnsafeElements.indexOf(this.droppableTag) === -1) {\n\t\ttag = this.droppableTag;\n\t}\n\t// Create element and assign classes\n\tdomNode = this.document.createElement(tag);\n\tthis.domNode = domNode;\n\tthis.assignDomNodeClasses();\n\t// Add event handlers\n\tif(this.droppableEnable) {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"}\n\t\t]);\t\t\n\t} else {\n\t\t$tw.utils.addClass(this.domNode,this.disabledClass);\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDroppableWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDroppableWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally. The hacky second condition is to resolve a problem with Firefox whereby there is an erroneous dragenter event if the node being dragged is within the dropzone\n\tif(this.currentlyEntered.length === 0 || (this.currentlyEntered.length === 1 && this.currentlyEntered[0] === $tw.dragInProgress)) {\n\t\tthis.currentlyEntered = [];\n\t\tif(this.domNodes[0]) {\n\t\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t\t}\n\t}\n};\n\nDroppableWidget.prototype.handleDragEnterEvent = function(event) {\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragOverEvent = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\t// Set the drop effect\n\tevent.dataTransfer.dropEffect = this.droppableEffect;\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragLeaveEvent = function(event) {\n\tthis.leaveDrag(event);\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDropEvent = function(event) {\n\tvar self = this;\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\tvar dataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Try to import the various data types we understand\n\t$tw.utils.importDataTransfer(dataTransfer,null,function(fieldsArray) {\n\t\tfieldsArray.forEach(function(fields) {\n\t\t\tself.performActions(fields.title || fields.text,event);\n\t\t});\n\t});\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.performActions = function(title,event) {\n\tif(this.droppableActions) {\n\t\tvar modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\n\t\tthis.invokeActionString(this.droppableActions,this,event,{actionTiddler: title, modifier: modifierKey});\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDroppableWidget.prototype.execute = function() {\n\tthis.droppableActions = this.getAttribute(\"actions\");\n\tthis.droppableEffect = this.getAttribute(\"effect\",\"copy\");\n\tthis.droppableTag = this.getAttribute(\"tag\");\n\tthis.droppableEnable = (this.getAttribute(\"enable\") || \"yes\") === \"yes\";\n\tthis.disabledClass = this.getAttribute(\"disabledClass\",\"\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\nDroppableWidget.prototype.assignDomNodeClasses = function() {\n\tvar classes = this.getAttribute(\"class\",\"\").split(\" \");\n\tclasses.push(\"tc-droppable\");\n\tthis.domNode.className = classes.join(\" \");\t\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDroppableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tag || changedAttributes.enable || changedAttributes.disabledClass || changedAttributes.actions || changedAttributes.effect) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedAttributes[\"class\"]) {\n\t\tthis.assignDomNodeClasses();\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.droppable = DroppableWidget;\n\n})();",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/dropzone.js": {
"title": "$:/core/modules/widgets/dropzone.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/dropzone.js\ntype: application/javascript\nmodule-type: widget\n\nDropzone widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DropZoneWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDropZoneWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDropZoneWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"div\");\n\tdomNode.className = this.dropzoneClass || \"tc-dropzone\";\n\t// Add event handlers\n\tif(this.dropzoneEnable) {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"},\n\t\t\t{name: \"paste\", handlerObject: this, handlerMethod: \"handlePasteEvent\"},\n\t\t\t{name: \"dragend\", handlerObject: this, handlerMethod: \"handleDragEndEvent\"}\n\t\t]);\t\t\n\t}\n\tdomNode.addEventListener(\"click\",function (event) {\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDropZoneWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally\n\tif(this.currentlyEntered.length === 0) {\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDropZoneWidget.prototype.handleDragEnterEvent = function(event) {\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handleDragOverEvent = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\tevent.dataTransfer.dropEffect = \"copy\"; // Explicitly show this is a copy\n};\n\nDropZoneWidget.prototype.handleDragLeaveEvent = function(event) {\n\tthis.leaveDrag(event);\n};\n\nDropZoneWidget.prototype.handleDragEndEvent = function(event) {\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.handleDropEvent = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray), autoOpenOnImport: self.autoOpenOnImport, importTitle: self.importTitle});\n\t\t};\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tvar self = this,\n\t\tdataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Import any files in the drop\n\tvar numFiles = 0;\n\tif(dataTransfer.files) {\n\t\tnumFiles = this.wiki.readFiles(dataTransfer.files,{\n\t\t\tcallback: readFileCallback,\n\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t});\n\t}\n\t// Try to import the various data types we understand\n\tif(numFiles === 0) {\n\t\t$tw.utils.importDataTransfer(dataTransfer,this.wiki.generateNewTitle(\"Untitled\"),readFileCallback);\n\t}\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handlePasteEvent = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray), autoOpenOnImport: self.autoOpenOnImport, importTitle: self.importTitle});\n\t\t};\n\t// Let the browser handle it if we're in a textarea or input box\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) == -1 && !event.target.isContentEditable) {\n\t\tvar self = this,\n\t\t\titems = event.clipboardData.items;\n\t\t// Enumerate the clipboard items\n\t\tfor(var t = 0; t<items.length; t++) {\n\t\t\tvar item = items[t];\n\t\t\tif(item.kind === \"file\") {\n\t\t\t\t// Import any files\n\t\t\t\tthis.wiki.readFile(item.getAsFile(),{\n\t\t\t\t\tcallback: readFileCallback,\n\t\t\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t\t\t});\n\t\t\t} else if(item.kind === \"string\") {\n\t\t\t\t// Create tiddlers from string items\n\t\t\t\tvar type = item.type;\n\t\t\t\titem.getAsString(function(str) {\n\t\t\t\t\tvar tiddlerFields = {\n\t\t\t\t\t\ttitle: self.wiki.generateNewTitle(\"Untitled\"),\n\t\t\t\t\t\ttext: str,\n\t\t\t\t\t\ttype: type\n\t\t\t\t\t};\n\t\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\t\tconsole.log(\"Importing string '\" + str + \"', type: '\" + type + \"'\");\n\t\t\t\t\t}\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify([tiddlerFields]), autoOpenOnImport: self.autoOpenOnImport, importTitle: self.importTitle});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t// Tell the browser that we've handled the paste\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDropZoneWidget.prototype.execute = function() {\n\tthis.dropzoneClass = this.getAttribute(\"class\");\n\tthis.dropzoneDeserializer = this.getAttribute(\"deserializer\");\n\tthis.dropzoneEnable = (this.getAttribute(\"enable\") || \"yes\") === \"yes\";\n\tthis.autoOpenOnImport = this.getAttribute(\"autoOpenOnImport\");\n\tthis.importTitle = this.getAttribute(\"importTitle\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDropZoneWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.enable || changedAttributes.autoOpenOnImport || changedAttributes.importTitle || changedAttributes.deserializer || changedAttributes.class) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.dropzone = DropZoneWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-binary.js": {
"title": "$:/core/modules/widgets/edit-binary.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-binary.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-binary widget; placeholder for editing binary tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\nvar EXPORT_BUTTON_IMAGE = \"$:/core/images/export-button\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBinaryWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBinaryWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBinaryWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBinaryWidget.prototype.execute = function() {\n\t// Get our parameters\n\tvar editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tvar tiddler = this.wiki.getTiddler(editTitle);\n\tvar type = tiddler.fields.type;\n\tvar text = tiddler.fields.text;\n\t// Transclude the binary data tiddler warning message\n\tvar warn = {\n\t\ttype: \"element\",\n\t\ttag: \"p\",\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Create download link based on draft tiddler title\n\tvar link = {\n\t\ttype: \"element\",\n\t\ttag: \"a\",\n\t\tattributes: {\n\t\t\ttitle: {type: \"indirect\", textReference: \"!!draft.title\"},\n\t\t\tdownload: {type: \"indirect\", textReference: \"!!draft.title\"}\n\t\t},\n\t\tchildren: [{\n\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: EXPORT_BUTTON_IMAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Set the link href to internal data URI (no external)\n\tif(text) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: \"data:\" + type + \";base64,\" + text\n\t\t};\n\t}\n\t// Combine warning message and download link in a div\n\tvar element = {\n\t\ttype: \"element\",\n\t\ttag: \"div\",\n\t\tattributes: {\n\t\t\tclass: {type: \"string\", value: \"tc-binary-warning\"}\n\t\t},\n\t\tchildren: [warn, link]\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets([element]);\n};\n\n/*\nRefresh by refreshing our child widget\n*/\nEditBinaryWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"edit-binary\"] = EditBinaryWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-bitmap.js": {
"title": "$:/core/modules/widgets/edit-bitmap.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-bitmap.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-bitmap widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Default image sizes\nvar DEFAULT_IMAGE_WIDTH = 600,\n\tDEFAULT_IMAGE_HEIGHT = 370,\n\tDEFAULT_IMAGE_TYPE = \"image/png\";\n\n// Configuration tiddlers\nvar LINE_WIDTH_TITLE = \"$:/config/BitmapEditor/LineWidth\",\n\tLINE_COLOUR_TITLE = \"$:/config/BitmapEditor/Colour\",\n\tLINE_OPACITY_TITLE = \"$:/config/BitmapEditor/Opacity\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBitmapWidget = function(parseTreeNode,options) {\n\t// Initialise the editor operations if they've not been done already\n\tif(!this.editorOperations) {\n\t\tEditBitmapWidget.prototype.editorOperations = {};\n\t\t$tw.modules.applyMethods(\"bitmapeditoroperation\",this.editorOperations);\n\t}\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBitmapWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBitmapWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create the wrapper for the toolbar and render its content\n\tthis.toolbarNode = this.document.createElement(\"div\");\n\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\tparent.insertBefore(this.toolbarNode,nextSibling);\n\tthis.domNodes.push(this.toolbarNode);\n\t// Create the on-screen canvas\n\tthis.canvasDomNode = $tw.utils.domMaker(\"canvas\",{\n\t\tdocument: this.document,\n\t\t\"class\":\"tc-edit-bitmapeditor\",\n\t\teventListeners: [{\n\t\t\tname: \"touchstart\", handlerObject: this, handlerMethod: \"handleTouchStartEvent\"\n\t\t},{\n\t\t\tname: \"touchmove\", handlerObject: this, handlerMethod: \"handleTouchMoveEvent\"\n\t\t},{\n\t\t\tname: \"touchend\", handlerObject: this, handlerMethod: \"handleTouchEndEvent\"\n\t\t},{\n\t\t\tname: \"mousedown\", handlerObject: this, handlerMethod: \"handleMouseDownEvent\"\n\t\t},{\n\t\t\tname: \"mousemove\", handlerObject: this, handlerMethod: \"handleMouseMoveEvent\"\n\t\t},{\n\t\t\tname: \"mouseup\", handlerObject: this, handlerMethod: \"handleMouseUpEvent\"\n\t\t}]\n\t});\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Render toolbar child widgets\n\tthis.renderChildren(this.toolbarNode,null);\n\t// // Insert the elements into the DOM\n\tparent.insertBefore(this.canvasDomNode,nextSibling);\n\tthis.domNodes.push(this.canvasDomNode);\n\t// Load the image into the canvas\n\tif($tw.browser) {\n\t\tthis.loadCanvas();\n\t}\n\t// Add widget message listeners\n\tthis.addEventListeners([\n\t\t{type: \"tm-edit-bitmap-operation\", handler: \"handleEditBitmapOperationMessage\"}\n\t]);\n};\n\n/*\nHandle an edit bitmap operation message from the toolbar\n*/\nEditBitmapWidget.prototype.handleEditBitmapOperationMessage = function(event) {\n\t// Invoke the handler\n\tvar handler = this.editorOperations[event.param];\n\tif(handler) {\n\t\thandler.call(this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBitmapWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nJust refresh the toolbar\n*/\nEditBitmapWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nSet the bitmap size variables and refresh the toolbar\n*/\nEditBitmapWidget.prototype.refreshToolbar = function() {\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Refresh each of our child widgets\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\tchildWidget.refreshSelf();\n\t});\n};\n\nEditBitmapWidget.prototype.loadCanvas = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle),\n\t\tcurrImage = new Image();\n\t// Set up event handlers for loading the image\n\tvar self = this;\n\tcurrImage.onload = function() {\n\t\t// Copy the image to the on-screen canvas\n\t\tself.initCanvas(self.canvasDomNode,currImage.width,currImage.height,currImage);\n\t\t// And also copy the current bitmap to the off-screen canvas\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,currImage.width,currImage.height,currImage);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\tcurrImage.onerror = function() {\n\t\t// Set the on-screen canvas size and clear it\n\t\tself.initCanvas(self.canvasDomNode,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the off-screen canvas size and clear it\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\t// Get the current bitmap into an image object\n\tif(tiddler && tiddler.fields.type && tiddler.fields.text) {\n\t\tcurrImage.src = \"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text;\t\t\n\t} else {\n\t\tcurrImage.width = DEFAULT_IMAGE_WIDTH;\n\t\tcurrImage.height = DEFAULT_IMAGE_HEIGHT;\n\t\tcurrImage.onerror();\n\t}\n};\n\nEditBitmapWidget.prototype.initCanvas = function(canvas,width,height,image) {\n\tcanvas.width = width;\n\tcanvas.height = height;\n\tvar ctx = canvas.getContext(\"2d\");\n\tif(image) {\n\t\tctx.drawImage(image,0,0);\n\t} else {\n\t\tctx.fillStyle = \"#fff\";\n\t\tctx.fillRect(0,0,canvas.width,canvas.height);\n\t}\n};\n\n/*\n** Change the size of the canvas, preserving the current image\n*/\nEditBitmapWidget.prototype.changeCanvasSize = function(newWidth,newHeight) {\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\");\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\n/*\n** Rotate the canvas left by 90 degrees\n*/\nEditBitmapWidget.prototype.rotateCanvasLeft = function() {\n\t// Get the current size of the image\n\tvar origWidth = this.currCanvas.width,\n\t\torigHeight = this.currCanvas.height;\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\"),\n\t\tnewWidth = origHeight,\n\t\tnewHeight = origWidth;\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.save();\n\tctx.translate(newWidth / 2,newHeight / 2);\n\tctx.rotate(-Math.PI / 2);\n\tctx.drawImage(this.currCanvas,-origWidth / 2,-origHeight / 2);\n\tctx.restore();\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\nEditBitmapWidget.prototype.handleTouchStartEvent = function(event) {\n\tthis.brushDown = true;\n\tthis.strokeStart(event.touches[0].clientX,event.touches[0].clientY);\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.touches[0].clientX,event.touches[0].clientY);\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchEndEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseDownEvent = function(event) {\n\tthis.strokeStart(event.clientX,event.clientY);\n\tthis.brushDown = true;\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.clientX,event.clientY);\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.handleMouseUpEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.adjustCoordinates = function(x,y) {\n\tvar canvasRect = this.canvasDomNode.getBoundingClientRect(),\n\t\tscale = this.canvasDomNode.width/canvasRect.width;\n\treturn {x: (x - canvasRect.left) * scale, y: (y - canvasRect.top) * scale};\n};\n\nEditBitmapWidget.prototype.strokeStart = function(x,y) {\n\t// Start off a new stroke\n\tthis.stroke = [this.adjustCoordinates(x,y)];\n};\n\nEditBitmapWidget.prototype.strokeMove = function(x,y) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\"),\n\t\tt;\n\t// Add the new position to the end of the stroke\n\tthis.stroke.push(this.adjustCoordinates(x,y));\n\t// Redraw the previous image\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Render the stroke\n\tctx.globalAlpha = parseFloat(this.wiki.getTiddlerText(LINE_OPACITY_TITLE,\"1.0\"));\n\tctx.strokeStyle = this.wiki.getTiddlerText(LINE_COLOUR_TITLE,\"#ff0\");\n\tctx.lineWidth = parseFloat(this.wiki.getTiddlerText(LINE_WIDTH_TITLE,\"3\"));\n\tctx.lineCap = \"round\";\n\tctx.lineJoin = \"round\";\n\tctx.beginPath();\n\tctx.moveTo(this.stroke[0].x,this.stroke[0].y);\n\tfor(t=1; t<this.stroke.length-1; t++) {\n\t\tvar s1 = this.stroke[t],\n\t\t\ts2 = this.stroke[t-1],\n\t\t\ttx = (s1.x + s2.x)/2,\n\t\t\tty = (s1.y + s2.y)/2;\n\t\tctx.quadraticCurveTo(s2.x,s2.y,tx,ty);\n\t}\n\tctx.stroke();\n};\n\nEditBitmapWidget.prototype.strokeEnd = function() {\n\t// Copy the bitmap to the off-screen canvas\n\tvar ctx = this.currCanvas.getContext(\"2d\");\n\tctx.drawImage(this.canvasDomNode,0,0);\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\nEditBitmapWidget.prototype.saveChanges = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle) || new $tw.Tiddler({title: this.editTitle,type: DEFAULT_IMAGE_TYPE});\n\t// data URIs look like \"data:<type>;base64,<text>\"\n\tvar dataURL = this.canvasDomNode.toDataURL(tiddler.fields.type),\n\t\tposColon = dataURL.indexOf(\":\"),\n\t\tposSemiColon = dataURL.indexOf(\";\"),\n\t\tposComma = dataURL.indexOf(\",\"),\n\t\ttype = dataURL.substring(posColon+1,posSemiColon),\n\t\ttext = dataURL.substring(posComma+1);\n\tvar update = {type: type, text: text};\n\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,update,this.wiki.getCreationFields()));\n};\n\nexports[\"edit-bitmap\"] = EditBitmapWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-shortcut.js": {
"title": "$:/core/modules/widgets/edit-shortcut.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-shortcut.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display an editable keyboard shortcut\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditShortcutWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditShortcutWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditShortcutWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.inputNode = this.document.createElement(\"input\");\n\t// Assign classes\n\tif(this.shortcutClass) {\n\t\tthis.inputNode.className = this.shortcutClass;\t\t\n\t}\n\t// Assign other attributes\n\tif(this.shortcutStyle) {\n\t\tthis.inputNode.setAttribute(\"style\",this.shortcutStyle);\n\t}\n\tif(this.shortcutTooltip) {\n\t\tthis.inputNode.setAttribute(\"title\",this.shortcutTooltip);\n\t}\n\tif(this.shortcutPlaceholder) {\n\t\tthis.inputNode.setAttribute(\"placeholder\",this.shortcutPlaceholder);\n\t}\n\tif(this.shortcutAriaLabel) {\n\t\tthis.inputNode.setAttribute(\"aria-label\",this.shortcutAriaLabel);\n\t}\n\t// Assign the current shortcut\n\tthis.updateInputNode();\n\t// Add event handlers\n\t$tw.utils.addEventListeners(this.inputNode,[\n\t\t{name: \"keydown\", handlerObject: this, handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Link into the DOM\n\tparent.insertBefore(this.inputNode,nextSibling);\n\tthis.domNodes.push(this.inputNode);\n\t// Focus the input Node if focus === \"yes\" or focus === \"true\"\n\tif(this.shortcutFocus === \"yes\" || this.shortcutFocus === \"true\") {\n\t\tthis.focus();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditShortcutWidget.prototype.execute = function() {\n\tthis.shortcutTiddler = this.getAttribute(\"tiddler\");\n\tthis.shortcutField = this.getAttribute(\"field\");\n\tthis.shortcutIndex = this.getAttribute(\"index\");\n\tthis.shortcutPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.shortcutDefault = this.getAttribute(\"default\",\"\");\n\tthis.shortcutClass = this.getAttribute(\"class\");\n\tthis.shortcutStyle = this.getAttribute(\"style\");\n\tthis.shortcutTooltip = this.getAttribute(\"tooltip\");\n\tthis.shortcutAriaLabel = this.getAttribute(\"aria-label\");\n\tthis.shortcutFocus = this.getAttribute(\"focus\");\n};\n\n/*\nUpdate the value of the input node\n*/\nEditShortcutWidget.prototype.updateInputNode = function() {\n\tif(this.shortcutField) {\n\t\tvar tiddler = this.wiki.getTiddler(this.shortcutTiddler);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,this.shortcutField)) {\n\t\t\tthis.inputNode.value = tiddler.getFieldString(this.shortcutField);\n\t\t} else {\n\t\t\tthis.inputNode.value = this.shortcutDefault;\n\t\t}\n\t} else if(this.shortcutIndex) {\n\t\tthis.inputNode.value = this.wiki.extractTiddlerDataItem(this.shortcutTiddler,this.shortcutIndex,this.shortcutDefault);\n\t} else {\n\t\tthis.inputNode.value = this.wiki.getTiddlerText(this.shortcutTiddler,this.shortcutDefault);\n\t}\n};\n\n/*\nHandle a dom \"keydown\" event\n*/\nEditShortcutWidget.prototype.handleKeydownEvent = function(event) {\n\t// Ignore shift, ctrl, meta, alt\n\tif(event.keyCode && $tw.keyboardManager.getModifierKeys().indexOf(event.keyCode) === -1) {\n\t\t// Get the shortcut text representation\n\t\tvar value = $tw.keyboardManager.getPrintableShortcuts([{\n\t\t\tctrlKey: event.ctrlKey,\n\t\t\tshiftKey: event.shiftKey,\n\t\t\taltKey: event.altKey,\n\t\t\tmetaKey: event.metaKey,\n\t\t\tkeyCode: event.keyCode\n\t\t}]);\n\t\tif(value.length > 0) {\n\t\t\tthis.wiki.setText(this.shortcutTiddler,this.shortcutField,this.shortcutIndex,value[0]);\n\t\t}\n\t\t// Ignore the keydown if it was already handled\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn true;\t\t\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nfocus the input node\n*/\nEditShortcutWidget.prototype.focus = function() {\n\tif(this.inputNode.focus && this.inputNode.select) {\n\t\tthis.inputNode.focus();\n\t\tthis.inputNode.select();\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget needed re-rendering\n*/\nEditShortcutWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.placeholder || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.style || changedAttributes.tooltip || changedAttributes[\"aria-label\"] || changedAttributes.focus) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedTiddlers[this.shortcutTiddler]) {\n\t\tthis.updateInputNode();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports[\"edit-shortcut\"] = EditShortcutWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-text.js": {
"title": "$:/core/modules/widgets/edit-text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-text.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-text widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar editTextWidgetFactory = require(\"$:/core/modules/editor/factory.js\").editTextWidgetFactory,\n\tFramedEngine = require(\"$:/core/modules/editor/engines/framed.js\").FramedEngine,\n\tSimpleEngine = require(\"$:/core/modules/editor/engines/simple.js\").SimpleEngine;\n\nexports[\"edit-text\"] = editTextWidgetFactory(FramedEngine,SimpleEngine);\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit.js": {
"title": "$:/core/modules/widgets/edit.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit.js\ntype: application/javascript\nmodule-type: widget\n\nEdit widget is a meta-widget chooses the appropriate actual editting widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n// Mappings from content type to editor type are stored in tiddlers with this prefix\nvar EDITOR_MAPPING_PREFIX = \"$:/config/EditorTypeMappings/\";\n\n/*\nCompute the internal state of the widget\n*/\nEditWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.editField = this.getAttribute(\"field\",\"text\");\n\tthis.editIndex = this.getAttribute(\"index\");\n\tthis.editClass = this.getAttribute(\"class\");\n\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.editTabIndex = this.getAttribute(\"tabindex\");\n\tthis.editFocus = this.getAttribute(\"focus\",\"\");\n\tthis.editCancelPopups = this.getAttribute(\"cancelPopups\",\"\");\n\tthis.editInputActions = this.getAttribute(\"inputActions\");\n\tthis.editRefreshTitle = this.getAttribute(\"refreshTitle\");\n\tthis.editAutoComplete = this.getAttribute(\"autocomplete\");\n\t// Choose the appropriate edit widget\n\tthis.editorType = this.getEditorType();\n\t// Make the child widgets\n\tthis.makeChildWidgets([{\n\t\ttype: \"edit-\" + this.editorType,\n\t\tattributes: this.parseTreeNode.attributes,\n\t\tchildren: this.parseTreeNode.children\n\t}]);\n};\n\nEditWidget.prototype.getEditorType = function() {\n\t// Get the content type of the thing we're editing\n\tvar type;\n\tif(this.editField === \"text\") {\n\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\tif(tiddler) {\n\t\t\ttype = tiddler.fields.type;\n\t\t}\n\t}\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar editorType = this.wiki.getTiddlerText(EDITOR_MAPPING_PREFIX + type);\n\tif(!editorType) {\n\t\tvar typeInfo = $tw.config.contentTypeInfo[type];\n\t\tif(typeInfo && typeInfo.encoding === \"base64\") {\n\t\t\teditorType = \"binary\";\n\t\t} else {\n\t\t\teditorType = \"text\";\n\t\t}\n\t}\n\treturn editorType;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEditWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh if an attribute has changed, or the type associated with the target tiddler has changed\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.tabindex || changedAttributes.cancelPopups || changedAttributes.inputActions || changedAttributes.refreshTitle || changedAttributes.autocomplete || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.edit = EditWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/element.js": {
"title": "$:/core/modules/widgets/element.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/element.js\ntype: application/javascript\nmodule-type: widget\n\nElement widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ElementWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nElementWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nElementWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\t// Neuter blacklisted elements\n\tthis.tag = this.parseTreeNode.tag;\n\tif($tw.config.htmlUnsafeElements.indexOf(this.tag) !== -1) {\n\t\tthis.tag = \"safe-\" + this.tag;\n\t}\n\t// Adjust headings by the current base level\n\tvar headingLevel = [\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"].indexOf(this.tag);\n\tif(headingLevel !== -1) {\n\t\tvar baseLevel = parseInt(this.getVariable(\"tv-adjust-heading-level\",\"0\"),10) || 0;\n\t\theadingLevel = Math.min(Math.max(headingLevel + 1 + baseLevel,1),6);\n\t\tthis.tag = \"h\" + headingLevel;\n\t}\n\t// Select the namespace for the tag\n\tvar tagNamespaces = {\n\t\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\t\tmath: \"http://www.w3.org/1998/Math/MathML\",\n\t\t\tbody: \"http://www.w3.org/1999/xhtml\"\n\t\t};\n\tthis.namespace = tagNamespaces[this.tag];\n\tif(this.namespace) {\n\t\tthis.setVariable(\"namespace\",this.namespace);\n\t} else {\n\t\tthis.namespace = this.getVariable(\"namespace\",{defaultValue: \"http://www.w3.org/1999/xhtml\"});\n\t}\n\t// Invoke the th-rendering-element hook\n\tvar parseTreeNodes = $tw.hooks.invokeHook(\"th-rendering-element\",null,this);\n\tthis.isReplaced = !!parseTreeNodes;\n\tif(parseTreeNodes) {\n\t\t// Use the parse tree nodes provided by the hook\n\t\tthis.makeChildWidgets(parseTreeNodes);\n\t\tthis.renderChildren(this.parentDomNode,null);\n\t\treturn;\n\t}\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n\t// Create the DOM node and render children\n\tvar domNode = this.document.createElementNS(this.namespace,this.tag);\n\tthis.assignAttributes(domNode,{excludeEventAttributes: true});\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nElementWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\thasChangedAttributes = $tw.utils.count(changedAttributes) > 0;\n\tif(hasChangedAttributes) {\n\t\tif(!this.isReplaced) {\n\t\t\t// Update our attributes\n\t\t\tthis.assignAttributes(this.domNodes[0],{excludeEventAttributes: true});\t\t\t\n\t\t} else {\n\t\t\t// If we were replaced then completely refresh ourselves\n\t\t\treturn this.refreshSelf();\n\t\t}\n\t}\n\treturn this.refreshChildren(changedTiddlers) || hasChangedAttributes;\n};\n\nexports.element = ElementWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/encrypt.js": {
"title": "$:/core/modules/widgets/encrypt.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/encrypt.js\ntype: application/javascript\nmodule-type: widget\n\nEncrypt widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EncryptWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEncryptWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEncryptWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.encryptedText);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEncryptWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\",\"[!is[system]]\");\n\t// Encrypt the filtered tiddlers\n\tvar tiddlers = this.wiki.filterTiddlers(this.filter),\n\t\tjson = {},\n\t\tself = this;\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title),\n\t\t\tjsonTiddler = {};\n\t\tfor(var f in tiddler.fields) {\n\t\t\tjsonTiddler[f] = tiddler.getFieldString(f);\n\t\t}\n\t\tjson[title] = jsonTiddler;\n\t});\n\tthis.encryptedText = $tw.utils.htmlEncode($tw.crypto.encrypt(JSON.stringify(json)));\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEncryptWidget.prototype.refresh = function(changedTiddlers) {\n\t// We don't need to worry about refreshing because the encrypt widget isn't for interactive use\n\treturn false;\n};\n\nexports.encrypt = EncryptWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/entity.js": {
"title": "$:/core/modules/widgets/entity.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/entity.js\ntype: application/javascript\nmodule-type: widget\n\nHTML entity widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EntityWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEntityWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEntityWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar entityString = this.getAttribute(\"entity\",this.parseTreeNode.entity || \"\"),\n\t\ttextNode = this.document.createTextNode($tw.utils.entityDecode(entityString));\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEntityWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEntityWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.entity) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.entity = EntityWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/eventcatcher.js": {
"title": "$:/core/modules/widgets/eventcatcher.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/eventcatcher.js\ntype: application/javascript\nmodule-type: widget\n\nEvent handler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EventWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEventWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEventWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.elementTag && $tw.config.htmlUnsafeElements.indexOf(this.elementTag) === -1) {\n\t\ttag = this.elementTag;\n\t}\t\n\tvar domNode = this.document.createElement(tag);\n\tthis.domNode = domNode;\n\t// Assign classes\n\tthis.assignDomNodeClasses();\t\n\t// Add our event handler\n\t$tw.utils.each(this.types,function(type) {\n\t\tdomNode.addEventListener(type,function(event) {\n\t\t\tvar selector = self.getAttribute(\"selector\"),\n\t\t\t\tactions = self.getAttribute(\"actions-\"+type),\n\t\t\t\tselectedNode = event.target,\n\t\t\t\tselectedNodeRect,\n\t\t\t\tcatcherNodeRect,\n\t\t\t\tvariables = {};\n\t\t\tif(selector) {\n\t\t\t\t// Search ancestors for a node that matches the selector\n\t\t\t\twhile(!selectedNode.matches(selector) && selectedNode !== domNode) {\n\t\t\t\t\tselectedNode = selectedNode.parentNode;\n\t\t\t\t}\n\t\t\t\t// If we found one, copy the attributes as variables, otherwise exit\n\t\t\t\tif(selectedNode.matches(selector)) {\n\t\t\t\t\t$tw.utils.each(selectedNode.attributes,function(attribute) {\n\t\t\t\t\t\tvariables[\"dom-\" + attribute.name] = attribute.value.toString();\n\t\t\t\t\t});\n\t\t\t\t\t//Add a variable with a popup coordinate string for the selected node\n\t\t\t\t\tvariables[\"tv-popup-coords\"] = \"(\" + selectedNode.offsetLeft + \",\" + selectedNode.offsetTop +\",\" + selectedNode.offsetWidth + \",\" + selectedNode.offsetHeight + \")\";\n\t\t\t\t\t\n\t\t\t\t\t//Add variables for offset of selected node\n\t\t\t\t\tvariables[\"tv-selectednode-posx\"] = selectedNode.offsetLeft.toString();\n\t\t\t\t\tvariables[\"tv-selectednode-posy\"] = selectedNode.offsetTop.toString();\n\t\t\t\t\tvariables[\"tv-selectednode-width\"] = selectedNode.offsetWidth.toString();\n\t\t\t\t\tvariables[\"tv-selectednode-height\"] = selectedNode.offsetHeight.toString();\n\n\t\t\t\t\t//Add variables for event X and Y position relative to selected node\n\t\t\t\t\tselectedNodeRect = selectedNode.getBoundingClientRect();\t\t\t\t\n\t\t\t\t\tvariables[\"event-fromselected-posx\"] = (event.clientX - selectedNodeRect.left).toString();\n\t\t\t\t\tvariables[\"event-fromselected-posy\"] = (event.clientY - selectedNodeRect.top).toString();\n\n\t\t\t\t\t//Add variables for event X and Y position relative to event catcher node\n\t\t\t\t\tcatcherNodeRect = self.domNode.getBoundingClientRect();\n\t\t\t\t\tvariables[\"event-fromcatcher-posx\"] = (event.clientX - catcherNodeRect.left).toString();\n\t\t\t\t\tvariables[\"event-fromcatcher-posy\"] = (event.clientY - catcherNodeRect.top).toString();\n\t\t\t\t} else {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Execute our actions with the variables\n\t\t\tif(actions) {\n\t\t\t\t// Add a variable for the modifier key\n\t\t\t\tvariables.modifier = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\n\t\t\t\t// Add a variable for the mouse button\n\t\t\t\tif(\"button\" in event) {\n\t\t\t\t\tif(event.button === 0) {\n\t\t\t\t\t\tvariables[\"event-mousebutton\"] = \"left\";\n\t\t\t\t\t} else if(event.button === 1) {\n\t\t\t\t\t\tvariables[\"event-mousebutton\"] = \"middle\";\n\t\t\t\t\t} else if(event.button === 2) {\n\t\t\t\t\t\tvariables[\"event-mousebutton\"] = \"right\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvariables[\"event-type\"] = event.type.toString();\n\t\t\t\tif(typeof event.detail === \"object\" && !!event.detail) {\n\t\t\t\t\t$tw.utils.each(event.detail,function(detailValue,detail) {\n\t\t\t\t\t\tvariables[\"event-detail-\" + detail] = detailValue.toString();\n\t\t\t\t\t});\n\t\t\t\t} else if(!!event.detail) {\n\t\t\t\t\tvariables[\"event-detail\"] = event.detail.toString();\n\t\t\t\t}\n\t\t\t\tself.invokeActionString(actions,self,event,variables);\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t},false);\n\t});\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEventWidget.prototype.execute = function() {\n\tvar self = this;\n\t// Get attributes that require a refresh on change\n\tthis.types = this.getAttribute(\"events\",\"\").split(\" \");\n\tthis.elementTag = this.getAttribute(\"tag\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\nEventWidget.prototype.assignDomNodeClasses = function() {\n\tvar classes = this.getAttribute(\"class\",\"\").split(\" \");\n\tclasses.push(\"tc-eventcatcher\");\n\tthis.domNode.className = classes.join(\" \");\t\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEventWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"events\"] || changedAttributes[\"tag\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedAttributes[\"class\"]) {\n\t\tthis.assignDomNodeClasses();\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.eventcatcher = EventWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/fieldmangler.js": {
"title": "$:/core/modules/widgets/fieldmangler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/fieldmangler.js\ntype: application/javascript\nmodule-type: widget\n\nField mangler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldManglerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-remove-field\", handler: \"handleRemoveFieldEvent\"},\n\t\t{type: \"tm-add-field\", handler: \"handleAddFieldEvent\"},\n\t\t{type: \"tm-remove-tag\", handler: \"handleRemoveTagEvent\"},\n\t\t{type: \"tm-add-tag\", handler: \"handleAddTagEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldManglerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldManglerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldManglerWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.mangleTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldManglerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nFieldManglerWidget.prototype.handleRemoveFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tdeletion = {};\n\tdeletion[event.param] = undefined;\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,deletion));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\taddition = this.wiki.getModificationFields(),\n\t\thadInvalidFieldName = false,\n\t\taddField = function(name,value) {\n\t\t\tvar trimmedName = name.toLowerCase().trim();\n\t\t\tif(!$tw.utils.isValidFieldName(trimmedName)) {\n\t\t\t\tif(!hadInvalidFieldName) {\n\t\t\t\t\talert($tw.language.getString(\n\t\t\t\t\t\t\"InvalidFieldName\",\n\t\t\t\t\t\t{variables:\n\t\t\t\t\t\t\t{fieldName: trimmedName}\n\t\t\t\t\t\t}\n\t\t\t\t\t));\n\t\t\t\t\thadInvalidFieldName = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif(!value && tiddler) {\n\t\t\t\t\tvalue = tiddler.fields[trimmedName];\n\t\t\t\t}\n\t\t\t\taddition[trimmedName] = value || \"\";\n\t\t\t}\n\t\t\treturn;\n\t\t};\n\taddition.title = this.mangleTitle;\n\tif(typeof event.param === \"string\") {\n\t\taddField(event.param,\"\");\n\t}\n\tif(typeof event.paramObject === \"object\") {\n\t\tfor(var name in event.paramObject) {\n\t\t\taddField(name,event.paramObject[name]);\n\t\t}\n\t}\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,addition));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleRemoveTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && tiddler.fields.tags) {\n\t\tvar p = tiddler.fields.tags.indexOf(event.param);\n\t\tif(p !== -1) {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\tmodification.tags.splice(p,1);\n\t\t\tif(modification.tags.length === 0) {\n\t\t\t\tmodification.tags = undefined;\n\t\t\t}\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\n\t\t}\n\t}\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && typeof event.param === \"string\") {\n\t\tvar tag = event.param.trim();\n\t\tif(tag !== \"\") {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\t$tw.utils.pushTop(modification.tags,tag);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\t\t\t\n\t\t}\n\t} else if(typeof event.param === \"string\" && event.param.trim() !== \"\" && this.mangleTitle.trim() !== \"\") {\n\t\tvar tag = [];\n\t\ttag.push(event.param.trim());\n\t\tthis.wiki.addTiddler(new $tw.Tiddler({title: this.mangleTitle, tags: tag},modification));\n\t}\n\treturn true;\n};\n\nexports.fieldmangler = FieldManglerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/fields.js": {
"title": "$:/core/modules/widgets/fields.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/fields.js\ntype: application/javascript\nmodule-type: widget\n\nFields widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldsWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldsWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldsWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.template = this.getAttribute(\"template\");\n\tthis.sort = this.getAttribute(\"sort\",\"yes\") === \"yes\";\n\tthis.sortReverse = this.getAttribute(\"sortReverse\",\"no\") === \"yes\";\n\tthis.exclude = this.getAttribute(\"exclude\");\n\tthis.include = this.getAttribute(\"include\",null);\n\tthis.stripTitlePrefix = this.getAttribute(\"stripTitlePrefix\",\"no\") === \"yes\";\n\t// Get the value to display\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\n\t// Get the inclusion and exclusion list\n\tvar excludeArr = (this.exclude) ? this.exclude.split(\" \") : [\"text\"];\n\t// Include takes precedence\n\tvar includeArr = (this.include) ? this.include.split(\" \") : null;\n\n\t// Compose the template\n\tvar text = [];\n\tif(this.template && tiddler) {\n\t\tvar fields = [];\n\t\tif (includeArr) { // Include takes precedence\n\t\t\tfor(var i=0; i<includeArr.length; i++) {\n\t\t\t\tif(tiddler.fields[includeArr[i]]) {\n\t\t\t\t\tfields.push(includeArr[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor(var fieldName in tiddler.fields) {\n\t\t\t\tif(excludeArr.indexOf(fieldName) === -1) {\n\t\t\t\t\tfields.push(fieldName);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.sort) fields.sort();\n\t\tif (this.sortReverse) fields.reverse();\n\t\tfor(var f=0, fmax=fields.length; f<fmax; f++) {\n\t\t\tfieldName = fields[f];\n\t\t\tvar row = this.template,\n\t\t\t\tvalue = tiddler.getFieldString(fieldName);\n\t\t\tif(this.stripTitlePrefix && fieldName === \"title\") {\n\t\t\t\tvar reStrip = /^\\{[^\\}]+\\}(.+)/mg,\n\t\t\t\t\treMatch = reStrip.exec(value);\n\t\t\t\tif(reMatch) {\n\t\t\t\t\tvalue = reMatch[1];\n\t\t\t\t}\n\t\t\t}\n\t\t\trow = $tw.utils.replaceString(row,\"$name$\",fieldName);\n\t\t\trow = $tw.utils.replaceString(row,\"$value$\",value);\n\t\t\trow = $tw.utils.replaceString(row,\"$encoded_value$\",$tw.utils.htmlEncode(value));\n\t\t\ttext.push(row);\n\t\t}\n\t}\n\tthis.text = text.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif( changedAttributes.tiddler || changedAttributes.template || changedAttributes.exclude ||\n\t\tchangedAttributes.include || changedAttributes.sort || changedAttributes.sortReverse ||\n\t\tchangedTiddlers[this.tiddlerTitle] || changedAttributes.stripTitlePrefix) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\nexports.fields = FieldsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/image.js": {
"title": "$:/core/modules/widgets/image.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/image.js\ntype: application/javascript\nmodule-type: widget\n\nThe image widget displays an image referenced with an external URI or with a local tiddler title.\n\n```\n<$image src=\"TiddlerTitle\" width=\"320\" height=\"400\" class=\"classnames\">\n```\n\nThe image source can be the title of an existing tiddler or the URL of an external image.\n\nExternal images always generate an HTML `<img>` tag.\n\nTiddlers that have a _canonical_uri field generate an HTML `<img>` tag with the src attribute containing the URI.\n\nTiddlers that contain image data generate an HTML `<img>` tag with the src attribute containing a base64 representation of the image.\n\nTiddlers that contain wikitext could be rendered to a DIV of the usual size of a tiddler, and then transformed to the size requested.\n\nThe width and height attributes are interpreted as a number of pixels, and do not need to include the \"px\" suffix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\t// Determine what type of image it is\n\tvar tag = \"img\", src = \"\",\n\t\ttiddler = this.wiki.getTiddler(this.imageSource);\n\tif(!tiddler) {\n\t\t// The source isn't the title of a tiddler, so we'll assume it's a URL\n\t\tsrc = this.getVariable(\"tv-get-export-image-link\",{params: [{name: \"src\",value: this.imageSource}],defaultValue: this.imageSource});\n\t} else {\n\t\t// Check if it is an image tiddler\n\t\tif(this.wiki.isImageTiddler(this.imageSource)) {\n\t\t\tvar type = tiddler.fields.type,\n\t\t\t\ttext = tiddler.fields.text,\n\t\t\t\t_canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t// If the tiddler has body text then it doesn't need to be lazily loaded\n\t\t\tif(text) {\n\t\t\t\t// Render the appropriate element for the image type\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = \"data:application/pdf;base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = \"data:image/svg+xml,\" + encodeURIComponent(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = \"data:\" + type + \";base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if(_canonical_uri) {\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\t\n\t\t\t} else {\n\t\t\t\t// Just trigger loading of the tiddler\n\t\t\t\tthis.wiki.getTiddlerText(this.imageSource);\n\t\t\t}\n\t\t}\n\t}\n\t// Create the element and assign the attributes\n\tvar domNode = this.document.createElement(tag);\n\tdomNode.setAttribute(\"src\",src);\n\tif(this.imageClass) {\n\t\tdomNode.setAttribute(\"class\",this.imageClass);\t\t\n\t}\n\tif(this.imageWidth) {\n\t\tdomNode.setAttribute(\"width\",this.imageWidth);\n\t}\n\tif(this.imageHeight) {\n\t\tdomNode.setAttribute(\"height\",this.imageHeight);\n\t}\n\tif(this.imageTooltip) {\n\t\tdomNode.setAttribute(\"title\",this.imageTooltip);\t\t\n\t}\n\tif(this.imageAlt) {\n\t\tdomNode.setAttribute(\"alt\",this.imageAlt);\t\t\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImageWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.imageSource = this.getAttribute(\"source\");\n\tthis.imageWidth = this.getAttribute(\"width\");\n\tthis.imageHeight = this.getAttribute(\"height\");\n\tthis.imageClass = this.getAttribute(\"class\");\n\tthis.imageTooltip = this.getAttribute(\"tooltip\");\n\tthis.imageAlt = this.getAttribute(\"alt\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.width || changedAttributes.height || changedAttributes[\"class\"] || changedAttributes.tooltip || changedTiddlers[this.imageSource]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\t\n\t}\n};\n\nexports.image = ImageWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/importvariables.js": {
"title": "$:/core/modules/widgets/importvariables.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/importvariables.js\ntype: application/javascript\nmodule-type: widget\n\nImport variable definitions from other tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImportVariablesWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImportVariablesWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImportVariablesWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImportVariablesWidget.prototype.execute = function(tiddlerList) {\n\tvar widgetPointer = this;\n\t// Got to flush all the accumulated variables\n\tthis.variables = new this.variablesConstructor();\n\t// Get our parameters\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Compute the filter\n\tthis.tiddlerList = tiddlerList || this.wiki.filterTiddlers(this.filter,this);\n\t// Accumulate the <$set> widgets from each tiddler\n\t$tw.utils.each(this.tiddlerList,function(title) {\n\t\tvar parser = widgetPointer.wiki.parseTiddler(title);\n\t\tif(parser) {\n\t\t\tvar parseTreeNode = parser.tree[0];\n\t\t\twhile(parseTreeNode && parseTreeNode.type === \"set\") {\n\t\t\t\tvar node = {\n\t\t\t\t\ttype: \"set\",\n\t\t\t\t\tattributes: parseTreeNode.attributes,\n\t\t\t\t\tparams: parseTreeNode.params,\n\t\t\t\t\tisMacroDefinition: parseTreeNode.isMacroDefinition\n\t\t\t\t};\n\t\t\t\tif (parseTreeNode.isMacroDefinition) {\n\t\t\t\t\t// Macro definitions can be folded into\n\t\t\t\t\t// current widget instead of adding\n\t\t\t\t\t// another link to the chain.\n\t\t\t\t\tvar widget = widgetPointer.makeChildWidget(node);\n\t\t\t\t\twidget.computeAttributes();\n\t\t\t\t\twidget.execute();\n\t\t\t\t\t// We SHALLOW copy over all variables\n\t\t\t\t\t// in widget. We can't use\n\t\t\t\t\t// $tw.utils.assign, because that copies\n\t\t\t\t\t// up the prototype chain, which we\n\t\t\t\t\t// don't want.\n\t\t\t\t\t$tw.utils.each(Object.keys(widget.variables), function(key) {\n\t\t\t\t\t\twidgetPointer.variables[key] = widget.variables[key];\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\twidgetPointer.children = [widgetPointer.makeChildWidget(node)];\n\t\t\t\t\t// No more regenerating children for\n\t\t\t\t\t// this widget. If it needs to refresh,\n\t\t\t\t\t// it'll do so along with the the whole\n\t\t\t\t\t// importvariable tree.\n\t\t\t\t\tif (widgetPointer != this) {\n\t\t\t\t\t\twidgetPointer.makeChildWidgets = function(){};\n\t\t\t\t\t}\n\t\t\t\t\twidgetPointer = widgetPointer.children[0];\n\t\t\t\t}\n\t\t\t\tparseTreeNode = parseTreeNode.children && parseTreeNode.children[0];\n\t\t\t}\n\t\t} \n\t});\n\n\tif (widgetPointer != this) {\n\t\twidgetPointer.parseTreeNode.children = this.parseTreeNode.children;\n\t} else {\n\t\twidgetPointer.makeChildWidgets();\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImportVariablesWidget.prototype.refresh = function(changedTiddlers) {\n\t// Recompute our attributes and the filter list\n\tvar changedAttributes = this.computeAttributes(),\n\t\ttiddlerList = this.wiki.filterTiddlers(this.getAttribute(\"filter\"),this);\n\t// Refresh if the filter has changed, or the list of tiddlers has changed, or any of the tiddlers in the list has changed\n\tfunction haveListedTiddlersChanged() {\n\t\tvar changed = false;\n\t\ttiddlerList.forEach(function(title) {\n\t\t\tif(changedTiddlers[title]) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t});\n\t\treturn changed;\n\t}\n\tif(changedAttributes.filter || !$tw.utils.isArrayEqual(this.tiddlerList,tiddlerList) || haveListedTiddlersChanged()) {\n\t\t// Compute the filter\n\t\tthis.removeChildDomNodes();\n\t\tthis.execute(tiddlerList);\n\t\tthis.renderChildren(this.parentDomNode,this.findNextSiblingDomNode());\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.importvariables = ImportVariablesWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/keyboard.js": {
"title": "$:/core/modules/widgets/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/keyboard.js\ntype: application/javascript\nmodule-type: widget\n\nKeyboard shortcut widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar KeyboardWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nKeyboardWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nKeyboardWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.tag && $tw.config.htmlUnsafeElements.indexOf(this.tag) === -1) {\n\t\ttag = this.tag;\n\t}\n\t// Create element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-keyboard\");\n\tdomNode.className = classes.join(\" \");\n\t// Add a keyboard event handler\n\tdomNode.addEventListener(\"keydown\",function (event) {\n\t\tif($tw.keyboardManager.checkKeyDescriptors(event,self.keyInfoArray)) {\n\t\t\tvar handled = self.invokeActions(self,event);\n\t\t\tif(self.actions) {\n\t\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t\t}\n\t\t\tself.dispatchMessage(event);\n\t\t\tif(handled || self.actions || self.message) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nKeyboardWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\")});\n};\n\n/*\nCompute the internal state of the widget\n*/\nKeyboardWidget.prototype.execute = function() {\n\tvar self = this;\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\",\"\");\n\tthis.message = this.getAttribute(\"message\",\"\");\n\tthis.param = this.getAttribute(\"param\",\"\");\n\tthis.key = this.getAttribute(\"key\",\"\");\n\tthis.tag = this.getAttribute(\"tag\",\"\");\n\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tif(this.key.substr(0,2) === \"((\" && this.key.substr(-2,2) === \"))\") {\n\t\tthis.shortcutTiddlers = [];\n\t\tvar name = this.key.substring(2,this.key.length -2);\n\t\t$tw.utils.each($tw.keyboardManager.lookupNames,function(platformDescriptor) {\n\t\t\tself.shortcutTiddlers.push(\"$:/config/\" + platformDescriptor + \"/\" + name);\n\t\t});\n\t}\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nKeyboardWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.message || changedAttributes.param || changedAttributes.key || changedAttributes[\"class\"] || changedAttributes.tag) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\t// Update the keyInfoArray if one of its shortcut-config-tiddlers has changed\n\tif(this.shortcutTiddlers && $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers)) {\n\t\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.keyboard = KeyboardWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/link.js": {
"title": "$:/core/modules/widgets/link.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/link.js\ntype: application/javascript\nmodule-type: widget\n\nLink widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the value of the tv-wikilinks configuration macro\n\tvar wikiLinksMacro = this.getVariable(\"tv-wikilinks\"),\n\t\tuseWikiLinks = wikiLinksMacro ? (wikiLinksMacro.trim() !== \"no\") : true,\n\t\tmissingLinksEnabled = !(this.hideMissingLinks && this.isMissing && !this.isShadow);\n\t// Render the link if required\n\tif(useWikiLinks && missingLinksEnabled) {\n\t\tthis.renderLink(parent,nextSibling);\n\t} else {\n\t\t// Just insert the link text\n\t\tvar domNode = this.document.createElement(\"span\");\n\t\tparent.insertBefore(domNode,nextSibling);\n\t\tthis.renderChildren(domNode,null);\n\t\tthis.domNodes.push(domNode);\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.renderLink = function(parent,nextSibling) {\n\tvar self = this;\n\t// Sanitise the specified tag\n\tvar tag = this.linkTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"a\";\n\t}\n\t// Create our element\n\tvar namespace = this.getVariable(\"namespace\",{defaultValue: \"http://www.w3.org/1999/xhtml\"}),\n\t\tdomNode = this.document.createElementNS(namespace,tag);\n\t// Assign classes\n\tvar classes = [];\n\tif(this.overrideClasses === undefined) {\n\t\tclasses.push(\"tc-tiddlylink\");\n\t\tif(this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-shadow\");\n\t\t}\n\t\tif(this.isMissing && !this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-missing\");\n\t\t} else {\n\t\t\tif(!this.isMissing) {\n\t\t\t\tclasses.push(\"tc-tiddlylink-resolves\");\n\t\t\t}\n\t\t}\n\t\tif(this.linkClasses) {\n\t\t\tclasses.push(this.linkClasses);\t\t\t\n\t\t}\n\t} else if(this.overrideClasses !== \"\") {\n\t\tclasses.push(this.overrideClasses)\n\t}\n\tif(classes.length > 0) {\n\t\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t}\n\t// Set an href\n\tvar wikilinkTransformFilter = this.getVariable(\"tv-filter-export-link\"),\n\t\twikiLinkText;\n\tif(wikilinkTransformFilter) {\n\t\t// Use the filter to construct the href\n\t\twikiLinkText = this.wiki.filterTiddlers(wikilinkTransformFilter,this,function(iterator) {\n\t\t\titerator(self.wiki.getTiddler(self.to),self.to)\n\t\t})[0];\n\t} else {\n\t\t// Expand the tv-wikilink-template variable to construct the href\n\t\tvar wikiLinkTemplateMacro = this.getVariable(\"tv-wikilink-template\"),\n\t\t\twikiLinkTemplate = wikiLinkTemplateMacro ? wikiLinkTemplateMacro.trim() : \"#$uri_encoded$\";\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkTemplate,\"$uri_encoded$\",encodeURIComponent(this.to));\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkText,\"$uri_doubleencoded$\",encodeURIComponent(encodeURIComponent(this.to)));\n\t}\n\t// Override with the value of tv-get-export-link if defined\n\twikiLinkText = this.getVariable(\"tv-get-export-link\",{params: [{name: \"to\",value: this.to}],defaultValue: wikiLinkText});\n\tif(tag === \"a\") {\n\t\tvar namespaceHref = (namespace === \"http://www.w3.org/2000/svg\") ? \"http://www.w3.org/1999/xlink\" : undefined;\n\t\tdomNode.setAttributeNS(namespaceHref,\"href\",wikiLinkText);\n\t}\n\t// Set the tabindex\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\n\t// Set the tooltip\n\t// HACK: Performance issues with re-parsing the tooltip prevent us defaulting the tooltip to \"<$transclude field='tooltip'><$transclude field='title'/></$transclude>\"\n\tvar tooltipWikiText = this.tooltip || this.getVariable(\"tv-wikilink-tooltip\");\n\tif(tooltipWikiText) {\n\t\tvar tooltipText = this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",tooltipWikiText,{\n\t\t\t\tparseAsInline: true,\n\t\t\t\tvariables: {\n\t\t\t\t\tcurrentTiddler: this.to\n\t\t\t\t},\n\t\t\t\tparentWidget: this\n\t\t\t});\n\t\tdomNode.setAttribute(\"title\",tooltipText);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"click\", handlerObject: this, handlerMethod: \"handleClickEvent\"},\n\t]);\n\t// Make the link draggable if required\n\tif(this.draggable === \"yes\") {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.to;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nLinkWidget.prototype.handleClickEvent = function(event) {\n\t// Send the click on its way as a navigate event\n\tvar bounds = this.domNodes[0].getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tmetaKey: event.metaKey,\n\t\tctrlKey: event.ctrlKey,\n\t\taltKey: event.altKey,\n\t\tshiftKey: event.shiftKey,\n\t\tevent: event\n\t});\n\tif(this.domNodes[0].hasAttribute(\"href\")) {\n\t\tevent.preventDefault();\n\t}\n\tevent.stopPropagation();\n\treturn false;\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.to = this.getAttribute(\"to\",this.getVariable(\"currentTiddler\"));\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.linkClasses = this.getAttribute(\"class\");\n\tthis.overrideClasses = this.getAttribute(\"overrideClass\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\tthis.draggable = this.getAttribute(\"draggable\",\"yes\");\n\tthis.linkTag = this.getAttribute(\"tag\",\"a\");\n\t// Determine the link characteristics\n\tthis.isMissing = !this.wiki.tiddlerExists(this.to);\n\tthis.isShadow = this.wiki.isShadowTiddler(this.to);\n\tthis.hideMissingLinks = (this.getVariable(\"tv-show-missing-links\") || \"yes\") === \"no\";\n\t// Make the child widgets\n\tvar templateTree;\n\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\ttemplateTree = this.parseTreeNode.children;\n\t} else {\n\t\t// Default template is a link to the title\n\t\ttemplateTree = [{type: \"text\", text: this.to}];\n\t}\n\tthis.makeChildWidgets(templateTree);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedTiddlers[this.to] || changedAttributes[\"aria-label\"] || changedAttributes.tooltip) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.link = LinkWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/linkcatcher.js": {
"title": "$:/core/modules/widgets/linkcatcher.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/linkcatcher.js\ntype: application/javascript\nmodule-type: widget\n\nLinkcatcher widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkCatcherWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkCatcherWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkCatcherWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkCatcherWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.catchTo = this.getAttribute(\"to\");\n\tthis.catchMessage = this.getAttribute(\"message\");\n\tthis.catchSet = this.getAttribute(\"set\");\n\tthis.catchSetTo = this.getAttribute(\"setTo\");\n\tthis.catchActions = this.getAttribute(\"actions\");\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n\t// When executing actions we avoid trapping navigate events, so that we don't trigger ourselves recursively\n\tthis.executingActions = false;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkCatcherWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.set || changedAttributes.setTo) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\n/*\nHandle a tm-navigate event\n*/\nLinkCatcherWidget.prototype.handleNavigateEvent = function(event) {\n\tif(!this.executingActions) {\n\t\t// Execute the actions\n\t\tif(this.catchTo) {\n\t\t\tthis.wiki.setTextReference(this.catchTo,event.navigateTo,this.getVariable(\"currentTiddler\"));\n\t\t}\n\t\tif(this.catchMessage && this.parentWidget) {\n\t\t\tthis.parentWidget.dispatchEvent({\n\t\t\t\ttype: this.catchMessage,\n\t\t\t\tparam: event.navigateTo,\n\t\t\t\tnavigateTo: event.navigateTo\n\t\t\t});\n\t\t}\n\t\tif(this.catchSet) {\n\t\t\tvar tiddler = this.wiki.getTiddler(this.catchSet);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,{title: this.catchSet, text: this.catchSetTo}));\n\t\t}\n\t\tif(this.catchActions) {\n\t\t\tthis.executingActions = true;\n\t\t\tvar modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\n\t\t\tthis.invokeActionString(this.catchActions,this,event,{navigateTo: event.navigateTo, modifier: modifierKey});\n\t\t\tthis.executingActions = false;\n\t\t}\n\t} else {\n\t\t// This is a navigate event generated by the actions of this linkcatcher, so we don't trap it again, but just pass it to the parent\n\t\tthis.parentWidget.dispatchEvent({\n\t\t\ttype: \"tm-navigate\",\n\t\t\tparam: event.navigateTo,\n\t\t\tnavigateTo: event.navigateTo\n\t\t});\n\t}\n\treturn false;\n};\n\nexports.linkcatcher = LinkCatcherWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/list.js": {
"title": "$:/core/modules/widgets/list.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/list.js\ntype: application/javascript\nmodule-type: widget\n\nList and list item widgets\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\n/*\nThe list widget creates list element sub-widgets that reach back into the list widget for their configuration\n*/\n\nvar ListWidget = function(parseTreeNode,options) {\n\t// Initialise the storyviews if they've not been done already\n\tif(!this.storyViews) {\n\t\tListWidget.prototype.storyViews = {};\n\t\t$tw.modules.applyMethods(\"storyview\",this.storyViews);\n\t}\n\t// Main initialisation inherited from widget.js\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\t// Construct the storyview\n\tvar StoryView = this.storyViews[this.storyViewName];\n\tif(this.storyViewName && !StoryView) {\n\t\tStoryView = this.storyViews[\"classic\"];\n\t}\n\tif(StoryView && !this.document.isTiddlyWikiFakeDom) {\n\t\tthis.storyview = new StoryView(this);\n\t} else {\n\t\tthis.storyview = null;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nListWidget.prototype.execute = function() {\n\t// Get our attributes\n\tthis.template = this.getAttribute(\"template\");\n\tthis.editTemplate = this.getAttribute(\"editTemplate\");\n\tthis.variableName = this.getAttribute(\"variable\",\"currentTiddler\");\n\tthis.storyViewName = this.getAttribute(\"storyview\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\t// Compose the list elements\n\tthis.list = this.getTiddlerList();\n\tvar members = [],\n\t\tself = this;\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\tmembers = this.getEmptyMessage();\n\t} else {\n\t\t$tw.utils.each(this.list,function(title,index) {\n\t\t\tmembers.push(self.makeItemTemplate(title));\n\t\t});\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(members);\n\t// Clear the last history\n\tthis.history = [];\n};\n\nListWidget.prototype.getTiddlerList = function() {\n\tvar defaultFilter = \"[!is[system]sort[title]]\";\n\treturn this.wiki.filterTiddlers(this.getAttribute(\"filter\",defaultFilter),this);\n};\n\nListWidget.prototype.getEmptyMessage = function() {\n\tvar parser,\n\t\temptyMessage = this.getAttribute(\"emptyMessage\",\"\");\n\t// this.wiki.parseText() calls \n\t// new Parser(..), which should only be done, if needed, because it's heavy!\n\tif (emptyMessage === \"\") {\n\t\treturn [];\n\t}\n\tparser = this.wiki.parseText(\"text/vnd.tiddlywiki\",emptyMessage,{parseAsInline: true});\n\tif(parser) {\n\t\treturn parser.tree;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n/*\nCompose the template for a list item\n*/\nListWidget.prototype.makeItemTemplate = function(title) {\n\t// Check if the tiddler is a draft\n\tvar tiddler = this.wiki.getTiddler(title),\n\t\tisDraft = tiddler && tiddler.hasField(\"draft.of\"),\n\t\ttemplate = this.template,\n\t\ttemplateTree;\n\tif(isDraft && this.editTemplate) {\n\t\ttemplate = this.editTemplate;\n\t}\n\t// Compose the transclusion of the template\n\tif(template) {\n\t\ttemplateTree = [{type: \"transclude\", attributes: {tiddler: {type: \"string\", value: template}}}];\n\t} else {\n\t\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\t\ttemplateTree = this.parseTreeNode.children;\n\t\t} else {\n\t\t\t// Default template is a link to the title\n\t\t\ttemplateTree = [{type: \"element\", tag: this.parseTreeNode.isBlock ? \"div\" : \"span\", children: [{type: \"link\", attributes: {to: {type: \"string\", value: title}}, children: [\n\t\t\t\t\t{type: \"text\", text: title}\n\t\t\t]}]}];\n\t\t}\n\t}\n\t// Return the list item\n\treturn {type: \"listitem\", itemTitle: title, variableName: this.variableName, children: templateTree};\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tresult;\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshStart) {\n\t\tthis.storyview.refreshStart(changedTiddlers,changedAttributes);\n\t}\n\t// Completely refresh if any of our attributes have changed\n\tif(changedAttributes.filter || changedAttributes.template || changedAttributes.editTemplate || changedAttributes.emptyMessage || changedAttributes.storyview || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\tresult = true;\n\t} else {\n\t\t// Handle any changes to the list\n\t\tresult = this.handleListChanges(changedTiddlers);\n\t\t// Handle any changes to the history stack\n\t\tif(this.historyTitle && changedTiddlers[this.historyTitle]) {\n\t\t\tthis.handleHistoryChanges();\n\t\t}\n\t}\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshEnd) {\n\t\tthis.storyview.refreshEnd(changedTiddlers,changedAttributes);\n\t}\n\treturn result;\n};\n\n/*\nHandle any changes to the history list\n*/\nListWidget.prototype.handleHistoryChanges = function() {\n\t// Get the history data\n\tvar newHistory = this.wiki.getTiddlerDataCached(this.historyTitle,[]);\n\t// Ignore any entries of the history that match the previous history\n\tvar entry = 0;\n\twhile(entry < newHistory.length && entry < this.history.length && newHistory[entry].title === this.history[entry].title) {\n\t\tentry++;\n\t}\n\t// Navigate forwards to each of the new tiddlers\n\twhile(entry < newHistory.length) {\n\t\tif(this.storyview && this.storyview.navigateTo) {\n\t\t\tthis.storyview.navigateTo(newHistory[entry]);\n\t\t}\n\t\tentry++;\n\t}\n\t// Update the history\n\tthis.history = newHistory;\n};\n\n/*\nProcess any changes to the list\n*/\nListWidget.prototype.handleListChanges = function(changedTiddlers) {\n\t// Get the new list\n\tvar prevList = this.list;\n\tthis.list = this.getTiddlerList();\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\t// Check if it was empty before\n\t\tif(prevList.length === 0) {\n\t\t\t// If so, just refresh the empty message\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\t// Replace the previous content with the empty message\n\t\t\tfor(t=this.children.length-1; t>=0; t--) {\n\t\t\t\tthis.removeListItem(t);\n\t\t\t}\n\t\t\tvar nextSibling = this.findNextSiblingDomNode();\n\t\t\tthis.makeChildWidgets(this.getEmptyMessage());\n\t\t\tthis.renderChildren(this.parentDomNode,nextSibling);\n\t\t\treturn true;\n\t\t}\n\t} else {\n\t\t// If the list was empty then we need to remove the empty message\n\t\tif(prevList.length === 0) {\n\t\t\tthis.removeChildDomNodes();\n\t\t\tthis.children = [];\n\t\t}\n\t\t// Cycle through the list, inserting and removing list items as needed\n\t\tvar hasRefreshed = false;\n\t\tfor(var t=0; t<this.list.length; t++) {\n\t\t\tvar index = this.findListItem(t,this.list[t]);\n\t\t\tif(index === undefined) {\n\t\t\t\t// The list item must be inserted\n\t\t\t\tthis.insertListItem(t,this.list[t]);\n\t\t\t\thasRefreshed = true;\n\t\t\t} else {\n\t\t\t\t// There are intervening list items that must be removed\n\t\t\t\tfor(var n=index-1; n>=t; n--) {\n\t\t\t\t\tthis.removeListItem(n);\n\t\t\t\t\thasRefreshed = true;\n\t\t\t\t}\n\t\t\t\t// Refresh the item we're reusing\n\t\t\t\tvar refreshed = this.children[t].refresh(changedTiddlers);\n\t\t\t\thasRefreshed = hasRefreshed || refreshed;\n\t\t\t}\n\t\t}\n\t\t// Remove any left over items\n\t\tfor(t=this.children.length-1; t>=this.list.length; t--) {\n\t\t\tthis.removeListItem(t);\n\t\t\thasRefreshed = true;\n\t\t}\n\t\treturn hasRefreshed;\n\t}\n};\n\n/*\nFind the list item with a given title, starting from a specified position\n*/\nListWidget.prototype.findListItem = function(startIndex,title) {\n\twhile(startIndex < this.children.length) {\n\t\tif(this.children[startIndex].parseTreeNode.itemTitle === title) {\n\t\t\treturn startIndex;\n\t\t}\n\t\tstartIndex++;\n\t}\n\treturn undefined;\n};\n\n/*\nInsert a new list item at the specified index\n*/\nListWidget.prototype.insertListItem = function(index,title) {\n\t// Create, insert and render the new child widgets\n\tvar widget = this.makeChildWidget(this.makeItemTemplate(title));\n\twidget.parentDomNode = this.parentDomNode; // Hack to enable findNextSiblingDomNode() to work\n\tthis.children.splice(index,0,widget);\n\tvar nextSibling = widget.findNextSiblingDomNode();\n\twidget.render(this.parentDomNode,nextSibling);\n\t// Animate the insertion if required\n\tif(this.storyview && this.storyview.insert) {\n\t\tthis.storyview.insert(widget);\n\t}\n\treturn true;\n};\n\n/*\nRemove the specified list item\n*/\nListWidget.prototype.removeListItem = function(index) {\n\tvar widget = this.children[index];\n\t// Animate the removal if required\n\tif(this.storyview && this.storyview.remove) {\n\t\tthis.storyview.remove(widget);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n\t// Remove the child widget\n\tthis.children.splice(index,1);\n};\n\nexports.list = ListWidget;\n\nvar ListItemWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListItemWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListItemWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nListItemWidget.prototype.execute = function() {\n\t// Set the current list item title\n\tthis.setVariable(this.parseTreeNode.variableName,this.parseTreeNode.itemTitle);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListItemWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.listitem = ListItemWidget;\n\n})();",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/log.js": {
"title": "$:/core/modules/widgets/log.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/log.js\ntype: application/javascript\nmodule-type: widget-subclass\n\nWidget to log debug messages\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.baseClass = \"action-log\";\n\nexports.name = \"log\";\n\nexports.constructor = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n}\n\nexports.prototype = {};\n\nexports.prototype.render = function(event) {\n\tObject.getPrototypeOf(Object.getPrototypeOf(this)).render.call(this,event);\t\n\tObject.getPrototypeOf(Object.getPrototypeOf(this)).log.call(this);\n}\n\n})();",
"type": "application/javascript",
"module-type": "widget-subclass"
},
"$:/core/modules/widgets/macrocall.js": {
"title": "$:/core/modules/widgets/macrocall.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/macrocall.js\ntype: application/javascript\nmodule-type: widget\n\nMacrocall widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar MacroCallWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nMacroCallWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nMacroCallWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nMacroCallWidget.prototype.execute = function() {\n\t// Get the parse type if specified\n\tthis.parseType = this.getAttribute(\"$type\",\"text/vnd.tiddlywiki\");\n\tthis.renderOutput = this.getAttribute(\"$output\",\"text/html\");\n\t// Merge together the parameters specified in the parse tree with the specified attributes\n\tvar params = this.parseTreeNode.params ? this.parseTreeNode.params.slice(0) : [];\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparams.push({name: name, value: attribute});\t\t\t\n\t\t}\n\t});\n\t// Get the macro value\n\tvar macroName = this.parseTreeNode.name || this.getAttribute(\"$name\"),\n\t\tvariableInfo = this.getVariableInfo(macroName,{params: params}),\n\t\ttext = variableInfo.text,\n\t\tparseTreeNodes;\n\t// Are we rendering to HTML?\n\tif(this.renderOutput === \"text/html\") {\n\t\t// If so we'll return the parsed macro\n\t\t// Check if we've already cached parsing this macro\n\t\tvar mode = this.parseTreeNode.isBlock ? \"blockParser\" : \"inlineParser\",\n\t\t\tparser;\n\t\tif(variableInfo.srcVariable && variableInfo.srcVariable[mode]) {\n\t\t\tparser = variableInfo.srcVariable[mode];\n\t\t} else {\n\t\t\tparser = this.wiki.parseText(this.parseType,text,\n\t\t\t\t\t\t\t\t{parseAsInline: !this.parseTreeNode.isBlock});\n\t\t\tif(variableInfo.isCacheable && variableInfo.srcVariable) {\n\t\t\t\tvariableInfo.srcVariable[mode] = parser;\n\t\t\t}\n\t\t}\n\t\tvar parseTreeNodes = parser ? parser.tree : [];\n\t\t// Wrap the parse tree in a vars widget assigning the parameters to variables named \"__paramname__\"\n\t\tvar attributes = {};\n\t\t$tw.utils.each(variableInfo.params,function(param) {\n\t\t\tvar name = \"__\" + param.name + \"__\";\n\t\t\tattributes[name] = {\n\t\t\t\tname: name,\n\t\t\t\ttype: \"string\",\n\t\t\t\tvalue: param.value\n\t\t\t};\n\t\t});\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"vars\",\n\t\t\tattributes: attributes,\n\t\t\tchildren: parseTreeNodes\n\t\t}];\n\t} else if(this.renderOutput === \"text/raw\") {\n\t\tparseTreeNodes = [{type: \"text\", text: text}];\n\t} else {\n\t\t// Otherwise, we'll render the text\n\t\tvar plainText = this.wiki.renderText(\"text/plain\",this.parseType,text,{parentWidget: this});\n\t\tparseTreeNodes = [{type: \"text\", text: plainText}];\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nMacroCallWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\t// Rerender ourselves\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.macrocall = MacroCallWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/navigator.js": {
"title": "$:/core/modules/widgets/navigator.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/navigator.js\ntype: application/javascript\nmodule-type: widget\n\nNavigator widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar IMPORT_TITLE = \"$:/Import\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigatorWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"},\n\t\t{type: \"tm-edit-tiddler\", handler: \"handleEditTiddlerEvent\"},\n\t\t{type: \"tm-delete-tiddler\", handler: \"handleDeleteTiddlerEvent\"},\n\t\t{type: \"tm-save-tiddler\", handler: \"handleSaveTiddlerEvent\"},\n\t\t{type: \"tm-cancel-tiddler\", handler: \"handleCancelTiddlerEvent\"},\n\t\t{type: \"tm-close-tiddler\", handler: \"handleCloseTiddlerEvent\"},\n\t\t{type: \"tm-close-all-tiddlers\", handler: \"handleCloseAllTiddlersEvent\"},\n\t\t{type: \"tm-close-other-tiddlers\", handler: \"handleCloseOtherTiddlersEvent\"},\n\t\t{type: \"tm-new-tiddler\", handler: \"handleNewTiddlerEvent\"},\n\t\t{type: \"tm-import-tiddlers\", handler: \"handleImportTiddlersEvent\"},\n\t\t{type: \"tm-perform-import\", handler: \"handlePerformImportEvent\"},\n\t\t{type: \"tm-fold-tiddler\", handler: \"handleFoldTiddlerEvent\"},\n\t\t{type: \"tm-fold-other-tiddlers\", handler: \"handleFoldOtherTiddlersEvent\"},\n\t\t{type: \"tm-fold-all-tiddlers\", handler: \"handleFoldAllTiddlersEvent\"},\n\t\t{type: \"tm-unfold-all-tiddlers\", handler: \"handleUnfoldAllTiddlersEvent\"},\n\t\t{type: \"tm-rename-tiddler\", handler: \"handleRenameTiddlerEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigatorWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigatorWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigatorWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.storyTitle = this.getAttribute(\"story\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\tthis.setVariable(\"tv-story-list\",this.storyTitle);\n\tthis.setVariable(\"tv-history-list\",this.historyTitle);\n\tthis.story = new $tw.Story({\n\t\twiki: this.wiki,\n\t\tstoryTitle: this.storyTitle,\n\t\thistoryTitle: this.historyTitle\n\t});\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nNavigatorWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.story || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nNavigatorWidget.prototype.getStoryList = function() {\n\treturn this.storyTitle ? this.wiki.getTiddlerList(this.storyTitle) : null;\n};\n\nNavigatorWidget.prototype.saveStoryList = function(storyList) {\n\tif(this.storyTitle) {\n\t\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\t\t{title: this.storyTitle},\n\t\t\tstoryTiddler,\n\t\t\t{list: storyList}\n\t\t));\t\t\n\t}\n};\n\nNavigatorWidget.prototype.removeTitleFromStory = function(storyList,title) {\n\tif(storyList) {\n\t\tvar p = storyList.indexOf(title);\n\t\twhile(p !== -1) {\n\t\t\tstoryList.splice(p,1);\n\t\t\tp = storyList.indexOf(title);\n\t\t}\t\t\n\t}\n};\n\nNavigatorWidget.prototype.replaceFirstTitleInStory = function(storyList,oldTitle,newTitle) {\n\tif(storyList) {\n\t\tvar pos = storyList.indexOf(oldTitle);\n\t\tif(pos !== -1) {\n\t\t\tstoryList[pos] = newTitle;\n\t\t\tdo {\n\t\t\t\tpos = storyList.indexOf(oldTitle,pos + 1);\n\t\t\t\tif(pos !== -1) {\n\t\t\t\t\tstoryList.splice(pos,1);\n\t\t\t\t}\n\t\t\t} while(pos !== -1);\n\t\t} else {\n\t\t\tstoryList.splice(0,0,newTitle);\n\t\t}\t\t\n\t}\n};\n\nNavigatorWidget.prototype.addToStory = function(title,fromTitle) {\n\tif(this.storyTitle) {\n\t\tthis.story.addToStory(title,fromTitle,{\n\t\t\topenLinkFromInsideRiver: this.getAttribute(\"openLinkFromInsideRiver\",\"top\"),\n\t\t\topenLinkFromOutsideRiver: this.getAttribute(\"openLinkFromOutsideRiver\",\"top\")\n\t\t});\n\t}\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\n*/\nNavigatorWidget.prototype.addToHistory = function(title,fromPageRect) {\n\tthis.story.addToHistory(title,fromPageRect,this.historyTitle);\n};\n\n/*\nHandle a tm-navigate event\n*/\nNavigatorWidget.prototype.handleNavigateEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-navigating\",event);\n\tif(event.navigateTo) {\n\t\tthis.addToStory(event.navigateTo,event.navigateFromTitle);\n\t\tif(!event.navigateSuppressNavigation) {\n\t\t\tthis.addToHistory(event.navigateTo,event.navigateFromClientRect);\n\t\t}\n\t}\n\treturn false;\n};\n\n// Close a specified tiddler\nNavigatorWidget.prototype.handleCloseTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\tstoryList = this.getStoryList();\n\t// Look for tiddlers with this title to close\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\treturn false;\n};\n\n// Close all tiddlers\nNavigatorWidget.prototype.handleCloseAllTiddlersEvent = function(event) {\n\tthis.saveStoryList([]);\n\treturn false;\n};\n\n// Close other tiddlers\nNavigatorWidget.prototype.handleCloseOtherTiddlersEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle;\n\tthis.saveStoryList([title]);\n\treturn false;\n};\n\n// Place a tiddler in edit mode\nNavigatorWidget.prototype.handleEditTiddlerEvent = function(event) {\n\tvar editTiddler = $tw.hooks.invokeHook(\"th-editing-tiddler\",event);\n\tif(!editTiddler) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tfunction isUnmodifiedShadow(title) {\n\t\treturn self.wiki.isShadowTiddler(title) && !self.wiki.tiddlerExists(title);\n\t}\n\tfunction confirmEditShadow(title) {\n\t\treturn confirm($tw.language.getString(\n\t\t\t\"ConfirmEditShadowTiddler\",\n\t\t\t{variables:\n\t\t\t\t{title: title}\n\t\t\t}\n\t\t));\n\t}\n\tvar title = event.param || event.tiddlerTitle;\n\tif(isUnmodifiedShadow(title) && !confirmEditShadow(title)) {\n\t\treturn false;\n\t}\n\t// Replace the specified tiddler with a draft in edit mode\n\tvar draftTiddler = this.makeDraftTiddler(title);\n\t// Update the story and history if required\n\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\tvar draftTitle = draftTiddler.fields.title,\n\t\t\tstoryList = this.getStoryList();\n\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\tthis.saveStoryList(storyList);\n\t\treturn false;\n\t}\n};\n\n// Delete a tiddler\nNavigatorWidget.prototype.handleDeleteTiddlerEvent = function(event) {\n\t// Get the tiddler we're deleting\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList(),\n\t\toriginalTitle = tiddler ? tiddler.fields[\"draft.of\"] : \"\",\n\t\toriginalTiddler = originalTitle ? this.wiki.getTiddler(originalTitle) : undefined,\n\t\tconfirmationTitle;\n\tif(!tiddler) {\n\t\treturn false;\n\t}\n\t// Check if the tiddler we're deleting is in draft mode\n\tif(originalTitle) {\n\t\t// If so, we'll prompt for confirmation referencing the original tiddler\n\t\tconfirmationTitle = originalTitle;\n\t} else {\n\t\t// If not a draft, then prompt for confirmation referencing the specified tiddler\n\t\tconfirmationTitle = title;\n\t}\n\t// Seek confirmation\n\tif((this.wiki.getTiddler(originalTitle) || (tiddler.fields.text || \"\") !== \"\") && !confirm($tw.language.getString(\n\t\t\t\t\"ConfirmDeleteTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: confirmationTitle}\n\t\t\t\t}\n\t\t\t))) {\n\t\treturn false;\n\t}\n\t// Delete the original tiddler\n\tif(originalTitle) {\n\t\tif(originalTiddler) {\n\t\t\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",originalTiddler);\n\t\t}\n\t\tthis.wiki.deleteTiddler(originalTitle);\n\t\tthis.removeTitleFromStory(storyList,originalTitle);\n\t}\n\t// Invoke the hook function and delete this tiddler\n\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",tiddler);\n\tthis.wiki.deleteTiddler(title);\n\t// Remove the closed tiddler from the story\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\treturn false;\n};\n\n/*\nCreate/reuse the draft tiddler for a given title\n*/\nNavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {\n\t// See if there is already a draft tiddler for this tiddler\n\tvar draftTitle = this.wiki.findDraft(targetTitle);\n\tif(draftTitle) {\n\t\treturn this.wiki.getTiddler(draftTitle);\n\t}\n\t// Get the current value of the tiddler we're editing\n\tvar tiddler = this.wiki.getTiddler(targetTitle);\n\t// Save the initial value of the draft tiddler\n\tdraftTitle = this.generateDraftTitle(targetTitle);\n\tvar draftTiddler = new $tw.Tiddler({\n\t\t\t\ttext: \"\",\n\t\t\t},\n\t\t\ttiddler,\n\t\t\t{\n\t\t\t\ttitle: draftTitle,\n\t\t\t\t\"draft.title\": targetTitle,\n\t\t\t\t\"draft.of\": targetTitle\n\t\t\t},\n\t\t\tthis.wiki.getModificationFields()\n\t\t);\n\tthis.wiki.addTiddler(draftTiddler);\n\treturn draftTiddler;\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nNavigatorWidget.prototype.generateDraftTitle = function(title) {\n\treturn this.wiki.generateDraftTitle(title);\n};\n\n// Take a tiddler out of edit mode, saving the changes\nNavigatorWidget.prototype.handleSaveTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList();\n\t// Replace the original tiddler with the draft\n\tif(tiddler) {\n\t\tvar draftTitle = (tiddler.fields[\"draft.title\"] || \"\").trim(),\n\t\t\tdraftOf = (tiddler.fields[\"draft.of\"] || \"\").trim();\n\t\tif(draftTitle) {\n\t\t\tvar isRename = draftOf !== draftTitle,\n\t\t\t\tisConfirmed = true;\n\t\t\tif(isRename && this.wiki.tiddlerExists(draftTitle)) {\n\t\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\t\"ConfirmOverwriteTiddler\",\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{title: draftTitle}\n\t\t\t\t\t}\n\t\t\t\t));\n\t\t\t}\n\t\t\tif(isConfirmed) {\n\t\t\t\t// Create the new tiddler and pass it through the th-saving-tiddler hook\n\t\t\t\tvar newTiddler = new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\ttitle: draftTitle,\n\t\t\t\t\t\"draft.title\": undefined,\n\t\t\t\t\t\"draft.of\": undefined\n\t\t\t\t},this.wiki.getModificationFields());\n\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-saving-tiddler\",newTiddler,tiddler);\n\t\t\t\tthis.wiki.addTiddler(newTiddler);\n\t\t\t\t// If enabled, relink references to renamed tiddler\n\t\t\t\tvar shouldRelink = this.getAttribute(\"relinkOnRename\",\"no\").toLowerCase().trim() === \"yes\";\n\t\t\t\tif(isRename && shouldRelink && this.wiki.tiddlerExists(draftOf)) {\n\t\t\t\t\tthis.wiki.relinkTiddler(draftOf,draftTitle);\n\t\t\t\t}\n\t\t\t\t// Remove the draft tiddler\n\t\t\t\tthis.wiki.deleteTiddler(title);\n\t\t\t\t// Remove the original tiddler if we're renaming it\n\t\t\t\tif(isRename) {\n\t\t\t\t\tthis.wiki.deleteTiddler(draftOf);\n\t\t\t\t}\n\t\t\t\t// #2381 always remove new title & old\n\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\tthis.removeTitleFromStory(storyList,draftOf);\n\t\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\t\t// Replace the draft in the story with the original\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\t\t\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\t\t\t\tif(draftTitle !== this.storyTitle) {\n\t\t\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Trigger an autosave\n\t\t\t\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Take a tiddler out of edit mode without saving the changes\nNavigatorWidget.prototype.handleCancelTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-cancelling-tiddler\", event);\n\t// Flip the specified tiddler from draft back to the original\n\tvar draftTitle = event.param || event.tiddlerTitle,\n\t\tdraftTiddler = this.wiki.getTiddler(draftTitle),\n\t\toriginalTitle = draftTiddler && draftTiddler.fields[\"draft.of\"];\n\tif(draftTiddler && originalTitle) {\n\t\t// Ask for confirmation if the tiddler text has changed\n\t\tvar isConfirmed = true,\n\t\t\toriginalTiddler = this.wiki.getTiddler(originalTitle),\n\t\t\tstoryList = this.getStoryList();\n\t\tif(this.wiki.isDraftModified(draftTitle)) {\n\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\"ConfirmCancelTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: draftTitle}\n\t\t\t\t}\n\t\t\t));\n\t\t}\n\t\t// Remove the draft tiddler\n\t\tif(isConfirmed) {\n\t\t\tthis.wiki.deleteTiddler(draftTitle);\n\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\tif(originalTiddler) {\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,draftTitle,originalTitle);\n\t\t\t\t\tthis.addToHistory(originalTitle,event.navigateFromClientRect);\n\t\t\t\t} else {\n\t\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\t}\n\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Create a new draft tiddler\n// event.param can either be the title of a template tiddler, or a hashmap of fields.\n//\n// The title of the newly created tiddler follows these rules:\n// * If a hashmap was used and a title field was specified, use that title\n// * If a hashmap was used without a title field, use a default title, if necessary making it unique with a numeric suffix\n// * If a template tiddler was used, use the title of the template, if necessary making it unique with a numeric suffix\n//\n// If a draft of the target tiddler already exists then it is reused\nNavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-new-tiddler\", event);\n\t// Get the story details\n\tvar storyList = this.getStoryList(),\n\t\ttemplateTiddler, additionalFields, title, draftTitle, existingTiddler;\n\t// Get the template tiddler (if any)\n\tif(typeof event.param === \"string\") {\n\t\t// Get the template tiddler\n\t\ttemplateTiddler = this.wiki.getTiddler(event.param);\n\t\t// Generate a new title\n\t\ttitle = this.wiki.generateNewTitle(event.param || $tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t}\n\t// Get the specified additional fields\n\tif(typeof event.paramObject === \"object\") {\n\t\tadditionalFields = event.paramObject;\n\t}\n\tif(typeof event.param === \"object\") { // Backwards compatibility with 5.1.3\n\t\tadditionalFields = event.param;\n\t}\n\tif(additionalFields && additionalFields.title) {\n\t\ttitle = additionalFields.title;\n\t}\n\t// Make a copy of the additional fields excluding any blank ones\n\tvar filteredAdditionalFields = $tw.utils.extend({},additionalFields);\n\tObject.keys(filteredAdditionalFields).forEach(function(fieldName) {\n\t\tif(filteredAdditionalFields[fieldName] === \"\") {\n\t\t\tdelete filteredAdditionalFields[fieldName];\n\t\t}\n\t});\n\t// Generate a title if we don't have one\n\ttitle = title || this.wiki.generateNewTitle($tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t// Find any existing draft for this tiddler\n\tdraftTitle = this.wiki.findDraft(title);\n\t// Pull in any existing tiddler\n\tif(draftTitle) {\n\t\texistingTiddler = this.wiki.getTiddler(draftTitle);\n\t} else {\n\t\tdraftTitle = this.generateDraftTitle(title);\n\t\texistingTiddler = this.wiki.getTiddler(title);\n\t}\n\t// Merge the tags\n\tvar mergedTags = [];\n\tif(existingTiddler && existingTiddler.fields.tags) {\n\t\t$tw.utils.pushTop(mergedTags,existingTiddler.fields.tags);\n\t}\n\tif(additionalFields && additionalFields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,$tw.utils.parseStringArray(additionalFields.tags));\n\t}\n\tif(templateTiddler && templateTiddler.fields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,templateTiddler.fields.tags);\n\t}\n\t// Save the draft tiddler\n\tvar draftTiddler = new $tw.Tiddler({\n\t\t\ttext: \"\",\n\t\t\t\"draft.title\": title\n\t\t},\n\t\ttemplateTiddler,\n\t\tadditionalFields,\n\t\tthis.wiki.getCreationFields(),\n\t\texistingTiddler,\n\t\tfilteredAdditionalFields,\n\t\t{\n\t\t\ttitle: draftTitle,\n\t\t\t\"draft.of\": title,\n\t\t\ttags: mergedTags\n\t\t},this.wiki.getModificationFields());\n\tthis.wiki.addTiddler(draftTiddler);\n\t// Update the story to insert the new draft at the top and remove any existing tiddler\n\tif(storyList && storyList.indexOf(draftTitle) === -1) {\n\t\tvar slot = storyList.indexOf(event.navigateFromTitle);\n\t\tif(slot === -1) {\n\t\t\tslot = this.getAttribute(\"openLinkFromOutsideRiver\",\"top\") === \"bottom\" ? storyList.length - 1 : slot;\n\t\t}\n\t\tstoryList.splice(slot + 1,0,draftTitle);\n\t}\n\tif(storyList && storyList.indexOf(title) !== -1) {\n\t\tstoryList.splice(storyList.indexOf(title),1);\n\t}\n\tthis.saveStoryList(storyList);\n\t// Add a new record to the top of the history stack\n\tthis.addToHistory(draftTitle);\n\treturn false;\n};\n\n// Import JSON tiddlers into a pending import tiddler\nNavigatorWidget.prototype.handleImportTiddlersEvent = function(event) {\n\t// Get the tiddlers\n\tvar tiddlers = [];\n\ttry {\n\t\ttiddlers = JSON.parse(event.param);\n\t} catch(e) {\n\t}\n\t// Get the current $:/Import tiddler\n\tvar importTitle = event.importTitle ? event.importTitle : IMPORT_TITLE,\n\t\timportTiddler = this.wiki.getTiddler(importTitle),\n\t\timportData = this.wiki.getTiddlerData(importTitle,{}),\n\t\tnewFields = new Object({\n\t\t\ttitle: importTitle,\n\t\t\ttype: \"application/json\",\n\t\t\t\"plugin-type\": \"import\",\n\t\t\t\"status\": \"pending\"\n\t\t}),\n\t\tincomingTiddlers = [];\n\t// Process each tiddler\n\timportData.tiddlers = importData.tiddlers || {};\n\t$tw.utils.each(tiddlers,function(tiddlerFields) {\n\t\ttiddlerFields.title = $tw.utils.trim(tiddlerFields.title);\n\t\tvar title = tiddlerFields.title;\n\t\tif(title) {\n\t\t\tincomingTiddlers.push(title);\n\t\t\timportData.tiddlers[title] = tiddlerFields;\n\t\t}\n\t});\n\t// Give the active upgrader modules a chance to process the incoming tiddlers\n\tvar messages = this.wiki.invokeUpgraders(incomingTiddlers,importData.tiddlers);\n\t$tw.utils.each(messages,function(message,title) {\n\t\tnewFields[\"message-\" + title] = message;\n\t});\n\t// Deselect any suppressed tiddlers\n\t$tw.utils.each(importData.tiddlers,function(tiddler,title) {\n\t\tif($tw.utils.count(tiddler) === 0) {\n\t\t\tnewFields[\"selection-\" + title] = \"unchecked\";\n\t\t\tnewFields[\"suppressed-\" + title] = \"yes\";\n\t\t}\n\t});\n\t// Save the $:/Import tiddler\n\tnewFields.text = JSON.stringify(importData,null,$tw.config.preferences.jsonSpaces);\n\tthis.wiki.addTiddler(new $tw.Tiddler(importTiddler,newFields));\n\t// Update the story and history details\n\tvar autoOpenOnImport = event.autoOpenOnImport ? event.autoOpenOnImport : this.getVariable(\"tv-auto-open-on-import\"); \n\tif(autoOpenOnImport !== \"no\") {\n\t\tvar storyList = this.getStoryList(),\n\t\t\thistory = [];\n\t\t// Add it to the story\n\t\tif(storyList && storyList.indexOf(importTitle) === -1) {\n\t\t\tstoryList.unshift(importTitle);\n\t\t}\n\t\t// And to history\n\t\thistory.push(importTitle);\n\t\t// Save the updated story and history\n\t\tthis.saveStoryList(storyList);\n\t\tthis.addToHistory(history);\n\t}\n\treturn false;\n};\n\n//\nNavigatorWidget.prototype.handlePerformImportEvent = function(event) {\n\tvar self = this,\n\t\timportTiddler = this.wiki.getTiddler(event.param),\n\t\timportData = this.wiki.getTiddlerDataCached(event.param,{tiddlers: {}}),\n\t\timportReport = [];\n\t// Add the tiddlers to the store\n\timportReport.push($tw.language.getString(\"Import/Imported/Hint\") + \"\\n\");\n\t$tw.utils.each(importData.tiddlers,function(tiddlerFields) {\n\t\tvar title = tiddlerFields.title;\n\t\tif(title && importTiddler && importTiddler.fields[\"selection-\" + title] !== \"unchecked\") {\n\t\t\tif($tw.utils.hop(importTiddler.fields,[\"rename-\" + title])) {\n\t\t\t\tvar tiddler = new $tw.Tiddler(tiddlerFields,{title : importTiddler.fields[\"rename-\" + title]});\n\t\t\t} else {\n\t\t\t\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\t\t\t}\n\t\t\ttiddler = $tw.hooks.invokeHook(\"th-importing-tiddler\",tiddler);\n\t\t\tself.wiki.addTiddler(tiddler);\n\t\t\timportReport.push(\"# [[\" + tiddler.fields.title + \"]]\");\n\t\t}\n\t});\n\t// Replace the $:/Import tiddler with an import report\n\tthis.wiki.addTiddler(new $tw.Tiddler({\n\t\ttitle: event.param,\n\t\ttext: importReport.join(\"\\n\"),\n\t\t\"status\": \"complete\"\n\t}));\n\t// Navigate to the $:/Import tiddler\n\tthis.addToHistory([event.param]);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n};\n\nNavigatorWidget.prototype.handleFoldTiddlerEvent = function(event) {\n\tvar paramObject = event.paramObject || {};\n\tif(paramObject.foldedState) {\n\t\tvar foldedState = this.wiki.getTiddlerText(paramObject.foldedState,\"show\") === \"show\" ? \"hide\" : \"show\";\n\t\tthis.wiki.setText(paramObject.foldedState,\"text\",null,foldedState);\n\t}\n};\n\nNavigatorWidget.prototype.handleFoldOtherTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,event.param === title ? \"show\" : \"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleFoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix || \"$:/state/folded/\";\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleUnfoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"show\");\n\t});\n};\n\nNavigatorWidget.prototype.handleRenameTiddlerEvent = function(event) {\n\tvar options = {},\n\t\tparamObject = event.paramObject || {},\n\t\tfrom = paramObject.from || event.tiddlerTitle,\n\t\tto = paramObject.to;\n\toptions.dontRenameInTags = (paramObject.renameInTags === \"false\" || paramObject.renameInTags === \"no\") ? true : false;\n\toptions.dontRenameInLists = (paramObject.renameInLists === \"false\" || paramObject.renameInLists === \"no\") ? true : false;\n\tthis.wiki.renameTiddler(from,to,options);\n};\n\nexports.navigator = NavigatorWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/password.js": {
"title": "$:/core/modules/widgets/password.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/password.js\ntype: application/javascript\nmodule-type: widget\n\nPassword widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar PasswordWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nPasswordWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nPasswordWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the current password\n\tvar password = $tw.browser ? $tw.utils.getPassword(this.passwordName) || \"\" : \"\";\n\t// Create our element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"password\");\n\tdomNode.setAttribute(\"value\",password);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nPasswordWidget.prototype.handleChangeEvent = function(event) {\n\tvar password = this.domNodes[0].value;\n\treturn $tw.utils.savePassword(this.passwordName,password);\n};\n\n/*\nCompute the internal state of the widget\n*/\nPasswordWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.passwordName = this.getAttribute(\"name\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nPasswordWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.password = PasswordWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/qualify.js": {
"title": "$:/core/modules/widgets/qualify.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/qualify.js\ntype: application/javascript\nmodule-type: widget\n\nQualify text to a variable \n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar QualifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nQualifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nQualifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nQualifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.qualifyName = this.getAttribute(\"name\");\n\tthis.qualifyTitle = this.getAttribute(\"title\");\n\t// Set context variable\n\tif(this.qualifyName) {\n\t\tthis.setVariable(this.qualifyName,this.qualifyTitle + \"-\" + this.getStateQualifier());\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nQualifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.title) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.qualify = QualifyWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/radio.js": {
"title": "$:/core/modules/widgets/radio.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/radio.js\ntype: application/javascript\nmodule-type: widget\n\nSet a field or index at a given tiddler via radio buttons\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar RadioWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRadioWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRadioWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tvar isChecked = this.getValue() === this.radioValue;\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",\n\t\t\"tc-radio \" + this.radioClass + (isChecked ? \" tc-radio-selected\" : \"\")\n\t);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"radio\");\n\tif(isChecked) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tif(this.isDisabled === \"yes\") {\n\t\tthis.inputDomNode.setAttribute(\"disabled\",true);\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nRadioWidget.prototype.getValue = function() {\n\tvar value,\n\t\ttiddler = this.wiki.getTiddler(this.radioTitle);\n\tif (this.radioIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.radioTitle,this.radioIndex);\n\t} else {\n\t\tvalue = tiddler && tiddler.getFieldString(this.radioField);\n\t}\n\treturn value;\n};\n\nRadioWidget.prototype.setValue = function() {\n\tif(this.radioIndex) {\n\t\tthis.wiki.setText(this.radioTitle,\"\",this.radioIndex,this.radioValue);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.radioTitle),\n\t\t\taddition = {};\n\t\taddition[this.radioField] = this.radioValue;\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),{title: this.radioTitle},tiddler,addition,this.wiki.getModificationFields()));\n\t}\n};\n\nRadioWidget.prototype.handleChangeEvent = function(event) {\n\tif(this.inputDomNode.checked) {\n\t\tthis.setValue();\n\t}\n\t// Trigger actions\n\tif(this.radioActions) {\n\t\tthis.invokeActionString(this.radioActions,this,event,{\"actionValue\": this.radioValue});\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRadioWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.radioTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.radioField = this.getAttribute(\"field\",\"text\");\n\tthis.radioIndex = this.getAttribute(\"index\");\n\tthis.radioValue = this.getAttribute(\"value\");\n\tthis.radioClass = this.getAttribute(\"class\",\"\");\n\tthis.isDisabled = this.getAttribute(\"disabled\",\"no\");\n\tthis.radioActions = this.getAttribute(\"actions\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRadioWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(($tw.utils.count(changedAttributes) > 0) || changedTiddlers[this.radioTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.radio = RadioWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/range.js": {
"title": "$:/core/modules/widgets/range.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/range.js\ntype: application/javascript\nmodule-type: widget\n\nRange widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RangeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRangeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRangeWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"range\");\n\tthis.inputDomNode.setAttribute(\"class\",this.elementClass);\n\tif(this.minValue){\n\t\tthis.inputDomNode.setAttribute(\"min\", this.minValue);\n\t}\n\tif(this.maxValue){\n\t\tthis.inputDomNode.setAttribute(\"max\", this.maxValue);\n\t}\n\tif(this.increment){\n\t\tthis.inputDomNode.setAttribute(\"step\", this.increment);\n\t}\n\tif(this.isDisabled === \"yes\") {\n\t\tthis.inputDomNode.setAttribute(\"disabled\",true);\n\t}\n\tthis.inputDomNode.value = this.getValue();\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name:\"mousedown\", handlerObject:this, handlerMethod:\"handleMouseDownEvent\"},\n\t\t{name:\"mouseup\", handlerObject:this, handlerMethod:\"handleMouseUpEvent\"},\n\t\t{name:\"change\", handlerObject:this, handlerMethod:\"handleChangeEvent\"},\n\t\t{name:\"input\", handlerObject:this, handlerMethod:\"handleInputEvent\"},\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.inputDomNode,nextSibling);\n\tthis.domNodes.push(this.inputDomNode);\n};\n\nRangeWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle),\n\t\tfieldName = this.tiddlerField,\n\t\tvalue = this.defaultValue;\n\tif(tiddler) {\n\t\tif(this.tiddlerIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(tiddler,this.tiddlerIndex,this.defaultValue);\n\t\t} else {\n\t\t\tif($tw.utils.hop(tiddler.fields,fieldName)) {\n\t\t\t\tvalue = tiddler.fields[fieldName] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.defaultValue;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nRangeWidget.prototype.getActionVariables = function(options) {\n\toptions = options || {};\n\tvar hasChanged = (this.startValue !== this.inputDomNode.value) ? \"yes\" : \"no\";\n\t// Trigger actions. Use variables = {key:value, key:value ...}\n\t// the \"value\" is needed.\n\treturn $tw.utils.extend({\"actionValue\": this.inputDomNode.value, \"actionValueHasChanged\": hasChanged}, options);\n}\n\n// actionsStart\nRangeWidget.prototype.handleMouseDownEvent = function(event) {\n\tthis.mouseDown = true; // TODO remove once IE is gone.\n\tthis.startValue = this.inputDomNode.value; // TODO remove this line once IE is gone!\n\tthis.handleEvent(event);\n\t// Trigger actions\n\tif(this.actionsMouseDown) {\n\t\tvar variables = this.getActionVariables() // TODO this line will go into the function call below.\n\t\tthis.invokeActionString(this.actionsMouseDown,this,event,variables);\n\t}\n}\n\n// actionsStop\nRangeWidget.prototype.handleMouseUpEvent = function(event) {\n\tthis.mouseDown = false; // TODO remove once IE is gone.\n\tthis.handleEvent(event);\n\t// Trigger actions\n\tif(this.actionsMouseUp) {\n\t\tvar variables = this.getActionVariables()\n\t\tthis.invokeActionString(this.actionsMouseUp,this,event,variables);\n\t}\n\t// TODO remove the following if() once IE is gone!\n\tif ($tw.browser.isIE) {\n\t\tif (this.startValue !== this.inputDomNode.value) {\n\t\t\tthis.handleChangeEvent(event);\n\t\t\tthis.startValue = this.inputDomNode.value;\n\t\t}\n\t}\n}\n\nRangeWidget.prototype.handleChangeEvent = function(event) {\n\tif (this.mouseDown) { // TODO refactor this function once IE is gone.\n\t\tthis.handleInputEvent(event);\n\t}\n};\n\nRangeWidget.prototype.handleInputEvent = function(event) {\n\tthis.handleEvent(event);\n\t// Trigger actions\n\tif(this.actionsInput) {\n\t\t// \"tiddler\" parameter may be missing. See .execute() below\n\t\tvar variables = this.getActionVariables({\"actionValueHasChanged\": \"yes\"}) // TODO this line will go into the function call below.\n\t\tthis.invokeActionString(this.actionsInput,this,event,variables);\n\t}\n};\n\nRangeWidget.prototype.handleEvent = function(event) {\n\tif(this.getValue() !== this.inputDomNode.value) {\n\t\tif(this.tiddlerIndex) {\n\t\t\tthis.wiki.setText(this.tiddlerTitle,\"\",this.tiddlerIndex,this.inputDomNode.value);\n\t\t} else {\n\t\t\tthis.wiki.setText(this.tiddlerTitle,this.tiddlerField,null,this.inputDomNode.value);\n\t\t}\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRangeWidget.prototype.execute = function() {\n\t// TODO remove the next 1 lines once IE is gone!\n\tthis.mouseUp = true; // Needed for IE10\n\t// Get the parameters from the attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.tiddlerField = this.getAttribute(\"field\",\"text\");\n\tthis.tiddlerIndex = this.getAttribute(\"index\");\n\tthis.minValue = this.getAttribute(\"min\");\n\tthis.maxValue = this.getAttribute(\"max\");\n\tthis.increment = this.getAttribute(\"increment\");\n\tthis.defaultValue = this.getAttribute(\"default\",\"\");\n\tthis.elementClass = this.getAttribute(\"class\",\"\");\n\tthis.isDisabled = this.getAttribute(\"disabled\",\"no\");\n\t// Actions since 5.1.23\n\t// Next 2 only fire once!\n\tthis.actionsMouseDown = this.getAttribute(\"actionsStart\",\"\");\n\tthis.actionsMouseUp = this.getAttribute(\"actionsStop\",\"\");\n\t// Input fires very often!\n\tthis.actionsInput = this.getAttribute(\"actions\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRangeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.tiddlerTitle]) {\n\t\t\tvar value = this.getValue();\n\t\t\tif(this.inputDomNode.value !== value) {\n\t\t\t\tthis.inputDomNode.value = value;\n\t\t\t}\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.range = RangeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/raw.js": {
"title": "$:/core/modules/widgets/raw.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/raw.js\ntype: application/javascript\nmodule-type: widget\n\nRaw widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RawWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRawWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRawWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar div = this.document.createElement(\"div\");\n\tdiv.innerHTML=this.parseTreeNode.html;\n\tparent.insertBefore(div,nextSibling);\n\tthis.domNodes.push(div);\t\n};\n\n/*\nCompute the internal state of the widget\n*/\nRawWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRawWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.raw = RawWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/reveal.js": {
"title": "$:/core/modules/widgets/reveal.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/reveal.js\ntype: application/javascript\nmodule-type: widget\n\nReveal widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RevealWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRevealWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRevealWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.revealTag && $tw.config.htmlUnsafeElements.indexOf(this.revealTag) === -1) {\n\t\ttag = this.revealTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\tthis.domNode = domNode;\n\tthis.assignDomNodeClasses();\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\t}\n\tif(!this.isOpen) {\n\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t}\n\tthis.domNodes.push(domNode);\n};\n\nRevealWidget.prototype.positionPopup = function(domNode) {\n\tdomNode.style.position = \"absolute\";\n\tdomNode.style.zIndex = \"1000\";\n\tvar left,top;\n\tswitch(this.position) {\n\t\tcase \"left\":\n\t\t\tleft = this.popup.left - domNode.offsetWidth;\n\t\t\ttop = this.popup.top;\n\t\t\tbreak;\n\t\tcase \"above\":\n\t\t\tleft = this.popup.left;\n\t\t\ttop = this.popup.top - domNode.offsetHeight;\n\t\t\tbreak;\n\t\tcase \"aboveright\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top + this.popup.height - domNode.offsetHeight;\n\t\t\tbreak;\n\t\tcase \"belowright\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\t\t\t\n\t\tcase \"right\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top;\n\t\t\tbreak;\n\t\tcase \"belowleft\":\n\t\t\tleft = this.popup.left + this.popup.width - domNode.offsetWidth;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\n\t\tcase \"aboveleft\":\n\t\t\tleft = this.popup.left - domNode.offsetWidth;\n\t\t\ttop = this.popup.top - domNode.offsetHeight;\n\t\t\tbreak;\t\t\t\n\t\tdefault: // Below\n\t\t\tleft = this.popup.left;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\n\t}\n\tif(!this.positionAllowNegative) {\n\t\tleft = Math.max(0,left);\n\t\ttop = Math.max(0,top);\n\t}\n\tdomNode.style.left = left + \"px\";\n\tdomNode.style.top = top + \"px\";\n};\n\n/*\nCompute the internal state of the widget\n*/\nRevealWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.state = this.getAttribute(\"state\");\n\tthis.revealTag = this.getAttribute(\"tag\");\n\tthis.type = this.getAttribute(\"type\");\n\tthis.text = this.getAttribute(\"text\");\n\tthis.position = this.getAttribute(\"position\");\n\tthis.positionAllowNegative = this.getAttribute(\"positionAllowNegative\") === \"yes\";\n\t// class attribute handled in assignDomNodeClasses()\n\tthis.style = this.getAttribute(\"style\",\"\");\n\tthis[\"default\"] = this.getAttribute(\"default\",\"\");\n\tthis.animate = this.getAttribute(\"animate\",\"no\");\n\tthis.retain = this.getAttribute(\"retain\",\"no\");\n\tthis.openAnimation = this.animate === \"no\" ? undefined : \"open\";\n\tthis.closeAnimation = this.animate === \"no\" ? undefined : \"close\";\n\tthis.updatePopupPosition = this.getAttribute(\"updatePopupPosition\",\"no\") === \"yes\";\n\t// Compute the title of the state tiddler and read it\n\tthis.stateTiddlerTitle = this.state;\n\tthis.stateTitle = this.getAttribute(\"stateTitle\");\n\tthis.stateField = this.getAttribute(\"stateField\");\n\tthis.stateIndex = this.getAttribute(\"stateIndex\");\n\tthis.readState();\n\t// Construct the child widgets\n\tvar childNodes = this.isOpen ? this.parseTreeNode.children : [];\n\tthis.hasChildNodes = this.isOpen;\n\tthis.makeChildWidgets(childNodes);\n};\n\n/*\nRead the state tiddler\n*/\nRevealWidget.prototype.readState = function() {\n\t// Read the information from the state tiddler\n\tvar state,\n\t defaultState = this[\"default\"];\n\tif(this.stateTitle) {\n\t\tvar stateTitleTiddler = this.wiki.getTiddler(this.stateTitle);\n\t\tif(this.stateField) {\n\t\t\tstate = stateTitleTiddler ? stateTitleTiddler.getFieldString(this.stateField) || defaultState : defaultState;\n\t\t} else if(this.stateIndex) {\n\t\t\tstate = stateTitleTiddler ? this.wiki.extractTiddlerDataItem(this.stateTitle,this.stateIndex) || defaultState : defaultState;\n\t\t} else if(stateTitleTiddler) {\n\t\t\tstate = this.wiki.getTiddlerText(this.stateTitle) || defaultState;\n\t\t} else {\n\t\t\tstate = defaultState;\n\t\t}\n\t} else {\n\t\tstate = this.stateTiddlerTitle ? this.wiki.getTextReference(this.state,this[\"default\"],this.getVariable(\"currentTiddler\")) : this[\"default\"];\n\t}\n\tif(state === null) {\n\t\tstate = this[\"default\"];\n\t}\n\tswitch(this.type) {\n\t\tcase \"popup\":\n\t\t\tthis.readPopupState(state);\n\t\t\tbreak;\n\t\tcase \"match\":\n\t\t\tthis.isOpen = this.text === state;\n\t\t\tbreak;\n\t\tcase \"nomatch\":\n\t\t\tthis.isOpen = this.text !== state;\n\t\t\tbreak;\n\t\tcase \"lt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t\tcase \"gt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"lteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"gteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t}\n};\n\nRevealWidget.prototype.compareStateText = function(state) {\n\treturn state.localeCompare(this.text,undefined,{numeric: true,sensitivity: \"case\"});\n};\n\nRevealWidget.prototype.readPopupState = function(state) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(state);\n\t// Check if the state matches the location regexp\n\tif(match) {\n\t\t// If so, we're open\n\t\tthis.isOpen = true;\n\t\t// Get the location\n\t\tthis.popup = {\n\t\t\tleft: parseFloat(match[1]),\n\t\t\ttop: parseFloat(match[2]),\n\t\t\twidth: parseFloat(match[3]),\n\t\t\theight: parseFloat(match[4])\n\t\t};\n\t} else {\n\t\t// If not, we're closed\n\t\tthis.isOpen = false;\n\t}\n};\n\nRevealWidget.prototype.assignDomNodeClasses = function() {\n\tvar classes = this.getAttribute(\"class\",\"\").split(\" \");\n\tclasses.push(\"tc-reveal\");\n\tthis.domNode.className = classes.join(\" \");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRevealWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.state || changedAttributes.type || changedAttributes.text || changedAttributes.position || changedAttributes.positionAllowNegative || changedAttributes[\"default\"] || changedAttributes.animate || changedAttributes.stateTitle || changedAttributes.stateField || changedAttributes.stateIndex) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar currentlyOpen = this.isOpen;\n\t\tthis.readState();\n\t\tif(this.isOpen !== currentlyOpen) {\n\t\t\tif(this.retain === \"yes\") {\n\t\t\t\tthis.updateState();\n\t\t\t} else {\n\t\t\t\tthis.refreshSelf();\n\t\t\t\treturn true;\n\t\t\t}\n\t\t} else if(this.type === \"popup\" && this.updatePopupPosition && (changedTiddlers[this.state] || changedTiddlers[this.stateTitle])) {\n\t\t\tthis.positionPopup(this.domNode);\n\t\t}\n\t\tif(changedAttributes.style) {\n\t\t\tthis.domNode.style = this.getAttribute(\"style\",\"\");\n\t\t}\n\t\tif(changedAttributes[\"class\"]) {\n\t\t\tthis.assignDomNodeClasses();\n\t\t}\t\t\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\n/*\nCalled by refresh() to dynamically show or hide the content\n*/\nRevealWidget.prototype.updateState = function() {\n\tvar self = this;\n\t// Read the current state\n\tthis.readState();\n\t// Construct the child nodes if needed\n\tvar domNode = this.domNodes[0];\n\tif(this.isOpen && !this.hasChildNodes) {\n\t\tthis.hasChildNodes = true;\n\t\tthis.makeChildWidgets(this.parseTreeNode.children);\n\t\tthis.renderChildren(domNode,null);\n\t}\n\t// Animate our DOM node\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\n\t}\n\tif(this.isOpen) {\n\t\tdomNode.removeAttribute(\"hidden\");\n $tw.anim.perform(this.openAnimation,domNode);\n\t} else {\n\t\t$tw.anim.perform(this.closeAnimation,domNode,{callback: function() {\n\t\t\t//make sure that the state hasn't changed during the close animation\n\t\t\tself.readState()\n\t\t\tif(!self.isOpen) {\n\t\t\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t\t\t}\n\t\t}});\n\t}\n};\n\nexports.reveal = RevealWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/scrollable.js": {
"title": "$:/core/modules/widgets/scrollable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/scrollable.js\ntype: application/javascript\nmodule-type: widget\n\nScrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ScrollableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.scaleFactor = 1;\n\tthis.addEventListeners([\n\t\t{type: \"tm-scroll\", handler: \"handleScrollEvent\"}\n\t]);\n\tif($tw.browser) {\n\t\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\tfunction(callback) {\n\t\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t\t};\n\t\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\t\twindow.webkitCancelAnimationFrame ||\n\t\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\t\twindow.mozCancelAnimationFrame ||\n\t\t\twindow.mozCancelRequestAnimationFrame ||\n\t\t\tfunction(id) {\n\t\t\t\twindow.clearTimeout(id);\n\t\t\t};\n\t}\n};\n\n/*\nInherit from the base widget class\n*/\nScrollableWidget.prototype = new Widget();\n\nScrollableWidget.prototype.cancelScroll = function() {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(window,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle a scroll event\n*/\nScrollableWidget.prototype.handleScrollEvent = function(event) {\n\t// Pass the scroll event through if our offsetsize is larger than our scrollsize\n\tif(this.outerDomNode.scrollWidth <= this.outerDomNode.offsetWidth && this.outerDomNode.scrollHeight <= this.outerDomNode.offsetHeight && this.fallthrough === \"yes\") {\n\t\treturn true;\n\t}\n\tif(event.paramObject && event.paramObject.selector) {\n\t\tthis.scrollSelectorIntoView(null,event.paramObject.selector);\n\t} else {\n\t\tthis.scrollIntoView(event.target);\t\t\t\n\t}\n\treturn false; // Handled event\n};\n\n/*\nScroll an element into view\n*/\nScrollableWidget.prototype.scrollIntoView = function(element) {\n\tvar duration = $tw.utils.getAnimationDuration(),\n\tsrcWindow = element ? element.ownerDocument.defaultView : window;\n\tthis.cancelScroll();\n\tthis.startTime = Date.now();\n\tvar scrollPosition = {\n\t\tx: this.outerDomNode.scrollLeft,\n\t\ty: this.outerDomNode.scrollTop\n\t};\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar scrollableBounds = this.outerDomNode.getBoundingClientRect(),\n\t\tclientTargetBounds = element.getBoundingClientRect(),\n\t\tbounds = {\n\t\t\tleft: clientTargetBounds.left + scrollPosition.x - scrollableBounds.left,\n\t\t\ttop: clientTargetBounds.top + scrollPosition.y - scrollableBounds.top,\n\t\t\twidth: clientTargetBounds.width,\n\t\t\theight: clientTargetBounds.height\n\t\t};\n\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\tvar getEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\t// If the target is already visible then stay where we are\n\t\t\tif(targetPos >= currentPos && (targetPos + targetSize) <= (currentPos + currentSize)) {\n\t\t\t\treturn currentPos;\n\t\t\t// If the target is above/left of the current view, then scroll to its top/left\n\t\t\t} else if(targetPos <= currentPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// If the target is smaller than the window and the scroll position is too far up, then scroll till the target is at the bottom of the window\n\t\t\t} else if(targetSize < currentSize && currentPos < (targetPos + targetSize - currentSize)) {\n\t\t\t\treturn targetPos + targetSize - currentSize;\n\t\t\t// If the target is big, then just scroll to the top\n\t\t\t} else if(currentPos < targetPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// Otherwise, stay where we are\n\t\t\t} else {\n\t\t\t\treturn currentPos;\n\t\t\t}\n\t\t},\n\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,this.outerDomNode.offsetWidth),\n\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,this.outerDomNode.offsetHeight);\n\t// Only scroll if necessary\n\tif(endX !== scrollPosition.x || endY !== scrollPosition.y) {\n\t\tvar self = this,\n\t\t\tdrawFrame;\n\t\tdrawFrame = function () {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll();\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tself.outerDomNode.scrollLeft = scrollPosition.x + (endX - scrollPosition.x) * t;\n\t\t\tself.outerDomNode.scrollTop = scrollPosition.y + (endY - scrollPosition.y) * t;\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(srcWindow,drawFrame);\n\t\t\t}\n\t\t};\n\t\tdrawFrame();\n\t}\n};\n\nScrollableWidget.prototype.scrollSelectorIntoView = function(baseElement,selector,callback) {\n\tbaseElement = baseElement || document.body;\n\tvar element = baseElement.querySelector(selector);\n\tif(element) {\n\t\tthis.scrollIntoView(element,callback);\t\t\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nScrollableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create elements\n\tthis.outerDomNode = this.document.createElement(\"div\");\n\t$tw.utils.setStyle(this.outerDomNode,[\n\t\t{overflowY: \"auto\"},\n\t\t{overflowX: \"auto\"},\n\t\t{webkitOverflowScrolling: \"touch\"}\n\t]);\n\tthis.innerDomNode = this.document.createElement(\"div\");\n\tthis.outerDomNode.appendChild(this.innerDomNode);\n\t// Assign classes\n\tthis.outerDomNode.className = this[\"class\"] || \"\";\n\t// Insert element\n\tparent.insertBefore(this.outerDomNode,nextSibling);\n\tthis.renderChildren(this.innerDomNode,null);\n\tthis.domNodes.push(this.outerDomNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nScrollableWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.fallthrough = this.getAttribute(\"fallthrough\",\"yes\");\n\tthis[\"class\"] = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nScrollableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.scrollable = ScrollableWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/select.js": {
"title": "$:/core/modules/widgets/select.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/select.js\ntype: application/javascript\nmodule-type: widget\n\nSelect widget:\n\n```\n<$select tiddler=\"MyTiddler\" field=\"text\">\n<$list filter=\"[tag[chapter]]\">\n<option value=<<currentTiddler>>>\n<$view field=\"description\"/>\n</option>\n</$list>\n</$select>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SelectWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSelectWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSelectWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\tthis.setSelectValue();\n\t$tw.utils.addEventListeners(this.getSelectDomNode(),[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n};\n\n/*\nHandle a change event\n*/\nSelectWidget.prototype.handleChangeEvent = function(event) {\n\t// Get the new value and assign it to the tiddler\n\tif(this.selectMultiple == false) {\n\t\tvar value = this.getSelectDomNode().value;\n\t} else {\n\t\tvar value = this.getSelectValues()\n\t\t\t\tvalue = $tw.utils.stringifyList(value);\n\t}\n\tthis.wiki.setText(this.selectTitle,this.selectField,this.selectIndex,value);\n\t// Trigger actions\n\tif(this.selectActions) {\n\t\tthis.invokeActionString(this.selectActions,this,event);\n\t}\n};\n\n/*\nIf necessary, set the value of the select element to the current value\n*/\nSelectWidget.prototype.setSelectValue = function() {\n\tvar value = this.selectDefault;\n\t// Get the value\n\tif(this.selectIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.selectTitle,this.selectIndex,value);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.selectTitle);\n\t\tif(tiddler) {\n\t\t\tif(this.selectField === \"text\") {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.selectTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.selectField)) {\n\t\t\t\t\tvalue = tiddler.getFieldString(this.selectField);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.selectField === \"title\") {\n\t\t\t\tvalue = this.selectTitle;\n\t\t\t}\n\t\t}\n\t}\n\t// Assign it to the select element if it's different than the current value\n\tif (this.selectMultiple) {\n\t\tvalue = value === undefined ? \"\" : value;\n\t\tvar select = this.getSelectDomNode();\n\t\tvar values = Array.isArray(value) ? value : $tw.utils.parseStringArray(value);\n\t\tfor(var i=0; i < select.children.length; i++){\n\t\t\tselect.children[i].selected = values.indexOf(select.children[i].value) !== -1\n\t\t}\n\t} else {\n\t\tvar domNode = this.getSelectDomNode();\n\t\tif(domNode.value !== value) {\n\t\t\tdomNode.value = value;\n\t\t}\n\t}\n};\n\n/*\nGet the DOM node of the select element\n*/\nSelectWidget.prototype.getSelectDomNode = function() {\n\treturn this.children[0].domNodes[0];\n};\n\n// Return an array of the selected opion values\n// select is an HTML select element\nSelectWidget.prototype.getSelectValues = function() {\n\tvar select, result, options, opt;\n\tselect = this.getSelectDomNode();\n\tresult = [];\n\toptions = select && select.options;\n\tfor (var i=0; i<options.length; i++) {\n\t\topt = options[i];\n\t\tif (opt.selected) {\n\t\t\tresult.push(opt.value || opt.text);\n\t\t}\n\t}\n\treturn result;\n}\n\n/*\nCompute the internal state of the widget\n*/\nSelectWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.selectActions = this.getAttribute(\"actions\");\n\tthis.selectTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.selectField = this.getAttribute(\"field\",\"text\");\n\tthis.selectIndex = this.getAttribute(\"index\");\n\tthis.selectClass = this.getAttribute(\"class\");\n\tthis.selectDefault = this.getAttribute(\"default\");\n\tthis.selectMultiple = this.getAttribute(\"multiple\", false);\n\tthis.selectSize = this.getAttribute(\"size\");\n\tthis.selectTooltip = this.getAttribute(\"tooltip\");\n\t// Make the child widgets\n\tvar selectNode = {\n\t\ttype: \"element\",\n\t\ttag: \"select\",\n\t\tchildren: this.parseTreeNode.children\n\t};\n\tif(this.selectClass) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"class\",this.selectClass);\n\t}\n\tif(this.selectMultiple) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"multiple\",\"multiple\");\n\t}\n\tif(this.selectSize) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"size\",this.selectSize);\n\t}\n\tif(this.selectTooltip) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"title\",this.selectTooltip);\n\t}\n\tthis.makeChildWidgets([selectNode]);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSelectWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// If we're using a different tiddler/field/index then completely refresh ourselves\n\tif(changedAttributes.selectTitle || changedAttributes.selectField || changedAttributes.selectIndex || changedAttributes.selectTooltip) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t// If the target tiddler value has changed, just update setting and refresh the children\n\t} else {\n\t\tvar childrenRefreshed = this.refreshChildren(changedTiddlers);\n\t\tif(changedTiddlers[this.selectTitle] || childrenRefreshed) {\n\t\t\tthis.setSelectValue();\n\t\t} \n\t\treturn childrenRefreshed;\n\t}\n};\n\nexports.select = SelectWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/set.js": {
"title": "$:/core/modules/widgets/set.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/set.js\ntype: application/javascript\nmodule-type: widget\n\nSet variable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.setName = this.getAttribute(\"name\",\"currentTiddler\");\n\tthis.setFilter = this.getAttribute(\"filter\");\n\tthis.setSelect = this.getAttribute(\"select\");\n\tthis.setTiddler = this.getAttribute(\"tiddler\");\n\tthis.setSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.setField = this.getAttribute(\"field\");\n\tthis.setIndex = this.getAttribute(\"index\");\n\tthis.setValue = this.getAttribute(\"value\");\n\tthis.setEmptyValue = this.getAttribute(\"emptyValue\");\n\t// Set context variable\n\tthis.setVariable(this.setName,this.getValue(),this.parseTreeNode.params,!!this.parseTreeNode.isMacroDefinition);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nGet the value to be assigned\n*/\nSetWidget.prototype.getValue = function() {\n\tvar value = this.setValue;\n\tif(this.setTiddler) {\n\t\tvar tiddler;\n\t\tif(this.setSubTiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.setTiddler,this.setSubTiddler);\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.setTiddler);\t\t\t\n\t\t}\n\t\tif(!tiddler) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t} else if(this.setField) {\n\t\t\tvalue = tiddler.getFieldString(this.setField) || this.setEmptyValue;\n\t\t} else if(this.setIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.setTiddler,this.setIndex,this.setEmptyValue);\n\t\t} else {\n\t\t\tvalue = tiddler.fields.text || this.setEmptyValue ;\n\t\t}\n\t} else if(this.setFilter) {\n\t\tvar results = this.wiki.filterTiddlers(this.setFilter,this);\n\t\tif(this.setValue == null) {\n\t\t\tvar select;\n\t\t\tif(this.setSelect) {\n\t\t\t\tselect = parseInt(this.setSelect,10);\n\t\t\t}\n\t\t\tif(select !== undefined) {\n\t\t\t\tvalue = results[select] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = $tw.utils.stringifyList(results);\t\t\t\n\t\t\t}\n\t\t}\n\t\tif(results.length === 0 && this.setEmptyValue !== undefined) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t}\n\t} else if(!value && this.setEmptyValue) {\n\t\tvalue = this.setEmptyValue;\n\t}\n\treturn value || \"\";\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSetWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.filter || changedAttributes.select || changedAttributes.tiddler || (this.setTiddler && changedTiddlers[this.setTiddler]) || changedAttributes.field || changedAttributes.index || changedAttributes.value || changedAttributes.emptyValue ||\n\t (this.setFilter && this.getValue() != this.variables[this.setName].value)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.setvariable = SetWidget;\nexports.set = SetWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/text.js": {
"title": "$:/core/modules/widgets/text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/text.js\ntype: application/javascript\nmodule-type: widget\n\nText node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TextNodeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTextNodeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTextNodeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar text = this.getAttribute(\"text\",this.parseTreeNode.text || \"\");\n\ttext = text.replace(/\\r/mg,\"\");\n\tvar textNode = this.document.createTextNode(text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTextNodeWidget.prototype.execute = function() {\n\t// Nothing to do for a text node\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTextNodeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.text) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.text = TextNodeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/tiddler.js": {
"title": "$:/core/modules/widgets/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/tiddler.js\ntype: application/javascript\nmodule-type: widget\n\nTiddler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTiddlerWidget.prototype.execute = function() {\n\tthis.tiddlerState = this.computeTiddlerState();\n\tthis.setVariable(\"currentTiddler\",this.tiddlerState.currentTiddler);\n\tthis.setVariable(\"missingTiddlerClass\",this.tiddlerState.missingTiddlerClass);\n\tthis.setVariable(\"shadowTiddlerClass\",this.tiddlerState.shadowTiddlerClass);\n\tthis.setVariable(\"systemTiddlerClass\",this.tiddlerState.systemTiddlerClass);\n\tthis.setVariable(\"tiddlerTagClasses\",this.tiddlerState.tiddlerTagClasses);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nCompute the tiddler state flags\n*/\nTiddlerWidget.prototype.computeTiddlerState = function() {\n\t// Get our parameters\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Compute the state\n\tvar state = {\n\t\tcurrentTiddler: this.tiddlerTitle || \"\",\n\t\tmissingTiddlerClass: (this.wiki.tiddlerExists(this.tiddlerTitle) || this.wiki.isShadowTiddler(this.tiddlerTitle)) ? \"tc-tiddler-exists\" : \"tc-tiddler-missing\",\n\t\tshadowTiddlerClass: this.wiki.isShadowTiddler(this.tiddlerTitle) ? \"tc-tiddler-shadow\" : \"\",\n\t\tsystemTiddlerClass: this.wiki.isSystemTiddler(this.tiddlerTitle) ? \"tc-tiddler-system\" : \"\",\n\t\ttiddlerTagClasses: this.getTagClasses()\n\t};\n\t// Compute a simple hash to make it easier to detect changes\n\tstate.hash = state.currentTiddler + state.missingTiddlerClass + state.shadowTiddlerClass + state.systemTiddlerClass + state.tiddlerTagClasses;\n\treturn state;\n};\n\n/*\nCreate a string of CSS classes derived from the tags of the current tiddler\n*/\nTiddlerWidget.prototype.getTagClasses = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\tif(tiddler) {\n\t\tvar tags = [];\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\ttags.push(\"tc-tagged-\" + encodeURIComponent(tag));\n\t\t});\n\t\treturn tags.join(\" \");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tnewTiddlerState = this.computeTiddlerState();\n\tif(changedAttributes.tiddler || newTiddlerState.hash !== this.tiddlerState.hash) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.tiddler = TiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/transclude.js": {
"title": "$:/core/modules/widgets/transclude.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/transclude.js\ntype: application/javascript\nmodule-type: widget\n\nTransclude widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TranscludeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTranscludeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTranscludeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTranscludeWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.transcludeTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.transcludeSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.transcludeField = this.getAttribute(\"field\");\n\tthis.transcludeIndex = this.getAttribute(\"index\");\n\tthis.transcludeMode = this.getAttribute(\"mode\");\n\tthis.recursionMarker = this.getAttribute(\"recursionMarker\",\"yes\");\n\t// Parse the text reference\n\tvar parseAsInline = !this.parseTreeNode.isBlock;\n\tif(this.transcludeMode === \"inline\") {\n\t\tparseAsInline = true;\n\t} else if(this.transcludeMode === \"block\") {\n\t\tparseAsInline = false;\n\t}\n\tvar parser = this.wiki.parseTextReference(\n\t\t\t\t\t\tthis.transcludeTitle,\n\t\t\t\t\t\tthis.transcludeField,\n\t\t\t\t\t\tthis.transcludeIndex,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tparseAsInline: parseAsInline,\n\t\t\t\t\t\t\tsubTiddler: this.transcludeSubTiddler\n\t\t\t\t\t\t}),\n\t\tparseTreeNodes = parser ? parser.tree : this.parseTreeNode.children;\n\t// Set context variables for recursion detection\n\tvar recursionMarker = this.makeRecursionMarker();\n\tif(this.recursionMarker === \"yes\") {\n\t\tthis.setVariable(\"transclusion\",recursionMarker);\n\t}\n\t// Check for recursion\n\tif(parser) {\n\t\tif(this.parentWidget && this.parentWidget.hasVariable(\"transclusion\",recursionMarker)) {\n\t\t\tparseTreeNodes = [{type: \"element\", tag: \"span\", attributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-error\"}\n\t\t\t}, children: [\n\t\t\t\t{type: \"text\", text: $tw.language.getString(\"Error/RecursiveTransclusion\")}\n\t\t\t]}];\n\t\t}\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nCompose a string comprising the title, field and/or index to identify this transclusion for recursion detection\n*/\nTranscludeWidget.prototype.makeRecursionMarker = function() {\n\tvar output = [];\n\toutput.push(\"{\");\n\toutput.push(this.getVariable(\"currentTiddler\",{defaultValue: \"\"}));\n\toutput.push(\"|\");\n\toutput.push(this.transcludeTitle || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeField || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeIndex || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeSubTiddler || \"\");\n\toutput.push(\"}\");\n\treturn output.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTranscludeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedTiddlers[this.transcludeTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.transclude = TranscludeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/vars.js": {
"title": "$:/core/modules/widgets/vars.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/vars.js\ntype: application/javascript\nmodule-type: widget\n\nThis widget allows multiple variables to be set in one go:\n\n```\n\\define helloworld() Hello world!\n<$vars greeting=\"Hi\" me={{!!title}} sentence=<<helloworld>>>\n <<greeting>>! I am <<me>> and I say: <<sentence>>\n</$vars>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar VarsWidget = function(parseTreeNode,options) {\n\t// Call the constructor\n\tWidget.call(this);\n\t// Initialise\t\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nVarsWidget.prototype = Object.create(Widget.prototype);\n\n/*\nRender this widget into the DOM\n*/\nVarsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nVarsWidget.prototype.execute = function() {\n\t// Parse variables\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(val,key) {\n\t\tif(key.charAt(0) !== \"$\") {\n\t\t\tself.setVariable(key,val);\n\t\t}\n\t});\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nVarsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"vars\"] = VarsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/view.js": {
"title": "$:/core/modules/widgets/view.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/view.js\ntype: application/javascript\nmodule-type: widget\n\nView widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ViewWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nViewWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nViewWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tif(this.text) {\n\t\tvar textNode = this.document.createTextNode(this.text);\n\t\tparent.insertBefore(textNode,nextSibling);\n\t\tthis.domNodes.push(textNode);\n\t} else {\n\t\tthis.makeChildWidgets();\n\t\tthis.renderChildren(parent,nextSibling);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nViewWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.viewTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.viewSubtiddler = this.getAttribute(\"subtiddler\");\n\tthis.viewField = this.getAttribute(\"field\",\"text\");\n\tthis.viewIndex = this.getAttribute(\"index\");\n\tthis.viewFormat = this.getAttribute(\"format\",\"text\");\n\tthis.viewTemplate = this.getAttribute(\"template\",\"\");\n\tthis.viewMode = this.getAttribute(\"mode\",\"block\");\n\tswitch(this.viewFormat) {\n\t\tcase \"htmlwikified\":\n\t\t\tthis.text = this.getValueAsHtmlWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"plainwikified\":\n\t\t\tthis.text = this.getValueAsPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencodedplainwikified\":\n\t\t\tthis.text = this.getValueAsHtmlEncodedPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencoded\":\n\t\t\tthis.text = this.getValueAsHtmlEncoded();\n\t\t\tbreak;\n\t\tcase \"urlencoded\":\n\t\t\tthis.text = this.getValueAsUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"doubleurlencoded\":\n\t\t\tthis.text = this.getValueAsDoubleUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"date\":\n\t\t\tthis.text = this.getValueAsDate(this.viewTemplate);\n\t\t\tbreak;\n\t\tcase \"relativedate\":\n\t\t\tthis.text = this.getValueAsRelativeDate();\n\t\t\tbreak;\n\t\tcase \"stripcomments\":\n\t\t\tthis.text = this.getValueAsStrippedComments();\n\t\t\tbreak;\n\t\tcase \"jsencoded\":\n\t\t\tthis.text = this.getValueAsJsEncoded();\n\t\t\tbreak;\n\t\tdefault: // \"text\"\n\t\t\tthis.text = this.getValueAsText();\n\t\t\tbreak;\n\t}\n};\n\n/*\nThe various formatter functions are baked into this widget for the moment. Eventually they will be replaced by macro functions\n*/\n\n/*\nRetrieve the value of the widget. Options are:\nasString: Optionally return the value as a string\n*/\nViewWidget.prototype.getValue = function(options) {\n\toptions = options || {};\n\tvar value = options.asString ? \"\" : undefined;\n\tif(this.viewIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.viewTitle,this.viewIndex);\n\t} else {\n\t\tvar tiddler;\n\t\tif(this.viewSubtiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.viewTitle,this.viewSubtiddler);\t\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.viewTitle);\n\t\t}\n\t\tif(tiddler) {\n\t\t\tif(this.viewField === \"text\" && !this.viewSubtiddler) {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.viewTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.viewField)) {\n\t\t\t\t\tif(options.asString) {\n\t\t\t\t\t\tvalue = tiddler.getFieldString(this.viewField);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = tiddler.fields[this.viewField];\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.viewField === \"title\") {\n\t\t\t\tvalue = this.viewTitle;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nViewWidget.prototype.getValueAsText = function() {\n\treturn this.getValue({asString: true});\n};\n\nViewWidget.prototype.getValueAsHtmlWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/html\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsPlainWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsHtmlEncodedPlainWikified = function(mode) {\n\treturn $tw.utils.htmlEncode(this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t}));\n};\n\nViewWidget.prototype.getValueAsHtmlEncoded = function() {\n\treturn $tw.utils.htmlEncode(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsUrlEncoded = function() {\n\treturn encodeURIComponent(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsDoubleUrlEncoded = function() {\n\treturn encodeURIComponent(encodeURIComponent(this.getValueAsText()));\n};\n\nViewWidget.prototype.getValueAsDate = function(format) {\n\tformat = format || \"YYYY MM DD 0hh:0mm\";\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.formatDateString(value,format);\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsRelativeDate = function(format) {\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.getRelativeDate((new Date()) - (new Date(value))).description;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsStrippedComments = function() {\n\tvar lines = this.getValueAsText().split(\"\\n\"),\n\t\tout = [];\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar text = lines[line];\n\t\tif(!/^\\s*\\/\\/#/.test(text)) {\n\t\t\tout.push(text);\n\t\t}\n\t}\n\treturn out.join(\"\\n\");\n};\n\nViewWidget.prototype.getValueAsJsEncoded = function() {\n\treturn $tw.utils.stringify(this.getValueAsText());\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nViewWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.template || changedAttributes.format || changedTiddlers[this.viewTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.view = ViewWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/widget.js": {
"title": "$:/core/modules/widgets/widget.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/widget.js\ntype: application/javascript\nmodule-type: widget\n\nWidget base class\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate a widget object for a parse tree node\n\tparseTreeNode: reference to the parse tree node to be rendered\n\toptions: see below\nOptions include:\n\twiki: mandatory reference to wiki associated with this render tree\n\tparentWidget: optional reference to a parent renderer node for the context chain\n\tdocument: optional document object to use instead of global document\n*/\nvar Widget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInitialise widget properties. These steps are pulled out of the constructor so that we can reuse them in subclasses\n*/\nWidget.prototype.initialise = function(parseTreeNode,options) {\n\t// Bail if parseTreeNode is undefined, meaning that the widget constructor was called without any arguments so that it can be subclassed\n\tif(parseTreeNode === undefined) {\n\t\treturn;\n\t}\n\toptions = options || {};\n\t// Save widget info\n\tthis.parseTreeNode = parseTreeNode;\n\tthis.wiki = options.wiki;\n\tthis.parentWidget = options.parentWidget;\n\tthis.variablesConstructor = function() {};\n\tthis.variablesConstructor.prototype = this.parentWidget ? this.parentWidget.variables : {};\n\tthis.variables = new this.variablesConstructor();\n\tthis.document = options.document;\n\tthis.attributes = {};\n\tthis.children = [];\n\tthis.domNodes = [];\n\tthis.eventListeners = {};\n\t// Hashmap of the widget classes\n\tif(!this.widgetClasses) {\n\t\t// Get widget classes\n\t\tWidget.prototype.widgetClasses = $tw.modules.applyMethods(\"widget\");\n\t\t// Process any subclasses\n\t\t$tw.modules.forEachModuleOfType(\"widget-subclass\",function(title,module) {\n\t\t\tif(module.baseClass) {\n\t\t\t\tvar baseClass = Widget.prototype.widgetClasses[module.baseClass];\n\t\t\t\tif(!baseClass) {\n\t\t\t\t\tthrow \"Module '\" + title + \"' is attemping to extend a non-existent base class '\" + module.baseClass + \"'\";\n\t\t\t\t}\n\t\t\t\tvar subClass = module.constructor;\n\t\t\t\tsubClass.prototype = new baseClass();\n\t\t\t\t$tw.utils.extend(subClass.prototype,module.prototype);\n\t\t\t\tWidget.prototype.widgetClasses[module.name || module.baseClass] = subClass;\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWidget.prototype.execute = function() {\n\tthis.makeChildWidgets();\n};\n\n/*\nSet the value of a context variable\nname: name of the variable\nvalue: value of the variable\nparams: array of {name:, default:} for each parameter\nisMacroDefinition: true if the variable is set via a \\define macro pragma (and hence should have variable substitution performed)\n*/\nWidget.prototype.setVariable = function(name,value,params,isMacroDefinition) {\n\tthis.variables[name] = {value: value, params: params, isMacroDefinition: !!isMacroDefinition};\n};\n\n/*\nGet the prevailing value of a context variable\nname: name of variable\noptions: see below\nOptions include\nparams: array of {name:, value:} for each parameter\ndefaultValue: default value if the variable is not defined\n\nReturns an object with the following fields:\n\nparams: array of {name:,value:} of parameters passed to wikitext variables\ntext: text of variable, with parameters properly substituted\n*/\nWidget.prototype.getVariableInfo = function(name,options) {\n\toptions = options || {};\n\tvar actualParams = options.params || [],\n\t\tparentWidget = this.parentWidget;\n\t// Check for the variable defined in the parent widget (or an ancestor in the prototype chain)\n\tif(parentWidget && name in parentWidget.variables) {\n\t\tvar variable = parentWidget.variables[name],\n\t\t\toriginalValue = variable.value,\n\t\t\tvalue = originalValue,\n\t\t\tparams = this.resolveVariableParameters(variable.params,actualParams);\n\t\t// Substitute any parameters specified in the definition\n\t\t$tw.utils.each(params,function(param) {\n\t\t\tvalue = $tw.utils.replaceString(value,new RegExp(\"\\\\$\" + $tw.utils.escapeRegExp(param.name) + \"\\\\$\",\"mg\"),param.value);\n\t\t});\n\t\t// Only substitute variable references if this variable was defined with the \\define pragma\n\t\tif(variable.isMacroDefinition) {\n\t\t\tvalue = this.substituteVariableReferences(value);\t\t\t\n\t\t}\n\t\treturn {\n\t\t\ttext: value,\n\t\t\tparams: params,\n\t\t\tsrcVariable: variable,\n\t\t\tisCacheable: originalValue === value\n\t\t};\n\t}\n\t// If the variable doesn't exist in the parent widget then look for a macro module\n\treturn {\n\t\ttext: this.evaluateMacroModule(name,actualParams,options.defaultValue)\n\t};\n};\n\n/*\nSimplified version of getVariableInfo() that just returns the text\n*/\nWidget.prototype.getVariable = function(name,options) {\n\treturn this.getVariableInfo(name,options).text;\n};\n\nWidget.prototype.resolveVariableParameters = function(formalParams,actualParams) {\n\tformalParams = formalParams || [];\n\tactualParams = actualParams || [];\n\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\tparamInfo, paramValue,\n\t\tresults = [];\n\t// Step through each of the parameters in the macro definition\n\tfor(var p=0; p<formalParams.length; p++) {\n\t\t// Check if we've got a macro call parameter with the same name\n\t\tparamInfo = formalParams[p];\n\t\tparamValue = undefined;\n\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t}\n\t\t}\n\t\t// If not, use the next available anonymous macro call parameter\n\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\tnextAnonParameter++;\n\t\t}\n\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t}\n\t\t// If we've still not got a value, use the default, if any\n\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t// Store the parameter name and value\n\t\tresults.push({name: paramInfo.name, value: paramValue});\n\t}\n\treturn results;\n};\n\nWidget.prototype.substituteVariableReferences = function(text) {\n\tvar self = this;\n\treturn (text || \"\").replace(/\\$\\(([^\\)\\$]+)\\)\\$/g,function(match,p1,offset,string) {\n\t\treturn self.getVariable(p1,{defaultValue: \"\"});\n\t});\n};\n\nWidget.prototype.evaluateMacroModule = function(name,actualParams,defaultValue) {\n\tif($tw.utils.hop($tw.macros,name)) {\n\t\tvar macro = $tw.macros[name],\n\t\t\targs = [];\n\t\tif(macro.params.length > 0) {\n\t\t\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\t\t\tparamInfo, paramValue;\n\t\t\t// Step through each of the parameters in the macro definition\n\t\t\tfor(var p=0; p<macro.params.length; p++) {\n\t\t\t\t// Check if we've got a macro call parameter with the same name\n\t\t\t\tparamInfo = macro.params[p];\n\t\t\t\tparamValue = undefined;\n\t\t\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If not, use the next available anonymous macro call parameter\n\t\t\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\t\t\tnextAnonParameter++;\n\t\t\t\t}\n\t\t\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t\t\t}\n\t\t\t\t// If we've still not got a value, use the default, if any\n\t\t\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t\t\t// Save the parameter\n\t\t\t\targs.push(paramValue);\n\t\t\t}\n\t\t}\n\t\telse for(var i=0; i<actualParams.length; ++i) {\n\t\t\targs.push(actualParams[i].value);\n\t\t}\n\t\treturn (macro.run.apply(this,args) || \"\").toString();\n\t} else {\n\t\treturn defaultValue;\n\t}\n};\n\n/*\nCheck whether a given context variable value exists in the parent chain\n*/\nWidget.prototype.hasVariable = function(name,value) {\n\tvar node = this;\n\twhile(node) {\n\t\tif($tw.utils.hop(node.variables,name) && node.variables[name].value === value) {\n\t\t\treturn true;\n\t\t}\n\t\tnode = node.parentWidget;\n\t}\n\treturn false;\n};\n\n/*\nConstruct a qualifying string based on a hash of concatenating the values of a given variable in the parent chain\n*/\nWidget.prototype.getStateQualifier = function(name) {\n\tthis.qualifiers = this.qualifiers || Object.create(null);\n\tname = name || \"transclusion\";\n\tif(this.qualifiers[name]) {\n\t\treturn this.qualifiers[name];\n\t} else {\n\t\tvar output = [],\n\t\t\tnode = this;\n\t\twhile(node && node.parentWidget) {\n\t\t\tif($tw.utils.hop(node.parentWidget.variables,name)) {\n\t\t\t\toutput.push(node.getVariable(name));\n\t\t\t}\n\t\t\tnode = node.parentWidget;\n\t\t}\n\t\tvar value = $tw.utils.hashString(output.join(\"\"));\n\t\tthis.qualifiers[name] = value;\n\t\treturn value;\n\t}\n};\n\n/*\nCompute the current values of the attributes of the widget. Returns a hashmap of the names of the attributes that have changed\n*/\nWidget.prototype.computeAttributes = function() {\n\tvar changedAttributes = {},\n\t\tself = this,\n\t\tvalue;\n\t$tw.utils.each(this.parseTreeNode.attributes,function(attribute,name) {\n\t\tif(attribute.type === \"filtered\") {\n\t\t\tvalue = self.wiki.filterTiddlers(attribute.filter,self)[0] || \"\";\n\t\t} else if(attribute.type === \"indirect\") {\n\t\t\tvalue = self.wiki.getTextReference(attribute.textReference,\"\",self.getVariable(\"currentTiddler\"));\n\t\t} else if(attribute.type === \"macro\") {\n\t\t\tvalue = self.getVariable(attribute.value.name,{params: attribute.value.params});\n\t\t} else { // String attribute\n\t\t\tvalue = attribute.value;\n\t\t}\n\t\t// Check whether the attribute has changed\n\t\tif(self.attributes[name] !== value) {\n\t\t\tself.attributes[name] = value;\n\t\t\tchangedAttributes[name] = true;\n\t\t}\n\t});\n\treturn changedAttributes;\n};\n\n/*\nCheck for the presence of an attribute\n*/\nWidget.prototype.hasAttribute = function(name) {\n\treturn $tw.utils.hop(this.attributes,name);\n};\n\n/*\nGet the value of an attribute\n*/\nWidget.prototype.getAttribute = function(name,defaultText) {\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\treturn this.attributes[name];\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nAssign the computed attributes of the widget to a domNode\noptions include:\nexcludeEventAttributes: ignores attributes whose name begins with \"on\"\n*/\nWidget.prototype.assignAttributes = function(domNode,options) {\n\toptions = options || {};\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(v,a) {\n\t\t// Check exclusions\n\t\tif(options.excludeEventAttributes && a.substr(0,2) === \"on\") {\n\t\t\tv = undefined;\n\t\t}\n\t\tif(v !== undefined) {\n\t\t\tvar b = a.split(\":\");\n\t\t\t// Setting certain attributes can cause a DOM error (eg xmlns on the svg element)\n\t\t\ttry {\n\t\t\t\tif (b.length == 2 && b[0] == \"xlink\"){\n\t\t\t\t\tdomNode.setAttributeNS(\"http://www.w3.org/1999/xlink\",b[1],v);\n\t\t\t\t} else {\n\t\t\t\t\tdomNode.setAttributeNS(null,a,v);\n\t\t\t\t}\n\t\t\t} catch(e) {\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nMake child widgets correspondng to specified parseTreeNodes\n*/\nWidget.prototype.makeChildWidgets = function(parseTreeNodes) {\n\tthis.children = [];\n\tvar self = this;\n\t$tw.utils.each(parseTreeNodes || (this.parseTreeNode && this.parseTreeNode.children),function(childNode) {\n\t\tself.children.push(self.makeChildWidget(childNode));\n\t});\n};\n\n/*\nConstruct the widget object for a parse tree node\n*/\nWidget.prototype.makeChildWidget = function(parseTreeNode) {\n\tvar WidgetClass = this.widgetClasses[parseTreeNode.type];\n\tif(!WidgetClass) {\n\t\tWidgetClass = this.widgetClasses.text;\n\t\tparseTreeNode = {type: \"text\", text: \"Undefined widget '\" + parseTreeNode.type + \"'\"};\n\t}\n\treturn new WidgetClass(parseTreeNode,{\n\t\twiki: this.wiki,\n\t\tvariables: {},\n\t\tparentWidget: this,\n\t\tdocument: this.document\n\t});\n};\n\n/*\nGet the next sibling of this widget\n*/\nWidget.prototype.nextSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index < this.parentWidget.children.length-1) {\n\t\t\treturn this.parentWidget.children[index+1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the previous sibling of this widget\n*/\nWidget.prototype.previousSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index > 0) {\n\t\t\treturn this.parentWidget.children[index-1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRender the children of this widget into the DOM\n*/\nWidget.prototype.renderChildren = function(parent,nextSibling) {\n\tvar children = this.children;\n\tfor(var i = 0; i < children.length; i++) {\n\t\tchildren[i].render(parent,nextSibling);\n\t};\n};\n\n/*\nAdd a list of event listeners from an array [{type:,handler:},...]\n*/\nWidget.prototype.addEventListeners = function(listeners) {\n\tvar self = this;\n\t$tw.utils.each(listeners,function(listenerInfo) {\n\t\tself.addEventListener(listenerInfo.type,listenerInfo.handler);\n\t});\n};\n\n/*\nAdd an event listener\n*/\nWidget.prototype.addEventListener = function(type,handler) {\n\tvar self = this;\n\tif(typeof handler === \"string\") { // The handler is a method name on this widget\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn self[handler].call(self,event);\n\t\t};\n\t} else { // The handler is a function\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn handler.call(self,event);\n\t\t};\n\t}\n};\n\n/*\nDispatch an event to a widget. If the widget doesn't handle the event then it is also dispatched to the parent widget\n*/\nWidget.prototype.dispatchEvent = function(event) {\n\tevent.widget = event.widget || this;\n\t// Dispatch the event if this widget handles it\n\tvar listener = this.eventListeners[event.type];\n\tif(listener) {\n\t\t// Don't propagate the event if the listener returned false\n\t\tif(!listener(event)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Dispatch the event to the parent widget\n\tif(this.parentWidget) {\n\t\treturn this.parentWidget.dispatchEvent(event);\n\t}\n\treturn true;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nRebuild a previously rendered widget\n*/\nWidget.prototype.refreshSelf = function() {\n\tvar nextSibling = this.findNextSiblingDomNode();\n\tthis.removeChildDomNodes();\n\tthis.render(this.parentDomNode,nextSibling);\n};\n\n/*\nRefresh all the children of a widget\n*/\nWidget.prototype.refreshChildren = function(changedTiddlers) {\n\tvar children = this.children,\n\t\trefreshed = false;\n\tfor (var i = 0; i < children.length; i++) {\n\t\trefreshed = children[i].refresh(changedTiddlers) || refreshed;\n\t}\n\treturn refreshed;\n};\n\n/*\nFind the next sibling in the DOM to this widget. This is done by scanning the widget tree through all next siblings and their descendents that share the same parent DOM node\n*/\nWidget.prototype.findNextSiblingDomNode = function(startIndex) {\n\t// Refer to this widget by its index within its parents children\n\tvar parent = this.parentWidget,\n\t\tindex = startIndex !== undefined ? startIndex : parent.children.indexOf(this);\nif(index === -1) {\n\tthrow \"node not found in parents children\";\n}\n\t// Look for a DOM node in the later siblings\n\twhile(++index < parent.children.length) {\n\t\tvar domNode = parent.children[index].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\t// Go back and look for later siblings of our parent if it has the same parent dom node\n\tvar grandParent = parent.parentWidget;\n\tif(grandParent && parent.parentDomNode === this.parentDomNode) {\n\t\tindex = grandParent.children.indexOf(parent);\n\t\tif(index !== -1) {\n\t\t\treturn parent.findNextSiblingDomNode(index);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nFind the first DOM node generated by a widget or its children\n*/\nWidget.prototype.findFirstDomNode = function() {\n\t// Return the first dom node of this widget, if we've got one\n\tif(this.domNodes.length > 0) {\n\t\treturn this.domNodes[0];\n\t}\n\t// Otherwise, recursively call our children\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar domNode = this.children[t].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRemove any DOM nodes created by this widget or its children\n*/\nWidget.prototype.removeChildDomNodes = function() {\n\t// If this widget has directly created DOM nodes, delete them and exit. This assumes that any child widgets are contained within the created DOM nodes, which would normally be the case\n\tif(this.domNodes.length > 0) {\n\t\t$tw.utils.each(this.domNodes,function(domNode) {\n\t\t\tdomNode.parentNode.removeChild(domNode);\n\t\t});\n\t\tthis.domNodes = [];\n\t} else {\n\t\t// Otherwise, ask the child widgets to delete their DOM nodes\n\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\tchildWidget.removeChildDomNodes();\n\t\t});\n\t}\n};\n\n/*\nInvoke the action widgets that are descendents of the current widget.\n*/\nWidget.prototype.invokeActions = function(triggeringWidget,event) {\n\tvar handled = false;\n\t// For each child widget\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar child = this.children[t];\n\t\t// Invoke the child if it is an action widget\n\t\tif(child.invokeAction) {\n\t\t\tchild.refreshSelf();\n\t\t\tif(child.invokeAction(triggeringWidget,event)) {\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t}\n\t\t// Propagate through through the child if it permits it\n\t\tif(child.allowActionPropagation() && child.invokeActions(triggeringWidget,event)) {\n\t\t\thandled = true;\n\t\t}\n\t}\n\treturn handled;\n};\n\n/*\nInvoke the action widgets defined in a string\n*/\nWidget.prototype.invokeActionString = function(actions,triggeringWidget,event,variables) {\n\tactions = actions || \"\";\n\tvar parser = this.wiki.parseText(\"text/vnd.tiddlywiki\",actions,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document\n\t\t}),\n\t\twidgetNode = this.wiki.makeWidget(parser,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document,\n\t\t\tvariables: variables\n\t\t});\n\tvar container = this.document.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn widgetNode.invokeActions(this,event);\n};\n\n/*\nExecute action tiddlers by tag\n*/\nWidget.prototype.invokeActionsByTag = function(tag,event,variables) {\n\tvar self = this;\n\t$tw.utils.each(self.wiki.filterTiddlers(\"[all[shadows+tiddlers]tag[\" + tag + \"]!has[draft.of]]\"),function(title) {\n\t\tself.invokeActionString(self.wiki.getTiddlerText(title),self,event,variables);\n\t});\n};\n\nWidget.prototype.allowActionPropagation = function() {\n\treturn true;\n};\n\nexports.widget = Widget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/wikify.js": {
"title": "$:/core/modules/widgets/wikify.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/wikify.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to wikify text into a variable\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar WikifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nWikifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nWikifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWikifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.wikifyName = this.getAttribute(\"name\");\n\tthis.wikifyText = this.getAttribute(\"text\");\n\tthis.wikifyType = this.getAttribute(\"type\");\n\tthis.wikifyMode = this.getAttribute(\"mode\",\"block\");\n\tthis.wikifyOutput = this.getAttribute(\"output\",\"text\");\n\t// Create the parse tree\n\tthis.wikifyParser = this.wiki.parseText(this.wikifyType,this.wikifyText,{\n\t\t\tparseAsInline: this.wikifyMode === \"inline\"\n\t\t});\n\t// Create the widget tree \n\tthis.wikifyWidgetNode = this.wiki.makeWidget(this.wikifyParser,{\n\t\t\tdocument: $tw.fakeDocument,\n\t\t\tparentWidget: this\n\t\t});\n\t// Render the widget tree to the container\n\tthis.wikifyContainer = $tw.fakeDocument.createElement(\"div\");\n\tthis.wikifyWidgetNode.render(this.wikifyContainer,null);\n\tthis.wikifyResult = this.getResult();\n\t// Set context variable\n\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nReturn the result string\n*/\nWikifyWidget.prototype.getResult = function() {\n\tvar result;\n\tswitch(this.wikifyOutput) {\n\t\tcase \"text\":\n\t\t\tresult = this.wikifyContainer.textContent;\n\t\t\tbreak;\n\t\tcase \"formattedtext\":\n\t\t\tresult = this.wikifyContainer.formattedTextContent;\n\t\t\tbreak;\n\t\tcase \"html\":\n\t\t\tresult = this.wikifyContainer.innerHTML;\n\t\t\tbreak;\n\t\tcase \"parsetree\":\n\t\t\tresult = JSON.stringify(this.wikifyParser.tree,0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t\tcase \"widgettree\":\n\t\t\tresult = JSON.stringify(this.getWidgetTree(),0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t}\n\treturn result;\n};\n\n/*\nReturn a string of the widget tree\n*/\nWikifyWidget.prototype.getWidgetTree = function() {\n\tvar copyNode = function(widgetNode,resultNode) {\n\t\t\tvar type = widgetNode.parseTreeNode.type;\n\t\t\tresultNode.type = type;\n\t\t\tswitch(type) {\n\t\t\t\tcase \"element\":\n\t\t\t\t\tresultNode.tag = widgetNode.parseTreeNode.tag;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"text\":\n\t\t\t\t\tresultNode.text = widgetNode.parseTreeNode.text;\n\t\t\t\t\tbreak;\t\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.attributes || {}).length > 0) {\n\t\t\t\tresultNode.attributes = {};\n\t\t\t\t$tw.utils.each(widgetNode.attributes,function(attr,attrName) {\n\t\t\t\t\tresultNode.attributes[attrName] = widgetNode.getAttribute(attrName);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.children || {}).length > 0) {\n\t\t\t\tresultNode.children = [];\n\t\t\t\t$tw.utils.each(widgetNode.children,function(widgetChildNode) {\n\t\t\t\t\tvar node = {};\n\t\t\t\t\tresultNode.children.push(node);\n\t\t\t\t\tcopyNode(widgetChildNode,node);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tresults = {};\n\tcopyNode(this.wikifyWidgetNode,results);\n\treturn results;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWikifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh ourselves entirely if any of our attributes have changed\n\tif(changedAttributes.name || changedAttributes.text || changedAttributes.type || changedAttributes.mode || changedAttributes.output) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\t// Refresh the widget tree\n\t\tif(this.wikifyWidgetNode.refresh(changedTiddlers)) {\n\t\t\t// Check if there was any change\n\t\t\tvar result = this.getResult();\n\t\t\tif(result !== this.wikifyResult) {\n\t\t\t\t// If so, save the change\n\t\t\t\tthis.wikifyResult = result;\n\t\t\t\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t\t\t\t// Refresh each of our child widgets\n\t\t\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\t\t\tchildWidget.refreshSelf();\n\t\t\t\t});\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t// Just refresh the children\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.wikify = WikifyWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/wiki-bulkops.js": {
"title": "$:/core/modules/wiki-bulkops.js",
"text": "/*\\\ntitle: $:/core/modules/wiki-bulkops.js\ntype: application/javascript\nmodule-type: wikimethod\n\nBulk tiddler operations such as rename.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRename a tiddler, and relink any tags or lists that reference it.\n*/\nfunction renameTiddler(fromTitle,toTitle,options) {\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\t// Rename the tiddler itself\n\t\tvar oldTiddler = this.getTiddler(fromTitle),\n\t\t\tnewTiddler = new $tw.Tiddler(oldTiddler,{title: toTitle},this.getModificationFields());\n\t\tnewTiddler = $tw.hooks.invokeHook(\"th-renaming-tiddler\",newTiddler,oldTiddler);\n\t\tthis.addTiddler(newTiddler);\n\t\tthis.deleteTiddler(fromTitle);\n\t\t// Rename any tags or lists that reference it\n\t\tthis.relinkTiddler(fromTitle,toTitle,options)\n\t}\n}\n\n/*\nRelink any tags or lists that reference a given tiddler\n*/\nfunction relinkTiddler(fromTitle,toTitle,options) {\n\tvar self = this;\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\tthis.each(function(tiddler,title) {\n\t\t\tvar type = tiddler.fields.type || \"\";\n\t\t\t// Don't touch plugins or JavaScript modules\n\t\t\tif(!tiddler.fields[\"plugin-type\"] && type !== \"application/javascript\") {\n\t\t\t\tvar tags = tiddler.fields.tags ? tiddler.fields.tags.slice(0) : undefined,\n\t\t\t\t\tlist = tiddler.fields.list ? tiddler.fields.list.slice(0) : undefined,\n\t\t\t\t\tisModified = false;\n\t\t\t\tif(!options.dontRenameInTags) {\n\t\t\t\t\t// Rename tags\n\t\t\t\t\t$tw.utils.each(tags,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming tag '\" + tags[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\ttags[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(!options.dontRenameInLists) {\n\t\t\t\t\t// Rename lists\n\t\t\t\t\t$tw.utils.each(list,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming list item '\" + list[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\tlist[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(isModified) {\n\t\t\t\t\tvar newTiddler = new $tw.Tiddler(tiddler,{tags: tags, list: list},self.getModificationFields())\n\t\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-relinking-tiddler\",newTiddler,tiddler);\n\t\t\t\t\tself.addTiddler(newTiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\nexports.renameTiddler = renameTiddler;\nexports.relinkTiddler = relinkTiddler;\n\n})();\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/core/modules/wiki.js": {
"title": "$:/core/modules/wiki.js",
"text": "/*\\\ntitle: $:/core/modules/wiki.js\ntype: application/javascript\nmodule-type: wikimethod\n\nExtension methods for the $tw.Wiki object\n\nAdds the following properties to the wiki object:\n\n* `eventListeners` is a hashmap by type of arrays of listener functions\n* `changedTiddlers` is a hashmap describing changes to named tiddlers since wiki change events were last dispatched. Each entry is a hashmap containing two fields:\n\tmodified: true/false\n\tdeleted: true/false\n* `changeCount` is a hashmap by tiddler title containing a numerical index that starts at zero and is incremented each time a tiddler is created changed or deleted\n* `caches` is a hashmap by tiddler title containing a further hashmap of named cache objects. Caches are automatically cleared when a tiddler is modified or deleted\n* `globalCache` is a hashmap by cache name of cache objects that are cleared whenever any tiddler change occurs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar USER_NAME_TITLE = \"$:/status/UserName\",\n\tTIMESTAMP_DISABLE_TITLE = \"$:/config/TimestampDisable\";\n\n/*\nAdd available indexers to this wiki\n*/\nexports.addIndexersToWiki = function() {\n\tvar self = this;\n\t$tw.utils.each($tw.modules.applyMethods(\"indexer\"),function(Indexer,name) {\n\t\tself.addIndexer(new Indexer(self),name);\n\t});\n};\n\n/*\nGet the value of a text reference. Text references can have any of these forms:\n\t<tiddlertitle>\n\t<tiddlertitle>!!<fieldname>\n\t!!<fieldname> - specifies a field of the current tiddlers\n\t<tiddlertitle>##<index>\n*/\nexports.getTextReference = function(textRef,defaultText,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tif(tr.field) {\n\t\tvar tiddler = this.getTiddler(title);\n\t\tif(tr.field === \"title\") { // Special case so we can return the title of a non-existent tiddler\n\t\t\treturn title;\n\t\t} else if(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\treturn tiddler.getFieldString(tr.field);\n\t\t} else {\n\t\t\treturn defaultText;\n\t\t}\n\t} else if(tr.index) {\n\t\treturn this.extractTiddlerDataItem(title,tr.index,defaultText);\n\t} else {\n\t\treturn this.getTiddlerText(title,defaultText);\n\t}\n};\n\nexports.setTextReference = function(textRef,value,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tthis.setText(title,tr.field,tr.index,value);\n};\n\nexports.setText = function(title,field,index,value,options) {\n\toptions = options || {};\n\tvar creationFields = options.suppressTimestamp ? {} : this.getCreationFields(),\n\t\tmodificationFields = options.suppressTimestamp ? {} : this.getModificationFields();\n\t// Check if it is a reference to a tiddler field\n\tif(index) {\n\t\tvar data = this.getTiddlerData(title,Object.create(null));\n\t\tif(value !== undefined) {\n\t\t\tdata[index] = value;\n\t\t} else {\n\t\t\tdelete data[index];\n\t\t}\n\t\tthis.setTiddlerData(title,data,modificationFields);\n\t} else {\n\t\tvar tiddler = this.getTiddler(title),\n\t\t\tfields = {title: title};\n\t\tfields[field || \"text\"] = value;\n\t\tthis.addTiddler(new $tw.Tiddler(creationFields,tiddler,fields,modificationFields));\n\t}\n};\n\nexports.deleteTextReference = function(textRef,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle,tiddler,fields;\n\t// Check if it is a reference to a tiddler\n\tif(tr.title && !tr.field) {\n\t\tthis.deleteTiddler(tr.title);\n\t// Else check for a field reference\n\t} else if(tr.field) {\n\t\ttitle = tr.title || currTiddlerTitle;\n\t\ttiddler = this.getTiddler(title);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\tfields = Object.create(null);\n\t\t\tfields[tr.field] = undefined;\n\t\t\tthis.addTiddler(new $tw.Tiddler(tiddler,fields,this.getModificationFields()));\n\t\t}\n\t}\n};\n\nexports.addEventListener = function(type,listener) {\n\tthis.eventListeners = this.eventListeners || {};\n\tthis.eventListeners[type] = this.eventListeners[type] || [];\n\tthis.eventListeners[type].push(listener);\t\n};\n\nexports.removeEventListener = function(type,listener) {\n\tvar listeners = this.eventListeners[type];\n\tif(listeners) {\n\t\tvar p = listeners.indexOf(listener);\n\t\tif(p !== -1) {\n\t\t\tlisteners.splice(p,1);\n\t\t}\n\t}\n};\n\nexports.dispatchEvent = function(type /*, args */) {\n\tvar args = Array.prototype.slice.call(arguments,1),\n\t\tlisteners = this.eventListeners[type];\n\tif(listeners) {\n\t\tfor(var p=0; p<listeners.length; p++) {\n\t\t\tvar listener = listeners[p];\n\t\t\tlistener.apply(listener,args);\n\t\t}\n\t}\n};\n\n/*\nCauses a tiddler to be marked as changed, incrementing the change count, and triggers event handlers.\nThis method should be called after the changes it describes have been made to the wiki.tiddlers[] array.\n\ttitle: Title of tiddler\n\tisDeleted: defaults to false (meaning the tiddler has been created or modified),\n\t\ttrue if the tiddler has been deleted\n*/\nexports.enqueueTiddlerEvent = function(title,isDeleted) {\n\t// Record the touch in the list of changed tiddlers\n\tthis.changedTiddlers = this.changedTiddlers || Object.create(null);\n\tthis.changedTiddlers[title] = this.changedTiddlers[title] || Object.create(null);\n\tthis.changedTiddlers[title][isDeleted ? \"deleted\" : \"modified\"] = true;\n\t// Increment the change count\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\tthis.changeCount[title]++;\n\t} else {\n\t\tthis.changeCount[title] = 1;\n\t}\n\t// Trigger events\n\tthis.eventListeners = this.eventListeners || {};\n\tif(!this.eventsTriggered) {\n\t\tvar self = this;\n\t\t$tw.utils.nextTick(function() {\n\t\t\tvar changes = self.changedTiddlers;\n\t\t\tself.changedTiddlers = Object.create(null);\n\t\t\tself.eventsTriggered = false;\n\t\t\tif($tw.utils.count(changes) > 0) {\n\t\t\t\tself.dispatchEvent(\"change\",changes);\n\t\t\t}\n\t\t});\n\t\tthis.eventsTriggered = true;\n\t}\n};\n\nexports.getSizeOfTiddlerEventQueue = function() {\n\treturn $tw.utils.count(this.changedTiddlers);\n};\n\nexports.clearTiddlerEventQueue = function() {\n\tthis.changedTiddlers = Object.create(null);\n\tthis.changeCount = Object.create(null);\n};\n\nexports.getChangeCount = function(title) {\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\treturn this.changeCount[title];\n\t} else {\n\t\treturn 0;\n\t}\n};\n\n/*\nGenerate an unused title from the specified base\n*/\nexports.generateNewTitle = function(baseTitle,options) {\n\toptions = options || {};\n\tvar c = 0,\n\t\ttitle = baseTitle;\n\twhile(this.tiddlerExists(title) || this.isShadowTiddler(title) || this.findDraft(title)) {\n\t\ttitle = baseTitle + \n\t\t\t(options.prefix || \" \") + \n\t\t\t(++c);\n\t}\n\treturn title;\n};\n\nexports.isSystemTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/\") === 0;\n};\n\nexports.isTemporaryTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/temp/\") === 0;\n};\n\nexports.isImageTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.flags.indexOf(\"image\") !== -1;\n\t} else {\n\t\treturn null;\n\t}\n};\n\nexports.isBinaryTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.encoding === \"base64\";\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLike addTiddler() except it will silently reject any plugin tiddlers that are older than the currently loaded version. Returns true if the tiddler was imported\n*/\nexports.importTiddler = function(tiddler) {\n\tvar existingTiddler = this.getTiddler(tiddler.fields.title);\n\t// Check if we're dealing with a plugin\n\tif(tiddler && tiddler.hasField(\"plugin-type\") && tiddler.hasField(\"version\") && existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t// Reject the incoming plugin if it is older\n\t\tif(!$tw.utils.checkVersions(tiddler.fields.version,existingTiddler.fields.version)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Fall through to adding the tiddler\n\tthis.addTiddler(tiddler);\n\treturn true;\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is created\n*/\nexports.getCreationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = {\n\t\t\t\tcreated: new Date()\n\t\t\t},\n\t\t\tcreator = this.getTiddlerText(USER_NAME_TITLE);\n\t\tif(creator) {\n\t\t\tfields.creator = creator;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is modified\n*/\nexports.getModificationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = Object.create(null),\n\t\t\tmodifier = this.getTiddlerText(USER_NAME_TITLE);\n\t\tfields.modified = new Date();\n\t\tif(modifier) {\n\t\t\tfields.modifier = modifier;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a sorted array of tiddler titles. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.getTiddlers = function(options) {\n\toptions = options || Object.create(null);\n\tvar self = this,\n\t\tsortField = options.sortField || \"title\",\n\t\ttiddlers = [], t, titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tif(options.includeSystem || !self.isSystemTiddler(title)) {\n\t\t\tif(!options.excludeTag || !tiddler.hasTag(options.excludeTag)) {\n\t\t\t\ttiddlers.push(tiddler);\n\t\t\t}\n\t\t}\n\t});\n\ttiddlers.sort(function(a,b) {\n\t\tvar aa = a.fields[sortField].toLowerCase() || \"\",\n\t\t\tbb = b.fields[sortField].toLowerCase() || \"\";\n\t\tif(aa < bb) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(aa > bb) {\n\t\t\t\treturn 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n\tfor(t=0; t<tiddlers.length; t++) {\n\t\ttitles.push(tiddlers[t].fields.title);\n\t}\n\treturn titles;\n};\n\nexports.countTiddlers = function(excludeTag) {\n\tvar tiddlers = this.getTiddlers({excludeTag: excludeTag});\n\treturn $tw.utils.count(tiddlers);\n};\n\n/*\nReturns a function iterator(callback) that iterates through the specified titles, and invokes the callback with callback(tiddler,title)\n*/\nexports.makeTiddlerIterator = function(titles) {\n\tvar self = this;\n\tif(!$tw.utils.isArray(titles)) {\n\t\ttitles = Object.keys(titles);\n\t} else {\n\t\ttitles = titles.slice(0);\n\t}\n\treturn function(callback) {\n\t\ttitles.forEach(function(title) {\n\t\t\tcallback(self.getTiddler(title),title);\n\t\t});\n\t};\n};\n\n/*\nSort an array of tiddler titles by a specified field\n\ttitles: array of titles (sorted in place)\n\tsortField: name of field to sort by\n\tisDescending: true if the sort should be descending\n\tisCaseSensitive: true if the sort should consider upper and lower case letters to be different\n*/\nexports.sortTiddlers = function(titles,sortField,isDescending,isCaseSensitive,isNumeric,isAlphaNumeric) {\n\tvar self = this;\n\ttitles.sort(function(a,b) {\n\t\tvar x,y,\n\t\t\tcompareNumbers = function(x,y) {\n\t\t\t\tvar result = \n\t\t\t\t\tisNaN(x) && !isNaN(y) ? (isDescending ? -1 : 1) :\n\t\t\t\t\t!isNaN(x) && isNaN(y) ? (isDescending ? 1 : -1) :\n\t\t\t\t\t\t\t\t\t\t\t(isDescending ? y - x : x - y);\n\t\t\t\treturn result;\n\t\t\t};\n\t\tif(sortField !== \"title\") {\n\t\t\tvar tiddlerA = self.getTiddler(a),\n\t\t\t\ttiddlerB = self.getTiddler(b);\n\t\t\tif(tiddlerA) {\n\t\t\t\ta = tiddlerA.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\ta = \"\";\n\t\t\t}\n\t\t\tif(tiddlerB) {\n\t\t\t\tb = tiddlerB.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\tb = \"\";\n\t\t\t}\n\t\t}\n\t\tx = Number(a);\n\t\ty = Number(b);\n\t\tif(isNumeric && (!isNaN(x) || !isNaN(y))) {\n\t\t\treturn compareNumbers(x,y);\n\t\t} else if($tw.utils.isDate(a) && $tw.utils.isDate(b)) {\n\t\t\treturn isDescending ? b - a : a - b;\n\t\t} else if(isAlphaNumeric) {\n\t\t\treturn isDescending ? b.localeCompare(a,undefined,{numeric: true,sensitivity: \"base\"}) : a.localeCompare(b,undefined,{numeric: true,sensitivity: \"base\"});\n\t\t} else {\n\t\t\ta = String(a);\n\t\t\tb = String(b);\n\t\t\tif(!isCaseSensitive) {\n\t\t\t\ta = a.toLowerCase();\n\t\t\t\tb = b.toLowerCase();\n\t\t\t}\n\t\t\treturn isDescending ? b.localeCompare(a) : a.localeCompare(b);\n\t\t}\n\t});\n};\n\n/*\nFor every tiddler invoke a callback(title,tiddler) with `this` set to the wiki object. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.forEachTiddler = function(/* [options,]callback */) {\n\tvar arg = 0,\n\t\toptions = arguments.length >= 2 ? arguments[arg++] : {},\n\t\tcallback = arguments[arg++],\n\t\ttitles = this.getTiddlers(options),\n\t\tt, tiddler;\n\tfor(t=0; t<titles.length; t++) {\n\t\ttiddler = this.getTiddler(titles[t]);\n\t\tif(tiddler) {\n\t\t\tcallback.call(this,tiddler.fields.title,tiddler);\n\t\t}\n\t}\n};\n\n/*\nReturn an array of tiddler titles that are directly linked within the given parse tree\n */\nexports.extractLinks = function(parseTreeRoot) {\n\t// Count up the links\n\tvar links = [],\n\t\tcheckParseTree = function(parseTree) {\n\t\t\tfor(var t=0; t<parseTree.length; t++) {\n\t\t\t\tvar parseTreeNode = parseTree[t];\n\t\t\t\tif(parseTreeNode.type === \"link\" && parseTreeNode.attributes.to && parseTreeNode.attributes.to.type === \"string\") {\n\t\t\t\t\tvar value = parseTreeNode.attributes.to.value;\n\t\t\t\t\tif(links.indexOf(value) === -1) {\n\t\t\t\t\t\tlinks.push(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(parseTreeNode.children) {\n\t\t\t\t\tcheckParseTree(parseTreeNode.children);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\tcheckParseTree(parseTreeRoot);\n\treturn links;\n};\n\n/*\nReturn an array of tiddler titles that are directly linked from the specified tiddler\n*/\nexports.getTiddlerLinks = function(title) {\n\tvar self = this;\n\t// We'll cache the links so they only get computed if the tiddler changes\n\treturn this.getCacheForTiddler(title,\"links\",function() {\n\t\t// Parse the tiddler\n\t\tvar parser = self.parseTiddler(title);\n\t\tif(parser) {\n\t\t\treturn self.extractLinks(parser.tree);\n\t\t}\n\t\treturn [];\n\t});\n};\n\n/*\nReturn an array of tiddler titles that link to the specified tiddler\n*/\nexports.getTiddlerBacklinks = function(targetTitle) {\n\tvar self = this,\n\t\tbacklinksIndexer = this.getIndexer(\"BacklinksIndexer\"),\n\t\tbacklinks = backlinksIndexer && backlinksIndexer.lookup(targetTitle);\n\n\tif(!backlinks) {\n\t\tbacklinks = [];\n\t\tthis.forEachTiddler(function(title,tiddler) {\n\t\t\tvar links = self.getTiddlerLinks(title);\n\t\t\tif(links.indexOf(targetTitle) !== -1) {\n\t\t\t\tbacklinks.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn backlinks;\n};\n\n/*\nReturn a hashmap of tiddler titles that are referenced but not defined. Each value is the number of times the missing tiddler is referenced\n*/\nexports.getMissingTitles = function() {\n\tvar self = this,\n\t\tmissing = [];\n// We should cache the missing tiddler list, even if we recreate it every time any tiddler is modified\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tif((!self.tiddlerExists(link) && !self.isShadowTiddler(link)) && missing.indexOf(link) === -1) {\n\t\t\t\tmissing.push(link);\n\t\t\t}\n\t\t});\n\t});\n\treturn missing;\n};\n\nexports.getOrphanTitles = function() {\n\tvar self = this,\n\t\torphans = this.getTiddlers();\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tvar p = orphans.indexOf(link);\n\t\t\tif(p !== -1) {\n\t\t\t\torphans.splice(p,1);\n\t\t\t}\n\t\t});\n\t});\n\treturn orphans; // Todo\n};\n\n/*\nRetrieves a list of the tiddler titles that are tagged with a given tag\n*/\nexports.getTiddlersWithTag = function(tag) {\n\t// Try to use the indexer\n\tvar self = this,\n\t\ttagIndexer = this.getIndexer(\"TagIndexer\"),\n\t\tresults = tagIndexer && tagIndexer.subIndexers[3].lookup(tag);\n\tif(!results) {\n\t\t// If not available, perform a manual scan\n\t\tresults = this.getGlobalCache(\"taglist-\" + tag,function() {\n\t\t\tvar tagmap = self.getTagMap();\n\t\t\treturn self.sortByList(tagmap[tag],tag);\n\t\t});\n\t}\n\treturn results;\n};\n\n/*\nGet a hashmap by tag of arrays of tiddler titles\n*/\nexports.getTagMap = function() {\n\tvar self = this;\n\treturn this.getGlobalCache(\"tagmap\",function() {\n\t\tvar tags = Object.create(null),\n\t\t\tstoreTags = function(tagArray,title) {\n\t\t\t\tif(tagArray) {\n\t\t\t\t\tfor(var index=0; index<tagArray.length; index++) {\n\t\t\t\t\t\tvar tag = tagArray[index];\n\t\t\t\t\t\tif($tw.utils.hop(tags,tag)) {\n\t\t\t\t\t\t\ttags[tag].push(title);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttags[tag] = [title];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttitle, tiddler;\n\t\t// Collect up all the tags\n\t\tself.eachShadow(function(tiddler,title) {\n\t\t\tif(!self.tiddlerExists(title)) {\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t\t}\n\t\t});\n\t\tself.each(function(tiddler,title) {\n\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t});\n\t\treturn tags;\n\t});\n};\n\n/*\nLookup a given tiddler and return a list of all the tiddlers that include it in the specified list field\n*/\nexports.findListingsOfTiddler = function(targetTitle,fieldName) {\n\tfieldName = fieldName || \"list\";\n\tvar titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tvar list = $tw.utils.parseStringArray(tiddler.fields[fieldName]);\n\t\tif(list && list.indexOf(targetTitle) !== -1) {\n\t\t\ttitles.push(title);\n\t\t}\n\t});\n\treturn titles;\n};\n\n/*\nSorts an array of tiddler titles according to an ordered list\n*/\nexports.sortByList = function(array,listTitle) {\n\tvar self = this,\n\t\treplacedTitles = Object.create(null);\n\t// Given a title, this function will place it in the correct location\n\t// within titles.\n\tfunction moveItemInList(title) {\n\t\tif(!$tw.utils.hop(replacedTitles, title)) {\n\t\t\treplacedTitles[title] = true;\n\t\t\tvar newPos = -1,\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\tif(tiddler) {\n\t\t\t\tvar beforeTitle = tiddler.fields[\"list-before\"],\n\t\t\t\t\tafterTitle = tiddler.fields[\"list-after\"];\n\t\t\t\tif(beforeTitle === \"\") {\n\t\t\t\t\tnewPos = 0;\n\t\t\t\t} else if(afterTitle === \"\") {\n\t\t\t\t\tnewPos = titles.length;\n\t\t\t\t} else if(beforeTitle) {\n\t\t\t\t\t// if this title is placed relative\n\t\t\t\t\t// to another title, make sure that\n\t\t\t\t\t// title is placed before we place\n\t\t\t\t\t// this one.\n\t\t\t\t\tmoveItemInList(beforeTitle);\n\t\t\t\t\tnewPos = titles.indexOf(beforeTitle);\n\t\t\t\t} else if(afterTitle) {\n\t\t\t\t\t// Same deal\n\t\t\t\t\tmoveItemInList(afterTitle);\n\t\t\t\t\tnewPos = titles.indexOf(afterTitle);\n\t\t\t\t\tif(newPos >= 0) {\n\t\t\t\t\t\t++newPos;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If a new position is specified, let's move it\n\t\t\t\tif (newPos !== -1) {\n\t\t\t\t\t// get its current Pos, and make sure\n\t\t\t\t\t// sure that it's _actually_ in the list\n\t\t\t\t\t// and that it would _actually_ move\n\t\t\t\t\t// (#4275) We don't bother calling\n\t\t\t\t\t// indexOf unless we have a new\n\t\t\t\t\t// position to work with\n\t\t\t\t\tvar currPos = titles.indexOf(title);\n\t\t\t\t\tif(currPos >= 0 && newPos !== currPos) {\n\t\t\t\t\t\t// move it!\n\t\t\t\t\t\ttitles.splice(currPos,1);\n\t\t\t\t\t\tif(newPos >= currPos) {\n\t\t\t\t\t\t\tnewPos--;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitles.splice(newPos,0,title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tvar list = this.getTiddlerList(listTitle);\n\tif(!array || array.length === 0) {\n\t\treturn [];\n\t} else {\n\t\tvar titles = [], t, title;\n\t\t// First place any entries that are present in the list\n\t\tfor(t=0; t<list.length; t++) {\n\t\t\ttitle = list[t];\n\t\t\tif(array.indexOf(title) !== -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Then place any remaining entries\n\t\tfor(t=0; t<array.length; t++) {\n\t\t\ttitle = array[t];\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Finally obey the list-before and list-after fields of each tiddler in turn\n\t\tvar sortedTitles = titles.slice(0);\n\t\tfor(t=0; t<sortedTitles.length; t++) {\n\t\t\ttitle = sortedTitles[t];\n\t\t\tmoveItemInList(title);\n\t\t}\n\t\treturn titles;\n\t}\n};\n\nexports.getSubTiddler = function(title,subTiddlerTitle) {\n\tvar bundleInfo = this.getPluginInfo(title) || this.getTiddlerDataCached(title);\n\tif(bundleInfo && bundleInfo.tiddlers) {\n\t\tvar subTiddler = bundleInfo.tiddlers[subTiddlerTitle];\n\t\tif(subTiddler) {\n\t\t\treturn new $tw.Tiddler(subTiddler);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRetrieve a tiddler as a JSON string of the fields\n*/\nexports.getTiddlerAsJson = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\tvar fields = Object.create(null);\n\t\t$tw.utils.each(tiddler.fields,function(value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\treturn JSON.stringify(fields);\n\t} else {\n\t\treturn JSON.stringify({title: title});\n\t}\n};\n\nexports.getTiddlersAsJson = function(filter,spaces) {\n\tvar tiddlers = this.filterTiddlers(filter),\n\t\tspaces = (spaces === undefined) ? $tw.config.preferences.jsonSpaces : spaces,\n\t\tdata = [];\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\tvar tiddler = this.getTiddler(tiddlers[t]);\n\t\tif(tiddler) {\n\t\t\tvar fields = new Object();\n\t\t\tfor(var field in tiddler.fields) {\n\t\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t\t}\n\t\t\tdata.push(fields);\n\t\t}\n\t}\n\treturn JSON.stringify(data,null,spaces);\n};\n\n/*\nGet the content of a tiddler as a JavaScript object. How this is done depends on the type of the tiddler:\n\napplication/json: the tiddler JSON is parsed into an object\napplication/x-tiddler-dictionary: the tiddler is parsed as sequence of name:value pairs\n\nOther types currently just return null.\n\ntitleOrTiddler: string tiddler title or a tiddler object\ndefaultData: default data to be returned if the tiddler is missing or doesn't contain data\n\nNote that the same value is returned for repeated calls for the same tiddler data. The value is frozen to prevent modification; otherwise modifications would be visible to all callers\n*/\nexports.getTiddlerDataCached = function(titleOrTiddler,defaultData) {\n\tvar self = this,\n\t\ttiddler = titleOrTiddler;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler) {\n\t\treturn this.getCacheForTiddler(tiddler.fields.title,\"data\",function() {\n\t\t\t// Return the frozen value\n\t\t\tvar value = self.getTiddlerData(tiddler.fields.title,undefined);\n\t\t\t$tw.utils.deepFreeze(value);\n\t\t\treturn value;\n\t\t}) || defaultData;\n\t} else {\n\t\treturn defaultData;\n\t}\n};\n\n/*\nAlternative, uncached version of getTiddlerDataCached(). The return value can be mutated freely and reused\n*/\nexports.getTiddlerData = function(titleOrTiddler,defaultData) {\n\tvar tiddler = titleOrTiddler,\n\t\tdata;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler && tiddler.fields.text) {\n\t\tswitch(tiddler.fields.type) {\n\t\t\tcase \"application/json\":\n\t\t\t\t// JSON tiddler\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse(tiddler.fields.text);\n\t\t\t\t} catch(ex) {\n\t\t\t\t\treturn defaultData;\n\t\t\t\t}\n\t\t\t\treturn data;\n\t\t\tcase \"application/x-tiddler-dictionary\":\n\t\t\t\treturn $tw.utils.parseFields(tiddler.fields.text);\n\t\t}\n\t}\n\treturn defaultData;\n};\n\n/*\nExtract an indexed field from within a data tiddler\n*/\nexports.extractTiddlerDataItem = function(titleOrTiddler,index,defaultText) {\n\tvar data = this.getTiddlerDataCached(titleOrTiddler,Object.create(null)),\n\t\ttext;\n\tif(data && $tw.utils.hop(data,index)) {\n\t\ttext = data[index];\n\t}\n\tif(typeof text === \"string\" || typeof text === \"number\") {\n\t\treturn text.toString();\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nSet a tiddlers content to a JavaScript object. Currently this is done by setting the tiddler's type to \"application/json\" and setting the text to the JSON text of the data.\ntitle: title of tiddler\ndata: object that can be serialised to JSON\nfields: optional hashmap of additional tiddler fields to be set\n*/\nexports.setTiddlerData = function(title,data,fields) {\n\tvar existingTiddler = this.getTiddler(title),\n\t\tnewFields = {\n\t\t\ttitle: title\n\t};\n\tif(existingTiddler && existingTiddler.fields.type === \"application/x-tiddler-dictionary\") {\n\t\tnewFields.text = $tw.utils.makeTiddlerDictionary(data);\n\t} else {\n\t\tnewFields.type = \"application/json\";\n\t\tnewFields.text = JSON.stringify(data,null,$tw.config.preferences.jsonSpaces);\n\t}\n\tthis.addTiddler(new $tw.Tiddler(this.getCreationFields(),existingTiddler,fields,newFields,this.getModificationFields()));\n};\n\n/*\nReturn the content of a tiddler as an array containing each line\n*/\nexports.getTiddlerList = function(title,field,index) {\n\tif(index) {\n\t\treturn $tw.utils.parseStringArray(this.extractTiddlerDataItem(title,index,\"\"));\n\t}\n\tfield = field || \"list\";\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\treturn ($tw.utils.parseStringArray(tiddler.fields[field]) || []).slice(0);\n\t}\n\treturn [];\n};\n\n// Return a named global cache object. Global cache objects are cleared whenever a tiddler change occurs\nexports.getGlobalCache = function(cacheName,initializer) {\n\tthis.globalCache = this.globalCache || Object.create(null);\n\tif($tw.utils.hop(this.globalCache,cacheName)) {\n\t\treturn this.globalCache[cacheName];\n\t} else {\n\t\tthis.globalCache[cacheName] = initializer();\n\t\treturn this.globalCache[cacheName];\n\t}\n};\n\nexports.clearGlobalCache = function() {\n\tthis.globalCache = Object.create(null);\n};\n\n// Return the named cache object for a tiddler. If the cache doesn't exist then the initializer function is invoked to create it\nexports.getCacheForTiddler = function(title,cacheName,initializer) {\n\tthis.caches = this.caches || Object.create(null);\n\tvar caches = this.caches[title];\n\tif(caches && caches[cacheName]) {\n\t\treturn caches[cacheName];\n\t} else {\n\t\tif(!caches) {\n\t\t\tcaches = Object.create(null);\n\t\t\tthis.caches[title] = caches;\n\t\t}\n\t\tcaches[cacheName] = initializer();\n\t\treturn caches[cacheName];\n\t}\n};\n\n// Clear all caches associated with a particular tiddler, or, if the title is null, clear all the caches for all the tiddlers\nexports.clearCache = function(title) {\n\tif(title) {\n\t\tthis.caches = this.caches || Object.create(null);\n\t\tif($tw.utils.hop(this.caches,title)) {\n\t\t\tdelete this.caches[title];\n\t\t}\n\t} else {\n\t\tthis.caches = Object.create(null);\n\t}\n};\n\nexports.initParsers = function(moduleType) {\n\t// Install the parser modules\n\t$tw.Wiki.parsers = {};\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(\"parser\",function(title,module) {\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\t$tw.Wiki.parsers[f] = module[f]; // Store the parser class\n\t\t\t}\n\t\t}\n\t});\n\t// Use the generic binary parser for any binary types not registered so far\n\tif($tw.Wiki.parsers[\"application/octet-stream\"]) {\n\t\tObject.keys($tw.config.contentTypeInfo).forEach(function(type) {\n\t\t\tif(!$tw.utils.hop($tw.Wiki.parsers,type) && $tw.config.contentTypeInfo[type].encoding === \"base64\") {\n\t\t\t\t$tw.Wiki.parsers[type] = $tw.Wiki.parsers[\"application/octet-stream\"];\n\t\t\t}\n\t\t});\t\t\n\t}\n};\n\n/*\nParse a block of text of a specified MIME type\n\ttype: content type of text to be parsed\n\ttext: text\n\toptions: see below\nOptions include:\n\tparseAsInline: if true, the text of the tiddler will be parsed as an inline run\n\t_canonical_uri: optional string of the canonical URI of this content\n*/\nexports.parseText = function(type,text,options) {\n\ttext = text || \"\";\n\toptions = options || {};\n\t// Select a parser\n\tvar Parser = $tw.Wiki.parsers[type];\n\tif(!Parser && $tw.utils.getFileExtensionInfo(type)) {\n\t\tParser = $tw.Wiki.parsers[$tw.utils.getFileExtensionInfo(type).type];\n\t}\n\tif(!Parser) {\n\t\tParser = $tw.Wiki.parsers[options.defaultType || \"text/vnd.tiddlywiki\"];\n\t}\n\tif(!Parser) {\n\t\treturn null;\n\t}\n\t// Return the parser instance\n\treturn new Parser(type,text,{\n\t\tparseAsInline: options.parseAsInline,\n\t\twiki: this,\n\t\t_canonical_uri: options._canonical_uri\n\t});\n};\n\n/*\nParse a tiddler according to its MIME type\n*/\nexports.parseTiddler = function(title,options) {\n\toptions = $tw.utils.extend({},options);\n\tvar cacheType = options.parseAsInline ? \"inlineParseTree\" : \"blockParseTree\",\n\t\ttiddler = this.getTiddler(title),\n\t\tself = this;\n\treturn tiddler ? this.getCacheForTiddler(title,cacheType,function() {\n\t\t\tif(tiddler.hasField(\"_canonical_uri\")) {\n\t\t\t\toptions._canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t}\n\t\t\treturn self.parseText(tiddler.fields.type,tiddler.fields.text,options);\n\t\t}) : null;\n};\n\nexports.parseTextReference = function(title,field,index,options) {\n\tvar tiddler,text;\n\tif(options.subTiddler) {\n\t\ttiddler = this.getSubTiddler(title,options.subTiddler);\n\t} else {\n\t\ttiddler = this.getTiddler(title);\n\t\tif(field === \"text\" || (!field && !index)) {\n\t\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\t\treturn this.parseTiddler(title,options);\n\t\t}\n\t}\n\tif(field === \"text\" || (!field && !index)) {\n\t\tif(tiddler && tiddler.fields) {\n\t\t\treturn this.parseText(tiddler.fields.type,tiddler.fields.text,options);\t\t\t\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t} else if(field) {\n\t\tif(field === \"title\") {\n\t\t\ttext = title;\n\t\t} else {\n\t\t\tif(!tiddler || !tiddler.hasField(field)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\ttext = tiddler.fields[field];\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text.toString(),options);\n\t} else if(index) {\n\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\ttext = this.extractTiddlerDataItem(tiddler,index,undefined);\n\t\tif(text === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text,options);\n\t}\n};\n\n/*\nMake a widget tree for a parse tree\nparser: parser object\noptions: see below\nOptions include:\ndocument: optional document to use\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.makeWidget = function(parser,options) {\n\toptions = options || {};\n\tvar widgetNode = {\n\t\t\ttype: \"widget\",\n\t\t\tchildren: []\n\t\t},\n\t\tcurrWidgetNode = widgetNode;\n\t// Create set variable widgets for each variable\n\t$tw.utils.each(options.variables,function(value,name) {\n\t\tvar setVariableWidget = {\n\t\t\ttype: \"set\",\n\t\t\tattributes: {\n\t\t\t\tname: {type: \"string\", value: name},\n\t\t\t\tvalue: {type: \"string\", value: value}\n\t\t\t},\n\t\t\tchildren: []\n\t\t};\n\t\tcurrWidgetNode.children = [setVariableWidget];\n\t\tcurrWidgetNode = setVariableWidget;\n\t});\n\t// Add in the supplied parse tree nodes\n\tcurrWidgetNode.children = parser ? parser.tree : [];\n\t// Create the widget\n\treturn new widget.widget(widgetNode,{\n\t\twiki: this,\n\t\tdocument: options.document || $tw.fakeDocument,\n\t\tparentWidget: options.parentWidget\n\t});\n};\n\n/*\nMake a widget tree for transclusion\ntitle: target tiddler title\noptions: as for wiki.makeWidget() plus:\noptions.field: optional field to transclude (defaults to \"text\")\noptions.mode: transclusion mode \"inline\" or \"block\"\noptions.recursionMarker : optional flag to set a recursion marker, defaults to \"yes\"\noptions.children: optional array of children for the transclude widget\noptions.importVariables: optional importvariables filter string for macros to be included\noptions.importPageMacros: optional boolean; if true, equivalent to passing \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\" to options.importVariables\n*/\nexports.makeTranscludeWidget = function(title,options) {\n\toptions = options || {};\n\tvar parseTreeDiv = {tree: [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"div\",\n\t\t\tchildren: []}]},\n\t\tparseTreeImportVariables = {\n\t\t\ttype: \"importvariables\",\n\t\t\tattributes: {\n\t\t\t\tfilter: {\n\t\t\t\t\tname: \"filter\",\n\t\t\t\t\ttype: \"string\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tisBlock: false,\n\t\t\tchildren: []},\n\t\tparseTreeTransclude = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\trecursionMarker: {\n\t\t\t\t\tname: \"recursionMarker\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: options.recursionMarker || \"yes\"\n\t\t\t\t\t},\n\t\t\t\ttiddler: {\n\t\t\t\t\tname: \"tiddler\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title\n\t\t\t\t}\n\t\t\t},\n\t\t\tisBlock: !options.parseAsInline};\n\tif(options.importVariables || options.importPageMacros) {\n\t\tif(options.importVariables) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = options.importVariables;\n\t\t} else if(options.importPageMacros) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\";\n\t\t}\n\t\tparseTreeDiv.tree[0].children.push(parseTreeImportVariables);\n\t\tparseTreeImportVariables.children.push(parseTreeTransclude);\n\t} else {\n\t\tparseTreeDiv.tree[0].children.push(parseTreeTransclude);\n\t}\n\tif(options.field) {\n\t\tparseTreeTransclude.attributes.field = {type: \"string\", value: options.field};\n\t}\n\tif(options.mode) {\n\t\tparseTreeTransclude.attributes.mode = {type: \"string\", value: options.mode};\n\t}\n\tif(options.children) {\n\t\tparseTreeTransclude.children = options.children;\n\t}\n\treturn this.makeWidget(parseTreeDiv,options);\n};\n\n/*\nParse text in a specified format and render it into another format\n\toutputType: content type for the output\n\ttextType: content type of the input text\n\ttext: input text\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderText = function(outputType,textType,text,options) {\n\toptions = options || {};\n\tvar parser = this.parseText(textType,text,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : container.textContent;\n};\n\n/*\nParse text from a tiddler and render it into another format\n\toutputType: content type for the output\n\ttitle: title of the tiddler to be rendered\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderTiddler = function(outputType,title,options) {\n\toptions = options || {};\n\tvar parser = this.parseTiddler(title,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : (outputType === \"text/plain-formatted\" ? container.formattedTextContent : container.textContent);\n};\n\n/*\nReturn an array of tiddler titles that match a search string\n\ttext: The text string to search for\n\toptions: see below\nOptions available:\n\tsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\n\texclude: An array of tiddler titles to exclude from the search\n\tinvert: If true returns tiddlers that do not contain the specified string\n\tcaseSensitive: If true forces a case sensitive search\n\tfield: If specified, restricts the search to the specified field, or an array of field names\n\tanchored: If true, forces all but regexp searches to be anchored to the start of text\n\texcludeField: If true, the field options are inverted to specify the fields that are not to be searched\n\tThe search mode is determined by the first of these boolean flags to be true\n\t\tliteral: searches for literal string\n\t\twhitespace: same as literal except runs of whitespace are treated as a single space\n\t\tregexp: treats the search term as a regular expression\n\t\twords: (default) treats search string as a list of tokens, and matches if all tokens are found, regardless of adjacency or ordering\n*/\nexports.search = function(text,options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tt,\n\t\tinvert = !!options.invert;\n\t// Convert the search string into a regexp for each term\n\tvar terms, searchTermsRegExps,\n\t\tflags = options.caseSensitive ? \"\" : \"i\",\n\t\tanchor = options.anchored ? \"^\" : \"\";\n\tif(options.literal) {\n\t\tif(text.length === 0) {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + anchor + $tw.utils.escapeRegExp(text) + \")\",flags)];\n\t\t}\n\t} else if(options.whitespace) {\n\t\tterms = [];\n\t\t$tw.utils.each(text.split(/\\s+/g),function(term) {\n\t\t\tif(term) {\n\t\t\t\tterms.push($tw.utils.escapeRegExp(term));\n\t\t\t}\n\t\t});\n\t\tsearchTermsRegExps = [new RegExp(\"(\" + anchor + terms.join(\"\\\\s+\") + \")\",flags)];\n\t} else if(options.regexp) {\n\t\ttry {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + text + \")\",flags)];\t\t\t\n\t\t} catch(e) {\n\t\t\tsearchTermsRegExps = null;\n\t\t\tconsole.log(\"Regexp error parsing /(\" + text + \")/\" + flags + \": \",e);\n\t\t}\n\t} else {\n\t\tterms = text.split(/ +/);\n\t\tif(terms.length === 1 && terms[0] === \"\") {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [];\n\t\t\tfor(t=0; t<terms.length; t++) {\n\t\t\t\tsearchTermsRegExps.push(new RegExp(\"(\" + anchor + $tw.utils.escapeRegExp(terms[t]) + \")\",flags));\n\t\t\t}\n\t\t}\n\t}\n\t// Accumulate the array of fields to be searched or excluded from the search\n\tvar fields = [];\n\tif(options.field) {\n\t\tif($tw.utils.isArray(options.field)) {\n\t\t\t$tw.utils.each(options.field,function(fieldName) {\n\t\t\t\tif(fieldName) {\n\t\t\t\t\tfields.push(fieldName);\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tfields.push(options.field);\n\t\t}\n\t}\n\t// Use default fields if none specified and we're not excluding fields (excluding fields with an empty field array is the same as searching all fields)\n\tif(fields.length === 0 && !options.excludeField) {\n\t\tfields.push(\"title\");\n\t\tfields.push(\"tags\");\n\t\tfields.push(\"text\");\n\t}\n\t// Function to check a given tiddler for the search term\n\tvar searchTiddler = function(title) {\n\t\tif(!searchTermsRegExps) {\n\t\t\treturn true;\n\t\t}\n\t\tvar notYetFound = searchTermsRegExps.slice();\n\n\t\tvar tiddler = self.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\ttiddler = new $tw.Tiddler({title: title, text: \"\", type: \"text/vnd.tiddlywiki\"});\n\t\t}\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type] || $tw.config.contentTypeInfo[\"text/vnd.tiddlywiki\"],\n\t\t\tsearchFields;\n\t\t// Get the list of fields we're searching\n\t\tif(options.excludeField) {\n\t\t\tsearchFields = Object.keys(tiddler.fields);\n\t\t\t$tw.utils.each(fields,function(fieldName) {\n\t\t\t\tvar p = searchFields.indexOf(fieldName);\n\t\t\t\tif(p !== -1) {\n\t\t\t\t\tsearchFields.splice(p,1);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsearchFields = fields;\n\t\t}\n\t\tfor(var fieldIndex=0; notYetFound.length>0 && fieldIndex<searchFields.length; fieldIndex++) {\n\t\t\t// Don't search the text field if the content type is binary\n\t\t\tvar fieldName = searchFields[fieldIndex];\n\t\t\tif(fieldName === \"text\" && contentTypeInfo.encoding !== \"utf8\") {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tvar str = tiddler.fields[fieldName],\n\t\t\t\tt;\n\t\t\tif(str) {\n\t\t\t\tif($tw.utils.isArray(str)) {\n\t\t\t\t\t// If the field value is an array, test each regexp against each field array entry and fail if each regexp doesn't match at least one field array entry\n\t\t\t\t\tfor(var s=0; s<str.length; s++) {\n\t\t\t\t\t\tfor(t=0; t<notYetFound.length;) {\n\t\t\t\t\t\t\tif(notYetFound[t].test(str[s])) {\n\t\t\t\t\t\t\t\tnotYetFound.splice(t, 1);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tt++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If the field isn't an array, force it to a string and test each regexp against it and fail if any do not match\n\t\t\t\t\tstr = tiddler.getFieldString(fieldName);\n\t\t\t\t\tfor(t=0; t<notYetFound.length;) {\n\t\t\t\t\t\tif(notYetFound[t].test(str)) {\n\t\t\t\t\t\t\tnotYetFound.splice(t, 1);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tt++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn notYetFound.length == 0;\n\t};\n\t// Loop through all the tiddlers doing the search\n\tvar results = [],\n\t\tsource = options.source || this.each;\n\tsource(function(tiddler,title) {\n\t\tif(searchTiddler(title) !== options.invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\t// Remove any of the results we have to exclude\n\tif(options.exclude) {\n\t\tfor(t=0; t<options.exclude.length; t++) {\n\t\t\tvar p = results.indexOf(options.exclude[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tresults.splice(p,1);\n\t\t\t}\n\t\t}\n\t}\n\treturn results;\n};\n\n/*\nTrigger a load for a tiddler if it is skinny. Returns the text, or undefined if the tiddler is missing, null if the tiddler is being lazily loaded.\n*/\nexports.getTiddlerText = function(title,defaultText) {\n\tvar tiddler = this.getTiddler(title);\n\t// Return undefined if the tiddler isn't found\n\tif(!tiddler) {\n\t\treturn defaultText;\n\t}\n\tif(!tiddler.hasField(\"_is_skinny\")) {\n\t\t// Just return the text if we've got it\n\t\treturn tiddler.fields.text || \"\";\n\t} else {\n\t\t// Tell any listeners about the need to lazily load this tiddler\n\t\tthis.dispatchEvent(\"lazyLoad\",title);\n\t\t// Indicate that the text is being loaded\n\t\treturn null;\n\t}\n};\n\n/*\nCheck whether the text of a tiddler matches a given value. By default, the comparison is case insensitive, and any spaces at either end of the tiddler text is trimmed\n*/\nexports.checkTiddlerText = function(title,targetText,options) {\n\toptions = options || {};\n\tvar text = this.getTiddlerText(title,\"\");\n\tif(!options.noTrim) {\n\t\ttext = text.trim();\n\t}\n\tif(!options.caseSensitive) {\n\t\ttext = text.toLowerCase();\n\t\ttargetText = targetText.toLowerCase();\n\t}\n\treturn text === targetText;\n}\n\n/*\nRead an array of browser File objects, invoking callback(tiddlerFieldsArray) once they're all read\n*/\nexports.readFiles = function(files,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\tvar result = [],\n\t\toutstanding = files.length,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tresult.push.apply(result,tiddlerFieldsArray);\n\t\t\tif(--outstanding === 0) {\n\t\t\t\tcallback(result);\n\t\t\t}\n\t\t};\n\tfor(var f=0; f<files.length; f++) {\n\t\tthis.readFile(files[f],$tw.utils.extend({},options,{callback: readFileCallback}));\n\t}\n\treturn files.length;\n};\n\n/*\nRead a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFile = function(file,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\t// Get the type, falling back to the filename extension\n\tvar self = this,\n\t\ttype = file.type;\n\tif(type === \"\" || !type) {\n\t\tvar dotPos = file.name.lastIndexOf(\".\");\n\t\tif(dotPos !== -1) {\n\t\t\tvar fileExtensionInfo = $tw.utils.getFileExtensionInfo(file.name.substr(dotPos));\n\t\t\tif(fileExtensionInfo) {\n\t\t\t\ttype = fileExtensionInfo.type;\n\t\t\t}\n\t\t}\n\t}\n\t// Figure out if we're reading a binary file\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[type],\n\t\tisBinary = contentTypeInfo ? contentTypeInfo.encoding === \"base64\" : false;\n\t// Log some debugging information\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Importing file '\" + file.name + \"', type: '\" + type + \"', isBinary: \" + isBinary);\n\t}\n\t// Give the hook a chance to process the drag\n\tif($tw.hooks.invokeHook(\"th-importing-file\",{\n\t\tfile: file,\n\t\ttype: type,\n\t\tisBinary: isBinary,\n\t\tcallback: callback\n\t}) !== true) {\n\t\tthis.readFileContent(file,type,isBinary,options.deserializer,callback);\n\t}\n};\n\n/*\nLower level utility to read the content of a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFileContent = function(file,type,isBinary,deserializer,callback) {\n\tvar self = this;\n\t// Create the FileReader\n\tvar reader = new FileReader();\n\t// Onload\n\treader.onload = function(event) {\n\t\tvar text = event.target.result,\n\t\t\ttiddlerFields = {title: file.name || \"Untitled\"};\n\t\tif(isBinary) {\n\t\t\tvar commaPos = text.indexOf(\",\");\n\t\t\tif(commaPos !== -1) {\n\t\t\t\ttext = text.substr(commaPos + 1);\n\t\t\t}\n\t\t}\n\t\t// Check whether this is an encrypted TiddlyWiki file\n\t\tvar encryptedJson = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedJson) {\n\t\t\t// If so, attempt to decrypt it with the current password\n\t\t\t$tw.utils.decryptStoreAreaInteractive(encryptedJson,function(tiddlers) {\n\t\t\t\tcallback(tiddlers);\n\t\t\t});\n\t\t} else {\n\t\t\t// Otherwise, just try to deserialise any tiddlers in the file\n\t\t\tcallback(self.deserializeTiddlers(type,text,tiddlerFields,{deserializer: deserializer}));\n\t\t}\n\t};\n\t// Kick off the read\n\tif(isBinary) {\n\t\treader.readAsDataURL(file);\n\t} else {\n\t\treader.readAsText(file);\n\t}\n};\n\n/*\nFind any existing draft of a specified tiddler\n*/\nexports.findDraft = function(targetTitle) {\n\tvar draftTitle = undefined;\n\tthis.forEachTiddler({includeSystem: true},function(title,tiddler) {\n\t\tif(tiddler.fields[\"draft.title\"] && tiddler.fields[\"draft.of\"] === targetTitle) {\n\t\t\tdraftTitle = title;\n\t\t}\n\t});\n\treturn draftTitle;\n}\n\n/*\nCheck whether the specified draft tiddler has been modified.\nIf the original tiddler doesn't exist, create a vanilla tiddler variable,\nto check if additional fields have been added.\n*/\nexports.isDraftModified = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(!tiddler.isDraft()) {\n\t\treturn false;\n\t}\n\tvar ignoredFields = [\"created\", \"modified\", \"title\", \"draft.title\", \"draft.of\"],\n\t\torigTiddler = this.getTiddler(tiddler.fields[\"draft.of\"]) || new $tw.Tiddler({text:\"\", tags:[]}),\n\t\ttitleModified = tiddler.fields[\"draft.title\"] !== tiddler.fields[\"draft.of\"];\n\treturn titleModified || !tiddler.isEqual(origTiddler,ignoredFields);\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\nhistoryTitle: title of history tiddler (defaults to $:/HistoryList)\n*/\nexports.addToHistory = function(title,fromPageRect,historyTitle) {\n\tvar story = new $tw.Story({wiki: this, historyTitle: historyTitle});\n\tstory.addToHistory(title,fromPageRect);\t\n\tconsole.log(\"$tw.wiki.addToHistory() is deprecated since V5.1.23! Use the this.story.addToHistory() from the story-object!\")\n};\n\n/*\nAdd a new tiddler to the story river\ntitle: a title string or an array of title strings\nfromTitle: the title of the tiddler from which the navigation originated\nstoryTitle: title of story tiddler (defaults to $:/StoryList)\noptions: see story.js\n*/\nexports.addToStory = function(title,fromTitle,storyTitle,options) {\n\tvar story = new $tw.Story({wiki: this, storyTitle: storyTitle});\n\tstory.addToStory(title,fromTitle,options);\n\tconsole.log(\"$tw.wiki.addToStory() is deprecated since V5.1.23! Use the this.story.addToStory() from the story-object!\")\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nexports.generateDraftTitle = function(title) {\n\tvar c = 0,\n\t\tdraftTitle,\n\t\tusername = this.getTiddlerText(\"$:/status/UserName\"),\n\t\tattribution = username ? \" by \" + username : \"\";\n\tdo {\n\t\tdraftTitle = \"Draft \" + (c ? (c + 1) + \" \" : \"\") + \"of '\" + title + \"'\" + attribution;\n\t\tc++;\n\t} while(this.tiddlerExists(draftTitle));\n\treturn draftTitle;\n};\n\n/*\nInvoke the available upgrader modules\ntitles: array of tiddler titles to be processed\ntiddlers: hashmap by title of tiddler fields of pending import tiddlers. These can be modified by the upgraders. An entry with no fields indicates a tiddler that was pending import has been suppressed. When entries are added to the pending import the tiddlers hashmap may have entries that are not present in the titles array\nReturns a hashmap of messages keyed by tiddler title.\n*/\nexports.invokeUpgraders = function(titles,tiddlers) {\n\t// Collect up the available upgrader modules\n\tvar self = this;\n\tif(!this.upgraderModules) {\n\t\tthis.upgraderModules = [];\n\t\t$tw.modules.forEachModuleOfType(\"upgrader\",function(title,module) {\n\t\t\tif(module.upgrade) {\n\t\t\t\tself.upgraderModules.push(module);\n\t\t\t}\n\t\t});\n\t}\n\t// Invoke each upgrader in turn\n\tvar messages = {};\n\tfor(var t=0; t<this.upgraderModules.length; t++) {\n\t\tvar upgrader = this.upgraderModules[t],\n\t\t\tupgraderMessages = upgrader.upgrade(this,titles,tiddlers);\n\t\t$tw.utils.extend(messages,upgraderMessages);\n\t}\n\treturn messages;\n};\n\n// Determine whether a plugin by title is dynamically loadable\nexports.doesPluginRequireReload = function(title) {\n\treturn this.doesPluginInfoRequireReload(this.getPluginInfo(title) || this.getTiddlerDataCached(title));\n};\n\n// Determine whether a plugin info structure is dynamically loadable\nexports.doesPluginInfoRequireReload = function(pluginInfo) {\n\tif(pluginInfo) {\n\t\tvar foundModule = false;\n\t\t$tw.utils.each(pluginInfo.tiddlers,function(tiddler) {\n\t\t\tif(tiddler.type === \"application/javascript\" && $tw.utils.hop(tiddler,\"module-type\")) {\n\t\t\t\tfoundModule = true;\n\t\t\t}\n\t\t});\n\t\treturn foundModule;\n\t} else {\n\t\treturn null;\n\t}\n};\n\nexports.slugify = function(title,options) {\n\tvar tiddler = this.getTiddler(title),\n\t\tslug;\n\tif(tiddler && tiddler.fields.slug) {\n\t\tslug = tiddler.fields.slug;\n\t} else {\n\t\tslug = $tw.utils.transliterate(title.toString().toLowerCase()) // Replace diacritics with basic lowercase ASCII\n\t\t\t.replace(/\\s+/g,\"-\") // Replace spaces with -\n\t\t\t.replace(/[^\\w\\-\\.]+/g,\"\") // Remove all non-word chars except dash and dot\n\t\t\t.replace(/\\-\\-+/g,\"-\") // Replace multiple - with single -\n\t\t\t.replace(/^-+/,\"\") // Trim - from start of text\n\t\t\t.replace(/-+$/,\"\"); // Trim - from end of text\n\t}\n\t// If the resulting slug is blank (eg because the title is just punctuation characters)\n\tif(!slug) {\n\t\t// ...then just use the character codes of the title\n\t\tvar result = [];\n\t\t$tw.utils.each(title.split(\"\"),function(char) {\n\t\t\tresult.push(char.charCodeAt(0).toString());\n\t\t});\n\t\tslug = result.join(\"-\");\n\t}\n\treturn slug;\n};\n\n})();\n\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/palettes/Blanca": {
"title": "$:/palettes/Blanca",
"name": "Blanca",
"description": "A clean white palette to let you focus",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #66cccc\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ffffff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #7897f3\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ccc\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #ffffff\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #7897f3\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #eeeeee\ntab-border-selected: #cccccc\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffeedd\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: #eee\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #ff9900\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/Blue": {
"title": "$:/palettes/Blue",
"name": "Blue",
"description": "A blue theme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333353\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ddddff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #5959c0\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: #ccccdd\ntab-border-selected: #ccccdd\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #eeeeff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #666666\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #ffffff\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #ffffff\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #5959c0\ntoolbar-new-button: #5eb95e\ntoolbar-options-button: rgb(128, 88, 165)\ntoolbar-save-button: #0e90d2\ntoolbar-info-button: #0e90d2\ntoolbar-edit-button: rgb(243, 123, 29)\ntoolbar-close-button: #dd514c\ntoolbar-delete-button: #dd514c\ntoolbar-cancel-button: rgb(243, 123, 29)\ntoolbar-done-button: #5eb95e\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/Muted": {
"title": "$:/palettes/Muted",
"name": "Muted",
"description": "Bright tiddlers on a muted background",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #6f6f70\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #29a6ee\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #c2c1c2\nsidebar-foreground-shadow: rgba(255,255,255,0)\nsidebar-foreground: #d3d2d4\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #6f6f70\nsidebar-tab-background: #666667\nsidebar-tab-border-selected: #999\nsidebar-tab-border: #515151\nsidebar-tab-divider: #999\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: #999\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #d1d0d2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #d5ad34\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/ContrastLight": {
"title": "$:/palettes/ContrastLight",
"name": "Contrast (Light)",
"description": "High contrast and unambiguous (light version)",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #000\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #000\ntag-foreground: #fff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
},
"$:/palettes/ContrastDark": {
"title": "$:/palettes/ContrastDark",
"name": "Contrast (Dark)",
"description": "High contrast and unambiguous (dark version)",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #000\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #fff\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #fff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
},
"$:/palettes/CupertinoDark": {
"title": "$:/palettes/CupertinoDark",
"tags": "$:/tags/Palette",
"name": "Cupertino Dark",
"description": "A macOS inspired dark palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #FF453A\nalert-border: #FF453A\nalert-highlight: #FFD60A\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #282828\nblockquote-bar: <<colour page-background>>\nbutton-foreground: <<colour background>>\ncode-background: <<colour pre-background>>\ncode-border: <<colour pre-border>>\ncode-foreground: rgba(255, 255, 255, 0.54)\ndirty-indicator: #FF453A\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour tiddler-info-background>>\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: #3F638B\ndropdown-tab-background: #323232\ndropzone-background: #30D158\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: #BF5AF2\nexternal-link-foreground: #32D74B\nforeground: #FFFFFF\nmenubar-background: #464646\nmenubar-foreground: #ffffff\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(255, 255, 255, 0.54)\nmodal-backdrop: <<colour page-background>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour background>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: #98989D\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #323232\npre-background: #464646\npre-border: transparent\nprimary: #0A84FF\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour background>>\nsidebar-controls-foreground-hover: #FF9F0A\nsidebar-controls-foreground: #8E8E93\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground: rgba(255, 255, 255, 0.38)\nsidebar-tab-background-selected: #3F638B\nsidebar-tab-background: <<colour background>>\nsidebar-tab-border-selected: <<colour background>>\nsidebar-tab-border: <<colour background>>\nsidebar-tab-divider: <<colour background>>\nsidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)\nsidebar-tab-foreground: rgba(255, 255, 255, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)\nsidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)\nsite-title-foreground: #ffffff\nstatic-alert-foreground: #B4B4B4\ntab-background-selected: #3F638B\ntab-background: <<colour page-background>>\ntab-border-selected: <<colour page-background>>\ntab-border: <<colour page-background>>\ntab-divider: <<colour page-background>>\ntab-foreground-selected: rgba(255, 255, 255, 0.87)\ntab-foreground: rgba(255, 255, 255, 0.54)\ntable-border: #464646\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #48484A\ntag-foreground: #323232\ntiddler-background: <<colour background>>\ntiddler-border: transparent\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: #48484A\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: rgba(255, 255, 255, 0.08)\ntiddler-editor-fields-even: rgba(255, 255, 255, 0.1)\ntiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)\ntiddler-info-background: #1E1E1E\ntiddler-info-border: #1E1E1E\ntiddler-info-tab-background: #3F638B\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #FFFFFF\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: #464646\nselection-background: #3F638B\nselection-foreground: #ffffff\nwikilist-background: <<colour page-background>>\nwikilist-button-background: #3F638B\nwikilist-button-foreground: <<colour foreground>>\nwikilist-button-open: #32D74B\nwikilist-button-open-hover: #32D74B\nwikilist-button-reveal: #0A84FF\nwikilist-button-reveal-hover: #0A84FF\nwikilist-button-remove: #FF453A\nwikilist-button-remove-hover: #FF453A\nwikilist-droplink-dragover: #32D74B\nwikilist-item: <<colour background>>\nwikilist-toolbar-background: <<colour background>>\nwikilist-title: <<colour foreground>>\nwikilist-title-svg: <<colour foreground>>\nwikilist-toolbar-foreground: <<colour foreground>>\nwikilist-url: <<colour muted-foreground>>\n"
},
"$:/palettes/DarkPhotos": {
"title": "$:/palettes/DarkPhotos",
"created": "20150402111612188",
"description": "Good with dark photo backgrounds",
"modified": "20150402112344080",
"name": "DarkPhotos",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: \nbutton-foreground: \nbutton-border: \ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #ddd\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #336438\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #ccf\nsidebar-controls-foreground: #fff\nsidebar-foreground-shadow: rgba(0,0,0, 0.5)\nsidebar-foreground: #fff\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #eee\nsidebar-tab-background-selected: rgba(255,255,255, 0.8)\nsidebar-tab-background: rgba(255,255,255, 0.4)\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: rgba(255,255,255, 0.2)\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #aaf\nsidebar-tiddler-link-foreground: #ddf\nsite-title-foreground: #fff\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/DesertSand": {
"title": "$:/palettes/DesertSand",
"tags": "$:/tags/Palette",
"name": "Desert Sand",
"description": "A desert sand palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #E9E0C7\nblockquote-bar: <<colour muted-foreground>>\nbutton-foreground: <<colour foreground>>\ncode-background: #F3EDDF\ncode-border: #C3BAA1\ncode-foreground: #ab3250\ndiff-delete-background: #bd8b8b\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #91c093\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #ad3434\ndownload-background: #6ca16c\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #E9E0C7\ndropdown-tab-background: #BAB29C\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #313163\nexternal-link-foreground: #555592\nforeground: #2D2A23\nmenubar-background: #CDC2A6\nmenubar-foreground: #5A5446\nmessage-background: #ECE5CF\nmessage-border: #D6CBAA\nmessage-foreground: #5f6e7d\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #8A8885\nmodal-footer-background: #CDC2A6\nmodal-footer-border: #9D998E\nmodal-header-border: #9D998E\nmuted-foreground: #9D998E\nnotification-background: #F0E9D7\nnotification-border: #939189\npage-background: #e0d3af\npre-background: #D6CBAA\npre-border: #CDC2A6\nprimary: #5B6F55\nselection-background: #9D947B\nselection-foreground: <<colour foreground>>\nselect-tag-background: #F0E9D7\nselect-tag-foreground: #2D2A23\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #2D2A23\nsidebar-controls-foreground: #867F69\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #867F69\nsidebar-muted-foreground-hover: #706A58\nsidebar-muted-foreground: #B3A98C\nsidebar-tab-background-selected: #e0d3af\nsidebar-tab-background: #A6A193\nsidebar-tab-border-selected: #C3BAA1\nsidebar-tab-border: #C3BAA1\nsidebar-tab-divider: #CDC2A6\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: #2D2A23\nsidebar-tiddler-link-foreground-hover: #433F35\nsidebar-tiddler-link-foreground: #706A58\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #A6A193\ntab-background-selected: #E9E0C7\ntab-background: #A6A193\ntab-border-selected: #C3BAA1\ntab-border: #C3BAA1\ntab-divider: #CDC2A6\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #2D2A23\ntable-border: #9D998E\ntable-footer-background: #8A8885\ntable-header-background: #B0AA98\ntag-background: #706A58\ntag-foreground: #E3D7B7\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #9D947B\ntiddler-controls-foreground-selected: #706A58\ntiddler-controls-foreground: #C3BAA1\ntiddler-editor-background: #E9E0C7\ntiddler-editor-border-image: #A6A193\ntiddler-editor-border: #A6A193\ntiddler-editor-fields-even: #D6CBAA\ntiddler-editor-fields-odd: #C3BAA1\ntiddler-info-background: #E3D7B7\ntiddler-info-border: #BAB29C\ntiddler-info-tab-background: #E9E0C7\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #867F69\ntiddler-title-foreground: #374464\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #8A8885\nvery-muted-foreground: #CDC2A6\nwikilist-background: <<colour page-background>>\nwikilist-item: #CDC2A6\nwikilist-info: #161512\nwikilist-title: #433F35\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: #706A58\nwikilist-button-open: #7db66a\nwikilist-button-open-hover: #56a556\nwikilist-button-reveal: #5a6c9e\nwikilist-button-reveal-hover: #454591\nwikilist-button-remove: #bc5972\nwikilist-button-remove-hover: #814040\nwikilist-toolbar-background: #CDC2A6\nwikilist-toolbar-foreground: #2D2A23\nwikilist-droplink-dragover: rgba(255,192,192,0.5)\nwikilist-button-background: #A6A193\nwikilist-button-foreground: #161512\n"
},
"$:/palettes/GruvboxDark": {
"title": "$:/palettes/GruvboxDark",
"name": "Gruvbox Dark",
"description": "Retro groove color scheme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"license": "https://github.com/morhetz/gruvbox",
"text": "alert-background: #cc241d\nalert-border: #cc241d\nalert-highlight: #d79921\nalert-muted-foreground: #504945\nbackground: #3c3836\nblockquote-bar: <<colour muted-foreground>>\nbutton-foreground: <<colour page-background>>\ncode-background: #504945\ncode-border: #504945\ncode-foreground: #fb4934\ndiff-delete-background: #fb4934\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #b8bb26\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #fb4934\ndownload-background: #b8bb26\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #665c54\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ebdbb2\ndropdown-tab-background: #665c54\ndropzone-background: #98971a\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #d3869b\nexternal-link-foreground: #8ec07c\nforeground: #fbf1c7\nmenubar-background: #504945\nmenubar-foreground: <<colour foreground>>\nmessage-background: #83a598\nmessage-border: #83a598\nmessage-foreground: #3c3836\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #504945\nmodal-footer-background: #3c3836\nmodal-footer-border: #3c3836\nmodal-header-border: #3c3836\nmuted-foreground: #d5c4a1\nnotification-background: <<colour primary>>\nnotification-border: <<colour primary>>\npage-background: #282828\npre-background: #504945\npre-border: #504945\nprimary: #d79921\nselect-tag-background: #665c54\nselect-tag-foreground: <<colour foreground>>\nselection-background: #458588\nselection-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour page-background>>\nsidebar-controls-foreground-hover: #7c6f64\nsidebar-controls-foreground: #504945\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #fbf1c7\nsidebar-muted-foreground-hover: #7c6f64\nsidebar-muted-foreground: #504945\nsidebar-tab-background-selected: #bdae93\nsidebar-tab-background: #3c3836\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #bdae93\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #282828\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #458588\nsidebar-tiddler-link-foreground: #98971a\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ebdbb2\ntab-background: #665c54\ntab-border-selected: #665c54\ntab-border: #665c54\ntab-divider: #bdae93\ntab-foreground-selected: #282828\ntab-foreground: #ebdbb2\ntable-border: #7c6f64\ntable-footer-background: #665c54\ntable-header-background: #504945\ntag-background: #d3869b\ntag-foreground: #282828\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #7c6f64\ntiddler-controls-foreground-selected: <<colour primary>>\ntiddler-controls-foreground: #665c54\ntiddler-editor-background: #32302f\ntiddler-editor-border-image: #282828\ntiddler-editor-border: #282828\ntiddler-editor-fields-even: #504945\ntiddler-editor-fields-odd: #7c6f64\ntiddler-info-background: #32302f\ntiddler-info-border: #ebdbb2\ntiddler-info-tab-background: #ebdbb2\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #7c6f64\ntiddler-title-foreground: #a89984\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #504945\nvery-muted-foreground: #bdae93\nwikilist-background: <<colour page-background>>\nwikilist-button-background: #acacac\nwikilist-button-foreground: <<colour button-foreground>>\nwikilist-item: <<colour background>>\nwikilist-toolbar-background: <<colour background>>\nwikilist-toolbar-foreground: <<colour foreground>>\nwikilist-title: <<colour foreground>>\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: <<colour muted-foreground>>\nwikilist-button-open-hover: <<colour primary>>\nwikilist-button-open: <<colour dropzone-background>>\nwikilist-button-remove: <<colour dirty-indicator>>\nwikilist-button-remove-hover: <<colour alert-background>>\nwikilist-droplink-dragover: <<colour dropzone-background>>\nwikilist-button-reveal: <<colour sidebar-tiddler-link-foreground-hover>>\nwikilist-button-reveal-hover: <<colour message-background>>\n"
},
"$:/palettes/Nord": {
"title": "$:/palettes/Nord",
"name": "Nord",
"description": "An arctic, north-bluish color palette.",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"license": "MIT, arcticicestudio, https://github.com/arcticicestudio/nord/blob/develop/LICENSE.md",
"text": "alert-background: #D08770\nalert-border: #D08770\nalert-highlight: #B48EAD\nalert-muted-foreground: #4C566A\nbackground: #3b4252\nblockquote-bar: <<colour muted-foreground>>\nbutton-foreground: <<colour page-background>>\ncode-background: #2E3440\ncode-border: #2E3440\ncode-foreground: #BF616A\ndiff-delete-background: #BF616A\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #A3BE8C\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #BF616A\ndownload-background: #A3BE8C\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ECEFF4\ndropdown-tab-background: #4C566A\ndropzone-background: #A3BE8C\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #5E81AC\nexternal-link-foreground: #8FBCBB\nforeground: #d8dee9\nmenubar-background: #2E3440\nmenubar-foreground: #d8dee9\nmessage-background: #2E3440\nmessage-border: #2E3440\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #3b4252\nmodal-footer-background: #3b4252\nmodal-footer-border: #3b4252\nmodal-header-border: #3b4252\nmuted-foreground: #4C566A\nnotification-background: <<colour primary>>\nnotification-border: #EBCB8B\npage-background: #2e3440\npre-background: #2E3440\npre-border: #2E3440\nprimary: #5E81AC\nselect-tag-background: #3b4252\nselect-tag-foreground: <<colour foreground>>\nselection-background: #5E81AC\nselection-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour page-background>>\nsidebar-controls-foreground-hover: #D8DEE9\nsidebar-controls-foreground: #4C566A\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #D8DEE9\nsidebar-muted-foreground-hover: #4C566A\nsidebar-muted-foreground: #4C566A\nsidebar-tab-background-selected: #ECEFF4\nsidebar-tab-background: #4C566A\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #4C566A\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #4C566A\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #A3BE8C\nsidebar-tiddler-link-foreground: #81A1C1\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ECEFF4\ntab-background: #4C566A\ntab-border-selected: #4C566A\ntab-border: #4C566A\ntab-divider: #4C566A\ntab-foreground-selected: #4C566A\ntab-foreground: #D8DEE9\ntable-border: #4C566A\ntable-footer-background: #2e3440\ntable-header-background: #2e3440\ntag-background: #A3BE8C\ntag-foreground: #4C566A\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: \ntiddler-controls-foreground-selected: #EBCB8B\ntiddler-controls-foreground: #4C566A\ntiddler-editor-background: #2e3440\ntiddler-editor-border-image: #2e3440\ntiddler-editor-border: #3b4252\ntiddler-editor-fields-even: #2e3440\ntiddler-editor-fields-odd: #2e3440\ntiddler-info-background: #2e3440\ntiddler-info-border: #2e3440\ntiddler-info-tab-background: #2e3440\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #4C566A\ntiddler-title-foreground: #81A1C1\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #2d3038\nvery-muted-foreground: #2d3038\nwikilist-background: <<colour page-background>>\nwikilist-toolbar-background: <<colour background>>\nwikilist-item: <<colour background>>\nwikilist-title: <<colour foreground>>\nwikilist-info: <<colour muted-foreground>>\nwikilist-button-open: #A3BE8C\nwikilist-button-open-hover: #A3BE8C\nwikilist-button-reveal: #81A1C1\nwikilist-button-reveal-hover: #81A1C1\nwikilist-button-remove: #B48EAD\nwikilist-button-remove-hover: #B48EAD\n"
},
"$:/palettes/Rocker": {
"title": "$:/palettes/Rocker",
"name": "Rocker",
"description": "A dark theme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #000\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #cc0000\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.0)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #000\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #ffbb99\nsidebar-tiddler-link-foreground: #cc0000\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffbb99\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #cc0000\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/SolarFlare": {
"title": "$:/palettes/SolarFlare",
"name": "Solar Flare",
"description": "Warm, relaxing earth colours",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": ": Background Tones\n\nbase03: #002b36\nbase02: #073642\n\n: Content Tones\n\nbase01: #586e75\nbase00: #657b83\nbase0: #839496\nbase1: #93a1a1\n\n: Background Tones\n\nbase2: #eee8d5\nbase3: #fdf6e3\n\n: Accent Colors\n\nyellow: #b58900\norange: #cb4b16\nred: #dc322f\nmagenta: #d33682\nviolet: #6c71c4\nblue: #268bd2\ncyan: #2aa198\ngreen: #859900\n\n: Additional Tones (RA)\n\nbase10: #c0c4bb\nviolet-muted: #7c81b0\nblue-muted: #4e7baa\n\nyellow-hot: #ffcc44\norange-hot: #eb6d20\nred-hot: #ff2222\nblue-hot: #2298ee\ngreen-hot: #98ee22\n\n: Palette\n\n: Do not use colour macro for background and foreground\nbackground: #fdf6e3\n download-foreground: <<colour background>>\n dragger-foreground: <<colour background>>\n dropdown-background: <<colour background>>\n modal-background: <<colour background>>\n sidebar-foreground-shadow: <<colour background>>\n tiddler-background: <<colour background>>\n tiddler-border: <<colour background>>\n tiddler-link-background: <<colour background>>\n tab-background-selected: <<colour background>>\n dropdown-tab-background-selected: <<colour tab-background-selected>>\nforeground: #657b83\n dragger-background: <<colour foreground>>\n tab-foreground: <<colour foreground>>\n tab-foreground-selected: <<colour tab-foreground>>\n sidebar-tab-foreground-selected: <<colour tab-foreground-selected>>\n sidebar-tab-foreground: <<colour tab-foreground>>\n sidebar-button-foreground: <<colour foreground>>\n sidebar-controls-foreground: <<colour foreground>>\n sidebar-foreground: <<colour foreground>>\n: base03\n: base02\n: base01\n alert-muted-foreground: <<colour base01>>\n: base00\n code-foreground: <<colour base00>>\n message-foreground: <<colour base00>>\n tag-foreground: <<colour base00>>\n: base0\n sidebar-tiddler-link-foreground: <<colour base0>>\n: base1\n muted-foreground: <<colour base1>>\n blockquote-bar: <<colour muted-foreground>>\n dropdown-border: <<colour muted-foreground>>\n sidebar-muted-foreground: <<colour muted-foreground>>\n tiddler-title-foreground: <<colour muted-foreground>>\n site-title-foreground: <<colour tiddler-title-foreground>>\n: base2\n modal-footer-background: <<colour base2>>\n page-background: <<colour base2>>\n modal-backdrop: <<colour page-background>>\n notification-background: <<colour page-background>>\n code-background: <<colour page-background>>\n code-border: <<colour code-background>>\n pre-background: <<colour page-background>>\n pre-border: <<colour pre-background>>\n sidebar-tab-background-selected: <<colour page-background>>\n table-header-background: <<colour base2>>\n tag-background: <<colour base2>>\n tiddler-editor-background: <<colour base2>>\n tiddler-info-background: <<colour base2>>\n tiddler-info-tab-background: <<colour base2>>\n tab-background: <<colour base2>>\n dropdown-tab-background: <<colour tab-background>>\n: base3\n alert-background: <<colour base3>>\n message-background: <<colour base3>>\n: yellow\n: orange\n: red\n: magenta\n alert-highlight: <<colour magenta>>\n: violet\n external-link-foreground: <<colour violet>>\n: blue\n: cyan\n: green\n: base10\n tiddler-controls-foreground: <<colour base10>>\n: violet-muted\n external-link-foreground-visited: <<colour violet-muted>>\n: blue-muted\n primary: <<colour blue-muted>>\n download-background: <<colour primary>>\n tiddler-link-foreground: <<colour primary>>\n\nalert-border: #b99e2f\ndirty-indicator: #ff0000\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nmessage-border: #cfd6e6\nmodal-border: #999999\nselect-tag-background:\nselect-tag-foreground:\nsidebar-controls-foreground-hover:\nsidebar-muted-foreground-hover:\nsidebar-tab-background: #ded8c5\nsidebar-tiddler-link-foreground-hover:\nstatic-alert-foreground: #aaaaaa\ntab-border: #cccccc\n modal-footer-border: <<colour tab-border>>\n modal-header-border: <<colour tab-border>>\n notification-border: <<colour tab-border>>\n sidebar-tab-border: <<colour tab-border>>\n tab-border-selected: <<colour tab-border>>\n sidebar-tab-border-selected: <<colour tab-border-selected>>\ntab-divider: #d8d8d8\n sidebar-tab-divider: <<colour tab-divider>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-border: #dddddd\ntiddler-subtitle-foreground: #c0c0c0\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/SolarizedDark": {
"title": "$:/palettes/SolarizedDark",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Precision dark colors for machines and people",
"license": "MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE",
"name": "SolarizedDark",
"text": "alert-background: #073642\nalert-border: #93a1a1\nalert-highlight: #d33682\nalert-muted-foreground: #d33682\nbackground: #073642\nblockquote-bar: #d33682\nbutton-background: #073642\nbutton-border: #586e75\nbutton-foreground: #93a1a1\ncode-background: #073642\ncode-border: #586e75\ncode-foreground: #93a1a1\ndirty-indicator: inherit\ndownload-background: #859900\ndownload-foreground: #073642\ndragger-background: #073642\ndragger-foreground: #839496\ndropdown-background: #073642\ndropdown-border: #93a1a1\ndropdown-tab-background: #002b36\ndropdown-tab-background-selected: #073642\ndropzone-background: #859900\nexternal-link-background: inherit\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-foreground: #268bd2\nexternal-link-foreground-hover:\nexternal-link-foreground-visited: #268bd2\nforeground: #839496\nmessage-background: #002b36\nmessage-border: #586e75\nmessage-foreground: #839496\nmodal-backdrop: #657b83\nmodal-background: #002b36\nmodal-border: #586e75\nmodal-footer-background: #073642\nmodal-footer-border: #586e75\nmodal-header-border: #586e75\nmuted-foreground: #93a1a1\nnotification-background: #002b36\nnotification-border: #586e75\npage-background: #073642\npre-background: inherit\npre-border: #657b83\nprimary: #859900\nselect-tag-background: #002b36\nselect-tag-foreground: #839496\nsidebar-button-foreground: #93a1a1\nsidebar-controls-foreground: #93a1a1\nsidebar-controls-foreground-hover: #eee8d5\nsidebar-foreground: #93a1a1\nsidebar-foreground-shadow: transparent\nsidebar-muted-foreground: #839496\nsidebar-muted-foreground-hover: #93a1a1\nsidebar-tab-background: #002b36\nsidebar-tab-background-selected: #073642\nsidebar-tab-border: #073642\nsidebar-tab-border-selected: #839496\nsidebar-tab-divider: #002b36\nsidebar-tab-foreground: #657b83\nsidebar-tab-foreground-selected: #93a1a1\nsidebar-tiddler-link-foreground: #2aa198\nsidebar-tiddler-link-foreground-hover: #eee8d5\nsite-title-foreground: #d33682\nstatic-alert-foreground: #93a1a1\ntab-background: #073642\ntab-background-selected: #002b36\ntab-border: #586e75\ntab-border-selected: #93a1a1\ntab-divider: #93a1a1\ntab-foreground: #839496\ntab-foreground-selected: #93a1a1\ntable-border: #586e75\ntable-footer-background: #073642\ntable-header-background: #073642\ntag-background: #b58900\ntag-foreground: #002b36\ntiddler-background: #002b36\ntiddler-border: #586e75\ntiddler-controls-foreground: inherit\ntiddler-controls-foreground-hover: #d33682\ntiddler-controls-foreground-selected: #2aa198\ntiddler-editor-background: #002b36\ntiddler-editor-border: #073642\ntiddler-editor-border-image: #002b36\ntiddler-editor-fields-even: #002b36\ntiddler-editor-fields-odd: #073642\ntiddler-info-background: #073642\ntiddler-info-border: #657b83\ntiddler-info-tab-background: #002b36\ntiddler-link-background: #002b36\ntiddler-link-foreground: #2aa198\ntiddler-subtitle-foreground: #839496\ntiddler-title-foreground: #d33682\ntoolbar-cancel-button: #839496\ntoolbar-close-button: #839496\ntoolbar-delete-button: #dc322f\ntoolbar-done-button: #839496\ntoolbar-edit-button: #839496\ntoolbar-info-button: #839496\ntoolbar-new-button: #839496\ntoolbar-options-button: #839496\ntoolbar-save-button: inherit\nuntagged-background: #586e75\nvery-muted-foreground: #586e75\n"
},
"$:/palettes/SolarizedLight": {
"title": "$:/palettes/SolarizedLight",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Precision colors for machines and people",
"license": "MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE",
"name": "SolarizedLight",
"text": "alert-background: #eee8d5\nalert-border: #586e75\nalert-highlight: #d33682\nalert-muted-foreground: #d33682\nbackground: #eee8d5\nblockquote-bar: #d33682\nbutton-background: #eee8d5\nbutton-border: #93a1a1\nbutton-foreground: #586e75\ncode-background: #eee8d5\ncode-border: #93a1a1\ncode-foreground: #586e75\ndirty-indicator: inherit\ndownload-background: #859900\ndownload-foreground: #eee8d5\ndragger-background: #eee8d5\ndragger-foreground: #657b83\ndropdown-background: #eee8d5\ndropdown-border: #586e75\ndropdown-tab-background: #fdf6e3\ndropdown-tab-background-selected: #eee8d5\ndropzone-background: #859900\nexternal-link-background: inherit\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-foreground: #268bd2\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #268bd2\nforeground: #657b83\nmessage-background: #fdf6e3\nmessage-border: #93a1a1\nmessage-foreground: #657b83\nmodal-backdrop: #839496\nmodal-background: #fdf6e3\nmodal-border: #93a1a1\nmodal-footer-background: #eee8d5\nmodal-footer-border: #93a1a1\nmodal-header-border: #93a1a1\nmuted-foreground: #586e75\nnotification-background: #fdf6e3\nnotification-border: #93a1a1\npage-background: #eee8d5\npre-background: #eee8d5\npre-border: #839496\nprimary: #859900\nselect-tag-background: #fdf6e3\nselect-tag-foreground: #657b83\nsidebar-button-foreground: #586e75\nsidebar-controls-foreground: #586e75\nsidebar-controls-foreground-hover: #d33682\nsidebar-foreground: #586e75\nsidebar-foreground-shadow: transparent\nsidebar-muted-foreground: #657b83\nsidebar-muted-foreground-hover: #586e75\nsidebar-tab-background: #fdf6e3\nsidebar-tab-background-selected: #eee8d5\nsidebar-tab-border: #eee8d5\nsidebar-tab-border-selected: #657b83\nsidebar-tab-divider: #fdf6e3\nsidebar-tab-foreground: #839496\nsidebar-tab-foreground-selected: #586e75\nsidebar-tiddler-link-foreground: #2aa198\nsidebar-tiddler-link-foreground-hover: #002b36\nsite-title-foreground: #d33682\nstatic-alert-foreground: #586e75\ntab-background: #eee8d5\ntab-background-selected: #fdf6e3\ntab-border: #93a1a1\ntab-border-selected: #586e75\ntab-divider: #586e75\ntab-foreground: #657b83\ntab-foreground-selected: #586e75\ntable-border: #93a1a1\ntable-footer-background: #eee8d5\ntable-header-background: #eee8d5\ntag-background: #b58900\ntag-foreground: #fdf6e3\ntiddler-background: #fdf6e3\ntiddler-border: #93a1a1\ntiddler-controls-foreground: inherit\ntiddler-controls-foreground-hover: #d33682\ntiddler-controls-foreground-selected: #2aa198\ntiddler-editor-background: #fdf6e3\ntiddler-editor-border: #eee8d5\ntiddler-editor-border-image: #fdf6e3\ntiddler-editor-fields-even: #fdf6e3\ntiddler-editor-fields-odd: #eee8d5\ntiddler-info-background: #eee8d5\ntiddler-info-border: #839496\ntiddler-info-tab-background: #fdf6e3\ntiddler-link-background: #fdf6e3\ntiddler-link-foreground: #2aa198\ntiddler-subtitle-foreground: #657b83\ntiddler-title-foreground: #d33682\ntoolbar-cancel-button: #657b83\ntoolbar-close-button: #657b83\ntoolbar-delete-button: #dc322f\ntoolbar-done-button: #657b83\ntoolbar-edit-button: #657b83\ntoolbar-info-button: #657b83\ntoolbar-new-button: #657b83\ntoolbar-options-button: #657b83\ntoolbar-save-button: inherit\nuntagged-background: #586e75\nvery-muted-foreground: #93a1a1\n"
},
"$:/palettes/SpartanDay": {
"title": "$:/palettes/SpartanDay",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Cold, spartan day colors",
"name": "Spartan Day",
"text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #FAFAFA\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: #ececec\ncode-border: #ececec\ncode-foreground: \ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #FFFFFF\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #F5F5F5\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: \nexternal-link-foreground: \nforeground: rgba(0, 0, 0, 0.87)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(0, 0, 0, 0.54)\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour very-muted-foreground>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(0, 0, 0, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #f4f4f4\npre-background: #ececec\npre-border: #ececec\nprimary: #3949ab\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #aeaeae\nsidebar-controls-foreground: #c6c6c6\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground-hover: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground: rgba(0, 0, 0, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(0, 0, 0, 0.87)\nsidebar-tab-foreground: rgba(0, 0, 0, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(0, 0, 0, 0.87)\nsidebar-tiddler-link-foreground: rgba(0, 0, 0, 0.54)\nsite-title-foreground: rgba(0, 0, 0, 0.87)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(0, 0, 0, 0.87)\ntab-foreground: rgba(0, 0, 0, 0.54)\ntable-border: #d8d8d8\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: #f9f9f9\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: #e8e7e7\ntiddler-editor-fields-even: rgba(0, 0, 0, 0.1)\ntiddler-editor-fields-odd: rgba(0, 0, 0, 0.04)\ntiddler-info-background: #F5F5F5\ntiddler-info-border: #F5F5F5\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #000000\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(0, 0, 0, 0.12)\n"
},
"$:/palettes/SpartanNight": {
"title": "$:/palettes/SpartanNight",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Dark spartan colors",
"name": "Spartan Night",
"text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #303030\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: <<colour pre-background>>\ncode-border: <<colour pre-border>>\ncode-foreground: rgba(255, 255, 255, 0.54)\ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #424242\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #050505\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: #7c318c\nexternal-link-foreground: #9e3eb3\nforeground: rgba(255, 255, 255, 0.7)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(255, 255, 255, 0.54)\nmodal-backdrop: <<colour page-background>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour background>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(255, 255, 255, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #212121\npre-background: #2a2a2a\npre-border: transparent\nprimary: #5656f3\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #494949\nsidebar-controls-foreground: #5d5d5d\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground: rgba(255, 255, 255, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)\nsidebar-tab-foreground: rgba(255, 255, 255, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)\nsidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)\nsite-title-foreground: rgba(255, 255, 255, 0.7)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(255, 255, 255, 0.87)\ntab-foreground: rgba(255, 255, 255, 0.54)\ntable-border: #3a3a3a\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: rgb(55,55,55)\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: rgba(255, 255, 255, 0.08)\ntiddler-editor-fields-even: rgba(255, 255, 255, 0.1)\ntiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)\ntiddler-info-background: #454545\ntiddler-info-border: #454545\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #FFFFFF\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(255, 255, 255, 0.12)\n"
},
"$:/palettes/Twilight": {
"title": "$:/palettes/Twilight",
"tags": "$:/tags/Palette",
"author": "Thomas Elmiger",
"type": "application/x-tiddler-dictionary",
"name": "Twilight",
"description": "Delightful, soft darkness.",
"text": "alert-background: rgb(255, 255, 102)\nalert-border: rgb(232, 232, 125)\nalert-highlight: rgb(255, 51, 51)\nalert-muted-foreground: rgb(224, 82, 82)\nbackground: rgb(38, 38, 38)\nblockquote-bar: rgba(240, 196, 117, 0.7)\nbutton-background: rgb(63, 63, 63)\nbutton-border: rgb(127, 127, 127)\nbutton-foreground: rgb(179, 179, 179)\ncode-background: rgba(0,0,0,0.03)\ncode-border: rgba(0,0,0,0.08)\ncode-foreground: rgb(255, 94, 94)\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: rgb(255, 94, 94)\ndownload-background: #19a974\ndownload-foreground: rgb(38, 38, 38)\ndragger-background: rgb(179, 179, 179)\ndragger-foreground: rgb(38, 38, 38)\ndropdown-background: rgb(38, 38, 38)\ndropdown-border: rgb(255, 255, 255)\ndropdown-tab-background: rgba(0,0,0,.1)\ndropdown-tab-background-selected: rgba(255,255,255,1)\ndropzone-background: #9eebcf\nexternal-link-background: inherit\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-foreground: rgb(179, 179, 255)\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: rgb(153, 153, 255)\nforeground: rgb(179, 179, 179)\nmessage-background: <<colour tag-foreground>>\nmessage-border: #96ccff\nmessage-foreground: <<colour tag-background>>\nmodal-backdrop: rgb(179, 179, 179)\nmodal-background: rgb(38, 38, 38)\nmodal-border: rgba(0,0,0,.5)\nmodal-footer-background: #f4f4f4\nmodal-footer-border: rgba(0,0,0,.1)\nmodal-header-border: rgba(0,0,0,.2)\nmuted-foreground: rgb(255, 255, 255)\nnotification-background: <<colour tag-foreground>>\nnotification-border: <<colour tag-background>>\npage-background: rgb(26, 26, 26)\npre-background: rgb(25, 25, 25)\npre-border: rgba(0,0,0,.2)\nprimary: rgb(255, 201, 102)\nselect-tag-background: \nselect-tag-foreground: \nsidebar-button-foreground: rgb(179, 179, 179)\nsidebar-controls-foreground: rgb(153, 153, 153)\nsidebar-controls-foreground-hover: <<colour tiddler-controls-foreground-hover>>\nsidebar-foreground: rgb(141, 141, 141)\nsidebar-foreground-shadow: transparent\nsidebar-muted-foreground: rgba(0, 0, 0, 0.5)\nsidebar-muted-foreground-hover: rgb(141, 141, 141)\nsidebar-tab-background: rgba(141, 141, 141, 0.2)\nsidebar-tab-background-selected: rgb(26, 26, 26)\nsidebar-tab-border: rgb(127, 127, 127)\nsidebar-tab-border-selected: rgb(127, 127, 127)\nsidebar-tab-divider: rgb(127, 127, 127)\nsidebar-tab-foreground: rgb(179, 179, 179)\nsidebar-tab-foreground-selected: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground-hover: rgb(115, 115, 115)\nsite-title-foreground: rgb(255, 201, 102)\nstatic-alert-foreground: rgba(0,0,0,.3)\ntab-background: rgba(0,0,0,0.125)\ntab-background-selected: rgb(38, 38, 38)\ntab-border: rgb(255, 201, 102)\ntab-border-selected: rgb(255, 201, 102)\ntab-divider: rgb(255, 201, 102)\ntab-foreground: rgb(179, 179, 179)\ntab-foreground-selected: rgb(179, 179, 179)\ntable-border: rgba(255,255,255,.3)\ntable-footer-background: rgba(0,0,0,.4)\ntable-header-background: rgba(0,0,0,.1)\ntag-background: rgb(255, 201, 102)\ntag-foreground: rgb(25, 25, 25)\ntiddler-background: rgb(38, 38, 38)\ntiddler-border: rgba(240, 196, 117, 0.7)\ntiddler-controls-foreground: rgb(128, 128, 128)\ntiddler-controls-foreground-hover: rgba(255, 255, 255, 0.8)\ntiddler-controls-foreground-selected: rgba(255, 255, 255, 0.9)\ntiddler-editor-background: rgb(33, 33, 33)\ntiddler-editor-border: rgb(63, 63, 63)\ntiddler-editor-border-image: rgb(25, 25, 25)\ntiddler-editor-fields-even: rgb(33, 33, 33)\ntiddler-editor-fields-odd: rgb(28, 28, 28)\ntiddler-info-background: rgb(43, 43, 43)\ntiddler-info-border: rgb(25, 25, 25)\ntiddler-info-tab-background: rgb(43, 43, 43)\ntiddler-link-background: rgb(38, 38, 38)\ntiddler-link-foreground: rgb(204, 204, 255)\ntiddler-subtitle-foreground: rgb(255, 255, 255)\ntiddler-title-foreground: rgb(255, 192, 76)\ntoolbar-cancel-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-done-button: \ntoolbar-edit-button: \ntoolbar-info-button: \ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \nuntagged-background: rgb(255, 255, 255)\nvery-muted-foreground: rgba(240, 196, 117, 0.7)\n"
},
"$:/palettes/Vanilla": {
"title": "$:/palettes/Vanilla",
"name": "Vanilla",
"description": "Pale and unobtrusive",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #f4f4f4\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselection-background:\nselection-foreground:\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #aaaaaa\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #f4f4f4\nsidebar-tab-background: #e0e0e0\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: #e4e4e4\nsidebar-tab-foreground-selected:\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #999999\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\nwikilist-background: #e5e5e5\nwikilist-item: #fff\nwikilist-info: #000\nwikilist-title: #666\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: #aaa\nwikilist-button-open: #4fb82b\nwikilist-button-open-hover: green\nwikilist-button-reveal: #5778d8\nwikilist-button-reveal-hover: blue\nwikilist-button-remove: #d85778\nwikilist-button-remove-hover: red\nwikilist-toolbar-background: #d3d3d3\nwikilist-toolbar-foreground: #888\nwikilist-droplink-dragover: rgba(255,192,192,0.5)\nwikilist-button-background: #acacac\nwikilist-button-foreground: #000\n"
},
"$:/core/readme": {
"title": "$:/core/readme",
"text": "This plugin contains TiddlyWiki's core components, comprising:\n\n* JavaScript code modules\n* Icons\n* Templates needed to create TiddlyWiki's user interface\n* British English (''en-GB'') translations of the localisable strings used by the core\n"
},
"$:/library/sjcl.js/license": {
"title": "$:/library/sjcl.js/license",
"type": "text/plain",
"text": "SJCL is open. You can use, modify and redistribute it under a BSD\nlicense or under the GNU GPL, version 2.0.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/BSD-2-Clause\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n1. Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in the\ndocumentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\nIS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\nTO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\nPARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/GPL-2.0\n\nThe Stanford Javascript Crypto Library (hosted here on GitHub) is a\nproject by the Stanford Computer Security Lab to build a secure,\npowerful, fast, small, easy-to-use, cross-browser library for\ncryptography in Javascript.\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University.\n\nThis program is free software; you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation; either version 2 of the License, or (at your\noption) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\nPublic License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith this program; if not, write to the Free Software Foundation, Inc.,\n59 Temple Place, Suite 330, Boston, MA 02111-1307 USA"
},
"$:/core/templates/MOTW.html": {
"title": "$:/core/templates/MOTW.html",
"text": "\\rules only filteredtranscludeinline transcludeinline entity\n<!-- The following comment is called a MOTW comment and is necessary for the TiddlyIE Internet Explorer extension -->\n<!-- saved from url=(0021)https://tiddlywiki.com --> "
},
"$:/core/templates/alltiddlers.template.html": {
"title": "$:/core/templates/alltiddlers.template.html",
"type": "text/vnd.tiddlywiki-html",
"text": "<!-- This template is provided for backwards compatibility with older versions of TiddlyWiki -->\n\n<$set name=\"exportFilter\" value=\"[!is[system]sort[title]]\">\n\n{{$:/core/templates/exporters/StaticRiver}}\n\n</$set>\n"
},
"$:/core/templates/canonical-uri-external-image": {
"title": "$:/core/templates/canonical-uri-external-image",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external images.\n\nChange the `./images/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./images/<$view field=\"title\" format=\"doubleurlencoded\"/>"
},
"$:/core/templates/canonical-uri-external-raw": {
"title": "$:/core/templates/canonical-uri-external-raw",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external raw files that are stored in the same directory\n\n-->\n<$view field=\"title\" format=\"doubleurlencoded\"/>"
},
"$:/core/templates/canonical-uri-external-text": {
"title": "$:/core/templates/canonical-uri-external-text",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external text files.\n\nChange the `./text/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./text/<$view field=\"title\" format=\"doubleurlencoded\"/>.tid"
},
"$:/core/templates/css-tiddler": {
"title": "$:/core/templates/css-tiddler",
"text": "<!--\n\nThis template is used for saving CSS tiddlers as a style tag with data attributes representing the tiddler fields.\n\n-->`<style`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/css\">`<$view field=\"text\" format=\"text\" />`</style>`"
},
"$:/core/templates/exporters/CsvFile": {
"title": "$:/core/templates/exporters/CsvFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/CsvFile}}",
"extension": ".csv",
"text": "<$macrocall $name=\"csvtiddlers\" filter=<<exportFilter>> format=\"quoted-comma-sep\" $output=\"text/raw\"/>\n"
},
"$:/core/templates/exporters/JsonFile": {
"title": "$:/core/templates/exporters/JsonFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/JsonFile}}",
"extension": ".json",
"text": "<$macrocall $name=\"jsontiddlers\" filter=<<exportFilter>> $output=\"text/raw\"/>\n"
},
"$:/core/templates/exporters/StaticRiver": {
"title": "$:/core/templates/exporters/StaticRiver",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/StaticRiver}}",
"extension": ".html",
"text": "\\define tv-wikilink-template() #$uri_encoded$\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n<section class=\"tc-story-river tc-static-story-river\">\n{{$:/core/templates/exporters/StaticRiver/Content||$:/core/templates/html-tiddler}}\n</section>\n</body>\n</html>\n"
},
"$:/core/templates/exporters/StaticRiver/Content": {
"title": "$:/core/templates/exporters/StaticRiver/Content",
"text": "\\define renderContent()\n{{{ $(exportFilter)$ ||$:/core/templates/static-tiddler}}}\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>\n"
},
"$:/core/templates/exporters/TidFile": {
"title": "$:/core/templates/exporters/TidFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/TidFile}}",
"extension": ".tid",
"condition": "[<count>compare:lte[1]]",
"text": "\\define renderContent()\n{{{ $(exportFilter)$ +[limit[1]] ||$:/core/templates/tid-tiddler}}}\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>"
},
"$:/core/save/all-external-js": {
"title": "$:/core/save/all-external-js",
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[prefix[$:/temp/]] -[prefix[$:/HistoryList]] -[status[pending]plugin-type[import]] -[[$:/core]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5-external-js.html}}\n"
},
"$:/core/templates/tiddlywiki5.js": {
"title": "$:/core/templates/tiddlywiki5.js",
"text": "\\rules only filteredtranscludeinline transcludeinline codeinline\n\n/*\n{{ $:/core/copyright.txt ||$:/core/templates/plain-text-tiddler}}\n`*/\n`<!--~~ Library modules ~~-->\n{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/plain-text-tiddler}}}\n<!--~~ Boot prefix ~~-->\n{{ $:/boot/bootprefix.js ||$:/core/templates/plain-text-tiddler}}\n<!--~~ Core plugin ~~-->\n{{$:/core/templates/tiddlywiki5.js/tiddlers}}\n<!--~~ Boot kernel ~~-->\n{{ $:/boot/boot.js ||$:/core/templates/plain-text-tiddler}}\n"
},
"$:/core/templates/tiddlywiki5.js/tiddlers": {
"title": "$:/core/templates/tiddlywiki5.js/tiddlers",
"text": "`\n$tw.preloadTiddlerArray(`<$text text=<<jsontiddlers \"[[$:/core]]\">>/>`);\n`\n"
},
"$:/core/templates/tiddlywiki5-external-js.html": {
"title": "$:/core/templates/tiddlywiki5-external-js.html",
"text": "\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n{{$:/core/templates/MOTW.html}}<html lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<!--~~ Raw markup for the top of the head section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"/>\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"{{$:/core/copyright.txt}}\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/core/wiki/rawmarkup]] [all[shadows+tiddlers]tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}\n</head>\n<body class=\"tc-body\">\n<!--~~ Raw markup for the top of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n{{$:/core/templates/static.area}}\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n{{$:/core/templates/store.area.template.html}}\n<!--~~ Raw markup for the bottom of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}\n</body>\n<script src=\"%24%3A%2Fcore%2Ftemplates%2Ftiddlywiki5.js\" onerror=\"alert('Error: Cannot load tiddlywiki.js');\"></script>\n</html>\n"
},
"$:/core/templates/html-div-skinny-tiddler": {
"title": "$:/core/templates/html-div-skinny-tiddler",
"text": "<!--\n\nThis template is a variant of $:/core/templates/html-div-tiddler used for saving skinny tiddlers (with no text field)\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre></pre>\n</div>`\n"
},
"$:/core/templates/html-div-tiddler": {
"title": "$:/core/templates/html-div-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as an HTML DIV tag with attributes representing the tiddler fields.\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre>`<$view field=\"text\" format=\"htmlencoded\" />`</pre>\n</div>`\n"
},
"$:/core/templates/html-tiddler": {
"title": "$:/core/templates/html-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as raw HTML\n\n--><$view field=\"text\" format=\"htmlwikified\" />"
},
"$:/core/templates/javascript-tiddler": {
"title": "$:/core/templates/javascript-tiddler",
"text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields.\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\">`<$view field=\"text\" format=\"text\" />`</script>`"
},
"$:/core/templates/json-tiddler": {
"title": "$:/core/templates/json-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as raw JSON\n\n--><$text text=<<jsontiddler>>/>"
},
"$:/core/templates/module-tiddler": {
"title": "$:/core/templates/module-tiddler",
"text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields. The body of the tiddler is wrapped in a call to the `$tw.modules.define` function in order to define the body of the tiddler as a module\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\" data-module=\"yes\">$tw.modules.define(\"`<$view field=\"title\" format=\"jsencoded\" />`\",\"`<$view field=\"module-type\" format=\"jsencoded\" />`\",function(module,exports,require) {`<$view field=\"text\" format=\"text\" />`});\n</script>`"
},
"$:/core/templates/plain-text-tiddler": {
"title": "$:/core/templates/plain-text-tiddler",
"text": "<$view field=\"text\" format=\"text\" />"
},
"$:/core/templates/raw-static-tiddler": {
"title": "$:/core/templates/raw-static-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as static HTML\n\n--><$view field=\"text\" format=\"plainwikified\" />"
},
"$:/core/save/all": {
"title": "$:/core/save/all",
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[prefix[$:/temp/]] -[prefix[$:/HistoryList]] -[status[pending]plugin-type[import]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/empty": {
"title": "$:/core/save/empty",
"text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/lazy-all": {
"title": "$:/core/save/lazy-all",
"text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] \n\\end\n\\define skinnySaveTiddlerFilter()\n[!is[system]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/lazy-images": {
"title": "$:/core/save/lazy-images",
"text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] -[!is[system]is[image]] +[sort[title]] \n\\end\n\\define skinnySaveTiddlerFilter()\n[is[image]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/templates/server/static.sidebar.wikitext": {
"title": "$:/core/templates/server/static.sidebar.wikitext",
"text": "\\whitespace trim\n<div class=\"tc-sidebar-scrollable\" style=\"overflow: auto;\">\n<div class=\"tc-sidebar-header\">\n<h1 class=\"tc-site-title\">\n<$transclude tiddler=\"$:/SiteTitle\"/>\n</h1>\n<div class=\"tc-site-subtitle\">\n<$transclude tiddler=\"$:/SiteSubtitle\"/>\n</div>\n<h2>\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$list filter={{$:/DefaultTiddlers}}>\n<div class=\"tc-menu-list-subitem\">\n<$link><$text text=<<currentTiddler>>/></$link>\n</div>\n</$list>\n</div>\n<!-- Currently disabled the recent list as it is unweildy when the responsive narrow view kicks in\n<h2>\n{{$:/language/SideBar/Recent/Caption}}\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n</div>\n</div>\n</div>\n-->\n"
},
"$:/core/templates/server/static.tiddler.html": {
"title": "$:/core/templates/server/static.tiddler.html",
"text": "\\whitespace trim\n\\define tv-wikilink-template() $uri_encoded$\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content={{$:/core/templates/version}} />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"%24%3A%2Fcore%2Ftemplates%2Fstatic.template.css\">\n<title><$view field=\"caption\" format=\"plainwikified\"><$view field=\"title\"/></$view>: <$view tiddler=\"$:/core/wiki/title\" format=\"plainwikified\"/></title>\n</head>\n<body class=\"tc-body\">\n<$transclude tiddler=\"$:/core/templates/server/static.sidebar.wikitext\" mode=\"inline\"/>\n<section class=\"tc-story-river\">\n<div class=\"tc-tiddler-frame\">\n<$transclude tiddler=\"$:/core/templates/server/static.tiddler.wikitext\" mode=\"inline\"/>\n</div>\n</section>\n</body>\n</html>"
},
"$:/core/templates/server/static.tiddler.wikitext": {
"title": "$:/core/templates/server/static.tiddler.wikitext",
"text": "\\whitespace trim\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<h2><$text text=<<currentTiddler>>/></h2>\n</div>\n</div>\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}}>\n<$view field=\"modifier\"/>\n</$link> <$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n<div class=\"tc-tags-wrapper\">\n<$list filter=\"[all[current]tags[]sort[title]]\">\n<a href={{{ [<currentTiddler>encodeuricomponent[]] }}}>\n<$macrocall $name=\"tag-pill\" tag=<<currentTiddler>>/>\n</a>\n</$list>\n</div>\n<div class=\"tc-tiddler-body\">\n<$transclude mode=\"block\"/>\n</div>\n"
},
"$:/core/templates/single.tiddler.window": {
"title": "$:/core/templates/single.tiddler.window",
"text": "\\whitespace trim\n\\define containerClasses()\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$vars\n\ttv-config-toolbar-icons={{$:/config/Toolbar/Icons}}\n\ttv-config-toolbar-text={{$:/config/Toolbar/Text}}\n\ttv-config-toolbar-class={{$:/config/Toolbar/ButtonClass}}\n\ttv-show-missing-links={{$:/config/MissingLinks}}\n\tstoryviewTitle={{$:/view}}\n\tlanguageTitle={{{ [{$:/language}get[name]] }}}>\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n\n<$transclude mode=\"block\"/>\n\n</$navigator>\n\n</div>\n\n</$vars>\n"
},
"$:/core/templates/split-recipe": {
"title": "$:/core/templates/split-recipe",
"text": "<$list filter=\"[!is[system]]\">\ntiddler: <$view field=\"title\" format=\"urlencoded\"/>.tid\n</$list>\n"
},
"$:/core/templates/static-tiddler": {
"title": "$:/core/templates/static-tiddler",
"text": "<a name=<<currentTiddler>>>\n<$transclude tiddler=\"$:/core/ui/ViewTemplate\"/>\n</a>"
},
"$:/core/templates/static.area": {
"title": "$:/core/templates/static.area",
"text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawStaticContent]!has[draft.of]] ||$:/core/templates/raw-static-tiddler}}}\n{{$:/core/templates/static.content||$:/core/templates/html-tiddler}}\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\nThis file contains an encrypted ~TiddlyWiki. Enable ~JavaScript and enter the decryption password when prompted.\n</$reveal>\n<!-- ensure splash screen isn't shown when JS is disabled -->\n`<style>\n.tc-remove-when-wiki-loaded {display: none;}\n</style>`\n"
},
"$:/core/templates/static.content": {
"title": "$:/core/templates/static.content",
"text": "<!-- For Google, and people without JavaScript-->\nThis [[TiddlyWiki|https://tiddlywiki.com]] contains the following tiddlers:\n\n<ul>\n<$list filter=<<saveTiddlerFilter>>>\n<li><$view field=\"title\" format=\"text\"></$view></li>\n</$list>\n</ul>\n"
},
"$:/core/templates/static.template.css": {
"title": "$:/core/templates/static.template.css",
"text": "{{$:/boot/boot.css||$:/core/templates/plain-text-tiddler}}\n\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n"
},
"$:/core/templates/static.template.html": {
"title": "$:/core/templates/static.template.html",
"type": "text/vnd.tiddlywiki-html",
"text": "\\define tv-wikilink-template() static/$uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n{{$:/core/ui/PageTemplate||$:/core/templates/html-tiddler}}\n</body>\n</html>\n"
},
"$:/core/templates/static.tiddler.html": {
"title": "$:/core/templates/static.tiddler.html",
"text": "\\define tv-wikilink-template() $uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n`<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"static.css\">\n<title>`<$view field=\"caption\"><$view field=\"title\"/></$view>: {{$:/core/wiki/title}}`</title>\n</head>\n<body class=\"tc-body\">\n`{{$:/StaticBanner||$:/core/templates/html-tiddler}}`\n<section class=\"tc-story-river tc-static-story-river\">\n`<$view tiddler=\"$:/core/ui/ViewTemplate\" format=\"htmlwikified\"/>`\n</section>\n</body>\n</html>\n`\n"
},
"$:/core/templates/store.area.template.html": {
"title": "$:/core/templates/store.area.template.html",
"text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n`<div id=\"storeArea\" style=\"display:none;\">`\n<$list filter=<<saveTiddlerFilter>> template=\"$:/core/templates/html-div-tiddler\"/>\n<$list filter={{{ [<skinnySaveTiddlerFilter>] }}} template=\"$:/core/templates/html-div-skinny-tiddler\"/>\n`</div>`\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n`<!--~~ Encrypted tiddlers ~~-->`\n`<pre id=\"encryptedStoreArea\" type=\"text/plain\" style=\"display:none;\">`\n<$encrypt filter=<<saveTiddlerFilter>>/>\n`</pre>`\n</$reveal>"
},
"$:/core/templates/tid-tiddler": {
"title": "$:/core/templates/tid-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers in TiddlyWeb *.tid format\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>`\n`<$view field=\"text\" format=\"text\" />"
},
"$:/core/templates/tiddler-metadata": {
"title": "$:/core/templates/tiddler-metadata",
"text": "<!--\n\nThis template is used for saving tiddler metadata *.meta files\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>"
},
"$:/core/templates/tiddlywiki5.html": {
"title": "$:/core/templates/tiddlywiki5.html",
"text": "<$set name=\"saveTiddlerAndShadowsFilter\" filter=\"[subfilter<saveTiddlerFilter>] [subfilter<saveTiddlerFilter>plugintiddlers[]]\">\n`<!doctype html>\n`{{$:/core/templates/MOTW.html}}`<html lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<!--~~ Raw markup for the top of the head section ~~-->\n`{{{ [<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}`\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"/>\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"`{{$:/core/copyright.txt}}`\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>`{{$:/core/wiki/title}}`</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/core/wiki/rawmarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}`\n</head>\n<body class=\"tc-body\">\n<!--~~ Raw markup for the top of the body section ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}`\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n`{{$:/boot/boot.css||$:/core/templates/css-tiddler}}`\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n`{{$:/core/templates/static.area}}`\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n`{{$:/core/templates/store.area.template.html}}`\n<!--~~ Library modules ~~-->\n<div id=\"libraryModules\" style=\"display:none;\">\n`{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/javascript-tiddler}}}`\n</div>\n<!--~~ Boot kernel prologue ~~-->\n<div id=\"bootKernelPrefix\" style=\"display:none;\">\n`{{ $:/boot/bootprefix.js ||$:/core/templates/javascript-tiddler}}`\n</div>\n<!--~~ Boot kernel ~~-->\n<div id=\"bootKernel\" style=\"display:none;\">\n`{{ $:/boot/boot.js ||$:/core/templates/javascript-tiddler}}`\n</div>\n<!--~~ Raw markup for the bottom of the body section ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}`\n</body>\n</html>`\n"
},
"$:/core/templates/version": {
"title": "$:/core/templates/version",
"text": "<<version>>"
},
"$:/core/templates/wikified-tiddler": {
"title": "$:/core/templates/wikified-tiddler",
"text": "<$transclude />"
},
"$:/core/ui/AboveStory/tw2-plugin-check": {
"title": "$:/core/ui/AboveStory/tw2-plugin-check",
"tags": "$:/tags/AboveStory",
"text": "\\define lingo-base() $:/language/AboveStory/ClassicPlugin/\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]limit[1]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n<ul>\n\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]]\">\n\n<li>\n\n<$link><$view field=\"title\"/></$link>\n\n</li>\n\n</$list>\n\n</ul>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/Actions/new-image": {
"title": "$:/core/ui/Actions/new-image",
"tags": "$:/tags/Actions",
"description": "create a new image tiddler",
"text": "\\define get-type()\nimage/$(imageType)$\n\\end\n\\define get-tags() $(textFieldTags)$ $(tagsFieldTags)$\n<$vars imageType={{$:/config/NewImageType}} textFieldTags={{$:/config/NewJournal/Tags}} tagsFieldTags={{$:/config/NewJournal/Tags!!tags}}>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=<<get-type>> tags=<<get-tags>>/>\n</$vars>\n"
},
"$:/core/ui/Actions/new-journal": {
"title": "$:/core/ui/Actions/new-journal",
"tags": "$:/tags/Actions",
"description": "create a new journal tiddler",
"text": "\\define get-tags() $(textFieldTags)$ $(tagsFieldTags)$\n<$vars journalTitleTemplate={{$:/config/NewJournal/Title}} textFieldTags={{$:/config/NewJournal/Tags}} tagsFieldTags={{$:/config/NewJournal/Tags!!tags}} journalText={{$:/config/NewJournal/Text}}>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$reveal type=\"nomatch\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<get-tags>> text={{{ [<journalTitle>get[]] }}}/>\n</$reveal>\n<$reveal type=\"match\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<get-tags>> text=<<journalText>>/>\n</$reveal>\n</$wikify>\n</$vars>\n"
},
"$:/core/ui/Actions/new-tiddler": {
"title": "$:/core/ui/Actions/new-tiddler",
"tags": "$:/tags/Actions",
"description": "create a new empty tiddler",
"text": "\\define get-tags() $(textFieldTags)$ $(tagsFieldTags)$\n<$vars textFieldTags={{$:/config/NewTiddler/Tags}} tagsFieldTags={{$:/config/NewTiddler/Tags!!tags}}>\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<get-tags>>/>\n</$vars>\n"
},
"$:/core/ui/AdvancedSearch/Filter": {
"title": "$:/core/ui/AdvancedSearch/Filter",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Filter/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab--1498284803\" tag=\"$:/tags/AdvancedSearch\" beforeafter=\"$beforeafter$\" defaultState=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define cancel-search-actions() <$list filter=\"[{$:/temp/advancedsearch/input}!match{$:/temp/advancedsearch}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]\" />\"\"\"><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/></$list>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\n\n<<lingo Filter/Hint>>\n\n<div class=\"tc-search tc-advanced-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=\"$:/temp/advancedsearch/input\" storeTitle=\"$:/temp/advancedsearch\" \n\t\trefreshTitle=\"$:/temp/advancedsearch/refresh\" selectionStateTitle=\"$:/temp/advancedsearch/selected-item\" type=\"search\" \n\t\ttag=\"input\" focus={{$:/config/Search/AutoFocus}} configTiddlerFilter=\"[[$:/temp/advancedsearch]]\" firstSearchFilterField=\"text\" \n\t\tinputAcceptActions=<<input-accept-actions>> inputAcceptVariantActions=<<input-accept-variant-actions>> \n\t\tinputCancelActions=<<cancel-search-actions>>/>\n</$keyboard>\n</$keyboard>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch/FilterButton]!has[draft.of]]\"><$transclude/></$list>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\n<div class=\"tc-search-results\">\n<<lingo Filter/Matches>>\n<$list filter={{$:/temp/advancedsearch}}>\n<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[[$:/temp/advancedsearch/selected-item]get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n</div>\n</$set>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\".tc-advanced-search input\"\"\" />\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button popup=<<qualify \"$:/state/filterDeleteDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/delete-button}}\n</$button>\n</$reveal>\n\n<$reveal state=<<qualify \"$:/state/filterDeleteDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\nAre you sure you wish to delete <<resultCount>> tiddler(s)?\n</$set>\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn\">\n<$action-deletetiddler $filter={{$:/temp/advancedsearch}}/>\nDelete these tiddlers\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/filterDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</span>\n\n<$reveal state=<<qualify \"$:/state/filterDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher actions=\"\"\"<$action-setfield $tiddler=\"$:/temp/advancedsearch\" text=<<navigateTo>>/><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text=<<navigateTo>>/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/><$action-sendmessage $message=\"tm-focus-selector\" $param='.tc-advanced-search input' />\"\"\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Filter]]\"><$link to={{!!filter}}><$transclude field=\"description\"/></$link>\n</$list>\n</div>\n</div>\n</$linkcatcher>\n</$set>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/export": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$macrocall $name=\"exportButton\" exportFilter={{$:/temp/advancedsearch}} lingoBase=\"$:/language/Buttons/ExportTiddlers/\"/>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Shadows": {
"title": "$:/core/ui/AdvancedSearch/Shadows",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Shadows/Caption}}",
"first-search-filter": "[all[shadows]search<userInput>sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]]",
"text": "\\define lingo-base() $:/language/Search/\n\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab--1498284803\" tag=\"$:/tags/AdvancedSearch\" beforeafter=\"$beforeafter$\" defaultState=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define cancel-search-actions() <$list filter=\"[{$:/temp/advancedsearch}!match{$:/temp/advancedsearch/input}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]\" />\"\"\"><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/></$list><$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\".tc-advanced-search input\"\"\"/>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\n\n<<lingo Shadows/Hint>>\n\n<div class=\"tc-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=\"$:/temp/advancedsearch/input\" storeTitle=\"$:/temp/advancedsearch\"\n\t\trefreshTitle=\"$:/temp/advancedsearch/refresh\" selectionStateTitle=\"$:/temp/advancedsearch/selected-item\" type=\"search\"\n\t\ttag=\"input\" focus={{$:/config/Search/AutoFocus}} configTiddlerFilter=\"[[$:/core/ui/AdvancedSearch/Shadows]]\"\n\t\tinputCancelActions=<<cancel-search-actions>> inputAcceptActions=<<input-accept-actions>> \n\t\tinputAcceptVariantActions=<<input-accept-variant-actions>> filterMinLength={{$:/config/Search/MinLength}}/>\n</$keyboard>\n</$keyboard>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo Shadows/Matches>>\n\n<$list filter=\"[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]]\">\n<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[[$:/temp/advancedsearch/selected-item]get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Standard": {
"title": "$:/core/ui/AdvancedSearch/Standard",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Standard/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab--1498284803\" tag=\"$:/tags/AdvancedSearch\" beforeafter=\"$beforeafter$\" defaultState=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define next-search-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab/search-results/advancedsearch\" tag=\"$:/tags/SearchResults\" beforeafter=\"$beforeafter$\" defaultState={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/standard/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define cancel-search-actions() <$list filter=\"[{$:/temp/advancedsearch}!match{$:/temp/advancedsearch/input}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]\" />\"\"\"><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/></$list><$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\".tc-advanced-search input\"\"\"/>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\n\n<<lingo Standard/Hint>>\n\n<div class=\"tc-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$keyboard key=\"shift-alt-Right\" actions=<<next-search-tab>>>\n<$keyboard key=\"shift-alt-Left\" actions=<<next-search-tab \"before\">>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=\"$:/temp/advancedsearch/input\" storeTitle=\"$:/temp/advancedsearch\"\n\t\trefreshTitle=\"$:/temp/advancedsearch/refresh\" selectionStateTitle=\"$:/temp/advancedsearch/selected-item\" type=\"search\"\n\t\ttag=\"input\" focus={{$:/config/Search/AutoFocus}} inputCancelActions=<<cancel-search-actions>> \n\t\tinputAcceptActions=<<input-accept-actions>> inputAcceptVariantActions=<<input-accept-variant-actions>> \n\t\tconfigTiddlerFilter=\"[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]\"\n\t\tfilterMinLength={{$:/config/Search/MinLength}}/>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$vars userInput={{{ [[$:/temp/advancedsearch]get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}} searchListState=\"$:/temp/advancedsearch/selected-item\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude/>\n</$list>\n\"\"\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/standard/currentTab\" text=<<currentTab>>/>\"\"\" explicitState=\"$:/state/tab/search-results/advancedsearch\" />\n</$list>\n</$vars>\n</$list>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/System": {
"title": "$:/core/ui/AdvancedSearch/System",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/System/Caption}}",
"first-search-filter": "[is[system]search<userInput>sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] -[[$:/temp/advancedsearch/selected-item]]",
"text": "\\define lingo-base() $:/language/Search/\n\\define set-next-input-tab(beforeafter:\"after\",stateTitle,tag,defaultState,currentTabTiddler) <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab--1498284803\" tag=\"$:/tags/AdvancedSearch\" beforeafter=\"$beforeafter$\" defaultState=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define cancel-search-actions() <$list filter=\"[{$:/temp/advancedsearch}!match{$:/temp/advancedsearch/input}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]\" />\"\"\"><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/></$list><$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\".tc-advanced-search input\"\"\"/>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\n\n<<lingo System/Hint>>\n\n<div class=\"tc-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=\"$:/temp/advancedsearch/input\" storeTitle=\"$:/temp/advancedsearch\"\n\t\trefreshTitle=\"$:/temp/advancedsearch/refresh\" selectionStateTitle=\"$:/temp/advancedsearch/selected-item\"\n\t\ttype=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}} configTiddlerFilter=\"[[$:/core/ui/AdvancedSearch/System]]\"\n\t\tinputCancelActions=<<cancel-search-actions>> inputAcceptActions=<<input-accept-actions>> \n\t\tinputAcceptVariantActions=<<input-accept-variant-actions>> filterMinLength={{$:/config/Search/MinLength}}/>\n</$keyboard>\n</$keyboard>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] -[[$:/temp/advancedsearch/selected-item]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo System/Matches>>\n\n<$list filter=\"[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] -[[$:/temp/advancedsearch/selected-item]]\">\n<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[[$:/temp/advancedsearch/selected-item]get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
},
"$:/AdvancedSearch": {
"title": "$:/AdvancedSearch",
"icon": "$:/core/images/advanced-search-button",
"color": "#bbb",
"text": "<div class=\"tc-advanced-search\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch]!has[draft.of]]\" default=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<currentTab>>/>\"\"\" explicitState=\"$:/state/tab--1498284803\"/>\n</div>\n"
},
"$:/core/ui/AlertTemplate": {
"title": "$:/core/ui/AlertTemplate",
"text": "<div class=\"tc-alert\">\n<div class=\"tc-alert-toolbar\">\n<$button class=\"tc-btn-invisible\"><$action-deletetiddler $tiddler=<<currentTiddler>>/>{{$:/core/images/cancel-button}}</$button>\n</div>\n<div class=\"tc-alert-subtitle\">\n<$wikify name=\"format\" text=<<lingo Tiddler/DateFormat>>>\n<$view field=\"component\"/> - <$view field=\"modified\" format=\"date\" template=<<format>>/> <$reveal type=\"nomatch\" state=\"!!count\" text=\"\"><span class=\"tc-alert-highlight\">({{$:/language/Count}}: <$view field=\"count\"/>)</span></$reveal>\n</$wikify>\n</div>\n<div class=\"tc-alert-body\">\n\n<$transclude/>\n\n</div>\n</div>\n"
},
"$:/core/ui/BinaryWarning": {
"title": "$:/core/ui/BinaryWarning",
"text": "\\define lingo-base() $:/language/BinaryWarning/\n<<lingo Prompt>>\n"
},
"$:/core/ui/Components/plugin-info": {
"title": "$:/core/ui/Components/plugin-info",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define popup-state-macro()\n$(qualified-state)$-$(currentTiddler)$\n\\end\n\n\\define tabs-state-macro()\n$(popup-state)$-$(pluginInfoType)$\n\\end\n\n\\define plugin-icon-title()\n$(currentTiddler)$/icon\n\\end\n\n\\define plugin-disable-title()\n$:/config/Plugins/Disabled/$(currentTiddler)$\n\\end\n\n\\define plugin-table-body(type,disabledMessage,default-popup-state)\n<div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/chevron-right}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<plugin-icon-title>>>\n<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\n</$transclude>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n<h1>\n''<$text text={{{ [<currentTiddler>get[name]] ~[<currentTiddler>split[/]last[1]] }}}/>'': <$view field=\"description\"><$view field=\"title\"/></$view> $disabledMessage$\n</h1>\n<h2>\n<$view field=\"title\"/>\n</h2>\n<h2>\n<div><em><$view field=\"version\"/></em></div>\n</h2>\n</div>\n\\end\n\n\\define plugin-info(type,default-popup-state)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info tc-plugin-info-disabled\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\" disabledMessage:\"<$macrocall $name='lingo' title='Disabled/Status'/>\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>> default=\"\"\"$default-popup-state$\"\"\">\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-body\">\n<$list filter=\"[all[current]] -[[$:/core]]\">\n<div style=\"float:right;\">\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"yes\" tooltip={{$:/language/ControlPanel/Plugins/Disable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Disable/Caption}}>\n<<lingo Disable/Caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"no\" tooltip={{$:/language/ControlPanel/Plugins/Enable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Enable/Caption}}>\n<<lingo Enable/Caption>>\n</$button>\n</$reveal>\n</div>\n</$list>\n<$set name=\"tabsList\" filter=\"[<currentTiddler>list[]] contents\">\n<$macrocall $name=\"tabs\" state=<<tabs-state-macro>> tabsList=<<tabsList>> default={{{ [enlist<tabsList>] }}} template=\"$:/core/ui/PluginInfo\"/>\n</$set>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n<$macrocall $name=\"plugin-info\" type=<<plugin-type>> default-popup-state=<<default-popup-state>>/>\n"
},
"$:/core/ui/Components/tag-link": {
"title": "$:/core/ui/Components/tag-link",
"text": "<$link>\n<$set name=\"backgroundColor\" value={{!!color}}>\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\"/>\n</span>\n</$set>\n</$link>"
},
"$:/core/ui/ControlPanel/Advanced": {
"title": "$:/core/ui/ControlPanel/Advanced",
"tags": "$:/tags/ControlPanel/Info",
"caption": "{{$:/language/ControlPanel/Advanced/Caption}}",
"text": "{{$:/language/ControlPanel/Advanced/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Advanced]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/TiddlerFields\" explicitState=\"$:/state/tab--959111941\"/>\n</div>\n"
},
"$:/core/ui/ControlPanel/Appearance": {
"title": "$:/core/ui/ControlPanel/Appearance",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Appearance/Caption}}",
"text": "{{$:/language/ControlPanel/Appearance/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Appearance]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Theme\" explicitState=\"$:/state/tab--1963855381\"/>\n</div>\n"
},
"$:/core/ui/ControlPanel/Basics": {
"title": "$:/core/ui/ControlPanel/Basics",
"tags": "$:/tags/ControlPanel/Info",
"caption": "{{$:/language/ControlPanel/Basics/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Basics/\n\n\\define show-filter-count(filter)\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $value=\"\"\"$filter$\"\"\"/>\n<$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" $value=\"\"\"$filter$\"\"\"/>\n<$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/>\n<$action-setfield $tiddler=\"$:/state/tab--1498284803\" $value=\"$:/core/ui/AdvancedSearch/Filter\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=\".tc-advanced-search input\"/>\n''<$count filter=\"\"\"$filter$\"\"\"/>''\n{{$:/core/images/advanced-search-button}}\n</$button>\n\\end\n\n|<<lingo Version/Prompt>> |''<<version>>'' |\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/status/UserName\"><<lingo Username/Prompt>></$link> |<$edit-text tiddler=\"$:/status/UserName\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/AnimationDuration\"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler=\"$:/config/AnimationDuration\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\" class=\"tc-edit-texteditor\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n|<$link to=\"$:/language/DefaultNewTiddlerTitle\"><<lingo NewTiddler/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/language/DefaultNewTiddlerTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Title\"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Title\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Text\"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler=\"$:/config/NewJournal/Text\" tag=\"textarea\" class=\"tc-edit-texteditor\" default=\"\"/> |\n|<$link to=\"$:/config/NewTiddler/Tags\"><<lingo NewTiddler/Tags/Prompt>></$link> |<$vars currentTiddler=\"$:/config/NewTiddler/Tags\" tagField=\"text\">{{||$:/core/ui/EditTemplate/tags}}<$list filter=\"[<currentTiddler>tags[]] +[limit[1]]\" variable=\"ignore\"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field=\"text\" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=\"\"/></$button></$list></$vars> |\n|<$link to=\"$:/config/NewJournal/Tags\"><<lingo NewJournal/Tags/Prompt>></$link> |<$vars currentTiddler=\"$:/config/NewJournal/Tags\" tagField=\"text\">{{||$:/core/ui/EditTemplate/tags}}<$list filter=\"[<currentTiddler>tags[]] +[limit[1]]\" variable=\"ignore\"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field=\"text\" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=\"\"/></$button></$list></$vars> |\n|<$link to=\"$:/config/AutoFocus\"><<lingo AutoFocus/Prompt>></$link> |{{$:/snippets/minifocusswitcher}} |\n|<<lingo Language/Prompt>> |{{$:/snippets/minilanguageswitcher}} |\n|<<lingo Tiddlers/Prompt>> |<<show-filter-count \"[!is[system]sort[title]]\">> |\n|<<lingo Tags/Prompt>> |<<show-filter-count \"[tags[]sort[title]]\">> |\n|<<lingo SystemTiddlers/Prompt>> |<<show-filter-count \"[is[system]sort[title]]\">> |\n|<<lingo ShadowTiddlers/Prompt>> |<<show-filter-count \"[all[shadows]sort[title]]\">> |\n|<<lingo OverriddenShadowTiddlers/Prompt>> |<<show-filter-count \"[is[tiddler]is[shadow]sort[title]]\">> |\n"
},
"$:/core/ui/ControlPanel/EditorTypes": {
"title": "$:/core/ui/ControlPanel/EditorTypes",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/EditorTypes/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/EditorTypes/\n\n<<lingo Hint>>\n\n<table>\n<tbody>\n<tr>\n<th><<lingo Type/Caption>></th>\n<th><<lingo Editor/Caption>></th>\n</tr>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/config/EditorTypeMappings/]sort[title]]\">\n<tr>\n<td>\n<$link>\n<$list filter=\"[all[current]removeprefix[$:/config/EditorTypeMappings/]]\">\n<$text text={{!!title}}/>\n</$list>\n</$link>\n</td>\n<td>\n<$view field=\"text\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ControlPanel/Info": {
"title": "$:/core/ui/ControlPanel/Info",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Info/Caption}}",
"text": "{{$:/language/ControlPanel/Info/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Info]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Basics\" explicitState=\"$:/state/tab--2112689675\"/>\n</div>\n"
},
"$:/core/ui/ControlPanel/KeyboardShortcuts": {
"title": "$:/core/ui/ControlPanel/KeyboardShortcuts",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/KeyboardShortcuts/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/KeyboardShortcuts/\n\n\\define new-shortcut(title)\n<div class=\"tc-dropdown-item-plain\">\n<$edit-shortcut tiddler=\"$title$\" placeholder={{$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt}} focus=\"true\" style=\"width:auto;\"/> <$button>\n<<lingo Add/Caption>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"[{$title$}]\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"$title$\"\n/>\n</$button>\n</div>\n\\end\n\n\\define shortcut-list-item(caption)\n<td>\n</td>\n<td style=\"text-align:right;font-size:0.7em;\">\n<<lingo Platform/$caption$>>\n</td>\n<td>\n<div style=\"position:relative;\">\n<$button popup=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> class=\"tc-btn-invisible\">\n{{$:/core/images/edit-button}}\n</$button>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutTitle)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\n<$reveal state=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown tc-popup-keep\">\n<$list filter=\"[list[$(shortcutTitle)$!!text]sort[title]]\" variable=\"shortcut\" emptyMessage=\"\"\"\n<div class=\"tc-dropdown-item-plain\">\n//<<lingo NoShortcuts/Caption>>//\n</div>\n\"\"\">\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint}}>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"+[remove<shortcut>]\"\n/>\n<small>{{$:/core/images/close-button}}</small>\n</$button>\n<kbd>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts=<<shortcut>>/>\n</kbd>\n</div>\n</$list>\n<hr/>\n<$macrocall $name=\"new-shortcut\" title=<<qualify \"$:/state/new-shortcut/$(shortcutTitle)$\">>/>\n</div>\n</div>\n</$reveal>\n</div>\n</td>\n\\end\n\n\\define shortcut-list(caption,prefix)\n<tr>\n<$list filter=\"[[$prefix$$(shortcutName)$]]\" variable=\"shortcutTitle\">\n<<shortcut-list-item \"$caption$\">>\n</$list>\n</tr>\n\\end\n\n\\define shortcut-editor()\n<<shortcut-list \"All\" \"$:/config/shortcuts/\">>\n<<shortcut-list \"Mac\" \"$:/config/shortcuts-mac/\">>\n<<shortcut-list \"NonMac\" \"$:/config/shortcuts-not-mac/\">>\n<<shortcut-list \"Linux\" \"$:/config/shortcuts-linux/\">>\n<<shortcut-list \"NonLinux\" \"$:/config/shortcuts-not-linux/\">>\n<<shortcut-list \"Windows\" \"$:/config/shortcuts-windows/\">>\n<<shortcut-list \"NonWindows\" \"$:/config/shortcuts-not-windows/\">>\n\\end\n\n\\define shortcut-preview()\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutPrefix)$$(shortcutName)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\\end\n\n\\define shortcut-item-inner()\n<tr>\n<td>\n<$reveal type=\"nomatch\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"open\"\n/>\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"close\"\n/>\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n''<$text text=<<shortcutName>>/>''\n</td>\n<td>\n<$transclude tiddler=\"$:/config/ShortcutInfo/$(shortcutName)$\"/>\n</td>\n<td>\n<$list filter=\"$:/config/shortcuts/ $:/config/shortcuts-mac/ $:/config/shortcuts-not-mac/ $:/config/shortcuts-linux/ $:/config/shortcuts-not-linux/ $:/config/shortcuts-windows/ $:/config/shortcuts-not-windows/\" variable=\"shortcutPrefix\">\n<<shortcut-preview>>\n</$list>\n</td>\n</tr>\n<$set name=\"dropdownState\" value={{$(dropdownStateTitle)$}}>\n<$list filter=\"[<dropdownState>match[open]]\" variable=\"listItem\">\n<<shortcut-editor>>\n</$list>\n</$set>\n\\end\n\n\\define shortcut-item()\n<$set name=\"dropdownStateTitle\" value=<<qualify \"$:/state/dropdown/keyboardshortcut/$(shortcutName)$\">>>\n<<shortcut-item-inner>>\n</$set>\n\\end\n\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]removeprefix[$:/config/ShortcutInfo/]]\" variable=\"shortcutName\">\n<<shortcut-item>>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ControlPanel/LoadedModules": {
"title": "$:/core/ui/ControlPanel/LoadedModules",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/LoadedModules/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n<<lingo LoadedModules/Hint>>\n\n{{$:/snippets/modules}}\n"
},
"$:/core/ui/ControlPanel/Modals/AddPlugins": {
"title": "$:/core/ui/ControlPanel/Modals/AddPlugins",
"subtitle": "{{$:/core/images/download-button}} {{$:/language/ControlPanel/Plugins/Add/Caption}}",
"text": "\\define install-plugin-actions()\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url={{!!url}} title={{$(assetInfo)$!!original-title}}/>\n<$set name=\"url\" value={{!!url}}>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[name]]\" variable=\"dependency\">\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url=<<url>> title=<<dependency>>/>\n</$list>\n</$set>\n</$set>\n\\end\n\n\\define install-plugin-button()\n<div>\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$set name=\"reinstall-type\" value={{{ [<libraryVersion>compare:version:eq<installedVersion>then[tc-reinstall]] [<libraryVersion>compare:version:gt<installedVersion>then[tc-reinstall-upgrade]] [<libraryVersion>compare:version:lt<installedVersion>then[tc-reinstall-downgrade]] }}}>\n<$button actions=<<install-plugin-actions>> class={{{ [<assetInfo>get[original-title]has[version]then<reinstall-type>] tc-btn-invisible tc-install-plugin +[join[ ]] }}}>\n{{$:/core/images/download-button}}\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Install/Caption}}\">\n<$list filter=\"[<libraryVersion>compare:version:gt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[<libraryVersion>compare:version:lt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Reinstall/Caption}}\">\n{{$:/language/ControlPanel/Plugins/Downgrade/Caption}}\n</$list>\n\"\"\">\n{{$:/language/ControlPanel/Plugins/Update/Caption}}\n</$list>\n</$list>\n</$button>\n<div>\n</div>\n<$reveal stateTitle=<<assetInfo>> stateField=\"requires-reload\" type=\"match\" text=\"yes\">{{$:/language/ControlPanel/Plugins/PluginWillRequireReload}}</$reveal>\n</$set>\n</$set>\n</$set>\n</div>\n\\end\n\n\\define popup-state-macro()\n$:/state/add-plugin-info/$(connectionTiddler)$/$(assetInfo)$\n\\end\n\n\\define display-plugin-info(type)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<div class=\"tc-plugin-info\">\n<div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/chevron-right}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n<$list filter=\"[<assetInfo>has[icon]]\" emptyMessage=\"\"\"<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\"\"\">\n<img src={{$(assetInfo)$!!icon}}/>\n</$list>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n<h1><strong><$text text={{{ [<assetInfo>get[name]] ~[<assetInfo>get[original-title]split[/]last[1]] }}}/></strong>: <$view tiddler=<<assetInfo>> field=\"description\"/></h1>\n<h2><$view tiddler=<<assetInfo>> field=\"original-title\"/></h2>\n<div><em><$view tiddler=<<assetInfo>> field=\"version\"/></em></div>\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\"><div><em>{{$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint}}</em></div></$list>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-buttons\">\n<<install-plugin-button>>\n</div>\n</div>\n<$set name=\"original-title\" value={{{ [<assetInfo>get[original-title]] }}}>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>>>\n<div class=\"tc-plugin-info-dropdown\">\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]] ~[<assetInfo>get[original-title]!is[tiddler]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-dropdown-message\">\n<$list filter=\"[<assetInfo>get[original-title]!is[tiddler]]\">\n{{$:/language/ControlPanel/Plugins/NotInstalled/Hint}}\n</$list>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]]\" variable=\"ignore\">\n<div>\n{{$:/language/ControlPanel/Plugins/AlsoRequires}}\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[name]]\" variable=\"dependency\">\n<$text text=<<dependency>>/>\n</$list>\n</div>\n</$list>\n</$set>\n</div>\n</$list>\n<div class=\"tc-plugin-info-dropdown-body\">\n<$transclude tiddler=<<assetInfo>> field=\"readme\" mode=\"block\"/>\n</div>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-sub-plugins\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>sort[name]]\" variable=\"assetInfo\">\n<<display-plugin-info \"$type$\">>\n</$list>\n</div>\n</$list>\n</div>\n</$reveal>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<$reveal type=\"nomatch\" text=\"yes\" state=<<popup-state>> tag=\"div\" class=\"tc-plugin-info-sub-plugin-indicator\">\n<$wikify name=\"count\" text=\"\"\"<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>]\"/>\"\"\">\n<$button class=\"tc-btn-invisible\" set=<<popup-state>> setTo=\"yes\">\n{{$:/language/ControlPanel/Plugins/SubPluginPrompt}}\n</$button>\n</$wikify>\n</$reveal>\n</$list>\n</$set>\n</$set>\n\\end\n\n\\define load-plugin-library-button()\n<$list filter=\"[<currentTiddler>get[enabled]else[yes]match[yes]]\" variable=\"ignore\">\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-load-plugin-library\" url={{!!url}} infoTitlePrefix=\"$:/temp/RemoteAssetInfo/\"/>\n{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Plugins/OpenPluginLibrary}}\n</$button>\n</$list>\n\\end\n\n\\define display-server-assets(type)\n{{$:/language/Search/Search}}: <$edit-text tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" default=\"\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n<div class=\"tc-plugin-library-listing\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]search:author,description,original-title,readme,title{$:/temp/RemoteAssetSearch/$(currentTiddler)$}sort[name]]\" variable=\"assetInfo\">\n<$list filter=\"[[$:/temp/RemoteAssetSearch/$(currentTiddler)$]has[text]] ~[<assetInfo>!has[parent-plugin]]\" variable=\"ignore\"><!-- Hide sub-plugins if we're not searching -->\n<<display-plugin-info \"$type$\">>\n</$list>\n</$list>\n</div>\n\\end\n\n\\define display-server-connection()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/ServerConnection]suffix{!!url}]\" variable=\"connectionTiddler\" emptyMessage=<<load-plugin-library-button>>>\n\n<$set name=\"transclusion\" value=<<connectionTiddler>>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Add/Updates]] [[$:/core/ui/ControlPanel/Plugins/Add/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Add/Themes]] [[$:/core/ui/ControlPanel/Plugins/Add/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Add/Plugins\">>\n\n</$set>\n\n</$list>\n\\end\n\n\\define close-library-button()\n<$reveal type='nomatch' state='$:/temp/ServerConnection/$(PluginLibraryURL)$' text=''>\n<$button class='tc-btn-big-green'>\n<$action-sendmessage $message=\"tm-unload-plugin-library\" url={{!!url}}/>\n{{$:/core/images/chevron-left}} {{$:/language/ControlPanel/Plugins/ClosePluginLibrary}}\n<$action-deletetiddler $filter=\"[prefix[$:/temp/ServerConnection/$(PluginLibraryURL)$]][prefix[$:/temp/RemoteAssetInfo/$(PluginLibraryURL)$]]\"/>\n</$button>\n</$reveal>\n\\end\n\n\\define plugin-library-listing()\n<div class=\"tc-tab-set\">\n<$set name=\"defaultTab\" value={{{ [all[tiddlers+shadows]tag[$:/tags/PluginLibrary]] }}}>\n<div class=\"tc-tab-buttons\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$button set=<<qualify \"$:/state/addplugins/tab\">> setTo=<<currentTiddler>> default=<<defaultTab>> selectedClass=\"tc-tab-selected\">\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude field=\"caption\"/>\n</$set>\n</$button>\n</$list>\n</div>\n<div class=\"tc-tab-divider\"/>\n<div class=\"tc-tab-content\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$reveal type=\"match\" state=<<qualify \"$:/state/addplugins/tab\">> text=<<currentTiddler>> default=<<defaultTab>>>\n<h2><$link><$transclude field=\"caption\"><$view field=\"title\"/></$transclude></$link></h2>\n//<$view field=\"url\"/>//\n<$transclude mode=\"block\"/>\n<$set name=PluginLibraryURL value={{!!url}}>\n<<close-library-button>>\n</$set>\n<<display-server-connection>>\n</$reveal>\n</$list>\n</div>\n</$set>\n</div>\n\\end\n\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<div>\n<<plugin-library-listing>>\n</div>\n"
},
"$:/core/ui/ControlPanel/Palette": {
"title": "$:/core/ui/ControlPanel/Palette",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Palette/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Palette/\n\n{{$:/snippets/paletteswitcher}}\n\n<$reveal type=\"nomatch\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"yes\"><<lingo ShowEditor/Caption>></$button>\n\n</$reveal>\n\n<$reveal type=\"match\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"no\"><<lingo HideEditor/Caption>></$button>\n{{$:/PaletteManager}}\n\n</$reveal>\n\n"
},
"$:/core/ui/ControlPanel/Parsing": {
"title": "$:/core/ui/ControlPanel/Parsing",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/Parsing/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Parsing/\n\n\\define toggle(Type)\n<$checkbox\ntiddler=\"\"\"$:/config/WikiParserRules/$Type$/$(rule)$\"\"\"\nfield=\"text\"\nchecked=\"enable\"\nunchecked=\"disable\"\ndefault=\"enable\">\n<<rule>>\n</$checkbox>\n\\end\n\n\\define rules(type,Type)\n<$list filter=\"[wikiparserrules[$type$]]\" variable=\"rule\">\n<dd><<toggle $Type$>></dd>\n</$list>\n\\end\n\n<<lingo Hint>>\n\n<dl>\n<dt><<lingo Pragma/Caption>></dt>\n<<rules pragma Pragma>>\n<dt><<lingo Inline/Caption>></dt>\n<<rules inline Inline>>\n<dt><<lingo Block/Caption>></dt>\n<<rules block Block>>\n</dl>"
},
"$:/core/ui/ControlPanel/Plugins/Add/Languages": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Languages",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[language]]\"/>)",
"text": "<<display-server-assets language>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[plugin]]\"/>)",
"text": "<<display-server-assets plugin>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Themes": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Themes",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[theme]]\"/>)",
"text": "<<display-server-assets theme>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Updates": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Updates",
"caption": "<$importvariables filter=\"$:/core/ui/ControlPanel/Plugins/Add/Updates\">{{$:/language/ControlPanel/Plugins/Updates/Caption}} (<<update-count>>)</$importvariables>",
"text": "\\define each-updateable-plugin(body)\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}sort[title]]\" variable=\"assetInfo\">\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$list filter=\"[<assetInfo>get[original-title]has[version]!version<libraryVersion>]\" variable=\"ignore\">\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$list filter=\"[<installedversion>!match<libraryVersion>]\" variable=\"ignore\">\n$body$\n</$list>\n</$set>\n</$list>\n</$set>\n</$list>\n\\end\n\n\\define update-all-actions()\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<<install-plugin-actions>>\n\"\"\"/>\n\\end\n\n\\define update-count()\n<$wikify name=\"count-filter\" text=<<each-updateable-plugin \"[[<$text text=<<assetInfo>>/>]]\">>><$count filter=<<count-filter>>/></$wikify>\n\\end\n\n<$button actions=<<update-all-actions>> class=\"tc-btn-invisible tc-install-plugin tc-reinstall-upgrade\">\n{{$:/core/images/download-button}} {{||$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption}}\n</$button>\n\n<div class=\"tc-plugin-library-listing\">\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<$macrocall $name=\"display-plugin-info\" type={{{ [<assetInfo>get[original-plugin-type]] }}}/>\n\"\"\"/>\n</div>\n"
},
"$:/core/ui/ControlPanel/Plugins/AddPlugins": {
"title": "$:/core/ui/ControlPanel/Plugins/AddPlugins",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n<$button message=\"tm-modal\" param=\"$:/core/ui/ControlPanel/Modals/AddPlugins\" tooltip={{$:/language/ControlPanel/Plugins/Add/Hint}} class=\"tc-btn-big-green tc-primary-btn\">\n{{$:/core/images/download-button}} <<lingo Add/Caption>>\n</$button>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Languages": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Languages",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[language]]\"/>)",
"text": "<<plugin-table language>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[plugin]]\"/>)",
"text": "<<plugin-table plugin>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Themes": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Themes",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[theme]]\"/>)",
"text": "<<plugin-table theme>>\n"
},
"$:/core/ui/ControlPanel/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define plugin-table(type)\n<$set name=\"plugin-type\" value=\"\"\"$type$\"\"\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n<$list filter=\"[!has[draft.of]plugin-type[$type$]sort[name]]\" emptyMessage=<<lingo \"Empty/Hint\">> template=\"$:/core/ui/Components/plugin-info\"/>\n</$set>\n</$set>\n\\end\n\n{{$:/core/ui/ControlPanel/Plugins/AddPlugins}}\n\n<<lingo Installed/Hint>>\n\n<$macrocall $name=\"tabs\" tabsList=\"[[$:/core/ui/ControlPanel/Plugins/Installed/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Installed/Themes]] [[$:/core/ui/ControlPanel/Plugins/Installed/Languages]]\" default=\"$:/core/ui/ControlPanel/Plugins/Installed/Plugins\" explicitState=\"$:/state/tab--86143343\"/>\n"
},
"$:/core/ui/ControlPanel/Saving/DownloadSaver": {
"title": "$:/core/ui/ControlPanel/Saving/DownloadSaver",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/DownloadSaver/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/DownloadSaver/\n\n<<lingo Hint>>\n\n!! <$link to=\"$:/config/DownloadSaver/AutoSave\"><<lingo AutoSave/Hint>></$link>\n\n<$checkbox tiddler=\"$:/config/DownloadSaver/AutoSave\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <<lingo AutoSave/Description>> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Saving/General": {
"title": "$:/core/ui/ControlPanel/Saving/General",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/General/Caption}}",
"list-before": "",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n{{$:/language/ControlPanel/Saving/General/Hint}}\n\n!! <$link to=\"$:/config/AutoSave\"><<lingo AutoSave/Caption>></$link>\n\n<<lingo AutoSave/Hint>>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"yes\"> <<lingo AutoSave/Enabled/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"no\"> <<lingo AutoSave/Disabled/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Saving/GitHub": {
"title": "$:/core/ui/ControlPanel/Saving/GitHub",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/GitHub/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitHub\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitHub/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitHub/Password>> |<$password name=\"github\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitHub/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitHub/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitHub/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitHub/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitHub/ServerURL\" default=\"https://api.github.com\" tag=\"input\"/> |"
},
"$:/core/ui/ControlPanel/Saving/GitLab": {
"title": "$:/core/ui/ControlPanel/Saving/GitLab",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/GitLab/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitLab\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitLab/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitLab/Password>> |<$password name=\"gitlab\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitLab/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitLab/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitLab/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitLab/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitLab/ServerURL\" default=\"https://gitlab.com/api/v4\" tag=\"input\"/> |"
},
"$:/core/ui/ControlPanel/Saving/TiddlySpot": {
"title": "$:/core/ui/ControlPanel/Saving/TiddlySpot",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/TiddlySpot/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/TiddlySpot/\n\n\\define siteURL(path)\nhttp://$(userName)$.tiddlyspot.com/$path$/\n\\end\n\\define siteLink(path)\n<$reveal type=\"nomatch\" state=\"$:/UploadName\" text=\"\">\n<$set name=\"userName\" value={{$:/UploadName}}>\n<$reveal type=\"match\" state=\"$:/UploadURL\" text=\"\">\n<<siteURL $path$>>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/UploadURL\" text=\"\">\n<$macrocall $name=resolvePath source={{$:/UploadBackupDir}} root={{$:/UploadURL}}>>\n</$reveal>\n</$set>\n</$reveal>\n\\end\n\n<div class=\"tc-message-box\">\n\n<<lingo ReadOnly>>\n\n</div>\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/UploadName\" default=\"\" tag=\"input\"/> |\n|<<lingo Password>> |<$password name=\"upload\"/> |\n|<<lingo Backups>> |<<siteLink backup>> |\n|<<lingo ControlPanel>> |<<siteLink controlpanel>> |\n\n''<<lingo Advanced/Heading>>''\n\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/UploadURL\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/UploadFilename\" default=\"index.html\" tag=\"input\"/> |\n|<<lingo UploadDir>> |<$edit-text tiddler=\"$:/UploadDir\" default=\".\" tag=\"input\"/> |\n|<<lingo BackupDir>> |<$edit-text tiddler=\"$:/UploadBackupDir\" default=\".\" tag=\"input\"/> |\n\n<<lingo TiddlySpot/Hint>>\n"
},
"$:/core/ui/ControlPanel/Saving/Gitea": {
"title": "$:/core/ui/ControlPanel/Saving/Gitea",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/Gitea/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~Gitea\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/Gitea/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo Gitea/Password>> |<$password name=\"Gitea\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/Gitea/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/Gitea/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/Gitea/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/Gitea/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/Gitea/ServerURL\" default=\"https://gitea/api/v1\" tag=\"input\"/> |\n"
},
"$:/core/ui/ControlPanel/Saving": {
"title": "$:/core/ui/ControlPanel/Saving",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Saving/Caption}}",
"text": "{{$:/language/ControlPanel/Saving/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Saving]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Saving/General\" explicitState=\"$:/state/tab-2065006209\"/>\n</div>\n"
},
"$:/core/buttonstyles/Borderless": {
"title": "$:/core/buttonstyles/Borderless",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless}}",
"text": "tc-btn-invisible"
},
"$:/core/buttonstyles/Boxed": {
"title": "$:/core/buttonstyles/Boxed",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed}}",
"text": "tc-btn-boxed"
},
"$:/core/buttonstyles/Rounded": {
"title": "$:/core/buttonstyles/Rounded",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded}}",
"text": "tc-btn-rounded"
},
"$:/core/ui/ControlPanel/Settings/CamelCase": {
"title": "$:/core/ui/ControlPanel/Settings/CamelCase",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/CamelCase/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/CamelCase/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/WikiParserRules/Inline/wikilink\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"enable\"> <$link to=\"$:/config/WikiParserRules/Inline/wikilink\"><<lingo Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab": {
"title": "$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab",
"caption": "{{$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption}}",
"tags": "$:/tags/ControlPanel/Settings",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultMoreSidebarTab/\n\n<$link to=\"$:/config/DefaultMoreSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultMoreSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/DefaultSidebarTab": {
"title": "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab",
"caption": "{{$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption}}",
"tags": "$:/tags/ControlPanel/Settings",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultSidebarTab/\n\n<$link to=\"$:/config/DefaultSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/EditorToolbar": {
"title": "$:/core/ui/ControlPanel/Settings/EditorToolbar",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/EditorToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/EditorToolbar/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/TextEditor/EnableToolbar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/TextEditor/EnableToolbar\"><<lingo Description>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/InfoPanelMode": {
"title": "$:/core/ui/ControlPanel/Settings/InfoPanelMode",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/InfoPanelMode/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/InfoPanelMode/\n<$link to=\"$:/config/TiddlerInfo/Mode\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"popup\"> <<lingo Popup/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"sticky\"> <<lingo Sticky/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/LinkToBehaviour": {
"title": "$:/core/ui/ControlPanel/Settings/LinkToBehaviour",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/LinkToBehaviour/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/LinkToBehaviour/\n\n<$link to=\"$:/config/Navigation/openLinkFromInsideRiver\"><<lingo \"InsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromInsideRiver\">\n <option value=\"above\"><<lingo \"OpenAbove\">></option>\n <option value=\"below\"><<lingo \"OpenBelow\">></option>\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n\n<$link to=\"$:/config/Navigation/openLinkFromOutsideRiver\"><<lingo \"OutsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromOutsideRiver\">\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/MissingLinks": {
"title": "$:/core/ui/ControlPanel/Settings/MissingLinks",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/MissingLinks/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/MissingLinks/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/MissingLinks\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/MissingLinks\"><<lingo Description>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationAddressBar": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationAddressBar",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationAddressBar/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationAddressBar/\n\n<$link to=\"$:/config/Navigation/UpdateAddressBar\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permaview\"> <<lingo Permaview/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permalink\"> <<lingo Permalink/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationHistory": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationHistory",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationHistory/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationHistory/\n<$link to=\"$:/config/Navigation/UpdateHistory\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationPermalinkviewMode/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/CopyToClipboard\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/CopyToClipboard\"><<lingo CopyToClipboard/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\"><<lingo UpdateAddressBar/Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation": {
"title": "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/PerformanceInstrumentation/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Performance/Instrumentation\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Performance/Instrumentation\"><<lingo Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/TitleLinks": {
"title": "$:/core/ui/ControlPanel/Settings/TitleLinks",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/TitleLinks/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/TitleLinks/\n<$link to=\"$:/config/Tiddlers/TitleLinks\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle": {
"title": "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtonStyle/\n<$link to=\"$:/config/Toolbar/ButtonClass\"><<lingo \"Hint\">></$link>\n\n<$select tiddler=\"$:/config/Toolbar/ButtonClass\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ToolbarButtonStyle]]\">\n<option value={{!!text}}>{{!!caption}}</option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/ToolbarButtons": {
"title": "$:/core/ui/ControlPanel/Settings/ToolbarButtons",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtons/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtons/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Icons\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Toolbar/Icons\"><<lingo Icons/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Text\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Toolbar/Text\"><<lingo Text/Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings": {
"title": "$:/core/ui/ControlPanel/Settings",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Settings/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n<<lingo Hint>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/ControlPanel/StoryView": {
"title": "$:/core/ui/ControlPanel/StoryView",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/StoryView/Caption}}",
"text": "{{$:/snippets/viewswitcher}}\n"
},
"$:/core/ui/ControlPanel/Stylesheets": {
"title": "$:/core/ui/ControlPanel/Stylesheets",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/Stylesheets/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo Stylesheets/Hint>>\n\n{{$:/snippets/peek-stylesheets}}\n"
},
"$:/core/ui/ControlPanel/Theme": {
"title": "$:/core/ui/ControlPanel/Theme",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Theme/Caption}}",
"text": "{{$:/snippets/themeswitcher}}\n"
},
"$:/core/ui/ControlPanel/TiddlerFields": {
"title": "$:/core/ui/ControlPanel/TiddlerFields",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/TiddlerFields/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo TiddlerFields/Hint>>\n\n{{$:/snippets/allfields}}"
},
"$:/core/ui/ControlPanel/Toolbars/EditToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/EditToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>"
},
"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate",
"text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"><$transclude tiddler={{!!icon}}/></span> <$transclude field=\"caption\"/> -- <i class=\"tc-muted\"><$transclude field=\"description\"/></i>\n</$draggable>\n"
},
"$:/core/ui/ControlPanel/Toolbars/EditorToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditorToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/EditorToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditorToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditorToolbar/Hint}}\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditorToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate\"/>\n"
},
"$:/core/ui/ControlPanel/Toolbars/ItemTemplate": {
"title": "$:/core/ui/ControlPanel/Toolbars/ItemTemplate",
"text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"> <$transclude field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude field=\"description\"/></i></span>\n</$draggable>\n"
},
"$:/core/ui/ControlPanel/Toolbars/PageControls": {
"title": "$:/core/ui/ControlPanel/Toolbars/PageControls",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/PageControls/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/PageControlButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/PageControls/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/PageControls\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/ControlPanel/Toolbars/ViewToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/ViewToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/ViewToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/ViewToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/ViewToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/ViewToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/ControlPanel/Toolbars": {
"title": "$:/core/ui/ControlPanel/Toolbars",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Toolbars/Caption}}",
"text": "{{$:/language/ControlPanel/Toolbars/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Toolbars]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Toolbars/ViewToolbar\" class=\"tc-vertical\" explicitState=\"$:/state/tabs/controlpanel/toolbars-1345989671\"/>\n</div>\n"
},
"$:/ControlPanel": {
"title": "$:/ControlPanel",
"icon": "$:/core/images/options-button",
"color": "#bbb",
"text": "<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Info\" explicitState=\"$:/state/tab-1749438307\"/>\n</div>\n"
},
"$:/core/ui/DefaultSearchResultList": {
"title": "$:/core/ui/DefaultSearchResultList",
"tags": "$:/tags/SearchResults",
"caption": "{{$:/language/Search/DefaultResults/Caption}}",
"first-search-filter": "[!is[system]search:title<userInput>sort[title]limit[250]]",
"second-search-filter": "[!is[system]search<userInput>sort[title]limit[250]]",
"text": "\\define searchResultList()\n//<small>{{$:/language/Search/Matches/Title}}</small>//\n\n<$list filter=\"[<userInput>minlength[1]]\" variable=\"ignore\">\n<$list filter={{{ [<configTiddler>get[first-search-filter]] }}}>\n<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[<searchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n</$list>\n\n//<small>{{$:/language/Search/Matches/All}}</small>//\n\n<$list filter=\"[<userInput>minlength[1]]\" variable=\"ignore\">\n<$list filter={{{ [<configTiddler>get[second-search-filter]] }}}>\n<span class={{{[<currentTiddler>addsuffix[-secondaryList]] -[<searchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n</$list>\n\n\\end\n<<searchResultList>>\n"
},
"$:/core/ui/EditTemplate/body/preview/diffs-current": {
"title": "$:/core/ui/EditTemplate/body/preview/diffs-current",
"tags": "$:/tags/EditPreview",
"caption": "differences from current",
"list-after": "$:/core/ui/EditTemplate/body/preview/output",
"text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"
},
"$:/core/ui/EditTemplate/body/preview/diffs-shadow": {
"title": "$:/core/ui/EditTemplate/body/preview/diffs-shadow",
"tags": "$:/tags/EditPreview",
"caption": "differences from shadow (if any)",
"list-after": "$:/core/ui/EditTemplate/body/preview/output",
"text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{{ [{!!draft.of}shadowsource[]] }}} sourceSubTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"
},
"$:/core/ui/EditTemplate/body/preview/output": {
"title": "$:/core/ui/EditTemplate/body/preview/output",
"tags": "$:/tags/EditPreview",
"caption": "{{$:/language/EditTemplate/Body/Preview/Type/Output}}",
"text": "\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$set name=\"tv-tiddler-preview\" value=\"yes\">\n\n<$transclude />\n\n</$set>\n"
},
"$:/state/showeditpreview": {
"title": "$:/state/showeditpreview",
"text": "no"
},
"$:/core/ui/EditTemplate/body/editor": {
"title": "$:/core/ui/EditTemplate/body/editor",
"text": "<$edit\n\n field=\"text\"\n class=\"tc-edit-texteditor tc-edit-texteditor-body\"\n placeholder={{$:/language/EditTemplate/Body/Placeholder}}\n tabindex={{$:/config/EditTabIndex}}\n focus={{{ [{$:/config/AutoFocus}match[text]then[true]] ~[[false]] }}}\n cancelPopups=\"yes\"\n\n><$set\n\n name=\"targetTiddler\"\n value=<<currentTiddler>>\n\n><$list\n\n filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]]\"\n\n><$reveal\n\n type=\"nomatch\"\n state=<<config-visibility-title>>\n text=\"hide\"\n class=\"tc-text-editor-toolbar-item-wrapper\"\n\n><$transclude\n\n tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\"\n mode=\"inline\"\n\n/></$reveal></$list></$set></$edit>\n"
},
"$:/core/ui/EditTemplate/body/toolbar/button": {
"title": "$:/core/ui/EditTemplate/body/toolbar/button",
"text": "\\define toolbar-button-icon()\n<$list\n\n filter=\"[all[current]!has[custom-icon]]\"\n variable=\"no-custom-icon\"\n\n><$transclude\n\n tiddler={{!!icon}}\n\n/></$list>\n\\end\n\n\\define toolbar-button-tooltip()\n{{!!description}}<$macrocall $name=\"displayshortcuts\" $output=\"text/plain\" shortcuts={{!!shortcuts}} prefix=\"` - [\" separator=\"] [\" suffix=\"]`\"/>\n\\end\n\n\\define toolbar-button()\n<$list\n\n filter={{!!condition}}\n variable=\"list-condition\"\n\n><$wikify\n\n name=\"tooltip-text\"\n text=<<toolbar-button-tooltip>>\n mode=\"inline\"\n output=\"text\"\n\n><$list\n\n filter=\"[all[current]!has[dropdown]]\"\n variable=\"no-dropdown\"\n\n><$button\n\n class=\"tc-btn-invisible $(buttonClasses)$\"\n tooltip=<<tooltip-text>>\n actions={{!!actions}}\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button></$list><$list\n\n filter=\"[all[current]has[dropdown]]\"\n variable=\"dropdown\"\n\n><$set\n\n name=\"dropdown-state\"\n value=<<qualify \"$:/state/EditorToolbarDropdown\">>\n\n><$button\n\n popup=<<dropdown-state>>\n class=\"tc-popup-keep tc-btn-invisible $(buttonClasses)$\"\n selectedClass=\"tc-selected\"\n tooltip=<<tooltip-text>>\n actions={{!!actions}}\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button><$reveal\n\n state=<<dropdown-state>>\n type=\"popup\"\n position=\"below\"\n animate=\"yes\"\n tag=\"span\"\n\n><div\n\n class=\"tc-drop-down tc-popup-keep\"\n\n><$transclude\n\n tiddler={{!!dropdown}}\n mode=\"block\"\n\n/></div></$reveal></$set></$list></$wikify></$list>\n\\end\n\n\\define toolbar-button-outer()\n<$set\n\n name=\"buttonClasses\"\n value={{!!button-classes}}\n\n><<toolbar-button>></$set>\n\\end\n\n<<toolbar-button-outer>>"
},
"$:/core/ui/EditTemplate/body": {
"title": "$:/core/ui/EditTemplate/body",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/Body/\n\\define config-visibility-title()\n$:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$\n\\end\n<$list filter=\"[all[current]has[_canonical_uri]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo External/Hint>>\n\n<a href={{!!_canonical_uri}}><$text text={{!!_canonical_uri}}/></a>\n\n<$edit-text field=\"_canonical_uri\" class=\"tc-edit-fields\" tabindex={{$:/config/EditTabIndex}} cancelPopups=\"yes\"></$edit-text>\n\n</div>\n\n</$list>\n\n<$list filter=\"[all[current]!has[_canonical_uri]]\">\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\">\n\n<div class=\"tc-tiddler-preview\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n<div class=\"tc-tiddler-preview-preview\">\n\n<$transclude tiddler={{$:/state/editpreviewtype}} mode=\"inline\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/preview/output\" mode=\"inline\"/>\n\n</$transclude>\n\n</div>\n\n</div>\n\n</$reveal>\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n"
},
"$:/core/ui/EditTemplate/controls": {
"title": "$:/core/ui/EditTemplate/controls",
"tags": "$:/tags/EditTemplate",
"text": "\\define config-title()\n$:/config/EditToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title tc-tiddler-edit-title\">\n<$view field=\"title\"/>\n<span class=\"tc-tiddler-controls tc-titlebar\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$transclude tiddler=<<listItem>>/></$reveal></$list></span>\n<div style=\"clear: both;\"></div>\n</div>\n"
},
"$:/core/ui/EditTemplate/fields": {
"title": "$:/core/ui/EditTemplate/fields",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/\n\\define config-title()\n$:/config/EditTemplateFields/Visibility/$(currentField)$\n\\end\n\n\\define config-filter()\n[[hide]] -[title{$(config-title)$}]\n\\end\n\n\\define current-tiddler-new-field-selector()\n[data-tiddler-title=\"$(currentTiddlerCSSescaped)$\"] .tc-edit-field-add-name-wrapper input\n\\end\n\n\\define new-field-actions()\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $filter=\"[<newFieldNameTiddler>] [<newFieldValueTiddler>] [<storeTitle>] [<searchListState>]\"/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=<<current-tiddler-new-field-selector>>/>\n\\end\n\n\\define delete-state-tiddlers() <$action-deletetiddler $filter=\"[<newFieldNameTiddler>] [<storeTitle>] [<searchListState>]\"/>\n\n\\define cancel-search-actions-inner()\n<$list filter=\"[<storeTitle>has[text]] [<newFieldNameTiddler>has[text]]\" variable=\"ignore\" emptyMessage=\"\"\"<<cancel-delete-tiddler-actions \"cancel\">>\"\"\">\n<<delete-state-tiddlers>>\n</$list>\n\\end\n\n\\define cancel-search-actions()\n<$set name=\"userInput\" value={{{ [<storeTitle>get[text]] }}}>\n<$list filter=\"[<newFieldNameTiddler>get[text]!match<userInput>]\" emptyMessage=\"\"\"<<cancel-search-actions-inner>>\"\"\">\n<$action-setfield $tiddler=<<newFieldNameTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/>\n</$list>\n</$set>\n\\end\n\n\\define new-field()\n<$vars name={{{ [<newFieldNameTiddler>get[text]] }}}>\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button tooltip=<<lingo Fields/Add/Button/Hint>>>\n<$action-sendmessage $message=\"tm-add-field\"\n$name=<<name>>\n$value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $filter=\"[<newFieldNameTiddler>] [<newFieldValueTiddler>] [<storeTitle>] [<searchListState>]\"/>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" text=\"\" default=<<name>>>\n<$button>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n</$vars>\n\\end\n\\whitespace trim\n\n<div class=\"tc-edit-fields\">\n<table class={{{ [all[current]fields[]] :filter[lookup[$:/config/EditTemplateFields/Visibility/]!match[hide]] +[count[]!match[0]] +[then[tc-edit-fields]] ~[[tc-edit-fields tc-edit-fields-small]] }}}>\n<tbody>\n<$list filter=\"[all[current]fields[]] +[sort[title]]\" variable=\"currentField\" storyview=\"pop\">\n<$list filter=<<config-filter>> variable=\"temp\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$keyboard key=\"((delete-field))\" actions=\"\"\"<$action-deletefield $field=<<currentField>>/><$set name=\"currentTiddlerCSSescaped\" value={{{ [<currentTiddler>escapecss[]] }}}><$action-sendmessage $message=\"tm-focus-selector\" $param=<<current-tiddler-new-field-selector>>/></$set>\"\"\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} tabindex={{$:/config/EditTabIndex}} cancelPopups=\"yes\"/>\n</$keyboard>\n</td>\n<td class=\"tc-edit-field-remove\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>\n<$action-deletefield $field=<<currentField>>/><$set name=\"currentTiddlerCSSescaped\" value={{{ [<currentTiddler>escapecss[]] }}}><$action-sendmessage $message=\"tm-focus-selector\" $param=<<current-tiddler-new-field-selector>>/></$set>\n{{$:/core/images/delete-button}}\n</$button>\n</td>\n</tr>\n</$list>\n</$list>\n</tbody>\n</table>\n</div>\n\n<$fieldmangler>\n<div class=\"tc-edit-field-add\">\n<em class=\"tc-edit tc-big-gap-right\">\n<<lingo Fields/Add/Prompt>>\n</em>\n<$vars refreshTitle=<<qualify \"$:/temp/fieldname/refresh\">> storeTitle=<<newFieldNameInputTiddler>> searchListState=<<newFieldNameSelectionTiddler>>>\n<div class=\"tc-edit-field-add-name-wrapper\">\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<newFieldNameTiddler>> storeTitle=<<storeTitle>> refreshTitle=<<refreshTitle>>\n\t\tselectionStateTitle=<<searchListState>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}}\n\t\tfocusPopup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}}\n\t\tfocus={{{ [{$:/config/AutoFocus}match[fields]then[true]] ~[[false]] }}} cancelPopups=\"yes\"\n\t\tconfigTiddlerFilter=\"[[$:/config/EditMode/fieldname-filter]]\" inputCancelActions=<<cancel-search-actions>> />\n<$button popup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown tc-small-gap\" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/field-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher to=<<newFieldNameTiddler>>>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/User>>\n</div>\n<$set name=\"newFieldName\" value={{{ [<storeTitle>get[text]] }}}>\n<$list filter=\"[!is[shadow]!is[system]fields[]search:title<newFieldName>sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type\" variable=\"currentField\">\n<$list filter=\"[<currentField>addsuffix[-primaryList]] -[<searchListState>get[text]]\" emptyMessage=\"\"\"<$link to=<<currentField>> class=\"tc-list-item-selected\"><$text text=<<currentField>>/></$link>\"\"\">\n<$link to=<<currentField>>>\n<$text text=<<currentField>>/>\n</$link>\n</$list>\n</$list>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/System>>\n</div>\n<$list filter=\"[fields[]search:title<newFieldName>sort[]] -[!is[shadow]!is[system]fields[]]\" variable=\"currentField\">\n<$list filter=\"[<currentField>addsuffix[-secondaryList]] -[<searchListState>get[text]]\" emptyMessage=\"\"\"<$link to=<<currentField>> class=\"tc-list-item-selected\"><$text text=<<currentField>>/></$link>\"\"\">\n<$link to=<<currentField>>>\n<$text text=<<currentField>>/>\n</$link>\n</$list>\n</$list>\n</$set>\n</$linkcatcher>\n</$set>\n</div>\n</$reveal>\n</div>\n<span class=\"tc-edit-field-add-value tc-small-gap-right\">\n<$set name=\"currentTiddlerCSSescaped\" value={{{ [<currentTiddler>escapecss[]] }}}>\n<$keyboard key=\"((add-field))\" actions=<<new-field-actions>>>\n<$edit-text tiddler=<<newFieldValueTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class=\"tc-edit-texteditor\" tabindex={{$:/config/EditTabIndex}} cancelPopups=\"yes\"/>\n</$keyboard>\n</$set>\n</span>\n<span class=\"tc-edit-field-add-button\">\n<$macrocall $name=\"new-field\"/>\n</span>\n</$vars>\n</div>\n</$fieldmangler>\n"
},
"$:/core/ui/EditTemplate/shadow": {
"title": "$:/core/ui/EditTemplate/shadow",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/Shadow/\n\\define pluginLinkBody()\n<$link to=\"\"\"$(pluginTitle)$\"\"\">\n<$text text=\"\"\"$(pluginTitle)$\"\"\"/>\n</$link>\n\\end\n<$list filter=\"[all[current]get[draft.of]is[shadow]!is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>\n\n<$list filter=\"[all[current]get[draft.of]is[shadow]is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo OverriddenWarning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>"
},
"$:/core/ui/EditTemplate/tags": {
"title": "$:/core/ui/EditTemplate/tags",
"tags": "$:/tags/EditTemplate",
"text": "\\whitespace trim\n\n\\define lingo-base() $:/language/EditTemplate/\n\n\\define tag-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-body-inner(colour,fallbackTarget,colourA,colourB,icon,tagField:\"tags\")\n\\whitespace trim\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<span style=<<tag-styles>> class=\"tc-tag-label tc-tag-list-item\">\n<$transclude tiddler=\"\"\"$icon$\"\"\"/><$view field=\"title\" format=\"text\" />\n<$button class=\"tc-btn-invisible tc-remove-tag-button\"><$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter=\"-[{!!title}]\"/>{{$:/core/images/close-button}}</$button>\n</span>\n</$vars>\n\\end\n\n\\define tag-body(colour,palette,icon,tagField:\"tags\")\n<$macrocall $name=\"tag-body-inner\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} icon=\"\"\"$icon$\"\"\" tagField=<<__tagField__>>/>\n\\end\n\n\\define edit-tags-template(tagField:\"tags\")\n\\whitespace trim\n<div class=\"tc-edit-tags\">\n<$list filter=\"[list[!!$tagField$]sort[title]]\" storyview=\"pop\">\n<$macrocall $name=\"tag-body\" colour={{!!color}} palette={{$:/palette}} icon={{!!icon}} tagField=<<__tagField__>>/>\n</$list>\n<$vars tabIndex={{$:/config/EditTabIndex}} cancelPopups=\"yes\">\n<$macrocall $name=\"tag-picker\" tagField=<<__tagField__>>/>\n</$vars>\n</div>\n\\end\n<$set name=\"saveTiddler\" value=<<currentTiddler>>>\n<$macrocall $name=\"edit-tags-template\" tagField=<<tagField>>/>\n</$set>\n"
},
"$:/core/ui/EditTemplate/title": {
"title": "$:/core/ui/EditTemplate/title",
"tags": "$:/tags/EditTemplate",
"text": "<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus={{{ [{$:/config/AutoFocus}match[title]then[true]] ~[[false]] }}} tabindex={{$:/config/EditTabIndex}} cancelPopups=\"yes\"/>\n\n<$vars pattern=\"\"\"[\\|\\[\\]{}]\"\"\" bad-chars=\"\"\"`| [ ] { }`\"\"\">\n\n<$list filter=\"[all[current]regexp:draft.title<pattern>]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/BadCharacterWarning}}\n\n</div>\n\n</$list>\n\n</$vars>\n\n<$reveal state=\"!!draft.title\" type=\"nomatch\" text={{!!draft.of}} tag=\"div\">\n\n<$list filter=\"[{!!draft.title}!is[missing]]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/Exists/Prompt}}\n\n</div>\n\n</$list>\n\n<$list filter=\"[{!!draft.of}!is[missing]]\" variable=\"listItem\">\n\n<$vars fromTitle={{!!draft.of}} toTitle={{!!draft.title}}>\n\n<$checkbox tiddler=\"$:/config/RelinkOnRename\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> {{$:/language/EditTemplate/Title/Relink/Prompt}}</$checkbox>\n\n<$list filter=\"[title<fromTitle>backlinks[]limit[1]]\" variable=\"listItem\">\n\n<$vars stateTiddler=<<qualify \"$:/state/edit/references\">> >\n\n<$reveal type=\"nomatch\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"show\" class=\"tc-btn-invisible\">{{$:/core/images/right-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"hide\" class=\"tc-btn-invisible\">{{$:/core/images/down-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$tiddler tiddler=<<fromTitle>> >\n<$transclude tiddler=\"$:/core/ui/TiddlerInfo/References\"/>\n</$tiddler>\n</$reveal>\n\n</$vars>\n\n</$list>\n\n</$vars>\n\n</$list>\n\n</$reveal>\n"
},
"$:/core/ui/EditTemplate/type": {
"title": "$:/core/ui/EditTemplate/type",
"tags": "$:/tags/EditTemplate",
"first-search-filter": "[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]sort[description]sort[group-sort]removeprefix[$:/language/Docs/Types/]search<userInput>]",
"text": "\\define lingo-base() $:/language/EditTemplate/\n\\define input-cancel-actions() <$list filter=\"[<storeTitle>get[text]] [<currentTiddler>get[type]] +[limit[1]]\" emptyMessage=\"\"\"<<cancel-delete-tiddler-actions \"cancel\">>\"\"\"><$action-sendmessage $message=\"tm-remove-field\" $param=\"type\"/><$action-deletetiddler $filter=\"[<typeInputTiddler>] [<refreshTitle>] [<typeSelectionTiddler>]\"/></$list>\n\\whitespace trim\n<$set name=\"refreshTitle\" value=<<qualify \"$:/temp/type-search/refresh\">>>\n<div class=\"tc-edit-type-selector-wrapper\">\n<em class=\"tc-edit tc-big-gap-right\"><<lingo Type/Prompt>></em>\n<div class=\"tc-type-selector-dropdown-wrapper\">\n<div class=\"tc-type-selector\"><$fieldmangler>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<currentTiddler>> storeTitle=<<typeInputTiddler>> refreshTitle=<<refreshTitle>> selectionStateTitle=<<typeSelectionTiddler>> field=\"type\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-edit-typeeditor tc-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[type]then[true]] ~[[false]] }}} cancelPopups=\"yes\" configTiddlerFilter=\"[[$:/core/ui/EditTemplate/type]]\" inputCancelActions=<<input-cancel-actions>>/><$button popup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown tc-small-gap\" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button><$button message=\"tm-remove-field\" param=\"type\" class=\"tc-btn-invisible tc-btn-icon\" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}<$action-deletetiddler $filter=\"[<storeTitle>] [<refreshTitle>] [<selectionStateTitle>]\"/></$button>\n</$fieldmangler></div>\n\n<div class=\"tc-block-dropdown-wrapper\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$reveal state=<<qualify \"$:/state/popup/type-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"!!type\">\n<$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group-sort]]'>\n<div class=\"tc-dropdown-item\">\n<$text text={{!!group}}/>\n</div>\n<$set name=\"userInput\" value={{{ [<typeInputTiddler>get[text]] }}}>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]] +[removeprefix[$:/language/Docs/Types/]] +[search<userInput>]\"><span class={{{ [<currentTiddler>addsuffix[-primaryList]] -[<typeSelectionTiddler>get[text]] +[then[]else[tc-list-item-selected]] }}}><$link to={{{ [<currentTiddler>addprefix[$:/language/Docs/Types/]get[name]] }}}><$view tiddler={{{ [<currentTiddler>addprefix[$:/language/Docs/Types/]] }}} field=\"description\"/> (<$view tiddler={{{ [<currentTiddler>addprefix[$:/language/Docs/Types/]] }}} field=\"name\"/>)</$link></span>\n</$list>\n</$set>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n</$set>\n</div>\n</div>\n</div>\n</$set>\n"
},
"$:/core/ui/EditTemplate": {
"title": "$:/core/ui/EditTemplate",
"text": "\\define delete-edittemplate-state-tiddlers() <$action-deletetiddler $filter=\"[<newFieldNameTiddler>] [<newFieldValueTiddler>] [<newFieldNameInputTiddler>] [<newFieldNameSelectionTiddler>] [<newTagNameTiddler>] [<newTagNameInputTiddler>] [<newTagNameSelectionTiddler>] [<typeInputTiddler>] [<typeSelectionTiddler>]\"/>\n\\define save-tiddler-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{{ [<newTagNameTiddler>get[text]] }}}/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<<delete-edittemplate-state-tiddlers>>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n\\end\n\\define cancel-delete-tiddler-actions(message)\n<<delete-edittemplate-state-tiddlers>>\n<$action-sendmessage $message=\"tm-$message$-tiddler\"/>\n\\end\n<div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-edit-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}>\n<$fieldmangler>\n<$vars storyTiddler=<<currentTiddler>> newTagNameTiddler=<<qualify \"$:/temp/NewTagName\">> newFieldNameTiddler=<<qualify \"$:/temp/NewFieldName\">> newFieldValueTiddler=<<qualify \"$:/temp/NewFieldValue\">> newFieldNameInputTiddler=<<qualify \"$:/temp/NewFieldName/input\">> newFieldNameSelectionTiddler=<<qualify \"$:/temp/NewFieldName/selected-item\">> newTagNameInputTiddler=<<qualify \"$:/temp/NewTagName/input\">> newTagNameSelectionTiddler=<<qualify \"$:/temp/NewTagName/selected-item\">> typeInputTiddler=<<qualify \"$:/temp/Type/input\">> typeSelectionTiddler=<<qualify \"$:/temp/Type/selected-item\">>>\n<$keyboard key=\"((cancel-edit-tiddler))\" actions=<<cancel-delete-tiddler-actions \"cancel\">>>\n<$keyboard key=\"((save-tiddler))\" actions=<<save-tiddler-actions>>>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>>/>\n</$set>\n</$list>\n</$keyboard>\n</$keyboard>\n</$vars>\n</$fieldmangler>\n</div>\n"
},
"$:/core/ui/Buttons/cancel": {
"title": "$:/core/ui/Buttons/cancel",
"tags": "$:/tags/EditToolbar",
"caption": "{{$:/core/images/cancel-button}} {{$:/language/Buttons/Cancel/Caption}}",
"description": "{{$:/language/Buttons/Cancel/Hint}}",
"text": "\\whitespace trim\n<$button actions=<<cancel-delete-tiddler-actions \"cancel\">> tooltip={{$:/language/Buttons/Cancel/Hint}} aria-label={{$:/language/Buttons/Cancel/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/cancel-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Cancel/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/core/ui/Buttons/delete": {
"title": "$:/core/ui/Buttons/delete",
"tags": "$:/tags/EditToolbar $:/tags/ViewToolbar",
"caption": "{{$:/core/images/delete-button}} {{$:/language/Buttons/Delete/Caption}}",
"description": "{{$:/language/Buttons/Delete/Hint}}",
"text": "\\whitespace trim\n<$button actions=<<cancel-delete-tiddler-actions \"delete\">> tooltip={{$:/language/Buttons/Delete/Hint}} aria-label={{$:/language/Buttons/Delete/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/delete-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Delete/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/core/ui/Buttons/save": {
"title": "$:/core/ui/Buttons/save",
"tags": "$:/tags/EditToolbar",
"caption": "{{$:/core/images/done-button}} {{$:/language/Buttons/Save/Caption}}",
"description": "{{$:/language/Buttons/Save/Hint}}",
"text": "\\define save-tiddler-button()\n\\whitespace trim\n<$fieldmangler><$button tooltip={{$:/language/Buttons/Save/Hint}} aria-label={{$:/language/Buttons/Save/Caption}} class=<<tv-config-toolbar-class>>>\n<<save-tiddler-actions>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/done-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Save/Caption}}/></span>\n</$list>\n</$button></$fieldmangler>\n\\end\n<<save-tiddler-button>>\n"
},
"$:/core/ui/EditorToolbar/bold": {
"title": "$:/core/ui/EditorToolbar/bold",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/bold",
"caption": "{{$:/language/Buttons/Bold/Caption}}",
"description": "{{$:/language/Buttons/Bold/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((bold))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"''\"\n\tsuffix=\"''\"\n/>\n"
},
"$:/core/ui/EditorToolbar/clear-dropdown": {
"title": "$:/core/ui/EditorToolbar/clear-dropdown",
"text": "''{{$:/language/Buttons/Clear/Hint}}''\n\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"clear\"\n\tcolour=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n\n</div>\n"
},
"$:/core/ui/EditorToolbar/clear": {
"title": "$:/core/ui/EditorToolbar/clear",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/erase",
"caption": "{{$:/language/Buttons/Clear/Caption}}",
"description": "{{$:/language/Buttons/Clear/Hint}}",
"condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
"dropdown": "$:/core/ui/EditorToolbar/clear-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/editor-height-dropdown": {
"title": "$:/core/ui/EditorToolbar/editor-height-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/EditorHeight/\n''<<lingo Hint>>''\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"auto\"> {{$:/core/images/auto-height}} <<lingo Caption/Auto>></$radio>\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"fixed\"> {{$:/core/images/fixed-height}} <<lingo Caption/Fixed>> <$edit-text tag=\"input\" tiddler=\"$:/config/TextEditor/EditorHeight/Height\" default=\"100px\"/></$radio>\n"
},
"$:/core/ui/EditorToolbar/editor-height": {
"title": "$:/core/ui/EditorToolbar/editor-height",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/fixed-height",
"custom-icon": "yes",
"caption": "{{$:/language/Buttons/EditorHeight/Caption}}",
"description": "{{$:/language/Buttons/EditorHeight/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] [<targetTiddler>get[type]match[application/javascript]] [<targetTiddler>get[type]match[application/json]] [<targetTiddler>get[type]match[application/x-tiddler-dictionary]] [<targetTiddler>get[type]match[image/svg+xml]] +[first[]]",
"dropdown": "$:/core/ui/EditorToolbar/editor-height-dropdown",
"text": "<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n{{$:/core/images/fixed-height}}\n</$reveal>\n<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n{{$:/core/images/auto-height}}\n</$reveal>\n"
},
"$:/core/ui/EditorToolbar/excise-dropdown": {
"title": "$:/core/ui/EditorToolbar/excise-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Excise/\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<<lingo Caption/NewTitle>> <$edit-text tag=\"input\" tiddler=\"$config-title$/new-title\" default=\"\" focus=\"true\"/>\n\n<$set name=\"new-title\" value={{$config-title$/new-title}}>\n<$list filter=\"\"\"[<new-title>is[tiddler]]\"\"\">\n<div class=\"tc-error\">\n<<lingo Caption/TiddlerExists>>\n</div>\n</$list>\n</$set>\n\n<$checkbox tiddler=\"\"\"$config-title$/tagnew\"\"\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"false\"> <<lingo Caption/Tag>></$checkbox>\n\n<<lingo Caption/Replace>> <$select tiddler=\"\"\"$config-title$/type\"\"\" default=\"transclude\">\n<option value=\"link\"><<lingo Caption/Replace/Link>></option>\n<option value=\"transclude\"><<lingo Caption/Replace/Transclusion>></option>\n<option value=\"macro\"><<lingo Caption/Replace/Macro>></option>\n</$select>\n\n<$reveal state=\"\"\"$config-title$/type\"\"\" type=\"match\" text=\"macro\">\n<<lingo Caption/MacroName>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/macro-title\"\"\" default=\"translink\"/>\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"excise\"\n\ttitle={{$config-title$/new-title}}\n\ttype={{$config-title$/type}}\n\tmacro={{$config-title$/macro-title}}\n\ttagnew={{$config-title$/tagnew}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"$config-title$/new-title\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Excise>>\n</$button>\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Excise/\">>/>\n"
},
"$:/core/ui/EditorToolbar/excise": {
"title": "$:/core/ui/EditorToolbar/excise",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/excise",
"caption": "{{$:/language/Buttons/Excise/Caption}}",
"description": "{{$:/language/Buttons/Excise/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>type[text/vnd.tiddlywiki]] +[first[]]",
"shortcuts": "((excise))",
"dropdown": "$:/core/ui/EditorToolbar/excise-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/heading-1": {
"title": "$:/core/ui/EditorToolbar/heading-1",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-1",
"caption": "{{$:/language/Buttons/Heading1/Caption}}",
"description": "{{$:/language/Buttons/Heading1/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((heading-1))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-2": {
"title": "$:/core/ui/EditorToolbar/heading-2",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-2",
"caption": "{{$:/language/Buttons/Heading2/Caption}}",
"description": "{{$:/language/Buttons/Heading2/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-2))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"2\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-3": {
"title": "$:/core/ui/EditorToolbar/heading-3",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-3",
"caption": "{{$:/language/Buttons/Heading3/Caption}}",
"description": "{{$:/language/Buttons/Heading3/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-3))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"3\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-4": {
"title": "$:/core/ui/EditorToolbar/heading-4",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-4",
"caption": "{{$:/language/Buttons/Heading4/Caption}}",
"description": "{{$:/language/Buttons/Heading4/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-4))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"4\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-5": {
"title": "$:/core/ui/EditorToolbar/heading-5",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-5",
"caption": "{{$:/language/Buttons/Heading5/Caption}}",
"description": "{{$:/language/Buttons/Heading5/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-5))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"5\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-6": {
"title": "$:/core/ui/EditorToolbar/heading-6",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-6",
"caption": "{{$:/language/Buttons/Heading6/Caption}}",
"description": "{{$:/language/Buttons/Heading6/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-6))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"6\"\n/>\n"
},
"$:/core/ui/EditorToolbar/italic": {
"title": "$:/core/ui/EditorToolbar/italic",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/italic",
"caption": "{{$:/language/Buttons/Italic/Caption}}",
"description": "{{$:/language/Buttons/Italic/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((italic))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"//\"\n\tsuffix=\"//\"\n/>\n"
},
"$:/core/ui/EditorToolbar/line-width-dropdown": {
"title": "$:/core/ui/EditorToolbar/line-width-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/LineWidth/\n\n\\define toolbar-line-width-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(line-width)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/LineWidth\"\n\t$value=\"$(line-width)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; margin: 4px calc(80px - $(line-width)$); background-color: #000; width: calc(100px + $(line-width)$ * 2); height: $(line-width)$; border-radius: 120px; vertical-align: middle;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(line-width)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/LineWidth\" type=\"match\" text=\"\"\"$(line-width)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/LineWidths}} variable=\"line-width\">\n\n<<toolbar-line-width-inner>>\n\n</$list>\n"
},
"$:/core/ui/EditorToolbar/line-width": {
"title": "$:/core/ui/EditorToolbar/line-width",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/line-width",
"caption": "{{$:/language/Buttons/LineWidth/Caption}}",
"description": "{{$:/language/Buttons/LineWidth/Hint}}",
"condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
"dropdown": "$:/core/ui/EditorToolbar/line-width-dropdown",
"text": "<$text text={{$:/config/BitmapEditor/LineWidth}}/>\n"
},
"$:/core/ui/EditorToolbar/link-dropdown": {
"title": "$:/core/ui/EditorToolbar/link-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Link/\n\n\\define add-link-actions()\n<$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"make-link\" text={{$(linkTiddler)$}} />\n<$action-deletetiddler $filter=\"[<dropdown-state>] [<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]\"/>\n\\end\n\n\\define get-focus-selector() [data-tiddler-title=\"$(cssEscapedTitle)$\"] .tc-create-wikitext-link input\n\n\\define cancel-search-actions-inner()\n<$set name=\"userInput\" value={{{ [<storeTitle>get[text]] }}}><$list filter=\"[<searchTiddler>get[text]!match<userInput>]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]\"/>\"\"\"><$action-setfield $tiddler=<<searchTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/></$list></$set>\n\\end\n\n\\define cancel-search-actions() <$list filter=\"[<storeTitle>!has[text]] +[<searchTiddler>!has[text]]\" emptyMessage=\"\"\"<<cancel-search-actions-inner>>\"\"\"><$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"wrap-selection\" prefix=\"\" suffix=\"\"/></$list>\n\n\\define external-link()\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\" actions=<<add-link-actions>>>\n{{$:/core/images/chevron-right}}\n</$button>\n\\end\n\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab/search-results/sidebar\" tag=\"$:/tags/SearchResults\" beforeafter=\"$beforeafter$\" defaultState={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/search/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<$vars searchTiddler=\"\"\"$config-title$/search\"\"\" linkTiddler=\"\"\"$config-title$/link\"\"\" linktext=\"\" searchListState=<<qualify \"$:/temp/link-search/selected-item\">> refreshTitle=<<qualify \"$:/temp/link-search/refresh\">> storeTitle=<<qualify \"$:/temp/link-search/input\">>>\n\n<$vars linkTiddler=<<searchTiddler>>>\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">> class=\"tc-create-wikitext-link\">\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<searchTiddler>> storeTitle=<<storeTitle>>\n\t\tselectionStateTitle=<<searchListState>> refreshTitle=<<refreshTitle>> type=\"search\" filterMinLength=\"1\"\n\t\ttag=\"input\" focus=\"true\" class=\"tc-popup-handle\" inputCancelActions=<<cancel-search-actions>> \n\t\tinputAcceptActions=<<add-link-actions>> placeholder={{$:/language/Search/Search}} default=\"\" \n\t\tconfigTiddlerFilter=\"[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]\" />\n</$keyboard>\n</$keyboard>\n<$reveal tag=\"span\" state=<<storeTitle>> type=\"nomatch\" text=\"\">\n<<external-link>>\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\">\n<<cancel-search-actions>><$set name=\"cssEscapedTitle\" value={{{ [<storyTiddler>escapecss[]] }}}><$action-sendmessage $message=\"tm-focus-selector\" $param=<<get-focus-selector>>/></$set>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</$vars>\n\n<$reveal tag=\"div\" state=<<storeTitle>> type=\"nomatch\" text=\"\">\n\n<$linkcatcher actions=<<add-link-actions>> to=<<linkTiddler>>>\n\n<$vars userInput={{{ [<storeTitle>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}}>\n\n{{$:/core/ui/SearchResults}}\n\n</$vars>\n\n</$linkcatcher>\n\n</$reveal>\n\n</$vars>\n\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Link/\">>/>\n"
},
"$:/core/ui/EditorToolbar/link": {
"title": "$:/core/ui/EditorToolbar/link",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/link",
"caption": "{{$:/language/Buttons/Link/Caption}}",
"description": "{{$:/language/Buttons/Link/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((link))",
"dropdown": "$:/core/ui/EditorToolbar/link-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/linkify": {
"title": "$:/core/ui/EditorToolbar/linkify",
"caption": "{{$:/language/Buttons/Linkify/Caption}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Buttons/Linkify/Hint}}",
"icon": "$:/core/images/linkify",
"list-before": "$:/core/ui/EditorToolbar/mono-block",
"shortcuts": "((linkify))",
"tags": "$:/tags/EditorToolbar",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"[[\"\n\tsuffix=\"]]\"\n/>\n"
},
"$:/core/ui/EditorToolbar/list-bullet": {
"title": "$:/core/ui/EditorToolbar/list-bullet",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-bullet",
"caption": "{{$:/language/Buttons/ListBullet/Caption}}",
"description": "{{$:/language/Buttons/ListBullet/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((list-bullet))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/list-number": {
"title": "$:/core/ui/EditorToolbar/list-number",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-number",
"caption": "{{$:/language/Buttons/ListNumber/Caption}}",
"description": "{{$:/language/Buttons/ListNumber/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((list-number))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/mono-block": {
"title": "$:/core/ui/EditorToolbar/mono-block",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/mono-block",
"caption": "{{$:/language/Buttons/MonoBlock/Caption}}",
"description": "{{$:/language/Buttons/MonoBlock/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((mono-block))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n```\"\n\tsuffix=\"```\"\n/>\n"
},
"$:/core/ui/EditorToolbar/mono-line": {
"title": "$:/core/ui/EditorToolbar/mono-line",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/mono-line",
"caption": "{{$:/language/Buttons/MonoLine/Caption}}",
"description": "{{$:/language/Buttons/MonoLine/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((mono-line))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n"
},
"$:/core/ui/EditorToolbar/more-dropdown": {
"title": "$:/core/ui/EditorToolbar/more-dropdown",
"text": "\\define config-title()\n$:/config/EditorToolbarButtons/Visibility/$(toolbarItem)$\n\\end\n\n\\define conditional-button()\n<$list filter={{$(toolbarItem)$!!condition}} variable=\"condition\">\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\" mode=\"inline\"/> <$transclude tiddler=<<toolbarItem>> field=\"description\"/>\n</$list>\n\\end\n\n<div class=\"tc-text-editor-toolbar-more\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]] -[[$:/core/ui/EditorToolbar/more]]\">\n<$reveal type=\"match\" state=<<config-visibility-title>> text=\"hide\" tag=\"div\">\n<<conditional-button>>\n</$reveal>\n</$list>\n</div>\n"
},
"$:/core/ui/EditorToolbar/more": {
"title": "$:/core/ui/EditorToolbar/more",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/down-arrow",
"caption": "{{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"condition": "[<targetTiddler>]",
"dropdown": "$:/core/ui/EditorToolbar/more-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/opacity-dropdown": {
"title": "$:/core/ui/EditorToolbar/opacity-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Opacity/\n\n\\define toolbar-opacity-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(opacity)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Opacity\"\n\t$value=\"$(opacity)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(current-paint-colour)$; opacity: $(opacity)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(opacity)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/Opacity\" type=\"match\" text=\"\"\"$(opacity)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n\\define toolbar-opacity()\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/Opacities}} variable=\"opacity\">\n\n<<toolbar-opacity-inner>>\n\n</$list>\n\\end\n\n<$set name=\"current-paint-colour\" value={{$:/config/BitmapEditor/Colour}}>\n\n<$set name=\"current-opacity\" value={{$:/config/BitmapEditor/Opacity}}>\n\n<<toolbar-opacity>>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/EditorToolbar/opacity": {
"title": "$:/core/ui/EditorToolbar/opacity",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/opacity",
"caption": "{{$:/language/Buttons/Opacity/Caption}}",
"description": "{{$:/language/Buttons/Opacity/Hint}}",
"condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
"dropdown": "$:/core/ui/EditorToolbar/opacity-dropdown",
"text": "<$text text={{$:/config/BitmapEditor/Opacity}}/>\n"
},
"$:/core/ui/EditorToolbar/paint-dropdown": {
"title": "$:/core/ui/EditorToolbar/paint-dropdown",
"text": "''{{$:/language/Buttons/Paint/Hint}}''\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Colour\"\n\t$value=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
},
"$:/core/ui/EditorToolbar/paint": {
"title": "$:/core/ui/EditorToolbar/paint",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/paint",
"caption": "{{$:/language/Buttons/Paint/Caption}}",
"description": "{{$:/language/Buttons/Paint/Hint}}",
"condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
"dropdown": "$:/core/ui/EditorToolbar/paint-dropdown",
"text": "\\define toolbar-paint()\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(colour-picker-value)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\\end\n<$set name=\"colour-picker-value\" value={{$:/config/BitmapEditor/Colour}}>\n<<toolbar-paint>>\n</$set>\n"
},
"$:/core/ui/EditorToolbar/picture-dropdown": {
"title": "$:/core/ui/EditorToolbar/picture-dropdown",
"text": "\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n''{{$:/language/Buttons/Picture/Hint}}''\n\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext=<<replacement-text>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
},
"$:/core/ui/EditorToolbar/picture": {
"title": "$:/core/ui/EditorToolbar/picture",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/picture",
"caption": "{{$:/language/Buttons/Picture/Caption}}",
"description": "{{$:/language/Buttons/Picture/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((picture))",
"dropdown": "$:/core/ui/EditorToolbar/picture-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/preview-type-dropdown": {
"title": "$:/core/ui/EditorToolbar/preview-type-dropdown",
"text": "\\define preview-type-button()\n<$button tag=\"a\">\n\n<$action-setfield $tiddler=\"$:/state/editpreviewtype\" $value=\"$(previewType)$\"/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<previewType>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<previewType>> field=\"title\" mode=\"inline\"/>\n\n</$transclude> \n\n<$reveal tag=\"span\" state=\"$:/state/editpreviewtype\" type=\"match\" text=<<previewType>> default=\"$:/core/ui/EditTemplate/body/preview/output\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]]\" variable=\"previewType\">\n\n<<preview-type-button>>\n\n</$list>\n"
},
"$:/core/ui/EditorToolbar/preview-type": {
"title": "$:/core/ui/EditorToolbar/preview-type",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/chevron-down",
"caption": "{{$:/language/Buttons/PreviewType/Caption}}",
"description": "{{$:/language/Buttons/PreviewType/Hint}}",
"condition": "[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]butfirst[]limit[1]]",
"button-classes": "tc-text-editor-toolbar-item-adjunct",
"dropdown": "$:/core/ui/EditorToolbar/preview-type-dropdown"
},
"$:/core/ui/EditorToolbar/preview": {
"title": "$:/core/ui/EditorToolbar/preview",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/preview-open",
"custom-icon": "yes",
"caption": "{{$:/language/Buttons/Preview/Caption}}",
"description": "{{$:/language/Buttons/Preview/Hint}}",
"condition": "[<targetTiddler>]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((preview))",
"text": "<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-open}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"no\"/>\n</$reveal>\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-closed}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"yes\"/>\n</$reveal>\n"
},
"$:/core/ui/EditorToolbar/quote": {
"title": "$:/core/ui/EditorToolbar/quote",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/quote",
"caption": "{{$:/language/Buttons/Quote/Caption}}",
"description": "{{$:/language/Buttons/Quote/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((quote))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n<<<\"\n\tsuffix=\"<<<\"\n/>\n"
},
"$:/core/ui/EditorToolbar/rotate-left": {
"title": "$:/core/ui/EditorToolbar/rotate-left",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/rotate-left",
"caption": "{{$:/language/Buttons/RotateLeft/Caption}}",
"description": "{{$:/language/Buttons/RotateLeft/Hint}}",
"condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"rotate-left\"\n/>\n"
},
"$:/core/ui/EditorToolbar/size-dropdown": {
"title": "$:/core/ui/EditorToolbar/size-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Size/\n\n\\define toolbar-button-size-preset(config-title)\n<$set name=\"width\" filter=\"$(sizePair)$ +[first[]]\">\n\n<$set name=\"height\" filter=\"$(sizePair)$ +[last[]]\">\n\n<$button tag=\"a\">\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n\t$value=<<width>>\n/>\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n\t$value=<<height>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/presets-popup\"\"\"\n/>\n\n<$text text=<<width>>/> × <$text text=<<height>>/>\n\n</$button>\n\n</$set>\n\n</$set>\n\\end\n\n\\define toolbar-button-size(config-title)\n''{{$:/language/Buttons/Size/Hint}}''\n\n<<lingo Caption/Width>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-width\"\"\" default=<<tv-bitmap-editor-width>> focus=\"true\" size=\"8\"/> <<lingo Caption/Height>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-height\"\"\" default=<<tv-bitmap-editor-height>> size=\"8\"/> <$button popup=\"\"\"$config-title$/presets-popup\"\"\" class=\"tc-btn-invisible tc-popup-keep\" style=\"width: auto; display: inline-block; background-colour: inherit;\" selectedClass=\"tc-selected\">\n{{$:/core/images/down-arrow}}\n</$button>\n\n<$reveal tag=\"span\" state=\"\"\"$config-title$/presets-popup\"\"\" type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down tc-popup-keep\">\n\n<$list filter={{$:/config/BitmapEditor/ImageSizes}} variable=\"sizePair\">\n\n<$macrocall $name=\"toolbar-button-size-preset\" config-title=\"$config-title$\"/>\n\n</$list>\n\n</div>\n\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"resize\"\n\twidth={{$config-title$/new-width}}\n\theight={{$config-title$/new-height}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Resize>>\n</$button>\n\\end\n\n<$macrocall $name=\"toolbar-button-size\" config-title=<<qualify \"$:/state/Size/\">>/>\n"
},
"$:/core/ui/EditorToolbar/size": {
"title": "$:/core/ui/EditorToolbar/size",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/size",
"caption": "{{$:/language/Buttons/Size/Caption}}",
"description": "{{$:/language/Buttons/Size/Hint}}",
"condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
"dropdown": "$:/core/ui/EditorToolbar/size-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/stamp-dropdown": {
"title": "$:/core/ui/EditorToolbar/stamp-dropdown",
"text": "\\define toolbar-button-stamp-inner()\n<$button tag=\"a\">\n\n<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext={{$(snippetTitle)$}}\n/>\n\n</$list>\n\n\n<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix={{{ [[$(snippetTitle)$]addsuffix[/prefix]get[text]] }}}\nsuffix={{{ [[$(snippetTitle)$]addsuffix[/suffix]get[text]] }}}\n/>\n\n</$list>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<snippetTitle>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<snippetTitle>> field=\"title\" />\n\n</$transclude>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TextEditor/Snippet]!has[draft.of]sort[caption]]\" variable=\"snippetTitle\">\n\n<<toolbar-button-stamp-inner>>\n\n</$list>\n\n----\n\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-new-tiddler\"\n\ttags=\"$:/tags/TextEditor/Snippet\"\n\tcaption={{$:/language/Buttons/Stamp/New/Title}}\n\ttext={{$:/language/Buttons/Stamp/New/Text}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<em>\n\n<$text text={{$:/language/Buttons/Stamp/Caption/New}}/>\n\n</em>\n\n</$button>\n"
},
"$:/core/ui/EditorToolbar/stamp": {
"title": "$:/core/ui/EditorToolbar/stamp",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/stamp",
"caption": "{{$:/language/Buttons/Stamp/Caption}}",
"description": "{{$:/language/Buttons/Stamp/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] [<targetTiddler>get[type]match[application/javascript]] [<targetTiddler>get[type]match[application/json]] [<targetTiddler>get[type]match[application/x-tiddler-dictionary]] [<targetTiddler>get[type]match[image/svg+xml]] +[first[]]",
"shortcuts": "((stamp))",
"dropdown": "$:/core/ui/EditorToolbar/stamp-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/strikethrough": {
"title": "$:/core/ui/EditorToolbar/strikethrough",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/strikethrough",
"caption": "{{$:/language/Buttons/Strikethrough/Caption}}",
"description": "{{$:/language/Buttons/Strikethrough/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((strikethrough))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"~~\"\n\tsuffix=\"~~\"\n/>\n"
},
"$:/core/ui/EditorToolbar/subscript": {
"title": "$:/core/ui/EditorToolbar/subscript",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/subscript",
"caption": "{{$:/language/Buttons/Subscript/Caption}}",
"description": "{{$:/language/Buttons/Subscript/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((subscript))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\",,\"\n\tsuffix=\",,\"\n/>\n"
},
"$:/core/ui/EditorToolbar/superscript": {
"title": "$:/core/ui/EditorToolbar/superscript",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/superscript",
"caption": "{{$:/language/Buttons/Superscript/Caption}}",
"description": "{{$:/language/Buttons/Superscript/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((superscript))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"^^\"\n\tsuffix=\"^^\"\n/>\n"
},
"$:/core/ui/EditorToolbar/transcludify": {
"title": "$:/core/ui/EditorToolbar/transcludify",
"caption": "{{$:/language/Buttons/Transcludify/Caption}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Buttons/Transcludify/Hint}}",
"icon": "$:/core/images/transcludify",
"list-before": "$:/core/ui/EditorToolbar/mono-block",
"shortcuts": "((transcludify))",
"tags": "$:/tags/EditorToolbar",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"{{\"\n\tsuffix=\"}}\"\n/>\n"
},
"$:/core/ui/EditorToolbar/underline": {
"title": "$:/core/ui/EditorToolbar/underline",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/underline",
"caption": "{{$:/language/Buttons/Underline/Caption}}",
"description": "{{$:/language/Buttons/Underline/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((underline))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"__\"\n\tsuffix=\"__\"\n/>\n"
},
"$:/core/Filters/AllTags": {
"title": "$:/core/Filters/AllTags",
"tags": "$:/tags/Filter",
"filter": "[tags[]!is[system]sort[title]]",
"description": "{{$:/language/Filters/AllTags}}",
"text": ""
},
"$:/core/Filters/AllTiddlers": {
"title": "$:/core/Filters/AllTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]sort[title]]",
"description": "{{$:/language/Filters/AllTiddlers}}",
"text": ""
},
"$:/core/Filters/Drafts": {
"title": "$:/core/Filters/Drafts",
"tags": "$:/tags/Filter",
"filter": "[has[draft.of]sort[title]]",
"description": "{{$:/language/Filters/Drafts}}",
"text": ""
},
"$:/core/Filters/Missing": {
"title": "$:/core/Filters/Missing",
"tags": "$:/tags/Filter",
"filter": "[all[missing]sort[title]]",
"description": "{{$:/language/Filters/Missing}}",
"text": ""
},
"$:/core/Filters/Orphans": {
"title": "$:/core/Filters/Orphans",
"tags": "$:/tags/Filter",
"filter": "[all[orphans]sort[title]]",
"description": "{{$:/language/Filters/Orphans}}",
"text": ""
},
"$:/core/Filters/OverriddenShadowTiddlers": {
"title": "$:/core/Filters/OverriddenShadowTiddlers",
"tags": "$:/tags/Filter",
"filter": "[is[shadow]]",
"description": "{{$:/language/Filters/OverriddenShadowTiddlers}}",
"text": ""
},
"$:/core/Filters/RecentSystemTiddlers": {
"title": "$:/core/Filters/RecentSystemTiddlers",
"tags": "$:/tags/Filter",
"filter": "[has[modified]!sort[modified]limit[50]]",
"description": "{{$:/language/Filters/RecentSystemTiddlers}}",
"text": ""
},
"$:/core/Filters/RecentTiddlers": {
"title": "$:/core/Filters/RecentTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]has[modified]!sort[modified]limit[50]]",
"description": "{{$:/language/Filters/RecentTiddlers}}",
"text": ""
},
"$:/core/Filters/SessionTiddlers": {
"title": "$:/core/Filters/SessionTiddlers",
"tags": "$:/tags/Filter",
"filter": "[haschanged[]]",
"description": "{{$:/language/Filters/SessionTiddlers}}",
"text": ""
},
"$:/core/Filters/ShadowTiddlers": {
"title": "$:/core/Filters/ShadowTiddlers",
"tags": "$:/tags/Filter",
"filter": "[all[shadows]sort[title]]",
"description": "{{$:/language/Filters/ShadowTiddlers}}",
"text": ""
},
"$:/core/Filters/StoryList": {
"title": "$:/core/Filters/StoryList",
"tags": "$:/tags/Filter",
"filter": "[list[$:/StoryList]] -$:/AdvancedSearch",
"description": "{{$:/language/Filters/StoryList}}",
"text": ""
},
"$:/core/Filters/SystemTags": {
"title": "$:/core/Filters/SystemTags",
"tags": "$:/tags/Filter",
"filter": "[all[shadows+tiddlers]tags[]is[system]sort[title]]",
"description": "{{$:/language/Filters/SystemTags}}",
"text": ""
},
"$:/core/Filters/SystemTiddlers": {
"title": "$:/core/Filters/SystemTiddlers",
"tags": "$:/tags/Filter",
"filter": "[is[system]sort[title]]",
"description": "{{$:/language/Filters/SystemTiddlers}}",
"text": ""
},
"$:/core/Filters/TypedTiddlers": {
"title": "$:/core/Filters/TypedTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]has[type]each[type]sort[type]] -[type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Filters/TypedTiddlers}}",
"text": ""
},
"$:/core/ui/ImportListing": {
"title": "$:/core/ui/ImportListing",
"text": "\\define lingo-base() $:/language/Import/\n\n\\define messageField() message-$(payloadTiddler)$\n\n\\define payloadTitleFilter() [<currentTiddler>get<renameField>minlength[1]else<payloadTiddler>]\n\n\\define overWriteWarning()\n<$list filter=\"[<currentTiddler>!has<suppressedField>]\">\n<$text text={{{[subfilter<payloadTitleFilter>!is[tiddler]then[]] ~[<lingo-base>addsuffix[Listing/Rename/OverwriteWarning]get[text]]}}}/>\n</$list>\n\\end\n\n\\define selectionField() selection-$(payloadTiddler)$\n\n\\define renameField() rename-$(payloadTiddler)$\n\n\\define suppressedField() suppressed-$(payloadTiddler)$\n\n\\define newImportTitleTiddler() $:/temp/NewImportTitle-$(payloadTiddler)$\n\n\\define previewPopupState() $(currentTiddler)$!!popup-$(payloadTiddler)$\n\n\\define renameFieldState() $(currentTiddler)$!!state-rename-$(payloadTiddler)$\n\n\\define select-all-actions()\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<$action-setfield $field={{{ [<payloadTiddler>addprefix[selection-]] }}} $value={{$:/state/import/select-all}}/>\n</$list>\n\\end\n\n<table class=\"tc-import-table\">\n<tbody>\n<tr>\n<th align=\"left\">\n<$checkbox tiddler=\"$:/state/import/select-all\" field=\"text\" checked=\"checked\" unchecked=\"unchecked\" default=\"checked\" actions=<<select-all-actions>>>\n<<lingo Listing/Select/Caption>>\n</$checkbox>\n</th>\n<th>\n<<lingo Listing/Title/Caption>>\n</th>\n<th>\n<<lingo Listing/Status/Caption>>\n</th>\n</tr>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<tr class={{{[<currentTiddler>has<suppressedField>then[tc-row-disabled]] ~[subfilter<payloadTitleFilter>is[tiddler]then[tc-row-warning]] }}}>\n<td>\n<$checkbox field=<<selectionField>> checked=\"checked\" unchecked=\"unchecked\" default=\"checked\" disabled={{{[<currentTiddler>has<suppressedField>then[yes]else[no]]}}}/>\n</td>\n<td>\n<$reveal type=\"nomatch\" state=<<renameFieldState>> text=\"yes\" tag=\"div\">\n<$reveal type=\"nomatch\" state=<<previewPopupState>> text=\"yes\" tag=\"div\" class=\"tc-flex\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown tc-flex-grow-1 tc-word-break\" set=<<previewPopupState>> setTo=\"yes\" disabled={{{[<currentTiddler>has<suppressedField>then[yes]else[no]]}}}>\n<span class=\"tc-small-gap-right\">{{$:/core/images/right-arrow}}</span><$text text={{{[subfilter<payloadTitleFilter>]}}}/>\n</$button>\n<$list filter=\"[<currentTiddler>!has<suppressedField>]\"><$button class=\"tc-btn-invisible\" set=<<renameFieldState>> setTo=\"yes\" tooltip={{{[<lingo-base>addsuffix[Listing/Rename/Tooltip]get[text]]}}}>{{$:/core/images/edit-button}}</$button></$list>\n</$reveal>\n<$reveal type=\"match\" state=<<previewPopupState>> text=\"yes\" tag=\"div\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<previewPopupState>> setTo=\"no\">\n<span class=\"tc-small-gap-right\">{{$:/core/images/down-arrow}}</span><$text text={{{[subfilter<payloadTitleFilter>]}}}/>\n</$button>\n</$reveal>\n</$reveal>\n<$reveal type=\"match\" state=<<renameFieldState>> text=\"yes\" tag=\"div\">\n<$text text={{{[<lingo-base>addsuffix[Listing/Rename/Prompt]get[text]]}}}/>\n</$reveal>\n</td>\n<td>\n<$view field=<<messageField>>/>\n<<overWriteWarning>>\n</td>\n</tr>\n<$reveal type=\"match\" state=<<renameFieldState>> text=\"yes\" tag=\"tr\">\n<td colspan=\"3\">\n<div class=\"tc-flex\">\n<$edit-text tiddler=<<newImportTitleTiddler>> default={{{[subfilter<payloadTitleFilter>]}}} tag=\"input\" class=\"tc-import-rename tc-flex-grow-1\"/><span class=\"tc-small-gap-left\"><$button class=\"tc-btn-invisible\" set=<<renameFieldState>> setTo=\"no\" tooltip={{{[<lingo-base>addsuffix[Listing/Rename/CancelRename]get[text]]}}}>{{$:/core/images/close-button}}<$action-deletetiddler $tiddler=<<newImportTitleTiddler>>/></$button><span class=\"tc-small-gap-right\"/></span><$button class=\"tc-btn-invisible\" set=<<renameFieldState>> setTo=\"no\" tooltip={{{[<lingo-base>addsuffix[Listing/Rename/ConfirmRename]get[text]]}}}>{{$:/core/images/done-button}}<$action-setfield $field=<<renameField>> $value={{{[<newImportTitleTiddler>get[text]minlength[1]else<payloadTiddler>]}}} /><$action-deletetiddler $tiddler=<<newImportTitleTiddler>>/></$button>\n</div>\n</td>\n</$reveal>\n<tr>\n<td colspan=\"3\">\n<$reveal type=\"match\" text=\"yes\" state=<<previewPopupState>> tag=\"div\">\n<$list filter=\"[{$:/state/importpreviewtype}has[text]]\" variable=\"listItem\" emptyMessage={{$:/core/ui/ImportPreviews/Text}}>\n<$transclude tiddler={{$:/state/importpreviewtype}}/>\n</$list>\n</$reveal>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ImportPreviews/Diff": {
"title": "$:/core/ui/ImportPreviews/Diff",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Diff}}",
"text": "<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>>/>\n"
},
"$:/core/ui/ImportPreviews/DiffFields": {
"title": "$:/core/ui/ImportPreviews/DiffFields",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/DiffFields}}",
"text": "<$macrocall $name=\"compareTiddlers\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>> exclude=\"text\"/>\n"
},
"$:/core/ui/ImportPreviews/Fields": {
"title": "$:/core/ui/ImportPreviews/Fields",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Fields}}",
"text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[<payloadTiddler>subtiddlerfields<currentTiddler>sort[]] -text\" variable=\"fieldName\">\n<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<fieldName>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<fieldName>> tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>>/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ImportPreviews/Text": {
"title": "$:/core/ui/ImportPreviews/Text",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Text}}",
"text": "<$transclude tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> mode=\"block\"/>\n"
},
"$:/core/ui/ImportPreviews/TextRaw": {
"title": "$:/core/ui/ImportPreviews/TextRaw",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/TextRaw}}",
"text": "<pre><code><$view tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> /></code></pre>"
},
"$:/core/ui/KeyboardShortcuts/advanced-search": {
"title": "$:/core/ui/KeyboardShortcuts/advanced-search",
"tags": "$:/tags/KeyboardShortcut",
"key": "((advanced-search))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\"[data-tiddler-title=\"$:/AdvancedSearch\"] .tc-search input\"\"\" preventScroll=\"true\"/>\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/change-sidebar-layout": {
"title": "$:/core/ui/KeyboardShortcuts/change-sidebar-layout",
"tags": "$:/tags/KeyboardShortcut",
"key": "((change-sidebar-layout))",
"text": "<$list filter=\"[{$:/themes/tiddlywiki/vanilla/options/sidebarlayout}match[fixed-fluid]]\" \nemptyMessage=\"\"\"<$action-setfield $tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" text=\"fixed-fluid\"/>\"\"\">\n<$action-setfield $tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" text=\"fluid-fixed\"/>\n</$list>\n"
},
"$:/core/ui/KeyboardShortcuts/new-image": {
"title": "$:/core/ui/KeyboardShortcuts/new-image",
"tags": "$:/tags/KeyboardShortcut",
"key": "((new-image))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-image}}\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/new-journal": {
"title": "$:/core/ui/KeyboardShortcuts/new-journal",
"tags": "$:/tags/KeyboardShortcut",
"key": "((new-journal))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-journal}}\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/new-tiddler": {
"title": "$:/core/ui/KeyboardShortcuts/new-tiddler",
"tags": "$:/tags/KeyboardShortcut",
"key": "((new-tiddler))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-tiddler}}\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/save-wiki": {
"title": "$:/core/ui/KeyboardShortcuts/save-wiki",
"tags": "$:/tags/KeyboardShortcut",
"key": "((save-wiki))",
"text": "<$wikify name=\"site-title\" text={{$:/config/SaveWikiButton/Filename}}>\n<$action-sendmessage $message=\"tm-save-wiki\" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>\n</$wikify>\n"
},
"$:/core/ui/KeyboardShortcuts/sidebar-search": {
"title": "$:/core/ui/KeyboardShortcuts/sidebar-search",
"tags": "$:/tags/KeyboardShortcut",
"key": "((sidebar-search))",
"text": "<$action-sendmessage $message=\"tm-focus-selector\" $param=\".tc-search input\"/>\n"
},
"$:/core/ui/KeyboardShortcuts/switcher": {
"title": "$:/core/ui/KeyboardShortcuts/switcher",
"tags": "$:/tags/KeyboardShortcut",
"key": "((layout-switcher))",
"text": "<$action-sendmessage $message=\"tm-show-switcher\" switch=\"layout\"/>"
},
"$:/core/ui/KeyboardShortcuts/toggle-sidebar": {
"title": "$:/core/ui/KeyboardShortcuts/toggle-sidebar",
"tags": "$:/tags/KeyboardShortcut",
"key": "((toggle-sidebar))",
"text": "<$list filter=\"[[$:/state/sidebar]is[missing]] [{$:/state/sidebar}removeprefix[yes]]\" emptyMessage=\"\"\"\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"yes\"/>\n\"\"\">\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"no\"/>\n</$list>\n"
},
"$:/snippets/LayoutSwitcher": {
"title": "$:/snippets/LayoutSwitcher",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/LayoutSwitcher/Caption}}",
"text": "<$linkcatcher to=\"$:/layout\">\n<div class=\"tc-chooser\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/Layout]] [[$:/core/ui/PageTemplate]] +[!is[draft]sort[name]]\">\n<$list filter=\"[{$:/layout}!has[text]]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$set name=\"cls\" filter=\"[all[current]field:title{$:/layout}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$transclude field=\"name\"/>'' - <$transclude field=\"description\"/></$link></div>\n</$set>\n\"\"\">\n<$set name=\"cls\" filter=\"[all[current]field:title[$:/core/ui/PageTemplate]]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$transclude field=\"name\"/>'' - <$transclude field=\"description\"/></$link></div>\n</$set>\n</$list>\n</$list>\n</div>\n</$linkcatcher>\n"
},
"$:/core/ui/ListItemTemplate": {
"title": "$:/core/ui/ListItemTemplate",
"text": "<div class=\"tc-menu-list-item\">\n<$link />\n</div>"
},
"$:/Manager/ItemMain/Fields": {
"title": "$:/Manager/ItemMain/Fields",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/Fields}}",
"text": "<table>\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
},
"$:/Manager/ItemMain/RawText": {
"title": "$:/Manager/ItemMain/RawText",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/RawText}}",
"text": "<pre><code><$view/></code></pre>\n"
},
"$:/Manager/ItemMain/WikifiedText": {
"title": "$:/Manager/ItemMain/WikifiedText",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/WikifiedText}}",
"text": "<$transclude mode=\"block\"/>\n"
},
"$:/Manager/ItemSidebar/Colour": {
"title": "$:/Manager/ItemSidebar/Colour",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Colour}}",
"text": "\\define swatch-styles()\nheight: 1em;\nbackground-color: $(colour)$\n\\end\n\n<$vars colour={{!!color}}>\n<p style=<<swatch-styles>>/>\n</$vars>\n<p>\n<$edit-text field=\"color\" tag=\"input\" type=\"color\"/> / <$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/>\n</p>\n"
},
"$:/Manager/ItemSidebar/Icon": {
"title": "$:/Manager/ItemSidebar/Icon",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Icon}}",
"text": "<p>\n<div class=\"tc-manager-icon-editor\">\n<$button popup=<<qualify \"$:/state/popup/image-picker\">> class=\"tc-btn-invisible\">\n<$transclude tiddler={{!!icon}}>\n{{$:/language/Manager/Item/Icon/None}}\n</$transclude>\n</$button>\n<div class=\"tc-block-dropdown-wrapper\" style=\"position: static;\">\n<$reveal state=<<qualify \"$:/state/popup/image-picker\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-popup\">\n<div class=\"tc-block-dropdown tc-popup-keep\" style=\"width: 80%; left: 10%; right: 10%; padding: 0.5em;\">\n<$macrocall $name=\"image-picker-include-tagged-images\" actions=\"\"\"\n<$action-setfield $field=\"icon\" $value=<<imageTitle>>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/image-picker\">>/>\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n</div>\n</p>\n"
},
"$:/Manager/ItemSidebar/Tags": {
"title": "$:/Manager/ItemSidebar/Tags",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Tags}}",
"text": "\\whitespace trim\n\\define tag-checkbox-actions()\n<$action-listops\n\t$tiddler=\"$:/config/Manager/RecentTags\"\n\t$subfilter=\"[<tag>] [list[$:/config/Manager/RecentTags]] +[limit[12]]\"\n/>\n\\end\n\n\\define tag-picker-actions()\n<<tag-checkbox-actions>>\n\\end\n\n<p>\n<$list filter=\"[all[current]tags[]] [list[$:/config/Manager/RecentTags]] +[sort[title]] \" variable=\"tag\" storyview=\"pop\">\n<div>\n<$checkbox tiddler=<<currentTiddler>> tag=<<tag>> actions=<<tag-checkbox-actions>>>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$checkbox>\n</div>\n</$list>\n</p>\n<p>\n<$fieldmangler>\n<$macrocall $name=\"tag-picker\" actions=<<tag-picker-actions>>/>\n</$fieldmangler>\n</p>\n"
},
"$:/Manager/ItemSidebar/Tools": {
"title": "$:/Manager/ItemSidebar/Tools",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Tools}}",
"text": "<p>\n<$button to=<<currentTiddler>>>{{$:/core/images/link}} open</$button>\n</p>\n<p>\n<$button message=\"tm-edit-tiddler\" param=<<currentTiddler>>>{{$:/core/images/edit-button}} edit</$button>\n</p>\n"
},
"$:/Manager": {
"title": "$:/Manager",
"icon": "$:/core/images/list",
"color": "#bbb",
"text": "\\define lingo-base() $:/language/Manager/\n\n\\define list-item-content-item()\n<div class=\"tc-manager-list-item-content-item\">\n\t<$vars state-title=\"\"\"$:/state/popup/manager/item/$(listItem)$\"\"\">\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"hide\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/down-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"nomatch\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"show\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/right-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\" class=\"tc-manager-list-item-content-item-body\">\n\t\t\t<$transclude tiddler=<<listItem>>/>\n\t\t</$reveal>\n\t</$vars>\n</div>\n\\end\n\n<div class=\"tc-manager-wrapper\">\n\t<div class=\"tc-manager-controls\">\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Show/Prompt>> <$select tiddler=\"$:/config/Manager/Show\" default=\"tiddlers\">\n\t\t\t\t<option value=\"tiddlers\"><<lingo Controls/Show/Option/Tiddlers>></option>\n\t\t\t\t<option value=\"tags\"><<lingo Controls/Show/Option/Tags>></option>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Search/Prompt>> <$edit-text tiddler=\"$:/config/Manager/Filter\" tag=\"input\" default=\"\" placeholder={{$:/language/Manager/Controls/Search/Placeholder}}/>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/FilterByTag/Prompt>> <$select tiddler=\"$:/config/Manager/Tag\" default=\"\">\n\t\t\t\t<option value=\"\"><<lingo Controls/FilterByTag/None>></option>\n\t\t\t\t<$list filter=\"[!is{$:/config/Manager/System}tags[]!is[system]sort[title]]\" variable=\"tag\">\n\t\t\t\t\t<option value=<<tag>>><$text text=<<tag>>/></option>\n\t\t\t\t</$list>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Sort/Prompt>> <$select tiddler=\"$:/config/Manager/Sort\" default=\"title\">\n\t\t\t\t<optgroup label=\"Common\">\n\t\t\t\t\t<$list filter=\"title modified modifier created creator created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t\t<optgroup label=\"All\">\n\t\t\t\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}fields[]sort[title]] -title -modified -modifier -created -creator -created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t</$select>\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/Order\" field=\"text\" checked=\"reverse\" unchecked=\"forward\" default=\"forward\">\n\t\t\t\t<<lingo Controls/Order/Prompt>>\n\t\t\t</$checkbox>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/System\" field=\"text\" checked=\"\" unchecked=\"system\" default=\"system\">\n\t\t\t\t{{$:/language/SystemTiddlers/Include/Prompt}}\n\t\t\t</$checkbox>\n\t\t</div>\n\t</div>\n\t<div class=\"tc-manager-list\">\n\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}search{$:/config/Manager/Filter}tag:strict{$:/config/Manager/Tag}sort{$:/config/Manager/Sort}order{$:/config/Manager/Order}]\">\n\t\t\t<$vars transclusion=<<currentTiddler>>>\n\t\t\t\t<div style=\"tc-manager-list-item\">\n\t\t\t\t\t<$button popup=<<qualify \"$:/state/manager/popup\">> class=\"tc-btn-invisible tc-manager-list-item-heading\" selectedClass=\"tc-manager-list-item-heading-selected\">\n\t\t\t\t\t\t<$text text=<<currentTiddler>>/>\n\t\t\t\t\t</$button>\n\t\t\t\t\t<$reveal state=<<qualify \"$:/state/manager/popup\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-manager-list-item-content tc-popup-handle\">\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-tiddler\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemMain]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-sidebar\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemSidebar]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</$reveal>\n\t\t\t\t</div>\n\t\t\t</$vars>\n\t\t</$list>\n\t</div>\n</div>\n"
},
"$:/core/ui/MissingTemplate": {
"title": "$:/core/ui/MissingTemplate",
"text": "<div class=\"tc-tiddler-missing\">\n<$button popup=<<qualify \"$:/state/popup/missing\">> class=\"tc-btn-invisible tc-missing-tiddler-label\">\n<$view field=\"title\" format=\"text\" />\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/missing\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<hr>\n<$list filter=\"[all[current]backlinks[]sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n</div>\n"
},
"$:/core/ui/MoreSideBar/All": {
"title": "$:/core/ui/MoreSideBar/All",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/All/Caption}}",
"text": "<$list filter={{$:/core/Filters/AllTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Drafts": {
"title": "$:/core/ui/MoreSideBar/Drafts",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Drafts/Caption}}",
"text": "<$list filter={{$:/core/Filters/Drafts!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Explorer": {
"title": "$:/core/ui/MoreSideBar/Explorer",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Explorer/Caption}}",
"text": "<<tree \"$:/\">>\n"
},
"$:/core/ui/MoreSideBar/Missing": {
"title": "$:/core/ui/MoreSideBar/Missing",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Missing/Caption}}",
"text": "<$list filter={{$:/core/Filters/Missing!!filter}} template=\"$:/core/ui/MissingTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Orphans": {
"title": "$:/core/ui/MoreSideBar/Orphans",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Orphans/Caption}}",
"text": "<$list filter={{$:/core/Filters/Orphans!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Plugins": {
"title": "$:/core/ui/MoreSideBar/Plugins",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
"text": "\n{{$:/language/ControlPanel/Plugins/Installed/Hint}}\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar/Plugins]!has[draft.of]]\" default=\"$:/core/ui/MoreSideBar/Plugins/Plugins\" explicitState=\"$:/state/tab-1163638994\"/>\n"
},
"$:/core/ui/MoreSideBar/Recent": {
"title": "$:/core/ui/MoreSideBar/Recent",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Recent/Caption}}",
"text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
},
"$:/core/ui/MoreSideBar/Shadows": {
"title": "$:/core/ui/MoreSideBar/Shadows",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Shadows/Caption}}",
"text": "<$list filter={{$:/core/Filters/ShadowTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/System": {
"title": "$:/core/ui/MoreSideBar/System",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/System/Caption}}",
"text": "<$list filter={{$:/core/Filters/SystemTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Tags": {
"title": "$:/core/ui/MoreSideBar/Tags",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Tags/Caption}}",
"text": "<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n{{$:/core/ui/Buttons/tag-manager}}\n\n</$set>\n\n</$set>\n\n</$set>\n\n<$list filter={{$:/core/Filters/AllTags!!filter}}>\n\n<$transclude tiddler=\"$:/core/ui/TagTemplate\"/>\n\n</$list>\n\n<hr class=\"tc-untagged-separator\">\n\n{{$:/core/ui/UntaggedTemplate}}\n"
},
"$:/core/ui/MoreSideBar/Types": {
"title": "$:/core/ui/MoreSideBar/Types",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Types/Caption}}",
"text": "<$list filter={{$:/core/Filters/TypedTiddlers!!filter}}>\n<div class=\"tc-menu-list-item\">\n<$view field=\"type\"/>\n<$list filter=\"[type{!!type}!is[system]sort[title]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><$view field=\"title\"/></$link>\n</div>\n</$list>\n</div>\n</$list>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Languages": {
"title": "$:/core/ui/MoreSideBar/Plugins/Languages",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[language]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Plugins": {
"title": "$:/core/ui/MoreSideBar/Plugins/Plugins",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[plugin]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}>>/>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Theme": {
"title": "$:/core/ui/MoreSideBar/Plugins/Theme",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[theme]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
},
"$:/core/ui/Buttons/advanced-search": {
"title": "$:/core/ui/Buttons/advanced-search",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/advanced-search-button}} {{$:/language/Buttons/AdvancedSearch/Caption}}",
"description": "{{$:/language/Buttons/AdvancedSearch/Hint}}",
"text": "\\whitespace trim\n\\define advanced-search-button(class)\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/advanced-search-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/AdvancedSearch/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/AdvancedSearch]]\" emptyMessage=<<advanced-search-button>>>\n<<advanced-search-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/close-all": {
"title": "$:/core/ui/Buttons/close-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/close-all-button}} {{$:/language/Buttons/CloseAll/Caption}}",
"description": "{{$:/language/Buttons/CloseAll/Hint}}",
"text": "<$button message=\"tm-close-all-tiddlers\" tooltip={{$:/language/Buttons/CloseAll/Hint}} aria-label={{$:/language/Buttons/CloseAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/CloseAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/control-panel": {
"title": "$:/core/ui/Buttons/control-panel",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/options-button}} {{$:/language/Buttons/ControlPanel/Caption}}",
"description": "{{$:/language/Buttons/ControlPanel/Hint}}",
"text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/ControlPanel\" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/options-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/ControlPanel/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/ControlPanel]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/encryption": {
"title": "$:/core/ui/Buttons/encryption",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/locked-padlock}} {{$:/language/Buttons/Encryption/Caption}}",
"description": "{{$:/language/Buttons/Encryption/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-clear-password\" tooltip={{$:/language/Buttons/Encryption/ClearPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/ClearPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/locked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/ClearPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-set-password\" tooltip={{$:/language/Buttons/Encryption/SetPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/SetPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/unlocked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/core/ui/Buttons/export-page": {
"title": "$:/core/ui/Buttons/export-page",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportPage/Caption}}",
"description": "{{$:/language/Buttons/ExportPage/Hint}}",
"text": "<$macrocall $name=\"exportButton\" exportFilter=\"[!is[system]sort[title]]\" lingoBase=\"$:/language/Buttons/ExportPage/\"/>"
},
"$:/core/ui/Buttons/fold-all": {
"title": "$:/core/ui/Buttons/fold-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/fold-all-button}} {{$:/language/Buttons/FoldAll/Caption}}",
"description": "{{$:/language/Buttons/FoldAll/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/FoldAll/Hint}} aria-label={{$:/language/Buttons/FoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FoldAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/full-screen": {
"title": "$:/core/ui/Buttons/full-screen",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/full-screen-button}} {{$:/language/Buttons/FullScreen/Caption}}",
"description": "{{$:/language/Buttons/FullScreen/Hint}}",
"text": "<$button message=\"tm-full-screen\" tooltip={{$:/language/Buttons/FullScreen/Hint}} aria-label={{$:/language/Buttons/FullScreen/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/full-screen-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FullScreen/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/home": {
"title": "$:/core/ui/Buttons/home",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/home-button}} {{$:/language/Buttons/Home/Caption}}",
"description": "{{$:/language/Buttons/Home/Hint}}",
"text": "<$button message=\"tm-home\" tooltip={{$:/language/Buttons/Home/Hint}} aria-label={{$:/language/Buttons/Home/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/home-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Home/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/import": {
"title": "$:/core/ui/Buttons/import",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/import-button}} {{$:/language/Buttons/Import/Caption}}",
"description": "{{$:/language/Buttons/Import/Hint}}",
"text": "<div class=\"tc-file-input-wrapper\">\n<$button tooltip={{$:/language/Buttons/Import/Hint}} aria-label={{$:/language/Buttons/Import/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/import-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Import/Caption}}/></span>\n</$list>\n</$button>\n<$browse tooltip={{$:/language/Buttons/Import/Hint}}/>\n</div>"
},
"$:/core/ui/Buttons/language": {
"title": "$:/core/ui/Buttons/language",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/globe}} {{$:/language/Buttons/Language/Caption}}",
"description": "{{$:/language/Buttons/Language/Hint}}",
"text": "\\whitespace trim\n\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/language\">> tooltip={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value={{$:/language}}>\n<$image source=<<flag-title>>/>\n</$set>\n</span>\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Language/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/language\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/languageswitcher}}\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/manager": {
"title": "$:/core/ui/Buttons/manager",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/list}} {{$:/language/Buttons/Manager/Caption}}",
"description": "{{$:/language/Buttons/Manager/Hint}}",
"text": "\\whitespace trim\n\\define manager-button(class)\n<$button to=\"$:/Manager\" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/list}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Manager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/Manager]]\" emptyMessage=<<manager-button>>>\n<<manager-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/more-page-actions": {
"title": "$:/core/ui/Buttons/more-page-actions",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"text": "\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/More/Caption}}/></span>\n</$list>\n</$button><$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]] -[[$:/core/ui/Buttons/more-page-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
},
"$:/core/ui/Buttons/new-image": {
"title": "$:/core/ui/Buttons/new-image",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-image-button}} {{$:/language/Buttons/NewImage/Caption}}",
"description": "{{$:/language/Buttons/NewImage/Hint}}",
"text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/NewImage/Hint}} aria-label={{$:/language/Buttons/NewImage/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-image}}>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-image-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewImage/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/core/ui/Buttons/new-journal": {
"title": "$:/core/ui/Buttons/new-journal",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournal/Caption}}",
"description": "{{$:/language/Buttons/NewJournal/Hint}}",
"text": "\\whitespace trim\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-journal}}>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournal/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<<journalButton>>\n"
},
"$:/core/ui/Buttons/new-tiddler": {
"title": "$:/core/ui/Buttons/new-tiddler",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-button}} {{$:/language/Buttons/NewTiddler/Caption}}",
"description": "{{$:/language/Buttons/NewTiddler/Hint}}",
"text": "\\whitespace trim\n<$button actions={{$:/core/ui/Actions/new-tiddler}} tooltip={{$:/language/Buttons/NewTiddler/Hint}} aria-label={{$:/language/Buttons/NewTiddler/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewTiddler/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/core/ui/Buttons/palette": {
"title": "$:/core/ui/Buttons/palette",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/palette}} {{$:/language/Buttons/Palette/Caption}}",
"description": "{{$:/language/Buttons/Palette/Hint}}",
"text": "\\whitespace trim\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/palette\">> tooltip={{$:/language/Buttons/Palette/Hint}} aria-label={{$:/language/Buttons/Palette/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/palette}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Palette/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/palette\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\" style=\"font-size:0.7em;\">\n{{$:/snippets/paletteswitcher}}\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/print": {
"title": "$:/core/ui/Buttons/print",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/print-button}} {{$:/language/Buttons/Print/Caption}}",
"description": "{{$:/language/Buttons/Print/Hint}}",
"text": "<$button message=\"tm-print\" tooltip={{$:/language/Buttons/Print/Hint}} aria-label={{$:/language/Buttons/Print/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/print-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Print/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/refresh": {
"title": "$:/core/ui/Buttons/refresh",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/refresh-button}} {{$:/language/Buttons/Refresh/Caption}}",
"description": "{{$:/language/Buttons/Refresh/Hint}}",
"text": "<$button message=\"tm-browser-refresh\" tooltip={{$:/language/Buttons/Refresh/Hint}} aria-label={{$:/language/Buttons/Refresh/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/refresh-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Refresh/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/save-wiki": {
"title": "$:/core/ui/Buttons/save-wiki",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Caption}}",
"description": "{{$:/language/Buttons/SaveWiki/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"site-title\" text={{$:/config/SaveWikiButton/Filename}}>\n<$action-sendmessage $message=\"tm-save-wiki\" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>\n</$wikify>\n<span class=\"tc-dirty-indicator\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/save-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/SaveWiki/Caption}}/></span>\n</$list>\n</span>\n</$button>"
},
"$:/core/ui/Buttons/storyview": {
"title": "$:/core/ui/Buttons/storyview",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/storyview-classic}} {{$:/language/Buttons/StoryView/Caption}}",
"description": "{{$:/language/Buttons/StoryView/Hint}}",
"text": "\\whitespace trim\n\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/storyview\">> tooltip={{$:/language/Buttons/StoryView/Hint}} aria-label={{$:/language/Buttons/StoryView/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<$set name=\"storyview\" value={{$:/view}}>\n<$transclude tiddler=<<icon>>/>\n</$set>\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/StoryView/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/storyview\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/viewswitcher}}\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/tag-manager": {
"title": "$:/core/ui/Buttons/tag-manager",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/tag-button}} {{$:/language/Buttons/TagManager/Caption}}",
"description": "{{$:/language/Buttons/TagManager/Hint}}",
"text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/TagManager\" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/tag-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/TagManager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/TagManager]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/theme": {
"title": "$:/core/ui/Buttons/theme",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/theme-button}} {{$:/language/Buttons/Theme/Caption}}",
"description": "{{$:/language/Buttons/Theme/Hint}}",
"text": "\\whitespace trim\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/theme\">> tooltip={{$:/language/Buttons/Theme/Hint}} aria-label={{$:/language/Buttons/Theme/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/theme-button}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Theme/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/theme\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$:/theme\">\n{{$:/snippets/themeswitcher}}\n</$linkcatcher>\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/timestamp": {
"title": "$:/core/ui/Buttons/timestamp",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/timestamp-on}} {{$:/language/Buttons/Timestamp/Caption}}",
"description": "{{$:/language/Buttons/Timestamp/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/On/Hint}} aria-label={{$:/language/Buttons/Timestamp/On/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"yes\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/timestamp-on}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/On/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/Off/Hint}} aria-label={{$:/language/Buttons/Timestamp/Off/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"no\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/timestamp-off}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/Off/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/core/ui/Buttons/unfold-all": {
"title": "$:/core/ui/Buttons/unfold-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/unfold-all-button}} {{$:/language/Buttons/UnfoldAll/Caption}}",
"description": "{{$:/language/Buttons/UnfoldAll/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/UnfoldAll/Hint}} aria-label={{$:/language/Buttons/UnfoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-unfold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/UnfoldAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/PageTemplate/pagecontrols": {
"title": "$:/core/ui/PageTemplate/pagecontrols",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-page-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"hidden\" value=<<config-title>>>\n<$list filter=\"[<hidden>!text[hide]]\" storyview=\"pop\" variable=\"ignore\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n</$set>\n</$list>\n</$set>\n</$list>\n</div>\n"
},
"$:/core/ui/PageStylesheet": {
"title": "$:/core/ui/PageStylesheet",
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/PageTemplate/alerts": {
"title": "$:/core/ui/PageTemplate/alerts",
"tags": "$:/tags/PageTemplate",
"text": "<div class=\"tc-alerts\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Alert]!has[draft.of]]\" template=\"$:/core/ui/AlertTemplate\" storyview=\"pop\"/>\n\n</div>\n"
},
"$:/core/ui/PageTemplate/drafts": {
"title": "$:/core/ui/PageTemplate/drafts",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n<$reveal state=\"$:/status/IsReadOnly\" type=\"nomatch\" text=\"yes\" tag=\"div\" class=\"tc-drafts-list\">\n<$list filter=\"[has[draft.of]!sort[modified]] -[list[$:/StoryList]]\">\n<$link>\n{{$:/core/images/edit-button}} <$text text=<<currentTiddler>>/>\n</$link>\n</$list>\n</$reveal>\n"
},
"$:/core/ui/PageTemplate/pluginreloadwarning": {
"title": "$:/core/ui/PageTemplate/pluginreloadwarning",
"tags": "$:/tags/PageTemplate",
"text": "\\define lingo-base() $:/language/\n\n<$list filter=\"[{$:/status/RequireReloadDueToPluginChange}match[yes]]\">\n\n<$reveal type=\"nomatch\" state=\"$:/temp/HidePluginWarning\" text=\"yes\">\n\n<div class=\"tc-plugin-reload-warning\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<<lingo PluginReloadWarning>> <$button set=\"$:/temp/HidePluginWarning\" setTo=\"yes\" class=\"tc-btn-invisible\">{{$:/core/images/close-button}}</$button>\n\n</$set>\n\n</div>\n\n</$reveal>\n\n</$list>\n"
},
"$:/core/ui/PageTemplate/sidebar": {
"title": "$:/core/ui/PageTemplate/sidebar",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/SideBarSegments/Visibility/$(listItem)$\n\\end\n\n<$scrollable fallthrough=\"no\" class=\"tc-sidebar-scrollable\">\n\n<div class=\"tc-sidebar-header\">\n\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBarSegment]!has[draft.of]]\" variable=\"listItem\">\n\n<$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\" tag=\"div\">\n\n<$transclude tiddler=<<listItem>> mode=\"block\"/>\n\n</$reveal>\n\n</$list>\n\n</$reveal>\n\n</div>\n\n</$scrollable>\n"
},
"$:/core/ui/PageTemplate/story": {
"title": "$:/core/ui/PageTemplate/story",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n<section class=\"tc-story-river\">\n\n<section class=\"story-backdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AboveStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" template={{$:/config/ui/ViewTemplate}} editTemplate={{$:/config/ui/EditTemplate}} storyview={{$:/view}} emptyMessage={{$:/config/EmptyStoryMessage}}/>\n\n<section class=\"story-frontdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/BelowStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n</section>\n"
},
"$:/core/ui/PageTemplate/topleftbar": {
"title": "$:/core/ui/PageTemplate/topleftbar",
"tags": "$:/tags/PageTemplate",
"text": "<span class=\"tc-topbar tc-topbar-left\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!has[draft.of]]\" variable=\"listItem\" storyview=\"pop\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
},
"$:/core/ui/PageTemplate/toprightbar": {
"title": "$:/core/ui/PageTemplate/toprightbar",
"tags": "$:/tags/PageTemplate",
"text": "<span class=\"tc-topbar tc-topbar-right\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopRightBar]!has[draft.of]]\" variable=\"listItem\" storyview=\"pop\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
},
"$:/core/ui/PageTemplate": {
"title": "$:/core/ui/PageTemplate",
"name": "{{$:/language/PageTemplate/Name}}",
"description": "{{$:/language/PageTemplate/Description}}",
"text": "\\whitespace trim\n\\define containerClasses()\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$vars\n\ttv-config-toolbar-icons={{$:/config/Toolbar/Icons}}\n\ttv-config-toolbar-text={{$:/config/Toolbar/Text}}\n\ttv-config-toolbar-class={{$:/config/Toolbar/ButtonClass}}\n\ttv-enable-drag-and-drop={{$:/config/DragAndDrop/Enable}}\n\ttv-show-missing-links={{$:/config/MissingLinks}}\n\tstoryviewTitle={{$:/view}}\n\tlanguageTitle={{{ [{$:/language}get[name]] }}}>\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n\n<$dropzone enable=<<tv-enable-drag-and-drop>>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageTemplate]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n\n</$dropzone>\n\n</$navigator>\n\n</div>\n\n</$vars>\n"
},
"$:/PaletteManager": {
"title": "$:/PaletteManager",
"text": "\\define lingo-base() $:/language/ControlPanel/Palette/Editor/\n\\define describePaletteColour(colour)\n<$transclude tiddler=\"$:/language/Docs/PaletteColours/$colour$\"><$text text=\"$colour$\"/></$transclude>\n\\end\n\\define edit-colour-placeholder()\n edit $(colourName)$\n\\end\n\\define colour-tooltip(showhide) $showhide$ editor for $(newColourName)$ \n\\define resolve-colour(macrocall)\n\\import $:/core/macros/utils\n\\whitespace trim\n<$wikify name=\"name\" text=\"\"\"$macrocall$\"\"\">\n<<name>>\n</$wikify>\n\\end\n\\define delete-colour-index-actions() <$action-setfield $index=<<colourName>>/>\n\\define palette-manager-colour-row-segment()\n\\whitespace trim\n<$edit-text index=<<colourName>> tag=\"input\" placeholder=<<edit-colour-placeholder>> default=\"\"/>\n<br>\n<$edit-text index=<<colourName>> type=\"color\" tag=\"input\" class=\"tc-palette-manager-colour-input\"/>\n<$list filter=\"[<currentTiddler>getindex<colourName>removeprefix[<<]removesuffix[>>]] [<currentTiddler>getindex<colourName>removeprefix[<$]removesuffix[/>]]\" variable=\"ignore\">\n<$set name=\"state\" value={{{ [[$:/state/palettemanager/]addsuffix<currentTiddler>addsuffix[/]addsuffix<colourName>] }}}>\n<$wikify name=\"newColourName\" text=\"\"\"<$macrocall $name=\"resolve-colour\" macrocall={{{ [<currentTiddler>getindex<colourName>] }}}/>\"\"\">\n<$reveal state=<<state>> type=\"nomatch\" text=\"show\">\n<$button tooltip=<<colour-tooltip show>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" set=<<state>> setTo=\"show\">{{$:/core/images/down-arrow}}<$text text=<<newColourName>> class=\"tc-small-gap-left\"/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$button tooltip=<<colour-tooltip hide>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" actions=\"\"\"<$action-deletetiddler $tiddler=<<state>>/>\"\"\">{{$:/core/images/up-arrow}}<$text text=<<newColourName>> class=\"tc-small-gap-left\"/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$set name=\"colourName\" value=<<newColourName>>>\n<br>\n<<palette-manager-colour-row-segment>>\n<br><br>\n</$set>\n</$reveal>\n</$wikify>\n</$set>\n</$list>\n\\end\n\\define palette-manager-colour-row()\n\\whitespace trim\n<tr>\n<td>\n<span style=\"float:right;\">\n<$button tooltip={{$:/language/ControlPanel/Palette/Editor/Delete/Hint}} aria-label=<<lingo Delete/Hint>> class=\"tc-btn-invisible\" actions=<<delete-colour-index-actions>>>\n{{$:/core/images/delete-button}}</$button>\n</span>\n''<$macrocall $name=\"describePaletteColour\" colour=<<colourName>>/>''<br/>\n<$macrocall $name=\"colourName\" $output=\"text/plain\"/>\n</td>\n<td>\n<<palette-manager-colour-row-segment>>\n</td>\n</tr>\n\\end\n\\define palette-manager-table()\n\\whitespace trim\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]indexes[]]\" variable=\"colourName\">\n<$list filter=\"[<currentTiddler>indexes[]removeprefix<colourName>suffix[]]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[{$:/state/palettemanager/showexternal}removeprefix[yes]suffix[]]\" variable=\"ignore\">\n<<palette-manager-colour-row>>\n</$list>\n\"\"\">\n<<palette-manager-colour-row>>\n</$list>\n</$list>\n</tbody>\n</table>\n\\end\n<$set name=\"currentTiddler\" value={{$:/palette}}>\n\n<<lingo Prompt>> <$link to={{$:/palette}}><$macrocall $name=\"currentTiddler\" $output=\"text/plain\"/></$link>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\" variable=\"listItem\">\n<<lingo Prompt/Modified>>\n<$button message=\"tm-delete-tiddler\" param={{$:/palette}}><<lingo Reset/Caption>></$button>\n</$list>\n\n<$list filter=\"[all[current]is[shadow]!is[tiddler]]\" variable=\"listItem\">\n<<lingo Clone/Prompt>>\n</$list>\n\n<$button message=\"tm-new-tiddler\" param={{$:/palette}}><<lingo Clone/Caption>></$button>\n\n<$checkbox tiddler=\"$:/state/palettemanager/showexternal\" field=\"text\" checked=\"yes\" unchecked=\"no\"><span class=\"tc-small-gap-left\"><<lingo Names/External/Show>></span></$checkbox>\n\n<<palette-manager-table>>\n"
},
"$:/core/ui/PluginInfo": {
"title": "$:/core/ui/PluginInfo",
"text": "\\define localised-info-tiddler-title()\n$(currentTiddler)$/$(languageTitle)$/$(currentTab)$\n\\end\n\\define info-tiddler-title()\n$(currentTiddler)$/$(currentTab)$\n\\end\n\\define default-tiddler-title()\n$:/core/ui/PluginInfo/Default/$(currentTab)$\n\\end\n<$transclude tiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<default-tiddler-title>> mode=\"block\">\n{{$:/language/ControlPanel/Plugin/NoInfoFound/Hint}}\n</$transclude>\n</$transclude>\n</$transclude>\n</$transclude>\n"
},
"$:/core/ui/PluginInfo/Default/contents": {
"title": "$:/core/ui/PluginInfo/Default/contents",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link />\n</li>\n</$list>\n</ul>\n"
},
"$:/core/ui/PluginListItemTemplate": {
"title": "$:/core/ui/PluginListItemTemplate",
"text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}><$view field=\"description\"><$view field=\"title\"/></$view></$link>\n</div>"
},
"$:/core/ui/RootTemplate": {
"title": "$:/core/ui/RootTemplate",
"text": "<$transclude tiddler={{{ [{$:/layout}has[text]] ~[[$:/core/ui/PageTemplate]] }}} mode=\"inline\"/>\n\n"
},
"$:/core/ui/SearchResults": {
"title": "$:/core/ui/SearchResults",
"text": "<div class=\"tc-search-results\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\"\"\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/search/currentTab\" text=<<currentTab>>/>\"\"\" explicitState=\"$:/state/tab/search-results/sidebar\"/>\n\n</$list>\n\n</div>\n"
},
"$:/core/ui/SideBar/More": {
"title": "$:/core/ui/SideBar/More",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/More/Caption}}",
"text": "<div class=\"tc-more-sidebar\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\" default={{$:/config/DefaultMoreSidebarTab}} state=\"$:/state/tab/moresidebar\" class=\"tc-vertical tc-sidebar-tabs-more\" explicitState=\"$:/state/tab/moresidebar-1850697562\"/>\n</div>\n"
},
"$:/core/ui/SideBar/Open": {
"title": "$:/core/ui/SideBar/Open",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Open/Caption}}",
"text": "\\whitespace trim\n\\define lingo-base() $:/language/CloseAll/\n\n\\define drop-actions()\n<$action-listops $tiddler=<<tv-story-list>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define placeholder()\n<div class=\"tc-droppable-placeholder\"/>\n\\end\n\n\\define droppable-item(button)\n\\whitespace trim\n<$droppable actions=<<drop-actions>> enable=<<tv-allow-drag-and-drop>>>\n<<placeholder>>\n<div>\n$button$\n</div>\n</$droppable>\n\\end\n\n<div class=\"tc-sidebar-tab-open\">\n<$list filter=\"[list<tv-story-list>]\" history=<<tv-history-list>> storyview=\"pop\">\n<div class=\"tc-sidebar-tab-open-item\">\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=\"tc-btn-invisible tc-btn-mini tc-small-gap-right\">{{$:/core/images/close-button}}</$button><$link to={{!!title}}><$view field=\"title\"/></$link>\"\"\"/>\n</div>\n</$list>\n<$tiddler tiddler=\"\">\n<div>\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-all-tiddlers\" class=\"tc-btn-invisible tc-btn-mini\"><<lingo Button>></$button>\"\"\"/>\n</div>\n</$tiddler>\n</div>\n"
},
"$:/core/ui/SideBar/Recent": {
"title": "$:/core/ui/SideBar/Recent",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Recent/Caption}}",
"text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
},
"$:/core/ui/SideBar/Tools": {
"title": "$:/core/ui/SideBar/Tools",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Tools/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n\n<<lingo Basics/Version/Prompt>> <<version>>\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n\n<div style=\"position:relative;\" class={{{ [<listItem>encodeuricomponent[]addprefix[tc-btn-]] }}}>\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</div>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/SideBarLists": {
"title": "$:/core/ui/SideBarLists",
"text": "<$transclude tiddler=\"$:/core/ui/SideBarSegments/search\"/>\n\n<$transclude tiddler=\"$:/core/ui/SideBarSegments/tabs\"/>\n\n"
},
"$:/core/ui/SideBarSegments/page-controls": {
"title": "$:/core/ui/SideBarSegments/page-controls",
"tags": "$:/tags/SideBarSegment",
"text": "{{||$:/core/ui/PageTemplate/pagecontrols}}\n"
},
"$:/core/ui/SideBarSegments/search": {
"title": "$:/core/ui/SideBarSegments/search",
"tags": "$:/tags/SideBarSegment",
"text": "\\whitespace trim\n\n\\define count-popup-button()\n\\whitespace trim\n<$button popup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n<$list filter=\"[{$(searchTiddler)$}minlength{$:/config/Search/MinLength}limit[1]]\" variable=\"listItem\">\n<$vars userInput={{{ [<searchTiddler>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}} replaceRegexp=\"limit\\[\\d+\\]\">\n<$vars primaryListFilter={{{ [<configTiddler>get[first-search-filter]search-replace:g:regexp<replaceRegexp>,[]] }}} secondaryListFilter={{{ [<configTiddler>get[second-search-filter]search-replace:g:regexp<replaceRegexp>,[]] }}}>\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[subfilter<primaryListFilter>] [subfilter<secondaryListFilter>]\"/>\"\"\">\n{{$:/language/Search/Matches}}\n</$set>\n</$vars>\n</$vars>\n</$list>\n</$button>\n\\end\n\n\\define search-results-list()\n\\whitespace trim\n<$vars userInput={{$(searchTiddler)$}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}}>\n<$list filter=\"[<userInput>minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$tiddler tiddler=<<configTiddler>>>\n\n{{$:/core/ui/SearchResults}}\n\n</$tiddler>\n\n</$list>\n</$vars>\n\\end\n\n\\define cancel-search-actions() <$list filter=\"[<searchTiddler>get[text]!match{$:/temp/search}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/search]] [<searchTiddler>] [<searchListState>]\"/>\"\"\"><$action-setfield $tiddler=\"$:/temp/search\" text={{{ [<searchTiddler>get[text]] }}}/><$action-setfield $tiddler=\"$:/temp/search/refresh\" text=\"yes\"/></$list>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\n\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab/search-results/sidebar\" tag=\"$:/tags/SearchResults\" beforeafter=\"$beforeafter$\" defaultState={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/search/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define advanced-search-actions() <$action-setfield $tiddler=\"$:/temp/advancedsearch\" text={{$:/temp/search/input}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/search/input}}/><<delete-state-tiddlers>><$action-navigate $to=\"$:/AdvancedSearch\"/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/><$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\"[data-tiddler-title=\"$:/AdvancedSearch\"] .tc-search input\"\"\" preventScroll=\"true\"/><$action-deletetiddler $filter=\"$:/temp/search $:/temp/search/input $:/temp/search/refresh [<searchListState>]\"/>\n\n<div class=\"tc-sidebar-lists tc-sidebar-search\">\n\n<$vars editTiddler=\"$:/temp/search\" searchTiddler=\"$:/temp/search/input\" searchListState=<<qualify \"$:/state/search-list/selected-item\">>>\n<div class=\"tc-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$keyboard key=\"((advanced-search-sidebar))\" actions=<<advanced-search-actions>>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<editTiddler>> storeTitle=<<searchTiddler>> \n\t\tselectionStateTitle=<<searchListState>> refreshTitle=\"$:/temp/search/refresh\" type=\"search\" \n\t\ttag=\"input\" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify \"$:/state/popup/search-dropdown\">> \n\t\tclass=\"tc-popup-handle\" filterMinLength={{$:/config/Search/MinLength}} inputCancelActions=<<cancel-search-actions>> \n\t\tinputAcceptActions=<<input-accept-actions>> inputAcceptVariantActions=<<input-accept-variant-actions>> cancelPopups=\"yes\" \n\t\tconfigTiddlerFilter=\"[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]\"/>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n<$reveal state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n<$button tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n<<advanced-search-actions>>\n{{$:/core/images/advanced-search-button}}\n</$button>\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>><$action-sendmessage $message=\"tm-focus-selector\" $param=\".tc-search input\"/>\n{{$:/core/images/close-button}}\n</$button>\n<<count-popup-button>>\n</$reveal>\n<$reveal state=<<searchTiddler>> type=\"match\" text=\"\">\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/advanced-search-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown-wrapper\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown tc-search-drop-down tc-popup-handle\" state=<<qualify \"$:/state/popup/search-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n\n<<search-results-list>>\n\n</$reveal>\n\n</$reveal>\n\n</$vars>\n\n</div>\n"
},
"$:/core/ui/SideBarSegments/site-subtitle": {
"title": "$:/core/ui/SideBarSegments/site-subtitle",
"tags": "$:/tags/SideBarSegment",
"text": "<div class=\"tc-site-subtitle\">\n\n<$transclude tiddler=\"$:/SiteSubtitle\" mode=\"inline\"/>\n\n</div>\n"
},
"$:/core/ui/SideBarSegments/site-title": {
"title": "$:/core/ui/SideBarSegments/site-title",
"tags": "$:/tags/SideBarSegment",
"text": "<h1 class=\"tc-site-title\">\n\n<$transclude tiddler=\"$:/SiteTitle\" mode=\"inline\"/>\n\n</h1>\n"
},
"$:/core/ui/SideBarSegments/tabs": {
"title": "$:/core/ui/SideBarSegments/tabs",
"tags": "$:/tags/SideBarSegment",
"text": "<div class=\"tc-sidebar-lists tc-sidebar-tabs\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\" default={{$:/config/DefaultSidebarTab}} state=\"$:/state/tab/sidebar\" class=\"tc-sidebar-tabs-main\" explicitState=\"$:/state/tab/sidebar--595412856\"/>\n\n</div>\n"
},
"$:/core/ui/SwitcherModal": {
"title": "$:/core/ui/SwitcherModal",
"subtitle": "<$text text={{{[<switch>lookup[$:/language/Switcher/Subtitle/]]}}}/>",
"class": "tc-modal-centered",
"text": "<$tiddler tiddler={{{[<switch>lookup[$:/config/SwitcherTargets/]]}}}>\n\n\n<$transclude/>\n\n\n</$tiddler>"
},
"$:/TagManager": {
"title": "$:/TagManager",
"icon": "$:/core/images/tag-button",
"color": "#bbb",
"text": "\\define lingo-base() $:/language/TagManager/\n\\define iconEditorTab(type)\n\\whitespace trim\n<$link to=\"\"><<lingo Icons/None>></$link>\n<$list filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[sort[title]] +[$type$is[system]]\">\n<$link to={{!!title}}>\n<$transclude/> <$view field=\"title\"/>\n</$link>\n</$list>\n\\end\n\\define iconEditor(title)\n\\whitespace trim\n<div class=\"tc-drop-down-wrapper\">\n<$button popupTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal stateTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$linkcatcher actions=\"\"\"<$action-setfield $tiddler=<<__title__>> icon=<<navigateTo>>/>\"\"\">\n<<iconEditorTab type:\"!\">>\n<hr/>\n<<iconEditorTab type:\"\">>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>\n\\end\n\\define toggleButton(state)\n\\whitespace trim\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"closed\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"open\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"open\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"closed\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n\\end\n\\whitespace trim\n<table class=\"tc-tag-manager-table\">\n<tbody>\n<tr>\n<th><<lingo Colour/Heading>></th>\n<th class=\"tc-tag-manager-tag\"><<lingo Tag/Heading>></th>\n<th><<lingo Count/Heading>></th>\n<th><<lingo Icon/Heading>></th>\n<th><<lingo Info/Heading>></th>\n</tr>\n<$list filter=\"[tags[]!is[system]sort[title]]\">\n<tr>\n<td><$edit-text field=\"color\" tag=\"input\" type=\"color\"/></td>\n<td>{{||$:/core/ui/TagTemplate}}</td>\n<td><$count filter=\"[all[current]tagging[]]\"/></td>\n<td>\n<$macrocall $name=\"iconEditor\" title={{!!title}}/>\n</td>\n<td>\n<$macrocall $name=\"toggleButton\" state={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} /> \n</td>\n</tr>\n<tr>\n<td></td>\n<td colspan=\"4\">\n<$reveal stateTitle={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} type=\"match\" text=\"open\" default=\"\">\n<table>\n<tbody>\n<tr><td><<lingo Colour/Heading>></td><td><$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/></td></tr>\n<tr><td><<lingo Icon/Heading>></td><td><$edit-text field=\"icon\" tag=\"input\" size=\"45\"/></td></tr>\n</tbody>\n</table>\n</$reveal>\n</td>\n</tr>\n</$list>\n<tr>\n<td></td>\n<td style=\"position:relative;\">\n{{$:/core/ui/UntaggedTemplate}}\n</td>\n<td>\n<small class=\"tc-menu-list-count\"><$count filter=\"[untagged[]!is[system]] -[tags[]]\"/></small>\n</td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n"
},
"$:/core/ui/TagPickerTagTemplate": {
"title": "$:/core/ui/TagPickerTagTemplate",
"text": "\\whitespace trim\n<$button class=<<button-classes>> tag=\"a\" tooltip={{$:/language/EditTemplate/Tags/Add/Button/Hint}}>\n<$list filter=\"[<saveTiddler>minlength[1]]\">\n<$action-listops $tiddler=<<saveTiddler>> $field=<<tagField>> $subfilter=\"[<tag>]\"/>\n</$list>\n<$set name=\"currentTiddlerCSSEscaped\" value={{{ [<saveTiddler>escapecss[]] }}}>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=<<get-tagpicker-focus-selector>> preventScroll=\"true\"/>\n</$set>\n<<delete-tag-state-tiddlers>>\n<$list filter=\"[<refreshTitle>minlength[1]]\">\n<$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/>\n</$list>\n<<actions>>\n<$set name=\"backgroundColor\" value={{!!color}}>\n<$wikify name=\"foregroundColor\" text=\"\"\"<$macrocall $name=\"contrastcolour\" target={{!!color}} fallbackTarget=<<fallbackTarget>> colourA=<<colourA>> colourB=<<colourB>>/>\"\"\">\n<span class=\"tc-tag-label tc-btn-invisible\" style=<<tag-pill-styles>>>\n<$transclude tiddler={{!!icon}}/><$view field=\"title\" format=\"text\"/>\n</span>\n</$wikify>\n</$set>\n</$button>\n"
},
"$:/core/ui/TagTemplate": {
"title": "$:/core/ui/TagTemplate",
"text": "\\whitespace trim\n<span class=\"tc-tag-list-item\">\n<$set name=\"transclusion\" value=<<currentTiddler>>>\n<$macrocall $name=\"tag-pill-body\" tag=<<currentTiddler>> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag=\"\"\"$button\"\"\" element-attributes=\"\"\"popup=<<qualify \"$:/state/popup/tag\">> dragFilter='[all[current]tagging[]]' tag='span'\"\"\"/>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\" animate=\"yes\" class=\"tc-drop-down\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</$set>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]\" variable=\"listItem\"> \n<$transclude tiddler=<<listItem>>/> \n</$list>\n<hr>\n<$macrocall $name=\"list-tagged-draggable\" tag=<<currentTiddler>>/>\n</$reveal>\n</$set>\n</span>\n"
},
"$:/core/ui/TiddlerFieldTemplate": {
"title": "$:/core/ui/TiddlerFieldTemplate",
"text": "<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<listItem>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<listItem>>/>\n</td>\n</tr>"
},
"$:/core/ui/TiddlerFields": {
"title": "$:/core/ui/TiddlerFields",
"text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
},
"$:/core/ui/TiddlerInfo/Advanced/PluginInfo": {
"title": "$:/core/ui/TiddlerInfo/Advanced/PluginInfo",
"tags": "$:/tags/TiddlerInfo/Advanced",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<$list filter=\"[all[current]has[plugin-type]]\">\n\n! <<lingo Heading>>\n\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</li>\n</$list>\n</ul>\n\n</$list>\n"
},
"$:/core/ui/TiddlerInfo/Advanced/ShadowInfo": {
"title": "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo",
"tags": "$:/tags/TiddlerInfo/Advanced",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/ShadowInfo/\n<$set name=\"infoTiddler\" value=<<currentTiddler>>>\n\n''<<lingo Heading>>''\n\n<$list filter=\"[all[current]!is[shadow]]\">\n\n<<lingo NotShadow/Hint>>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]]\">\n\n<<lingo Shadow/Hint>>\n\n<$list filter=\"[all[current]shadowsource[]]\">\n\n<$set name=\"pluginTiddler\" value=<<currentTiddler>>>\n<<lingo Shadow/Source>>\n</$set>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\">\n\n<<lingo OverriddenShadow/Hint>>\n\n</$list>\n\n\n</$list>\n</$set>\n"
},
"$:/core/ui/TiddlerInfo/Advanced": {
"title": "$:/core/ui/TiddlerInfo/Advanced",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Advanced/Caption}}",
"text": "<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo/Advanced]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>> mode=\"block\"/>\n</$list>\n"
},
"$:/core/ui/TiddlerInfo/Fields": {
"title": "$:/core/ui/TiddlerInfo/Fields",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Fields/Caption}}",
"text": "<$transclude tiddler=\"$:/core/ui/TiddlerFields\"/>\n"
},
"$:/core/ui/TiddlerInfo/List": {
"title": "$:/core/ui/TiddlerInfo/List",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/List/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[list{!!title}]\" emptyMessage=<<lingo List/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/Listed": {
"title": "$:/core/ui/TiddlerInfo/Listed",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Listed/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]listed[]!is[system]]\" emptyMessage=<<lingo Listed/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/References": {
"title": "$:/core/ui/TiddlerInfo/References",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/References/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]backlinks[]sort[title]]\" emptyMessage=<<lingo References/Empty>> template=\"$:/core/ui/ListItemTemplate\">\n</$list>"
},
"$:/core/ui/TiddlerInfo/Tagging": {
"title": "$:/core/ui/TiddlerInfo/Tagging",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Tagging/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]tagging[]]\" emptyMessage=<<lingo Tagging/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/Tools": {
"title": "$:/core/ui/TiddlerInfo/Tools",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Tools/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/TiddlerInfo": {
"title": "$:/core/ui/TiddlerInfo",
"text": "<div style=\"position:relative;\">\n<div class=\"tc-tiddler-controls\" style=\"position:absolute;right:0;\">\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n</div>\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo]!has[draft.of]]\" default={{$:/config/TiddlerInfo/Default}}/>\n"
},
"$:/core/ui/TopBar/menu": {
"title": "$:/core/ui/TopBar/menu",
"tags": "$:/tags/TopRightBar",
"text": "<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]!match[no]]\" variable=\"ignore\">\n<$button set=\"$:/state/sidebar\" setTo=\"no\" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class=\"tc-btn-invisible tc-hide-sidebar-btn\">{{$:/core/images/chevron-right}}</$button>\n</$list>\n<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]match[no]]\" variable=\"ignore\">\n<$button set=\"$:/state/sidebar\" setTo=\"yes\" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class=\"tc-btn-invisible tc-show-sidebar-btn\">{{$:/core/images/chevron-left}}</$button>\n</$list>\n"
},
"$:/core/ui/UntaggedTemplate": {
"title": "$:/core/ui/UntaggedTemplate",
"text": "\\define lingo-base() $:/language/SideBar/\n<$button popup=<<qualify \"$:/state/popup/tag\">> class=\"tc-btn-invisible tc-untagged-label tc-tag-label\">\n<<lingo Tags/Untagged/Caption>>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[untagged[]!is[system]] -[tags[]] +[sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/body": {
"title": "$:/core/ui/ViewTemplate/body",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal tag=\"div\" class=\"tc-tiddler-body\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[current]!has[plugin-type]!field:hide-body[yes]]\">\n\n<$transclude>\n\n<$transclude tiddler=\"$:/language/MissingTiddler/Hint\"/>\n\n</$transclude>\n\n</$list>\n\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/classic": {
"title": "$:/core/ui/ViewTemplate/classic",
"tags": "$:/tags/ViewTemplate $:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/ClassicWarning/\n<$list filter=\"[all[current]type[text/x-tiddlywiki]]\">\n<div class=\"tc-message-box\">\n\n<<lingo Hint>>\n\n<$button set=\"!!type\" setTo=\"text/vnd.tiddlywiki\"><<lingo Upgrade/Caption>></$button>\n\n</div>\n</$list>\n"
},
"$:/core/ui/ViewTemplate/import": {
"title": "$:/core/ui/ViewTemplate/import",
"tags": "$:/tags/ViewTemplate",
"text": "\\define lingo-base() $:/language/Import/\n\n\\define buttons()\n<$button message=\"tm-delete-tiddler\" param=<<currentTiddler>>><<lingo Listing/Cancel/Caption>></$button>\n<$button message=\"tm-perform-import\" param=<<currentTiddler>>><<lingo Listing/Import/Caption>></$button>\n<<lingo Listing/Preview>> <$select tiddler=\"$:/state/importpreviewtype\" default=\"$:/core/ui/ImportPreviews/Text\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ImportPreview]!has[draft.of]]\">\n<option value=<<currentTiddler>>>{{!!caption}}</option>\n</$list>\n</$select>\n\\end\n\n<$list filter=\"[all[current]field:plugin-type[import]]\">\n\n<div class=\"tc-import\">\n\n<<lingo Listing/Hint>>\n\n<<buttons>>\n\n{{||$:/core/ui/ImportListing}}\n\n<<buttons>>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/ViewTemplate/plugin": {
"title": "$:/core/ui/ViewTemplate/plugin",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal tag=\"div\" class=\"tc-tiddler-plugin-info\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[current]has[plugin-type]] -[all[current]field:plugin-type[import]]\">\n<$set name=\"plugin-type\" value={{!!plugin-type}}>\n<$set name=\"default-popup-state\" value=\"yes\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n{{||$:/core/ui/Components/plugin-info}}\n</$set>\n</$set>\n</$set>\n</$list>\n</$reveal>"
},
"$:/core/ui/ViewTemplate/subtitle": {
"title": "$:/core/ui/ViewTemplate/subtitle",
"tags": "$:/tags/ViewTemplate",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}} />\n<$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/tags": {
"title": "$:/core/ui/ViewTemplate/tags",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-tags-wrapper\"><$list filter=\"[all[current]tags[]sort[title]]\" template=\"$:/core/ui/TagTemplate\" storyview=\"pop\"/></div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/title": {
"title": "$:/core/ui/ViewTemplate/title",
"tags": "$:/tags/ViewTemplate",
"text": "\\whitespace trim\n\\define title-styles()\nfill:$(foregroundColor)$;\n\\end\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<span class=\"tc-tiddler-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\"><$transclude tiddler=<<listItem>>/></$set></$reveal></$list>\n</span>\n<$set name=\"tv-wikilinks\" value={{$:/config/Tiddlers/TitleLinks}}>\n<$link>\n<$set name=\"foregroundColor\" value={{!!color}}>\n<$list filter=\"[all[current]has[icon]]~[[$:/config/DefaultTiddlerIcon]has[text]]\">\n<span class=\"tc-tiddler-title-icon\" style=<<title-styles>>>\n<$transclude tiddler={{!!icon}}>\n<$transclude tiddler={{$:/config/DefaultTiddlerIcon}}/>\n</$transclude>\n</span>\n</$list>\n</$set>\n<$list filter=\"[all[current]removeprefix[$:/]]\">\n<h2 class=\"tc-title\" title={{$:/language/SystemTiddler/Tooltip}}>\n<span class=\"tc-system-title-prefix\">$:/</span><$text text=<<currentTiddler>>/>\n</h2>\n</$list>\n<$list filter=\"[all[current]!prefix[$:/]]\">\n<h2 class=\"tc-title\">\n<$view field=\"title\"/>\n</h2>\n</$list>\n</$link>\n</$set>\n</div>\n\n<$reveal type=\"nomatch\" text=\"\" default=\"\" state=<<tiddlerInfoState>> class=\"tc-tiddler-info tc-popup-handle\" animate=\"yes\" retain=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfoSegment]!has[draft.of]] [[$:/core/ui/TiddlerInfo]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>> mode=\"block\"/></$list>\n\n</$reveal>\n</div>"
},
"$:/core/ui/ViewTemplate/unfold": {
"title": "$:/core/ui/ViewTemplate/unfold",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal tag=\"div\" type=\"nomatch\" state=\"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar\" text=\"hide\">\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=\"tc-fold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-up}}\n</$button>\n</$reveal>\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"show\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=\"tc-unfold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate": {
"title": "$:/core/ui/ViewTemplate",
"text": "\\define folded-state()\n$:/state/folded/$(currentTiddler)$\n\\end\n\\define cancel-delete-tiddler-actions(message) <$action-sendmessage $message=\"tm-$message$-tiddler\"/>\n\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$vars storyTiddler=<<currentTiddler>> tiddlerInfoState=<<qualify \"$:/state/popup/tiddler-info\">>><div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-view-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[shadow]is[tiddler]then[tc-tiddler-overridden-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!has[draft.of]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>>/></$list>\n</div>\n</$vars>\n"
},
"$:/core/ui/Buttons/clone": {
"title": "$:/core/ui/Buttons/clone",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/clone-button}} {{$:/language/Buttons/Clone/Caption}}",
"description": "{{$:/language/Buttons/Clone/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-new-tiddler\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/Clone/Hint}} aria-label={{$:/language/Buttons/Clone/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/clone-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Clone/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/close-others": {
"title": "$:/core/ui/Buttons/close-others",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/close-others-button}} {{$:/language/Buttons/CloseOthers/Caption}}",
"description": "{{$:/language/Buttons/CloseOthers/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-close-other-tiddlers\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/CloseOthers/Hint}} aria-label={{$:/language/Buttons/CloseOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/CloseOthers/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/close": {
"title": "$:/core/ui/Buttons/close",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/close-button}} {{$:/language/Buttons/Close/Caption}}",
"description": "{{$:/language/Buttons/Close/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Close/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/edit": {
"title": "$:/core/ui/Buttons/edit",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/edit-button}} {{$:/language/Buttons/Edit/Caption}}",
"description": "{{$:/language/Buttons/Edit/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-edit-tiddler\" tooltip={{$:/language/Buttons/Edit/Hint}} aria-label={{$:/language/Buttons/Edit/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/edit-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Edit/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/export-tiddler": {
"title": "$:/core/ui/Buttons/export-tiddler",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportTiddler/Caption}}",
"description": "{{$:/language/Buttons/ExportTiddler/Hint}}",
"text": "\\define makeExportFilter()\n[[$(currentTiddler)$]]\n\\end\n<$macrocall $name=\"exportButton\" exportFilter=<<makeExportFilter>> lingoBase=\"$:/language/Buttons/ExportTiddler/\" baseFilename=<<currentTiddler>>/>"
},
"$:/core/ui/Buttons/fold-bar": {
"title": "$:/core/ui/Buttons/fold-bar",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/chevron-up}} {{$:/language/Buttons/Fold/FoldBar/Caption}}",
"description": "{{$:/language/Buttons/Fold/FoldBar/Hint}}",
"text": "<!-- This dummy toolbar button is here to allow visibility of the fold-bar to be controlled as if it were a toolbar button -->"
},
"$:/core/ui/Buttons/fold-others": {
"title": "$:/core/ui/Buttons/fold-others",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/fold-others-button}} {{$:/language/Buttons/FoldOthers/Caption}}",
"description": "{{$:/language/Buttons/FoldOthers/Hint}}",
"text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/FoldOthers/Hint}} aria-label={{$:/language/Buttons/FoldOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-other-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/FoldOthers/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/fold": {
"title": "$:/core/ui/Buttons/fold",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/fold-button}} {{$:/language/Buttons/Fold/Caption}}",
"description": "{{$:/language/Buttons/Fold/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Fold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Unfold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/core/ui/Buttons/info": {
"title": "$:/core/ui/Buttons/info",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/info-button}} {{$:/language/Buttons/Info/Caption}}",
"description": "{{$:/language/Buttons/Info/Hint}}",
"text": "\\whitespace trim\n\\define button-content()\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/info-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Info/Caption}}/>\n</span>\n</$list>\n\\end\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"popup\">\n<$button popup=<<tiddlerInfoState>> tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$reveal state=<<tiddlerInfoState>> type=\"match\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"yes\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=<<tiddlerInfoState>> type=\"nomatch\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n</$reveal>"
},
"$:/core/ui/Buttons/more-tiddler-actions": {
"title": "$:/core/ui/Buttons/more-tiddler-actions",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/More/Caption}}/>\n</span>\n</$list>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] -[[$:/core/ui/Buttons/more-tiddler-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
},
"$:/core/ui/Buttons/new-here": {
"title": "$:/core/ui/Buttons/new-here",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/new-here-button}} {{$:/language/Buttons/NewHere/Caption}}",
"description": "{{$:/language/Buttons/NewHere/Hint}}",
"text": "\\whitespace trim\n\\define newHereActions()\n<$set name=\"tags\" filter=\"[<currentTiddler>] [{$:/config/NewTiddler/Tags}]\">\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<tags>>/>\n</$set>\n\\end\n\\define newHereButton()\n<$button actions=<<newHereActions>> tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-here-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewHere/Caption}}/>\n</span>\n</$list>\n</$button>\n\\end\n<<newHereButton>>\n"
},
"$:/core/ui/Buttons/new-journal-here": {
"title": "$:/core/ui/Buttons/new-journal-here",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournalHere/Caption}}",
"description": "{{$:/language/Buttons/NewJournalHere/Hint}}",
"text": "\\whitespace trim\n\\define journalButtonTags()\n[[$(currentTiddlerTag)$]] $(journalTags)$\n\\end\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}} aria-label={{$:/language/Buttons/NewJournalHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewJournalHere/Caption}}/>\n</span>\n</$list>\n</$wikify>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags}}>\n<$set name=\"currentTiddlerTag\" value=<<currentTiddler>>>\n<<journalButton>>\n</$set>\n</$set>\n</$set>\n"
},
"$:/core/ui/Buttons/open-window": {
"title": "$:/core/ui/Buttons/open-window",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/open-window}} {{$:/language/Buttons/OpenWindow/Caption}}",
"description": "{{$:/language/Buttons/OpenWindow/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-open-window\" tooltip={{$:/language/Buttons/OpenWindow/Hint}} aria-label={{$:/language/Buttons/OpenWindow/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/open-window}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/OpenWindow/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/permalink": {
"title": "$:/core/ui/Buttons/permalink",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/permalink-button}} {{$:/language/Buttons/Permalink/Caption}}",
"description": "{{$:/language/Buttons/Permalink/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-permalink\" tooltip={{$:/language/Buttons/Permalink/Hint}} aria-label={{$:/language/Buttons/Permalink/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/permalink-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permalink/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/permaview": {
"title": "$:/core/ui/Buttons/permaview",
"tags": "$:/tags/ViewToolbar $:/tags/PageControls",
"caption": "{{$:/core/images/permaview-button}} {{$:/language/Buttons/Permaview/Caption}}",
"description": "{{$:/language/Buttons/Permaview/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-permaview\" tooltip={{$:/language/Buttons/Permaview/Hint}} aria-label={{$:/language/Buttons/Permaview/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/permaview-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permaview/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/DefaultTiddlers": {
"title": "$:/DefaultTiddlers",
"text": "GettingStarted\n"
},
"$:/temp/advancedsearch": {
"title": "$:/temp/advancedsearch",
"text": ""
},
"$:/snippets/allfields": {
"title": "$:/snippets/allfields",
"text": "\\define renderfield(title)\n<tr class=\"tc-view-field\"><td class=\"tc-view-field-name\">''$title$'':</td><td class=\"tc-view-field-value\">//{{$:/language/Docs/Fields/$title$}}//</td></tr>\n\\end\n<table class=\"tc-view-field-table\"><tbody><$list filter=\"[fields[]sort[title]]\" variable=\"listItem\"><$macrocall $name=\"renderfield\" title=<<listItem>>/></$list>\n</tbody></table>\n"
},
"$:/config/AnimationDuration": {
"title": "$:/config/AnimationDuration",
"text": "400"
},
"$:/config/AutoFocus": {
"title": "$:/config/AutoFocus",
"text": "title"
},
"$:/config/AutoSave": {
"title": "$:/config/AutoSave",
"text": "yes"
},
"$:/config/BitmapEditor/Colour": {
"title": "$:/config/BitmapEditor/Colour",
"text": "#444"
},
"$:/config/BitmapEditor/ImageSizes": {
"title": "$:/config/BitmapEditor/ImageSizes",
"text": "[[62px 100px]] [[100px 62px]] [[124px 200px]] [[200px 124px]] [[248px 400px]] [[371px 600px]] [[400px 248px]] [[556px 900px]] [[600px 371px]] [[742px 1200px]] [[900px 556px]] [[1200px 742px]]"
},
"$:/config/BitmapEditor/LineWidth": {
"title": "$:/config/BitmapEditor/LineWidth",
"text": "3px"
},
"$:/config/BitmapEditor/LineWidths": {
"title": "$:/config/BitmapEditor/LineWidths",
"text": "0.25px 0.5px 1px 2px 3px 4px 6px 8px 10px 16px 20px 28px 40px 56px 80px"
},
"$:/config/BitmapEditor/Opacities": {
"title": "$:/config/BitmapEditor/Opacities",
"text": "0.01 0.025 0.05 0.075 0.1 0.15 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0"
},
"$:/config/BitmapEditor/Opacity": {
"title": "$:/config/BitmapEditor/Opacity",
"text": "1.0"
},
"$:/config/DefaultMoreSidebarTab": {
"title": "$:/config/DefaultMoreSidebarTab",
"text": "$:/core/ui/MoreSideBar/Tags"
},
"$:/config/DefaultSidebarTab": {
"title": "$:/config/DefaultSidebarTab",
"text": "$:/core/ui/SideBar/Open"
},
"$:/config/DownloadSaver/AutoSave": {
"title": "$:/config/DownloadSaver/AutoSave",
"text": "no"
},
"$:/config/Drafts/TypingTimeout": {
"title": "$:/config/Drafts/TypingTimeout",
"text": "400"
},
"$:/config/EditMode/fieldname-filter": {
"title": "$:/config/EditMode/fieldname-filter",
"first-search-filter": "[!is[shadow]!is[system]fields[]search:title<userInput>sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type",
"second-search-filter": "[fields[]search:title<userInput>sort[]] -[!is[shadow]!is[system]fields[]]"
},
"$:/config/EditTabIndex": {
"title": "$:/config/EditTabIndex",
"text": "1\n"
},
"$:/config/EditTemplateFields/Visibility/title": {
"title": "$:/config/EditTemplateFields/Visibility/title",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/tags": {
"title": "$:/config/EditTemplateFields/Visibility/tags",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/text": {
"title": "$:/config/EditTemplateFields/Visibility/text",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/creator": {
"title": "$:/config/EditTemplateFields/Visibility/creator",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/created": {
"title": "$:/config/EditTemplateFields/Visibility/created",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/modified": {
"title": "$:/config/EditTemplateFields/Visibility/modified",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/modifier": {
"title": "$:/config/EditTemplateFields/Visibility/modifier",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/type": {
"title": "$:/config/EditTemplateFields/Visibility/type",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/draft.title": {
"title": "$:/config/EditTemplateFields/Visibility/draft.title",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/draft.of": {
"title": "$:/config/EditTemplateFields/Visibility/draft.of",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/revision": {
"title": "$:/config/EditTemplateFields/Visibility/revision",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/bag": {
"title": "$:/config/EditTemplateFields/Visibility/bag",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6",
"text": "hide"
},
"$:/config/EditorTypeMappings/image/gif": {
"title": "$:/config/EditorTypeMappings/image/gif",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/webp": {
"title": "$:/config/EditorTypeMappings/image/webp",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/heic": {
"title": "$:/config/EditorTypeMappings/image/heic",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/heif": {
"title": "$:/config/EditorTypeMappings/image/heif",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/jpeg": {
"title": "$:/config/EditorTypeMappings/image/jpeg",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/jpg": {
"title": "$:/config/EditorTypeMappings/image/jpg",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/png": {
"title": "$:/config/EditorTypeMappings/image/png",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/x-icon": {
"title": "$:/config/EditorTypeMappings/image/x-icon",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/text/vnd.tiddlywiki": {
"title": "$:/config/EditorTypeMappings/text/vnd.tiddlywiki",
"text": "text"
},
"$:/config/Manager/Show": {
"title": "$:/config/Manager/Show",
"text": "tiddlers"
},
"$:/config/Manager/Filter": {
"title": "$:/config/Manager/Filter",
"text": ""
},
"$:/config/Manager/Order": {
"title": "$:/config/Manager/Order",
"text": "forward"
},
"$:/config/Manager/Sort": {
"title": "$:/config/Manager/Sort",
"text": "title"
},
"$:/config/Manager/System": {
"title": "$:/config/Manager/System",
"text": "system"
},
"$:/config/Manager/Tag": {
"title": "$:/config/Manager/Tag",
"text": ""
},
"$:/state/popup/manager/item/$:/Manager/ItemMain/RawText": {
"title": "$:/state/popup/manager/item/$:/Manager/ItemMain/RawText",
"text": "hide"
},
"$:/config/MissingLinks": {
"title": "$:/config/MissingLinks",
"text": "yes"
},
"$:/config/Navigation/UpdateAddressBar": {
"title": "$:/config/Navigation/UpdateAddressBar",
"text": "no"
},
"$:/config/Navigation/UpdateHistory": {
"title": "$:/config/Navigation/UpdateHistory",
"text": "no"
},
"$:/config/NewImageType": {
"title": "$:/config/NewImageType",
"text": "jpeg"
},
"$:/config/OfficialPluginLibrary": {
"title": "$:/config/OfficialPluginLibrary",
"tags": "$:/tags/PluginLibrary",
"url": "https://tiddlywiki.com/library/v5.1.23/index.html",
"caption": "{{$:/language/OfficialPluginLibrary}}",
"text": "{{$:/language/OfficialPluginLibrary/Hint}}\n"
},
"$:/config/Navigation/openLinkFromInsideRiver": {
"title": "$:/config/Navigation/openLinkFromInsideRiver",
"text": "below"
},
"$:/config/Navigation/openLinkFromOutsideRiver": {
"title": "$:/config/Navigation/openLinkFromOutsideRiver",
"text": "top"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all",
"text": "hide"
},
"$:/config/Performance/Instrumentation": {
"title": "$:/config/Performance/Instrumentation",
"text": "no"
},
"$:/config/RegisterPluginType/plugin": {
"title": "$:/config/RegisterPluginType/plugin",
"text": "yes"
},
"$:/config/RegisterPluginType/theme": {
"title": "$:/config/RegisterPluginType/theme",
"text": "no"
},
"$:/config/RegisterPluginType/language": {
"title": "$:/config/RegisterPluginType/language",
"text": "no"
},
"$:/config/RegisterPluginType/info": {
"title": "$:/config/RegisterPluginType/info",
"text": "yes"
},
"$:/config/RegisterPluginType/import": {
"title": "$:/config/RegisterPluginType/import",
"text": "no"
},
"$:/config/SaveWikiButton/Template": {
"title": "$:/config/SaveWikiButton/Template",
"text": "$:/core/save/all"
},
"$:/config/SaverFilter": {
"title": "$:/config/SaverFilter",
"text": "[all[]] -[prefix[$:/HistoryList]] -[prefix[$:/StoryList]] -[status[pending]plugin-type[import]] -[[$:/isEncrypted]] -[[$:/UploadName]] -[prefix[$:/state/]] -[prefix[$:/temp/]]\n"
},
"$:/config/Search/AutoFocus": {
"title": "$:/config/Search/AutoFocus",
"text": "true"
},
"$:/config/Search/MinLength": {
"title": "$:/config/Search/MinLength",
"text": "3"
},
"$:/config/SearchResults/Default": {
"title": "$:/config/SearchResults/Default",
"text": "$:/core/ui/DefaultSearchResultList"
},
"$:/config/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]": {
"title": "$:/config/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]",
"text": "yes"
},
"$:/config/ShortcutInfo/add-field": {
"title": "$:/config/ShortcutInfo/add-field",
"text": "{{$:/language/EditTemplate/Fields/Add/Button/Hint}}"
},
"$:/config/ShortcutInfo/advanced-search": {
"title": "$:/config/ShortcutInfo/advanced-search",
"text": "{{$:/language/Buttons/AdvancedSearch/Hint}}"
},
"$:/config/ShortcutInfo/advanced-search-sidebar": {
"title": "$:/config/ShortcutInfo/advanced-search-sidebar",
"text": "{{$:/language/Shortcuts/Input/AdvancedSearch/Hint}}"
},
"$:/config/ShortcutInfo/bold": {
"title": "$:/config/ShortcutInfo/bold",
"text": "{{$:/language/Buttons/Bold/Hint}}"
},
"$:/config/ShortcutInfo/cancel-edit-tiddler": {
"title": "$:/config/ShortcutInfo/cancel-edit-tiddler",
"text": "{{$:/language/Buttons/Cancel/Hint}}"
},
"$:/config/ShortcutInfo/change-sidebar-layout": {
"title": "$:/config/ShortcutInfo/change-sidebar-layout",
"text": "{{$:/language/Shortcuts/SidebarLayout/Hint}}"
},
"$:/config/ShortcutInfo/delete-field": {
"title": "$:/config/ShortcutInfo/delete-field",
"text": "{{$:/language/EditTemplate/Field/Remove/Hint}}"
},
"$:/config/ShortcutInfo/excise": {
"title": "$:/config/ShortcutInfo/excise",
"text": "{{$:/language/Buttons/Excise/Hint}}"
},
"$:/config/ShortcutInfo/heading-1": {
"title": "$:/config/ShortcutInfo/heading-1",
"text": "{{$:/language/Buttons/Heading1/Hint}}"
},
"$:/config/ShortcutInfo/heading-2": {
"title": "$:/config/ShortcutInfo/heading-2",
"text": "{{$:/language/Buttons/Heading2/Hint}}"
},
"$:/config/ShortcutInfo/heading-3": {
"title": "$:/config/ShortcutInfo/heading-3",
"text": "{{$:/language/Buttons/Heading3/Hint}}"
},
"$:/config/ShortcutInfo/heading-4": {
"title": "$:/config/ShortcutInfo/heading-4",
"text": "{{$:/language/Buttons/Heading4/Hint}}"
},
"$:/config/ShortcutInfo/heading-5": {
"title": "$:/config/ShortcutInfo/heading-5",
"text": "{{$:/language/Buttons/Heading5/Hint}}"
},
"$:/config/ShortcutInfo/heading-6": {
"title": "$:/config/ShortcutInfo/heading-6",
"text": "{{$:/language/Buttons/Heading6/Hint}}"
},
"$:/config/ShortcutInfo/input-accept": {
"title": "$:/config/ShortcutInfo/input-accept",
"text": "{{$:/language/Shortcuts/Input/Accept/Hint}}"
},
"$:/config/ShortcutInfo/input-accept-variant": {
"title": "$:/config/ShortcutInfo/input-accept-variant",
"text": "{{$:/language/Shortcuts/Input/AcceptVariant/Hint}}"
},
"$:/config/ShortcutInfo/input-cancel": {
"title": "$:/config/ShortcutInfo/input-cancel",
"text": "{{$:/language/Shortcuts/Input/Cancel/Hint}}"
},
"$:/config/ShortcutInfo/input-down": {
"title": "$:/config/ShortcutInfo/input-down",
"text": "{{$:/language/Shortcuts/Input/Down/Hint}}"
},
"$:/config/ShortcutInfo/input-tab-left": {
"title": "$:/config/ShortcutInfo/input-tab-left",
"text": "{{$:/language/Shortcuts/Input/Tab-Left/Hint}}"
},
"$:/config/ShortcutInfo/input-tab-right": {
"title": "$:/config/ShortcutInfo/input-tab-right",
"text": "{{$:/language/Shortcuts/Input/Tab-Right/Hint}}"
},
"$:/config/ShortcutInfo/input-up": {
"title": "$:/config/ShortcutInfo/input-up",
"text": "{{$:/language/Shortcuts/Input/Up/Hint}}"
},
"$:/config/ShortcutInfo/italic": {
"title": "$:/config/ShortcutInfo/italic",
"text": "{{$:/language/Buttons/Italic/Hint}}"
},
"$:/config/ShortcutInfo/layout-switcher": {
"title": "$:/config/ShortcutInfo/layout-switcher",
"text": "{{$:/language/LayoutSwitcher/Description}}"
},
"$:/config/ShortcutInfo/link": {
"title": "$:/config/ShortcutInfo/link",
"text": "{{$:/language/Buttons/Link/Hint}}"
},
"$:/config/ShortcutInfo/linkify": {
"title": "$:/config/ShortcutInfo/linkify",
"text": "{{$:/language/Buttons/Linkify/Hint}}"
},
"$:/config/ShortcutInfo/list-bullet": {
"title": "$:/config/ShortcutInfo/list-bullet",
"text": "{{$:/language/Buttons/ListBullet/Hint}}"
},
"$:/config/ShortcutInfo/list-number": {
"title": "$:/config/ShortcutInfo/list-number",
"text": "{{$:/language/Buttons/ListNumber/Hint}}"
},
"$:/config/ShortcutInfo/mono-block": {
"title": "$:/config/ShortcutInfo/mono-block",
"text": "{{$:/language/Buttons/MonoBlock/Hint}}"
},
"$:/config/ShortcutInfo/mono-line": {
"title": "$:/config/ShortcutInfo/mono-line",
"text": "{{$:/language/Buttons/MonoLine/Hint}}"
},
"$:/config/ShortcutInfo/new-image": {
"title": "$:/config/ShortcutInfo/new-image",
"text": "{{$:/language/Buttons/NewImage/Hint}}"
},
"$:/config/ShortcutInfo/new-journal": {
"title": "$:/config/ShortcutInfo/new-journal",
"text": "{{$:/language/Buttons/NewJournal/Hint}}"
},
"$:/config/ShortcutInfo/new-tiddler": {
"title": "$:/config/ShortcutInfo/new-tiddler",
"text": "{{$:/language/Buttons/NewTiddler/Hint}}"
},
"$:/config/ShortcutInfo/picture": {
"title": "$:/config/ShortcutInfo/picture",
"text": "{{$:/language/Buttons/Picture/Hint}}"
},
"$:/config/ShortcutInfo/preview": {
"title": "$:/config/ShortcutInfo/preview",
"text": "{{$:/language/Buttons/Preview/Hint}}"
},
"$:/config/ShortcutInfo/quote": {
"title": "$:/config/ShortcutInfo/quote",
"text": "{{$:/language/Buttons/Quote/Hint}}"
},
"$:/config/ShortcutInfo/save-tiddler": {
"title": "$:/config/ShortcutInfo/save-tiddler",
"text": "{{$:/language/Buttons/Save/Hint}}"
},
"$:/config/ShortcutInfo/save-wiki": {
"title": "$:/config/ShortcutInfo/save-wiki",
"text": "{{$:/language/Buttons/SaveWiki/Hint}}"
},
"$:/config/ShortcutInfo/sidebar-search": {
"title": "$:/config/ShortcutInfo/sidebar-search",
"text": "{{$:/language/Buttons/SidebarSearch/Hint}}"
},
"$:/config/ShortcutInfo/stamp": {
"title": "$:/config/ShortcutInfo/stamp",
"text": "{{$:/language/Buttons/Stamp/Hint}}"
},
"$:/config/ShortcutInfo/strikethrough": {
"title": "$:/config/ShortcutInfo/strikethrough",
"text": "{{$:/language/Buttons/Strikethrough/Hint}}"
},
"$:/config/ShortcutInfo/subscript": {
"title": "$:/config/ShortcutInfo/subscript",
"text": "{{$:/language/Buttons/Subscript/Hint}}"
},
"$:/config/ShortcutInfo/superscript": {
"title": "$:/config/ShortcutInfo/superscript",
"text": "{{$:/language/Buttons/Superscript/Hint}}"
},
"$:/config/ShortcutInfo/toggle-sidebar": {
"title": "$:/config/ShortcutInfo/toggle-sidebar",
"text": "{{$:/language/Buttons/ToggleSidebar/Hint}}"
},
"$:/config/ShortcutInfo/transcludify": {
"title": "$:/config/ShortcutInfo/transcludify",
"text": "{{$:/language/Buttons/Transcludify/Hint}}"
},
"$:/config/ShortcutInfo/underline": {
"title": "$:/config/ShortcutInfo/underline",
"text": "{{$:/language/Buttons/Underline/Hint}}"
},
"$:/config/SwitcherTargets/layout": {
"title": "$:/config/SwitcherTargets/layout",
"text": "$:/snippets/LayoutSwitcher"
},
"$:/config/SwitcherTargets/language": {
"title": "$:/config/SwitcherTargets/language",
"text": "$:/snippets/languageswitcher"
},
"$:/config/SwitcherTargets/palette": {
"title": "$:/config/SwitcherTargets/palette",
"text": "$:/core/ui/ControlPanel/Palette"
},
"$:/config/SwitcherTargets/theme": {
"title": "$:/config/SwitcherTargets/theme",
"text": "$:/core/ui/ControlPanel/Theme"
},
"$:/config/SyncFilter": {
"title": "$:/config/SyncFilter",
"text": "[is[tiddler]] -[[$:/core]] -[[$:/library/sjcl.js]] -[prefix[$:/boot/]] -[prefix[$:/HistoryList]] -[status[pending]plugin-type[import]] -[[$:/isEncrypted]] -[prefix[$:/status/]] -[prefix[$:/state/]] -[prefix[$:/temp/]]\n"
},
"$:/config/SyncSystemTiddlersFromServer": {
"title": "$:/config/SyncSystemTiddlersFromServer",
"text": "no"
},
"$:/config/Tags/MinLength": {
"title": "$:/config/Tags/MinLength",
"text": "0"
},
"$:/config/TextEditor/EditorHeight/Height": {
"title": "$:/config/TextEditor/EditorHeight/Height",
"text": "400px"
},
"$:/config/TextEditor/EditorHeight/Mode": {
"title": "$:/config/TextEditor/EditorHeight/Mode",
"text": "auto"
},
"$:/config/TiddlerInfo/Default": {
"title": "$:/config/TiddlerInfo/Default",
"text": "$:/core/ui/TiddlerInfo/Fields"
},
"$:/config/TiddlerInfo/Mode": {
"title": "$:/config/TiddlerInfo/Mode",
"text": "popup"
},
"$:/config/Tiddlers/TitleLinks": {
"title": "$:/config/Tiddlers/TitleLinks",
"text": "no"
},
"$:/config/Toolbar/ButtonClass": {
"title": "$:/config/Toolbar/ButtonClass",
"text": "tc-btn-invisible"
},
"$:/config/Toolbar/Icons": {
"title": "$:/config/Toolbar/Icons",
"text": "yes"
},
"$:/config/Toolbar/Text": {
"title": "$:/config/Toolbar/Text",
"text": "no"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions",
"text": "show"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others",
"text": "hide"
},
"$:/config/shortcuts-mac/bold": {
"title": "$:/config/shortcuts-mac/bold",
"text": "meta-B"
},
"$:/config/shortcuts-mac/input-tab-left": {
"title": "$:/config/shortcuts-mac/input-tab-left",
"text": "ctrl-Left"
},
"$:/config/shortcuts-mac/input-tab-right": {
"title": "$:/config/shortcuts-mac/input-tab-right",
"text": "ctrl-Right"
},
"$:/config/shortcuts-mac/italic": {
"title": "$:/config/shortcuts-mac/italic",
"text": "meta-I"
},
"$:/config/shortcuts-mac/underline": {
"title": "$:/config/shortcuts-mac/underline",
"text": "meta-U"
},
"$:/config/shortcuts-mac/new-image": {
"title": "$:/config/shortcuts-mac/new-image",
"text": "ctrl-I"
},
"$:/config/shortcuts-mac/new-journal": {
"title": "$:/config/shortcuts-mac/new-journal",
"text": "ctrl-J"
},
"$:/config/shortcuts-mac/new-tiddler": {
"title": "$:/config/shortcuts-mac/new-tiddler",
"text": "ctrl-N"
},
"$:/config/shortcuts-mac/save-wiki": {
"title": "$:/config/shortcuts-mac/save-wiki",
"text": "meta-S"
},
"$:/config/shortcuts-not-mac/bold": {
"title": "$:/config/shortcuts-not-mac/bold",
"text": "ctrl-B"
},
"$:/config/shortcuts-not-mac/italic": {
"title": "$:/config/shortcuts-not-mac/italic",
"text": "ctrl-I"
},
"$:/config/shortcuts-not-mac/underline": {
"title": "$:/config/shortcuts-not-mac/underline",
"text": "ctrl-U"
},
"$:/config/shortcuts-not-mac/new-image": {
"title": "$:/config/shortcuts-not-mac/new-image",
"text": "alt-I"
},
"$:/config/shortcuts-not-mac/new-journal": {
"title": "$:/config/shortcuts-not-mac/new-journal",
"text": "alt-J"
},
"$:/config/shortcuts-not-mac/new-tiddler": {
"title": "$:/config/shortcuts-not-mac/new-tiddler",
"text": "alt-N"
},
"$:/config/shortcuts/add-field": {
"title": "$:/config/shortcuts/add-field",
"text": "enter"
},
"$:/config/shortcuts/advanced-search": {
"title": "$:/config/shortcuts/advanced-search",
"text": "ctrl-shift-A"
},
"$:/config/shortcuts/advanced-search-sidebar": {
"title": "$:/config/shortcuts/advanced-search-sidebar",
"text": "alt-Enter"
},
"$:/config/shortcuts/cancel-edit-tiddler": {
"title": "$:/config/shortcuts/cancel-edit-tiddler",
"text": "escape"
},
"$:/config/shortcuts/change-sidebar-layout": {
"title": "$:/config/shortcuts/change-sidebar-layout",
"text": "shift-alt-Down"
},
"$:/config/shortcuts/delete-field": {
"title": "$:/config/shortcuts/delete-field",
"text": "shift-alt-D"
},
"$:/config/shortcuts/excise": {
"title": "$:/config/shortcuts/excise",
"text": "ctrl-E"
},
"$:/config/shortcuts/sidebar-search": {
"title": "$:/config/shortcuts/sidebar-search",
"text": "ctrl-shift-F"
},
"$:/config/shortcuts/heading-1": {
"title": "$:/config/shortcuts/heading-1",
"text": "ctrl-1"
},
"$:/config/shortcuts/heading-2": {
"title": "$:/config/shortcuts/heading-2",
"text": "ctrl-2"
},
"$:/config/shortcuts/heading-3": {
"title": "$:/config/shortcuts/heading-3",
"text": "ctrl-3"
},
"$:/config/shortcuts/heading-4": {
"title": "$:/config/shortcuts/heading-4",
"text": "ctrl-4"
},
"$:/config/shortcuts/heading-5": {
"title": "$:/config/shortcuts/heading-5",
"text": "ctrl-5"
},
"$:/config/shortcuts/heading-6": {
"title": "$:/config/shortcuts/heading-6",
"text": "ctrl-6"
},
"$:/config/shortcuts/input-accept": {
"title": "$:/config/shortcuts/input-accept",
"text": "Enter"
},
"$:/config/shortcuts/input-accept-variant": {
"title": "$:/config/shortcuts/input-accept-variant",
"text": "ctrl-Enter"
},
"$:/config/shortcuts/input-cancel": {
"title": "$:/config/shortcuts/input-cancel",
"text": "Escape"
},
"$:/config/shortcuts/input-down": {
"title": "$:/config/shortcuts/input-down",
"text": "Down"
},
"$:/config/shortcuts/input-tab-left": {
"title": "$:/config/shortcuts/input-tab-left",
"text": "alt-Left"
},
"$:/config/shortcuts/input-tab-right": {
"title": "$:/config/shortcuts/input-tab-right",
"text": "alt-Right"
},
"$:/config/shortcuts/input-up": {
"title": "$:/config/shortcuts/input-up",
"text": "Up"
},
"$:/config/shortcuts/layout-switcher": {
"title": "$:/config/shortcuts/layout-switcher",
"text": "ctrl-shift-L"
},
"$:/config/shortcuts/link": {
"title": "$:/config/shortcuts/link",
"text": "ctrl-L"
},
"$:/config/shortcuts/linkify": {
"title": "$:/config/shortcuts/linkify",
"text": "alt-shift-L"
},
"$:/config/shortcuts/list-bullet": {
"title": "$:/config/shortcuts/list-bullet",
"text": "ctrl-shift-L"
},
"$:/config/shortcuts/list-number": {
"title": "$:/config/shortcuts/list-number",
"text": "ctrl-shift-N"
},
"$:/config/shortcuts/mono-block": {
"title": "$:/config/shortcuts/mono-block",
"text": "ctrl-shift-M"
},
"$:/config/shortcuts/mono-line": {
"title": "$:/config/shortcuts/mono-line",
"text": "ctrl-M"
},
"$:/config/shortcuts/picture": {
"title": "$:/config/shortcuts/picture",
"text": "ctrl-shift-I"
},
"$:/config/shortcuts/preview": {
"title": "$:/config/shortcuts/preview",
"text": "alt-P"
},
"$:/config/shortcuts/quote": {
"title": "$:/config/shortcuts/quote",
"text": "ctrl-Q"
},
"$:/config/shortcuts/save-tiddler": {
"title": "$:/config/shortcuts/save-tiddler",
"text": "ctrl+enter"
},
"$:/config/shortcuts/save-wiki": {
"title": "$:/config/shortcuts/save-wiki",
"text": "ctrl-S"
},
"$:/config/shortcuts/stamp": {
"title": "$:/config/shortcuts/stamp",
"text": "ctrl-S"
},
"$:/config/shortcuts/strikethrough": {
"title": "$:/config/shortcuts/strikethrough",
"text": "ctrl-T"
},
"$:/config/shortcuts/subscript": {
"title": "$:/config/shortcuts/subscript",
"text": "ctrl-shift-B"
},
"$:/config/shortcuts/superscript": {
"title": "$:/config/shortcuts/superscript",
"text": "ctrl-shift-P"
},
"$:/config/shortcuts/toggle-sidebar": {
"title": "$:/config/shortcuts/toggle-sidebar",
"text": "alt-shift-S"
},
"$:/config/shortcuts/transcludify": {
"title": "$:/config/shortcuts/transcludify",
"text": "alt-shift-T"
},
"$:/config/ui/EditTemplate": {
"title": "$:/config/ui/EditTemplate",
"text": "$:/core/ui/EditTemplate"
},
"$:/config/ui/ViewTemplate": {
"title": "$:/config/ui/ViewTemplate",
"text": "$:/core/ui/ViewTemplate"
},
"$:/config/WikiParserRules/Inline/wikilink": {
"title": "$:/config/WikiParserRules/Inline/wikilink",
"text": "enable"
},
"$:/snippets/currpalettepreview": {
"title": "$:/snippets/currpalettepreview",
"text": "\\define resolve-colour(macrocall)\n\\import $:/core/macros/utils\n\\whitespace trim\n<$wikify name=\"name\" text=\"\"\"$macrocall$\"\"\">\n<<name>>\n</$wikify>\n\\end\n\\define swatchStyle()\nbackground-color: $(swatchColour)$;\n\\end\n\\define swatch-inner()\n<$set name=\"swatchColour\" value={{##$(colourResolved)$}}>\n<$list filter=\"[<swatchColour>!prefix[<<colour ]!suffix[>>]]\" variable=\"ignore\">\n<div class=\"tc-swatch\" style=<<swatchStyle>> title=<<swatchTitle>>/>\n</$list>\n<$list filter=\"[<swatchColour>prefix[<<colour ]suffix[>>]]\" variable=\"ignore\">\n<$wikify name=\"colourResolved\" text=\"\"\"<$macrocall $name=\"resolve-colour\" macrocall=<<swatchColour>>/>\"\"\">\n<<swatch-inner>>\n</$wikify>\n</$list>\n</$set>\n\\end\n\\define swatch()\n<$set name=\"swatchColour\" value={{##$(colour)$}}>\n<$set name=\"swatchTitle\" value=<<colour>>>\n<$list filter=\"[<swatchColour>!prefix[<<colour ]!suffix[>>]]\" variable=\"ignore\">\n<div class=\"tc-swatch\" style=<<swatchStyle>> title=<<swatchTitle>>/>\n</$list>\n<$list filter=\"[<swatchColour>prefix[<<colour ]suffix[>>]]\" variable=\"ignore\">\n<$wikify name=\"colourResolved\" text=\"\"\"<$macrocall $name=\"resolve-colour\" macrocall=<<swatchColour>>/>\"\"\">\n<<swatch-inner>>\n</$wikify>\n</$list>\n</$set>\n</$set>\n\\end\n<div class=\"tc-swatches-horiz\"><$list filter=\"\nforeground\nbackground\nmuted-foreground\nprimary\npage-background\ntab-background\ntiddler-info-background\n\" variable=\"colour\"><<swatch>></$list></div>\n"
},
"$:/snippets/download-wiki-button": {
"title": "$:/snippets/download-wiki-button",
"text": "\\define lingo-base() $:/language/ControlPanel/Tools/Download/\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-download-file\" $param=\"$:/core/save/all\" filename=\"index.html\"/>\n<<lingo Full/Caption>> {{$:/core/images/save-button}}\n</$button>"
},
"$:/language": {
"title": "$:/language",
"text": "$:/languages/en-GB"
},
"$:/snippets/languageswitcher": {
"title": "$:/snippets/languageswitcher",
"text": "\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n\n<$linkcatcher to=\"$:/language\">\n<div class=\"tc-chooser tc-language-chooser\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<$set name=\"cls\" filter=\"[all[current]field:title{$:/language}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link>\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value=<<currentTiddler>>>\n<$transclude subtiddler=<<flag-title>>>\n<$list filter=\"[all[current]field:title[$:/languages/en-GB]]\">\n<$transclude tiddler=\"$:/languages/en-GB/icon\"/>\n</$list>\n</$transclude>\n</$set>\n</span>\n<$view field=\"description\">\n<$view field=\"name\">\n<$view field=\"title\"/>\n</$view>\n</$view>\n</$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
},
"$:/core/macros/CSS": {
"title": "$:/core/macros/CSS",
"tags": "$:/tags/Macro",
"text": "\\define colour(name)\n<$transclude tiddler={{$:/palette}} index=\"$name$\"><$transclude tiddler=\"$:/palettes/Vanilla\" index=\"$name$\"><$transclude tiddler=\"$:/config/DefaultColourMappings/$name$\"/></$transclude></$transclude>\n\\end\n\n\\define color(name)\n<<colour $name$>>\n\\end\n\n\\define box-shadow(shadow)\n``\n -webkit-box-shadow: $shadow$;\n -moz-box-shadow: $shadow$;\n box-shadow: $shadow$;\n``\n\\end\n\n\\define filter(filter)\n``\n -webkit-filter: $filter$;\n -moz-filter: $filter$;\n filter: $filter$;\n``\n\\end\n\n\\define transition(transition)\n``\n -webkit-transition: $transition$;\n -moz-transition: $transition$;\n transition: $transition$;\n``\n\\end\n\n\\define transform-origin(origin)\n``\n -webkit-transform-origin: $origin$;\n -moz-transform-origin: $origin$;\n transform-origin: $origin$;\n``\n\\end\n\n\\define background-linear-gradient(gradient)\n``\nbackground-image: linear-gradient($gradient$);\nbackground-image: -o-linear-gradient($gradient$);\nbackground-image: -moz-linear-gradient($gradient$);\nbackground-image: -webkit-linear-gradient($gradient$);\nbackground-image: -ms-linear-gradient($gradient$);\n``\n\\end\n\n\\define column-count(columns)\n``\n-moz-column-count: $columns$;\n-webkit-column-count: $columns$;\ncolumn-count: $columns$;\n``\n\\end\n\n\\define datauri(title)\n<$macrocall $name=\"makedatauri\" type={{$title$!!type}} text={{$title$}} _canonical_uri={{$title$!!_canonical_uri}}/>\n\\end\n\n\\define if-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-no-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-background-attachment(text)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" type=\"nomatch\" text=\"\">$text$</$reveal>\n\\end\n"
},
"$:/core/macros/colour-picker": {
"title": "$:/core/macros/colour-picker",
"tags": "$:/tags/Macro",
"text": "\\define colour-picker-update-recent()\n<$action-listops\n\t$tiddler=\"$:/config/ColourPicker/Recent\"\n\t$subfilter=\"$(colour-picker-value)$ [list[$:/config/ColourPicker/Recent]remove[$(colour-picker-value)$]] +[limit[8]]\"\n/>\n\\end\n\n\\define colour-picker-inner(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(colour-picker-value)$\"\"\">\n\n$(colour-picker-update-recent)$\n\n$actions$\n\n<span style=\"display:inline-block; background-color: $(colour-picker-value)$; width: 100%; height: 100%; border-radius: 50%;\"/>\n\n</$button>\n\\end\n\n\\define colour-picker-recent-inner(actions)\n<$set name=\"colour-picker-value\" value=\"$(recentColour)$\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\\end\n\n\\define colour-picker-recent(actions)\n{{$:/language/ColourPicker/Recent}} <$list filter=\"[list[$:/config/ColourPicker/Recent]]\" variable=\"recentColour\">\n<$macrocall $name=\"colour-picker-recent-inner\" actions=\"\"\"$actions$\"\"\"/></$list>\n\\end\n\n\\define colour-picker(actions)\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker-recent\" actions=\"\"\"$actions$\"\"\"/>\n\n---\n\n<$list filter=\"LightPink Pink Crimson LavenderBlush PaleVioletRed HotPink DeepPink MediumVioletRed Orchid Thistle Plum Violet Magenta Fuchsia DarkMagenta Purple MediumOrchid DarkViolet DarkOrchid Indigo BlueViolet MediumPurple MediumSlateBlue SlateBlue DarkSlateBlue Lavender GhostWhite Blue MediumBlue MidnightBlue DarkBlue Navy RoyalBlue CornflowerBlue LightSteelBlue LightSlateGrey SlateGrey DodgerBlue AliceBlue SteelBlue LightSkyBlue SkyBlue DeepSkyBlue LightBlue PowderBlue CadetBlue Azure LightCyan PaleTurquoise Cyan Aqua DarkTurquoise DarkSlateGrey DarkCyan Teal MediumTurquoise LightSeaGreen Turquoise Aquamarine MediumAquamarine MediumSpringGreen MintCream SpringGreen MediumSeaGreen SeaGreen Honeydew LightGreen PaleGreen DarkSeaGreen LimeGreen Lime ForestGreen Green DarkGreen Chartreuse LawnGreen GreenYellow DarkOliveGreen YellowGreen OliveDrab Beige LightGoldenrodYellow Ivory LightYellow Yellow Olive DarkKhaki LemonChiffon PaleGoldenrod Khaki Gold Cornsilk Goldenrod DarkGoldenrod FloralWhite OldLace Wheat Moccasin Orange PapayaWhip BlanchedAlmond NavajoWhite AntiqueWhite Tan BurlyWood Bisque DarkOrange Linen Peru PeachPuff SandyBrown Chocolate SaddleBrown Seashell Sienna LightSalmon Coral OrangeRed DarkSalmon Tomato MistyRose Salmon Snow LightCoral RosyBrown IndianRed Red Brown FireBrick DarkRed Maroon White WhiteSmoke Gainsboro LightGrey Silver DarkGrey Grey DimGrey Black\" variable=\"colour-picker-value\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\n---\n\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" tag=\"input\" default=\"\" placeholder=\"\"/>\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" type=\"color\" tag=\"input\"/>\n<$set name=\"colour-picker-value\" value={{$:/config/ColourPicker/New}}>\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\n</div>\n\n\\end\n"
},
"$:/core/macros/copy-to-clipboard": {
"title": "$:/core/macros/copy-to-clipboard",
"tags": "$:/tags/Macro",
"text": "\\define copy-to-clipboard(src,class:\"tc-btn-invisible\",style)\n<$button class=<<__class__>> style=<<__style__>> message=\"tm-copy-to-clipboard\" param=<<__src__>> tooltip={{$:/language/Buttons/CopyToClipboard/Hint}}>\n{{$:/core/images/copy-clipboard}} <$text text={{$:/language/Buttons/CopyToClipboard/Caption}}/>\n</$button>\n\\end\n\n\\define copy-to-clipboard-above-right(src,class:\"tc-btn-invisible\",style)\n<div style=\"position: relative;\">\n<div style=\"position: absolute; bottom: 0; right: 0;\">\n<$macrocall $name=\"copy-to-clipboard\" src=<<__src__>> class=<<__class__>> style=<<__style__>>/>\n</div>\n</div>\n\\end\n\n"
},
"$:/core/macros/diff": {
"title": "$:/core/macros/diff",
"tags": "$:/tags/Macro",
"text": "\\define compareTiddlerText(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle)\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>>>\n<$diff-text source=<<source>> dest=<<dest>>/>\n</$set>\n</$set>\n\\end\n\n\\define compareTiddlers(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle,exclude)\n<table class=\"tc-diff-tiddlers\">\n<tbody>\n<$set name=\"sourceFields\" filter=\"[<__sourceTiddlerTitle__>fields[]sort[]]\">\n<$set name=\"destFields\" filter=\"[<__destSubTiddlerTitle__>subtiddlerfields<__destTiddlerTitle__>sort[]]\">\n<$list filter=\"[enlist<sourceFields>] [enlist<destFields>] -[enlist<__exclude__>] +[sort[]]\" variable=\"fieldName\">\n<tr>\n<th>\n<$text text=<<fieldName>>/> \n</th>\n<td>\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>> field=<<fieldName>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>> field=<<fieldName>>>\n<$diff-text source=<<source>> dest=<<dest>>>\n</$diff-text>\n</$set>\n</$set>\n</td>\n</tr>\n</$list>\n</$set>\n</$set>\n</tbody>\n</table>\n\\end\n"
},
"$:/core/macros/dumpvariables": {
"title": "$:/core/macros/dumpvariables",
"tags": "$:/tags/Macro",
"text": "\\define dumpvariables()\n<ul>\n<$list filter=\"[variables[]]\" variable=\"varname\">\n<li>\n<strong><code><$text text=<<varname>>/></code></strong>:<br/>\n<$codeblock code={{{ [<varname>getvariable[]] }}}/>\n</li>\n</$list>\n</ul>\n\\end\n"
},
"$:/core/macros/export": {
"title": "$:/core/macros/export",
"tags": "$:/tags/Macro",
"text": "\\define exportButtonFilename(baseFilename)\n$baseFilename$$(extension)$\n\\end\n\n\\define exportButton(exportFilter:\"[!is[system]sort[title]]\",lingoBase,baseFilename:\"tiddlers\")\n<span class=\"tc-popup-keep\"><$button popup=<<qualify \"$:/state/popup/export\">> tooltip={{$lingoBase$Hint}} aria-label={{$lingoBase$Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/export-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$lingoBase$Caption}}/></span>\n</$list>\n</$button></span><$reveal state=<<qualify \"$:/state/popup/export\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$set name=\"count\" value={{{ [subfilter<__exportFilter__>count[]] }}}>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Exporter]]\">\n<$list filter=\"[<currentTiddler>has[condition]subfilter{!!condition}limit[1]] ~[<currentTiddler>!has[condition]then[true]]\" variable=\"ignore\">\n<$set name=\"extension\" value={{!!extension}}>\n<$button class=\"tc-btn-invisible\">\n<$action-sendmessage $message=\"tm-download-file\" $param=<<currentTiddler>> exportFilter=<<__exportFilter__>> filename=<<exportButtonFilename \"\"\"$baseFilename$\"\"\">>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/export\">>/>\n<$transclude field=\"description\"/>\n</$button>\n</$set>\n</$list>\n</$list>\n</$set>\n</div>\n</$reveal>\n\\end\n"
},
"$:/core/macros/image-picker": {
"title": "$:/core/macros/image-picker",
"created": "20170715180840889",
"modified": "20170715180914005",
"tags": "$:/tags/Macro",
"type": "text/vnd.tiddlywiki",
"text": "\\define image-picker-thumbnail(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(imageTitle)$\"\"\">\n$actions$\n<$transclude tiddler=<<imageTitle>>/>\n</$button>\n\\end\n\n\\define image-picker-list(filter,actions)\n<$list filter=\"\"\"$filter$\"\"\" variable=\"imageTitle\">\n<$macrocall $name=\"image-picker-thumbnail\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\\end\n\n\\define image-picker(actions,filter:\"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]$subfilter$sort[title]]\",subfilter:\"\")\n<div class=\"tc-image-chooser\">\n<$vars state-system=<<qualify \"$:/state/image-picker/system\">>>\n<$checkbox tiddler=<<state-system>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"hide\">\n{{$:/language/SystemTiddlers/Include/Prompt}}\n</$checkbox>\n<$reveal state=<<state-system>> type=\"match\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$ +[!is[system]]\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n<$reveal state=<<state-system>> type=\"nomatch\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n</$vars>\n</div>\n\\end\n\n\\define image-picker-include-tagged-images(actions)\n<$macrocall $name=\"image-picker\" filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n"
},
"$:/core/macros/keyboard-driven-input": {
"title": "$:/core/macros/keyboard-driven-input",
"tags": "$:/tags/Macro",
"text": "\\define change-input-tab(stateTitle,tag,beforeafter,defaultState,actions)\n<$set name=\"tabsList\" filter=\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]]\">\n<$vars currentState={{{ [<__stateTitle__>!is[missing]get[text]] ~[<__defaultState__>] }}} firstTab={{{ [enlist<tabsList>nth[1]] }}} lastTab={{{ [enlist<tabsList>last[]] }}}>\n<$set name=\"nextTab\" value={{{ [all[shadows+tiddlers]tag<__tag__>!has[draft.of]$beforeafter$<currentState>] ~[[$beforeafter$]removeprefix[after]suffix[]addprefix<firstTab>] ~[[$beforeafter$]removeprefix[before]suffix[]addprefix<lastTab>] }}}>\n<$action-setfield $tiddler=<<__stateTitle__>> text=<<nextTab>>/>\n$actions$\n</$set>\n</$vars>\n</$set>\n\\end\n\n\\define keyboard-input-actions()\n<$list filter=\"[<__index__>match[]]\">\n<$action-setfield $tiddler=<<__storeTitle__>> text={{{ [<__tiddler__>get<__field__>] }}}/>\n</$list>\n<$list filter=\"[<__index__>!match[]]\">\n<$action-setfield $tiddler=<<__storeTitle__>> text={{{ [<__tiddler__>getindex<__index__>] }}}/>\n</$list>\n\\end\n\n\\define input-next-actions-inner()\n<$list filter=\"[<nextItem>minlength[1]]\" variable=\"ignore\">\n<$action-setfield $tiddler=<<__selectionStateTitle__>> text=<<nextItem>>/>\n<$list filter=\"[<__index__>match[]]\">\n<$action-setfield $tiddler=<<__tiddler__>> $field=<<__field__>> $value={{{ [<nextItem>] +[splitregexp[(?:.(?!-))+$]] }}}/>\n</$list>\n<$list filter=\"[<__index__>!match[]]\">\n<$action-setfield $tiddler=<<__tiddler__>> $index=<<__index__>> $value={{{ [<nextItem>] +[splitregexp[(?:.(?!-))+$]] }}}/>\n</$list>\n<$action-setfield $tiddler=<<__refreshTitle__>> text=\"yes\"/>\n</$list>\n\\end\n\n\\define input-next-actions(afterOrBefore:\"after\",reverse:\"\")\n<$list filter=\"[<__storeTitle__>get[text]minlength<__filterMinLength__>] [<__filterMinLength__>match[0]] +[limit[1]]\" variable=\"ignore\">\n<$vars userInput={{{ [<__storeTitle__>get[text]] }}} selectedItem={{{ [<__selectionStateTitle__>get[text]] }}}>\n<$set name=\"configTiddler\" value={{{ [subfilter<__configTiddlerFilter__>] }}}>\n<$vars primaryListFilter={{{ [<configTiddler>get<__firstSearchFilterField__>] }}} secondaryListFilter={{{ [<configTiddler>get<__secondSearchFilterField__>] }}}>\n<$set name=\"filteredList\" filter=\"[subfilter<primaryListFilter>addsuffix[-primaryList]] =[subfilter<secondaryListFilter>addsuffix[-secondaryList]]\">\n<$vars nextItem={{{ [enlist<filteredList>$afterOrBefore$<selectedItem>] ~[enlist<filteredList>$reverse$nth[1]] }}} firstItem={{{ [enlist<filteredList>nth[1]] }}} lastItem={{{ [enlist<filteredList>last[]] }}}>\n<$list filter=\"[<selectedItem>match<firstItem>!match<lastItem>]\" variable=\"ignore\">\n<$set name=\"nextItem\" value={{{ [[$afterOrBefore$]match[before]then<userInput>addsuffix[-userInput]] ~[<nextItem>] }}}>\n<<input-next-actions-inner>>\n</$set>\n</$list>\n<$list filter=\"[<selectedItem>match<lastItem>!match<firstItem>]\" variable=\"ignore\">\n<$set name=\"nextItem\" value={{{ [[$afterOrBefore$]match[after]then<userInput>addsuffix[-userInput]] ~[<nextItem>] }}}>\n<<input-next-actions-inner>>\n</$set>\n</$list>\n<$list filter=\"[<selectedItem>match<firstItem>match<lastItem>]\" variable=\"ignore\">\n<$set name=\"nextItem\" value={{{ [<userInput>addsuffix[-userInput]] }}}>\n<<input-next-actions-inner>>\n</$set>\n</$list>\n<$list filter=\"[<selectedItem>!match<firstItem>!match<lastItem>]\" variable=\"ignore\">\n<<input-next-actions-inner>>\n</$list>\n</$vars>\n</$set>\n</$vars>\n</$set>\n</$vars>\n</$list>\n\\end\n\n\\define keyboard-driven-input(tiddler,storeTitle,field:\"text\",index:\"\",tag:\"input\",type,focus:\"\",inputAcceptActions,inputAcceptVariantActions,inputCancelActions,placeholder:\"\",default:\"\",class,focusPopup,rows,minHeight,tabindex,size,autoHeight,filterMinLength:\"0\",refreshTitle,selectionStateTitle,cancelPopups:\"\",configTiddlerFilter,firstSearchFilterField:\"first-search-filter\",secondSearchFilterField:\"second-search-filter\")\n\\whitespace trim\n<$keyboard key=\"((input-accept))\" actions=<<__inputAcceptActions__>>>\n<$keyboard key=\"((input-accept-variant))\" actions=<<__inputAcceptVariantActions__>>>\n<$keyboard key=\"((input-up))\" actions=<<input-next-actions \"before\" \"reverse[]\">>>\n<$keyboard key=\"((input-down))\" actions=<<input-next-actions>>>\n<$keyboard key=\"((input-cancel))\" actions=<<__inputCancelActions__>>>\n<$edit-text tiddler=<<__tiddler__>> field=<<__field__>> index=<<__index__>> \n\t\tinputActions=<<keyboard-input-actions>> tag=<<__tag__>> class=<<__class__>> \n\t\tplaceholder=<<__placeholder__>> default=<<__default__>> focusPopup=<<__focusPopup__>> \n\t\tfocus=<<__focus__>> type=<<__type__>> rows=<<__rows__>> minHeight=<<__minHeight__>> \n\t\ttabindex=<<__tabindex__>> size=<<__size__>> autoHeight=<<__autoHeight__>> \n\t\trefreshTitle=<<__refreshTitle__>> cancelPopups=<<__cancelPopups__>>/>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n\\end\n"
},
"$:/core/macros/lingo": {
"title": "$:/core/macros/lingo",
"tags": "$:/tags/Macro",
"text": "\\define lingo-base()\n$:/language/\n\\end\n\n\\define lingo(title)\n{{$(lingo-base)$$title$}}\n\\end\n"
},
"$:/core/macros/list": {
"title": "$:/core/macros/list",
"tags": "$:/tags/Macro",
"text": "\\define list-links(filter,type:\"ul\",subtype:\"li\",class:\"\",emptyMessage)\n\\whitespace trim\n<$type$ class=\"$class$\">\n<$list filter=\"$filter$\" emptyMessage=<<__emptyMessage__>>>\n<$subtype$>\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$subtype$>\n</$list>\n</$type$>\n\\end\n\n\\define list-links-draggable-drop-actions()\n<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define list-links-draggable(tiddler,field:\"list\",type:\"ul\",subtype:\"li\",class:\"\",itemTemplate)\n\\whitespace trim\n<span class=\"tc-links-draggable-list\">\n<$vars targetTiddler=\"\"\"$tiddler$\"\"\" targetField=\"\"\"$field$\"\"\">\n<$type$ class=\"$class$\">\n<$list filter=\"[list[$tiddler$!!$field$]]\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"\"\"$subtype$\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\"/>\n<div>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$transclude>\n</div>\n</$droppable>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"div\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\">\n{{$:/core/images/blank}}\n</div>\n<div style=\"height:0.5em;\"/>\n</$droppable>\n</$tiddler>\n</$type$>\n</$vars>\n</span>\n\\end\n\n\\define list-tagged-draggable-drop-actions(tag)\n<!-- Save the current ordering of the tiddlers with this tag -->\n<$set name=\"order\" filter=\"[<__tag__>tagging[]]\">\n<!-- Remove any list-after or list-before fields from the tiddlers with this tag -->\n<$list filter=\"[<__tag__>tagging[]]\">\n<$action-deletefield $field=\"list-before\"/>\n<$action-deletefield $field=\"list-after\"/>\n</$list>\n<!-- Save the new order to the Tag Tiddler -->\n<$action-listops $tiddler=<<__tag__>> $field=\"list\" $filter=\"+[enlist<order>] +[insertbefore:currentTiddler<actionTiddler>]\"/>\n<!-- Make sure the newly added item has the right tag -->\n<!-- Removing this line makes dragging tags within the dropdown work as intended -->\n<!--<$action-listops $tiddler=<<actionTiddler>> $tags=<<__tag__>>/>-->\n<!-- Using the following 5 lines as replacement makes dragging titles from outside into the dropdown apply the tag -->\n<$list filter=\"[<actionTiddler>!contains:tags<__tag__>]\">\n<$fieldmangler tiddler=<<actionTiddler>>>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<__tag__>>/>\n</$fieldmangler>\n</$list>\n</$set>\n\\end\n\n\\define list-tagged-draggable(tag,subFilter,emptyMessage,itemTemplate,elementTag:\"div\",storyview:\"\")\n\\whitespace trim\n<span class=\"tc-tagged-draggable-list\">\n<$set name=\"tag\" value=<<__tag__>>>\n<$list filter=\"[<__tag__>tagging[]$subFilter$]\" emptyMessage=<<__emptyMessage__>> storyview=<<__storyview__>>>\n<$elementTag$ class=\"tc-menu-list-item\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\n<$elementTag$>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</$transclude>\n</$elementTag$>\n</$droppable>\n</$elementTag$>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\n<$elementTag$ style=\"height:0.5em;\">\n</$elementTag$>\n</$droppable>\n</$tiddler>\n</$set>\n</span>\n\\end\n"
},
"$:/core/macros/tabs": {
"title": "$:/core/macros/tabs",
"tags": "$:/tags/Macro",
"text": "\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template,buttonTemplate,retain,actions,explicitState)\n<$set name=\"qualifiedState\" value=<<qualify \"$state$\">>>\n<$vars tabsState={{{ [<__explicitState__>minlength[1]] ~[<qualifiedState>] }}}>\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\" storyview=\"pop\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<tabsState>> setTo=<<currentTab>> default=\"$default$\" selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}}>\n<$tiddler tiddler=<<save-currentTiddler>>>\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude tiddler=\"$buttonTemplate$\" mode=\"inline\">\n<$transclude tiddler=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$transclude>\n</$set></$tiddler>$actions$</$button></$tiddler></$set></$list>\n</div>\n<div class=\"tc-tab-divider $class$\"/>\n<div class=\"tc-tab-content $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\">\n\n<$reveal type=\"match\" state=<<tabsState>> text=<<currentTab>> default=\"$default$\" retain=\"\"\"$retain$\"\"\">\n\n<$transclude tiddler=\"$template$\" mode=\"block\">\n\n<$transclude tiddler=<<currentTab>> mode=\"block\"/>\n\n</$transclude>\n\n</$reveal>\n\n</$list>\n</div>\n</div>\n</$vars>\n</$set>\n\\end\n"
},
"$:/core/macros/tag-picker": {
"title": "$:/core/macros/tag-picker",
"tags": "$:/tags/Macro",
"first-search-filter": "[tags[]!is[system]search:title<userInput>sort[]]",
"second-search-filter": "[tags[]is[system]search:title<userInput>sort[]]",
"text": "\\define get-tagpicker-focus-selector() [data-tiddler-title=\"$(currentTiddlerCSSEscaped)$\"] .tc-add-tag-name input\n\n\\define delete-tag-state-tiddlers() <$action-deletetiddler $filter=\"[<newTagNameTiddler>] [<storeTitle>] [<tagSelectionState>]\"/>\n\n\\define add-tag-actions(actions,tagField:\"tags\")\n<$set name=\"tag\" value={{{ [<__tiddler__>get[text]] }}}>\n<$list filter=\"[<saveTiddler>!contains:$tagField$<tag>!match[]]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter=\"-[<tag>]\"/>\n\"\"\">\n<$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter=\"[<tag>]\"/>\n$actions$\n</$list>\n</$set>\n<<delete-tag-state-tiddlers>>\n<$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/>\n\\end\n\n\\define clear-tags-actions-inner()\n<$list filter=\"[<storeTitle>has[text]] [<newTagNameTiddler>has[text]]\" variable=\"ignore\" emptyMessage=\"\"\"<<cancel-delete-tiddler-actions \"cancel\">>\"\"\">\n<<delete-tag-state-tiddlers>>\n</$list>\n\\end\n\n\\define clear-tags-actions()\n<$set name=\"userInput\" value={{{ [<storeTitle>get[text]] }}}>\n<$list filter=\"[<newTagNameTiddler>get[text]!match<userInput>]\" emptyMessage=\"\"\"<<clear-tags-actions-inner>>\"\"\">\n<$action-setfield $tiddler=<<newTagNameTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/>\n</$list>\n</$set>\n\\end\n\n\\define tag-picker-inner(actions,tagField:\"tags\")\n\\whitespace trim\n<$vars newTagNameInputTiddlerQualified=<<qualify \"$:/temp/NewTagName/input\">> newTagNameSelectionTiddlerQualified=<<qualify \"$:/temp/NewTagName/selected-item\">> fallbackTarget={{$(palette)$##tag-background}} colourA={{$(palette)$##foreground}} colourB={{$(palette)$##background}}>\n<$vars storeTitle={{{ [<newTagNameInputTiddler>!match[]] ~[<newTagNameInputTiddlerQualified>] }}} tagSelectionState={{{ [<newTagNameSelectionTiddler>!match[]] ~[<newTagNameSelectionTiddlerQualified>] }}}>\n<$vars refreshTitle=<<qualify \"$:/temp/NewTagName/refresh\">> nonSystemTagsFilter=\"[tags[]!is[system]search:title<userInput>sort[]]\" systemTagsFilter=\"[tags[]is[system]search:title<userInput>sort[]]\">\n<div class=\"tc-edit-add-tag\">\n<div>\n<span class=\"tc-add-tag-name tc-small-gap-right\">\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<newTagNameTiddler>> storeTitle=<<storeTitle>> refreshTitle=<<refreshTitle>>\n\t\tselectionStateTitle=<<tagSelectionState>> inputAcceptActions=\"\"\"<$macrocall $name=\"add-tag-actions\" actions=<<__actions__>> tagField=<<__tagField__>>/>\"\"\"\n\t\tinputCancelActions=<<clear-tags-actions>> tag=\"input\" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}}\n\t\tfocusPopup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex=<<tabIndex>> \n\t\tfocus={{{ [{$:/config/AutoFocus}match[tags]then[true]] ~[[false]] }}} filterMinLength={{$:/config/Tags/MinLength}} \n\t\tcancelPopups=<<cancelPopups>> configTiddlerFilter=\"[[$:/core/macros/tag-picker]]\"/>\n</span><$button popup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button><$reveal state=<<storeTitle>> type=\"nomatch\" text=\"\"><$button class=\"tc-btn-invisible tc-small-gap tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Tags/ClearInput/Hint}} aria-label={{$:/language/EditTemplate/Tags/ClearInput/Caption}}>{{$:/core/images/close-button}}<<delete-tag-state-tiddlers>></$button></$reveal><span class=\"tc-add-tag-button tc-small-gap-left\">\n<$set name=\"tag\" value={{{ [<newTagNameTiddler>get[text]] }}}>\n<$button set=<<newTagNameTiddler>> setTo=\"\" class=\"\">\n<$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter=\"[<tag>]\"/>\n$actions$\n<$set name=\"currentTiddlerCSSEscaped\" value={{{ [<saveTiddler>escapecss[]] }}}>\n<<delete-tag-state-tiddlers>><$action-sendmessage $message=\"tm-focus-selector\" $param=<<get-tagpicker-focus-selector>>/>\n</$set>\n{{$:/language/EditTemplate/Tags/Add/Button}}\n</$button>\n</$set>\n</span>\n</div>\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/tags-auto-complete\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-block-tags-dropdown\">\n<$set name=\"userInput\" value={{{ [<storeTitle>get[text]] }}}>\n<$list filter=\"[<userInput>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=<<nonSystemTagsFilter>> variable=\"tag\">\n<$list filter=\"[<tag>addsuffix[-primaryList]] -[<tagSelectionState>get[text]]\" emptyMessage=\"\"\"<$vars button-classes=\"tc-btn-invisible tc-tag-button-selected\" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<<tag>>>{{||$:/core/ui/TagPickerTagTemplate}}</$vars>\"\"\">\n<$vars button-classes=\"tc-btn-invisible\" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<<tag>>>{{||$:/core/ui/TagPickerTagTemplate}}</$vars>\n</$list>\n</$list></$list>\n<hr>\n<$list filter=\"[<userInput>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=<<systemTagsFilter>> variable=\"tag\">\n<$list filter=\"[<tag>addsuffix[-secondaryList]] -[<tagSelectionState>get[text]]\" emptyMessage=\"\"\"<$vars button-classes=\"tc-btn-invisible tc-tag-button-selected\" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<<tag>>>{{||$:/core/ui/TagPickerTagTemplate}}</$vars>\"\"\">\n<$vars button-classes=\"tc-btn-invisible\" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<<tag>>>{{||$:/core/ui/TagPickerTagTemplate}}</$vars>\n</$list>\n</$list></$list>\n</$set>\n</div>\n</$reveal>\n</div>\n</div>\n</$vars>\n</$vars>\n</$vars>\n\\end\n\\define tag-picker(actions,tagField:\"tags\")\n\\whitespace trim\n<$vars saveTiddler=<<currentTiddler>> palette={{$:/palette}}>\n<$list filter=\"[<newTagNameTiddler>match[]]\" emptyMessage=\"\"\"<$macrocall $name=\"tag-picker-inner\" actions=<<__actions__>> tagField=<<__tagField__>>/>\"\"\">\n<$set name=\"newTagNameTiddler\" value=<<qualify \"$:/temp/NewTagName\">>>\n<$macrocall $name=\"tag-picker-inner\" actions=<<__actions__>> tagField=<<__tagField__>>/>\n</$set>\n</$list>\n</$vars>\n\\end\n"
},
"$:/core/macros/tag": {
"title": "$:/core/macros/tag",
"tags": "$:/tags/Macro",
"text": "\\define tag-pill-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-pill-inner(tag,icon,colour,fallbackTarget,colourA,colourB,element-tag,element-attributes,actions)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<$element-tag$ $element-attributes$ class=\"tc-tag-label tc-btn-invisible\" style=<<tag-pill-styles>>>\n$actions$<$transclude tiddler=\"\"\"$icon$\"\"\"/><$view tiddler=<<__tag__>> field=\"title\" format=\"text\" />\n</$element-tag$>\n</$vars>\n\\end\n\n\\define tag-pill-body(tag,icon,colour,palette,element-tag,element-attributes,actions)\n<$macrocall $name=\"tag-pill-inner\" tag=<<__tag__>> icon=\"\"\"$icon$\"\"\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n\n\\define tag-pill(tag,element-tag:\"span\",element-attributes:\"\",actions:\"\")\n<span class=\"tc-tag-list-item\">\n<$macrocall $name=\"tag-pill-body\" tag=<<__tag__>> icon={{{ [<__tag__>get[icon]] }}} colour={{{ [<__tag__>get[color]] }}} palette={{$:/palette}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</span>\n\\end\n\n\\define tag(tag)\n{{$tag$||$:/core/ui/TagTemplate}}\n\\end\n"
},
"$:/core/macros/thumbnails": {
"title": "$:/core/macros/thumbnails",
"tags": "$:/tags/Macro",
"text": "\\define thumbnail(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<$link to=\"\"\"$link$\"\"\"><div class=\"tc-thumbnail-wrapper\">\n<div class=\"tc-thumbnail-image\" style=\"width:$width$px;height:$height$px;\"><$reveal type=\"nomatch\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" style=\"width:$width$px;height:$height$px;\">\n[img[$image$]]\n</$reveal><$reveal type=\"match\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" class=\"tc-thumbnail-background\" style=\"width:$width$px;height:$height$px;background-color:$background-color$;\"></$reveal></div><div class=\"tc-thumbnail-icon\" style=\"fill:$color$;color:$color$;\">\n$icon$\n</div><div class=\"tc-thumbnail-caption\">\n$caption$\n</div>\n</div></$link>\n\\end\n\n\\define thumbnail-right(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<div class=\"tc-thumbnail-right-wrapper\"><<thumbnail \"\"\"$link$\"\"\" \"\"\"$icon$\"\"\" \"\"\"$color$\"\"\" \"\"\"$background-color$\"\"\" \"\"\"$image$\"\"\" \"\"\"$caption$\"\"\" \"\"\"$width$\"\"\" \"\"\"$height$\"\"\">></div>\n\\end\n\n\\define list-thumbnails(filter,width:\"280\",height:\"157\")\n<$list filter=\"\"\"$filter$\"\"\"><$macrocall $name=\"thumbnail\" link={{!!link}} icon={{!!icon}} color={{!!color}} background-color={{!!background-color}} image={{!!image}} caption={{!!caption}} width=\"\"\"$width$\"\"\" height=\"\"\"$height$\"\"\"/></$list>\n\\end\n"
},
"$:/core/macros/timeline": {
"title": "$:/core/macros/timeline",
"created": "20141212105914482",
"modified": "20141212110330815",
"tags": "$:/tags/Macro",
"text": "\\define timeline-title()\n\\whitespace trim\n<!-- Override this macro with a global macro \n of the same name if you need to change \n how titles are displayed on the timeline \n -->\n<$view field=\"title\"/>\n\\end\n\\define timeline(limit:\"100\",format:\"DDth MMM YYYY\",subfilter:\"\",dateField:\"modified\")\n<div class=\"tc-timeline\">\n<$list filter=\"[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]\">\n<div class=\"tc-menu-list-item\">\n<$view field=\"$dateField$\" format=\"date\" template=\"$format$\"/>\n<$list filter=\"[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><<timeline-title>></$link>\n</div>\n</$list>\n</div>\n</$list>\n</div>\n\\end\n"
},
"$:/core/macros/toc": {
"title": "$:/core/macros/toc",
"tags": "$:/tags/Macro",
"text": "\\define toc-caption()\n<$set name=\"tv-wikilinks\" value=\"no\">\n <$transclude field=\"caption\">\n <$view field=\"title\"/>\n </$transclude>\n</$set>\n\\end\n\n\\define toc-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<ol class=\"tc-toc\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$vars item=<<currentTiddler>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=\"<$link to={{{ [<currentTiddler>get[target]else<currentTiddler>] }}}><$view field='caption'><$view field='title'/></$view></$link>\">\n <<toc-caption>>\n </$list>\n <$macrocall $name=\"toc-body\" tag=<<item>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n </li>\n </$set>\n </$set>\n </$vars>\n </$list>\n</ol>\n\\end\n\n\\define toc(tag,sort:\"\",itemClassFilter:\"\")\n<$macrocall $name=\"toc-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> />\n\\end\n\n\\define toc-linked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$link to={{{ [<currentTiddler>get[target]else<currentTiddler>] }}}>\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n <<toc-caption>>\n </$link>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-expandable-empty-message()\n<$macrocall $name=\"toc-linked-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-expandable(tag,sort:\"\",itemClassFilter:\"\",exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <ol class=\"tc-toc toc-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=<<toc-expandable-empty-message>> >\n <$macrocall $name=\"toc-unlinked-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"\"\"itemClassFilter\"\"\" exclude=<<excluded>> path=<<path>> />\n </$list>\n </$list>\n </ol>\n </$set>\n</$vars>\n\\end\n\n\\define toc-linked-selective-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\" >\n <li class=<<toc-item-class>>>\n <$link to={{{ [<currentTiddler>get[target]else<currentTiddler>] }}}>\n <$list filter=\"[all[current]tagging[]$sort$limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>\">\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n </$list>\n <<toc-caption>>\n </$link>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-selective-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]tagging[]$sort$limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button> <$view field='caption'><$view field='title'/></$view>\">\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n </$list>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-selective-expandable-empty-message()\n<$macrocall $name=\"toc-linked-selective-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-selective-expandable(tag,sort:\"\",itemClassFilter,exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <ol class=\"tc-toc toc-selective-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" variable=\"ignore\" emptyMessage=<<toc-selective-expandable-empty-message>> >\n <$macrocall $name=\"toc-unlinked-selective-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n </$list>\n </$list>\n </ol>\n </$set>\n</$vars>\n\\end\n\n\\define toc-tabbed-external-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$tiddler tiddler={{{ [<__selectedTiddler__>get[text]] }}}>\n <div class=\"tc-tabbed-table-of-contents\">\n <$linkcatcher to=<<__selectedTiddler__>>>\n <div class=\"tc-table-of-contents\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"[all[current]] -[<__selectedTiddler__>get[text]]\"/>\n </div>\n </$linkcatcher>\n <div class=\"tc-tabbed-table-of-contents-content\">\n <$reveal stateTitle=<<__selectedTiddler__>> type=\"nomatch\" text=\"\">\n <$transclude mode=\"block\" tiddler=<<__template__>>>\n <h1><<toc-caption>></h1>\n <$transclude mode=\"block\">$missingText$</$transclude>\n </$transclude>\n </$reveal>\n <$reveal stateTitle=<<__selectedTiddler__>> type=\"match\" text=\"\">\n $unselectedText$\n </$reveal>\n </div>\n </div>\n</$tiddler>\n\\end\n\n\\define toc-tabbed-internal-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$linkcatcher to=<<__selectedTiddler__>>>\n <$macrocall $name=\"toc-tabbed-external-nav\" tag=<<__tag__>> sort=<<__sort__>> selectedTiddler=<<__selectedTiddler__>> unselectedText=<<__unselectedText__>> missingText=<<__missingText__>> template=<<__template__>>/>\n</$linkcatcher>\n\\end\n\n"
},
"$:/core/macros/translink": {
"title": "$:/core/macros/translink",
"tags": "$:/tags/Macro",
"text": "\\define translink(title,mode:\"block\")\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: black; foreground; white;\">\n<$link to=\"\"\"$title$\"\"\">\n<$text text=\"\"\"$title$\"\"\"/>\n</$link>\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: white; foreground; black;\">\n<$transclude tiddler=\"\"\"$title$\"\"\" mode=\"$mode$\">\n\"<$text text=\"\"\"$title$\"\"\"/>\" is missing\n</$transclude>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/tree": {
"title": "$:/core/macros/tree",
"tags": "$:/tags/Macro",
"text": "\\define leaf-link(full-title,chunk,separator: \"/\")\n<$link to=<<__full-title__>>><$text text=<<__chunk__>>/></$link>\n\\end\n\n\\define leaf-node(prefix,chunk)\n<li>\n<$list filter=\"[<__prefix__>addsuffix<__chunk__>is[shadow]] [<__prefix__>addsuffix<__chunk__>is[tiddler]]\" variable=\"full-title\">\n<$list filter=\"[<full-title>removeprefix<__prefix__>]\" variable=\"chunk\">\n<span>{{$:/core/images/file}}</span> <$macrocall $name=\"leaf-link\" full-title=<<full-title>> chunk=<<chunk>>/>\n</$list>\n</$list>\n</li>\n\\end\n\n\\define branch-node(prefix,chunk,separator: \"/\")\n<li>\n<$set name=\"reveal-state\" value={{{ [[$:/state/tree/]addsuffix<__prefix__>addsuffix<__chunk__>] }}}>\n<$reveal type=\"nomatch\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"show\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"hide\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<span>(<$count filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>removeprefix<__chunk__>] -[<__prefix__>addsuffix<__chunk__>]\"/>)</span>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$macrocall $name=\"tree-node\" prefix={{{ [<__prefix__>addsuffix<__chunk__>] }}} separator=<<__separator__>>/>\n</$reveal>\n</$set>\n</li>\n\\end\n\n\\define tree-node(prefix,separator: \"/\")\n<ol>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]!suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"leaf-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"branch-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n</ol>\n\\end\n\n\\define tree(prefix: \"$:/\",separator: \"/\")\n<div class=\"tc-tree\">\n<span><$text text=<<__prefix__>>/></span>\n<div>\n<$macrocall $name=\"tree-node\" prefix=<<__prefix__>> separator=<<__separator__>>/>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/utils": {
"title": "$:/core/macros/utils",
"text": "\\define colour(colour)\n$colour$\n\\end\n"
},
"$:/snippets/minifocusswitcher": {
"title": "$:/snippets/minifocusswitcher",
"text": "<$select tiddler=\"$:/config/AutoFocus\">\n<$list filter=\"title tags text type fields\">\n<option value=<<currentTiddler>>><<currentTiddler>></option>\n</$list>\n</$select>\n"
},
"$:/snippets/minilanguageswitcher": {
"title": "$:/snippets/minilanguageswitcher",
"text": "<$select tiddler=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"description\"><$view field=\"name\"><$view field=\"title\"/></$view></$view></option>\n</$list>\n</$select>"
},
"$:/snippets/minithemeswitcher": {
"title": "$:/snippets/minithemeswitcher",
"text": "\\define lingo-base() $:/language/ControlPanel/Theme/\n<<lingo Prompt>> <$select tiddler=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"name\"><$view field=\"title\"/></$view></option>\n</$list>\n</$select>"
},
"$:/snippets/modules": {
"title": "$:/snippets/modules",
"text": "\\define describeModuleType(type)\n{{$:/language/Docs/ModuleTypes/$type$}}\n\\end\n<$list filter=\"[moduletypes[]]\">\n\n!! <$macrocall $name=\"currentTiddler\" $type=\"text/plain\" $output=\"text/plain\"/>\n\n<$macrocall $name=\"describeModuleType\" type=<<currentTiddler>>/>\n\n<ul><$list filter=\"[all[current]modules[]]\"><li><$link><<currentTiddler>></$link>\n</li>\n</$list>\n</ul>\n</$list>\n"
},
"$:/palette": {
"title": "$:/palette",
"text": "$:/palettes/Vanilla"
},
"$:/snippets/paletteeditor": {
"title": "$:/snippets/paletteeditor",
"text": "<$transclude tiddler=\"$:/PaletteManager\"/>\n"
},
"$:/snippets/palettepreview": {
"title": "$:/snippets/palettepreview",
"text": "<$set name=\"currentTiddler\" value={{$:/palette}}>\n{{||$:/snippets/currpalettepreview}}\n</$set>\n"
},
"$:/snippets/paletteswitcher": {
"title": "$:/snippets/paletteswitcher",
"text": "<$linkcatcher to=\"$:/palette\">\n<div class=\"tc-chooser\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]sort[name]]\"><$set name=\"cls\" filter=\"[all[current]prefix{$:/palette}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' - <$view field=\"description\" format=\"text\"/>{{||$:/snippets/currpalettepreview}}</$link>\n</div></$set>\n</$list>\n</div>\n</$linkcatcher>\n"
},
"$:/snippets/peek-stylesheets": {
"title": "$:/snippets/peek-stylesheets",
"text": "\\define expandable-stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$vars state=<<qualify \"$:/state/peek-stylesheets/open/\">>>\n<$set name=\"state\" value={{{ [<state>addsuffix<currentTiddler>] }}}>\n<li>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"no\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"yes\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"div\">\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</$reveal>\n</li>\n</$set>\n</$vars>\n</$list>\n</ol>\n\\end\n\n\\define stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<li>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</li>\n</$list>\n</ol>\n\\end\n\n<$vars modeState=<<qualify \"$:/state/peek-stylesheets/mode/\">>>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"expanded\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Stylesheets/Expand/Caption}}</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"restored\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-down}} {{$:/language/ControlPanel/Stylesheets/Restore/Caption}}</$button>\n</$reveal>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<expandable-stylesheets-list>>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<stylesheets-list>>\n</$reveal>\n\n</$vars>\n"
},
"$:/temp/search": {
"title": "$:/temp/search",
"text": ""
},
"$:/tags/AdvancedSearch": {
"title": "$:/tags/AdvancedSearch",
"list": "[[$:/core/ui/AdvancedSearch/Standard]] [[$:/core/ui/AdvancedSearch/System]] [[$:/core/ui/AdvancedSearch/Shadows]] [[$:/core/ui/AdvancedSearch/Filter]]"
},
"$:/tags/AdvancedSearch/FilterButton": {
"title": "$:/tags/AdvancedSearch/FilterButton",
"list": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown $:/core/ui/AdvancedSearch/Filter/FilterButtons/clear $:/core/ui/AdvancedSearch/Filter/FilterButtons/export $:/core/ui/AdvancedSearch/Filter/FilterButtons/delete"
},
"$:/tags/ControlPanel": {
"title": "$:/tags/ControlPanel",
"list": "$:/core/ui/ControlPanel/Info $:/core/ui/ControlPanel/Appearance $:/core/ui/ControlPanel/Settings $:/core/ui/ControlPanel/Saving $:/core/ui/ControlPanel/Plugins $:/core/ui/ControlPanel/Tools $:/core/ui/ControlPanel/Internals"
},
"$:/tags/ControlPanel/Info": {
"title": "$:/tags/ControlPanel/Info",
"list": "$:/core/ui/ControlPanel/Basics $:/core/ui/ControlPanel/Advanced"
},
"$:/tags/ControlPanel/Plugins": {
"title": "$:/tags/ControlPanel/Plugins",
"list": "[[$:/core/ui/ControlPanel/Plugins/Installed]] [[$:/core/ui/ControlPanel/Plugins/Add]]"
},
"$:/tags/EditTemplate": {
"title": "$:/tags/EditTemplate",
"list": "[[$:/core/ui/EditTemplate/controls]] [[$:/core/ui/EditTemplate/title]] [[$:/core/ui/EditTemplate/tags]] [[$:/core/ui/EditTemplate/shadow]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/EditTemplate/body]] [[$:/core/ui/EditTemplate/type]] [[$:/core/ui/EditTemplate/fields]]"
},
"$:/tags/EditToolbar": {
"title": "$:/tags/EditToolbar",
"list": "[[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/cancel]] [[$:/core/ui/Buttons/save]]"
},
"$:/tags/EditorToolbar": {
"title": "$:/tags/EditorToolbar",
"list": "$:/core/ui/EditorToolbar/paint $:/core/ui/EditorToolbar/opacity $:/core/ui/EditorToolbar/line-width $:/core/ui/EditorToolbar/rotate-left $:/core/ui/EditorToolbar/clear $:/core/ui/EditorToolbar/bold $:/core/ui/EditorToolbar/italic $:/core/ui/EditorToolbar/strikethrough $:/core/ui/EditorToolbar/underline $:/core/ui/EditorToolbar/superscript $:/core/ui/EditorToolbar/subscript $:/core/ui/EditorToolbar/mono-line $:/core/ui/EditorToolbar/mono-block $:/core/ui/EditorToolbar/quote $:/core/ui/EditorToolbar/list-bullet $:/core/ui/EditorToolbar/list-number $:/core/ui/EditorToolbar/heading-1 $:/core/ui/EditorToolbar/heading-2 $:/core/ui/EditorToolbar/heading-3 $:/core/ui/EditorToolbar/heading-4 $:/core/ui/EditorToolbar/heading-5 $:/core/ui/EditorToolbar/heading-6 $:/core/ui/EditorToolbar/link $:/core/ui/EditorToolbar/excise $:/core/ui/EditorToolbar/picture $:/core/ui/EditorToolbar/stamp $:/core/ui/EditorToolbar/size $:/core/ui/EditorToolbar/editor-height $:/core/ui/EditorToolbar/more $:/core/ui/EditorToolbar/preview $:/core/ui/EditorToolbar/preview-type"
},
"$:/tags/Manager/ItemMain": {
"title": "$:/tags/Manager/ItemMain",
"list": "$:/Manager/ItemMain/WikifiedText $:/Manager/ItemMain/RawText $:/Manager/ItemMain/Fields"
},
"$:/tags/Manager/ItemSidebar": {
"title": "$:/tags/Manager/ItemSidebar",
"list": "$:/Manager/ItemSidebar/Tags $:/Manager/ItemSidebar/Colour $:/Manager/ItemSidebar/Icon $:/Manager/ItemSidebar/Tools"
},
"$:/tags/MoreSideBar": {
"title": "$:/tags/MoreSideBar",
"list": "[[$:/core/ui/MoreSideBar/All]] [[$:/core/ui/MoreSideBar/Recent]] [[$:/core/ui/MoreSideBar/Tags]] [[$:/core/ui/MoreSideBar/Missing]] [[$:/core/ui/MoreSideBar/Drafts]] [[$:/core/ui/MoreSideBar/Orphans]] [[$:/core/ui/MoreSideBar/Types]] [[$:/core/ui/MoreSideBar/System]] [[$:/core/ui/MoreSideBar/Shadows]] [[$:/core/ui/MoreSideBar/Explorer]] [[$:/core/ui/MoreSideBar/Plugins]]",
"text": ""
},
"$:/tags/PageControls": {
"title": "$:/tags/PageControls",
"list": "[[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/fold-all]] [[$:/core/ui/Buttons/unfold-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/new-journal]] [[$:/core/ui/Buttons/new-image]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/export-page]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/advanced-search]] [[$:/core/ui/Buttons/manager]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/palette]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/timestamp]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/print]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/refresh]] [[$:/core/ui/Buttons/more-page-actions]]"
},
"$:/tags/PageTemplate": {
"title": "$:/tags/PageTemplate",
"list": "[[$:/core/ui/PageTemplate/topleftbar]] [[$:/core/ui/PageTemplate/toprightbar]] [[$:/core/ui/PageTemplate/sidebar]] [[$:/core/ui/PageTemplate/story]] [[$:/core/ui/PageTemplate/alerts]]",
"text": ""
},
"$:/tags/PluginLibrary": {
"title": "$:/tags/PluginLibrary",
"list": "$:/config/OfficialPluginLibrary"
},
"$:/tags/SideBar": {
"title": "$:/tags/SideBar",
"list": "[[$:/core/ui/SideBar/Open]] [[$:/core/ui/SideBar/Recent]] [[$:/core/ui/SideBar/Tools]] [[$:/core/ui/SideBar/More]]",
"text": ""
},
"$:/tags/SideBarSegment": {
"title": "$:/tags/SideBarSegment",
"list": "[[$:/core/ui/SideBarSegments/site-title]] [[$:/core/ui/SideBarSegments/site-subtitle]] [[$:/core/ui/SideBarSegments/page-controls]] [[$:/core/ui/SideBarSegments/search]] [[$:/core/ui/SideBarSegments/tabs]]"
},
"$:/tags/TiddlerInfo": {
"title": "$:/tags/TiddlerInfo",
"list": "[[$:/core/ui/TiddlerInfo/Tools]] [[$:/core/ui/TiddlerInfo/References]] [[$:/core/ui/TiddlerInfo/Tagging]] [[$:/core/ui/TiddlerInfo/List]] [[$:/core/ui/TiddlerInfo/Listed]] [[$:/core/ui/TiddlerInfo/Fields]]",
"text": ""
},
"$:/tags/TiddlerInfo/Advanced": {
"title": "$:/tags/TiddlerInfo/Advanced",
"list": "[[$:/core/ui/TiddlerInfo/Advanced/ShadowInfo]] [[$:/core/ui/TiddlerInfo/Advanced/PluginInfo]]"
},
"$:/tags/ViewTemplate": {
"title": "$:/tags/ViewTemplate",
"list": "[[$:/core/ui/ViewTemplate/title]] [[$:/core/ui/ViewTemplate/unfold]] [[$:/core/ui/ViewTemplate/subtitle]] [[$:/core/ui/ViewTemplate/tags]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/ViewTemplate/body]]"
},
"$:/tags/ViewToolbar": {
"title": "$:/tags/ViewToolbar",
"list": "[[$:/core/ui/Buttons/more-tiddler-actions]] [[$:/core/ui/Buttons/info]] [[$:/core/ui/Buttons/new-here]] [[$:/core/ui/Buttons/new-journal-here]] [[$:/core/ui/Buttons/clone]] [[$:/core/ui/Buttons/export-tiddler]] [[$:/core/ui/Buttons/edit]] [[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/permalink]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/open-window]] [[$:/core/ui/Buttons/close-others]] [[$:/core/ui/Buttons/close]] [[$:/core/ui/Buttons/fold-others]] [[$:/core/ui/Buttons/fold]]"
},
"$:/snippets/themeswitcher": {
"title": "$:/snippets/themeswitcher",
"text": "<$linkcatcher to=\"$:/theme\">\n<div class=\"tc-chooser\"><$list filter=\"[plugin-type[theme]sort[title]]\"><$set name=\"cls\" filter=\"[all[current]field:title{$:/theme}] [[$:/theme]!has[text]addsuffix[s/tiddlywiki/vanilla]field:title<currentTiddler>] +[limit[1]]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' <$view field=\"description\" format=\"text\"/></$link></div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
},
"$:/core/wiki/title": {
"title": "$:/core/wiki/title",
"text": "{{$:/SiteTitle}} --- {{$:/SiteSubtitle}}"
},
"$:/view": {
"title": "$:/view",
"text": "classic"
},
"$:/snippets/viewswitcher": {
"title": "$:/snippets/viewswitcher",
"text": "\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<$linkcatcher to=\"$:/view\">\n<div class=\"tc-chooser tc-viewswitcher\">\n<$list filter=\"[storyviews[]]\" variable=\"storyview\">\n<$set name=\"cls\" filter=\"[<storyview>prefix{$:/view}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link to=<<storyview>>><$transclude tiddler=<<icon>>/><$text text=<<storyview>>/></$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
}
}
}
<pre>/* add custom extensions by tagging your stylesheet [[$:/tags/FontAwesome]].
* Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/
/* FONT PATH
* -------------------------- */
@font-face {
font-family: 'FontAwesome';
src: local("FontAwesome"), url(data:application/font-woff;base64,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) format("woff");
font-weight: normal;
font-style: normal;
}
.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-genderless:before,.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}
<$list filter="[tag[$:/tags/FontAwesome]]">
<$transclude>
</$list>
</pre>
The following tiddlers were imported:
# [[apollo.png]]
\define ref(label)
<$button popup="$:/state/$label$" class="tc-btn-invisible tc-slider"><sup style="color:green">$label$</sup></$button>
\end
\define definition(label,text)
<$reveal type="popup" state="$:/state/$label$" animate="yes">
<div class="tc-drop-down">
<dl>
<dt>$label$</dt>
<dd>$text$</dd>
</dl>
</div>
</$reveal>
\end
\define footnote(label,text)
<<ref "$label$">>
<<definition "$label$" "$text$">>
\end
\define footnotes(label,text)
<<definition "$label$" "$text$">>
<sub><span style="color:green">$label$ : </span> $text$</sub>
\end
$:/themes/jd/Mono/Palette/SpartanDay
{
"tiddlers": {
"$:/plugins/danielo515/ContextPlugin/widgets/context.js": {
"created": "20140418153435777",
"creator": "danielo",
"modified": "20140530231943517",
"modifier": "danielo",
"module-type": "widget",
"title": "$:/plugins/danielo515/ContextPlugin/widgets/context.js",
"type": "application/javascript",
"text": "/*\\\\\ntitle: $:/core/modules/widgets/danielo/context-widget.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-text widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar contextWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\ncontextWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\ncontextWidget.prototype.render = function(parent,nextSibling) {\n // Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n \n if(this.term && this.term.length>3){\n \n this.createRegexp();\n var matches = this.executeRegexp();\n\t if(matches.length > 0){ \n this.domNode = this.document.createElement(this.element);\n this.domNode.className=\"tw-context\";\n this.composeResults( matches ); //this appends to domNode \n \t// Insert element\n \tparent.insertBefore(this.domNode,nextSibling);\n \tthis.renderChildren(this.domNode,null);\n\t \tthis.domNodes.push(this.domNode);\n }\n }\n\t\n};\n\n/*\nCompute the internal state of the widget\n*/\ncontextWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n this.matchedClass = this.getAttribute(\"matchClass\",\"matched\");\n\tthis.tiddler = this.getAttribute( \"tiddler\",this.getVariable(\"currentTiddler\") );\n this.term = this.getAttribute(\"term\",this.getAttribute(\"searchTerm\"));\n\tthis.contextLength = this.getAttribute(\"length\",50);\n this.before = this.getAttribute(\"before\",this.contextLength);\n this.after = this.getAttribute(\"after\",this.contextLength);\n this.maxMatches = this.getAttribute(\"maxMatches\",10);\n this.element = this.getAttribute(\"element\",\"pre\");\n\tthis.makeChildWidgets();\n};\n\n /*Create the regular expression*/\ncontextWidget.prototype.createRegexp = function()\n{\n var regString = \"(\\\\w+[\\\\s\\\\S]{0,#before#})?(#term#)([\\\\s\\\\S]{0,#after#}\\\\w+)?\";\n\n var regString = regString.replace(\"#before#\",this.before).replace(\"#term#\", $tw.utils.escapeRegExp(this.term) ) .replace(\"#after#\",this.after);\n this.regexp = new RegExp(regString,\"ig\");\n //console.log(regString);\n};\n/*\nexecute the regular expresion\n*/\ncontextWidget.prototype.executeRegexp = function()\n{\n var text = this.wiki.getTiddlerText(this.tiddler), match,results = new Array();\n while( (match = this.regexp.exec( text ) ) && (results.length < this.maxMatches) )\n { results.push(match) }\n //console.log(\"matches\",results);\n return results;\n};\n\n/*\ncompose the results\nmatches : array of match objects from regular expression execute\n*/\ncontextWidget.prototype.composeResults = function(matches){\n var result=[], self=this, node = this.domNode,\n dots = textNode(\"...\\n\"),\n span = matchedNode( this.term );\n\n for(var i=0; i < matches.length; i++){\n processMatch( matches[i] );\n }\n \n function processMatch(match){\n if( match.index !== 0) node.appendChild( dots.cloneNode(true) );\n for( var i=1;i<match.length;i++ ) {//match[0] full matched text (all groups together)\n if( match[i] ) {\n if ( match[i].toLowerCase() == self.term.toLowerCase() ) \n node.appendChild( match[i] == self.term ? span.cloneNode(true) : matchedNode( match[i] ) )\n else\n node.appendChild( textNode( match[i]) )\n }\n }\n if( match.index + match[0].length < match.input.length) node.appendChild( dots.cloneNode(true) );\n }\n \n function textNode(text){ return self.document.createTextNode(text) }\n function matchedNode(text) { \n var node = self.document.createElement(\"span\"); node.appendChild( textNode(text) ); node.className = self.matchedClass;\n return node }\n \n};\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\ncontextWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.term || changedAttributes.length || changedAttributes.matchedClass) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n return this.refreshChildren(changedTiddlers);\n};\n\nexports.context = contextWidget;\n\n})();"
},
"$:/plugins/danielo515/ContextPlugin/visualizer": {
"title": "$:/plugins/danielo515/ContextPlugin/visualizer",
"tags": "$:/tags/SearchResults",
"caption": "Context",
"text": "<$list filter=\"[!is[system]search{$:/temp/search}sort[title]limit[250]]\">\r\n {{!!title||$:/core/ui/ListItemTemplate}}\r\n <$context term={{$:/temp/search}} />\r\n</$list>\r\n"
},
"$:/plugins/danielo515/ContextPlugin/Stylesheet/results": {
"created": "20140529162823729",
"tags": "$:/tags/Stylesheet contextPlugin",
"title": "$:/plugins/danielo515/ContextPlugin/Stylesheet/results",
"type": "text/css",
"text": ".matched{background-color:yellow}\n.tw-context {/*border:1px solid;\n /*word-break: break-all; word-wrap: break-word*/}"
},
"$:/plugins/danielo515/ContextPlugin/Caption": {
"created": "20140530174219263",
"tags": "contextPlugin",
"title": "$:/plugins/danielo515/ContextPlugin/Caption",
"type": "text/vnd.tiddlywiki",
"text": "Context search"
},
"Context Search": {
"caption": "{{$:/plugins/danielo515/ContextPlugin/Caption}}",
"created": "20140530173407542",
"tags": "$:/tags/AdvancedSearch",
"title": "Context Search",
"type": "text/vnd.tiddlywiki",
"text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Standard/Hint>>\n\n<div class=\"tw-search\"><$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/><$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\"> <$link to=\"\" class=\"btn-invisible\">{{$:/core/images/close-button}}</$link></$reveal></div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<div class=\"tw-search-results\">\n\n<<lingo Standard/Matches>>\n\n<$list filter=\"[!is[system]search{$:/temp/advancedsearch}sort[title]limit[250]]\">\n{{!!title||$:/core/ui/ListItemTemplate}}\n<$context term={{$:/temp/advancedsearch}}/>\n</$list>\n\n</div>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
},
"$:/plugins/danielo515/ContextPlugin/readme": {
"title": "$:/plugins/danielo515/ContextPlugin/readme",
"text": "!Usage\n\nAfter installing the plugin you will have a new tab in [[$:/AdvancedSearch]] called [[Context Search]]. If you want this functionality in other places you will have to edit the desired tiddler yourself adding the ''context widget''. For more details about using the widget see the section below.\n\n!!Using the widget\n\nThe very basic usage of the widget is the following:\n\n```\r\n<$context term=\"lorem\"/>\r\n```\r\nWhich will render as:\r\n<$context term=\"lorem\"/>\n\nThe widgets will search inside the current tiddler by default. Because that you see the same content twice here. This example is not very useful. Other more meaningful would be:\n\n```\r\n<$list filter=\"[search{$:/temp/advancedsearch}sort[title]limit[250]]\">\r\n{{!!title||$:/core/ui/ListItemTemplate}}\r\n<$context term={{$:/temp/advancedsearch}}/>\r\n</$list>\r\n```\n\nThat will search for tiddlers containing the text specified in [[$:/temp/advancedsearch]] and will display a link to the matching tiddlers plus a preview of the matching content. Something very similar is used in [[Context Search]]. Below you can find a complete list of parameters and their default values.\n\n|! parameter |! description | !default |\r\n| term | The term you want to search ||\r\n| searchTerm | An alias for the previous one ||\r\n| tiddler | The tiddler's name to look into | current tiddler |\r\n| length | Number of context characters to show | 50 |\r\n| before | Number of characters before the matched term to show | the value of the length parameter |\r\n| after | Number of characters after the matched term to show | the value of the length parameter |\r\n| maxMatches | maximun number of matched elements to show. Incrementing this can cause several performance issues | 10 |\r\n| element | Node element to create. This element will contain the results of the search. If you want to style it its class is `tw-context` | `<pre>` |\r\n| matchClass | The css class to assign to the matched terms in the results. This is used to highlight the results | matched |\n\n!Customizing the output\r\nThere are not many ways to customize the output of this widget. You can specify ''what type of node you want to create'' to wrap the results (div,span...). The default is `<pre>`. This container is created with the class `tw-context` so you can easily apply styles to it. Something similar happens to the ''highlighted'' words. You can specify the name of the class to assign to it and also you can apply styles to that class.\n\nA very basic example of customization could be:\n\n# Create a tiddler, for example [[$/plugins/danielo515/context/css]]\r\n# Paste the following text or any css rule you want: \"\"\"\n\n<pre>\r\n.matched{background-color:yellow}\r\n.tw-context {\r\n border:1px solid blue;\r\n word-break: break-all; word-wrap: break-word;}\r\n</pre>\r\n\"\"\"\r\n# Tag it with `$:/tags/stylesheet`\r\n# Save the tiddler"
}
}
}
/*\\
title: $:/core/modules/widgets/danielo/context-widget.js
type: application/javascript
module-type: widget
Edit-text widget
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
var Widget = require("$:/core/modules/widgets/widget.js").widget;
var contextWidget = function(parseTreeNode,options) {
this.initialise(parseTreeNode,options);
};
/*
Inherit from the base widget class
*/
contextWidget.prototype = new Widget();
/*
Render this widget into the DOM
*/
contextWidget.prototype.render = function(parent,nextSibling) {
// Save the parent dom node
this.parentDomNode = parent;
// Compute our attributes
this.computeAttributes();
// Execute our logic
this.execute();
if(this.term && this.term.length>1){
this.createRegexp();
var matches = this.executeRegexp();
if(matches.length > 0){
this.domNode = this.document.createElement(this.element);
this.domNode.className="tw-context";
this.composeResults( matches ); //this appends to domNode
// Insert element
parent.insertBefore(this.domNode,nextSibling);
this.renderChildren(this.domNode,null);
this.domNodes.push(this.domNode);
}
}
};
/*
Compute the internal state of the widget
*/
contextWidget.prototype.execute = function() {
// Get the parameters from the attributes
this.matchedClass = this.getAttribute("matchClass","matched");
this.tiddler = this.getAttribute( "tiddler",this.getVariable("currentTiddler") );
this.term = this.getAttribute("term",this.getAttribute("searchTerm"));
this.contextLength = this.getAttribute("length",50);
this.before = this.getAttribute("before",this.contextLength);
this.after = this.getAttribute("after",this.contextLength);
this.maxMatches = this.getAttribute("maxMatches",10);
this.element = this.getAttribute("element","pre");
this.makeChildWidgets();
};
/*Create the regular expression*/
contextWidget.prototype.createRegexp = function()
{
var regString = "(\\w+[\\s\\S]{0,#before#})?(#term#)([\\s\\S]{0,#after#}\\w+)?";
var regString = regString.replace("#before#",this.before).replace("#term#", $tw.utils.escapeRegExp(this.term) ) .replace("#after#",this.after);
this.regexp = new RegExp(regString,"ig");
//console.log(regString);
};
/*
execute the regular expresion
*/
contextWidget.prototype.executeRegexp = function()
{
var text = this.wiki.getTiddlerText(this.tiddler), match,results = new Array();
while( (match = this.regexp.exec( text ) ) && (results.length < this.maxMatches) )
{ results.push(match) }
//console.log("matches",results);
return results;
};
/*
compose the results
matches : array of match objects from regular expression execute
*/
contextWidget.prototype.composeResults = function(matches){
var result=[], self=this, node = this.domNode,
dots = textNode("...\n"),
span = matchedNode( this.term );
for(var i=0; i < matches.length; i++){
processMatch( matches[i] );
}
function processMatch(match){
if( match.index !== 0) node.appendChild( dots.cloneNode(true) );
for( var i=1;i<match.length;i++ ) {//match[0] full matched text (all groups together)
if( match[i] ) {
if ( match[i].toLowerCase() == self.term.toLowerCase() )
node.appendChild( match[i] == self.term ? span.cloneNode(true) : matchedNode( match[i] ) )
else
node.appendChild( textNode( match[i]) )
}
}
if( match.index + match[0].length < match.input.length) node.appendChild( dots.cloneNode(true) );
}
function textNode(text){ return self.document.createTextNode(text) }
function matchedNode(text) {
var node = self.document.createElement("span"); node.appendChild( textNode(text) ); node.className = self.matchedClass;
return node }
};
/*
Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering
*/
contextWidget.prototype.refresh = function(changedTiddlers) {
var changedAttributes = this.computeAttributes();
if(changedAttributes.tiddler || changedAttributes.term || changedAttributes.length || changedAttributes.matchedClass) {
this.refreshSelf();
return true;
}
return this.refreshChildren(changedTiddlers);
};
exports.context = contextWidget;
})();
{
"tiddlers": {
"$:/plugins/felixhayashi/hotzone/config.js": {
"title": "$:/plugins/felixhayashi/hotzone/config.js",
"text": "/*\\\n\ntitle: $:/plugins/felixhayashi/hotzone/config.js\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n(function(){\"use strict\";exports.config={classNames:{storyRiver:\"tc-story-river\",tiddlerFrame:\"tc-tiddler-frame\",tiddlerTitle:\"tc-title\"},references:{userConfig:\"$:/config/hotzone/focusOffset\",focussedTiddlerStore:\"$:/temp/focussedTiddler\"},checkbackTime:$tw.utils.getAnimationDuration()}})();",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/hotzone/hotzone.js": {
"title": "$:/plugins/felixhayashi/hotzone/hotzone.js",
"text": "/*\\\n\ntitle: $:/plugins/felixhayashi/hotzone/hotzone.js\ntype: application/javascript\nmodule-type: startup\n\n@preserve\n\n\\*/\n(function(){\"use strict\";exports.name=\"hotzone\";exports.platforms=[\"browser\"];exports.after=[\"story\"];exports.synchronous=true;exports.startup=function(){var t=require(\"$:/plugins/felixhayashi/hotzone/config.js\").config;var e=null;var i=document.getElementsByClassName(t.classNames.storyRiver)[0];var r=$tw.wiki.getTiddlerData(t.references.userConfig,{});var s=isNaN(parseInt(r.focusOffset))?150:parseInt(r.focusOffset);var a=function(e,i,r){if(!(e instanceof Element))return;if(!$tw.utils.hasClass(e,t.classNames.tiddlerFrame))return;var s=e.getElementsByClassName(t.classNames.tiddlerTitle)[0];if(s){var a=s.innerText||s.textContent;return a.trim()}};var n=function(e,i){$tw.wiki.addTiddler(new $tw.Tiddler({title:t.references.focussedTiddlerStore,text:e},$tw.wiki.getModificationFields()));if(i){var r=document.getElementsByClassName(\"hzone-focus\")[0];if(r){$tw.utils.removeClass(r,\"hzone-focus\")}$tw.utils.addClass(i,\"hzone-focus\")}};var l=function(){var r=$tw.wiki.getTiddler(\"$:/StoryList\");if(r&&r.fields.list.length){var l=null;var o=Number.MAX_VALUE;var f=i.children;var u=t.classNames.tiddlerFrame;for(var d=f.length;d--;){if($tw.utils.hasClass(f[d],u)){var c=f[d].getBoundingClientRect();var v=Math.min(Math.abs(s-c.top),Math.abs(s-c.bottom));if(v<o){l=f[d];o=v}}}var w=a(l);if(w!==e&&$tw.wiki.getTiddler(w)){e=w;n(e,l);return}}else if(e){e=\"\";n(e)}};var o=function(t){var e;var i=false;return function(r,s){var a=this;if(i&&!s){}else{i=s;if(e!=null){clearTimeout(e)}e=setTimeout((function(){e=null;i=false;t.apply(a)}),r)}}};var f=o(l);var u=function(t){if(t[\"$:/HistoryList\"]){if(!$tw.wiki.tiddlerExists(\"$:/HistoryList\"))return;var e=$tw.wiki.getTiddler(\"$:/HistoryList\").fields[\"current-tiddler\"];var i=$tw.wiki.getTiddlerList(\"$:/StoryList\");var r=i.indexOf(e)>=0;if(!r)return;f($tw.utils.getAnimationDuration()+10,true)}else if(t[\"$:/StoryList\"]){f($tw.utils.getAnimationDuration()+10,true)}};var d=function(t){f(300,false)};$tw.wiki.addEventListener(\"change\",u);window.addEventListener(\"scroll\",d,false);d()}})();",
"type": "application/javascript",
"module-type": "startup"
},
"$:/plugins/felixhayashi/hotzone/Configuration": {
"title": "$:/plugins/felixhayashi/hotzone/Configuration",
"text": "Please see the [[GitHub page|https://github.com/felixhayashi/TW5-HotZone]] for more information on the options.\n\nSave and reload the wiki to activate changes.\n\n<table>\n <tr>\n <th align=\"left\">Focus offset:</th>\n <td><$edit-text tiddler=\"$:/config/hotzone/focusOffset\" tag=\"input\" default=\"71px\" /></td>\n </tr>\n</table>"
},
"$:/temp/focussedTiddler": {
"title": "$:/temp/focussedTiddler"
},
"$:/plugins/felixhayashi/hotzone/License": {
"title": "$:/plugins/felixhayashi/hotzone/License",
"text": "This code is released under the BSD license. For the exact terms visit:\n\nhttps://github.com/felixhayashi/TW5-HotZone/blob/master/LICENSE"
},
"$:/plugins/felixhayashi/hotzone/Readme": {
"title": "$:/plugins/felixhayashi/hotzone/Readme",
"text": "Please visit the [[GitHub page|https://github.com/felixhayashi/TW5-HotZone]] for more information."
}
}
}
{
"tiddlers": {
"$:/plugins/felixhayashi/tiddlymap/layout": {
"text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline \n\nbody .tc-page-container-wrapper.tc-modal-displayed{-webkit-filter:inherit;-moz-filter:inherit;filter:inherit}body .tc-modal-wrapper{z-index:1010}body .tc-modal-wrapper .tc-modal-header svg{vertical-align:sub}body .tc-modal-wrapper .tc-modal-header h3{line-height:10px}body .tc-modal-wrapper .tc-modal-body{min-height:250px;max-height:70vh;padding-top:0px;padding-bottom:0px;overflow:auto}body .tc-modal-wrapper .tc-modal-footer{padding:8px}body .tc-modal-wrapper .tc-modal-footer .tmap-dialog-button{font-weight:bold}body .tc-modal-wrapper .tc-modal-footer .tmap-hidden-close-button{display:none}table.tmap-table tr:nth-child(odd),.tc-modal-body table.tmap-config-table tr:nth-child(odd){background-color:#F0F0F0}table.tmap-table tr:nth-child(even),.tc-modal-body table.tmap-config-table tr:nth-child(even){background-color:#FFFFFF}.tmap-save-canvas-preview{text-align:center;background:lightgray}.tmap-save-canvas-preview img{background-color:white;max-width:100%;max-height:100px;border:1px solid red}.tmap-list-separator{display:block;background-color:#efefef;margin:10px 0 5px 0;cursor:default;border-bottom:1px dotted gray;font-weight:bold;font-size:0.8em}.tmap-unicode-icon{width:1em;display:inline-block;text-align:center;color:black}html .tmap-link{color:#5778D8}html .tmap-link:hover{color:white;background:#5778D8}html .tmap-small-list,html .tmap-smaller-list,html .tmap-very-small-list{overflow:auto;min-height:2em;max-height:9em;display:block}html .tmap-smaller-list{max-height:7em}html .tmap-very-small-list{max-height:5empx}html .tc-tiddler-controls button.tmap-active-button svg{fill:#888888}html #tmap-node-filter-dialog #tmap-filter-tips{font-size:0.8em}html #tmap-node-filter-dialog textarea{height:100px;max-height:300px;overflow:auto;width:100%;font-size:11px;font-family:\"Courier New\", Courier, monospace}@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}){.tc-sidebar-scrollable .tmap-desktop-editor .tmap-widget:not(.tmap-fullscreen){display:none}}@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}){.tc-sidebar-scrollable .tmap-mobile-editor{display:none}.tc-modal-wrapper{z-index:1010}.tc-modal-wrapper .tc-modal{boder:1px solid #999999;left:calc(50% - 400px);width:802px}.tc-modal-wrapper .tc-modal-body{left:calc(50% - 400px);width:800px}}@-o-keyframes fadein-keyframes{0%{opacity:0}100%{opacity:1}}@-moz-keyframes fadein-keyframes{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadein-keyframes{0%{opacity:0}100%{opacity:1}}@keyframes flash fadein-keyframes{0%{opacity:0}100%{opacity:1}}@-o-keyframes fadeout-keyframes{0%{opacity:1}100%{opacity:0}}@-moz-keyframes fadeout-keyframes{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes fadeout-keyframes{0%{opacity:1}100%{opacity:0}}@keyframes flash fadeout-keyframes{0%{opacity:1}100%{opacity:0}}.tmap-config-widget{background:#F0F0F0;padding:5px;margin:5px 0;box-sizing:border-box;display:block}.tmap-config-widget .vis-network{display:none}.tmap-config-widget .vis-configuration-wrapper{width:100%}.tmap-config-widget .vis-configuration-wrapper .vis-config-rangeinput{height:inherit;margin-left:4px}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item{width:100%;height:inherit;background:none;padding-left:0px;left:0}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item.tmap-vis-config-item-active .vis-config-label::after{content:\"(inherited)\";position:absolute;display:inline-block;margin-left:10px;-o-animation:fadein-keyframes 1s;-moz-animation:fadein-keyframes 1s;-webkit-animation:fadein-keyframes 1s;animation:fadein-keyframes 1s;content:\"✔\";color:green;font-weight:bold;font-size:15px}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item button.tmap-config-item-reset{vertical-align:top;margin-left:5px}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item .vis-config-range{width:150px}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item .vis-config-range::-moz-range-track{width:150px !important}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item .vis-config-label{width:150px}.tmap-config-widget::after{clear:both;content:\"\";display:block}.tmap-flash-message{border:1px solid lightgray;padding:5px;margin:6px 0;display:block;color:#333333}.tmap-flash-message.tmap-info,.tmap-flash-message.tmap-plain,.tmap-flash-message.tmap-neutral{background:#F0F0F0}.tmap-flash-message.tmap-info::before,.tmap-flash-message.tmap-plain::before,.tmap-flash-message.tmap-neutral::before{content:\"i\";display:inline-block;border-radius:50%;width:0.8em;border:2px solid;font-family:serif;text-align:center;height:0.8em;font-weight:bold;line-height:0.8em;vertical-align:text-top;margin-right:2px}.tmap-flash-message.tmap-valid,.tmap-flash-message.tmap-success{background:#D1EED4}.tmap-flash-message.tmap-valid::before,.tmap-flash-message.tmap-success::before{content:\"i\";display:inline-block;border-radius:50%;width:0.8em;border:2px solid;font-family:serif;text-align:center;height:0.8em;font-weight:bold;line-height:0.8em;vertical-align:text-top;margin-right:2px}.tmap-flash-message.tmap-warning{background:#FFF6D1}.tmap-flash-message.tmap-warning::before{content:\"\";display:inline-block;background:url(<<tmap \"datauri\" \"$:/core/images/warning\" \"\">>);display:inline-block;width:1em;height:1em;background-size:100% 100%;vertical-align:text-top;margin-right:2px}.tmap-flash-message.tmap-malformed,.tmap-flash-message.tmap-invalid,.tmap-flash-message.tmap-danger{background:#EED5D1}.tmap-flash-message.tmap-malformed::before,.tmap-flash-message.tmap-invalid::before,.tmap-flash-message.tmap-danger::before{content:\"\";display:inline-block;background:url(<<tmap \"datauri\" \"$:/core/images/warning\" \"\">>);display:inline-block;width:1em;height:1em;background-size:100% 100%;vertical-align:text-top;margin-right:2px}.tmap-widget{background:#FFFFFF;width:auto;position:relative;border:1px dotted lightgray;padding:2px;color:#666;display:block}.tmap-widget .tmap-download-canvas{display:none}.tmap-widget.tmap-click-to-use:not(.tmap-fullscreen) .vis-network:not(.vis-active){cursor:pointer}.tmap-widget.tmap-click-to-use:not(.tmap-fullscreen) .vis-network:not(.vis-active) .vis-navigation{display:none}.tmap-widget.tmap-click-to-use:not(.tmap-fullscreen) .vis-network:not(.vis-active):hover:before{color:gray;background:white;content:\"Click to use\";font-size:14px;font-weight:bold;right:calc(50% - 65px - 5px);position:absolute;text-align:center;top:calc(50% - 14px - 5px);width:130px;z-index:2000;padding:5px;pointer-events:none;background-color:rgba(255,255,255,0.3)}.tmap-widget .tmap-loading-bar{display:none;position:absolute;text-align:center;font-size:2em;padding:10px;top:50%;background:rgba(245,245,245,0.5);z-index:1;width:250px;margin:auto;left:0px;right:0px}.tmap-widget .tmap-vis-graph{height:calc(100% - 35px)}.tmap-widget.tmap-no-buttons .vis-navigation{display:none}.tmap-widget.tmap-advanced-editor .tmap-topbar{background:#d6d9d8}.tmap-widget.tmap-advanced-editor .tmap-topbar .tmap-active-button{color:#488DCD}.tmap-widget.tmap-advanced-editor .tmap-topbar .tmap-active-button svg{fill:#488DCD}.tmap-widget.tmap-advanced-editor .tmap-topbar .tmap-unicode-button{font-size:1.5em;vertical-align:bottom;height:28px;fill:#555555}.tmap-widget.tmap-advanced-editor .tmap-topbar .tmap-unicode-button svg{vertical-align:baseline}.tmap-widget .tmap-menu-bar{width:100%}.tmap-widget .tmap-topbar{background:#F5F5F5;border-bottom:1px solid lightgray;padding:3px 5px;height:35px;position:relative}.tmap-widget .tmap-topbar .tmap-view-label{width:100%;text-align:center;font-weight:bold;padding-top:3px}.tmap-widget .tmap-topbar .tmap-focus-button{position:absolute;right:10px;top:6px}.tmap-widget .tmap-topbar .tmap-focus-button input{width:140px}.tmap-widget .tmap-topbar .tmap-search-dropdown{position:relative}.tmap-widget .tmap-topbar .tmap-search-dropdown .tc-drop-down{position:absolute;z-index:999;right:0px}.tmap-widget .tmap-topbar [hidden]{display:none}.tmap-widget .tmap-topbar select{width:30%;max-width:200px;word-wrap:initial;padding:0px;height:28px}.tmap-widget .tmap-topbar button{line-height:inherit;color:#666}.tmap-widget .tmap-topbar>*{display:inline-block}.tmap-widget .tmap-topbar .tmap-separator:after{color:#bdbdbd;margin:3px;content:\" | \"}.tmap-widget .tmap-topbar .tc-edit-add-tag .tc-add-tag-name input{width:70%}.tmap-widget .tmap-topbar .tc-sidebar-header{text-shadow:none}.tmap-widget .tmap-topbar .tc-edit-tags{border:none;padding:inherit;box-shadow:none}.tmap-widget.tmap-static-mode .tmap-topbar{height:initial}.tmap-widget.tmap-static-mode .tmap-vis-graph{text-align:center;cursor:not-allowed}.tmap-widget.tmap-static-mode .tmap-vis-graph:not(.tmap-graph-placeholder):hover::before{box-shadow:10px 10px 5px lightgray;color:gray;background:white;content:\"Static\";font-size:18px;font-weight:bold;left:50%;margin-left:-100px;position:absolute;text-align:center;top:50px;width:200px;z-index:2000;padding:5px;pointer-events:none}.tmap-widget.tmap-static-mode .tmap-vis-graph.tmap-graph-placeholder::before{content:\"No Preview\";display:block;text-align:center;padding:20px}.tmap-widget .tc-drop-down{min-width:170px;padding:5px;margin:5px 0}.tmap-widget .tc-drop-down button,.tmap-widget .tc-drop-down a{padding:0 2px;text-decoration:none}.tmap-widget .tc-drop-down button:hover,.tmap-widget .tc-drop-down a:hover{color:#ffffff}.tmap-widget .tc-drop-down button svg,.tmap-widget .tc-drop-down a svg{vertical-align:middle}.tmap-widget .tc-block-dropdown{width:370px;min-width:370px;padding:5px;margin:15px 0 0 -370px}.tmap-widget .tc-block-dropdown a{display:inline;padding:0px}.tmap-widget.tmap-plain-design{border:none;padding:0px}.tmap-widget.tmap-plain-design .tmap-topbar{display:none}.tc-sidebar-scrollable .tmap-widget{position:absolute;min-height:350px}.tmap-widget div.vis-network .vis-edit-mode{height:26px}.tmap-widget div.vis-network .vis-manipulation{height:34px;border-top:1px solid #d6d9d8;background:rgba(245,245,245,0.7)}.tmap-widget div.vis-network .vis-navigation .vis-button.tmap-button-enabled{right:15px}.tmap-widget div.vis-network .vis-navigation .vis-button.tmap-button-enabled.tmap-fullscreen-button{bottom:90px;background-image:url(<<tmap \"datauri\" \"$:/plugins/felixhayashi/tiddlymap/media/fullscreen.png\" \"\">>)}.tmap-widget div.vis-network .vis-navigation .vis-button.tmap-button-enabled.tmap-halfscreen-button{bottom:130px;background-image:url(<<tmap \"datauri\" \"$:/plugins/felixhayashi/tiddlymap/media/halfscreen.png\" \"\">>)}.tmap-widget div.vis-network .vis-navigation .vis-button:hover{box-shadow:0 0 3px 3px rgba(75,75,75,0.3)}.tmap-widget div.vis-network .vis-navigation .vis-button:hover:before{background:beige;display:block;color:black;padding:3px;position:relative;border:1px solid lightgray;width:80px;left:-100px;top:-50px;z-index:1000;text-align:center}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-up:before{left:30px;content:\"Scroll up\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-down:before{left:30px;content:\"Scroll down\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-right:before{left:30px;content:\"Scroll right\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-left:before{left:30px;content:\"Scroll left\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-zoomOut:before{content:\"Zoom out\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-zoomIn:before{content:\"Zoom in\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-zoomExtends:before{content:\"Fit whole graph\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.tmap-fullscreen-button:before{content:\"Toggle Fullscreen\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.tmap-halfscreen-button:before{content:\"Toggle Halfscreen\"}.tc-dropzone>.tc-story-river .tmap-widget .vis-navigation .tmap-halfscreen-button{display:none}.tc-dropzone>.tc-story-river .tmap-widget:not(.tmap-fullscreen) .vis-navigation .vis-button{display:none}.tc-dropzone>.tc-story-river .tmap-widget:hover .vis-navigation .vis-button.tmap-fullscreen-button{display:block}.tc-dropzone>.tc-story-river .tmap-widget:hover .vis-navigation .vis-button.vis-zoomExtends{display:block}body.tmap-has-fullscreen-widget{overflow:hidden}body.tmap-has-fullscreen-widget .tmap-widget.tmap-fullscreen{background:white !important;height:100% !important;width:100% !important;position:fixed !important;top:0 !important;right:0 !important;bottom:0 !important;left:0 !important;z-index:999 !important;border:none !important;margin:0 !important}body.tmap-has-fullscreen-widget .tc-dropzone>*.tmap-has-fullscreen-widget{background:white !important;height:100% !important;width:100% !important;position:fixed !important;top:0 !important;right:0 !important;bottom:0 !important;left:0 !important;z-index:999 !important;border:none !important;margin:0 !important}body.tmap-has-fullscreen-widget .tc-dropzone>*:not(.tmap-has-fullscreen-widget){display:none}body.tmap-has-halfscreen-widget .tmap-widget.tmap-halfscreen{background:white !important;height:100% !important;width:100% !important;position:fixed !important;top:0 !important;right:0 !important;bottom:0 !important;left:0 !important;z-index:999 !important;border:none !important;margin:0 !important;position:absolute !important;border-left:1px solid lightgray !important}.tc-modal-footer .tmap-hidden-close-button{display:none}.tmap-modal-content{position:relative;padding:1em 0;padding-top:0}.tmap-modal-content table tr td{vertical-align:top}.tmap-modal-content :not(pre)>code{padding:1px;font-size:0.9em;position:relative;top:-1px}.tmap-modal-content :not(pre)>code{color:#666}.tmap-modal-content .tc-tab-set .tc-tab-content{margin-top:0.5em}.tmap-modal-content .tc-image-button{font-size:14px}.tmap-modal-content fieldset{margin:0px}.tmap-modal-content fieldset legend{font-weight:bold}.tc-modal-body .tmap-modal-editor>p{margin:0px}.tc-modal-body .tmap-modal-editor .tmap-template-select select{width:50%}.tc-modal-body .tmap-modal-editor .tc-tiddler-frame{margin:auto;width:auto}.tc-modal-body .tmap-modal-editor .tc-tiddler-frame .tc-tiddler-controls{display:none}.tc-modal-body .tmap-modal-editor .tc-tiddler-frame .tc-tiddler-title{display:none}.tc-modal-body table{margin:6px 0;border:none;width:100%}.tc-modal-body table td,.tc-modal-body table th{border:1px solid lightgray}.tc-modal-body table.tmap-key-value-table th{width:30%;background-color:#F0F0F0}.tc-modal-body table.tmap-config-table.tmap-large-input tr td:last-child{width:20%}.tc-modal-body table.tmap-config-table.tmap-small-input tr td:last-child{width:60%}.tc-modal-body table.tmap-config-table tr td{border:none;vertical-align:top;padding:5px}.tc-modal-body table.tmap-config-table tr td:first-child{width:15%}.tc-modal-body table.tmap-config-table tr td:last-child{width:40%}.tc-modal-body table.tmap-config-table tr td input:not([type=radio]),.tc-modal-body table.tmap-config-table tr td textarea,.tc-modal-body table.tmap-config-table tr td select{width:100%;word-wrap:normal}.tc-modal-body table.tmap-config-table tr td textarea{height:100%}.tc-modal-body table.tmap-config-table tr td .tmap-no-stretch input,.tc-modal-body table.tmap-config-table tr td .tmap-no-stretch textarea,.tc-modal-body table.tmap-config-table tr td .tmap-no-stretch select{width:auto}.tc-modal-body table.tmap-config-table tr td div.tmap-button-wrapper{text-align:center}.tc-modal-body table.tmap-config-table tr td .tmap-note{margin-top:0.5em}.tc-modal-body table.tmap-config-table tr td .tmap-description{font-style:italic}#tmap-element-type-manager>div:first-child{height:50vh;float:left;width:21%;background:linear-gradient(90deg, #f5f5f5 0%, #fff 50%)}#tmap-element-type-manager>div:first-child .tmap-searchbar{padding:1em 0 0 0}#tmap-element-type-manager>div:first-child .tmap-searchbar input{width:calc(100% - 36px)}#tmap-element-type-manager>div:first-child .tmap-searchbar button{width:30px;float:right}#tmap-element-type-manager>div:first-child ul{height:calc(100% - 65px);overflow:auto;margin-top:1em;padding:0}#tmap-element-type-manager>div:first-child ul.no-bullets li{list-style:none}#tmap-element-type-manager>div:first-child ul li{white-space:nowrap}#tmap-element-type-manager>div:first-child ul li .tmap-ranking{width:30px;display:inline-block}#tmap-element-type-manager>div:last-child{height:100%;width:calc(79% - 15px);float:right}#tmap-element-type-manager>div:last-child .tc-tab-set .tc-tab-content{overflow:auto;height:50vh}.tmap-manage-node-types .tmap-edge-type-specific{display:none !important}.tmap-manage-edge-types .tmap-node-type-specific{display:none !important}.tmap-modal-fullscreen-editor .tc-tab-content p{margin:1em 0}.tmap-has-pending-template{background-color:#C1EDC4}#tmap-search-table td{border:none;padding-left:0px}#tmap-search-table td:first-child{width:30px}#tmap-search-table b{display:inline-block;width:40px;text-align:right}#tmap-search-table ul{padding-left:20px;margin:1em 0 0 0}#tmap-search-table ul li{list-style:inherit}#tmap-search-table ul button{text-align:left}button.tmap-go-back{margin-bottom:1em;font-weight:bold}.tmap-badges>span,.tmap-badge{background:gray;font-size:11px;color:white;padding:3px 4px;display:inline-block;font-weight:bold;border-radius:2px;line-height:1em;cursor:help}.tmap-badges>span.tmap-red-flag,.tmap-badge.tmap-red-flag{background:red}.tmap-popup{display:none;position:absolute;opacity:0;transition:opacity 0.3s ease}.tmap-popup.tmap-popup-active{opacity:1}.tmap-tooltip{box-shadow:3px 3px 10px rgba(0,0,0,0.2);min-width:100px;min-height:50px;max-width:<<tmap option config.sys.popups.width>>;max-height:<<tmap option config.sys.popups.height>>;padding:5px;resize:both;overflow:auto;cursor:auto;font-family:verdana;font-size:14px;background-color:#f5f4ed;border:1px solid #808074;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.tmap-tooltip[style*=\"height\"]{max-height:none !important}.tmap-tooltip[style*=\"width\"]{max-width:none !important}.tmap-quick-connect{font-size:0.7em}.tmap-quick-connect p{padding-left:0;padding-right:0}.tmap-quick-connect .tc-drop-down{padding:5px;width:250px;white-space:normal;line-height:1em;position:absolute;z-index:1000;right:50px;background:linear-gradient(45deg, #f5f5f5 0%, #fff 50%, #f5f5f5 100%)}.tmap-quick-connect .tc-drop-down:first-child{padding-top:0;margin-top:0}.tmap-quick-connect .tc-drop-down .title{margin:1.5em 0 0.5em 0;font-weight:bold;color:gray}.tmap-quick-connect .tc-drop-down select{width:80px;word-wrap:initial}.tmap-quick-connect .tc-drop-down table{width:100%;border:none;margin:0.5em 0}.tmap-quick-connect .tc-drop-down table td,.tmap-quick-connect .tc-drop-down table th{padding:3px 3px 3px 0;vertical-align:middle;font-weight:normal;border:none}.tmap-quick-connect .tc-drop-down table td table,.tmap-quick-connect .tc-drop-down table th table{margin:0}.tmap-quick-connect .tc-drop-down .tmap-quick-connect-search-bar,.tmap-quick-connect .tc-drop-down .tmap-quick-connect-existing-bar{background:#F1F1F1;margin-top:0;border-bottom:1px solid #D5D5D5;border-top:1px solid #D5D5D5}.tmap-quick-connect .tc-drop-down table.tmap-quick-connect-search-bar td,.tmap-quick-connect .tc-drop-down th{padding:5px}.tmap-quick-connect .tc-drop-down .tmap-quick-connect-existing-bar{padding:5px}.tmap-quick-connect .tc-drop-down .tmap-connection-table th,.tmap-quick-connect .tc-drop-down .tmap-connection-table td{text-align:left;padding:1px 1px 1px 0}.tmap-quick-connect .tc-drop-down .tmap-connection-table button{width:20px;padding:0px}.tmap-quick-connect .tc-drop-down .tmap-scroll-table{height:120px;overflow:auto;display:block}.tmap-quick-connect .tc-drop-down hr{border:0;height:0;border-top:1px solid rgba(0,0,0,0.1);border-bottom:1px solid rgba(255,255,255,0.3)}.tmap-quick-connect .tc-drop-down a{display:inline;padding:0;color:#5778d8;background:transparent}.tmap-quick-connect .tc-drop-down a:hover{background:transparent;color:#5778d8;text-decoration:underline}.tmap-quick-connect .tc-drop-down button{display:inline-block;padding:0px 3px;text-align:center;color:#333333;line-height:1.0}.tmap-quick-connect .tc-drop-down button:hover{color:#ffffff}.tmap-quick-connect .tc-drop-down button svg{fill:inherit}.tmap-quick-connect .tc-drop-down button svg:hover{fill:#ffffff}\n",
"title": "$:/plugins/felixhayashi/tiddlymap/layout",
"type": "text/vnd.tiddlywiki",
"tags": [
"$:/tags/Stylesheet"
]
},
"$:/plugins/felixhayashi/tiddlymap/js/AbstractEdgeTypeSubscriber": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/AbstractEdgeTypeSubscriber",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var i=r[t];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(r,t,i){if(t)e(r.prototype,t);if(i)e(r,i);return r}}();/* @preserve TW-Guard */ /* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/AbstractEdgeTypeSubscriber\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */\n/* @preserve TW-Guard */var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,r){if(!(e instanceof r)){throw new TypeError(\"Cannot call a class as a function\")}}var AbstractEdgeTypeSubscriber=function(){function e(r){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},i=t.priority,n=i===undefined?0:i,a=t.skipOthers,s=a===undefined?true:a,u=t.ignore,l=u===undefined?false:u;_classCallCheck(this,e);this.allEdgeTypes=r;this.priority=n;this.skipOthers=s;this.ignore=l}_createClass(e,[{key:\"setTracker\",value:function e(r){this.tracker=r}},{key:\"loadEdges\",value:function e(r,t,i){throw new _exception.MissingOverrideError(this,\"loadEdges\")}},{key:\"canHandle\",value:function e(r){throw new _exception.MissingOverrideError(this,\"canHandle\")}},{key:\"insertEdge\",value:function e(r,t,i){}},{key:\"deleteEdge\",value:function e(r,t,i){}}]);return e}();exports.default=AbstractEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/AbstractEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var i=r[t];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(r,t,i){if(t)e(r.prototype,t);if(i)e(r,i);return r}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _Edge=require(\"$:/plugins/felixhayashi/tiddlymap/js/Edge\");var _Edge2=_interopRequireDefault(_Edge);var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");var _AbstractRefEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber\");var _AbstractRefEdgeTypeSubscriber2=_interopRequireDefault(_AbstractRefEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,r){if(!(e instanceof r)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,r){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return r&&(typeof r===\"object\"||typeof r===\"function\")?r:e}function _inherits(e,r){if(typeof r!==\"function\"&&r!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof r)}e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(r)Object.setPrototypeOf?Object.setPrototypeOf(e,r):e.__proto__=r}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var AbstractMagicEdgeTypeSubscriber=function(e){_inherits(r,e);function r(e,t){_classCallCheck(this,r);var i=_possibleConstructorReturn(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e,t));i.edgeTypesByFieldName=_utils2.default.makeHashMap();for(var a in e){var n=e[a];if(i.canHandle(n)){i.edgeTypesByFieldName[n.name]=n}}return i}_createClass(r,[{key:\"getReferencesFromField\",value:function e(r,t,i){throw new _exception.MissingOverrideError(this,\"getReferencesFromField\")}},{key:\"getReferences\",value:function e(r,t,i){var a=_utils2.default.makeHashMap();var n=r.fields;for(var s in n){var u=this.edgeTypesByFieldName[s];if(!u||i&&!i[u.id])continue;var o=this.getReferencesFromField(r,s,t);if(o&&o.length){a[u.id]=o}}return a}}]);return r}(_AbstractRefEdgeTypeSubscriber2.default);exports.default=AbstractMagicEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/AbstractMagicEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _Edge=require(\"$:/plugins/felixhayashi/tiddlymap/js/Edge\");var _Edge2=_interopRequireDefault(_Edge);var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");var _AbstractEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractEdgeTypeSubscriber\");var _AbstractEdgeTypeSubscriber2=_interopRequireDefault(_AbstractEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var AbstractRefEdgeTypeSubscriber=function(e){_inherits(t,e);function t(){_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}_createClass(t,[{key:\"loadEdges\",value:function e(t,r,i){var a=this.getReferences(t,r,i);if(!a||!_utils2.default.hasElements(a))return;var s=t.fields[\"tmap.id\"];var n=$tm.tracker.getIdsByTiddlers();var u=this.allEdgeTypes;var l=_utils2.default.getTiddlerRef(t);var o=_utils2.default.makeHashMap();for(var f in a){var c=a[f];if(!c){continue}var p=u[f];for(var d=c.length;d--;){var _=c[d];if(!_||!$tw.wiki.tiddlerExists(_)||_utils2.default.isSystemOrDraft(_)||r&&!r[_]){continue}var b=p.id+$tw.utils.hashString(l+_);o[b]=new _Edge2.default(s,n[_],p.id,b)}}return o}},{key:\"getReferences\",value:function e(t,r,i){throw new _exception.MissingOverrideError(this,\"getReferences\")}}]);return t}(_AbstractEdgeTypeSubscriber2.default);exports.default=AbstractRefEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/AbstractRefEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/EdgeTypeSubscriberRegistry": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/EdgeTypeSubscriberRegistry",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var s=r[t];s.enumerable=s.enumerable||false;s.configurable=true;if(\"value\"in s)s.writable=true;Object.defineProperty(e,s.key,s)}}return function(r,t,s){if(t)e(r.prototype,t);if(s)e(r,s);return r}}();function _classCallCheck(e,r){if(!(e instanceof r)){throw new TypeError(\"Cannot call a class as a function\")}}\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/EdgeTypeSubscriberRegistry\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var EdgeTypeSubscriberRegistry=function(){function e(r,t,s){_classCallCheck(this,e);this.subscriberClasses=r;this.tracker=s;this.updateIndex(t)}_createClass(e,[{key:\"getAllForType\",value:function e(r){var t=this.allSubscribers;var s=[];for(var i=0,a=t.length;i<a;i++){if(t[i].canHandle(r)){s.push(t[i]);if(t[i].skipOthers){break}}}return s}},{key:\"getAll\",value:function e(){return this.allSubscribers}},{key:\"updateIndex\",value:function e(r){var t=[];var s=this.subscriberClasses;for(var i in s){var a=new s[i](r);a.setTracker(this.tracker);if(a.ignore===true){continue}t.push(a)}t.sort(function(e,r){return r.priority-e.priority});this.allSubscribers=t}}]);return e}();exports.default=EdgeTypeSubscriberRegistry;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/EdgeTypeSubscriberRegistry.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/tmap": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/tmap",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.TmapEdgeTypeSubscriber=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r){if(Object.prototype.hasOwnProperty.call(r,i)){e[i]=r[i]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _Edge=require(\"$:/plugins/felixhayashi/tiddlymap/js/Edge\");var _Edge2=_interopRequireDefault(_Edge);var _AbstractEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractEdgeTypeSubscriber\");var _AbstractEdgeTypeSubscriber2=_interopRequireDefault(_AbstractEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/tmap\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var TmapEdgeTypeSubscriber=function(e){_inherits(t,e);function t(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,_extends({priority:0},r)))}_createClass(t,[{key:\"loadEdges\",value:function e(t,r,i){var a=_utils2.default.parseFieldData(t,\"tmap.edges\");if(!a){return}var n=this.tracker.getTiddlersByIds();var u=t.fields[\"tmap.id\"];var s=_utils2.default.makeHashMap();for(var l in a){var o=a[l];var d=n[o.to];if(d&&(!r||r[d])&&(!i||i[o.type])){s[l]=new _Edge2.default(u,o.to,o.type,l)}}return s}},{key:\"insertEdge\",value:function e(t,r,i){var a=_utils2.default.parseFieldData(t,\"tmap.edges\",{});r.id=r.id||_utils2.default.genUUID();a[r.id]={to:r.to,type:i.id};_utils2.default.writeFieldData(t,\"tmap.edges\",a,$tm.config.sys.jsonIndentation);return r}},{key:\"deleteEdge\",value:function e(t,r,i){if(!r.id)return;var a=_utils2.default.parseFieldData(t,\"tmap.edges\",{});delete a[r.id];_utils2.default.writeFieldData(t,\"tmap.edges\",a,$tm.config.sys.jsonIndentation);return r}},{key:\"canHandle\",value:function e(t){return true}}]);return t}(_AbstractEdgeTypeSubscriber2.default);exports.TmapEdgeTypeSubscriber=TmapEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/TmapEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/field": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/field",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.FieldEdgeTypeSubscriber=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r){if(Object.prototype.hasOwnProperty.call(r,i)){e[i]=r[i]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _AbstractMagicEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber\");var _AbstractMagicEdgeTypeSubscriber2=_interopRequireDefault(_AbstractMagicEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/field\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var FieldEdgeTypeSubscriber=function(e){_inherits(t,e);function t(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,_extends({priority:10},r)))}_createClass(t,[{key:\"canHandle\",value:function e(t){return t.namespace===\"tw-field\"}},{key:\"getReferencesFromField\",value:function e(t,r,i){return[t.fields[r]]}},{key:\"insertEdge\",value:function e(t,r,i){var n=this.tracker.getTiddlerById(r.to);if(n==null){return}_utils2.default.setField(t,i.name,n);return r}},{key:\"deleteEdge\",value:function e(t,r,i){var n=this.tracker.getTiddlerById(r.to);if(n==null){return}_utils2.default.setField(t,i.name,undefined);return r}}]);return t}(_AbstractMagicEdgeTypeSubscriber2.default);exports.FieldEdgeTypeSubscriber=FieldEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/magicEdgeTypeSubscriber/FieldEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/filter": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/filter",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.FilterEdgeTypeSubstriber=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r){if(Object.prototype.hasOwnProperty.call(r,i)){e[i]=r[i]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _AbstractMagicEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber\");var _AbstractMagicEdgeTypeSubscriber2=_interopRequireDefault(_AbstractMagicEdgeTypeSubscriber);var _widget=require(\"$:/core/modules/widgets/widget.js\");var _widget2=_interopRequireDefault(_widget);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/filter\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var FilterEdgeTypeSubstriber=function(e){_inherits(t,e);function t(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,_extends({priority:10},r)))}_createClass(t,[{key:\"canHandle\",value:function e(t){return t.namespace===\"tw-filter\"}},{key:\"getReferencesFromField\",value:function e(t,r,i){var n=t.fields[r];var a=new _widget2.default.widget({});a.setVariable(\"currentTiddler\",t.fields.title);var u=new _widget2.default.widget({},{parentWidget:a});var s=_utils2.default.getMatches(n,i,u);return s}},{key:\"insertEdge\",value:function e(t,r,i){if(!r.to){return}var n=i.name;var a=t.fields[n]||\"\";var u=this.tracker.getTiddlerById(r.to);var s=$tw.utils.stringifyList([u]);if(a.length>0){s=\" \"+s}_utils2.default.setField(t,n,a+s);return r}}]);return t}(_AbstractMagicEdgeTypeSubscriber2.default);exports.FilterEdgeTypeSubstriber=FilterEdgeTypeSubstriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/magicEdgeTypeSubscriber/FilterEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/list": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/list",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.ListEdgeTypeSubscriber=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r){if(Object.prototype.hasOwnProperty.call(r,i)){e[i]=r[i]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _AbstractMagicEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber\");var _AbstractMagicEdgeTypeSubscriber2=_interopRequireDefault(_AbstractMagicEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/list\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var ListEdgeTypeSubscriber=function(e){_inherits(t,e);function t(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,_extends({priority:10},r)))}_createClass(t,[{key:\"canHandle\",value:function e(t){return t.namespace===\"tw-list\"}},{key:\"getReferencesFromField\",value:function e(t,r,i){return $tw.utils.parseStringArray(t.fields[r])}},{key:\"insertEdge\",value:function e(t,r,i){if(!r.to){return}var n=i.name;var s=$tw.utils.parseStringArray(t.fields[n]);s=(s||[]).slice();var a=this.tracker.getTiddlerById(r.to);s.push(a);_utils2.default.setField(t,n,$tw.utils.stringifyList(s));return r}},{key:\"deleteEdge\",value:function e(t,r,i){var n=$tw.utils.parseStringArray(t.fields[i.name]);n=(n||[]).slice();var s=this.tracker.getTiddlerById(r.to);var a=n.indexOf(s);if(a>-1){n.splice(a,1)}var u=void 0;if(n.length>0){u=$tw.utils.stringifyList(n)}_utils2.default.setField(t,i.name,u);return r}}]);return t}(_AbstractMagicEdgeTypeSubscriber2.default);exports.ListEdgeTypeSubscriber=ListEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/magicEdgeTypeSubscriber/ListEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/link": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/link",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.LinkEdgeTypeSubscriber=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r){if(Object.prototype.hasOwnProperty.call(r,n)){e[n]=r[n]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||false;n.configurable=true;if(\"value\"in n)n.writable=true;Object.defineProperty(e,n.key,n)}}return function(t,r,n){if(r)e(t.prototype,r);if(n)e(t,n);return t}}();var _AbstractRefEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber\");var _AbstractRefEdgeTypeSubscriber2=_interopRequireDefault(_AbstractRefEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/link\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var LinkEdgeTypeSubscriber=function(e){_inherits(t,e);function t(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,_extends({priority:20},r)))}_createClass(t,[{key:\"canHandle\",value:function e(t){return t.id===\"tw-body:link\"}},{key:\"getReferences\",value:function e(t,r,n){if(n&&!n[\"tw-body:link\"]){return}var i=$tw.wiki.getTiddlerLinks(t.fields.title);if(!i||!i.length){return}return{\"tw-body:link\":i}}}]);return t}(_AbstractRefEdgeTypeSubscriber2.default);exports.LinkEdgeTypeSubscriber=LinkEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/refEdgeTypeSubscriber/LinkEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/transclude": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/transclude",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.TranscludeEdgeTypeSubscriber=undefined;var _extends=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t){if(Object.prototype.hasOwnProperty.call(t,n)){e[n]=t[n]}}}return e};var _createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||false;n.configurable=true;if(\"value\"in n)n.writable=true;Object.defineProperty(e,n.key,n)}}return function(r,t,n){if(t)e(r.prototype,t);if(n)e(r,n);return r}}();var _AbstractRefEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber\");var _AbstractRefEdgeTypeSubscriber2=_interopRequireDefault(_AbstractRefEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,r){if(!(e instanceof r)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,r){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return r&&(typeof r===\"object\"||typeof r===\"function\")?r:e}function _inherits(e,r){if(typeof r!==\"function\"&&r!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof r)}e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(r)Object.setPrototypeOf?Object.setPrototypeOf(e,r):e.__proto__=r}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/transclude\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var TranscludeEdgeTypeSubscriber=function(e){_inherits(r,e);function r(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,r);return _possibleConstructorReturn(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e,_extends({priority:20,ignore:typeof $tw.wiki.getTiddlerTranscludes!==\"function\"},t)))}_createClass(r,[{key:\"canHandle\",value:function e(r){return r.id===\"tw-body:transclude\"}},{key:\"getReferences\",value:function e(r,t,n){if(n&&!n[\"tw-body:transclude\"]){return}var i=$tw.wiki.getTiddlerTranscludes(r.fields.title);if(!i||!i.length){return}return{\"tw-body:transclude\":i}}}]);return r}(_AbstractRefEdgeTypeSubscriber2.default);exports.TranscludeEdgeTypeSubscriber=TranscludeEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/refEdgeTypeSubscriber/TranscludeEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/Edge": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/Edge",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/Edge\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var Edge=function e(t,i,s,l){_classCallCheck(this,e);this.from=t;this.to=i;this.type=s;this.id=l||_utils2.default.genUUID()};exports.default=Edge;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/graph/Edge.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/EdgeType": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/EdgeType",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r){if(Object.prototype.hasOwnProperty.call(r,n)){e[n]=r[n]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||false;n.configurable=true;if(\"value\"in n)n.writable=true;Object.defineProperty(e,n.key,n)}}return function(t,r,n){if(r)e(t.prototype,r);if(n)e(t,n);return t}}();var _MapElementType2=require(\"$:/plugins/felixhayashi/tiddlymap/js/MapElementType\");var _MapElementType3=_interopRequireDefault(_MapElementType2);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var r in e){if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/EdgeType\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var EdgeType=function(e){_inherits(t,e);function t(e,r){_classCallCheck(this,t);var n=t.getIdParts(e),o=n.marker,a=n.namespace,i=n.name;e=t.getId(o,a,i);var l=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,env.path.edgeTypes,t.fieldMeta,r));l.id=e;l.marker=o;l.name=i;l.namespace=a;var u=(l.style||{}).arrows;if(u){l.invertedArrow=isArrowEnabled(u,\"from\");l.toArrow=isArrowEnabled(u,\"to\")||isArrowEnabled(u,\"middle\");l.biArrow=l.invertedArrow===l.toArrow;if(l.biArrow){l.toArrow=true;l.invertedArrow=true}}else{l.toArrow=true}Object.freeze(l);return l}_createClass(t,[{key:\"getLabel\",value:function e(){return this.label||this.name}}],[{key:\"getIdParts\",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:\"\";t=_utils2.default.getWithoutPrefix(t,env.path.edgeTypes+\"/\");var r=t.match(edgeTypeRegex)||[];return{marker:r[1]||\"\",namespace:r[3]&&r[2]||\"\",name:r[3]||r[2]||\"\"}}},{key:\"getId\",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:\"\";var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"\";var n=arguments[2];return n?t+(r&&r+\":\")+n:\"tmap:unknown\"}}]);return t}(_MapElementType3.default);EdgeType.getInstance=function(e){return e instanceof EdgeType?e:new EdgeType(e)};EdgeType.fieldMeta=_extends({},_MapElementType3.default.fieldMeta,{label:{},\"show-label\":{}});var isArrowEnabled=function e(t,r){var n=t[r];if(n==null&&r===\"to\"){return true}return(typeof n===\"undefined\"?\"undefined\":_typeof(n))===\"object\"?n.enabled!==false:n===true};var edgeTypeRegex=new RegExp(\"^(_?)([^:_][^:]*):?([^:]*)\");exports.default=EdgeType;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/graph/EdgeType.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/MapElementType": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/MapElementType",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(t){return typeof t}:function(t){return t&&typeof Symbol===\"function\"&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t};var _createClass=function(){function t(t,e){for(var i=0;i<e.length;i++){var l=e[i];l.enumerable=l.enumerable||false;l.configurable=true;if(\"value\"in l)l.writable=true;Object.defineProperty(t,l.key,l)}}return function(e,i,l){if(i)t(e.prototype,i);if(l)t(e,l);return e}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/MapElementType\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _classCallCheck(t,e){if(!(t instanceof e)){throw new TypeError(\"Cannot call a class as a function\")}}var MapElementType=function(){function t(e,i,l,s){_classCallCheck(this,t);this.id=e;this.root=i;this._fieldMeta=l;this.fullPath=this.root+\"/\"+this.id;this.isShipped=$tw.wiki.getSubTiddler($tm.path.pluginRoot,this.fullPath);this._load(s||this.fullPath)}_createClass(t,[{key:\"_load\",value:function t(e){if(!e){return}if(typeof e===\"string\"){var i=_utils2.default.startsWith(e,this.root);var l=i?e:this.root+\"/\"+e;this._loadFromTiddler(l)}else if(e instanceof $tw.Tiddler){this._loadFromTiddler(e)}else if((typeof e===\"undefined\"?\"undefined\":_typeof(e))===\"object\"){for(var s in this._fieldMeta){this[s]=e[s]}}}},{key:\"_loadFromTiddler\",value:function t(e){var i=_utils2.default.getTiddler(e);if(!i){return}var l=$tw.wiki.getSubTiddler($tm.path.pluginRoot,this.fullPath)||{};var s=$tw.utils.extend({},l.fields,i.fields);for(var r in this._fieldMeta){var a=this._fieldMeta[r].parse;var f=s[r];this[r]=a?a.call(this,f):f}}},{key:\"exists\",value:function t(){return _utils2.default.tiddlerExists(this.fullPath)}},{key:\"setStyle\",value:function t(e,i){if(typeof e===\"string\"){e=_utils2.default.parseJSON(e)}if((typeof e===\"undefined\"?\"undefined\":_typeof(e))===\"object\"){if(i){_utils2.default.merge(this.style,e)}else{this.style=e}}}},{key:\"save\",value:function t(e,i){if(!e){e=this.fullPath}else if(typeof e!==\"string\"){return}var l={title:e,text:\"\"};if(!_utils2.default.startsWith(e,this.root)){l.id=this.id}for(var s in this._fieldMeta){var r=this._fieldMeta[s].stringify;l[s]=r?r.call(this,this[s]):this[s]}if(!this.exists()){Object.assign(l,$tw.wiki.getCreationFields())}if(i!==true){Object.assign(l,$tw.wiki.getModificationFields())}$tw.wiki.addTiddler(new $tw.Tiddler(l))}}]);return t}();MapElementType.fieldMeta={description:{},style:{parse:_utils2.default.parseJSON,stringify:JSON.stringify},modified:{},created:{}};exports.default=MapElementType;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/graph/MapElementType.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/NodeType": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/NodeType",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r){if(Object.prototype.hasOwnProperty.call(r,n)){e[n]=r[n]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||false;n.configurable=true;if(\"value\"in n)n.writable=true;Object.defineProperty(e,n.key,n)}}return function(t,r,n){if(r)e(t.prototype,r);if(n)e(t,n);return t}}();var _MapElementType2=require(\"$:/plugins/felixhayashi/tiddlymap/js/MapElementType\");var _MapElementType3=_interopRequireDefault(_MapElementType2);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/NodeType\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var NodeType=function(e){_inherits(t,e);function t(e,r){_classCallCheck(this,t);e=typeof e===\"string\"?_utils2.default.getWithoutPrefix(e,$tm.path.nodeTypes+\"/\"):\"tmap:unknown\";var n=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,$tm.path.nodeTypes,t.fieldMeta,r));Object.freeze(n);return n}_createClass(t,[{key:\"getInheritors\",value:function e(t){return this.scope?_utils2.default.getMatches(this.scope,t||$tw.wiki.allTitles()):[]}}]);return t}(_MapElementType3.default);NodeType.getInstance=function(e){return e instanceof NodeType?e:new NodeType(e)};NodeType.fieldMeta=_extends({},_MapElementType3.default.fieldMeta,{view:{},priority:{parse:function e(t){return isNaN(t)?1:parseInt(t)},stringify:function e(t){return _utils2.default.isInteger(t)?t.toString():\"1\"}},scope:{stringify:_utils2.default.getWithoutNewLines},\"fa-icon\":{},\"tw-icon\":{}});exports.default=NodeType;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/graph/NodeType.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var r in i){if(Object.prototype.hasOwnProperty.call(i,r)){e[r]=i[r]}}}return e};var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||false;r.configurable=true;if(\"value\"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,i,r){if(i)e(t.prototype,i);if(r)e(t,r);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var i in e){if(Object.prototype.hasOwnProperty.call(e,i))t[i]=e[i]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var ViewAbstraction=function(){function e(t){var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,e);if(t instanceof e){return t}this._registerPaths(t);if(i.isCreate){if(!this.configTRef){var r=_utils2.default.getRandomLabel({plural:true});this.configTRef=$tw.wiki.generateNewTitle($tm.path.views+\"/\"+r)}this._createView(i)}else if(!e.exists(this.getRoot())){throw new ResourceNotFoundException(\"ViewAbstraction\",t)}}_createClass(e,[{key:\"isLocked\",value:function e(){return $tw.wiki.isShadowTiddler(this.configTRef)}},{key:\"update\",value:function e(t){var i=t.changedTiddlers;if(t[env.path.edgeTypes]||_utils2.default.hasKeyWithPrefix(i,this.getRoot())){this._clearCaches();return true}return false}},{key:\"addPlaceholder\",value:function e(t){_utils2.default.cp(_utils2.default.getTiddlerRef(t),this.snapshotTRef,true)}},{key:\"exists\",value:function t(){return e.exists(this)}},{key:\"getRoot\",value:function e(){return this.configTRef}},{key:\"getCreationDate\",value:function e(t){var i=$tw.wiki.getTiddler(this.configTRef).fields[\"created\"];if(t){return i instanceof Date?$tw.utils.formatDateString(i,\"DDth MMM YYYY\"):\"\"}return i}},{key:\"getLabel\",value:function e(){return _utils2.default.getBasename(this.configTRef)}},{key:\"destroy\",value:function e(){_utils2.default.deleteTiddlers(_utils2.default.getMatches(\"[prefix[\"+this.configTRef+\"]]\"))}},{key:\"getOccurrences\",value:function e(){var t=\"[regexp:text[<\\\\$(tiddlymap|tmap).*?view=.\"+this.getLabel()+\"..*?>]]\";return _utils2.default.getMatches(t)}},{key:\"rename\",value:function t(i){if(typeof i!==\"string\"){return false}if(_utils2.default.inArray(\"/\",i)){$tm.notify('A view name must not contain any \"/\"');return false}var r=this.getLabel();var a=env.path.views+\"/\"+i;var n=this.getRoot();_utils2.default.mv(n,a,true);if($tm.config.sys.defaultView===r){_utils2.default.setEntry($tm.ref.sysUserConf,\"defaultView\",i)}if($tm.config.sys.liveTab.fallbackView===r){_utils2.default.setEntry($tm.ref.sysUserConf,\"liveTab.fallbackView\",i)}$tw.wiki.each(function(t,a){if(t.fields[\"tmap.open-view\"]===r){_utils2.default.setField(a,\"tmap.open-view\",i);return}if(e.exists(a)){var n=new e(a);var l=n.getNodeData();for(var s in l){if(l[s][\"open-view\"]===r){l[s][\"open-view\"]=i}}n.saveNodeData(l)}});this._clearCaches();this._registerPaths(i)}},{key:\"isEnabled\",value:function e(t){return _utils2.default.isTrue(this.getConfig(t),false)}},{key:\"getConfig\",value:function e(t){var i=this;var r=$tw.wiki.getCacheForTiddler(this.configTRef,\"tmap-config\",function(){var e=_utils2.default.getTiddler(i.configTRef).fields;return _utils2.default.getPropertiesByPrefix(e,\"config.\")});var a=t&&_utils2.default.startsWith(t,\"config.\")?t:\"config.\"+t;return t?r[a]:r}},{key:\"setConfig\",value:function e(){for(var t=arguments.length,i=Array(t),r=0;r<t;r++){i[r]=arguments[r]}if(i[0]==null){return}if(i.length===1&&_typeof(i[0])===\"object\"){for(var a in i[0]){this.setConfig(a,i[0][a])}}else if(i.length===2&&typeof i[0]===\"string\"){var n=_utils2.default.getWithoutPrefix(i[0],\"config.\");var l=i[1];if(l===undefined){return}var s=this.getConfig();if(l===null){$tm.logger(\"debug\",\"Removing config\",n);delete s[\"config.\"+n]}else{if(n===\"edge_type_namespace\"){var o=l.match(/[^:]+/);l=o?o[0]:\"\"}}$tm.logger(\"log\",\"Setting config\",n,l);s[\"config.\"+n]=l;$tw.wiki.addTiddler(new $tw.Tiddler(_utils2.default.getTiddler(this.configTRef),s))}else{throw new(Function.prototype.bind.apply(_exception.InvalidArgumentException,[null].concat(i)))}}},{key:\"isNodeIncludedById\",value:function t(i){var r=$tw.utils.escapeRegExp(e._getNodeIdFilterPart(i));return this.getNodeFilter(\"raw\").match(r)}},{key:\"setNodeFilter\",value:function e(t,i){t=t.replace(/[\\n\\r]/g,\" \");if(this.getNodeFilter(\"raw\")===t){return}_utils2.default.setField(this.nodeFilterTRef,\"filter\",t);$tm.logger(\"debug\",\"Node filter set to\",t)}},{key:\"setEdgeTypeFilter\",value:function e(t){t=t.replace(/[\\n\\r]/g,\" \");if(this.getEdgeTypeFilter(\"raw\")===t){return}_utils2.default.setField(this.edgeTypeFilterTRef,\"filter\",t);$tm.logger(\"debug\",\"Edge filter set to\",t)}},{key:\"addNode\",value:function t(i){if(!this.isNodeIncludedById(i)){if(_utils2.default.isTrue($tm.config.sys.alwaysAddNodeIdToViewFilter)||!_utils2.default.isMatch(i.tRef,this.getNodeFilter(\"compiled\"))){var r=e._getNodeIdFilterPart(i);var a=\" \";this.setNodeFilter(this.getNodeFilter(\"raw\")+a+r)}this.saveNodePosition(i)}}},{key:\"removeNode\",value:function t(i){if(!this.isNodeIncludedById(i)){return false}var r=e._getNodeIdFilterPart(i);var a=this.getNodeFilter(\"raw\").replace(r,\"\");this.setNodeFilter(a);return true}},{key:\"getEdgeTypeFilter\",value:function e(t){var i=this;var r=$tw.wiki.getCacheForTiddler(this.edgeTypeFilterTRef,\"tmap-edgeTypeFilter\",function(){var e=$tm.indeces.allETy;var t=Object.keys(e);var r=$tw.wiki.getTiddler(i.edgeTypeFilterTRef);var a={};a.raw=r&&r.fields.filter||\"\";a.pretty=_utils2.default.getPrettyFilter(a.raw);a.matches=_utils2.default.getEdgeTypeMatches(a.raw,e);a.whitelist=_utils2.default.getLookupTable(a.matches);return a});return t?r[t]:r}},{key:\"isEdgeTypeVisible\",value:function e(t){return _utils2.default.isEdgeTypeMatch(_EdgeType2.default.getInstance(t).id,this.getEdgeTypeFilter(\"raw\"))}},{key:\"getNodeFilter\",value:function e(t){var i=this;var r=$tw.wiki.getCacheForTiddler(this.nodeFilterTRef,\"tmap-nodeFilter\",function(){var e=_utils2.default.makeHashMap();var t=$tw.wiki.getTiddler(i.nodeFilterTRef);e.raw=t&&t.fields.filter||\"\";e.pretty=_utils2.default.getPrettyFilter(e.raw);e.compiled=$tw.wiki.compileFilter(e.raw);return e});return t?r[t]:r}},{key:\"getNodeData\",value:function e(t){var i=this;var r=$tw.wiki.getCacheForTiddler(this.mapTRef,\"tmap-map\",function(){return _utils2.default.parseFieldData(i.mapTRef,\"text\",{})});return t?r[t]:r}},{key:\"equals\",value:function t(i){return i===this||e.exists(i)&&new e(i).getRoot()===this.getRoot()}},{key:\"saveNodeData\",value:function e(){var t=this.getNodeData();for(var i=arguments.length,r=Array(i),a=0;a<i;a++){r[a]=arguments[a]}if(r.length===2){if(_typeof(r[1])===\"object\"){if(r[1]===null){delete t[r[0]]}else{t[r[0]]=Object.assign(t[r[0]]||{},r[1])}}}else if(r.length===1&&_typeof(r[0])===\"object\"){$tm.logger(\"log\",\"Storing data in\",this.mapTRef);Object.assign(t,r[0])}else{throw new(Function.prototype.bind.apply(_exception.InvalidArgumentException,[null].concat(r)))}_utils2.default.writeFieldData(this.mapTRef,\"text\",t,$tm.config.sys.jsonIndentation)}},{key:\"saveNodePosition\",value:function e(t){if(t.id&&t.x!=null&&t.y!=null){this.saveNodeData(t.id,{x:t.x,y:t.y})}}},{key:\"saveNodePositions\",value:function e(t){var i=this.getNodeData();for(var r in t){i[r]=i[r]||{};i[r].x=t[r].x;i[r].y=t[r].y}this.saveNodeData(i)}},{key:\"setCentralTopic\",value:function e(t){this.setConfig(\"central-topic\",t)}},{key:\"saveNodeStyle\",value:function e(t,i){var r=this.getNodeData(t)||{};var a={x:r.x,y:r.y};for(var n in r){delete r[n]}this.saveNodeData(t,_extends({},i,a))}},{key:\"_registerPaths\",value:function t(i,r){this.configTRef=e._getRootPath(i);this.mapTRef=this.configTRef+\"/map\";this.nodeFilterTRef=this.configTRef+\"/filter/nodes\";this.edgeTypeFilterTRef=this.configTRef+\"/filter/edges\";this.snapshotTRef=this.getRoot()+\"/snapshot\"}},{key:\"_clearCaches\",value:function e(){_utils2.default.getMatches(\"[prefix[\"+this.getRoot()+\"]]\").forEach(function(e){$tw.wiki.clearCache(e)})}},{key:\"_createView\",value:function t(){var i=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},r=i.isForce,a=i.protoView,n=i.isHidden;if(e.exists(this)){if(!r){return}this.destroy()}if(e.exists(a)){_utils2.default.cp(new e(a).getRoot(),this.configTRef,true)}var l={title:this.configTRef,id:_utils2.default.genUUID()};if(!n){l[$tm.field.viewMarker]=true}$tw.wiki.addTiddler(new $tw.Tiddler(_utils2.default.getTiddler(this.configTRef),l));this.setEdgeTypeFilter(env.filter.defaultEdgeTypeFilter)}}],[{key:\"_getNodeIdFilterPart\",value:function e(t){var i=(typeof t===\"undefined\"?\"undefined\":_typeof(t))===\"object\"?t.id:t;return\"[field:tmap.id[\"+i+\"]]\"}},{key:\"_getRootPath\",value:function t(i){if(i instanceof e){return i.configTRef}if(i instanceof $tw.Tiddler){i=i.fields.title}if(typeof i===\"string\"){var r=_utils2.default.getWithoutPrefix(i,$tm.path.views+\"/\");if(r&&!_utils2.default.hasSubString(r,\"/\")){return $tm.path.views+\"/\"+r}}}},{key:\"exists\",value:function t(i){if(!i){return false}if(i instanceof e){i=i.configTRef}else{i=e._getRootPath(i)}return _utils2.default.tiddlerExists(i)}}]);return e}();exports.default=ViewAbstraction;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/graph/ViewAbstraction.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/Popup": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/Popup",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function Popup(e,t){t=t||{};this._parentDomNode=e;this._domNode=document.createElement(\"div\");this._domNode.style.display=\"none\";this._domNode.className=\"tmap-popup\";this._parentDomNode.appendChild(this._domNode);$tw.utils.addClass(this._domNode,t.className);this._isEnabled=true;this._isPreventShowOrHide=false;this._isHideOnClick=!!t.hideOnClick;this._timeoutShow=null;this._timeoutHide=null;this._isDisplayNoneAfterAnimation=true;var i=parseInt(t.leavingDelay);this._hideDelayLeavingPopup=_utils2.default.isInteger(i)?i:200;i=parseInt(t.hideDelay);this._hideDelay=_utils2.default.isInteger(i)?i:200;i=parseInt(t.showDelay);this._showDelay=_utils2.default.isInteger(i)?i:200;_utils2.default.bindTo(this,[\"_show\",\"_hide\",\"_handleEnter\",\"_handleLeave\",\"_handleAnimationEnd\",\"_handleClick\"]);this._listeners={mouseenter:this._handleEnter,mouseleave:this._handleLeave,click:[this._handleClick,true]};var s=this._handleAnimationEnd;this._listeners[$tw.utils.convertEventName(\"animationEnd\")]=s;this._listeners[$tw.utils.convertEventName(\"transitionEnd\")]=s;_utils2.default.setDomListeners(\"add\",this._domNode,this._listeners,false)}\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/Popup\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */Popup.prototype._handleEnter=function(e){this._isPreventShowOrHide=true};Popup.prototype._handleLeave=function(e){this._isPreventShowOrHide=false;this.hide(this._hideDelayLeavingPopup)};Popup.prototype._handleClick=function(e){if(this._isHideOnClick){this._hide(true)}};Popup.prototype._handleAnimationEnd=function(){if(this._isDisplayNoneAfterAnimation){this._domNode.style.display=\"none\"}};Popup.prototype._hide=function(e){if(!e&&this._isPreventShowOrHide)return;this._isDisplayNoneAfterAnimation=true;this._isPreventShowOrHide=false;$tw.utils.removeClass(this._domNode,\"tmap-popup-active\")};Popup.prototype._show=function(e,t){if(this._isPreventShowOrHide||$tm.mouse.ctrlKey||!this._isEnabled){return}this._domNode.style.display=\"none\";$tw.utils.removeClass(this._domNode,\"tmap-popup-active\");this._domNode.removeAttribute(\"style\");_utils2.default.removeDOMChildNodes(this._domNode);var i=this._domNode.appendChild(document.createElement(\"div\"));if(typeof t===\"function\"){t(e,i)}else{i.innerHTML=t}if(!i.childNodes.length)return;var s=this._parentDomNode.getBoundingClientRect();var o=$tm.mouse.clientX;var n=$tm.mouse.clientY;this._domNode.style.display=\"block\";var d=this._domNode.getBoundingClientRect();var l=s.right-(o+d.width);var h=o-d.width-s.left;var a=l>h;var u=s.bottom-(n+d.height);var r=n-d.height-s.top;var p=u>r;var _=a?-15:d.width+15;var m=p?-15:d.height+15;this._domNode.style.left=o-s.left-_+\"px\";this._domNode.style.top=n-s.top-m+\"px\";this._isDisplayNoneAfterAnimation=false;$tw.utils.addClass(this._domNode,\"tmap-popup-active\")};Popup.prototype.show=function(e,t,i){this._clearTimeouts();i=_utils2.default.isInteger(i)?i:this._showDelay;this._timeoutShow=setTimeout(this._show,i,e,t)};Popup.prototype.hide=function(e,t){this._clearTimeouts();e=_utils2.default.isInteger(e)?e:this._hideDelay;if(t||e===0){this._hide(t)}else{this._timeoutHide=setTimeout(this._hide,e,t)}};Popup.prototype.setEnabled=function(e){this._isEnabled=e};Popup.prototype.isShown=function(){return this._domNode.style.display===\"block\"};Popup.prototype._clearTimeouts=function(){clearTimeout(this._timeoutShow);clearTimeout(this._timeoutHide);this._timeoutShow=undefined;this._timeoutHide=undefined};exports.default=Popup;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/Popup.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/SelectionRectangle": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/SelectionRectangle",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function t(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||false;n.configurable=true;if(\"value\"in n)n.writable=true;Object.defineProperty(t,n.key,n)}}return function(e,i,n){if(i)t(e.prototype,i);if(n)t(e,n);return e}}();function _classCallCheck(t,e){if(!(t instanceof e)){throw new TypeError(\"Cannot call a class as a function\")}}\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/SelectionRectangle\ntype: application/SelectionRectangle\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var SelectionRectangle=function(){function t(e,i){_classCallCheck(this,t);this.x1=e;this.x2=e;this.y1=i;this.y2=i}_createClass(t,[{key:\"span\",value:function t(e,i){this.x2=e;this.y2=i}},{key:\"getWidth\",value:function t(){return this.x2-this.x1}},{key:\"getHeight\",value:function t(){return this.y2-this.y1}},{key:\"getRect\",value:function t(){return[this.x1,this.y1,this.getWidth(),this.getHeight()]}},{key:\"isPointWithin\",value:function t(e){var i=e.x,n=e.y;var a=this.x1,r=this.x2,s=this.y1,u=this.y2;var h=Math.min(a,r);var c=Math.max(a,r);var l=Math.min(s,u);var o=Math.max(s,u);return h<i&&i<c&&l<n&&n<o}}]);return t}();exports.default=SelectionRectangle;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/SelectionRectangle.js.map\n",
"type": "application/SelectionRectangle",
"module-type": "library"
},
"/home/felo/projects/Tiddlywiki/TiddlyWiki5/plugins/felixhayashi/tiddlymap/js/lib/TypeDefs.js": {
"title": "/home/felo/projects/Tiddlywiki/TiddlyWiki5/plugins/felixhayashi/tiddlymap/js/lib/TypeDefs.js",
"text": "\"use strict\";\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/TypeDefs.js.map\n"
},
"$:/plugins/felixhayashi/tiddlymap/js/config/vis": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/config/vis",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/config/vis\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var visConfig={locale:\"en_EN\",clickToUse:false,autoResize:false,height:\"100%\",width:\"100%\",configure:{enabled:false},interaction:{dragNodes:true,dragView:true,hideEdgesOnDrag:false,hideNodesOnDrag:false,hover:true,navigationButtons:true,multiselect:true,selectable:true,selectConnectedEdges:true,tooltipDelay:600,zoomView:false,keyboard:{enabled:false,speed:{x:10,y:10,zoom:.02},bindToWindow:false}},manipulation:{initiallyActive:true},nodes:{shape:\"box\",widthConstraint:{maximum:160},heightConstraint:{valign:\"center\"},shadow:{enabled:false},color:{border:\"#2B7CE9\",background:\"#97C2FC\"}},edges:{smooth:{enabled:true},color:{color:\"#848484\",inherit:false},arrows:{to:{enabled:true}}},layout:{hierarchical:{enabled:false,levelSeparation:200,nodeSpacing:170,treeSpacing:230,sortMethod:\"directed\",parentCentralization:true,edgeMinimization:true,blockShifting:true,direction:\"UD\"}},physics:{forceAtlas2Based:{gravitationalConstant:-300,springLength:0,springConstant:.2,centralGravity:.015,damping:.4},hierarchicalRepulsion:{nodeDistance:120,centralGravity:0,springLength:100,springConstant:.01,damping:.09},solver:\"forceAtlas2Based\",stabilization:{enabled:true,iterations:1e3,updateInterval:10,onlyDynamicEdges:false,fit:false}}};exports.default=visConfig;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/VisConfig.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/environment": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/environment",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _extends=Object.assign||function(e){for(var i=1;i<arguments.length;i++){var a=arguments[i];for(var l in a){if(Object.prototype.hasOwnProperty.call(a,l)){e[l]=a[l]}}}return e};\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/environment\ntype: application/javascript\n module-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var path=exports.path={pluginRoot:\"$:/plugins/felixhayashi/tiddlymap\",edgeTypes:\"$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes\",nodeTypes:\"$:/plugins/felixhayashi/tiddlymap/graph/nodeTypes\",views:\"$:/plugins/felixhayashi/tiddlymap/graph/views\",options:\"$:/plugins/felixhayashi/tiddlymap/config\",dialogs:\"$:/plugins/felixhayashi/tiddlymap/dialog\",footers:\"$:/plugins/felixhayashi/tiddlymap/dialogFooter\",tempRoot:\"$:/temp/tmap\",tempStates:\"$:/temp/tmap/state\",tempPopups:\"$:/temp/tmap/state/popup\",localHolders:\"$:/temp/tmap/holders\"};var ref=exports.ref={defaultViewHolder:\"$:/plugins/felixhayashi/tiddlymap/misc/defaultViewHolder\",graphBar:\"$:/plugins/felixhayashi/tiddlymap/misc/advancedEditorBar\",sysUserConf:\"$:/plugins/felixhayashi/tiddlymap/config/sys/user\",visUserConf:\"$:/plugins/felixhayashi/tiddlymap/config/vis/user\",welcomeFlag:\"$:/plugins/felixhayashi/tiddlymap/flag/welcome\",focusButton:\"$:/plugins/felixhayashi/tiddlymap/misc/focusButton\",sysMeta:\"$:/plugins/felixhayashi/tiddlymap/misc/meta\",liveTab:\"$:/plugins/felixhayashi/tiddlymap/hook/liveTab\",mainEditor:\"$:/plugins/felixhayashi/tiddlymap/hook/editor\",sidebarBreakpoint:\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"};var misc=exports.misc={unknownEdgeLabel:\"tmap:undefined\",liveViewLabel:\"Live View\",defaultViewLabel:\"Default\",mainEditorId:\"main_editor\",arrows:{in:\"⇦\",out:\"➡\",bi:\"⇄\"}};var config=exports.config={sys:{field:{nodeLabel:\"caption\",nodeIcon:\"icon\",nodeInfo:\"description\",viewMarker:\"isview\"},liveTab:{fallbackView:misc.liveViewLabel},suppressedDialogs:{},edgeClickBehaviour:\"manager\",debug:\"false\",notifications:\"true\",popups:{enabled:\"true\",delay:\"600\",width:\"240px\",height:\"140px\"},jsonIndentation:\"1\",alwaysAddNodeIdToViewFilter:\"true\",editNodeOnCreate:\"false\",singleClickMode:\"false\",nodeFilterNeighbours:\"false\",editorMenuBar:{showNeighScopeButton:\"true\",showRasterMenuButton:\"true\",showScreenshotButton:\"true\"}}};var filter=exports.filter={nodeTypes:\"[prefix[\"+path.nodeTypes+\"]]\",edgeTypes:\"[prefix[\"+path.edgeTypes+\"]]\",views:\"[\"+config.sys.field.viewMarker+\"[true]]\",defaultEdgeTypeFilter:\"-[prefix[_]] -[[tw-body:link]] -[[tw-list:tags]] -[[tw-list:list]]\"};var allSelector=\"[all[tiddlers+shadows]!has[draft.of]]\";var s={allEdgeTypes:allSelector+\" +\"+filter.edgeTypes,allNodeTypes:allSelector+\" +\"+filter.nodeTypes,allViews:allSelector+\" +\"+filter.views,allPotentialNodes:\"[all[tiddlers]!is[system]!has[draft.of]]\"};var selector=exports.selector=_extends({},s,{allEdgeTypesById:s.allEdgeTypes+\" +[removeprefix[\"+path.edgeTypes+\"/]]\",allNodeTypesById:s.allNodeTypes+\" +[removeprefix[\"+path.nodeTypes+\"/]]\",allViewsByLabel:s.allViews+\" +[removeprefix[\"+path.views+\"/]]\"});\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/environment.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/exception": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/exception",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function r(r,t){for(var e=0;e<t.length;e++){var o=t[e];o.enumerable=o.enumerable||false;o.configurable=true;if(\"value\"in o)o.writable=true;Object.defineProperty(r,o.key,o)}}return function(t,e,o){if(e)r(t.prototype,e);if(o)r(t,o);return t}}();function _classCallCheck(r,t){if(!(r instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(r,t){if(!r){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:r}function _inherits(r,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}r.prototype=Object.create(t&&t.prototype,{constructor:{value:r,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(r,t):r.__proto__=t}\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/exception\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var TiddlyMapError=function(r){_inherits(t,r);function t(r,e){_classCallCheck(this,t);var o=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,r));o.payload=e;return o}_createClass(t,[{key:\"getPayload\",value:function r(){return this.payload}}]);return t}(Error);var EnvironmentError=exports.EnvironmentError=function(r){_inherits(t,r);function t(r){_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,\"Critical parts of the underlying system changed: \"+r))}return t}(TiddlyMapError);var DependencyError=exports.DependencyError=function(r){_inherits(t,r);function t(r){_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,\"TiddlyMap cannot run without: : \"+r))}return t}(TiddlyMapError);var MissingOverrideError=exports.MissingOverrideError=function(r){_inherits(t,r);function t(r,e){_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,r.constructor.name+' does not override method \"'+e+'\"'))}return t}(TiddlyMapError);var ResourceNotFoundException=exports.ResourceNotFoundException=function(r){_inherits(t,r);function t(r){_classCallCheck(this,t);for(var e=arguments.length,o=Array(e>1?e-1:0),n=1;n<e;n++){o[n-1]=arguments[n]}return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,\"Cannot resolve \"+r,o))}return t}(TiddlyMapError);var InvalidArgumentException=exports.InvalidArgumentException=function(r){_inherits(t,r);function t(){_classCallCheck(this,t);for(var r=arguments.length,e=Array(r),o=0;o<r;o++){e[o]=arguments[o]}return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,\"Invalid or missing argument provided\",e))}return t}(TiddlyMapError);\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/exceptions.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/URL": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/URL",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/URL\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */\n/**\n * <<<\n * Lightweight URL manipulation with JavaScript. This library is\n * independent of any other libraries and has pretty simple interface\n * and lightweight code-base. Some ideas of query string parsing\n * had been taken from Jan Wolter.\"\n *\n * @see http://unixpapa.com/js/querystring.html\n * @license MIT\n * @author Mykhailo Stadnyk <mikhus@gmail.com>\n * <<< https://github.com/Mikhus/jsurl\n *\n * @class\n * @param {string} url\n */function Url(t){this.paths=function(t){var e=\"\",r=0,o;if(t&&t.length&&t+\"\"!==t){if(this.isAbsolute()){e=\"/\"}for(o=t.length;r<o;r++){t[r]=encode(t[r])}this.path=e+t.join(\"/\")}t=(this.path.charAt(0)===\"/\"?this.path.slice(1):this.path).split(\"/\");for(r=0,o=t.length;r<o;r++){t[r]=decode(t[r])}return t};this.encode=encode;this.decode=decode;this.isAbsolute=function(){return this.protocol||this.path.charAt(0)===\"/\"};this.toString=function(){return(this.protocol&&this.protocol+\"://\")+(this.user&&encode(this.user)+(this.pass&&\":\"+encode(this.pass))+\"@\")+(this.host&&this.host)+(this.port&&\":\"+this.port)+(this.path&&this.path)+(this.query.toString()&&\"?\"+this.query)+(this.hash&&\"#\"+encode(this.hash))};parse(this,t)}var map={protocol:\"protocol\",host:\"hostname\",port:\"port\",path:\"pathname\",query:\"search\",hash:\"hash\"},defaultPorts={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443},parse=function t(e,r){var o=document,s=o.createElement(\"a\"),r=r||o.location.href,i=r.match(/\\/\\/(.*?)(?::(.*?))?@/)||[],n;s.href=r;for(n in map){e[n]=s[map[n]]||\"\"}e.protocol=e.protocol.replace(/:$/,\"\");e.query=e.query.replace(/^\\?/,\"\");e.hash=decode(e.hash.replace(/^#/,\"\"));e.user=decode(i[1]||\"\");e.pass=decode(i[2]||\"\");e.port=defaultPorts[e.protocol]==e.port||e.port==0?\"\":e.port;if(!e.protocol&&!/^([a-z]+:)?\\/\\//.test(r)){var h=new Url(o.location.href.match(/(.*\\/)/)[0]),a=h.path.split(\"/\"),p=e.path.split(\"/\"),c=[\"protocol\",\"user\",\"pass\",\"host\",\"port\"],f=c.length;a.pop();for(n=0;n<f;n++){e[c[n]]=h[c[n]]}while(p[0]==\"..\"){a.pop();p.shift()}e.path=(r.charAt(0)!=\"/\"?a.join(\"/\"):\"\")+\"/\"+p.join(\"/\")}else{e.path=e.path.replace(/^\\/?/,\"/\")}e.paths((e.path.charAt(0)==\"/\"?e.path.slice(1):e.path).split(\"/\"));parseQs(e)},encode=function t(e){return encodeURIComponent(e).replace(/'/g,\"%27\")},decode=function t(e){e=e.replace(/\\+/g,\" \");e=e.replace(/%([ef][0-9a-f])%([89ab][0-9a-f])%([89ab][0-9a-f])/gi,function(t,e,r,o){var s=parseInt(e,16)-224,i=parseInt(r,16)-128;if(s==0&&i<32){return t}var n=parseInt(o,16)-128,h=(s<<12)+(i<<6)+n;if(h>65535){return t}return String.fromCharCode(h)});e=e.replace(/%([cd][0-9a-f])%([89ab][0-9a-f])/gi,function(t,e,r){var o=parseInt(e,16)-192;if(o<2){return t}var s=parseInt(r,16)-128;return String.fromCharCode((o<<6)+s)});e=e.replace(/%([0-7][0-9a-f])/gi,function(t,e){return String.fromCharCode(parseInt(e,16))});return e},parseQs=function t(e){var r=e.query;e.query=new function(t){var e=/([^=&]+)(=([^&]*))?/g,r;while(r=e.exec(t)){var o=decodeURIComponent(r[1].replace(/\\+/g,\" \")),s=r[3]?decode(r[3]):\"\";if(this[o]!=null){if(!(this[o]instanceof Array)){this[o]=[this[o]]}this[o].push(s)}else{this[o]=s}}this.clear=function(){for(var t in this){if(!(this[t]instanceof Function)){delete this[t]}}};this.count=function(){var t=0,e;for(e in this){if(!(this[e]instanceof Function)){t++}}return t};this.isEmpty=function(){return this.count()===0};this.toString=function(){var t=\"\",e=encode,r,o;for(r in this){if(this[r]instanceof Function){continue}if(this[r]instanceof Array){var s=this[r].length;if(s){for(o=0;o<s;o++){t+=t?\"&\":\"\";t+=e(r)+\"=\"+e(this[r][o])}}else{t+=(t?\"&\":\"\")+e(r)+\"=\"}}else{t+=t?\"&\":\"\";t+=e(r)+\"=\"+e(this[r])}}return t}}(r)};exports.default=Url;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/url.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.bindTo=exports.getNearestRasterPosition=exports.mod=exports.removeDOMChildNodes=exports.setDomListeners=exports.merge=exports.getRandomLabel=exports.getFirstElementByClassName=exports.pickRandom=exports.hasKeyWithPrefix=exports.getWithoutPrefix=exports.getPropertiesByPrefix=exports.removeArrayElement=exports.isTrue=exports.replaceAll=exports.isInteger=exports.findAndRemoveClassNames=exports.getAncestorWithClass=exports.makeHashMap=exports.getWithoutNewLines=exports.joinAndWrap=exports.parseJSON=exports.hasSubString=exports.inArray=exports.getRandomInt=exports.isEqual=exports.identity=exports.base64=exports.startsWith=exports.getBasename=exports.escapeRegex=exports.hasElements=exports.ucFirst=undefined;var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");var ucFirst=exports.ucFirst=function e(t){return t&&t[0].toUpperCase()+t.slice(1)};var hasElements=exports.hasElements=function e(t){return Object.keys(t).length>0};var escapeRegex=exports.escapeRegex=function e(t){return t.replace(/[-$^?.+*[\\]\\\\(){}|]/g,\"\\\\$&\")};var getBasename=exports.getBasename=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"/\";return t.substring(t.lastIndexOf(r)+1)};var startsWith=exports.startsWith=function e(t,r){return t.substring(0,r.length)===r};var base64=exports.base64=typeof window===\"undefined\"?function(e){return new Buffer(e).toString(\"base64\")}:window.btoa.bind(window);var identity=exports.identity=function e(t){return(typeof t===\"undefined\"?\"undefined\":_typeof(t))===\"object\"&&t!==null?JSON.stringify(Object.keys(t).sort().map(function(e){return[e,t[e]]})):null};var isEqual=exports.isEqual=function e(t,r){return identity(t)===identity(r)};var getRandomInt=exports.getRandomInt=function e(t,r){return Math.floor(Math.random()*(r-t)+t)};var inArray=exports.inArray=function e(t,r){return r.indexOf(t)!==-1};var hasSubString=exports.hasSubString=function e(t,r){return t.indexOf(r)!==-1};var parseJSON=exports.parseJSON=function e(t,r){try{return JSON.parse(t)}catch(e){return r}};var joinAndWrap=exports.joinAndWrap=function e(t,r,n){var o=arguments.length>3&&arguments[3]!==undefined?arguments[3]:\" \";return r+t.join(n+o+r)+n};var getWithoutNewLines=exports.getWithoutNewLines=function e(t){return typeof t===\"string\"?t.replace(/[\\n\\r]/g,\" \"):t};var makeHashMap=exports.makeHashMap=function e(t){var r=Object.create(null);Object.defineProperty(r,\"hasOwnProperty\",{enumerable:false,configurable:false,writable:false,value:Object.prototype.hasOwnProperty.bind(r)});if(t){for(var n in t){if(t.hasOwnProperty(n)){r[n]=t[n]}}}return r};var getAncestorWithClass=exports.getAncestorWithClass=function e(t,r){if((typeof t===\"undefined\"?\"undefined\":_typeof(t))!==\"object\"||typeof r!==\"string\"){return}while(t.parentNode&&t.parentNode!==document){t=t.parentNode;if(t.classList.contains(r)){return t}}};var findAndRemoveClassNames=exports.findAndRemoveClassNames=function e(t){for(var r=t.length;r--;){var n=document.getElementsByClassName(t[r]);for(var o=n.length;o--;){n[o].classList.remove(t[r])}}};var isInteger=exports.isInteger=Number.isInteger||function(e){return typeof e===\"number\"&&isFinite(e)&&Math.floor(e)===e};var replaceAll=exports.replaceAll=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"\";var n=arguments[2];for(var o=n.length;o--;){var s=n[o];var i=r;if(Array.isArray(s)){i=s[1];s=s[0]}t=t.replace(s,i)}return t};var isTrue=exports.isTrue=function e(t,r){if(t==null){return!!r}else if(typeof t===\"string\"){var n=parseInt(t);return isNaN(n)?t===\"true\":n!==0}else if(typeof t===\"boolean\"){return t}else if(typeof t===\"number\"){return n!==0}return false};var removeArrayElement=exports.removeArrayElement=function e(t,r){var n=t.indexOf(r);if(n>-1){return t.splice(n,1)[0]}};var getPropertiesByPrefix=exports.getPropertiesByPrefix=function e(t,r,n){var o=makeHashMap();for(var s in t){if(startsWith(s,r)){o[n?s.substr(r.length):s]=t[s]}}return o};var getWithoutPrefix=exports.getWithoutPrefix=function e(t,r){return startsWith(t,r)?t.substr(r.length):t};var hasKeyWithPrefix=exports.hasKeyWithPrefix=function e(t,r){for(var n in t){if(startsWith(n,r)){return true}}return false};var pickRandom=exports.pickRandom=function e(t){return t[getRandomInt(0,t.length-1)]};var getFirstElementByClassName=exports.getFirstElementByClassName=function e(t,r,n){var o=(r||document).getElementsByClassName(t)[0];if(!o&&(typeof n===\"boolean\"?n:true)){var s='Missing element with class \"'+t+'\" inside '+r;throw new _exception.EnvironmentError(s)}return o};var getRandomLabel=exports.getRandomLabel=function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var r=pickRandom([\"exciting\",\"notable\",\"epic\",\"new\",\"fancy\",\"great\",\"cool\",\"fresh\",\"funky\",\"clever\"]);var n=(t.object||pickRandom([\"concept\",\"idea\",\"thought\",\"topic\",\"subject\"]))+(t.plural?\"s\":\"\");return\"My \"+r+\" \"+n};var _merge=function e(t,r){if((typeof t===\"undefined\"?\"undefined\":_typeof(t))!==\"object\"){t={}}for(var n in r){if(r.hasOwnProperty(n)){if(r[n]!=null){t[n]=_typeof(r[n])===\"object\"?e(t[n],r[n]):r[n]}}}return t};var merge=exports.merge=function e(t){for(var r=arguments.length,n=Array(r>1?r-1:0),o=1;o<r;o++){n[o-1]=arguments[o]}for(var s=0,i=n.length;s<i;s++){var a=n[s];if(a!=null&&(typeof a===\"undefined\"?\"undefined\":_typeof(a))===\"object\"){t=_merge(t,a)}}return t};var setDomListeners=exports.setDomListeners=function e(t,r,n,o){o=typeof o===\"boolean\"?o:false;t=t+\"EventListener\";for(var s in n){var i=n[s];if(typeof i===\"function\"){r[t](s,i,o)}else{r[t](s,i[0],typeof i[1]===\"boolean\"?i[1]:o)}}};var removeDOMChildNodes=exports.removeDOMChildNodes=function e(t){for(var r=t.childNodes.length;r--;){t.removeChild(t.childNodes[r])}};var mod=exports.mod=function e(t,r){var n=t%r;return Math.floor(n>=0?n:n+r)};var getNearestRasterPosition=exports.getNearestRasterPosition=function e(t,r){var n=t.x,o=t.y;var s=r/2;var i=mod(n,r);var a=mod(o,r);return{x:i<s?n-i:n-i+r,y:a<s?o-a:o-a+r}};var bindTo=exports.bindTo=function e(t,r){for(var n=r.length;n--;){var o=t[r[n]];t[r[n]]=o.bind(t)}};\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/utils/basic.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/thirdParty": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/utils/thirdParty",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/utils/thirdParty\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var generateDraftTitle=exports.generateDraftTitle=function e(n){var r=0,t=void 0;do{t=\"Draft \"+(r?r+1+\" \":\"\")+\"of '\"+n+\"'\";r++}while($tw.wiki.tiddlerExists(t));return t};var makeDraftTiddler=exports.makeDraftTiddler=function e(n){var r=$tw.wiki.findDraft(n);if(r){return $tw.wiki.getTiddler(r)}var t=$tw.wiki.getTiddler(n);r=generateDraftTitle(n);var l=new $tw.Tiddler(t,{title:r,\"draft.title\":n,\"draft.of\":n},$tw.wiki.getModificationFields());$tw.wiki.addTiddler(l);return l};var getFullScreenApis=exports.getFullScreenApis=function e(){var n=document,r=n.body,t={_requestFullscreen:r.webkitRequestFullscreen!==undefined?\"webkitRequestFullscreen\":r.mozRequestFullScreen!==undefined?\"mozRequestFullScreen\":r.msRequestFullscreen!==undefined?\"msRequestFullscreen\":r.requestFullscreen!==undefined?\"requestFullscreen\":\"\",_exitFullscreen:n.webkitExitFullscreen!==undefined?\"webkitExitFullscreen\":n.mozCancelFullScreen!==undefined?\"mozCancelFullScreen\":n.msExitFullscreen!==undefined?\"msExitFullscreen\":n.exitFullscreen!==undefined?\"exitFullscreen\":\"\",_fullscreenElement:n.webkitFullscreenElement!==undefined?\"webkitFullscreenElement\":n.mozFullScreenElement!==undefined?\"mozFullScreenElement\":n.msFullscreenElement!==undefined?\"msFullscreenElement\":n.fullscreenElement!==undefined?\"fullscreenElement\":\"\",_fullscreenChange:n.webkitFullscreenElement!==undefined?\"webkitfullscreenchange\":n.mozFullScreenElement!==undefined?\"mozfullscreenchange\":n.msFullscreenElement!==undefined?\"MSFullscreenChange\":n.fullscreenElement!==undefined?\"fullscreenchange\":\"\"};if(!t._requestFullscreen||!t._exitFullscreen||!t._fullscreenElement){return null}else{return t}};var flatten=exports.flatten=function e(n){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var t=r.delimiter||\".\";var l=r.prefix||\"\";var i={};function u(e,n){Object.keys(e).forEach(function(f){var s=e[f];var c=r.safe&&Array.isArray(s);var a=Object.prototype.toString.call(s);var d=a===\"[object Object]\"||a===\"[object Array]\";var o=n?n+t+f:l+f;if(!c&&d){return u(s,o)}i[o]=s})}u(n);return i};var unflatten=exports.unflatten=function e(n){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var t=r.delimiter||\".\";var l={};if(Object.prototype.toString.call(n)!==\"[object Object]\"){return n}function i(e){var n=Number(e);return isNaN(n)||e.indexOf(\".\")!==-1?e:n}Object.keys(n).forEach(function(u){var f=u.split(t);var s=i(f.shift());var c=i(f[0]);var a=l;while(c!==undefined){if(a[s]===undefined){a[s]=typeof c===\"number\"&&!r.object?[]:{}}a=a[s];if(f.length>0){s=i(f.shift());c=i(f[0])}}a[s]=e(n[u],r)});return l};var genUUID=exports.genUUID=function(){var e=\"0123456789abcdefghijklmnopqrstuvwxyz\".split(\"\");return function(){var n=e,r=new Array(36);var t=0,l;for(var i=0;i<36;i++){if(i==8||i==13||i==18||i==23){r[i]=\"-\"}else if(i==14){r[i]=\"4\"}else{if(t<=2)t=33554432+Math.random()*16777216|0;l=t&15;t=t>>4;r[i]=n[i==19?l&3|8:l]}}return r.join(\"\")}}();\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/utils/thirdParty.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/tmap": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/utils/tmap",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.getArrayValuesAsHashmapKeys=exports.getLookupTable=exports.keyOfItemWithProperty=exports.keysOfItemsWithProperty=exports.getDublicates=exports.getId=exports.refreshDataSet=exports.drawRaster=exports.getPrettyFilter=exports.groupByProperty=exports.isEdgeTypeMatch=exports.getEdgeTypeMatches=exports.getDataUri=exports.convert=exports.getValues=exports.getIterableCollection=exports.getLabel=undefined;var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/utils/tmap\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _vis=require(\"$:/plugins/felixhayashi/vis/vis.js\");var _vis2=_interopRequireDefault(_vis);var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");var _basic=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic\");var basicUtils=_interopRequireWildcard(_basic);var _wiki=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki\");var wikiUtils=_interopRequireWildcard(_wiki);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var r in e){if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var getLabel=exports.getLabel=function e(t,r){var i=wikiUtils.getTiddler(t);return(i&&i.fields[r]?i.fields[r]:i.fields.title).replace(\"\\\\n\",\"\\n\")};var getIterableCollection=exports.getIterableCollection=function e(t){return t instanceof _vis2.default.DataSet?t.get():t};var getValues=exports.getValues=function e(t){if(Array.isArray(t)){return t}else if(t instanceof _vis2.default.DataSet){return t.get({returnType:\"Array\"})}var r=[];var i=Object.keys(t);for(var a=i.length;a--;){r.push(t[i[a]])}return r};var convert=exports.convert=function e(t,r){if((typeof t===\"undefined\"?\"undefined\":_typeof(t))!==\"object\"){throw new _exception.InvalidArgumentException(t,r)}if(r===\"object\"){r=\"hashmap\"}var i={array:function e(t){return getValues(t)},hashmap:function e(t){return t instanceof _vis2.default.DataSet?t.get({returnType:\"Object\"}):t},dataset:function e(t){return t instanceof _vis2.default.DataSet?t:!Array.isArray(t)?getValues(t):new _vis2.default.DataSet(t)}};return i[r](t)};var getDataUri=exports.getDataUri=function e(t,r,i){var a=wikiUtils.getTiddler(t);r=r||a.fields.type||\"image/svg+xml\";var s=a.fields.text;var o=$tw.config.contentTypeInfo[r].encoding;if(r===\"image/svg+xml\"){s=s.replace(/\\r?\\n|\\r/g,\" \");if(!basicUtils.hasSubString(\"xmlns\",s)){s=s.replace(/<svg/,'<svg xmlns=\"http://www.w3.org/2000/svg\"')}}if(i&&o!==\"base64\"){o=\"base64\";s=basicUtils.base64(s)}return\"data:\"+r+\";\"+o+\",\"+s};var eTyFiltAutoPrefix=\"[all[]] \";var getEdgeTypeMatches=exports.getEdgeTypeMatches=function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:\"\";var r=arguments[1];if(!r){r=wikiUtils.getTiddlersByPrefix($tm.path.edgeTypes+\"/\",{iterator:\"eachTiddlerPlusShadows\",removePrefix:true})}if(r!=null&&!Array.isArray(r)){r=Object.keys(r)}return wikiUtils.getMatches(eTyFiltAutoPrefix+t,r)};var isEdgeTypeMatch=exports.isEdgeTypeMatch=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"\";return wikiUtils.isMatch(t,eTyFiltAutoPrefix+r)};var groupByProperty=exports.groupByProperty=function e(t,r){t=getIterableCollection(t);var i=basicUtils.makeHashMap();var a=Object.keys(t);for(var s in a){var o=t[a[s]];var n=o[r];if(n==null){throw\"Cannot group by property \"+r}else{if(!Array.isArray(i[n])){i[n]=[]}i[n].push(o)}}return i};var getPrettyFilter=exports.getPrettyFilter=function e(t){t=t.trim().replace(\"][\",\"] [\");var r=/[+-]?\\[.+?[\\]\\}\\>]\\]/g;var i=t.match(r);t=t.replace(r,\" [] \").trim();var a=t.split(/\\s+/);var s=0;var o=[];for(var n=0,l=a.length;n<l;n++){o[n]=a[n]===\"[]\"?i[s++]:a[n]}return o.join(\"\\n\")};var drawRaster=exports.drawRaster=function e(t,r,i,a){var s=arguments.length>4&&arguments[4]!==undefined?arguments[4]:\"#D9D9D9\";var o=basicUtils.getNearestRasterPosition(i,a),n=o.x,l=o.y;var u=t.canvas.width/r;var p=t.canvas.height/r;var f=a*2;var v=Math.ceil(u/a/2)*a+f;var c=Math.ceil(p/a/2)*a+f;var y=n-v;var d=n+v;var g=l-c;var h=l+c;t.beginPath();for(var b=y;b<d;b+=a){t.moveTo(b,g);t.lineTo(b,h)}for(var x=g;x<=h;x+=a){t.moveTo(y,x);t.lineTo(d,x)}t.strokeStyle=s;t.fillStyle=s;t.stroke()};var refreshDataSet=exports.refreshDataSet=function e(t,r){var i=t.get({returnType:\"Object\"});var a=[];var s=[];var o=[];var n=[];for(var l in r){if(i[l]){if(basicUtils.isEqual(i[l],r[l])){continue}s.push(l);t.remove(l)}else{a.push(l)}if(r[l].x===undefined){o.push(l)}t.add(r[l])}for(var u in i){if(!r[u]){n.push(u);t.remove(u)}}return{withoutPosition:o,inserted:a,updated:s,removed:n}};var getId=exports.getId=function e(t){return wikiUtils.getTiddler(t).fields[\"tmap.id\"]};var getDublicates=exports.getDublicates=function e(t){var r=getId(t);if(!r){return[]}var i=wikiUtils.getTiddlersWithField(\"tmap.id\",r,{limit:2});delete i[wikiUtils.getTiddlerRef(t)];return Object.keys(i)};var keysOfItemsWithProperty=exports.keysOfItemsWithProperty=function e(t,r,i,a){t=getIterableCollection(t);var s=Object.keys(t);var o=[];a=typeof a===\"number\"?a:s.length;for(var n=0,l=s.length;n<l;n++){var u=s[n];if(_typeof(t[u])===\"object\"&&t[u][r]){if(!i||t[u][r]===i){o.push(u);if(o.length===a){break}}}}return o};var keyOfItemWithProperty=exports.keyOfItemWithProperty=function e(t,r,i){return keysOfItemsWithProperty(t,r,i,1)[0]};var getLookupTable=exports.getLookupTable=function e(t,r){t=getIterableCollection(t);var i=basicUtils.makeHashMap();var a=Object.keys(t);for(var s=0,o=a.length;s<o;s++){var n=a[s];var l=r?t[n][r]:t[n];var u=typeof l===\"undefined\"?\"undefined\":_typeof(l);if(u===\"string\"&&l!==\"\"||u===\"number\"){if(!i[l]){i[l]=r?t[n]:true;continue}}if(r){throw new Error('Cannot use \"'+l+'\" as lookup table index')}}return i};var getArrayValuesAsHashmapKeys=exports.getArrayValuesAsHashmapKeys=getLookupTable;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/utils/tmap.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/utils": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/utils",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.utils=undefined;var _extends=Object.assign||function(i){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var e in t){if(Object.prototype.hasOwnProperty.call(t,e)){i[e]=t[e]}}}return i};/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/utils\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _basic=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic\");var basicUtils=_interopRequireWildcard(_basic);var _thirdParty=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/thirdParty\");var thirdPartyUtils=_interopRequireWildcard(_thirdParty);var _wiki=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki\");var wikiUtils=_interopRequireWildcard(_wiki);var _tmap=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/tmap\");var tMapUtils=_interopRequireWildcard(_tmap);function _interopRequireWildcard(i){if(i&&i.__esModule){return i}else{var r={};if(i!=null){for(var t in i){if(Object.prototype.hasOwnProperty.call(i,t))r[t]=i[t]}}r.default=i;return r}}var utils=exports.utils=_extends({},basicUtils,thirdPartyUtils,wikiUtils,tMapUtils);exports.default=utils;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/utils/utils.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.touch=exports.addTiddler=exports.getTiddlersByPrefix=exports.getTiddlerWithField=exports.getTiddlersWithField=exports.deleteByPrefix=exports.cp=exports.mv=exports.addTWlisteners=exports.getChildWidgetByProperty=exports.getMergedTiddlers=exports.isSystemOrDraft=exports.isDraft=exports.setText=exports.getText=exports.isLeftVersionGreater=exports.getEntry=exports.setEntry=exports.clone=exports.writeFieldData=exports.parseFieldData=exports.isPreviewed=exports.notify=exports.registerTransclude=exports.getElementNode=exports.getTiddlerNode=exports.getTranscludeNode=exports.isMatch=exports.getMatches=exports.moveFieldValues=exports.deleteTiddlers=exports.setField=exports.setSidebarTab=exports.tiddlerExists=exports.getField=exports.getTiddler=exports.getTiddlerRef=undefined;var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");var _basic=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic\");var basicUtils=_interopRequireWildcard(_basic);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var r in e){if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]}}t.default=e;return t}}function _defineProperty(e,t,r){if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var getTiddlerRef=exports.getTiddlerRef=function e(t){if(t instanceof $tw.Tiddler){return t.fields.title}else if(typeof t===\"string\"){return t}else{throw new _exception.InvalidArgumentException(t)}};var getTiddler=exports.getTiddler=function e(t){return $tw.wiki.getTiddler(t instanceof $tw.Tiddler?t.fields.title:t)};var getField=exports.getField=function e(t,r){var i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:\"\";var d=getTiddler(t);return!d?i:d.fields[r]||i};var tiddlerExists=exports.tiddlerExists=function e(t){if(!t){return false}var r=getTiddlerRef(t);return Boolean(r&&($tw.wiki.tiddlerExists(r)||$tw.wiki.isShadowTiddler(r)))};var setSidebarTab=exports.setSidebarTab=function e(t){setText(getTiddlersByPrefix(\"$:/state/tab/sidebar-\")[0],t)};var setField=exports.setField=function e(t,r,i){if(!t||!r){return}var d=getTiddlerRef(t);var s=_defineProperty({title:d},r,i);var n=$tw.wiki.getTiddler(d,true);if(r!==\"text\"&&n&&!n.fields.text){s.text=\"\"}n=new $tw.Tiddler(n,s);$tw.wiki.addTiddler(n);return n};var deleteTiddlers=exports.deleteTiddlers=function e(t){var r=Object.keys(t);var i=$tw.wiki.getTiddlerList(\"$:/StoryList\");for(var d=r.length;d--;){var s=getTiddlerRef(t[r[d]]);if(!$tw.wiki.tiddlerExists(t[r[d]])){continue}var n=i.indexOf(s);if(n!==-1){i.splice(n,1);setField(\"$:/StoryList\",\"list\",i)}$tw.wiki.deleteTiddler(s)}};var moveFieldValues=exports.moveFieldValues=function e(t,r,i,d,s){if(t===r)return;var n=s||$tw.wiki.allTitles();for(var l=n.length;l--;){var a=getTiddler(n[l]);if(a.isDraft()||!a.fields[t]){continue}if(!d&&$tw.wiki.isSystemTiddler(n[l])){continue}var o=_defineProperty({},r,a.fields[t]);if(i){o[t]=undefined}$tw.wiki.addTiddler(new $tw.Tiddler(a,o))}};var getMatches=exports.getMatches=function e(t,r,i){var d=undefined;var s=$tw.wiki;if(typeof t===\"string\"){t=s.compileFilter(t)}if(r!=null&&(typeof r===\"undefined\"?\"undefined\":_typeof(r))===\"object\"){if(!Array.isArray(r)){r=Object.keys(r)}d=function e(t){for(var i=r.length;i--;){var d=s.getTiddler(r[i]);t(d,r[i])}}}return t.call(s,d,i)};var isMatch=exports.isMatch=function e(t,r){return getTiddlerRef(t)===getMatches(r,[getTiddlerRef(t)])[0]};var getTranscludeNode=exports.getTranscludeNode=function e(t,r){return{type:\"transclude\",attributes:{tiddler:{type:\"string\",value:getTiddlerRef(t)}},children:[],isBlock:!!r}};var getTiddlerNode=exports.getTiddlerNode=function e(t){return{type:\"tiddler\",attributes:{tiddler:{type:\"string\",value:getTiddlerRef(t)}},children:[]}};var getElementNode=exports.getElementNode=function e(t,r,i){return{type:\"element\",tag:t,attributes:{class:{type:\"string\",value:r}},children:i?[{type:\"text\",text:i}]:[]}};var registerTransclude=exports.registerTransclude=function e(t,r,i){basicUtils.removeArrayElement(t.children,t[r]);t[r]=t.makeChildWidget(getTranscludeNode(i,true));t.children.push(t[r]);return t[r]};var notify=exports.notify=function e(t){var r=\"$:/temp/tiddlymap/notify\";$tw.wiki.addTiddler(new $tw.Tiddler({title:r,text:t}));$tw.notifier.display(r)};var isPreviewed=exports.isPreviewed=function e(t){if(!t){return false}if(t.domNode.isTiddlyWikiFakeDom){return true}if(t.getVariable(\"tv-tiddler-preview\")){return true}else{var r=\"tc-tiddler-preview-preview\";return!!basicUtils.getAncestorWithClass(t.parentDomNode,r)}};var parseFieldData=exports.parseFieldData=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"text\";var i=arguments[2];var d=getTiddler(t);if(!d){return i}return basicUtils.parseJSON(d.fields[r],i)};var writeFieldData=exports.writeFieldData=function e(t,r,i,d){if((typeof i===\"undefined\"?\"undefined\":_typeof(i))!==\"object\"){return}d=parseInt(d);d=d>0&&r===\"text\"?d:0;setField(t,r,JSON.stringify(i,null,d))};var clone=exports.clone=function e(t,r){setField(t,\"title\",r)};var setEntry=exports.setEntry=function e(t,r,i){$tw.wiki.setText(getTiddlerRef(t),null,r,i)};var getEntry=exports.getEntry=function e(t,r,i){var d=$tw.wiki.getTiddlerData(getTiddlerRef(t),{});return d[r]==null?i:d[r]};var isLeftVersionGreater=exports.isLeftVersionGreater=function e(t,r){return t!==r&&$tw.utils.checkVersions(t,r)};var getText=exports.getText=function e(t,r){return getField(t,\"text\",r)};var setText=exports.setText=function e(t,r){setField(t,\"text\",r)};var isDraft=exports.isDraft=function e(t){var r=getTiddler(t);return r&&r.isDraft()};var isSystemOrDraft=exports.isSystemOrDraft=function e(t){return $tw.wiki.isSystemTiddler(getTiddlerRef(t))||isDraft(t)};var getMergedTiddlers=exports.getMergedTiddlers=function e(t,r){if(!Array.isArray(t)){return}for(var i=t.length;i--;){t[i]=getTiddler(t[i])}if(!t.length){return}t.push({title:r||t[0].fields.title},$tw.wiki.getModificationFields(),$tw.wiki.getCreationFields());t.unshift(null);return new(Function.prototype.bind.apply($tw.Tiddler,t))};var getChildWidgetByProperty=exports.getChildWidgetByProperty=function e(t,r,i){var d=t.children;for(var s=d.length;s--;){var n=d[s];if(n[r]===i){return n}else{n=e(n,r,i);if(n){return n}}}};var addTWlisteners=exports.addTWlisteners=function e(t,r,i){for(var d in t){r.addEventListener(d,t[d].bind(i))}};var mv=exports.mv=function e(t,r,i,d){if(t===r||!t||!r){return}i=typeof i===\"boolean\"?i:false;d=typeof d===\"boolean\"?d:true;var s=getTiddlersByPrefix(t);var n=basicUtils.makeHashMap();for(var l=s.length;l--;){var a=s[l];var o=a.replace(t,r);if($tw.wiki.tiddlerExists(o)&&!i){return}n[a]=o}for(var f in n){setField(f,\"title\",n[f]);if(d){$tw.wiki.deleteTiddler(f)}}return n};var cp=exports.cp=function e(t,r,i){return mv(t,r,i,false)};var deleteByPrefix=exports.deleteByPrefix=function e(t,r){if(!t){return}r=r||$tw.wiki.allTitles();var i=[];for(var d=r.length;d--;){if(basicUtils.startsWith(r[d],t)){$tw.wiki.deleteTiddler(r[d]);i.push(i[d])}}return i};var getTiddlersWithField=exports.getTiddlersWithField=function e(t,r){var i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var d=i.tiddlers||$tw.wiki.allTitles();var s=i.isIncludeDrafts===true;var n=basicUtils.makeHashMap();var l=Object.keys(d);var a=$tw.utils.hop;var o=i.limit||0;for(var f=l.length;f--;){var u=getTiddler(d[l[f]]);var p=u.fields;if(a(p,t)&&(!a(p,\"draft.of\")||s)){if(!r||p[t]===r){n[p.title]=u;if(--o===0){break}}}}return n};var getTiddlerWithField=exports.getTiddlerWithField=function e(t,r){return Object.keys(getTiddlersWithField(t,r,{limit:1}))[0]};var getTiddlersByPrefix=exports.getTiddlersByPrefix=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i=r.removePrefix===true;var d=[];var s=$tw.wiki[r.iterator||\"each\"];s(function(e,r){if(basicUtils.startsWith(r,t)){d.push(i?basicUtils.getWithoutPrefix(r,t):r)}});return d};var addTiddler=exports.addTiddler=function e(t,r){var i=getTiddler(t);if(!r&&i){return i}i=new $tw.Tiddler({title:t,text:\"\"},$tw.wiki.getModificationFields(),$tw.wiki.getCreationFields());$tw.wiki.addTiddler(i);return i};var touch=exports.touch=function e(t){if(!t){return}var r=new $tw.Tiddler(getTiddler(t),$tw.wiki.getModificationFields());$tw.wiki.addTiddler(r)};\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/utils/wiki.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/macro/tmap": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/macro/tmap",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.params=exports.name=exports.run=undefined;var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};/* @preserve TW-Guard */\n/*\\\ntitle: $:/plugins/felixhayashi/tiddlymap/js/macro/tmap\ntype: application/javascript\nmodule-type: macro\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _ViewAbstraction=require(\"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\");var _ViewAbstraction2=_interopRequireDefault(_ViewAbstraction);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var name=\"tmap\";var params=getParamSlots(5);function run(){this.substVarRefs=this.substituteVariableReferences;var e=command[arguments[0]];var t=null;if(typeof e===\"function\"){var r=Array.prototype.slice.call(arguments,1);t=e.apply(this,r)}return typeof t===\"string\"?t:\"\"}function getParamSlots(e){var t=[];for(var r=0;r<e;r++){t.push({name:\"arg\"+r})}return t}var command=_utils2.default.makeHashMap();command.basename=function(e){var t=this.getVariable(\"currentTiddler\");return _utils2.default.getBasename(t,e)};command.datauri=function(e,t){return _utils2.default.getDataUri(e,t,true)};command.testJSON=function(e){var t=$tw.wiki.getTiddler(this.getVariable(\"currentTiddler\"));try{JSON.parse(t.fields[e]);return\"valid\"}catch(e){return\"malformed\"}};command.splitAndSelect=function(e,t){var r=this.getVariable(\"currentTiddler\");var a=r.split(e)[t];return a!=null?a:r};command.concat=function(){var e=\"\";for(var t=1,r=arguments.length;t<r;t++){e+=arguments[t]}return e};command.uuid=function(){return _utils2.default.genUUID()};command.regRepl=function(){var e=this.substVarRefs(arguments[0]);var t=arguments[1];var r=this.substVarRefs(arguments[2]);var a=this.substVarRefs(arguments[4]);return e.replace(new RegExp(t,a),r)};command.halfOfString=function(){var e=this.substVarRefs(arguments[0]);if(!e){return\"\"}return e.substr(0,Math.ceil(e.length/2))};command.isETyVisible=function(e,t){e=new _ViewAbstraction2.default(e);var r=command.getETyId.call(this,e,t);return\"\"+e.isEdgeTypeVisible(r)};command.getETyId=function(e,t){e=new _ViewAbstraction2.default(e);var r=_EdgeType2.default.getInstance(t||this.getVariable(\"currentTiddler\"));if(!r.namespace){var a=_EdgeType2.default.getIdParts(r.id),n=a.marker,i=a.name;var u=e.getConfig(\"edge_type_namespace\");r=_EdgeType2.default.getInstance(_EdgeType2.default.getId(n,u,i))}return r.id};command.scale=function(){var e=\"\";for(var t=1,r=parseInt(arguments[0]);t<r;t++){e+=\"[[\"+t+\"]]\"}return e};command.mergeFields=function(){var e=_utils2.default.getTiddler(arguments[0]);var t=arguments[1];var r=arguments[2]||\" \";if(!e)return;var a=_utils2.default.getPropertiesByPrefix(e.fields,t);var n=\"\";for(var i in a){if(typeof a[i]===\"string\"){n+=a[i]+r}}return n};command.option=function(e,t){if(typeof $tm==\"undefined\"){return\"\"}var r=$tm;var a=e.split(\".\");for(var n=0;n<a.length;n++){if((typeof r===\"undefined\"?\"undefined\":_typeof(r))==\"object\"&&r[a[n]]){r=r[a[n]]}}if(t&&typeof r===\"string\"&&_utils2.default.hasSubString(t)&&r.lastIndexOf(t)+t.length===r.length){r=r+t}return r};exports.run=run;exports.name=name;exports.params=params;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/macro/MapMacro.js.map\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/plugins/felixhayashi/tiddlymap/js/Adapter": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/Adapter",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||false;r.configurable=true;if(\"value\"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,i,r){if(i)e(t.prototype,i);if(r)e(t,r);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/Adapter\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _ViewAbstraction=require(\"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\");var _ViewAbstraction2=_interopRequireDefault(_ViewAbstraction);var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _NodeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/NodeType\");var _NodeType2=_interopRequireDefault(_NodeType);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _Edge=require(\"$:/plugins/felixhayashi/tiddlymap/js/Edge\");var _Edge2=_interopRequireDefault(_Edge);var _vis=require(\"$:/plugins/felixhayashi/vis/vis.js\");var _vis2=_interopRequireDefault(_vis);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);var _contrastcolour=require(\"$:/core/modules/macros/contrastcolour.js\");function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var i in e){if(Object.prototype.hasOwnProperty.call(e,i))t[i]=e[i]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,i){if(t in e){Object.defineProperty(e,t,{value:i,enumerable:true,configurable:true,writable:true})}else{e[t]=i}return e}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var Adapter=function(){function e(t,i){_classCallCheck(this,e);this.getTiddlerById=t.getTiddlerById.bind(t);this.getId=t.getIdByTiddler.bind(t);this.assignId=t.assignId.bind(t);this.edgeTypeSubscriberRegistry=i;this.indeces=$tm.indeces;this.wiki=$tw.wiki;this.visShapesWithTextInside=_utils2.default.getLookupTable([\"ellipse\",\"circle\",\"database\",\"box\",\"text\"])}_createClass(e,[{key:\"deleteEdge\",value:function e(t){return this._processEdge(t,\"delete\")}},{key:\"insertEdge\",value:function e(t){return this._processEdge(t,\"insert\")}},{key:\"deleteEdges\",value:function e(t){t=_utils2.default.convert(t,\"array\");for(var i=t.length;i--;){this.deleteEdge(t[i])}}},{key:\"_processEdge\",value:function e(t,i){$tm.logger(\"debug\",\"Edge\",i,t);var r=this.getTiddlerById(t.from);if(!r||!_utils2.default.tiddlerExists(r)){return}var a=_utils2.default.getTiddler(r);var s=this.indeces.allETy[t.type]||_EdgeType2.default.getInstance(t.type);var l=this.edgeTypeSubscriberRegistry.getAllForType(s);var n=i+\"Edge\";for(var d=l.length;d--;){l[d][n](a,t,s)}if(i===\"insert\"&&!s.exists()){s.save()}return t}},{key:\"getAdjacencyList\",value:function e(t){var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};$tm.start(\"Creating adjacency list\");if(!i.edges){var r=_utils2.default.getMatches(env.selector.allPotentialNodes);i.edges=this.getEdgesForSet(r,i.toWL,i.typeWL)}var a=_utils2.default.groupByProperty(i.edges,t||\"to\");$tm.stop(\"Creating adjacency list\");return a}},{key:\"getNeighbours\",value:function e(t){var i=this;var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};$tm.start(\"Get neighbours\");var a=r.addProperties,s=r.toWL,l=r.typeWL,n=r.steps;var d=this.indeces.allETy;var o=_utils2.default.getArrayValuesAsHashmapKeys(t);var u=_ViewAbstraction2.default.exists(r.view)?new _ViewAbstraction2.default(r.view):null;var f=_utils2.default.makeHashMap();var g=_utils2.default.makeHashMap();var c=parseInt(n)>0?n:1;var v=r.direction||u&&u.getConfig(\"neighbourhood_directions\");var y=!v||v===\"both\";var h=y||v===\"in\";var p=y||v===\"out\";var _=u&&\"[all[]] \"+u.getNodeFilter(\"raw\");var b=this.getAdjacencyList(\"to\",r);var m=function e(t,r,s){f[t.id]=t;var l=i.getTiddlerById(t[r]);if(u&&_utils2.default.isTrue($tm.config.sys.nodeFilterNeighbours)&&!_utils2.default.isMatch(l,_)){return}if(!o[l]){o[l]=true;var n=i.makeNode(l,a);if(n){g[n.id]=n;s.push(l)}}};var w=void 0;for(w=0;w<c&&t.length;w++){var T=[];for(var k=t.length;k--;){if(_utils2.default.isSystemOrDraft(t[k])){continue}var E=this.getEdges(t[k],s,l);for(var N in E){var A=d[E[N].type];if(y||p&&A.toArrow||h&&A.invertedArrow){m(E[N],\"to\",T)}}var I=b[this.getId(t[k])];if(!I){continue}for(var j=I.length;j--;){var x=d[I[j].type];if(y||h&&x.toArrow||p&&x.invertedArrow){m(I[j],\"from\",T)}}}t=T}var S={nodes:g,edges:f};$tm.logger(\"debug\",\"Retrieved neighbourhood\",S,\"steps\",w);$tm.stop(\"Get neighbours\");return S}},{key:\"getGraph\",value:function e(t){var i=t.view,r=t.matches,a=t.includeNeighboursOf;$tm.start(\"Assembling Graph\");i=new _ViewAbstraction2.default(i);r=r||_utils2.default.getMatches(i.getNodeFilter(\"compiled\"));var s=parseInt(i.getConfig(\"neighbourhood_scope\"));var l=i.getEdgeTypeFilter(\"whitelist\");var n=_utils2.default.getArrayValuesAsHashmapKeys(r);var d=this.getEdgesForSet(r,n,l);var o=void 0;if(i.isEnabled(\"filter_nodes_by_edge_types\")){o=new Set;Object.values(d).forEach(function(e){o.add(e.from);o.add(e.to)})}var u={edges:d,nodes:this.selectNodesByReferences(r,{view:i,outputType:\"hashmap\"})};if(s){var f=a?r.filter(a):r;var g=this.getNeighbours(f,{steps:s,view:i,typeWL:l,addProperties:{type:\"tmap:neighbour\"}});Object.assign(u.nodes,g.nodes);Object.assign(u.edges,g.edges);if(i&&i.isEnabled(\"show_inter_neighbour_edges\")){var c=this.getTiddlersByIds(g.nodes);var v=_utils2.default.getArrayValuesAsHashmapKeys(c);Object.assign(u.edges,this.getEdgesForSet(c,v))}}if(o){var y=_utils2.default.makeHashMap();Object.values(u.nodes).forEach(function(e){if(o.has(e.id)){y[e.id]=e}});u.nodes=y}this.attachStylesToNodes(u.nodes,i);$tm.stop(\"Assembling Graph\");$tm.logger(\"debug\",\"Assembled graph:\",u);return u}},{key:\"getEdges\",value:function e(t,i,r){var a=_utils2.default.getTiddler(t);if(!a||_utils2.default.isSystemOrDraft(a)){return}var s=this.indeces.allETy;var l=_utils2.default.makeHashMap();var n=this.edgeTypeSubscriberRegistry.getAll();for(var d=0,o=n.length;d<o;d++){Object.assign(l,n[d].loadEdges(a,i,r))}for(var u in l){var f=l[u];if(!f.from||!f.to){continue}var g=s[f.type]||_EdgeType2.default.getInstance(f.type);addStyleToEdge(l[u],g);l[u]=f}return l}},{key:\"getEdgesForSet\",value:function e(t,i,r){var a=_utils2.default.makeHashMap();for(var s=t.length;s--;){Object.assign(a,this.getEdges(t[s],i,r))}return a}},{key:\"selectEdgesByType\",value:function e(t){var i=_utils2.default.makeHashMap(_defineProperty({},_EdgeType2.default.getInstance(t).id,true));return this.getEdgesForSet(this.getAllPotentialNodes(),null,i)}},{key:\"getAllPotentialNodes\",value:function e(){return _utils2.default.getMatches($tm.selector.allPotentialNodes)}},{key:\"_processEdgesWithType\",value:function e(t,i){var r=i.action,a=i.newName;t=_EdgeType2.default.getInstance(t);$tm.logger(\"debug\",\"Processing edges\",t,r);var s=this.selectEdgesByType(t);if(r===\"rename\"){new _EdgeType2.default(a,t).save()}for(var l in s){this._processEdge(s[l],\"delete\");if(r===\"rename\"){s[l].type=a;this._processEdge(s[l],\"insert\")}}this.wiki.deleteTiddler(t.fullPath)}},{key:\"selectNodesByReferences\",value:function e(t){var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},r=i.addProperties,a=i.outputType;var s=_utils2.default.makeHashMap();var l=Object.keys(t);for(var n=l.length;n--;){var d=this.makeNode(t[l[n]],r);if(d){s[d.id]=d}}return _utils2.default.convert(s,a)}},{key:\"selectNodesByIds\",value:function e(t,i){var r=this.getTiddlersByIds(t);return this.selectNodesByReferences(r,i)}},{key:\"selectNodeById\",value:function e(t,i){i=Object.assign({},i,{outputType:\"hashmap\"});var r=this.selectNodesByIds([t],i);return r[t]}},{key:\"removeNodeType\",value:function e(t){t=_NodeType2.default.getInstance(t);this.wiki.deleteTiddler(t.fullPath)}},{key:\"makeNode\",value:function e(t,i){var r=_utils2.default.getTiddler(t);if(!r||_utils2.default.isSystemOrDraft(r))return;var a=_utils2.default.merge({},i);a.id=this.assignId(r);a.tRef=r.fields.title;var s=r.fields[$tm.field.nodeLabel];a.label=(s&&$tm.field.nodeLabel!==\"title\"?this.wiki.renderText(\"text/plain\",\"text/vnd-tiddlywiki\",s):r.fields.title).replace(\"\\\\n\",\"\\n\");return a}},{key:\"getInheritedNodeStyles\",value:function e(t){var i=this.getTiddlersByIds(t);var r={};var a=this.indeces.glNTy;for(var s=a.length;s--;){var l=a[s];var n=[];if(l.id===\"tmap:neighbour\"){for(var d in t){if(t[d].type===\"tmap:neighbour\"){n.push(this.getTiddlerById(d))}}}else{n=l.getInheritors(i)}for(var o=n.length;o--;){var u=n[o];var f=r[u]=r[u]||{};f.style=_utils2.default.merge(f.style||{},l.style);if(l[\"fa-icon\"]){f[\"fa-icon\"]=l[\"fa-icon\"]}else if(l[\"tw-icon\"]){f[\"tw-icon\"]=l[\"tw-icon\"]}}}return r}},{key:\"attachStylesToNodes\",value:function e(t,i){i=_ViewAbstraction2.default.exists(i)?new _ViewAbstraction2.default(i):null;var r=this.getInheritedNodeStyles(t);var a=i?i.getNodeData():_utils2.default.makeHashMap();var s=i&&!i.isEnabled(\"physics_mode\");for(var l in t){var n=this.getTiddlerById(l);var d=this.wiki.getTiddler(n);var o=d.fields;var u=t[l];var f=void 0;var g=r[n];if(g){_utils2.default.merge(u,g.style);f=getIcon(g[\"fa-icon\"],g[\"tw-icon\"])}if(o.color){u.color=o.color}if(o[\"tmap.style\"]){_utils2.default.merge(u,_utils2.default.parseJSON(o[\"tmap.style\"]))}f=getIcon(o[\"tmap.fa-icon\"],o[\"icon\"])||f;var c=a[l];if(c){_utils2.default.merge(u,c);if(s){u.fixed={x:u.x!=null,y:u.y!=null}}f=getIcon(c[\"fa-icon\"],c[\"tw-icon\"])||f}var v=u.color!==null&&_typeof(u.color)===\"object\";var y=v?u.color.background:u.color;u.color={background:y,border:v?u.color.border:undefined};addNodeIcon(u,f);u.font=u.font||{};if(u.shape&&!this.visShapesWithTextInside[u.shape]){u.font.color=\"black\"}else if(!u.font.color&&y){u.font.color=(0,_contrastcolour.run)(y,y,\"black\",\"white\")}if(u.shape===\"icon\"){u.label=\"\\n\"+u.label;if(_typeof(u.icon)===\"object\"){u.icon.color=y}}}if(i){var h=t[i.getConfig(\"central-topic\")];if(h){_utils2.default.merge(h,this.indeces.glNTyById[\"tmap:central-topic\"].style)}}}},{key:\"deleteNode\",value:function e(t){if(!t){return}var i=(typeof t===\"undefined\"?\"undefined\":_typeof(t))===\"object\"?t.id:t;var r=this.getTiddlerById(i);if(r){_utils2.default.deleteTiddlers([r])}var a=_utils2.default.getMatches(env.selector.allViews);for(var s=a.length;s--;){var l=new _ViewAbstraction2.default(a[s]);l.removeNode(i)}var n=this.getNeighbours([r]);this.deleteEdges(n.edges)}},{key:\"deleteNodes\",value:function e(t){for(var i=t.length;i--;){this.deleteNode(t[i])}}},{key:\"insertNode\",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var i=arguments[1];var r=arguments[2];t.label=this.wiki.generateNewTitle(t.label||_utils2.default.getRandomLabel());var a=new $tw.Tiddler({text:\"\"},r,{title:t.label,\"tmap.id\":null},this.wiki.getModificationFields(),this.wiki.getCreationFields());this.wiki.addTiddler(a);t=this.makeNode(a,t);if(_ViewAbstraction2.default.exists(i)){new _ViewAbstraction2.default(i).addNode(t)}return t}},{key:\"getTiddlersByIds\",value:function e(t){if(Array.isArray(t)){t=_utils2.default.getArrayValuesAsHashmapKeys(t)}else if(t instanceof _vis2.default.DataSet){t=_utils2.default.getLookupTable(t,\"id\")}var i=[];for(var r in t){var a=this.getTiddlerById(r);if(a){i.push(a)}}return i}}]);return e}();var getFAdigits=function e(t){return t.length===4?t:t.substr(3,4)};var addNodeIcon=function e(t,i){if(!i){return}if(i.fa){t.shape=\"icon\";t.icon={shape:\"icon\",face:\"FontAwesome\",color:t.color,code:String.fromCharCode(\"0x\"+getFAdigits(i.fa))};if(t.size){t.icon.size=t.size}return}if(i.tw){var r=_utils2.default.getTiddler(i.tw);if(!r){return}if(r.fields[\"_canonical_uri\"]){t.image=r.fields[\"_canonical_uri\"];t.shape=\"image\"}else if(r.fields.text){t.image=_utils2.default.getDataUri(r);t.shape=\"image\"}}};var removeObsoleteViewData=function e(t,i){if(!_ViewAbstraction2.default.exists(i)||!t){return}i=new _ViewAbstraction2.default(i);var r=i.getNodeData();var a=0;for(var s in r){if(t[s]===undefined&&r[s]!=null){r[s]=undefined;a++}}if(a){$tm.logger(\"debug\",\"[Cleanup]\",\"Removed obsolete node data:\",i.getLabel(),a);i.saveNodeData(r)}};var addStyleToEdge=function e(t,i){t=Object.assign(t,i.style);if(_utils2.default.isTrue(i[\"show-label\"],true)){t.label=i.getLabel()}};var getIcon=function e(t,i){return t&&{fa:t}||i&&{tw:i}};exports.default=Adapter;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/Adapter.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/CallbackManager": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/CallbackManager",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,t){for(var a=0;a<t.length;a++){var l=t[a];l.enumerable=l.enumerable||false;l.configurable=true;if(\"value\"in l)l.writable=true;Object.defineProperty(e,l.key,l)}}return function(t,a,l){if(a)e(t.prototype,a);if(l)e(t,l);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/CallbackManager\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var CallbackManager=function(){function e(){_classCallCheck(this,e);this.callbacks=_utils2.default.makeHashMap();this.logger=$tm.logger;this.wiki=$tw.wiki}_createClass(e,[{key:\"add\",value:function e(t,a){var l=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;this.logger(\"debug\",'A callback was registered for changes of \"'+t+'\"');this.callbacks[t]={execute:a,isDeleteOnCall:l}}},{key:\"remove\",value:function e(t){if(!t){return}if(typeof t===\"string\"){t=[t]}for(var a=t.length;a--;){var l=t[a];if(this.callbacks[l]){this.logger(\"debug\",'Deleting callback for \"'+l+'\"');delete this.callbacks[l]}}}},{key:\"refresh\",value:function e(t){if(this.callbacks.length==0){return}for(var a in t){if(!this.callbacks[a]){continue}if(this.wiki.getTiddler(a)){this.logger(\"debug\",\"Executing a callback for: \"+a);this.callbacks[a].execute(a);if(!this.callbacks.isDeleteOnCall){continue}}this.remove(a)}}}]);return e}();exports.default=CallbackManager;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/CallbackManager.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/startup/caretaker": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/startup/caretaker",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.startup=exports.synchronous=exports.before=exports.after=exports.platforms=exports.name=undefined;var _rebuilders;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r){if(Object.prototype.hasOwnProperty.call(r,i)){e[i]=r[i]}}}return e};/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/startup/caretaker\ntype: application/javascript\nmodule-type: startup\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _vis=require(\"$:/plugins/felixhayashi/tiddlymap/js/config/vis\");var _vis2=_interopRequireDefault(_vis);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _Fixer=require(\"$:/plugins/felixhayashi/tiddlymap/js/Fixer\");var _Fixer2=_interopRequireDefault(_Fixer);var _Adapter=require(\"$:/plugins/felixhayashi/tiddlymap/js/Adapter\");var _Adapter2=_interopRequireDefault(_Adapter);var _tracker=require(\"$:/plugins/felixhayashi/tiddlymap/js/services/tracker\");var _tracker2=_interopRequireDefault(_tracker);var _EdgeTypeSubscriberRegistry=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeTypeSubscriberRegistry\");var _EdgeTypeSubscriberRegistry2=_interopRequireDefault(_EdgeTypeSubscriberRegistry);var _DialogManager=require(\"$:/plugins/felixhayashi/tiddlymap/js/DialogManager\");var _DialogManager2=_interopRequireDefault(_DialogManager);var _CallbackManager=require(\"$:/plugins/felixhayashi/tiddlymap/js/CallbackManager\");var _CallbackManager2=_interopRequireDefault(_CallbackManager);var _ViewAbstraction=require(\"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\");var _ViewAbstraction2=_interopRequireDefault(_ViewAbstraction);var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _NodeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/NodeType\");var _NodeType2=_interopRequireDefault(_NodeType);var _vis3=require(\"$:/plugins/felixhayashi/vis/vis.js\");var _vis4=_interopRequireDefault(_vis3);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);var _URL=require(\"$:/plugins/felixhayashi/tiddlymap/js/URL\");var _URL2=_interopRequireDefault(_URL);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var r in e){if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,r){if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}var init=function e(){window.$tm=_extends({},env,{utils:_utils2.default,url:new _URL2.default(window.location.href)});cleanup();registerPublicClasses($tm);updateGlobals($tm);createMetaFile($tm.logger);var t=attachIndeces($tm);var r=getInitializedServices(t);Object.assign($tm,r);loadDefaultView($tm.config.sys.defaultView);r.fixer.fix();$tm.registry=[];setInterval(routineCheck,5e3);registerChangeListener($tm.callbackManager);registerMousemoveListener();registerClickListener();if($tm.url.query[\"tmap-enlarged\"]){prepareFullscreenStart($tm.url)}$tm.logger(\"warn\",\"TiddlyMap's caretaker successfully started\")};var getInitializedServices=function e(t){var r=new _tracker2.default(d);var i=$tw.modules.applyMethods(\"tmap.edgetypehandler\");var a=new _EdgeTypeSubscriberRegistry2.default(i,t.allETy,r);var s=new _Adapter2.default(r,a);var l=new _CallbackManager2.default;var n=new _DialogManager2.default(l);var d=new _Fixer2.default(s,$tm.logger,t.glNTy);return{edgeTypeSubscriberRegistry:a,tracker:r,adapter:s,callbackManager:l,dialogManager:n,fixer:d}};var registerPublicClasses=function e(t){t.keycharm=_vis4.default.keycharm;t.NodeType=_NodeType2.default;t.EdgeType=_EdgeType2.default;t.ViewAbstraction=_ViewAbstraction2.default};var attachOptions=function e(t){var r=t;if(!r.config)r.config=_utils2.default.makeHashMap();r.config.sys=_utils2.default.merge(r.config.sys,_utils2.default.unflatten($tw.wiki.getTiddlerData(env.ref.sysUserConf)));r.config.vis=_utils2.default.merge({},_vis2.default,_utils2.default.parseFieldData(env.ref.visUserConf));if(!r.field)r.field=_utils2.default.makeHashMap();$tw.utils.extend(r.field,r.config.sys.field)};var attachIndeces=function e(t){$tm.start(\"Attaching Indeces\");t.indeces=t.indeces||{};updateNodeTypesIndeces(t.indeces);updateEdgeTypesIndeces(t.indeces);$tm.stop(\"Attaching Indeces\");return t.indeces};var updateNodeTypesIndeces=function e(t){t=t||$tm.indeces;var r=$tm.path.nodeTypes;var i=t.glNTy=[];var a=t.glNTyById=_utils2.default.makeHashMap();$tw.wiki.eachTiddlerPlusShadows(function(e,t){if(_utils2.default.startsWith(t,r)){var s=_NodeType2.default.getInstance(t);a[s.id]=s;i.push(s)}});i.sort(function(e,t){return e.priority-t.priority})};var updateEdgeTypesIndeces=function e(t){t=t||$tm.indeces;var r=$tm.path.edgeTypes;var i=t.allETy=_utils2.default.makeHashMap();$tw.wiki.eachTiddlerPlusShadows(function(e,t){if(_utils2.default.startsWith(t,r)){var a=_EdgeType2.default.getInstance(t);i[a.id]=a}});if($tm.edgeTypeSubscriberRegistry){$tm.edgeTypeSubscriberRegistry.updateIndex(i)}};var attachFunctions=function e(t){var r=t;var i=function e(){};if(_utils2.default.isTrue($tm.config.sys.debug,false)&&console){r.logger=function(){if(arguments.length<2)return;var e=Array.prototype.slice.call(arguments);var t=e.shift(e);var r=console.hasOwnProperty(t)?t:\"debug\";console[r].apply(console,e)};r.start=function(e){console.time(\"[timer] \"+e)};r.stop=function(e){console.timeEnd(\"[timer] \"+e)}}else{r.logger=r.start=r.stop=i}r.notify=_utils2.default.isTrue($tm.config.sys.notifications)?_utils2.default.notify:i};var routineCheck=function e(){for(var t=$tm.registry.length;t--;){var r=$tm.registry[t];if(!r.destruct||!r.isZombieWidget)return;if(r.isZombieWidget()){$tm.logger(\"warn\",\"a widget will be removed\");$tm.registry.splice(t,1);r.destruct()}}};var dispatchUpdates=function e(t){var r=$tm.registry;for(var i=r.length;i--;){var a=r[i];if(a.update&&a.isZombieWidget&&!a.isZombieWidget()){a.update(t)}}};var checkForClone=function e(t){var r=_utils2.default.getDublicates(t);if(!r.length){return}_utils2.default.setField(t,\"tmap.edges\",undefined);$tm.tracker.assignId(t,true);$tm.dialogManager.open(\"dublicateIdInfo\",{param:{changedTiddler:t.fields.title,filter:_utils2.default.joinAndWrap(r,\"[[\",\"]]\"),id:_utils2.default.getId(t)}})};var updateGlobals=function e(t){attachOptions($tm);attachFunctions($tm);$tm.logger(\"warn\",\"Rebuilt globals\")};var lastCurrentTiddler=null;var updateLiveViewTrigger=function e(t){if(t[\"$:/HistoryList\"]){var r=_utils2.default.getField(\"$:/HistoryList\",\"current-tiddler\")}else if(t[\"$:/temp/focussedTiddler\"]){var r=_utils2.default.getField(\"$:/temp/focussedTiddler\",\"text\")}if(r!=null&&lastCurrentTiddler!==r){lastCurrentTiddler=r;_utils2.default.setField(\"$:/temp/tmap/currentTiddler\",\"text\",r)}};var printChanges=function e(t,r){if(!_utils2.default.isTrue($tm.config.sys.debug,false))return;$tm.logger(\"warn\",\"=== Refresh \"+r+\" ===\");for(var i in t){var a=t[i].deleted?\"[Deleted]\":\"[Modified]\";$tm.logger(\"warn\",a,i,$tw.wiki.getTiddler(i))}};var registerMousemoveListener=function e(){$tm.mouse={};var t=function e(t){$tm.mouse=t};window.addEventListener(\"mousemove\",t,false)};var registerClickListener=function e(){var t=$tm.path.tempPopups;window.addEventListener(\"click\",function(e){var r=_utils2.default.getTiddlersByPrefix(t);for(var i=r.length;i--;){if(_utils2.default.getText(r[i]))break}if(i===-1)return;if(!$tw.utils.hasClass(e.target,\"tc-drop-down\")&&!_utils2.default.getAncestorWithClass(e.target,\"tc-drop-down\")){for(var i=r.length;i--;){_utils2.default.setText(r[i],\"\")}}},false)};var registerChangeListener=function e(t){var r=0;$tw.wiki.addEventListener(\"change\",function(e){$tm.start(\"Caretaker handling changes\");printChanges(e,r++);t.refresh(e);var i={changedTiddlers:{}};for(var a in e){var s=_utils2.default.getTiddler(a);if(s&&s.isDraft()){continue}var l=handleTiddlerChange(a,s,i);if(l){i.changedTiddlers[a]=e[a]}}dispatchUpdates(i);updateLiveViewTrigger(e);$tm.stop(\"Caretaker handling changes\")})};var rebuilders=(_rebuilders={},_defineProperty(_rebuilders,env.path.options,updateGlobals),_defineProperty(_rebuilders,env.path.nodeTypes,updateNodeTypesIndeces),_defineProperty(_rebuilders,env.path.edgeTypes,updateEdgeTypesIndeces),_rebuilders);var handleTiddlerChange=function e(t,r,i){if($tw.wiki.isSystemTiddler(t)){for(var a in rebuilders){if(_utils2.default.startsWith(t,a)&&!i[a]){$tm.logger(\"warn\",\"[System change]\",a);rebuilders[a]();i[a]=true}}}else if(r){if(r.fields.text===undefined){$tw.wiki.dispatchEvent(\"lazyLoad\",t);return false}checkForClone(r);$tm.tracker.assignId(r)}else{var s=$tm.tracker.getIdByTiddler(t);if(!s){return false}var l=_utils2.default.getTiddlerWithField(\"tmap.id\",s);if(l){$tm.logger(\"warn\",\"[Renamed]\",t,\"into\",l)}else{$tm.adapter.deleteNode(s)}}return true};var cleanup=function e(){_utils2.default.deleteByPrefix(\"$:/temp/felixhayashi\");_utils2.default.deleteByPrefix(\"$:/temp/tiddlymap\");_utils2.default.deleteByPrefix(\"$:/temp/tmap\")};var loadDefaultView=function e(t){if(!t){return}var r=_utils2.default.getTiddler(env.ref.defaultViewHolder);if(r.fields.text===$tm.config.sys.defaultView){return}_utils2.default.setText(env.ref.defaultViewHolder,$tm.config.sys.defaultView)};var prepareFullscreenStart=function e(t){var r=env.ref,i=r.mainEditor,a=r.defaultViewHolder;_utils2.default.setSidebarTab(i);if(_ViewAbstraction2.default.exists(t)){t=new _ViewAbstraction2.default(t);_utils2.default.setField(a,\"text\",t.getLabel())}};var createMetaFile=function e(t){if(_utils2.default.tiddlerExists(env.ref.sysMeta)){return}t(\"warn\",\"Creating meta file\");var r=$tw.wiki.getTiddler(env.path.pluginRoot);$tw.wiki.setTiddlerData(env.ref.sysMeta,{originalVersion:r.fields.version,dataStructureState:\"0.6.9\",showWelcomeMessage:true})};var name=exports.name=\"tmap.caretaker\";var platforms=exports.platforms=[\"browser\"];var after=exports.after=[\"startup\"];var before=exports.before=[\"rootwidget\"];var synchronous=exports.synchronous=true;var startup=exports.startup=init;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/Caretaker.js.map\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/plugins/felixhayashi/tiddlymap/js/DialogManager": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/DialogManager",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,t){for(var a=0;a<t.length;a++){var l=t[a];l.enumerable=l.enumerable||false;l.configurable=true;if(\"value\"in l)l.writable=true;Object.defineProperty(e,l.key,l)}}return function(t,a,l){if(a)e(t.prototype,a);if(l)e(t,l);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/DialogManager\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _CallbackManager=require(\"$:/plugins/felixhayashi/tiddlymap/js/CallbackManager\");var _CallbackManager2=_interopRequireDefault(_CallbackManager);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var DialogManager=function(){function e(t,a){_classCallCheck(this,e);this.callbackManager=t;this.context=a}_createClass(e,[{key:\"open\",value:function t(a){var l=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i=arguments[2];if(_utils2.default.isTrue($tm.config.sys.suppressedDialogs[a],false)){$tm.logger(\"warning\",\"Suppressed dialog\",a);return}$tm.logger(\"debug\",\"Dialog param object\",l);if(typeof i===\"function\"&&this.context){i=i.bind(this.context)}var r=$tm.path.tempRoot+\"/dialog-\"+_utils2.default.genUUID();var n=_utils2.default.getTiddler($tm.path.dialogs+\"/\"+a);var u={title:r,buttons:n.fields[\"buttons\"]||\"ok_cancel\",classes:\"tmap-modal-content \"+n.fields[\"classes\"],output:r+\"/output\",result:r+\"/result\",temp:r+\"/temp\",template:n.fields.title,templateId:a,currentTiddler:r+\"/output\",text:_utils2.default.getText($tm.path.dialogs)};_utils2.default.touch(u.output);if(l.dialog){if(l.dialog.preselects){$tw.wiki.addTiddler(new $tw.Tiddler({title:u.output},_utils2.default.flatten(l.dialog.preselects)));delete l.dialog.preselects}_utils2.default.merge(u,l.dialog)}u.footer=_utils2.default.getText($tm.path.footers);u=_utils2.default.flatten(u);l=_utils2.default.flatten(l);var s=function t(a){e.getElement(\"hidden-close-button\").click();var l=$tw.wiki.getTiddler(a);var n=l.fields.text;var s=null;if(n){s=$tw.wiki.getTiddler(u.output)}else{$tm.notify(\"operation cancelled\")}if(typeof i===\"function\"){i(n,s)}_utils2.default.deleteByPrefix(r)};this.callbackManager.add(u.result,s,true);var o=new $tw.Tiddler(n,l,u);$tw.wiki.addTiddler(o);$tm.logger(\"debug\",\"Opening dialog\",o);$tw.rootWidget.dispatchEvent({type:\"tm-modal\",param:o.fields.title,paramObject:o.fields});e.addKeyBindings();return o}}],[{key:\"getElement\",value:function e(t){return _utils2.default.getFirstElementByClassName(\"tmap-\"+t)}},{key:\"addKeyBindings\",value:function t(){var a=$tm.keycharm({container:_utils2.default.getFirstElementByClassName(\"tc-modal\")});var l=/tmap-triggers-(.+?)-on-(.+?)(?:\\s|$)/;var i=document.getElementsByClassName(\"tmap-trigger-field\");var r=function t(r){var n=i[r].className.split(\" \");var u=function t(i){var r=n[i].match(l);if(!r){return\"continue\"}var u=r[1];var s=r[2];var o=e.getElement(u);if(!o){return\"continue\"}a.bind(s,function(){if(document.getElementsByClassName(n[i]).length){o.click()}})};for(var s=n.length;s--;){var o=u(s);if(o===\"continue\")continue}};for(var n=i.length;n--;){r(n)}}}]);return e}();exports.default=DialogManager;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/DialogManager.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/Fixer": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/Fixer",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||false;r.configurable=true;if(\"value\"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,i,r){if(i)e(t.prototype,i);if(r)e(t,r);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/Fixer\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _ViewAbstraction=require(\"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\");var _ViewAbstraction2=_interopRequireDefault(_ViewAbstraction);var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _NodeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/NodeType\");var _NodeType2=_interopRequireDefault(_NodeType);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var i in e){if(Object.prototype.hasOwnProperty.call(e,i))t[i]=e[i]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var Fixer=function(){function e(t,i,r){_classCallCheck(this,e);this.adapter=t;this.logger=i;this.wiki=$tw.wiki;this.glNTy=r}_createClass(e,[{key:\"moveEdges\",value:function e(t,i){var r=_utils2.default.getTiddlersByPrefix(t);for(var a=0;a<r.length;a++){var u=_utils2.default.getBasename(r[a]);if(u===\"__noname__\"){u=\"tmap:unknown\"}u=_EdgeType2.default.getInstance(u);if(!u.exists()){u.save()}var n=this.wiki.getTiddlerData(r[a]);for(var s=0;s<n.length;s++){n[s].type=(i?i+\":\":\"\")+u.id;this.adapter.insertEdge(n[s])}this.wiki.deleteTiddler(r[a])}}},{key:\"executeUpgrade\",value:function e(t,i,r){if(!_utils2.default.isLeftVersionGreater(t,i)){return}this.logger(\"debug\",\"Upgrading data structure to \"+t);var a=r();_utils2.default.setEntry(env.ref.sysMeta,\"dataStructureState\",t);return a}},{key:\"fixId\",value:function e(){var t=this.wiki.getTiddlerData(env.ref.sysMeta,{});this.executeUpgrade(\"0.9.2\",t.dataStructureState,function(){if(_utils2.default.isLeftVersionGreater(\"0.9.2\",t.originalVersion)){var e=\"$:/plugins/felixhayashi/tiddlymap/config/sys/user\";var i=_utils2.default.getEntry(e,\"field.nodeId\",\"tmap.id\");_utils2.default.moveFieldValues(i,\"tmap.id\",true,false)}})}},{key:\"fix\",value:function e(){var t=this;var i=this.wiki.getTiddlerData(env.ref.sysMeta,{});this.logger(\"debug\",\"Fixer is started\");this.logger(\"debug\",\"Data-structure currently in use: \",i.dataStructureState);this.executeUpgrade(\"0.7.0\",i.dataStructureState,function(){t.moveEdges(\"$:/plugins/felixhayashi/tiddlymap/graph/edges\",null);var e=env.selector.allViews;var i=_utils2.default.getMatches(e);for(var r=0;r<i.length;r++){var a=new _ViewAbstraction2.default(i[r]);t.moveEdges(a.getRoot()+\"/graph/edges\",a)}});this.executeUpgrade(\"0.7.32\",i.dataStructureState,function(){if(!_ViewAbstraction2.default.exists(\"Live View\")){return}var e=new _ViewAbstraction2.default(\"Live View\");e.setNodeFilter(\"[field:title{$:/temp/tmap/currentTiddler}]\",true);e.setConfig({\"refresh-trigger\":null,\"refresh-triggers\":$tw.utils.stringifyList([\"$:/temp/tmap/currentTiddler\"])})});this.executeUpgrade(\"0.9.0\",i.dataStructureState,function(){var e=env.ref.visUserConf;var i=_utils2.default.unflatten(t.wiki.getTiddlerData(e,{}));if(_typeof(i.groups)===\"object\"){var r=_NodeType2.default.getInstance(\"tmap:neighbour\");r.setStyle(i.groups[\"neighbours\"]);r.save();delete i.groups;t.wiki.setTiddlerData(e,i)}});this.fixId();this.executeUpgrade(\"0.9.16\",i.dataStructureState,function(){for(var e=t.glNTy.length;e--;){t.glNTy[e].save(null,true)}});this.executeUpgrade(\"0.10.3\",i.dataStructureState,function(){var e=env.ref.liveTab;if(_utils2.default.getTiddler(e).hasTag(\"$:/tags/SideBar\")){this.wiki.deleteTiddler(e);_utils2.default.setField(e,\"tags\",\"$:/tags/SideBar\")}});this.executeUpgrade(\"0.11.0\",i.dataStructureState,function(){var e=_utils2.default.getMatches(env.selector.allViews);for(var t=e.length;t--;){var i=new _ViewAbstraction2.default(e[t]);var r=i.getEdgeTypeFilter(\"raw\");var a=\"edge_type_namespace\";i.setConfig(a,i.getConfig(a));var u=env.filter.defaultEdgeTypeFilter;if(r){var n=env.path.edgeTypes;r=_utils2.default.replaceAll(r,\"\",[n,n+\"/\",\"[prefix[\"+n+\"]]\",\"[prefix[\"+n+\"/]]\",[\"[suffix[tw-body:link]]\",\"[[tw-body:link]]\"],[\"[suffix[tw-list:tags]]\",\"[[tw-list:tags]]\"],[\"[suffix[tw-list:list]]\",\"[[tw-body:list]]\"],[\"[suffix[tmap:unknown]]\",\"[[tmap:unknown]]\"],[\"[suffix[unknown]]\",\"[[tmap:unknown]]\"]]);u=\"-[prefix[_]] \"+r}i.setEdgeTypeFilter(u)}})}}]);return e}();exports.default=Fixer;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/Fixer.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/startup/listener": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/startup/listener",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.startup=exports.synchronous=exports.before=exports.after=exports.platforms=exports.name=undefined;var _NodeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/NodeType\");var _NodeType2=_interopRequireDefault(_NodeType);var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _Edge=require(\"$:/plugins/felixhayashi/tiddlymap/js/Edge\");var _Edge2=_interopRequireDefault(_Edge);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _vis=require(\"$:/plugins/felixhayashi/tiddlymap/js/config/vis\");var _vis2=_interopRequireDefault(_vis);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var handleCancelDialog=function e(t){var a=t.param;_utils2.default.setField(a,\"text\",\"\")};\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/startup/listener\ntype: application/javascript\nmodule-type: startup\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var handleClearTiddler=function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},a=t.paramObject;var r=a.title,d=a.keep;if(!r)return;var i=_utils2.default.getTiddler(r);var l=i?i.fields:{};var s=d?d.split():[];var n={title:r,text:\"\"};for(var p=s.length;p--;){var o=s[p];n[o]=l[o]}$tw.wiki.deleteTiddler(r);$tw.wiki.addTiddler(new $tw.Tiddler(n))};var handleMixTiddlers=function e(t){var a=t.paramObject,r=a===undefined?{}:a;var d=r.tiddlers,i=r.output;if(!d||!i)return;var l=$tw.utils.parseStringArray(d);var s=_utils2.default.getMergedTiddlers(l,i);$tw.wiki.addTiddler(s)};var handleConfirmDialog=function e(t){var a=t.param;_utils2.default.setField(a,\"text\",\"1\")};var handleSuppressDialog=function e(t){var a=t.paramObject;var r=a.dialog,d=a.suppress;if(_utils2.default.isTrue(d,false)){_utils2.default.setEntry($tm.ref.sysUserConf,\"suppressedDialogs.\"+r,true)}};var handleDownloadGraph=function e(t){var a=t.paramObject;var r=a.view;var d=$tm.adapter.getGraph({view:r});d.nodes=_utils2.default.convert(d.nodes,\"array\");d.edges=_utils2.default.convert(d.edges,\"array\");var i=\"$:/temp/tmap/export\";_utils2.default.setField(i,\"text\",JSON.stringify(d,null,2));$tw.rootWidget.dispatchEvent({type:\"tm-download-file\",param:i,paramObject:{filename:r+\".json\"}})};var handleConfigureSystem=function e(){var t=_utils2.default.getMatches($tm.selector.allPotentialNodes);var a=$tm.adapter.getEdgesForSet(t);var r=$tw.wiki.getTiddler($tm.path.pluginRoot).fields;var d=$tw.wiki.getTiddlerData($tm.ref.sysMeta);var i=_utils2.default.getTiddler($tm.ref.liveTab).hasTag(\"$:/tags/SideBar\");var l={numberOfNodes:\"\"+t.length,numberOfEdges:\"\"+Object.keys(a).length,pluginVersion:\"v\"+r.version,dataStructureVersion:\"v\"+d.dataStructureState,dialog:{preselects:{liveTab:\"\"+i,\"inherited-style\":JSON.stringify(_vis2.default),\"config.vis\":_utils2.default.getText($tm.ref.visUserConf),\"config.sys\":$tm.config.sys}}};$tm.dialogManager.open(\"globalConfig\",l,function(e,t){if(!e)return;var a=_utils2.default.getPropertiesByPrefix(t.fields,\"config.sys.\",true);$tw.wiki.setTiddlerData($tm.ref.sysUserConf,a);if(_utils2.default.isTrue(t.fields.liveTab,false)){_utils2.default.setField($tm.ref.liveTab,\"tags\",\"$:/tags/SideBar\")}else{$tw.wiki.deleteTiddler($tm.ref.liveTab)}_utils2.default.setField($tm.ref.visUserConf,\"text\",t.fields[\"config.vis\"])})};var handleGenerateWidget=function e(t){var a=t.paramObject,r=a===undefined?{}:a;var d={dialog:{preselects:{\"var.view\":r.view||$tm.misc.defaultViewLabel}}};$tm.dialogManager.open(\"widgetCodeGenerator\",d)};var handleRemoveEdge=function e(t){var a=t.paramObject;$tm.adapter.deleteEdge(a)};var handleCreateEdge=function e(t){var a=t.paramObject;var r=a.from,d=a.to,i=a.force;if(!r||!d)return;if(_utils2.default.tiddlerExists(r)&&_utils2.default.tiddlerExists(d)||i){_utils2.default.addTiddler(d);_utils2.default.addTiddler(r);var l=new _Edge2.default($tm.adapter.makeNode(r).id,$tm.adapter.makeNode(d).id,a.label,a.id);$tm.adapter.insertEdge(l);$tm.notify(\"Edge inserted\")}};var handleOpenTypeManager=function e(t){var a=t.type,r=t.paramObject,d=r===undefined?{}:r;var i=a.match(/tmap:tm-(.*)/)[1];if(i===\"manage-edge-types\"){var l=\"Edge-Type Manager\";var s=$tm.selector.allEdgeTypes;var n=$tm.path.edgeTypes}else{var l=\"Node-Type Manager\";var s=$tm.selector.allNodeTypes;var n=$tm.path.nodeTypes}var p={mode:i,topic:l,searchSelector:s,typeRootPath:n};var o=$tm.dialogManager.open(\"MapElementTypeManager\",p);if(d.type){handleLoadTypeForm({paramObject:{mode:i,id:d.type,output:o.fields[\"output\"]}})}};var handleLoadTypeForm=function e(t){var a=t.paramObject,r=a.mode,d=a.id,i=a.output;var l=i;var s=r===\"manage-edge-types\"?_EdgeType2.default.getInstance(d):_NodeType2.default.getInstance(d);s.save(l,true);if(r===\"manage-edge-types\"){var n=$tm.adapter.selectEdgesByType(s);var p=Object.keys(n).length;_utils2.default.setField(l,\"temp.usageCount\",p)}$tw.wiki.addTiddler(new $tw.Tiddler(_utils2.default.getTiddler(l),{typeTRef:s.fullPath,\"temp.idImmutable\":s.isShipped?\"true\":\"\",\"temp.newId\":s.id,\"inherited-style\":JSON.stringify((r===\"manage-edge-types\"?$tm.config.vis.edges:$tm.config.vis.nodes)||{})}));_utils2.default.deleteByPrefix(\"$:/state/tabs/MapElementTypeManager\")};var handleSaveTypeForm=function e(t){var a=t.paramObject;var r=_utils2.default.getTiddler(a.output);if(!r)return;var d=r.fields.id;var i=a.mode;if(_utils2.default.isTrue(r.fields[\"temp.deleteType\"],false)){deleteType(i,d,r)}else{saveType(i,d,r)}};var deleteType=function e(t,a,r){var d=t===\"manage-edge-types\"?_EdgeType2.default.getInstance(a):_NodeType2.default.getInstance(a);$tm.logger(\"debug\",\"Deleting type\",d);if(t===\"manage-edge-types\"){$tm.adapter._processEdgesWithType(d,{action:\"delete\"})}else{$tm.adapter.removeNodeType(d)}$tw.wiki.addTiddler(new $tw.Tiddler({title:_utils2.default.getTiddlerRef(r)}));$tm.notify(\"Deleted type\")};var saveType=function e(t,a,r){var d=_utils2.default.getTiddler(r);var i=t===\"manage-edge-types\"?_EdgeType2.default:_NodeType2.default;var l=new i(a,d);l.save();var s=d.fields[\"temp.newId\"];if(s&&s!==d.fields[\"id\"]){if(t===\"manage-edge-types\"){$tm.adapter._processEdgesWithType(l,{action:\"rename\",newName:s})}else{new _NodeType2.default(s,l).save();$tw.wiki.deleteTiddler(l.fullPath)}_utils2.default.setField(d,\"id\",s)}$tm.notify(\"Saved type data\")};var handleCreateType=function e(t){var a=t.paramObject,r=a.mode,d=a.id,i=d===undefined?\"New type\":d,l=a.output;var s=r===\"manage-edge-types\"?new _EdgeType2.default(i):new _NodeType2.default(i);s.save();handleLoadTypeForm({paramObject:{id:s.id,mode:r,output:l}})};var name=exports.name=\"tmap.listener\";var platforms=exports.platforms=[\"browser\"];var after=exports.after=[\"rootwidget\",\"tmap.caretaker\"];var before=exports.before=[\"story\"];var synchronous=exports.synchronous=true;var startup=exports.startup=function e(){_utils2.default.addTWlisteners({\"tmap:tm-remove-edge\":handleRemoveEdge,\"tmap:tm-load-type-form\":handleLoadTypeForm,\"tmap:tm-save-type-form\":handleSaveTypeForm,\"tmap:tm-create-type\":handleCreateType,\"tmap:tm-create-edge\":handleCreateEdge,\"tmap:tm-suppress-dialog\":handleSuppressDialog,\"tmap:tm-generate-widget\":handleGenerateWidget,\"tmap:tm-download-graph\":handleDownloadGraph,\"tmap:tm-configure-system\":handleConfigureSystem,\"tmap:tm-manage-edge-types\":handleOpenTypeManager,\"tmap:tm-manage-node-types\":handleOpenTypeManager,\"tmap:tm-cancel-dialog\":handleCancelDialog,\"tmap:tm-clear-tiddler\":handleClearTiddler,\"tmap:tm-merge-tiddlers\":handleMixTiddlers,\"tmap:tm-confirm-dialog\":handleConfirmDialog},$tw.rootWidget,undefined)};\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/Listener.js.map\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/plugins/felixhayashi/tiddlymap/js/services/tracker": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/services/tracker",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||false;r.configurable=true;if(\"value\"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,i,r){if(i)e(t.prototype,i);if(r)e(t,r);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/services/tracker\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var Tracker=function(){function e(t){_classCallCheck(this,e);this.wiki=$tw.wiki;this.logger=$tm.logger;this._createIndex()}_createClass(e,[{key:\"_createIndex\",value:function e(){var t=this.tById={};var i=this.idByT={};this.wiki.each(function(e,r){if(_utils2.default.isSystemOrDraft(e)){return}var l=e.fields[\"tmap.id\"];if(!l){l=_utils2.default.genUUID();_utils2.default.setField(e,\"tmap.id\",l)}t[l]=r;i[r]=l})}},{key:\"assignId\",value:function e(t,i){var r=_utils2.default.getTiddler(t);if(!r){throw new ResourceNotFoundException(t)}var l=r.fields[\"tmap.id\"];if(!l||i){l=_utils2.default.genUUID();_utils2.default.setField(r,\"tmap.id\",l);this.logger(\"info\",\"Assigning new id to\",r.fields.title)}this.tById[l]=r.fields.title;this.idByT[r.fields.title]=l;return l}},{key:\"getIdByTiddler\",value:function e(t){return this.idByT[_utils2.default.getTiddlerRef(t)]}},{key:\"getIdsByTiddlers\",value:function e(){return this.idByT}},{key:\"getTiddlersByIds\",value:function e(){return this.tById}},{key:\"getTiddlerById\",value:function e(t){return this.tById[t]}}]);return e}();exports.default=Tracker;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/Tracker.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/widget/MapConfigWidget": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/widget/MapConfigWidget",
"text": "\"use strict\";var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/widget/MapConfigWidget\ntype: application/javascript\nmodule-type: widget\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _vis=require(\"$:/plugins/felixhayashi/vis/vis.js\");var _vis2=_interopRequireDefault(_vis);var _widget=require(\"$:/core/modules/widgets/widget.js\");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function MapConfigWidget(e,t){_widget.widget.call(this);this.initialise(e,t);this.computeAttributes()}MapConfigWidget.prototype=Object.create(_widget.widget.prototype);MapConfigWidget.prototype.render=function(e,t){this.parentDomNode=e;if(!this.domNode){this.domNode=this.document.createElement(\"div\");$tw.utils.addClass(this.domNode,\"tmap-config-widget\");e.insertBefore(this.domNode,t)}if(this.network){this.network.destroy()}this.networkContainer=document.createElement(\"div\");this.domNode.appendChild(this.networkContainer);this.refreshTrigger=this.getAttribute(\"refresh-trigger\");this.pipeTRef=this.getVariable(\"currentTiddler\");this.inheritedFields=$tw.utils.parseStringArray(this.getAttribute(\"inherited\"));this.extensionTField=this.getAttribute(\"extension\");this.mode=this.getAttribute(\"mode\");for(var i=0;i<this.inheritedFields.length;i++){var s=this.inheritedFields[i];var n=_utils2.default.parseFieldData(this.pipeTRef,s,{});if(this.mode===\"manage-edge-types\"){n={edges:n}}else if(this.mode===\"manage-node-types\"){n={nodes:n}}this.inherited=_utils2.default.merge(this.inherited,n)}this.extension=_utils2.default.parseFieldData(this.pipeTRef,this.extensionTField,{});if(this.mode===\"manage-edge-types\"){if(!this.extension.edges){this.extension={edges:this.extension}}}else if(this.mode===\"manage-node-types\"){if(!this.extension.nodes){this.extension={nodes:this.extension}}}var r=_utils2.default.isTrue(this.getAttribute(\"save-only-changes\"));this.changes=r?{}:this.extension;var o={nodes:[],edges:[]};var a=_utils2.default.merge({},this.inherited,this.extension);$tw.utils.extend(a,{configure:{enabled:true,showButton:false,filter:this.getOptionFilter(this.mode)}});this.network=new _vis2.default.Network(this.networkContainer,o,a);this.network.on(\"configChange\",this.handleConfigChange.bind(this));var l=this.parentDomNode.getBoundingClientRect().height;this.parentDomNode.style[\"height\"]=l+\"px\";var h=this.handleResetEvent.bind(this);this.networkContainer.addEventListener(\"reset\",h,false);$tm.registry.push(this);this.enhanceConfigurator()};MapConfigWidget.prototype.handleResetEvent=function(e){var t={};t[e.detail.trigger.path]=null;this.handleConfigChange(t)};MapConfigWidget.prototype.handleConfigChange=function(e){var t=_utils2.default.flatten(this.changes);var i=_utils2.default.flatten(e);var s=Object.keys(_utils2.default.flatten(e))[0];var n=i[s]===null;if(n){t[s]=undefined;this.changes=_utils2.default.unflatten(t)}else{this.changes=_utils2.default.merge(this.changes,e)}var r=_utils2.default.merge({},this.changes);if(this.mode===\"manage-node-types\"){r=r[\"nodes\"]}if(this.mode===\"manage-edge-types\"){r=r[\"edges\"]}_utils2.default.writeFieldData(this.pipeTRef,this.extensionTField,r,$tm.config.sys.jsonIndentation);var o=\"vis-configuration-wrapper\";var a=this.networkContainer.getElementsByClassName(o)[0];a.style.height=a.getBoundingClientRect().height+\"px\";if(n){window.setTimeout(this.refresh.bind(this),0)}else{window.setTimeout(this.enhanceConfigurator.bind(this),50)}};MapConfigWidget.prototype.enhanceConfigurator=function(){var e=\"vis-configuration-wrapper\";var t=this.networkContainer.getElementsByClassName(e)[0].children;var i=[];var s=_utils2.default.flatten(this.changes);for(var n=0;n<t.length;n++){if(!t[n].classList.contains(\"vis-config-item\"))continue;var r=new VisConfElement(t[n],i,n);i.push(r);if(r.level===0)continue;r.setActive(!!s[r.path])}};function VisConfElement(e,t,i){var s=\"getElementsByClassName\";this.el=e;this.labelEl=e[s](\"vis-config-label\")[0]||e[s](\"vis-config-header\")[0]||e;var n=this.labelEl.innerText||this.labelEl.textContent;this.label=n&&n.match(/([a-zA-Z0-9]+)/)[1];this.level=parseInt(e.className.match(/.*vis-config-s(.).*/)[1])||0;this.path=this.label;if(this.level>0){for(var r=i;r--;){var o=t[r];if(o.level<this.level){this.path=o.path+\".\"+this.path;break}}}}VisConfElement.prototype.setActive=function(e){if(!e)return;var t=\"tmap-vis-config-item-\"+(e?\"active\":\"inactive\");$tw.utils.addClass(this.el,t);if(e){var i=document.createElement(\"button\");i.innerHTML=\"reset\";i.className=\"tmap-config-item-reset\";var s=this;i.addEventListener(\"click\",function(e){e.currentTarget.dispatchEvent(new CustomEvent(\"reset\",{detail:{trigger:s},bubbles:true,cancelable:true}))},false);this.el.appendChild(i)}};MapConfigWidget.prototype.getOptionFilter=function(e){var t={nodes:{borderWidth:true,borderWidthSelected:true,widthConstraint:true,heightConstraint:true,color:{background:true,border:true},font:{color:true,size:true},icon:true,labelHighlightBold:false,shadow:true,shape:true,shapeProperties:{borderDashes:true},size:true},edges:{arrows:true,color:true,dashes:true,font:true,labelHighlightBold:false,length:true,selfReferenceSize:false,shadow:true,smooth:true,width:true},interaction:{hideEdgesOnDrag:true,hideNodesOnDrag:true,tooltipDelay:true},layout:{hierarchical:true},manipulation:{initiallyActive:true},physics:{forceAtlas2Based:{gravitationalConstant:true,springLength:true,springConstant:true,damping:true,centralGravity:true}}};if(e===\"manage-edge-types\"){t={edges:t.edges}}else if(e===\"manage-node-types\"){t={nodes:t.nodes}}else{t.edges.arrows=false}return function(e,i){i=i.concat([e]);var s=t;for(var n=0,r=i.length;n<r;n++){if(s[i[n]]===true){return true}else if(s[i[n]]==null){return false}s=s[i[n]]}return false}};MapConfigWidget.prototype.isZombieWidget=function(){return!document.body.contains(this.parentDomNode)};MapConfigWidget.prototype.destruct=function(){if(this.network){this.network.destroy()}};MapConfigWidget.prototype.refresh=function(e){if(this.isZombieWidget()||!this.network)return;if(!e||e[this.refreshTrigger]){this.refreshSelf();return true}};MapConfigWidget.prototype.setNull=function(e){for(var t in e){if(_typeof(e[t])==\"object\"){this.setNull(e[t])}else{e[t]=undefined}}};exports[\"tmap-config\"]=MapConfigWidget;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/widget/ConfigurationWidget.js.map\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidgetItem": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidgetItem",
"text": "\"use strict\";var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _widget=require(\"$:/core/modules/widgets/widget.js\");var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidgetItem\ntype: application/javascript\nmodule-type: widget\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var EdgeListItemWidget=function(e){_inherits(t,e);function t(e,r){_classCallCheck(this,t);var i=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,r));i.arrows=$tm.misc.arrows;return i}_createClass(t,[{key:\"execute\",value:function e(){var t=this.parseTreeNode;var r=$tm.tracker.getTiddlerById(t.neighbour.id);var i=_utils2.default.flatten(t.edge);for(var o in i){if(typeof i[o]===\"string\"){this.setVariable(\"edge.\"+o,i[o])}}this.setVariable(\"currentTiddler\",r);this.setVariable(\"neighbour\",r);var n=$tm.indeces.allETy[i.type];var s=i.to===t.neighbour.id?\"to\":\"from\";var a=s;if(n.biArrow){a=\"bi\"}else{if(s===\"to\"&&n.invertedArrow){a=\"from\"}else if(s===\"from\"&&n.invertedArrow){a=\"to\"}}this.setVariable(\"direction\",a);this.setVariable(\"directionSymbol\",a===\"bi\"?this.arrows.bi:a===\"from\"?this.arrows.in:this.arrows.out);this.makeChildWidgets()}},{key:\"refresh\",value:function e(t){return this.refreshChildren(t)}}]);return t}(_widget.widget);exports[\"tmap-edgelistitem\"]=EdgeListItemWidget;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/widget/EdgeListItemWidget.js.map\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidget": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidget",
"text": "\"use strict\";var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _widget=require(\"$:/core/modules/widgets/widget.js\");var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidget\ntype: application/javascript\nmodule-type: widget\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var EdgeListWidget=function(e){_inherits(t,e);function t(e,r){_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,r))}_createClass(t,[{key:\"render\",value:function e(t,r){this.parentDomNode=t;this.computeAttributes();this.execute();this.renderChildren(t,r)}},{key:\"execute\",value:function e(){var t=[this.getVariable(\"currentTiddler\")];var r=this.getAttribute(\"filter\",\"\");var i=this.getAttribute(\"direction\",\"both\");var s=$tm.indeces.allETy;var n=_utils2.default.getEdgeTypeMatches(r,s);var u={typeWL:_utils2.default.getLookupTable(n),direction:i};var o=$tm.adapter.getNeighbours(t,u),a=o.nodes,l=o.edges;var f=[];for(var c in l){var h=l[c];var p=a[h.to]||a[h.from];if(!p){continue}f.push({type:\"tmap-edgelistitem\",edge:h,typeWL:u.typeWL,neighbour:p,children:this.parseTreeNode.children})}if(!f.length){this.wasEmpty=true;f=this.getEmptyMessage()}else if(this.wasEmpty){this.removeChildDomNodes()}this.makeChildWidgets(f)}},{key:\"getEmptyMessage\",value:function e(){var t=this.wiki.parseText(\"text/vnd.tiddlywiki\",this.getAttribute(\"emptyMessage\",\"\"),{parseAsInline:true});return t?t.tree:[]}},{key:\"refresh\",value:function e(t){var r=this.computeAttributes();if(_utils2.default.hasElements(r)){this.refreshSelf();return true}for(var i in t){if(!_utils2.default.isSystemOrDraft(i)){this.refreshSelf();return true}}return this.refreshChildren(t)}}]);return t}(_widget.widget);exports[\"tmap-connections\"]=EdgeListWidget;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/widget/EdgeListWidget.js.map\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/felixhayashi/tiddlymap/js/widget/MapWidget": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/widget/MapWidget",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.tiddlymap=exports.tmap=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var a in i){if(Object.prototype.hasOwnProperty.call(i,a)){e[a]=i[a]}}}return e};var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var a=t[i];a.enumerable=a.enumerable||false;a.configurable=true;if(\"value\"in a)a.writable=true;Object.defineProperty(e,a.key,a)}}return function(t,i,a){if(i)e(t.prototype,i);if(a)e(t,a);return t}}();var _CallbackManager=require(\"$:/plugins/felixhayashi/tiddlymap/js/CallbackManager\");var _CallbackManager2=_interopRequireDefault(_CallbackManager);var _ViewAbstraction=require(\"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\");var _ViewAbstraction2=_interopRequireDefault(_ViewAbstraction);var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _Popup=require(\"$:/plugins/felixhayashi/tiddlymap/js/Popup\");var _Popup2=_interopRequireDefault(_Popup);var _vis=require(\"$:/plugins/felixhayashi/vis/vis.js\");var _vis2=_interopRequireDefault(_vis);var _widget=require(\"$:/core/modules/widgets/widget.js\");var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _SelectionRectangle=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/SelectionRectangle\");var _SelectionRectangle2=_interopRequireDefault(_SelectionRectangle);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var i in e){if(Object.prototype.hasOwnProperty.call(e,i))t[i]=e[i]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,i){if(t in e){Object.defineProperty(e,t,{value:i,enumerable:true,configurable:true,writable:true})}else{e[t]=i}return e}function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t<e.length;t++){i[t]=e[t]}return i}else{return Array.from(e)}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/widget/MapWidget\ntype: application/javascript\nmodule-type: widget\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var MapWidget=function(e){_inherits(t,e);function t(e,i){_classCallCheck(this,t);var a=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,i));a.getAttr=a.getAttribute;a.isDebug=_utils2.default.isTrue($tm.config.sys.debug,false);_utils2.default.bindTo(a,[\"constructTooltip\",\"handleResizeEvent\",\"handleClickEvent\",\"handleCanvasKeyup\",\"handleCanvasKeydown\",\"handleCanvasScroll\",\"handleCanvasMouseMove\",\"handleWidgetKeyup\",\"handleWidgetKeydown\",\"handleTriggeredRefresh\",\"handleContextMenu\"]);a.callbackManager=new _CallbackManager2.default;a.computeAttributes();a.editorMode=a.getAttr(\"editor\");a.clickToUse=_utils2.default.isTrue(a.getAttr(\"click-to-use\"),false);a.id=a.getAttr(\"object-id\")||a.getStateQualifier();a.widgetPopupsPath=$tm.path.tempPopups+\"/\"+a.id;if(a.editorMode){_utils2.default.addTWlisteners({\"tmap:tm-create-view\":a.handleCreateView,\"tmap:tm-rename-view\":a.handleRenameView,\"tmap:tm-delete-view\":a.handleDeleteView,\"tmap:tm-delete-element\":a.handleDeleteElement,\"tmap:tm-edit-view\":a.handleEditView,\"tmap:tm-generate-widget\":a.handleGenerateWidget,\"tmap:tm-toggle-central-topic\":a.handleSetCentralTopic,\"tmap:tm-save-canvas\":a.handleSaveCanvas},a,a)}_utils2.default.addTWlisteners({\"tmap:tm-focus-node\":a.handleFocusNode,\"tmap:tm-reset-focus\":a.repaintGraph,\"tmap:tm-neighbourhood-reset-trace\":function e(){a.initAndRenderGraph(a.graphDomNode)}},a,a);a.visListeners={click:a.handleVisSingleClickEvent,doubleClick:a.handleVisDoubleClickEvent,stabilized:a.handleVisStabilizedEvent,selectNode:a.handleVisSelectNode,deselectNode:a.handleVisDeselectNode,dragStart:a.handleVisDragStart,dragEnd:a.handleVisDragEnd,hoverNode:a.handleVisHoverElement,hoverEdge:a.handleVisHoverElement,blurNode:a.handleVisBlurElement,blurEdge:a.handleVisBlurElement,beforeDrawing:a.handleVisBeforeDrawing,afterDrawing:a.handleVisAfterDrawing,stabilizationProgress:a.handleVisLoading,stabilizationIterationsDone:a.handleVisLoadingDone};a.windowDomListeners={resize:[a.handleResizeEvent,false],click:[a.handleClickEvent,false],mousemove:[a.handleCanvasMouseMove,true]};a.canvasDomListeners={keyup:[a.handleCanvasKeyup,true],keydown:[a.handleCanvasKeydown,true],mousewheel:[a.handleCanvasScroll,true],DOMMouseScroll:[a.handleCanvasScroll,true],contextmenu:[a.handleContextMenu,true],MozMousePixelScroll:[a.handleExtraCanvasScroll,true]};a.widgetDomListeners={keyup:[a.handleWidgetKeyup,true],keydown:[a.handleWidgetKeydown,true]};a.conVector={from:null,to:null};return a}_createClass(t,[{key:\"handleConnectionEvent\",value:function e(t,i){var a=this;var s=this.view.getEdgeTypeFilter();var r={fromLabel:$tm.adapter.selectNodeById(t.from).label,toLabel:$tm.adapter.selectNodeById(t.to).label,view:this.view.getLabel(),eTyFilter:s.raw};$tm.dialogManager.open(\"getEdgeType\",r,function(e,r){if(e){var n=_utils2.default.getText(r);var o=_EdgeType2.default.getInstance(n);if(!o.namespace){var l=_EdgeType2.default.getIdParts(o.id),d=l.marker,h=l.name;var u=a.view.getConfig(\"edge_type_namespace\");o=_EdgeType2.default.getInstance(_EdgeType2.default.getId(d,u,h))}if(!o.exists()){o.save()}t.type=o.id;$tm.adapter.insertEdge(t);a.isPreventZoomOnNextUpdate=true;if(!a.view.isEdgeTypeVisible(o)){$tm.dialogManager.open(\"edgeNotVisible\",{type:o.id,view:a.view.getLabel(),eTyFilter:s.pretty})}}if(typeof i===\"function\"){i(e)}})}},{key:\"checkForFreshInstall\",value:function e(){if(!_utils2.default.getEntry($tm.ref.sysMeta,\"showWelcomeMessage\",true)){return}_utils2.default.setEntry($tm.ref.sysMeta,\"showWelcomeMessage\",false);var t={dialog:{preselects:{\"config.storyview\":\"true\",\"config.navigation\":\"true\",\"config.sidebar\":\"true\",\"config.demo\":\"true\"}}};$tm.dialogManager.open(\"welcome\",t,function(e,t){var i=_utils2.default.getPropertiesByPrefix(t.fields,\"config.\",true);if(i[\"storyview\"]&&_utils2.default.tiddlerExists(\"$:/plugins/felixhayashi/topstoryview\")){_utils2.default.setText(\"$:/view\",\"top\")}if(i[\"navigation\"]){_utils2.default.setText(\"$:/config/Navigation/openLinkFromInsideRiver\",\"above\");_utils2.default.setText(\"$:/config/Navigation/openLinkFromOutsideRiver\",\"top\")}if(i[\"sidebar\"]){_utils2.default.setText(\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\",\"fixed-fluid\")}if(i[\"demo\"]){var a=$tm.misc.defaultViewLabel;var s=$tm.adapter.insertNode({label:\"Have fun with\",x:0,y:0},a);var r=$tm.adapter.insertNode({label:\"TiddlyMap!!\",x:100,y:100},a);$tm.adapter.insertEdge({from:s.id,to:r.id})}if(Object.keys(i).length){_utils2.default.touch(\"$:/plugins/felixhayashi/tiddlymap\")}})}},{key:\"openStandardConfirmDialog\",value:function e(t,i){var a={message:i};$tm.dialogManager.open(\"getConfirmation\",a,t)}},{key:\"logger\",value:function e(t,i){if(this.isDebug){var a=Array.prototype.slice.call(arguments,1);a.unshift(\"@\"+this.id);a.unshift(t);$tm.logger.apply(this,a)}}},{key:\"render\",value:function e(t,i){this.parentDomNode=t;this.domNode=this.document.createElement(\"div\");t.insertBefore(this.domNode,i);this.registerClassNames(this.domNode);this.viewHolderRef=this.getViewHolderRef();this.view=this.getView();this.graphBarDomNode=this.document.createElement(\"div\");$tw.utils.addClass(this.graphBarDomNode,\"tmap-topbar\");this.domNode.appendChild(this.graphBarDomNode);this.graphDomNode=this.document.createElement(\"div\");this.domNode.appendChild(this.graphDomNode);$tw.utils.addClass(this.graphDomNode,\"tmap-vis-graph\");if(_utils2.default.isPreviewed(this)){$tw.utils.addClass(this.domNode,\"tmap-static-mode\");this.renderPreview(this.graphBarDomNode,this.graphDomNode)}else{this.renderFullWidget(this.domNode,this.graphBarDomNode,this.graphDomNode);var a=this.document.createElement(\"canvas\");$tw.utils.addClass(a,\"tmap-download-canvas\");this.domNode.appendChild(a)}}},{key:\"renderPreview\",value:function e(t,i){var a=this.view.snapshotTRef;var s=_utils2.default.getTiddler(a);var r=this.document.createElement(\"span\");r.innerHTML=this.view.getLabel();r.className=\"tmap-view-label\";t.appendChild(r);if(s){var n=_utils2.default.getTiddlerNode(this.view.getRoot());n.children.push(_utils2.default.getTranscludeNode(a));this.makeChildWidgets([n]);this.renderChildren(i,i.firstChild)}else{$tw.utils.addClass(i,\"tmap-graph-placeholder\")}}},{key:\"renderFullWidget\",value:function e(t,i,a){_utils2.default.setDomListeners(\"add\",window,this.windowDomListeners);_utils2.default.setDomListeners(\"add\",t,this.widgetDomListeners);this.addLoadingBar(this.domNode);this.tooltip=new _Popup2.default(this.domNode,{className:\"tmap-tooltip\",showDelay:$tm.config.sys.popups.delay});this.contextMenu=new _Popup2.default(this.domNode,{className:\"tmap-context-menu\",showDelay:0,hideOnClick:true,leavingDelay:999999});this.sidebar=_utils2.default.getFirstElementByClassName(\"tc-sidebar-scrollable\");this.isInSidebar=this.sidebar&&!this.domNode.isTiddlyWikiFakeDom&&this.sidebar.contains(this.domNode);this.rebuildEditorBar(i);this.reloadRefreshTriggers();this.initAndRenderGraph(a);$tm.registry.push(this);this.checkForFreshInstall();if(this.id===$tm.misc.mainEditorId){var s=$tm.url;if(s&&s.query[\"tmap-enlarged\"]){this.toggleEnlargedMode(s.query[\"tmap-enlarged\"]);this.setView(s.query[\"tmap-view\"])}}}},{key:\"registerClassNames\",value:function e(t){var i=$tw.utils.addClass;i(t,\"tmap-widget\");if(this.clickToUse){i(t,\"tmap-click-to-use\")}if(this.getAttr(\"editor\")===\"advanced\"){i(t,\"tmap-advanced-editor\")}if(this.getAttr(\"design\")===\"plain\"){i(t,\"tmap-plain-design\")}if(!_utils2.default.isTrue(this.getAttr(\"show-buttons\"),true)){i(t,\"tmap-no-buttons\")}if(this.getAttr(\"class\")){i(t,this.getAttr(\"class\"))}}},{key:\"addLoadingBar\",value:function e(t){this.graphLoadingBarDomNode=this.document.createElement(\"progress\");$tw.utils.addClass(this.graphLoadingBarDomNode,\"tmap-loading-bar\");t.appendChild(this.graphLoadingBarDomNode)}},{key:\"rebuildEditorBar\",value:function e(){this.removeChildDomNodes();var t=this.view;var i=\"tmap-unicode-button\";var a=i+\" tmap-active-button\";var s={widgetQualifier:this.getStateQualifier(),widgetTempPath:this.widgetTempPath,widgetPopupsPath:this.widgetPopupsPath,isViewBound:String(this.isViewBound()),viewRoot:t.getRoot(),viewLabel:t.getLabel(),viewHolder:this.getViewHolderRef(),edgeTypeFilter:t.edgeTypeFilterTRef,allEdgesFilter:$tm.selector.allEdgeTypes,isShowNeighbourhood:String(t.isEnabled(\"neighbourhood_scope\")),tracingBtnClass:t.isEnabled(\"neighbourhood_trace_clicks\")?a:i,neighScopeBtnClass:t.isEnabled(\"neighbourhood_scope\")?a:i,rasterMenuBtnClass:t.isEnabled(\"raster\")?a:i};for(var r in s){this.setVariable(r,s[r])}var n=_utils2.default.getTiddlerNode(t.getRoot());if(this.editorMode===\"advanced\"){n.children.push(_utils2.default.getTranscludeNode($tm.ref.graphBar))}else{var o=_utils2.default.getElementNode(\"span\",\"tmap-view-label\",t.getLabel());n.children.push(o)}n.children.push(_utils2.default.getTranscludeNode($tm.ref.focusButton));this.makeChildWidgets([n]);this.renderChildren(this.graphBarDomNode,this.graphBarDomNode.firstChild)}},{key:\"refresh\",value:function e(t){return false}},{key:\"update\",value:function e(t){if(!this.network||this.isZombieWidget()||_utils2.default.isPreviewed(this)){return}var i=t.changedTiddlers;this.callbackManager.refresh(i);if(this.isViewSwitched(i)||this.hasChangedAttributes()||t[env.path.options]||i[this.view.getRoot()]){this.logger(\"warn\",\"View switched or config changed\");this.isPreventZoomOnNextUpdate=false;this.view=this.getView(true);this.reloadRefreshTriggers();this.trace=_utils2.default.makeHashMap();this.rebuildEditorBar();this.reloadBackgroundImage();this.initAndRenderGraph(this.graphDomNode)}else{var a=this.view.update(t);if(a){this.logger(\"warn\",\"View components modified\");this.rebuildGraph({resetFocus:{delay:1e3,duration:1e3}})}else{if(t[env.path.nodeTypes]||this.hasChangedElements(i)){this.rebuildGraph()}this.refreshChildren(i)}}}},{key:\"hidePopups\",value:function e(t,i){this.tooltip.hide(t,i);this.contextMenu.hide(0,true)}},{key:\"reloadRefreshTriggers\",value:function e(){this.callbackManager.remove(this.refreshTriggers);var t=this.getAttr(\"refresh-triggers\")||this.view.getConfig(\"refresh-triggers\");this.refreshTriggers=$tw.utils.parseStringArray(t)||[];this.logger(\"debug\",\"Registering refresh trigger\",this.refreshTriggers);for(var i=this.refreshTriggers.length;i--;){this.callbackManager.add(this.refreshTriggers[i],this.handleTriggeredRefresh,false)}}},{key:\"rebuildGraph\",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},i=t.resetFocus;if(_utils2.default.isPreviewed(this)){return}this.logger(\"debug\",\"Rebuilding graph\");this.hidePopups(0,true);this.hasNetworkStabilized=false;var a=this.rebuildGraphData();if(a.changedNodes.withoutPosition.length){i=i||{delay:1e3,duration:1e3};if(!this.view.isEnabled(\"physics_mode\")){var s=this.visOptions.physics;s[s.solver].centralGravity=.25;this.network.setOptions(this.visOptions)}}if(!_utils2.default.hasElements(this.graphData.nodesById)){return}if(i){var r=this.isPreventZoomOnNextUpdate==null?false:typeof this.isPreventZoomOnNextUpdate===\"number\"?this.isPreventZoomOnNextUpdate>Date.now():this.isPreventZoomOnNextUpdate;if(!r){this.network.stabilize();this.resetFocus=i}if(typeof this.isPreventZoomOnNextUpdate!==\"number\"){this.isPreventZoomOnNextUpdate=false}}}},{key:\"getContainer\",value:function e(){return this.domNode}},{key:\"rebuildGraphData\",value:function e(){var t=this;$tm.start(\"Reloading Network\");var i={view:this.view,matches:_utils2.default.getMatches(this.view.getNodeFilter(\"compiled\"))};if(this.view.isEnabled(\"neighbourhood_trace_clicks\")){var a=i.matches;var s=Object.keys(this.trace);var r=[].concat(_toConsumableArray(a.filter(function(e){return!t.trace[e]})),_toConsumableArray(s));i.matches=r;i.includeNeighboursOf=this.view.isEnabled(\"neighbourhood_include_traced_node_neighbours\")?function(e){return r.includes(e)}:function(e){return a.includes(e)}}var n=$tm.adapter.getGraph(i);var o=_utils2.default.refreshDataSet(this.graphData.nodes,n.nodes);var l=_utils2.default.refreshDataSet(this.graphData.edges,n.edges);this.graphData.nodesById=n.nodes;this.graphData.edgesById=n.edges;_utils2.default.setField(\"$:/temp/tmap/nodes/\"+this.view.getLabel(),\"list\",$tm.adapter.getTiddlersByIds(n.nodes));$tm.stop(\"Reloading Network\");return{changedEdges:l,changedNodes:o}}},{key:\"isViewBound\",value:function e(){return _utils2.default.startsWith(this.getViewHolderRef(),$tm.path.localHolders)}},{key:\"isViewSwitched\",value:function e(t){return!_ViewAbstraction2.default.exists(this.view)||t[this.getViewHolderRef()]}},{key:\"hasChangedAttributes\",value:function e(){return Object.keys(this.computeAttributes()).length}},{key:\"hasChangedElements\",value:function e(t){var i=[];var a=this.graphData.nodesById;var s=this.view.isEnabled(\"neighbourhood_scope\");for(var r in t){if(_utils2.default.isSystemOrDraft(r)){continue}if(a[$tm.adapter.getId(r)]||s){return true}if(t[r].modified){i.push(r)}}if(i.length){var n=this.view.getNodeFilter(\"compiled\");var o=_utils2.default.getMatches(n,i);return!!o.length}}},{key:\"initAndRenderGraph\",value:function e(t){var i=this;if(this.network){this._destructVis()}this.logger(\"info\",\"Initializing and rendering the graph\");if(!this.isInSidebar){this.callbackManager.add(\"$:/state/sidebar\",this.handleResizeEvent)}this.visOptions=this.getVisOptions();this.graphData={nodes:new _vis2.default.DataSet,edges:new _vis2.default.DataSet,nodesById:_utils2.default.makeHashMap(),edgesById:_utils2.default.makeHashMap()};this.tooltip.setEnabled(_utils2.default.isTrue($tm.config.sys.popups.enabled,true));this.trace=_utils2.default.makeHashMap();this.network=new _vis2.default.Network(t,this.graphData,this.visOptions);this.canvas=t.getElementsByTagName(\"canvas\")[0];this.networkDomNode=_utils2.default.getFirstElementByClassName(\"vis-network\",t,true);this.canvas.tabIndex=0;for(var a in this.visListeners){this.network.on(a,this.visListeners[a].bind(this))}this.addGraphButtons({\"fullscreen-button\":function e(){i.toggleEnlargedMode(\"fullscreen\")},\"halfscreen-button\":function e(){i.toggleEnlargedMode(\"halfscreen\")}});_utils2.default.setDomListeners(\"add\",this.canvas,this.canvasDomListeners);this.reloadBackgroundImage();this.rebuildGraph({resetFocus:{delay:0,duration:0}});this.handleResizeEvent();this.canvas.focus();if(this.isLiveView()&&this.view.isEnabled(\"neighbourhood_trace_clicks\")){this.trace[_utils2.default.getText(this.refreshTriggers[0])]=true}}},{key:\"handleCanvasKeyup\",value:function e(t){var i=this;var a=this.network.getSelectedNodes();if(t.ctrlKey){t.preventDefault();if(t.keyCode===88){if(this.editorMode){this.handleAddNodesToClipboard(\"move\")}else{$tm.notify(\"Map is read only!\")}}else if(t.keyCode===67){this.handleAddNodesToClipboard(\"copy\")}else if(t.keyCode===86){this.handlePasteNodesFromClipboard()}else if(t.keyCode===65){var s=Object.keys(this.graphData.nodesById);this.network.selectNodes(s)}else if(t.keyCode===49||t.keyCode===50){if(a.length!==1)return;var r=t.keyCode===49?\"from\":\"to\";$tm.notify(_utils2.default.ucFirst(r)+\"-part selected\");this.conVector[r]=a[0];if(this.conVector.from&&this.conVector.to){this.handleConnectionEvent(this.conVector,function(){i.conVector={from:null,to:null}})}}}else{if(t.keyCode===13){if(a.length!==1)return;this.openTiddlerWithId(a[0])}}}},{key:\"handleCanvasKeydown\",value:function e(t){if(t.altKey||t.metaKey){t.preventDefault();if(t.keyCode>=48&&t.keyCode<=57){var i=String.fromCharCode(t.keyCode);this.view.setConfig(\"neighbourhood_scope\",i)}}else{if(t.keyCode===46){t.preventDefault();this.handleRemoveElements(this.network.getSelection())}}}},{key:\"handleDeleteElement\",value:function e(t){var i=t.paramObject.id;var a=i?[i]:this.network.getSelectedNodes();this.handleRemoveElements({nodes:a})}},{key:\"handleCanvasMouseMove\",value:function e(t){var i=this.network;if(!(t.ctrlKey&&t.buttons)){if(this.selectRect){this.selectRect=null;var a=i.getSelectedNodes();$tm.notify(a.length+\" nodes selected\");i.redraw()}return}t.preventDefault();t.stopPropagation();if(!this.domNode.contains(t.target)){return}var s=i.DOMtoCanvas({x:t.offsetX,y:t.offsetY});if(!this.selectRect){this.selectRect=new _SelectionRectangle2.default(s.x,s.y)}this.selectRect.span(s.x,s.y);var r=i.getPositions();var n=i.getSelectedNodes();for(var o in r){if(this.selectRect.isPointWithin(r[o])&&!_utils2.default.inArray(o,n)){n.push(o)}}i.selectNodes(n);this.assignActiveStyle(n);i.redraw()}},{key:\"handleCanvasScroll\",value:function e(t){var i=!!(this.isInSidebar||t.ctrlKey||this.enlargedMode||this.clickToUse&&this.networkDomNode.classList.contains(\"vis-active\"));var a=this.visOptions.interaction;var s=i===a.zoomView;if(i||!s){t.preventDefault()}if(!s){t.stopPropagation();a.zoomView=i;this.network.setOptions({interaction:{zoomView:i}});return false}}},{key:\"handleExtraCanvasScroll\",value:function e(t){t.preventDefault()}},{key:\"handleContextMenu\",value:function e(t){var i=this;t.preventDefault();var a=this.network;this.hidePopups(0,true);var s=a.getNodeAt({x:t.offsetX,y:t.offsetY});if(!s)return;var r=a.getSelectedNodes();if(!_utils2.default.inArray(s,r)){r=[s];a.selectNodes(r)}this.contextMenu.show(r,function(e,t){var a=e.length>1?\"multi\":\"single\";var s=\"$:/plugins/felixhayashi/tiddlymap/editor/contextMenu/node\";_utils2.default.registerTransclude(i,\"contextMenuWidget\",s);i.contextMenuWidget.setVariable(\"mode\",a);i.contextMenuWidget.render(t)})}},{key:\"handleWidgetKeyup\",value:function e(t){}},{key:\"handleWidgetKeydown\",value:function e(t){if(t.ctrlKey){t.preventDefault();if(t.keyCode===70){t.preventDefault();var i=this.widgetPopupsPath+\"/focus\";_utils2.default.setText(i,_utils2.default.getText(i)?\"\":\"1\")}else{return}}else if(t.keyCode===120){t.preventDefault();this.toggleEnlargedMode(\"halfscreen\")}else if(t.keyCode===121){t.preventDefault();this.toggleEnlargedMode(\"fullscreen\")}else if(t.keyCode===27){t.preventDefault();_utils2.default.deleteByPrefix(this.widgetPopupsPath)}else{return}this.canvas.focus()}},{key:\"handlePasteNodesFromClipboard\",value:function e(){if(!this.editorMode){$tm.notify(\"Map is read only!\");return}if(!$tm.clipBoard||$tm.clipBoard.type!==\"nodes\"){$tm.notify(\"TiddlyMap clipboad is empty!\")}var t=$tm.clipBoard.nodes;var i=Object.keys(t);for(var a=i.length;a--;){var s=i[a];if(this.graphData.nodesById[s]){continue}this.view.addNode(t[s]);this.graphData.nodes.update({id:s})}this.network.selectNodes(i);this.rebuildGraph({resetFocus:{delay:0,duration:0}});$tm.notify(\"pasted \"+i.length+\" nodes into map.\")}},{key:\"handleAddNodesToClipboard\",value:function e(t){var i=this.network.getSelectedNodes();if(!i.length){return}$tm.clipBoard={type:\"nodes\",nodes:this.graphData.nodes.get(i,{returnType:\"Object\"})};$tm.notify(\"Copied \"+i.length+\" nodes to clipboard\");if(t===\"move\"){for(var a=i.length;a--;){this.view.removeNode(i[a])}}this.isPreventZoomOnNextUpdate=true}},{key:\"getVisOptions\",value:function e(){var t=this;var i=$tm.config.vis;var a=_utils2.default.parseJSON(this.view.getConfig(\"vis\"))||{};var s=a.layout||{},r=s.hierarchical;var n={layout:{hierarchical:{enabled:r===undefined||r===null?false:typeof r===\"boolean\"?r:r.enabled!==false}}};var o=_utils2.default.merge({},i,_utils2.default.merge(a,n));o.clickToUse=this.clickToUse;o.manipulation.enabled=!!this.editorMode;o.manipulation.deleteNode=function(e,i){t.handleRemoveElements(e);t.resetVisManipulationBar(i)};o.manipulation.deleteEdge=function(e,i){t.handleRemoveElements(e);t.resetVisManipulationBar(i)};o.manipulation.addEdge=function(e,i){t.handleConnectionEvent(e);t.resetVisManipulationBar(i)};o.manipulation.addNode=function(e,i){t.handleInsertNode(e);t.resetVisManipulationBar(i)};o.manipulation.editNode=function(e,i){t.handleEditNode(e);t.resetVisManipulationBar(i)};o.interaction.zoomView=!!(this.isInSidebar||this.enlargedMode);o.manipulation.editEdge=false;var l=o.physics;l[l.solver]=l[l.solver]||{};l.stabilization.iterations=1e3;this.logger(\"debug\",\"Loaded graph options\",o);return o}},{key:\"resetVisManipulationBar\",value:function e(t){if(t){t(null)}this.network.disableEditMode();this.network.enableEditMode()}},{key:\"isVisInEditMode\",value:function e(){return this.graphDomNode.getElementsByClassName(\"vis-button vis-back\").length>0}},{key:\"isLiveView\",value:function e(){return this.id===\"live_tab\"}},{key:\"handleCreateView\",value:function e(){var t=this;var i={view:this.view.getLabel()};$tm.dialogManager.open(\"createView\",i,function(e,i){if(!e)return;var a=_utils2.default.getField(i,\"name\");var s=_utils2.default.getField(i,\"clone\",false);if(_ViewAbstraction2.default.exists(a)){$tm.notify(\"Forbidden! View already exists!\");return}if(s&&t.isLiveView()){$tm.notify(\"Forbidden to clone the live view!\");return}var r=new _ViewAbstraction2.default(a,{isCreate:true,protoView:s?t.view:null});t.setView(r)})}},{key:\"handleRenameView\",value:function e(){var t=this;if(this.view.isLocked()){$tm.notify(\"Forbidden!\");return}var i=this.view.getOccurrences();var a={count:i.length.toString(),refFilter:_utils2.default.joinAndWrap(i,\"[[\",\"]]\")};$tm.dialogManager.open(\"renameView\",a,function(e,i){if(!e){return}var a=_utils2.default.getText(i);if(!a){$tm.notify(\"Invalid name!\")}else if(_ViewAbstraction2.default.exists(a)){$tm.notify(\"Forbidden! View already exists!\")}else{t.view.rename(a);t.setView(t.view)}})}},{key:\"handleEditView\",value:function e(){var t=this;var i=JSON.stringify($tm.config.vis);var a=this.graphData;var s=this.view.getConfig();var r={\"filter.prettyNodeFltr\":this.view.getNodeFilter(\"pretty\"),\"filter.prettyEdgeFltr\":this.view.getEdgeTypeFilter(\"pretty\"),\"inherited-style\":i};var n={view:this.view.getLabel(),createdOn:this.view.getCreationDate(true),numberOfNodes:Object.keys(a.nodesById).length.toString(),numberOfEdges:Object.keys(a.edgesById).length.toString(),dialog:{preselects:$tw.utils.extend({},s,r)}};$tm.dialogManager.open(\"configureView\",n,function(e,i){if(!e){return}var a=_utils2.default.getPropertiesByPrefix(i.fields,\"config.\",true);var s=t.view.getConfig(\"background_image\");t.view.setConfig(a);if(a[\"physics_mode\"]&&!t.view.isEnabled(\"physics_mode\")){t.view.saveNodePositions(t.network.getPositions())}var r=t.view.getConfig(\"background_image\");if(r&&r!==s){$tm.notify(\"Background changed! You may need to zoom out a bit.\")}var n=_utils2.default.getField(i,\"filter.prettyNodeFltr\",\"\");var o=_utils2.default.getField(i,\"filter.prettyEdgeFltr\",\"\");t.view.setNodeFilter(n);t.view.setEdgeTypeFilter(o)})}},{key:\"handleSaveCanvas\",value:function e(){var t=this;var i=\"$:/temp/tmap/snapshot\";this.createAndSaveSnapshot(100,100,i);var a=this.view.getLabel()+\".png\";var s={dialog:{snapshot:i,view:this.view.getLabel(),preselects:{width:this.canvas.width.toString(),height:this.canvas.height.toString(),name:a,action:\"download\"}}};$tm.dialogManager.open(\"saveCanvas\",s,function(e,a){if(!e)return;var r=a.fields.width||s.dialog.preselects.width;var n=a.fields.height||s.dialog.preselects.height;t.createAndSaveSnapshot(r,n,i);var o=a.fields.name||s.dialog.preselects.imageName;var l=a.fields.action;if(l===\"download\"){t.handleDownloadSnapshot(r,n,o)}else if(l===\"wiki\"){_utils2.default.cp(i,o,true);t.dispatchEvent({type:\"tm-navigate\",navigateTo:o})}else if(l===\"placeholder\"){t.view.addPlaceholder(i)}$tw.wiki.deleteTiddler(\"$:/temp/tmap/snapshot\")})}},{key:\"handleDownloadSnapshot\",value:function e(t,i,a){var s=this.document.createElement(\"a\");var r=this.view.getLabel();s.download=a;s.href=this.getCanvasAsBase64({size:{width:t,height:i}});var n=new MouseEvent(\"click\");s.dispatchEvent(n)}},{key:\"createAndSaveSnapshot\",value:function e(t,i,a,s){$tw.wiki.addTiddler(new $tw.Tiddler({title:s||a,type:\"image/png\",text:this.getCanvasAsBase64({size:{width:t,height:i},withoutPreamble:true})},$tw.wiki.getCreationFields(),$tw.wiki.getModificationFields()));return a}},{key:\"getCanvasAsBase64\",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},i=t.withoutPreamble,a=t.size;var s=this.graphDomNode.style.width;var r=this.graphDomNode.style.height;if(a){this.graphDomNode.style.width=a.width+\"px\";this.graphDomNode.style.height=a.height+\"px\";this.network.redraw()}var n=this.canvas.toDataURL(\"image/png\");if(a){this.graphDomNode.style.width=s;this.graphDomNode.style.height=r;this.network.redraw()}return i?_utils2.default.getWithoutPrefix(n,\"data:image/png;base64,\"):n}},{key:\"handleDeleteView\",value:function e(){var t=this;var i=this.view.getLabel();if(this.view.isLocked()){$tm.notify(\"Forbidden!\");return}var a=this.view.getOccurrences();if(a.length){var s={count:a.length.toString(),refFilter:_utils2.default.joinAndWrap(a,\"[[\",\"]]\")};$tm.dialogManager.open(\"cannotDeleteViewDialog\",s);return}var r=\"\\n You are about to delete the view ''\"+i+\"''\\n (no tiddler currently references this view).\\n \";this.openStandardConfirmDialog(function(e){if(!e){return}t.view.destroy();t.setView($tm.misc.defaultViewLabel);var a='view \"'+i+\"' deleted\";t.logger(\"debug\",a);$tm.notify(a)},r)}},{key:\"handleTriggeredRefresh\",value:function e(t){this.logger(\"log\",t,\"Triggered a refresh\");var i=_utils2.default.getTiddler(_utils2.default.getText(t));if(this.isLiveView()){if(i){if(this.view.isEnabled(\"neighbourhood_trace_clicks\")){this.trace[i.fields.title]=true}var a=i.fields[\"tmap.open-view\"]||$tm.config.sys.liveTab.fallbackView;if(a&&a!==this.view.getLabel()){this.setView(a);return}}}this.rebuildGraph({resetFocus:{delay:1e3,duration:1e3}})}},{key:\"handleRemoveElements\",value:function e(t){var i=t.nodes,a=t.edges;if(i.length){this.handleRemoveNodes(i)}else if(a.length){this.handleRemoveEdges(a)}this.resetVisManipulationBar()}},{key:\"handleRemoveEdges\",value:function e(t){$tm.adapter.deleteEdges(this.graphData.edges.get(t));$tm.notify(\"edge\"+(t.length>1?\"s\":\"\")+\" removed\")}},{key:\"handleRemoveNodes\",value:function e(t){var i=this;var a=$tm.adapter.getTiddlersByIds(t);var s={count:t.length.toString(),tiddlers:$tw.utils.stringifyList(a),dialog:{preselects:{\"delete-from\":\"filter\"}}};$tm.dialogManager.open(\"deleteNodeDialog\",s,function(e,a){if(!e)return;var s=0;for(var r=t.length;r--;){var n=i.view.removeNode(t[r]);if(n){s++}}if(a.fields[\"delete-from\"]===\"system\"){$tm.adapter.deleteNodes(t);s=t.length}i.isPreventZoomOnNextUpdate=true;$tm.notify(\"\\n Removed \"+s+\"\\n of \"+t.length+\"\\n from \"+a.fields[\"delete-from\"]+\"\\n \")})}},{key:\"toggleEnlargedMode\",value:function e(t){if(!this.isInSidebar&&t===\"halfscreen\"){return}this.logger(\"log\",\"Toggled graph enlargement\");var i=this.enlargedMode;if(i){this.network.setOptions({clickToUse:this.clickToUse});_utils2.default.findAndRemoveClassNames([\"tmap-has-\"+i+\"-widget\",\"tmap-\"+i]);this.enlargedMode=null;document.body.scrollTop=this.scrollTop}if(!i||i!==t&&(t===\"fullscreen\"||t===\"halfscreen\"&&!this.isInSidebar)){this.scrollTop=document.body.scrollTop;this.enlargedMode=t;var a=this.isInSidebar?this.sidebar:_utils2.default.getFirstElementByClassName(\"tc-story-river\");$tw.utils.addClass(this.document.body,\"tmap-has-\"+t+\"-widget\");$tw.utils.addClass(a,\"tmap-has-\"+t+\"-widget\");$tw.utils.addClass(this.domNode,\"tmap-\"+t);this.network.setOptions({clickToUse:false});$tm.notify(\"Toggled \"+t+\" mode\")}this.handleResizeEvent()}},{key:\"handleGenerateWidget\",value:function e(t){$tw.rootWidget.dispatchEvent({type:\"tmap:tm-generate-widget\",paramObject:{view:this.view.getLabel()}})}},{key:\"handleSetCentralTopic\",value:function e(t){var i=t.paramObject;var a=i.id||this.network.getSelectedNodes()[0];if(a===this.view.getConfig(\"central-topic\")){a=\"\"}this.view.setCentralTopic(a)}},{key:\"handleVisStabilizedEvent\",value:function e(t){if(this.hasNetworkStabilized){return}this.hasNetworkStabilized=true;this.logger(\"log\",\"Network stabilized after\",t.iterations,\"iterations\");if(!this.view.isEnabled(\"physics_mode\")){var i=this.graphData.nodesById;var a=[];for(var s in i){if(i[s].x===undefined){a.push(s)}}if(a.length){this.setNodesMoveable(a,false);$tm.notify(a.length+\" nodes were added to the graph\")}var r=this.visOptions.physics;r[r.solver].centralGravity=0;this.network.setOptions(this.visOptions)}if(this.resetFocus){this.fitGraph(this.resetFocus.delay,this.resetFocus.duration);this.resetFocus=null}}},{key:\"handleFocusNode\",value:function e(t){var i=t.param;this.network.focus($tm.adapter.getId(i),{scale:1.5,animation:true})}},{key:\"isZombieWidget\",value:function e(){return this.domNode.isTiddlyWikiFakeDom===true||!this.document.body.contains(this.getContainer())}},{key:\"fitGraph\",value:function e(){var t=this;var i=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0;var a=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;clearTimeout(this.activeFitTimeout);var s=function e(){if(t.isZombieWidget()){return}t.network.redraw();t.network.fit({animation:{duration:a,easingFunction:\"easeOutQuart\"}})};this.activeFitTimeout=setTimeout(s,i)}},{key:\"handleInsertNode\",value:function e(t){var i=this;$tm.dialogManager.open(\"addNodeToMap\",{},function(e,a){if(!e){return}var s=_utils2.default.getField(a,\"draft.title\").trim();if(_utils2.default.tiddlerExists(s)){if(_utils2.default.isMatch(s,i.view.getNodeFilter(\"compiled\"))){$tm.notify(\"Node already exists\");return}else{t=$tm.adapter.makeNode(s,t);i.view.addNode(t)}}else{var r=new $tw.Tiddler(a,{\"draft.title\":null});t.label=s;$tm.adapter.insertNode(t,i.view,r)}i.isPreventZoomOnNextUpdate=true})}},{key:\"handleEditNode\",value:function e(t){var i=this;var a=$tm.tracker.getTiddlerById(t.id);var s=_utils2.default.getTiddler(a);var r=$tm.config.vis.nodes;var n=_utils2.default.parseJSON(this.view.getConfig(\"vis\"),{}).nodes;var o={};o[t.id]=t;var l=$tm.adapter.getInheritedNodeStyles(o);var d=l[a];var h=_utils2.default.merge({},{color:s.fields[\"color\"]},_utils2.default.parseJSON(s.fields[\"tmap.style\"]));var u=this.view.getLabel();var g=_extends({},this.view.getNodeData(t.id));delete g.x;delete g.y;var f={view:u,tiddler:s.fields.title,tidColor:s.fields[\"color\"],tidIcon:s.fields[$tm.field.nodeIcon]||s.fields[\"tmap.fa-icon\"],tidLabelField:\"global.\"+$tm.field.nodeLabel,tidIconField:\"global.\"+$tm.field.nodeIcon,dialog:{preselects:{\"inherited-global-default-style\":JSON.stringify(r),\"inherited-local-default-style\":JSON.stringify(n),\"inherited-group-styles\":JSON.stringify(d),\"global.tmap.style\":JSON.stringify(h),\"local-individual-node-style\":JSON.stringify(g)}}};var v=function e(t,i,a){for(var s=a.length;s--;){f.dialog.preselects[t+\".\"+a[s]]=i[a[s]]||\"\"}};v(\"local\",g,[\"label\",\"tw-icon\",\"fa-icon\",\"open-view\"]);v(\"global\",s.fields,[$tm.field.nodeLabel,$tm.field.nodeIcon,\"tmap.fa-icon\",\"tmap.open-view\"]);$tm.dialogManager.open(\"editNode\",f,function(e,s){if(!e)return;var r=s.fields;var n=_utils2.default.getPropertiesByPrefix(r,\"global.\",true);for(var o in n){_utils2.default.setField(a,o,n[o]||undefined)}var l=_utils2.default.getPropertiesByPrefix(r,\"local.\",true);var d=_utils2.default.parseJSON(r[\"local-individual-node-style\"],{});for(var h in l){d[h]=l[h]||undefined}i.view.saveNodeStyle(t.id,d);i.isPreventZoomOnNextUpdate=true})}},{key:\"handleVisSingleClickEvent\",value:function e(t){var i=_utils2.default.isTrue($tm.config.sys.singleClickMode);if(i&&!this.editorMode){this.handleOpenMapElementEvent(t)}}},{key:\"handleVisDoubleClickEvent\",value:function e(t){if(t.nodes.length||t.edges.length){if(this.editorMode||!_utils2.default.isTrue($tm.config.sys.singleClickMode)){this.handleOpenMapElementEvent(t)}}else{if(this.editorMode){this.handleInsertNode(t.pointer.canvas)}}}},{key:\"handleOpenMapElementEvent\",value:function e(t){var i=this;var a=t.nodes,s=t.edges;if(a.length){var r=this.graphData.nodesById[a[0]];if(this.view.isEnabled(\"neighbourhood_trace_clicks\")){this.trace[$tm.adapter.getTiddlerById(r.id)]=true;this.isPreventZoomOnNextUpdate=Date.now()+500;this.rebuildGraph();if(this.view.isEnabled(\"neighbourhood_focus_newly_traced_node\")){setTimeout(function(){i.network.focus(r.id,{scale:1,animation:true})},1500)}}if(r[\"open-view\"]){$tm.notify(\"Switching view\");this.setView(r[\"open-view\"])}this.openTiddlerWithId(a[0])}else if(s.length){this.logger(\"debug\",\"Clicked on an Edge\");var n=this.graphData.edgesById[s[0]].type;this.handleEditEdgeType(n)}else{return}this.hidePopups(0,true)}},{key:\"handleEditEdgeType\",value:function e(t){if(!this.editorMode)return;var i=$tm.config.sys.edgeClickBehaviour;if(i!==\"manager\")return;$tw.rootWidget.dispatchEvent({type:\"tmap:tm-manage-edge-types\",paramObject:{type:t}})}},{key:\"handleResizeEvent\",value:function e(t){if(this.isZombieWidget())return;var i=this.getAttr(\"height\");var a=this.getAttr(\"width\");if(this.isInSidebar){var s=this.domNode.getBoundingClientRect();var r=15;a=document.body.clientWidth-s.left-r+\"px\";var n=parseInt(this.getAttr(\"bottom-spacing\"))||15;var o=window.innerHeight-s.top;i=o-n+\"px\"}this.domNode.style.height=i||\"300px\";this.domNode.style.width=a;this.repaintGraph()}},{key:\"handleClickEvent\",value:function e(t){if(this.isZombieWidget()||!this.network)return;if(!this.graphDomNode.contains(t.target)){var i=this.network.getSelection();if(i.nodes.length||i.edges.length){this.logger(\"debug\",\"Clicked outside; deselecting nodes/edges\");this.network.selectNodes([]);this.resetVisManipulationBar()}}else{this.canvas.focus()}if(t.button!==2){this.contextMenu.hide(0,true)}}},{key:\"handleVisSelectNode\",value:function e(t){var i=t.nodes;if(!this.isDraggingAllowed(i)){return}this.assignActiveStyle(i)}},{key:\"isDraggingAllowed\",value:function e(t){var i=t.nodes;return this.editorMode||this.view.isEnabled(\"physics_mode\")}},{key:\"assignActiveStyle\",value:function e(t){if(!Array.isArray(t))t=[t];var i=this.visOptions.nodes.color;for(var a=t.length;a--;){var s=t[a];var r=this.graphData.nodesById[s];var n=_utils2.default.merge({},i,r.color);this.graphData.nodes.update({id:s,color:{highlight:n,hover:n}})}}},{key:\"handleVisDeselectNode\",value:function e(t){}},{key:\"handleVisDragEnd\",value:function e(t){var i=t.nodes;if(!i.length){return}if(i.length===1&&this.view.isEnabled(\"raster\")){var a=this.network.getPositions()[i[0]];this.graphData.nodes.update(_extends({id:i[0]},_utils2.default.getNearestRasterPosition(a,parseInt(this.view.getConfig(\"raster\")))))}this.draggedNode=null;this.setNodesMoveable(i,false)}},{key:\"handleVisBeforeDrawing\",value:function e(t){var i=this.view,a=this.network,s=this.backgroundImage;if(s){t.drawImage(s,0,0)}if(i.isEnabled(\"raster\")){_utils2.default.drawRaster(t,a.getScale(),a.getViewPosition(),parseInt(i.getConfig(\"raster\")))}}},{key:\"handleVisAfterDrawing\",value:function e(t){if(this.selectRect){var i=this.selectRect.getRect();t.beginPath();t.globalAlpha=.5;t.fillStyle=\"#EAFFEF\";t.fillRect.apply(t,_toConsumableArray(i));t.beginPath();t.globalAlpha=1;t.strokeStyle=\"#B4D9BD\";t.strokeRect.apply(t,_toConsumableArray(i))}if(this.draggedNode&&this.view.isEnabled(\"raster\")){var a=this.network.getPositions()[this.draggedNode];var s=_utils2.default.getNearestRasterPosition(a,parseInt(this.view.getConfig(\"raster\")));t.strokeStyle=\"green\";t.fillStyle=\"green\";t.beginPath();t.moveTo(a.x,a.y);t.lineTo(s.x,s.y);t.stroke();t.beginPath();t.arc(s.x,s.y,5,0,Math.PI*2);t.fill()}}},{key:\"constructTooltip\",value:function e(t,i){var a=_utils2.default.parseJSON(t);var s=a.node||a.edge;var r=null;var n=\"text/html\";var o=\"text/vnd-tiddlywiki\";if(a.node){var l=$tm.tracker.getTiddlerById(s);var d=_utils2.default.getTiddler(l);var h=d.fields[$tm.field.nodeInfo];if(h){i.innerHTML=$tw.wiki.renderText(n,o,h)}else if(d.fields.text){_utils2.default.registerTransclude(this,\"tooltipWidget\",l);this.tooltipWidget.setVariable(\"tv-tiddler-preview\",\"yes\");this.tooltipWidget.render(i)}else{i.innerHTML=l}}else{var u=this.graphData.edgesById[s];var g=$tm.indeces.allETy[u.type];if(g.description){r=$tw.wiki.renderText(n,o,g.description)}i.innerHTML=r||g.label||g.id}}},{key:\"handleVisHoverElement\",value:function e(t){if($tm.mouse.buttons)return;var i=t.node||t.edge;var a=JSON.stringify(t);if(t.node){this.assignActiveStyle(i)}if(!this.isVisInEditMode()&&!this.contextMenu.isShown()){var s=this.constructTooltip;this.tooltip.show(a,s)}}},{key:\"handleVisBlurElement\",value:function e(t){this.tooltip.hide()}},{key:\"handleVisLoading\",value:function e(t){var i=t.total,a=t.iterations;this.graphLoadingBarDomNode.style.display=\"block\";this.graphLoadingBarDomNode.setAttribute(\"max\",i);this.graphLoadingBarDomNode.setAttribute(\"value\",a)}},{key:\"handleVisLoadingDone\",value:function e(t){this.graphLoadingBarDomNode.style.display=\"none\"}},{key:\"handleVisDragStart\",value:function e(t){var i=t.nodes;if(!i.length||!this.isDraggingAllowed(i)){return}this.hidePopups(0,true);this.assignActiveStyle(i);this.setNodesMoveable(i,true);if(i.length===1){this.draggedNode=i[0]}}},{key:\"destruct\",value:function e(){_utils2.default.setDomListeners(\"remove\",window,this.windowDomListeners);_utils2.default.setDomListeners(\"remove\",this.domNode,this.widgetDomListeners);this._destructVis()}},{key:\"_destructVis\",value:function e(){if(!this.network)return;_utils2.default.setDomListeners(\"remove\",this.canvas,this.canvasDomListeners);this.network.destroy();this.network=null}},{key:\"openTiddlerWithId\",value:function e(t){var i=this;var a=$tm.tracker.getTiddlerById(t);this.logger(\"debug\",\"Opening tiddler\",a,\"with id\",t);if(this.enlargedMode===\"fullscreen\"){var s=$tw.wiki.findDraft(a);var r=!!s;if(!r){var n=\"tm-edit-tiddler\";this.dispatchEvent({type:n,tiddlerTitle:a});s=$tw.wiki.findDraft(a)}var o={draftTRef:s,originalTRef:a};$tm.dialogManager.open(\"fullscreenTiddlerEditor\",o,function(e,t){if(e){var n=\"tm-save-tiddler\";i.dispatchEvent({type:n,tiddlerTitle:s})}else if(!r){_utils2.default.deleteTiddlers([s])}var o=\"tm-close-tiddler\";i.dispatchEvent({type:o,tiddlerTitle:a})})}else{var l=this.domNode.getBoundingClientRect();this.dispatchEvent({type:\"tm-navigate\",navigateTo:a,navigateFromTitle:this.getVariable(\"storyTiddler\"),navigateFromNode:this,navigateFromClientRect:{top:l.top,left:l.left,width:l.width,right:l.right,bottom:l.bottom,height:l.height}})}}},{key:\"getViewHolderRef\",value:function e(){if(this.viewHolderRef){return this.viewHolderRef}this.logger(\"info\",\"Retrieving or generating the view holder reference\");var t=this.getAttr(\"view\");var i=null;if(t){this.logger(\"log\",'User wants to bind view \"'+t+\"' to graph\");var a=$tm.path.views+\"/\"+t;if($tw.wiki.getTiddler(a)){i=$tm.path.localHolders+\"/\"+_utils2.default.genUUID();this.logger(\"log\",'Created an independent temporary view holder \"'+i+'\"');_utils2.default.setText(i,a);this.logger(\"log\",'View \"'+a+\"' inserted into independend holder\")}else{this.logger(\"log\",'View \"'+t+'\" does not exist')}}if(!i){this.logger(\"log\",\"Using default (global) view holder\");i=$tm.ref.defaultViewHolder}return i}},{key:\"setView\",value:function e(t,i){if(!_ViewAbstraction2.default.exists(t)){return}t=new _ViewAbstraction2.default(t);var a=t.getLabel();i=i||this.viewHolderRef;this.logger(\"info\",'Inserting view \"'+a+'\" into holder \"'+i+'\"');$tw.wiki.addTiddler(new $tw.Tiddler({title:i,text:a}));this.update({changedTiddlers:_defineProperty({},i,true)})}},{key:\"getView\",value:function e(t){if(!t&&this.view){return this.view}var i=this.getViewHolderRef();var a=_utils2.default.getText(i);this.logger(\"debug\",\"Retrieved view from holder\");var s=void 0;if(_ViewAbstraction2.default.exists(a)){s=new _ViewAbstraction2.default(a)}else{this.logger(\"debug\",'Warning: View \"'+a+\"\\\" doesn't exist. Default is used instead.\");s=new _ViewAbstraction2.default(\"Default\")}return s}},{key:\"reloadBackgroundImage\",value:function e(t){var i=this;this.backgroundImage=null;var a=this.view.getConfig(\"background_image\");var s=_utils2.default.getTiddler(a);if(!s&&!a)return;var r=new Image;r.onload=function(){i.backgroundImage=r;i.repaintGraph()};if(s){var n=s.fields[\"_canonical_uri\"];if(n){r.src=n}else if(s.fields.text){r.src=$tw.utils.makeDataUri(s.fields.text,s.fields.type)}}else if(a){r.src=a}}},{key:\"repaintGraph\",value:function e(){var t=$tw.utils.hasClass(this.document.body,\"tmap-has-fullscreen-widget\");if(this.network&&(!t||t&&this.enlargedMode)){this.logger(\"info\",\"Repainting the whole graph\");this.network.redraw();this.fitGraph(0,1e3)}}},{key:\"setGraphButtonEnabled\",value:function e(t,i){var a=\"vis-button tmap-\"+t;var s=_utils2.default.getFirstElementByClassName(a,this.domNode);$tw.utils.toggleClass(s,\"tmap-button-enabled\",i)}},{key:\"setNodesMoveable\",value:function e(t,i){if(!t||!t.length||this.view.isEnabled(\"physics_mode\")){return}var a=[];var s=!i;for(var r=t.length;r--;){a.push({id:t[r],fixed:{x:s,y:s}})}this.graphData.nodes.update(a);if(s){this.logger(\"debug\",\"Fixing\",a.length,\"nodes\");this.view.saveNodePositions(this.network.getPositions());this.isPreventZoomOnNextUpdate=true}}},{key:\"addGraphButtons\",value:function e(t){var i=_utils2.default.getFirstElementByClassName(\"vis-navigation\",this.domNode);for(var a in t){var s=this.document.createElement(\"div\");s.className=\"vis-button tmap-\"+a;s.addEventListener(\"click\",t[a].bind(this),false);i.appendChild(s);this.setGraphButtonEnabled(a,true)}}}]);return t}(_widget.widget);exports.tmap=MapWidget;exports.tiddlymap=MapWidget;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/widget/MapWidget.js.map\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/felixhayashi/tiddlymap/license": {
"title": "$:/plugins/felixhayashi/tiddlymap/license",
"subtitle": "License",
"caption": "License",
"text": "\\rules except wikilink\n\n!! TiddlyMap\n\nCopyright (c) 2014, Felix Küppers\nAll rights reserved.\n\nTiddlyMap is licensed under the [[BSD 2-Clause License|http://opensource.org/licenses/BSD-2-Clause]]. For the exact license terms, please visit [[https://github.com/felixhayashi/TW5-TiddlyMap/blob/master/LICENSE]]. \n\n!! TiddlyWiki\n\nCreated by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright © Jeremy Ruston 2004-2007 Copyright © UnaMesa Association 2007-2014\n\nPublished under the following [licenses](https://github.com/Jermolene/TiddlyWiki5/tree/master/licenses):\n\n# BSD 3-clause \"New\" or \"Revised\" License (including any right to adopt any future version of a license if permitted)\n# Creative Commons Attribution 3.0 (including any right to adopt any future version of a license if permitted)\n\n!! Vis.js\n\nCopyright (c) 2014 [Almende B.V.](https://github.com/almende/vis)\n\nPublished under the following licenses:\n\n# Apache License Version 2.0, January 2004 http://www.apache.org/licenses/\n# MIT License (MIT)\n"
},
"$:/plugins/felixhayashi/tiddlymap/readme": {
"title": "$:/plugins/felixhayashi/tiddlymap/readme",
"text": "* Please refer to the project-readme hosted at [[https://github.com/felixhayashi/TW5-TiddlyMap]].\n* A demo with several examples and explanations can be found at [[http://tiddlymap.org]]."
},
"$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tmap:unknown": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tmap:unknown",
"description": "Automatically assigned to an edge that does not have a type assigned",
"style": "{\"color\":\"gray\"}",
"show-label": "false"
},
"$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-body:link": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-body:link",
"description": "A link that is contained in the tiddler's body pointing to another resource.",
"style": "{\"color\":\"orange\", \"dashes\":true}",
"label": "links to",
"text": ""
},
"$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-list:list": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-list:list",
"description": "Contained in a list of this tiddler",
"style": "{ \"color\": \"red\", \"dashes\":true}",
"label": "listed in",
"text": ""
},
"$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-list:tags": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-list:tags",
"description": "A tag that refers to a tiddler of the same name.",
"style": "{ \"color\": \"darkslategray\", \"dashes\":true}",
"label": "tagged with"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/default": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/default",
"caption": "Overview",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-plain\">\n Please visit the [[online docs|http://tiddlymap.org/Documentation]]\n for more information about the available global options.\n</div>\n<table class=\"tmap-key-value-table\">\n <tr>\n <th align=\"left\">Plugin version</th>\n <td><<pluginVersion>></td>\n </tr>\n<!--\n <tr>\n <th align=\"left\">Datastructure version</th>\n <td><<dataStructureVersion>></td>\n </tr>\n-->\n <tr>\n <th align=\"left\">Nodes in system</th>\n <td><<numberOfNodes>></td>\n </tr>\n <tr>\n <th align=\"left\">Edges in system</th>\n <td><<numberOfEdges>></td>\n </tr>\n</table>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/editor": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/editor",
"caption": "Editor",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-checkbox\"\n title:\"Show Neighbour­hood menu\"\n field:\"config.sys.editorMenuBar.showNeighScopeButton\"\n descr:\"Show or hide the neighbourhood menu button.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Show Screen­shot menu\"\n field:\"config.sys.editorMenuBar.showScreenshotButton\"\n descr:\"Show or hide the screenshot menu button.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Show Raster­ menu\"\n field:\"config.sys.editorMenuBar.showRasterMenuButton\"\n descr:\"Show or hide the raster menu button.\">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/fields": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/fields",
"caption": "Field settings",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-text\"\n title:\"Node-icon field\"\n field:\"config.sys.field.nodeIcon\" \n descr:\"Local image used as node image in the graphs.\">>\n <<tmap-row type:\"input-text\"\n title:\"Node-label field\"\n field:\"config.sys.field.nodeLabel\" \n descr:\"Alternative node label to use instead of the title.\">>\n <<tmap-row type:\"input-text\"\n title:\"Node-info field\"\n field:\"config.sys.field.nodeInfo\" \n descr:\"Field used as tooltip when hovering over a node in a graph.\"\n note:\"It is prohibited to use the text field here.\">>\n</table> \n\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/interaction": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/interaction",
"caption": "Interaction & behaviour",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <$macrocall type=\"input-select\"\n $name=\"tmap-row\"\n title=\"Default startup view\"\n field=\"config.sys.defaultView\"\n nochoice=\"Last view used at startup\"\n selectFilter=<<tmap \"option\" \"selector.allViewsByLabel\">>\n descr=\"The view to display at startup\" />\n <<tmap-row type:\"input-checkbox\"\n title:\"Show popups\"\n field:\"config.sys.popups.enabled\"\n descr:\"Set this to true if you want to see automatic\n popups in the map.\">>\n <$list filter=\"[config.sys.popups.enabled[true]]\">\n <<tmap-row type:\"input-text\"\n title:\"Popup delay\"\n field:\"config.sys.popups.delay\"\n descr:\"The time in miliseconds that needs to pass after\n a tooltip is triggered.\">>\n <<tmap-row type:\"input-text\"\n title:\"Popup width\"\n field:\"config.sys.popups.width\"\n descr:\"The default max-width of the popup.\"\n note:\"Make sure you added the desired unit (e.g. `px`).\n Requires a wiki refresh.\">>\n <<tmap-row type:\"input-text\"\n title:\"Popup height\"\n field:\"config.sys.popups.height\"\n descr:\"The default max-height of the popup.\"\n note:\"Make sure you added desired the unit (e.g. `px`).\n Requires a wiki refresh.\">>\n </$list>\n <<tmap-row type:\"input-checkbox\"\n title:\"Allow single click mode\"\n field:\"config.sys.singleClickMode\"\n descr:\"A single click on a node is sufficient to open the\n corresponding tiddler.\"\n note:\"Drag and drop will still work and does not cause a\n tiddler to be opened. Single click is never active in\n the map editor.\">>\n <<tmap-row type:\"input-select\"\n title:\"Edge click behaviour\"\n field:\"config.sys.edgeClickBehaviour\"\n selectFilter:\"[[nothing|Nothing]]\n [[manager|Open edge-type manager]]\"\n descr:\"What should happen when you click on an edge?\">>\n <<tmap-row type:\"input-select\" title:\"Raster size\" field:\"config.sys.raster\"\n selectFilter:\"[[|disabled]] [[5|5px]] [[10|10px]] [[15|15px]] [[20|20px]] [[30|30px]] [[40|40px]]\"\n descr:\"Snap nodes to an invisible raster of the given size after drag'n'drop.\"\n note:\"Only works when the view is not in floating mode\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Apply node-filter to neighbours\"\n field:\"config.sys.nodeFilterNeighbours\"\n descr:\"If checked, neighbours displayed in the map will be filtered\n by the view's node-filter. Otherwise the node-filter will only be used\n to filter the original set of nodes in the map\">>\n</table>\n\n!! Suppressed dialogs\n\n<div class=\"tmap-flash-message tmap-plain\">\n Dialogs that you decided to suppress in the past are listed here.\n Remove the checkmark to enable dialogs again.\n</div>\n\n<table class=\"tmap-config-table\">\n <$list\n filter=\"[<output>fields[]prefix[config.sys.suppressedDialogs]]\"\n emptyMessage=\"–\">\n <$set name=\"dialogName\" value=<<tmap basename \".\">>>\n <$macrocall $name=\"tmap-row\"\n type=\"input-checkbox\"\n title=\"Suppress '$(dialogName)$' dialog\"\n field=<<currentTiddler>> />\n </$set>\n <br />\n </$list>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/liveTab": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/liveTab",
"caption": "Live tab",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-checkbox\"\n title:\"Show Live tab\"\n field:\"liveTab\" \n descr:\"Show or hide the live tab in the sidebar.\">>\n <$macrocall type=\"input-select\"\n $name=\"tmap-row\"\n title=\"Fallback view\"\n field=\"config.sys.liveTab.fallbackView\" \n selectFilter=<<tmap \"option\" \"selector.allViewsByLabel\">>\n descr=\"The view to display in the sidebar's live tab in\n case the current tiddler did not specify a view\n to open.\" />\n</table>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig",
"subtitle": "{{$:/core/images/options-button}} Global configuration of TiddlyMap",
"classes": "tmap-remove-top-space",
"text": "\\rules except wikilink\n\n<$macrocall $name=\"tabs\"\n default=<<concat \"$(template)$/default\">>\n tabsList=\"[all[shadows]prefix<template>] -[<template>]\"\n/>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/verbosity": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/verbosity",
"caption": "Verbosity",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-plain\">\n Here you can restrict the system's talkativeness.\n</div>\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-checkbox\"\n title:\"Debug output\"\n field:\"config.sys.debug\" \n descr:\"Set this to true if you want debug information to be\n displayed in the browser console.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Show notifications\"\n field:\"config.sys.notifications\" \n descr:\"Set this to true if you want to receive fade-out\n notifications for important events.\">>\n</table> "
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/vis": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/vis",
"classes": "tmap-remove-top-space",
"caption": "Graph",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n The global vis configurations will affect all views and their\n elements (nodes and edges) unless they are overridden on a lower\n level. All options below are documented at\n [[vis.js.org|http://visjs.org/docs/network]].\n</div>\n<div class=\"tmap-flash-message tmap-info\">\n Only config items that you actually changed have an effect on\n the graph. Other options are visible, yet, inactive.\n</div>\n<$tmap-config\n mode=\"manage-config\"\n inherited=\"inherited-style\"\n extension=\"config.vis\" />\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView/default": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView/default",
"caption": "Overview",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n All configurations __only__ affect this view.\n</div>\n\n<table class=\"tmap-key-value-table\">\n <tr>\n <th align=\"left\">Created on</th>\n <td><<createdOn>></td>\n </tr>\n <tr>\n <th align=\"left\">Nodes contained in graph</th>\n <td><<numberOfNodes>></td>\n </tr>\n <tr>\n <th align=\"left\">Edges contained in graph</th>\n <td><<numberOfEdges>></td>\n </tr>\n</table>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView/editFilters": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView/editFilters",
"caption": "Edit filters",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n Completely new to filters? Please read\n [[Introduction to filter notation|http://tiddlywiki.com/#Introduction%20to%20filter%20notation]]\n first.\n</div>\n\n<fieldset>\n <legend>Filters <sup>[1]</sup></legend>\n <table class=\"tmap-config-table tmap-large-input\">\n <<tmap-row type:\"input-textarea\"\n title:\"Node filter\"\n field:\"filter.prettyNodeFltr\"\n descr:\"In the map, only those tiddlers that match this filter\n are shown. Drafts and system tiddlers are automatically\n excluded.\">>\n <<tmap-row type:\"input-textarea\"\n title:\"Edge-type filter\"\n field:\"filter.prettyEdgeFltr\" \n descr:\"Only edges with a type that matches the filter are shown.\">>\n </table> \n</fieldset>\n\n---\n\n<sup>[1]</sup> In the editors above, a new line is equivalent to a space symbol.<br />\n<sup>[2]</sup> It is suggested to read\n[[Node and edge-type filters|http://tiddlymap.org#Node%20and%20edge-type%20filters]]\nand [[Edge-type namespaces|http://tiddlymap.org#Node%20and%20edge-type%20filters]]\nbefore using Tiddlymap's filter editor."
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView/layout": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView/layout",
"caption": "Layout",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-checkbox\"\n title:\"Floating nodes\"\n field:\"config.physics_mode\"\n descr:\"Set this to true if you want your nodes to freely\n swirl around.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Filter nodes by edge types\"\n field:\"config.filter_nodes_by_edge_types\"\n descr:\"Only display nodes having edges matching the edge-type filter.\">>\n <<tmap-row type:\"input-text\"\n title:\"Background image\"\n field:\"config.background_image\"\n descr:\"The title of an image tiddler to be used as background\n in the view.\"\n note:\"You can also use an image url directly, however, the\n image needs be stored under the same domain as your wiki.\n Otherwise, it won't be displayed!\">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView/namespace": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView/namespace",
"caption": "Namespace",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table tmap-small-input\">\n <<tmap-row type:\"input-text\"\n title:\"Edge-type namespace\"\n field:\"config.edge_type_namespace\" \n descr:\"A namespace (like `foaf` in `foaf:knows`) that will be\n automatically added to all edge types you create in\n this view. The namespace is only added if the types\n do not exist yet and do not have a namespace assigned yet.\n Namespaces are always hidden in the graph.\"\n note:\"Most likely, you don't want the edges created with this\n namespace to leak into other views, moreover, you don't\n want edges that do not possess the namespace ever to be\n shown here. In this case, use a private marker (`_`)\n in front of your namespace, e.g. `_mynamespace` and use\n an appropriate edge type filter, i.e. `+[prefix[_mynamespace]]`\n For further information see:\n \n * [[Edge-type namespaces|http://tiddlymap.org/#Edge-type%20namespaces]]\n * [[Private edge types|http://tiddlymap.org/#Private%20edge%20types]]\n \">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView",
"subtitle": "{{$:/core/images/options-button}} View configuration -- <<view>>",
"text": "\\rules except wikilink\n\n\\define privateEdgeTypes() [[private edge-types|http://tiddlymap.org/#Private%20edge%20types]]\n\n<$macrocall $name=\"tabs\"\n default=<<concat \"$(template)$/default\">>\n tabsList=\"[all[shadows]prefix<template>] -[<template>]\"\n/>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView/vis": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView/vis",
"caption": "Graph",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n The local vis configurations will affect all\n elements (nodes and edges) of this view, unless they are\n overridden on a lower level. All options below are documented at\n [[vis.js.org|http://visjs.org/docs/network]].\n</div>\n<div class=\"tmap-flash-message tmap-info\">\n Only config items that you actually changed have an effect on the\n graph. Other options are visible, yet, inactive.\n</div>\n<$tmap-config\n mode=\"manage-config\"\n inherited=\"inherited-style\"\n extension=\"config.vis\" />\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/getEdgeType": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/getEdgeType",
"subtitle": "{{$:/plugins/felixhayashi/tiddlymap/icon}} Edge type specification",
"text": "\\rules except wikilink\n\\rules except underscore\n\n\\define filter() $(allEdgeTypes)$ +[search:title[$(term)$]]\n\n\\define badge(color, label, tooltip)\n<span style=\"background: $color$\" title=\"$tooltip$\">$label$</span>\n\\end\n\n\\define badges()\n<$tiddler tiddler={{!!text}}>\n<$set name=\"id\" value=<<tmap \"getETyId\" \"$(view)$\">>>\n<$set name=\"isVisible\" value=<<tmap \"isETyVisible\" \"$(view)$\">>>\n<div class=\"tmap-badges\">\n <span\n style=\"background: darkslategray\"\n title=\"Your input translates into this id.\">\n <<id>>\n </span>\n <$list filter=\"[<isVisible>regexp[true]]\">\n <<badge \"green\" \"visible\" \"Matches your view's filter\">>\n </$list>\n <$list filter=\"[<isVisible>regexp[false]]\">\n <<badge \"red\" \"not visible\" \"Doesn't match your view's filter\">>\n </$list>\n <$list filter=\"[<id>!regexp[^tmap:unknown$]]\" variable=\"item\">\n <$list filter=\"[<id>regexp[^_]]\">\n <<badge \"purple\" \"private\" \"Not shown in other views per default\">>\n </$list>\n <$list filter=\"[<id>regexp[.+:.+]]\">\n <<badge \"orange\" \"namespace\" \"This type is prefixed with a proper namespace\">>\n </$list>\n </$list>\n</div>\n</$set>\n</$set>\n</$tiddler>\n\\end\n\n\\define search()\n<p>\n You are about to connect \"<$text text=\"$(fromLabel)$\" />\"\n with \"<$text text=\"$(toLabel)$\" />\". Please specify a type.\n</p>\n<table id=\"tmap-search-table\">\n <tr>\n <td><b>Type:</b></td>\n <td>\n <$edit-text\n focus=\"true\"\n field=\"text\"\n type=\"text\"\n tag=\"input\"\n default=\"\"\n class=\"tmap-trigger-field\n tmap-triggers-ok-button-on-enter\n tmap-triggers-cancel-button-on-esc\" />\n <<badges>>\n </td>\n </tr>\n <tr>\n <td></td>\n <td>\n <$set name=\"term\" value={{!!text}}>\n <$set name=\"allEdgeTypes\" value=<<tmap \"option\" \"selector.allEdgeTypesById\">>>\n <ul class=\"tmap-small-list\">\n <$list filter=<<filter>>>\n <li>\n <$button class=\"tc-btn-invisible tmap-link\">\n <$view field=\"title\" />\n <$action-setfield $tiddler=<<output>> text={{!!title}} />\n </$button>\n </li>\n </$list>\n </ul>\n </$set>\n </$set>\n </td>\n </tr>\n</table>\n\\end\n\n<$list filter=\"[<temp>!has[more]]\" variable=\"item\"><<search>></$list>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/addNodeToMap": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/addNodeToMap",
"subtitle": "{{$:/core/images/tag-button}} Add node",
"classes": "tmap-modal-add-node",
"text": "\\rules except wikilink\n\n\\define backButtonText() back to list\n\\define outputAndTemplate() [[$(output)$]] [[$(template)$]]\n\n\\define editor()\n <$button class=\"tmap-go-back tc-btn-invisible\">\n {{$:/core/images/chevron-left}} <<backButtonText>>\n <$action-deletefield $tiddler=<<temp>> more template />\n <$action-sendmessage\n $message=\"tmap:tm-clear-tiddler\"\n keep=\"draft.title\"\n title=<<output>> />\n </$button>\n\n <$list filter=\"[<output>get[draft.title]is[tiddler]]\">\n <div class=\"tmap-flash-message tmap-warning\">\n Tiddler already exists! Use another title or click\n \"<<backButtonText>>\" to cancel your edit.\n </div>\n </$list>\n\n <div class=\"tmap-modal-editor\">\n <table class=\"tmap-config-table\">\n <tr class=\"tmap-template-select\">\n <td>Template</td>\n <td>\n <$select\n tiddler=<<temp>>\n field=\"template\">\n <option value=\"\"></option>\n <$list filter=<<tmap \"option\" \"selector.allPotentialNodes\">>>\n <option><$view field=\"title\" /></option>\n </$list>\n </$select>\n <$button>Load\n <$action-sendmessage\n $message=\"tmap:tm-clear-tiddler\"\n keep=\"draft.title\"\n title=<<output>> />\n <$list filter=\"[<temp>get[template]]\" variable=\"template\">\n <$action-sendmessage\n $message=\"tmap:tm-merge-tiddlers\"\n tiddlers=<<outputAndTemplate>>\n output=<<output>> />\n <$action-deletefield $tiddler=<<output>> tmap.id tmap.edges />\n </$list>\n </$button>\n </td>\n <td>Press the \"load\" button to activate the template.</td>\n </tr>\n </table>\n <$importvariables filter=\"[all[tiddlers+shadows]prefix[$:/core/macros/]]\">\n <$set name=\"currentTiddler\" value=<<output>>>\n <$transclude tiddler=\"$:/core/ui/EditTemplate\" mode=\"block\" />\n </$set>\n </$importvariables>\n </div>\n\\end\n\n\\define search()\n<p>Add an existing tiddler to the map or create a new one.</p>\n<table id=\"tmap-search-table\">\n <tr>\n <td><b>Title:</b></td>\n <td>\n <$edit-text\n tiddler=<<output>>\n field=\"draft.title\"\n focus=\"true\"\n type=\"text\"\n tag=\"input\"\n default=\"\"\n class=\"tmap-trigger-field\n tmap-triggers-ok-button-on-enter\n tmap-triggers-cancel-button-on-esc\" />\n <$list filter=\"[<output>get[draft.title]!is[tiddler]]\">\n <$button\n tooltip=\"The tiddler does not exist yet and you may edit it\n before it is added to the map\">\n {{$:/core/images/edit-button}}\n <$action-setfield $tiddler=<<temp>> more=\"true\" />\n </$button> <sup>[1]</sup>\n </$list>\n </td>\n </tr>\n <tr>\n <td></td>\n <td>\n <$set name=\"term\" value={{!!draft.title}}>\n <ul class=\"tmap-small-list\">\n <$list filter=\"[search:title<term>!is[system]!has[draft.of]]\">\n <li>\n <$button class=\"tc-btn-invisible tmap-link\">\n <$view field=\"title\" />\n <$action-setfield $tiddler=<<output>> draft.title={{!!title}} />\n </$button>\n </li>\n </$list>\n </ul>\n </$set>\n </td>\n </tr>\n</table>\n\n<$list filter=\"[<output>get[draft.title]!is[tiddler]]\">\n<hr />\n<sup>[1]</sup>\n<small>\n The tiddler does not exist yet and you may edit it\n before it is added to the map\n</small>\n</$list>\n\\end\n\n<$list filter=\"[<temp>!has[more]]\" variable=\"item\"><<search>></$list>\n<$list filter=\"[<temp>has[more]]\" variable=\"item\"><<editor>></$list>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/cannotDeleteViewDialog": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/cannotDeleteViewDialog",
"subtitle": "{{$:/core/images/locked-padlock}} You cannot delete this view!",
"buttons": "ok",
"text": "\\rules except wikilink\n\nIt is not possible to delete the current view as ''<<count>>'' tiddlers\nare referencing it. To delete the view you must first remove the tiddlymap\nwidgets in the tiddlers listed below or change their view attributes.\n\n''References''\n\n<ul>\n<$list filter=<<refFilter>> variable=\"item\">\n <li><$link><<item>></$link></li>\n</$list>\n</ul>\n\nAfter the references are removed, you may delete the view.\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/getConfirmation": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/getConfirmation",
"subtitle": "{{$:/core/images/import-button}} You must confirm in order to proceed!",
"text": "\\rules except wikilink\n\n<<message>>\n\n''Are you really sure you want to do this?''"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/createView": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/createView",
"subtitle": "{{$:/core/images/new-button}} Creating a new view",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-text\"\n title:\"View name\"\n field:\"name\"\n focus:\"true\"\n class:\"tmap-trigger-field\n tmap-triggers-ok-button-on-enter\n tmap-triggers-cancel-button-on-esc\"\n descr:\"The name for the new view. If no name is entered,\n the program will invent one for you.\"\n note:\"You cannot override an existing view. In this case,\n you need to delete the old view first! You must no use\n slashes (`/`) in the name.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Clone view\"\n field:\"clone\"\n descr:\"Use the view that is currently displayed in the\n editor as blueprint. The view will be an __exact__\n clone of the current one, only with a different\n name.\">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/deleteNodeDialog": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/deleteNodeDialog",
"subtitle": "{{$:/core/images/delete-button}} You are about to delete <<count>> nodes",
"text": "\\rules except wikilink\n\n''Please choose an option or abort:''\n\n<$radio tiddler=<<output>> field=\"delete-from\" value=\"system\">\n Delete nodes from system <sup>[1]</sup>\n</$radio><br />\n<$radio tiddler=<<output>> field=\"delete-from\" value=\"filter\">\n Delete nodes from graph's filter <sup>[2]</sup>\n</$radio>\n\nThe following nodes will be deleted:\n\n<ul>\n<$list filter=<<tiddlers>>>\n <li><$view tiddler={{!!title}} field=\"title\" /></li>\n</$list>\n</ul>\n\n---\n\n<sup>[1]</sup>\n<small>This will delete all nodes, their corresponding tiddlers and all connected edges.</small><br/>\n<sup>[2]</sup>\n<small>''Important:'' Removing a node from the graph's filter only works, if the node has been added in the map editor per double click or via \"Add Node\". If the node hasn't been added as mentioned above, you need to change the underlying tiddler in a way that it doesn't match your filter anymore, if you don't want it to be displayed in the graph.</small>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/dublicateIdInfo": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/dublicateIdInfo",
"subtitle": "{{$:/core/images/info-button}} Dublicate id detected",
"buttons": "ok_suppress",
"text": "\\rules except wikilink\n\nTiddlyMap requires the value of the id field (\"tmap.id\") to be\nunique in order to correctly identify nodes and tiddlers.\n\nThe id of the \"<<param.changedTiddler>>\" already exists for these tiddlers:\n\n<ul>\n<$list filter=<<param.filter>> variable=\"item\">\n <li><$link><<item>></$link></li>\n</$list>\n</ul>\n\nTherefore TiddlyMap\n\n* assigned a new id to tiddler \"<<param.changedTiddler>>\"\n* removed all edges from \"<<param.changedTiddler>>\"\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/edgeNotVisible": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/edgeNotVisible",
"subtitle": "{{$:/core/images/info-button}} Edge will not be visible in view \"<<view>>\"",
"buttons": "ok_suppress",
"text": "\\rules except wikilink\n\nYou just created an edge of type\n<code><$text text=<<type>> /></code> that will not be\nvisible in this view because it doesn't match your\nedge-type filter settings.\n\nThe current edge-type filter of view \"<<view>>\" looks like this:\n\n<pre><code><$text text=<<eTyFilter>> /></code></pre>\n\nTo have the newly added type displayed in your view, adjust your\nedge-type filter accordingly. \n\nSome suggestions:\n\n<ul>\n <li>\n Explicitly add the type to the filter:\n <code><$text text=\"[[\" /><$text text=<<type>> /><$text text=\"]]\" /></code>\n </li>\n <li>\n <$set\n filter=\"[<type>regexp[:]splitbefore[:]]\"\n name=\"prefix\"\n emptyValue=<<tmap halfOfString \"$(type)$\">>>\n Add a filter rule (e.g. a prefix filter) that will match\n your type: <code>[prefix[<<prefix>>]]</code>\n </$set>\n </li>\n <li>Make your current view-filter less restrictive.</li>\n</ul>\n\nFor further information, please see:\n[[Node and edge-type filters|http://tiddlymap.org#Node%20and%20edge-type%20filters]]."
},
"$:/plugins/felixhayashi/tiddlymap/dialog/editNode/default": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/editNode/default",
"caption": "Global node style",
"classes": "tmap-remove-top-space",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n A node's ''global configuration''\n (also referred to as //global individual config//) defines its\n individual appearance and behaviour in all views.\n</div>\n<<maybeShowTidColorWarning>>\n\n<$macrocall $name=\"sharedSettings\"\n twIconField=<<tidIconField>>\n faIconField=\"global.tmap.fa-icon\"\n labelField=<<tidLabelField>> />\n\n<$macrocall $name=\"visConfiguration\"\n mode=\"manage-node-types\"\n extensionField=\"global.tmap.style\"\n styleName=\"node's global style\"\n inheritedList=\"[[inherited-global-default-style]]\n [[inherited-local-default-style]]\n [[inherited-group-styles]]\" />\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/editNode/local": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/editNode/local",
"caption": "Local node style",
"classes": "tmap-remove-top-space",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n The ''local node configuration''\n (also referred to as //view-specific node configuration//)\n overrides the //global individual configuration// and only affects\n the node's appearance and behaviour in the current view.\n</div>\n<<maybeShowTidColorWarning>>\n\n<fieldset>\n <legend>Behaviour</legend>\n <table class=\"tmap-config-table\">\n <$macrocall type=\"input-select\"\n $name=\"tmap-row\"\n title=\"Open view\"\n field=\"local.open-view\"\n nochoice=\"Disabled\"\n selectFilter=<<tmap \"option\" \"selector.allViewsByLabel\">>\n descr=\"Clicking on this node will open the specified\n view instead of the tiddler represented by this node.\" />\n </table>\n</fieldset>\n\n<$macrocall $name=\"sharedSettings\"\n twIconField=\"local.tw-icon\"\n faIconField=\"local.fa-icon\"\n labelField=\"local.label\" />\n\n<$macrocall $name=\"visConfiguration\"\n mode=\"manage-node-types\"\n extensionField=\"local-individual-node-style\"\n styleName=\"node's local style\"\n inheritedList=\"[[inherited-global-default-style]]\n [[inherited-local-default-style]]\n [[inherited-group-styles]]\n [[global.tmap.style]]\" />\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/editNode": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/editNode",
"subtitle": "{{$:/core/images/edit-button}} Editing style of node \"<<tiddler>>\"",
"classes": "tmap-remove-top-space",
"text": "\\rules except wikilink\n\n\\define maybeShowTidColorWarning()\n <$list filter=\"[<tidColor>regexp[.+]]\">\n <div class=\"tmap-flash-message tmap-warning\">\n You have set the tiddler's color\n field to \"<<tidColor>>\". This value will be completely ignored\n when you change node's color properties in the vis editor below.\n </div>\n </$list>\n\\end\n\n\\define iconSettings(twIconField, faIconField)\n <fieldset>\n <legend>Icon Settings</legend>\n <table class=\"tmap-config-table\">\n <<tmap-row type:\"input-text\"\n title:\"TW-icon\"\n field:\"$twIconField$\"\n descr:\"A tiddlywiki image reference.\n For example '$:/core/icon' for Movotun Jack.\">>\n <<tmap-row type:\"input-text\"\n title:\"FA-icon\"\n field:\"$faIconField$\"\n descr:\"A Font Awesome icon code.\n For example 'f206' for the bicycle symbol.\">>\n </table>\n </fieldset>\n\\end\n\n\\define sharedSettings(twIconField, faIconField, labelField)\n <fieldset>\n <legend>General Settings</legend>\n <table class=\"tmap-config-table\">\n <<tmap-row type:\"input-text\"\n title:\"Label\"\n field:\"$labelField$\"\n descr:\"Use this value as node label.\">>\n </table>\n </fieldset>\n <!-- display icon fieldset -->\n <<iconSettings \"$twIconField$\" \"$faIconField$\">> \n\\end\n\n<$macrocall\n $name=\"tabs\"\n default=<<concat \"$(template)$/default\">>\n tabsList=\"[all[shadows]prefix<template>] -[<template>]\"\n/>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft",
"caption": "Draft",
"text": "\\rules except wikilink\n\n<div class=\"tmap-modal-editor\">\n <$importvariables filter=\"[all[tiddlers+shadows]prefix[$:/core/macros/]]\">\n <$set name=\"currentTiddler\" value=<<draftTRef>> >\n <$transclude tiddler=\"$:/core/ui/EditTemplate\" field=\"text\" mode=\"block\" />\n </$set>\n </$importvariables>\n</div>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/original": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/original",
"caption": "Current Version",
"text": "\\rules except wikilink\n\n<div class=\"tmap-modal-editor\">\n <$importvariables filter=\"[all[tiddlers+shadows]prefix[$:/core/macros/]]\">\n <$set name=\"currentTiddler\" value=<<originalTRef>> >\n <$transclude tiddler=\"$:/core/ui/ViewTemplate\" field=\"text\" mode=\"block\" />\n </$set>\n </$importvariables>\n</div>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor",
"subtitle": "{{$:/core/images/edit-button}} <<originalTRef>>",
"classes": "tmap-modal-fullscreen-editor tmap-remove-top-space",
"text": "\\rules except wikilink\n\n\\define defaultTab() $:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/original\n\n<$macrocall $name=\"tabs\"\n default=<<defaultTab>>\n tabsList=\"[all[shadows]prefix[$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/]]\" />"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/fieldChanged": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/fieldChanged",
"subtitle": "{{$:/core/images/info-button}} The field \"<<name>>\" changed",
"text": "\\rules except wikilink\n\nYou changed the field \"<<name>>\" from \"<<oldValue>>\" to \"<<newValue>>\".\n\nIt is recommended to let TiddlyMap copy all values from the former field \"<<oldValue>>\" to the new field \"<<newValue>>\" so the data stored in \"<<oldValue>>\" is not lost. This operation has to be done now or never.\n\nDo you want to move each tiddler's existing \"<<oldValue>>\" value to \"<<newValue>>\"? Please note that any value currently stored in \"<<newValue>>\" would consequently be overridden and the old field \"<<oldValue>>\" would be eventually removed!"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenNotSupported": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenNotSupported",
"subtitle": "{{$:/core/images/info-button}} Your machine does not support fullscreen",
"buttons": "ok_suppress",
"text": "\\rules except wikilink\n\nPlease have a look [[here|http://caniuse.com/#feat=fullscreen]] to see a list of supported devices/browsers.\n\nSorry for this :("
},
"$:/plugins/felixhayashi/tiddlymap/dialog/renameView": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/renameView",
"subtitle": "{{$:/core/images/tag-button}} Please specify a view name",
"text": "\\rules except wikilink\n\n''Name:''\n<$edit-text focus=\"true\" tiddler=<<output>> field=\"text\" type=\"text\" tag=\"input\" default=\"\"\n class=\"tmap-trigger-field tmap-triggers-ok-button-on-enter\" />\n\nNote that ''<<count>>'' tiddlers are referencing this view.\n\n<$reveal type=\"nomatch\" text=\"0\" default=<<count>>>\n\nRenaming the view will cause the reference to be invalid.\nIt is recommended to first remove the tiddlymap widgets in\nthe tiddlers listed below or change their view attributes\naccordingly.\n\n''References''\n\n<ul>\n<$list filter=<<refFilter>> variable=\"item\">\n <li><$text text=<<item>> /></li>\n</$list>\n</ul>\n\n</$reveal>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/saveCanvas": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/saveCanvas",
"subtitle": "{{$:/core/images/options-button}} Save a snapshot image of view \"<<view>>\"",
"text": "\\rules except wikilink\n\n\\define preview()\n<div class=\"tmap-save-canvas-preview\">\n <$transclude tiddler=<<snapshot>> /><br />\n</div>\n\\end\n\n<table class=\"tmap-config-table\">\n <$macrocall $name=\"tmap-row\"\n type=\"input-text\"\n title=\"Name\"\n field=\"name\"\n descr=<<preview>> />\n <<tmap-row type:\"input-text\"\n title:\"Width\"\n field:\"width\"\n descr:\"Scales the image to match this new width (unit: px)\">>\n <<tmap-row type:\"input-text\"\n title:\"height\"\n field:\"height\"\n descr:\"Scales the image to match this new height (unit: px)\">>\n <<tmap-row type:\"input-radio\"\n title:\"Action\"\n field:\"action\"\n selectFilter:\"[[download|Download]]\n [[wiki|Save in wiki]]\n [[placeholder|Use as placeholder for this view]]\"\n descr:\"Save the image by downloading it to your computer or\n save it as a tiddler in your wiki.<br /><br />\n A third option is to make TiddlyMap use this image as\n placeholder for the current view. Placeholders are useful\n when the wiki is exported as static html\n or when editing a tiddler while having the preview\n shown. In this case the title input is ignored.\">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog",
"text": "\\rules except wikilink\n\n<div class=<<classes>>>\n<$importvariables\n filter=\"[[$:/plugins/felixhayashi/tiddlymap/misc/macros]]\n [[$:/core/macros/tabs]]\">\n<$transclude tiddler=<<template>> mode=\"block\" />\n</$importvariables>\n</div>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/welcome": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/welcome",
"subtitle": "{{$:/core/images/info-button }} Welcome",
"buttons": "ok",
"text": "\\rules except wikilink\n\nIt seems that you freshly installed TiddlyMap.\n\n* In case you need any help, please consult the [[online docs|http://tiddlymap.org#Documentation]] first.\n* You are welcome to create an [[issue|https://github.com/felixhayashi/TW5-TiddlyMap/issues]] at GitHub for any bug you discover.\n* Make sure to revisit the [[demo site|http://tiddlymap.org]] to see whether your version is up-to-date.\n* If you like TiddlyMap, please give it a star at [[GitHub|https://github.com/felixhayashi/TW5-TiddlyMap]] or tell your friends about it :)\n* ''Please note:'' TiddlyMap is distributed under the [[BSD 2-Clause License|http://opensource.org/licenses/BSD-2-Clause]], which belongs to the same license family, as the license used by TiddlyWiki. By using this plugin you agree to the product's [[License Terms|https://github.com/felixhayashi/TW5-TiddlyMap/blob/master/LICENSE]].\n\nEnjoy!\n\n---\n\nTiddlyMap will configure your wiki for optimal use. Everything can be changed back later by you, via the TiddlyWiki configurations panel, so no worries. If you checked some of the options below, please save & restart after closing this dialog.\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-checkbox\"\n title:\"Optimize storyview\"\n field:\"config.storyview\"\n descr:\"Sets the storyview to 'top' for optimal scrolling.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Optimize sidebar\"\n field:\"config.sidebar\"\n descr:\"Sets sidebar layout to 'fixed-fluid' for larger editor.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Optimize navigation\"\n field:\"config.navigation\"\n descr:\"Sets navigation style to open tiddlers at top for better map navigation.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Create demo welcome map\"\n field:\"config.demo\"\n descr:\"Creates a little hello world welcome map for you.\">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/widgetCodeGenerator": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/widgetCodeGenerator",
"subtitle": "{{$:/core/images/permalink-button}} Widget Code Generator",
"buttons": "close",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n Use the code below to embed a view in a tiddler.\n</div>\n\n<pre style=\"white-space: normal;\">\n<$tmap\n\n<$list filter=\"[<output>has[var.view]]\">\n view=\"<$view field='var.view' />\"</$list>\n<$list filter=\"[<output>field:var.click-to-use[true]]\">\n click-to-use=\"true\"</$list>\n<$list filter=\"[<output>has[var.editor]]\">\n editor=\"<$view field='var.editor' />\"</$list>\n<$list filter=\"[<output>has[var.width]]\">\n width=\"<$view field='var.width' />\"</$list>\n<$list filter=\"[<output>has[var.height]]\">\n height=\"<$view field='var.height' />\"</$list>\n<$list filter=\"[<output>has[var.class]]\">\n class=\"<$view field='var.class' />\"</$list>\n<$list filter=\"[<output>field:var.show-buttons[false]]\">\n show-buttons=\"false\"</$list>\n<$list filter=\"[<output>has[var.design]]\">\n design=\"<$view field='var.design' />\"</$list>></$tmap>\n</pre>\n\n<fieldset>\n <legend>Parameters</legend> \n <table class=\"tmap-config-table\">\n <$macrocall type=\"input-select\"\n $name=\"tmap-row\"\n title=\"View\"\n field=\"var.view\"\n nochoice=\" \"\n selectFilter=<<tmap \"option\" \"selector.allViewsByLabel\">>\n descr=\"The view to bind the wiedget to\" />\n <<tmap-row type:\"input-select\"\n title:\"Editor bar\"\n field:\"var.editor\"\n selectFilter:\"[[|Hidden]]\n [[vis|Simple]]\n [[advanced|Advanced]]\"\n descr:\"Whether the widget should act as an editor or not.\">>\n <<tmap-row type:\"input-select\"\n title:\"Design\"\n field:\"var.design\"\n selectFilter:\"[[|Normal]]\n [[plain|Plain]]\"\n descr:\"Usually a header is displayed and borders. Plain\n design will only show the mere graph.\">>\n <<tmap-row type:\"input-text\"\n title:\"Height\"\n field:\"var.height\"\n descr:\"Graph's height in css units. Defaults to '300px'.\">>\n <<tmap-row type:\"input-text\"\n title:\"Width\"\n field:\"var.width\"\n descr:\"Graph's width in css units. Defaults to '100%'.\">>\n <<tmap-row type:\"input-text\"\n title:\"Class\"\n field:\"var.class\"\n descr:\"A custom class to apply your own css.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Click to use\"\n field:\"var.click-to-use\"\n default:\"false\"\n descr:\"A click is needed to enable the graph.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Show buttons\"\n field:\"var.show-buttons\"\n default:\"true\"\n descr:\"Show or hide the graph's navigation buttons.\">>\n </table>\n</fieldset>"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter/close": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter/close",
"text": "\\rules except wikilink\n\n<$button class=\"tmap-dialog-button tmap-close-button\" tooltip=\"Close this dialog\">Close\n\n <!-- trigger dialog callback -->\n <$action-setfield $tiddler=<<result>> text=\"1\" />\n \n</$button>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok",
"text": "\\rules except wikilink\n\n<$button class=\"tmap-dialog-button tmap-ok-button\" tooltip=\"Confirm dialog\">OK\n\n <!-- trigger dialog callback -->\n <$action-setfield $tiddler=<<result>> text=\"1\" />\n \n</$button>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok_cancel": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok_cancel",
"text": "\\rules except wikilink\n\n<$transclude tiddler=\"$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok\" mode=\"inline\" />\n<$button class=\"tmap-dialog-button tmap-cancel-button\" tooltip=\"Close dialog without saving\">Cancel\n <!-- trigger dialog callback -->\n <$action-setfield $tiddler=<<result>> text=\"\" />\n</$button>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok_suppress": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok_suppress",
"text": "\\rules except wikilink\n\n<$set name=\"currentTiddler\" value=<<title>> >\n\n<$checkbox field=\"suppress\" checked=\"1\" unchecked=\"0\" default=\"0\"> Do not show this dialog again</$checkbox>\n<$button class=\"tmap-dialog-button tmap-ok-button\" tooltip=\"Confirm this dialog\">OK\n\n <!-- trigger dialog callback -->\n <$action-setfield $tiddler=<<result>> text=\"1\" />\n \n <!-- suppress dialog in the future -->\n <$action-sendmessage $message=\"tmap:tm-suppress-dialog\"\n dialog=<<templateId>>\n suppress={{!!suppress}} />\n \n</$button>\n\n</$set>"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter",
"text": "\\rules except wikilink\n\n\\define footer() $:/plugins/felixhayashi/tiddlymap/dialogFooter/$(buttons)$\n\n<$transclude tiddler=<<footer>> />\n\n<!-- we need this button to be able to close a tiddler from outside programmatically -->\n<$button class=\"tmap-hidden-close-button\" message=\"tm-close-tiddler\" />"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter/element_type_manager": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter/element_type_manager",
"text": "\\rules except wikilink\n\n<$button\n class=\"tmap-dialog-button tmap-save-button\"\n tooltip=\"Save the current changes\">Save\n <$action-sendmessage\n $message=\"tmap:tm-save-type-form\"\n mode=<<mode>>\n output=<<output>> />\n</$button>\n<$button\n class=\"tmap-dialog-button tmap-cancel-button\"\n tooltip=\"Cancel the most resent changes and exit\">Quit\n <$action-setfield $tiddler=<<result>> text=\"1\" />\n</$button>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/deleteType": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/deleteType",
"caption": "Removal",
"text": "\\rules except wikilink\n\n\\define manage-edge-types()\n <$macrocall $name=\"tmap-row\"\n type=\"input-checkbox\"\n title=\"Delete type\"\n field=\"temp.deleteType\"\n default={{!id}}\n readonly={{!!temp.idImmutable}}\n descr=\"If you want to delete this type, set this to true\n and click the save button afterwards. Predefined system\n types cannot be deleted.\" note=\"Consequently, all edges\n of this type will be deleted.\" />\n\\end\n\n\\define manage-node-types()\n <$macrocall $name=\"tmap-row\"\n type=\"input-checkbox\"\n title=\"Delete type\"\n field=\"temp.deleteType\"\n default={{!id}}\n readonly={{!!temp.idImmutable}}\n descr=\"If you want to delete this type, set this to true and\n click the save button afterwards. Predefined system\n types cannot be deleted.\" />\n\\end\n\n<table class=\"tmap-config-table\"><$macrocall $name=<<mode>> /></table>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/description": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/description",
"caption": "Description",
"text": "\\rules except wikilink\n\n\\define manage-edge-types()\n <<tmap-row type:\"input-textarea\"\n title:\"Description\"\n field:\"description\"\n descr:\"An optional description for this type. The\n description will be displayed as tooltip when\n moving the mouse over an edge of this type.\">>\n\\end\n\n\\define manage-node-types()\n <<tmap-row type:\"input-textarea\"\n title:\"Description\"\n field:\"description\" \n descr:\"An optional description for this type.\">>\n\\end\n\n<table class=\"tmap-config-table\">\n <$macrocall $name=<<mode>> />\n</table>\n\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/generalSettings": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/generalSettings",
"caption": "General",
"text": "\\rules except wikilink\n\n\\define manage-edge-types()\n <<tmap-row type:\"input-text\"\n title:\"Label\"\n field:\"label\"\n descr:\"An optional alias used as edge-label.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Show label\"\n field:\"show-label\"\n default:\"true\"\n descr:\"If unchecked, no edge label will be displayed.\">>\n\\end\n\\define manage-node-types()\n <$list filter=\"[<currentTiddler>!regexp:id[tmap:]]\">\n <<tmap-row type:\"input-textarea\"\n title:\"Scope\"\n field:\"scope\"\n descr:\"A filter expression that defines, which nodes inherit\n this node-type and its style.\">>\n </$list>\n <$macrocall type=\"input-select\"\n $name=\"tmap-row\"\n title=\"Priority\"\n field=\"priority\"\n selectFilter=<<tmap \"scale\" \"100\">>\n descr=\"When a type has a a higher priority than another type,\n its style will override the other style\" />\n\\end\n\n<table class=\"tmap-config-table\">\n <$macrocall\n $name=\"tmap-row\"\n title=\"Identifier\"\n field=\"temp.newId\"\n type=\"input-text\"\n default={{!!id}}\n readonly={{!!temp.idImmutable}}\n descr=\"A unique identifier\"\n />\n <$macrocall $name=<<mode>> />\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/overview": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/overview",
"caption": "Overview",
"text": "\\rules except wikilink\n\n\\define date(f) <$view field=$f$ format=\"date\" template=\"DDth mmm hh:mm:ss\"/>\n\n! <$link to={{!!typeTRef}}><$view field=\"id\" /></$link>\n\n<table class=\"tmap-key-value-table\">\n <tr>\n <th align=\"left\">Created on</th>\n <td>\n <<date \"created\">>\n </td>\n </tr>\n <tr>\n <th align=\"left\">Modified on</th>\n <td><<date \"modified\">></td>\n </tr>\n <tr>\n <th align=\"left\">Usage count</th>\n <td>\n <span class=\"tmap-edge-type-specific\">\n <$view field=\"temp.usageCount\" />\n </span>\n <span class=\"tmap-node-type-specific\">\n <$count filter={{!!scope}}>0</$count>\n </span>\n </td>\n </tr>\n</table>\n\n<$view field=\"description\">//No description available//</$view>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/styling": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/styling",
"caption": "Styling",
"text": "\\rules except wikilink\n\n\\define url()\n <$set\n filter=\"[<mode>prefix[manage-edge-types]]\"\n name=\"module\"\n value=\"edges\"\n emptyValue=\"nodes\">\n [[visjs.org|http://visjs.org/docs/network/$(module)$]]\n </$set>\n\\end\n\n<fieldset class=\"tmap-node-type-specific\">\n <legend>Icon Settings</legend>\n <table class=\"tmap-config-table\">\n <<tmap-row type:\"input-text\"\n title:\"TW-icon\"\n field:\"tw-icon\"\n descr:\"A tiddlywiki image reference.\n For example '$:/core/icon' for Movotun Jack.\">>\n <<tmap-row type:\"input-text\"\n title:\"FA-icon\"\n field:\"fa-icon\"\n descr:\"A Font Awesome icon code.\n For example 'f206' for the bicycle symbol.\">>\n </table>\n</fieldset>\n\n<fieldset><legend>Visjs styles</legend>\n <div class=\"tmap-flash-message tmap-info\">\n All visjs options below are documented at <<url>>.\n </div>\n <div class=\"tmap-flash-message tmap-info\">\n Only config items that you actually changed have an effect on\n the graph. Other options are visible, yet, inactive.\n </div>\n <$tmap-config\n mode=<<mode>>\n inherited=\"inherited-style\"\n extension=\"style\" />\n</fieldset>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager",
"subtitle": "{{$:/core/images/tag-button}} <<topic>>",
"buttons": "element_type_manager",
"classes": "tmap-remove-top-space",
"text": "\\rules except wikilink\n\n\\define defaultTab()\n$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/overview\n\\end\n\n\\define settingsTab()\n$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/generalSettings\n\\end\n\n\\define tabsFilter()\n[all[shadows]prefix[$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/]]\n\\end\n\n\\define searchFilter()\n$(searchSelector)$\n+[sort[title]nsort[priority]]\n+[removeprefix<typeRootPath>removeprefix[/]]\n+[search:title{$:/temp/tmap/MapElementTypeSearch}]\n\\end\n\n\\define managerClass() tmap-$(mode)$\n\n\\define typePath() $(typeRootPath)$/$(id)$\n\n<div id=\"tmap-element-type-manager\" class=<<managerClass>>>\n <div>\n <div class=\"tmap-searchbar\">\n <$edit-text\n focus=\"true\"\n tiddler=\"$:/temp/tmap/MapElementTypeSearch\"\n type=\"text\"\n tag=\"input\"\n default=\"\" />\n <$list filter=\"[{$:/temp/tmap/MapElementTypeSearch}regexp[.+]]\n +[addprefix[/]]\n +[addprefix<typeRootPath>]\n +[!is[tiddler]!is[shadow]]\">\n <$button tooltip=\"Create a new type of this name\">\n {{$:/core/images/new-button}}\n <$action-sendmessage\n $message=\"tmap:tm-create-type\"\n mode=<<mode>>\n id={{$:/temp/tmap/MapElementTypeSearch}}\n output=<<output>> />\n <$action-setfield $tiddler=\"$:/temp/tmap/MapElementTypeSearch\" text=\"\" />\n </$button>\n </$list>\n\n </div>\n <ul>\n <$list\n filter=<<searchFilter>>\n emptyMessage=<<noTypeFound>>\n variable=\"id\">\n <li>\n <span class=\"tmap-ranking tmap-node-type-specific\">\n # <$view tiddler=<<typePath>> field=\"priority\">1</$view>\n </span>\n <$button class=\"tc-btn-invisible tmap-link\"><<id>>\n <$action-setfield\n $tiddler=<<qualify \"$:/state/tabs/MapElementTypeManager\">>\n text=<<defaultTab>> />\n <$action-sendmessage\n $message=\"tmap:tm-load-type-form\"\n id=<<id>>\n mode=<<mode>>\n output=<<output>> />\n </$button>\n </li>\n </$list>\n </ul>\n </div>\n <div>\n <$reveal type=\"nomatch\" text=\"\" default={{!!id}} >\n <$macrocall\n $name=\"tabs\"\n default=<<defaultTab>>\n state=\"$:/state/tabs/MapElementTypeManager\"\n tabsList=<<tabsFilter>> />\n </$reveal>\n <$reveal type=\"match\" text=\"\" default={{!!id}} >\n <div class=\"tmap-flash-message tmap-info\">\n Please select a type from the list or create a new one by\n entering the type name in the search field on the left.\n </div>\n <div class=\"tmap-flash-message tmap-info tmap-node-type-specific\">\n The number next to the node-type label represents it's priority.\n </div>\n </$reveal>\n </div>\n</div>\n"
},
"$:/plugins/felixhayashi/tiddlymap/editor/contextMenu/node": {
"title": "$:/plugins/felixhayashi/tiddlymap/editor/contextMenu/node",
"text": "\\define single()\n <$list filter=\"\n [[tmap:tm-toggle-central-topic, $:/core/images/star-filled, Toggle central topic]]\n [[tmap:tm-delete-element, $:/core/images/delete-button, Delete node]]\">\n <$button class=\"tc-btn-invisible\">\n <$action-sendmessage $message=<<tmap \"splitAndSelect\" \", \" \"0\">> />\n <$transclude tiddler=<<tmap \"splitAndSelect\" \", \" \"1\">> />\n <<tmap \"splitAndSelect\" \", \" \"2\">>\n </$button>\n </$list>\n\\end\n\n\\define multi()\n <$list filter=\"\n [[tmap:tm-delete-element, $:/core/images/delete-button, Delete selected nodes]]\">\n <$button class=\"tc-btn-invisible\">\n <$action-sendmessage $message=<<tmap \"splitAndSelect\" \", \" \"0\">> />\n <$transclude tiddler=<<tmap \"splitAndSelect\" \", \" \"1\">> />\n <<tmap \"splitAndSelect\" \", \" \"2\">>\n </$button>\n </$list>\n\\end\n\n<div class=\"tc-drop-down\">\n <$macrocall $name=<<mode>> />\n</div>\n"
},
"$:/plugins/felixhayashi/tiddlymap/misc/advancedEditorBar": {
"title": "$:/plugins/felixhayashi/tiddlymap/misc/advancedEditorBar",
"text": "\\rules except wikilink\n\\define showEdgeField() show-$(curEdgeId)$\n\n<!-- === View Switcher ========================================== -->\n\n<div class=\"tmap-menu-bar\">\n View:\n <$reveal type=\"match\" text=\"false\" default=<<isViewBound>> >\n <$select\n tiddler=<<viewHolder>>\n field=\"text\"\n default=<<viewLabel>> >\n <$list filter=<<tmap \"option\" \"selector.allViewsByLabel\">> >\n <option value={{!!title}}>\n <$view tiddler={{!!title}} field=\"title\" />\n </option>\n </$list>\n </$select>\n </$reveal>\n <$reveal type=\"match\" text=\"true\" default=<<isViewBound>> >\n <b><<viewLabel>></b>\n </$reveal>\n\n<!-- === Menu =================================================== -->\n\n <$button\n popup=<<qualify \"$:/temp/menu\">>\n class=\"tmap-unicode-button\"\n tooltip=\"Open the Menu\">{{$:/core/images/menu-button}}\n </$button>\n\n <$reveal type=\"popup\" position=\"below\" state=<<qualify \"$:/temp/menu\">> >\n <div class=\"tc-drop-down\">\n <a href=\"http://tiddlymap.org#Documentation\" target=\"_blank\">\n {{$:/core/images/info-button}} Open online help\n </a>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-create-view\">\n {{$:/core/images/new-button}} Create new view\n </$button>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-generate-widget\">\n {{$:/core/images/permalink-button}} Grab widget code\n </$button>\n <div class=\"tmap-list-separator\">Global configurations:</div>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-configure-system\">\n {{$:/core/images/options-button}} Configure TiddlyMap\n </$button>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-manage-edge-types\">\n <span class=\"tmap-unicode-icon\">◭</span> Manage edge-types\n </$button>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-manage-node-types\">\n <span class=\"tmap-unicode-icon\">▢</span> Manage node-types\n </$button>\n <div class=\"tmap-view-actions\">\n <div class=\"tmap-list-separator\">Actions for this view:</div>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-edit-view\">\n {{$:/core/images/options-button}} Configure view\n </$button>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-rename-view\">\n {{$:/core/images/tag-button}} Rename view\n </$button>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-delete-view\">\n {{$:/core/images/delete-button}} Delete view\n </$button>\n </div>\n </div>\n </$reveal>\n\n<!-- === Neighbourhood menu ===================================== -->\n\n <$reveal\n type=\"match\"\n text=\"true\"\n default=<<tmap \"option\"\n \"config.sys.editorMenuBar.showNeighScopeButton\">>>\n <$button\n class=<<neighScopeBtnClass>>\n tooltip=\"Change the neighbourhood scope\"\n popup=<<qualify \"$:/temp/neighScope\">>>\n {{$:/core/images/preview-open}}\n </$button>\n </$reveal>\n\n <$reveal type=\"popup\" position=\"below\" state=<<qualify \"$:/temp/neighScope\">> >\n <div class=\"tc-drop-down\">\n <div class=\"tmap-list-separator\">Neighbourhood scope</div>\n <$button class=\"tc-btn-invisible\">None\n <$action-setfield\n $tiddler=<<viewRoot>>\n config.neighbourhood_scope=\"\" />\n </$button>\n <$list filter=\"[[1|1 step distance]]\n [[2|2 step distance]]\n [[3|3 step distance]]\n [[4|4 step distance]]\n [[5|5 step distance]]\">\n <$button class=\"tc-btn-invisible\">\n <<tmap \"splitAndSelect\" \"|\" \"1\">>\n <$action-setfield\n $tiddler=<<viewRoot>>\n config.neighbourhood_scope=<<tmap \"splitAndSelect\" \"|\" \"0\">> />\n </$button>\n </$list>\n <$button class=\"tc-btn-invisible\">No limit\n <$action-setfield\n $tiddler=<<viewRoot>>\n config.neighbourhood_scope=\"100\" />\n </$button>\n\n <div class=\"tmap-list-separator\">Neighbourhood traversal</div>\n\n <$radio field=\"config.neighbourhood_directions\" value=\"in\"> Incoming</$radio><br />\n <$radio field=\"config.neighbourhood_directions\" value=\"out\"> Outgoing</$radio><br />\n <$radio field=\"config.neighbourhood_directions\" value=\"\"> Both</$radio>\n\n <div class=\"tmap-list-separator\">Other</div>\n\n <$checkbox field=\"config.show_inter_neighbour_edges\"\n checked=\"true\" unchecked=\"false\"> Inter-neighbour edges</$checkbox>\n\n </div>\n </$reveal>\n\n<!-- === Tracing ===================================== -->\n\n <$reveal\n type=\"match\"\n text=\"true\"\n default=<<isShowNeighbourhood>>>\n <$button\n class=<<tracingBtnClass>>\n tooltip=\"Trace your clicks on neighbouring nodes.\"\n popup=<<qualify \"$:/temp/tmap-tracing\">>>\n {{$:/core/images/timestamp-on}}\n </$button>\n </$reveal>\n\n <$reveal type=\"popup\" position=\"below\" state=<<qualify \"$:/temp/tmap-tracing\">> >\n <div class=\"tc-drop-down\">\n <$button message=\"tmap:tm-neighbourhood-reset-trace\">\n {{$:/core/images/erase}} Restart\n </$button>\n <span\n title=\"\n Enable this option to trace your clicks on neighbouring nodes.\n Traced neighbours are temporarily added to the map (until the map is closed)\n as if they where regular nodes of the map\"\n >\n <$checkbox\n field=\"config.neighbourhood_trace_clicks\"\n checked=\"true\"\n unchecked=\"false\"\n >\n Trace clicked nodes\n </$checkbox>\n </span>\n <br />\n <span title=\"Will focus an zoom on the latest traced node\">\n <$checkbox\n field=\"config.neighbourhood_focus_newly_traced_node\"\n checked=\"true\"\n unchecked=\"false\"\n >\n Focus traced nodes\n </$checkbox>\n </span>\n <br />\n <span title=\"Per default, only neighbours of nodes matching the node filter are displayed. Enable this option to also show neighbours of traced nodes.\">\n <$checkbox field=\"config.neighbourhood_include_traced_node_neighbours\"\n checked=\"true\" unchecked=\"false\"> Show neighbours of all traced nodes</$checkbox>\n </span>\n </div>\n </$reveal>\n\n<!-- === Export menu ============================================ -->\n\n <$reveal\n type=\"match\"\n text=\"true\"\n default=<<tmap \"option\" \"config.sys.editorMenuBar.showScreenshotButton\">>>\n <$button class=\"tmap-unicode-button\" tooltip=\"Open the map-export menu\" popup=<<qualify \"$:/temp/mapExport\">>>\n {{$:/core/images/download-button}}\n </$button>\n </$reveal>\n\n <$reveal type=\"popup\" position=\"below\" state=<<qualify \"$:/temp/mapExport\">>>\n <div class=\"tc-drop-down\">\n <$button\n class=\"tc-btn-invisible\"\n tooltip=\"Export the graph and all its elements\n in form of a JSON file\">\n {{$:/core/images/permalink-button}} Save as JSON file\n <$action-sendmessage\n $message=\"tmap:tm-download-graph\"\n view=<<viewLabel>> />\n </$button>\n <$button\n class=\"tc-btn-invisible\"\n tooltip=\"Create a png image to download or save it\n as image or view-placeholder in your wiki\">\n {{$:/core/images/palette}} Save as png image\n <$action-sendmessage $message=\"tmap:tm-save-canvas\" />\n </$button>\n </div>\n </$reveal>\n\n<!-- === Raster menu ============================================ -->\n\n <$reveal\n type=\"match\"\n text=\"true\"\n default=<<tmap \"option\" \"config.sys.editorMenuBar.showRasterMenuButton\">>>\n <$button\n tooltip=\"Change the raster of your map\"\n class=\"tmap-unicode-button\"\n popup=<<qualify \"$:/temp/rasterMenu\">>>\n {{$:/core/images/line-width}}\n </$button>\n </$reveal>\n\n <$reveal type=\"popup\" position=\"below\" state=<<qualify \"$:/temp/rasterMenu\">>>\n <div class=\"tc-drop-down\">\n <$button class=\"tc-btn-invisible\">Disable raster\n <$action-setfield\n $tiddler=<<viewRoot>>\n config.raster=\"\" />\n </$button>\n <div class=\"tmap-list-separator\">Raster sizes</div>\n <$list filter=\"[[50|50px]]\n [[75|75px]]\n [[100|100px]]\n [[150|150px]]\">\n <$button class=\"tc-btn-invisible\">\n <<tmap \"splitAndSelect\" \"|\" \"1\">>\n <$action-setfield\n $tiddler=<<viewRoot>>\n config.raster=<<tmap \"splitAndSelect\" \"|\" \"0\">> />\n </$button>\n </$list>\n </div>\n </$reveal>\n\n</div>\n"
},
"$:/plugins/felixhayashi/tiddlymap/misc/focusButton": {
"title": "$:/plugins/felixhayashi/tiddlymap/misc/focusButton",
"text": "\\define filter() [list[$:/temp/tmap/nodes/$(viewLabel)$]search:title{$:/temp/tmap/bar/search}]\n\\define concat(str) $str$\n\n\\define state() $(widgetPopupsPath)$/focus\n\n<div class=\"tmap-focus-button\">\n <$reveal type=\"match\" state=<<state>> text=\"\">\n <$button\n tooltip=\"Zoom on a specific node\"\n class=<<tv-config-toolbar-class>>>{{$:/core/images/advanced-search-button}}\n <$action-setfield $tiddler=\"$:/temp/tmap/bar/search\" text=\"\" />\n <$action-setfield $tiddler=<<state>> text=\"1\" />\n </$button>\n </$reveal>\n <$reveal type=\"nomatch\" state=<<state>> text=\"\">\n <$button\n tooltip=\"Close zoom popup\"\n class=<<tv-config-toolbar-class>>>{{$:/core/images/advanced-search-button}}\n <$action-setfield $tiddler=<<state>> text=\"\" />\n </$button>\n <div class=\"tmap-search-dropdown\">\n <div class=\"tc-drop-down\">\n <$edit-text\n focus=\"true\"\n tiddler=\"$:/temp/tmap/bar/search\"\n field=\"text\"\n type=\"text\"\n tag=\"input\"\n default=\"\" />\n <small><$count filter=<<filter>> /> results</small>\n <hr />\n <div class=\"tmap-very-small-list\">\n <$list filter=<<filter>>\n variable=\"item\"\n emptyMessage=\"//No results//\">\n <$button\n class=\"tc-btn-invisible\"\n message=\"tmap:tm-focus-node\"\n param=<<item>>>\n <$view tiddler=<<item>> field=\"title\" />\n </$button>\n </$list>\n </div>\n </div>\n </div>\n </$reveal>\n</div>"
},
"$:/plugins/felixhayashi/tiddlymap/hook/editor": {
"title": "$:/plugins/felixhayashi/tiddlymap/hook/editor",
"caption": "Map",
"tags": "$:/tags/SideBar",
"text": "\\define width() calc(100% - 15px)\n\n<div class=\"tmap-mobile-editor\">\n <div class=\"tmap-flash-message tmap-warning\">\n The editor is not displayed in mobile mode.\n </div>\n</div>\n<div class=\"tmap-desktop-editor\">\n <$tiddlymap\n class=\"tmap-sidebar-map-editor\"\n editor=\"advanced\"\n object-id=\"main_editor\"\n click-to-use=\"false\">\n </$tiddlymap>\n</div>"
},
"$:/plugins/felixhayashi/tiddlymap/hook/liveTab": {
"title": "$:/plugins/felixhayashi/tiddlymap/hook/liveTab",
"caption": "Live",
"text": "\\define width() calc(100% - 15px)\n\n<div class=\"tmap-mobile-editor\">\n <div class=\"tmap-flash-message tmap-warning\">\n The live tab is not displayed in mobile mode.\n </div>\n</div>\n<div class=\"tmap-desktop-editor\">\n <$set name=\"view\"\n filter=\"[{$:/temp/tmap/currentTiddler}get[tmap.open-view]]\"\n emptyValue=<<tmap \"option\" \"config.sys.liveTab.fallbackView\">>>\n <div>\n <$tiddlymap\n view=<<view>>\n click-to-use=\"false\"\n refresh-triggers=\"$:/temp/tmap/currentTiddler\"\n object-id=\"live_tab\">\n </$tiddlymap>\n </div>\n </$set> \n</div>"
},
"$:/plugins/felixhayashi/tiddlymap/misc/quickConnectButton": {
"title": "$:/plugins/felixhayashi/tiddlymap/misc/quickConnectButton",
"tags": "$:/tags/ViewToolbar",
"description": "{{$:/language/Buttons/TiddlyMap/Hint}}",
"caption": "{{$:/plugins/felixhayashi/tiddlymap/icon}} {{$:/language/Buttons/TiddlyMap/Caption}}",
"text": "\\define buttonClass() $(tv-config-toolbar-class)$ $(additional-classes)$\n\n\\define nonExistentItem()\n<<item>> <span style=\"color: #9E9E9E\">(will be created)</span>\n\\end\n\n\\define noConnectionsMsg()\n<tr><td colspan=\"4\">//No connections found!//</td></tr>\n\\end\n\n\\define normalSearchFilter()\n[!is[system]!has[draft.of]search:title{$:/temp/quickConnectSearch}sortcs[title]limit[50]]\n\\end\n\n\\define regexSearchFilter()\n[!is[system]!has[draft.of]regexp{$:/temp/quickConnectSearch}sortcs[title]limit[50]]\n\\end\n\n\\define showButton(state)\n<$button set=\"$:/temp/tmap/state/popup/quickConnect\"\n setTo=\"$state$\" tooltip={{$:/language/Buttons/TiddlyMap/Hint}} \n aria-label={{$:/language/Buttons/TiddlyMap/Caption}}\n class=<<buttonClass>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">{{$:/plugins/felixhayashi/tiddlymap/icon}}</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/TiddlyMap/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n\\define searchResults()\n<td>\n <$button tooltip=\"Create incoming edge\">\n <<tmap \"option\" \"misc.arrows.in\">>\n <$action-sendmessage $message=\"tmap:tm-create-edge\"\n from=<<item>>\n to=<<currentTiddler>>\n force=\"true\"\n label={{$:/temp/quickConnectSearch/type}}\n view={{$:/temp/quickConnectSearch/view}} />\n </$button>\n</td>\n<td>\n <$button tooltip=\"Create outgoing edge\">\n <<tmap \"option\" \"misc.arrows.out\">>\n <$action-sendmessage $message=\"tmap:tm-create-edge\"\n from=<<currentTiddler>>\n to=<<item>>\n force=\"true\"\n label={{$:/temp/quickConnectSearch/type}}\n view={{$:/temp/quickConnectSearch/view}} />\n </$button>\n</td>\n<td>\n <$list\n filter=\"[<item>is[tiddler]]\"\n emptyMessage=<<nonExistentItem>>>\n <$view tiddler=<<item>> field=\"title\" />\n </$list>\n</td>\n\\end\n\n\\define hidePopup()\n<$macrocall $name=\"showButton\" state=<<qualify>> />\n\\end\n\n\\define showPopup()\n<$set name=\"additional-classes\" value=\"tmap-active-button\">\n <$macrocall $name=\"showButton\" state=\"\" />\n</$set>\n<$set\n name=\"searchFilter\"\n filter=\"[field:title[$:/state/tmap/tid-toolbar]has[re-filter]]\"\n value=<<regexSearchFilter>>\n emptyValue=<<normalSearchFilter>>>\n<div class=\"tmap-quick-connect tc-reveal tc-popup\">\n <div class=\"tc-drop-down\">\n <div class=\"title\">Create connection</div>\n <table class=\"tmap-quick-connect-search-bar\">\n <tr>\n <td>Type:</td>\n <td>\n <$edit-text\n tiddler=\"$:/temp/quickConnectSearch/type\"\n field=\"text\"\n type=\"text\"\n tag=\"input\"\n default=\"\" />\n <$select tiddler=\"$:/temp/quickConnectSearch/type\" default=\"\">\n <option></option>\n <$list filter=<<tmap \"option\" \"selector.allEdgeTypesById\">>>\n <option>{{!!title}}</option>\n </$list>\n </$select>\n </td>\n </tr>\n <tr>\n <td>Search:</td>\n <td>\n <$edit-text tiddler=\"$:/temp/quickConnectSearch\" type=\"text\" tag=\"input\" default=\"\"></$edit-text>\n <$checkbox\n tiddler=\"$:/state/tmap/tid-toolbar\"\n field=\"re-filter\"\n checked=\"1\"\n unchecked=\"\"\n default=\"\"> regexp\n </$checkbox>\n<!--\n <small>(<$count filter=<<searchFilter>> /> results)</small>\n-->\n </td>\n </tr>\n </table>\n <table class=\"tmap-create-connection-table\">\n <tr>\n <td colspan=\"2\">\n <table class=\"tmap-very-small-list\">\n <$list\n filter=<<searchFilter>>\n variable=\"item\">\n <tr><<searchResults>></tr>\n </$list>\n <tr>\n <$list filter=\"[{$:/temp/quickConnectSearch}regexp[.+]] -[is[tiddler]]\" variable=\"item\">\n <<searchResults>>\n </$list>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n <div class=\"title\">Existing Connections</div>\n <div class=\"tmap-quick-connect-existing-bar\">\n <$select\n tiddler=\"$:/state/tmap/tid-toolbar\"\n field=\"direction\"\n default=\"both\">\n <option value=\"both\">both</option>\n <option value=\"in\">incoming</option>\n <option value=\"out\">outgoing</option>\n </$select>\n <$checkbox\n tiddler=\"$:/state/tmap/tid-toolbar\"\n field=\"filter.links\"\n checked=\"-[[tw-body:link]]\"\n unchecked=\"\"\n default=\"\"> hide links\n </$checkbox>\n </div>\n <table class=\"tmap-connection-table\">\n<!--\n <tr>\n <th></th>\n <th>Tiddler</th>\n <th>Type</th>\n <th></th>\n </tr>\n-->\n \n <$tmap-connections\n filter=<<tmap mergeFields \"$:/state/tmap/tid-toolbar\" \"filter.\">>\n direction={{$:/state/tmap/tid-toolbar!!direction}}\n emptyMessage=<<noConnectionsMsg>>>\n <tr>\n <td title=<<direction>>><<directionSymbol>></td>\n <td><$link to=<<neighbour>>><$view field=\"title\" /></$link></td>\n <td><<edge.type>></td>\n <td>\n <$button\n tooltip=\"Delete this connection\"\n class=\"tc-btn-invisible\">{{$:/core/images/close-button}}\n <$action-sendmessage $message=\"tmap:tm-remove-edge\"\n id=<<edge.id>>\n from=<<edge.from>>\n to=<<edge.to>>\n type=<<edge.type>> />\n </$button>\n </td>\n </tr>\n </$tmap-connections>\n </table> \n </div>\n</div>\n</$set>\n\\end\n\n<$list filter=\"[all[current]is[tiddler]]\"><$list filter=\"[{$:/temp/tmap/state/popup/quickConnect}prefix<qualify>]\" variable=\"item\" emptyMessage=<<hidePopup>>><<showPopup>></$list></$list>"
},
"$:/plugins/felixhayashi/tiddlymap/media/fullscreen.png": {
"title": "$:/plugins/felixhayashi/tiddlymap/media/fullscreen.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/tiddlymap/media/halfscreen.png": {
"title": "$:/plugins/felixhayashi/tiddlymap/media/halfscreen.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/tiddlymap/icon": {
"title": "$:/plugins/felixhayashi/tiddlymap/icon",
"tags": "$:/tags/Image",
"text": "<svg\n xmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n xmlns:cc=\"http://creativecommons.org/ns#\"\n xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n xmlns:svg=\"http://www.w3.org/2000/svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\"\n class=\"tc-image-tiddlymap-button tc-image-button\"\n version=\"1.1\"\n width=\"22pt\"\n height=\"22pt\"\n viewBox=\"0 0 128 128\">\n <defs\n id=\"defs4\">\n <marker\n refX=\"0\"\n refY=\"0\"\n orient=\"auto\"\n id=\"Arrow1Lend\"\n style=\"overflow:visible\">\n <path\n d=\"M 0,0 5,-5 -12.5,0 5,5 0,0 z\"\n transform=\"matrix(-0.8,0,0,-0.8,-10,0)\"\n id=\"path3850\"\n style=\"fill-rule:evenodd;stroke:#000000;stroke-width:1pt\" />\n </marker>\n <marker\n refX=\"0\"\n refY=\"0\"\n orient=\"auto\"\n id=\"Arrow1Lstart\"\n style=\"overflow:visible\">\n <path\n d=\"M 0,0 5,-5 -12.5,0 5,5 0,0 z\"\n transform=\"matrix(0.8,0,0,0.8,10,0)\"\n id=\"path3847\"\n style=\"fill-rule:evenodd;stroke:#000000;stroke-width:1pt\" />\n </marker>\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4329\" />\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4321\" />\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4315\" />\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4307\" />\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4299\" />\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4293\" />\n </defs>\n <g\n transform=\"translate(0,-1024.5289)\"\n id=\"layer1\">\n <path\n d=\"m 17.867073,4.5821643 a 3.7249374,3.7249374 0 1 1 -7.449875,0 3.7249374,3.7249374 0 1 1 7.449875,0 z\"\n transform=\"matrix(-6.3328802,0,0,6.2775831,193.9581,1100.3667)\"\n id=\"path4139-1-14\"\n style=\"fill-opacity:1;fill-rule:nonzero\" />\n <path\n d=\"M 77.450496,1064.5069 C 58.849552,1025.9634 15.704158,1023.3858 2.8821873e-7,1034.558 L 0.02388589,1035.2674 C 24.502636,1022.2072 44.810725,1042.1507 60.163934,1074.112 z\"\n id=\"path4337\"\n style=\"fill-opacity:1;stroke-width:0.58181816;stroke-miterlimit:4;stroke-dasharray:none;marker-start:none;marker-end:none\" />\n <path\n d=\"m 12.878637,11.280739 4.75937,-2.7478243 4.759371,-2.7478236 0,5.4956479 0,5.495648 -4.759371,-2.747824 z\"\n transform=\"matrix(4.6545455,0,0,4.6545455,-13.580429,1027.7638)\"\n id=\"path3004\"\n style=\"fill-opacity:1;fill-rule:nonzero\" />\n </g>\n <metadata\n id=\"metadata3772\">\n <rdf:RDF>\n <cc:Work\n rdf:about=\"\">\n <dc:title></dc:title>\n <dc:format>image/svg+xml</dc:format>\n <dc:type\n rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" />\n </cc:Work>\n </rdf:RDF>\n </metadata>\n</svg>\n"
},
"$:/plugins/felixhayashi/tiddlymap/media/surface.png": {
"title": "$:/plugins/felixhayashi/tiddlymap/media/surface.png",
"type": "image/png",
"text": "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"
},
"$:/config/EditTemplateFields/Visibility/tmap.id": {
"title": "$:/config/EditTemplateFields/Visibility/tmap.id",
"text": "hide"
},
"$:/language/Buttons/TiddlyMap/Caption": {
"title": "$:/language/Buttons/TiddlyMap/Caption",
"text": "tiddlymap"
},
"$:/language/Buttons/TiddlyMap/Hint": {
"title": "$:/language/Buttons/TiddlyMap/Hint",
"text": "Toggle TiddlyMap actions"
},
"$:/plugins/felixhayashi/tiddlymap/misc/macros": {
"title": "$:/plugins/felixhayashi/tiddlymap/misc/macros",
"text": "\\define concat(str) $str$\n\n\\define input-text(field, index, default, readonly, class, focus)\n <$reveal type=\"match\" text=\"\" default=\"$readonly$\">\n <$edit-text\n tiddler=<<output>>\n field=\"$field$\"\n index=\"$index$\"\n type=\"text\"\n tag=\"input\"\n default=\"$default$\"\n focus=\"$focus$\"\n class=\"$class$\" />\n </$reveal>\n <$reveal type=\"nomatch\" text=\"\" default=\"$readonly$\">\n <input type=\"text\" value=\"$default$\" readonly=\"true\" disabled=\"true\" />\n </$reveal>\n\\end\n\n\\define input-button(field, index, default, default, label:\"Proceed\")\n <div class=\"tmap-button-wrapper\">\n <$button>$label$\n <$action-setfield $tiddler=<<output>> $field=\"$field$\" index=\"$index$\" $value=\"$default$\" />\n </$button>\n </div>\n\\end\n\n\\define input-textarea(field, index, default, default, class, focus)\n <$edit-text\n tiddler=<<output>>\n field=\"$field$\"\n index=\"$index$\"\n autoHeight=\"no\"\n type=\"text\"\n tag=\"textarea\"\n default=\"$default$\"\n class=\"$class$\"\n focus=\"$focus$\" />\n\\end\n\n\\define input-checkbox(field, index, readonly, default)\n <$reveal type=\"match\" text=\"\" default=\"$readonly$\">\n <$checkbox\n tiddler=<<output>>\n field=\"$field$\"\n index=\"$index$\"\n checked=\"true\"\n unchecked=\"false\"\n default=\"$default$\" />\n </$reveal>\n <$reveal type=\"nomatch\" text=\"\" default=\"$readonly$\">\n <input type=\"checkbox\" value=\"$default$\" readonly=\"true\" disabled=\"true\" />\n </$reveal>\n\\end\n\n\\define input-multi-checkbox(selectFilter, invert:\"no\", default)\n <div class=\"tmap-no-stretch\">\n <$list\n filter=\"$selectFilter$\"\n emptyMessage=\"– This list contains no items –\">\n <$checkbox\n tiddler=<<output>>\n tag=<<tmap \"splitAndSelect\" \"|\" \"0\">>>\n <$view\n tiddler=<<tmap \"splitAndSelect\" \"|\" \"1\">>\n field=\"title\" />\n </$checkbox><br />\n </$list>\n </div>\n\\end\n\n\\define input-select(field, index, selectFilter, default, nochoice)\n <$select\n tiddler=<<output>>\n field=\"$field$\"\n index=\"$index$\"\n default=\"$default$\">\n <$set name=\"nochoice\" value=\"$nochoice$\">\n <$list filter=\"[<nochoice>regexp[.+]]\">\n <option value=\"\"><b><<nochoice>></b></option>\n </$list>\n </$set>\n <$list filter=\"$selectFilter$\">\n <option value=<<tmap \"splitAndSelect\" \"|\" \"0\">> >\n <$view tiddler=<<tmap \"splitAndSelect\" \"|\" \"1\">> field=\"title\" />\n </option>\n </$list>\n </$select>\n\\end\n\n\\define input-radio(field, index, selectFilter, default)\n <$list filter=\"$selectFilter$\">\n <$radio\n tiddler=<<output>>\n field=\"$field$\"\n index=\"$index$\"\n value=<<tmap \"splitAndSelect\" \"|\" \"0\">>>\n <<tmap \"splitAndSelect\" \"|\" \"1\">>\n </$radio><br />\n </$list>\n\\end\n\n\\define tmap-row(title, field, index, type, descr, note, label, default, readonly, reset, selectFilter, nochoice, invert, class, focus)\n <tr>\n <td class=\"tmap-title\">$title$:</td>\n <td>\n <<$type$\n field:\"$field$\"\n index:\"$index$\"\n readonly:\"$readonly$\"\n default:\"$default$\"\n label:\"$label$\"\n invert:\"$invert$\"\n selectFilter:\"$selectFilter$\"\n nochoice:\"$nochoice$\"\n focus:\"$focus$\"\n class:\"$class$\">>\n <$reveal type=\"match\" text=\"true\" default=\"$reset$\">\n <$button>reset\n <$action-setfield $tiddler=<<output>> $field=\"$field$\" $index=\"$index$\" $value=\"$default$\" />\n </$button>\n </$reveal>\n </td>\n <td>\n <span class=\"tmap-description\">$descr$</span>\n <$reveal type=\"nomatch\" text=\"\" default=\"$note$\">\n <div class=\"tmap-note\">''Note:'' $note$</div>\n </$reveal>\n </td>\n </tr>\n\\end\n\n\\define visConfiguration(inheritedList, extensionField, styleName:\"style\")\n <fieldset><legend>Visjs configurations ($styleName$)</legend>\n <div class=\"tmap-flash-message tmap-info\">\n Only config items that you actually changed have an effect on\n the graph. Other options are visible, yet, inactive.\n </div>\n <$tmap-config\n mode=\"manage-node-types\"\n inherited=\"$inheritedList$\"\n extension=\"$extensionField$\" />\n </fieldset>\n\\end\n"
},
"$:/plugins/felixhayashi/tiddlymap/misc/defaultViewHolder": {
"title": "$:/plugins/felixhayashi/tiddlymap/misc/defaultViewHolder",
"text": "Default"
},
"$:/plugins/felixhayashi/tiddlymap/graph/nodeTypes/tmap:central-topic": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/nodeTypes/tmap:central-topic",
"description": "The style is applied to the node that you marked as central topic in a map.",
"style": "{\"font\":{\"size\":22,\"color\":\"rgba(0,0,0,1)\"},\"shape\":\"star\"}"
},
"$:/plugins/felixhayashi/tiddlymap/graph/nodeTypes/tmap:neighbour": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/nodeTypes/tmap:neighbour",
"description": "Neighbours are all nodes that are not part of the original set of nodes (\"matches\") but are connected (either outgoing or incoming) to a node of the original set.",
"style": "{\"color\":\"#565656\"}"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Default/filter/edges": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Default/filter/edges"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Default/filter/nodes": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Default/filter/nodes"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Default": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Default",
"config.physics_mode": "false",
"isview": "true"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Live View/filter/edges": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Live View/filter/edges",
"filter": "[prefix[$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes]]",
"text": "\n\n"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Live View/filter/nodes": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Live View/filter/nodes",
"filter": "[field:title{$:/temp/tmap/currentTiddler}]"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Live View": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Live View",
"config.refresh-triggers": "$:/temp/tmap/currentTiddler",
"config.physics_mode": "true",
"config.vis": "{\"physics\":{\"forceAtlas2Based\":{\"springConstant\":0.09}}}",
"config.neighbourhood_scope": "1",
"created": "20150331114808577",
"modified": "20200509212547688",
"type": "text/vnd.tiddlywiki",
"isview": "true"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Graph search/filter/nodes": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Graph search/filter/nodes",
"filter": "[!is[system]search{$:/temp/search}] [!is[system]search:tags{$:/temp/search}] [!is[system]search:text{$:/temp/search}limit[10]]"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Graph search": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Graph search",
"config.refresh-triggers": "$:/temp/search",
"config.neighbourhood_scope": "1",
"config.physics_mode": "true"
}
}
}
{
"suppressedDialogs.dublicateIdInfo": true
}
{
"b7171e14-fd40-41c5-a238-eeb251efb0eb": {
"x": -178,
"y": -274
},
"fe1fff81-c9ca-4471-af45-a1b305adeca8": {
"x": -184,
"y": 104
},
"05d9641c-e5c3-46be-bb21-0248f69d94e7": {
"x": -339,
"y": 250
},
"3b1c7603-5185-4ccd-b11e-e37f4f8bcaf7": {
"x": -85,
"y": 257
},
"3ae89c92-9619-4c57-aa34-8141a9e44d33": {
"x": -79,
"y": 440
},
"2b7fa74d-bdaa-45e9-8516-c23688219dde": {
"x": 235,
"y": 455
},
"afc0ca98-f97f-4ae9-b963-b93c175b83f9": {
"x": 230,
"y": 253
},
"403d6686-ac94-4e79-b138-e48b19f374cd": {
"x": 232,
"y": -63
},
"5641a447-fbe9-4c6c-b6b3-a4d4cc4bd42d": {
"x": 456,
"y": 452
},
"309e00a1-3f84-4d9c-b4ad-48334b7bea31": {
"x": 457,
"y": 260
},
"e60c1096-5815-4128-bc1e-11b92fde55ab": {
"x": 687,
"y": 462
},
"edc2883e-e5bd-49d1-acbd-2144d338e2e3": {
"x": 797,
"y": 307
},
"d202541e-1c93-413e-8deb-91013dea0317": {
"x": 987,
"y": 463
},
"7473806e-8acf-4659-90c0-55887f3e627b": {
"x": 988,
"y": 310
},
"5ccffa2c-7dc4-4cfa-8d7a-c13715251ec4": {
"x": 988,
"y": 146
},
"085c554a-aeb9-4708-8910-c1f688925fed": {
"x": 989,
"y": 675
},
"0020491f-95c8-43fc-89eb-6f32a27b9377": {
"x": 776,
"y": 674
},
"bf786459-36e8-48ea-81d0-570d666d86b3": {
"x": 1428,
"y": -42
},
"78e87608-5370-42c1-a522-334b34a17355": {
"x": 1431,
"y": 137
},
"41f95a89-7081-41fe-8446-5329397b7d82": {
"x": 1432,
"y": 312
},
"529ef60b-cfee-448f-98ce-c69c2be0c74d": {
"x": 1433,
"y": 469
},
"2ea4b5fd-14ac-4b83-b721-79947db1aec2": {
"x": 1920,
"y": 473
},
"b156faa7-0a11-4032-9ecc-9edb81c820ff": {
"x": 1922,
"y": 295
},
"05dfda2e-1601-4c67-b7b1-873b1512402d": {
"x": 1666,
"y": -45
},
"aa9cb143-a2fb-4291-a6fd-50b281e6c8a1": {
"x": 988,
"y": -257
},
"2d0be5dc-eaa5-45da-8e95-61914c8d85f5": {
"x": 1664,
"y": 91
},
"225b02c7-a41c-44a2-9ba2-f5a142e0e9f5": {
"x": 1669,
"y": 298
},
"32a76c63-a60c-4f1a-95ba-bc7a1ed168ea": {
"x": 1675,
"y": 466
},
"eda5a90a-f4f1-414b-8d33-067b88d9f0a3": {
"x": -367,
"y": 439
},
"2d843369-f668-449d-8f9b-dce4e7a4bfce": {
"x": 2193,
"y": 478
},
"709833f6-56cb-4103-8260-2dba947767f5": {
"x": 2408,
"y": 207
},
"7c3e2f71-2650-4fbe-a3f0-660f9541b9b2": {
"x": 2414,
"y": 477
},
"8403733a-0f2f-4d2c-9553-cfda2fe07ce6": {
"x": 2668,
"y": 478
},
"da29317c-e018-49f4-a22e-fce3b977ad2d": {
"x": 2661,
"y": 154
},
"df0bedf2-d1d8-485b-af75-8f21274193c9": {
"x": 2882,
"y": 484
},
"a3585403-20a7-4323-8ce7-8b6c1d3ff346": {
"x": 2874,
"y": 214
},
"c642b810-15f0-46ac-888c-9c1ed6c58135": {
"x": 2664,
"y": 352
}
}
{
"81e88fce-6621-47e3-b078-a2432680c647": {
"x": 150,
"y": -192
},
"ce960f52-d523-430d-ad62-aabe32db4674": {
"x": 374,
"y": -186
},
"c52fe5d1-b4bb-44b2-b993-41cdf9d41487": {
"x": -16,
"y": -36
},
"7d4f471f-6862-4ffc-849e-b937c5a40ed1": {
"x": 152,
"y": -33
},
"4a9fe71d-d2d7-473f-8cb4-28b3a33085ea": {
"x": 403,
"y": -24
},
"efcd90be-61d2-4447-b561-0212b51e6952": {
"x": -88,
"y": 63
},
"8be11735-7d84-4fb1-bfd0-a209f2d50d6f": {
"x": -167,
"y": 184
},
"d98ec350-0e8d-4b12-ae1e-f5d8e9261717": {
"x": -166,
"y": 257
},
"7609b3ad-3e8b-48b2-9eb5-9ca3d72f36e7": {
"x": -167,
"y": 335
},
"fc5d3583-e02c-48d3-bfbb-ccf3ad9c6a8a": {
"x": -406,
"y": 410
},
"37526996-04dc-40ff-bb5f-75855ef24c45": {
"x": -165,
"y": 412
},
"39f7446a-adaf-4325-a17e-6abb9fa02d3d": {
"x": 70,
"y": 413
},
"efc9b3ee-ede6-4d5f-aded-00d01cc637f9": {
"x": -550,
"y": 521
},
"62672b73-ecaf-4ff5-94d1-ede2b1e033ef": {
"x": -349,
"y": 519
},
"c81dcc3e-03d1-405d-9cdd-3a1e30803e92": {
"x": -27,
"y": 498
},
"bc59dc5b-b302-4bf3-bb77-31e3bf9aecf5": {
"x": 110,
"y": 497
},
"b8ec06d8-1010-4137-a6ba-caa9c644ef35": {
"x": 404,
"y": 94
},
"cd26d878-adb1-4144-9837-126bcd3aff73": {
"x": 406,
"y": 215
},
"08f28191-ad61-4b65-bcc9-a6947f509325": {
"x": 409,
"y": 345
},
"57ef7747-7271-4813-8160-0aac66d33d58": {
"x": 409,
"y": 436
},
"0985285c-bcac-4662-a37f-25070f919092": {
"x": 411,
"y": 527
},
"437bf6dc-5031-46b0-9846-267d39f6aaf1": {
"x": 413,
"y": 627
},
"6aff4503-a82b-4336-850f-600a66a4c112": {
"x": 412,
"y": 714
},
"fa5d323b-f9a6-410a-b3a1-69304eab6cf2": {
"x": 409,
"y": 829
},
"4605c223-4d34-4335-8afb-8bc14b1f9244": {
"x": -370,
"y": 1121
},
"f830bc46-790b-472c-81d3-501381b28ca9": {
"x": 417,
"y": 1130
},
"5a42c5e9-98a2-4dad-bebf-a96e2deb475d": {
"x": 1613,
"y": 1063
},
"743693e6-6696-4a18-8d4e-f6f105156288": {
"x": -674,
"y": 1252
},
"2e2901ba-9067-4677-b33c-642447b20d8d": {
"x": -593,
"y": 1252
},
"8b51b230-f0d9-4930-a81e-5242e09e2ba8": {
"x": -467,
"y": 1253
},
"5c4da31e-9917-44e4-806d-b5daa69cdcf0": {
"x": -350,
"y": 1256
},
"5f6a06de-d675-40e0-ba0c-1bcd23cfd38f": {
"x": -164,
"y": 1256
},
"2ceea2d5-590d-4496-afbb-cc18bb26d2c6": {
"x": -543,
"y": 1380
},
"377cd293-28b0-4155-abe8-5f35dfc251eb": {
"x": -549,
"y": 1479
},
"cfbe2269-c9a9-4e89-b7e0-96754ded5c79": {
"x": -761,
"y": 1595
},
"84d3640c-44f6-43ef-9fb0-d99aba71212a": {
"x": -393,
"y": 1629
},
"89544fb3-70a2-4b48-b838-70f62f128f97": {
"x": -762,
"y": 1708
},
"76f0f5bd-8e3d-46f8-8bae-ab9807603f2e": {
"x": -412,
"y": 1725
},
"1919dfc9-ec65-4572-870f-19adb913787c": {
"x": -330,
"y": 1723
},
"7770c471-2c3f-462b-90b4-1fec2f288c28": {
"x": -218,
"y": 1648
},
"c5c3d6f6-32ad-4d78-8475-499c030e81a2": {
"x": -244,
"y": 1712
},
"596ff65f-f3db-4c9f-8088-d57472747c9a": {
"x": -237,
"y": 1594
},
"24b422fa-48b2-499d-acfd-fe0e5d0bc45e": {
"x": -252,
"y": 1539
},
"7f03276d-2154-4f84-9ce3-8e7258aa3cb3": {
"x": -282,
"y": 1486
},
"88459834-08d0-41ab-8c51-e6a491e9e143": {
"x": -360,
"y": 1465
},
"288160be-457b-41b7-bd53-7fdd7f4e3e85": {
"x": -450,
"y": 1471
},
"18b384dc-2cc4-4d16-92a2-65c2b92d60e1": {
"x": -500,
"y": 1588
},
"101fb686-40bb-4102-aebf-d06bd0bf7c46": {
"x": -510,
"y": 1640
},
"6cd698b1-68ac-4ed9-9507-0f647951d8ee": {
"x": -514,
"y": 1701
},
"187347ec-48bf-4e66-8af0-34c64d2a746a": {
"x": -759,
"y": 1793
},
"13f7a6a5-b312-4246-b615-91f0efcef434": {
"x": -761,
"y": 1905
},
"59a51cc3-35d2-480d-a9c7-e8f412b80fcf": {
"x": -756,
"y": 2015
},
"011e96cc-0481-4bd3-ace3-5d261122030e": {
"x": -1033,
"y": 2123
},
"b6dcaa4d-acac-4ba4-8f93-af02a79beed4": {
"x": -788,
"y": 2127
},
"ddc636df-5a65-49e1-9c84-fb81a3aaf1cf": {
"x": -615,
"y": 2105
},
"7ab6c402-c6f0-4f63-bbc1-85854a611d86": {
"x": -511,
"y": 1913
},
"add27d34-d71e-4692-bb44-5babf2fb32e5": {
"x": -300,
"y": 1339
},
"3093d7e8-4c64-488d-9c2f-3e88ca946996": {
"x": -123,
"y": 1354
},
"51234297-711d-421b-aa9c-b8904a0129a9": {
"x": -20,
"y": 1323
},
"a4364064-351b-4fbd-b420-1e0fba89c5d2": {
"x": -18,
"y": 1212
},
"7f20e362-a812-4f44-9c73-1ceac766b957": {
"x": 234,
"y": 1221
},
"b644d3f4-87e8-4c09-b3da-45fd341168be": {
"x": 487,
"y": 1287
},
"9c7417ee-b270-47b9-88c5-5c3120c6808c": {
"x": 551,
"y": 1202
},
"f09af71e-2aa0-4c13-b847-28e6ae8e6acb": {
"x": 777,
"y": 1163
},
"6f9fbdd2-e949-40f3-aa53-17b8533ff4cd": {
"x": 128,
"y": 1128
},
"d79ee75b-75ac-4000-8f98-3c4f5eaae6f3": {
"x": 261,
"y": 1099
},
"61dc29d4-13ea-4591-acf7-301183aac8fa": {
"x": 84,
"y": 1198
},
"204fab00-c2ff-41fe-9c8f-de02ac8bee7f": {
"x": 249,
"y": 1314
},
"39c2d2dc-c6bd-4531-bb61-6de5019ae797": {
"x": 100,
"y": 1261
},
"35355a36-fcb2-4d60-9b3b-3716ba6ecf97": {
"x": 149,
"y": 1314
},
"552dc4ff-06e4-45fe-87d9-9b7441b54c07": {
"x": 219,
"y": 1420
},
"6e999716-8c28-441d-bfe3-e61af4199401": {
"x": 349,
"y": 1416
},
"6291b0b2-5f2b-40b9-a4eb-0becc3f8d2d5": {
"x": 333,
"y": 1265
},
"0b4722e3-d34e-4564-957e-e6faf372407f": {
"x": 366,
"y": 1337
},
"e31cd92a-dedf-4609-9507-21a20bbcdad0": {
"x": 440,
"y": 1406
},
"d09b7069-4c30-4db1-b0bd-aa727be64e23": {
"x": 537,
"y": 1395
},
"89d2d3d7-ef12-4656-b438-603212cacb46": {
"x": 633,
"y": 1357
},
"a6d6ab2c-d98a-4298-9870-725df0431d8a": {
"x": 645,
"y": 1293
},
"fe1c8163-22c0-4fba-a48c-bba88f69088b": {
"x": 617,
"y": 1236
},
"9b0bc68e-1763-4033-bf66-f37a78d84331": {
"x": 714,
"y": 1246
},
"68d43319-bd56-4c09-9a21-4c64d9d74b3d": {
"x": 774,
"y": 1280
},
"9748201c-22a0-4eda-a87f-90aad878e5e6": {
"x": 857,
"y": 1275
},
"59aa1497-f132-418d-90c8-6f98ef33369a": {
"x": 922,
"y": 1226
},
"795e871a-870f-4459-acdc-b7c0677f7526": {
"x": 986,
"y": 1167
},
"e47b953c-986d-4d10-b370-74c2fce6edf5": {
"x": 957,
"y": 1109
},
"49e38a2e-b5d5-4034-b2a6-29f8ab52e5e2": {
"x": 878,
"y": 1067
},
"6ad6e39f-4ddc-4d00-aa19-46fc22f9427e": {
"x": 805,
"y": 1047
},
"08d270d8-b337-4d32-9da7-96462f072016": {
"x": 723,
"y": 1037
},
"408d7993-2366-413a-a17b-34d4b619e29e": {
"x": 625,
"y": 1059
},
"2806029f-8c13-44c3-b002-ade34d5df98a": {
"x": 591,
"y": 1101
},
"9d208e05-5a98-4943-b6a6-cacf0fe26c0e": {
"x": 1364,
"y": 1128
},
"18268289-e4e2-462e-8e11-2b30acf41db8": {
"x": 1446,
"y": 1198
},
"c6dbf5fd-e566-4e57-8507-09c592c7b4f0": {
"x": 1561,
"y": 1210
},
"fb9a9bb9-76d3-403c-8aed-4efe66d06ba5": {
"x": 1692,
"y": 1222
},
"7094c418-369c-48af-bfb5-3c02e10177c7": {
"x": 1824,
"y": 1160
},
"3c482450-3b12-407b-b269-47e6d40e9fb8": {
"x": 1832,
"y": 1053
},
"301a4916-3ca0-4d10-9614-f60939e8d0ed": {
"x": 1723,
"y": 981
},
"6b0c9177-3986-49db-a0be-256f8b2b19fc": {
"x": 1234,
"y": 1057
},
"1083d5cb-a1a3-4a79-a245-7d4f1303c8f2": {
"x": 1199,
"y": 1137
},
"c3729049-daeb-42c6-b88a-3e2e64e456c1": {
"x": 1278,
"y": 1208
},
"228532a5-f78b-4e96-b287-494ffcbb414e": {
"x": 1545,
"y": 1288
},
"6286257c-6bd4-416f-8bee-1228fef1af71": {
"x": 1638,
"y": 1348
},
"927fbbbe-82da-4a2b-9508-6a02fbe6c316": {
"x": 1788,
"y": 1343
},
"6c976bcf-c4cf-47f1-86a1-99b48c52ad41": {
"x": 1860,
"y": 1271
},
"7cdef626-0fca-4e00-92e1-d164943b4c44": {
"x": -385,
"y": 1822
},
"ba2534fc-ee34-42d8-9c39-bd2880498093": {
"x": -998,
"y": 2239
},
"7051563b-2197-4b4c-9eab-4b1f2f51ea1d": {
"x": -1300,
"y": 2127
},
"a265e2ed-fb11-4aaf-a1f1-ebfc6e266e90": {
"x": -1417,
"y": 2255
},
"3dceeed2-de79-48ea-9374-0799a01802f7": {
"x": -642,
"y": 2228
},
"81225ec1-b705-46ea-bd96-4660af8b62e4": {
"x": -960,
"y": 2403
},
"5b1000b1-9a40-4c39-811e-9ff37a36896c": {
"x": -630,
"y": 2298
},
"2958d3b5-b853-4c5d-be58-d98347c8ddcd": {
"x": -1330,
"y": 2539
},
"b5fd853b-63f5-4fdf-8ad9-42fd5f27a236": {
"x": -888,
"y": 2571
},
"417df873-7a58-4473-8b06-7d4ef8ec4cc0": {
"x": -352,
"y": 2524
},
"3b6c566e-cf9e-4ec7-9b87-7d85e6c1d631": {
"x": -203,
"y": 2649
},
"c908cc91-bece-40b0-8b0b-b16516540304": {
"x": -35,
"y": 2666
},
"0d316196-7142-41a9-98e4-6c1f9417a85d": {
"x": -391,
"y": 2677
},
"ec884cb7-7738-4c84-8277-43bb15812bd3": {
"x": -131,
"y": 2764
},
"827681af-6a3d-493d-b16b-ce5f8ccbceef": {
"x": 9,
"y": 2745
},
"060f0ea6-7e1c-45a8-90f4-baef7ab47ab1": {
"x": -547,
"y": 2677
},
"bf58b704-b6bb-427e-b7ae-e1cf03333360": {
"x": -382,
"y": 2762
},
"c4743409-08a6-4137-bde6-22aae0f6847b": {
"x": -88,
"y": 2932
},
"a05bce1c-b7c8-4f86-97d9-c9afcfe4fba4": {
"x": 50,
"y": 2925
},
"39afcae8-f12b-4870-a84b-5ebc21f652ac": {
"x": 69,
"y": 2832
},
"a9bb90a7-0220-4ff6-8ecf-fdd276148dd1": {
"x": 157,
"y": 2828
},
"b81a1a08-b45f-44f2-8b21-e7dc6fb5d8e8": {
"x": 190,
"y": 2789
},
"e14c84e3-a624-4038-8344-79984e38b55c": {
"x": -285,
"y": 2861
},
"d0854ae4-2634-46ed-b6f6-7f9aab4b26f8": {
"x": -295,
"y": 2757
},
"d3558e41-a858-4f2b-a3dd-aff3c930abfa": {
"x": -444,
"y": 3090
},
"32befef6-a8c3-4c7a-bac6-381ed811e641": {
"x": -312,
"y": 3170
},
"6674fc43-9204-4e24-bc1f-d79ca0b1f089": {
"x": -69,
"y": 3206
},
"0f38eee2-d0e8-4fe9-86ab-386bb726abd5": {
"x": -822,
"y": 2400
},
"fa8ebabc-7139-4c65-9d17-cded3ffbdfaf": {
"x": -395,
"y": 2405
},
"fab2d524-1878-4159-a842-323ea16d107e": {
"x": -46,
"y": 2333
},
"403d6686-ac94-4e79-b138-e48b19f374cd": {
"x": -636,
"y": 2490
},
"2ee8cece-2fe3-4b75-8c43-e1fd1da890c8": {
"x": -781,
"y": 2518
},
"b7171e14-fd40-41c5-a238-eeb251efb0eb": {
"x": 0,
"y": 2433
},
"bf786459-36e8-48ea-81d0-570d666d86b3": {
"x": -51,
"y": 2491
},
"0004d4e3-3206-43d0-9f98-d230c0a1dc68": {
"x": -394,
"y": 2628
},
"18967d65-17d7-46a0-93d8-bfb9fac71620": {
"x": -1140,
"y": 2527
},
"a3585403-20a7-4323-8ce7-8b6c1d3ff346": {
"x": -1241,
"y": 2639
},
"27bbfd43-2d95-4b46-9b23-bd6cee7e5797": {
"x": -1076,
"y": 2613
},
"8ce1ad53-a2ea-4082-8b70-9b1de7b52304": {
"x": -757,
"y": 2648
},
"6a2c3bb4-fcad-4497-b21b-f797107f5125": {
"x": -989,
"y": 2773
},
"6f73e21d-a201-4ef4-a803-37a9db0b7c7f": {
"x": -673,
"y": 2868
},
"a0466c29-5302-4c8e-b5ba-f6cbb5d66d8e": {
"x": 300,
"y": 2569
},
"b560c882-cb61-42eb-95fd-26ac475ef151": {
"x": -151,
"y": 1799
},
"0a3b1439-6271-4e53-be35-da45f495a0c5": {
"x": -52,
"y": 2162
},
"bd6d5562-c336-4a8e-b572-0cf410e41036": {
"x": -1498,
"y": 2158
},
"9ffdef68-165a-45c2-bacb-681b8cd69870": {
"x": -1601,
"y": 2192
},
"2c50d6e8-f199-4488-9ce9-6824a7562ec0": {
"x": -1627,
"y": 2265
},
"6ace2a08-fb66-44e2-89ac-590491cbf0f5": {
"x": -1614,
"y": 2345
},
"8261d716-0988-4d97-9b4b-128d37e49cfb": {
"x": -1586,
"y": 2411
},
"be505754-44e3-42ea-b581-b4699fbcc693": {
"x": -1474,
"y": 2450
},
"075773ee-42e7-44a2-8d1b-032ee78c8077": {
"x": -1390,
"y": 2441
},
"790cdb0b-46c7-41de-9935-f35abacb87e9": {
"x": -1306,
"y": 2420
},
"7b63d102-edba-43b1-a12e-906c8f332d01": {
"x": -1251,
"y": 2378
},
"9f116d64-a0a8-49d8-b3dd-222f8e6efb1c": {
"x": -1221,
"y": 2331
},
"1ff9a572-f0be-4889-a4c8-25d41a56cc9f": {
"x": -1213,
"y": 2268
},
"4e958218-4979-483d-8cc0-c16e3abd5789": {
"x": -1210,
"y": 2223
},
"6e6dd97a-b267-4192-8b09-a7aac471b8a0": {
"x": -1620,
"y": 2542
},
"81cb8da3-598e-4cba-b27f-6e890fdf1aa6": {
"x": -1627,
"y": 2667
},
"f5c3c878-200d-4930-a6b2-ed723acfdaa2": {
"x": 1103,
"y": 1123
},
"99b009aa-bb64-44b8-87c3-31a460b60b83": {
"x": 1105,
"y": 1341
},
"b4980acb-6e23-4208-89f9-e7bd6d69150d": {
"x": 885,
"y": 1395
},
"bcbaa2cc-280f-4be6-885b-19d2225ea130": {
"x": 805,
"y": 1523
},
"c44327eb-4b54-4956-bcf6-e157a7475bcc": {
"x": 930,
"y": 1523
},
"d98dde9d-4a19-4f0c-9eed-ea33c7ac94ae": {
"x": 1106,
"y": 1485
},
"f432eda3-3c74-4b6d-8932-514e69e07e8b": {
"x": -1452,
"y": 2666
},
"4c1674cb-ca5b-4881-89ab-2322d6c6040f": {
"x": -1453,
"y": 2809
},
"7a34c27a-3e33-45f5-a3a7-a5cc468a0490": {
"x": -354,
"y": 2125
},
"8fd85621-3827-40dc-ba2f-6614aa691def": {
"x": -320,
"y": 1939
},
"6d7d3151-48b9-43c5-a01c-0b08903e63cf": {
"x": -224,
"y": 2031
},
"ecefe0e4-e184-4714-aca1-8c8e3713185b": {
"x": -95,
"y": 2037
},
"f7cfe813-241e-4ead-9001-8e155ca7435b": {
"x": -43,
"y": 2083
},
"f62a9033-0e48-48b2-bd9d-6912ad00cf9d": {
"x": -37,
"y": 2140
},
"305860c6-93d9-4faa-be4e-9925d8304fa2": {
"x": -66,
"y": 2201
},
"20526ff4-dddf-464b-b614-49a8e87c5f93": {
"x": -126,
"y": 2238
},
"e2203486-6448-4d42-9611-a244493187db": {
"x": -220,
"y": 2237
},
"8615dce1-9358-41b6-82cd-8c40feda6f0c": {
"x": -129,
"y": 1978
},
"7d1e4734-c0b9-4b3b-aa3b-11ba7358fa92": {
"x": 148,
"y": 1944
},
"bad606f3-ed4d-4f8a-b208-1fc2ab919969": {
"x": 141,
"y": 2001
},
"8e03f749-c775-4d22-a8c7-58e41f4f5e48": {
"x": 12,
"y": 1920
},
"12539c29-823e-4b89-86d4-b389367338c2": {
"x": 93,
"y": 2056
},
"b8e08b7f-bdad-4245-9905-755c528a015c": {
"x": -1163,
"y": 1943
},
"0206aa74-01b2-495a-a773-83308a22d685": {
"x": -1006,
"y": 1864
},
"388438e9-493b-46c3-a81f-890076e95852": {
"x": -1139,
"y": 1851
},
"ef97c05a-3549-4f06-9533-e40e2d176be7": {
"x": -1094,
"y": 1987
},
"86434099-83ea-46d4-b4f7-3719d92641ba": {
"x": -1223,
"y": 1853
},
"535c04b0-a4bb-48e5-ab97-4e1af53e8dc4": {
"x": -1311,
"y": 1887
},
"7178000e-8e2b-4475-a9a9-a535e2d46b18": {
"x": -1338,
"y": 1969
},
"325b9eca-e37f-42a0-a422-5c1de27a36fb": {
"x": -1301,
"y": 2012
},
"633b0a5c-e8c0-46fb-8094-741785705ee9": {
"x": -917,
"y": 1812
},
"17b88e65-3877-488e-82ad-f02e6d7a8f32": {
"x": -990,
"y": 1768
},
"6d1938d6-8a61-48be-8e88-22eab53c9ce2": {
"x": -1077,
"y": 1778
},
"579ce5b2-b7f5-41f3-bf15-6ebd04629564": {
"x": -1175,
"y": 1659
},
"23c9e7a0-8b3b-4bed-8a72-1114806a3dfe": {
"x": -1281,
"y": 1705
},
"16f70b5f-5c18-4b48-8bba-c9762f639b4b": {
"x": -1332,
"y": 1775
},
"b662ead7-41fe-4ccf-9233-837b39bcc1b5": {
"x": -1423,
"y": 1776
},
"3c936e08-76e8-4b61-b4e0-a92d0777d267": {
"x": -1465,
"y": 1827
},
"b8cf78f6-ae91-43e4-b22c-4e9d59427cad": {
"x": -1492,
"y": 1890
},
"4947841d-9a62-4287-bf3e-934e56042365": {
"x": -1464,
"y": 1942
},
"709833f6-56cb-4103-8260-2dba947767f5": {
"x": 96,
"y": 2660
},
"a7558524-1fd4-43f9-859a-cc9bdfc550b3": {
"x": -1230,
"y": 2924
},
"346e634f-c87c-4754-8b50-7f18f6107ea1": {
"x": -1301,
"y": 2980
},
"fca04566-faa7-4a2e-8c5c-bc187fab3083": {
"x": -1425,
"y": 3032
},
"a7c7ed4c-b9df-4e51-9b27-490c1632754e": {
"x": -1553,
"y": 3020
},
"d32ef5ec-4bfa-4df0-8f76-d7a8a4d5ddb7": {
"x": -1632,
"y": 2932
},
"7b123c84-bcb8-4ee7-9563-0dc30c724423": {
"x": -1722,
"y": 2900
},
"3d8a85c7-879a-482f-a8d0-d1dd35e0260e": {
"x": -1612,
"y": 2814
},
"b884471c-763e-4e4b-b5d0-9b383c1fe191": {
"x": -1783,
"y": 2711
},
"f06c05e8-7dfd-492a-8744-a008d61593c6": {
"x": -1773,
"y": 2620
},
"03024041-b7a5-4847-b446-5cfd0b5eec83": {
"x": -1712,
"y": 2748
},
"d9cb98d2-130f-4e1f-af46-6355c4683a93": {
"x": -1624,
"y": 2756
},
"10afca18-7071-4b54-ae07-b8d592a48581": {
"x": 367,
"y": 2408
},
"2e4326a4-8739-4d51-b76c-887fad792401": {
"x": 349,
"y": 2501
},
"aa9cb143-a2fb-4291-a6fd-50b281e6c8a1": {
"x": 532,
"y": 2476
},
"33cf8d9d-16d1-4c9a-889e-b50ea309ecf5": {
"x": 301,
"y": 2361
},
"47e9654e-6903-4499-932f-332899747a5b": {
"x": 563.5333333333359,
"y": 2493.524375000001
},
"05dfda2e-1601-4c67-b7b1-873b1512402d": {
"x": 663,
"y": 2370
},
"b68cf080-634a-4a54-a8a1-888a8ca2850d": {
"x": 728,
"y": 2478
},
"a44dae32-cbcc-4a1c-9251-42284b89eca0": {
"x": -631,
"y": 2668
},
"5ccffa2c-7dc4-4cfa-8d7a-c13715251ec4": {
"x": -507,
"y": 2773
},
"da29317c-e018-49f4-a22e-fce3b977ad2d": {
"x": -611,
"y": 2798
},
"5726a00d-6865-4322-a789-59381705e013": {
"x": -493,
"y": 2283
},
"571bb9d5-7e84-43e5-a873-a39dbf04dc07": {
"x": -299,
"y": 2289
},
"eff9bce6-fa59-470c-8499-f8dde2dfe738": {
"x": -238,
"y": 2345
},
"a893163b-b26d-4d58-b005-39ae217b8bb7": {
"x": -411,
"y": 2238
},
"34df0ec1-eb62-4cf0-92da-12c4f9a9c9a8": {
"x": -2,
"y": 2229
},
"50adb8b6-ffa6-44bd-b0ec-b039ad98b2eb": {
"x": 87,
"y": 2230
},
"fdbf9908-5f10-46f1-84f7-42397a6b9639": {
"x": 159,
"y": 2255
},
"182f16f4-2410-42d9-9512-abae54889d0b": {
"x": 193,
"y": 2311
},
"3861948c-c4a0-4513-ae90-8829d222355a": {
"x": 161,
"y": 2359
},
"8d3aba88-2740-4738-a30d-88ae8ec124d0": {
"x": 54,
"y": 2385
},
"2d0be5dc-eaa5-45da-8e95-61914c8d85f5": {
"x": 729,
"y": 2273
},
"28660ec8-ae5c-4e7e-af11-b8d459d6fd8b": {
"x": 846,
"y": 2431
},
"a69f5b15-159d-417e-a3d5-06c7ac80f54b": {
"x": 123,
"y": 2600
},
"029b540c-1f4f-4339-8978-2ba49b96fd00": {
"x": 172,
"y": 2538
},
"6ebab9a0-abb0-4327-be78-5916297ebcf6": {
"x": 44,
"y": 2603
},
"3aa2a508-d7e1-4be7-83ab-ad0f37231d7b": {
"x": -57,
"y": 2582
},
"e44bb4bf-3442-4f45-83c6-e9cbb77deacb": {
"x": 279,
"y": 2656
},
"1bba8efe-61d1-4df6-a07b-f72392139aee": {
"x": 341,
"y": 2724
},
"9ac2ac1d-43a1-4381-a804-0b52410788e0": {
"x": 181,
"y": 2749
},
"8cbefbbb-3673-486d-83ef-78ec1a015ba8": {
"x": -1153,
"y": 2843
},
"4aed4290-2335-4869-842f-b6e0864b48f4": {
"x": -1115,
"y": 2903
},
"1c033314-55fb-4739-9940-c1f3b84b50f2": {
"x": -1026,
"y": 2937
},
"29917d9b-8f42-4491-a0b7-579b7d07e945": {
"x": -935,
"y": 2922
},
"f66f127a-55fe-434d-a712-6ef0d7814002": {
"x": -876,
"y": 2899
},
"f0286114-3513-42d0-8110-aa4033a41af1": {
"x": -827,
"y": 2781
},
"b2d521a7-e05e-4d8f-b379-d11d5d0ccdf6": {
"x": -833,
"y": 2851
},
"1912f0b4-aa62-4fb0-9bcf-bc706a51ecc0": {
"x": -764,
"y": 2958
},
"d05aca4d-a7db-403d-8b22-9d39b2d486a1": {
"x": -717,
"y": 3039
},
"e6b1826d-ee69-463b-bfc3-5fbfcefff975": {
"x": -647,
"y": 3001
},
"a4ef82f3-e5fb-4bd2-ba61-e0416d66deba": {
"x": -516,
"y": 2916
},
"24536b2b-9038-4982-9179-a2da0b5962da": {
"x": -486,
"y": 2864
},
"b1189540-c697-47d6-9fde-a532a7dea98b": {
"x": -569,
"y": 3033
},
"46d5cfab-4298-4391-b8c4-5a475fcb4a52": {
"x": -474,
"y": 3032
},
"2f64a681-efa6-4f8b-969a-321f23145531": {
"x": -712,
"y": 2408
},
"ee3cd6cb-ef12-4cb5-ae6d-393bacdf17f1": {
"x": -676,
"y": 2377
},
"1fac7259-b225-4e90-9432-90b4232827bb": {
"x": -619,
"y": 2406
},
"0764d046-8219-4353-874a-ad5cd8f3dccc": {
"x": -559,
"y": 2424
},
"41e06046-ef98-4d50-b32b-127f3942c0dd": {
"x": -517,
"y": 2458
},
"2d604194-784e-4142-8531-d8c133d4c29a": {
"x": -479,
"y": 2493
},
"5c288642-fabe-40b2-94ed-78c8baf6cb25": {
"x": -518,
"y": 2525
},
"ed927b9a-0547-40b7-9882-e246eeb42133": {
"x": -608,
"y": 2537
},
"4df17f54-9915-412f-b25b-20facdf21d0d": {
"x": -686,
"y": 2528
},
"0428a02e-2133-4930-9ee5-165830af0cb3": {
"x": -752,
"y": 2472
},
"b9a64d1e-6083-450a-8e6f-5422995ff168": {
"x": -1299,
"y": 2722
},
"7fd759ca-a101-4b3f-ab3b-c408e6e74d8b": {
"x": -1173,
"y": 2725
},
"a577ffdc-b763-480c-beb7-a2957461adee": {
"x": -1081,
"y": 2709
},
"574cb164-65cd-470a-af49-50d7713320da": {
"x": -1009,
"y": 2697
},
"97ba4ebd-d3af-4f04-bfeb-bbfbc4d92711": {
"x": -910,
"y": 2675
},
"bf8c2db9-b15e-47de-9bb5-98719b65bfd7": {
"x": 18,
"y": 3103
},
"2a3cad39-fb91-4a84-9b97-f1c70c5a9d84": {
"x": 151,
"y": 3133
},
"e40faee3-e4ce-4a85-a312-3a3fa3098d6c": {
"x": 82,
"y": 3260
},
"ac88ae17-9f11-4bf1-8a42-950b3067f610": {
"x": -515,
"y": 3207
},
"9c242f36-946c-421e-ac2d-437a32ef191e": {
"x": -529,
"y": 3278
},
"6ad45b33-8146-4fcc-9b23-8476f3c90b25": {
"x": -440,
"y": 3329
},
"f1819301-1d58-4018-97a3-c4c58c41bf76": {
"x": -212,
"y": 3302
},
"7637b5ad-a4c4-402b-a210-a33c00fb471a": {
"x": -42,
"y": 3028
},
"eda5a90a-f4f1-414b-8d33-067b88d9f0a3": {
"x": 217,
"y": 3501
},
"f706533e-7099-48e6-b0c3-0ef2bd4f4987": {
"x": 270,
"y": 3336
},
"c831249d-6e4c-44ff-bff9-c4bdaab93117": {
"x": 282,
"y": 3156
},
"6640db2a-c333-41ac-8559-b3aff22bafe0": {
"x": 244,
"y": 3063
},
"3dbbf2a0-fc3d-49c2-b144-5e2ccffab374": {
"x": 1000,
"y": 2273
},
"0d0106c5-2614-4589-9193-833e6ecdcbc5": {
"x": 1000,
"y": 2439
},
"b72b4e82-0827-48b2-a6cd-146c7f5ed918": {
"x": 997,
"y": 2536
},
"52968276-7b66-423f-9073-1989e98af16d": {
"x": 1239,
"y": 2709
},
"36b4c625-f4ad-4ed6-93ba-b89c7c4253c4": {
"x": 1114,
"y": 2580
},
"b18e798c-dd9f-48b0-8351-ac5004ca6370": {
"x": 996,
"y": 2574
},
"47ffa234-a4d2-4e54-8017-febcd62a82ca": {
"x": 994,
"y": 2706
},
"880de265-b6e9-4109-9f42-05489b010b1c": {
"x": 993,
"y": 2843
},
"99faf892-a8d3-48e2-9897-d32527637508": {
"x": 1246,
"y": 2845
},
"f49f72a3-d3b9-4418-90db-fde8b13f89fc": {
"x": 993,
"y": 2982
},
"069b657a-e3a5-4194-b68d-d9f86d4ca32b": {
"x": 991,
"y": 3165
},
"3e8f8d07-3d60-4387-aa11-f01a80aad595": {
"x": 742,
"y": 3184
},
"95d484ea-f1b3-4e7f-b60e-1481023f2101": {
"x": 791,
"y": 3283
},
"4ce199c1-9b60-4c2b-9cb3-b6da0f777c73": {
"x": 878,
"y": 3358
},
"7a042026-0ed9-4a14-a8ac-06ee62e3658a": {
"x": 982,
"y": 3357
},
"a7a5898d-c80e-40c7-9b20-ec99bc62dec0": {
"x": 1083,
"y": 3347
},
"2b791e63-42dc-4297-8c7d-f62f298eaad6": {
"x": 1160,
"y": 3332
},
"443bdb0e-7d85-4f86-9f74-ae8e2e289121": {
"x": 1415,
"y": 3395
},
"05e9c6ef-3cbb-4213-b4e7-fd4dd68cad50": {
"x": 1322,
"y": 3204
},
"b548c327-0be7-4a5b-b05c-90b41a8f8868": {
"x": 1306,
"y": 3100
},
"36a59603-b1a1-4a6b-8a7a-f33276f13251": {
"x": 1461,
"y": 3279
},
"ee4d61ee-4790-471a-bcc9-887e2abceafd": {
"x": 1511,
"y": 3211
},
"01da3b5e-d2d7-42a1-8e80-b9b2a9dac8bb": {
"x": 1458,
"y": 3146
},
"6fb664f9-a911-46e8-a860-70de5c4d191e": {
"x": 1425,
"y": 3043
},
"471dbad6-f5d1-47fb-9f3d-11a8bc9089ad": {
"x": 727,
"y": 2607
},
"4b685e18-4dd9-4802-95e1-8951f24aca28": {
"x": 730,
"y": 2711
},
"3b449eac-c52e-4781-addf-d3e1cb0a81b2": {
"x": 731,
"y": 2832
},
"05d9641c-e5c3-46be-bb21-0248f69d94e7": {
"x": 1452,
"y": 1945
},
"fe1fff81-c9ca-4471-af45-a1b305adeca8": {
"x": 1529,
"y": 1790
},
"3b1c7603-5185-4ccd-b11e-e37f4f8bcaf7": {
"x": 1632,
"y": 1943
},
"225b02c7-a41c-44a2-9ba2-f5a142e0e9f5": {
"x": 972,
"y": 2156
},
"32a76c63-a60c-4f1a-95ba-bc7a1ed168ea": {
"x": 1177,
"y": 2077
},
"eeaf7869-255a-41a2-bcb9-80c4bb83dae2": {
"x": 1443,
"y": 2578
},
"6c535710-b7a7-4b7c-9eb4-6247b9d05495": {
"x": 1694,
"y": 2580
},
"5fa70266-6f7b-47a1-a85b-636770530929": {
"x": 1567,
"y": 2740
},
"2ce52311-4e29-48e3-82cf-0293891f14e2": {
"x": 1382,
"y": 2727
},
"f5bbd7ee-beba-468c-a1b1-b544c6519678": {
"x": 1802,
"y": 2738
},
"901b70af-c0a9-44ff-bf81-015faadabd3e": {
"x": -177,
"y": 3447
},
"ddc96608-e5a5-4ca9-960d-5cd0e4a70fdf": {
"x": -178,
"y": 3563
},
"3e82c1d2-7873-48ae-9c60-97c06c272b04": {
"x": -184,
"y": 3664
},
"c05ad1af-a79c-48eb-b6ef-4b53abadb084": {
"x": -190,
"y": 3771
},
"46cdd8ce-3c27-4d85-807f-0cecfae493ab": {
"x": -195,
"y": 3880
},
"bb43eb4e-7a72-475a-9003-7d8eaa89f291": {
"x": -426,
"y": 3879
},
"249f83d1-a322-4039-9f47-9813ff3da81a": {
"x": -428,
"y": 4019
},
"a27c63ba-f74c-4c04-a7aa-374436bcf7aa": {
"x": 27,
"y": 3885
},
"c0f31a15-ccd4-42b5-b882-ed8b85f50d95": {
"x": -423,
"y": 4235
},
"7ecc9ad0-4d1e-47d9-b6b3-d64894e1bb59": {
"x": -671,
"y": 4211
},
"43a05a23-8fc6-4b42-8432-106c45aec6cd": {
"x": -1097,
"y": 3759
},
"54761cdf-2b18-46a2-a363-781b7d6607bb": {
"x": -1099,
"y": 3900
},
"a0824041-79f8-40aa-9594-e8657fe1c14c": {
"x": -1101,
"y": 4037
},
"a41f4854-a3b9-46b2-854f-fa5a2a49024d": {
"x": -1099,
"y": 4180
},
"399f771e-a602-4467-9554-8374b2d3b6f6": {
"x": -1096,
"y": 4327
},
"2c274446-2c41-4ba9-a1ef-3fa460f6d2d7": {
"x": -1096,
"y": 4456
},
"f5c72edc-6626-488c-8081-90a211032a6a": {
"x": -886,
"y": 4461
},
"620c23fd-8f78-435e-a51c-b59cb6e29b96": {
"x": -943,
"y": 4564
},
"2635dc4c-705b-48f6-9547-fdb07269b64b": {
"x": -817,
"y": 4563
},
"3c7c3294-65dc-4518-b24f-f5247d6fcd8e": {
"x": -1322,
"y": 4455
},
"bdf862ed-a152-4865-ba7d-fad289bd966a": {
"x": -1341,
"y": 4934
},
"6864a305-b692-4ab0-a853-848edde37e11": {
"x": -1616,
"y": 4623
},
"8c632db8-9a20-4f2a-8242-9fc40dc93b97": {
"x": -1649,
"y": 4543
},
"7c5df318-da0b-4f84-9825-ee621a88e905": {
"x": -1637,
"y": 4463
},
"c36f2d5a-18c5-4d01-b720-48bd33b7cae2": {
"x": -1618,
"y": 4354
},
"e8d1eb12-7371-4747-9d08-d8d938099266": {
"x": -1482,
"y": 4673
},
"5c9e6bbf-d47a-425e-b64f-ccbd173774c7": {
"x": 1679,
"y": 3297
},
"71109cda-71d4-40ca-9faf-75143a16c9e5": {
"x": 1971,
"y": 3229
},
"f0958817-a6f0-4792-8e49-4416f4164aff": {
"x": 1688,
"y": 3396
},
"f78a9916-2b4e-4a06-9421-c8b37755a1e7": {
"x": 1999,
"y": 3347
},
"99140ef6-c460-4191-b711-523f9b14d910": {
"x": 1645,
"y": 3475
},
"8d9d2fb6-f9df-4808-961c-c6c3a02784b0": {
"x": 1968,
"y": 3461
},
"e6b16e3f-abaf-45d8-8ded-66b3e76fc1b6": {
"x": 1918,
"y": 3579
},
"d63ba625-a685-4121-91f7-4fd74970b507": {
"x": 1552,
"y": 3543
},
"ceb8a6f3-d9da-4041-ac87-52cf82159e00": {
"x": 1763,
"y": 3641
},
"81d5d420-9658-4cc9-a285-4eae9dc21cf6": {
"x": 1494,
"y": 3604
},
"36c56260-8f84-4027-a047-04c2964a6c84": {
"x": 1593,
"y": 3696
},
"b3cf2303-b843-4ea2-ad09-6fbd9a77a29c": {
"x": 1430,
"y": 3634
},
"dac6e232-c3ad-4812-bcd6-02fe722341ad": {
"x": 1507,
"y": 3762
},
"8864dc80-b0d8-45c9-9bbd-3d5b8a24de76": {
"x": 1302,
"y": 3610
},
"ce1b0a4d-b11c-413a-afd4-f5e146f4c2a0": {
"x": 1137,
"y": 3693
},
"3ea0f09f-161e-42b7-a9a2-4c701090c586": {
"x": 1178,
"y": 3772
},
"15b82c0e-4274-4b65-8112-9ba52f06e682": {
"x": 1467,
"y": 3815
},
"a04ad52e-820d-4436-9c89-d9c486dbb55a": {
"x": 1327,
"y": 3793
},
"ca2b2177-dfc0-4c36-9e71-8ddad4f0eab4": {
"x": 1368,
"y": 4021
},
"f6c89e9c-d7f8-4f27-a1f9-ebd9fd7c70a1": {
"x": 1212,
"y": 3998
},
"c66b0abb-d09f-4058-b307-ec7266843363": {
"x": -1243,
"y": 4326
},
"21402674-bef0-480b-af67-7c5852eae29f": {
"x": -1247,
"y": 4415
},
"3a8ec257-485e-40e8-81d2-6c8c70f63fd3": {
"x": -1954,
"y": 4684
},
"59f525a2-148a-47dc-8a38-99c6dc6651e2": {
"x": 880,
"y": 3481
},
"9cea6dec-018d-47eb-bdf6-5ca379bacb30": {
"x": -687,
"y": 3480
},
"1d0b4a57-b3a2-4793-826a-b35f7c855d5b": {
"x": -652.368454609642,
"y": 3685.685323796267
},
"9c2a2017-55b8-46d5-a4fa-96f842ca5bdb": {
"x": -689,
"y": 3592
},
"e467d508-33a0-4638-864f-4be88d8a544c": {
"x": -686,
"y": 3712
},
"0183c282-74db-4a22-b691-9710ae1ba73e": {
"x": 1471,
"y": 4138
},
"8a5540d0-8257-42d1-9608-b9ae7554bac0": {
"x": 1511,
"y": 4309
},
"0116c2da-1228-499d-9779-2d6239d35cc4": {
"x": 1531,
"y": 4471
},
"24c9052b-1fcc-4ce4-a9ca-2d243127395a": {
"x": 533,
"y": 2700
},
"6f261764-1250-473b-9fd8-e4acfcf66f6f": {
"x": 538,
"y": 2808
},
"9c4a640a-3fe1-4ee0-877d-9b21d4563ad9": {
"x": 540,
"y": 2926
},
"50a34468-8386-4f3d-8aeb-f34c1ddda438": {
"x": 1204,
"y": 4425
},
"53a3d5f2-c4f0-413d-9edd-b9550b4d8901": {
"x": 899,
"y": 4430
},
"2326dc45-ae9a-4d19-8cb4-e8ab615d1a3f": {
"x": 852,
"y": 3905
},
"4aec0c29-8fd5-4d6c-b96a-9a041d30b8b3": {
"x": 609,
"y": 4403
},
"557a6ccc-d962-4e34-8ffe-15a08c3e8955": {
"x": 379,
"y": 4685
},
"aeeff7f8-5f08-488c-9ce7-317cef43aea1": {
"x": 490,
"y": 4542
},
"39d365c8-d31f-44eb-b1a5-5acb92344d1f": {
"x": 544.5546666666672,
"y": 3181.890800000001
},
"11b0592e-ec2d-4493-8d69-b8b7635532aa": {
"x": 899,
"y": 4665
},
"52e43557-e128-49a8-8e58-9d93c14e7d6f": {
"x": 691,
"y": 4669
},
"dcc01a12-6373-4314-8657-5489847f0ef6": {
"x": 1539,
"y": 4665
},
"6f72a4c3-8998-40f9-9ee3-0c608883ca6d": {
"x": 1092,
"y": 4659
},
"2d17b6c1-8c31-4679-9a52-aca45b722d99": {
"x": 366,
"y": 4804
},
"b7e08534-0658-4d45-b345-f62a20577953": {
"x": 1538,
"y": 4798
},
"30c3ef39-5e8d-4a5f-893a-d6cbedd3fe26": {
"x": 1540,
"y": 4958
},
"964f1120-2dc4-477d-8fbe-fc97f445e229": {
"x": 369,
"y": 4957
},
"93890bd4-7c69-4168-a2cf-c96bdc085714": {
"x": 1537,
"y": 5091
},
"646ba57c-2301-47ea-b2aa-8bb9d565b288": {
"x": 372,
"y": 5123
},
"09e792f3-da64-4bdb-86eb-883a37cb5966": {
"x": 376,
"y": 5294
},
"e6fc5e58-c2de-4339-97a6-f2d9f5c5d5d1": {
"x": 1537,
"y": 5243
},
"1acf9f9b-3689-4d9f-9bf1-c5ee83bbb29c": {
"x": 1541,
"y": 5377
},
"620d80d1-e1e0-4a6d-b834-7bd73d0ed480": {
"x": 1548,
"y": 5488
},
"10cdb290-535f-4aba-84fe-9b435535857f": {
"x": 1549,
"y": 5628
},
"d8356f4d-5dbb-4aa4-a51b-4e6725eacbbc": {
"x": 1553,
"y": 5761
},
"6acc2860-29ec-4340-93cc-5fed184191f3": {
"x": 1553,
"y": 5871
},
"52bed66e-c84b-494a-b67a-5ff596e2ae83": {
"x": 1554,
"y": 5988
},
"82e85bd2-3f57-4420-8ac5-8d25098bf247": {
"x": 1813,
"y": 5984
},
"de9e0dbd-33e7-4e35-bad1-8a12175b594c": {
"x": 1815,
"y": 6119
},
"d12edcff-f57b-47df-b2e3-2ad9a03d5428": {
"x": 1306,
"y": 5989
},
"dc709011-9f9c-4a94-ae91-4997d51668d0": {
"x": 1817,
"y": 6266
},
"3b1329b2-3170-44d4-88c4-3d1cec50d50d": {
"x": 1821,
"y": 6372
},
"25ef5cc5-b031-4a88-9af1-01326370e11e": {
"x": 1818,
"y": 6428
},
"65e59c68-1fc7-4545-9d41-5371c1b5987a": {
"x": 1819,
"y": 6561
},
"2d5d7af9-f298-453e-b8dd-0d228c59b36d": {
"x": 1820,
"y": 6692
},
"84751657-45b8-490a-a110-8998da4732e7": {
"x": 1823,
"y": 6838
},
"ded12d8f-557a-42e2-8f6f-fc514745bbce": {
"x": 1824,
"y": 6971
},
"0c479f39-0584-48a9-88b1-e7063e9f8b99": {
"x": 1826,
"y": 7115
},
"34550ce3-2bfc-4b8a-bcd9-e770c8b3c771": {
"x": 1826,
"y": 7256
},
"08554cf7-f976-4fb0-8003-4706f89e2bb1": {
"x": 1824,
"y": 7377
},
"5b2a7339-71ad-4e86-bcb0-ad6337bc4132": {
"x": 1827,
"y": 7484
},
"0e99e799-6d8f-4f66-8c48-3df1bc9511e1": {
"x": 1826,
"y": 7634
},
"a21e4cdf-7322-4e3d-a7c5-66cb1440c1dd": {
"x": 1828,
"y": 8158
},
"08f71737-6ad1-4dac-99b9-7e146c8b76da": {
"x": 1831,
"y": 8337
},
"ff901eb2-f86e-4cc0-a237-fe5d1bda6089": {
"x": 1460,
"y": 8153
},
"9ac44e3b-cb54-4c2f-86e2-bf19a3467fae": {
"x": -280,
"y": 5202
},
"e8ad9f73-fdc1-4b66-996e-c3322a601111": {
"x": -637,
"y": 5194
},
"5697042a-5af0-4e63-a932-0ce720864d41": {
"x": -282,
"y": 5362
},
"cc1ef3bd-67b5-4044-8e7c-e1aa5860b74c": {
"x": 1600,
"y": 3923
},
"88981c08-d91b-42bf-8f40-b52be7d2ab28": {
"x": 1746,
"y": 4015
},
"2b4bdcc7-7606-4ccf-b7ce-7b62dea2210e": {
"x": 1875,
"y": 4121
},
"aa98390d-29c1-488b-88ec-7f54875054f8": {
"x": 1947,
"y": 4234
},
"7843c024-8da7-4566-b1db-f5a11610f6ba": {
"x": 1993,
"y": 4337
},
"f7a24fca-49f3-4bfe-9f1a-5dcf1cb4b879": {
"x": 2039,
"y": 4451
},
"9d4c9abe-261c-4ce2-9569-980d0dea2fe5": {
"x": 2068,
"y": 4583
},
"2dd3396c-3070-42b7-a9ad-345d3a7bffef": {
"x": 2090,
"y": 4714
},
"973bf513-9e21-4198-8d95-79107323533a": {
"x": 2114,
"y": 4822
},
"8da75702-e015-4930-869b-342857af0a1b": {
"x": 2131,
"y": 4965
},
"fc263beb-4f8f-4031-a832-a5c996b0b7ae": {
"x": 2148,
"y": 5077
},
"e3d791d9-c59f-4c4f-92b0-be0cae8f1319": {
"x": 2156,
"y": 5205
},
"7b20f75c-e1fc-440a-adad-0163de463e1a": {
"x": 2167,
"y": 5338
},
"696d1e23-89de-4738-9df8-035e4d251134": {
"x": 2169,
"y": 5456
},
"0d0e512f-b341-40c7-9417-aa94fa8daea8": {
"x": 2170,
"y": 5562
},
"5c9f641c-d157-4beb-b1ec-6121b39207e5": {
"x": 2175,
"y": 5710
},
"b1e83bca-7186-46e6-a8f7-2a9f684321fa": {
"x": 2185,
"y": 5850
},
"3f93c96d-5780-4af0-b3a5-bb1e1393721d": {
"x": 2188,
"y": 5994
},
"29f73ffe-39c4-4588-a013-d49aa81f5dca": {
"x": 2194,
"y": 6125
},
"8a0d902d-a808-4e30-bca4-90d555a4ee51": {
"x": 2200,
"y": 6263
},
"e089c3e7-88a5-4da2-a0db-dfe045077c17": {
"x": 2203,
"y": 6413
},
"b8d83cb3-5f03-47d6-af67-0d94a1895b37": {
"x": 2192,
"y": 6560
},
"cd2aa299-f53a-49b8-8071-044f514b4998": {
"x": 2190,
"y": 6647
},
"cd124d50-5c18-45aa-bdf5-4251a6335742": {
"x": 2195,
"y": 6732
},
"e3bd89d3-1b4e-4313-a993-ff22c6688724": {
"x": 2201,
"y": 6807
},
"7cfb911d-7751-47a6-91c6-ed1f941ac81e": {
"x": 2202,
"y": 6892
},
"23b46031-ff99-433a-8d5d-29124ac04133": {
"x": 2209,
"y": 6978
},
"61347f06-7e37-43ba-852f-6a82ff12b65e": {
"x": 2208,
"y": 7061
},
"52614639-533d-49ae-b87d-340b7be2e5b4": {
"x": 2213,
"y": 7156
},
"1bb60d57-1eb0-42e0-95b6-b314e310c192": {
"x": 2213,
"y": 7244
},
"fae88e12-34d2-4720-925b-9a8ca2cee9c2": {
"x": 2214,
"y": 7324
},
"e3bb0d65-1f00-4ad0-bbb1-ab9a6b36567e": {
"x": 2219,
"y": 7402
},
"360faa4f-c4b3-498d-a23a-374a08c12e0b": {
"x": 2217,
"y": 7479
},
"635b85c4-cb9a-4bf6-a76a-b5ecd744fc3f": {
"x": 2221,
"y": 7551
},
"252e7df1-2120-47a3-bd34-8c3f4037e035": {
"x": 2228,
"y": 7626
},
"01b8559b-0649-43c5-8872-b152e160097a": {
"x": 2224,
"y": 7709
},
"206cfbe8-f68b-4fdf-88e2-a3a90cd9b9bf": {
"x": 2230,
"y": 7785
},
"8608f04a-94ec-4780-976b-8f563c68d857": {
"x": 2228,
"y": 7863
},
"18f09e63-23dc-4cb6-9a0e-ccc2b42d5ef1": {
"x": 2228,
"y": 7945
},
"02a3da05-e634-4c71-b7cc-dad9ec179c71": {
"x": 149,
"y": -314
}
}
{
"7e76e40b-d6f3-4906-9ab0-03bda0ac8265": {
"x": 224,
"y": -347
},
"f38fbea3-abc8-4813-a478-2f4ef054c690": {
"x": -482,
"y": -353
},
"88e864d6-0fe5-4223-9e05-c9c8f60f3adb": {
"x": -454,
"y": 232
},
"2b8fa684-a627-473b-bbd1-502359d94f0f": {
"x": -431,
"y": 450
},
"75fe765b-b35e-42e9-bcaa-42ef2d43d544": {
"x": 357,
"y": 196
},
"abfa9afd-e5c2-462a-99fb-135771304e33": {
"x": 400,
"y": 466
},
"b451824b-4d7e-4b71-aa73-e29302108f28": {
"x": 14,
"y": 214
},
"f41039a5-7f8e-4330-83ae-68bf5b39d14b": {
"x": 141,
"y": 468
},
"63165c7f-7362-4f61-905b-465c88d929b3": {
"x": 673,
"y": 846
},
"5529f554-46e7-4b56-a5f9-2d7f2a63ccca": {
"x": 264,
"y": 711
},
"79c9e686-65fd-4bd6-9e49-9fdb17cb868b": {
"x": 429,
"y": 716
},
"6a1990ed-44b3-4c0c-a816-c598500a0d7c": {
"x": -657,
"y": 228
},
"86ea9371-d160-4bfe-b4d2-3ad7bab7301e": {
"x": -643,
"y": 450
},
"a97e1d38-0a86-411f-9a32-2c41496e24f0": {
"x": -828,
"y": 450
},
"4cb67c80-1dfc-4e6d-9008-ae51e956b153": {
"x": -790,
"y": 456
},
"3098ab4a-8c64-4a80-93dd-0f906f17082b": {
"x": -1165,
"y": 232
},
"cae7ce0b-1865-452f-ac3a-efdc28615142": {
"x": -1194,
"y": 449
},
"da4d785b-9442-4283-a182-3ca0e68d0b56": {
"x": -1421,
"y": 449
},
"5e95bee7-53f9-43a6-afeb-129fe5c27fab": {
"x": -1647,
"y": 450
},
"340b0c67-abae-4641-9b4b-7778605a6e04": {
"x": -1586,
"y": 880
},
"9ec8798b-80f9-40d8-a251-081f340ad654": {
"x": -1411,
"y": 571
},
"67f0c147-5317-4364-9bef-dbe0764fe19a": {
"x": -1206,
"y": 597
},
"8c551dfd-6995-4e5f-a8a3-d98f661898e2": {
"x": -1215,
"y": 746
},
"6c4c6d64-048d-40a2-a16f-b9af449b5841": {
"x": -953,
"y": -369
},
"3b630bbe-1998-4b13-badb-5dccf359b7fb": {
"x": -1039,
"y": 450
},
"bd8a4111-aabe-4b46-b96d-ea9c5df6fbd3": {
"x": 956,
"y": 231
},
"83395e44-5005-49ce-807b-c3bfad62c33f": {
"x": 1298,
"y": 242
},
"e23d22af-867a-4807-9bd4-fa224b959139": {
"x": 948,
"y": 100
},
"725c7e41-9cfd-4696-be30-0b4b9f7b3863": {
"x": 1346,
"y": 49
},
"a964d06d-c0ee-4e09-b685-927ff0ab3c3d": {
"x": -826,
"y": 141
},
"b4773c20-0edd-4a58-ba0d-bf617b0bced7": {
"x": -153,
"y": -219
},
"a254b654-2c5c-4f00-a42d-33996a7a5579": {
"x": -25,
"y": -20
},
"1e7e356f-088e-47a4-b027-8b3b4b805bc1": {
"x": 136,
"y": -68
},
"dc6f3376-f25f-4e3e-b8ed-a32feb6e6297": {
"x": 148,
"y": -205
},
"b8b4bb12-cca5-4335-8f11-176e9ff9567f": {
"x": -1818,
"y": 1220
},
"2ba79104-9af2-43cf-91dc-20a6b8865765": {
"x": 1126,
"y": 739
},
"7602690d-5d43-4c8d-9179-b731ee7b0089": {
"x": 1506,
"y": 586
},
"f2b21a6b-6926-46b4-b08d-d4c4049b9bdf": {
"x": 1599,
"y": 765
},
"8192f671-8c34-487e-951b-016c86a8fb92": {
"x": 1568,
"y": 877
},
"954c6301-b1ed-4768-8a55-70545e27d711": {
"x": -2179,
"y": 1514
},
"0a9e08be-275e-40e5-b177-7ea42feb30a9": {
"x": -2084,
"y": 1216
},
"f07905be-2666-462b-836d-5f7ba6d556a3": {
"x": -1464,
"y": 1224
},
"6cb64022-8294-4dde-a5e1-5fd43c9b73ea": {
"x": -1535,
"y": 1399
},
"5404b8d8-defe-44d9-b05f-2bae3dfb9c83": {
"x": -1303,
"y": 1401
},
"5ed31ce6-8d3f-4ed3-a96e-6fe2f8e071f1": {
"x": -826,
"y": 1363
},
"e4717988-72d0-428e-8bbf-75f515a29b5a": {
"x": -1126,
"y": 1360
},
"0eba8ed2-c64a-4b14-8dc4-e57d7e07fbd5": {
"x": -467,
"y": 1363
},
"09f55f53-1435-49f9-8060-39d2504edd6b": {
"x": -317,
"y": 1549
},
"3f9b01d5-43ed-43de-b344-fdb4e87fb5e8": {
"x": -580,
"y": 1557
},
"cb264127-dc28-46e6-b0a1-0b57ad0a01c4": {
"x": 162,
"y": 1002
},
"d365a958-222a-4483-b22b-14a819a7c6da": {
"x": 482,
"y": 997
},
"4decfdf3-a724-4f38-8756-b09e3d5880ba": {
"x": -1988,
"y": -142
},
"733ba085-f1c9-4442-a38d-204bdff535c8": {
"x": -2145,
"y": 3
},
"c7487c25-282b-4269-9f7a-969dc882bcc1": {
"x": -1845,
"y": 6
},
"6b2a7208-557b-42e1-a5bc-fcc70e1efdc5": {
"x": -1726,
"y": 173
},
"53ebdda9-d3bd-4b0f-8de3-7949d5c57997": {
"x": -1961,
"y": 178
},
"d67e6b7f-2630-4977-8421-583798b507db": {
"x": -1483,
"y": 76
},
"f9c3f9ce-6713-4ec1-89c3-267f564f59ec": {
"x": -2437,
"y": 7
},
"ad35a65f-52b3-4b5b-82b2-d1dbaa9f7b23": {
"x": -2188,
"y": 172
},
"aa348673-89ac-466f-b453-a0916f6a77c8": {
"x": -2628,
"y": 167
},
"13a541e2-a559-4fc8-917a-84ee9112c531": {
"x": -2429,
"y": 169
},
"74247d34-673c-416f-9dab-6d46dc2fef09": {
"x": 1235,
"y": 917
},
"905ab959-3226-416b-aa76-55726f5173c4": {
"x": 1604,
"y": 1049
},
"86fe3902-4c5b-47ba-88f5-e65fc424ab4b": {
"x": 1213,
"y": 1090
},
"c7735949-4a77-4569-8c21-eb9ce92eb051": {
"x": 1476,
"y": 1223
},
"29db0795-757c-4d89-9400-5dc8cb74c043": {
"x": 997,
"y": 1192
},
"d355ac8a-dd12-40ca-98cd-2c6b0e1412d4": {
"x": 1264,
"y": 1392
},
"8528bf23-7572-459d-9452-47101df15ce9": {
"x": -228,
"y": 280
},
"9955bb9f-ae86-4650-a7f2-ea06e866635e": {
"x": -37,
"y": 404
},
"2070ce75-3d64-4e57-a3e6-3b35ef6029f0": {
"x": -187,
"y": 422
},
"430fd164-dbe0-41aa-a7bd-d5d82b88ea1c": {
"x": 1,
"y": 753
},
"72325ddf-2341-4907-aa0b-28a5c65fdfb9": {
"x": 23,
"y": 1546
},
"ee8414e3-68e3-4785-b6d5-1892422f28a3": {
"x": 20,
"y": 1186
},
"7a15137f-f9a8-4c02-9ced-0878bc76fc40": {
"x": -271,
"y": 1190
},
"3f8009b5-0d95-4110-9170-a49c2453d218": {
"x": -128,
"y": 1000
},
"7a1b6057-c201-455e-a9b2-2b608ee6d83e": {
"x": -326,
"y": 1106
},
"d4e2e8b8-69a4-42e1-b3be-0f5bcfc815bf": {
"x": -370,
"y": 1006
},
"be5c0c41-189c-4f9f-b2a9-8d90fe817f32": {
"x": -857,
"y": 1556
},
"e207c12b-d58c-4c02-8f84-c004465876ed": {
"x": 1837,
"y": 590
},
"554f345c-10aa-469f-b3d3-0fadef6588b5": {
"x": 1547,
"y": 417
},
"5a46f58c-38ee-43c7-a12f-b8ea66101a7d": {
"x": 1976,
"y": 736
},
"ffb20582-f399-4f40-9470-4d6af8129cd9": {
"x": -634,
"y": 1008
},
"cb20b409-bcaf-4433-8dab-090cf79e70e9": {
"x": -720,
"y": 1135
},
"6b0b9d52-d77d-4af3-972c-df82b75ecf38": {
"x": -546,
"y": 1134
},
"fa6bc55d-2e36-4cd1-a03d-73edb72d643e": {
"x": -2031,
"y": 345
},
"c9bcdcc5-3b49-4a4e-9572-b2d381805779": {
"x": -1849,
"y": 343
},
"126ab1f5-f2ea-4dc7-8059-460b5054072e": {
"x": -816,
"y": 601
}
}
{
"796d588b-f880-492d-93c3-3b91e6244662": {
"x": 0,
"y": 0
},
"f51a5c8b-82a5-47c0-a00e-c57f9cef29ca": {
"x": 100,
"y": 100
}
}
{
"63165c7f-7362-4f61-905b-465c88d929b3": {
"x": -8,
"y": -79
},
"f73cb573-f7c1-422b-8e3f-199a8c36578e": {
"x": -7,
"y": 143
},
"e802f1cc-de91-49e5-94f2-aa41cc8af518": {
"x": -6,
"y": 331
},
"02ffb658-b9c2-4a7d-bc1f-c332a0646e95": {
"x": -4,
"y": 515
},
"87c56595-8e0c-4490-81e5-b6f6a694a562": {
"x": -8,
"y": 715
},
"2b0802f0-2af1-43f2-9cf7-84a7526c6985": {
"x": -314,
"y": 712
},
"1ce1161a-b540-4b46-87d4-df17b0f4375b": {
"x": -459,
"y": 1002
},
"97e08135-cf44-4856-ac47-168ab63011ed": {
"x": 327,
"y": 656
},
"ba1e12ee-999c-4847-abf0-b3025c7657e5": {
"x": 955,
"y": 561
},
"8af6d5ae-4945-4f34-8a84-9e9e86d51d14": {
"x": 885,
"y": 283
},
"e98e4af5-8884-49f1-8167-84f6989918e8": {
"x": 287,
"y": 830
},
"44a95ebd-f498-4b36-81cd-696387db77c2": {
"x": 187,
"y": 1241
},
"995f1130-49c5-4865-a37c-eba449242d83": {
"x": 1097,
"y": 1295
},
"b734f001-a735-4152-81f0-cee298fb3167": {
"x": 1465,
"y": 722
},
"9dde6cf8-71d4-4ae0-b198-a55ce4f75c4d": {
"x": 1015,
"y": 723
},
"7252fb67-0723-4398-9776-674e30f1ff2a": {
"x": 1226,
"y": 1015
},
"84692176-7c50-4716-bdc5-d2840b7a7631": {
"x": 1438,
"y": 1024
},
"930602b7-68ae-4d4b-b20c-ba56dab267ad": {
"x": 496,
"y": 877
},
"d210dafe-680c-49ec-bda6-d7546d56343d": {
"x": 566,
"y": 1025
},
"c41cc10e-e794-4a4a-bb02-91eb70ae6170": {
"x": -28,
"y": 831
},
"b938d54e-49bf-458c-8062-64609edb8f88": {
"x": -238,
"y": 827
},
"7b73a22b-cba3-449d-bc18-11aa658725c6": {
"x": 531,
"y": 1196
},
"2e158b7e-35eb-4d1a-b1a5-33f5f7171495": {
"x": 1061,
"y": 1005
},
"0b188ca6-c722-416d-976d-c359b2676fb6": {
"x": 840,
"y": 1121
},
"6942ffef-c443-4916-8919-c87181d7792e": {
"x": 741,
"y": 1222
},
"3a1a3dc4-09bf-4911-889f-595d82a2897b": {
"x": 882.596517246849,
"y": 1230.3336941396494
}
}
{
"b3f945cf-e2b7-459c-a5ba-047ee20db869": {
"x": -539,
"y": -255
},
"bf26a28a-0470-4657-8006-19f65501b8da": {
"x": -523,
"y": -51
},
"0ec24878-d317-4c4e-93b3-36444d9c5e40": {
"x": -258,
"y": -226
},
"bbfd4ee5-b8cf-40d1-b10f-c56b08d8c32d": {
"x": 138,
"y": -454
},
"27d8ff0a-27c7-46b9-bbab-97a27b5c3f74": {
"x": -255.2112615364321,
"y": -56.730291335769564
},
"5072233e-b061-41ef-88ab-f1b72e2579eb": {
"x": -302,
"y": -525
},
"c8f2c831-e6ef-43bd-84c8-13be0b92377f": {
"x": -374,
"y": -43
},
"d67e9fb7-1d06-4fc2-8278-bece0c2c8a79": {
"x": -602,
"y": 106
},
"4931198b-0477-42e0-acf6-995fde7d8629": {
"x": -399,
"y": 105
},
"736e2342-9d59-42bc-afb0-f1d16a225289": {
"x": -275,
"y": 107
},
"2f2afdd0-5c5d-460e-a221-80ab3e996553": {
"x": -135,
"y": -39
},
"dc970406-54de-41ec-af27-32b8011ab5ae": {
"x": -74,
"y": 109
},
"8e1dfad9-f394-403c-9293-67e42128610b": {
"x": -624,
"y": 247
},
"2bf6c805-7882-46ec-8d97-fb10008f90f8": {
"x": -441,
"y": 248
},
"7e15e74b-2ec1-4a2c-ae49-2fd9f180fc19": {
"x": -568,
"y": 379
},
"a4285916-1f7e-4834-9d2c-307cabd96914": {
"x": -410,
"y": 380
},
"11baad67-0634-4639-b271-1149c4df7893": {
"x": -491,
"y": 542
},
"132e82ca-4468-4daa-804f-bf730595599d": {
"x": -295,
"y": 490
},
"d2fc8c34-e53b-4780-a3b0-4391150cc07f": {
"x": -657,
"y": 543
},
"86d84d42-bb18-4f09-83ff-73aed8e3c20a": {
"x": -735,
"y": 360
},
"7087f237-abf7-444d-a275-21a78e1c51e4": {
"x": -192,
"y": 379
},
"eee7defc-c699-47f1-8ba6-b1f4105b20e6": {
"x": 4,
"y": -40
},
"5a5a1334-c726-4dce-b8fa-4d30b296ad7f": {
"x": 224,
"y": -30
},
"02be8a0d-aedf-4b46-8acc-b3a83b91e943": {
"x": 217,
"y": 100
},
"a5228657-fa2b-48d7-98bb-3551d05f177a": {
"x": -123,
"y": 528
},
"4ee18fe2-70df-4d93-a0c4-06612b8b1051": {
"x": 350,
"y": -436
},
"2547a291-1bc7-49ec-b1b1-0edc435f302c": {
"x": 389,
"y": -248
}
}
{
"f81fb02c-d698-4453-98bd-9ed799bd66eb": {
"x": -593,
"y": -393
},
"f227cb07-cd9e-479e-baa7-d68aee20725f": {
"x": -339,
"y": -406
},
"0cf4a1ef-aa1d-48cc-a42f-fd092f735531": {
"x": -1108,
"y": 136
},
"81b617d0-a553-43e8-970d-1094d1d15aec": {
"x": -618,
"y": -109
},
"7308c788-9ebd-4b9e-803b-b44985f77815": {
"x": -419,
"y": -24
},
"9b53a85d-c98b-45e4-a227-029ce217c6f3": {
"x": -1403,
"y": -99
},
"c220817e-b555-40de-a864-e875363015f7": {
"x": -1589,
"y": -440
},
"3d16e4c6-c47a-4dbd-868c-70a1d83f6b20": {
"x": -1247,
"y": -13
},
"9383b7a4-b9fe-4597-99d9-7a16a8124237": {
"x": -847,
"y": -291
},
"0bbe51d5-3f7e-4916-be64-31650fb996e2": {
"x": -1461,
"y": -220
},
"009324dc-589d-4548-98a5-48d561511a98": {
"x": 9,
"y": -7
},
"5d313eb4-bbf3-4318-be57-b7f2ce1f06b6": {
"x": -849,
"y": 142
},
"380a137f-fe8d-4b60-986f-73676662b6c1": {
"x": -694,
"y": 196
},
"41d88087-63bb-4e69-8504-0df5bd74d48d": {
"x": -548,
"y": 98
},
"65105cc4-6cb1-470d-9431-8961daa27c5e": {
"x": -826,
"y": 271
},
"93e86fdb-d887-4837-a498-0236887da44e": {
"x": -584,
"y": -272
},
"c5a044c4-dfaa-4f16-a22c-48ffa72a1ede": {
"x": 354,
"y": -265
},
"4e979264-98a8-42d1-96f6-9c8b189ab895": {
"x": 441,
"y": -538
},
"40ac7acd-a08f-4767-b84c-d1ff8b98e38d": {
"x": 475,
"y": -407
},
"be1da9bd-9c4d-4b66-bc06-050d7109a5a3": {
"x": 405,
"y": 298
},
"b4646716-a82f-4955-b3b3-8259a096bcd6": {
"x": -304,
"y": 768
},
"8bfe01ad-f0fd-45ff-8e20-ea277812c45d": {
"x": -662,
"y": 344
},
"41f72b57-1b00-4b8a-84e4-8fdc68f946c4": {
"x": 61,
"y": 354
},
"c46c7747-1fb3-4e27-9b10-59964c29497c": {
"x": -92,
"y": 317
},
"8ebec438-e35a-4a34-87b9-967ad0f2de7b": {
"x": 234,
"y": 275
},
"39a41a82-4803-471f-bcf9-f7df09995637": {
"x": -250,
"y": 392
},
"a6f321a4-2a4f-4906-b763-4bdd86541874": {
"x": -554,
"y": 477
},
"24eca60c-647e-4dc5-afd9-22a2a2e61cb0": {
"x": 194,
"y": -812
},
"8271eeb0-fd08-4491-8a15-3e6e9bdc3596": {
"x": -10,
"y": 559
},
"ba181dbe-fa8b-4ccd-bca8-60da713c81f1": {
"x": -221,
"y": 480
},
"3f15968b-aaa1-4eba-9940-e9bb89a5c75a": {
"x": -1614,
"y": 202
},
"e4838a6b-4e87-4ad7-8ed7-94110c99a01f": {
"x": -1719,
"y": 352
},
"433e67d2-fd6f-4dc3-a78c-5340d4e00f9e": {
"x": -1376,
"y": 133
},
"fa3f1469-6751-4c30-be2f-50469147c4e4": {
"x": -1566,
"y": 319
},
"15b45b54-dab1-480e-8236-bd459503e20c": {
"x": -1471,
"y": 410
},
"a309a169-0db5-4daf-9d94-37fa49d45e5b": {
"x": -1632,
"y": 472
},
"ce9d57be-8f98-43a8-afaa-33b4c77d09d0": {
"x": -1829,
"y": 607
},
"cdd0cca0-65fb-4872-8937-3081f8c68882": {
"x": -1640,
"y": 607
},
"9b3c3ff3-7955-4454-b659-95e71ecc6908": {
"x": -1488,
"y": 609
},
"44ac9656-7362-4f35-8df7-c0f027ab9f3e": {
"x": -1292,
"y": 206
},
"f29c11c8-b374-4405-b034-a5c699bed5e7": {
"x": -1208,
"y": 843
},
"dfc118b3-55fa-4fc1-891b-7d9b102df93c": {
"x": -1242,
"y": 969
},
"eb303006-1fea-4976-a1ca-87a2973671f4": {
"x": -865,
"y": 1150
},
"5fd799e1-e6a4-4cd8-a3aa-be3c1c2f27f3": {
"x": -969,
"y": 333
},
"df16598c-4047-479c-8e52-6bf0a14d92ed": {
"x": -903,
"y": 395
},
"b3e3b6ba-a695-42ae-8f14-a0bca54263aa": {
"x": -661.9463728253182,
"y": 516.1228426935336
},
"6748ad0a-0444-40cc-bc03-7ba476ddbf18": {
"x": -448,
"y": 669
},
"48406920-d3a1-4dbd-b5ca-4f2f2e81d552": {
"x": -617,
"y": 725
},
"f544d53c-b821-4c2a-8aa2-b1d4393b3e7e": {
"x": -849,
"y": 514
},
"ffc20125-b369-4ace-8f94-e43da73e6f42": {
"x": -330,
"y": -1832
},
"60abb6a5-da37-46d1-b795-65c85c681766": {
"x": 12,
"y": -1652
},
"3ff717a1-d285-475f-b1da-048645333ccb": {
"x": -283,
"y": 1054
},
"f2033649-eac8-42d5-8031-3e342665f08d": {
"x": -1034,
"y": -1400
},
"7f630150-3ca2-4a98-9ec4-7c87ab6a001a": {
"x": -841,
"y": -1044
},
"76276185-028d-42d3-ae7f-77be8cd4cd73": {
"x": -1472,
"y": -771
},
"0ef51406-dfe1-4206-b338-47cd5543e004": {
"x": -1466,
"y": -696
},
"288c8ae0-9151-49da-869e-38ca8b12995f": {
"x": -249,
"y": -4
},
"82478b2b-efd2-4cc2-88b0-8ff3d0fbd931": {
"x": -1342,
"y": -609
},
"f88f6905-faab-43f9-a4f9-f70f011e7011": {
"x": -503,
"y": 150
},
"d0bf6048-38be-43c7-b420-75baa93bfaf0": {
"x": -647,
"y": 267
},
"ad20569a-f08a-4e10-af6e-0a73807ad0f4": {
"x": -1018,
"y": 726
},
"04ea4985-2edd-4f8b-80a9-9044deb9a9bc": {
"x": 631,
"y": -857
},
"0b50a651-0013-46d7-b823-450e004dae57": {
"x": -1063,
"y": 626
},
"86eba38f-b5d9-454f-95ac-7b7b5a78cb7c": {
"x": -435,
"y": 323
},
"c58bd22a-ead8-4e86-a253-d757656ec15a": {
"x": -111,
"y": 842
},
"1d7171fd-8d6a-4398-a22c-e26eac1c812f": {
"x": -55,
"y": 746
},
"dab3d22e-231a-440a-926d-4b289324ecdb": {
"x": -424,
"y": 539
},
"816db5df-ab31-4ec3-8eb4-a706a4c7d51d": {
"x": 71,
"y": 976
},
"7199ed49-83a7-4ee5-965c-960c4e561c39": {
"x": 254,
"y": 1165
},
"28456d4d-c567-48e9-8b06-098357b2570f": {
"x": -252,
"y": 83
},
"55430c6a-9583-4fcf-a24d-1b744bbf60d8": {
"x": -1895,
"y": -170
},
"3b71848b-b78d-417f-8e83-ce037b7a612f": {
"x": -1828,
"y": 165
},
"7919f415-3951-46b3-b028-80588fee5035": {
"x": -1933,
"y": 257
},
"a52697eb-3a28-4606-b4b8-3d5b3b052477": {
"x": -2035,
"y": 385
},
"edf80cb8-81e6-4156-bb77-87a43c921826": {
"x": -2188,
"y": 530
},
"be07bfc9-9a06-4839-9aab-23743e01a3cc": {
"x": -2293,
"y": 372
},
"459e61cf-02f0-4adf-b29f-6bd96e0bea94": {
"x": -702,
"y": 873
},
"52107866-f361-4960-95d6-72ba370e8b8a": {
"x": -596,
"y": 1043
},
"30ee5adf-c605-4b7f-af07-274d15420ec2": {
"x": -823,
"y": 923
},
"8500b57a-1123-439b-92bf-baa606f271e1": {
"x": -831,
"y": 1322
},
"8665b62b-a93d-414f-ab1b-669d3e910cdf": {
"x": -602,
"y": 1211
},
"ccba17d3-8db8-413e-9006-01c1da06cc36": {
"x": -814,
"y": 1217
},
"bf8652be-7d3e-4518-bb78-f5305aba02c1": {
"x": -1092,
"y": 1268
},
"8398b3fa-4d8b-45f6-b706-4baf559ec56f": {
"x": -819,
"y": 1439
},
"6c7f07da-cfc8-489f-9341-b48f5a1c921e": {
"x": -989,
"y": 1441
},
"4cc93a62-d605-4e17-a7ca-cf75710343eb": {
"x": -645,
"y": 1438
},
"16bd25e7-0a0e-4f7c-b58c-c7d588090148": {
"x": -678,
"y": 1658
},
"2a32fd5b-bd6e-41f6-9bfa-3aff5b94e4a9": {
"x": -524,
"y": 1657
},
"a92ef6d6-1c85-4315-853a-71892d290968": {
"x": -874,
"y": 1754
},
"48f42e20-9669-4c60-8bd9-fa16514351d0": {
"x": -1341,
"y": 1922
},
"937a2321-ec71-4ef6-b375-3f3d51c99a46": {
"x": -1574,
"y": 1608
},
"c67a8f14-438c-4dac-bf17-b28d301cc65f": {
"x": -1506,
"y": 1311
},
"6a590eb1-96d3-4966-89d7-fc62e1624c34": {
"x": -1554,
"y": 1187
},
"4e5754b9-a9d1-4b8e-b140-192d28454eb1": {
"x": -1493,
"y": 1068
},
"3bd8f101-0c5c-43ef-9b57-9680f00e61c5": {
"x": -1465,
"y": 921
},
"206a094d-bfff-4b22-8c4f-5c8692b0e997": {
"x": -1431,
"y": 775
},
"b7605104-e1dc-41fc-8291-1e8d72018717": {
"x": -1476,
"y": 1443
},
"8d24bcf3-888f-4f83-b61b-0c1c5a9987fc": {
"x": -1239,
"y": 1318
},
"66c8defd-072c-4428-bbb4-ca195a50d41f": {
"x": -1194,
"y": 1551
},
"b5ac9391-1bc7-45f0-83b6-cd9abfed92cd": {
"x": -1067,
"y": 1615
},
"8c04f643-b587-4142-b7cd-688b4f91a942": {
"x": -1168,
"y": 1814
},
"ea394645-1e04-4e24-b070-c4863f56eab7": {
"x": -885,
"y": 2018
},
"d7615158-0e28-441a-acbc-2286fce2e502": {
"x": -708,
"y": 2016
},
"002a8b3d-517f-40ec-a00b-fec52d441366": {
"x": -534,
"y": 2016
},
"1faaa707-a753-46bd-ab23-fe7b170f206a": {
"x": -2172,
"y": -41
},
"bd0e5dde-2074-4358-aa21-8650e1b5f28a": {
"x": -2394,
"y": -16
},
"46bc8d07-7802-4dfa-a33d-8742b560f490": {
"x": -2501,
"y": 135
},
"b354da0a-89d1-464c-be72-9b7b44008ecc": {
"x": -2369,
"y": 135
},
"5f61bedc-bbe5-4fa8-8ebc-62a2d82f9d98": {
"x": -2237,
"y": 135
},
"30f53f61-d046-4be2-a58d-62ef9efbcb8f": {
"x": -2613,
"y": 130
},
"3ad5bd24-2755-4095-bf37-4cf8315affeb": {
"x": -391,
"y": 921
},
"036e6868-f3d1-4173-82f2-f2b5c068d0b4": {
"x": 311,
"y": 908
},
"423f3c57-4b1d-47f7-add6-b82d5a96fe2d": {
"x": 100,
"y": 815
},
"77c7d906-2231-4baf-83b7-3fa42da96b05": {
"x": 535,
"y": 1116
},
"e6a6d72f-5837-48f2-b473-937390b7467d": {
"x": 661,
"y": 948
},
"aee37590-b6ad-4053-b3e1-9f041189c5af": {
"x": 653,
"y": 805
},
"e02afce9-27a4-4f40-9ba0-94a86560429c": {
"x": 633,
"y": 1086
},
"ed6bc17c-b71e-411c-bc25-13f088f744a6": {
"x": 648,
"y": 1026
},
"0e1973f0-3371-4855-bf14-ea73e970ea8e": {
"x": 671,
"y": 888
},
"310d6c5a-7dff-4aec-a960-8f852ddb29b2": {
"x": -1036,
"y": -13
},
"10e05266-bdf8-4212-83fd-b5c84fd3c78a": {
"x": -813,
"y": 31
},
"ba6f5c3e-e6a2-490d-bf2e-005f18c471c1": {
"x": -895,
"y": 98
},
"023f26d2-265c-42e7-87c4-dea37742c946": {
"x": 310,
"y": -671
},
"077c95f1-80ff-4981-bd99-e317f105aae3": {
"x": -511,
"y": 856
},
"d5ca5d8d-20b5-46e7-9008-fe46350b5b2d": {
"x": -497,
"y": 1093
},
"48b00330-c0b4-4de9-8bfb-8d671d7d2df0": {
"x": -124,
"y": 1218
},
"951dd270-0b58-4036-a456-c0053760c7b0": {
"x": -166,
"y": 1434
},
"92e6e64e-8f14-40e6-92d9-613a0f032f10": {
"x": -133,
"y": 1655
},
"c335ece7-1d55-45c3-93bd-8bc0bbd3a124": {
"x": 179,
"y": 1634
},
"742a8811-d9ad-4635-86d8-30d514fedd0f": {
"x": -29,
"y": 1892
},
"05821ca2-fcf3-4f04-affd-0efc77acd1bd": {
"x": -813,
"y": 677
},
"6060f553-6309-4620-95fc-9882a3ab432b": {
"x": -1582,
"y": 58
},
"ad8b2d96-b68e-42e5-b0c5-0239a3723d5d": {
"x": -1659,
"y": -173
},
"668ec1d7-8a22-48bf-9e18-ac6b97b67c6f": {
"x": -443,
"y": 1046
},
"148a27e2-f8d9-44b1-b145-f9edd978cabe": {
"x": -361,
"y": 1260
},
"d327245f-42f9-4b41-9863-4c91bae5328a": {
"x": 425,
"y": 455
},
"cb823ebf-84e8-4169-837c-a2b21f3f575d": {
"x": 408,
"y": 616
},
"c2b5d79b-4b9a-44b9-aac3-f013059c813e": {
"x": 179,
"y": 706
},
"b07dfae4-e9c0-432e-955b-eabe5ea5c68f": {
"x": 311,
"y": 731
},
"9dea6993-ed8b-4f94-b095-9bc0fed8f7d9": {
"x": -2061,
"y": 25
},
"16c6e7a5-94d8-47e5-9a60-f99ebdec80ca": {
"x": -1938,
"y": 21
},
"0fdbfe72-c111-40b2-93d2-cfe919ccd480": {
"x": -1827,
"y": 24
},
"24648849-a39e-4cb4-8bde-8040a933f3fb": {
"x": -1709,
"y": 29
},
"92d12ac8-44d5-41c2-a419-45d4add02377": {
"x": -1192,
"y": 277
},
"a6378981-6435-4c74-87eb-df6f006c86b8": {
"x": -1355,
"y": 340
},
"8142eb94-fe4a-4121-bd8a-ce3810039aca": {
"x": -1306,
"y": 471
},
"c7b904c5-ea99-421c-a782-a5c7611aae10": {
"x": -13,
"y": -877
},
"ef25d49f-d484-46b2-a147-3efcc97a2b6d": {
"x": -1500,
"y": -868
},
"0faf0098-5b80-45c4-b3b5-eeaa7138ed21": {
"x": -1534,
"y": -1018
},
"3cfdd30a-898f-4891-92d2-141c32d731f3": {
"x": -1201,
"y": -543
},
"e8e06d07-46d4-4d28-8db3-90caf0db5e6b": {
"x": -1571,
"y": -1082
},
"2ecdf829-68f5-40fa-96ef-c834430e4a65": {
"x": -1482,
"y": -947
},
"b71a560e-4f4f-4d2e-bfcb-9241c0d9e195": {
"x": -1008,
"y": -527
},
"b26422f6-c5ef-4488-b9fb-595ad5248ec7": {
"x": -832,
"y": -520
},
"0c90094c-ebaa-4533-9ff8-3d1b7493b783": {
"x": -687,
"y": -533
},
"60e304a0-e78d-46ba-99fc-53a66ae308c3": {
"x": -1580,
"y": -1137
},
"b6f09c72-02a7-4db7-a414-13b1efb6f385": {
"x": -1702,
"y": -1241
},
"67cc2276-cef9-45cf-9f2e-74f381f94922": {
"x": -1588,
"y": -1510
},
"a87f775f-536f-4051-a9e2-98fd30869ce4": {
"x": -1734,
"y": -1543
},
"73e2cfe3-cd7f-42b4-9748-fcabc1801c32": {
"x": -1856,
"y": -1541
},
"5283edb3-6dd0-46c1-90de-f591d9a526c8": {
"x": -1925,
"y": -1497
},
"f1c0dc25-deae-43be-8efd-af4dcd30a8af": {
"x": -2024,
"y": -1456
},
"e4852471-a9df-45ee-ad3f-1d1606a55c05": {
"x": -2063,
"y": -1415
},
"c9e67c1d-694a-416f-b9c3-fa9a9e18dc6f": {
"x": -2118,
"y": -1367
},
"526e725d-889f-4084-a9d1-5d37e2ce7f73": {
"x": -2160,
"y": -1309
},
"cc19b462-7b27-481a-b333-5ffedb0bc864": {
"x": -2166,
"y": -1258
},
"306c8e58-e5b4-489a-aae5-d87f1a76fda4": {
"x": -1829,
"y": -1066
},
"33b6f759-28bf-4cfb-ba8d-1234c9d2cab6": {
"x": -2195,
"y": -1211
},
"07d5656d-593d-450a-b430-0e4192c2ddc1": {
"x": -2181,
"y": -1158
},
"18dc398d-4670-4512-b943-0237b740d92d": {
"x": -2172,
"y": -1111
},
"5f214c3c-d649-4e7b-9465-2c6a09173b97": {
"x": -2150,
"y": -1059
},
"b763a764-36cc-4eaf-bac6-3ee97eb434f3": {
"x": -2093,
"y": -1015
},
"e7c77c2a-4d2b-41a4-a8f9-5050930fb8db": {
"x": -1999,
"y": -982
},
"593876bc-fa13-4cae-a17b-01226dd15bb0": {
"x": -212,
"y": 940
}
}
{
"24eca60c-647e-4dc5-afd9-22a2a2e61cb0": {
"x": -333,
"y": -80
},
"04ea4985-2edd-4f8b-80a9-9044deb9a9bc": {
"x": -635,
"y": -74
},
"3b8c5e64-d094-4dbc-98c1-22c265877437": {
"x": -1312,
"y": 290
},
"ef42894f-5d08-48b1-bc7d-0176ce8c8a73": {
"x": -545,
"y": 197
},
"9c83a564-eb2c-4539-9214-0682b447cefe": {
"x": -851,
"y": 212
},
"90754e4b-91a6-400d-acd3-5f2d636674d7": {
"x": -378,
"y": 154
},
"841dc8b0-3c93-4aef-8dd4-20e1d00f284f": {
"x": -1191,
"y": -37
},
"c7f12005-9069-4f24-85fd-ac934b362b9f": {
"x": -1102,
"y": 76
},
"83db7d30-f2e2-4455-8697-6d5370d3cda2": {
"x": -1476,
"y": 132
},
"20ca5c3d-16c7-4a97-9b86-e7d45b7d75a8": {
"x": -974,
"y": -197
},
"9b5bf789-a8b1-4919-bb2f-0439704cb18b": {
"x": -800,
"y": -275
},
"4761c80e-8fbe-4d64-940b-a3afe85f8d8c": {
"x": -571,
"y": -275
},
"6e1fc02c-545c-4592-931e-0481f3840f62": {
"x": 81,
"y": -188
},
"9ae8eebd-38bf-4e63-bc56-3cb270e592d0": {
"x": -34,
"y": -70
},
"28456d4d-c567-48e9-8b06-098357b2570f": {
"x": 117.57984405328922,
"y": -76.16238527331319
},
"b088757f-3569-41c0-8b8f-aea97f02d388": {
"x": 101,
"y": -69
},
"6ec1e382-7ae3-4113-b4ce-a5f1af8efc84": {
"x": 246,
"y": -70
},
"41f72b57-1b00-4b8a-84e4-8fdc68f946c4": {
"x": 533,
"y": -69
},
"41ddcd9f-3653-4453-8b36-e816b5945bc1": {
"x": 239,
"y": 36
},
"94bea5bb-2ec9-46e2-9ff5-c78178f3b029": {
"x": 493,
"y": 32
},
"8b2ef3d5-dc4c-46f4-8cdc-a3f88ccce28e": {
"x": 739,
"y": 36
},
"75081b83-eda1-4df9-94b3-1b3014a96a84": {
"x": 546,
"y": 177
},
"d996b71d-4027-4855-906e-f7cf357de2b2": {
"x": 958,
"y": -61
},
"0cf4a1ef-aa1d-48cc-a42f-fd092f735531": {
"x": 927,
"y": -297
},
"69aaa318-4bb1-4360-b63d-443e74ad0540": {
"x": 1112,
"y": -155
},
"576a6c21-2fe3-43d0-9099-a0893e328e27": {
"x": 1237,
"y": 17
},
"3c0357c2-155d-41f6-9235-36290a01331b": {
"x": -370,
"y": -239
}
}
{
"0cf4a1ef-aa1d-48cc-a42f-fd092f735531": {
"x": -429,
"y": -227
},
"65105cc4-6cb1-470d-9431-8961daa27c5e": {
"x": -40,
"y": -223
},
"ec369ae8-74ac-4aab-bd68-285e89f672fd": {
"x": -466,
"y": 6
},
"05821ca2-fcf3-4f04-affd-0efc77acd1bd": {
"x": -647,
"y": 6
},
"a6674892-8bfd-48d9-a3f7-7817da8b5389": {
"x": -516,
"y": 142
},
"8bfe01ad-f0fd-45ff-8e20-ea277812c45d": {
"x": -768,
"y": 132
},
"1c57326d-cecc-468f-9bf3-15e9e0745408": {
"x": -612,
"y": 250
},
"e28b94b0-a1ad-46b2-86fb-b14af0ce6a1f": {
"x": -568,
"y": 361
},
"65380ae5-c42e-434f-adeb-9d5edf145e55": {
"x": -364,
"y": 360
},
"1020244d-ab31-4885-ad84-a900d47dd2f0": {
"x": -438,
"y": 481
},
"d996b71d-4027-4855-906e-f7cf357de2b2": {
"x": -300,
"y": 0
},
"0a113366-74ac-49bb-9cb8-58f5444ef63e": {
"x": -68,
"y": 2
},
"19020500-0905-45c4-95d4-a98fdf1d08ac": {
"x": 72,
"y": 1
},
"6bdf942b-d4ca-4932-8704-d748d9efd667": {
"x": -236,
"y": 112
},
"1d590bef-2bf1-40f5-a95f-717103bba097": {
"x": -156,
"y": 251
},
"da6f5070-df1b-4f74-a026-fa94fee90369": {
"x": 55,
"y": 344
},
"b7e47a71-0519-4881-a28c-3d0a940fe621": {
"x": 241,
"y": 603
},
"8b2ef3d5-dc4c-46f4-8cdc-a3f88ccce28e": {
"x": -275,
"y": 481
},
"9b94f778-2dc9-46d2-912b-03e86056b533": {
"x": -522,
"y": 622
},
"151da585-b401-400c-8b08-9239e0971adc": {
"x": -331,
"y": 621
},
"3e012f46-fd22-486e-91aa-e888911cdc8f": {
"x": -208.86643529598618,
"y": 628.9670132455967
},
"928df020-0b5a-49ed-aeef-3da18bbdfcde": {
"x": -206,
"y": 620
},
"0749143b-2966-4eb2-9e48-c7d0e1f8f8f4": {
"x": -243,
"y": 784
},
"84de5420-1cc3-453f-8fef-58378af70dc3": {
"x": -461,
"y": 788
},
"08297670-f6ad-444a-b5ab-4df6bbdef09b": {
"x": -651,
"y": 792
},
"c9dde7ed-4614-462e-9da8-69bf71b6ae8f": {
"x": -635,
"y": 960
},
"353b56ac-6834-4dbb-bb16-0f7c0c97bed1": {
"x": -606,
"y": 1149
},
"ed65af6f-2056-4e7a-8087-e8b0a2a93b53": {
"x": -419,
"y": 957
},
"60e25b29-5211-45a4-82a8-2c4810194aaa": {
"x": -259,
"y": 958
},
"b4646716-a82f-4955-b3b3-8259a096bcd6": {
"x": 335,
"y": 953
},
"789e28c9-aa56-41fa-a46c-3ddb86db6f32": {
"x": -181,
"y": 1138
},
"05950bdd-8593-407f-a952-6c2bfb8fc7d3": {
"x": -562,
"y": 1314
},
"6649626d-bcc2-4905-a2d6-415da87146a6": {
"x": 199,
"y": 1074
},
"8ac11926-e8f7-49e4-8be0-b7a8345a3559": {
"x": 26,
"y": 1134
},
"a3c24ff8-6f2a-47af-91a5-ade4b3cef96e": {
"x": -47,
"y": 1299
},
"60500c43-4ff8-477c-9122-d92af25a11f7": {
"x": -52,
"y": 1454
},
"06466f33-f0b3-4a7c-9653-6b6d73ae0b08": {
"x": -51,
"y": 1618
},
"df210c6d-ebbf-4f5c-b332-207a1cbae784": {
"x": -42,
"y": 1801
},
"3657acd3-c850-4689-a945-ba82f0885541": {
"x": -47,
"y": 1925
},
"6a6f56a2-0ffc-43f5-a43a-c9b19a6560d4": {
"x": -38,
"y": 2095
},
"7dc44bd9-dc03-49b6-8242-ff0dc0570506": {
"x": -43,
"y": 2261
},
"dd38a369-086e-434c-9913-9c87bb0982cb": {
"x": -47,
"y": 2428
},
"11ee21be-bd97-43fd-8c65-749a1a4ccf48": {
"x": -45,
"y": 2590
},
"42078023-47c5-40bd-b859-b192bb488495": {
"x": -50,
"y": 2760
},
"15213837-cc32-418e-9496-1a61adfa5234": {
"x": -47,
"y": 2913
},
"f8e9cfbb-a6c1-447d-b500-a859360a24e0": {
"x": -41,
"y": 3096
},
"5cf75700-4160-40c4-b1a7-be12712cbffd": {
"x": 68,
"y": 3258
},
"cde04b54-b1a2-4c9c-8616-132055a5e2a6": {
"x": -159,
"y": 3253
},
"48406920-d3a1-4dbd-b5ca-4f2f2e81d552": {
"x": 414,
"y": 3409
},
"814c18b8-7190-40cc-abf7-f4b234fc3a1c": {
"x": 77,
"y": 3412
},
"ba3aa80e-018f-44d9-bf8a-21c13eae58e5": {
"x": -42,
"y": 3583
},
"a9ae2818-8943-47ab-8ad8-2634a5eeaffc": {
"x": 174,
"y": 3585
},
"1e7f655f-2032-4efb-a969-b6494e627789": {
"x": -261,
"y": 3582
},
"e1e23650-7201-4b6b-9190-52011ad9e3d4": {
"x": -227,
"y": 1455
}
}
{
"f29c11c8-b374-4405-b034-a5c699bed5e7": {
"x": -312,
"y": -257
},
"be1da9bd-9c4d-4b66-bc06-050d7109a5a3": {
"x": -105,
"y": -143
},
"ae0232ce-f1fb-4b46-b7d1-afb9572a1454": {
"x": -462,
"y": -121
},
"dfc118b3-55fa-4fc1-891b-7d9b102df93c": {
"x": -272,
"y": -97
},
"8bfe01ad-f0fd-45ff-8e20-ea277812c45d": {
"x": -352,
"y": -726
},
"be416582-ea3b-4cb8-a48a-bf7fa82b4b65": {
"x": -413,
"y": 27
},
"f8faa8b3-19be-4620-898c-ef384f0cf29c": {
"x": -371,
"y": 117
},
"0733295a-0ccc-42ad-aca5-8f211a89d07a": {
"x": -202,
"y": 26
},
"41f72b57-1b00-4b8a-84e4-8fdc68f946c4": {
"x": -156,
"y": 115
},
"0ce1306f-3aab-43bc-8466-b25fc752cdf0": {
"x": -580,
"y": 240
},
"57b85db7-9c6c-4ec4-a46b-5d8fec6a6c56": {
"x": -78,
"y": 229
},
"52386511-e1ca-4c85-b015-afaffef23598": {
"x": 238,
"y": 147
},
"ec82c22c-e3ac-4f59-9932-5105d9bb573e": {
"x": -434,
"y": 243
},
"2784d18d-51e3-42b5-845d-ebd9075b7b5d": {
"x": -712,
"y": 343
},
"b9b6f1ca-aa7e-44de-b503-0eafa998842b": {
"x": -387,
"y": 348
},
"4722a83e-02db-4a2d-b8cd-8929e6cb588c": {
"x": -554,
"y": 349
},
"a66e8a58-0131-4bb9-9000-363865e84bdb": {
"x": -634,
"y": 452
},
"9ec9de3f-edb0-4f45-8a50-14c6f606d45a": {
"x": -379,
"y": 471
},
"ffdf05de-32e9-4b83-9faf-6f9840594268": {
"x": -540,
"y": 563
},
"dd19616a-0fa1-413f-854e-99435d781d9d": {
"x": -658,
"y": 644
},
"b6e5cbcc-ec02-48c9-b59c-8337953639d0": {
"x": -713,
"y": 542
},
"02f27f3a-8f61-4306-86d9-68b74bd1f339": {
"x": -905,
"y": 471
},
"0446c887-ea83-4752-bce0-5b42cd53c592": {
"x": -590,
"y": 723
},
"98f7b45e-c374-4b0e-90fc-3df6f970491e": {
"x": -421,
"y": 722
},
"b886fc4e-9ded-493c-85c5-3245e76c010c": {
"x": -320,
"y": 608
},
"913df35a-7449-4a57-b054-fe589ceaef0c": {
"x": -931,
"y": 746
},
"3bd8f101-0c5c-43ef-9b57-9680f00e61c5": {
"x": -959,
"y": 593
},
"206a094d-bfff-4b22-8c4f-5c8692b0e997": {
"x": -1053,
"y": 466
},
"73891228-c106-4e68-ba4e-3c2c29a30c25": {
"x": -1162,
"y": 581
},
"e9d7882a-9d32-437d-83f2-d358b6537796": {
"x": -1191,
"y": 464
},
"d44fad8d-4355-4cf1-80b8-b54075a628a0": {
"x": -1194,
"y": 362
},
"5916b33c-4616-4375-bea2-cddae9f1de6a": {
"x": -1177,
"y": 229
},
"ea25d0d7-6ccf-4581-9a76-d32544b611b9": {
"x": -854,
"y": 815
},
"24ccaaaa-7a0a-41f2-bb13-bd07d43706e4": {
"x": -805,
"y": 972
},
"afc093a7-ce51-4fff-b53a-50c842f04acc": {
"x": 106,
"y": -303
},
"0cf4a1ef-aa1d-48cc-a42f-fd092f735531": {
"x": -114,
"y": -404
},
"ad6b51e8-3c16-4acb-bb90-6d7b71010d92": {
"x": 47,
"y": 336
},
"19f908a4-1c44-4f76-9151-d5e005f6f7d8": {
"x": 236,
"y": 366
},
"877eb85a-77a2-4451-82bf-f5e918be857d": {
"x": 806,
"y": 270
},
"abe50309-a241-41e7-ac01-8eef9ffc2dc7": {
"x": -236,
"y": 348
},
"85fe029e-0395-40b5-853e-be22c49d7718": {
"x": -104,
"y": 368
},
"06785486-acd6-4426-a333-bd442115b828": {
"x": 202,
"y": 703
},
"19901872-4570-45c8-abed-eb1e16eb7326": {
"x": 375,
"y": 472
},
"0a480232-fb27-46dc-8b76-38195bc05cfa": {
"x": 420,
"y": 553
},
"99789d7c-436f-4904-a9b5-b34298856cc5": {
"x": 582,
"y": 540
},
"5568b963-fc96-4f3d-9e4d-85b1e678bded": {
"x": 285,
"y": 586
},
"4a93e9e0-c656-4cb4-baa6-c764754452ca": {
"x": 309,
"y": 804
},
"eac7456b-d201-4c1f-9bcb-8a516839e821": {
"x": 734,
"y": 518
},
"ce9d57be-8f98-43a8-afaa-33b4c77d09d0": {
"x": 643,
"y": 456
},
"a309a169-0db5-4daf-9d94-37fa49d45e5b": {
"x": 482,
"y": 377
},
"7f7e6457-51e4-4ddb-96e5-e22b9fed11ae": {
"x": 962,
"y": 352
},
"b9a93a82-c143-45d2-a7ce-de818267d2fe": {
"x": 788,
"y": 420
},
"c43976d0-4377-4f0b-a7c2-a392c7a22743": {
"x": 875,
"y": 494
},
"edf80cb8-81e6-4156-bb77-87a43c921826": {
"x": -92,
"y": 500
},
"315fb89b-48d2-47ab-b066-22233a0c45dc": {
"x": -4,
"y": -265
},
"65105cc4-6cb1-470d-9431-8961daa27c5e": {
"x": -295,
"y": -427
},
"c68ef4d1-55d9-464e-b288-0907092f8202": {
"x": -513,
"y": 815
},
"8500b57a-1123-439b-92bf-baa606f271e1": {
"x": -405,
"y": 1007
},
"eb303006-1fea-4976-a1ca-87a2973671f4": {
"x": -882,
"y": 281
}
}
\define width() calc(100% - 15px)
<div class="tmap-mobile-editor">
<div class="tmap-flash-message tmap-warning">
The editor is not displayed in mobile mode.
</div>
</div>
<div class="tmap-desktop-editor">
<$tiddlymap
class="tmap-sidebar-map-editor"
editor="advanced"
object-id="main_editor"
click-to-use="false">
</$tiddlymap>
</div>
{
"originalVersion": "0.17.8+10010",
"dataStructureState": "0.11.0",
"showWelcomeMessage": false
}
{
"tiddlers": {
"$:/plugins/felixhayashi/topstoryview/config.js": {
"title": "$:/plugins/felixhayashi/topstoryview/config.js",
"text": "/*\\\n\ntitle: $:/plugins/felixhayashi/topstoryview/config.js\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n(function(){\"use strict\";exports.config={classNames:{storyRiver:\"tc-story-river\",backDrop:\"story-backdrop\",tiddlerFrame:\"tc-tiddler-frame\",tiddlerTitle:\"tc-title\"},references:{userConfig:\"$:/config/topStoryView\",focussedTiddlerStore:\"$:/temp/focussedTiddler\",refreshTrigger:\"$:/temp/focussedTiddler/refresh\"},checkbackTime:$tw.utils.getAnimationDuration()}})();",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/topstoryview/layout": {
"text": "html .tc-story-river:after {\n content: \"\";\n display: block; }\n",
"title": "$:/plugins/felixhayashi/topstoryview/layout",
"type": "text/vnd.tiddlywiki",
"tags": [
"$:/tags/Stylesheet"
]
},
"$:/plugins/felixhayashi/topstoryview/Configuration": {
"title": "$:/plugins/felixhayashi/topstoryview/Configuration",
"text": "Please see the [[GitHub page|https://github.com/felixhayashi/TW5-TopStoryView]] for more information on the options.\n\nSave and reload the wiki to activate changes.\n\n<table>\n <tr>\n <th align=\"left\">Scroll offset:</th>\n <td><$edit-text tiddler=\"$:/config/topStoryView\" field=\"scroll-offset\" tag=\"input\" default=\"150px\" /></td>\n </tr>\n</table>"
},
"$:/plugins/felixhayashi/topstoryview/License": {
"title": "$:/plugins/felixhayashi/topstoryview/License",
"text": "This code is released under the BSD license. For the exact terms visit:\n\nhttps://github.com/felixhayashi/TW5-TopStoryView/blob/master/LICENSE"
},
"$:/plugins/felixhayashi/topstoryview/Readme": {
"title": "$:/plugins/felixhayashi/topstoryview/Readme",
"text": "Please visit the [[GitHub page|https://github.com/felixhayashi/TW5-TopStoryView]] for more information."
},
"$:/plugins/felixhayashi/topstoryview/top.js": {
"title": "$:/plugins/felixhayashi/topstoryview/top.js",
"text": "/*\\\ntitle: $:/plugins/felixhayashi/topstoryview/top.js\ntype: application/javascript\nmodule-type: storyview\n\nViews the story as a linear sequence\n\n@preserve\n\n\\*/\n(function(){\"use strict\";var t=require(\"$:/plugins/felixhayashi/topstoryview/config.js\").config;var e=\"cubic-bezier(0.645, 0.045, 0.355, 1)\";var i=function(e){this.listWidget=e;this.pageScroller=new $tw.utils.PageScroller;this.pageScroller.scrollIntoView=this.scrollIntoView;this.pageScroller.storyRiverDomNode=document.getElementsByClassName(t.classNames.storyRiver)[0];var i=$tw.wiki.getTiddler(t.references.userConfig);var o=i?i.fields:{};$tw.hooks.addHook(\"th-opening-default-tiddlers-list\",this.hookOpenDefaultTiddlers);var r=parseInt(o[\"scroll-offset\"]);this.pageScroller.scrollOffset=isNaN(r)?71:r;this.recalculateBottomSpace()};i.prototype.refreshStart=function(t,e){};i.prototype.refreshEnd=function(t,e){};i.prototype.hookOpenDefaultTiddlers=function(t){return t};i.prototype.navigateTo=function(t){var e=this.listWidget.findListItem(0,t.title);if(e===undefined)return;var i=this.listWidget.children[e];var o=i.findFirstDomNode();if(!(o instanceof Element))return;this.pageScroller.scrollIntoView(o)};i.prototype.insert=function(t){if(!t)return;var e=t.findFirstDomNode();if(!(e instanceof Element))return;this.startInsertAnimation(e,function(){this.recalculateBottomSpace()}.bind(this))};i.prototype.remove=function(t){if(!t)return;var e=t.findFirstDomNode();if(!(e instanceof Element)){t.removeChildDomNodes();return}var i=this.getLastFrame()===e;this.startRemoveAnimation(t,e,function(){t.removeChildDomNodes();this.recalculateBottomSpace();if(i){this.pageScroller.scrollIntoView(this.getLastFrame())}}.bind(this))};i.prototype.getLastFrame=function(){var t=this.listWidget.children[this.listWidget.children.length-1];return t?t.findFirstDomNode():null};i.prototype.recalculateBottomSpace=function(){var t=this.pageScroller.storyRiverDomNode;if(this.getLastFrame()){var e=this.getLastFrame().getBoundingClientRect();var i=window.innerHeight;if(e.height<i){t.style[\"paddingBottom\"]=i-e.height+\"px\";return}}t.style[\"paddingBottom\"]=\"\"};i.prototype.scrollIntoView=function(t){if(this.preventNextScrollAttempt){this.preventNextScrollAttempt=false}if(!t)return;var e=$tw.utils.getAnimationDuration();this.cancelScroll();this.startTime=Date.now();var i=$tw.utils.getScrollPosition();var o=t.getBoundingClientRect(),r={left:o.left+i.x,top:o.top+i.y,width:o.width,height:o.height};var n=function(t,e,i,o){if(t<=i){return t}else if(e<o&&i<t+e-o){return t+e-o}else if(i<t){return t}else{return i}},s=n(r.left,r.width,i.x,window.innerWidth),a=r.top-this.scrollOffset;if(s!==i.x||a!==i.y){var l=this,c;c=function(){var t;if(e<=0){t=1}else{t=(Date.now()-l.startTime)/e}if(t>=1){l.cancelScroll();t=1}t=$tw.utils.slowInSlowOut(t);window.scrollTo(i.x+(s-i.x)*t,i.y+(a-i.y)*t);if(t<1){l.idRequestFrame=l.requestAnimationFrame.call(window,c)}};c()}};i.prototype.startInsertAnimation=function(t,i){var o=$tw.utils.getAnimationDuration();var r=window.getComputedStyle(t),n=parseInt(r.marginBottom,10),s=parseInt(r.marginTop,10),a=t.offsetHeight+s;setTimeout((function(){$tw.utils.setStyle(t,[{transition:\"none\"},{marginBottom:\"\"}]);i()}),o);$tw.utils.setStyle(t,[{transition:\"none\"},{marginBottom:-a+\"px\"},{opacity:\"0.0\"}]);$tw.utils.forceLayout(t);$tw.utils.setStyle(t,[{transition:\"opacity \"+o+\"ms \"+e+\", \"+\"margin-bottom \"+o+\"ms \"+e},{marginBottom:n+\"px\"},{opacity:\"1.0\"}])};i.prototype.startRemoveAnimation=function(t,i,o){var r=$tw.utils.getAnimationDuration();var n=i.offsetWidth,s=window.getComputedStyle(i),a=parseInt(s.marginBottom,10),l=parseInt(s.marginTop,10),c=i.offsetHeight+l;setTimeout(o,r);$tw.utils.setStyle(i,[{transition:\"none\"},{transform:\"translateX(0px)\"},{marginBottom:a+\"px\"},{opacity:\"1.0\"}]);$tw.utils.forceLayout(i);$tw.utils.setStyle(i,[{transition:$tw.utils.roundTripPropertyName(\"transform\")+\" \"+r+\"ms \"+e+\", \"+\"opacity \"+r+\"ms \"+e+\", \"+\"margin-bottom \"+r+\"ms \"+e},{transform:\"translateX(-\"+n+\"px)\"},{marginBottom:-c+\"px\"},{opacity:\"0.0\"}])};exports.top=i})();",
"type": "application/javascript",
"module-type": "storyview"
}
}
}
{
"tiddlers": {
"$:/plugins/felixhayashi/vis/img/network/acceptDeleteIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/acceptDeleteIcon.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNVQxNjo0NTowOCswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDVUMTY6NDU6MDgrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjBmYzFjNjhhLTcwZTYtMGY0Ni05ZDk4LWFhNDVjNjYxYThjODwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpiYzZmYmUxNi1mOTBkLWI1NDQtODUzOC05MjFkNjBiZjU0ZWI8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDVUMTY6NDU6MDgrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjBmYzFjNjhhLTcwZTYtMGY0Ni05ZDk4LWFhNDVjNjYxYThjODwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNVQxNjo0NTowOCswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOmJjNmZiZTE2LWY5MGQtYjU0NC04NTM4LTkyMWQ2MGJmNTRlYjwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz450LuoAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAATUSURBVHjajJZtTJVlGMd/13U/z+F4sBQOCiovZiMt8YiKZrMtypdh09StbLOtzA1RUmuTkppzIilJOB0Oa21tbaV+6UP5Mlnm5heVkfhyQJ1ONITAkAMqcTDonNOHA6g9qF3b/eF5/vf18r/u676uWwoLC3G73QCoKiICgIhQeGejVw3LMOTIP0xGdRQAFi1E9DyGSkLsKxtWEmAQuXfvHrJlyxZiYmIQkQHjeac/jjfKBsJ8YlnRzQKIgBoIh8ByaRSICAilRCjdk1UeAIhEIogIPT09SFFRER6PZ4DByqr1+WpRoYAquKYuqCPz9SZeeCVA4vggAC2XPVw54eXi0WTOH8yIslIIs+bryTsq+hl0d3cjxcXFuN1uVJVVp9dvEigSwP3iYj9vfV7L6IldPE5uXvZwcKuPsz/7+qLc/I1vexFAMBjEzJ49G9u2WV1TsEaVUhOBmJxVVeR9X8NTI3t5kgxN6GXakia67/bSeC4ZkexprccCZxLnVodCIRRgdU1BgsBuBVzz8qt49yv/oMb2f5TJd7kzBsXeLPHzal4VaiAmZnfupY0JIoKqKqoUGAHX9MV+llf4HxmtMaDyaDZLtvqZushPWEHsAlVFP/3rswSNsEEt4O0v/E9MCebx8PxCP5YNlr3hg7+/TFBEl6mClflGHUl9VdIvGycuJdDgvm/bAtu6j3c0uSmZufQhnRHPBsnIqcOyQGSZAjlEgCkLGh3RDHk6yJWTCQCUZi+gav8Mzh3KpGzeQgCuV3sZEhd06D2f3QgCas9XIuozCjw3q92xMXF8O8218QDM/fAMGLAsmLO2Jnof6rwkpjv10rLaURtEJimWJomtMDLdGUlyRhuBei8AU5Y0M2ZCMyPSW8hc2AxAW4OXUeOdbcKbFsQ2YKwkizCg1uAH9kxWOzU/+ga+X8s/Q/iBKur4w8tL79c69ESiTFXFQvQmyhhu1XsYNeHhW5s2o4OuwDB6ug2uISF8fZED9HQbgh1PM3Zah8PB7UYPGBBalDB+MFB/Kt6x0e0JMSzpDr9XxzmwprNxDB95F9eQkANrrI3HssFQq4hWAnDxaMqgaUoYF6DJ73X8b74Qz/C0Qds016tSUANqVypG92EMnD+SwZ9XPc5KSg/QWu900HotgRHjnA5uN3m4diojmiKzV3cNL25DdTvGwJESn0NhzMR2Ohqc6etoiidpgrNET3zrix6yKf3Bld8WLZ8IZcAG6ip9/LQpyOIt91vG2BltHCwezbbpKzEKYoFodKVO+fUh48f3+Lh20oexIBQqExFk586dxMbGkntp41rELscozFpRxaLN/6Mv/cf4hcMzCYdAzboDKXm7Ozs7MTk5ObhcLs4lzqmeeus4GCublgvJtF61Sc1qxR0beqzh7g4Xx3ZN5/KxaagCsvlASl4pQG9vb5TB0KFDibZtZfmlonxcVgVhAcuGjJxa0l9uImVKO3GpXahA4EYsjbXx3PgtmYbTk1CiKYM1h1LzKvrncmdnJ1JeXo7b7cYYQ9+A4L2r21IJR9ZhXOuxXGAZBvKv/Uui8wELVHYgUn44bdWNfmKRSIRgMIiUlJQQGxs78Krof7oYY8jt2TUCy3oH0XmI+MAejW0gYpoxxg/mF4zu3a8rbvXrPuigq6uLfwcA6IKAIsDf9kIAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/img/network/addNodeIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/addNodeIcon.png",
"type": "image/png",
"text": "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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDo0MDoyOSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6NDA6MjkrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjVkNWIwNmQwLTVmMjAtOGE0NC1hMzIwLWZmMTEzMzQwNDc0YjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2OWVmYWE1NS01ZTI5LTIzNGUtYTUzMy0xNDkxYjM1NDNmYmE8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6NDA6MjkrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjVkNWIwNmQwLTVmMjAtOGE0NC1hMzIwLWZmMTEzMzQwNDc0Yjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDo0MDoyOSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjY5ZWZhYTU1LTVlMjktMjM0ZS1hNTMzLTE0OTFiMzU0M2ZiYTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5WKqp9AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYXSURBVHjafFZtUFTXGX7e9z27sveuMCwYV8ElrA7YSFYHtJUPkaaI0aRqG8wP00zUzljDINNSA/2ROtpO24SxnahlxjYd7SSjmUkymcxYlDhQPzHGisEVp8HwYWCVVVgEsrsuLnL74+5uqTF9Z+7cO/d8PO95zvO851BlZSV0XQcAMDOYGQBARDhX3JRmMDYZwLPMWAzGHACYIgwS46oBNBNwtOL8CwE8EkSEUCgE2rJlC2w2G4go8Zwo/bMDgnoG6gxLfAAAYvPDMCCszKTAMIAGAhrWnf15AAAMwwARIRKJgDZv3gy73Q4iAjPjxIr9VVOMRhbAYKB8zvrO0llrfEsdKwLZek6YAPSFvtSu3GtLawu0ZJ6625SHGBQB1T88t6MxvopgMAjaunUrdF0HM+P4yv27DMYeJmB1RqW3Jnf3tQX2p0L4P9EXuqEd7PmDp+XuMU9sRbvXnnt1TxxACgoKYLVacbzsQDUJGkSATe6qi28uPtzusM6Kxie6NHLGUX3lxVUNX9StPHnn4wy3njuUYcu6n2pNi66avcEXnByP/nv8aiaIyrqz2gO5A9+9FI1GIfn5+WhZdTAdjFMkwMvZOy7uWnTAOz3L4Yk71m3t69fdfTDoUGTBeHTUfiHQ6lo7Z2OXJvpDAChKe+aOCdKRKWxZ2+1qb3yyd3GYmRkQ7GQBVs99wfv6on3eR2k4PdTkDEbH7IuS8/svld/561PJS/pDk1/bzwx94pze7xc5v/H+YPY6r5BAkdrJzODTK46lE6PeYEJt7u+8j+OZwCBiEAgAoNgKJoEQf6PvNvdrXgtZoNhSf7q0KZ3B2AQmVMze0Jmt54S/DcDCVig2NcvEUGxJAE4Pl+YOr0iv6BRSIPAmBeBZAmHlE2sH4p1uhrq1s0MnnEQMBsf8wRASAICQQCCITN1X7/sOuc0kgOVp3/fPs2WHv+coG7gQOJUnLGsUCTxEjPzUohEA+NfIWUdtx0+efzA1kSSkIGyBAQNCKgHAEBAJ3u79U7kiAcWoem/gb5Fd33nrH3kp+SMWtuAB+GllMJxMjCx9QRgA3uiqL5kwHiTlpxb3smlfMDGYGPP1hcMAkJvs8ScpfdJspdj+MK6Pf+5+u29vyb4lR4+BGEziVESAkEpw6Av1OhUpHCz4qOXbzFWz4Ncdj/v/o08Lt92ODDgZDCEFJYoUGH4mzugP92puPTf0pD3H7wvfdFZdqSxnMtWjoGAAmG9fOLxjwesdjT2/XzIQ7ks3sycYMSEwGHNtWf5bkX5NkYCJBxUBXiGV0XHvosOt54Zey33j/K+8P33++vjnbiGJbbLE+J9SANAb6nJ2B79wcUwETAwQQ7fMjPzMvfP8ja87HUIKMOiaAqMZhrGmLdAy78eZrwwsTS0eObTs+IdtgVanxBUExqGbb5VzrIISGIoUXsmqbgEhJldCQWqRf27SvPAn/o8XmgLhZsUkR4ll37mhk3n94Z4OlzY/7NLcYZfm7o1z2zT4vsvUNSXqprBCkmiTFbPX90/fh8GIT2sf+zTPdDMf4dVnNg4z+E0ixsGeBs9jd5ViSgLHjCb/peaR+MD3d4/ZJg2llyuG2Vwy7QWAs8PNnn1f7vkGSGxAzE6mk+kxkx/p/4unffSCR0hAoL1EBCYiPNdWNcwkNQTCR7feWX6g+7f/A7I8rcw/U6UEe0Ndrhc/W7mtL9ztmqlSgstSS/zTJ28dalpOpkRryrwbhwBACgsLMWPGDOT4ll3qyeqAkJTdCF7P/CrUY/GkLL1rE+2hTbSH8+0Lb/WEuhzhyaA905blf9Vd/895WnZwLHrPevir/cvOB1oLYpTtLrm6oYGIMDExAaqtrUVKSgqYGSKCk0WHq5ikkWEWtNL0imv5qUW+RclLRjJsrhBAuH1/QL8R7HR4xy5nescuP23E6hOA6mLv+sb4uTw6Ogqqq6uDpmkQkcStorX4XRcM1FjZ+kvFFjCJKU1WpkNJJUqIMtX1RyLeX3JtQ0JRhmGYZ/L27duRnJycuFGISOJ9pqh5lrB6iYgqGOxRrOaa54DcZmKvkJxk8JHC9rKh+KVhOsD4+Dj+MwADIf8n5m4xGwAAAABJRU5ErkJggg=="
},
"$:/plugins/felixhayashi/vis/img/network/backIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/backIcon.png",
"type": "image/png",
"text": "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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNTowMTowOSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTU6MDE6MDkrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmI2YjQwMjVkLTAxNjQtMzU0OC1hOTdlLTQ4ZmYxMWM3NTYzMzwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpmOWQ3OGY4ZC1lNzY0LTc1NDgtODZiNy1iNmQ1OGMzZDg2OTc8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTU6MDE6MDkrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmI2YjQwMjVkLTAxNjQtMzU0OC1hOTdlLTQ4ZmYxMWM3NTYzMzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNTowMTowOSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOmY5ZDc4ZjhkLWU3NjQtNzU0OC04NmI3LWI2ZDU4YzNkODY5Nzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4jq1U/AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAVTSURBVHjanFVfTFNnFP+d77ve8qeVFbBrpcVgRrCRFikFByLxwSAaE32oRCHD6JMxxhhn8G2RxxH3MsOTbyYsmCAxPMmMMYtkIUYmK60OO0qAK23BFlNob0uh3x7WS5jLZPpLbm6+k/P9zrm5v9855PF4UFhYCABgjIExBgAgIqRSqRIi6gDQRkQ1RGTB3wgR0e8AHgH4Sa/XR/EBiAiJRAJ04cIF5Ofng4g2n0gkUkxENwF0c843LzHGQEQQQkCLExEA9ALotVgsUQAQQmgNQhJCbF5kjCEUCl0moj4t5na7fTU1NUpVVVXUYrEkASAcDhe8efOmxOfzWScmJqoBdBNR99LS0hWz2dynNSSEAF28eBGFhYVgjCEcDn9HRD1EhIMHD3o9Hs9kWVlZAh9BKBQqGB4edr58+dKZ+6JbJpOpBwBWV1fB6+rqIMsyIpHIFcZYL2MMra2tY5cuXRrfuXNnBtvAYDBk3G63oqpqZm5uzgrgSDKZjBoMhueZTAbc5XIhFouVEtFTxhiOHTs2dv78eS8+Efv374+oqpqZnZ21cs5PJJPJPlmWkyynnBuMMTQ0NHi7uro+mVyDx+Pxulwu71ZOlkqlSonoJhGhvb39s8k1nDx50ss5hyRJN9PpdKlERB2aWjSVaEilUvzBgwcORVEs5eXloXPnzk1sV8BkMiUdDofP7/dXZ7PZDilnIhw4cGBeS1pbW2P37t1zBwKBikQiUUREWFhYsHHO0d7evm0Ru90+/+rVq2rO+XGJiJxEhMrKyhgAjI6OWoeHh5tWVla+4JzDZrO9bW5unhwcHGzz+/32np4e+xaDbfoHAMxmc6ijo2O0oqIiJkkSNjY2HBIRmRljMJvNyWfPnln7+/tPMMZQXl6+0NbW9qK2tjYcj8floaEhqKpq+HCkbD3PzMwYBgYG0NXV9UuusFna2kEgELAQEQ4dOvSis7PzN41Ar9dnrl27NqCNkv/C3bt3zy4tLVmICJxzEBFJRBQmorLFxcWCqqqq0Pj4eO3Y2JhbUZTdra2tL2pra8OJRGLHnTt3zkqS9K+huHU4EhHMZnMoGo0W5OIh7nK5jjLGKq1W69vDhw8rRqMxMjc3t2t5eXnX5ORklc/nM+fl5SWnpqa+0uv1K/n5+Ws6nW5NluXNd15e3ppOp1uz2WyzZ86cGQ0Gg6ZAIFCZzWZ/lYjokRDiuN/vt7W0tMw3NTUpbrd78P79++5gMFgRiUTKHj58WMYYQ3V19etTp05tq6Lp6Wkb5xxCiEfc7XZPM8a6FxcXTfX19a/1en2Gcy5qamreNjY2/qGq6joRZe12+9Tp06e3JY/FYgWPHz8+mhvr3/CWlpbk+vp6PmOseWVlBS6XS9GSJUkSdrs93NDQ8Oe+ffvC/8fJIyMjddFo9Esi6pVleVjT2m0A8Hq9zqGhIefnjoknT544A4GAM/eDbxMReFNTE0pKSpKqqsaI6Pj8/LxVVdWM3W6PfCr5xMTE1zllXS0uLn6aSqXAGxsbodPpoNfrn6uqCs75EUVRrJFIZMfevXsXdTrdxseIE4mEPDIyUu/3++tynd8yGo29RIR0Og26fv06ioqKwBgD5xzv3r27zBjrIyJIkgSHwzFZWVmp7NmzJ1ZaWpoAgGg0WqgoSvHMzIw1GAw6tvjhitFo7NPW5fv370Hd3d0oKCgA53zTQMvLy+VCiKuSJH0rSdLmztZytIWv5RPRD0T0Y3Fx8dzWfby6ugopHo//w4mcc8iyPMc5v5FOp7/PZrOdQohWInIC2C2EgBBigYi8Qoifs9lsv06nWyIiaFxagXg8jr8GAGxuIe7LBeWhAAAAAElFTkSuQmCC"
},
"$:/plugins/felixhayashi/vis/img/network/connectIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/connectIcon.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDozODo1NyswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6Mzg6NTcrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjlmYjUwMDU0LWE3ODEtMWQ0OC05ZTllLTU2ZWQ5YzhlYjdjNjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo3ZWRhMjI0MC0yYTQxLTNlNDQtYWM2My1iNzNiYTE5OWI3Y2E8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6Mzg6NTcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjlmYjUwMDU0LWE3ODEtMWQ0OC05ZTllLTU2ZWQ5YzhlYjdjNjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDozODo1NyswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjdlZGEyMjQwLTJhNDEtM2U0NC1hYzYzLWI3M2JhMTk5YjdjYTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4ubxs+AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAUtSURBVHjajJZ/bNT1Gcdfz/P53PV6B4W7VltLqdAaplIOiMOoyxxJCSs/Gv/yB4gzJroAosmmDklwkYWR0bQsdmkykoojTpcsWYLxD/lRZdMQkTHRtkLZRqG0tIVe7662vTu43n32x/VKZ/jh89cn38/zvN7P5/l88zwf2blzJz6fDwARQUSm1n8s31CM0/VAnbNmsUPuAsDpgEO+Bg4C7//iyv5hvmMiQiqVQpqamvB6vVNwEeG1JZtCBrYi/MrkAwDNgjhwAlbzICBLA0rDb0+/839C6XQaaWxspLCw8Dp86cbNmqVFJQddE6KzdjZ9D89g+B6fSyCOcyn1nxil+O9xKg5HqWFSHGXLjrP7W/ICqVQK2bNnDz6fDxFh65KNvxbHDhF4rJj2bXPo+IGfcW5h5xL4f99P+FCEMIAob75x9t0dAMlkElNXV4e1lteXbNqiQoMaeOFOjrdU868SD2luYyEP6dUh+sYmSHeOU6GO5Z8VLx5+NNZxIpPJ5AS2L3upROCoCvz8Lo7vnkf77cAHhpiz/zIL9vWz8L8p/NvupmM0Q7pjnAoLqz8tDrc8MnQqYVUVhVdF4LEg7b+rvDn8wDDlH0WoPpukLJImSBaMwjcJqmwWts2jPZLG/8kwYVFeVdXXZcFf4yVDc2cNKfBFmD9X+0ncCP58F48eG+Feo2CAUkvs4dl0V/uJvdXLiiV+ut++n7YLSfxPfMMG54ChzB3WIesVWB2i82bw1AR6fJR7C4VsfYiv6u/k3A9nEgP4zXke8DiYHyAOMK+QxPIgnZ9GqSHr1itQJ8DK2fTerDQ+S/bHRXQJaHSCwNIZ2Xh+7+S3VAmwNMBA/tuPZtErgKquUmdMWIFlRURvdamRNEXGwIWrlP47pTMzLiunxghGMwTLvcTWlHAp77s4QNSrYMQtss6ZMgWqCm5cHoDHO1nbk6K8zEN8+3zatv2Hn1b59EqJZdxmYUERg9P9KwpIiAOTdWUWBXuLzB/vZG3P1Un4PNp2d1MbmyD45TWCxuCsQm0x56bHGHFYEZwxok7toAA9Sfw3hCcoL/NOwi9QO5wmWO1j4JEgZxTkodmcWRGkf3pcX0r8xoAaBixKu4U5/xwndM+0tpAvS6mP+PZK2nb1UBvPEKwKMLDvPj4ESGc55lGy303sdJKQdZB2rkMdctAB/4gzN+/Q2ENNd4LyUi/xN+bTtquX2thk5nk4wI3gAF+OMNcA1nFQDfK+BY5GqbkwWabTY5QZhXWlnNx1ntrY1Rz87fuvw29m/Sn8J+PUGAFj5T19baA1IspuBZp7cx1x4SwG1cEf+lgRSROs8jGwb+Ht4QB/GSSsAhYano39LWIBxNEIbP14hPDuiyS2VtJuHXQlKKvxM/jiXDq/D/xPlwifGMkJZB2NIoKpr69nxeiZxLHicFSFVWfGqBidIP3LSjrWltD94CyufF/4kQgPuVz2Lz93+dDRa9eu5QQ8Hg8/iXee+Dy4CKMs7xqn4nwKz9IirhQqmVuB42m8ey+x7LMoD6iAON782eChhqmRuXfvXgKBAKqKqtI0/8nNKrQI4BVYXkzHgzPpC88gWuHL/caXrhLoGiN0apSKr0ZZRBZM7q2w5ZnLR1oAnHOMjY0hra2tFBQUYIyZmstvVT1Z6eDlAuEVq7merxmwueNPDXy9PvybjKP5mctHLk4/XTKZRJqbm/H7/VNw1VyEMYbW4FN3WNWnnchKoy5sHeVGBRX6VWi3ymFx7r11Ix8MTX/y5C2RSPC/AQB61erowbpqSwAAAABJRU5ErkJggg=="
},
"$:/plugins/felixhayashi/vis/img/network/cross.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/cross.png",
"type": "image/png",
"text": "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/GMzLdsAADvGaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTQtMDItMTRUMTE6NTU6MzUrMDE6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE0LTAyLTE0VDEyOjA1OjE3KzAxOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNC0wMi0xNFQxMjowNToxNyswMTowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NjU0YmM5YmQtMWI2Yi1jYjRhLTllOWQtNWY2MzgxNDVjZjk0PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjk4MmM2MGIwLWUzZjMtMDk0MC04MjU0LTFiZTliNWE0ZTE4MzwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjk4MmM2MGIwLWUzZjMtMDk0MC04MjU0LTFiZTliNWE0ZTE4MzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo5ODJjNjBiMC1lM2YzLTA5NDAtODI1NC0xYmU5YjVhNGUxODM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMTRUMTE6NTU6MzUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjIxODYxNmM2LTM1MWMtNDI0OS04YWFkLWJkZDQ2ZTczNWE0NDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0xNFQxMTo1NTozNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NjU0YmM5YmQtMWI2Yi1jYjRhLTllOWQtNWY2MzgxNDVjZjk0PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAyLTE0VDEyOjA1OjE3KzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjc8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NzwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+cZUZMwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAA2ElEQVR42gDLADT/AS0tLUQFBQUVFxcXtPHx8fPl5eUNCAgITCkpKesEHx8fGgYGBjH+/v4a+Pj4qgQEBFU6OjodMTExzwQUFBSvEBAQEfX19SD19fVqNDQ0CElJSd/9/f2vAwEBAfrn5+fkBwcHLRYWFgsXFxfz29vbo9LS0uwDDQ0NDfPz81orKysXIyMj+ODg4Avh4eEa/f391gMkJCRYPz8/KUhISOMCAgKh8fHxHRsbGx4UFBQQBDk5OeY7Ozv7CAgItPb29vMEBASaJSUlTQ0NDesDAEwpT0Ko8Ri2AAAAAElFTkSuQmCC"
},
"$:/plugins/felixhayashi/vis/img/network/cross2.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/cross2.png",
"type": "image/png",
"text": "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/GMzLdsAADoRaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTQtMDItMTRUMTE6NTY6MTUrMDE6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE0LTAyLTE0VDExOjU2OjE1KzAxOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNC0wMi0xNFQxMTo1NjoxNSswMTowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6OWIwNjRhODctYWNlZi1jMjQ5LTg5MWUtNDAxOTVmMWJjMTNkPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjlmYTI2M2QyLTljOWMtNWY0OC1iYjNiLThmYmQ5NmI5ZTBhMjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjlmYTI2M2QyLTljOWMtNWY0OC1iYjNiLThmYmQ5NmI5ZTBhMjwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo5ZmEyNjNkMi05YzljLTVmNDgtYmIzYi04ZmJkOTZiOWUwYTI8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMTRUMTE6NTY6MTUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjliMDY0YTg3LWFjZWYtYzI0OS04OTFlLTQwMTk1ZjFiYzEzZDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0xNFQxMTo1NjoxNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj41PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjU8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PvQ0yV0AAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAHZJREFUeNoAaQCW/wE1NTWrERER3+3t7Xbp6emKOTk5IgQtLS3kBAQEdfLy8ipOTk5LQ0NDkAE0NDQAEhISxiEhITkTExPH9PT0OgMGBgaPMzMzVS8vL7XU1NRC7+/vEQNfX19lUFBQtfPz82EEBAQMNTU1HwMAMI4nIAoe9RQAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/img/network/deleteIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/deleteIcon.png",
"type": "image/png",
"text": "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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDo0MTowNCswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6NDE6MDQrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjc3NDkzYmUxLTEyZGItOTg0NC1iNDYyLTg2NGVmNGIzMzM3MTwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDowNmE3NWYwMy04MDdhLWUzNGYtYjk1Zi1jZGU2MjM0Mzg4OGY8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6NDE6MDQrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjc3NDkzYmUxLTEyZGItOTg0NC1iNDYyLTg2NGVmNGIzMzM3MTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDo0MTowNCswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjA2YTc1ZjAzLTgwN2EtZTM0Zi1iOTVmLWNkZTYyMzQzODg4Zjwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4aYJzYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYGSURBVHjalJZ7UJTnFcZ/73m/72PdJY1RbhoQp6lkXRAvmIYxdCUadLVOozPNtGObap1JsKipjiShbdoRbeKEiQHpQK3xj0xa03aamTbaTGyAYV1QGeqFi+JyiZFLAlmESBkWRmS3fyzslGkmnZ5/v/M873Oe75zzvqqoqAibzQaAiKCUAkApRdHIK/NFsx2NR91nOSILADDoJyzNaM4xxbtvPHh0iC+JiYkJ1OHDh4mJiUEpFSXPv/ziPC28TIiXDCOSrAClQDSEpsCwJPIhrEBRQpiSytXlQwDhcBilFPfu3UMVFxdjt9ujFTzfcLBADCoEEAFr1ZbrrNjch2vtEImPBgHob7fTcWE+bVXJNJ/NiFQlEGLvieXHKmYqGB8fRx05cgSbzYaIsPvywV8pKFaA7fGtLTzz61YWpo/xVTHQbufsq5lcez9zWuWhk5mvFwMEg0H0+vXrMU2Tn1wp3CtCiQ5DjGd3A/m/v8IDCZP8r4iNmyRrWx/j/5qktykZpXKzAjVDVxPzGqemptDr1q1jX3NRnIJarcDKK2hgR2ULXRfncv7UYv7xpovhnhiW5Mz+kefeSKO6LJ1A1xzEuk/Ojm4mRibpuZaMZW3OCtRUND60NmiICCIUShisx7a2sLMiQn4s77uEQgIabnqdfHIlgT1/qQeg8vs5dHhdCNB1wYn3RIiC995j26stjAbsNH+YiZJCESnS1Y/XxIXu8r4YIPv/VkVs3CTnTy2ms34xro1+sp9po6sxlTu34ultmsPVvy6is86FCHgO+DDs49zpjufBpCG+seYOC9OHaTidieicb9ouVAhKtouAseI710ma7pLuqwmgYfHqAFt+6WdLoQ/LBl11Lm7VudAa8vb72PCin9TlAWIsGGhLACD+kSAZnusYBii1XQAPYWDllt6ov2lrBkDBR2+6Ofuak2//3M+G/T4wAAPW7fPhKfRTVeqk9qQbFKRmDUTxS3N7QYGYmwzCkqklBGlPDEcTNv+sg9tNCbTXuvBWujE0bHrZj9JE1B/wU1Pm5PwJN6YBS9a2kVvQEcWnrh5GTFD3lxkYkqRMgYQlwVldUvDnen73LHTUuqitdKM0eAr9AFQfd1J/yo2aJn+2sn4Wdn5qEFODJskgBIjx5T0uCrQA08pnIjS9PERDjPnfOKXAMEBECUoGEIHBj+2zkt76UQ6dXheGAev3+cg74Kf6uJPqcicbfuond7cPy4SOiy7+tD9nFvZurx00KOk3CNEC+mE+vjSPBc7IWqgqTaPT60IMcO/xsXGa3HfKjRgRdbl7/KDg0jtubje6aHj7c7J3dgLQ2zoPwwQ91SooOQdAW1VKVMHty0kA5Bb48BycJn/LjWFGbLv4thvvb53kFvjJ+XEdWkPfjQVR/CcNKYgGMc8JWt5Fa2j+MIPPuyI2pa4IoHSkt6vLIuRaQ9q32khzt4GCxtNu6k46GeiIR2lIfDQQsafPzq1LGRGL9Gk9d+vrwewvfHPQOoexQVjxdB/auk/zmaUMdsfz6bVUtIalT7bxveP1ZHh6GPDPYeSzeD69kcpIfxymFWLNrka+ljhBTWkWwz2JiJT84YHnz2iPx0P20PkmRF5i6HYiwZFJsn/YzdezbzE3cQibY5xV266z6RfXohakb+xB9CjanCD9qTbW7Grk4WV38VZm0l6dhQiEw9taHSuDqrS0FIfDwXM3X9mHMsvRAk/sauDpQy38P+GtzOTGB9mEpkD0C2dS8n8zOjqK9ng8WJZFU+JTjasGvaCNXPpvJBPoMlm0OoDNMfWVxONfWNSUPUZ7TUQ56tCZlPwSgMnJSVRpaSmxsbFE1raw82ZxAZZRQUiBYUKGp5UlOX2krBzmoUVjiIKhHge9rfPo+Wcy3ZeXIYASgL1/X5RfMXMvj46OosrLy7HZbGitUUohIuzoem0RofALaOsghgWGjky0MiJTL8b0lOvI8hN1DKXKP0jd3TNTWDgcJhgMoo4ePYrD4Yi+KmaeLlprnrtXFo9h/AAlG1AqE8yFmBrC+jO0bgH9EVpO/1F2Dc5g//OAsbEx/j0Af+USsQynL1UAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/img/network/downArrow.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/downArrow.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/vis/img/network/editIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/editIcon.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNVQxNDoxMjoyNSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDVUMTQ6MTI6MjUrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjY5OTM3ZGZjLTJjNzQtYTU0YS05OTIzLTQyMmZhNDNkMjljNDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDozOWNhNzE5ZC03YzNlLTUyNGEtYmY1NS03NGVmMmM1MzE0YTc8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDVUMTQ6MTI6MjUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY5OTM3ZGZjLTJjNzQtYTU0YS05OTIzLTQyMmZhNDNkMjljNDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNVQxNDoxMjoyNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjM5Y2E3MTlkLTdjM2UtNTI0YS1iZjU1LTc0ZWYyYzUzMTRhNzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4ykninAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYpSURBVHjafFZtTFvnFX7Oea+NudiY2Hwam4CBlgQwXdKREDKUoYg0jbRJ29RJ2VZ1mjRFUxSpA3VTfkzJfkQbS7spU6rtx5Z2UtppScjaHxvLuiatWi2jLEoMIUDCh23g2gbj7+tPuPvhOurawPl1dc99n+c55z33fV46ceIEZFkGADAziAgAQERoe/9ZK4GPM/AcgbsIXAcABCgMvkfAqAa89eDoJyF8LogIqqqChoaGYDAYHr8kItS8uc8iIH6iAa9IkAo5EAQX8pqmgUVBCBggYFgDhv0/GAsBgKZpICJkMhnQ4OAgZFkGEYGZUXmp+0cS+CKBwWA0DVRPOg5Zl2q6zaHyJlnVAMQXVTkwHrUqH0Xsvn+tdQAAMQDgpPLS2MViFY8rkGUZzIzaS/t/xqCzGggtz9e697zsnKhoLUtim4jOq/LE6x7X0nsh16dEZ5a/O3a2SCAOHjwInU6Hujd6ThJ4mCDQ+b2G232v7v6vwarPbQn8MGlMr+X0kpE3Wr5Zt5hL5HPhqYSdQIfKJ+yhxDPKWC6Xg+jt7UXD5b5KBt1kCHS85Ljd8/On3NupfnhFaZj4rWff1B98B1R/hnUmKd36bdtCNl4g0en4edNE/cXwLq8qMTMIPAQwmo/WuHvObA8+9c58k/dKtD0TyZWXN5YGA7ej7epKxspM//7SoNOdWc/Jyq2wiwhDzPxT8cP0jys3VMM7OmL0/77zn4Ydui3b8uiK0jD7RrA77c9Wd57cefPpF+2T6bWsFPWkaiPTCWvTsZpHFU+XrS+8G3AR08F6X+1FJvBxQQzHQOWk2SmrW4FPX/U2LVwPuDZj+fJKl2khPpeyAqA9rzR/YqwuiWXX8taN/CabGkrVuq9YJlkQQDjOAJ5jAhz9Vt9W4N5/rNp8I+vtMV/aZm4zLnUNNt0urdYnF68HWoJj4Wo1mLGUNRr8LEgDgNqeCh8xQIKOsgC7iAjVe83rT9zQa8uNM28u70kspessu8q8zq/V3NcZpVzb9+0zmVhOvvvrhaMVzrJg0zeq7xMVCCwdpnWSGBqjUyJwLTFgbvxie3w31uoWR1Y74r60rdxZqrR8q85t2W2MGCp12bm/KC3hyaSTiMhxuGrKcahqpbjOaDOoEhOEoFqJQCCJvqA85I6bfTdDjQlf2lbxVNlS6wt19yy7jRHZZlDnrinNj/6sHMhnNw2Ogco7O79e5fm/xQywRBBCEAuwn4gQ96bkYj4Vyuq9N1Z3Bj4Od5bs0MXt/dZZ21ctiqFan174q985P+Lfp+U1g7XDON/1ctP458WlVjLyJhOISZE0wM0S1QfuRC3lTjkJAKKEtNC9eIOhSh9xHLZOJRZTFuXDsEoStLkR/768ummsaJG9Pb9oe+9J+xaeSVokiQDSJphAo5uaBuWjiKP4QTqS1cUWU7ayesN66wu22frD1vmVW6GW6T8u9eVjGyZzs+w78Nqu0a2mbvVu1KEJQAgeZRL0liQYyx+GOmKeQpu0rMYsAJPNEFGD2dLodLIy6c9Ys7G8yeSUl3tf2/X3rcBVJSOv34l3sCBogi7z1LH/rBHjl4IJ93/ncQFAnjeImJD0Z8zuCwu9q3djDXqTlAKID5xv+9t2R8n8VcUFBljQ8Gyfe40BYBM4DwDLt8Kue79ZcFkbzfEdbUbv+oN4c9KTtsfm1MbYQqqh+2zrVZYKs/7Ef+byimt1POYiJhDhPBFBIiIEXhxfs7/dfYoIF+auBfYTE/pebx/V8hqBP2ODvD34yvuh/WCAmU75Bx6sIgaI/v5+6PV6JLqUsYr7dpDAoehs0h73pHTWrvKgThYbRSt9UmSjef3MpaUvBz4O72UmADgTOPJguGiZor+/HyUlJWBmJFz+D8xTtlUiOpbwpmrmrweeSXrT+g11k4SBN3RGKUcAVCVdFhyP1nreDbY//NPyEXUlU/Pp4XYycGT6V0Ux2WwWdO7cOZSWlkII8diX7SPPNgDaKdbxoNAxwATBAEkEEgSWCEQAqPAMwqvMdCEwMO0tVqZpWsGTT58+DaPR+PhGIYQAAAgh0P7B3ioW/B0iGiCGiwXbCuOHFSJys6AbYFye2T+xWhT3WYJEIoH/DQBMw3kes8OJPgAAAABJRU5ErkJggg=="
},
"$:/plugins/felixhayashi/vis/img/network/leftArrow.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/leftArrow.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/vis/img/network/minus.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/minus.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/vis/img/network/plus.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/plus.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/vis/img/network/rightArrow.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/rightArrow.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/vis/img/network/upArrow.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/upArrow.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/vis/img/network/zoomExtends.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/zoomExtends.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/vis/img/timeline/delete.png": {
"title": "$:/plugins/felixhayashi/vis/img/timeline/delete.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAl2cEFnAAAAEAAAABAAXMatwwAAAVRJREFUOMt108FKG1EUBuBvYtxbRGwxiGBXeYCW0mVpDSKVvIJ0F/syJsFdn6GCkaZ9gro3G1u0ILQgheJKRUwXPQNnxvTAcGf+c/7/nPvfO8UEKLCFJg5w31aNqGtgG3c4xLSZyP0QgI8Tpu0quQhyPwTgsBnkAVYD3MM9DibVId5GbiW+B+VIt7hJha1IdhPWDayVsBvcFtHlDYZ4mgou8D7e+zXyN/TwuUhjbkSXLHIZ61KNvItxaYyayBDrZsf36DyGdilQE+ngA57UyD+xg08luTSxHvP/wRuRewDm7uV9WJ4hsBy5rczJJm7G/tcS6VesjxN2Hj4c5S10Qj2Tz/AunrOEr0VtB+Z6vMJ+zfkfcVQjnMbRvcRC5B/hBU4auMbVjBFHCRsFdp6wK1yXHjz37xItRuejfFQ1nwb4HXVfs4nPYsQv0p+oKlLgNf7gGP4Cw4ZUK7kMJVEAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDExLTA1LTE2VDExOjM1OjIxKzAyOjAw9uVF5gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxMS0wNS0xNlQxMTozNToyMSswMjowMIe4/VoAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/readme": {
"title": "$:/plugins/felixhayashi/vis/readme",
"text": "! TW5-Vis.js\n\nA tiddlywiki plugin for the vis.js library.\n\n---\n\n! Notes on Copyright\n\n!! TiddlyWiki\n\nCreated by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright © Jeremy Ruston 2004-2007 Copyright © UnaMesa Association 2007-2014\n\nPublished under the following [licenses](https://github.com/Jermolene/TiddlyWiki5/tree/master/licenses):\n\n1. BSD 3-clause \"New\" or \"Revised\" License (including any right to adopt any future version of a license if permitted)\n2. Creative Commons Attribution 3.0 (including any right to adopt any future version of a license if permitted)\n\n!! The **vis.js** library\n\nCopyright (c) 2014 [Almende B.V.](https://github.com/almende/vis)\n\nPublished under the following licenses:\n\n1. Apache License Version 2.0, January 2004 http://www.apache.org/licenses/\n2. MIT License (MIT)\n"
},
"$:/plugins/felixhayashi/vis/vis.css": {
"title": "$:/plugins/felixhayashi/vis/vis.css",
"type": "text/vnd.tiddlywiki",
"tags": "$:/tags/Stylesheet",
"text": "\\rules except list\n\n\\define datauri(title)\n<$macrocall $name=\"makedatauri\" type={{$title$!!type}} text={{$title$}}/>\n\\end\n\n.vis .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-active{box-shadow:0 0 10px #86d5f8}.vis [class*=\"span\"]{min-height:0;width:auto}div.vis-configuration{position:relative;display:block;float:left;font-size:12px}div.vis-configuration-wrapper{display:block;width:700px}div.vis-configuration-wrapper::after{clear:both;content:\"\";display:block}div.vis-configuration.vis-config-option-container{display:block;width:495px;background-color:#fff;border:2px solid #f7f8fa;border-radius:4px;margin-top:20px;left:10px;padding-left:5px}div.vis-configuration.vis-config-button{display:block;width:495px;height:25px;vertical-align:middle;line-height:25px;background-color:#f7f8fa;border:2px solid #ceced0;border-radius:4px;margin-top:20px;left:10px;padding-left:5px;cursor:pointer;margin-bottom:30px}div.vis-configuration.vis-config-button.hover{background-color:#4588e6;border:2px solid #214373;color:#fff}div.vis-configuration.vis-config-item{display:block;float:left;width:495px;height:25px;vertical-align:middle;line-height:25px}div.vis-configuration.vis-config-item.vis-config-s2{left:10px;background-color:#f7f8fa;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s3{left:20px;background-color:#e4e9f0;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s4{left:30px;background-color:#cfd8e6;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-header{font-size:18px;font-weight:bold}div.vis-configuration.vis-config-label{width:120px;height:25px;line-height:25px}div.vis-configuration.vis-config-label.vis-config-s3{width:110px}div.vis-configuration.vis-config-label.vis-config-s4{width:100px}div.vis-configuration.vis-config-colorBlock{top:1px;width:30px;height:19px;border:1px solid #444;border-radius:2px;padding:0;margin:0;cursor:pointer}input.vis-configuration.vis-config-checkbox{left:-5px}input.vis-configuration.vis-config-rangeinput{position:relative;top:-5px;width:60px;padding:1px;margin:0;pointer-events:none}input.vis-configuration.vis-config-range{-webkit-appearance:none;border:0 solid white;background-color:rgba(0,0,0,0);width:300px;height:20px}input.vis-configuration.vis-config-range::-webkit-slider-runnable-track{width:300px;height:5px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dedede',endColorstr='#c8c8c8',GradientType=0);border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-webkit-slider-thumb{-webkit-appearance:none;border:1px solid #14334b;height:17px;width:17px;border-radius:50%;background:#3876c2;background:-moz-linear-gradient(top,#3876c2 0,#385380 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#3876c2),color-stop(100%,#385380));background:-webkit-linear-gradient(top,#3876c2 0,#385380 100%);background:-o-linear-gradient(top,#3876c2 0,#385380 100%);background:-ms-linear-gradient(top,#3876c2 0,#385380 100%);background:linear-gradient(to bottom,#3876c2 0,#385380 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#3876c2',endColorstr='#385380',GradientType=0);box-shadow:#111927 0 0 1px 0;margin-top:-7px}input.vis-configuration.vis-config-range:focus{outline:0}input.vis-configuration.vis-config-range:focus::-webkit-slider-runnable-track{background:#9d9d9d;background:-moz-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#9d9d9d),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-o-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:linear-gradient(to bottom,#9d9d9d 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#9d9d9d',endColorstr='#c8c8c8',GradientType=0)}input.vis-configuration.vis-config-range::-moz-range-track{width:300px;height:10px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dedede',endColorstr='#c8c8c8',GradientType=0);border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-moz-range-thumb{border:0;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:-moz-focusring{outline:1px solid white;outline-offset:-1px}input.vis-configuration.vis-config-range::-ms-track{width:300px;height:5px;background:transparent;border-color:transparent;border-width:6px 0;color:transparent}input.vis-configuration.vis-config-range::-ms-fill-lower{background:#777;border-radius:10px}input.vis-configuration.vis-config-range::-ms-fill-upper{background:#ddd;border-radius:10px}input.vis-configuration.vis-config-range::-ms-thumb{border:0;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:focus::-ms-fill-lower{background:#888}input.vis-configuration.vis-config-range:focus::-ms-fill-upper{background:#ccc}.vis-configuration-popup{position:absolute;background:rgba(57,76,89,0.85);border:2px solid #f2faff;line-height:30px;height:30px;width:150px;text-align:center;color:#fff;font-size:14px;border-radius:4px;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.vis-configuration-popup:after,.vis-configuration-popup:before{left:100%;top:50%;border:solid transparent;content:\" \";height:0;width:0;position:absolute;pointer-events:none}.vis-configuration-popup:after{border-color:rgba(136,183,213,0);border-left-color:rgba(57,76,89,0.85);border-width:8px;margin-top:-8px}.vis-configuration-popup:before{border-color:rgba(194,225,245,0);border-left-color:#f2faff;border-width:12px;margin-top:-12px}div.vis-tooltip{position:absolute;visibility:hidden;padding:5px;white-space:nowrap;font-family:verdana;font-size:14px;color:#000;background-color:#f5f4ed;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #808074;box-shadow:3px 3px 10px rgba(0,0,0,0.2);pointer-events:none;z-index:5}div.vis-color-picker{position:absolute;top:0;left:30px;margin-top:-140px;margin-left:30px;width:310px;height:444px;z-index:1;padding:10px;border-radius:15px;background-color:#fff;display:none;box-shadow:rgba(0,0,0,0.5) 0 0 10px 0}div.vis-color-picker div.vis-arrow{position:absolute;top:147px;left:5px}div.vis-color-picker div.vis-arrow::after,div.vis-color-picker div.vis-arrow::before{right:100%;top:50%;border:solid transparent;content:\" \";height:0;width:0;position:absolute;pointer-events:none}div.vis-color-picker div.vis-arrow:after{border-color:rgba(255,255,255,0);border-right-color:#fff;border-width:30px;margin-top:-30px}div.vis-color-picker div.vis-color{position:absolute;width:289px;height:289px;cursor:pointer}div.vis-color-picker div.vis-brightness{position:absolute;top:313px}div.vis-color-picker div.vis-opacity{position:absolute;top:350px}div.vis-color-picker div.vis-selector{position:absolute;top:137px;left:137px;width:15px;height:15px;border-radius:15px;border:1px solid #fff;background:#4c4c4c;background:-moz-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4c4c4c),color-stop(12%,#595959),color-stop(25%,#666),color-stop(39%,#474747),color-stop(50%,#2c2c2c),color-stop(51%,#000),color-stop(60%,#111),color-stop(76%,#2b2b2b),color-stop(91%,#1c1c1c),color-stop(100%,#131313));background:-webkit-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-o-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-ms-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:linear-gradient(to bottom,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#4c4c4c',endColorstr='#131313',GradientType=0)}div.vis-color-picker div.vis-new-color{position:absolute;width:140px;height:20px;border:1px solid rgba(0,0,0,0.1);border-radius:5px;top:380px;left:159px;text-align:right;padding-right:2px;font-size:10px;color:rgba(0,0,0,0.4);vertical-align:middle;line-height:20px}div.vis-color-picker div.vis-initial-color{position:absolute;width:140px;height:20px;border:1px solid rgba(0,0,0,0.1);border-radius:5px;top:380px;left:10px;text-align:left;padding-left:2px;font-size:10px;color:rgba(0,0,0,0.4);vertical-align:middle;line-height:20px}div.vis-color-picker div.vis-label{position:absolute;width:300px;left:10px}div.vis-color-picker div.vis-label.vis-brightness{top:300px}div.vis-color-picker div.vis-label.vis-opacity{top:338px}div.vis-color-picker div.vis-button{position:absolute;width:68px;height:25px;border-radius:10px;vertical-align:middle;text-align:center;line-height:25px;top:410px;border:2px solid #d9d9d9;background-color:#f7f7f7;cursor:pointer}div.vis-color-picker div.vis-button.vis-cancel{left:5px}div.vis-color-picker div.vis-button.vis-load{left:82px}div.vis-color-picker div.vis-button.vis-apply{left:159px}div.vis-color-picker div.vis-button.vis-save{left:236px}div.vis-color-picker input.vis-range{width:290px;height:20px}div.vis-network div.vis-manipulation{box-sizing:content-box;border-width:0;border-bottom:1px;border-style:solid;border-color:#d6d9d8;background:#fff;background:-moz-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(48%,#fcfcfc),color-stop(50%,#fafafa),color-stop(100%,#fcfcfc));background:-webkit-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-o-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-ms-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:linear-gradient(to bottom,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='#fcfcfc',GradientType=0);padding-top:4px;position:absolute;left:0;top:0;width:100%;height:28px}div.vis-network div.vis-edit-mode{position:absolute;left:0;top:5px;height:30px}div.vis-network div.vis-close{position:absolute;right:0;top:0;width:30px;height:30px;background-position:20px 3px;background-repeat:no-repeat;background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/cross.png\">>);cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-close:hover{opacity:.6}div.vis-network div.vis-manipulation div.vis-button,div.vis-network div.vis-edit-mode div.vis-button{float:left;font-family:verdana;font-size:12px;-moz-border-radius:15px;border-radius:15px;display:inline-block;background-position:0 0;background-repeat:no-repeat;height:24px;margin-left:10px;cursor:pointer;padding:0 8px 0 8px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-manipulation div.vis-button:hover{box-shadow:1px 1px 8px rgba(0,0,0,0.20)}div.vis-network div.vis-manipulation div.vis-button:active{box-shadow:1px 1px 8px rgba(0,0,0,0.50)}div.vis-network div.vis-manipulation div.vis-button.vis-back{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/backIcon.png\">>)}div.vis-network div.vis-manipulation div.vis-button.vis-none:hover{box-shadow:1px 1px 8px rgba(0,0,0,0.0);cursor:default}div.vis-network div.vis-manipulation div.vis-button.vis-none:active{box-shadow:1px 1px 8px rgba(0,0,0,0.0)}div.vis-network div.vis-manipulation div.vis-button.vis-none{padding:0}div.vis-network div.vis-manipulation div.notification{margin:2px;font-weight:bold}div.vis-network div.vis-manipulation div.vis-button.vis-add{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/addNodeIcon.png\">>)}div.vis-network div.vis-manipulation div.vis-button.vis-edit,div.vis-network div.vis-edit-mode div.vis-button.vis-edit{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/editIcon.png\">>)}div.vis-network div.vis-edit-mode div.vis-button.vis-edit.vis-edit-mode{background-color:#fcfcfc;border:1px solid #ccc}div.vis-network div.vis-manipulation div.vis-button.vis-connect{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/connectIcon.png\">>)}div.vis-network div.vis-manipulation div.vis-button.vis-delete{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/deleteIcon.png\">>)}div.vis-network div.vis-manipulation div.vis-label,div.vis-network div.vis-edit-mode div.vis-label{margin:0 0 0 23px;line-height:25px}div.vis-network div.vis-manipulation div.vis-separator-line{float:left;display:inline-block;width:1px;height:21px;background-color:#bdbdbd;margin:0 7px 0 15px}div.vis-network div.vis-navigation div.vis-button{width:34px;height:34px;-moz-border-radius:17px;border-radius:17px;position:absolute;display:inline-block;background-position:2px 2px;background-repeat:no-repeat;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-navigation div.vis-button:hover{box-shadow:0 0 3px 3px rgba(56,207,21,0.30)}div.vis-network div.vis-navigation div.vis-button:active{box-shadow:0 0 1px 3px rgba(56,207,21,0.95)}div.vis-network div.vis-navigation div.vis-button.vis-up{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/upArrow.png\">>);bottom:50px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-down{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/downArrow.png\">>);bottom:10px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-left{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/leftArrow.png\">>);bottom:10px;left:15px}div.vis-network div.vis-navigation div.vis-button.vis-right{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/rightArrow.png\">>);bottom:10px;left:95px}div.vis-network div.vis-navigation div.vis-button.vis-zoomIn{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/plus.png\">>);bottom:10px;right:15px}div.vis-network div.vis-navigation div.vis-button.vis-zoomOut{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/minus.png\">>);bottom:10px;right:55px}div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/zoomExtends.png\">>);bottom:50px;right:15px}.vis-current-time{background-color:#ff7f6e;width:2px;z-index:1;pointer-events:none}.vis-rolling-mode-btn{height:40px;width:40px;position:absolute;top:7px;right:20px;border-radius:50%;font-size:28px;cursor:pointer;opacity:.8;color:white;font-weight:bold;text-align:center;background:#3876c2}.vis-rolling-mode-btn:before{content:\"\\26F6\"}.vis-rolling-mode-btn:hover{opacity:1}.vis-custom-time{background-color:#6e94ff;width:2px;cursor:move;z-index:1}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-horizontal{position:absolute;width:100%;height:0;border-bottom:1px solid}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-minor{border-color:#e5e5e5}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-major{border-color:#bfbfbf}.vis-data-axis .vis-y-axis.vis-major{width:100%;position:absolute;color:#4d4d4d;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-major.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-minor{position:absolute;width:100%;color:#bebebe;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-minor.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title{position:absolute;color:#4d4d4d;white-space:nowrap;bottom:20px;text-align:center}.vis-data-axis .vis-y-axis.vis-title.vis-measure{padding:0;margin:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title.vis-left{bottom:0;-webkit-transform-origin:left top;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;transform-origin:left bottom;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.vis-data-axis .vis-y-axis.vis-title.vis-right{bottom:0;-webkit-transform-origin:right bottom;-moz-transform-origin:right bottom;-ms-transform-origin:right bottom;-o-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.vis-legend{background-color:rgba(247,252,255,0.65);padding:5px;border:1px solid #b3b3b3;box-shadow:2px 2px 10px rgba(154,154,154,0.55)}.vis-legend-text{white-space:nowrap;display:inline-block}.vis-item{position:absolute;color:#1a1a1a;border-color:#97b0f8;border-width:1px;background-color:#d5ddf6;display:inline-block;z-index:1}.vis-item.vis-selected{border-color:#ffc200;background-color:#fff785;z-index:2}.vis-editable.vis-selected{cursor:move}.vis-item.vis-point.vis-selected{background-color:#fff785}.vis-item.vis-box{text-align:center;border-style:solid;border-radius:2px}.vis-item.vis-point{background:0}.vis-item.vis-dot{position:absolute;padding:0;border-width:4px;border-style:solid;border-radius:4px}.vis-item.vis-range{border-style:solid;border-radius:2px;box-sizing:border-box}.vis-item.vis-background{border:0;background-color:rgba(213,221,246,0.4);box-sizing:border-box;padding:0;margin:0}.vis-item .vis-item-overflow{position:relative;width:100%;height:100%;padding:0;margin:0;overflow:hidden}.vis-item-visible-frame{white-space:nowrap}.vis-item.vis-range .vis-item-content{position:relative;display:inline-block}.vis-item.vis-background .vis-item-content{position:absolute;display:inline-block}.vis-item.vis-line{padding:0;position:absolute;width:0;border-left-width:1px;border-left-style:solid}.vis-item .vis-item-content{white-space:nowrap;box-sizing:border-box;padding:5px}.vis-item .vis-onUpdateTime-tooltip{position:absolute;background:#4f81bd;color:white;width:200px;text-align:center;white-space:nowrap;padding:5px;border-radius:1px;transition:.4s;-o-transition:.4s;-moz-transition:.4s;-webkit-transition:.4s}.vis-item .vis-delete,.vis-item .vis-delete-rtl{position:absolute;top:0;width:24px;height:24px;box-sizing:border-box;padding:0 5px;cursor:pointer;-webkit-transition:background .2s linear;-moz-transition:background .2s linear;-ms-transition:background .2s linear;-o-transition:background .2s linear;transition:background .2s linear}.vis-item .vis-delete{right:-24px}.vis-item .vis-delete-rtl{left:-24px}.vis-item .vis-delete:after,.vis-item .vis-delete-rtl:after{content:\"\\00D7\";color:red;font-family:arial,sans-serif;font-size:22px;font-weight:bold;-webkit-transition:color .2s linear;-moz-transition:color .2s linear;-ms-transition:color .2s linear;-o-transition:color .2s linear;transition:color .2s linear}.vis-item .vis-delete:hover,.vis-item .vis-delete-rtl:hover{background:red}.vis-item .vis-delete:hover:after,.vis-item .vis-delete-rtl:hover:after{color:white}.vis-item .vis-drag-center{position:absolute;width:100%;height:100%;top:0;left:0;cursor:move}.vis-item.vis-range .vis-drag-left{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;left:-4px;cursor:w-resize}.vis-item.vis-range .vis-drag-right{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;right:-4px;cursor:e-resize}.vis-range.vis-item.vis-readonly .vis-drag-left,.vis-range.vis-item.vis-readonly .vis-drag-right{cursor:auto}.vis-itemset{position:relative;padding:0;margin:0;box-sizing:border-box}.vis-itemset .vis-background,.vis-itemset .vis-foreground{position:absolute;width:100%;height:100%;overflow:visible}.vis-axis{position:absolute;width:100%;height:0;left:0;z-index:1}.vis-foreground .vis-group{position:relative;box-sizing:border-box;border-bottom:1px solid #bfbfbf}.vis-foreground .vis-group:last-child{border-bottom:0}.vis-nesting-group{cursor:pointer}.vis-nested-group{background:#f5f5f5}.vis-label.vis-nesting-group.expanded:before{content:\"\\25BC\"}.vis-label.vis-nesting-group.collapsed-rtl:before{content:\"\\25C0\"}.vis-label.vis-nesting-group.collapsed:before{content:\"\\25B6\"}.vis-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-labelset{position:relative;overflow:hidden;box-sizing:border-box}.vis-labelset .vis-label{position:relative;left:0;top:0;width:100%;color:#4d4d4d;box-sizing:border-box}.vis-labelset .vis-label{border-bottom:1px solid #bfbfbf}.vis-labelset .vis-label.draggable{cursor:pointer}.vis-labelset .vis-label:last-child{border-bottom:0}.vis-labelset .vis-label .vis-inner{display:inline-block;padding:5px}.vis-labelset .vis-label .vis-inner.vis-hidden{padding:0}.vis-panel{position:absolute;padding:0;margin:0;box-sizing:border-box}.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right,.vis-panel.vis-top,.vis-panel.vis-bottom{border:1px #bfbfbf}.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right{border-top-style:solid;border-bottom-style:solid;overflow:hidden}.vis-left.vis-panel.vis-vertical-scroll,.vis-right.vis-panel.vis-vertical-scroll{height:100%;overflow-x:hidden;overflow-y:scroll}.vis-left.vis-panel.vis-vertical-scroll{direction:rtl}.vis-left.vis-panel.vis-vertical-scroll .vis-content{direction:ltr}.vis-right.vis-panel.vis-vertical-scroll{direction:ltr}.vis-right.vis-panel.vis-vertical-scroll .vis-content{direction:rtl}.vis-panel.vis-center,.vis-panel.vis-top,.vis-panel.vis-bottom{border-left-style:solid;border-right-style:solid}.vis-background{overflow:hidden}.vis-panel>.vis-content{position:relative}.vis-panel .vis-shadow{position:absolute;width:100%;height:1px;box-shadow:0 0 10px rgba(0,0,0,0.8)}.vis-panel .vis-shadow.vis-top{top:-1px;left:0}.vis-panel .vis-shadow.vis-bottom{bottom:-1px;left:0}.vis-graph-group0{fill:#4f81bd;fill-opacity:0;stroke-width:2px;stroke:#4f81bd}.vis-graph-group1{fill:#f79646;fill-opacity:0;stroke-width:2px;stroke:#f79646}.vis-graph-group2{fill:#8c51cf;fill-opacity:0;stroke-width:2px;stroke:#8c51cf}.vis-graph-group3{fill:#75c841;fill-opacity:0;stroke-width:2px;stroke:#75c841}.vis-graph-group4{fill:#ff0100;fill-opacity:0;stroke-width:2px;stroke:#ff0100}.vis-graph-group5{fill:#37d8e6;fill-opacity:0;stroke-width:2px;stroke:#37d8e6}.vis-graph-group6{fill:#042662;fill-opacity:0;stroke-width:2px;stroke:#042662}.vis-graph-group7{fill:#00ff26;fill-opacity:0;stroke-width:2px;stroke:#00ff26}.vis-graph-group8{fill:#f0f;fill-opacity:0;stroke-width:2px;stroke:#f0f}.vis-graph-group9{fill:#8f3938;fill-opacity:0;stroke-width:2px;stroke:#8f3938}.vis-timeline .vis-fill{fill-opacity:.1;stroke:none}.vis-timeline .vis-bar{fill-opacity:.5;stroke-width:1px}.vis-timeline .vis-point{stroke-width:2px;fill-opacity:1.0}.vis-timeline .vis-legend-background{stroke-width:1px;fill-opacity:.9;fill:#fff;stroke:#c2c2c2}.vis-timeline .vis-outline{stroke-width:1px;fill-opacity:1;fill:#fff;stroke:#e5e5e5}.vis-timeline .vis-icon-fill{fill-opacity:.3;stroke:none}.vis-time-axis{position:relative;overflow:hidden}.vis-time-axis.vis-foreground{top:0;left:0;width:100%}.vis-time-axis.vis-background{position:absolute;top:0;left:0;width:100%;height:100%}.vis-time-axis .vis-text{position:absolute;color:#4d4d4d;padding:3px;overflow:hidden;box-sizing:border-box;white-space:nowrap}.vis-time-axis .vis-text.vis-measure{position:absolute;padding-left:0;padding-right:0;margin-left:0;margin-right:0;visibility:hidden}.vis-time-axis .vis-grid.vis-vertical{position:absolute;border-left:1px solid}.vis-time-axis .vis-grid.vis-vertical-rtl{position:absolute;border-right:1px solid}.vis-time-axis .vis-grid.vis-minor{border-color:#e5e5e5}.vis-time-axis .vis-grid.vis-major{border-color:#bfbfbf}.vis-timeline{position:relative;border:1px solid #bfbfbf;overflow:hidden;padding:0;margin:0;box-sizing:border-box}"
},
"$:/plugins/felixhayashi/vis/vis.js": {
"title": "$:/plugins/felixhayashi/vis/vis.js",
"text": "/*\\\ntitle: $:/plugins/felixhayashi/vis/vis.js\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\\*/\n\n/*** TO AVOID STRANGE LIB ERRORS FROM BUBBLING UP *****************/\n\nif($tw.boot.tasks.trapErrors) {\n\n var defaultHandler = window.onerror;\n window.onerror = function(errorMsg, url, lineNumber) {\n \n if(errorMsg.indexOf(\"NS_ERROR_NOT_AVAILABLE\") !== -1\n && url == \"$:/plugins/felixhayashi/vis/vis.js\") {\n \n var text = \"Strange firefox related vis.js error (see #125)\";\n console.error(text, arguments);\n \n } else if(errorMsg.indexOf(\"Permission denied to access property\") !== -1) {\n \n var text = \"Strange firefox related vis.js error (see #163)\";\n console.error(text, arguments);\n \n } else if(defaultHandler) {\n \n defaultHandler.apply(this, arguments);\n \n }\n \n }\n \n}\n\n/******************************************************************/\n\n/**\n * vis.js\n * https://github.com/almende/vis\n *\n * A dynamic, browser-based visualization library.\n *\n * @version 4.21.0\n * @date 2017-10-12\n *\n * @license\n * Copyright (C) 2011-2017 Almende B.V, http://almende.com\n *\n * Vis.js is dual licensed under both\n *\n * * The Apache 2.0 License\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * and\n *\n * * The MIT License\n * http://opensource.org/licenses/MIT\n *\n * Vis.js may be distributed under either license.\n */\n\"use strict\";(function webpackUniversalModuleDefinition(root,factory){if(typeof exports===\"object\"&&typeof module===\"object\")module.exports=factory();else if(typeof define===\"function\"&&define.amd)define([],factory);else if(typeof exports===\"object\")exports[\"vis\"]=factory();else root[\"vis\"]=factory()})(this,function(){return function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId]){return installedModules[moduleId].exports}var module=installedModules[moduleId]={i:moduleId,l:false,exports:{}};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.l=true;return module.exports}__webpack_require__.m=modules;__webpack_require__.c=installedModules;__webpack_require__.d=function(exports,name,getter){if(!__webpack_require__.o(exports,name)){Object.defineProperty(exports,name,{configurable:false,enumerable:true,get:getter})}};__webpack_require__.n=function(module){var getter=module&&module.__esModule?function getDefault(){return module[\"default\"]}:function getModuleExports(){return module};__webpack_require__.d(getter,\"a\",getter);return getter};__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)};__webpack_require__.p=\"\";return __webpack_require__(__webpack_require__.s=123)}([function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;exports.default=function(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\")}}},function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;var _defineProperty=__webpack_require__(169);var _defineProperty2=_interopRequireDefault(_defineProperty);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;(0,_defineProperty2.default)(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}()},function(module,exports,__webpack_require__){\"use strict\";var _getIterator2=__webpack_require__(77);var _getIterator3=_interopRequireDefault(_getIterator2);var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var moment=__webpack_require__(9);var uuid=__webpack_require__(157);exports.isNumber=function(object){return object instanceof Number||typeof object==\"number\"};exports.recursiveDOMDelete=function(DOMobject){if(DOMobject){while(DOMobject.hasChildNodes()===true){exports.recursiveDOMDelete(DOMobject.firstChild);DOMobject.removeChild(DOMobject.firstChild)}}};exports.giveRange=function(min,max,total,value){if(max==min){return.5}else{var scale=1/(max-min);return Math.max(0,(value-min)*scale)}};exports.isString=function(object){return object instanceof String||typeof object==\"string\"};exports.isDate=function(object){if(object instanceof Date){return true}else if(exports.isString(object)){var match=ASPDateRegex.exec(object);if(match){return true}else if(!isNaN(Date.parse(object))){return true}}return false};exports.randomUUID=function(){return uuid.v4()};exports.assignAllKeys=function(obj,value){for(var prop in obj){if(obj.hasOwnProperty(prop)){if((0,_typeof3[\"default\"])(obj[prop])!==\"object\"){obj[prop]=value}}}};function copyOrDelete(a,b,prop,allowDeletion){var doDeletion=false;if(allowDeletion===true){doDeletion=b[prop]===null&&a[prop]!==undefined}if(doDeletion){delete a[prop]}else{a[prop]=b[prop]}}exports.fillIfDefined=function(a,b){var allowDeletion=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;for(var prop in a){if(b[prop]!==undefined){if(b[prop]===null||(0,_typeof3[\"default\"])(b[prop])!==\"object\"){copyOrDelete(a,b,prop,allowDeletion)}else{if((0,_typeof3[\"default\"])(a[prop])===\"object\"){exports.fillIfDefined(a[prop],b[prop],allowDeletion)}}}}};exports.extend=function(a,b){for(var i=1;i<arguments.length;i++){var other=arguments[i];for(var prop in other){if(other.hasOwnProperty(prop)){a[prop]=other[prop]}}}return a};exports.selectiveExtend=function(props,a,b){if(!Array.isArray(props)){throw new Error(\"Array with property names expected as first argument\")}for(var i=2;i<arguments.length;i++){var other=arguments[i];for(var p=0;p<props.length;p++){var prop=props[p];if(other&&other.hasOwnProperty(prop)){a[prop]=other[prop]}}}return a};exports.selectiveDeepExtend=function(props,a,b){var allowDeletion=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;if(Array.isArray(b)){throw new TypeError(\"Arrays are not supported by deepExtend\")}for(var p=0;p<props.length;p++){var prop=props[p];if(b.hasOwnProperty(prop)){if(b[prop]&&b[prop].constructor===Object){if(a[prop]===undefined){a[prop]={}}if(a[prop].constructor===Object){exports.deepExtend(a[prop],b[prop],false,allowDeletion)}else{copyOrDelete(a,b,prop,allowDeletion)}}else if(Array.isArray(b[prop])){throw new TypeError(\"Arrays are not supported by deepExtend\")}else{copyOrDelete(a,b,prop,allowDeletion)}}}return a};exports.selectiveNotDeepExtend=function(propsToExclude,a,b){var allowDeletion=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;if(Array.isArray(b)){throw new TypeError(\"Arrays are not supported by deepExtend\")}for(var prop in b){if(!b.hasOwnProperty(prop))continue;if(propsToExclude.indexOf(prop)!==-1)continue;if(b[prop]&&b[prop].constructor===Object){if(a[prop]===undefined){a[prop]={}}if(a[prop].constructor===Object){exports.deepExtend(a[prop],b[prop])}else{copyOrDelete(a,b,prop,allowDeletion)}}else if(Array.isArray(b[prop])){a[prop]=[];for(var i=0;i<b[prop].length;i++){a[prop].push(b[prop][i])}}else{copyOrDelete(a,b,prop,allowDeletion)}}return a};exports.deepExtend=function(a,b){var protoExtend=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var allowDeletion=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;for(var prop in b){if(b.hasOwnProperty(prop)||protoExtend===true){if(b[prop]&&b[prop].constructor===Object){if(a[prop]===undefined){a[prop]={}}if(a[prop].constructor===Object){exports.deepExtend(a[prop],b[prop],protoExtend)}else{copyOrDelete(a,b,prop,allowDeletion)}}else if(Array.isArray(b[prop])){a[prop]=[];for(var i=0;i<b[prop].length;i++){a[prop].push(b[prop][i])}}else{copyOrDelete(a,b,prop,allowDeletion)}}}return a};exports.equalArray=function(a,b){if(a.length!=b.length)return false;for(var i=0,len=a.length;i<len;i++){if(a[i]!=b[i])return false}return true};exports.convert=function(object,type){var match;if(object===undefined){return undefined}if(object===null){return null}if(!type){return object}if(!(typeof type===\"string\")&&!(type instanceof String)){throw new Error(\"Type must be a string\")}switch(type){case\"boolean\":case\"Boolean\":return Boolean(object);case\"number\":case\"Number\":if(exports.isString(object)&&!isNaN(Date.parse(object))){return moment(object).valueOf()}else{return Number(object.valueOf())}case\"string\":case\"String\":return String(object);case\"Date\":if(exports.isNumber(object)){return new Date(object)}if(object instanceof Date){return new Date(object.valueOf())}else if(moment.isMoment(object)){return new Date(object.valueOf())}if(exports.isString(object)){match=ASPDateRegex.exec(object);if(match){return new Date(Number(match[1]))}else{return moment(new Date(object)).toDate()}}else{throw new Error(\"Cannot convert object of type \"+exports.getType(object)+\" to type Date\")}case\"Moment\":if(exports.isNumber(object)){return moment(object)}if(object instanceof Date){return moment(object.valueOf())}else if(moment.isMoment(object)){return moment(object)}if(exports.isString(object)){match=ASPDateRegex.exec(object);if(match){return moment(Number(match[1]))}else{return moment(object)}}else{throw new Error(\"Cannot convert object of type \"+exports.getType(object)+\" to type Date\")}case\"ISODate\":if(exports.isNumber(object)){return new Date(object)}else if(object instanceof Date){return object.toISOString()}else if(moment.isMoment(object)){return object.toDate().toISOString()}else if(exports.isString(object)){match=ASPDateRegex.exec(object);if(match){return new Date(Number(match[1])).toISOString()}else{return moment(object).format()}}else{throw new Error(\"Cannot convert object of type \"+exports.getType(object)+\" to type ISODate\")}case\"ASPDate\":if(exports.isNumber(object)){return\"/Date(\"+object+\")/\"}else if(object instanceof Date){return\"/Date(\"+object.valueOf()+\")/\"}else if(exports.isString(object)){match=ASPDateRegex.exec(object);var value;if(match){value=new Date(Number(match[1])).valueOf()}else{value=new Date(object).valueOf()}return\"/Date(\"+value+\")/\"}else{throw new Error(\"Cannot convert object of type \"+exports.getType(object)+\" to type ASPDate\")}default:throw new Error('Unknown type \"'+type+'\"')}};var ASPDateRegex=/^\\/?Date\\((\\-?\\d+)/i;exports.getType=function(object){var type=typeof object===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(object);if(type==\"object\"){if(object===null){return\"null\"}if(object instanceof Boolean){return\"Boolean\"}if(object instanceof Number){return\"Number\"}if(object instanceof String){return\"String\"}if(Array.isArray(object)){return\"Array\"}if(object instanceof Date){return\"Date\"}return\"Object\"}else if(type==\"number\"){return\"Number\"}else if(type==\"boolean\"){return\"Boolean\"}else if(type==\"string\"){return\"String\"}else if(type===undefined){return\"undefined\"}return type};exports.copyAndExtendArray=function(arr,newValue){var newArr=[];for(var i=0;i<arr.length;i++){newArr.push(arr[i])}newArr.push(newValue);return newArr};exports.copyArray=function(arr){var newArr=[];for(var i=0;i<arr.length;i++){newArr.push(arr[i])}return newArr};exports.getAbsoluteLeft=function(elem){return elem.getBoundingClientRect().left};exports.getAbsoluteRight=function(elem){return elem.getBoundingClientRect().right};exports.getAbsoluteTop=function(elem){return elem.getBoundingClientRect().top};exports.addClassName=function(elem,classNames){var classes=elem.className.split(\" \");var newClasses=classNames.split(\" \");classes=classes.concat(newClasses.filter(function(className){return classes.indexOf(className)<0}));elem.className=classes.join(\" \")};exports.removeClassName=function(elem,classNames){var classes=elem.className.split(\" \");var oldClasses=classNames.split(\" \");classes=classes.filter(function(className){return oldClasses.indexOf(className)<0});elem.className=classes.join(\" \")};exports.forEach=function(object,callback){var i,len;if(Array.isArray(object)){for(i=0,len=object.length;i<len;i++){callback(object[i],i,object)}}else{for(i in object){if(object.hasOwnProperty(i)){callback(object[i],i,object)}}}};exports.toArray=function(object){var array=[];for(var prop in object){if(object.hasOwnProperty(prop))array.push(object[prop])}return array};exports.updateProperty=function(object,key,value){if(object[key]!==value){object[key]=value;return true}else{return false}};exports.throttle=function(fn){var scheduled=false;return function throttled(){if(!scheduled){scheduled=true;requestAnimationFrame(function(){scheduled=false;fn()})}}};exports.addEventListener=function(element,action,listener,useCapture){if(element.addEventListener){if(useCapture===undefined)useCapture=false;if(action===\"mousewheel\"&&navigator.userAgent.indexOf(\"Firefox\")>=0){action=\"DOMMouseScroll\"}element.addEventListener(action,listener,useCapture)}else{element.attachEvent(\"on\"+action,listener)}};exports.removeEventListener=function(element,action,listener,useCapture){if(element.removeEventListener){if(useCapture===undefined)useCapture=false;if(action===\"mousewheel\"&&navigator.userAgent.indexOf(\"Firefox\")>=0){action=\"DOMMouseScroll\"}element.removeEventListener(action,listener,useCapture)}else{element.detachEvent(\"on\"+action,listener)}};exports.preventDefault=function(event){if(!event)event=window.event;if(event.preventDefault){event.preventDefault()}else{event.returnValue=false}};exports.getTarget=function(event){if(!event){event=window.event}var target;if(event.target){target=event.target}else if(event.srcElement){target=event.srcElement}if(target.nodeType!=undefined&&target.nodeType==3){target=target.parentNode}return target};exports.hasParent=function(element,parent){var e=element;while(e){if(e===parent){return true}e=e.parentNode}return false};exports.option={};exports.option.asBoolean=function(value,defaultValue){if(typeof value==\"function\"){value=value()}if(value!=null){return value!=false}return defaultValue||null};exports.option.asNumber=function(value,defaultValue){if(typeof value==\"function\"){value=value()}if(value!=null){return Number(value)||defaultValue||null}return defaultValue||null};exports.option.asString=function(value,defaultValue){if(typeof value==\"function\"){value=value()}if(value!=null){return String(value)}return defaultValue||null};exports.option.asSize=function(value,defaultValue){if(typeof value==\"function\"){value=value()}if(exports.isString(value)){return value}else if(exports.isNumber(value)){return value+\"px\"}else{return defaultValue||null}};exports.option.asElement=function(value,defaultValue){if(typeof value==\"function\"){value=value()}return value||defaultValue||null};exports.hexToRGB=function(hex){var shorthandRegex=/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;hex=hex.replace(shorthandRegex,function(m,r,g,b){return r+r+g+g+b+b});var result=/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);return result?{r:parseInt(result[1],16),g:parseInt(result[2],16),b:parseInt(result[3],16)}:null};exports.overrideOpacity=function(color,opacity){var rgb;if(color.indexOf(\"rgba\")!=-1){return color}else if(color.indexOf(\"rgb\")!=-1){rgb=color.substr(color.indexOf(\"(\")+1).replace(\")\",\"\").split(\",\");return\"rgba(\"+rgb[0]+\",\"+rgb[1]+\",\"+rgb[2]+\",\"+opacity+\")\"}else{rgb=exports.hexToRGB(color);if(rgb==null){return color}else{return\"rgba(\"+rgb.r+\",\"+rgb.g+\",\"+rgb.b+\",\"+opacity+\")\"}}};exports.RGBToHex=function(red,green,blue){return\"#\"+((1<<24)+(red<<16)+(green<<8)+blue).toString(16).slice(1)};exports.parseColor=function(color){var c;if(exports.isString(color)===true){if(exports.isValidRGB(color)===true){var rgb=color.substr(4).substr(0,color.length-5).split(\",\").map(function(value){return parseInt(value)});color=exports.RGBToHex(rgb[0],rgb[1],rgb[2])}if(exports.isValidHex(color)===true){var hsv=exports.hexToHSV(color);var lighterColorHSV={h:hsv.h,s:hsv.s*.8,v:Math.min(1,hsv.v*1.02)};var darkerColorHSV={h:hsv.h,s:Math.min(1,hsv.s*1.25),v:hsv.v*.8};var darkerColorHex=exports.HSVToHex(darkerColorHSV.h,darkerColorHSV.s,darkerColorHSV.v);var lighterColorHex=exports.HSVToHex(lighterColorHSV.h,lighterColorHSV.s,lighterColorHSV.v);c={background:color,border:darkerColorHex,highlight:{background:lighterColorHex,border:darkerColorHex},hover:{background:lighterColorHex,border:darkerColorHex}}}else{c={background:color,border:color,highlight:{background:color,border:color},hover:{background:color,border:color}}}}else{c={};c.background=color.background||undefined;c.border=color.border||undefined;if(exports.isString(color.highlight)){c.highlight={border:color.highlight,background:color.highlight}}else{c.highlight={};c.highlight.background=color.highlight&&color.highlight.background||undefined;c.highlight.border=color.highlight&&color.highlight.border||undefined}if(exports.isString(color.hover)){c.hover={border:color.hover,background:color.hover}}else{c.hover={};c.hover.background=color.hover&&color.hover.background||undefined;c.hover.border=color.hover&&color.hover.border||undefined}}return c};exports.RGBToHSV=function(red,green,blue){red=red/255;green=green/255;blue=blue/255;var minRGB=Math.min(red,Math.min(green,blue));var maxRGB=Math.max(red,Math.max(green,blue));if(minRGB==maxRGB){return{h:0,s:0,v:minRGB}}var d=red==minRGB?green-blue:blue==minRGB?red-green:blue-red;var h=red==minRGB?3:blue==minRGB?1:5;var hue=60*(h-d/(maxRGB-minRGB))/360;var saturation=(maxRGB-minRGB)/maxRGB;var value=maxRGB;return{h:hue,s:saturation,v:value}};var cssUtil={split:function split(cssText){var styles={};cssText.split(\";\").forEach(function(style){if(style.trim()!=\"\"){var parts=style.split(\":\");var key=parts[0].trim();var value=parts[1].trim();styles[key]=value}});return styles},join:function join(styles){return(0,_keys2[\"default\"])(styles).map(function(key){return key+\": \"+styles[key]}).join(\"; \")}};exports.addCssText=function(element,cssText){var currentStyles=cssUtil.split(element.style.cssText);var newStyles=cssUtil.split(cssText);var styles=exports.extend(currentStyles,newStyles);element.style.cssText=cssUtil.join(styles)};exports.removeCssText=function(element,cssText){var styles=cssUtil.split(element.style.cssText);var removeStyles=cssUtil.split(cssText);for(var key in removeStyles){if(removeStyles.hasOwnProperty(key)){delete styles[key]}}element.style.cssText=cssUtil.join(styles)};exports.HSVToRGB=function(h,s,v){var r,g,b;var i=Math.floor(h*6);var f=h*6-i;var p=v*(1-s);var q=v*(1-f*s);var t=v*(1-(1-f)*s);switch(i%6){case 0:r=v,g=t,b=p;break;case 1:r=q,g=v,b=p;break;case 2:r=p,g=v,b=t;break;case 3:r=p,g=q,b=v;break;case 4:r=t,g=p,b=v;break;case 5:r=v,g=p,b=q;break}return{r:Math.floor(r*255),g:Math.floor(g*255),b:Math.floor(b*255)}};exports.HSVToHex=function(h,s,v){var rgb=exports.HSVToRGB(h,s,v);return exports.RGBToHex(rgb.r,rgb.g,rgb.b)};exports.hexToHSV=function(hex){var rgb=exports.hexToRGB(hex);return exports.RGBToHSV(rgb.r,rgb.g,rgb.b)};exports.isValidHex=function(hex){var isOk=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(hex);return isOk};exports.isValidRGB=function(rgb){rgb=rgb.replace(\" \",\"\");var isOk=/rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)/i.test(rgb);return isOk};exports.isValidRGBA=function(rgba){rgba=rgba.replace(\" \",\"\");var isOk=/rgba\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3}),(.{1,3})\\)/i.test(rgba);return isOk};exports.selectiveBridgeObject=function(fields,referenceObject){if(referenceObject!==null&&(typeof referenceObject===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(referenceObject))===\"object\"){var objectTo=(0,_create2[\"default\"])(referenceObject);for(var i=0;i<fields.length;i++){if(referenceObject.hasOwnProperty(fields[i])){if((0,_typeof3[\"default\"])(referenceObject[fields[i]])==\"object\"){objectTo[fields[i]]=exports.bridgeObject(referenceObject[fields[i]])}}}return objectTo}else{return null}};exports.bridgeObject=function(referenceObject){if(referenceObject!==null&&(typeof referenceObject===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(referenceObject))===\"object\"){var objectTo=(0,_create2[\"default\"])(referenceObject);if(referenceObject instanceof Element){objectTo=referenceObject}else{objectTo=(0,_create2[\"default\"])(referenceObject);for(var i in referenceObject){if(referenceObject.hasOwnProperty(i)){if((0,_typeof3[\"default\"])(referenceObject[i])==\"object\"){objectTo[i]=exports.bridgeObject(referenceObject[i])}}}}return objectTo}else{return null}};exports.insertSort=function(a,compare){for(var i=0;i<a.length;i++){var k=a[i];for(var j=i;j>0&&compare(k,a[j-1])<0;j--){a[j]=a[j-1]}a[j]=k}return a};exports.mergeOptions=function(mergeTarget,options,option){var globalOptions=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};var isPresent=function isPresent(obj){return obj!==null&&obj!==undefined};var isObject=function isObject(obj){return obj!==null&&(typeof obj===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(obj))===\"object\"};var isEmpty=function isEmpty(obj){for(var x in obj){if(obj.hasOwnProperty(x))return false}return true};if(!isObject(mergeTarget)){throw new Error(\"Parameter mergeTarget must be an object\")}if(!isObject(options)){throw new Error(\"Parameter options must be an object\")}if(!isPresent(option)){throw new Error(\"Parameter option must have a value\")}if(!isObject(globalOptions)){throw new Error(\"Parameter globalOptions must be an object\")}var doMerge=function doMerge(target,options,option){if(!isObject(target[option])){target[option]={}}var src=options[option];var dst=target[option];for(var prop in src){if(src.hasOwnProperty(prop)){dst[prop]=src[prop]}}};var srcOption=options[option];var globalPassed=isObject(globalOptions)&&!isEmpty(globalOptions);var globalOption=globalPassed?globalOptions[option]:undefined;var globalEnabled=globalOption?globalOption.enabled:undefined;if(srcOption===undefined){return}if(typeof srcOption===\"boolean\"){if(!isObject(mergeTarget[option])){mergeTarget[option]={}}mergeTarget[option].enabled=srcOption;return}if(srcOption===null&&!isObject(mergeTarget[option])){if(isPresent(globalOption)){mergeTarget[option]=(0,_create2[\"default\"])(globalOption)}else{return}}if(!isObject(srcOption)){return}var enabled=true;if(srcOption.enabled!==undefined){enabled=srcOption.enabled}else{if(globalEnabled!==undefined){enabled=globalOption.enabled}}doMerge(mergeTarget,options,option);mergeTarget[option].enabled=enabled};exports.binarySearchCustom=function(orderedItems,comparator,field,field2){var maxIterations=1e4;var iteration=0;var low=0;var high=orderedItems.length-1;while(low<=high&&iteration<maxIterations){var middle=Math.floor((low+high)/2);var item=orderedItems[middle];var value=field2===undefined?item[field]:item[field][field2];var searchResult=comparator(value);if(searchResult==0){return middle}else if(searchResult==-1){low=middle+1}else{high=middle-1}iteration++}return-1};exports.binarySearchValue=function(orderedItems,target,field,sidePreference,comparator){var maxIterations=1e4;var iteration=0;var low=0;var high=orderedItems.length-1;var prevValue,value,nextValue,middle;comparator=comparator!=undefined?comparator:function(a,b){return a==b?0:a<b?-1:1};while(low<=high&&iteration<maxIterations){middle=Math.floor(.5*(high+low));prevValue=orderedItems[Math.max(0,middle-1)][field];value=orderedItems[middle][field];nextValue=orderedItems[Math.min(orderedItems.length-1,middle+1)][field];if(comparator(value,target)==0){return middle}else if(comparator(prevValue,target)<0&&comparator(value,target)>0){return sidePreference==\"before\"?Math.max(0,middle-1):middle}else if(comparator(value,target)<0&&comparator(nextValue,target)>0){return sidePreference==\"before\"?middle:Math.min(orderedItems.length-1,middle+1)}else{if(comparator(value,target)<0){low=middle+1}else{high=middle-1}}iteration++}return-1};exports.easingFunctions={linear:function linear(t){return t},easeInQuad:function easeInQuad(t){return t*t},easeOutQuad:function easeOutQuad(t){return t*(2-t)},easeInOutQuad:function easeInOutQuad(t){return t<.5?2*t*t:-1+(4-2*t)*t},easeInCubic:function easeInCubic(t){return t*t*t},easeOutCubic:function easeOutCubic(t){return--t*t*t+1},easeInOutCubic:function easeInOutCubic(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function easeInQuart(t){return t*t*t*t},easeOutQuart:function easeOutQuart(t){return 1- --t*t*t*t},easeInOutQuart:function easeInOutQuart(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function easeInQuint(t){return t*t*t*t*t},easeOutQuint:function easeOutQuint(t){return 1+--t*t*t*t*t},easeInOutQuint:function easeInOutQuint(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}};exports.getScrollBarWidth=function(){var inner=document.createElement(\"p\");inner.style.width=\"100%\";inner.style.height=\"200px\";var outer=document.createElement(\"div\");outer.style.position=\"absolute\";outer.style.top=\"0px\";outer.style.left=\"0px\";outer.style.visibility=\"hidden\";outer.style.width=\"200px\";outer.style.height=\"150px\";outer.style.overflow=\"hidden\";outer.appendChild(inner);document.body.appendChild(outer);var w1=inner.offsetWidth;outer.style.overflow=\"scroll\";var w2=inner.offsetWidth;if(w1==w2)w2=outer.clientWidth;document.body.removeChild(outer);return w1-w2};exports.topMost=function(pile,accessors){var candidate=void 0;if(!Array.isArray(accessors)){accessors=[accessors]}var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=(0,_getIterator3[\"default\"])(pile),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var member=_step.value;if(member){candidate=member[accessors[0]];for(var i=1;i<accessors.length;i++){if(candidate){candidate=candidate[accessors[i]]}else{continue}}if(typeof candidate!=\"undefined\"){break}}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator[\"return\"]){_iterator[\"return\"]()}}finally{if(_didIteratorError){throw _iteratorError}}}return candidate}},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(194),__esModule:true}},function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=function(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return call&&((typeof call===\"undefined\"?\"undefined\":(0,_typeof3.default)(call))===\"object\"||typeof call===\"function\")?call:self}},function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;var _setPrototypeOf=__webpack_require__(196);var _setPrototypeOf2=_interopRequireDefault(_setPrototypeOf);var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=function(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+(typeof superClass===\"undefined\"?\"undefined\":(0,_typeof3.default)(superClass)))}subClass.prototype=(0,_create2.default)(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)_setPrototypeOf2.default?(0,_setPrototypeOf2.default)(subClass,superClass):subClass.__proto__=superClass}},function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;var _iterator=__webpack_require__(142);var _iterator2=_interopRequireDefault(_iterator);var _symbol=__webpack_require__(144);var _symbol2=_interopRequireDefault(_symbol);var _typeof=typeof _symbol2.default===\"function\"&&typeof _iterator2.default===\"symbol\"?function(obj){return typeof obj}:function(obj){return obj&&typeof _symbol2.default===\"function\"&&obj.constructor===_symbol2.default&&obj!==_symbol2.default.prototype?\"symbol\":typeof obj};function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=typeof _symbol2.default===\"function\"&&_typeof(_iterator2.default)===\"symbol\"?function(obj){return typeof obj===\"undefined\"?\"undefined\":_typeof(obj)}:function(obj){return obj&&typeof _symbol2.default===\"function\"&&obj.constructor===_symbol2.default&&obj!==_symbol2.default.prototype?\"symbol\":typeof obj===\"undefined\"?\"undefined\":_typeof(obj)}},function(module,exports){var core=module.exports={version:\"2.5.1\"};if(typeof __e==\"number\")__e=core},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(140),__esModule:true}},function(module,exports,__webpack_require__){\"use strict\";module.exports=typeof window!==\"undefined\"&&window[\"moment\"]||__webpack_require__(154)},function(module,exports,__webpack_require__){\"use strict\";function hammerMock(){var noop=function noop(){};return{on:noop,off:noop,destroy:noop,emit:noop,get:function get(m){return{set:noop}}}}if(typeof window!==\"undefined\"){var propagating=__webpack_require__(175);var Hammer=window[\"Hammer\"]||__webpack_require__(176);module.exports=propagating(Hammer,{preventDefault:\"mouse\"})}else{module.exports=function(){return hammerMock()}}},function(module,exports,__webpack_require__){\"use strict\";var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Queue=__webpack_require__(43);function DataSet(data,options){if(data&&!Array.isArray(data)){options=data;data=null}this._options=options||{};this._data={};this.length=0;this._fieldId=this._options.fieldId||\"id\";this._type={};if(this._options.type){var fields=(0,_keys2[\"default\"])(this._options.type);for(var i=0,len=fields.length;i<len;i++){var field=fields[i];var value=this._options.type[field];if(value==\"Date\"||value==\"ISODate\"||value==\"ASPDate\"){this._type[field]=\"Date\"}else{this._type[field]=value}}}this._subscribers={};if(data){this.add(data)}this.setOptions(options)}DataSet.prototype.setOptions=function(options){if(options&&options.queue!==undefined){if(options.queue===false){if(this._queue){this._queue.destroy();delete this._queue}}else{if(!this._queue){this._queue=Queue.extend(this,{replace:[\"add\",\"update\",\"remove\"]})}if((0,_typeof3[\"default\"])(options.queue)===\"object\"){this._queue.setOptions(options.queue)}}}};DataSet.prototype.on=function(event,callback){var subscribers=this._subscribers[event];if(!subscribers){subscribers=[];this._subscribers[event]=subscribers}subscribers.push({callback:callback})};DataSet.prototype.off=function(event,callback){var subscribers=this._subscribers[event];if(subscribers){this._subscribers[event]=subscribers.filter(function(listener){return listener.callback!=callback})}};DataSet.prototype._trigger=function(event,params,senderId){if(event==\"*\"){throw new Error(\"Cannot trigger event *\")}var subscribers=[];if(event in this._subscribers){subscribers=subscribers.concat(this._subscribers[event])}if(\"*\"in this._subscribers){subscribers=subscribers.concat(this._subscribers[\"*\"])}for(var i=0,len=subscribers.length;i<len;i++){var subscriber=subscribers[i];if(subscriber.callback){subscriber.callback(event,params,senderId||null)}}};DataSet.prototype.add=function(data,senderId){var addedIds=[],id,me=this;if(Array.isArray(data)){for(var i=0,len=data.length;i<len;i++){id=me._addItem(data[i]);addedIds.push(id)}}else if(data&&(typeof data===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(data))===\"object\"){id=me._addItem(data);addedIds.push(id)}else{throw new Error(\"Unknown dataType\")}if(addedIds.length){this._trigger(\"add\",{items:addedIds},senderId)}return addedIds};DataSet.prototype.update=function(data,senderId){var addedIds=[];var updatedIds=[];var oldData=[];var updatedData=[];var me=this;var fieldId=me._fieldId;var addOrUpdate=function addOrUpdate(item){var id=item[fieldId];if(me._data[id]){var oldItem=util.extend({},me._data[id]);id=me._updateItem(item);updatedIds.push(id);updatedData.push(item);oldData.push(oldItem)}else{id=me._addItem(item);addedIds.push(id)}};if(Array.isArray(data)){for(var i=0,len=data.length;i<len;i++){if(data[i]&&(0,_typeof3[\"default\"])(data[i])===\"object\"){addOrUpdate(data[i])}else{console.warn(\"Ignoring input item, which is not an object at index \"+i)}}}else if(data&&(typeof data===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(data))===\"object\"){addOrUpdate(data)}else{throw new Error(\"Unknown dataType\")}if(addedIds.length){this._trigger(\"add\",{items:addedIds},senderId)}if(updatedIds.length){var props={items:updatedIds,oldData:oldData,data:updatedData};this._trigger(\"update\",props,senderId)}return addedIds.concat(updatedIds)};DataSet.prototype.get=function(args){var me=this;var id,ids,options;var firstType=util.getType(arguments[0]);if(firstType==\"String\"||firstType==\"Number\"){id=arguments[0];options=arguments[1]}else if(firstType==\"Array\"){\nids=arguments[0];options=arguments[1]}else{options=arguments[0]}var returnType;if(options&&options.returnType){var allowedValues=[\"Array\",\"Object\"];returnType=allowedValues.indexOf(options.returnType)==-1?\"Array\":options.returnType}else{returnType=\"Array\"}var type=options&&options.type||this._options.type;var filter=options&&options.filter;var items=[],item,itemIds,itemId,i,len;if(id!=undefined){item=me._getItem(id,type);if(item&&filter&&!filter(item)){item=null}}else if(ids!=undefined){for(i=0,len=ids.length;i<len;i++){item=me._getItem(ids[i],type);if(!filter||filter(item)){items.push(item)}}}else{itemIds=(0,_keys2[\"default\"])(this._data);for(i=0,len=itemIds.length;i<len;i++){itemId=itemIds[i];item=me._getItem(itemId,type);if(!filter||filter(item)){items.push(item)}}}if(options&&options.order&&id==undefined){this._sort(items,options.order)}if(options&&options.fields){var fields=options.fields;if(id!=undefined){item=this._filterFields(item,fields)}else{for(i=0,len=items.length;i<len;i++){items[i]=this._filterFields(items[i],fields)}}}if(returnType==\"Object\"){var result={},resultant;for(i=0,len=items.length;i<len;i++){resultant=items[i];result[resultant.id]=resultant}return result}else{if(id!=undefined){return item}else{return items}}};DataSet.prototype.getIds=function(options){var data=this._data,filter=options&&options.filter,order=options&&options.order,type=options&&options.type||this._options.type,itemIds=(0,_keys2[\"default\"])(data),i,len,id,item,items,ids=[];if(filter){if(order){items=[];for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];item=this._getItem(id,type);if(filter(item)){items.push(item)}}this._sort(items,order);for(i=0,len=items.length;i<len;i++){ids.push(items[i][this._fieldId])}}else{for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];item=this._getItem(id,type);if(filter(item)){ids.push(item[this._fieldId])}}}}else{if(order){items=[];for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];items.push(data[id])}this._sort(items,order);for(i=0,len=items.length;i<len;i++){ids.push(items[i][this._fieldId])}}else{for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];item=data[id];ids.push(item[this._fieldId])}}}return ids};DataSet.prototype.getDataSet=function(){return this};DataSet.prototype.forEach=function(callback,options){var filter=options&&options.filter,type=options&&options.type||this._options.type,data=this._data,itemIds=(0,_keys2[\"default\"])(data),i,len,item,id;if(options&&options.order){var items=this.get(options);for(i=0,len=items.length;i<len;i++){item=items[i];id=item[this._fieldId];callback(item,id)}}else{for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];item=this._getItem(id,type);if(!filter||filter(item)){callback(item,id)}}}};DataSet.prototype.map=function(callback,options){var filter=options&&options.filter,type=options&&options.type||this._options.type,mappedItems=[],data=this._data,itemIds=(0,_keys2[\"default\"])(data),i,len,id,item;for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];item=this._getItem(id,type);if(!filter||filter(item)){mappedItems.push(callback(item,id))}}if(options&&options.order){this._sort(mappedItems,options.order)}return mappedItems};DataSet.prototype._filterFields=function(item,fields){if(!item){return item}var filteredItem={},itemFields=(0,_keys2[\"default\"])(item),len=itemFields.length,i,field;if(Array.isArray(fields)){for(i=0;i<len;i++){field=itemFields[i];if(fields.indexOf(field)!=-1){filteredItem[field]=item[field]}}}else{for(i=0;i<len;i++){field=itemFields[i];if(fields.hasOwnProperty(field)){filteredItem[fields[field]]=item[field]}}}return filteredItem};DataSet.prototype._sort=function(items,order){if(util.isString(order)){var name=order;items.sort(function(a,b){var av=a[name];var bv=b[name];return av>bv?1:av<bv?-1:0})}else if(typeof order===\"function\"){items.sort(order)}else{throw new TypeError(\"Order must be a function or a string\")}};DataSet.prototype.remove=function(id,senderId){var removedIds=[],removedItems=[],ids=[],i,len,itemId,item;ids=Array.isArray(id)?id:[id];for(i=0,len=ids.length;i<len;i++){item=this._remove(ids[i]);if(item){itemId=item[this._fieldId];if(itemId!=undefined){removedIds.push(itemId);removedItems.push(item)}}}if(removedIds.length){this._trigger(\"remove\",{items:removedIds,oldData:removedItems},senderId)}return removedIds};DataSet.prototype._remove=function(id){var item,ident;if(util.isNumber(id)||util.isString(id)){ident=id}else if(id&&(typeof id===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(id))===\"object\"){ident=id[this._fieldId]}if(ident!==undefined&&this._data[ident]){item=this._data[ident];delete this._data[ident];this.length--;return item}return null};DataSet.prototype.clear=function(senderId){var i,len;var ids=(0,_keys2[\"default\"])(this._data);var items=[];for(i=0,len=ids.length;i<len;i++){items.push(this._data[ids[i]])}this._data={};this.length=0;this._trigger(\"remove\",{items:ids,oldData:items},senderId);return ids};DataSet.prototype.max=function(field){var data=this._data,itemIds=(0,_keys2[\"default\"])(data),max=null,maxField=null,i,len;for(i=0,len=itemIds.length;i<len;i++){var id=itemIds[i];var item=data[id];var itemField=item[field];if(itemField!=null&&(!max||itemField>maxField)){max=item;maxField=itemField}}return max};DataSet.prototype.min=function(field){var data=this._data,itemIds=(0,_keys2[\"default\"])(data),min=null,minField=null,i,len;for(i=0,len=itemIds.length;i<len;i++){var id=itemIds[i];var item=data[id];var itemField=item[field];if(itemField!=null&&(!min||itemField<minField)){min=item;minField=itemField}}return min};DataSet.prototype.distinct=function(field){var data=this._data;var itemIds=(0,_keys2[\"default\"])(data);var values=[];var fieldType=this._options.type&&this._options.type[field]||null;var count=0;var i,j,len;for(i=0,len=itemIds.length;i<len;i++){var id=itemIds[i];var item=data[id];var value=item[field];var exists=false;for(j=0;j<count;j++){if(values[j]==value){exists=true;break}}if(!exists&&value!==undefined){values[count]=value;count++}}if(fieldType){for(i=0,len=values.length;i<len;i++){values[i]=util.convert(values[i],fieldType)}}return values};DataSet.prototype._addItem=function(item){var id=item[this._fieldId];if(id!=undefined){if(this._data[id]){throw new Error(\"Cannot add item: item with id \"+id+\" already exists\")}}else{id=util.randomUUID();item[this._fieldId]=id}var d={},fields=(0,_keys2[\"default\"])(item),i,len;for(i=0,len=fields.length;i<len;i++){var field=fields[i];var fieldType=this._type[field];d[field]=util.convert(item[field],fieldType)}this._data[id]=d;this.length++;return id};DataSet.prototype._getItem=function(id,types){var field,value,i,len;var raw=this._data[id];if(!raw){return null}var converted={},fields=(0,_keys2[\"default\"])(raw);if(types){for(i=0,len=fields.length;i<len;i++){field=fields[i];value=raw[field];converted[field]=util.convert(value,types[field])}}else{for(i=0,len=fields.length;i<len;i++){field=fields[i];value=raw[field];converted[field]=value}}if(!converted[this._fieldId]){converted[this._fieldId]=raw.id}return converted};DataSet.prototype._updateItem=function(item){var id=item[this._fieldId];if(id==undefined){throw new Error(\"Cannot update item: item has no id (item: \"+(0,_stringify2[\"default\"])(item)+\")\")}var d=this._data[id];if(!d){throw new Error(\"Cannot update item: no item with id \"+id+\" found\")}var fields=(0,_keys2[\"default\"])(item);for(var i=0,len=fields.length;i<len;i++){var field=fields[i];var fieldType=this._type[field];d[field]=util.convert(item[field],fieldType)}return id};module.exports=DataSet},function(module,exports,__webpack_require__){\"use strict\";var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DataSet=__webpack_require__(11);function DataView(data,options){this._data=null;this._ids={};this.length=0;this._options=options||{};this._fieldId=\"id\";this._subscribers={};var me=this;this.listener=function(){me._onEvent.apply(me,arguments)};this.setData(data)}DataView.prototype.setData=function(data){var ids,id,i,len,items;if(this._data){if(this._data.off){this._data.off(\"*\",this.listener)}ids=this._data.getIds({filter:this._options&&this._options.filter});items=[];for(i=0,len=ids.length;i<len;i++){items.push(this._data._data[ids[i]])}this._ids={};this.length=0;this._trigger(\"remove\",{items:ids,oldData:items})}this._data=data;if(this._data){this._fieldId=this._options.fieldId||this._data&&this._data.options&&this._data.options.fieldId||\"id\";ids=this._data.getIds({filter:this._options&&this._options.filter});for(i=0,len=ids.length;i<len;i++){id=ids[i];this._ids[id]=true}this.length=ids.length;this._trigger(\"add\",{items:ids});if(this._data.on){this._data.on(\"*\",this.listener)}}};DataView.prototype.refresh=function(){var id,i,len;var ids=this._data.getIds({filter:this._options&&this._options.filter}),oldIds=(0,_keys2[\"default\"])(this._ids),newIds={},addedIds=[],removedIds=[],removedItems=[];for(i=0,len=ids.length;i<len;i++){id=ids[i];newIds[id]=true;if(!this._ids[id]){addedIds.push(id);this._ids[id]=true}}for(i=0,len=oldIds.length;i<len;i++){id=oldIds[i];if(!newIds[id]){removedIds.push(id);removedItems.push(this._data._data[id]);delete this._ids[id]}}this.length+=addedIds.length-removedIds.length;if(addedIds.length){this._trigger(\"add\",{items:addedIds})}if(removedIds.length){this._trigger(\"remove\",{items:removedIds,oldData:removedItems})}};DataView.prototype.get=function(args){var me=this;var ids,options,data;var firstType=util.getType(arguments[0]);if(firstType==\"String\"||firstType==\"Number\"||firstType==\"Array\"){ids=arguments[0];options=arguments[1];data=arguments[2]}else{options=arguments[0];data=arguments[1]}var viewOptions=util.extend({},this._options,options);if(this._options.filter&&options&&options.filter){viewOptions.filter=function(item){return me._options.filter(item)&&options.filter(item)}}var getArguments=[];if(ids!=undefined){getArguments.push(ids)}getArguments.push(viewOptions);getArguments.push(data);return this._data&&this._data.get.apply(this._data,getArguments)};DataView.prototype.getIds=function(options){var ids;if(this._data){var defaultFilter=this._options.filter;var filter;if(options&&options.filter){if(defaultFilter){filter=function filter(item){return defaultFilter(item)&&options.filter(item)}}else{filter=options.filter}}else{filter=defaultFilter}ids=this._data.getIds({filter:filter,order:options&&options.order})}else{ids=[]}return ids};DataView.prototype.map=function(callback,options){var mappedItems=[];if(this._data){var defaultFilter=this._options.filter;var filter;if(options&&options.filter){if(defaultFilter){filter=function filter(item){return defaultFilter(item)&&options.filter(item)}}else{filter=options.filter}}else{filter=defaultFilter}mappedItems=this._data.map(callback,{filter:filter,order:options&&options.order})}else{mappedItems=[]}return mappedItems};DataView.prototype.getDataSet=function(){var dataSet=this;while(dataSet instanceof DataView){dataSet=dataSet._data}return dataSet||null};DataView.prototype._onEvent=function(event,params,senderId){var i,len,id,item;var ids=params&¶ms.items;var addedIds=[],updatedIds=[],removedIds=[],oldItems=[],updatedItems=[],removedItems=[];if(ids&&this._data){switch(event){case\"add\":for(i=0,len=ids.length;i<len;i++){id=ids[i];item=this.get(id);if(item){this._ids[id]=true;addedIds.push(id)}}break;case\"update\":for(i=0,len=ids.length;i<len;i++){id=ids[i];item=this.get(id);if(item){if(this._ids[id]){updatedIds.push(id);updatedItems.push(params.data[i]);oldItems.push(params.oldData[i])}else{this._ids[id]=true;addedIds.push(id)}}else{if(this._ids[id]){delete this._ids[id];removedIds.push(id);removedItems.push(params.oldData[i])}else{}}}break;case\"remove\":for(i=0,len=ids.length;i<len;i++){id=ids[i];if(this._ids[id]){delete this._ids[id];removedIds.push(id);removedItems.push(params.oldData[i])}}break}this.length+=addedIds.length-removedIds.length;if(addedIds.length){this._trigger(\"add\",{items:addedIds},senderId)}if(updatedIds.length){this._trigger(\"update\",{items:updatedIds,oldData:oldItems,data:updatedItems},senderId)}if(removedIds.length){this._trigger(\"remove\",{items:removedIds,oldData:removedItems},senderId)}}};DataView.prototype.on=DataSet.prototype.on;DataView.prototype.off=DataSet.prototype.off;DataView.prototype._trigger=DataSet.prototype._trigger;DataView.prototype.subscribe=DataView.prototype.on;DataView.prototype.unsubscribe=DataView.prototype.off;module.exports=DataView},function(module,exports,__webpack_require__){var store=__webpack_require__(57)(\"wks\");var uid=__webpack_require__(40);var Symbol=__webpack_require__(18).Symbol;var USE_SYMBOL=typeof Symbol==\"function\";var $exports=module.exports=function(name){return store[name]||(store[name]=USE_SYMBOL&&Symbol[name]||(USE_SYMBOL?Symbol:uid)(\"Symbol.\"+name))};$exports.store=store},function(module,exports,__webpack_require__){\"use strict\";exports.prepareElements=function(JSONcontainer){for(var elementType in JSONcontainer){if(JSONcontainer.hasOwnProperty(elementType)){JSONcontainer[elementType].redundant=JSONcontainer[elementType].used;JSONcontainer[elementType].used=[]}}};exports.cleanupElements=function(JSONcontainer){for(var elementType in JSONcontainer){if(JSONcontainer.hasOwnProperty(elementType)){if(JSONcontainer[elementType].redundant){for(var i=0;i<JSONcontainer[elementType].redundant.length;i++){JSONcontainer[elementType].redundant[i].parentNode.removeChild(JSONcontainer[elementType].redundant[i])}JSONcontainer[elementType].redundant=[]}}}};exports.resetElements=function(JSONcontainer){exports.prepareElements(JSONcontainer);exports.cleanupElements(JSONcontainer);exports.prepareElements(JSONcontainer)};exports.getSVGElement=function(elementType,JSONcontainer,svgContainer){var element;if(JSONcontainer.hasOwnProperty(elementType)){if(JSONcontainer[elementType].redundant.length>0){element=JSONcontainer[elementType].redundant[0];JSONcontainer[elementType].redundant.shift()}else{element=document.createElementNS(\"http://www.w3.org/2000/svg\",elementType);svgContainer.appendChild(element)}}else{element=document.createElementNS(\"http://www.w3.org/2000/svg\",elementType);JSONcontainer[elementType]={used:[],redundant:[]};svgContainer.appendChild(element)}JSONcontainer[elementType].used.push(element);return element};exports.getDOMElement=function(elementType,JSONcontainer,DOMContainer,insertBefore){var element;if(JSONcontainer.hasOwnProperty(elementType)){if(JSONcontainer[elementType].redundant.length>0){element=JSONcontainer[elementType].redundant[0];JSONcontainer[elementType].redundant.shift()}else{element=document.createElement(elementType);if(insertBefore!==undefined){DOMContainer.insertBefore(element,insertBefore)}else{DOMContainer.appendChild(element)}}}else{element=document.createElement(elementType);JSONcontainer[elementType]={used:[],redundant:[]};if(insertBefore!==undefined){DOMContainer.insertBefore(element,insertBefore)}else{DOMContainer.appendChild(element)}}JSONcontainer[elementType].used.push(element);return element};exports.drawPoint=function(x,y,groupTemplate,JSONcontainer,svgContainer,labelObj){var point;if(groupTemplate.style==\"circle\"){point=exports.getSVGElement(\"circle\",JSONcontainer,svgContainer);point.setAttributeNS(null,\"cx\",x);point.setAttributeNS(null,\"cy\",y);point.setAttributeNS(null,\"r\",.5*groupTemplate.size)}else{point=exports.getSVGElement(\"rect\",JSONcontainer,svgContainer);point.setAttributeNS(null,\"x\",x-.5*groupTemplate.size);point.setAttributeNS(null,\"y\",y-.5*groupTemplate.size);point.setAttributeNS(null,\"width\",groupTemplate.size);point.setAttributeNS(null,\"height\",groupTemplate.size)}if(groupTemplate.styles!==undefined){point.setAttributeNS(null,\"style\",groupTemplate.styles)}point.setAttributeNS(null,\"class\",groupTemplate.className+\" vis-point\");if(labelObj){var label=exports.getSVGElement(\"text\",JSONcontainer,svgContainer);if(labelObj.xOffset){x=x+labelObj.xOffset}if(labelObj.yOffset){y=y+labelObj.yOffset}if(labelObj.content){label.textContent=labelObj.content}if(labelObj.className){label.setAttributeNS(null,\"class\",labelObj.className+\" vis-label\")}label.setAttributeNS(null,\"x\",x);label.setAttributeNS(null,\"y\",y)}return point};exports.drawBar=function(x,y,width,height,className,JSONcontainer,svgContainer,style){if(height!=0){if(height<0){height*=-1;y-=height}var rect=exports.getSVGElement(\"rect\",JSONcontainer,svgContainer);rect.setAttributeNS(null,\"x\",x-.5*width);rect.setAttributeNS(null,\"y\",y);rect.setAttributeNS(null,\"width\",width);rect.setAttributeNS(null,\"height\",height);rect.setAttributeNS(null,\"class\",className);if(style){rect.setAttributeNS(null,\"style\",style)}}}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.printStyle=undefined;var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var errorFound=false;var allOptions=void 0;var printStyle=\"background: #FFeeee; color: #dd0000\";var Validator=function(){function Validator(){(0,_classCallCheck3[\"default\"])(this,Validator)}(0,_createClass3[\"default\"])(Validator,null,[{key:\"validate\",value:function validate(options,referenceOptions,subObject){errorFound=false;allOptions=referenceOptions;var usedOptions=referenceOptions;if(subObject!==undefined){usedOptions=referenceOptions[subObject]}Validator.parse(options,usedOptions,[]);return errorFound}},{key:\"parse\",value:function parse(options,referenceOptions,path){for(var option in options){if(options.hasOwnProperty(option)){Validator.check(option,options,referenceOptions,path)}}}},{key:\"check\",value:function check(option,options,referenceOptions,path){if(referenceOptions[option]===undefined&&referenceOptions.__any__===undefined){Validator.getSuggestion(option,referenceOptions,path);return}var referenceOption=option;var is_object=true;if(referenceOptions[option]===undefined&&referenceOptions.__any__!==undefined){referenceOption=\"__any__\";is_object=Validator.getType(options[option])===\"object\"}else{}var refOptionObj=referenceOptions[referenceOption];if(is_object&&refOptionObj.__type__!==undefined){refOptionObj=refOptionObj.__type__}Validator.checkFields(option,options,referenceOptions,referenceOption,refOptionObj,path)}},{key:\"checkFields\",value:function checkFields(option,options,referenceOptions,referenceOption,refOptionObj,path){var log=function log(message){console.log(\"%c\"+message+Validator.printLocation(path,option),printStyle)};var optionType=Validator.getType(options[option]);var refOptionType=refOptionObj[optionType];if(refOptionType!==undefined){if(Validator.getType(refOptionType)===\"array\"&&refOptionType.indexOf(options[option])===-1){log('Invalid option detected in \"'+option+'\".'+\" Allowed values are:\"+Validator.print(refOptionType)+' not \"'+options[option]+'\". ');errorFound=true}else if(optionType===\"object\"&&referenceOption!==\"__any__\"){path=util.copyAndExtendArray(path,option);Validator.parse(options[option],referenceOptions[referenceOption],path)}}else if(refOptionObj[\"any\"]===undefined){log('Invalid type received for \"'+option+'\". Expected: '+Validator.print((0,_keys2[\"default\"])(refOptionObj))+\". Received [\"+optionType+'] \"'+options[option]+'\"');errorFound=true}}},{key:\"getType\",value:function getType(object){var type=typeof object===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(object);if(type===\"object\"){if(object===null){return\"null\"}if(object instanceof Boolean){return\"boolean\"}if(object instanceof Number){return\"number\"}if(object instanceof String){return\"string\"}if(Array.isArray(object)){return\"array\"}if(object instanceof Date){return\"date\"}if(object.nodeType!==undefined){return\"dom\"}if(object._isAMomentObject===true){return\"moment\"}return\"object\"}else if(type===\"number\"){return\"number\"}else if(type===\"boolean\"){return\"boolean\"}else if(type===\"string\"){return\"string\"}else if(type===undefined){return\"undefined\"}return type}},{key:\"getSuggestion\",value:function getSuggestion(option,options,path){var localSearch=Validator.findInOptions(option,options,path,false);var globalSearch=Validator.findInOptions(option,allOptions,[],true);var localSearchThreshold=8;var globalSearchThreshold=4;var msg=void 0;if(localSearch.indexMatch!==undefined){msg=\" in \"+Validator.printLocation(localSearch.path,option,\"\")+'Perhaps it was incomplete? Did you mean: \"'+localSearch.indexMatch+'\"?\\n\\n'}else if(globalSearch.distance<=globalSearchThreshold&&localSearch.distance>globalSearch.distance){msg=\" in \"+Validator.printLocation(localSearch.path,option,\"\")+\"Perhaps it was misplaced? Matching option found at: \"+Validator.printLocation(globalSearch.path,globalSearch.closestMatch,\"\")}else if(localSearch.distance<=localSearchThreshold){msg='. Did you mean \"'+localSearch.closestMatch+'\"?'+Validator.printLocation(localSearch.path,option)}else{msg=\". Did you mean one of these: \"+Validator.print((0,_keys2[\"default\"])(options))+Validator.printLocation(path,option)}console.log('%cUnknown option detected: \"'+option+'\"'+msg,printStyle);errorFound=true}},{key:\"findInOptions\",value:function findInOptions(option,options,path){var recursive=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;var min=1e9;var closestMatch=\"\";var closestMatchPath=[];var lowerCaseOption=option.toLowerCase();var indexMatch=undefined;for(var op in options){var distance=void 0;if(options[op].__type__!==undefined&&recursive===true){var result=Validator.findInOptions(option,options[op],util.copyAndExtendArray(path,op));if(min>result.distance){closestMatch=result.closestMatch;closestMatchPath=result.path;min=result.distance;indexMatch=result.indexMatch}}else{if(op.toLowerCase().indexOf(lowerCaseOption)!==-1){indexMatch=op}distance=Validator.levenshteinDistance(option,op);if(min>distance){closestMatch=op;closestMatchPath=util.copyArray(path);min=distance}}}return{closestMatch:closestMatch,path:closestMatchPath,distance:min,indexMatch:indexMatch}}},{key:\"printLocation\",value:function printLocation(path,option){var prefix=arguments.length>2&&arguments[2]!==undefined?arguments[2]:\"Problem value found at: \\n\";var str=\"\\n\\n\"+prefix+\"options = {\\n\";for(var i=0;i<path.length;i++){for(var j=0;j<i+1;j++){str+=\" \"}str+=path[i]+\": {\\n\"}for(var _j=0;_j<path.length+1;_j++){str+=\" \"}str+=option+\"\\n\";for(var _i=0;_i<path.length+1;_i++){for(var _j2=0;_j2<path.length-_i;_j2++){str+=\" \"}str+=\"}\\n\"}return str+\"\\n\\n\"}},{key:\"print\",value:function print(options){return(0,_stringify2[\"default\"])(options).replace(/(\\\")|(\\[)|(\\])|(,\"__type__\")/g,\"\").replace(/(\\,)/g,\", \")}},{key:\"levenshteinDistance\",value:function levenshteinDistance(a,b){if(a.length===0)return b.length;if(b.length===0)return a.length;var matrix=[];var i;for(i=0;i<=b.length;i++){matrix[i]=[i]}var j;for(j=0;j<=a.length;j++){matrix[0][j]=j}for(i=1;i<=b.length;i++){for(j=1;j<=a.length;j++){if(b.charAt(i-1)==a.charAt(j-1)){matrix[i][j]=matrix[i-1][j-1]}else{matrix[i][j]=Math.min(matrix[i-1][j-1]+1,Math.min(matrix[i][j-1]+1,matrix[i-1][j]+1))}}}return matrix[b.length][a.length]}}]);return Validator}();exports[\"default\"]=Validator;exports.printStyle=printStyle},function(module,exports,__webpack_require__){\"use strict\";var util=__webpack_require__(2);function Component(body,options){this.options=null;this.props=null}Component.prototype.setOptions=function(options){if(options){util.extend(this.options,options)}};Component.prototype.redraw=function(){return false};Component.prototype.destroy=function(){};Component.prototype._isResized=function(){var resized=this.props._previousWidth!==this.props.width||this.props._previousHeight!==this.props.height;this.props._previousWidth=this.props.width;this.props._previousHeight=this.props.height;return resized};module.exports=Component},function(module,exports,__webpack_require__){var global=__webpack_require__(18);var core=__webpack_require__(7);var ctx=__webpack_require__(80);var hide=__webpack_require__(26);var PROTOTYPE=\"prototype\";var $export=function(type,name,source){var IS_FORCED=type&$export.F;var IS_GLOBAL=type&$export.G;var IS_STATIC=type&$export.S;var IS_PROTO=type&$export.P;var IS_BIND=type&$export.B;var IS_WRAP=type&$export.W;var exports=IS_GLOBAL?core:core[name]||(core[name]={});var expProto=exports[PROTOTYPE];var target=IS_GLOBAL?global:IS_STATIC?global[name]:(global[name]||{})[PROTOTYPE];var key,own,out;if(IS_GLOBAL)source=name;for(key in source){own=!IS_FORCED&&target&&target[key]!==undefined;if(own&&key in exports)continue;out=own?target[key]:source[key];exports[key]=IS_GLOBAL&&typeof target[key]!=\"function\"?source[key]:IS_BIND&&own?ctx(out,global):IS_WRAP&&target[key]==out?function(C){var F=function(a,b,c){if(this instanceof C){switch(arguments.length){case 0:return new C;case 1:return new C(a);case 2:return new C(a,b)}return new C(a,b,c)}return C.apply(this,arguments)};F[PROTOTYPE]=C[PROTOTYPE];return F}(out):IS_PROTO&&typeof out==\"function\"?ctx(Function.call,out):out;if(IS_PROTO){(exports.virtual||(exports.virtual={}))[key]=out;if(type&$export.R&&expProto&&!expProto[key])hide(expProto,key,out)}}};$export.F=1;$export.G=2;$export.S=4;$export.P=8;$export.B=16;$export.W=32;$export.U=64;$export.R=128;module.exports=$export},function(module,exports){var global=module.exports=typeof window!=\"undefined\"&&window.Math==Math?window:typeof self!=\"undefined\"&&self.Math==Math?self:Function(\"return this\")();if(typeof __g==\"number\")__g=global},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(160),__esModule:true}},function(module,exports,__webpack_require__){var anObject=__webpack_require__(27);var IE8_DOM_DEFINE=__webpack_require__(81);var toPrimitive=__webpack_require__(53);var dP=Object.defineProperty;exports.f=__webpack_require__(21)?Object.defineProperty:function defineProperty(O,P,Attributes){anObject(O);P=toPrimitive(P,true);anObject(Attributes);if(IE8_DOM_DEFINE)try{return dP(O,P,Attributes)}catch(e){}if(\"get\"in Attributes||\"set\"in Attributes)throw TypeError(\"Accessors not supported!\");if(\"value\"in Attributes)O[P]=Attributes.value;return O}},function(module,exports,__webpack_require__){module.exports=!__webpack_require__(28)(function(){return Object.defineProperty({},\"a\",{get:function(){return 7}}).a!=7})},function(module,exports){var hasOwnProperty={}.hasOwnProperty;module.exports=function(it,key){return hasOwnProperty.call(it,key)}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var NodeBase=function(){function NodeBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,NodeBase);this.body=body;this.labelModule=labelModule;this.setOptions(options);this.top=undefined;this.left=undefined;this.height=undefined;this.width=undefined;this.radius=undefined;this.margin=undefined;this.refreshNeeded=true;this.boundingBox={top:0,left:0,right:0,bottom:0}}(0,_createClass3[\"default\"])(NodeBase,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"_setMargins\",value:function _setMargins(labelModule){this.margin={};if(this.options.margin){if((0,_typeof3[\"default\"])(this.options.margin)==\"object\"){this.margin.top=this.options.margin.top;this.margin.right=this.options.margin.right;this.margin.bottom=this.options.margin.bottom;this.margin.left=this.options.margin.left}else{this.margin.top=this.options.margin;this.margin.right=this.options.margin;this.margin.bottom=this.options.margin;this.margin.left=this.options.margin}}labelModule.adjustSizes(this.margin)}},{key:\"_distanceToBorder\",value:function _distanceToBorder(ctx,angle){var borderWidth=this.options.borderWidth;this.resize(ctx);return Math.min(Math.abs(this.width/2/Math.cos(angle)),Math.abs(this.height/2/Math.sin(angle)))+borderWidth}},{key:\"enableShadow\",value:function enableShadow(ctx,values){if(values.shadow){ctx.shadowColor=values.shadowColor;ctx.shadowBlur=values.shadowSize;ctx.shadowOffsetX=values.shadowX;ctx.shadowOffsetY=values.shadowY}}},{key:\"disableShadow\",value:function disableShadow(ctx,values){if(values.shadow){ctx.shadowColor=\"rgba(0,0,0,0)\";ctx.shadowBlur=0;ctx.shadowOffsetX=0;ctx.shadowOffsetY=0}}},{key:\"enableBorderDashes\",value:function enableBorderDashes(ctx,values){if(values.borderDashes!==false){if(ctx.setLineDash!==undefined){var dashes=values.borderDashes;if(dashes===true){dashes=[5,15]}ctx.setLineDash(dashes)}else{console.warn(\"setLineDash is not supported in this browser. The dashed borders cannot be used.\");this.options.shapeProperties.borderDashes=false;values.borderDashes=false}}}},{key:\"disableBorderDashes\",value:function disableBorderDashes(ctx,values){if(values.borderDashes!==false){if(ctx.setLineDash!==undefined){ctx.setLineDash([0])}else{console.warn(\"setLineDash is not supported in this browser. The dashed borders cannot be used.\");this.options.shapeProperties.borderDashes=false;values.borderDashes=false}}}},{key:\"needsRefresh\",value:function needsRefresh(selected,hover){if(this.refreshNeeded===true){this.refreshNeeded=false;return true}return this.width===undefined||this.labelModule.differentState(selected,hover)}},{key:\"initContextForDraw\",value:function initContextForDraw(ctx,values){var borderWidth=values.borderWidth/this.body.view.scale;ctx.lineWidth=Math.min(this.width,borderWidth);ctx.strokeStyle=values.borderColor;ctx.fillStyle=values.color}},{key:\"performStroke\",value:function performStroke(ctx,values){var borderWidth=values.borderWidth/this.body.view.scale;ctx.save();if(borderWidth>0){this.enableBorderDashes(ctx,values);ctx.stroke();this.disableBorderDashes(ctx,values)}ctx.restore()}},{key:\"performFill\",value:function performFill(ctx,values){this.enableShadow(ctx,values);ctx.fill();this.disableShadow(ctx,values);this.performStroke(ctx,values)}},{key:\"_addBoundingBoxMargin\",value:function _addBoundingBoxMargin(margin){this.boundingBox.left-=margin;this.boundingBox.top-=margin;this.boundingBox.bottom+=margin;this.boundingBox.right+=margin}},{key:\"_updateBoundingBox\",value:function _updateBoundingBox(x,y,ctx,selected,hover){if(ctx!==undefined){this.resize(ctx,selected,hover)}this.left=x-this.width/2;this.top=y-this.height/2;this.boundingBox.left=this.left;this.boundingBox.top=this.top;this.boundingBox.bottom=this.top+this.height;this.boundingBox.right=this.left+this.width}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y,ctx,selected,hover){this._updateBoundingBox(x,y,ctx,selected,hover)}},{key:\"getDimensionsFromLabel\",value:function getDimensionsFromLabel(ctx,selected,hover){this.textSize=this.labelModule.getTextSize(ctx,selected,hover);var width=this.textSize.width;var height=this.textSize.height;var DEFAULT_SIZE=14;if(width===0){width=DEFAULT_SIZE;height=DEFAULT_SIZE}return{width:width,height:height}}}]);return NodeBase}();exports[\"default\"]=NodeBase},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2)\n;var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var ShapeBase=function(_NodeBase){(0,_inherits3[\"default\"])(ShapeBase,_NodeBase);function ShapeBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,ShapeBase);return(0,_possibleConstructorReturn3[\"default\"])(this,(ShapeBase.__proto__||(0,_getPrototypeOf2[\"default\"])(ShapeBase)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(ShapeBase,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;var values=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{size:this.options.size};if(this.needsRefresh(selected,hover)){this.labelModule.getTextSize(ctx,selected,hover);var size=2*values.size;this.width=size;this.height=size;this.radius=.5*this.width}}},{key:\"_drawShape\",value:function _drawShape(ctx,shape,sizeMultiplier,x,y,selected,hover,values){this.resize(ctx,selected,hover,values);this.left=x-this.width/2;this.top=y-this.height/2;this.initContextForDraw(ctx,values);ctx[shape](x,y,values.size);this.performFill(ctx,values);if(this.options.label!==undefined){this.labelModule.calculateLabelSize(ctx,selected,hover,x,y,\"hanging\");var yLabel=y+.5*this.height+.5*this.labelModule.size.height;this.labelModule.draw(ctx,x,yLabel,selected,hover,\"hanging\")}this.updateBoundingBox(x,y)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y){this.boundingBox.top=y-this.options.size;this.boundingBox.left=x-this.options.size;this.boundingBox.right=x+this.options.size;this.boundingBox.bottom=y+this.options.size;if(this.options.label!==undefined&&this.labelModule.size.width>0){this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left);this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width);this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height)}}}]);return ShapeBase}(_NodeBase3[\"default\"]);exports[\"default\"]=ShapeBase},function(module,exports,__webpack_require__){var IObject=__webpack_require__(78);var defined=__webpack_require__(51);module.exports=function(it){return IObject(defined(it))}},function(module,exports,__webpack_require__){var dP=__webpack_require__(20);var createDesc=__webpack_require__(39);module.exports=__webpack_require__(21)?function(object,key,value){return dP.f(object,key,createDesc(1,value))}:function(object,key,value){object[key]=value;return object}},function(module,exports,__webpack_require__){var isObject=__webpack_require__(32);module.exports=function(it){if(!isObject(it))throw TypeError(it+\" is not an object!\");return it}},function(module,exports){module.exports=function(exec){try{return!!exec()}catch(e){return true}}},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(138),__esModule:true}},function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;var _isIterable2=__webpack_require__(188);var _isIterable3=_interopRequireDefault(_isIterable2);var _getIterator2=__webpack_require__(77);var _getIterator3=_interopRequireDefault(_getIterator2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=function(){function sliceIterator(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=(0,_getIterator3.default)(arr),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i[\"return\"])_i[\"return\"]()}finally{if(_d)throw _e}}return _arr}return function(arr,i){if(Array.isArray(arr)){return arr}else if((0,_isIterable3.default)(Object(arr))){return sliceIterator(arr,i)}else{throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}}()},function(module,exports){module.exports={}},function(module,exports){module.exports=function(it){return typeof it===\"object\"?it!==null:typeof it===\"function\"}},function(module,exports,__webpack_require__){var $keys=__webpack_require__(84);var enumBugKeys=__webpack_require__(58);module.exports=Object.keys||function keys(O){return $keys(O,enumBugKeys)}},function(module,exports,__webpack_require__){\"use strict\";function Point3d(x,y,z){this.x=x!==undefined?x:0;this.y=y!==undefined?y:0;this.z=z!==undefined?z:0}Point3d.subtract=function(a,b){var sub=new Point3d;sub.x=a.x-b.x;sub.y=a.y-b.y;sub.z=a.z-b.z;return sub};Point3d.add=function(a,b){var sum=new Point3d;sum.x=a.x+b.x;sum.y=a.y+b.y;sum.z=a.z+b.z;return sum};Point3d.avg=function(a,b){return new Point3d((a.x+b.x)/2,(a.y+b.y)/2,(a.z+b.z)/2)};Point3d.crossProduct=function(a,b){var crossproduct=new Point3d;crossproduct.x=a.y*b.z-a.z*b.y;crossproduct.y=a.z*b.x-a.x*b.z;crossproduct.z=a.x*b.y-a.y*b.x;return crossproduct};Point3d.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)};module.exports=Point3d},function(module,exports,__webpack_require__){\"use strict\";var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;(function(root,factory){if(true){!(__WEBPACK_AMD_DEFINE_ARRAY__=[],__WEBPACK_AMD_DEFINE_FACTORY__=factory,__WEBPACK_AMD_DEFINE_RESULT__=typeof __WEBPACK_AMD_DEFINE_FACTORY__===\"function\"?__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__):__WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_RESULT__!==undefined&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}else if(typeof exports===\"object\"){module.exports=factory()}else{root.keycharm=factory()}})(this,function(){function keycharm(options){var preventDefault=options&&options.preventDefault||false;var container=options&&options.container||window;var _exportFunctions={};var _bound={keydown:{},keyup:{}};var _keys={};var i;for(i=97;i<=122;i++){_keys[String.fromCharCode(i)]={code:65+(i-97),shift:false}}for(i=65;i<=90;i++){_keys[String.fromCharCode(i)]={code:i,shift:true}}for(i=0;i<=9;i++){_keys[\"\"+i]={code:48+i,shift:false}}for(i=1;i<=12;i++){_keys[\"F\"+i]={code:111+i,shift:false}}for(i=0;i<=9;i++){_keys[\"num\"+i]={code:96+i,shift:false}}_keys[\"num*\"]={code:106,shift:false};_keys[\"num+\"]={code:107,shift:false};_keys[\"num-\"]={code:109,shift:false};_keys[\"num/\"]={code:111,shift:false};_keys[\"num.\"]={code:110,shift:false};_keys[\"left\"]={code:37,shift:false};_keys[\"up\"]={code:38,shift:false};_keys[\"right\"]={code:39,shift:false};_keys[\"down\"]={code:40,shift:false};_keys[\"space\"]={code:32,shift:false};_keys[\"enter\"]={code:13,shift:false};_keys[\"shift\"]={code:16,shift:undefined};_keys[\"esc\"]={code:27,shift:false};_keys[\"backspace\"]={code:8,shift:false};_keys[\"tab\"]={code:9,shift:false};_keys[\"ctrl\"]={code:17,shift:false};_keys[\"alt\"]={code:18,shift:false};_keys[\"delete\"]={code:46,shift:false};_keys[\"pageup\"]={code:33,shift:false};_keys[\"pagedown\"]={code:34,shift:false};_keys[\"=\"]={code:187,shift:false};_keys[\"-\"]={code:189,shift:false};_keys[\"]\"]={code:221,shift:false};_keys[\"[\"]={code:219,shift:false};var down=function(event){handleEvent(event,\"keydown\")};var up=function(event){handleEvent(event,\"keyup\")};var handleEvent=function(event,type){if(_bound[type][event.keyCode]!==undefined){var bound=_bound[type][event.keyCode];for(var i=0;i<bound.length;i++){if(bound[i].shift===undefined){bound[i].fn(event)}else if(bound[i].shift==true&&event.shiftKey==true){bound[i].fn(event)}else if(bound[i].shift==false&&event.shiftKey==false){bound[i].fn(event)}}if(preventDefault==true){event.preventDefault()}}};_exportFunctions.bind=function(key,callback,type){if(type===undefined){type=\"keydown\"}if(_keys[key]===undefined){throw new Error(\"unsupported key: \"+key)}if(_bound[type][_keys[key].code]===undefined){_bound[type][_keys[key].code]=[]}_bound[type][_keys[key].code].push({fn:callback,shift:_keys[key].shift})};_exportFunctions.bindAll=function(callback,type){if(type===undefined){type=\"keydown\"}for(var key in _keys){if(_keys.hasOwnProperty(key)){_exportFunctions.bind(key,callback,type)}}};_exportFunctions.getKey=function(event){for(var key in _keys){if(_keys.hasOwnProperty(key)){if(event.shiftKey==true&&_keys[key].shift==true&&event.keyCode==_keys[key].code){return key}else if(event.shiftKey==false&&_keys[key].shift==false&&event.keyCode==_keys[key].code){return key}else if(event.keyCode==_keys[key].code&&key==\"shift\"){return key}}}return\"unknown key, currently not supported\"};_exportFunctions.unbind=function(key,callback,type){if(type===undefined){type=\"keydown\"}if(_keys[key]===undefined){throw new Error(\"unsupported key: \"+key)}if(callback!==undefined){var newBindings=[];var bound=_bound[type][_keys[key].code];if(bound!==undefined){for(var i=0;i<bound.length;i++){if(!(bound[i].fn==callback&&bound[i].shift==_keys[key].shift)){newBindings.push(_bound[type][_keys[key].code][i])}}}_bound[type][_keys[key].code]=newBindings}else{_bound[type][_keys[key].code]=[]}};_exportFunctions.reset=function(){_bound={keydown:{},keyup:{}}};_exportFunctions.destroy=function(){_bound={keydown:{},keyup:{}};container.removeEventListener(\"keydown\",down,true);container.removeEventListener(\"keyup\",up,true)};container.addEventListener(\"keydown\",down,true);container.addEventListener(\"keyup\",up,true);return _exportFunctions}return keycharm})},function(module,exports,__webpack_require__){\"use strict\";exports.convertHiddenOptions=function(moment,body,hiddenDates){if(hiddenDates&&!Array.isArray(hiddenDates)){return exports.convertHiddenOptions(moment,body,[hiddenDates])}body.hiddenDates=[];if(hiddenDates){if(Array.isArray(hiddenDates)==true){for(var i=0;i<hiddenDates.length;i++){if(hiddenDates[i].repeat===undefined){var dateItem={};dateItem.start=moment(hiddenDates[i].start).toDate().valueOf();dateItem.end=moment(hiddenDates[i].end).toDate().valueOf();body.hiddenDates.push(dateItem)}}body.hiddenDates.sort(function(a,b){return a.start-b.start})}}};exports.updateHiddenDates=function(moment,body,hiddenDates){if(hiddenDates&&!Array.isArray(hiddenDates)){return exports.updateHiddenDates(moment,body,[hiddenDates])}if(hiddenDates&&body.domProps.centerContainer.width!==undefined){exports.convertHiddenOptions(moment,body,hiddenDates);var start=moment(body.range.start);var end=moment(body.range.end);var totalRange=body.range.end-body.range.start;var pixelTime=totalRange/body.domProps.centerContainer.width;for(var i=0;i<hiddenDates.length;i++){if(hiddenDates[i].repeat!==undefined){var startDate=moment(hiddenDates[i].start);var endDate=moment(hiddenDates[i].end);if(startDate._d==\"Invalid Date\"){throw new Error(\"Supplied start date is not valid: \"+hiddenDates[i].start)}if(endDate._d==\"Invalid Date\"){throw new Error(\"Supplied end date is not valid: \"+hiddenDates[i].end)}var duration=endDate-startDate;if(duration>=4*pixelTime){var offset=0;var runUntil=end.clone();switch(hiddenDates[i].repeat){case\"daily\":if(startDate.day()!=endDate.day()){offset=1}startDate.dayOfYear(start.dayOfYear());startDate.year(start.year());startDate.subtract(7,\"days\");endDate.dayOfYear(start.dayOfYear());endDate.year(start.year());endDate.subtract(7-offset,\"days\");runUntil.add(1,\"weeks\");break;case\"weekly\":var dayOffset=endDate.diff(startDate,\"days\");var day=startDate.day();startDate.date(start.date());startDate.month(start.month());startDate.year(start.year());endDate=startDate.clone();startDate.day(day);endDate.day(day);endDate.add(dayOffset,\"days\");startDate.subtract(1,\"weeks\");endDate.subtract(1,\"weeks\");runUntil.add(1,\"weeks\");break;case\"monthly\":if(startDate.month()!=endDate.month()){offset=1}startDate.month(start.month());startDate.year(start.year());startDate.subtract(1,\"months\");endDate.month(start.month());endDate.year(start.year());endDate.subtract(1,\"months\");endDate.add(offset,\"months\");runUntil.add(1,\"months\");break;case\"yearly\":if(startDate.year()!=endDate.year()){offset=1}startDate.year(start.year());startDate.subtract(1,\"years\");endDate.year(start.year());endDate.subtract(1,\"years\");endDate.add(offset,\"years\");runUntil.add(1,\"years\");break;default:console.log(\"Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:\",hiddenDates[i].repeat);return}while(startDate<runUntil){body.hiddenDates.push({start:startDate.valueOf(),end:endDate.valueOf()});switch(hiddenDates[i].repeat){case\"daily\":startDate.add(1,\"days\");endDate.add(1,\"days\");break;case\"weekly\":startDate.add(1,\"weeks\");endDate.add(1,\"weeks\");break;case\"monthly\":startDate.add(1,\"months\");endDate.add(1,\"months\");break;case\"yearly\":startDate.add(1,\"y\");endDate.add(1,\"y\");break;default:console.log(\"Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:\",hiddenDates[i].repeat);return}}body.hiddenDates.push({start:startDate.valueOf(),end:endDate.valueOf()})}}}exports.removeDuplicates(body);var startHidden=exports.isHidden(body.range.start,body.hiddenDates);var endHidden=exports.isHidden(body.range.end,body.hiddenDates);var rangeStart=body.range.start;var rangeEnd=body.range.end;if(startHidden.hidden==true){rangeStart=body.range.startToFront==true?startHidden.startDate-1:startHidden.endDate+1}if(endHidden.hidden==true){rangeEnd=body.range.endToFront==true?endHidden.startDate-1:endHidden.endDate+1}if(startHidden.hidden==true||endHidden.hidden==true){body.range._applyRange(rangeStart,rangeEnd)}}};exports.removeDuplicates=function(body){var hiddenDates=body.hiddenDates;var safeDates=[];for(var i=0;i<hiddenDates.length;i++){for(var j=0;j<hiddenDates.length;j++){if(i!=j&&hiddenDates[j].remove!=true&&hiddenDates[i].remove!=true){if(hiddenDates[j].start>=hiddenDates[i].start&&hiddenDates[j].end<=hiddenDates[i].end){hiddenDates[j].remove=true}else if(hiddenDates[j].start>=hiddenDates[i].start&&hiddenDates[j].start<=hiddenDates[i].end){hiddenDates[i].end=hiddenDates[j].end;hiddenDates[j].remove=true}else if(hiddenDates[j].end>=hiddenDates[i].start&&hiddenDates[j].end<=hiddenDates[i].end){hiddenDates[i].start=hiddenDates[j].start;hiddenDates[j].remove=true}}}}for(i=0;i<hiddenDates.length;i++){if(hiddenDates[i].remove!==true){safeDates.push(hiddenDates[i])}}body.hiddenDates=safeDates;body.hiddenDates.sort(function(a,b){return a.start-b.start})};exports.printDates=function(dates){for(var i=0;i<dates.length;i++){console.log(i,new Date(dates[i].start),new Date(dates[i].end),dates[i].start,dates[i].end,dates[i].remove)}};exports.stepOverHiddenDates=function(moment,timeStep,previousTime){var stepInHidden=false;var currentValue=timeStep.current.valueOf();for(var i=0;i<timeStep.hiddenDates.length;i++){var startDate=timeStep.hiddenDates[i].start;var endDate=timeStep.hiddenDates[i].end;if(currentValue>=startDate&¤tValue<endDate){stepInHidden=true;break}}if(stepInHidden==true&¤tValue<timeStep._end.valueOf()&¤tValue!=previousTime){var prevValue=moment(previousTime);var newValue=moment(endDate);if(prevValue.year()!=newValue.year()){timeStep.switchedYear=true}else if(prevValue.month()!=newValue.month()){timeStep.switchedMonth=true}else if(prevValue.dayOfYear()!=newValue.dayOfYear()){timeStep.switchedDay=true}timeStep.current=newValue}};exports.toScreen=function(Core,time,width){var conversion;if(Core.body.hiddenDates.length==0){conversion=Core.range.conversion(width);return(time.valueOf()-conversion.offset)*conversion.scale}else{var hidden=exports.isHidden(time,Core.body.hiddenDates);if(hidden.hidden==true){time=hidden.startDate}var duration=exports.getHiddenDurationBetween(Core.body.hiddenDates,Core.range.start,Core.range.end);if(time<Core.range.start){conversion=Core.range.conversion(width,duration);var hiddenBeforeStart=exports.getHiddenDurationBeforeStart(Core.body.hiddenDates,time,conversion.offset);time=Core.options.moment(time).toDate().valueOf();time=time+hiddenBeforeStart;return-(conversion.offset-time.valueOf())*conversion.scale}else if(time>Core.range.end){var rangeAfterEnd={start:Core.range.start,end:time};time=exports.correctTimeForHidden(Core.options.moment,Core.body.hiddenDates,rangeAfterEnd,time);conversion=Core.range.conversion(width,duration);return(time.valueOf()-conversion.offset)*conversion.scale}else{time=exports.correctTimeForHidden(Core.options.moment,Core.body.hiddenDates,Core.range,time);conversion=Core.range.conversion(width,duration);return(time.valueOf()-conversion.offset)*conversion.scale}}};exports.toTime=function(Core,x,width){if(Core.body.hiddenDates.length==0){var conversion=Core.range.conversion(width);return new Date(x/conversion.scale+conversion.offset)}else{var hiddenDuration=exports.getHiddenDurationBetween(Core.body.hiddenDates,Core.range.start,Core.range.end);var totalDuration=Core.range.end-Core.range.start-hiddenDuration;var partialDuration=totalDuration*x/width;var accumulatedHiddenDuration=exports.getAccumulatedHiddenDuration(Core.body.hiddenDates,Core.range,partialDuration);return new Date(accumulatedHiddenDuration+partialDuration+Core.range.start)}};exports.getHiddenDurationBetween=function(hiddenDates,start,end){var duration=0;for(var i=0;i<hiddenDates.length;i++){var startDate=hiddenDates[i].start;var endDate=hiddenDates[i].end;if(startDate>=start&&endDate<end){duration+=endDate-startDate}}return duration};exports.getHiddenDurationBeforeStart=function(hiddenDates,start,end){var duration=0;for(var i=0;i<hiddenDates.length;i++){var startDate=hiddenDates[i].start;var endDate=hiddenDates[i].end;if(startDate>=start&&endDate<=end){duration+=endDate-startDate}}return duration};exports.correctTimeForHidden=function(moment,hiddenDates,range,time){time=moment(time).toDate().valueOf();time-=exports.getHiddenDurationBefore(moment,hiddenDates,range,time);return time};exports.getHiddenDurationBefore=function(moment,hiddenDates,range,time){var timeOffset=0;time=moment(time).toDate().valueOf();for(var i=0;i<hiddenDates.length;i++){var startDate=hiddenDates[i].start;var endDate=hiddenDates[i].end;if(startDate>=range.start&&endDate<range.end){if(time>=endDate){timeOffset+=endDate-startDate}}}return timeOffset};exports.getAccumulatedHiddenDuration=function(hiddenDates,range,requiredDuration){var hiddenDuration=0;var duration=0;var previousPoint=range.start;for(var i=0;i<hiddenDates.length;i++){var startDate=hiddenDates[i].start;var endDate=hiddenDates[i].end;if(startDate>=range.start&&endDate<range.end){duration+=startDate-previousPoint;previousPoint=endDate;if(duration>=requiredDuration){break}else{hiddenDuration+=endDate-startDate}}}return hiddenDuration};exports.snapAwayFromHidden=function(hiddenDates,time,direction,correctionEnabled){var isHidden=exports.isHidden(time,hiddenDates);if(isHidden.hidden==true){if(direction<0){if(correctionEnabled==true){return isHidden.startDate-(isHidden.endDate-time)-1}else{return isHidden.startDate-1}}else{if(correctionEnabled==true){return isHidden.endDate+(time-isHidden.startDate)+1}else{return isHidden.endDate+1}}}else{return time}};exports.isHidden=function(time,hiddenDates){for(var i=0;i<hiddenDates.length;i++){var startDate=hiddenDates[i].start;var endDate=hiddenDates[i].end;if(time>=startDate&&time<endDate){return{hidden:true,startDate:startDate,endDate:endDate}}}return{hidden:false,startDate:startDate,endDate:endDate}}},function(module,exports,__webpack_require__){\"use strict\";exports.onTouch=function(hammer,callback){callback.inputHandler=function(event){if(event.isFirst){callback(event)}};hammer.on(\"hammer.input\",callback.inputHandler)};exports.onRelease=function(hammer,callback){callback.inputHandler=function(event){if(event.isFinal){callback(event)}};return hammer.on(\"hammer.input\",callback.inputHandler)};exports.offTouch=function(hammer,callback){hammer.off(\"hammer.input\",callback.inputHandler)};exports.offRelease=exports.offTouch;exports.disablePreventDefaultVertically=function(pinchRecognizer){var TOUCH_ACTION_PAN_Y=\"pan-y\";pinchRecognizer.getTouchAction=function(){return[TOUCH_ACTION_PAN_Y]};return pinchRecognizer}},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hammer=__webpack_require__(10);var util=__webpack_require__(2);var moment=__webpack_require__(9);function Item(data,conversion,options){this.id=null;this.parent=null;this.data=data;this.dom=null;this.conversion=conversion||{};this.options=options||{};this.selected=false;this.displayed=false;this.groupShowing=true;this.dirty=true;this.top=null;this.right=null;this.left=null;this.width=null;this.height=null;this.editable=null;this._updateEditStatus()}Item.prototype.stack=true;Item.prototype.select=function(){this.selected=true;this.dirty=true;if(this.displayed)this.redraw()};Item.prototype.unselect=function(){this.selected=false;this.dirty=true;if(this.displayed)this.redraw()};Item.prototype.setData=function(data){var groupChanged=data.group!=undefined&&this.data.group!=data.group;if(groupChanged&&this.parent!=null){this.parent.itemSet._moveToGroup(this,data.group)}if(this.parent){this.parent.stackDirty=true}var subGroupChanged=data.subgroup!=undefined&&this.data.subgroup!=data.subgroup;if(subGroupChanged&&this.parent!=null){this.parent.changeSubgroup(this,this.data.subgroup,data.subgroup)}this.data=data;this._updateEditStatus();this.dirty=true;if(this.displayed)this.redraw()};Item.prototype.setParent=function(parent){if(this.displayed){this.hide();this.parent=parent;if(this.parent){this.show()}}else{this.parent=parent}};Item.prototype.isVisible=function(range){return false};Item.prototype.show=function(){return false};Item.prototype.hide=function(){return false};Item.prototype.redraw=function(){};Item.prototype.repositionX=function(){};Item.prototype.repositionY=function(){};Item.prototype._repaintDragCenter=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragCenter){var me=this;var dragCenter=document.createElement(\"div\");dragCenter.className=\"vis-drag-center\";dragCenter.dragCenterItem=this;var hammer=new Hammer(dragCenter);hammer.on(\"tap\",function(event){me.parent.itemSet.body.emitter.emit(\"click\",{event:event,item:me.id})});hammer.on(\"doubletap\",function(event){event.stopPropagation();me.parent.itemSet._onUpdateItem(me);me.parent.itemSet.body.emitter.emit(\"doubleClick\",{event:event,item:me.id})});if(this.dom.box){if(this.dom.dragLeft){this.dom.box.insertBefore(dragCenter,this.dom.dragLeft)}else{this.dom.box.appendChild(dragCenter)}}else if(this.dom.point){this.dom.point.appendChild(dragCenter)}this.dom.dragCenter=dragCenter}else if(!this.selected&&this.dom.dragCenter){if(this.dom.dragCenter.parentNode){this.dom.dragCenter.parentNode.removeChild(this.dom.dragCenter)}this.dom.dragCenter=null}};Item.prototype._repaintDeleteButton=function(anchor){var editable=(this.options.editable.overrideItems||this.editable==null)&&this.options.editable.remove||!this.options.editable.overrideItems&&this.editable!=null&&this.editable.remove;if(this.selected&&editable&&!this.dom.deleteButton){var me=this;var deleteButton=document.createElement(\"div\");if(this.options.rtl){deleteButton.className=\"vis-delete-rtl\"}else{deleteButton.className=\"vis-delete\"}deleteButton.title=\"Delete this item\";new Hammer(deleteButton).on(\"tap\",function(event){event.stopPropagation();me.parent.removeFromDataSet(me)});anchor.appendChild(deleteButton);this.dom.deleteButton=deleteButton}else if(!this.selected&&this.dom.deleteButton){if(this.dom.deleteButton.parentNode){this.dom.deleteButton.parentNode.removeChild(this.dom.deleteButton)}this.dom.deleteButton=null}};Item.prototype._repaintOnItemUpdateTimeTooltip=function(anchor){if(!this.options.tooltipOnItemUpdateTime)return;var editable=(this.options.editable.updateTime||this.data.editable===true)&&this.data.editable!==false;if(this.selected&&editable&&!this.dom.onItemUpdateTimeTooltip){var onItemUpdateTimeTooltip=document.createElement(\"div\");onItemUpdateTimeTooltip.className=\"vis-onUpdateTime-tooltip\";anchor.appendChild(onItemUpdateTimeTooltip);this.dom.onItemUpdateTimeTooltip=onItemUpdateTimeTooltip}else if(!this.selected&&this.dom.onItemUpdateTimeTooltip){if(this.dom.onItemUpdateTimeTooltip.parentNode){this.dom.onItemUpdateTimeTooltip.parentNode.removeChild(this.dom.onItemUpdateTimeTooltip)}this.dom.onItemUpdateTimeTooltip=null}if(this.dom.onItemUpdateTimeTooltip){this.dom.onItemUpdateTimeTooltip.style.visibility=this.parent.itemSet.touchParams.itemIsDragging?\"visible\":\"hidden\";if(this.options.rtl){this.dom.onItemUpdateTimeTooltip.style.right=this.dom.content.style.right}else{this.dom.onItemUpdateTimeTooltip.style.left=this.dom.content.style.left}var tooltipOffset=50;var scrollTop=this.parent.itemSet.body.domProps.scrollTop;var itemDistanceFromTop;if(this.options.orientation.item==\"top\"){itemDistanceFromTop=this.top}else{itemDistanceFromTop=this.parent.height-this.top-this.height}var isCloseToTop=itemDistanceFromTop+this.parent.top-tooltipOffset<-scrollTop;if(isCloseToTop){this.dom.onItemUpdateTimeTooltip.style.bottom=\"\";this.dom.onItemUpdateTimeTooltip.style.top=this.height+2+\"px\"}else{this.dom.onItemUpdateTimeTooltip.style.top=\"\";this.dom.onItemUpdateTimeTooltip.style.bottom=this.height+2+\"px\"}var content;var templateFunction;if(this.options.tooltipOnItemUpdateTime&&this.options.tooltipOnItemUpdateTime.template){templateFunction=this.options.tooltipOnItemUpdateTime.template.bind(this);content=templateFunction(this.data)}else{content=\"start: \"+moment(this.data.start).format(\"MM/DD/YYYY hh:mm\");if(this.data.end){content+=\"<br> end: \"+moment(this.data.end).format(\"MM/DD/YYYY hh:mm\")}}this.dom.onItemUpdateTimeTooltip.innerHTML=content}};Item.prototype._updateContents=function(element){var content;var changed;var templateFunction;var itemVisibleFrameContent;var visibleFrameTemplateFunction;var itemData=this.parent.itemSet.itemsData.get(this.id);var frameElement=this.dom.box||this.dom.point;var itemVisibleFrameContentElement=frameElement.getElementsByClassName(\"vis-item-visible-frame\")[0];if(this.options.visibleFrameTemplate){visibleFrameTemplateFunction=this.options.visibleFrameTemplate.bind(this);itemVisibleFrameContent=visibleFrameTemplateFunction(itemData,frameElement)}else{itemVisibleFrameContent=\"\"}if(itemVisibleFrameContentElement){if(itemVisibleFrameContent instanceof Object&&!(itemVisibleFrameContent instanceof Element)){visibleFrameTemplateFunction(itemData,itemVisibleFrameContentElement)}else{changed=this._contentToString(this.itemVisibleFrameContent)!==this._contentToString(itemVisibleFrameContent);if(changed){if(itemVisibleFrameContent instanceof Element){itemVisibleFrameContentElement.innerHTML=\"\";itemVisibleFrameContentElement.appendChild(itemVisibleFrameContent)}else if(itemVisibleFrameContent!=undefined){itemVisibleFrameContentElement.innerHTML=itemVisibleFrameContent}else{if(!(this.data.type==\"background\"&&this.data.content===undefined)){throw new Error('Property \"content\" missing in item '+this.id)}}this.itemVisibleFrameContent=itemVisibleFrameContent}}}if(this.options.template){templateFunction=this.options.template.bind(this);content=templateFunction(itemData,element,this.data)}else{content=this.data.content}if(content instanceof Object&&!(content instanceof Element)){templateFunction(itemData,element)}else{changed=this._contentToString(this.content)!==this._contentToString(content);if(changed){if(content instanceof Element){element.innerHTML=\"\";element.appendChild(content)}else if(content!=undefined){element.innerHTML=content}else{if(!(this.data.type==\"background\"&&this.data.content===undefined)){throw new Error('Property \"content\" missing in item '+this.id)}}this.content=content}}};Item.prototype._updateDataAttributes=function(element){if(this.options.dataAttributes&&this.options.dataAttributes.length>0){var attributes=[];if(Array.isArray(this.options.dataAttributes)){attributes=this.options.dataAttributes}else if(this.options.dataAttributes==\"all\"){attributes=(0,_keys2[\"default\"])(this.data)}else{return}for(var i=0;i<attributes.length;i++){var name=attributes[i];var value=this.data[name];if(value!=null){element.setAttribute(\"data-\"+name,value)}else{element.removeAttribute(\"data-\"+name)}}}};Item.prototype._updateStyle=function(element){if(this.style){util.removeCssText(element,this.style);this.style=null}if(this.data.style){util.addCssText(element,this.data.style);this.style=this.data.style}};Item.prototype._contentToString=function(content){if(typeof content===\"string\")return content;if(content&&\"outerHTML\"in content)return content.outerHTML;return content};Item.prototype._updateEditStatus=function(){if(this.options){if(typeof this.options.editable===\"boolean\"){this.editable={updateTime:this.options.editable,updateGroup:this.options.editable,remove:this.options.editable}}else if((0,_typeof3[\"default\"])(this.options.editable)===\"object\"){this.editable={};util.selectiveExtend([\"updateTime\",\"updateGroup\",\"remove\"],this.editable,this.options.editable)}}if(!this.options||!this.options.editable||this.options.editable.overrideItems!==true){if(this.data){if(typeof this.data.editable===\"boolean\"){this.editable={updateTime:this.data.editable,updateGroup:this.data.editable,remove:this.data.editable}}else if((0,_typeof3[\"default\"])(this.data.editable)===\"object\"){this.editable={};util.selectiveExtend([\"updateTime\",\"updateGroup\",\"remove\"],this.editable,this.data.editable)}}}};Item.prototype.getWidthLeft=function(){return 0};Item.prototype.getWidthRight=function(){return 0};Item.prototype.getTitle=function(){return this.data.title};module.exports=Item},function(module,exports){module.exports=function(bitmap,value){return{enumerable:!(bitmap&1),configurable:!(bitmap&2),writable:!(bitmap&4),value:value}}},function(module,exports){var id=0;var px=Math.random();module.exports=function(key){return\"Symbol(\".concat(key===undefined?\"\":key,\")_\",(++id+px).toString(36))}},function(module,exports,__webpack_require__){var defined=__webpack_require__(51);module.exports=function(it){return Object(defined(it))}},function(module,exports){exports.f={}.propertyIsEnumerable},function(module,exports,__webpack_require__){\"use strict\";function Queue(options){this.delay=null;this.max=Infinity;this._queue=[];this._timeout=null;this._extended=null;this.setOptions(options)}Queue.prototype.setOptions=function(options){if(options&&typeof options.delay!==\"undefined\"){this.delay=options.delay}if(options&&typeof options.max!==\"undefined\"){this.max=options.max}this._flushIfNeeded()};Queue.extend=function(object,options){var queue=new Queue(options);if(object.flush!==undefined){throw new Error(\"Target object already has a property flush\")}object.flush=function(){queue.flush()};var methods=[{name:\"flush\",original:undefined}];if(options&&options.replace){for(var i=0;i<options.replace.length;i++){var name=options.replace[i];methods.push({name:name,original:object[name]});queue.replace(object,name)}}queue._extended={object:object,methods:methods};return queue};Queue.prototype.destroy=function(){this.flush();if(this._extended){var object=this._extended.object;var methods=this._extended.methods;for(var i=0;i<methods.length;i++){var method=methods[i];if(method.original){object[method.name]=method.original}else{delete object[method.name]}}this._extended=null}};Queue.prototype.replace=function(object,method){var me=this;var original=object[method];if(!original){throw new Error(\"Method \"+method+\" undefined\")}object[method]=function(){var args=[];for(var i=0;i<arguments.length;i++){args[i]=arguments[i]}me.queue({args:args,fn:original,context:this})}};Queue.prototype.queue=function(entry){if(typeof entry===\"function\"){this._queue.push({fn:entry})}else{this._queue.push(entry)}this._flushIfNeeded()};Queue.prototype._flushIfNeeded=function(){\nif(this._queue.length>this.max){this.flush()}clearTimeout(this._timeout);if(this.queue.length>0&&typeof this.delay===\"number\"){var me=this;this._timeout=setTimeout(function(){me.flush()},this.delay)}};Queue.prototype.flush=function(){while(this._queue.length>0){var entry=this._queue.shift();entry.fn.apply(entry.context||entry.fn,entry.args||[])}};module.exports=Queue},function(module,exports){module.exports=Emitter;function Emitter(obj){if(obj)return mixin(obj)}function mixin(obj){for(var key in Emitter.prototype){obj[key]=Emitter.prototype[key]}return obj}Emitter.prototype.on=Emitter.prototype.addEventListener=function(event,fn){this._callbacks=this._callbacks||{};(this._callbacks[event]=this._callbacks[event]||[]).push(fn);return this};Emitter.prototype.once=function(event,fn){var self=this;this._callbacks=this._callbacks||{};function on(){self.off(event,on);fn.apply(this,arguments)}on.fn=fn;this.on(event,on);return this};Emitter.prototype.off=Emitter.prototype.removeListener=Emitter.prototype.removeAllListeners=Emitter.prototype.removeEventListener=function(event,fn){this._callbacks=this._callbacks||{};if(0==arguments.length){this._callbacks={};return this}var callbacks=this._callbacks[event];if(!callbacks)return this;if(1==arguments.length){delete this._callbacks[event];return this}var cb;for(var i=0;i<callbacks.length;i++){cb=callbacks[i];if(cb===fn||cb.fn===fn){callbacks.splice(i,1);break}}return this};Emitter.prototype.emit=function(event){this._callbacks=this._callbacks||{};var args=[].slice.call(arguments,1),callbacks=this._callbacks[event];if(callbacks){callbacks=callbacks.slice(0);for(var i=0,len=callbacks.length;i<len;++i){callbacks[i].apply(this,args)}}return this};Emitter.prototype.listeners=function(event){this._callbacks=this._callbacks||{};return this._callbacks[event]||[]};Emitter.prototype.hasListeners=function(event){return!!this.listeners(event).length}},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Component=__webpack_require__(16);var TimeStep=__webpack_require__(66);var DateUtil=__webpack_require__(36);var moment=__webpack_require__(9);function TimeAxis(body,options){this.dom={foreground:null,lines:[],majorTexts:[],minorTexts:[],redundant:{lines:[],majorTexts:[],minorTexts:[]}};this.props={range:{start:0,end:0,minimumStep:0},lineTop:0};this.defaultOptions={orientation:{axis:\"bottom\"},showMinorLabels:true,showMajorLabels:true,maxMinorChars:7,format:TimeStep.FORMAT,moment:moment,timeAxis:null};this.options=util.extend({},this.defaultOptions);this.body=body;this._create();this.setOptions(options)}TimeAxis.prototype=new Component;TimeAxis.prototype.setOptions=function(options){if(options){util.selectiveExtend([\"showMinorLabels\",\"showMajorLabels\",\"maxMinorChars\",\"hiddenDates\",\"timeAxis\",\"moment\",\"rtl\"],this.options,options);util.selectiveDeepExtend([\"format\"],this.options,options);if(\"orientation\"in options){if(typeof options.orientation===\"string\"){this.options.orientation.axis=options.orientation}else if((0,_typeof3[\"default\"])(options.orientation)===\"object\"&&\"axis\"in options.orientation){this.options.orientation.axis=options.orientation.axis}}if(\"locale\"in options){if(typeof moment.locale===\"function\"){moment.locale(options.locale)}else{moment.lang(options.locale)}}}};TimeAxis.prototype._create=function(){this.dom.foreground=document.createElement(\"div\");this.dom.background=document.createElement(\"div\");this.dom.foreground.className=\"vis-time-axis vis-foreground\";this.dom.background.className=\"vis-time-axis vis-background\"};TimeAxis.prototype.destroy=function(){if(this.dom.foreground.parentNode){this.dom.foreground.parentNode.removeChild(this.dom.foreground)}if(this.dom.background.parentNode){this.dom.background.parentNode.removeChild(this.dom.background)}this.body=null};TimeAxis.prototype.redraw=function(){var props=this.props;var foreground=this.dom.foreground;var background=this.dom.background;var parent=this.options.orientation.axis==\"top\"?this.body.dom.top:this.body.dom.bottom;var parentChanged=foreground.parentNode!==parent;this._calculateCharSize();var showMinorLabels=this.options.showMinorLabels&&this.options.orientation.axis!==\"none\";var showMajorLabels=this.options.showMajorLabels&&this.options.orientation.axis!==\"none\";props.minorLabelHeight=showMinorLabels?props.minorCharHeight:0;props.majorLabelHeight=showMajorLabels?props.majorCharHeight:0;props.height=props.minorLabelHeight+props.majorLabelHeight;props.width=foreground.offsetWidth;props.minorLineHeight=this.body.domProps.root.height-props.majorLabelHeight-(this.options.orientation.axis==\"top\"?this.body.domProps.bottom.height:this.body.domProps.top.height);props.minorLineWidth=1;props.majorLineHeight=props.minorLineHeight+props.majorLabelHeight;props.majorLineWidth=1;var foregroundNextSibling=foreground.nextSibling;var backgroundNextSibling=background.nextSibling;foreground.parentNode&&foreground.parentNode.removeChild(foreground);background.parentNode&&background.parentNode.removeChild(background);foreground.style.height=this.props.height+\"px\";this._repaintLabels();if(foregroundNextSibling){parent.insertBefore(foreground,foregroundNextSibling)}else{parent.appendChild(foreground)}if(backgroundNextSibling){this.body.dom.backgroundVertical.insertBefore(background,backgroundNextSibling)}else{this.body.dom.backgroundVertical.appendChild(background)}return this._isResized()||parentChanged};TimeAxis.prototype._repaintLabels=function(){var orientation=this.options.orientation.axis;var start=util.convert(this.body.range.start,\"Number\");var end=util.convert(this.body.range.end,\"Number\");var timeLabelsize=this.body.util.toTime((this.props.minorCharWidth||10)*this.options.maxMinorChars).valueOf();var minimumStep=timeLabelsize-DateUtil.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this.body.range,timeLabelsize);minimumStep-=this.body.util.toTime(0).valueOf();var step=new TimeStep(new Date(start),new Date(end),minimumStep,this.body.hiddenDates,this.options);step.setMoment(this.options.moment);if(this.options.format){step.setFormat(this.options.format)}if(this.options.timeAxis){step.setScale(this.options.timeAxis)}this.step=step;var dom=this.dom;dom.redundant.lines=dom.lines;dom.redundant.majorTexts=dom.majorTexts;dom.redundant.minorTexts=dom.minorTexts;dom.lines=[];dom.majorTexts=[];dom.minorTexts=[];var current;var next;var x;var xNext;var isMajor;var nextIsMajor;var showMinorGrid;var width=0,prevWidth;var line;var labelMinor;var xFirstMajorLabel=undefined;var count=0;var MAX=1e3;var className;step.start();next=step.getCurrent();xNext=this.body.util.toScreen(next);while(step.hasNext()&&count<MAX){count++;isMajor=step.isMajor();className=step.getClassName();labelMinor=step.getLabelMinor();current=next;x=xNext;step.next();next=step.getCurrent();nextIsMajor=step.isMajor();xNext=this.body.util.toScreen(next);prevWidth=width;width=xNext-x;switch(step.scale){case\"week\":showMinorGrid=true;break;default:showMinorGrid=width>=prevWidth*.4;break}if(this.options.showMinorLabels&&showMinorGrid){var label=this._repaintMinorText(x,labelMinor,orientation,className);label.style.width=width+\"px\"}if(isMajor&&this.options.showMajorLabels){if(x>0){if(xFirstMajorLabel==undefined){xFirstMajorLabel=x}label=this._repaintMajorText(x,step.getLabelMajor(),orientation,className)}line=this._repaintMajorLine(x,width,orientation,className)}else{if(showMinorGrid){line=this._repaintMinorLine(x,width,orientation,className)}else{if(line){line.style.width=parseInt(line.style.width)+width+\"px\"}}}}if(count===MAX&&!warnedForOverflow){console.warn(\"Something is wrong with the Timeline scale. Limited drawing of grid lines to \"+MAX+\" lines.\");warnedForOverflow=true}if(this.options.showMajorLabels){var leftTime=this.body.util.toTime(0),leftText=step.getLabelMajor(leftTime),widthText=leftText.length*(this.props.majorCharWidth||10)+10;if(xFirstMajorLabel==undefined||widthText<xFirstMajorLabel){this._repaintMajorText(0,leftText,orientation,className)}}util.forEach(this.dom.redundant,function(arr){while(arr.length){var elem=arr.pop();if(elem&&elem.parentNode){elem.parentNode.removeChild(elem)}}})};TimeAxis.prototype._repaintMinorText=function(x,text,orientation,className){var label=this.dom.redundant.minorTexts.shift();if(!label){var content=document.createTextNode(\"\");label=document.createElement(\"div\");label.appendChild(content);this.dom.foreground.appendChild(label)}this.dom.minorTexts.push(label);label.innerHTML=text;label.style.top=orientation==\"top\"?this.props.majorLabelHeight+\"px\":\"0\";if(this.options.rtl){label.style.left=\"\";label.style.right=x+\"px\"}else{label.style.left=x+\"px\"}label.className=\"vis-text vis-minor \"+className;return label};TimeAxis.prototype._repaintMajorText=function(x,text,orientation,className){var label=this.dom.redundant.majorTexts.shift();if(!label){var content=document.createElement(\"div\");label=document.createElement(\"div\");label.appendChild(content);this.dom.foreground.appendChild(label)}label.childNodes[0].innerHTML=text;label.className=\"vis-text vis-major \"+className;label.style.top=orientation==\"top\"?\"0\":this.props.minorLabelHeight+\"px\";if(this.options.rtl){label.style.left=\"\";label.style.right=x+\"px\"}else{label.style.left=x+\"px\"}this.dom.majorTexts.push(label);return label};TimeAxis.prototype._repaintMinorLine=function(x,width,orientation,className){var line=this.dom.redundant.lines.shift();if(!line){line=document.createElement(\"div\");this.dom.background.appendChild(line)}this.dom.lines.push(line);var props=this.props;if(orientation==\"top\"){line.style.top=props.majorLabelHeight+\"px\"}else{line.style.top=this.body.domProps.top.height+\"px\"}line.style.height=props.minorLineHeight+\"px\";if(this.options.rtl){line.style.left=\"\";line.style.right=x-props.minorLineWidth/2+\"px\";line.className=\"vis-grid vis-vertical-rtl vis-minor \"+className}else{line.style.left=x-props.minorLineWidth/2+\"px\";line.className=\"vis-grid vis-vertical vis-minor \"+className}line.style.width=width+\"px\";return line};TimeAxis.prototype._repaintMajorLine=function(x,width,orientation,className){var line=this.dom.redundant.lines.shift();if(!line){line=document.createElement(\"div\");this.dom.background.appendChild(line)}this.dom.lines.push(line);var props=this.props;if(orientation==\"top\"){line.style.top=\"0\"}else{line.style.top=this.body.domProps.top.height+\"px\"}if(this.options.rtl){line.style.left=\"\";line.style.right=x-props.majorLineWidth/2+\"px\";line.className=\"vis-grid vis-vertical-rtl vis-major \"+className}else{line.style.left=x-props.majorLineWidth/2+\"px\";line.className=\"vis-grid vis-vertical vis-major \"+className}line.style.height=props.majorLineHeight+\"px\";line.style.width=width+\"px\";return line};TimeAxis.prototype._calculateCharSize=function(){if(!this.dom.measureCharMinor){this.dom.measureCharMinor=document.createElement(\"DIV\");this.dom.measureCharMinor.className=\"vis-text vis-minor vis-measure\";this.dom.measureCharMinor.style.position=\"absolute\";this.dom.measureCharMinor.appendChild(document.createTextNode(\"0\"));this.dom.foreground.appendChild(this.dom.measureCharMinor)}this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight;this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth;if(!this.dom.measureCharMajor){this.dom.measureCharMajor=document.createElement(\"DIV\");this.dom.measureCharMajor.className=\"vis-text vis-major vis-measure\";this.dom.measureCharMajor.style.position=\"absolute\";this.dom.measureCharMajor.appendChild(document.createTextNode(\"0\"));this.dom.foreground.appendChild(this.dom.measureCharMajor)}this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight;this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth};var warnedForOverflow=false;module.exports=TimeAxis},function(module,exports,__webpack_require__){\"use strict\";var Hammer=__webpack_require__(10);var util=__webpack_require__(2);var Component=__webpack_require__(16);var moment=__webpack_require__(9);var locales=__webpack_require__(98);function CustomTime(body,options){this.body=body;this.defaultOptions={moment:moment,locales:locales,locale:\"en\",id:undefined,title:undefined};this.options=util.extend({},this.defaultOptions);if(options&&options.time){this.customTime=options.time}else{this.customTime=new Date}this.eventParams={};this.setOptions(options);this._create()}CustomTime.prototype=new Component;CustomTime.prototype.setOptions=function(options){if(options){util.selectiveExtend([\"moment\",\"locale\",\"locales\",\"id\"],this.options,options)}};CustomTime.prototype._create=function(){var bar=document.createElement(\"div\");bar[\"custom-time\"]=this;bar.className=\"vis-custom-time \"+(this.options.id||\"\");bar.style.position=\"absolute\";bar.style.top=\"0px\";bar.style.height=\"100%\";this.bar=bar;var drag=document.createElement(\"div\");drag.style.position=\"relative\";drag.style.top=\"0px\";drag.style.left=\"-10px\";drag.style.height=\"100%\";drag.style.width=\"20px\";function onMouseWheel(e){this.body.range._onMouseWheel(e)}if(drag.addEventListener){drag.addEventListener(\"mousewheel\",onMouseWheel.bind(this),false);drag.addEventListener(\"DOMMouseScroll\",onMouseWheel.bind(this),false)}else{drag.attachEvent(\"onmousewheel\",onMouseWheel.bind(this))}bar.appendChild(drag);this.hammer=new Hammer(drag);this.hammer.on(\"panstart\",this._onDragStart.bind(this));this.hammer.on(\"panmove\",this._onDrag.bind(this));this.hammer.on(\"panend\",this._onDragEnd.bind(this));this.hammer.get(\"pan\").set({threshold:5,direction:Hammer.DIRECTION_HORIZONTAL})};CustomTime.prototype.destroy=function(){this.hide();this.hammer.destroy();this.hammer=null;this.body=null};CustomTime.prototype.redraw=function(){var parent=this.body.dom.backgroundVertical;if(this.bar.parentNode!=parent){if(this.bar.parentNode){this.bar.parentNode.removeChild(this.bar)}parent.appendChild(this.bar)}var x=this.body.util.toScreen(this.customTime);var locale=this.options.locales[this.options.locale];if(!locale){if(!this.warned){console.log(\"WARNING: options.locales['\"+this.options.locale+\"'] not found. See http://visjs.org/docs/timeline/#Localization\");this.warned=true}locale=this.options.locales[\"en\"]}var title=this.options.title;if(title===undefined){title=locale.time+\": \"+this.options.moment(this.customTime).format(\"dddd, MMMM Do YYYY, H:mm:ss\");title=title.charAt(0).toUpperCase()+title.substring(1)}else if(typeof title===\"function\"){title=title.call(this.customTime)}this.bar.style.left=x+\"px\";this.bar.title=title;return false};CustomTime.prototype.hide=function(){if(this.bar.parentNode){this.bar.parentNode.removeChild(this.bar)}};CustomTime.prototype.setCustomTime=function(time){this.customTime=util.convert(time,\"Date\");this.redraw()};CustomTime.prototype.getCustomTime=function(){return new Date(this.customTime.valueOf())};CustomTime.prototype.setCustomTitle=function(title){this.options.title=title};CustomTime.prototype._onDragStart=function(event){this.eventParams.dragging=true;this.eventParams.customTime=this.customTime;event.stopPropagation()};CustomTime.prototype._onDrag=function(event){if(!this.eventParams.dragging)return;var x=this.body.util.toScreen(this.eventParams.customTime)+event.deltaX;var time=this.body.util.toTime(x);this.setCustomTime(time);this.body.emitter.emit(\"timechange\",{id:this.options.id,time:new Date(this.customTime.valueOf()),event:event});event.stopPropagation()};CustomTime.prototype._onDragEnd=function(event){if(!this.eventParams.dragging)return;this.body.emitter.emit(\"timechanged\",{id:this.options.id,time:new Date(this.customTime.valueOf()),event:event});event.stopPropagation()};CustomTime.customTimeFromTarget=function(event){var target=event.target;while(target){if(target.hasOwnProperty(\"custom-time\")){return target[\"custom-time\"]}target=target.parentNode}return null};module.exports=CustomTime},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Label=__webpack_require__(117)[\"default\"];var ComponentUtil=__webpack_require__(48)[\"default\"];var Box=__webpack_require__(193)[\"default\"];var Circle=__webpack_require__(200)[\"default\"];var CircularImage=__webpack_require__(201)[\"default\"];var Database=__webpack_require__(202)[\"default\"];var Diamond=__webpack_require__(203)[\"default\"];var Dot=__webpack_require__(204)[\"default\"];var Ellipse=__webpack_require__(205)[\"default\"];var Icon=__webpack_require__(206)[\"default\"];var Image=__webpack_require__(207)[\"default\"];var Square=__webpack_require__(208)[\"default\"];var Hexagon=__webpack_require__(209)[\"default\"];var Star=__webpack_require__(210)[\"default\"];var Text=__webpack_require__(211)[\"default\"];var Triangle=__webpack_require__(212)[\"default\"];var TriangleDown=__webpack_require__(213)[\"default\"];var _require=__webpack_require__(15),printStyle=_require.printStyle;var Node=function(){function Node(options,body,imagelist,grouplist,globalOptions,defaultOptions){(0,_classCallCheck3[\"default\"])(this,Node);this.options=util.bridgeObject(globalOptions);this.globalOptions=globalOptions;this.defaultOptions=defaultOptions;this.body=body;this.edges=[];this.id=undefined;this.imagelist=imagelist;this.grouplist=grouplist;this.x=undefined;this.y=undefined;this.baseSize=this.options.size;this.baseFontSize=this.options.font.size;this.predefinedPosition=false;this.selected=false;this.hover=false;this.labelModule=new Label(this.body,this.options,false);this.setOptions(options)}(0,_createClass3[\"default\"])(Node,[{key:\"attachEdge\",value:function attachEdge(edge){if(this.edges.indexOf(edge)===-1){this.edges.push(edge)}}},{key:\"detachEdge\",value:function detachEdge(edge){var index=this.edges.indexOf(edge);if(index!=-1){this.edges.splice(index,1)}}},{key:\"setOptions\",value:function setOptions(options){var currentShape=this.options.shape;if(!options){return}if(options.id!==undefined){this.id=options.id}if(this.id===undefined){throw new Error(\"Node must have an id\")}Node.checkMass(options,this.id);if(options.x!==undefined){if(options.x===null){this.x=undefined;this.predefinedPosition=false}else{this.x=parseInt(options.x);this.predefinedPosition=true}}if(options.y!==undefined){if(options.y===null){this.y=undefined;this.predefinedPosition=false}else{this.y=parseInt(options.y);this.predefinedPosition=true}}if(options.size!==undefined){this.baseSize=options.size}if(options.value!==undefined){options.value=parseFloat(options.value)}Node.parseOptions(this.options,options,true,this.globalOptions,this.grouplist);var pile=[options,this.options,this.defaultOptions];this.chooser=ComponentUtil.choosify(\"node\",pile);this._load_images();this.updateLabelModule(options);this.updateShape(currentShape);return options.hidden!==undefined||options.physics!==undefined}},{key:\"_load_images\",value:function _load_images(){if(this.options.shape!==\"circularImage\"&&this.options.shape!==\"image\"){return}if(this.options.image===undefined){throw new Error(\"Option image must be defined for node type '\"+this.options.shape+\"'\")}if(this.imagelist===undefined){throw new Error(\"Internal Error: No images provided\")}if(typeof this.options.image===\"string\"){this.imageObj=this.imagelist.load(this.options.image,this.options.brokenImage,this.id)}else{if(this.options.image.unselected===undefined){throw new Error(\"No unselected image provided\")}this.imageObj=this.imagelist.load(this.options.image.unselected,this.options.brokenImage,this.id);if(this.options.image.selected!==undefined){this.imageObjAlt=this.imagelist.load(this.options.image.selected,this.options.brokenImage,this.id)}else{this.imageObjAlt=undefined}}}},{key:\"getFormattingValues\",value:function getFormattingValues(){var values={color:this.options.color.background,borderWidth:this.options.borderWidth,borderColor:this.options.color.border,size:this.options.size,borderDashes:this.options.shapeProperties.borderDashes,borderRadius:this.options.shapeProperties.borderRadius,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y};if(this.selected||this.hover){if(this.chooser===true){if(this.selected){values.borderWidth*=2;values.color=this.options.color.highlight.background;values.borderColor=this.options.color.highlight.border;values.shadow=this.options.shadow.enabled}else if(this.hover){values.color=this.options.color.hover.background;values.borderColor=this.options.color.hover.border;values.shadow=this.options.shadow.enabled}}else if(typeof this.chooser===\"function\"){this.chooser(values,this.options.id,this.selected,this.hover);if(values.shadow===false){if(values.shadowColor!==this.options.shadow.color||values.shadowSize!==this.options.shadow.size||values.shadowX!==this.options.shadow.x||values.shadowY!==this.options.shadow.y){values.shadow=true}}}}else{values.shadow=this.options.shadow.enabled}return values}},{key:\"updateLabelModule\",value:function updateLabelModule(options){if(this.options.label===undefined||this.options.label===null){this.options.label=\"\"}Node.updateGroupOptions(this.options,options,this.grouplist);var currentGroup=this.grouplist.get(this.options.group,false);var pile=[options,this.options,currentGroup,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,pile);if(this.labelModule.baseSize!==undefined){this.baseFontSize=this.labelModule.baseSize}}},{key:\"updateShape\",value:function updateShape(currentShape){if(currentShape===this.options.shape&&this.shape){this.shape.setOptions(this.options,this.imageObj,this.imageObjAlt)}else{switch(this.options.shape){case\"box\":this.shape=new Box(this.options,this.body,this.labelModule);break;case\"circle\":this.shape=new Circle(this.options,this.body,this.labelModule);break;case\"circularImage\":this.shape=new CircularImage(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case\"database\":this.shape=new Database(this.options,this.body,this.labelModule);break;case\"diamond\":this.shape=new Diamond(this.options,this.body,this.labelModule);break;case\"dot\":this.shape=new Dot(this.options,this.body,this.labelModule);break;case\"ellipse\":this.shape=new Ellipse(this.options,this.body,this.labelModule);break;case\"icon\":this.shape=new Icon(this.options,this.body,this.labelModule);break;case\"image\":this.shape=new Image(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case\"square\":this.shape=new Square(this.options,this.body,this.labelModule);break;case\"hexagon\":this.shape=new Hexagon(this.options,this.body,this.labelModule);break;case\"star\":this.shape=new Star(this.options,this.body,this.labelModule);break;case\"text\":this.shape=new Text(this.options,this.body,this.labelModule);break;case\"triangle\":this.shape=new Triangle(this.options,this.body,this.labelModule);break;case\"triangleDown\":this.shape=new TriangleDown(this.options,this.body,this.labelModule);break;default:this.shape=new Ellipse(this.options,this.body,this.labelModule);break}}this.needsRefresh()}},{key:\"select\",value:function select(){this.selected=true;this.needsRefresh()}},{key:\"unselect\",value:function unselect(){this.selected=false;this.needsRefresh()}},{key:\"needsRefresh\",value:function needsRefresh(){this.shape.refreshNeeded=true}},{key:\"getTitle\",value:function getTitle(){return this.options.title}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this.shape.distanceToBorder(ctx,angle)}},{key:\"isFixed\",value:function isFixed(){return this.options.fixed.x&&this.options.fixed.y}},{key:\"isSelected\",value:function isSelected(){return this.selected}},{key:\"getValue\",value:function getValue(){return this.options.value}},{key:\"getLabelSize\",value:function getLabelSize(){return this.labelModule.size()}},{key:\"setValueRange\",value:function setValueRange(min,max,total){if(this.options.value!==undefined){var scale=this.options.scaling.customScalingFunction(min,max,total,this.options.value);var sizeDiff=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===true){var fontDiff=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+scale*fontDiff}this.options.size=this.options.scaling.min+scale*sizeDiff}else{this.options.size=this.baseSize;this.options.font.size=this.baseFontSize}this.updateLabelModule()}},{key:\"draw\",value:function draw(ctx){var values=this.getFormattingValues();this.shape.draw(ctx,this.x,this.y,this.selected,this.hover,values)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(ctx){this.shape.updateBoundingBox(this.x,this.y,ctx)}},{key:\"resize\",value:function resize(ctx){var values=this.getFormattingValues();this.shape.resize(ctx,this.selected,this.hover,values)}},{key:\"getItemsOnPoint\",value:function getItemsOnPoint(point){var ret=[];if(this.labelModule.visible()){if(ComponentUtil.pointInRect(this.labelModule.getSize(),point)){ret.push({nodeId:this.id,labelId:0})}}if(ComponentUtil.pointInRect(this.shape.boundingBox,point)){ret.push({nodeId:this.id})}return ret}},{key:\"isOverlappingWith\",value:function isOverlappingWith(obj){return this.shape.left<obj.right&&this.shape.left+this.shape.width>obj.left&&this.shape.top<obj.bottom&&this.shape.top+this.shape.height>obj.top}},{key:\"isBoundingBoxOverlappingWith\",value:function isBoundingBoxOverlappingWith(obj){return this.shape.boundingBox.left<obj.right&&this.shape.boundingBox.right>obj.left&&this.shape.boundingBox.top<obj.bottom&&this.shape.boundingBox.bottom>obj.top}}],[{key:\"updateGroupOptions\",value:function updateGroupOptions(parentOptions,newOptions,groupList){if(groupList===undefined)return;var group=parentOptions.group;if(newOptions!==undefined&&newOptions.group!==undefined&&group!==newOptions.group){throw new Error(\"updateGroupOptions: group values in options don't match.\")}var hasGroup=typeof group===\"number\"||typeof group===\"string\"&&group!=\"\";if(!hasGroup)return;var groupObj=groupList.get(group);util.selectiveNotDeepExtend([\"font\"],parentOptions,groupObj);parentOptions.color=util.parseColor(parentOptions.color)}},{key:\"parseOptions\",value:function parseOptions(parentOptions,newOptions){var allowDeletion=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var globalOptions=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};var groupList=arguments[4];var fields=[\"color\",\"fixed\",\"shadow\"];util.selectiveNotDeepExtend(fields,parentOptions,newOptions,allowDeletion);Node.checkMass(newOptions);util.mergeOptions(parentOptions,newOptions,\"shadow\",globalOptions);if(newOptions.color!==undefined&&newOptions.color!==null){var parsedColor=util.parseColor(newOptions.color);util.fillIfDefined(parentOptions.color,parsedColor)}else if(allowDeletion===true&&newOptions.color===null){parentOptions.color=util.bridgeObject(globalOptions.color)}if(newOptions.fixed!==undefined&&newOptions.fixed!==null){if(typeof newOptions.fixed===\"boolean\"){parentOptions.fixed.x=newOptions.fixed;parentOptions.fixed.y=newOptions.fixed}else{if(newOptions.fixed.x!==undefined&&typeof newOptions.fixed.x===\"boolean\"){parentOptions.fixed.x=newOptions.fixed.x}if(newOptions.fixed.y!==undefined&&typeof newOptions.fixed.y===\"boolean\"){parentOptions.fixed.y=newOptions.fixed.y}}}if(allowDeletion===true&&newOptions.font===null){parentOptions.font=util.bridgeObject(globalOptions.font)}Node.updateGroupOptions(parentOptions,newOptions,groupList);if(newOptions.scaling!==undefined){util.mergeOptions(parentOptions.scaling,newOptions.scaling,\"label\",globalOptions.scaling)}}},{key:\"checkMass\",value:function checkMass(options,id){if(options.mass!==undefined&&options.mass<=0){var strId=\"\";if(id!==undefined){strId=\" in node id: \"+id}console.log(\"%cNegative or zero mass disallowed\"+strId+\", setting mass to 1.\",printStyle);options.mass=1}}}]);return Node}();exports[\"default\"]=Node},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var ComponentUtil=function(){function ComponentUtil(){(0,_classCallCheck3[\"default\"])(this,ComponentUtil)}(0,_createClass3[\"default\"])(ComponentUtil,null,[{key:\"choosify\",value:function choosify(subOption,pile){var allowed=[\"node\",\"edge\",\"label\"];var value=true;var chosen=util.topMost(pile,\"chosen\");if(typeof chosen===\"boolean\"){value=chosen}else if((typeof chosen===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(chosen))===\"object\"){if(allowed.indexOf(subOption)===-1){throw new Error(\"choosify: subOption '\"+subOption+\"' should be one of \"+\"'\"+allowed.join(\"', '\")+\"'\")}var chosenEdge=util.topMost(pile,[\"chosen\",subOption]);if(typeof chosenEdge===\"boolean\"||typeof chosenEdge===\"function\"){value=chosenEdge}}return value}},{key:\"pointInRect\",value:function pointInRect(rect,point,rotationPoint){if(rect.width<=0||rect.height<=0){return false}if(rotationPoint!==undefined){var tmp={x:point.x-rotationPoint.x,y:point.y-rotationPoint.y};if(rotationPoint.angle!==0){var angle=-rotationPoint.angle;var tmp2={x:Math.cos(angle)*tmp.x-Math.sin(angle)*tmp.y,y:Math.sin(angle)*tmp.x+Math.cos(angle)*tmp.y};point=tmp2}else{point=tmp}}var right=rect.x+rect.width;var bottom=rect.y+rect.width;return rect.left<point.x&&right>point.x&&rect.top<point.y&&bottom>point.y}},{key:\"isValidLabel\",value:function isValidLabel(text){return typeof text===\"string\"&&text!==\"\"}}]);return ComponentUtil}();exports[\"default\"]=ComponentUtil},function(module,exports,__webpack_require__){__webpack_require__(125);var global=__webpack_require__(18);var hide=__webpack_require__(26);var Iterators=__webpack_require__(31);var TO_STRING_TAG=__webpack_require__(13)(\"toStringTag\");var DOMIterables=(\"CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,\"+\"DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,\"+\"MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,\"+\"SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,\"+\"TextTrackList,TouchList\").split(\",\");for(var i=0;i<DOMIterables.length;i++){var NAME=DOMIterables[i];var Collection=global[NAME];var proto=Collection&&Collection.prototype;if(proto&&!proto[TO_STRING_TAG])hide(proto,TO_STRING_TAG,NAME);Iterators[NAME]=Iterators.Array}},function(module,exports){var toString={}.toString;module.exports=function(it){return toString.call(it).slice(8,-1)}},function(module,exports){module.exports=function(it){if(it==undefined)throw TypeError(\"Can't call method on \"+it);return it}},function(module,exports){module.exports=true},function(module,exports,__webpack_require__){var isObject=__webpack_require__(32);module.exports=function(it,S){if(!isObject(it))return it;var fn,val;if(S&&typeof(fn=it.toString)==\"function\"&&!isObject(val=fn.call(it)))return val;if(typeof(fn=it.valueOf)==\"function\"&&!isObject(val=fn.call(it)))return val;if(!S&&typeof(fn=it.toString)==\"function\"&&!isObject(val=fn.call(it)))return val;throw TypeError(\"Can't convert object to primitive value\")}},function(module,exports,__webpack_require__){var anObject=__webpack_require__(27);var dPs=__webpack_require__(130);var enumBugKeys=__webpack_require__(58);var IE_PROTO=__webpack_require__(56)(\"IE_PROTO\")\n;var Empty=function(){};var PROTOTYPE=\"prototype\";var createDict=function(){var iframe=__webpack_require__(82)(\"iframe\");var i=enumBugKeys.length;var lt=\"<\";var gt=\">\";var iframeDocument;iframe.style.display=\"none\";__webpack_require__(134).appendChild(iframe);iframe.src=\"javascript:\";iframeDocument=iframe.contentWindow.document;iframeDocument.open();iframeDocument.write(lt+\"script\"+gt+\"document.F=Object\"+lt+\"/script\"+gt);iframeDocument.close();createDict=iframeDocument.F;while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];return createDict()};module.exports=Object.create||function create(O,Properties){var result;if(O!==null){Empty[PROTOTYPE]=anObject(O);result=new Empty;Empty[PROTOTYPE]=null;result[IE_PROTO]=O}else result=createDict();return Properties===undefined?result:dPs(result,Properties)}},function(module,exports){var ceil=Math.ceil;var floor=Math.floor;module.exports=function(it){return isNaN(it=+it)?0:(it>0?floor:ceil)(it)}},function(module,exports,__webpack_require__){var shared=__webpack_require__(57)(\"keys\");var uid=__webpack_require__(40);module.exports=function(key){return shared[key]||(shared[key]=uid(key))}},function(module,exports,__webpack_require__){var global=__webpack_require__(18);var SHARED=\"__core-js_shared__\";var store=global[SHARED]||(global[SHARED]={});module.exports=function(key){return store[key]||(store[key]={})}},function(module,exports){module.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},function(module,exports,__webpack_require__){var def=__webpack_require__(20).f;var has=__webpack_require__(22);var TAG=__webpack_require__(13)(\"toStringTag\");module.exports=function(it,tag,stat){if(it&&!has(it=stat?it:it.prototype,TAG))def(it,TAG,{configurable:true,value:tag})}},function(module,exports,__webpack_require__){\"use strict\";var $at=__webpack_require__(135)(true);__webpack_require__(79)(String,\"String\",function(iterated){this._t=String(iterated);this._i=0},function(){var O=this._t;var index=this._i;var point;if(index>=O.length)return{value:undefined,done:true};point=$at(O,index);this._i+=point.length;return{value:point,done:false}})},function(module,exports,__webpack_require__){exports.f=__webpack_require__(13)},function(module,exports,__webpack_require__){var global=__webpack_require__(18);var core=__webpack_require__(7);var LIBRARY=__webpack_require__(52);var wksExt=__webpack_require__(61);var defineProperty=__webpack_require__(20).f;module.exports=function(name){var $Symbol=core.Symbol||(core.Symbol=LIBRARY?{}:global.Symbol||{});if(name.charAt(0)!=\"_\"&&!(name in $Symbol))defineProperty($Symbol,name,{value:wksExt.f(name)})}},function(module,exports){exports.f=Object.getOwnPropertySymbols},function(module,exports,__webpack_require__){\"use strict\";var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var moment=__webpack_require__(9);var Component=__webpack_require__(16);var DateUtil=__webpack_require__(36);function Range(body,options){var now=moment().hours(0).minutes(0).seconds(0).milliseconds(0);var start=now.clone().add(-3,\"days\").valueOf();var end=now.clone().add(3,\"days\").valueOf();this.millisecondsPerPixelCache=undefined;if(options===undefined){this.start=start;this.end=end}else{this.start=options.start||start;this.end=options.end||end}this.rolling=false;this.body=body;this.deltaDifference=0;this.scaleOffset=0;this.startToFront=false;this.endToFront=true;this.defaultOptions={rtl:false,start:null,end:null,moment:moment,direction:\"horizontal\",moveable:true,zoomable:true,min:null,max:null,zoomMin:10,zoomMax:1e3*60*60*24*365*1e4,rollingMode:{follow:false,offset:.5}};this.options=util.extend({},this.defaultOptions);this.props={touch:{}};this.animationTimer=null;this.body.emitter.on(\"panstart\",this._onDragStart.bind(this));this.body.emitter.on(\"panmove\",this._onDrag.bind(this));this.body.emitter.on(\"panend\",this._onDragEnd.bind(this));this.body.emitter.on(\"mousewheel\",this._onMouseWheel.bind(this));this.body.emitter.on(\"touch\",this._onTouch.bind(this));this.body.emitter.on(\"pinch\",this._onPinch.bind(this));this.body.dom.rollingModeBtn.addEventListener(\"click\",this.startRolling.bind(this));this.setOptions(options)}Range.prototype=new Component;Range.prototype.setOptions=function(options){if(options){var fields=[\"animation\",\"direction\",\"min\",\"max\",\"zoomMin\",\"zoomMax\",\"moveable\",\"zoomable\",\"moment\",\"activate\",\"hiddenDates\",\"zoomKey\",\"rtl\",\"showCurrentTime\",\"rollingMode\",\"horizontalScroll\"];util.selectiveExtend(fields,this.options,options);if(options.rollingMode&&options.rollingMode.follow){this.startRolling()}if(\"start\"in options||\"end\"in options){this.setRange(options.start,options.end)}}};function validateDirection(direction){if(direction!=\"horizontal\"&&direction!=\"vertical\"){throw new TypeError('Unknown direction \"'+direction+'\". '+'Choose \"horizontal\" or \"vertical\".')}}Range.prototype.startRolling=function(){var me=this;function update(){me.stopRolling();me.rolling=true;var interval=me.end-me.start;var t=util.convert(new Date,\"Date\").valueOf();var start=t-interval*me.options.rollingMode.offset;var end=t+interval*(1-me.options.rollingMode.offset);var options={animation:false};me.setRange(start,end,options);var scale=me.conversion(me.body.domProps.center.width).scale;interval=1/scale/10;if(interval<30)interval=30;if(interval>1e3)interval=1e3;me.body.dom.rollingModeBtn.style.visibility=\"hidden\";me.currentTimeTimer=setTimeout(update,interval)}update()};Range.prototype.stopRolling=function(){if(this.currentTimeTimer!==undefined){clearTimeout(this.currentTimeTimer);this.rolling=false;this.body.dom.rollingModeBtn.style.visibility=\"visible\"}};Range.prototype.setRange=function(start,end,options,callback,frameCallback){if(!options){options={}}if(options.byUser!==true){options.byUser=false}var me=this;var finalStart=start!=undefined?util.convert(start,\"Date\").valueOf():null;var finalEnd=end!=undefined?util.convert(end,\"Date\").valueOf():null;this._cancelAnimation();this.millisecondsPerPixelCache=undefined;if(options.animation){var initStart=this.start;var initEnd=this.end;var duration=(0,_typeof3[\"default\"])(options.animation)===\"object\"&&\"duration\"in options.animation?options.animation.duration:500;var easingName=(0,_typeof3[\"default\"])(options.animation)===\"object\"&&\"easingFunction\"in options.animation?options.animation.easingFunction:\"easeInOutQuad\";var easingFunction=util.easingFunctions[easingName];if(!easingFunction){throw new Error(\"Unknown easing function \"+(0,_stringify2[\"default\"])(easingName)+\". \"+\"Choose from: \"+(0,_keys2[\"default\"])(util.easingFunctions).join(\", \"))}var initTime=(new Date).valueOf();var anyChanged=false;var next=function next(){if(!me.props.touch.dragging){var now=(new Date).valueOf();var time=now-initTime;var ease=easingFunction(time/duration);var done=time>duration;var s=done||finalStart===null?finalStart:initStart+(finalStart-initStart)*ease;var e=done||finalEnd===null?finalEnd:initEnd+(finalEnd-initEnd)*ease;changed=me._applyRange(s,e);DateUtil.updateHiddenDates(me.options.moment,me.body,me.options.hiddenDates);anyChanged=anyChanged||changed;var params={start:new Date(me.start),end:new Date(me.end),byUser:options.byUser,event:options.event};if(frameCallback){frameCallback(ease,changed,done)}if(changed){me.body.emitter.emit(\"rangechange\",params)}if(done){if(anyChanged){me.body.emitter.emit(\"rangechanged\",params);if(callback){return callback()}}}else{me.animationTimer=setTimeout(next,20)}}};return next()}else{var changed=this._applyRange(finalStart,finalEnd);DateUtil.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates);if(changed){var params={start:new Date(this.start),end:new Date(this.end),byUser:options.byUser,event:options.event};this.body.emitter.emit(\"rangechange\",params);clearTimeout(me.timeoutID);me.timeoutID=setTimeout(function(){me.body.emitter.emit(\"rangechanged\",params)},200);if(callback){return callback()}}}};Range.prototype.getMillisecondsPerPixel=function(){if(this.millisecondsPerPixelCache===undefined){this.millisecondsPerPixelCache=(this.end-this.start)/this.body.dom.center.clientWidth}return this.millisecondsPerPixelCache};Range.prototype._cancelAnimation=function(){if(this.animationTimer){clearTimeout(this.animationTimer);this.animationTimer=null}};Range.prototype._applyRange=function(start,end){var newStart=start!=null?util.convert(start,\"Date\").valueOf():this.start,newEnd=end!=null?util.convert(end,\"Date\").valueOf():this.end,max=this.options.max!=null?util.convert(this.options.max,\"Date\").valueOf():null,min=this.options.min!=null?util.convert(this.options.min,\"Date\").valueOf():null,diff;if(isNaN(newStart)||newStart===null){throw new Error('Invalid start \"'+start+'\"')}if(isNaN(newEnd)||newEnd===null){throw new Error('Invalid end \"'+end+'\"')}if(newEnd<newStart){newEnd=newStart}if(min!==null){if(newStart<min){diff=min-newStart;newStart+=diff;newEnd+=diff;if(max!=null){if(newEnd>max){newEnd=max}}}}if(max!==null){if(newEnd>max){diff=newEnd-max;newStart-=diff;newEnd-=diff;if(min!=null){if(newStart<min){newStart=min}}}}if(this.options.zoomMin!==null){var zoomMin=parseFloat(this.options.zoomMin);if(zoomMin<0){zoomMin=0}if(newEnd-newStart<zoomMin){var compensation=.5;if(this.end-this.start===zoomMin&&newStart>=this.start-compensation&&newEnd<=this.end){newStart=this.start;newEnd=this.end}else{diff=zoomMin-(newEnd-newStart);newStart-=diff/2;newEnd+=diff/2}}}if(this.options.zoomMax!==null){var zoomMax=parseFloat(this.options.zoomMax);if(zoomMax<0){zoomMax=0}if(newEnd-newStart>zoomMax){if(this.end-this.start===zoomMax&&newStart<this.start&&newEnd>this.end){newStart=this.start;newEnd=this.end}else{diff=newEnd-newStart-zoomMax;newStart+=diff/2;newEnd-=diff/2}}}var changed=this.start!=newStart||this.end!=newEnd;if(!(newStart>=this.start&&newStart<=this.end||newEnd>=this.start&&newEnd<=this.end)&&!(this.start>=newStart&&this.start<=newEnd||this.end>=newStart&&this.end<=newEnd)){this.body.emitter.emit(\"checkRangedItems\")}this.start=newStart;this.end=newEnd;return changed};Range.prototype.getRange=function(){return{start:this.start,end:this.end}};Range.prototype.conversion=function(width,totalHidden){return Range.conversion(this.start,this.end,width,totalHidden)};Range.conversion=function(start,end,width,totalHidden){if(totalHidden===undefined){totalHidden=0}if(width!=0&&end-start!=0){return{offset:start,scale:width/(end-start-totalHidden)}}else{return{offset:0,scale:1}}};Range.prototype._onDragStart=function(event){this.deltaDifference=0;this.previousDelta=0;if(!this.options.moveable)return;if(!this._isInsideRange(event))return;if(!this.props.touch.allowDragging)return;this.stopRolling();this.props.touch.start=this.start;this.props.touch.end=this.end;this.props.touch.dragging=true;if(this.body.dom.root){this.body.dom.root.style.cursor=\"move\"}};Range.prototype._onDrag=function(event){if(!event)return;if(!this.props.touch.dragging)return;if(!this.options.moveable)return;if(!this.props.touch.allowDragging)return;var direction=this.options.direction;validateDirection(direction);var delta=direction==\"horizontal\"?event.deltaX:event.deltaY;delta-=this.deltaDifference;var interval=this.props.touch.end-this.props.touch.start;var duration=DateUtil.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);interval-=duration;var width=direction==\"horizontal\"?this.body.domProps.center.width:this.body.domProps.center.height;var diffRange;if(this.options.rtl){diffRange=delta/width*interval}else{diffRange=-delta/width*interval}var newStart=this.props.touch.start+diffRange;var newEnd=this.props.touch.end+diffRange;var safeStart=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newStart,this.previousDelta-delta,true);var safeEnd=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newEnd,this.previousDelta-delta,true);if(safeStart!=newStart||safeEnd!=newEnd){this.deltaDifference+=delta;this.props.touch.start=safeStart;this.props.touch.end=safeEnd;this._onDrag(event);return}this.previousDelta=delta;this._applyRange(newStart,newEnd);var startDate=new Date(this.start);var endDate=new Date(this.end);this.body.emitter.emit(\"rangechange\",{start:startDate,end:endDate,byUser:true,event:event});this.body.emitter.emit(\"panmove\")};Range.prototype._onDragEnd=function(event){if(!this.props.touch.dragging)return;if(!this.options.moveable)return;if(!this.props.touch.allowDragging)return;this.props.touch.dragging=false;if(this.body.dom.root){this.body.dom.root.style.cursor=\"auto\"}this.body.emitter.emit(\"rangechanged\",{start:new Date(this.start),end:new Date(this.end),byUser:true,event:event})};Range.prototype._onMouseWheel=function(event){var delta=0;if(event.wheelDelta){delta=event.wheelDelta/120}else if(event.detail){delta=-event.detail/3}if(this.options.zoomKey&&!event[this.options.zoomKey]&&this.options.zoomable||!this.options.zoomable&&this.options.moveable){return}if(!(this.options.zoomable&&this.options.moveable))return;if(!this._isInsideRange(event))return;if(delta){var scale;if(delta<0){scale=1-delta/5}else{scale=1/(1+delta/5)}var pointerDate;if(this.rolling){pointerDate=this.start+(this.end-this.start)*this.options.rollingMode.offset}else{var pointer=this.getPointer({x:event.clientX,y:event.clientY},this.body.dom.center);pointerDate=this._pointerToDate(pointer)}this.zoom(scale,pointerDate,delta,event);event.preventDefault()}};Range.prototype._onTouch=function(event){this.props.touch.start=this.start;this.props.touch.end=this.end;this.props.touch.allowDragging=true;this.props.touch.center=null;this.scaleOffset=0;this.deltaDifference=0;util.preventDefault(event)};Range.prototype._onPinch=function(event){if(!(this.options.zoomable&&this.options.moveable))return;util.preventDefault(event);this.props.touch.allowDragging=false;if(!this.props.touch.center){this.props.touch.center=this.getPointer(event.center,this.body.dom.center)}this.stopRolling();var scale=1/(event.scale+this.scaleOffset);var centerDate=this._pointerToDate(this.props.touch.center);var hiddenDuration=DateUtil.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);var hiddenDurationBefore=DateUtil.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,centerDate);var hiddenDurationAfter=hiddenDuration-hiddenDurationBefore;var newStart=centerDate-hiddenDurationBefore+(this.props.touch.start-(centerDate-hiddenDurationBefore))*scale;var newEnd=centerDate+hiddenDurationAfter+(this.props.touch.end-(centerDate+hiddenDurationAfter))*scale;this.startToFront=1-scale<=0;this.endToFront=scale-1<=0;var safeStart=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newStart,1-scale,true);var safeEnd=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newEnd,scale-1,true);if(safeStart!=newStart||safeEnd!=newEnd){this.props.touch.start=safeStart;this.props.touch.end=safeEnd;this.scaleOffset=1-event.scale;newStart=safeStart;newEnd=safeEnd}var options={animation:false,byUser:true,event:event};this.setRange(newStart,newEnd,options);this.startToFront=false;this.endToFront=true};Range.prototype._isInsideRange=function(event){var clientX=event.center?event.center.x:event.clientX;var x;if(this.options.rtl){x=clientX-util.getAbsoluteLeft(this.body.dom.centerContainer)}else{x=util.getAbsoluteRight(this.body.dom.centerContainer)-clientX}var time=this.body.util.toTime(x);return time>=this.start&&time<=this.end};Range.prototype._pointerToDate=function(pointer){var conversion;var direction=this.options.direction;validateDirection(direction);if(direction==\"horizontal\"){return this.body.util.toTime(pointer.x).valueOf()}else{var height=this.body.domProps.center.height;conversion=this.conversion(height);return pointer.y/conversion.scale+conversion.offset}};Range.prototype.getPointer=function(touch,element){if(this.options.rtl){return{x:util.getAbsoluteRight(element)-touch.x,y:touch.y-util.getAbsoluteTop(element)}}else{return{x:touch.x-util.getAbsoluteLeft(element),y:touch.y-util.getAbsoluteTop(element)}}};Range.prototype.zoom=function(scale,center,delta,event){if(center==null){center=(this.start+this.end)/2}var hiddenDuration=DateUtil.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);var hiddenDurationBefore=DateUtil.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,center);var hiddenDurationAfter=hiddenDuration-hiddenDurationBefore;var newStart=center-hiddenDurationBefore+(this.start-(center-hiddenDurationBefore))*scale;var newEnd=center+hiddenDurationAfter+(this.end-(center+hiddenDurationAfter))*scale;this.startToFront=delta>0?false:true;this.endToFront=-delta>0?false:true;var safeStart=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newStart,delta,true);var safeEnd=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newEnd,-delta,true);if(safeStart!=newStart||safeEnd!=newEnd){newStart=safeStart;newEnd=safeEnd}var options={animation:false,byUser:true,event:event};this.setRange(newStart,newEnd,options);this.startToFront=false;this.endToFront=true};Range.prototype.move=function(delta){var diff=this.end-this.start;var newStart=this.start+diff*delta;var newEnd=this.end+diff*delta;this.start=newStart;this.end=newEnd};Range.prototype.moveTo=function(moveTo){var center=(this.start+this.end)/2;var diff=center-moveTo;var newStart=this.start-diff;var newEnd=this.end-diff;var options={animation:false,byUser:true,event:null};this.setRange(newStart,newEnd,options)};module.exports=Range},function(module,exports,__webpack_require__){\"use strict\";var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Emitter=__webpack_require__(44);var Hammer=__webpack_require__(10);var hammerUtil=__webpack_require__(37);var util=__webpack_require__(2);var TimeAxis=__webpack_require__(45);var Activator=__webpack_require__(97);var DateUtil=__webpack_require__(36);var CustomTime=__webpack_require__(46);function Core(){}Emitter(Core.prototype);Core.prototype._create=function(container){this.dom={};this.dom.container=container;this.dom.root=document.createElement(\"div\");this.dom.background=document.createElement(\"div\");this.dom.backgroundVertical=document.createElement(\"div\");this.dom.backgroundHorizontal=document.createElement(\"div\");this.dom.centerContainer=document.createElement(\"div\");this.dom.leftContainer=document.createElement(\"div\");this.dom.rightContainer=document.createElement(\"div\");this.dom.center=document.createElement(\"div\");this.dom.left=document.createElement(\"div\");this.dom.right=document.createElement(\"div\");this.dom.top=document.createElement(\"div\");this.dom.bottom=document.createElement(\"div\");this.dom.shadowTop=document.createElement(\"div\");this.dom.shadowBottom=document.createElement(\"div\");this.dom.shadowTopLeft=document.createElement(\"div\");this.dom.shadowBottomLeft=document.createElement(\"div\");this.dom.shadowTopRight=document.createElement(\"div\");this.dom.shadowBottomRight=document.createElement(\"div\");this.dom.rollingModeBtn=document.createElement(\"div\");this.dom.root.className=\"vis-timeline\";this.dom.background.className=\"vis-panel vis-background\";this.dom.backgroundVertical.className=\"vis-panel vis-background vis-vertical\";this.dom.backgroundHorizontal.className=\"vis-panel vis-background vis-horizontal\";this.dom.centerContainer.className=\"vis-panel vis-center\";this.dom.leftContainer.className=\"vis-panel vis-left\";this.dom.rightContainer.className=\"vis-panel vis-right\";this.dom.top.className=\"vis-panel vis-top\";this.dom.bottom.className=\"vis-panel vis-bottom\";this.dom.left.className=\"vis-content\";this.dom.center.className=\"vis-content\";this.dom.right.className=\"vis-content\";this.dom.shadowTop.className=\"vis-shadow vis-top\";this.dom.shadowBottom.className=\"vis-shadow vis-bottom\";this.dom.shadowTopLeft.className=\"vis-shadow vis-top\";this.dom.shadowBottomLeft.className=\"vis-shadow vis-bottom\";this.dom.shadowTopRight.className=\"vis-shadow vis-top\";this.dom.shadowBottomRight.className=\"vis-shadow vis-bottom\";this.dom.rollingModeBtn.className=\"vis-rolling-mode-btn\";this.dom.root.appendChild(this.dom.background);this.dom.root.appendChild(this.dom.backgroundVertical);this.dom.root.appendChild(this.dom.backgroundHorizontal);this.dom.root.appendChild(this.dom.centerContainer);this.dom.root.appendChild(this.dom.leftContainer);this.dom.root.appendChild(this.dom.rightContainer);this.dom.root.appendChild(this.dom.top);this.dom.root.appendChild(this.dom.bottom);this.dom.root.appendChild(this.dom.bottom);this.dom.root.appendChild(this.dom.rollingModeBtn);this.dom.centerContainer.appendChild(this.dom.center);this.dom.leftContainer.appendChild(this.dom.left);this.dom.rightContainer.appendChild(this.dom.right);this.dom.centerContainer.appendChild(this.dom.shadowTop);this.dom.centerContainer.appendChild(this.dom.shadowBottom);this.dom.leftContainer.appendChild(this.dom.shadowTopLeft);this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft);this.dom.rightContainer.appendChild(this.dom.shadowTopRight);this.dom.rightContainer.appendChild(this.dom.shadowBottomRight);this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0};this.on(\"rangechange\",function(){if(this.initialDrawDone===true){this._redraw()}}.bind(this));this.on(\"rangechanged\",function(){if(!this.initialRangeChangeDone){this.initialRangeChangeDone=true}}.bind(this));this.on(\"touch\",this._onTouch.bind(this));this.on(\"panmove\",this._onDrag.bind(this));var me=this;this._origRedraw=this._redraw.bind(this);this._redraw=util.throttle(this._origRedraw);this.on(\"_change\",function(properties){if(me.itemSet&&me.itemSet.initialItemSetDrawn&&properties&&properties.queue==true){me._redraw()}else{me._origRedraw()}});this.hammer=new Hammer(this.dom.root);var pinchRecognizer=this.hammer.get(\"pinch\").set({enable:true});hammerUtil.disablePreventDefaultVertically(pinchRecognizer);this.hammer.get(\"pan\").set({threshold:5,direction:Hammer.DIRECTION_HORIZONTAL});this.listeners={};var events=[\"tap\",\"doubletap\",\"press\",\"pinch\",\"pan\",\"panstart\",\"panmove\",\"panend\"];events.forEach(function(type){var listener=function listener(event){if(me.isActive()){me.emit(type,event)}};me.hammer.on(type,listener);me.listeners[type]=listener});hammerUtil.onTouch(this.hammer,function(event){me.emit(\"touch\",event)}.bind(this));hammerUtil.onRelease(this.hammer,function(event){me.emit(\"release\",event)}.bind(this));function onMouseWheel(event){if(this.isActive()){this.emit(\"mousewheel\",event)}var deltaX=0;var deltaY=0;if(\"detail\"in event){deltaY=event.detail*-1}if(\"wheelDelta\"in event){deltaY=event.wheelDelta}if(\"wheelDeltaY\"in event){deltaY=event.wheelDeltaY}if(\"wheelDeltaX\"in event){deltaX=event.wheelDeltaX*-1}if(\"axis\"in event&&event.axis===event.HORIZONTAL_AXIS){deltaX=deltaY*-1;deltaY=0}if(\"deltaY\"in event){deltaY=event.deltaY*-1}if(\"deltaX\"in event){deltaX=event.deltaX}if(!this.options.zoomKey||event[this.options.zoomKey])return;event.preventDefault();if(this.options.verticalScroll&&Math.abs(deltaY)>=Math.abs(deltaX)){var current=this.props.scrollTop;var adjusted=current+deltaY;if(this.isActive()){this._setScrollTop(adjusted);this._redraw();this.emit(\"scroll\",event)}}else if(this.options.horizontalScroll){var delta=Math.abs(deltaX)>=Math.abs(deltaY)?deltaX:deltaY;var diff=delta/120*(this.range.end-this.range.start)/20;var newStart=this.range.start+diff;var newEnd=this.range.end+diff;var options={animation:false,byUser:true,event:event};this.range.setRange(newStart,newEnd,options)}}if(this.dom.centerContainer.addEventListener){this.dom.centerContainer.addEventListener(\"mousewheel\",onMouseWheel.bind(this),false);this.dom.centerContainer.addEventListener(\"DOMMouseScroll\",onMouseWheel.bind(this),false)}else{this.dom.centerContainer.attachEvent(\"onmousewheel\",onMouseWheel.bind(this))}function onMouseScrollSide(event){if(!me.options.verticalScroll)return;event.preventDefault();if(me.isActive()){var adjusted=-event.target.scrollTop;me._setScrollTop(adjusted);me._redraw();me.emit(\"scrollSide\",event)}}this.dom.left.parentNode.addEventListener(\"scroll\",onMouseScrollSide.bind(this));this.dom.right.parentNode.addEventListener(\"scroll\",onMouseScrollSide.bind(this));var itemAddedToTimeline=false;function handleDragOver(event){if(event.preventDefault){event.preventDefault()}if(!event.target.className.indexOf(\"vis\")>-1)return;if(itemAddedToTimeline)return;event.dataTransfer.dropEffect=\"move\";itemAddedToTimeline=true;return false}function handleDrop(event){if(event.preventDefault){event.preventDefault()}if(event.stopPropagation){event.stopPropagation()}try{var itemData=JSON.parse(event.dataTransfer.getData(\"text\"));if(!itemData||!itemData.content)return}catch(err){return false}itemAddedToTimeline=false;event.center={x:event.clientX,y:event.clientY};if(itemData.target!==\"item\"){me.itemSet._onAddItem(event)}else{me.itemSet._onDropObjectOnItem(event)}me.emit(\"drop\",me.getEventProperties(event));return false}this.dom.center.addEventListener(\"dragover\",handleDragOver.bind(this),false);this.dom.center.addEventListener(\"drop\",handleDrop.bind(this),false);this.customTimes=[];this.touch={};this.redrawCount=0;this.initialDrawDone=false;this.initialRangeChangeDone=false;if(!container)throw new Error(\"No container provided\");container.appendChild(this.dom.root)};Core.prototype.setOptions=function(options){if(options){var fields=[\"width\",\"height\",\"minHeight\",\"maxHeight\",\"autoResize\",\"start\",\"end\",\"clickToUse\",\"dataAttributes\",\"hiddenDates\",\"locale\",\"locales\",\"moment\",\"rtl\",\"zoomKey\",\"horizontalScroll\",\"verticalScroll\"];util.selectiveExtend(fields,this.options,options);this.dom.rollingModeBtn.style.visibility=\"hidden\";if(this.options.rtl){this.dom.container.style.direction=\"rtl\";this.dom.backgroundVertical.className=\"vis-panel vis-background vis-vertical-rtl\"}if(this.options.verticalScroll){if(this.options.rtl){this.dom.rightContainer.className=\"vis-panel vis-right vis-vertical-scroll\"}else{this.dom.leftContainer.className=\"vis-panel vis-left vis-vertical-scroll\"}}if((0,_typeof3[\"default\"])(this.options.orientation)!==\"object\"){this.options.orientation={item:undefined,axis:undefined}}if(\"orientation\"in options){if(typeof options.orientation===\"string\"){this.options.orientation={item:options.orientation,axis:options.orientation}}else if((0,_typeof3[\"default\"])(options.orientation)===\"object\"){if(\"item\"in options.orientation){this.options.orientation.item=options.orientation.item}if(\"axis\"in options.orientation){this.options.orientation.axis=options.orientation.axis}}}if(this.options.orientation.axis===\"both\"){if(!this.timeAxis2){var timeAxis2=this.timeAxis2=new TimeAxis(this.body);timeAxis2.setOptions=function(options){var _options=options?util.extend({},options):{};_options.orientation=\"top\";TimeAxis.prototype.setOptions.call(timeAxis2,_options)};this.components.push(timeAxis2)}}else{if(this.timeAxis2){var index=this.components.indexOf(this.timeAxis2);if(index!==-1){this.components.splice(index,1)}this.timeAxis2.destroy();this.timeAxis2=null}}if(typeof options.drawPoints==\"function\"){options.drawPoints={onRender:options.drawPoints}}if(\"hiddenDates\"in this.options){DateUtil.convertHiddenOptions(this.options.moment,this.body,this.options.hiddenDates)}if(\"clickToUse\"in options){if(options.clickToUse){if(!this.activator){this.activator=new Activator(this.dom.root)}}else{if(this.activator){this.activator.destroy();delete this.activator}}}if(\"showCustomTime\"in options){throw new Error(\"Option `showCustomTime` is deprecated. Create a custom time bar via timeline.addCustomTime(time [, id])\")}this._initAutoResize()}this.components.forEach(function(component){return component.setOptions(options)});if(\"configure\"in options){if(!this.configurator){this.configurator=this._createConfigurator()}this.configurator.setOptions(options.configure);var appliedOptions=util.deepExtend({},this.options);this.components.forEach(function(component){util.deepExtend(appliedOptions,component.options)});this.configurator.setModuleOptions({global:appliedOptions})}this._redraw()};Core.prototype.isActive=function(){return!this.activator||this.activator.active};Core.prototype.destroy=function(){this.setItems(null);this.setGroups(null);this.off();this._stopAutoResize();if(this.dom.root.parentNode){this.dom.root.parentNode.removeChild(this.dom.root)}this.dom=null;if(this.activator){this.activator.destroy();delete this.activator}for(var event in this.listeners){if(this.listeners.hasOwnProperty(event)){delete this.listeners[event]}}this.listeners=null;this.hammer=null;this.components.forEach(function(component){return component.destroy()});this.body=null};Core.prototype.setCustomTime=function(time,id){var customTimes=this.customTimes.filter(function(component){return id===component.options.id});if(customTimes.length===0){throw new Error(\"No custom time bar found with id \"+(0,_stringify2[\"default\"])(id))}if(customTimes.length>0){customTimes[0].setCustomTime(time)}};Core.prototype.getCustomTime=function(id){var customTimes=this.customTimes.filter(function(component){return component.options.id===id});if(customTimes.length===0){throw new Error(\"No custom time bar found with id \"+(0,_stringify2[\"default\"])(id))}return customTimes[0].getCustomTime()};Core.prototype.setCustomTimeTitle=function(title,id){var customTimes=this.customTimes.filter(function(component){return component.options.id===id});if(customTimes.length===0){throw new Error(\"No custom time bar found with id \"+(0,_stringify2[\"default\"])(id))}if(customTimes.length>0){return customTimes[0].setCustomTitle(title)}};Core.prototype.getEventProperties=function(event){return{event:event}};Core.prototype.addCustomTime=function(time,id){var timestamp=time!==undefined?util.convert(time,\"Date\").valueOf():new Date;var exists=this.customTimes.some(function(customTime){return customTime.options.id===id});if(exists){throw new Error(\"A custom time with id \"+(0,_stringify2[\"default\"])(id)+\" already exists\")}var customTime=new CustomTime(this.body,util.extend({},this.options,{time:timestamp,id:id}));this.customTimes.push(customTime);this.components.push(customTime);this._redraw();return id};Core.prototype.removeCustomTime=function(id){var customTimes=this.customTimes.filter(function(bar){return bar.options.id===id});if(customTimes.length===0){throw new Error(\"No custom time bar found with id \"+(0,_stringify2[\"default\"])(id))}customTimes.forEach(function(customTime){this.customTimes.splice(this.customTimes.indexOf(customTime),1);this.components.splice(this.components.indexOf(customTime),1);customTime.destroy()}.bind(this))};Core.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]};Core.prototype.fit=function(options,callback){var range=this.getDataRange();if(range.min===null&&range.max===null){return}var interval=range.max-range.min;var min=new Date(range.min.valueOf()-interval*.01);var max=new Date(range.max.valueOf()+interval*.01);var animation=options&&options.animation!==undefined?options.animation:true;this.range.setRange(min,max,{animation:animation},callback)};Core.prototype.getDataRange=function(){throw new Error(\"Cannot invoke abstract method getDataRange\")};Core.prototype.setWindow=function(start,end,options,callback){if(typeof arguments[2]==\"function\"){callback=arguments[2];options={}}var animation;var range;if(arguments.length==1){range=arguments[0];animation=range.animation!==undefined?range.animation:true;this.range.setRange(range.start,range.end,{animation:animation})}else if(arguments.length==2&&typeof arguments[1]==\"function\"){range=arguments[0];callback=arguments[1];animation=range.animation!==undefined?range.animation:true\n;this.range.setRange(range.start,range.end,{animation:animation},callback)}else{animation=options&&options.animation!==undefined?options.animation:true;this.range.setRange(start,end,{animation:animation},callback)}};Core.prototype.moveTo=function(time,options,callback){if(typeof arguments[1]==\"function\"){callback=arguments[1];options={}}var interval=this.range.end-this.range.start;var t=util.convert(time,\"Date\").valueOf();var start=t-interval/2;var end=t+interval/2;var animation=options&&options.animation!==undefined?options.animation:true;this.range.setRange(start,end,{animation:animation},callback)};Core.prototype.getWindow=function(){var range=this.range.getRange();return{start:new Date(range.start),end:new Date(range.end)}};Core.prototype.zoomIn=function(percentage,options,callback){if(!percentage||percentage<0||percentage>1)return;if(typeof arguments[1]==\"function\"){callback=arguments[1];options={}}var range=this.getWindow();var start=range.start.valueOf();var end=range.end.valueOf();var interval=end-start;var newInterval=interval/(1+percentage);var distance=(interval-newInterval)/2;var newStart=start+distance;var newEnd=end-distance;this.setWindow(newStart,newEnd,options,callback)};Core.prototype.zoomOut=function(percentage,options,callback){if(!percentage||percentage<0||percentage>1)return;if(typeof arguments[1]==\"function\"){callback=arguments[1];options={}}var range=this.getWindow();var start=range.start.valueOf();var end=range.end.valueOf();var interval=end-start;var newStart=start-interval*percentage/2;var newEnd=end+interval*percentage/2;this.setWindow(newStart,newEnd,options,callback)};Core.prototype.redraw=function(){this._redraw()};Core.prototype._redraw=function(){this.redrawCount++;var resized=false;var options=this.options;var props=this.props;var dom=this.dom;if(!dom||!dom.container||dom.root.offsetWidth==0)return;DateUtil.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates);if(options.orientation==\"top\"){util.addClassName(dom.root,\"vis-top\");util.removeClassName(dom.root,\"vis-bottom\")}else{util.removeClassName(dom.root,\"vis-top\");util.addClassName(dom.root,\"vis-bottom\")}dom.root.style.maxHeight=util.option.asSize(options.maxHeight,\"\");dom.root.style.minHeight=util.option.asSize(options.minHeight,\"\");dom.root.style.width=util.option.asSize(options.width,\"\");props.border.left=(dom.centerContainer.offsetWidth-dom.centerContainer.clientWidth)/2;props.border.right=props.border.left;props.border.top=(dom.centerContainer.offsetHeight-dom.centerContainer.clientHeight)/2;props.border.bottom=props.border.top;props.borderRootHeight=dom.root.offsetHeight-dom.root.clientHeight;props.borderRootWidth=dom.root.offsetWidth-dom.root.clientWidth;if(dom.centerContainer.clientHeight===0){props.border.left=props.border.top;props.border.right=props.border.left}if(dom.root.clientHeight===0){props.borderRootWidth=props.borderRootHeight}props.center.height=dom.center.offsetHeight;props.left.height=dom.left.offsetHeight;props.right.height=dom.right.offsetHeight;props.top.height=dom.top.clientHeight||-props.border.top;props.bottom.height=dom.bottom.clientHeight||-props.border.bottom;var contentHeight=Math.max(props.left.height,props.center.height,props.right.height);var autoHeight=props.top.height+contentHeight+props.bottom.height+props.borderRootHeight+props.border.top+props.border.bottom;dom.root.style.height=util.option.asSize(options.height,autoHeight+\"px\");props.root.height=dom.root.offsetHeight;props.background.height=props.root.height-props.borderRootHeight;var containerHeight=props.root.height-props.top.height-props.bottom.height-props.borderRootHeight;props.centerContainer.height=containerHeight;props.leftContainer.height=containerHeight;props.rightContainer.height=props.leftContainer.height;props.root.width=dom.root.offsetWidth;props.background.width=props.root.width-props.borderRootWidth;if(!this.initialDrawDone){props.scrollbarWidth=util.getScrollBarWidth()}if(options.verticalScroll){if(options.rtl){props.left.width=dom.leftContainer.clientWidth||-props.border.left;props.right.width=dom.rightContainer.clientWidth+props.scrollbarWidth||-props.border.right}else{props.left.width=dom.leftContainer.clientWidth+props.scrollbarWidth||-props.border.left;props.right.width=dom.rightContainer.clientWidth||-props.border.right}}else{props.left.width=dom.leftContainer.clientWidth||-props.border.left;props.right.width=dom.rightContainer.clientWidth||-props.border.right}this._setDOM();var offset=this._updateScrollTop();if(options.orientation.item!=\"top\"){offset+=Math.max(props.centerContainer.height-props.center.height-props.border.top-props.border.bottom,0)}dom.center.style.top=offset+\"px\";var visibilityTop=props.scrollTop==0?\"hidden\":\"\";var visibilityBottom=props.scrollTop==props.scrollTopMin?\"hidden\":\"\";dom.shadowTop.style.visibility=visibilityTop;dom.shadowBottom.style.visibility=visibilityBottom;dom.shadowTopLeft.style.visibility=visibilityTop;dom.shadowBottomLeft.style.visibility=visibilityBottom;dom.shadowTopRight.style.visibility=visibilityTop;dom.shadowBottomRight.style.visibility=visibilityBottom;if(options.verticalScroll){dom.rightContainer.className=\"vis-panel vis-right vis-vertical-scroll\";dom.leftContainer.className=\"vis-panel vis-left vis-vertical-scroll\";dom.shadowTopRight.style.visibility=\"hidden\";dom.shadowBottomRight.style.visibility=\"hidden\";dom.shadowTopLeft.style.visibility=\"hidden\";dom.shadowBottomLeft.style.visibility=\"hidden\";dom.left.style.top=\"0px\";dom.right.style.top=\"0px\"}if(!options.verticalScroll||props.center.height<props.centerContainer.height){dom.left.style.top=offset+\"px\";dom.right.style.top=offset+\"px\";dom.rightContainer.className=dom.rightContainer.className.replace(new RegExp(\"(?:^|\\\\s)\"+\"vis-vertical-scroll\"+\"(?:\\\\s|$)\"),\" \");dom.leftContainer.className=dom.leftContainer.className.replace(new RegExp(\"(?:^|\\\\s)\"+\"vis-vertical-scroll\"+\"(?:\\\\s|$)\"),\" \");props.left.width=dom.leftContainer.clientWidth||-props.border.left;props.right.width=dom.rightContainer.clientWidth||-props.border.right;this._setDOM()}var contentsOverflow=props.center.height>props.centerContainer.height;this.hammer.get(\"pan\").set({direction:contentsOverflow?Hammer.DIRECTION_ALL:Hammer.DIRECTION_HORIZONTAL});this.components.forEach(function(component){resized=component.redraw()||resized});var MAX_REDRAW=5;if(resized){if(this.redrawCount<MAX_REDRAW){this.body.emitter.emit(\"_change\");return}else{console.log(\"WARNING: infinite loop in redraw?\")}}else{this.redrawCount=0}this.body.emitter.emit(\"changed\")};Core.prototype._setDOM=function(){var props=this.props;var dom=this.dom;props.leftContainer.width=props.left.width;props.rightContainer.width=props.right.width;var centerWidth=props.root.width-props.left.width-props.right.width-props.borderRootWidth;props.center.width=centerWidth;props.centerContainer.width=centerWidth;props.top.width=centerWidth;props.bottom.width=centerWidth;dom.background.style.height=props.background.height+\"px\";dom.backgroundVertical.style.height=props.background.height+\"px\";dom.backgroundHorizontal.style.height=props.centerContainer.height+\"px\";dom.centerContainer.style.height=props.centerContainer.height+\"px\";dom.leftContainer.style.height=props.leftContainer.height+\"px\";dom.rightContainer.style.height=props.rightContainer.height+\"px\";dom.background.style.width=props.background.width+\"px\";dom.backgroundVertical.style.width=props.centerContainer.width+\"px\";dom.backgroundHorizontal.style.width=props.background.width+\"px\";dom.centerContainer.style.width=props.center.width+\"px\";dom.top.style.width=props.top.width+\"px\";dom.bottom.style.width=props.bottom.width+\"px\";dom.background.style.left=\"0\";dom.background.style.top=\"0\";dom.backgroundVertical.style.left=props.left.width+props.border.left+\"px\";dom.backgroundVertical.style.top=\"0\";dom.backgroundHorizontal.style.left=\"0\";dom.backgroundHorizontal.style.top=props.top.height+\"px\";dom.centerContainer.style.left=props.left.width+\"px\";dom.centerContainer.style.top=props.top.height+\"px\";dom.leftContainer.style.left=\"0\";dom.leftContainer.style.top=props.top.height+\"px\";dom.rightContainer.style.left=props.left.width+props.center.width+\"px\";dom.rightContainer.style.top=props.top.height+\"px\";dom.top.style.left=props.left.width+\"px\";dom.top.style.top=\"0\";dom.bottom.style.left=props.left.width+\"px\";dom.bottom.style.top=props.top.height+props.centerContainer.height+\"px\";dom.center.style.left=\"0\";dom.left.style.left=\"0\";dom.right.style.left=\"0\"};Core.prototype.repaint=function(){throw new Error(\"Function repaint is deprecated. Use redraw instead.\")};Core.prototype.setCurrentTime=function(time){if(!this.currentTime){throw new Error(\"Option showCurrentTime must be true\")}this.currentTime.setCurrentTime(time)};Core.prototype.getCurrentTime=function(){if(!this.currentTime){throw new Error(\"Option showCurrentTime must be true\")}return this.currentTime.getCurrentTime()};Core.prototype._toTime=function(x){return DateUtil.toTime(this,x,this.props.center.width)};Core.prototype._toGlobalTime=function(x){return DateUtil.toTime(this,x,this.props.root.width)};Core.prototype._toScreen=function(time){return DateUtil.toScreen(this,time,this.props.center.width)};Core.prototype._toGlobalScreen=function(time){return DateUtil.toScreen(this,time,this.props.root.width)};Core.prototype._initAutoResize=function(){if(this.options.autoResize==true){this._startAutoResize()}else{this._stopAutoResize()}};Core.prototype._startAutoResize=function(){var me=this;this._stopAutoResize();this._onResize=function(){if(me.options.autoResize!=true){me._stopAutoResize();return}if(me.dom.root){if(me.dom.root.offsetWidth!=me.props.lastWidth||me.dom.root.offsetHeight!=me.props.lastHeight){me.props.lastWidth=me.dom.root.offsetWidth;me.props.lastHeight=me.dom.root.offsetHeight;me.props.scrollbarWidth=util.getScrollBarWidth();me.body.emitter.emit(\"_change\")}}};util.addEventListener(window,\"resize\",this._onResize);if(me.dom.root){me.props.lastWidth=me.dom.root.offsetWidth;me.props.lastHeight=me.dom.root.offsetHeight}this.watchTimer=setInterval(this._onResize,1e3)};Core.prototype._stopAutoResize=function(){if(this.watchTimer){clearInterval(this.watchTimer);this.watchTimer=undefined}if(this._onResize){util.removeEventListener(window,\"resize\",this._onResize);this._onResize=null}};Core.prototype._onTouch=function(event){this.touch.allowDragging=true;this.touch.initialScrollTop=this.props.scrollTop};Core.prototype._onPinch=function(event){this.touch.allowDragging=false};Core.prototype._onDrag=function(event){if(!event)return;if(!this.touch.allowDragging)return;var delta=event.deltaY;var oldScrollTop=this._getScrollTop();var newScrollTop=this._setScrollTop(this.touch.initialScrollTop+delta);if(this.options.verticalScroll){this.dom.left.parentNode.scrollTop=-this.props.scrollTop;this.dom.right.parentNode.scrollTop=-this.props.scrollTop}if(newScrollTop!=oldScrollTop){this.emit(\"verticalDrag\")}};Core.prototype._setScrollTop=function(scrollTop){this.props.scrollTop=scrollTop;this._updateScrollTop();return this.props.scrollTop};Core.prototype._updateScrollTop=function(){var scrollTopMin=Math.min(this.props.centerContainer.height-this.props.center.height,0);if(scrollTopMin!=this.props.scrollTopMin){if(this.options.orientation.item!=\"top\"){this.props.scrollTop+=scrollTopMin-this.props.scrollTopMin}this.props.scrollTopMin=scrollTopMin}if(this.props.scrollTop>0)this.props.scrollTop=0;if(this.props.scrollTop<scrollTopMin)this.props.scrollTop=scrollTopMin;if(this.options.verticalScroll){this.dom.left.parentNode.scrollTop=-this.props.scrollTop;this.dom.right.parentNode.scrollTop=-this.props.scrollTop}return this.props.scrollTop};Core.prototype._getScrollTop=function(){return this.props.scrollTop};Core.prototype._createConfigurator=function(){throw new Error(\"Cannot invoke abstract method _createConfigurator\")};module.exports=Core},function(module,exports,__webpack_require__){\"use strict\";var moment=__webpack_require__(9);var DateUtil=__webpack_require__(36);var util=__webpack_require__(2);function TimeStep(start,end,minimumStep,hiddenDates,options){this.moment=moment;this.current=this.moment();this._start=this.moment();this._end=this.moment();this.autoScale=true;this.scale=\"day\";this.step=1;this.setRange(start,end,minimumStep);this.switchedDay=false;this.switchedMonth=false;this.switchedYear=false;if(Array.isArray(hiddenDates)){this.hiddenDates=hiddenDates}else if(hiddenDates!=undefined){this.hiddenDates=[hiddenDates]}else{this.hiddenDates=[]}this.format=TimeStep.FORMAT;this.options=options?options:{}}TimeStep.FORMAT={minorLabels:{millisecond:\"SSS\",second:\"s\",minute:\"HH:mm\",hour:\"HH:mm\",weekday:\"ddd D\",day:\"D\",week:\"w\",month:\"MMM\",year:\"YYYY\"},majorLabels:{millisecond:\"HH:mm:ss\",second:\"D MMMM HH:mm\",minute:\"ddd D MMMM\",hour:\"ddd D MMMM\",weekday:\"MMMM YYYY\",day:\"MMMM YYYY\",week:\"MMMM YYYY\",month:\"YYYY\",year:\"\"}};TimeStep.prototype.setMoment=function(moment){this.moment=moment;this.current=this.moment(this.current.valueOf());this._start=this.moment(this._start.valueOf());this._end=this.moment(this._end.valueOf())};TimeStep.prototype.setFormat=function(format){var defaultFormat=util.deepExtend({},TimeStep.FORMAT);this.format=util.deepExtend(defaultFormat,format)};TimeStep.prototype.setRange=function(start,end,minimumStep){if(!(start instanceof Date)||!(end instanceof Date)){throw\"No legal start or end date in method setRange\"}this._start=start!=undefined?this.moment(start.valueOf()):new Date;this._end=end!=undefined?this.moment(end.valueOf()):new Date;if(this.autoScale){this.setMinimumStep(minimumStep)}};TimeStep.prototype.start=function(){this.current=this._start.clone();this.roundToMinor()};TimeStep.prototype.roundToMinor=function(){if(this.scale==\"week\"){this.current.weekday(0)}switch(this.scale){case\"year\":this.current.year(this.step*Math.floor(this.current.year()/this.step));this.current.month(0);case\"month\":this.current.date(1);case\"week\":case\"day\":case\"weekday\":this.current.hours(0);case\"hour\":this.current.minutes(0);case\"minute\":this.current.seconds(0);case\"second\":this.current.milliseconds(0)}if(this.step!=1){switch(this.scale){case\"millisecond\":this.current.subtract(this.current.milliseconds()%this.step,\"milliseconds\");break;case\"second\":this.current.subtract(this.current.seconds()%this.step,\"seconds\");break;case\"minute\":this.current.subtract(this.current.minutes()%this.step,\"minutes\");break;case\"hour\":this.current.subtract(this.current.hours()%this.step,\"hours\");break;case\"weekday\":case\"day\":this.current.subtract((this.current.date()-1)%this.step,\"day\");break;case\"week\":this.current.subtract(this.current.week()%this.step,\"week\");break;case\"month\":this.current.subtract(this.current.month()%this.step,\"month\");break;case\"year\":this.current.subtract(this.current.year()%this.step,\"year\");break;default:break}}};TimeStep.prototype.hasNext=function(){return this.current.valueOf()<=this._end.valueOf()};TimeStep.prototype.next=function(){var prev=this.current.valueOf();switch(this.scale){case\"millisecond\":this.current.add(this.step,\"millisecond\");break;case\"second\":this.current.add(this.step,\"second\");break;case\"minute\":this.current.add(this.step,\"minute\");break;case\"hour\":this.current.add(this.step,\"hour\");if(this.current.month()<6){this.current.subtract(this.current.hours()%this.step,\"hour\")}else{if(this.current.hours()%this.step!==0){this.current.add(this.step-this.current.hours()%this.step,\"hour\")}}break;case\"weekday\":case\"day\":this.current.add(this.step,\"day\");break;case\"week\":if(this.current.weekday()!==0){this.current.weekday(0);this.current.add(this.step,\"week\")}else if(this.options.showMajorLabels===false){this.current.add(this.step,\"week\")}else{var nextWeek=this.current.clone();nextWeek.add(1,\"week\");if(nextWeek.isSame(this.current,\"month\")){this.current.add(this.step,\"week\")}else{this.current.add(this.step,\"week\");this.current.date(1)}}break;case\"month\":this.current.add(this.step,\"month\");break;case\"year\":this.current.add(this.step,\"year\");break;default:break}if(this.step!=1){switch(this.scale){case\"millisecond\":if(this.current.milliseconds()>0&&this.current.milliseconds()<this.step)this.current.milliseconds(0);break;case\"second\":if(this.current.seconds()>0&&this.current.seconds()<this.step)this.current.seconds(0);break;case\"minute\":if(this.current.minutes()>0&&this.current.minutes()<this.step)this.current.minutes(0);break;case\"hour\":if(this.current.hours()>0&&this.current.hours()<this.step)this.current.hours(0);break;case\"weekday\":case\"day\":if(this.current.date()<this.step+1)this.current.date(1);break;case\"week\":if(this.current.week()<this.step)this.current.week(1);break;case\"month\":if(this.current.month()<this.step)this.current.month(0);break;case\"year\":break;default:break}}if(this.current.valueOf()==prev){this.current=this._end.clone()}this.switchedDay=false;this.switchedMonth=false;this.switchedYear=false;DateUtil.stepOverHiddenDates(this.moment,this,prev)};TimeStep.prototype.getCurrent=function(){return this.current};TimeStep.prototype.setScale=function(params){if(params&&typeof params.scale==\"string\"){this.scale=params.scale;this.step=params.step>0?params.step:1;this.autoScale=false}};TimeStep.prototype.setAutoScale=function(enable){this.autoScale=enable};TimeStep.prototype.setMinimumStep=function(minimumStep){if(minimumStep==undefined){return}var stepYear=1e3*60*60*24*30*12;var stepMonth=1e3*60*60*24*30;var stepDay=1e3*60*60*24;var stepHour=1e3*60*60;var stepMinute=1e3*60;var stepSecond=1e3;var stepMillisecond=1;if(stepYear*1e3>minimumStep){this.scale=\"year\";this.step=1e3}if(stepYear*500>minimumStep){this.scale=\"year\";this.step=500}if(stepYear*100>minimumStep){this.scale=\"year\";this.step=100}if(stepYear*50>minimumStep){this.scale=\"year\";this.step=50}if(stepYear*10>minimumStep){this.scale=\"year\";this.step=10}if(stepYear*5>minimumStep){this.scale=\"year\";this.step=5}if(stepYear>minimumStep){this.scale=\"year\";this.step=1}if(stepMonth*3>minimumStep){this.scale=\"month\";this.step=3}if(stepMonth>minimumStep){this.scale=\"month\";this.step=1}if(stepDay*5>minimumStep){this.scale=\"day\";this.step=5}if(stepDay*2>minimumStep){this.scale=\"day\";this.step=2}if(stepDay>minimumStep){this.scale=\"day\";this.step=1}if(stepDay/2>minimumStep){this.scale=\"weekday\";this.step=1}if(stepHour*4>minimumStep){this.scale=\"hour\";this.step=4}if(stepHour>minimumStep){this.scale=\"hour\";this.step=1}if(stepMinute*15>minimumStep){this.scale=\"minute\";this.step=15}if(stepMinute*10>minimumStep){this.scale=\"minute\";this.step=10}if(stepMinute*5>minimumStep){this.scale=\"minute\";this.step=5}if(stepMinute>minimumStep){this.scale=\"minute\";this.step=1}if(stepSecond*15>minimumStep){this.scale=\"second\";this.step=15}if(stepSecond*10>minimumStep){this.scale=\"second\";this.step=10}if(stepSecond*5>minimumStep){this.scale=\"second\";this.step=5}if(stepSecond>minimumStep){this.scale=\"second\";this.step=1}if(stepMillisecond*200>minimumStep){this.scale=\"millisecond\";this.step=200}if(stepMillisecond*100>minimumStep){this.scale=\"millisecond\";this.step=100}if(stepMillisecond*50>minimumStep){this.scale=\"millisecond\";this.step=50}if(stepMillisecond*10>minimumStep){this.scale=\"millisecond\";this.step=10}if(stepMillisecond*5>minimumStep){this.scale=\"millisecond\";this.step=5}if(stepMillisecond>minimumStep){this.scale=\"millisecond\";this.step=1}};TimeStep.snap=function(date,scale,step){var clone=moment(date);if(scale==\"year\"){var year=clone.year()+Math.round(clone.month()/12);clone.year(Math.round(year/step)*step);clone.month(0);clone.date(0);clone.hours(0);clone.minutes(0);clone.seconds(0);clone.milliseconds(0)}else if(scale==\"month\"){if(clone.date()>15){clone.date(1);clone.add(1,\"month\")}else{clone.date(1)}clone.hours(0);clone.minutes(0);clone.seconds(0);clone.milliseconds(0)}else if(scale==\"week\"){if(clone.weekday()>2){clone.weekday(0);clone.add(1,\"week\")}else{clone.weekday(0)}clone.hours(0);clone.minutes(0);clone.seconds(0);clone.milliseconds(0)}else if(scale==\"day\"){switch(step){case 5:case 2:clone.hours(Math.round(clone.hours()/24)*24);break;default:clone.hours(Math.round(clone.hours()/12)*12);break}clone.minutes(0);clone.seconds(0);clone.milliseconds(0)}else if(scale==\"weekday\"){switch(step){case 5:case 2:clone.hours(Math.round(clone.hours()/12)*12);break;default:clone.hours(Math.round(clone.hours()/6)*6);break}clone.minutes(0);clone.seconds(0);clone.milliseconds(0)}else if(scale==\"hour\"){switch(step){case 4:clone.minutes(Math.round(clone.minutes()/60)*60);break;default:clone.minutes(Math.round(clone.minutes()/30)*30);break}clone.seconds(0);clone.milliseconds(0)}else if(scale==\"minute\"){switch(step){case 15:case 10:clone.minutes(Math.round(clone.minutes()/5)*5);clone.seconds(0);break;case 5:clone.seconds(Math.round(clone.seconds()/60)*60);break;default:clone.seconds(Math.round(clone.seconds()/30)*30);break}clone.milliseconds(0)}else if(scale==\"second\"){switch(step){case 15:case 10:clone.seconds(Math.round(clone.seconds()/5)*5);clone.milliseconds(0);break;case 5:clone.milliseconds(Math.round(clone.milliseconds()/1e3)*1e3);break;default:clone.milliseconds(Math.round(clone.milliseconds()/500)*500);break}}else if(scale==\"millisecond\"){var _step=step>5?step/2:1;clone.milliseconds(Math.round(clone.milliseconds()/_step)*_step)}return clone};TimeStep.prototype.isMajor=function(){if(this.switchedYear==true){switch(this.scale){case\"year\":case\"month\":case\"week\":case\"weekday\":case\"day\":case\"hour\":case\"minute\":case\"second\":case\"millisecond\":return true;default:return false}}else if(this.switchedMonth==true){switch(this.scale){case\"week\":case\"weekday\":case\"day\":case\"hour\":case\"minute\":case\"second\":case\"millisecond\":return true;default:return false}}else if(this.switchedDay==true){switch(this.scale){case\"millisecond\":case\"second\":case\"minute\":case\"hour\":return true;default:return false}}var date=this.moment(this.current);switch(this.scale){case\"millisecond\":return date.milliseconds()==0;case\"second\":return date.seconds()==0;case\"minute\":return date.hours()==0&&date.minutes()==0;case\"hour\":return date.hours()==0;case\"weekday\":case\"day\":return date.date()==1;case\"week\":return date.date()==1;case\"month\":return date.month()==0;case\"year\":return false;default:return false}};TimeStep.prototype.getLabelMinor=function(date){if(date==undefined){date=this.current}if(date instanceof Date){date=this.moment(date)}if(typeof this.format.minorLabels===\"function\"){return this.format.minorLabels(date,this.scale,this.step)}var format=this.format.minorLabels[this.scale];switch(this.scale){case\"week\":if(this.isMajor()&&date.weekday()!==0){return\"\"}default:return format&&format.length>0?this.moment(date).format(format):\"\"}};TimeStep.prototype.getLabelMajor=function(date){if(date==undefined){date=this.current}if(date instanceof Date){date=this.moment(date)}if(typeof this.format.majorLabels===\"function\"){return this.format.majorLabels(date,this.scale,this.step)}var format=this.format.majorLabels[this.scale];return format&&format.length>0?this.moment(date).format(format):\"\"};TimeStep.prototype.getClassName=function(){var _moment=this.moment;var m=this.moment(this.current);var current=m.locale?m.locale(\"en\"):m.lang(\"en\");var step=this.step;var classNames=[];function even(value){return value/step%2==0?\" vis-even\":\" vis-odd\"}function today(date){if(date.isSame(new Date,\"day\")){return\" vis-today\"}if(date.isSame(_moment().add(1,\"day\"),\"day\")){return\" vis-tomorrow\"}if(date.isSame(_moment().add(-1,\"day\"),\"day\")){return\" vis-yesterday\"}return\"\"}function currentWeek(date){return date.isSame(new Date,\"week\")?\" vis-current-week\":\"\"}function currentMonth(date){return date.isSame(new Date,\"month\")?\" vis-current-month\":\"\"}function currentYear(date){return date.isSame(new Date,\"year\")?\" vis-current-year\":\"\"}switch(this.scale){case\"millisecond\":classNames.push(today(current));classNames.push(even(current.milliseconds()));break;case\"second\":classNames.push(today(current));classNames.push(even(current.seconds()));break;case\"minute\":classNames.push(today(current));classNames.push(even(current.minutes()));break;case\"hour\":classNames.push(\"vis-h\"+current.hours()+(this.step==4?\"-h\"+(current.hours()+4):\"\"));classNames.push(today(current));classNames.push(even(current.hours()));break;case\"weekday\":classNames.push(\"vis-\"+current.format(\"dddd\").toLowerCase());classNames.push(today(current));classNames.push(currentWeek(current));classNames.push(even(current.date()));break;case\"day\":classNames.push(\"vis-day\"+current.date());classNames.push(\"vis-\"+current.format(\"MMMM\").toLowerCase());classNames.push(today(current));classNames.push(currentMonth(current));classNames.push(this.step<=2?today(current):\"\");classNames.push(this.step<=2?\"vis-\"+current.format(\"dddd\").toLowerCase():\"\");classNames.push(even(current.date()-1));break;case\"week\":classNames.push(\"vis-week\"+current.format(\"w\"));classNames.push(currentWeek(current));classNames.push(even(current.week()));break;case\"month\":classNames.push(\"vis-\"+current.format(\"MMMM\").toLowerCase());classNames.push(currentMonth(current));classNames.push(even(current.month()));break;case\"year\":classNames.push(\"vis-year\"+current.year());classNames.push(currentYear(current));classNames.push(even(current.year()));break}return classNames.filter(String).join(\" \")};module.exports=TimeStep},function(module,exports,__webpack_require__){\"use strict\";var util=__webpack_require__(2);var Component=__webpack_require__(16);var moment=__webpack_require__(9);var locales=__webpack_require__(98);function CurrentTime(body,options){this.body=body;this.defaultOptions={rtl:false,showCurrentTime:true,moment:moment,locales:locales,locale:\"en\"};this.options=util.extend({},this.defaultOptions);this.offset=0;this._create();this.setOptions(options)}CurrentTime.prototype=new Component;CurrentTime.prototype._create=function(){var bar=document.createElement(\"div\");bar.className=\"vis-current-time\";bar.style.position=\"absolute\";bar.style.top=\"0px\";bar.style.height=\"100%\";this.bar=bar};CurrentTime.prototype.destroy=function(){this.options.showCurrentTime=false;this.redraw();this.body=null};CurrentTime.prototype.setOptions=function(options){if(options){util.selectiveExtend([\"rtl\",\"showCurrentTime\",\"moment\",\"locale\",\"locales\"],this.options,options)}};CurrentTime.prototype.redraw=function(){if(this.options.showCurrentTime){var parent=this.body.dom.backgroundVertical;if(this.bar.parentNode!=parent){if(this.bar.parentNode){this.bar.parentNode.removeChild(this.bar)}parent.appendChild(this.bar);this.start()}var now=this.options.moment((new Date).valueOf()+this.offset);var x=this.body.util.toScreen(now);var locale=this.options.locales[this.options.locale];if(!locale){if(!this.warned){console.log(\"WARNING: options.locales['\"+this.options.locale+\"'] not found. See http://visjs.org/docs/timeline/#Localization\");this.warned=true}locale=this.options.locales[\"en\"]}var title=locale.current+\" \"+locale.time+\": \"+now.format(\"dddd, MMMM Do YYYY, H:mm:ss\");title=title.charAt(0).toUpperCase()+title.substring(1);if(this.options.rtl){this.bar.style.right=x+\"px\"}else{this.bar.style.left=x+\"px\"}this.bar.title=title}else{if(this.bar.parentNode){this.bar.parentNode.removeChild(this.bar)}this.stop()}return false};CurrentTime.prototype.start=function(){var me=this;function update(){me.stop();var scale=me.body.range.conversion(me.body.domProps.center.width).scale;var interval=1/scale/10;if(interval<30)interval=30;if(interval>1e3)interval=1e3;me.redraw();me.body.emitter.emit(\"currentTimeTick\");me.currentTimeTimer=setTimeout(update,interval)}update()};CurrentTime.prototype.stop=function(){if(this.currentTimeTimer!==undefined){clearTimeout(this.currentTimeTimer);delete this.currentTimeTimer}};CurrentTime.prototype.setCurrentTime=function(time){var t=util.convert(time,\"Date\").valueOf();var now=(new Date).valueOf();this.offset=t-now;this.redraw()};CurrentTime.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)};module.exports=CurrentTime},function(module,exports,__webpack_require__){\"use strict\";var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var stack=__webpack_require__(100);function Group(groupId,data,itemSet){this.groupId=groupId;this.subgroups={};this.subgroupStack={};this.subgroupStackAll=false;this.doInnerStack=false;this.subgroupIndex=0;this.subgroupOrderer=data&&data.subgroupOrder;this.itemSet=itemSet;this.isVisible=null;this.stackDirty=true;if(data&&data.nestedGroups){this.nestedGroups=data.nestedGroups;if(data.showNested==false){this.showNested=false}else{this.showNested=true}}if(data&&data.subgroupStack){if(typeof data.subgroupStack===\"boolean\"){this.doInnerStack=data.subgroupStack;this.subgroupStackAll=data.subgroupStack}else{for(var key in data.subgroupStack){this.subgroupStack[key]=data.subgroupStack[key];this.doInnerStack=this.doInnerStack||data.subgroupStack[key]}}}this.nestedInGroup=null;this.dom={};this.props={label:{width:0,height:0}};this.className=null;this.items={};this.visibleItems=[];this.itemsInRange=[];this.orderedItems={byStart:[],byEnd:[]};this.checkRangedItems=false;var me=this;this.itemSet.body.emitter.on(\"checkRangedItems\",function(){me.checkRangedItems=true});this._create();this.setData(data)}Group.prototype._create=function(){var label=document.createElement(\"div\");if(this.itemSet.options.groupEditable.order){label.className=\"vis-label draggable\"}else{label.className=\"vis-label\"}this.dom.label=label;var inner=document.createElement(\"div\");inner.className=\"vis-inner\";label.appendChild(inner);this.dom.inner=inner;var foreground=document.createElement(\"div\");foreground.className=\"vis-group\";foreground[\"timeline-group\"]=this;this.dom.foreground=foreground;this.dom.background=document.createElement(\"div\");this.dom.background.className=\"vis-group\";this.dom.axis=document.createElement(\"div\");this.dom.axis.className=\"vis-group\";this.dom.marker=document.createElement(\"div\");this.dom.marker.style.visibility=\"hidden\";this.dom.marker.style.position=\"absolute\";this.dom.marker.innerHTML=\"\";this.dom.background.appendChild(this.dom.marker)};Group.prototype.setData=function(data){var content;var templateFunction;if(this.itemSet.options&&this.itemSet.options.groupTemplate){templateFunction=this.itemSet.options.groupTemplate.bind(this);content=templateFunction(data,this.dom.inner)}else{content=data&&data.content}if(content instanceof Element){this.dom.inner.appendChild(content);while(this.dom.inner.firstChild){this.dom.inner.removeChild(this.dom.inner.firstChild)}this.dom.inner.appendChild(content)}else if(content instanceof Object){templateFunction(data,this.dom.inner)}else if(content!==undefined&&content!==null){this.dom.inner.innerHTML=content}else{this.dom.inner.innerHTML=this.groupId||\"\"}this.dom.label.title=data&&data.title||\"\";if(!this.dom.inner.firstChild){util.addClassName(this.dom.inner,\"vis-hidden\")}else{util.removeClassName(this.dom.inner,\"vis-hidden\")}if(data&&data.nestedGroups){if(!this.nestedGroups||this.nestedGroups!=data.nestedGroups){this.nestedGroups=data.nestedGroups}if(data.showNested!==undefined||this.showNested===undefined){if(data.showNested==false){this.showNested=false}else{this.showNested=true}}util.addClassName(this.dom.label,\"vis-nesting-group\");var collapsedDirClassName=this.itemSet.options.rtl?\"collapsed-rtl\":\"collapsed\";if(this.showNested){util.removeClassName(this.dom.label,collapsedDirClassName);util.addClassName(this.dom.label,\"expanded\")}else{util.removeClassName(this.dom.label,\"expanded\");util.addClassName(this.dom.label,collapsedDirClassName)}}else if(this.nestedGroups){this.nestedGroups=null;collapsedDirClassName=this.itemSet.options.rtl?\"collapsed-rtl\":\"collapsed\";util.removeClassName(this.dom.label,collapsedDirClassName);util.removeClassName(this.dom.label,\"expanded\");util.removeClassName(this.dom.label,\"vis-nesting-group\")}if(data&&data.nestedInGroup){util.addClassName(this.dom.label,\"vis-nested-group\");if(this.itemSet.options&&this.itemSet.options.rtl){this.dom.inner.style.paddingRight=\"30px\"}else{\nthis.dom.inner.style.paddingLeft=\"30px\"}}var className=data&&data.className||null;if(className!=this.className){if(this.className){util.removeClassName(this.dom.label,this.className);util.removeClassName(this.dom.foreground,this.className);util.removeClassName(this.dom.background,this.className);util.removeClassName(this.dom.axis,this.className)}util.addClassName(this.dom.label,className);util.addClassName(this.dom.foreground,className);util.addClassName(this.dom.background,className);util.addClassName(this.dom.axis,className);this.className=className}if(this.style){util.removeCssText(this.dom.label,this.style);this.style=null}if(data&&data.style){util.addCssText(this.dom.label,data.style);this.style=data.style}};Group.prototype.getLabelWidth=function(){return this.props.label.width};Group.prototype._didMarkerHeightChange=function(){var markerHeight=this.dom.marker.clientHeight;if(markerHeight!=this.lastMarkerHeight){this.lastMarkerHeight=markerHeight;var redrawQueue={};var redrawQueueLength=0;util.forEach(this.items,function(item,key){item.dirty=true;if(item.displayed){var returnQueue=true;redrawQueue[key]=item.redraw(returnQueue);redrawQueueLength=redrawQueue[key].length}});var needRedraw=redrawQueueLength>0;if(needRedraw){for(var i=0;i<redrawQueueLength;i++){util.forEach(redrawQueue,function(fns){fns[i]()})}}return true}};Group.prototype._calculateGroupSizeAndPosition=function(){var offsetTop=this.dom.foreground.offsetTop;var offsetLeft=this.dom.foreground.offsetLeft;var offsetWidth=this.dom.foreground.offsetWidth;this.top=offsetTop;this.right=offsetLeft;this.width=offsetWidth};Group.prototype._redrawItems=function(forceRestack,lastIsVisible,margin,range){var restack=forceRestack||this.stackDirty||this.isVisible&&!lastIsVisible;if(restack){var visibleSubgroups={};var subgroup=null;if(typeof this.itemSet.options.order===\"function\"){var me=this;var limitSize=false;var redrawQueue={};var redrawQueueLength=0;util.forEach(this.items,function(item,key){if(!item.displayed){var returnQueue=true;redrawQueue[key]=item.redraw(returnQueue);redrawQueueLength=redrawQueue[key].length;me.visibleItems.push(item)}});var needRedraw=redrawQueueLength>0;if(needRedraw){for(var i=0;i<redrawQueueLength;i++){util.forEach(redrawQueue,function(fns){fns[i]()})}}util.forEach(this.items,function(item){item.repositionX(limitSize)});if(this.doInnerStack&&this.itemSet.options.stackSubgroups){for(subgroup in this.subgroups){visibleSubgroups[subgroup]=this.subgroups[subgroup].items.slice().sort(function(a,b){return me.itemSet.options.order(a.data,b.data)})}stack.stackSubgroupsWithInnerStack(visibleSubgroups,margin,this.subgroups)}else{var customOrderedItems=this.orderedItems.byStart.slice().sort(function(a,b){return me.itemSet.options.order(a.data,b.data)});stack.stack(customOrderedItems,margin,true)}this.visibleItems=this._updateItemsInRange(this.orderedItems,this.visibleItems,range)}else{this.visibleItems=this._updateItemsInRange(this.orderedItems,this.visibleItems,range);if(this.itemSet.options.stack){if(this.doInnerStack&&this.itemSet.options.stackSubgroups){for(subgroup in this.subgroups){visibleSubgroups[subgroup]=this.subgroups[subgroup].items}stack.stackSubgroupsWithInnerStack(visibleSubgroups,margin,this.subgroups)}else{stack.stack(this.visibleItems,margin,true)}}else{stack.nostack(this.visibleItems,margin,this.subgroups,this.itemSet.options.stackSubgroups)}}this.stackDirty=false}};Group.prototype._didResize=function(resized,height){resized=util.updateProperty(this,\"height\",height)||resized;var labelWidth=this.dom.inner.clientWidth;var labelHeight=this.dom.inner.clientHeight;resized=util.updateProperty(this.props.label,\"width\",labelWidth)||resized;resized=util.updateProperty(this.props.label,\"height\",labelHeight)||resized;return resized};Group.prototype._applyGroupHeight=function(height){this.dom.background.style.height=height+\"px\";this.dom.foreground.style.height=height+\"px\";this.dom.label.style.height=height+\"px\"};Group.prototype._updateItemsVerticalPosition=function(margin){for(var i=0,ii=this.visibleItems.length;i<ii;i++){var item=this.visibleItems[i];item.repositionY(margin);if(!this.isVisible&&this.groupId!=\"__background__\"){if(item.displayed)item.hide()}}};Group.prototype.redraw=function(range,margin,forceRestack,returnQueue){var resized=false;var lastIsVisible=this.isVisible;var height;var queue=[function(){forceRestack=this._didMarkerHeightChange.bind(this)}.bind(this),this._updateSubGroupHeights.bind(this,margin),this._calculateGroupSizeAndPosition.bind(this),function(){this.isVisible=this._isGroupVisible.bind(this)(range,margin)}.bind(this),function(){this._redrawItems.bind(this)(forceRestack,lastIsVisible,margin,range)}.bind(this),this._updateSubgroupsSizes.bind(this),function(){height=this._calculateHeight.bind(this)(margin)}.bind(this),this._calculateGroupSizeAndPosition.bind(this),function(){resized=this._didResize.bind(this)(resized,height)}.bind(this),function(){this._applyGroupHeight.bind(this)(height)}.bind(this),function(){this._updateItemsVerticalPosition.bind(this)(margin)}.bind(this),function(){if(!this.isVisible&&this.height){resized=false}return resized}];if(returnQueue){return queue}else{var result;queue.forEach(function(fn){result=fn()});return result}};Group.prototype._updateSubGroupHeights=function(margin){if((0,_keys2[\"default\"])(this.subgroups).length>0){var me=this;this.resetSubgroups();util.forEach(this.visibleItems,function(item){if(item.data.subgroup!==undefined){me.subgroups[item.data.subgroup].height=Math.max(me.subgroups[item.data.subgroup].height,item.height+margin.item.vertical);me.subgroups[item.data.subgroup].visible=true}})}};Group.prototype._isGroupVisible=function(range,margin){return this.top<=range.body.domProps.centerContainer.height-range.body.domProps.scrollTop+margin.axis&&this.top+this.height+margin.axis>=-range.body.domProps.scrollTop};Group.prototype._calculateHeight=function(margin){var height;var itemsInRange=this.visibleItems;if(itemsInRange.length>0){var min=itemsInRange[0].top;var max=itemsInRange[0].top+itemsInRange[0].height;util.forEach(itemsInRange,function(item){min=Math.min(min,item.top);max=Math.max(max,item.top+item.height)});if(min>margin.axis){var offset=min-margin.axis;max-=offset;util.forEach(itemsInRange,function(item){item.top-=offset})}height=max+margin.item.vertical/2}else{height=0}height=Math.max(height,this.props.label.height);return height};Group.prototype.show=function(){if(!this.dom.label.parentNode){this.itemSet.dom.labelSet.appendChild(this.dom.label)}if(!this.dom.foreground.parentNode){this.itemSet.dom.foreground.appendChild(this.dom.foreground)}if(!this.dom.background.parentNode){this.itemSet.dom.background.appendChild(this.dom.background)}if(!this.dom.axis.parentNode){this.itemSet.dom.axis.appendChild(this.dom.axis)}};Group.prototype.hide=function(){var label=this.dom.label;if(label.parentNode){label.parentNode.removeChild(label)}var foreground=this.dom.foreground;if(foreground.parentNode){foreground.parentNode.removeChild(foreground)}var background=this.dom.background;if(background.parentNode){background.parentNode.removeChild(background)}var axis=this.dom.axis;if(axis.parentNode){axis.parentNode.removeChild(axis)}};Group.prototype.add=function(item){this.items[item.id]=item;item.setParent(this);this.stackDirty=true;if(item.data.subgroup!==undefined){this._addToSubgroup(item);this.orderSubgroups()}if(this.visibleItems.indexOf(item)==-1){var range=this.itemSet.body.range;this._checkIfVisible(item,this.visibleItems,range)}};Group.prototype._addToSubgroup=function(item,subgroupId){subgroupId=subgroupId||item.data.subgroup;if(subgroupId!=undefined&&this.subgroups[subgroupId]===undefined){this.subgroups[subgroupId]={height:0,top:0,start:item.data.start,end:item.data.end||item.data.start,visible:false,index:this.subgroupIndex,items:[],stack:this.subgroupStackAll||this.subgroupStack[subgroupId]||false};this.subgroupIndex++}if(new Date(item.data.start)<new Date(this.subgroups[subgroupId].start)){this.subgroups[subgroupId].start=item.data.start}var itemEnd=item.data.end||item.data.start;if(new Date(itemEnd)>new Date(this.subgroups[subgroupId].end)){this.subgroups[subgroupId].end=itemEnd}this.subgroups[subgroupId].items.push(item)};Group.prototype._updateSubgroupsSizes=function(){var me=this;if(me.subgroups){for(var subgroup in me.subgroups){var initialEnd=me.subgroups[subgroup].items[0].data.end||me.subgroups[subgroup].items[0].data.start;var newStart=me.subgroups[subgroup].items[0].data.start;var newEnd=initialEnd-1;me.subgroups[subgroup].items.forEach(function(item){if(new Date(item.data.start)<new Date(newStart)){newStart=item.data.start}var itemEnd=item.data.end||item.data.start;if(new Date(itemEnd)>new Date(newEnd)){newEnd=itemEnd}});me.subgroups[subgroup].start=newStart;me.subgroups[subgroup].end=new Date(newEnd-1)}}};Group.prototype.orderSubgroups=function(){if(this.subgroupOrderer!==undefined){var sortArray=[];var subgroup;if(typeof this.subgroupOrderer==\"string\"){for(subgroup in this.subgroups){sortArray.push({subgroup:subgroup,sortField:this.subgroups[subgroup].items[0].data[this.subgroupOrderer]})}sortArray.sort(function(a,b){return a.sortField-b.sortField})}else if(typeof this.subgroupOrderer==\"function\"){for(subgroup in this.subgroups){sortArray.push(this.subgroups[subgroup].items[0].data)}sortArray.sort(this.subgroupOrderer)}if(sortArray.length>0){for(var i=0;i<sortArray.length;i++){this.subgroups[sortArray[i].subgroup].index=i}}}};Group.prototype.resetSubgroups=function(){for(var subgroup in this.subgroups){if(this.subgroups.hasOwnProperty(subgroup)){this.subgroups[subgroup].visible=false;this.subgroups[subgroup].height=0}}};Group.prototype.remove=function(item){delete this.items[item.id];item.setParent(null);this.stackDirty=true;var index=this.visibleItems.indexOf(item);if(index!=-1)this.visibleItems.splice(index,1);if(item.data.subgroup!==undefined){this._removeFromSubgroup(item);this.orderSubgroups()}};Group.prototype._removeFromSubgroup=function(item,subgroupId){subgroupId=subgroupId||item.data.subgroup;if(subgroupId!=undefined){var subgroup=this.subgroups[subgroupId];if(subgroup){var itemIndex=subgroup.items.indexOf(item);if(itemIndex>=0){subgroup.items.splice(itemIndex,1);if(!subgroup.items.length){delete this.subgroups[subgroupId]}else{this._updateSubgroupsSizes()}}}}};Group.prototype.removeFromDataSet=function(item){this.itemSet.removeItem(item.id)};Group.prototype.order=function(){var array=util.toArray(this.items);var startArray=[];var endArray=[];for(var i=0;i<array.length;i++){if(array[i].data.end!==undefined){endArray.push(array[i])}startArray.push(array[i])}this.orderedItems={byStart:startArray,byEnd:endArray};stack.orderByStart(this.orderedItems.byStart);stack.orderByEnd(this.orderedItems.byEnd)};Group.prototype._updateItemsInRange=function(orderedItems,oldVisibleItems,range){var visibleItems=[];var visibleItemsLookup={};var interval=(range.end-range.start)/4;var lowerBound=range.start-interval;var upperBound=range.end+interval;var searchFunction=function searchFunction(value){if(value<lowerBound){return-1}else if(value<=upperBound){return 0}else{return 1}};if(oldVisibleItems.length>0){for(var i=0;i<oldVisibleItems.length;i++){this._checkIfVisibleWithReference(oldVisibleItems[i],visibleItems,visibleItemsLookup,range)}}var initialPosByStart=util.binarySearchCustom(orderedItems.byStart,searchFunction,\"data\",\"start\");this._traceVisible(initialPosByStart,orderedItems.byStart,visibleItems,visibleItemsLookup,function(item){return item.data.start<lowerBound||item.data.start>upperBound});if(this.checkRangedItems==true){this.checkRangedItems=false;for(i=0;i<orderedItems.byEnd.length;i++){this._checkIfVisibleWithReference(orderedItems.byEnd[i],visibleItems,visibleItemsLookup,range)}}else{var initialPosByEnd=util.binarySearchCustom(orderedItems.byEnd,searchFunction,\"data\",\"end\");this._traceVisible(initialPosByEnd,orderedItems.byEnd,visibleItems,visibleItemsLookup,function(item){return item.data.end<lowerBound||item.data.end>upperBound})}var redrawQueue={};var redrawQueueLength=0;for(i=0;i<visibleItems.length;i++){var item=visibleItems[i];if(!item.displayed){var returnQueue=true;redrawQueue[i]=item.redraw(returnQueue);redrawQueueLength=redrawQueue[i].length}}var needRedraw=redrawQueueLength>0;if(needRedraw){for(var j=0;j<redrawQueueLength;j++){util.forEach(redrawQueue,function(fns){fns[j]()})}}for(i=0;i<visibleItems.length;i++){visibleItems[i].repositionX()}return visibleItems};Group.prototype._traceVisible=function(initialPos,items,visibleItems,visibleItemsLookup,breakCondition){if(initialPos!=-1){var i,item;for(i=initialPos;i>=0;i--){item=items[i];if(breakCondition(item)){break}else{if(visibleItemsLookup[item.id]===undefined){visibleItemsLookup[item.id]=true;visibleItems.push(item)}}}for(i=initialPos+1;i<items.length;i++){item=items[i];if(breakCondition(item)){break}else{if(visibleItemsLookup[item.id]===undefined){visibleItemsLookup[item.id]=true;visibleItems.push(item)}}}}};Group.prototype._checkIfVisible=function(item,visibleItems,range){if(item.isVisible(range)){if(!item.displayed)item.show();item.repositionX();visibleItems.push(item)}else{if(item.displayed)item.hide()}};Group.prototype._checkIfVisibleWithReference=function(item,visibleItems,visibleItemsLookup,range){if(item.isVisible(range)){if(visibleItemsLookup[item.id]===undefined){visibleItemsLookup[item.id]=true;visibleItems.push(item)}}else{if(item.displayed)item.hide()}};Group.prototype.changeSubgroup=function(item,oldSubgroup,newSubgroup){this._removeFromSubgroup(item,oldSubgroup);this._addToSubgroup(item,newSubgroup);this.orderSubgroups()};module.exports=Group},function(module,exports,__webpack_require__){\"use strict\";var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Group=__webpack_require__(68);function BackgroundGroup(groupId,data,itemSet){Group.call(this,groupId,data,itemSet);this.width=0;this.height=0;this.top=0;this.left=0}BackgroundGroup.prototype=(0,_create2[\"default\"])(Group.prototype);BackgroundGroup.prototype.redraw=function(range,margin,forceRestack){var resized=false;this.visibleItems=this._updateItemsInRange(this.orderedItems,this.visibleItems,range);this.width=this.dom.background.offsetWidth;this.dom.background.style.height=\"0\";for(var i=0,ii=this.visibleItems.length;i<ii;i++){var item=this.visibleItems[i];item.repositionY(margin)}return resized};BackgroundGroup.prototype.show=function(){if(!this.dom.background.parentNode){this.itemSet.dom.background.appendChild(this.dom.background)}};module.exports=BackgroundGroup},function(module,exports,__webpack_require__){\"use strict\";var Item=__webpack_require__(38);function RangeItem(data,conversion,options){this.props={content:{width:0}};this.overflow=false;this.options=options;if(data){if(data.start==undefined){throw new Error('Property \"start\" missing in item '+data.id)}if(data.end==undefined){throw new Error('Property \"end\" missing in item '+data.id)}}Item.call(this,data,conversion,options)}RangeItem.prototype=new Item(null,null,null);RangeItem.prototype.baseClassName=\"vis-item vis-range\";RangeItem.prototype.isVisible=function(range){return this.data.start<range.end&&this.data.end>range.start};RangeItem.prototype._createDomElement=function(){if(!this.dom){this.dom={};this.dom.box=document.createElement(\"div\");this.dom.frame=document.createElement(\"div\");this.dom.frame.className=\"vis-item-overflow\";this.dom.box.appendChild(this.dom.frame);this.dom.visibleFrame=document.createElement(\"div\");this.dom.visibleFrame.className=\"vis-item-visible-frame\";this.dom.box.appendChild(this.dom.visibleFrame);this.dom.content=document.createElement(\"div\");this.dom.content.className=\"vis-item-content\";this.dom.frame.appendChild(this.dom.content);this.dom.box[\"timeline-item\"]=this;this.dirty=true}};RangeItem.prototype._appendDomElement=function(){if(!this.parent){throw new Error(\"Cannot redraw item: no parent attached\")}if(!this.dom.box.parentNode){var foreground=this.parent.dom.foreground;if(!foreground){throw new Error(\"Cannot redraw item: parent has no foreground container element\")}foreground.appendChild(this.dom.box)}this.displayed=true};RangeItem.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content);this._updateDataAttributes(this.dom.box);this._updateStyle(this.dom.box);var editable=this.editable.updateTime||this.editable.updateGroup;var className=(this.data.className?\" \"+this.data.className:\"\")+(this.selected?\" vis-selected\":\"\")+(editable?\" vis-editable\":\" vis-readonly\");this.dom.box.className=this.baseClassName+className;this.dom.content.style.maxWidth=\"none\"}};RangeItem.prototype._getDomComponentsSizes=function(){this.overflow=window.getComputedStyle(this.dom.frame).overflow!==\"hidden\";return{content:{width:this.dom.content.offsetWidth},box:{height:this.dom.box.offsetHeight}}};RangeItem.prototype._updateDomComponentsSizes=function(sizes){this.props.content.width=sizes.content.width;this.height=sizes.box.height;this.dom.content.style.maxWidth=\"\";this.dirty=false};RangeItem.prototype._repaintDomAdditionals=function(){this._repaintOnItemUpdateTimeTooltip(this.dom.box);this._repaintDeleteButton(this.dom.box);this._repaintDragCenter();this._repaintDragLeft();this._repaintDragRight()};RangeItem.prototype.redraw=function(returnQueue){var sizes;var queue=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){if(this.dirty){sizes=this._getDomComponentsSizes.bind(this)()}}.bind(this),function(){if(this.dirty){this._updateDomComponentsSizes.bind(this)(sizes)}}.bind(this),this._repaintDomAdditionals.bind(this)];if(returnQueue){return queue}else{var result;queue.forEach(function(fn){result=fn()});return result}};RangeItem.prototype.show=function(){if(!this.displayed){this.redraw()}};RangeItem.prototype.hide=function(){if(this.displayed){var box=this.dom.box;if(box.parentNode){box.parentNode.removeChild(box)}this.displayed=false}};RangeItem.prototype.repositionX=function(limitSize){var parentWidth=this.parent.width;var start=this.conversion.toScreen(this.data.start);var end=this.conversion.toScreen(this.data.end);var align=this.data.align===undefined?this.options.align:this.data.align;var contentStartPosition;var contentWidth;if(this.data.limitSize!==false&&(limitSize===undefined||limitSize===true)){if(start<-parentWidth){start=-parentWidth}if(end>2*parentWidth){end=2*parentWidth}}var boxWidth=Math.max(end-start+.5,1);if(this.overflow){if(this.options.rtl){this.right=start}else{this.left=start}this.width=boxWidth+this.props.content.width;contentWidth=this.props.content.width}else{if(this.options.rtl){this.right=start}else{this.left=start}this.width=boxWidth;contentWidth=Math.min(end-start,this.props.content.width)}if(this.options.rtl){this.dom.box.style.right=this.right+\"px\"}else{this.dom.box.style.left=this.left+\"px\"}this.dom.box.style.width=boxWidth+\"px\";switch(align){case\"left\":if(this.options.rtl){this.dom.content.style.right=\"0\"}else{this.dom.content.style.left=\"0\"}break;case\"right\":if(this.options.rtl){this.dom.content.style.right=Math.max(boxWidth-contentWidth,0)+\"px\"}else{this.dom.content.style.left=Math.max(boxWidth-contentWidth,0)+\"px\"}break;case\"center\":if(this.options.rtl){this.dom.content.style.right=Math.max((boxWidth-contentWidth)/2,0)+\"px\"}else{this.dom.content.style.left=Math.max((boxWidth-contentWidth)/2,0)+\"px\"}break;default:if(this.overflow){if(end>0){contentStartPosition=Math.max(-start,0)}else{contentStartPosition=-contentWidth}}else{if(start<0){contentStartPosition=-start}else{contentStartPosition=0}}if(this.options.rtl){this.dom.content.style.right=contentStartPosition+\"px\"}else{this.dom.content.style.left=contentStartPosition+\"px\";this.dom.content.style.width=\"calc(100% - \"+contentStartPosition+\"px)\"}}};RangeItem.prototype.repositionY=function(){var orientation=this.options.orientation.item;var box=this.dom.box;if(orientation==\"top\"){box.style.top=this.top+\"px\"}else{box.style.top=this.parent.height-this.top-this.height+\"px\"}};RangeItem.prototype._repaintDragLeft=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragLeft){var dragLeft=document.createElement(\"div\");dragLeft.className=\"vis-drag-left\";dragLeft.dragLeftItem=this;this.dom.box.appendChild(dragLeft);this.dom.dragLeft=dragLeft}else if(!this.selected&&!this.options.itemsAlwaysDraggable.range&&this.dom.dragLeft){if(this.dom.dragLeft.parentNode){this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft)}this.dom.dragLeft=null}};RangeItem.prototype._repaintDragRight=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragRight){var dragRight=document.createElement(\"div\");dragRight.className=\"vis-drag-right\";dragRight.dragRightItem=this;this.dom.box.appendChild(dragRight);this.dom.dragRight=dragRight}else if(!this.selected&&!this.options.itemsAlwaysDraggable.range&&this.dom.dragRight){if(this.dom.dragRight.parentNode){this.dom.dragRight.parentNode.removeChild(this.dom.dragRight)}this.dom.dragRight=null}};module.exports=RangeItem},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var ColorPicker=__webpack_require__(179)[\"default\"];var Configurator=function(){function Configurator(parentModule,defaultContainer,configureOptions){var pixelRatio=arguments.length>3&&arguments[3]!==undefined?arguments[3]:1;(0,_classCallCheck3[\"default\"])(this,Configurator);this.parent=parentModule;this.changedOptions=[];this.container=defaultContainer;this.allowCreation=false;this.options={};this.initialized=false;this.popupCounter=0;this.defaultOptions={enabled:false,filter:true,container:undefined,showButton:true};util.extend(this.options,this.defaultOptions);this.configureOptions=configureOptions;this.moduleOptions={};this.domElements=[];this.popupDiv={};this.popupLimit=5;this.popupHistory={};this.colorPicker=new ColorPicker(pixelRatio);this.wrapper=undefined}(0,_createClass3[\"default\"])(Configurator,[{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){this.popupHistory={};this._removePopup();var enabled=true;if(typeof options===\"string\"){this.options.filter=options}else if(options instanceof Array){this.options.filter=options.join()}else if((typeof options===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(options))===\"object\"){if(options.container!==undefined){this.options.container=options.container}if(options.filter!==undefined){this.options.filter=options.filter}if(options.showButton!==undefined){this.options.showButton=options.showButton}if(options.enabled!==undefined){enabled=options.enabled}}else if(typeof options===\"boolean\"){this.options.filter=true;enabled=options}else if(typeof options===\"function\"){this.options.filter=options;enabled=true}if(this.options.filter===false){enabled=false}this.options.enabled=enabled}this._clean()}},{key:\"setModuleOptions\",value:function setModuleOptions(moduleOptions){this.moduleOptions=moduleOptions;if(this.options.enabled===true){this._clean();if(this.options.container!==undefined){this.container=this.options.container}this._create()}}},{key:\"_create\",value:function _create(){var _this=this;this._clean();this.changedOptions=[];var filter=this.options.filter;var counter=0;var show=false;for(var option in this.configureOptions){if(this.configureOptions.hasOwnProperty(option)){this.allowCreation=false;show=false;if(typeof filter===\"function\"){show=filter(option,[]);show=show||this._handleObject(this.configureOptions[option],[option],true)}else if(filter===true||filter.indexOf(option)!==-1){show=true}if(show!==false){this.allowCreation=true;if(counter>0){this._makeItem([])}this._makeHeader(option);this._handleObject(this.configureOptions[option],[option])}counter++}}if(this.options.showButton===true){var generateButton=document.createElement(\"div\");generateButton.className=\"vis-configuration vis-config-button\";generateButton.innerHTML=\"generate options\";generateButton.onclick=function(){_this._printOptions()};generateButton.onmouseover=function(){generateButton.className=\"vis-configuration vis-config-button hover\"};generateButton.onmouseout=function(){generateButton.className=\"vis-configuration vis-config-button\"};this.optionsContainer=document.createElement(\"div\");this.optionsContainer.className=\"vis-configuration vis-config-option-container\";this.domElements.push(this.optionsContainer);this.domElements.push(generateButton)}this._push()}},{key:\"_push\",value:function _push(){this.wrapper=document.createElement(\"div\");this.wrapper.className=\"vis-configuration-wrapper\";this.container.appendChild(this.wrapper);for(var i=0;i<this.domElements.length;i++){this.wrapper.appendChild(this.domElements[i])}this._showPopupIfNeeded()}},{key:\"_clean\",value:function _clean(){for(var i=0;i<this.domElements.length;i++){this.wrapper.removeChild(this.domElements[i])}if(this.wrapper!==undefined){this.container.removeChild(this.wrapper);this.wrapper=undefined}this.domElements=[];this._removePopup()}},{key:\"_getValue\",value:function _getValue(path){var base=this.moduleOptions;for(var i=0;i<path.length;i++){if(base[path[i]]!==undefined){base=base[path[i]]}else{base=undefined;break}}return base}},{key:\"_makeItem\",value:function _makeItem(path){if(this.allowCreation===true){var item=document.createElement(\"div\");item.className=\"vis-configuration vis-config-item vis-config-s\"+path.length;for(var _len=arguments.length,domElements=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){domElements[_key-1]=arguments[_key]}domElements.forEach(function(element){item.appendChild(element)});this.domElements.push(item);return this.domElements.length}return 0}},{key:\"_makeHeader\",value:function _makeHeader(name){var div=document.createElement(\"div\");div.className=\"vis-configuration vis-config-header\";div.innerHTML=name;this._makeItem([],div)}},{key:\"_makeLabel\",value:function _makeLabel(name,path){var objectLabel=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var div=document.createElement(\"div\");div.className=\"vis-configuration vis-config-label vis-config-s\"+path.length;if(objectLabel===true){div.innerHTML=\"<i><b>\"+name+\":</b></i>\"}else{div.innerHTML=name+\":\"}return div}},{key:\"_makeDropdown\",value:function _makeDropdown(arr,value,path){var select=document.createElement(\"select\");select.className=\"vis-configuration vis-config-select\";var selectedValue=0;if(value!==undefined){if(arr.indexOf(value)!==-1){selectedValue=arr.indexOf(value)}}for(var i=0;i<arr.length;i++){var option=document.createElement(\"option\");option.value=arr[i];if(i===selectedValue){option.selected=\"selected\"}option.innerHTML=arr[i];select.appendChild(option)}var me=this;select.onchange=function(){me._update(this.value,path)};var label=this._makeLabel(path[path.length-1],path);this._makeItem(path,label,select)}},{key:\"_makeRange\",value:function _makeRange(arr,value,path){var defaultValue=arr[0];var min=arr[1];var max=arr[2];var step=arr[3];var range=document.createElement(\"input\");range.className=\"vis-configuration vis-config-range\";try{range.type=\"range\";range.min=min;range.max=max}catch(err){}range.step=step;var popupString=\"\";var popupValue=0;if(value!==undefined){var factor=1.2;if(value<0&&value*factor<min){range.min=Math.ceil(value*factor);popupValue=range.min;popupString=\"range increased\"}else if(value/factor<min){range.min=Math.ceil(value/factor);popupValue=range.min;popupString=\"range increased\"}if(value*factor>max&&max!==1){range.max=Math.ceil(value*factor);popupValue=range.max;popupString=\"range increased\"}range.value=value}else{range.value=defaultValue}var input=document.createElement(\"input\");input.className=\"vis-configuration vis-config-rangeinput\";input.value=range.value;var me=this;range.onchange=function(){input.value=this.value;me._update(Number(this.value),path)};range.oninput=function(){input.value=this.value};var label=this._makeLabel(path[path.length-1],path);var itemIndex=this._makeItem(path,label,range,input);if(popupString!==\"\"&&this.popupHistory[itemIndex]!==popupValue){this.popupHistory[itemIndex]=popupValue;this._setupPopup(popupString,itemIndex)}}},{key:\"_setupPopup\",value:function _setupPopup(string,index){var _this2=this;if(this.initialized===true&&this.allowCreation===true&&this.popupCounter<this.popupLimit){var div=document.createElement(\"div\");div.id=\"vis-configuration-popup\";div.className=\"vis-configuration-popup\";div.innerHTML=string;div.onclick=function(){_this2._removePopup()};this.popupCounter+=1;this.popupDiv={html:div,index:index}}}},{key:\"_removePopup\",value:function _removePopup(){if(this.popupDiv.html!==undefined){this.popupDiv.html.parentNode.removeChild(this.popupDiv.html);clearTimeout(this.popupDiv.hideTimeout);clearTimeout(this.popupDiv.deleteTimeout);this.popupDiv={}}}},{key:\"_showPopupIfNeeded\",value:function _showPopupIfNeeded(){var _this3=this;if(this.popupDiv.html!==undefined){var correspondingElement=this.domElements[this.popupDiv.index];var rect=correspondingElement.getBoundingClientRect();this.popupDiv.html.style.left=rect.left+\"px\";this.popupDiv.html.style.top=rect.top-30+\"px\";document.body.appendChild(this.popupDiv.html);this.popupDiv.hideTimeout=setTimeout(function(){_this3.popupDiv.html.style.opacity=0},1500);this.popupDiv.deleteTimeout=setTimeout(function(){_this3._removePopup()},1800)}}},{key:\"_makeCheckbox\",value:function _makeCheckbox(defaultValue,value,path){var checkbox=document.createElement(\"input\");checkbox.type=\"checkbox\";checkbox.className=\"vis-configuration vis-config-checkbox\";checkbox.checked=defaultValue;if(value!==undefined){checkbox.checked=value;if(value!==defaultValue){if((typeof defaultValue===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(defaultValue))===\"object\"){if(value!==defaultValue.enabled){this.changedOptions.push({path:path,value:value})}}else{this.changedOptions.push({path:path,value:value})}}}var me=this;checkbox.onchange=function(){me._update(this.checked,path)};var label=this._makeLabel(path[path.length-1],path);this._makeItem(path,label,checkbox)}},{key:\"_makeTextInput\",value:function _makeTextInput(defaultValue,value,path){var checkbox=document.createElement(\"input\");checkbox.type=\"text\";checkbox.className=\"vis-configuration vis-config-text\";checkbox.value=value;if(value!==defaultValue){this.changedOptions.push({path:path,value:value})}var me=this;checkbox.onchange=function(){me._update(this.value,path)};var label=this._makeLabel(path[path.length-1],path);this._makeItem(path,label,checkbox)}},{key:\"_makeColorField\",value:function _makeColorField(arr,value,path){var _this4=this;var defaultColor=arr[1];var div=document.createElement(\"div\");value=value===undefined?defaultColor:value;if(value!==\"none\"){div.className=\"vis-configuration vis-config-colorBlock\";div.style.backgroundColor=value}else{div.className=\"vis-configuration vis-config-colorBlock none\"}value=value===undefined?defaultColor:value;div.onclick=function(){_this4._showColorPicker(value,div,path)};var label=this._makeLabel(path[path.length-1],path);this._makeItem(path,label,div)}},{key:\"_showColorPicker\",value:function _showColorPicker(value,div,path){var _this5=this;div.onclick=function(){};this.colorPicker.insertTo(div);this.colorPicker.show();this.colorPicker.setColor(value);this.colorPicker.setUpdateCallback(function(color){\nvar colorString=\"rgba(\"+color.r+\",\"+color.g+\",\"+color.b+\",\"+color.a+\")\";div.style.backgroundColor=colorString;_this5._update(colorString,path)});this.colorPicker.setCloseCallback(function(){div.onclick=function(){_this5._showColorPicker(value,div,path)}})}},{key:\"_handleObject\",value:function _handleObject(obj){var path=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var checkOnly=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var show=false;var filter=this.options.filter;var visibleInSet=false;for(var subObj in obj){if(obj.hasOwnProperty(subObj)){show=true;var item=obj[subObj];var newPath=util.copyAndExtendArray(path,subObj);if(typeof filter===\"function\"){show=filter(subObj,path);if(show===false){if(!(item instanceof Array)&&typeof item!==\"string\"&&typeof item!==\"boolean\"&&item instanceof Object){this.allowCreation=false;show=this._handleObject(item,newPath,true);this.allowCreation=checkOnly===false}}}if(show!==false){visibleInSet=true;var value=this._getValue(newPath);if(item instanceof Array){this._handleArray(item,value,newPath)}else if(typeof item===\"string\"){this._makeTextInput(item,value,newPath)}else if(typeof item===\"boolean\"){this._makeCheckbox(item,value,newPath)}else if(item instanceof Object){var draw=true;if(path.indexOf(\"physics\")!==-1){if(this.moduleOptions.physics.solver!==subObj){draw=false}}if(draw===true){if(item.enabled!==undefined){var enabledPath=util.copyAndExtendArray(newPath,\"enabled\");var enabledValue=this._getValue(enabledPath);if(enabledValue===true){var label=this._makeLabel(subObj,newPath,true);this._makeItem(newPath,label);visibleInSet=this._handleObject(item,newPath)||visibleInSet}else{this._makeCheckbox(item,enabledValue,newPath)}}else{var _label=this._makeLabel(subObj,newPath,true);this._makeItem(newPath,_label);visibleInSet=this._handleObject(item,newPath)||visibleInSet}}}else{console.error(\"dont know how to handle\",item,subObj,newPath)}}}}return visibleInSet}},{key:\"_handleArray\",value:function _handleArray(arr,value,path){if(typeof arr[0]===\"string\"&&arr[0]===\"color\"){this._makeColorField(arr,value,path);if(arr[1]!==value){this.changedOptions.push({path:path,value:value})}}else if(typeof arr[0]===\"string\"){this._makeDropdown(arr,value,path);if(arr[0]!==value){this.changedOptions.push({path:path,value:value})}}else if(typeof arr[0]===\"number\"){this._makeRange(arr,value,path);if(arr[0]!==value){this.changedOptions.push({path:path,value:Number(value)})}}}},{key:\"_update\",value:function _update(value,path){var options=this._constructOptions(value,path);if(this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit){this.parent.body.emitter.emit(\"configChange\",options)}this.initialized=true;this.parent.setOptions(options)}},{key:\"_constructOptions\",value:function _constructOptions(value,path){var optionsObj=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var pointer=optionsObj;value=value===\"true\"?true:value;value=value===\"false\"?false:value;for(var i=0;i<path.length;i++){if(path[i]!==\"global\"){if(pointer[path[i]]===undefined){pointer[path[i]]={}}if(i!==path.length-1){pointer=pointer[path[i]]}else{pointer[path[i]]=value}}}return optionsObj}},{key:\"_printOptions\",value:function _printOptions(){var options=this.getOptions();this.optionsContainer.innerHTML=\"<pre>var options = \"+(0,_stringify2[\"default\"])(options,null,2)+\"</pre>\"}},{key:\"getOptions\",value:function getOptions(){var options={};for(var i=0;i<this.changedOptions.length;i++){this._constructOptions(this.changedOptions[i].value,this.changedOptions[i].path,options)}return options}}]);return Configurator}();exports[\"default\"]=Configurator},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var DOMutil=__webpack_require__(14);function Points(groupId,options){}Points.draw=function(dataset,group,framework,offset){offset=offset||0;var callback=getCallback(framework,group);for(var i=0;i<dataset.length;i++){if(!callback){DOMutil.drawPoint(dataset[i].screen_x+offset,dataset[i].screen_y,getGroupTemplate(group),framework.svgElements,framework.svg,dataset[i].label)}else{var callbackResult=callback(dataset[i],group);if(callbackResult===true||(typeof callbackResult===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(callbackResult))===\"object\"){DOMutil.drawPoint(dataset[i].screen_x+offset,dataset[i].screen_y,getGroupTemplate(group,callbackResult),framework.svgElements,framework.svg,dataset[i].label)}}}};Points.drawIcon=function(group,x,y,iconWidth,iconHeight,framework){var fillHeight=iconHeight*.5;var outline=DOMutil.getSVGElement(\"rect\",framework.svgElements,framework.svg);outline.setAttributeNS(null,\"x\",x);outline.setAttributeNS(null,\"y\",y-fillHeight);outline.setAttributeNS(null,\"width\",iconWidth);outline.setAttributeNS(null,\"height\",2*fillHeight);outline.setAttributeNS(null,\"class\",\"vis-outline\");DOMutil.drawPoint(x+.5*iconWidth,y,getGroupTemplate(group),framework.svgElements,framework.svg)};function getGroupTemplate(group,callbackResult){callbackResult=typeof callbackResult===\"undefined\"?{}:callbackResult;return{style:callbackResult.style||group.options.drawPoints.style,styles:callbackResult.styles||group.options.drawPoints.styles,size:callbackResult.size||group.options.drawPoints.size,className:callbackResult.className||group.className}}function getCallback(framework,group){var callback=undefined;if(framework.options&&framework.options.drawPoints&&framework.options.drawPoints.onRender&&typeof framework.options.drawPoints.onRender==\"function\"){callback=framework.options.drawPoints.onRender}if(group.group.options&&group.group.options.drawPoints&&group.group.options.drawPoints.onRender&&typeof group.group.options.drawPoints.onRender==\"function\"){callback=group.group.options.drawPoints.onRender}return callback}module.exports=Points},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CircleImageBase=function(_NodeBase){(0,_inherits3[\"default\"])(CircleImageBase,_NodeBase);function CircleImageBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,CircleImageBase);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(CircleImageBase.__proto__||(0,_getPrototypeOf2[\"default\"])(CircleImageBase)).call(this,options,body,labelModule));_this.labelOffset=0;_this.selected=false;return _this}(0,_createClass3[\"default\"])(CircleImageBase,[{key:\"setOptions\",value:function setOptions(options,imageObj,imageObjAlt){this.options=options;if(!(imageObj===undefined&&imageObjAlt===undefined)){this.setImages(imageObj,imageObjAlt)}}},{key:\"setImages\",value:function setImages(imageObj,imageObjAlt){if(imageObjAlt&&this.selected){this.imageObj=imageObjAlt;this.imageObjAlt=imageObj}else{this.imageObj=imageObj;this.imageObjAlt=imageObjAlt}}},{key:\"switchImages\",value:function switchImages(selected){var selection_changed=selected&&!this.selected||!selected&&this.selected;this.selected=selected;if(this.imageObjAlt!==undefined&&selection_changed){var imageTmp=this.imageObj;this.imageObj=this.imageObjAlt;this.imageObjAlt=imageTmp}}},{key:\"_resizeImage\",value:function _resizeImage(){var width,height;if(this.options.shapeProperties.useImageSize===false){var ratio_width=1;var ratio_height=1;if(this.imageObj.width&&this.imageObj.height){if(this.imageObj.width>this.imageObj.height){ratio_width=this.imageObj.width/this.imageObj.height}else{ratio_height=this.imageObj.height/this.imageObj.width}}width=this.options.size*2*ratio_width;height=this.options.size*2*ratio_height}else{width=this.imageObj.width;height=this.imageObj.height}this.width=width;this.height=height;this.radius=.5*this.width}},{key:\"_drawRawCircle\",value:function _drawRawCircle(ctx,x,y,values){this.initContextForDraw(ctx,values);ctx.circle(x,y,values.size);this.performFill(ctx,values)}},{key:\"_drawImageAtPosition\",value:function _drawImageAtPosition(ctx,values){if(this.imageObj.width!=0){ctx.globalAlpha=1;this.enableShadow(ctx,values);var factor=1;if(this.options.shapeProperties.interpolation===true){factor=this.imageObj.width/this.width/this.body.view.scale}this.imageObj.drawImageAtPosition(ctx,factor,this.left,this.top,this.width,this.height);this.disableShadow(ctx,values)}}},{key:\"_drawImageLabel\",value:function _drawImageLabel(ctx,x,y,selected,hover){var yLabel;var offset=0;if(this.height!==undefined){offset=this.height*.5;var labelDimensions=this.labelModule.getTextSize(ctx,selected,hover);if(labelDimensions.lineCount>=1){offset+=labelDimensions.height/2}}yLabel=y+offset;if(this.options.label){this.labelOffset=offset}this.labelModule.draw(ctx,x,yLabel,selected,hover,\"hanging\")}}]);return CircleImageBase}(_NodeBase3[\"default\"]);exports[\"default\"]=CircleImageBase},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Label=__webpack_require__(117)[\"default\"];var ComponentUtil=__webpack_require__(48)[\"default\"];var CubicBezierEdge=__webpack_require__(215)[\"default\"];var BezierEdgeDynamic=__webpack_require__(217)[\"default\"];var BezierEdgeStatic=__webpack_require__(218)[\"default\"];var StraightEdge=__webpack_require__(219)[\"default\"];var Edge=function(){function Edge(options,body,globalOptions,defaultOptions){(0,_classCallCheck3[\"default\"])(this,Edge);if(body===undefined){throw new Error(\"No body provided\")}this.options=util.bridgeObject(globalOptions);this.globalOptions=globalOptions;this.defaultOptions=defaultOptions;this.body=body;this.id=undefined;this.fromId=undefined;this.toId=undefined;this.selected=false;this.hover=false;this.labelDirty=true;this.baseWidth=this.options.width;this.baseFontSize=this.options.font.size;this.from=undefined;this.to=undefined;this.edgeType=undefined;this.connected=false;this.labelModule=new Label(this.body,this.options,true);this.setOptions(options)}(0,_createClass3[\"default\"])(Edge,[{key:\"setOptions\",value:function setOptions(options){if(!options){return}Edge.parseOptions(this.options,options,true,this.globalOptions);if(options.id!==undefined){this.id=options.id}if(options.from!==undefined){this.fromId=options.from}if(options.to!==undefined){this.toId=options.to}if(options.title!==undefined){this.title=options.title}if(options.value!==undefined){options.value=parseFloat(options.value)}var pile=[options,this.options,this.defaultOptions];this.chooser=ComponentUtil.choosify(\"edge\",pile);this.updateLabelModule(options);var dataChanged=this.updateEdgeType();this._setInteractionWidths();this.connect();if(options.hidden!==undefined||options.physics!==undefined){dataChanged=true}return dataChanged}},{key:\"getFormattingValues\",value:function getFormattingValues(){var toArrow=this.options.arrows.to===true||this.options.arrows.to.enabled===true;var fromArrow=this.options.arrows.from===true||this.options.arrows.from.enabled===true;var middleArrow=this.options.arrows.middle===true||this.options.arrows.middle.enabled===true;var inheritsColor=this.options.color.inherit;var values={toArrow:toArrow,toArrowScale:this.options.arrows.to.scaleFactor,toArrowType:this.options.arrows.to.type,middleArrow:middleArrow,middleArrowScale:this.options.arrows.middle.scaleFactor,middleArrowType:this.options.arrows.middle.type,fromArrow:fromArrow,fromArrowScale:this.options.arrows.from.scaleFactor,fromArrowType:this.options.arrows.from.type,arrowStrikethrough:this.options.arrowStrikethrough,color:inheritsColor?undefined:this.options.color.color,inheritsColor:inheritsColor,opacity:this.options.color.opacity,hidden:this.options.hidden,length:this.options.length,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y,dashes:this.options.dashes,width:this.options.width};if(this.selected||this.hover){if(this.chooser===true){if(this.selected){var selectedWidth=this.options.selectionWidth;if(typeof selectedWidth===\"function\"){values.width=selectedWidth(values.width)}else if(typeof selectedWidth===\"number\"){values.width+=selectedWidth}values.width=Math.max(values.width,.3/this.body.view.scale);values.color=this.options.color.highlight;values.shadow=this.options.shadow.enabled}else if(this.hover){var hoverWidth=this.options.hoverWidth;if(typeof hoverWidth===\"function\"){values.width=hoverWidth(values.width)}else if(typeof hoverWidth===\"number\"){values.width+=hoverWidth}values.width=Math.max(values.width,.3/this.body.view.scale);values.color=this.options.color.hover;values.shadow=this.options.shadow.enabled}}else if(typeof this.chooser===\"function\"){this.chooser(values,this.options.id,this.selected,this.hover);if(values.color!==undefined){values.inheritsColor=false}if(values.shadow===false){if(values.shadowColor!==this.options.shadow.color||values.shadowSize!==this.options.shadow.size||values.shadowX!==this.options.shadow.x||values.shadowY!==this.options.shadow.y){values.shadow=true}}}}else{values.shadow=this.options.shadow.enabled;values.width=Math.max(values.width,.3/this.body.view.scale)}return values}},{key:\"updateLabelModule\",value:function updateLabelModule(options){var pile=[options,this.options,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,pile);if(this.labelModule.baseSize!==undefined){this.baseFontSize=this.labelModule.baseSize}}},{key:\"updateEdgeType\",value:function updateEdgeType(){var smooth=this.options.smooth;var dataChanged=false;var changeInType=true;if(this.edgeType!==undefined){if(this.edgeType instanceof BezierEdgeDynamic&&smooth.enabled===true&&smooth.type===\"dynamic\"||this.edgeType instanceof CubicBezierEdge&&smooth.enabled===true&&smooth.type===\"cubicBezier\"||this.edgeType instanceof BezierEdgeStatic&&smooth.enabled===true&&smooth.type!==\"dynamic\"&&smooth.type!==\"cubicBezier\"||this.edgeType instanceof StraightEdge&&smooth.type.enabled===false){changeInType=false}if(changeInType===true){dataChanged=this.cleanup()}}if(changeInType===true){if(smooth.enabled===true){if(smooth.type===\"dynamic\"){dataChanged=true;this.edgeType=new BezierEdgeDynamic(this.options,this.body,this.labelModule)}else if(smooth.type===\"cubicBezier\"){this.edgeType=new CubicBezierEdge(this.options,this.body,this.labelModule)}else{this.edgeType=new BezierEdgeStatic(this.options,this.body,this.labelModule)}}else{this.edgeType=new StraightEdge(this.options,this.body,this.labelModule)}}else{this.edgeType.setOptions(this.options)}return dataChanged}},{key:\"connect\",value:function connect(){this.disconnect();this.from=this.body.nodes[this.fromId]||undefined;this.to=this.body.nodes[this.toId]||undefined;this.connected=this.from!==undefined&&this.to!==undefined;if(this.connected===true){this.from.attachEdge(this);this.to.attachEdge(this)}else{if(this.from){this.from.detachEdge(this)}if(this.to){this.to.detachEdge(this)}}this.edgeType.connect()}},{key:\"disconnect\",value:function disconnect(){if(this.from){this.from.detachEdge(this);this.from=undefined}if(this.to){this.to.detachEdge(this);this.to=undefined}this.connected=false}},{key:\"getTitle\",value:function getTitle(){return this.title}},{key:\"isSelected\",value:function isSelected(){return this.selected}},{key:\"getValue\",value:function getValue(){return this.options.value}},{key:\"setValueRange\",value:function setValueRange(min,max,total){if(this.options.value!==undefined){var scale=this.options.scaling.customScalingFunction(min,max,total,this.options.value);var widthDiff=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===true){var fontDiff=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+scale*fontDiff}this.options.width=this.options.scaling.min+scale*widthDiff}else{this.options.width=this.baseWidth;this.options.font.size=this.baseFontSize}this._setInteractionWidths();this.updateLabelModule()}},{key:\"_setInteractionWidths\",value:function _setInteractionWidths(){if(typeof this.options.hoverWidth===\"function\"){this.edgeType.hoverWidth=this.options.hoverWidth(this.options.width)}else{this.edgeType.hoverWidth=this.options.hoverWidth+this.options.width}if(typeof this.options.selectionWidth===\"function\"){this.edgeType.selectionWidth=this.options.selectionWidth(this.options.width)}else{this.edgeType.selectionWidth=this.options.selectionWidth+this.options.width}}},{key:\"draw\",value:function draw(ctx){var values=this.getFormattingValues();if(values.hidden){return}var viaNode=this.edgeType.getViaNode();var arrowData={};this.edgeType.fromPoint=this.edgeType.from;this.edgeType.toPoint=this.edgeType.to;if(values.fromArrow){arrowData.from=this.edgeType.getArrowData(ctx,\"from\",viaNode,this.selected,this.hover,values);if(values.arrowStrikethrough===false)this.edgeType.fromPoint=arrowData.from.core}if(values.toArrow){arrowData.to=this.edgeType.getArrowData(ctx,\"to\",viaNode,this.selected,this.hover,values);if(values.arrowStrikethrough===false)this.edgeType.toPoint=arrowData.to.core}if(values.middleArrow){arrowData.middle=this.edgeType.getArrowData(ctx,\"middle\",viaNode,this.selected,this.hover,values)}this.edgeType.drawLine(ctx,values,this.selected,this.hover,viaNode);this.drawArrows(ctx,arrowData,values);this.drawLabel(ctx,viaNode)}},{key:\"drawArrows\",value:function drawArrows(ctx,arrowData,values){if(values.fromArrow){this.edgeType.drawArrowHead(ctx,values,this.selected,this.hover,arrowData.from)}if(values.middleArrow){this.edgeType.drawArrowHead(ctx,values,this.selected,this.hover,arrowData.middle)}if(values.toArrow){this.edgeType.drawArrowHead(ctx,values,this.selected,this.hover,arrowData.to)}}},{key:\"drawLabel\",value:function drawLabel(ctx,viaNode){if(this.options.label!==undefined){var node1=this.from;var node2=this.to;if(this.labelModule.differentState(this.selected,this.hover)){this.labelModule.getTextSize(ctx,this.selected,this.hover)}if(node1.id!=node2.id){this.labelModule.pointToSelf=false;var point=this.edgeType.getPoint(.5,viaNode);ctx.save();var rotationPoint=this._getRotation(ctx);if(rotationPoint.angle!=0){ctx.translate(rotationPoint.x,rotationPoint.y);ctx.rotate(rotationPoint.angle)}this.labelModule.draw(ctx,point.x,point.y,this.selected,this.hover);ctx.restore()}else{this.labelModule.pointToSelf=true;var x,y;var radius=this.options.selfReferenceSize;if(node1.shape.width>node1.shape.height){x=node1.x+node1.shape.width*.5;y=node1.y-radius}else{x=node1.x+radius;y=node1.y-node1.shape.height*.5}point=this._pointOnCircle(x,y,radius,.125);this.labelModule.draw(ctx,point.x,point.y,this.selected,this.hover)}}}},{key:\"getItemsOnPoint\",value:function getItemsOnPoint(point){var ret=[];if(this.labelModule.visible()){var rotationPoint=this._getRotation();if(ComponentUtil.pointInRect(this.labelModule.getSize(),point,rotationPoint)){ret.push({edgeId:this.id,labelId:0})}}var obj={left:point.x,top:point.y};if(this.isOverlappingWith(obj)){ret.push({edgeId:this.id})}return ret}},{key:\"isOverlappingWith\",value:function isOverlappingWith(obj){if(this.connected){var distMax=10;var xFrom=this.from.x;var yFrom=this.from.y;var xTo=this.to.x;var yTo=this.to.y;var xObj=obj.left;var yObj=obj.top;var dist=this.edgeType.getDistanceToEdge(xFrom,yFrom,xTo,yTo,xObj,yObj);return dist<distMax}else{return false}}},{key:\"_getRotation\",value:function _getRotation(ctx){var viaNode=this.edgeType.getViaNode();var point=this.edgeType.getPoint(.5,viaNode);if(ctx!==undefined){this.labelModule.calculateLabelSize(ctx,this.selected,this.hover,point.x,point.y)}var ret={x:point.x,y:this.labelModule.size.yLine,angle:0};if(!this.labelModule.visible()){return ret}if(this.options.font.align===\"horizontal\"){return ret}var dy=this.from.y-this.to.y;var dx=this.from.x-this.to.x;var angle=Math.atan2(dy,dx);if(angle<-1&&dx<0||angle>0&&dx<0){angle+=Math.PI}ret.angle=angle;return ret}},{key:\"_pointOnCircle\",value:function _pointOnCircle(x,y,radius,percentage){var angle=percentage*2*Math.PI;return{x:x+radius*Math.cos(angle),y:y-radius*Math.sin(angle)}}},{key:\"select\",value:function select(){this.selected=true}},{key:\"unselect\",value:function unselect(){this.selected=false}},{key:\"cleanup\",value:function cleanup(){return this.edgeType.cleanup()}},{key:\"remove\",value:function remove(){this.cleanup();this.disconnect();delete this.body.edges[this.id]}},{key:\"endPointsValid\",value:function endPointsValid(){return this.body.nodes[this.fromId]!==undefined&&this.body.nodes[this.toId]!==undefined}}],[{key:\"parseOptions\",value:function parseOptions(parentOptions,newOptions){var allowDeletion=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var globalOptions=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};var copyFromGlobals=arguments.length>4&&arguments[4]!==undefined?arguments[4]:false;var fields=[\"arrowStrikethrough\",\"id\",\"from\",\"hidden\",\"hoverWidth\",\"labelHighlightBold\",\"length\",\"line\",\"opacity\",\"physics\",\"scaling\",\"selectionWidth\",\"selfReferenceSize\",\"to\",\"title\",\"value\",\"width\",\"font\",\"chosen\",\"widthConstraint\"];util.selectiveDeepExtend(fields,parentOptions,newOptions,allowDeletion);if(ComponentUtil.isValidLabel(newOptions.label)){parentOptions.label=newOptions.label}else{parentOptions.label=undefined}util.mergeOptions(parentOptions,newOptions,\"smooth\",globalOptions);util.mergeOptions(parentOptions,newOptions,\"shadow\",globalOptions);if(newOptions.dashes!==undefined&&newOptions.dashes!==null){parentOptions.dashes=newOptions.dashes}else if(allowDeletion===true&&newOptions.dashes===null){parentOptions.dashes=(0,_create2[\"default\"])(globalOptions.dashes)}if(newOptions.scaling!==undefined&&newOptions.scaling!==null){if(newOptions.scaling.min!==undefined){parentOptions.scaling.min=newOptions.scaling.min}if(newOptions.scaling.max!==undefined){parentOptions.scaling.max=newOptions.scaling.max}util.mergeOptions(parentOptions.scaling,newOptions.scaling,\"label\",globalOptions.scaling)}else if(allowDeletion===true&&newOptions.scaling===null){parentOptions.scaling=(0,_create2[\"default\"])(globalOptions.scaling)}if(newOptions.arrows!==undefined&&newOptions.arrows!==null){if(typeof newOptions.arrows===\"string\"){var arrows=newOptions.arrows.toLowerCase();parentOptions.arrows.to.enabled=arrows.indexOf(\"to\")!=-1;parentOptions.arrows.middle.enabled=arrows.indexOf(\"middle\")!=-1;parentOptions.arrows.from.enabled=arrows.indexOf(\"from\")!=-1}else if((0,_typeof3[\"default\"])(newOptions.arrows)===\"object\"){util.mergeOptions(parentOptions.arrows,newOptions.arrows,\"to\",globalOptions.arrows);util.mergeOptions(parentOptions.arrows,newOptions.arrows,\"middle\",globalOptions.arrows);util.mergeOptions(parentOptions.arrows,newOptions.arrows,\"from\",globalOptions.arrows)}else{throw new Error(\"The arrow newOptions can only be an object or a string. Refer to the documentation. You used:\"+(0,_stringify2[\"default\"])(newOptions.arrows))}}else if(allowDeletion===true&&newOptions.arrows===null){parentOptions.arrows=(0,_create2[\"default\"])(globalOptions.arrows)}if(newOptions.color!==undefined&&newOptions.color!==null){var fromColor=newOptions.color;var toColor=parentOptions.color;if(copyFromGlobals){util.deepExtend(toColor,globalOptions.color,false,allowDeletion)}else{for(var i in toColor){if(toColor.hasOwnProperty(i)){delete toColor[i]}}}if(util.isString(toColor)){toColor.color=toColor;toColor.highlight=toColor;toColor.hover=toColor;toColor.inherit=false;if(fromColor.opacity===undefined){toColor.opacity=1}}else{var colorsDefined=false;if(fromColor.color!==undefined){toColor.color=fromColor.color;colorsDefined=true}if(fromColor.highlight!==undefined){toColor.highlight=fromColor.highlight;colorsDefined=true}if(fromColor.hover!==undefined){toColor.hover=fromColor.hover;colorsDefined=true}if(fromColor.inherit!==undefined){toColor.inherit=fromColor.inherit}if(fromColor.opacity!==undefined){toColor.opacity=Math.min(1,Math.max(0,fromColor.opacity))}if(colorsDefined===true){toColor.inherit=false}else{if(toColor.inherit===undefined){toColor.inherit=\"from\"}}}}else if(allowDeletion===true&&newOptions.color===null){parentOptions.color=util.bridgeObject(globalOptions.color)}if(allowDeletion===true&&newOptions.font===null){parentOptions.font=util.bridgeObject(globalOptions.font)}}}]);return Edge}();exports[\"default\"]=Edge},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _EdgeBase2=__webpack_require__(118);var _EdgeBase3=_interopRequireDefault(_EdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var BezierEdgeBase=function(_EdgeBase){(0,_inherits3[\"default\"])(BezierEdgeBase,_EdgeBase);function BezierEdgeBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,BezierEdgeBase);return(0,_possibleConstructorReturn3[\"default\"])(this,(BezierEdgeBase.__proto__||(0,_getPrototypeOf2[\"default\"])(BezierEdgeBase)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(BezierEdgeBase,[{key:\"_findBorderPositionBezier\",value:function _findBorderPositionBezier(nearNode,ctx){var viaNode=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this._getViaCoordinates();var maxIterations=10;var iteration=0;var low=0;var high=1;var pos,angle,distanceToBorder,distanceToPoint,difference;var threshold=.2;var node=this.to;var from=false;if(nearNode.id===this.from.id){node=this.from;from=true}while(low<=high&&iteration<maxIterations){var middle=(low+high)*.5;pos=this.getPoint(middle,viaNode);angle=Math.atan2(node.y-pos.y,node.x-pos.x);distanceToBorder=node.distanceToBorder(ctx,angle);distanceToPoint=Math.sqrt(Math.pow(pos.x-node.x,2)+Math.pow(pos.y-node.y,2));difference=distanceToBorder-distanceToPoint;if(Math.abs(difference)<threshold){break}else if(difference<0){if(from===false){low=middle}else{high=middle}}else{if(from===false){high=middle}else{low=middle}}iteration++}pos.t=middle;return pos}},{key:\"_getDistanceToBezierEdge\",value:function _getDistanceToBezierEdge(x1,y1,x2,y2,x3,y3,via){var minDistance=1e9;var distance=void 0;var i=void 0,t=void 0,x=void 0,y=void 0;var lastX=x1;var lastY=y1;for(i=1;i<10;i++){t=.1*i;x=Math.pow(1-t,2)*x1+2*t*(1-t)*via.x+Math.pow(t,2)*x2;y=Math.pow(1-t,2)*y1+2*t*(1-t)*via.y+Math.pow(t,2)*y2;if(i>0){distance=this._getDistanceToLine(lastX,lastY,x,y,x3,y3);minDistance=distance<minDistance?distance:minDistance}lastX=x;lastY=y}return minDistance}},{key:\"_bezierCurve\",value:function _bezierCurve(ctx,values,viaNode1,viaNode2){var hasNode1=viaNode1!==undefined&&viaNode1.x!==undefined;var hasNode2=viaNode2!==undefined&&viaNode2.x!==undefined;ctx.beginPath();ctx.moveTo(this.fromPoint.x,this.fromPoint.y);if(hasNode1&&hasNode2){ctx.bezierCurveTo(viaNode1.x,viaNode1.y,viaNode2.x,viaNode2.y,this.toPoint.x,this.toPoint.y)}else if(hasNode1){ctx.quadraticCurveTo(viaNode1.x,viaNode1.y,this.toPoint.x,this.toPoint.y)}else{ctx.lineTo(this.toPoint.x,this.toPoint.y)}this.enableShadow(ctx,values);ctx.stroke();this.disableShadow(ctx,values)}},{key:\"getViaNode\",value:function getViaNode(){return this._getViaCoordinates()}}]);return BezierEdgeBase}(_EdgeBase3[\"default\"]);exports[\"default\"]=BezierEdgeBase},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var NetworkUtil=function(){function NetworkUtil(){(0,_classCallCheck3[\"default\"])(this,NetworkUtil)}(0,_createClass3[\"default\"])(NetworkUtil,null,[{key:\"getRange\",value:function getRange(allNodes){var specificNodes=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var minY=1e9,maxY=-1e9,minX=1e9,maxX=-1e9,node;if(specificNodes.length>0){for(var i=0;i<specificNodes.length;i++){node=allNodes[specificNodes[i]];if(minX>node.shape.boundingBox.left){minX=node.shape.boundingBox.left}if(maxX<node.shape.boundingBox.right){maxX=node.shape.boundingBox.right}if(minY>node.shape.boundingBox.top){minY=node.shape.boundingBox.top}if(maxY<node.shape.boundingBox.bottom){maxY=node.shape.boundingBox.bottom}}}if(minX===1e9&&maxX===-1e9&&minY===1e9&&maxY===-1e9){minY=0,maxY=0,minX=0,maxX=0}return{minX:minX,maxX:maxX,minY:minY,maxY:maxY}}},{key:\"getRangeCore\",value:function getRangeCore(allNodes){var specificNodes=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var minY=1e9,maxY=-1e9,minX=1e9,maxX=-1e9,node;if(specificNodes.length>0){for(var i=0;i<specificNodes.length;i++){node=allNodes[specificNodes[i]];if(minX>node.x){minX=node.x}if(maxX<node.x){maxX=node.x}if(minY>node.y){minY=node.y}if(maxY<node.y){maxY=node.y}}}if(minX===1e9&&maxX===-1e9&&minY===1e9&&maxY===-1e9){minY=0,maxY=0,minX=0,maxX=0}return{minX:minX,maxX:maxX,minY:minY,maxY:maxY}}},{key:\"findCenter\",value:function findCenter(range){return{x:.5*(range.maxX+range.minX),y:.5*(range.maxY+range.minY)}}},{key:\"cloneOptions\",value:function cloneOptions(item,type){var clonedOptions={};if(type===undefined||type===\"node\"){util.deepExtend(clonedOptions,item.options,true);clonedOptions.x=item.x;clonedOptions.y=item.y;clonedOptions.amountOfConnections=item.edges.length}else{util.deepExtend(clonedOptions,item.options,true)}return clonedOptions}}]);return NetworkUtil}();exports[\"default\"]=NetworkUtil},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(124),__esModule:true}},function(module,exports,__webpack_require__){var cof=__webpack_require__(50);module.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(it){return cof(it)==\"String\"?it.split(\"\"):Object(it)}},function(module,exports,__webpack_require__){\"use strict\";var LIBRARY=__webpack_require__(52);var $export=__webpack_require__(17);var redefine=__webpack_require__(83);var hide=__webpack_require__(26);var has=__webpack_require__(22);var Iterators=__webpack_require__(31);var $iterCreate=__webpack_require__(129);var setToStringTag=__webpack_require__(59);var getPrototypeOf=__webpack_require__(85);var ITERATOR=__webpack_require__(13)(\"iterator\");var BUGGY=!([].keys&&\"next\"in[].keys())\n;var FF_ITERATOR=\"@@iterator\";var KEYS=\"keys\";var VALUES=\"values\";var returnThis=function(){return this};module.exports=function(Base,NAME,Constructor,next,DEFAULT,IS_SET,FORCED){$iterCreate(Constructor,NAME,next);var getMethod=function(kind){if(!BUGGY&&kind in proto)return proto[kind];switch(kind){case KEYS:return function keys(){return new Constructor(this,kind)};case VALUES:return function values(){return new Constructor(this,kind)}}return function entries(){return new Constructor(this,kind)}};var TAG=NAME+\" Iterator\";var DEF_VALUES=DEFAULT==VALUES;var VALUES_BUG=false;var proto=Base.prototype;var $native=proto[ITERATOR]||proto[FF_ITERATOR]||DEFAULT&&proto[DEFAULT];var $default=$native||getMethod(DEFAULT);var $entries=DEFAULT?!DEF_VALUES?$default:getMethod(\"entries\"):undefined;var $anyNative=NAME==\"Array\"?proto.entries||$native:$native;var methods,key,IteratorPrototype;if($anyNative){IteratorPrototype=getPrototypeOf($anyNative.call(new Base));if(IteratorPrototype!==Object.prototype&&IteratorPrototype.next){setToStringTag(IteratorPrototype,TAG,true);if(!LIBRARY&&!has(IteratorPrototype,ITERATOR))hide(IteratorPrototype,ITERATOR,returnThis)}}if(DEF_VALUES&&$native&&$native.name!==VALUES){VALUES_BUG=true;$default=function values(){return $native.call(this)}}if((!LIBRARY||FORCED)&&(BUGGY||VALUES_BUG||!proto[ITERATOR])){hide(proto,ITERATOR,$default)}Iterators[NAME]=$default;Iterators[TAG]=returnThis;if(DEFAULT){methods={values:DEF_VALUES?$default:getMethod(VALUES),keys:IS_SET?$default:getMethod(KEYS),entries:$entries};if(FORCED)for(key in methods){if(!(key in proto))redefine(proto,key,methods[key])}else $export($export.P+$export.F*(BUGGY||VALUES_BUG),NAME,methods)}return methods}},function(module,exports,__webpack_require__){var aFunction=__webpack_require__(128);module.exports=function(fn,that,length){aFunction(fn);if(that===undefined)return fn;switch(length){case 1:return function(a){return fn.call(that,a)};case 2:return function(a,b){return fn.call(that,a,b)};case 3:return function(a,b,c){return fn.call(that,a,b,c)}}return function(){return fn.apply(that,arguments)}}},function(module,exports,__webpack_require__){module.exports=!__webpack_require__(21)&&!__webpack_require__(28)(function(){return Object.defineProperty(__webpack_require__(82)(\"div\"),\"a\",{get:function(){return 7}}).a!=7})},function(module,exports,__webpack_require__){var isObject=__webpack_require__(32);var document=__webpack_require__(18).document;var is=isObject(document)&&isObject(document.createElement);module.exports=function(it){return is?document.createElement(it):{}}},function(module,exports,__webpack_require__){module.exports=__webpack_require__(26)},function(module,exports,__webpack_require__){var has=__webpack_require__(22);var toIObject=__webpack_require__(25);var arrayIndexOf=__webpack_require__(131)(false);var IE_PROTO=__webpack_require__(56)(\"IE_PROTO\");module.exports=function(object,names){var O=toIObject(object);var i=0;var result=[];var key;for(key in O)if(key!=IE_PROTO)has(O,key)&&result.push(key);while(names.length>i)if(has(O,key=names[i++])){~arrayIndexOf(result,key)||result.push(key)}return result}},function(module,exports,__webpack_require__){var has=__webpack_require__(22);var toObject=__webpack_require__(41);var IE_PROTO=__webpack_require__(56)(\"IE_PROTO\");var ObjectProto=Object.prototype;module.exports=Object.getPrototypeOf||function(O){O=toObject(O);if(has(O,IE_PROTO))return O[IE_PROTO];if(typeof O.constructor==\"function\"&&O instanceof O.constructor){return O.constructor.prototype}return O instanceof Object?ObjectProto:null}},function(module,exports,__webpack_require__){var cof=__webpack_require__(50);var TAG=__webpack_require__(13)(\"toStringTag\");var ARG=cof(function(){return arguments}())==\"Arguments\";var tryGet=function(it,key){try{return it[key]}catch(e){}};module.exports=function(it){var O,T,B;return it===undefined?\"Undefined\":it===null?\"Null\":typeof(T=tryGet(O=Object(it),TAG))==\"string\"?T:ARG?cof(O):(B=cof(O))==\"Object\"&&typeof O.callee==\"function\"?\"Arguments\":B}},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);var core=__webpack_require__(7);var fails=__webpack_require__(28);module.exports=function(KEY,exec){var fn=(core.Object||{})[KEY]||Object[KEY];var exp={};exp[KEY]=exec(fn);$export($export.S+$export.F*fails(function(){fn(1)}),\"Object\",exp)}},function(module,exports,__webpack_require__){var $keys=__webpack_require__(84);var hiddenKeys=__webpack_require__(58).concat(\"length\",\"prototype\");exports.f=Object.getOwnPropertyNames||function getOwnPropertyNames(O){return $keys(O,hiddenKeys)}},function(module,exports,__webpack_require__){var pIE=__webpack_require__(42);var createDesc=__webpack_require__(39);var toIObject=__webpack_require__(25);var toPrimitive=__webpack_require__(53);var has=__webpack_require__(22);var IE8_DOM_DEFINE=__webpack_require__(81);var gOPD=Object.getOwnPropertyDescriptor;exports.f=__webpack_require__(21)?gOPD:function getOwnPropertyDescriptor(O,P){O=toIObject(O);P=toPrimitive(P,true);if(IE8_DOM_DEFINE)try{return gOPD(O,P)}catch(e){}if(has(O,P))return createDesc(!pIE.f.call(O,P),O[P])}},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(162),__esModule:true}},function(module,exports,__webpack_require__){\"use strict\";function Point2d(x,y){this.x=x!==undefined?x:0;this.y=y!==undefined?y:0}module.exports=Point2d},function(module,exports,__webpack_require__){\"use strict\";var util=__webpack_require__(2);function Slider(container,options){if(container===undefined){throw new Error(\"No container element defined\")}this.container=container;this.visible=options&&options.visible!=undefined?options.visible:true;if(this.visible){this.frame=document.createElement(\"DIV\");this.frame.style.width=\"100%\";this.frame.style.position=\"relative\";this.container.appendChild(this.frame);this.frame.prev=document.createElement(\"INPUT\");this.frame.prev.type=\"BUTTON\";this.frame.prev.value=\"Prev\";this.frame.appendChild(this.frame.prev);this.frame.play=document.createElement(\"INPUT\");this.frame.play.type=\"BUTTON\";this.frame.play.value=\"Play\";this.frame.appendChild(this.frame.play);this.frame.next=document.createElement(\"INPUT\");this.frame.next.type=\"BUTTON\";this.frame.next.value=\"Next\";this.frame.appendChild(this.frame.next);this.frame.bar=document.createElement(\"INPUT\");this.frame.bar.type=\"BUTTON\";this.frame.bar.style.position=\"absolute\";this.frame.bar.style.border=\"1px solid red\";this.frame.bar.style.width=\"100px\";this.frame.bar.style.height=\"6px\";this.frame.bar.style.borderRadius=\"2px\";this.frame.bar.style.MozBorderRadius=\"2px\";this.frame.bar.style.border=\"1px solid #7F7F7F\";this.frame.bar.style.backgroundColor=\"#E5E5E5\";this.frame.appendChild(this.frame.bar);this.frame.slide=document.createElement(\"INPUT\");this.frame.slide.type=\"BUTTON\";this.frame.slide.style.margin=\"0px\";this.frame.slide.value=\" \";this.frame.slide.style.position=\"relative\";this.frame.slide.style.left=\"-100px\";this.frame.appendChild(this.frame.slide);var me=this;this.frame.slide.onmousedown=function(event){me._onMouseDown(event)};this.frame.prev.onclick=function(event){me.prev(event)};this.frame.play.onclick=function(event){me.togglePlay(event)};this.frame.next.onclick=function(event){me.next(event)}}this.onChangeCallback=undefined;this.values=[];this.index=undefined;this.playTimeout=undefined;this.playInterval=1e3;this.playLoop=true}Slider.prototype.prev=function(){var index=this.getIndex();if(index>0){index--;this.setIndex(index)}};Slider.prototype.next=function(){var index=this.getIndex();if(index<this.values.length-1){index++;this.setIndex(index)}};Slider.prototype.playNext=function(){var start=new Date;var index=this.getIndex();if(index<this.values.length-1){index++;this.setIndex(index)}else if(this.playLoop){index=0;this.setIndex(index)}var end=new Date;var diff=end-start;var interval=Math.max(this.playInterval-diff,0);var me=this;this.playTimeout=setTimeout(function(){me.playNext()},interval)};Slider.prototype.togglePlay=function(){if(this.playTimeout===undefined){this.play()}else{this.stop()}};Slider.prototype.play=function(){if(this.playTimeout)return;this.playNext();if(this.frame){this.frame.play.value=\"Stop\"}};Slider.prototype.stop=function(){clearInterval(this.playTimeout);this.playTimeout=undefined;if(this.frame){this.frame.play.value=\"Play\"}};Slider.prototype.setOnChangeCallback=function(callback){this.onChangeCallback=callback};Slider.prototype.setPlayInterval=function(interval){this.playInterval=interval};Slider.prototype.getPlayInterval=function(){return this.playInterval};Slider.prototype.setPlayLoop=function(doLoop){this.playLoop=doLoop};Slider.prototype.onChange=function(){if(this.onChangeCallback!==undefined){this.onChangeCallback()}};Slider.prototype.redraw=function(){if(this.frame){this.frame.bar.style.top=this.frame.clientHeight/2-this.frame.bar.offsetHeight/2+\"px\";this.frame.bar.style.width=this.frame.clientWidth-this.frame.prev.clientWidth-this.frame.play.clientWidth-this.frame.next.clientWidth-30+\"px\";var left=this.indexToLeft(this.index);this.frame.slide.style.left=left+\"px\"}};Slider.prototype.setValues=function(values){this.values=values;if(this.values.length>0)this.setIndex(0);else this.index=undefined};Slider.prototype.setIndex=function(index){if(index<this.values.length){this.index=index;this.redraw();this.onChange()}else{throw new Error(\"Index out of range\")}};Slider.prototype.getIndex=function(){return this.index};Slider.prototype.get=function(){return this.values[this.index]};Slider.prototype._onMouseDown=function(event){var leftButtonDown=event.which?event.which===1:event.button===1;if(!leftButtonDown)return;this.startClientX=event.clientX;this.startSlideX=parseFloat(this.frame.slide.style.left);this.frame.style.cursor=\"move\";var me=this;this.onmousemove=function(event){me._onMouseMove(event)};this.onmouseup=function(event){me._onMouseUp(event)};util.addEventListener(document,\"mousemove\",this.onmousemove);util.addEventListener(document,\"mouseup\",this.onmouseup);util.preventDefault(event)};Slider.prototype.leftToIndex=function(left){var width=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10;var x=left-3;var index=Math.round(x/width*(this.values.length-1));if(index<0)index=0;if(index>this.values.length-1)index=this.values.length-1;return index};Slider.prototype.indexToLeft=function(index){var width=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10;var x=index/(this.values.length-1)*width;var left=x+3;return left};Slider.prototype._onMouseMove=function(event){var diff=event.clientX-this.startClientX;var x=this.startSlideX+diff;var index=this.leftToIndex(x);this.setIndex(index);util.preventDefault()};Slider.prototype._onMouseUp=function(event){this.frame.style.cursor=\"auto\";util.removeEventListener(document,\"mousemove\",this.onmousemove);util.removeEventListener(document,\"mouseup\",this.onmouseup);util.preventDefault()};module.exports=Slider},function(module,exports,__webpack_require__){\"use strict\";function StepNumber(start,end,step,prettyStep){this._start=0;this._end=0;this._step=1;this.prettyStep=true;this.precision=5;this._current=0;this.setRange(start,end,step,prettyStep)}StepNumber.prototype.isNumeric=function(n){return!isNaN(parseFloat(n))&&isFinite(n)};StepNumber.prototype.setRange=function(start,end,step,prettyStep){if(!this.isNumeric(start)){throw new Error(\"Parameter 'start' is not numeric; value: \"+start)}if(!this.isNumeric(end)){throw new Error(\"Parameter 'end' is not numeric; value: \"+start)}if(!this.isNumeric(step)){throw new Error(\"Parameter 'step' is not numeric; value: \"+start)}this._start=start?start:0;this._end=end?end:0;this.setStep(step,prettyStep)};StepNumber.prototype.setStep=function(step,prettyStep){if(step===undefined||step<=0)return;if(prettyStep!==undefined)this.prettyStep=prettyStep;if(this.prettyStep===true)this._step=StepNumber.calculatePrettyStep(step);else this._step=step};StepNumber.calculatePrettyStep=function(step){var log10=function log10(x){return Math.log(x)/Math.LN10};var step1=Math.pow(10,Math.round(log10(step))),step2=2*Math.pow(10,Math.round(log10(step/2))),step5=5*Math.pow(10,Math.round(log10(step/5)));var prettyStep=step1;if(Math.abs(step2-step)<=Math.abs(prettyStep-step))prettyStep=step2;if(Math.abs(step5-step)<=Math.abs(prettyStep-step))prettyStep=step5;if(prettyStep<=0){prettyStep=1}return prettyStep};StepNumber.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))};StepNumber.prototype.getStep=function(){return this._step};StepNumber.prototype.start=function(checkFirst){if(checkFirst===undefined){checkFirst=false}this._current=this._start-this._start%this._step;if(checkFirst){if(this.getCurrent()<this._start){this.next()}}};StepNumber.prototype.next=function(){this._current+=this._step};StepNumber.prototype.end=function(){return this._current>this._end};module.exports=StepNumber},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Camera=__webpack_require__(95);var Point3d=__webpack_require__(34);var STYLE={BAR:0,BARCOLOR:1,BARSIZE:2,DOT:3,DOTLINE:4,DOTCOLOR:5,DOTSIZE:6,GRID:7,LINE:8,SURFACE:9};var STYLENAME={dot:STYLE.DOT,\"dot-line\":STYLE.DOTLINE,\"dot-color\":STYLE.DOTCOLOR,\"dot-size\":STYLE.DOTSIZE,line:STYLE.LINE,grid:STYLE.GRID,surface:STYLE.SURFACE,bar:STYLE.BAR,\"bar-color\":STYLE.BARCOLOR,\"bar-size\":STYLE.BARSIZE};var OPTIONKEYS=[\"width\",\"height\",\"filterLabel\",\"legendLabel\",\"xLabel\",\"yLabel\",\"zLabel\",\"xValueLabel\",\"yValueLabel\",\"zValueLabel\",\"showXAxis\",\"showYAxis\",\"showZAxis\",\"showGrid\",\"showPerspective\",\"showShadow\",\"keepAspectRatio\",\"verticalRatio\",\"dotSizeRatio\",\"dotSizeMinFraction\",\"dotSizeMaxFraction\",\"showAnimationControls\",\"animationInterval\",\"animationPreload\",\"animationAutoStart\",\"axisColor\",\"gridColor\",\"xCenter\",\"yCenter\"];var PREFIXEDOPTIONKEYS=[\"xBarWidth\",\"yBarWidth\",\"valueMin\",\"valueMax\",\"xMin\",\"xMax\",\"xStep\",\"yMin\",\"yMax\",\"yStep\",\"zMin\",\"zMax\",\"zStep\"];var DEFAULTS=undefined;function isEmpty(obj){for(var prop in obj){if(obj.hasOwnProperty(prop))return false}return true}function capitalize(str){if(str===undefined||str===\"\"||typeof str!=\"string\"){return str}return str.charAt(0).toUpperCase()+str.slice(1)}function prefixFieldName(prefix,fieldName){if(prefix===undefined||prefix===\"\"){return fieldName}return prefix+capitalize(fieldName)}function forceCopy(src,dst,fields,prefix){var srcKey;var dstKey;for(var i=0;i<fields.length;++i){srcKey=fields[i];dstKey=prefixFieldName(prefix,srcKey);dst[dstKey]=src[srcKey]}}function safeCopy(src,dst,fields,prefix){var srcKey;var dstKey;for(var i=0;i<fields.length;++i){srcKey=fields[i];if(src[srcKey]===undefined)continue;dstKey=prefixFieldName(prefix,srcKey);dst[dstKey]=src[srcKey]}}function setDefaults(src,dst){if(src===undefined||isEmpty(src)){throw new Error(\"No DEFAULTS passed\")}if(dst===undefined){throw new Error(\"No dst passed\")}DEFAULTS=src;forceCopy(src,dst,OPTIONKEYS);forceCopy(src,dst,PREFIXEDOPTIONKEYS,\"default\");setSpecialSettings(src,dst);dst.margin=10;dst.showGrayBottom=false;dst.showTooltip=false;dst.onclick_callback=null;dst.eye=new Point3d(0,0,-1)}function setOptions(options,dst){if(options===undefined){return}if(dst===undefined){throw new Error(\"No dst passed\")}if(DEFAULTS===undefined||isEmpty(DEFAULTS)){throw new Error(\"DEFAULTS not set for module Settings\")}safeCopy(options,dst,OPTIONKEYS);safeCopy(options,dst,PREFIXEDOPTIONKEYS,\"default\");setSpecialSettings(options,dst)}function setSpecialSettings(src,dst){if(src.backgroundColor!==undefined){setBackgroundColor(src.backgroundColor,dst)}setDataColor(src.dataColor,dst);setStyle(src.style,dst);setShowLegend(src.showLegend,dst);setCameraPosition(src.cameraPosition,dst);if(src.tooltip!==undefined){dst.showTooltip=src.tooltip}if(src.onclick!=undefined){dst.onclick_callback=src.onclick}if(src.tooltipStyle!==undefined){util.selectiveDeepExtend([\"tooltipStyle\"],dst,src)}}function setShowLegend(showLegend,dst){if(showLegend===undefined){var isAutoByDefault=DEFAULTS.showLegend===undefined;if(isAutoByDefault){var isLegendGraphStyle=dst.style===STYLE.DOTCOLOR||dst.style===STYLE.DOTSIZE;dst.showLegend=isLegendGraphStyle}else{}}else{dst.showLegend=showLegend}}function getStyleNumberByName(styleName){var number=STYLENAME[styleName];if(number===undefined){return-1}return number}function checkStyleNumber(style){var valid=false;for(var n in STYLE){if(STYLE[n]===style){valid=true;break}}return valid}function setStyle(style,dst){if(style===undefined){return}var styleNumber;if(typeof style===\"string\"){styleNumber=getStyleNumberByName(style);if(styleNumber===-1){throw new Error(\"Style '\"+style+\"' is invalid\")}}else{if(!checkStyleNumber(style)){throw new Error(\"Style '\"+style+\"' is invalid\")}styleNumber=style}dst.style=styleNumber}function setBackgroundColor(backgroundColor,dst){var fill=\"white\";var stroke=\"gray\";var strokeWidth=1;if(typeof backgroundColor===\"string\"){fill=backgroundColor;stroke=\"none\";strokeWidth=0}else if((typeof backgroundColor===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(backgroundColor))===\"object\"){if(backgroundColor.fill!==undefined)fill=backgroundColor.fill;if(backgroundColor.stroke!==undefined)stroke=backgroundColor.stroke;if(backgroundColor.strokeWidth!==undefined)strokeWidth=backgroundColor.strokeWidth}else{throw new Error(\"Unsupported type of backgroundColor\")}dst.frame.style.backgroundColor=fill;dst.frame.style.borderColor=stroke;dst.frame.style.borderWidth=strokeWidth+\"px\";dst.frame.style.borderStyle=\"solid\"}function setDataColor(dataColor,dst){if(dataColor===undefined){return}if(dst.dataColor===undefined){dst.dataColor={}}if(typeof dataColor===\"string\"){dst.dataColor.fill=dataColor;dst.dataColor.stroke=dataColor}else{if(dataColor.fill){dst.dataColor.fill=dataColor.fill}if(dataColor.stroke){dst.dataColor.stroke=dataColor.stroke}if(dataColor.strokeWidth!==undefined){dst.dataColor.strokeWidth=dataColor.strokeWidth}}}function setCameraPosition(cameraPosition,dst){var camPos=cameraPosition;if(camPos===undefined){return}if(dst.camera===undefined){dst.camera=new Camera}dst.camera.setArmRotation(camPos.horizontal,camPos.vertical);dst.camera.setArmLength(camPos.distance)}module.exports.STYLE=STYLE;module.exports.setDefaults=setDefaults;module.exports.setOptions=setOptions;module.exports.setCameraPosition=setCameraPosition},function(module,exports,__webpack_require__){\"use strict\";var _sign=__webpack_require__(165);var _sign2=_interopRequireDefault(_sign);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Point3d=__webpack_require__(34);function Camera(){this.armLocation=new Point3d;this.armRotation={};this.armRotation.horizontal=0;this.armRotation.vertical=0;this.armLength=1.7;this.cameraOffset=new Point3d;this.offsetMultiplier=.6;this.cameraLocation=new Point3d;this.cameraRotation=new Point3d(.5*Math.PI,0,0);this.calculateCameraOrientation()}Camera.prototype.setOffset=function(x,y){var abs=Math.abs,sign=_sign2[\"default\"],mul=this.offsetMultiplier,border=this.armLength*mul;if(abs(x)>border){x=sign(x)*border}if(abs(y)>border){y=sign(y)*border}this.cameraOffset.x=x;this.cameraOffset.y=y;this.calculateCameraOrientation()};Camera.prototype.getOffset=function(){return this.cameraOffset};Camera.prototype.setArmLocation=function(x,y,z){this.armLocation.x=x;this.armLocation.y=y;this.armLocation.z=z;this.calculateCameraOrientation()};Camera.prototype.setArmRotation=function(horizontal,vertical){if(horizontal!==undefined){this.armRotation.horizontal=horizontal}if(vertical!==undefined){this.armRotation.vertical=vertical;if(this.armRotation.vertical<0)this.armRotation.vertical=0;if(this.armRotation.vertical>.5*Math.PI)this.armRotation.vertical=.5*Math.PI}if(horizontal!==undefined||vertical!==undefined){this.calculateCameraOrientation()}};Camera.prototype.getArmRotation=function(){var rot={};rot.horizontal=this.armRotation.horizontal;rot.vertical=this.armRotation.vertical;return rot};Camera.prototype.setArmLength=function(length){if(length===undefined)return;this.armLength=length;if(this.armLength<.71)this.armLength=.71;if(this.armLength>5)this.armLength=5;this.setOffset(this.cameraOffset.x,this.cameraOffset.y);this.calculateCameraOrientation()};Camera.prototype.getArmLength=function(){return this.armLength};Camera.prototype.getCameraLocation=function(){return this.cameraLocation};Camera.prototype.getCameraRotation=function(){return this.cameraRotation};Camera.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical);this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical);this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical);this.cameraRotation.x=Math.PI/2-this.armRotation.vertical;this.cameraRotation.y=0;this.cameraRotation.z=-this.armRotation.horizontal;var xa=this.cameraRotation.x;var za=this.cameraRotation.z;var dx=this.cameraOffset.x;var dy=this.cameraOffset.y;var sin=Math.sin,cos=Math.cos;this.cameraLocation.x=this.cameraLocation.x+dx*cos(za)+dy*-sin(za)*cos(xa);this.cameraLocation.y=this.cameraLocation.y+dx*sin(za)+dy*cos(za)*cos(xa);this.cameraLocation.z=this.cameraLocation.z+dy*sin(xa)};module.exports=Camera},function(module,exports,__webpack_require__){\"use strict\";var DataView=__webpack_require__(12);function Filter(dataGroup,column,graph){this.dataGroup=dataGroup;this.column=column;this.graph=graph;this.index=undefined;this.value=undefined;this.values=dataGroup.getDistinctValues(this.column);if(this.values.length>0){this.selectValue(0)}this.dataPoints=[];this.loaded=false;this.onLoadCallback=undefined;if(graph.animationPreload){this.loaded=false;this.loadInBackground()}else{this.loaded=true}}Filter.prototype.isLoaded=function(){return this.loaded};Filter.prototype.getLoadedProgress=function(){var len=this.values.length;var i=0;while(this.dataPoints[i]){i++}return Math.round(i/len*100)};Filter.prototype.getLabel=function(){return this.graph.filterLabel};Filter.prototype.getColumn=function(){return this.column};Filter.prototype.getSelectedValue=function(){if(this.index===undefined)return undefined;return this.values[this.index]};Filter.prototype.getValues=function(){return this.values};Filter.prototype.getValue=function(index){if(index>=this.values.length)throw new Error(\"Index out of range\");return this.values[index]};Filter.prototype._getDataPoints=function(index){if(index===undefined)index=this.index;if(index===undefined)return[];var dataPoints;if(this.dataPoints[index]){dataPoints=this.dataPoints[index]}else{var f={};f.column=this.column;f.value=this.values[index];var dataView=new DataView(this.dataGroup.getDataSet(),{filter:function filter(item){return item[f.column]==f.value}}).get();dataPoints=this.dataGroup._getDataPoints(dataView);this.dataPoints[index]=dataPoints}return dataPoints};Filter.prototype.setOnLoadCallback=function(callback){this.onLoadCallback=callback};Filter.prototype.selectValue=function(index){if(index>=this.values.length)throw new Error(\"Index out of range\");this.index=index;this.value=this.values[index]};Filter.prototype.loadInBackground=function(index){if(index===undefined)index=0;var frame=this.graph.frame;if(index<this.values.length){if(frame.progress===undefined){frame.progress=document.createElement(\"DIV\");frame.progress.style.position=\"absolute\";frame.progress.style.color=\"gray\";frame.appendChild(frame.progress)}var progress=this.getLoadedProgress();frame.progress.innerHTML=\"Loading animation... \"+progress+\"%\";frame.progress.style.bottom=60+\"px\";frame.progress.style.left=10+\"px\";var me=this;setTimeout(function(){me.loadInBackground(index+1)},10);this.loaded=false}else{this.loaded=true;if(frame.progress!==undefined){frame.removeChild(frame.progress);frame.progress=undefined}if(this.onLoadCallback)this.onLoadCallback()}};module.exports=Filter},function(module,exports,__webpack_require__){\"use strict\";var keycharm=__webpack_require__(35);var Emitter=__webpack_require__(44);var Hammer=__webpack_require__(10);var util=__webpack_require__(2);function Activator(container){this.active=false;this.dom={container:container};this.dom.overlay=document.createElement(\"div\");this.dom.overlay.className=\"vis-overlay\";this.dom.container.appendChild(this.dom.overlay);this.hammer=Hammer(this.dom.overlay);this.hammer.on(\"tap\",this._onTapOverlay.bind(this));var me=this;var events=[\"tap\",\"doubletap\",\"press\",\"pinch\",\"pan\",\"panstart\",\"panmove\",\"panend\"];events.forEach(function(event){me.hammer.on(event,function(event){event.stopPropagation()})});if(document&&document.body){this.onClick=function(event){if(!_hasParent(event.target,container)){me.deactivate()}};document.body.addEventListener(\"click\",this.onClick)}if(this.keycharm!==undefined){this.keycharm.destroy()}this.keycharm=keycharm();this.escListener=this.deactivate.bind(this)}Emitter(Activator.prototype);Activator.current=null;Activator.prototype.destroy=function(){this.deactivate();this.dom.overlay.parentNode.removeChild(this.dom.overlay);if(this.onClick){document.body.removeEventListener(\"click\",this.onClick)}this.hammer.destroy();this.hammer=null};Activator.prototype.activate=function(){if(Activator.current){Activator.current.deactivate()}Activator.current=this;this.active=true;this.dom.overlay.style.display=\"none\";util.addClassName(this.dom.container,\"vis-active\");this.emit(\"change\");this.emit(\"activate\");this.keycharm.bind(\"esc\",this.escListener)};Activator.prototype.deactivate=function(){this.active=false;this.dom.overlay.style.display=\"\";util.removeClassName(this.dom.container,\"vis-active\");this.keycharm.unbind(\"esc\",this.escListener);this.emit(\"change\");this.emit(\"deactivate\")};Activator.prototype._onTapOverlay=function(event){this.activate();event.stopPropagation()};function _hasParent(element,parent){while(element){if(element===parent){return true}element=element.parentNode}return false}module.exports=Activator},function(module,exports,__webpack_require__){\"use strict\";exports[\"en\"]={current:\"current\",time:\"time\"};exports[\"en_EN\"]=exports[\"en\"];exports[\"en_US\"]=exports[\"en\"];exports[\"it\"]={current:\"attuale\",time:\"tempo\"};exports[\"it_IT\"]=exports[\"it\"];exports[\"it_CH\"]=exports[\"it\"];exports[\"nl\"]={current:\"huidige\",time:\"tijd\"};exports[\"nl_NL\"]=exports[\"nl\"];exports[\"nl_BE\"]=exports[\"nl\"];exports[\"de\"]={current:\"Aktuelle\",time:\"Zeit\"};exports[\"de_DE\"]=exports[\"de\"];exports[\"fr\"]={current:\"actuel\",time:\"heure\"};exports[\"fr_FR\"]=exports[\"fr\"];exports[\"fr_CA\"]=exports[\"fr\"];exports[\"fr_BE\"]=exports[\"fr\"];exports[\"es\"]={current:\"corriente\",time:\"hora\"};exports[\"es_ES\"]=exports[\"es\"]},function(module,exports,__webpack_require__){\"use strict\";var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hammer=__webpack_require__(10);var util=__webpack_require__(2);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var TimeStep=__webpack_require__(66);var Component=__webpack_require__(16);var Group=__webpack_require__(68);var BackgroundGroup=__webpack_require__(69);var BoxItem=__webpack_require__(101);var PointItem=__webpack_require__(102);var RangeItem=__webpack_require__(70);var BackgroundItem=__webpack_require__(103);var Popup=__webpack_require__(104)[\"default\"];var UNGROUPED=\"__ungrouped__\";var BACKGROUND=\"__background__\";function ItemSet(body,options){this.body=body;this.defaultOptions={type:null,orientation:{item:\"bottom\"},align:\"auto\",stack:true,stackSubgroups:true,groupOrderSwap:function groupOrderSwap(fromGroup,toGroup,groups){var targetOrder=toGroup.order;toGroup.order=fromGroup.order;fromGroup.order=targetOrder},groupOrder:\"order\",selectable:true,multiselect:false,itemsAlwaysDraggable:{item:false,range:false},editable:{updateTime:false,updateGroup:false,add:false,remove:false,overrideItems:false},groupEditable:{order:false,add:false,remove:false},snap:TimeStep.snap,onDropObjectOnItem:function onDropObjectOnItem(objectData,item,callback){callback(item)},onAdd:function onAdd(item,callback){callback(item)},onUpdate:function onUpdate(item,callback){callback(item)},onMove:function onMove(item,callback){callback(item)},onRemove:function onRemove(item,callback){callback(item)},onMoving:function onMoving(item,callback){callback(item)},onAddGroup:function onAddGroup(item,callback){callback(item)},onMoveGroup:function onMoveGroup(item,callback){callback(item)},onRemoveGroup:function onRemoveGroup(item,callback){callback(item)},margin:{item:{horizontal:10,vertical:10},axis:20},showTooltips:true,tooltip:{followMouse:false,overflowMethod:\"flip\"},tooltipOnItemUpdateTime:false};this.options=util.extend({},this.defaultOptions);this.options.rtl=options.rtl;this.itemOptions={type:{start:\"Date\",end:\"Date\"}};this.conversion={toScreen:body.util.toScreen,toTime:body.util.toTime};this.dom={};this.props={};this.hammer=null;var me=this;this.itemsData=null;this.groupsData=null;this.itemListeners={add:function add(event,params,senderId){me._onAdd(params.items)},update:function update(event,params,senderId){me._onUpdate(params.items)},remove:function remove(event,params,senderId){me._onRemove(params.items)}};this.groupListeners={add:function add(event,params,senderId){me._onAddGroups(params.items);if(me.groupsData&&me.groupsData.length>0){var groupsData=me.groupsData.getDataSet();groupsData.get().forEach(function(groupData){if(groupData.nestedGroups){if(groupData.showNested!=false){groupData.showNested=true}var updatedGroups=[];groupData.nestedGroups.forEach(function(nestedGroupId){var updatedNestedGroup=groupsData.get(nestedGroupId);if(!updatedNestedGroup){return}updatedNestedGroup.nestedInGroup=groupData.id;if(groupData.showNested==false){updatedNestedGroup.visible=false}updatedGroups=updatedGroups.concat(updatedNestedGroup)});groupsData.update(updatedGroups,senderId)}})}},update:function update(event,params,senderId){me._onUpdateGroups(params.items)},remove:function remove(event,params,senderId){me._onRemoveGroups(params.items)}};this.items={};this.groups={};this.groupIds=[];this.selection=[];this.popup=null;this.touchParams={};this.groupTouchParams={};this._create();this.setOptions(options)}ItemSet.prototype=new Component;ItemSet.types={background:BackgroundItem,box:BoxItem,range:RangeItem,point:PointItem};ItemSet.prototype._create=function(){var frame=document.createElement(\"div\");frame.className=\"vis-itemset\";frame[\"timeline-itemset\"]=this;this.dom.frame=frame;var background=document.createElement(\"div\");background.className=\"vis-background\";frame.appendChild(background);this.dom.background=background;var foreground=document.createElement(\"div\");foreground.className=\"vis-foreground\";frame.appendChild(foreground);this.dom.foreground=foreground;var axis=document.createElement(\"div\");axis.className=\"vis-axis\";this.dom.axis=axis;var labelSet=document.createElement(\"div\");labelSet.className=\"vis-labelset\";this.dom.labelSet=labelSet;this._updateUngrouped();var backgroundGroup=new BackgroundGroup(BACKGROUND,null,this);backgroundGroup.show();this.groups[BACKGROUND]=backgroundGroup;this.hammer=new Hammer(this.body.dom.centerContainer);this.hammer.on(\"hammer.input\",function(event){if(event.isFirst){this._onTouch(event)}}.bind(this));this.hammer.on(\"panstart\",this._onDragStart.bind(this));this.hammer.on(\"panmove\",this._onDrag.bind(this));this.hammer.on(\"panend\",this._onDragEnd.bind(this));this.hammer.get(\"pan\").set({threshold:5,direction:Hammer.DIRECTION_HORIZONTAL});this.hammer.on(\"tap\",this._onSelectItem.bind(this));this.hammer.on(\"press\",this._onMultiSelectItem.bind(this));this.hammer.on(\"doubletap\",this._onAddItem.bind(this));if(this.options.rtl){\nthis.groupHammer=new Hammer(this.body.dom.rightContainer)}else{this.groupHammer=new Hammer(this.body.dom.leftContainer)}this.groupHammer.on(\"tap\",this._onGroupClick.bind(this));this.groupHammer.on(\"panstart\",this._onGroupDragStart.bind(this));this.groupHammer.on(\"panmove\",this._onGroupDrag.bind(this));this.groupHammer.on(\"panend\",this._onGroupDragEnd.bind(this));this.groupHammer.get(\"pan\").set({threshold:5,direction:Hammer.DIRECTION_VERTICAL});this.body.dom.centerContainer.addEventListener(\"mouseover\",this._onMouseOver.bind(this));this.body.dom.centerContainer.addEventListener(\"mouseout\",this._onMouseOut.bind(this));this.body.dom.centerContainer.addEventListener(\"mousemove\",this._onMouseMove.bind(this));this.body.dom.centerContainer.addEventListener(\"contextmenu\",this._onDragEnd.bind(this));this.body.dom.centerContainer.addEventListener(\"mousewheel\",this._onMouseWheel.bind(this));this.show()};ItemSet.prototype.setOptions=function(options){if(options){var fields=[\"type\",\"rtl\",\"align\",\"order\",\"stack\",\"stackSubgroups\",\"selectable\",\"multiselect\",\"multiselectPerGroup\",\"groupOrder\",\"dataAttributes\",\"template\",\"groupTemplate\",\"visibleFrameTemplate\",\"hide\",\"snap\",\"groupOrderSwap\",\"showTooltips\",\"tooltip\",\"tooltipOnItemUpdateTime\"];util.selectiveExtend(fields,this.options,options);if(\"itemsAlwaysDraggable\"in options){if(typeof options.itemsAlwaysDraggable===\"boolean\"){this.options.itemsAlwaysDraggable.item=options.itemsAlwaysDraggable;this.options.itemsAlwaysDraggable.range=false}else if((0,_typeof3[\"default\"])(options.itemsAlwaysDraggable)===\"object\"){util.selectiveExtend([\"item\",\"range\"],this.options.itemsAlwaysDraggable,options.itemsAlwaysDraggable);if(!this.options.itemsAlwaysDraggable.item){this.options.itemsAlwaysDraggable.range=false}}}if(\"orientation\"in options){if(typeof options.orientation===\"string\"){this.options.orientation.item=options.orientation===\"top\"?\"top\":\"bottom\"}else if((0,_typeof3[\"default\"])(options.orientation)===\"object\"&&\"item\"in options.orientation){this.options.orientation.item=options.orientation.item}}if(\"margin\"in options){if(typeof options.margin===\"number\"){this.options.margin.axis=options.margin;this.options.margin.item.horizontal=options.margin;this.options.margin.item.vertical=options.margin}else if((0,_typeof3[\"default\"])(options.margin)===\"object\"){util.selectiveExtend([\"axis\"],this.options.margin,options.margin);if(\"item\"in options.margin){if(typeof options.margin.item===\"number\"){this.options.margin.item.horizontal=options.margin.item;this.options.margin.item.vertical=options.margin.item}else if((0,_typeof3[\"default\"])(options.margin.item)===\"object\"){util.selectiveExtend([\"horizontal\",\"vertical\"],this.options.margin.item,options.margin.item)}}}}if(\"editable\"in options){if(typeof options.editable===\"boolean\"){this.options.editable.updateTime=options.editable;this.options.editable.updateGroup=options.editable;this.options.editable.add=options.editable;this.options.editable.remove=options.editable;this.options.editable.overrideItems=false}else if((0,_typeof3[\"default\"])(options.editable)===\"object\"){util.selectiveExtend([\"updateTime\",\"updateGroup\",\"add\",\"remove\",\"overrideItems\"],this.options.editable,options.editable)}}if(\"groupEditable\"in options){if(typeof options.groupEditable===\"boolean\"){this.options.groupEditable.order=options.groupEditable;this.options.groupEditable.add=options.groupEditable;this.options.groupEditable.remove=options.groupEditable}else if((0,_typeof3[\"default\"])(options.groupEditable)===\"object\"){util.selectiveExtend([\"order\",\"add\",\"remove\"],this.options.groupEditable,options.groupEditable)}}var addCallback=function(name){var fn=options[name];if(fn){if(!(fn instanceof Function)){throw new Error(\"option \"+name+\" must be a function \"+name+\"(item, callback)\")}this.options[name]=fn}}.bind(this);[\"onDropObjectOnItem\",\"onAdd\",\"onUpdate\",\"onRemove\",\"onMove\",\"onMoving\",\"onAddGroup\",\"onMoveGroup\",\"onRemoveGroup\"].forEach(addCallback);this.markDirty()}};ItemSet.prototype.markDirty=function(options){this.groupIds=[];if(options&&options.refreshItems){util.forEach(this.items,function(item){item.dirty=true;if(item.displayed)item.redraw()})}};ItemSet.prototype.destroy=function(){this.hide();this.setItems(null);this.setGroups(null);this.hammer=null;this.body=null;this.conversion=null};ItemSet.prototype.hide=function(){if(this.dom.frame.parentNode){this.dom.frame.parentNode.removeChild(this.dom.frame)}if(this.dom.axis.parentNode){this.dom.axis.parentNode.removeChild(this.dom.axis)}if(this.dom.labelSet.parentNode){this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)}};ItemSet.prototype.show=function(){if(!this.dom.frame.parentNode){this.body.dom.center.appendChild(this.dom.frame)}if(!this.dom.axis.parentNode){this.body.dom.backgroundVertical.appendChild(this.dom.axis)}if(!this.dom.labelSet.parentNode){if(this.options.rtl){this.body.dom.right.appendChild(this.dom.labelSet)}else{this.body.dom.left.appendChild(this.dom.labelSet)}}};ItemSet.prototype.setSelection=function(ids){var i,ii,id,item;if(ids==undefined)ids=[];if(!Array.isArray(ids))ids=[ids];for(i=0,ii=this.selection.length;i<ii;i++){id=this.selection[i];item=this.items[id];if(item)item.unselect()}this.selection=[];for(i=0,ii=ids.length;i<ii;i++){id=ids[i];item=this.items[id];if(item){this.selection.push(id);item.select()}}};ItemSet.prototype.getSelection=function(){return this.selection.concat([])};ItemSet.prototype.getVisibleItems=function(){var range=this.body.range.getRange();var right,left;if(this.options.rtl){right=this.body.util.toScreen(range.start);left=this.body.util.toScreen(range.end)}else{left=this.body.util.toScreen(range.start);right=this.body.util.toScreen(range.end)}var ids=[];for(var groupId in this.groups){if(this.groups.hasOwnProperty(groupId)){var group=this.groups[groupId];var rawVisibleItems=group.isVisible?group.visibleItems:[];for(var i=0;i<rawVisibleItems.length;i++){var item=rawVisibleItems[i];if(this.options.rtl){if(item.right<left&&item.right+item.width>right){ids.push(item.id)}}else{if(item.left<right&&item.left+item.width>left){ids.push(item.id)}}}}}return ids};ItemSet.prototype._deselect=function(id){var selection=this.selection;for(var i=0,ii=selection.length;i<ii;i++){if(selection[i]==id){selection.splice(i,1);break}}};ItemSet.prototype.redraw=function(){var margin=this.options.margin,range=this.body.range,asSize=util.option.asSize,options=this.options,orientation=options.orientation.item,resized=false,frame=this.dom.frame;this.props.top=this.body.domProps.top.height+this.body.domProps.border.top;if(this.options.rtl){this.props.right=this.body.domProps.right.width+this.body.domProps.border.right}else{this.props.left=this.body.domProps.left.width+this.body.domProps.border.left}frame.className=\"vis-itemset\";resized=this._orderGroups()||resized;var visibleInterval=range.end-range.start;var zoomed=visibleInterval!=this.lastVisibleInterval||this.props.width!=this.props.lastWidth;var scrolled=range.start!=this.lastRangeStart;var changedStackOption=options.stack!=this.lastStack;var changedStackSubgroupsOption=options.stackSubgroups!=this.lastStackSubgroups;var forceRestack=zoomed||scrolled||changedStackOption||changedStackSubgroupsOption;this.lastVisibleInterval=visibleInterval;this.lastRangeStart=range.start;this.lastStack=options.stack;this.lastStackSubgroups=options.stackSubgroups;this.props.lastWidth=this.props.width;var firstGroup=this._firstGroup();var firstMargin={item:margin.item,axis:margin.axis};var nonFirstMargin={item:margin.item,axis:margin.item.vertical/2};var height=0;var minHeight=margin.axis+margin.item.vertical;this.groups[BACKGROUND].redraw(range,nonFirstMargin,forceRestack);var redrawQueue={};var redrawQueueLength=0;util.forEach(this.groups,function(group,key){if(key===BACKGROUND)return;var groupMargin=group==firstGroup?firstMargin:nonFirstMargin;var returnQueue=true;redrawQueue[key]=group.redraw(range,groupMargin,forceRestack,returnQueue);redrawQueueLength=redrawQueue[key].length});var needRedraw=redrawQueueLength>0;if(needRedraw){var redrawResults={};for(var i=0;i<redrawQueueLength;i++){util.forEach(redrawQueue,function(fns,key){redrawResults[key]=fns[i]()})}util.forEach(this.groups,function(group,key){if(key===BACKGROUND)return;var groupResized=redrawResults[key];resized=groupResized||resized;height+=group.height});height=Math.max(height,minHeight)}height=Math.max(height,minHeight);frame.style.height=asSize(height);this.props.width=frame.offsetWidth;this.props.height=height;this.dom.axis.style.top=asSize(orientation==\"top\"?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height);if(this.options.rtl){this.dom.axis.style.right=\"0\"}else{this.dom.axis.style.left=\"0\"}this.initialItemSetDrawn=true;resized=this._isResized()||resized;return resized};ItemSet.prototype._firstGroup=function(){var firstGroupIndex=this.options.orientation.item==\"top\"?0:this.groupIds.length-1;var firstGroupId=this.groupIds[firstGroupIndex];var firstGroup=this.groups[firstGroupId]||this.groups[UNGROUPED];return firstGroup||null};ItemSet.prototype._updateUngrouped=function(){var ungrouped=this.groups[UNGROUPED];var item,itemId;if(this.groupsData){if(ungrouped){ungrouped.hide();delete this.groups[UNGROUPED];for(itemId in this.items){if(this.items.hasOwnProperty(itemId)){item=this.items[itemId];item.parent&&item.parent.remove(item);var groupId=this._getGroupId(item.data);var group=this.groups[groupId];group&&group.add(item)||item.hide()}}}}else{if(!ungrouped){var id=null;var data=null;ungrouped=new Group(id,data,this);this.groups[UNGROUPED]=ungrouped;for(itemId in this.items){if(this.items.hasOwnProperty(itemId)){item=this.items[itemId];ungrouped.add(item)}}ungrouped.show()}}};ItemSet.prototype.getLabelSet=function(){return this.dom.labelSet};ItemSet.prototype.setItems=function(items){var me=this,ids,oldItemsData=this.itemsData;if(!items){this.itemsData=null}else if(items instanceof DataSet||items instanceof DataView){this.itemsData=items}else{throw new TypeError(\"Data must be an instance of DataSet or DataView\")}if(oldItemsData){util.forEach(this.itemListeners,function(callback,event){oldItemsData.off(event,callback)});ids=oldItemsData.getIds();this._onRemove(ids)}if(this.itemsData){var id=this.id;util.forEach(this.itemListeners,function(callback,event){me.itemsData.on(event,callback,id)});ids=this.itemsData.getIds();this._onAdd(ids);this._updateUngrouped()}this.body.emitter.emit(\"_change\",{queue:true})};ItemSet.prototype.getItems=function(){return this.itemsData};ItemSet.prototype.setGroups=function(groups){var me=this,ids;if(this.groupsData){util.forEach(this.groupListeners,function(callback,event){me.groupsData.off(event,callback)});ids=this.groupsData.getIds();this.groupsData=null;this._onRemoveGroups(ids)}if(!groups){this.groupsData=null}else if(groups instanceof DataSet||groups instanceof DataView){this.groupsData=groups}else{throw new TypeError(\"Data must be an instance of DataSet or DataView\")}if(this.groupsData){var groupsData=this.groupsData;if(this.groupsData instanceof DataView){groupsData=this.groupsData.getDataSet()}groupsData.get().forEach(function(group){if(group.nestedGroups){group.nestedGroups.forEach(function(nestedGroupId){var updatedNestedGroup=groupsData.get(nestedGroupId);updatedNestedGroup.nestedInGroup=group.id;if(group.showNested==false){updatedNestedGroup.visible=false}groupsData.update(updatedNestedGroup)})}});var id=this.id;util.forEach(this.groupListeners,function(callback,event){me.groupsData.on(event,callback,id)});ids=this.groupsData.getIds();this._onAddGroups(ids)}this._updateUngrouped();this._order();this.body.emitter.emit(\"_change\",{queue:true})};ItemSet.prototype.getGroups=function(){return this.groupsData};ItemSet.prototype.removeItem=function(id){var item=this.itemsData.get(id),dataset=this.itemsData.getDataSet();if(item){this.options.onRemove(item,function(item){if(item){dataset.remove(id)}})}};ItemSet.prototype._getType=function(itemData){return itemData.type||this.options.type||(itemData.end?\"range\":\"box\")};ItemSet.prototype._getGroupId=function(itemData){var type=this._getType(itemData);if(type==\"background\"&&itemData.group==undefined){return BACKGROUND}else{return this.groupsData?itemData.group:UNGROUPED}};ItemSet.prototype._onUpdate=function(ids){var me=this;ids.forEach(function(id){var itemData=me.itemsData.get(id,me.itemOptions);var item=me.items[id];var type=itemData?me._getType(itemData):null;var constructor=ItemSet.types[type];var selected;if(item){if(!constructor||!(item instanceof constructor)){selected=item.selected;me._removeItem(item);item=null}else{me._updateItem(item,itemData)}}if(!item&&itemData){if(constructor){item=new constructor(itemData,me.conversion,me.options);item.id=id;me._addItem(item);if(selected){this.selection.push(id);item.select()}}else if(type==\"rangeoverflow\"){throw new TypeError('Item type \"rangeoverflow\" is deprecated. Use css styling instead: '+\".vis-item.vis-range .vis-item-content {overflow: visible;}\")}else{throw new TypeError('Unknown item type \"'+type+'\"')}}}.bind(this));this._order();this.body.emitter.emit(\"_change\",{queue:true})};ItemSet.prototype._onAdd=ItemSet.prototype._onUpdate;ItemSet.prototype._onRemove=function(ids){var count=0;var me=this;ids.forEach(function(id){var item=me.items[id];if(item){count++;me._removeItem(item)}});if(count){this._order();this.body.emitter.emit(\"_change\",{queue:true})}};ItemSet.prototype._order=function(){util.forEach(this.groups,function(group){group.order()})};ItemSet.prototype._onUpdateGroups=function(ids){this._onAddGroups(ids)};ItemSet.prototype._onAddGroups=function(ids){var me=this;ids.forEach(function(id){var groupData=me.groupsData.get(id);var group=me.groups[id];if(!group){if(id==UNGROUPED||id==BACKGROUND){throw new Error(\"Illegal group id. \"+id+\" is a reserved id.\")}var groupOptions=(0,_create2[\"default\"])(me.options);util.extend(groupOptions,{height:null});group=new Group(id,groupData,me);me.groups[id]=group;for(var itemId in me.items){if(me.items.hasOwnProperty(itemId)){var item=me.items[itemId];if(item.data.group==id){group.add(item)}}}group.order();group.show()}else{group.setData(groupData)}});this.body.emitter.emit(\"_change\",{queue:true})};ItemSet.prototype._onRemoveGroups=function(ids){var groups=this.groups;ids.forEach(function(id){var group=groups[id];if(group){group.hide();delete groups[id]}});this.markDirty();this.body.emitter.emit(\"_change\",{queue:true})};ItemSet.prototype._orderGroups=function(){if(this.groupsData){var groupIds=this.groupsData.getIds({order:this.options.groupOrder});groupIds=this._orderNestedGroups(groupIds);var changed=!util.equalArray(groupIds,this.groupIds);if(changed){var groups=this.groups;groupIds.forEach(function(groupId){groups[groupId].hide()});groupIds.forEach(function(groupId){groups[groupId].show()});this.groupIds=groupIds}return changed}else{return false}};ItemSet.prototype._orderNestedGroups=function(groupIds){var newGroupIdsOrder=[];groupIds.forEach(function(groupId){var groupData=this.groupsData.get(groupId);if(!groupData.nestedInGroup){newGroupIdsOrder.push(groupId)}if(groupData.nestedGroups){var nestedGroups=this.groupsData.get({filter:function filter(nestedGroup){return nestedGroup.nestedInGroup==groupId},order:this.options.groupOrder});var nestedGroupIds=nestedGroups.map(function(nestedGroup){return nestedGroup.id});newGroupIdsOrder=newGroupIdsOrder.concat(nestedGroupIds)}},this);return newGroupIdsOrder};ItemSet.prototype._addItem=function(item){this.items[item.id]=item;var groupId=this._getGroupId(item.data);var group=this.groups[groupId];if(!group){item.groupShowing=false}else if(group&&group.data&&group.data.showNested){item.groupShowing=true}if(group)group.add(item)};ItemSet.prototype._updateItem=function(item,itemData){item.setData(itemData);var groupId=this._getGroupId(item.data);var group=this.groups[groupId];if(!group){item.groupShowing=false}else if(group&&group.data&&group.data.showNested){item.groupShowing=true}};ItemSet.prototype._removeItem=function(item){item.hide();delete this.items[item.id];var index=this.selection.indexOf(item.id);if(index!=-1)this.selection.splice(index,1);item.parent&&item.parent.remove(item)};ItemSet.prototype._constructByEndArray=function(array){var endArray=[];for(var i=0;i<array.length;i++){if(array[i]instanceof RangeItem){endArray.push(array[i])}}return endArray};ItemSet.prototype._onTouch=function(event){this.touchParams.item=this.itemFromTarget(event);this.touchParams.dragLeftItem=event.target.dragLeftItem||false;this.touchParams.dragRightItem=event.target.dragRightItem||false;this.touchParams.itemProps=null};ItemSet.prototype._getGroupIndex=function(groupId){for(var i=0;i<this.groupIds.length;i++){if(groupId==this.groupIds[i])return i}};ItemSet.prototype._onDragStart=function(event){if(this.touchParams.itemIsDragging){return}var item=this.touchParams.item||null;var me=this;var props;if(item&&(item.selected||this.options.itemsAlwaysDraggable.item)){if(this.options.editable.overrideItems&&!this.options.editable.updateTime&&!this.options.editable.updateGroup){return}if(item.editable!=null&&!item.editable.updateTime&&!item.editable.updateGroup&&!this.options.editable.overrideItems){return}var dragLeftItem=this.touchParams.dragLeftItem;var dragRightItem=this.touchParams.dragRightItem;this.touchParams.itemIsDragging=true;this.touchParams.selectedItem=item;if(dragLeftItem){props={item:dragLeftItem,initialX:event.center.x,dragLeft:true,data:this._cloneItemData(item.data)};this.touchParams.itemProps=[props]}else if(dragRightItem){props={item:dragRightItem,initialX:event.center.x,dragRight:true,data:this._cloneItemData(item.data)};this.touchParams.itemProps=[props]}else if(this.options.editable.add&&(event.srcEvent.ctrlKey||event.srcEvent.metaKey)){this._onDragStartAddItem(event)}else{if(this.groupIds.length<1){this.redraw()}var baseGroupIndex=this._getGroupIndex(item.data.group);var itemsToDrag=this.options.itemsAlwaysDraggable.item&&!item.selected?[item.id]:this.getSelection();this.touchParams.itemProps=itemsToDrag.map(function(id){var item=me.items[id];var groupIndex=me._getGroupIndex(item.data.group);return{item:item,initialX:event.center.x,groupOffset:baseGroupIndex-groupIndex,data:this._cloneItemData(item.data)}}.bind(this))}event.stopPropagation()}else if(this.options.editable.add&&(event.srcEvent.ctrlKey||event.srcEvent.metaKey)){this._onDragStartAddItem(event)}};ItemSet.prototype._onDragStartAddItem=function(event){var xAbs;var x;var snap=this.options.snap||null;if(this.options.rtl){xAbs=util.getAbsoluteRight(this.dom.frame);x=xAbs-event.center.x+10}else{xAbs=util.getAbsoluteLeft(this.dom.frame);x=event.center.x-xAbs-10}var time=this.body.util.toTime(x);var scale=this.body.util.getScale();var step=this.body.util.getStep();var start=snap?snap(time,scale,step):time;var end=start;var itemData={type:\"range\",start:start,end:end,content:\"new item\"};var id=util.randomUUID();itemData[this.itemsData._fieldId]=id;var group=this.groupFromTarget(event);if(group){itemData.group=group.groupId}var newItem=new RangeItem(itemData,this.conversion,this.options);newItem.id=id;newItem.data=this._cloneItemData(itemData);this._addItem(newItem);this.touchParams.selectedItem=newItem;var props={item:newItem,initialX:event.center.x,data:newItem.data};if(this.options.rtl){props.dragLeft=true}else{props.dragRight=true}this.touchParams.itemProps=[props];event.stopPropagation()};ItemSet.prototype._onDrag=function(event){if(this.touchParams.itemProps){event.stopPropagation();var me=this;var snap=this.options.snap||null;var xOffset;if(this.options.rtl){xOffset=this.body.dom.root.offsetLeft+this.body.domProps.right.width}else{xOffset=this.body.dom.root.offsetLeft+this.body.domProps.left.width}var scale=this.body.util.getScale();var step=this.body.util.getStep();var selectedItem=this.touchParams.selectedItem;var updateGroupAllowed=(this.options.editable.overrideItems||selectedItem.editable==null)&&this.options.editable.updateGroup||!this.options.editable.overrideItems&&selectedItem.editable!=null&&selectedItem.editable.updateGroup;var newGroupBase=null;if(updateGroupAllowed&&selectedItem){if(selectedItem.data.group!=undefined){var group=me.groupFromTarget(event);if(group){newGroupBase=this._getGroupIndex(group.groupId)}}}this.touchParams.itemProps.forEach(function(props){var current=me.body.util.toTime(event.center.x-xOffset);var initial=me.body.util.toTime(props.initialX-xOffset);var offset;var initialStart;var initialEnd;var start;var end;if(this.options.rtl){offset=-(current-initial)}else{offset=current-initial}var itemData=this._cloneItemData(props.item.data);if(props.item.editable!=null&&!props.item.editable.updateTime&&!props.item.editable.updateGroup&&!me.options.editable.overrideItems){return}var updateTimeAllowed=(this.options.editable.overrideItems||selectedItem.editable==null)&&this.options.editable.updateTime||!this.options.editable.overrideItems&&selectedItem.editable!=null&&selectedItem.editable.updateTime;if(updateTimeAllowed){if(props.dragLeft){if(this.options.rtl){if(itemData.end!=undefined){initialEnd=util.convert(props.data.end,\"Date\");end=new Date(initialEnd.valueOf()+offset);itemData.end=snap?snap(end,scale,step):end}}else{if(itemData.start!=undefined){initialStart=util.convert(props.data.start,\"Date\");start=new Date(initialStart.valueOf()+offset);itemData.start=snap?snap(start,scale,step):start}}}else if(props.dragRight){if(this.options.rtl){if(itemData.start!=undefined){initialStart=util.convert(props.data.start,\"Date\");start=new Date(initialStart.valueOf()+offset);itemData.start=snap?snap(start,scale,step):start}}else{if(itemData.end!=undefined){initialEnd=util.convert(props.data.end,\"Date\");end=new Date(initialEnd.valueOf()+offset);itemData.end=snap?snap(end,scale,step):end}}}else{if(itemData.start!=undefined){initialStart=util.convert(props.data.start,\"Date\").valueOf();start=new Date(initialStart+offset);if(itemData.end!=undefined){initialEnd=util.convert(props.data.end,\"Date\");var duration=initialEnd.valueOf()-initialStart.valueOf();itemData.start=snap?snap(start,scale,step):start;itemData.end=new Date(itemData.start.valueOf()+duration)}else{itemData.start=snap?snap(start,scale,step):start}}}}if(updateGroupAllowed&&!props.dragLeft&&!props.dragRight&&newGroupBase!=null){if(itemData.group!=undefined){var newOffset=newGroupBase-props.groupOffset;newOffset=Math.max(0,newOffset);newOffset=Math.min(me.groupIds.length-1,newOffset);itemData.group=me.groupIds[newOffset]}}itemData=this._cloneItemData(itemData);me.options.onMoving(itemData,function(itemData){if(itemData){props.item.setData(this._cloneItemData(itemData,\"Date\"))}}.bind(this))}.bind(this));this.body.emitter.emit(\"_change\")}};ItemSet.prototype._moveToGroup=function(item,groupId){var group=this.groups[groupId];if(group&&group.groupId!=item.data.group){var oldGroup=item.parent;oldGroup.remove(item);oldGroup.order();item.data.group=group.groupId;group.add(item);group.order()}};ItemSet.prototype._onDragEnd=function(event){this.touchParams.itemIsDragging=false;if(this.touchParams.itemProps){event.stopPropagation();var me=this;var dataset=this.itemsData.getDataSet();var itemProps=this.touchParams.itemProps;this.touchParams.itemProps=null;itemProps.forEach(function(props){var id=props.item.id;var exists=me.itemsData.get(id,me.itemOptions)!=null;if(!exists){me.options.onAdd(props.item.data,function(itemData){me._removeItem(props.item);if(itemData){me.itemsData.getDataSet().add(itemData)}me.body.emitter.emit(\"_change\")})}else{var itemData=this._cloneItemData(props.item.data);me.options.onMove(itemData,function(itemData){if(itemData){itemData[dataset._fieldId]=id;dataset.update(itemData)}else{props.item.setData(props.data);me.body.emitter.emit(\"_change\")}})}}.bind(this))}};ItemSet.prototype._onGroupClick=function(event){var group=this.groupFromTarget(event);if(!group||!group.nestedGroups)return;var groupsData=this.groupsData.getDataSet();var nestingGroup=groupsData.get(group.groupId);if(nestingGroup.showNested==undefined){nestingGroup.showNested=true}nestingGroup.showNested=!nestingGroup.showNested;var nestedGroups=groupsData.get(group.nestedGroups).map(function(nestedGroup){nestedGroup.visible=nestingGroup.showNested;return nestedGroup});groupsData.update(nestedGroups.concat(nestingGroup));if(nestingGroup.showNested){util.removeClassName(group.dom.label,\"collapsed\");util.addClassName(group.dom.label,\"expanded\")}else{util.removeClassName(group.dom.label,\"expanded\");var collapsedDirClassName=this.options.rtl?\"collapsed-rtl\":\"collapsed\";util.addClassName(group.dom.label,collapsedDirClassName)}};ItemSet.prototype._onGroupDragStart=function(event){if(this.options.groupEditable.order){this.groupTouchParams.group=this.groupFromTarget(event);if(this.groupTouchParams.group){event.stopPropagation();this.groupTouchParams.originalOrder=this.groupsData.getIds({order:this.options.groupOrder})}}};ItemSet.prototype._onGroupDrag=function(event){if(this.options.groupEditable.order&&this.groupTouchParams.group){event.stopPropagation();var groupsData=this.groupsData;if(this.groupsData instanceof DataView){groupsData=this.groupsData.getDataSet()}var group=this.groupFromTarget(event);if(group&&group.height!=this.groupTouchParams.group.height){var movingUp=group.top<this.groupTouchParams.group.top;var clientY=event.center?event.center.y:event.clientY;var targetGroupTop=util.getAbsoluteTop(group.dom.foreground);var draggedGroupHeight=this.groupTouchParams.group.height;if(movingUp){if(targetGroupTop+draggedGroupHeight<clientY){return}}else{var targetGroupHeight=group.height;if(targetGroupTop+targetGroupHeight-draggedGroupHeight>clientY){return}}}if(group&&group!=this.groupTouchParams.group){var targetGroup=groupsData.get(group.groupId);var draggedGroup=groupsData.get(this.groupTouchParams.group.groupId);if(draggedGroup&&targetGroup){this.options.groupOrderSwap(draggedGroup,targetGroup,groupsData);groupsData.update(draggedGroup);groupsData.update(targetGroup)}var newOrder=groupsData.getIds({order:this.options.groupOrder});if(!util.equalArray(newOrder,this.groupTouchParams.originalOrder)){var origOrder=this.groupTouchParams.originalOrder;var draggedId=this.groupTouchParams.group.groupId;var numGroups=Math.min(origOrder.length,newOrder.length);var curPos=0;var newOffset=0;var orgOffset=0;while(curPos<numGroups){while(curPos+newOffset<numGroups&&curPos+orgOffset<numGroups&&newOrder[curPos+newOffset]==origOrder[curPos+orgOffset]){curPos++}if(curPos+newOffset>=numGroups){break}if(newOrder[curPos+newOffset]==draggedId){newOffset=1}else if(origOrder[curPos+orgOffset]==draggedId){orgOffset=1}else{var slippedPosition=newOrder.indexOf(origOrder[curPos+orgOffset]);var switchGroup=groupsData.get(newOrder[curPos+newOffset]);var shouldBeGroup=groupsData.get(origOrder[curPos+orgOffset]);this.options.groupOrderSwap(switchGroup,shouldBeGroup,groupsData);groupsData.update(switchGroup);groupsData.update(shouldBeGroup);var switchGroupId=newOrder[curPos+newOffset];newOrder[curPos+newOffset]=origOrder[curPos+orgOffset];newOrder[slippedPosition]=switchGroupId;curPos++}}}}}};ItemSet.prototype._onGroupDragEnd=function(event){if(this.options.groupEditable.order&&this.groupTouchParams.group){event.stopPropagation();var me=this;var id=me.groupTouchParams.group.groupId;var dataset=me.groupsData.getDataSet();var groupData=util.extend({},dataset.get(id));me.options.onMoveGroup(groupData,function(groupData){if(groupData){groupData[dataset._fieldId]=id;dataset.update(groupData)}else{var newOrder=dataset.getIds({order:me.options.groupOrder});if(!util.equalArray(newOrder,me.groupTouchParams.originalOrder)){var origOrder=me.groupTouchParams.originalOrder;var numGroups=Math.min(origOrder.length,newOrder.length);var curPos=0;while(curPos<numGroups){while(curPos<numGroups&&newOrder[curPos]==origOrder[curPos]){curPos++}if(curPos>=numGroups){break}var slippedPosition=newOrder.indexOf(origOrder[curPos]);var switchGroup=dataset.get(newOrder[curPos]);var shouldBeGroup=dataset.get(origOrder[curPos]);me.options.groupOrderSwap(switchGroup,shouldBeGroup,dataset);dataset.update(switchGroup);dataset.update(shouldBeGroup);var switchGroupId=newOrder[curPos];newOrder[curPos]=origOrder[curPos];newOrder[slippedPosition]=switchGroupId;curPos++}}}});me.body.emitter.emit(\"groupDragged\",{groupId:id})}};ItemSet.prototype._onSelectItem=function(event){if(!this.options.selectable)return;var ctrlKey=event.srcEvent&&(event.srcEvent.ctrlKey||event.srcEvent.metaKey);var shiftKey=event.srcEvent&&event.srcEvent.shiftKey;if(ctrlKey||shiftKey){this._onMultiSelectItem(event);return}var oldSelection=this.getSelection();var item=this.itemFromTarget(event);var selection=item?[item.id]:[];this.setSelection(selection);var newSelection=this.getSelection();if(newSelection.length>0||oldSelection.length>0){this.body.emitter.emit(\"select\",{items:newSelection,event:event})}};ItemSet.prototype._onMouseOver=function(event){var item=this.itemFromTarget(event);if(!item)return;var related=this.itemFromRelatedTarget(event);if(item===related){return}var title=item.getTitle();if(this.options.showTooltips&&title){if(this.popup==null){this.popup=new Popup(this.body.dom.root,this.options.tooltip.overflowMethod||\"flip\")}this.popup.setText(title);var container=this.body.dom.centerContainer;this.popup.setPosition(event.clientX-util.getAbsoluteLeft(container)+container.offsetLeft,event.clientY-util.getAbsoluteTop(container)+container.offsetTop);this.popup.show()}else{if(this.popup!=null){this.popup.hide()}}this.body.emitter.emit(\"itemover\",{item:item.id,event:event})};ItemSet.prototype._onMouseOut=function(event){var item=this.itemFromTarget(event);if(!item)return;var related=this.itemFromRelatedTarget(event);if(item===related){return}if(this.popup!=null){this.popup.hide()}this.body.emitter.emit(\"itemout\",{item:item.id,event:event})};ItemSet.prototype._onMouseMove=function(event){var item=this.itemFromTarget(event);if(!item)return;if(this.options.showTooltips&&this.options.tooltip.followMouse){if(this.popup){if(!this.popup.hidden){var container=this.body.dom.centerContainer;this.popup.setPosition(event.clientX-util.getAbsoluteLeft(container)+container.offsetLeft,event.clientY-util.getAbsoluteTop(container)+container.offsetTop);this.popup.show()}}}};ItemSet.prototype._onMouseWheel=function(event){if(this.touchParams.itemIsDragging){this._onDragEnd(event)}};ItemSet.prototype._onUpdateItem=function(item){if(!this.options.selectable)return;if(!this.options.editable.add)return;var me=this;if(item){var itemData=me.itemsData.get(item.id);this.options.onUpdate(itemData,function(itemData){if(itemData){me.itemsData.getDataSet().update(itemData)}})}};ItemSet.prototype._onDropObjectOnItem=function(event){var item=this.itemFromTarget(event);var objectData=JSON.parse(event.dataTransfer.getData(\"text\"));this.options.onDropObjectOnItem(objectData,item)};ItemSet.prototype._onAddItem=function(event){if(!this.options.selectable)return;if(!this.options.editable.add)return;var me=this;var snap=this.options.snap||null;var xAbs;var x;if(this.options.rtl){xAbs=util.getAbsoluteRight(this.dom.frame);x=xAbs-event.center.x}else{xAbs=util.getAbsoluteLeft(this.dom.frame);x=event.center.x-xAbs}var start=this.body.util.toTime(x);var scale=this.body.util.getScale();var step=this.body.util.getStep();var end;var newItemData;if(event.type==\"drop\"){newItemData=JSON.parse(event.dataTransfer.getData(\"text\"));newItemData.content=newItemData.content?newItemData.content:\"new item\";newItemData.start=newItemData.start?newItemData.start:snap?snap(start,scale,step):start;newItemData.type=newItemData.type||\"box\";newItemData[this.itemsData._fieldId]=newItemData.id||util.randomUUID();if(newItemData.type==\"range\"&&!newItemData.end){end=this.body.util.toTime(x+this.props.width/5);newItemData.end=snap?snap(end,scale,step):end}}else{newItemData={start:snap?snap(start,scale,step):start,content:\"new item\"};newItemData[this.itemsData._fieldId]=util.randomUUID();if(this.options.type===\"range\"){\nend=this.body.util.toTime(x+this.props.width/5);newItemData.end=snap?snap(end,scale,step):end}}var group=this.groupFromTarget(event);if(group){newItemData.group=group.groupId}newItemData=this._cloneItemData(newItemData);this.options.onAdd(newItemData,function(item){if(item){me.itemsData.getDataSet().add(item);if(event.type==\"drop\"){me.setSelection([item.id])}}})};ItemSet.prototype._onMultiSelectItem=function(event){if(!this.options.selectable)return;var item=this.itemFromTarget(event);if(item){var selection=this.options.multiselect?this.getSelection():[];var shiftKey=event.srcEvent&&event.srcEvent.shiftKey||false;if(shiftKey&&this.options.multiselect){var itemGroup=this.itemsData.get(item.id).group;var lastSelectedGroup=undefined;if(this.options.multiselectPerGroup){if(selection.length>0){lastSelectedGroup=this.itemsData.get(selection[0]).group}}if(!this.options.multiselectPerGroup||lastSelectedGroup==undefined||lastSelectedGroup==itemGroup){selection.push(item.id)}var range=ItemSet._getItemRange(this.itemsData.get(selection,this.itemOptions));if(!this.options.multiselectPerGroup||lastSelectedGroup==itemGroup){selection=[];for(var id in this.items){if(this.items.hasOwnProperty(id)){var _item=this.items[id];var start=_item.data.start;var end=_item.data.end!==undefined?_item.data.end:start;if(start>=range.min&&end<=range.max&&(!this.options.multiselectPerGroup||lastSelectedGroup==this.itemsData.get(_item.id).group)&&!(_item instanceof BackgroundItem)){selection.push(_item.id)}}}}}else{var index=selection.indexOf(item.id);if(index==-1){selection.push(item.id)}else{selection.splice(index,1)}}this.setSelection(selection);this.body.emitter.emit(\"select\",{items:this.getSelection(),event:event})}};ItemSet._getItemRange=function(itemsData){var max=null;var min=null;itemsData.forEach(function(data){if(min==null||data.start<min){min=data.start}if(data.end!=undefined){if(max==null||data.end>max){max=data.end}}else{if(max==null||data.start>max){max=data.start}}});return{min:min,max:max}};ItemSet.prototype.itemFromElement=function(element){var cur=element;while(cur){if(cur.hasOwnProperty(\"timeline-item\")){return cur[\"timeline-item\"]}cur=cur.parentNode}return null};ItemSet.prototype.itemFromTarget=function(event){return this.itemFromElement(event.target)};ItemSet.prototype.itemFromRelatedTarget=function(event){return this.itemFromElement(event.relatedTarget)};ItemSet.prototype.groupFromTarget=function(event){var clientY=event.center?event.center.y:event.clientY;var groupIds=this.groupIds;if(groupIds.length<=0&&this.groupsData){groupIds=this.groupsData.getIds({order:this.options.groupOrder})}for(var i=0;i<groupIds.length;i++){var groupId=groupIds[i];var group=this.groups[groupId];var foreground=group.dom.foreground;var top=util.getAbsoluteTop(foreground);if(clientY>top&&clientY<top+foreground.offsetHeight){return group}if(this.options.orientation.item===\"top\"){if(i===this.groupIds.length-1&&clientY>top){return group}}else{if(i===0&&clientY<top+foreground.offset){return group}}}return null};ItemSet.itemSetFromTarget=function(event){var target=event.target;while(target){if(target.hasOwnProperty(\"timeline-itemset\")){return target[\"timeline-itemset\"]}target=target.parentNode}return null};ItemSet.prototype._cloneItemData=function(itemData,type){var clone=util.extend({},itemData);if(!type){type=this.itemsData.getDataSet()._options.type}if(clone.start!=undefined){clone.start=util.convert(clone.start,type&&type.start||\"Date\")}if(clone.end!=undefined){clone.end=util.convert(clone.end,type&&type.end||\"Date\")}return clone};module.exports=ItemSet},function(module,exports,__webpack_require__){\"use strict\";var EPSILON=.001;exports.orderByStart=function(items){items.sort(function(a,b){return a.data.start-b.data.start})};exports.orderByEnd=function(items){items.sort(function(a,b){var aTime=\"end\"in a.data?a.data.end:a.data.start,bTime=\"end\"in b.data?b.data.end:b.data.start;return aTime-bTime})};exports.stack=function(items,margin,force){if(force){for(var i=0;i<items.length;i++){items[i].top=null}}for(var i=0;i<items.length;i++){var item=items[i];if(item.stack&&item.top===null){item.top=margin.axis;do{var collidingItem=null;for(var j=0,jj=items.length;j<jj;j++){var other=items[j];if(other.top!==null&&other!==item&&other.stack&&exports.collision(item,other,margin.item,other.options.rtl)){collidingItem=other;break}}if(collidingItem!=null){item.top=collidingItem.top+collidingItem.height+margin.item.vertical}}while(collidingItem)}}};exports.substack=function(items,margin,subgroup){for(var i=0;i<items.length;i++){items[i].top=null}var subgroupHeight=subgroup.height;for(i=0;i<items.length;i++){var item=items[i];if(item.stack&&item.top===null){item.top=item.baseTop;do{var collidingItem=null;for(var j=0,jj=items.length;j<jj;j++){var other=items[j];if(other.top!==null&&other!==item&&exports.collision(item,other,margin.item,other.options.rtl)){collidingItem=other;break}}if(collidingItem!=null){item.top=collidingItem.top+collidingItem.height+margin.item.vertical}if(item.top+item.height>subgroupHeight){subgroupHeight=item.top+item.height}}while(collidingItem)}}subgroup.height=subgroupHeight-subgroup.top+.5*margin.item.vertical};exports.nostack=function(items,margin,subgroups,stackSubgroups){for(var i=0;i<items.length;i++){if(items[i].data.subgroup==undefined){items[i].top=margin.item.vertical}else if(items[i].data.subgroup!==undefined&&stackSubgroups){var newTop=0;for(var subgroup in subgroups){if(subgroups.hasOwnProperty(subgroup)){if(subgroups[subgroup].visible==true&&subgroups[subgroup].index<subgroups[items[i].data.subgroup].index){newTop+=subgroups[subgroup].height;subgroups[items[i].data.subgroup].top=newTop}}}items[i].top=newTop+.5*margin.item.vertical}}if(!stackSubgroups){exports.stackSubgroups(items,margin,subgroups)}};exports.stackSubgroups=function(items,margin,subgroups){for(var subgroup in subgroups){if(subgroups.hasOwnProperty(subgroup)){subgroups[subgroup].top=0;do{var collidingItem=null;for(var otherSubgroup in subgroups){if(subgroups[otherSubgroup].top!==null&&otherSubgroup!==subgroup&&subgroups[subgroup].index>subgroups[otherSubgroup].index&&exports.collisionByTimes(subgroups[subgroup],subgroups[otherSubgroup])){collidingItem=subgroups[otherSubgroup];break}}if(collidingItem!=null){subgroups[subgroup].top=collidingItem.top+collidingItem.height}}while(collidingItem)}}for(var i=0;i<items.length;i++){if(items[i].data.subgroup!==undefined){items[i].top=subgroups[items[i].data.subgroup].top+.5*margin.item.vertical}}};exports.stackSubgroupsWithInnerStack=function(subgroupItems,margin,subgroups){var doSubStack=false;var subgroupOrder=[];for(var subgroup in subgroups){if(subgroups[subgroup].hasOwnProperty(\"index\")){subgroupOrder[subgroups[subgroup].index]=subgroup}else{subgroupOrder.push(subgroup)}}for(var j=0;j<subgroupOrder.length;j++){subgroup=subgroupOrder[j];if(subgroups.hasOwnProperty(subgroup)){doSubStack=doSubStack||subgroups[subgroup].stack;subgroups[subgroup].top=0;for(var otherSubgroup in subgroups){if(subgroups[otherSubgroup].visible&&subgroups[subgroup].index>subgroups[otherSubgroup].index){subgroups[subgroup].top+=subgroups[otherSubgroup].height}}var items=subgroupItems[subgroup];for(var i=0;i<items.length;i++){if(items[i].data.subgroup!==undefined){items[i].top=subgroups[items[i].data.subgroup].top+.5*margin.item.vertical;if(subgroups[subgroup].stack){items[i].baseTop=items[i].top}}}if(doSubStack&&subgroups[subgroup].stack){exports.substack(subgroupItems[subgroup],margin,subgroups[subgroup])}}}};exports.collision=function(a,b,margin,rtl){if(rtl){return a.right-margin.horizontal+EPSILON<b.right+b.width&&a.right+a.width+margin.horizontal-EPSILON>b.right&&a.top-margin.vertical+EPSILON<b.top+b.height&&a.top+a.height+margin.vertical-EPSILON>b.top}else{return a.left-margin.horizontal+EPSILON<b.left+b.width&&a.left+a.width+margin.horizontal-EPSILON>b.left&&a.top-margin.vertical+EPSILON<b.top+b.height&&a.top+a.height+margin.vertical-EPSILON>b.top}};exports.collisionByTimes=function(a,b){return a.start<=b.start&&a.end>=b.start&&a.top<b.top+b.height&&a.top+a.height>b.top||b.start<=a.start&&b.end>=a.start&&b.top<a.top+a.height&&b.top+b.height>a.top}},function(module,exports,__webpack_require__){\"use strict\";var Item=__webpack_require__(38);function BoxItem(data,conversion,options){this.props={dot:{width:0,height:0},line:{width:0,height:0}};this.options=options;if(data){if(data.start==undefined){throw new Error('Property \"start\" missing in item '+data)}}Item.call(this,data,conversion,options)}BoxItem.prototype=new Item(null,null,null);BoxItem.prototype.isVisible=function(range){var isVisible;var align=this.options.align;var widthInMs=this.width*range.getMillisecondsPerPixel();if(align==\"right\"){isVisible=this.data.start.getTime()>range.start&&this.data.start.getTime()-widthInMs<range.end}else if(align==\"left\"){isVisible=this.data.start.getTime()+widthInMs>range.start&&this.data.start.getTime()<range.end}else{isVisible=this.data.start.getTime()+widthInMs/2>range.start&&this.data.start.getTime()-widthInMs/2<range.end}return isVisible};BoxItem.prototype._createDomElement=function(){if(!this.dom){this.dom={};this.dom.box=document.createElement(\"DIV\");this.dom.content=document.createElement(\"DIV\");this.dom.content.className=\"vis-item-content\";this.dom.box.appendChild(this.dom.content);this.dom.line=document.createElement(\"DIV\");this.dom.line.className=\"vis-line\";this.dom.dot=document.createElement(\"DIV\");this.dom.dot.className=\"vis-dot\";this.dom.box[\"timeline-item\"]=this;this.dirty=true}};BoxItem.prototype._appendDomElement=function(){if(!this.parent){throw new Error(\"Cannot redraw item: no parent attached\")}if(!this.dom.box.parentNode){var foreground=this.parent.dom.foreground;if(!foreground)throw new Error(\"Cannot redraw item: parent has no foreground container element\");foreground.appendChild(this.dom.box)}if(!this.dom.line.parentNode){var background=this.parent.dom.background;if(!background)throw new Error(\"Cannot redraw item: parent has no background container element\");background.appendChild(this.dom.line)}if(!this.dom.dot.parentNode){var axis=this.parent.dom.axis;if(!background)throw new Error(\"Cannot redraw item: parent has no axis container element\");axis.appendChild(this.dom.dot)}this.displayed=true};BoxItem.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content);this._updateDataAttributes(this.dom.box);this._updateStyle(this.dom.box);var editable=this.editable.updateTime||this.editable.updateGroup;var className=(this.data.className?\" \"+this.data.className:\"\")+(this.selected?\" vis-selected\":\"\")+(editable?\" vis-editable\":\" vis-readonly\");this.dom.box.className=\"vis-item vis-box\"+className;this.dom.line.className=\"vis-item vis-line\"+className;this.dom.dot.className=\"vis-item vis-dot\"+className}};BoxItem.prototype._getDomComponentsSizes=function(){return{previous:{right:this.dom.box.style.right,left:this.dom.box.style.left},dot:{height:this.dom.dot.offsetHeight,width:this.dom.dot.offsetWidth},line:{width:this.dom.line.offsetWidth},box:{width:this.dom.box.offsetWidth,height:this.dom.box.offsetHeight}}};BoxItem.prototype._updateDomComponentsSizes=function(sizes){if(this.options.rtl){this.dom.box.style.right=\"0px\"}else{this.dom.box.style.left=\"0px\"}this.props.dot.height=sizes.dot.height;this.props.dot.width=sizes.dot.width;this.props.line.width=sizes.line.width;this.width=sizes.box.width;this.height=sizes.box.height;if(this.options.rtl){this.dom.box.style.right=sizes.previous.right}else{this.dom.box.style.left=sizes.previous.left}this.dirty=false};BoxItem.prototype._repaintDomAdditionals=function(){this._repaintOnItemUpdateTimeTooltip(this.dom.box);this._repaintDragCenter();this._repaintDeleteButton(this.dom.box)};BoxItem.prototype.redraw=function(returnQueue){var sizes;var queue=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){if(this.dirty){sizes=this._getDomComponentsSizes()}}.bind(this),function(){if(this.dirty){this._updateDomComponentsSizes.bind(this)(sizes)}}.bind(this),this._repaintDomAdditionals.bind(this)];if(returnQueue){return queue}else{var result;queue.forEach(function(fn){result=fn()});return result}};BoxItem.prototype.show=function(){if(!this.displayed){this.redraw()}};BoxItem.prototype.hide=function(){if(this.displayed){var dom=this.dom;if(dom.box.parentNode)dom.box.parentNode.removeChild(dom.box);if(dom.line.parentNode)dom.line.parentNode.removeChild(dom.line);if(dom.dot.parentNode)dom.dot.parentNode.removeChild(dom.dot);this.displayed=false}};BoxItem.prototype.repositionX=function(){var start=this.conversion.toScreen(this.data.start);var align=this.options.align;if(align==\"right\"){if(this.options.rtl){this.right=start-this.width;this.dom.box.style.right=this.right+\"px\";this.dom.line.style.right=start-this.props.line.width+\"px\";this.dom.dot.style.right=start-this.props.line.width/2-this.props.dot.width/2+\"px\"}else{this.left=start-this.width;this.dom.box.style.left=this.left+\"px\";this.dom.line.style.left=start-this.props.line.width+\"px\";this.dom.dot.style.left=start-this.props.line.width/2-this.props.dot.width/2+\"px\"}}else if(align==\"left\"){if(this.options.rtl){this.right=start;this.dom.box.style.right=this.right+\"px\";this.dom.line.style.right=start+\"px\";this.dom.dot.style.right=start+this.props.line.width/2-this.props.dot.width/2+\"px\"}else{this.left=start;this.dom.box.style.left=this.left+\"px\";this.dom.line.style.left=start+\"px\";this.dom.dot.style.left=start+this.props.line.width/2-this.props.dot.width/2+\"px\"}}else{if(this.options.rtl){this.right=start-this.width/2;this.dom.box.style.right=this.right+\"px\";this.dom.line.style.right=start-this.props.line.width+\"px\";this.dom.dot.style.right=start-this.props.dot.width/2+\"px\"}else{this.left=start-this.width/2;this.dom.box.style.left=this.left+\"px\";this.dom.line.style.left=start-this.props.line.width/2+\"px\";this.dom.dot.style.left=start-this.props.dot.width/2+\"px\"}}};BoxItem.prototype.repositionY=function(){var orientation=this.options.orientation.item;var box=this.dom.box;var line=this.dom.line;var dot=this.dom.dot;if(orientation==\"top\"){box.style.top=(this.top||0)+\"px\";line.style.top=\"0\";line.style.height=this.parent.top+this.top+1+\"px\";line.style.bottom=\"\"}else{var itemSetHeight=this.parent.itemSet.props.height;var lineHeight=itemSetHeight-this.parent.top-this.parent.height+this.top;box.style.top=(this.parent.height-this.top-this.height||0)+\"px\";line.style.top=itemSetHeight-lineHeight+\"px\";line.style.bottom=\"0\"}dot.style.top=-this.props.dot.height/2+\"px\"};BoxItem.prototype.getWidthLeft=function(){return this.width/2};BoxItem.prototype.getWidthRight=function(){return this.width/2};module.exports=BoxItem},function(module,exports,__webpack_require__){\"use strict\";var Item=__webpack_require__(38);function PointItem(data,conversion,options){this.props={dot:{top:0,width:0,height:0},content:{height:0,marginLeft:0,marginRight:0}};this.options=options;if(data){if(data.start==undefined){throw new Error('Property \"start\" missing in item '+data)}}Item.call(this,data,conversion,options)}PointItem.prototype=new Item(null,null,null);PointItem.prototype.isVisible=function(range){var widthInMs=this.width*range.getMillisecondsPerPixel();return this.data.start.getTime()+widthInMs>range.start&&this.data.start<range.end};PointItem.prototype._createDomElement=function(){if(!this.dom){this.dom={};this.dom.point=document.createElement(\"div\");this.dom.content=document.createElement(\"div\");this.dom.content.className=\"vis-item-content\";this.dom.point.appendChild(this.dom.content);this.dom.dot=document.createElement(\"div\");this.dom.point.appendChild(this.dom.dot);this.dom.point[\"timeline-item\"]=this;this.dirty=true}};PointItem.prototype._appendDomElement=function(){if(!this.parent){throw new Error(\"Cannot redraw item: no parent attached\")}if(!this.dom.point.parentNode){var foreground=this.parent.dom.foreground;if(!foreground){throw new Error(\"Cannot redraw item: parent has no foreground container element\")}foreground.appendChild(this.dom.point)}this.displayed=true};PointItem.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content);this._updateDataAttributes(this.dom.point);this._updateStyle(this.dom.point);var editable=this.editable.updateTime||this.editable.updateGroup;var className=(this.data.className?\" \"+this.data.className:\"\")+(this.selected?\" vis-selected\":\"\")+(editable?\" vis-editable\":\" vis-readonly\");this.dom.point.className=\"vis-item vis-point\"+className;this.dom.dot.className=\"vis-item vis-dot\"+className}};PointItem.prototype._getDomComponentsSizes=function(){return{dot:{width:this.dom.dot.offsetWidth,height:this.dom.dot.offsetHeight},content:{width:this.dom.content.offsetWidth,height:this.dom.content.offsetHeight},point:{width:this.dom.point.offsetWidth,height:this.dom.point.offsetHeight}}};PointItem.prototype._updateDomComponentsSizes=function(sizes){this.props.dot.width=sizes.dot.width;this.props.dot.height=sizes.dot.height;this.props.content.height=sizes.content.height;if(this.options.rtl){this.dom.content.style.marginRight=2*this.props.dot.width+\"px\"}else{this.dom.content.style.marginLeft=2*this.props.dot.width+\"px\"}this.width=sizes.point.width;this.height=sizes.point.height;this.dom.dot.style.top=(this.height-this.props.dot.height)/2+\"px\";if(this.options.rtl){this.dom.dot.style.right=this.props.dot.width/2+\"px\"}else{this.dom.dot.style.left=this.props.dot.width/2+\"px\"}this.dirty=false};PointItem.prototype._repaintDomAdditionals=function(){this._repaintOnItemUpdateTimeTooltip(this.dom.point);this._repaintDragCenter();this._repaintDeleteButton(this.dom.point)};PointItem.prototype.redraw=function(returnQueue){var sizes;var queue=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){if(this.dirty){sizes=this._getDomComponentsSizes()}}.bind(this),function(){if(this.dirty){this._updateDomComponentsSizes.bind(this)(sizes)}}.bind(this),this._repaintDomAdditionals.bind(this)];if(returnQueue){return queue}else{var result;queue.forEach(function(fn){result=fn()});return result}};PointItem.prototype.show=function(){if(!this.displayed){this.redraw()}};PointItem.prototype.hide=function(){if(this.displayed){if(this.dom.point.parentNode){this.dom.point.parentNode.removeChild(this.dom.point)}this.displayed=false}};PointItem.prototype.repositionX=function(){var start=this.conversion.toScreen(this.data.start);if(this.options.rtl){this.right=start-this.props.dot.width;this.dom.point.style.right=this.right+\"px\"}else{this.left=start-this.props.dot.width;this.dom.point.style.left=this.left+\"px\"}};PointItem.prototype.repositionY=function(){var orientation=this.options.orientation.item;var point=this.dom.point;if(orientation==\"top\"){point.style.top=this.top+\"px\"}else{point.style.top=this.parent.height-this.top-this.height+\"px\"}};PointItem.prototype.getWidthLeft=function(){return this.props.dot.width};PointItem.prototype.getWidthRight=function(){return this.props.dot.width};module.exports=PointItem},function(module,exports,__webpack_require__){\"use strict\";var Item=__webpack_require__(38);var BackgroundGroup=__webpack_require__(69);var RangeItem=__webpack_require__(70);function BackgroundItem(data,conversion,options){this.props={content:{width:0}};this.overflow=false;if(data){if(data.start==undefined){throw new Error('Property \"start\" missing in item '+data.id)}if(data.end==undefined){throw new Error('Property \"end\" missing in item '+data.id)}}Item.call(this,data,conversion,options)}BackgroundItem.prototype=new Item(null,null,null);BackgroundItem.prototype.baseClassName=\"vis-item vis-background\";BackgroundItem.prototype.stack=false;BackgroundItem.prototype.isVisible=function(range){return this.data.start<range.end&&this.data.end>range.start};BackgroundItem.prototype._createDomElement=function(){if(!this.dom){this.dom={};this.dom.box=document.createElement(\"div\");this.dom.frame=document.createElement(\"div\");this.dom.frame.className=\"vis-item-overflow\";this.dom.box.appendChild(this.dom.frame);this.dom.content=document.createElement(\"div\");this.dom.content.className=\"vis-item-content\";this.dom.frame.appendChild(this.dom.content);this.dirty=true}};BackgroundItem.prototype._appendDomElement=function(){if(!this.parent){throw new Error(\"Cannot redraw item: no parent attached\")}if(!this.dom.box.parentNode){var background=this.parent.dom.background;if(!background){throw new Error(\"Cannot redraw item: parent has no background container element\")}background.appendChild(this.dom.box)}this.displayed=true};BackgroundItem.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content);this._updateDataAttributes(this.dom.content);this._updateStyle(this.dom.box);var className=(this.data.className?\" \"+this.data.className:\"\")+(this.selected?\" vis-selected\":\"\");this.dom.box.className=this.baseClassName+className}};BackgroundItem.prototype._getDomComponentsSizes=function(){this.overflow=window.getComputedStyle(this.dom.content).overflow!==\"hidden\";return{content:{width:this.dom.content.offsetWidth}}};BackgroundItem.prototype._updateDomComponentsSizes=function(sizes){this.props.content.width=sizes.content.width;this.height=0;this.dirty=false};BackgroundItem.prototype._repaintDomAdditionals=function(){};BackgroundItem.prototype.redraw=function(returnQueue){var sizes;var queue=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){if(this.dirty){sizes=this._getDomComponentsSizes.bind(this)()}}.bind(this),function(){if(this.dirty){this._updateDomComponentsSizes.bind(this)(sizes)}}.bind(this),this._repaintDomAdditionals.bind(this)];if(returnQueue){return queue}else{var result;queue.forEach(function(fn){result=fn()});return result}};BackgroundItem.prototype.show=RangeItem.prototype.show;BackgroundItem.prototype.hide=RangeItem.prototype.hide;BackgroundItem.prototype.repositionX=RangeItem.prototype.repositionX;BackgroundItem.prototype.repositionY=function(margin){var height;var orientation=this.options.orientation.item;if(this.data.subgroup!==undefined){var itemSubgroup=this.data.subgroup;this.dom.box.style.height=this.parent.subgroups[itemSubgroup].height+\"px\";if(orientation==\"top\"){this.dom.box.style.top=this.parent.top+this.parent.subgroups[itemSubgroup].top+\"px\"}else{this.dom.box.style.top=this.parent.top+this.parent.height-this.parent.subgroups[itemSubgroup].top-this.parent.subgroups[itemSubgroup].height+\"px\"}this.dom.box.style.bottom=\"\"}else{if(this.parent instanceof BackgroundGroup){height=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height);this.dom.box.style.bottom=orientation==\"bottom\"?\"0\":\"\";this.dom.box.style.top=orientation==\"top\"?\"0\":\"\"}else{height=this.parent.height;this.dom.box.style.top=this.parent.top+\"px\";this.dom.box.style.bottom=\"\"}}this.dom.box.style.height=height+\"px\"};module.exports=BackgroundItem},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Popup=function(){function Popup(container,overflowMethod){(0,_classCallCheck3[\"default\"])(this,Popup);this.container=container;this.overflowMethod=overflowMethod||\"cap\";this.x=0;this.y=0;this.padding=5;this.hidden=false;this.frame=document.createElement(\"div\");this.frame.className=\"vis-tooltip\";this.container.appendChild(this.frame)}(0,_createClass3[\"default\"])(Popup,[{key:\"setPosition\",value:function setPosition(x,y){this.x=parseInt(x);this.y=parseInt(y)}},{key:\"setText\",value:function setText(content){if(content instanceof Element){this.frame.innerHTML=\"\";this.frame.appendChild(content)}else{this.frame.innerHTML=content}}},{key:\"show\",value:function show(doShow){if(doShow===undefined){doShow=true}if(doShow===true){var height=this.frame.clientHeight;var width=this.frame.clientWidth;var maxHeight=this.frame.parentNode.clientHeight;var maxWidth=this.frame.parentNode.clientWidth;var left=0,top=0;if(this.overflowMethod==\"flip\"){var isLeft=false,isTop=true;if(this.y-height<this.padding){isTop=false}if(this.x+width>maxWidth-this.padding){isLeft=true}if(isLeft){left=this.x-width}else{left=this.x}if(isTop){top=this.y-height}else{top=this.y}}else{top=this.y-height;if(top+height+this.padding>maxHeight){top=maxHeight-height-this.padding}if(top<this.padding){top=this.padding}left=this.x;if(left+width+this.padding>maxWidth){left=maxWidth-width-this.padding}if(left<this.padding){left=this.padding}}this.frame.style.left=left+\"px\";this.frame.style.top=top+\"px\";this.frame.style.visibility=\"visible\";this.hidden=false}else{this.hide()}}},{key:\"hide\",value:function hide(){this.hidden=true;this.frame.style.left=\"0\";this.frame.style.top=\"0\";this.frame.style.visibility=\"hidden\"}},{key:\"destroy\",value:function destroy(){this.frame.parentNode.removeChild(this.frame)}}]);return Popup}();exports[\"default\"]=Popup},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var string=\"string\";var bool=\"boolean\";var number=\"number\";var array=\"array\";var date=\"date\";var object=\"object\";var dom=\"dom\";var moment=\"moment\";var any=\"any\";var allOptions={configure:{enabled:{boolean:bool},filter:{boolean:bool,function:\"function\"},container:{dom:dom},__type__:{object:object,boolean:bool,function:\"function\"}},align:{string:string},rtl:{boolean:bool,undefined:\"undefined\"},rollingMode:{follow:{boolean:bool},offset:{number:number,undefined:\"undefined\"},__type__:{object:object}},verticalScroll:{boolean:bool,undefined:\"undefined\"},horizontalScroll:{boolean:bool,undefined:\"undefined\"},autoResize:{boolean:bool},throttleRedraw:{number:number},clickToUse:{boolean:bool},dataAttributes:{string:string,array:array},editable:{add:{boolean:bool,undefined:\"undefined\"},remove:{boolean:bool,undefined:\"undefined\"},updateGroup:{boolean:bool,undefined:\"undefined\"},updateTime:{boolean:bool,undefined:\"undefined\"},overrideItems:{boolean:bool,undefined:\"undefined\"},__type__:{boolean:bool,object:object}},end:{number:number,date:date,string:string,moment:moment},format:{minorLabels:{millisecond:{string:string,undefined:\"undefined\"},second:{string:string,undefined:\"undefined\"},minute:{string:string,undefined:\"undefined\"},hour:{string:string,undefined:\"undefined\"},weekday:{string:string,undefined:\"undefined\"},day:{string:string,undefined:\"undefined\"},week:{string:string,undefined:\"undefined\"},month:{string:string,undefined:\"undefined\"},year:{string:string,undefined:\"undefined\"},__type__:{object:object,function:\"function\"}},majorLabels:{millisecond:{string:string,undefined:\"undefined\"},second:{string:string,undefined:\"undefined\"},minute:{string:string,undefined:\"undefined\"},hour:{string:string,undefined:\"undefined\"},weekday:{string:string,undefined:\"undefined\"},day:{string:string,undefined:\"undefined\"},week:{string:string,undefined:\"undefined\"},month:{string:string,undefined:\"undefined\"},year:{string:string,undefined:\"undefined\"},__type__:{object:object,function:\"function\"}},__type__:{object:object}},moment:{function:\"function\"},groupOrder:{string:string,function:\"function\"},groupEditable:{add:{boolean:bool,undefined:\"undefined\"},remove:{boolean:bool,undefined:\"undefined\"},order:{boolean:bool,undefined:\"undefined\"},__type__:{boolean:bool,object:object}},groupOrderSwap:{function:\"function\"},height:{string:string,number:number},hiddenDates:{start:{date:date,number:number,string:string,moment:moment},end:{date:date,number:number,string:string,moment:moment},repeat:{string:string},__type__:{object:object,array:array}},itemsAlwaysDraggable:{item:{boolean:bool,undefined:\"undefined\"},range:{boolean:bool,undefined:\"undefined\"},__type__:{boolean:bool,object:object}},limitSize:{boolean:bool},locale:{string:string},locales:{__any__:{any:any},__type__:{object:object}},margin:{axis:{number:number},item:{horizontal:{number:number,undefined:\"undefined\"},vertical:{number:number,undefined:\"undefined\"},__type__:{object:object,number:number}},__type__:{object:object,number:number}},max:{date:date,number:number,string:string,moment:moment},maxHeight:{number:number,string:string},maxMinorChars:{number:number},min:{date:date,number:number,string:string,moment:moment},minHeight:{number:number,string:string},moveable:{boolean:bool},multiselect:{boolean:bool},multiselectPerGroup:{boolean:bool},onAdd:{function:\"function\"},onDropObjectOnItem:{function:\"function\"},onUpdate:{function:\"function\"},onMove:{function:\"function\"},onMoving:{function:\"function\"},onRemove:{function:\"function\"},onAddGroup:{function:\"function\"},onMoveGroup:{function:\"function\"},onRemoveGroup:{function:\"function\"},onInitialDrawComplete:{function:\"function\"},order:{function:\"function\"},orientation:{axis:{string:string,undefined:\"undefined\"},item:{string:string,undefined:\"undefined\"},__type__:{string:string,object:object}},selectable:{boolean:bool},showCurrentTime:{boolean:bool},showMajorLabels:{boolean:bool},showMinorLabels:{boolean:bool},stack:{boolean:bool},stackSubgroups:{boolean:bool},snap:{function:\"function\",null:\"null\"},start:{date:date,number:number,string:string,moment:moment},template:{function:\"function\"},groupTemplate:{function:\"function\"},visibleFrameTemplate:{string:string,function:\"function\"},showTooltips:{boolean:bool},tooltip:{followMouse:{boolean:bool},overflowMethod:{string:[\"cap\",\"flip\"]},__type__:{object:object}},tooltipOnItemUpdateTime:{template:{function:\"function\"},__type__:{boolean:bool,object:object}},timeAxis:{scale:{string:string,undefined:\"undefined\"},step:{number:number,undefined:\"undefined\"},__type__:{object:object}},type:{string:string},width:{string:string,number:number},zoomable:{boolean:bool},zoomKey:{string:[\"ctrlKey\",\"altKey\",\"metaKey\",\"\"]},zoomMax:{number:number},zoomMin:{number:number},__type__:{object:object}};var configureOptions={global:{align:[\"center\",\"left\",\"right\"],direction:false,autoResize:true,clickToUse:false,editable:{add:false,remove:false,updateGroup:false,updateTime:false},end:\"\",format:{minorLabels:{millisecond:\"SSS\",second:\"s\",minute:\"HH:mm\",hour:\"HH:mm\",weekday:\"ddd D\",day:\"D\",week:\"w\",month:\"MMM\",year:\"YYYY\"},majorLabels:{millisecond:\"HH:mm:ss\",second:\"D MMMM HH:mm\",minute:\"ddd D MMMM\",hour:\"ddd D MMMM\",weekday:\"MMMM YYYY\",day:\"MMMM YYYY\",week:\"MMMM YYYY\",month:\"YYYY\",year:\"\"}},groupsDraggable:false,height:\"\",locale:\"\",margin:{axis:[20,0,100,1],item:{horizontal:[10,0,100,1],vertical:[10,0,100,1]}},max:\"\",maxHeight:\"\",maxMinorChars:[7,0,20,1],min:\"\",minHeight:\"\",moveable:false,multiselect:false,multiselectPerGroup:false,orientation:{axis:[\"both\",\"bottom\",\"top\"],item:[\"bottom\",\"top\"]},selectable:true,showCurrentTime:false,showMajorLabels:true,showMinorLabels:true,stack:true,stackSubgroups:true,start:\"\",showTooltips:true,tooltip:{followMouse:false,overflowMethod:\"flip\"},tooltipOnItemUpdateTime:false,type:[\"box\",\"point\",\"range\",\"background\"],width:\"100%\",zoomable:true,zoomKey:[\"ctrlKey\",\"altKey\",\"metaKey\",\"\"],zoomMax:[31536e10,10,31536e10,1],zoomMin:[10,10,31536e10,1]}};exports.allOptions=allOptions;exports.configureOptions=configureOptions},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DOMutil=__webpack_require__(14);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Component=__webpack_require__(16);var DataAxis=__webpack_require__(107);var GraphGroup=__webpack_require__(109);var Legend=__webpack_require__(112);var Bars=__webpack_require__(110)\n;var Lines=__webpack_require__(111);var Points=__webpack_require__(72);var UNGROUPED=\"__ungrouped__\";function LineGraph(body,options){this.id=util.randomUUID();this.body=body;this.defaultOptions={yAxisOrientation:\"left\",defaultGroup:\"default\",sort:true,sampling:true,stack:false,graphHeight:\"400px\",shaded:{enabled:false,orientation:\"bottom\"},style:\"line\",barChart:{width:50,sideBySide:false,align:\"center\"},interpolation:{enabled:true,parametrization:\"centripetal\",alpha:.5},drawPoints:{enabled:true,size:6,style:\"square\"},dataAxis:{},legend:{},groups:{visibility:{}}};this.options=util.extend({},this.defaultOptions);this.dom={};this.props={};this.hammer=null;this.groups={};this.abortedGraphUpdate=false;this.updateSVGheight=false;this.updateSVGheightOnResize=false;this.forceGraphUpdate=true;var me=this;this.itemsData=null;this.groupsData=null;this.itemListeners={add:function add(event,params,senderId){me._onAdd(params.items)},update:function update(event,params,senderId){me._onUpdate(params.items)},remove:function remove(event,params,senderId){me._onRemove(params.items)}};this.groupListeners={add:function add(event,params,senderId){me._onAddGroups(params.items)},update:function update(event,params,senderId){me._onUpdateGroups(params.items)},remove:function remove(event,params,senderId){me._onRemoveGroups(params.items)}};this.items={};this.selection=[];this.lastStart=this.body.range.start;this.touchParams={};this.svgElements={};this.setOptions(options);this.groupsUsingDefaultStyles=[0];this.body.emitter.on(\"rangechanged\",function(){me.lastStart=me.body.range.start;me.svg.style.left=util.option.asSize(-me.props.width);me.forceGraphUpdate=true;me.redraw.call(me)});this._create();this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups}}LineGraph.prototype=new Component;LineGraph.prototype._create=function(){var frame=document.createElement(\"div\");frame.className=\"vis-line-graph\";this.dom.frame=frame;this.svg=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");this.svg.style.position=\"relative\";this.svg.style.height=(\"\"+this.options.graphHeight).replace(\"px\",\"\")+\"px\";this.svg.style.display=\"block\";frame.appendChild(this.svg);this.options.dataAxis.orientation=\"left\";this.yAxisLeft=new DataAxis(this.body,this.options.dataAxis,this.svg,this.options.groups);this.options.dataAxis.orientation=\"right\";this.yAxisRight=new DataAxis(this.body,this.options.dataAxis,this.svg,this.options.groups);delete this.options.dataAxis.orientation;this.legendLeft=new Legend(this.body,this.options.legend,\"left\",this.options.groups);this.legendRight=new Legend(this.body,this.options.legend,\"right\",this.options.groups);this.show()};LineGraph.prototype.setOptions=function(options){if(options){var fields=[\"sampling\",\"defaultGroup\",\"stack\",\"height\",\"graphHeight\",\"yAxisOrientation\",\"style\",\"barChart\",\"dataAxis\",\"sort\",\"groups\"];if(options.graphHeight===undefined&&options.height!==undefined){this.updateSVGheight=true;this.updateSVGheightOnResize=true}else if(this.body.domProps.centerContainer.height!==undefined&&options.graphHeight!==undefined){if(parseInt((options.graphHeight+\"\").replace(\"px\",\"\"))<this.body.domProps.centerContainer.height){this.updateSVGheight=true}}util.selectiveDeepExtend(fields,this.options,options);util.mergeOptions(this.options,options,\"interpolation\");util.mergeOptions(this.options,options,\"drawPoints\");util.mergeOptions(this.options,options,\"shaded\");util.mergeOptions(this.options,options,\"legend\");if(options.interpolation){if((0,_typeof3[\"default\"])(options.interpolation)==\"object\"){if(options.interpolation.parametrization){if(options.interpolation.parametrization==\"uniform\"){this.options.interpolation.alpha=0}else if(options.interpolation.parametrization==\"chordal\"){this.options.interpolation.alpha=1}else{this.options.interpolation.parametrization=\"centripetal\";this.options.interpolation.alpha=.5}}}}if(this.yAxisLeft){if(options.dataAxis!==undefined){this.yAxisLeft.setOptions(this.options.dataAxis);this.yAxisRight.setOptions(this.options.dataAxis)}}if(this.legendLeft){if(options.legend!==undefined){this.legendLeft.setOptions(this.options.legend);this.legendRight.setOptions(this.options.legend)}}if(this.groups.hasOwnProperty(UNGROUPED)){this.groups[UNGROUPED].setOptions(options)}}if(this.dom.frame){this.forceGraphUpdate=true;this.body.emitter.emit(\"_change\",{queue:true})}};LineGraph.prototype.hide=function(){if(this.dom.frame.parentNode){this.dom.frame.parentNode.removeChild(this.dom.frame)}};LineGraph.prototype.show=function(){if(!this.dom.frame.parentNode){this.body.dom.center.appendChild(this.dom.frame)}};LineGraph.prototype.setItems=function(items){var me=this,ids,oldItemsData=this.itemsData;if(!items){this.itemsData=null}else if(items instanceof DataSet||items instanceof DataView){this.itemsData=items}else{throw new TypeError(\"Data must be an instance of DataSet or DataView\")}if(oldItemsData){util.forEach(this.itemListeners,function(callback,event){oldItemsData.off(event,callback)});ids=oldItemsData.getIds();this._onRemove(ids)}if(this.itemsData){var id=this.id;util.forEach(this.itemListeners,function(callback,event){me.itemsData.on(event,callback,id)});ids=this.itemsData.getIds();this._onAdd(ids)}};LineGraph.prototype.setGroups=function(groups){var me=this;var ids;if(this.groupsData){util.forEach(this.groupListeners,function(callback,event){me.groupsData.off(event,callback)});ids=this.groupsData.getIds();this.groupsData=null;for(var i=0;i<ids.length;i++){this._removeGroup(ids[i])}}if(!groups){this.groupsData=null}else if(groups instanceof DataSet||groups instanceof DataView){this.groupsData=groups}else{throw new TypeError(\"Data must be an instance of DataSet or DataView\")}if(this.groupsData){var id=this.id;util.forEach(this.groupListeners,function(callback,event){me.groupsData.on(event,callback,id)});ids=this.groupsData.getIds();this._onAddGroups(ids)}};LineGraph.prototype._onUpdate=function(ids){this._updateAllGroupData(ids)};LineGraph.prototype._onAdd=function(ids){this._onUpdate(ids)};LineGraph.prototype._onRemove=function(ids){this._onUpdate(ids)};LineGraph.prototype._onUpdateGroups=function(groupIds){this._updateAllGroupData(null,groupIds)};LineGraph.prototype._onAddGroups=function(groupIds){this._onUpdateGroups(groupIds)};LineGraph.prototype._onRemoveGroups=function(groupIds){for(var i=0;i<groupIds.length;i++){this._removeGroup(groupIds[i])}this.forceGraphUpdate=true;this.body.emitter.emit(\"_change\",{queue:true})};LineGraph.prototype._removeGroup=function(groupId){if(this.groups.hasOwnProperty(groupId)){if(this.groups[groupId].options.yAxisOrientation==\"right\"){this.yAxisRight.removeGroup(groupId);this.legendRight.removeGroup(groupId);this.legendRight.redraw()}else{this.yAxisLeft.removeGroup(groupId);this.legendLeft.removeGroup(groupId);this.legendLeft.redraw()}delete this.groups[groupId]}};LineGraph.prototype._updateGroup=function(group,groupId){if(!this.groups.hasOwnProperty(groupId)){this.groups[groupId]=new GraphGroup(group,groupId,this.options,this.groupsUsingDefaultStyles);if(this.groups[groupId].options.yAxisOrientation==\"right\"){this.yAxisRight.addGroup(groupId,this.groups[groupId]);this.legendRight.addGroup(groupId,this.groups[groupId])}else{this.yAxisLeft.addGroup(groupId,this.groups[groupId]);this.legendLeft.addGroup(groupId,this.groups[groupId])}}else{this.groups[groupId].update(group);if(this.groups[groupId].options.yAxisOrientation==\"right\"){this.yAxisRight.updateGroup(groupId,this.groups[groupId]);this.legendRight.updateGroup(groupId,this.groups[groupId]);this.yAxisLeft.removeGroup(groupId);this.legendLeft.removeGroup(groupId)}else{this.yAxisLeft.updateGroup(groupId,this.groups[groupId]);this.legendLeft.updateGroup(groupId,this.groups[groupId]);this.yAxisRight.removeGroup(groupId);this.legendRight.removeGroup(groupId)}}this.legendLeft.redraw();this.legendRight.redraw()};LineGraph.prototype._updateAllGroupData=function(ids,groupIds){if(this.itemsData!=null){var groupsContent={};var items=this.itemsData.get();var fieldId=this.itemsData._fieldId;var idMap={};if(ids){ids.map(function(id){idMap[id]=id})}var groupCounts={};for(var i=0;i<items.length;i++){var item=items[i];var groupId=item.group;if(groupId===null||groupId===undefined){groupId=UNGROUPED}groupCounts.hasOwnProperty(groupId)?groupCounts[groupId]++:groupCounts[groupId]=1}var existingItemsMap={};if(!groupIds&&ids){for(groupId in this.groups){if(this.groups.hasOwnProperty(groupId)){group=this.groups[groupId];var existing_items=group.getItems();groupsContent[groupId]=existing_items.filter(function(item){existingItemsMap[item[fieldId]]=item[fieldId];return item[fieldId]!==idMap[item[fieldId]]});var newLength=groupCounts[groupId];groupCounts[groupId]-=groupsContent[groupId].length;if(groupsContent[groupId].length<newLength){groupsContent[groupId][newLength-1]={}}}}}for(i=0;i<items.length;i++){item=items[i];groupId=item.group;if(groupId===null||groupId===undefined){groupId=UNGROUPED}if(!groupIds&&ids&&item[fieldId]!==idMap[item[fieldId]]&&existingItemsMap.hasOwnProperty(item[fieldId])){continue}if(!groupsContent.hasOwnProperty(groupId)){groupsContent[groupId]=new Array(groupCounts[groupId])}var extended=util.bridgeObject(item);extended.x=util.convert(item.x,\"Date\");extended.end=util.convert(item.end,\"Date\");extended.orginalY=item.y;extended.y=Number(item.y);extended[fieldId]=item[fieldId];var index=groupsContent[groupId].length-groupCounts[groupId]--;groupsContent[groupId][index]=extended}for(groupId in this.groups){if(this.groups.hasOwnProperty(groupId)){if(!groupsContent.hasOwnProperty(groupId)){groupsContent[groupId]=new Array(0)}}}for(groupId in groupsContent){if(groupsContent.hasOwnProperty(groupId)){if(groupsContent[groupId].length==0){if(this.groups.hasOwnProperty(groupId)){this._removeGroup(groupId)}}else{var group=undefined;if(this.groupsData!=undefined){group=this.groupsData.get(groupId)}if(group==undefined){group={id:groupId,content:this.options.defaultGroup+groupId}}this._updateGroup(group,groupId);this.groups[groupId].setItems(groupsContent[groupId])}}}this.forceGraphUpdate=true;this.body.emitter.emit(\"_change\",{queue:true})}};LineGraph.prototype.redraw=function(){var resized=false;this.props.width=this.dom.frame.offsetWidth;this.props.height=this.body.domProps.centerContainer.height-this.body.domProps.border.top-this.body.domProps.border.bottom;resized=this._isResized()||resized;var visibleInterval=this.body.range.end-this.body.range.start;var zoomed=visibleInterval!=this.lastVisibleInterval;this.lastVisibleInterval=visibleInterval;if(resized==true){this.svg.style.width=util.option.asSize(3*this.props.width);this.svg.style.left=util.option.asSize(-this.props.width);if((this.options.height+\"\").indexOf(\"%\")!=-1||this.updateSVGheightOnResize==true){this.updateSVGheight=true}}if(this.updateSVGheight==true){if(this.options.graphHeight!=this.props.height+\"px\"){this.options.graphHeight=this.props.height+\"px\";this.svg.style.height=this.props.height+\"px\"}this.updateSVGheight=false}else{this.svg.style.height=(\"\"+this.options.graphHeight).replace(\"px\",\"\")+\"px\"}if(resized==true||zoomed==true||this.abortedGraphUpdate==true||this.forceGraphUpdate==true){resized=this._updateGraph()||resized;this.forceGraphUpdate=false}else{if(this.lastStart!=0){var offset=this.body.range.start-this.lastStart;var range=this.body.range.end-this.body.range.start;if(this.props.width!=0){var rangePerPixelInv=this.props.width/range;var xOffset=offset*rangePerPixelInv;this.svg.style.left=-this.props.width-xOffset+\"px\"}}}this.legendLeft.redraw();this.legendRight.redraw();return resized};LineGraph.prototype._getSortedGroupIds=function(){var grouplist=[];for(var groupId in this.groups){if(this.groups.hasOwnProperty(groupId)){var group=this.groups[groupId];if(group.visible==true&&(this.options.groups.visibility[groupId]===undefined||this.options.groups.visibility[groupId]==true)){grouplist.push({id:groupId,zIndex:group.options.zIndex})}}}util.insertSort(grouplist,function(a,b){var az=a.zIndex;var bz=b.zIndex;if(az===undefined)az=0;if(bz===undefined)bz=0;return az==bz?0:az<bz?-1:1});var groupIds=new Array(grouplist.length);for(var i=0;i<grouplist.length;i++){groupIds[i]=grouplist[i].id}return groupIds};LineGraph.prototype._updateGraph=function(){DOMutil.prepareElements(this.svgElements);if(this.props.width!=0&&this.itemsData!=null){var group,i;var groupRanges={};var changeCalled=false;var minDate=this.body.util.toGlobalTime(-this.body.domProps.root.width);var maxDate=this.body.util.toGlobalTime(2*this.body.domProps.root.width);var groupIds=this._getSortedGroupIds();if(groupIds.length>0){var groupsData={};this._getRelevantData(groupIds,groupsData,minDate,maxDate);this._applySampling(groupIds,groupsData);for(i=0;i<groupIds.length;i++){this._convertXcoordinates(groupsData[groupIds[i]])}this._getYRanges(groupIds,groupsData,groupRanges);changeCalled=this._updateYAxis(groupIds,groupRanges);if(changeCalled==true){DOMutil.cleanupElements(this.svgElements);this.abortedGraphUpdate=true;return true}this.abortedGraphUpdate=false;var below=undefined;for(i=0;i<groupIds.length;i++){group=this.groups[groupIds[i]];if(this.options.stack===true&&this.options.style===\"line\"){if(group.options.excludeFromStacking==undefined||!group.options.excludeFromStacking){if(below!=undefined){this._stack(groupsData[group.id],groupsData[below.id]);if(group.options.shaded.enabled==true&&group.options.shaded.orientation!==\"group\"){if(group.options.shaded.orientation==\"top\"&&below.options.shaded.orientation!==\"group\"){below.options.shaded.orientation=\"group\";below.options.shaded.groupId=group.id}else{group.options.shaded.orientation=\"group\";group.options.shaded.groupId=below.id}}}below=group}}this._convertYcoordinates(groupsData[groupIds[i]],group)}var paths={};for(i=0;i<groupIds.length;i++){group=this.groups[groupIds[i]];if(group.options.style===\"line\"&&group.options.shaded.enabled==true){var dataset=groupsData[groupIds[i]];if(dataset==null||dataset.length==0){continue}if(!paths.hasOwnProperty(groupIds[i])){paths[groupIds[i]]=Lines.calcPath(dataset,group)}if(group.options.shaded.orientation===\"group\"){var subGroupId=group.options.shaded.groupId;if(groupIds.indexOf(subGroupId)===-1){console.log(group.id+\": Unknown shading group target given:\"+subGroupId);continue}if(!paths.hasOwnProperty(subGroupId)){paths[subGroupId]=Lines.calcPath(groupsData[subGroupId],this.groups[subGroupId])}Lines.drawShading(paths[groupIds[i]],group,paths[subGroupId],this.framework)}else{Lines.drawShading(paths[groupIds[i]],group,undefined,this.framework)}}}Bars.draw(groupIds,groupsData,this.framework);for(i=0;i<groupIds.length;i++){group=this.groups[groupIds[i]];if(groupsData[groupIds[i]].length>0){switch(group.options.style){case\"line\":if(!paths.hasOwnProperty(groupIds[i])){paths[groupIds[i]]=Lines.calcPath(groupsData[groupIds[i]],group)}Lines.draw(paths[groupIds[i]],group,this.framework);case\"point\":case\"points\":if(group.options.style==\"point\"||group.options.style==\"points\"||group.options.drawPoints.enabled==true){Points.draw(groupsData[groupIds[i]],group,this.framework)}break;case\"bar\":default:}}}}}DOMutil.cleanupElements(this.svgElements);return false};LineGraph.prototype._stack=function(data,subData){var index,dx,dy,subPrevPoint,subNextPoint;index=0;for(var j=0;j<data.length;j++){subPrevPoint=undefined;subNextPoint=undefined;for(var k=index;k<subData.length;k++){if(subData[k].x===data[j].x){subPrevPoint=subData[k];subNextPoint=subData[k];index=k;break}else if(subData[k].x>data[j].x){subNextPoint=subData[k];if(k==0){subPrevPoint=subNextPoint}else{subPrevPoint=subData[k-1]}index=k;break}}if(subNextPoint===undefined){subPrevPoint=subData[subData.length-1];subNextPoint=subData[subData.length-1]}dx=subNextPoint.x-subPrevPoint.x;dy=subNextPoint.y-subPrevPoint.y;if(dx==0){data[j].y=data[j].orginalY+subNextPoint.y}else{data[j].y=data[j].orginalY+dy/dx*(data[j].x-subPrevPoint.x)+subPrevPoint.y}}};LineGraph.prototype._getRelevantData=function(groupIds,groupsData,minDate,maxDate){var group,i,j,item;if(groupIds.length>0){for(i=0;i<groupIds.length;i++){group=this.groups[groupIds[i]];var itemsData=group.getItems();if(group.options.sort==true){var dateComparator=function dateComparator(a,b){return a.getTime()==b.getTime()?0:a<b?-1:1};var first=Math.max(0,util.binarySearchValue(itemsData,minDate,\"x\",\"before\",dateComparator));var last=Math.min(itemsData.length,util.binarySearchValue(itemsData,maxDate,\"x\",\"after\",dateComparator)+1);if(last<=0){last=itemsData.length}var dataContainer=new Array(last-first);for(j=first;j<last;j++){item=group.itemsData[j];dataContainer[j-first]=item}groupsData[groupIds[i]]=dataContainer}else{groupsData[groupIds[i]]=group.itemsData}}}};LineGraph.prototype._applySampling=function(groupIds,groupsData){var group;if(groupIds.length>0){for(var i=0;i<groupIds.length;i++){group=this.groups[groupIds[i]];if(group.options.sampling==true){var dataContainer=groupsData[groupIds[i]];if(dataContainer.length>0){var increment=1;var amountOfPoints=dataContainer.length;var xDistance=this.body.util.toGlobalScreen(dataContainer[dataContainer.length-1].x)-this.body.util.toGlobalScreen(dataContainer[0].x);var pointsPerPixel=amountOfPoints/xDistance;increment=Math.min(Math.ceil(.2*amountOfPoints),Math.max(1,Math.round(pointsPerPixel)));var sampledData=new Array(amountOfPoints);for(var j=0;j<amountOfPoints;j+=increment){var idx=Math.round(j/increment);sampledData[idx]=dataContainer[j]}groupsData[groupIds[i]]=sampledData.splice(0,Math.round(amountOfPoints/increment))}}}}};LineGraph.prototype._getYRanges=function(groupIds,groupsData,groupRanges){var groupData,group,i;var combinedDataLeft=[];var combinedDataRight=[];var options;if(groupIds.length>0){for(i=0;i<groupIds.length;i++){groupData=groupsData[groupIds[i]];options=this.groups[groupIds[i]].options;if(groupData.length>0){group=this.groups[groupIds[i]];if(options.stack===true&&options.style===\"bar\"){if(options.yAxisOrientation===\"left\"){combinedDataLeft=combinedDataLeft.concat(groupData)}else{combinedDataRight=combinedDataRight.concat(groupData)}}else{groupRanges[groupIds[i]]=group.getYRange(groupData,groupIds[i])}}}Bars.getStackedYRange(combinedDataLeft,groupRanges,groupIds,\"__barStackLeft\",\"left\");Bars.getStackedYRange(combinedDataRight,groupRanges,groupIds,\"__barStackRight\",\"right\")}};LineGraph.prototype._updateYAxis=function(groupIds,groupRanges){var resized=false;var yAxisLeftUsed=false;var yAxisRightUsed=false;var minLeft=1e9,minRight=1e9,maxLeft=-1e9,maxRight=-1e9,minVal,maxVal;if(groupIds.length>0){for(var i=0;i<groupIds.length;i++){var group=this.groups[groupIds[i]];if(group&&group.options.yAxisOrientation!=\"right\"){yAxisLeftUsed=true;minLeft=1e9;maxLeft=-1e9}else if(group&&group.options.yAxisOrientation){yAxisRightUsed=true;minRight=1e9;maxRight=-1e9}}for(i=0;i<groupIds.length;i++){if(groupRanges.hasOwnProperty(groupIds[i])){if(groupRanges[groupIds[i]].ignore!==true){minVal=groupRanges[groupIds[i]].min;maxVal=groupRanges[groupIds[i]].max;if(groupRanges[groupIds[i]].yAxisOrientation!=\"right\"){yAxisLeftUsed=true;minLeft=minLeft>minVal?minVal:minLeft;maxLeft=maxLeft<maxVal?maxVal:maxLeft}else{yAxisRightUsed=true;minRight=minRight>minVal?minVal:minRight;maxRight=maxRight<maxVal?maxVal:maxRight}}}}if(yAxisLeftUsed==true){this.yAxisLeft.setRange(minLeft,maxLeft)}if(yAxisRightUsed==true){this.yAxisRight.setRange(minRight,maxRight)}}resized=this._toggleAxisVisiblity(yAxisLeftUsed,this.yAxisLeft)||resized;resized=this._toggleAxisVisiblity(yAxisRightUsed,this.yAxisRight)||resized;if(yAxisRightUsed==true&&yAxisLeftUsed==true){this.yAxisLeft.drawIcons=true;this.yAxisRight.drawIcons=true}else{this.yAxisLeft.drawIcons=false;this.yAxisRight.drawIcons=false}this.yAxisRight.master=!yAxisLeftUsed;this.yAxisRight.masterAxis=this.yAxisLeft;if(this.yAxisRight.master==false){if(yAxisRightUsed==true){this.yAxisLeft.lineOffset=this.yAxisRight.width}else{this.yAxisLeft.lineOffset=0}resized=this.yAxisLeft.redraw()||resized;resized=this.yAxisRight.redraw()||resized}else{resized=this.yAxisRight.redraw()||resized}var tempGroups=[\"__barStackLeft\",\"__barStackRight\",\"__lineStackLeft\",\"__lineStackRight\"];for(i=0;i<tempGroups.length;i++){if(groupIds.indexOf(tempGroups[i])!=-1){groupIds.splice(groupIds.indexOf(tempGroups[i]),1)}}return resized};LineGraph.prototype._toggleAxisVisiblity=function(axisUsed,axis){var changed=false;if(axisUsed==false){if(axis.dom.frame.parentNode&&axis.hidden==false){axis.hide();changed=true}}else{if(!axis.dom.frame.parentNode&&axis.hidden==true){axis.show();changed=true}}return changed};LineGraph.prototype._convertXcoordinates=function(datapoints){var toScreen=this.body.util.toScreen;for(var i=0;i<datapoints.length;i++){datapoints[i].screen_x=toScreen(datapoints[i].x)+this.props.width;datapoints[i].screen_y=datapoints[i].y;if(datapoints[i].end!=undefined){datapoints[i].screen_end=toScreen(datapoints[i].end)+this.props.width}else{datapoints[i].screen_end=undefined}}};LineGraph.prototype._convertYcoordinates=function(datapoints,group){var axis=this.yAxisLeft;var svgHeight=Number(this.svg.style.height.replace(\"px\",\"\"));if(group.options.yAxisOrientation==\"right\"){axis=this.yAxisRight}for(var i=0;i<datapoints.length;i++){datapoints[i].screen_y=Math.round(axis.convertValue(datapoints[i].y))}group.setZeroPosition(Math.min(svgHeight,axis.convertValue(0)))};module.exports=LineGraph},function(module,exports,__webpack_require__){\"use strict\";var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DOMutil=__webpack_require__(14);var Component=__webpack_require__(16);var DataScale=__webpack_require__(108);function DataAxis(body,options,svg,linegraphOptions){this.id=util.randomUUID();this.body=body;this.defaultOptions={orientation:\"left\",showMinorLabels:true,showMajorLabels:true,icons:false,majorLinesOffset:7,minorLinesOffset:4,labelOffsetX:10,labelOffsetY:2,iconWidth:20,width:\"40px\",visible:true,alignZeros:true,left:{range:{min:undefined,max:undefined},format:function format(value){return\"\"+parseFloat(value.toPrecision(3))},title:{text:undefined,style:undefined}},right:{range:{min:undefined,max:undefined},format:function format(value){return\"\"+parseFloat(value.toPrecision(3))},title:{text:undefined,style:undefined}}};this.linegraphOptions=linegraphOptions;this.linegraphSVG=svg;this.props={};this.DOMelements={lines:{},labels:{},title:{}};this.dom={};this.scale=undefined;this.range={start:0,end:0};this.options=util.extend({},this.defaultOptions);this.conversionFactor=1;this.setOptions(options);this.width=Number((\"\"+this.options.width).replace(\"px\",\"\"));this.minWidth=this.width;this.height=this.linegraphSVG.getBoundingClientRect().height;this.hidden=false;this.stepPixels=25;this.zeroCrossing=-1;this.amountOfSteps=-1;this.lineOffset=0;this.master=true;this.masterAxis=null;this.svgElements={};this.iconsRemoved=false;this.groups={};this.amountOfGroups=0;this._create();this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups};var me=this;this.body.emitter.on(\"verticalDrag\",function(){me.dom.lineContainer.style.top=me.body.domProps.scrollTop+\"px\"})}DataAxis.prototype=new Component;DataAxis.prototype.addGroup=function(label,graphOptions){if(!this.groups.hasOwnProperty(label)){this.groups[label]=graphOptions}this.amountOfGroups+=1};DataAxis.prototype.updateGroup=function(label,graphOptions){if(!this.groups.hasOwnProperty(label)){this.amountOfGroups+=1}this.groups[label]=graphOptions};DataAxis.prototype.removeGroup=function(label){if(this.groups.hasOwnProperty(label)){delete this.groups[label];this.amountOfGroups-=1}};DataAxis.prototype.setOptions=function(options){if(options){var redraw=false;if(this.options.orientation!=options.orientation&&options.orientation!==undefined){redraw=true}var fields=[\"orientation\",\"showMinorLabels\",\"showMajorLabels\",\"icons\",\"majorLinesOffset\",\"minorLinesOffset\",\"labelOffsetX\",\"labelOffsetY\",\"iconWidth\",\"width\",\"visible\",\"left\",\"right\",\"alignZeros\"];util.selectiveDeepExtend(fields,this.options,options);this.minWidth=Number((\"\"+this.options.width).replace(\"px\",\"\"));if(redraw===true&&this.dom.frame){this.hide();this.show()}}};DataAxis.prototype._create=function(){this.dom.frame=document.createElement(\"div\");this.dom.frame.style.width=this.options.width;this.dom.frame.style.height=this.height;this.dom.lineContainer=document.createElement(\"div\");this.dom.lineContainer.style.width=\"100%\";this.dom.lineContainer.style.height=this.height;this.dom.lineContainer.style.position=\"relative\";this.svg=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");this.svg.style.position=\"absolute\";this.svg.style.top=\"0px\";this.svg.style.height=\"100%\";this.svg.style.width=\"100%\";this.svg.style.display=\"block\";this.dom.frame.appendChild(this.svg)};DataAxis.prototype._redrawGroupIcons=function(){DOMutil.prepareElements(this.svgElements);var x;var iconWidth=this.options.iconWidth;var iconHeight=15;var iconOffset=4;var y=iconOffset+.5*iconHeight;if(this.options.orientation===\"left\"){x=iconOffset}else{x=this.width-iconWidth-iconOffset}var groupArray=(0,_keys2[\"default\"])(this.groups);groupArray.sort(function(a,b){return a<b?-1:1});for(var i=0;i<groupArray.length;i++){var groupId=groupArray[i];if(this.groups[groupId].visible===true&&(this.linegraphOptions.visibility[groupId]===undefined||this.linegraphOptions.visibility[groupId]===true)){this.groups[groupId].getLegend(iconWidth,iconHeight,this.framework,x,y);y+=iconHeight+iconOffset}}DOMutil.cleanupElements(this.svgElements);this.iconsRemoved=false};DataAxis.prototype._cleanupIcons=function(){if(this.iconsRemoved===false){DOMutil.prepareElements(this.svgElements);DOMutil.cleanupElements(this.svgElements);this.iconsRemoved=true}};DataAxis.prototype.show=function(){this.hidden=false;if(!this.dom.frame.parentNode){if(this.options.orientation===\"left\"){this.body.dom.left.appendChild(this.dom.frame)}else{this.body.dom.right.appendChild(this.dom.frame)}}if(!this.dom.lineContainer.parentNode){this.body.dom.backgroundHorizontal.appendChild(this.dom.lineContainer)}};DataAxis.prototype.hide=function(){this.hidden=true;if(this.dom.frame.parentNode){this.dom.frame.parentNode.removeChild(this.dom.frame)}if(this.dom.lineContainer.parentNode){this.dom.lineContainer.parentNode.removeChild(this.dom.lineContainer)}};DataAxis.prototype.setRange=function(start,end){this.range.start=start;this.range.end=end};DataAxis.prototype.redraw=function(){var resized=false;var activeGroups=0;this.dom.lineContainer.style.top=this.body.domProps.scrollTop+\"px\";for(var groupId in this.groups){if(this.groups.hasOwnProperty(groupId)){if(this.groups[groupId].visible===true&&(this.linegraphOptions.visibility[groupId]===undefined||this.linegraphOptions.visibility[groupId]===true)){activeGroups++}}}if(this.amountOfGroups===0||activeGroups===0){this.hide()}else{this.show();this.height=Number(this.linegraphSVG.style.height.replace(\"px\",\"\"));this.dom.lineContainer.style.height=this.height+\"px\";this.width=this.options.visible===true?Number((\"\"+this.options.width).replace(\"px\",\"\")):0;var props=this.props;var frame=this.dom.frame;frame.className=\"vis-data-axis\";this._calculateCharSize();var orientation=this.options.orientation;var showMinorLabels=this.options.showMinorLabels;var showMajorLabels=this.options.showMajorLabels;props.minorLabelHeight=showMinorLabels?props.minorCharHeight:0;props.majorLabelHeight=showMajorLabels?props.majorCharHeight:0;props.minorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.minorLinesOffset;props.minorLineHeight=1;props.majorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.majorLinesOffset;props.majorLineHeight=1;if(orientation===\"left\"){frame.style.top=\"0\";frame.style.left=\"0\";frame.style.bottom=\"\";frame.style.width=this.width+\"px\";frame.style.height=this.height+\"px\";this.props.width=this.body.domProps.left.width;this.props.height=this.body.domProps.left.height}else{frame.style.top=\"\";frame.style.bottom=\"0\";frame.style.left=\"0\";frame.style.width=this.width+\"px\";frame.style.height=this.height+\"px\";this.props.width=this.body.domProps.right.width;this.props.height=this.body.domProps.right.height}resized=this._redrawLabels();resized=this._isResized()||resized;if(this.options.icons===true){this._redrawGroupIcons()}else{this._cleanupIcons()}this._redrawTitle(orientation)}return resized};DataAxis.prototype._redrawLabels=function(){var _this=this;var resized=false;DOMutil.prepareElements(this.DOMelements.lines);DOMutil.prepareElements(this.DOMelements.labels);var orientation=this.options[\"orientation\"];var customRange=this.options[orientation].range!=undefined?this.options[orientation].range:{};var autoScaleEnd=true;if(customRange.max!=undefined){this.range.end=customRange.max;autoScaleEnd=false}var autoScaleStart=true;if(customRange.min!=undefined){this.range.start=customRange.min;autoScaleStart=false}this.scale=new DataScale(this.range.start,this.range.end,autoScaleStart,autoScaleEnd,this.dom.frame.offsetHeight,this.props.majorCharHeight,this.options.alignZeros,this.options[orientation].format);if(this.master===false&&this.masterAxis!=undefined){this.scale.followScale(this.masterAxis.scale)}this.maxLabelSize=0;var lines=this.scale.getLines();lines.forEach(function(line){var y=line.y;var isMajor=line.major;if(_this.options[\"showMinorLabels\"]&&isMajor===false){_this._redrawLabel(y-2,line.val,orientation,\"vis-y-axis vis-minor\",_this.props.minorCharHeight)}if(isMajor){if(y>=0){_this._redrawLabel(y-2,line.val,orientation,\"vis-y-axis vis-major\",_this.props.majorCharHeight)}}if(_this.master===true){if(isMajor){_this._redrawLine(y,orientation,\"vis-grid vis-horizontal vis-major\",_this.options.majorLinesOffset,_this.props.majorLineWidth)}else{_this._redrawLine(y,orientation,\"vis-grid vis-horizontal vis-minor\",_this.options.minorLinesOffset,_this.props.minorLineWidth)}}});var titleWidth=0;if(this.options[orientation].title!==undefined&&this.options[orientation].title.text!==undefined){titleWidth=this.props.titleCharHeight}var offset=this.options.icons===true?Math.max(this.options.iconWidth,titleWidth)+this.options.labelOffsetX+15:titleWidth+this.options.labelOffsetX+15;if(this.maxLabelSize>this.width-offset&&this.options.visible===true){this.width=this.maxLabelSize+offset;this.options.width=this.width+\"px\";DOMutil.cleanupElements(this.DOMelements.lines);DOMutil.cleanupElements(this.DOMelements.labels);this.redraw();resized=true}else if(this.maxLabelSize<this.width-offset&&this.options.visible===true&&this.width>this.minWidth){this.width=Math.max(this.minWidth,this.maxLabelSize+offset);this.options.width=this.width+\"px\";DOMutil.cleanupElements(this.DOMelements.lines);DOMutil.cleanupElements(this.DOMelements.labels);this.redraw();resized=true}else{DOMutil.cleanupElements(this.DOMelements.lines);DOMutil.cleanupElements(this.DOMelements.labels);resized=false}return resized};DataAxis.prototype.convertValue=function(value){return this.scale.convertValue(value)};DataAxis.prototype.screenToValue=function(x){return this.scale.screenToValue(x)};DataAxis.prototype._redrawLabel=function(y,text,orientation,className,characterHeight){var label=DOMutil.getDOMElement(\"div\",this.DOMelements.labels,this.dom.frame);label.className=className;label.innerHTML=text;if(orientation===\"left\"){label.style.left=\"-\"+this.options.labelOffsetX+\"px\";label.style.textAlign=\"right\"}else{label.style.right=\"-\"+this.options.labelOffsetX+\"px\";label.style.textAlign=\"left\"}label.style.top=y-.5*characterHeight+this.options.labelOffsetY+\"px\";text+=\"\";var largestWidth=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);if(this.maxLabelSize<text.length*largestWidth){this.maxLabelSize=text.length*largestWidth}};DataAxis.prototype._redrawLine=function(y,orientation,className,offset,width){if(this.master===true){\nvar line=DOMutil.getDOMElement(\"div\",this.DOMelements.lines,this.dom.lineContainer);line.className=className;line.innerHTML=\"\";if(orientation===\"left\"){line.style.left=this.width-offset+\"px\"}else{line.style.right=this.width-offset+\"px\"}line.style.width=width+\"px\";line.style.top=y+\"px\"}};DataAxis.prototype._redrawTitle=function(orientation){DOMutil.prepareElements(this.DOMelements.title);if(this.options[orientation].title!==undefined&&this.options[orientation].title.text!==undefined){var title=DOMutil.getDOMElement(\"div\",this.DOMelements.title,this.dom.frame);title.className=\"vis-y-axis vis-title vis-\"+orientation;title.innerHTML=this.options[orientation].title.text;if(this.options[orientation].title.style!==undefined){util.addCssText(title,this.options[orientation].title.style)}if(orientation===\"left\"){title.style.left=this.props.titleCharHeight+\"px\"}else{title.style.right=this.props.titleCharHeight+\"px\"}title.style.width=this.height+\"px\"}DOMutil.cleanupElements(this.DOMelements.title)};DataAxis.prototype._calculateCharSize=function(){if(!(\"minorCharHeight\"in this.props)){var textMinor=document.createTextNode(\"0\");var measureCharMinor=document.createElement(\"div\");measureCharMinor.className=\"vis-y-axis vis-minor vis-measure\";measureCharMinor.appendChild(textMinor);this.dom.frame.appendChild(measureCharMinor);this.props.minorCharHeight=measureCharMinor.clientHeight;this.props.minorCharWidth=measureCharMinor.clientWidth;this.dom.frame.removeChild(measureCharMinor)}if(!(\"majorCharHeight\"in this.props)){var textMajor=document.createTextNode(\"0\");var measureCharMajor=document.createElement(\"div\");measureCharMajor.className=\"vis-y-axis vis-major vis-measure\";measureCharMajor.appendChild(textMajor);this.dom.frame.appendChild(measureCharMajor);this.props.majorCharHeight=measureCharMajor.clientHeight;this.props.majorCharWidth=measureCharMajor.clientWidth;this.dom.frame.removeChild(measureCharMajor)}if(!(\"titleCharHeight\"in this.props)){var textTitle=document.createTextNode(\"0\");var measureCharTitle=document.createElement(\"div\");measureCharTitle.className=\"vis-y-axis vis-title vis-measure\";measureCharTitle.appendChild(textTitle);this.dom.frame.appendChild(measureCharTitle);this.props.titleCharHeight=measureCharTitle.clientHeight;this.props.titleCharWidth=measureCharTitle.clientWidth;this.dom.frame.removeChild(measureCharTitle)}};module.exports=DataAxis},function(module,exports,__webpack_require__){\"use strict\";function DataScale(start,end,autoScaleStart,autoScaleEnd,containerHeight,majorCharHeight){var zeroAlign=arguments.length>6&&arguments[6]!==undefined?arguments[6]:false;var formattingFunction=arguments.length>7&&arguments[7]!==undefined?arguments[7]:false;this.majorSteps=[1,2,5,10];this.minorSteps=[.25,.5,1,2];this.customLines=null;this.containerHeight=containerHeight;this.majorCharHeight=majorCharHeight;this._start=start;this._end=end;this.scale=1;this.minorStepIdx=-1;this.magnitudefactor=1;this.determineScale();this.zeroAlign=zeroAlign;this.autoScaleStart=autoScaleStart;this.autoScaleEnd=autoScaleEnd;this.formattingFunction=formattingFunction;if(autoScaleStart||autoScaleEnd){var me=this;var roundToMinor=function roundToMinor(value){var rounded=value-value%(me.magnitudefactor*me.minorSteps[me.minorStepIdx]);if(value%(me.magnitudefactor*me.minorSteps[me.minorStepIdx])>.5*(me.magnitudefactor*me.minorSteps[me.minorStepIdx])){return rounded+me.magnitudefactor*me.minorSteps[me.minorStepIdx]}else{return rounded}};if(autoScaleStart){this._start-=this.magnitudefactor*2*this.minorSteps[this.minorStepIdx];this._start=roundToMinor(this._start)}if(autoScaleEnd){this._end+=this.magnitudefactor*this.minorSteps[this.minorStepIdx];this._end=roundToMinor(this._end)}this.determineScale()}}DataScale.prototype.setCharHeight=function(majorCharHeight){this.majorCharHeight=majorCharHeight};DataScale.prototype.setHeight=function(containerHeight){this.containerHeight=containerHeight};DataScale.prototype.determineScale=function(){var range=this._end-this._start;this.scale=this.containerHeight/range;var minimumStepValue=this.majorCharHeight/this.scale;var orderOfMagnitude=range>0?Math.round(Math.log(range)/Math.LN10):0;this.minorStepIdx=-1;this.magnitudefactor=Math.pow(10,orderOfMagnitude);var start=0;if(orderOfMagnitude<0){start=orderOfMagnitude}var solutionFound=false;for(var l=start;Math.abs(l)<=Math.abs(orderOfMagnitude);l++){this.magnitudefactor=Math.pow(10,l);for(var j=0;j<this.minorSteps.length;j++){var stepSize=this.magnitudefactor*this.minorSteps[j];if(stepSize>=minimumStepValue){solutionFound=true;this.minorStepIdx=j;break}}if(solutionFound===true){break}}};DataScale.prototype.is_major=function(value){return value%(this.magnitudefactor*this.majorSteps[this.minorStepIdx])===0};DataScale.prototype.getStep=function(){return this.magnitudefactor*this.minorSteps[this.minorStepIdx]};DataScale.prototype.getFirstMajor=function(){var majorStep=this.magnitudefactor*this.majorSteps[this.minorStepIdx];return this.convertValue(this._start+(majorStep-this._start%majorStep)%majorStep)};DataScale.prototype.formatValue=function(current){var returnValue=current.toPrecision(5);if(typeof this.formattingFunction===\"function\"){returnValue=this.formattingFunction(current)}if(typeof returnValue===\"number\"){return\"\"+returnValue}else if(typeof returnValue===\"string\"){return returnValue}else{return current.toPrecision(5)}};DataScale.prototype.getLines=function(){var lines=[];var step=this.getStep();var bottomOffset=(step-this._start%step)%step;for(var i=this._start+bottomOffset;this._end-i>1e-5;i+=step){if(i!=this._start){lines.push({major:this.is_major(i),y:this.convertValue(i),val:this.formatValue(i)})}}return lines};DataScale.prototype.followScale=function(other){var oldStepIdx=this.minorStepIdx;var oldStart=this._start;var oldEnd=this._end;var me=this;var increaseMagnitude=function increaseMagnitude(){me.magnitudefactor*=2};var decreaseMagnitude=function decreaseMagnitude(){me.magnitudefactor/=2};if(other.minorStepIdx<=1&&this.minorStepIdx<=1||other.minorStepIdx>1&&this.minorStepIdx>1){}else if(other.minorStepIdx<this.minorStepIdx){this.minorStepIdx=1;if(oldStepIdx==2){increaseMagnitude()}else{increaseMagnitude();increaseMagnitude()}}else{this.minorStepIdx=2;if(oldStepIdx==1){decreaseMagnitude()}else{decreaseMagnitude();decreaseMagnitude()}}var otherZero=other.convertValue(0);var otherStep=other.getStep()*other.scale;var done=false;var count=0;while(!done&&count++<5){this.scale=otherStep/(this.minorSteps[this.minorStepIdx]*this.magnitudefactor);var newRange=this.containerHeight/this.scale;this._start=oldStart;this._end=this._start+newRange;var myOriginalZero=this._end*this.scale;var majorStep=this.magnitudefactor*this.majorSteps[this.minorStepIdx];var majorOffset=this.getFirstMajor()-other.getFirstMajor();if(this.zeroAlign){var zeroOffset=otherZero-myOriginalZero;this._end+=zeroOffset/this.scale;this._start=this._end-newRange}else{if(!this.autoScaleStart){this._start+=majorStep-majorOffset/this.scale;this._end=this._start+newRange}else{this._start-=majorOffset/this.scale;this._end=this._start+newRange}}if(!this.autoScaleEnd&&this._end>oldEnd+1e-5){decreaseMagnitude();done=false;continue}if(!this.autoScaleStart&&this._start<oldStart-1e-5){if(this.zeroAlign&&oldStart>=0){console.warn(\"Can't adhere to given 'min' range, due to zeroalign\")}else{decreaseMagnitude();done=false;continue}}if(this.autoScaleStart&&this.autoScaleEnd&&newRange<oldEnd-oldStart){increaseMagnitude();done=false;continue}done=true}};DataScale.prototype.convertValue=function(value){return this.containerHeight-(value-this._start)*this.scale};DataScale.prototype.screenToValue=function(pixels){return(this.containerHeight-pixels)/this.scale+this._start};module.exports=DataScale},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Bars=__webpack_require__(110);var Lines=__webpack_require__(111);var Points=__webpack_require__(72);function GraphGroup(group,groupId,options,groupsUsingDefaultStyles){this.id=groupId;var fields=[\"sampling\",\"style\",\"sort\",\"yAxisOrientation\",\"barChart\",\"drawPoints\",\"shaded\",\"interpolation\",\"zIndex\",\"excludeFromStacking\",\"excludeFromLegend\"];this.options=util.selectiveBridgeObject(fields,options);this.usingDefaultStyle=group.className===undefined;this.groupsUsingDefaultStyles=groupsUsingDefaultStyles;this.zeroPosition=0;this.update(group);if(this.usingDefaultStyle==true){this.groupsUsingDefaultStyles[0]+=1}this.itemsData=[];this.visible=group.visible===undefined?true:group.visible}GraphGroup.prototype.setItems=function(items){if(items!=null){this.itemsData=items;if(this.options.sort==true){util.insertSort(this.itemsData,function(a,b){return a.x>b.x?1:-1})}}else{this.itemsData=[]}};GraphGroup.prototype.getItems=function(){return this.itemsData};GraphGroup.prototype.setZeroPosition=function(pos){this.zeroPosition=pos};GraphGroup.prototype.setOptions=function(options){if(options!==undefined){var fields=[\"sampling\",\"style\",\"sort\",\"yAxisOrientation\",\"barChart\",\"zIndex\",\"excludeFromStacking\",\"excludeFromLegend\"];util.selectiveDeepExtend(fields,this.options,options);if(typeof options.drawPoints==\"function\"){options.drawPoints={onRender:options.drawPoints}}util.mergeOptions(this.options,options,\"interpolation\");util.mergeOptions(this.options,options,\"drawPoints\");util.mergeOptions(this.options,options,\"shaded\");if(options.interpolation){if((0,_typeof3[\"default\"])(options.interpolation)==\"object\"){if(options.interpolation.parametrization){if(options.interpolation.parametrization==\"uniform\"){this.options.interpolation.alpha=0}else if(options.interpolation.parametrization==\"chordal\"){this.options.interpolation.alpha=1}else{this.options.interpolation.parametrization=\"centripetal\";this.options.interpolation.alpha=.5}}}}}};GraphGroup.prototype.update=function(group){this.group=group;this.content=group.content||\"graph\";this.className=group.className||this.className||\"vis-graph-group\"+this.groupsUsingDefaultStyles[0]%10;this.visible=group.visible===undefined?true:group.visible;this.style=group.style;this.setOptions(group.options)};GraphGroup.prototype.getLegend=function(iconWidth,iconHeight,framework,x,y){if(framework==undefined||framework==null){var svg=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");framework={svg:svg,svgElements:{},options:this.options,groups:[this]}}if(x==undefined||x==null){x=0}if(y==undefined||y==null){y=.5*iconHeight}switch(this.options.style){case\"line\":Lines.drawIcon(this,x,y,iconWidth,iconHeight,framework);break;case\"points\":case\"point\":Points.drawIcon(this,x,y,iconWidth,iconHeight,framework);break;case\"bar\":Bars.drawIcon(this,x,y,iconWidth,iconHeight,framework);break}return{icon:framework.svg,label:this.content,orientation:this.options.yAxisOrientation}};GraphGroup.prototype.getYRange=function(groupData){var yMin=groupData[0].y;var yMax=groupData[0].y;for(var j=0;j<groupData.length;j++){yMin=yMin>groupData[j].y?groupData[j].y:yMin;yMax=yMax<groupData[j].y?groupData[j].y:yMax}return{min:yMin,max:yMax,yAxisOrientation:this.options.yAxisOrientation}};module.exports=GraphGroup},function(module,exports,__webpack_require__){\"use strict\";var DOMutil=__webpack_require__(14);var Points=__webpack_require__(72);function Bargraph(groupId,options){}Bargraph.drawIcon=function(group,x,y,iconWidth,iconHeight,framework){var fillHeight=iconHeight*.5;var outline=DOMutil.getSVGElement(\"rect\",framework.svgElements,framework.svg);outline.setAttributeNS(null,\"x\",x);outline.setAttributeNS(null,\"y\",y-fillHeight);outline.setAttributeNS(null,\"width\",iconWidth);outline.setAttributeNS(null,\"height\",2*fillHeight);outline.setAttributeNS(null,\"class\",\"vis-outline\");var barWidth=Math.round(.3*iconWidth);var originalWidth=group.options.barChart.width;var scale=originalWidth/barWidth;var bar1Height=Math.round(.4*iconHeight);var bar2Height=Math.round(.75*iconHeight);var offset=Math.round((iconWidth-2*barWidth)/3);DOMutil.drawBar(x+.5*barWidth+offset,y+fillHeight-bar1Height-1,barWidth,bar1Height,group.className+\" vis-bar\",framework.svgElements,framework.svg,group.style);DOMutil.drawBar(x+1.5*barWidth+offset+2,y+fillHeight-bar2Height-1,barWidth,bar2Height,group.className+\" vis-bar\",framework.svgElements,framework.svg,group.style);if(group.options.drawPoints.enabled==true){var groupTemplate={style:group.options.drawPoints.style,styles:group.options.drawPoints.styles,size:group.options.drawPoints.size/scale,className:group.className};DOMutil.drawPoint(x+.5*barWidth+offset,y+fillHeight-bar1Height-1,groupTemplate,framework.svgElements,framework.svg);DOMutil.drawPoint(x+1.5*barWidth+offset+2,y+fillHeight-bar2Height-1,groupTemplate,framework.svgElements,framework.svg)}};Bargraph.draw=function(groupIds,processedGroupData,framework){var combinedData=[];var intersections={};var coreDistance;var key,drawData;var group;var i,j;var barPoints=0;for(i=0;i<groupIds.length;i++){group=framework.groups[groupIds[i]];if(group.options.style===\"bar\"){if(group.visible===true&&(framework.options.groups.visibility[groupIds[i]]===undefined||framework.options.groups.visibility[groupIds[i]]===true)){for(j=0;j<processedGroupData[groupIds[i]].length;j++){combinedData.push({screen_x:processedGroupData[groupIds[i]][j].screen_x,screen_end:processedGroupData[groupIds[i]][j].screen_end,screen_y:processedGroupData[groupIds[i]][j].screen_y,x:processedGroupData[groupIds[i]][j].x,end:processedGroupData[groupIds[i]][j].end,y:processedGroupData[groupIds[i]][j].y,groupId:groupIds[i],label:processedGroupData[groupIds[i]][j].label});barPoints+=1}}}}if(barPoints===0){return}combinedData.sort(function(a,b){if(a.screen_x===b.screen_x){return a.groupId<b.groupId?-1:1}else{return a.screen_x-b.screen_x}});Bargraph._getDataIntersections(intersections,combinedData);for(i=0;i<combinedData.length;i++){group=framework.groups[combinedData[i].groupId];var minWidth=group.options.barChart.minWidth!=undefined?group.options.barChart.minWidth:.1*group.options.barChart.width;key=combinedData[i].screen_x;var heightOffset=0;if(intersections[key]===undefined){if(i+1<combinedData.length){coreDistance=Math.abs(combinedData[i+1].screen_x-key)}drawData=Bargraph._getSafeDrawData(coreDistance,group,minWidth)}else{var nextKey=i+(intersections[key].amount-intersections[key].resolved);if(nextKey<combinedData.length){coreDistance=Math.abs(combinedData[nextKey].screen_x-key)}drawData=Bargraph._getSafeDrawData(coreDistance,group,minWidth);intersections[key].resolved+=1;if(group.options.stack===true&&group.options.excludeFromStacking!==true){if(combinedData[i].screen_y<group.zeroPosition){heightOffset=intersections[key].accumulatedNegative;intersections[key].accumulatedNegative+=group.zeroPosition-combinedData[i].screen_y}else{heightOffset=intersections[key].accumulatedPositive;intersections[key].accumulatedPositive+=group.zeroPosition-combinedData[i].screen_y}}else if(group.options.barChart.sideBySide===true){drawData.width=drawData.width/intersections[key].amount;drawData.offset+=intersections[key].resolved*drawData.width-.5*drawData.width*(intersections[key].amount+1)}}var dataWidth=drawData.width;var start=combinedData[i].screen_x;if(combinedData[i].screen_end!=undefined){dataWidth=combinedData[i].screen_end-combinedData[i].screen_x;start+=dataWidth*.5}else{start+=drawData.offset}DOMutil.drawBar(start,combinedData[i].screen_y-heightOffset,dataWidth,group.zeroPosition-combinedData[i].screen_y,group.className+\" vis-bar\",framework.svgElements,framework.svg,group.style);if(group.options.drawPoints.enabled===true){var pointData={screen_x:combinedData[i].screen_x,screen_y:combinedData[i].screen_y-heightOffset,x:combinedData[i].x,y:combinedData[i].y,groupId:combinedData[i].groupId,label:combinedData[i].label};Points.draw([pointData],group,framework,drawData.offset)}}};Bargraph._getDataIntersections=function(intersections,combinedData){var coreDistance;for(var i=0;i<combinedData.length;i++){if(i+1<combinedData.length){coreDistance=Math.abs(combinedData[i+1].screen_x-combinedData[i].screen_x)}if(i>0){coreDistance=Math.min(coreDistance,Math.abs(combinedData[i-1].screen_x-combinedData[i].screen_x))}if(coreDistance===0){if(intersections[combinedData[i].screen_x]===undefined){intersections[combinedData[i].screen_x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}}intersections[combinedData[i].screen_x].amount+=1}}};Bargraph._getSafeDrawData=function(coreDistance,group,minWidth){var width,offset;if(coreDistance<group.options.barChart.width&&coreDistance>0){width=coreDistance<minWidth?minWidth:coreDistance;offset=0;if(group.options.barChart.align===\"left\"){offset-=.5*coreDistance}else if(group.options.barChart.align===\"right\"){offset+=.5*coreDistance}}else{width=group.options.barChart.width;offset=0;if(group.options.barChart.align===\"left\"){offset-=.5*group.options.barChart.width}else if(group.options.barChart.align===\"right\"){offset+=.5*group.options.barChart.width}}return{width:width,offset:offset}};Bargraph.getStackedYRange=function(combinedData,groupRanges,groupIds,groupLabel,orientation){if(combinedData.length>0){combinedData.sort(function(a,b){if(a.screen_x===b.screen_x){return a.groupId<b.groupId?-1:1}else{return a.screen_x-b.screen_x}});var intersections={};Bargraph._getDataIntersections(intersections,combinedData);groupRanges[groupLabel]=Bargraph._getStackedYRange(intersections,combinedData);groupRanges[groupLabel].yAxisOrientation=orientation;groupIds.push(groupLabel)}};Bargraph._getStackedYRange=function(intersections,combinedData){var key;var yMin=combinedData[0].screen_y;var yMax=combinedData[0].screen_y;for(var i=0;i<combinedData.length;i++){key=combinedData[i].screen_x;if(intersections[key]===undefined){yMin=yMin>combinedData[i].screen_y?combinedData[i].screen_y:yMin;yMax=yMax<combinedData[i].screen_y?combinedData[i].screen_y:yMax}else{if(combinedData[i].screen_y<0){intersections[key].accumulatedNegative+=combinedData[i].screen_y}else{intersections[key].accumulatedPositive+=combinedData[i].screen_y}}}for(var xpos in intersections){if(intersections.hasOwnProperty(xpos)){yMin=yMin>intersections[xpos].accumulatedNegative?intersections[xpos].accumulatedNegative:yMin;yMin=yMin>intersections[xpos].accumulatedPositive?intersections[xpos].accumulatedPositive:yMin;yMax=yMax<intersections[xpos].accumulatedNegative?intersections[xpos].accumulatedNegative:yMax;yMax=yMax<intersections[xpos].accumulatedPositive?intersections[xpos].accumulatedPositive:yMax}}return{min:yMin,max:yMax}};module.exports=Bargraph},function(module,exports,__webpack_require__){\"use strict\";var DOMutil=__webpack_require__(14);function Line(groupId,options){}Line.calcPath=function(dataset,group){if(dataset!=null){if(dataset.length>0){var d=[];if(group.options.interpolation.enabled==true){d=Line._catmullRom(dataset,group)}else{d=Line._linear(dataset)}return d}}};Line.drawIcon=function(group,x,y,iconWidth,iconHeight,framework){var fillHeight=iconHeight*.5;var path,fillPath;var outline=DOMutil.getSVGElement(\"rect\",framework.svgElements,framework.svg);outline.setAttributeNS(null,\"x\",x);outline.setAttributeNS(null,\"y\",y-fillHeight);outline.setAttributeNS(null,\"width\",iconWidth);outline.setAttributeNS(null,\"height\",2*fillHeight);outline.setAttributeNS(null,\"class\",\"vis-outline\");path=DOMutil.getSVGElement(\"path\",framework.svgElements,framework.svg);path.setAttributeNS(null,\"class\",group.className);if(group.style!==undefined){path.setAttributeNS(null,\"style\",group.style)}path.setAttributeNS(null,\"d\",\"M\"+x+\",\"+y+\" L\"+(x+iconWidth)+\",\"+y+\"\");if(group.options.shaded.enabled==true){fillPath=DOMutil.getSVGElement(\"path\",framework.svgElements,framework.svg);if(group.options.shaded.orientation==\"top\"){fillPath.setAttributeNS(null,\"d\",\"M\"+x+\", \"+(y-fillHeight)+\"L\"+x+\",\"+y+\" L\"+(x+iconWidth)+\",\"+y+\" L\"+(x+iconWidth)+\",\"+(y-fillHeight))}else{fillPath.setAttributeNS(null,\"d\",\"M\"+x+\",\"+y+\" \"+\"L\"+x+\",\"+(y+fillHeight)+\" \"+\"L\"+(x+iconWidth)+\",\"+(y+fillHeight)+\"L\"+(x+iconWidth)+\",\"+y)}fillPath.setAttributeNS(null,\"class\",group.className+\" vis-icon-fill\");if(group.options.shaded.style!==undefined&&group.options.shaded.style!==\"\"){fillPath.setAttributeNS(null,\"style\",group.options.shaded.style)}}if(group.options.drawPoints.enabled==true){var groupTemplate={style:group.options.drawPoints.style,styles:group.options.drawPoints.styles,size:group.options.drawPoints.size,className:group.className};DOMutil.drawPoint(x+.5*iconWidth,y,groupTemplate,framework.svgElements,framework.svg)}};Line.drawShading=function(pathArray,group,subPathArray,framework){if(group.options.shaded.enabled==true){var svgHeight=Number(framework.svg.style.height.replace(\"px\",\"\"));var fillPath=DOMutil.getSVGElement(\"path\",framework.svgElements,framework.svg);var type=\"L\";if(group.options.interpolation.enabled==true){type=\"C\"}var dFill;var zero=0;if(group.options.shaded.orientation==\"top\"){zero=0}else if(group.options.shaded.orientation==\"bottom\"){zero=svgHeight}else{zero=Math.min(Math.max(0,group.zeroPosition),svgHeight)}if(group.options.shaded.orientation==\"group\"&&subPathArray!=null&&subPathArray!=undefined){dFill=\"M\"+pathArray[0][0]+\",\"+pathArray[0][1]+\" \"+this.serializePath(pathArray,type,false)+\" L\"+subPathArray[subPathArray.length-1][0]+\",\"+subPathArray[subPathArray.length-1][1]+\" \"+this.serializePath(subPathArray,type,true)+subPathArray[0][0]+\",\"+subPathArray[0][1]+\" Z\"}else{dFill=\"M\"+pathArray[0][0]+\",\"+pathArray[0][1]+\" \"+this.serializePath(pathArray,type,false)+\" V\"+zero+\" H\"+pathArray[0][0]+\" Z\"}fillPath.setAttributeNS(null,\"class\",group.className+\" vis-fill\");if(group.options.shaded.style!==undefined){fillPath.setAttributeNS(null,\"style\",group.options.shaded.style)}fillPath.setAttributeNS(null,\"d\",dFill)}};Line.draw=function(pathArray,group,framework){if(pathArray!=null&&pathArray!=undefined){var path=DOMutil.getSVGElement(\"path\",framework.svgElements,framework.svg);path.setAttributeNS(null,\"class\",group.className);if(group.style!==undefined){path.setAttributeNS(null,\"style\",group.style)}var type=\"L\";if(group.options.interpolation.enabled==true){type=\"C\"}path.setAttributeNS(null,\"d\",\"M\"+pathArray[0][0]+\",\"+pathArray[0][1]+\" \"+this.serializePath(pathArray,type,false))}};Line.serializePath=function(pathArray,type,inverse){if(pathArray.length<2){return\"\"}var d=type;var i;if(inverse){for(i=pathArray.length-2;i>0;i--){d+=pathArray[i][0]+\",\"+pathArray[i][1]+\" \"}}else{for(i=1;i<pathArray.length;i++){d+=pathArray[i][0]+\",\"+pathArray[i][1]+\" \"}}return d};Line._catmullRomUniform=function(data){var p0,p1,p2,p3,bp1,bp2;var d=[];d.push([Math.round(data[0].screen_x),Math.round(data[0].screen_y)]);var normalization=1/6;var length=data.length;for(var i=0;i<length-1;i++){p0=i==0?data[0]:data[i-1];p1=data[i];p2=data[i+1];p3=i+2<length?data[i+2]:p2;bp1={screen_x:(-p0.screen_x+6*p1.screen_x+p2.screen_x)*normalization,screen_y:(-p0.screen_y+6*p1.screen_y+p2.screen_y)*normalization};bp2={screen_x:(p1.screen_x+6*p2.screen_x-p3.screen_x)*normalization,screen_y:(p1.screen_y+6*p2.screen_y-p3.screen_y)*normalization};d.push([bp1.screen_x,bp1.screen_y]);d.push([bp2.screen_x,bp2.screen_y]);d.push([p2.screen_x,p2.screen_y])}return d};Line._catmullRom=function(data,group){var alpha=group.options.interpolation.alpha;if(alpha==0||alpha===undefined){return this._catmullRomUniform(data)}else{var p0,p1,p2,p3,bp1,bp2,d1,d2,d3,A,B,N,M;var d3powA,d2powA,d3pow2A,d2pow2A,d1pow2A,d1powA;var d=[];d.push([Math.round(data[0].screen_x),Math.round(data[0].screen_y)]);var length=data.length;for(var i=0;i<length-1;i++){p0=i==0?data[0]:data[i-1];p1=data[i];p2=data[i+1];p3=i+2<length?data[i+2]:p2;d1=Math.sqrt(Math.pow(p0.screen_x-p1.screen_x,2)+Math.pow(p0.screen_y-p1.screen_y,2));d2=Math.sqrt(Math.pow(p1.screen_x-p2.screen_x,2)+Math.pow(p1.screen_y-p2.screen_y,2));d3=Math.sqrt(Math.pow(p2.screen_x-p3.screen_x,2)+Math.pow(p2.screen_y-p3.screen_y,2));d3powA=Math.pow(d3,alpha);d3pow2A=Math.pow(d3,2*alpha);d2powA=Math.pow(d2,alpha);d2pow2A=Math.pow(d2,2*alpha);d1powA=Math.pow(d1,alpha);d1pow2A=Math.pow(d1,2*alpha);A=2*d1pow2A+3*d1powA*d2powA+d2pow2A;B=2*d3pow2A+3*d3powA*d2powA+d2pow2A;N=3*d1powA*(d1powA+d2powA);if(N>0){N=1/N}M=3*d3powA*(d3powA+d2powA);if(M>0){M=1/M}bp1={screen_x:(-d2pow2A*p0.screen_x+A*p1.screen_x+d1pow2A*p2.screen_x)*N,screen_y:(-d2pow2A*p0.screen_y+A*p1.screen_y+d1pow2A*p2.screen_y)*N};bp2={screen_x:(d3pow2A*p1.screen_x+B*p2.screen_x-d2pow2A*p3.screen_x)*M,screen_y:(d3pow2A*p1.screen_y+B*p2.screen_y-d2pow2A*p3.screen_y)*M};if(bp1.screen_x==0&&bp1.screen_y==0){bp1=p1}if(bp2.screen_x==0&&bp2.screen_y==0){bp2=p2}d.push([bp1.screen_x,bp1.screen_y]);d.push([bp2.screen_x,bp2.screen_y]);d.push([p2.screen_x,p2.screen_y])}return d}};Line._linear=function(data){var d=[];for(var i=0;i<data.length;i++){d.push([data[i].screen_x,data[i].screen_y])}return d};module.exports=Line},function(module,exports,__webpack_require__){\"use strict\";var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DOMutil=__webpack_require__(14);var Component=__webpack_require__(16);function Legend(body,options,side,linegraphOptions){this.body=body;this.defaultOptions={enabled:false,icons:true,iconSize:20,iconSpacing:6,left:{visible:true,position:\"top-left\"},right:{visible:true,position:\"top-right\"}};this.side=side;this.options=util.extend({},this.defaultOptions);this.linegraphOptions=linegraphOptions;this.svgElements={};this.dom={};this.groups={};this.amountOfGroups=0;this._create();this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups};this.setOptions(options)}Legend.prototype=new Component;Legend.prototype.clear=function(){this.groups={};this.amountOfGroups=0};Legend.prototype.addGroup=function(label,graphOptions){if(graphOptions.options.excludeFromLegend!=true){if(!this.groups.hasOwnProperty(label)){this.groups[label]=graphOptions}this.amountOfGroups+=1}};Legend.prototype.updateGroup=function(label,graphOptions){this.groups[label]=graphOptions};Legend.prototype.removeGroup=function(label){if(this.groups.hasOwnProperty(label)){delete this.groups[label];this.amountOfGroups-=1}};Legend.prototype._create=function(){this.dom.frame=document.createElement(\"div\");this.dom.frame.className=\"vis-legend\";this.dom.frame.style.position=\"absolute\";this.dom.frame.style.top=\"10px\";this.dom.frame.style.display=\"block\";this.dom.textArea=document.createElement(\"div\");this.dom.textArea.className=\"vis-legend-text\";this.dom.textArea.style.position=\"relative\";this.dom.textArea.style.top=\"0px\";this.svg=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");this.svg.style.position=\"absolute\";this.svg.style.top=0+\"px\";this.svg.style.width=this.options.iconSize+5+\"px\";this.svg.style.height=\"100%\";this.dom.frame.appendChild(this.svg);this.dom.frame.appendChild(this.dom.textArea)};Legend.prototype.hide=function(){if(this.dom.frame.parentNode){this.dom.frame.parentNode.removeChild(this.dom.frame)}};Legend.prototype.show=function(){if(!this.dom.frame.parentNode){this.body.dom.center.appendChild(this.dom.frame)}};Legend.prototype.setOptions=function(options){var fields=[\"enabled\",\"orientation\",\"icons\",\"left\",\"right\"];util.selectiveDeepExtend(fields,this.options,options)};Legend.prototype.redraw=function(){var activeGroups=0;var groupArray=(0,_keys2[\"default\"])(this.groups);groupArray.sort(function(a,b){return a<b?-1:1});for(var i=0;i<groupArray.length;i++){var groupId=groupArray[i];if(this.groups[groupId].visible==true&&(this.linegraphOptions.visibility[groupId]===undefined||this.linegraphOptions.visibility[groupId]==true)){activeGroups++}}if(this.options[this.side].visible==false||this.amountOfGroups==0||this.options.enabled==false||activeGroups==0){this.hide()}else{this.show();if(this.options[this.side].position==\"top-left\"||this.options[this.side].position==\"bottom-left\"){this.dom.frame.style.left=\"4px\";this.dom.frame.style.textAlign=\"left\";this.dom.textArea.style.textAlign=\"left\";this.dom.textArea.style.left=this.options.iconSize+15+\"px\";this.dom.textArea.style.right=\"\";this.svg.style.left=0+\"px\";this.svg.style.right=\"\"}else{this.dom.frame.style.right=\"4px\";this.dom.frame.style.textAlign=\"right\";this.dom.textArea.style.textAlign=\"right\";this.dom.textArea.style.right=this.options.iconSize+15+\"px\";this.dom.textArea.style.left=\"\";this.svg.style.right=0+\"px\";this.svg.style.left=\"\"}if(this.options[this.side].position==\"top-left\"||this.options[this.side].position==\"top-right\"){this.dom.frame.style.top=4-Number(this.body.dom.center.style.top.replace(\"px\",\"\"))+\"px\";this.dom.frame.style.bottom=\"\"}else{var scrollableHeight=this.body.domProps.center.height-this.body.domProps.centerContainer.height;this.dom.frame.style.bottom=4+scrollableHeight+Number(this.body.dom.center.style.top.replace(\"px\",\"\"))+\"px\";this.dom.frame.style.top=\"\"}if(this.options.icons==false){this.dom.frame.style.width=this.dom.textArea.offsetWidth+10+\"px\";this.dom.textArea.style.right=\"\";this.dom.textArea.style.left=\"\";this.svg.style.width=\"0px\"}else{this.dom.frame.style.width=this.options.iconSize+15+this.dom.textArea.offsetWidth+10+\"px\";this.drawLegendIcons()}var content=\"\";for(i=0;i<groupArray.length;i++){groupId=groupArray[i];if(this.groups[groupId].visible==true&&(this.linegraphOptions.visibility[groupId]===undefined||this.linegraphOptions.visibility[groupId]==true)){content+=this.groups[groupId].content+\"<br />\"}}this.dom.textArea.innerHTML=content;this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+\"px\"}};Legend.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var groupArray=(0,_keys2[\"default\"])(this.groups);groupArray.sort(function(a,b){return a<b?-1:1});DOMutil.resetElements(this.svgElements);var padding=window.getComputedStyle(this.dom.frame).paddingTop;var iconOffset=Number(padding.replace(\"px\",\"\"));var x=iconOffset;var iconWidth=this.options.iconSize;var iconHeight=.75*this.options.iconSize;var y=iconOffset+.5*iconHeight+3;this.svg.style.width=iconWidth+5+iconOffset+\"px\";for(var i=0;i<groupArray.length;i++){var groupId=groupArray[i];if(this.groups[groupId].visible==true&&(this.linegraphOptions.visibility[groupId]===undefined||this.linegraphOptions.visibility[groupId]==true)){this.groups[groupId].getLegend(iconWidth,iconHeight,this.framework,x,y);y+=iconHeight+this.options.iconSpacing}}}};module.exports=Legend},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var string=\"string\";var bool=\"boolean\";var number=\"number\";var array=\"array\";var date=\"date\";var object=\"object\";var dom=\"dom\";var moment=\"moment\";var any=\"any\";var allOptions={configure:{enabled:{boolean:bool},filter:{boolean:bool,function:\"function\"},container:{dom:dom},__type__:{object:object,boolean:bool,function:\"function\"}},yAxisOrientation:{string:[\"left\",\"right\"]},defaultGroup:{string:string},sort:{boolean:bool},sampling:{boolean:bool},stack:{boolean:bool},graphHeight:{string:string,number:number},shaded:{enabled:{boolean:bool},orientation:{string:[\"bottom\",\"top\",\"zero\",\"group\"]},groupId:{object:object},__type__:{boolean:bool,object:object}},style:{string:[\"line\",\"bar\",\"points\"]},barChart:{width:{number:number},minWidth:{number:number},sideBySide:{boolean:bool},align:{string:[\"left\",\"center\",\"right\"]},__type__:{object:object}},interpolation:{enabled:{boolean:bool},parametrization:{string:[\"centripetal\",\"chordal\",\"uniform\"]},alpha:{number:number},__type__:{object:object,boolean:bool}},drawPoints:{enabled:{boolean:bool},onRender:{function:\"function\"},size:{number:number},style:{string:[\"square\",\"circle\"]},__type__:{object:object,boolean:bool,function:\"function\"}},dataAxis:{showMinorLabels:{boolean:bool},showMajorLabels:{boolean:bool},icons:{boolean:bool},width:{string:string,number:number},visible:{boolean:bool},alignZeros:{boolean:bool},left:{range:{min:{\nnumber:number,undefined:\"undefined\"},max:{number:number,undefined:\"undefined\"},__type__:{object:object}},format:{function:\"function\"},title:{text:{string:string,number:number,undefined:\"undefined\"},style:{string:string,undefined:\"undefined\"},__type__:{object:object}},__type__:{object:object}},right:{range:{min:{number:number,undefined:\"undefined\"},max:{number:number,undefined:\"undefined\"},__type__:{object:object}},format:{function:\"function\"},title:{text:{string:string,number:number,undefined:\"undefined\"},style:{string:string,undefined:\"undefined\"},__type__:{object:object}},__type__:{object:object}},__type__:{object:object}},legend:{enabled:{boolean:bool},icons:{boolean:bool},left:{visible:{boolean:bool},position:{string:[\"top-right\",\"bottom-right\",\"top-left\",\"bottom-left\"]},__type__:{object:object}},right:{visible:{boolean:bool},position:{string:[\"top-right\",\"bottom-right\",\"top-left\",\"bottom-left\"]},__type__:{object:object}},__type__:{object:object,boolean:bool}},groups:{visibility:{any:any},__type__:{object:object}},autoResize:{boolean:bool},throttleRedraw:{number:number},clickToUse:{boolean:bool},end:{number:number,date:date,string:string,moment:moment},format:{minorLabels:{millisecond:{string:string,undefined:\"undefined\"},second:{string:string,undefined:\"undefined\"},minute:{string:string,undefined:\"undefined\"},hour:{string:string,undefined:\"undefined\"},weekday:{string:string,undefined:\"undefined\"},day:{string:string,undefined:\"undefined\"},month:{string:string,undefined:\"undefined\"},year:{string:string,undefined:\"undefined\"},__type__:{object:object}},majorLabels:{millisecond:{string:string,undefined:\"undefined\"},second:{string:string,undefined:\"undefined\"},minute:{string:string,undefined:\"undefined\"},hour:{string:string,undefined:\"undefined\"},weekday:{string:string,undefined:\"undefined\"},day:{string:string,undefined:\"undefined\"},month:{string:string,undefined:\"undefined\"},year:{string:string,undefined:\"undefined\"},__type__:{object:object}},__type__:{object:object}},moment:{function:\"function\"},height:{string:string,number:number},hiddenDates:{start:{date:date,number:number,string:string,moment:moment},end:{date:date,number:number,string:string,moment:moment},repeat:{string:string},__type__:{object:object,array:array}},locale:{string:string},locales:{__any__:{any:any},__type__:{object:object}},max:{date:date,number:number,string:string,moment:moment},maxHeight:{number:number,string:string},maxMinorChars:{number:number},min:{date:date,number:number,string:string,moment:moment},minHeight:{number:number,string:string},moveable:{boolean:bool},multiselect:{boolean:bool},orientation:{string:string},showCurrentTime:{boolean:bool},showMajorLabels:{boolean:bool},showMinorLabels:{boolean:bool},start:{date:date,number:number,string:string,moment:moment},timeAxis:{scale:{string:string,undefined:\"undefined\"},step:{number:number,undefined:\"undefined\"},__type__:{object:object}},width:{string:string,number:number},zoomable:{boolean:bool},zoomKey:{string:[\"ctrlKey\",\"altKey\",\"metaKey\",\"\"]},zoomMax:{number:number},zoomMin:{number:number},zIndex:{number:number},__type__:{object:object}};var configureOptions={global:{sort:true,sampling:true,stack:false,shaded:{enabled:false,orientation:[\"zero\",\"top\",\"bottom\",\"group\"]},style:[\"line\",\"bar\",\"points\"],barChart:{width:[50,5,100,5],minWidth:[50,5,100,5],sideBySide:false,align:[\"left\",\"center\",\"right\"]},interpolation:{enabled:true,parametrization:[\"centripetal\",\"chordal\",\"uniform\"]},drawPoints:{enabled:true,size:[6,2,30,1],style:[\"square\",\"circle\"]},dataAxis:{showMinorLabels:true,showMajorLabels:true,icons:false,width:[40,0,200,1],visible:true,alignZeros:true,left:{title:{text:\"\",style:\"\"}},right:{title:{text:\"\",style:\"\"}}},legend:{enabled:false,icons:true,left:{visible:true,position:[\"top-right\",\"bottom-right\",\"top-left\",\"bottom-left\"]},right:{visible:true,position:[\"top-right\",\"bottom-right\",\"top-left\",\"bottom-left\"]}},autoResize:true,clickToUse:false,end:\"\",format:{minorLabels:{millisecond:\"SSS\",second:\"s\",minute:\"HH:mm\",hour:\"HH:mm\",weekday:\"ddd D\",day:\"D\",month:\"MMM\",year:\"YYYY\"},majorLabels:{millisecond:\"HH:mm:ss\",second:\"D MMMM HH:mm\",minute:\"ddd D MMMM\",hour:\"ddd D MMMM\",weekday:\"MMMM YYYY\",day:\"MMMM YYYY\",month:\"YYYY\",year:\"\"}},height:\"\",locale:\"\",max:\"\",maxHeight:\"\",maxMinorChars:[7,0,20,1],min:\"\",minHeight:\"\",moveable:true,orientation:[\"both\",\"bottom\",\"top\"],showCurrentTime:false,showMajorLabels:true,showMinorLabels:true,start:\"\",width:\"100%\",zoomable:true,zoomKey:[\"ctrlKey\",\"altKey\",\"metaKey\",\"\"],zoomMax:[31536e10,10,31536e10,1],zoomMin:[10,10,31536e10,1],zIndex:0}};exports.allOptions=allOptions;exports.configureOptions=configureOptions},function(module,exports,__webpack_require__){\"use strict\";var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function parseDOT(data){dot=data;return parseGraph()}var NODE_ATTR_MAPPING={fontsize:\"font.size\",fontcolor:\"font.color\",labelfontcolor:\"font.color\",fontname:\"font.face\",color:[\"color.border\",\"color.background\"],fillcolor:\"color.background\",tooltip:\"title\",labeltooltip:\"title\"};var EDGE_ATTR_MAPPING=(0,_create2[\"default\"])(NODE_ATTR_MAPPING);EDGE_ATTR_MAPPING.color=\"color.color\";EDGE_ATTR_MAPPING.style=\"dashes\";var TOKENTYPE={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3};var DELIMITERS={\"{\":true,\"}\":true,\"[\":true,\"]\":true,\";\":true,\"=\":true,\",\":true,\"->\":true,\"--\":true};var dot=\"\";var index=0;var c=\"\";var token=\"\";var tokenType=TOKENTYPE.NULL;function first(){index=0;c=dot.charAt(0)}function next(){index++;c=dot.charAt(index)}function nextPreview(){return dot.charAt(index+1)}var regexAlphaNumeric=/[a-zA-Z_0-9.:#]/;function isAlphaNumeric(c){return regexAlphaNumeric.test(c)}function merge(a,b){if(!a){a={}}if(b){for(var name in b){if(b.hasOwnProperty(name)){a[name]=b[name]}}}return a}function setValue(obj,path,value){var keys=path.split(\".\");var o=obj;while(keys.length){var key=keys.shift();if(keys.length){if(!o[key]){o[key]={}}o=o[key]}else{o[key]=value}}}function addNode(graph,node){var i,len;var current=null;var graphs=[graph];var root=graph;while(root.parent){graphs.push(root.parent);root=root.parent}if(root.nodes){for(i=0,len=root.nodes.length;i<len;i++){if(node.id===root.nodes[i].id){current=root.nodes[i];break}}}if(!current){current={id:node.id};if(graph.node){current.attr=merge(current.attr,graph.node)}}for(i=graphs.length-1;i>=0;i--){var g=graphs[i];if(!g.nodes){g.nodes=[]}if(g.nodes.indexOf(current)===-1){g.nodes.push(current)}}if(node.attr){current.attr=merge(current.attr,node.attr)}}function addEdge(graph,edge){if(!graph.edges){graph.edges=[]}graph.edges.push(edge);if(graph.edge){var attr=merge({},graph.edge);edge.attr=merge(attr,edge.attr)}}function createEdge(graph,from,to,type,attr){var edge={from:from,to:to,type:type};if(graph.edge){edge.attr=merge({},graph.edge)}edge.attr=merge(edge.attr||{},attr);return edge}function getToken(){tokenType=TOKENTYPE.NULL;token=\"\";while(c===\" \"||c===\"\\t\"||c===\"\\n\"||c===\"\\r\"){next()}do{var isComment=false;if(c===\"#\"){var i=index-1;while(dot.charAt(i)===\" \"||dot.charAt(i)===\"\\t\"){i--}if(dot.charAt(i)===\"\\n\"||dot.charAt(i)===\"\"){while(c!=\"\"&&c!=\"\\n\"){next()}isComment=true}}if(c===\"/\"&&nextPreview()===\"/\"){while(c!=\"\"&&c!=\"\\n\"){next()}isComment=true}if(c===\"/\"&&nextPreview()===\"*\"){while(c!=\"\"){if(c===\"*\"&&nextPreview()===\"/\"){next();next();break}else{next()}}isComment=true}while(c===\" \"||c===\"\\t\"||c===\"\\n\"||c===\"\\r\"){next()}}while(isComment);if(c===\"\"){tokenType=TOKENTYPE.DELIMITER;return}var c2=c+nextPreview();if(DELIMITERS[c2]){tokenType=TOKENTYPE.DELIMITER;token=c2;next();next();return}if(DELIMITERS[c]){tokenType=TOKENTYPE.DELIMITER;token=c;next();return}if(isAlphaNumeric(c)||c===\"-\"){token+=c;next();while(isAlphaNumeric(c)){token+=c;next()}if(token===\"false\"){token=false}else if(token===\"true\"){token=true}else if(!isNaN(Number(token))){token=Number(token)}tokenType=TOKENTYPE.IDENTIFIER;return}if(c==='\"'){next();while(c!=\"\"&&(c!='\"'||c==='\"'&&nextPreview()==='\"')){if(c==='\"'){token+=c;next()}else if(c===\"\\\\\"&&nextPreview()===\"n\"){token+=\"\\n\";next()}else{token+=c}next()}if(c!='\"'){throw newSyntaxError('End of string \" expected')}next();tokenType=TOKENTYPE.IDENTIFIER;return}tokenType=TOKENTYPE.UNKNOWN;while(c!=\"\"){token+=c;next()}throw new SyntaxError('Syntax error in part \"'+chop(token,30)+'\"')}function parseGraph(){var graph={};first();getToken();if(token===\"strict\"){graph.strict=true;getToken()}if(token===\"graph\"||token===\"digraph\"){graph.type=token;getToken()}if(tokenType===TOKENTYPE.IDENTIFIER){graph.id=token;getToken()}if(token!=\"{\"){throw newSyntaxError(\"Angle bracket { expected\")}getToken();parseStatements(graph);if(token!=\"}\"){throw newSyntaxError(\"Angle bracket } expected\")}getToken();if(token!==\"\"){throw newSyntaxError(\"End of file expected\")}getToken();delete graph.node;delete graph.edge;delete graph.graph;return graph}function parseStatements(graph){while(token!==\"\"&&token!=\"}\"){parseStatement(graph);if(token===\";\"){getToken()}}}function parseStatement(graph){var subgraph=parseSubgraph(graph);if(subgraph){parseEdge(graph,subgraph);return}var attr=parseAttributeStatement(graph);if(attr){return}if(tokenType!=TOKENTYPE.IDENTIFIER){throw newSyntaxError(\"Identifier expected\")}var id=token;getToken();if(token===\"=\"){getToken();if(tokenType!=TOKENTYPE.IDENTIFIER){throw newSyntaxError(\"Identifier expected\")}graph[id]=token;getToken()}else{parseNodeStatement(graph,id)}}function parseSubgraph(graph){var subgraph=null;if(token===\"subgraph\"){subgraph={};subgraph.type=\"subgraph\";getToken();if(tokenType===TOKENTYPE.IDENTIFIER){subgraph.id=token;getToken()}}if(token===\"{\"){getToken();if(!subgraph){subgraph={}}subgraph.parent=graph;subgraph.node=graph.node;subgraph.edge=graph.edge;subgraph.graph=graph.graph;parseStatements(subgraph);if(token!=\"}\"){throw newSyntaxError(\"Angle bracket } expected\")}getToken();delete subgraph.node;delete subgraph.edge;delete subgraph.graph;delete subgraph.parent;if(!graph.subgraphs){graph.subgraphs=[]}graph.subgraphs.push(subgraph)}return subgraph}function parseAttributeStatement(graph){if(token===\"node\"){getToken();graph.node=parseAttributeList();return\"node\"}else if(token===\"edge\"){getToken();graph.edge=parseAttributeList();return\"edge\"}else if(token===\"graph\"){getToken();graph.graph=parseAttributeList();return\"graph\"}return null}function parseNodeStatement(graph,id){var node={id:id};var attr=parseAttributeList();if(attr){node.attr=attr}addNode(graph,node);parseEdge(graph,id)}function parseEdge(graph,from){while(token===\"->\"||token===\"--\"){var to;var type=token;getToken();var subgraph=parseSubgraph(graph);if(subgraph){to=subgraph}else{if(tokenType!=TOKENTYPE.IDENTIFIER){throw newSyntaxError(\"Identifier or subgraph expected\")}to=token;addNode(graph,{id:to});getToken()}var attr=parseAttributeList();var edge=createEdge(graph,from,to,type,attr);addEdge(graph,edge);from=to}}function parseAttributeList(){var attr=null;var edgeStyles={dashed:true,solid:false,dotted:[1,5]};while(token===\"[\"){getToken();attr={};while(token!==\"\"&&token!=\"]\"){if(tokenType!=TOKENTYPE.IDENTIFIER){throw newSyntaxError(\"Attribute name expected\")}var name=token;getToken();if(token!=\"=\"){throw newSyntaxError(\"Equal sign = expected\")}getToken();if(tokenType!=TOKENTYPE.IDENTIFIER){throw newSyntaxError(\"Attribute value expected\")}var value=token;if(name===\"style\"){value=edgeStyles[value]}setValue(attr,name,value);getToken();if(token==\",\"){getToken()}}if(token!=\"]\"){throw newSyntaxError(\"Bracket ] expected\")}getToken()}return attr}function newSyntaxError(message){return new SyntaxError(message+', got \"'+chop(token,30)+'\" (char '+index+\")\")}function chop(text,maxLength){return text.length<=maxLength?text:text.substr(0,27)+\"...\"}function forEach2(array1,array2,fn){if(Array.isArray(array1)){array1.forEach(function(elem1){if(Array.isArray(array2)){array2.forEach(function(elem2){fn(elem1,elem2)})}else{fn(elem1,array2)}})}else{if(Array.isArray(array2)){array2.forEach(function(elem2){fn(array1,elem2)})}else{fn(array1,array2)}}}function setProp(object,path,value){var names=path.split(\".\");var prop=names.pop();var obj=object;for(var i=0;i<names.length;i++){var name=names[i];if(!(name in obj)){obj[name]={}}obj=obj[name]}obj[prop]=value;return object}function convertAttr(attr,mapping){var converted={};for(var prop in attr){if(attr.hasOwnProperty(prop)){var visProp=mapping[prop];if(Array.isArray(visProp)){visProp.forEach(function(visPropI){setProp(converted,visPropI,attr[prop])})}else if(typeof visProp===\"string\"){setProp(converted,visProp,attr[prop])}else{setProp(converted,prop,attr[prop])}}}return converted}function DOTToGraph(data){var dotData=parseDOT(data);var graphData={nodes:[],edges:[],options:{}};if(dotData.nodes){dotData.nodes.forEach(function(dotNode){var graphNode={id:dotNode.id,label:String(dotNode.label||dotNode.id)};merge(graphNode,convertAttr(dotNode.attr,NODE_ATTR_MAPPING));if(graphNode.image){graphNode.shape=\"image\"}graphData.nodes.push(graphNode)})}if(dotData.edges){var convertEdge=function convertEdge(dotEdge){var graphEdge={from:dotEdge.from,to:dotEdge.to};merge(graphEdge,convertAttr(dotEdge.attr,EDGE_ATTR_MAPPING));graphEdge.arrows=dotEdge.type===\"->\"?\"to\":undefined;return graphEdge};dotData.edges.forEach(function(dotEdge){var from,to;if(dotEdge.from instanceof Object){from=dotEdge.from.nodes}else{from={id:dotEdge.from}}if(dotEdge.to instanceof Object){to=dotEdge.to.nodes}else{to={id:dotEdge.to}}if(dotEdge.from instanceof Object&&dotEdge.from.edges){dotEdge.from.edges.forEach(function(subEdge){var graphEdge=convertEdge(subEdge);graphData.edges.push(graphEdge)})}forEach2(from,to,function(from,to){var subEdge=createEdge(graphData,from.id,to.id,dotEdge.type,dotEdge.attr);var graphEdge=convertEdge(subEdge);graphData.edges.push(graphEdge)});if(dotEdge.to instanceof Object&&dotEdge.to.edges){dotEdge.to.edges.forEach(function(subEdge){var graphEdge=convertEdge(subEdge);graphData.edges.push(graphEdge)})}})}if(dotData.attr){graphData.options=dotData.attr}return graphData}exports.parseDOT=parseDOT;exports.DOTToGraph=DOTToGraph},function(module,exports,__webpack_require__){\"use strict\";function parseGephi(gephiJSON,optionsObj){var edges=[];var nodes=[];var options={edges:{inheritColor:false},nodes:{fixed:false,parseColor:false}};if(optionsObj!==undefined){if(optionsObj.fixed!==undefined){options.nodes.fixed=optionsObj.fixed}if(optionsObj.parseColor!==undefined){options.nodes.parseColor=optionsObj.parseColor}if(optionsObj.inheritColor!==undefined){options.edges.inheritColor=optionsObj.inheritColor}}var gEdges=gephiJSON.edges;var gNodes=gephiJSON.nodes;for(var i=0;i<gEdges.length;i++){var edge={};var gEdge=gEdges[i];edge[\"id\"]=gEdge.id;edge[\"from\"]=gEdge.source;edge[\"to\"]=gEdge.target;edge[\"attributes\"]=gEdge.attributes;edge[\"label\"]=gEdge.label;edge[\"title\"]=gEdge.attributes!==undefined?gEdge.attributes.title:undefined;if(gEdge[\"type\"]===\"Directed\"){edge[\"arrows\"]=\"to\"}if(gEdge.color&&options.inheritColor===false){edge[\"color\"]=gEdge.color}edges.push(edge)}for(var j=0;j<gNodes.length;j++){var node={};var gNode=gNodes[j];node[\"id\"]=gNode.id;node[\"attributes\"]=gNode.attributes;node[\"x\"]=gNode.x;node[\"y\"]=gNode.y;node[\"label\"]=gNode.label;node[\"title\"]=gNode.attributes!==undefined?gNode.attributes.title:gNode.title;if(options.nodes.parseColor===true){node[\"color\"]=gNode.color}else{node[\"color\"]=gNode.color!==undefined?{background:gNode.color,border:gNode.color,highlight:{background:gNode.color,border:gNode.color},hover:{background:gNode.color,border:gNode.color}}:undefined}node[\"size\"]=gNode.size;node[\"fixed\"]=options.nodes.fixed&&gNode.x!==undefined&&gNode.y!==undefined;nodes.push(node)}return{nodes:nodes,edges:edges}}exports.parseGephi=parseGephi},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _CachedImage=__webpack_require__(185);var _CachedImage2=_interopRequireDefault(_CachedImage);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Images=function(){function Images(callback){(0,_classCallCheck3[\"default\"])(this,Images);this.images={};this.imageBroken={};this.callback=callback}(0,_createClass3[\"default\"])(Images,[{key:\"_tryloadBrokenUrl\",value:function _tryloadBrokenUrl(url,brokenUrl,imageToLoadBrokenUrlOn){if(url===undefined||imageToLoadBrokenUrlOn===undefined)return;if(brokenUrl===undefined){console.warn(\"No broken url image defined\");return}imageToLoadBrokenUrlOn.onerror=function(){console.error(\"Could not load brokenImage:\",brokenUrl)};imageToLoadBrokenUrlOn.image.src=brokenUrl}},{key:\"_redrawWithImage\",value:function _redrawWithImage(imageToRedrawWith){if(this.callback){this.callback(imageToRedrawWith)}}},{key:\"load\",value:function load(url,brokenUrl){var _this=this;var cachedImage=this.images[url];if(cachedImage)return cachedImage;var img=new _CachedImage2[\"default\"];this.images[url]=img;img.image.onload=function(){_this._fixImageCoordinates(img.image);img.init();_this._redrawWithImage(img)};img.image.onerror=function(){console.error(\"Could not load image:\",url);_this._tryloadBrokenUrl(url,brokenUrl,img)};img.image.src=url;return img}},{key:\"_fixImageCoordinates\",value:function _fixImageCoordinates(imageToCache){if(imageToCache.width===0){document.body.appendChild(imageToCache);imageToCache.width=imageToCache.offsetWidth;imageToCache.height=imageToCache.offsetHeight;document.body.removeChild(imageToCache)}}}]);return Images}();exports[\"default\"]=Images},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var ComponentUtil=__webpack_require__(48)[\"default\"];var LabelSplitter=__webpack_require__(191)[\"default\"];var multiFontStyle=[\"bold\",\"ital\",\"boldital\",\"mono\"];var Label=function(){function Label(body,options){var edgelabel=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;(0,_classCallCheck3[\"default\"])(this,Label);this.body=body;this.pointToSelf=false;this.baseSize=undefined;this.fontOptions={};this.setOptions(options);this.size={top:0,left:0,width:0,height:0,yLine:0};this.isEdgeLabel=edgelabel}(0,_createClass3[\"default\"])(Label,[{key:\"setOptions\",value:function setOptions(options){this.elementOptions=options;this.initFontOptions(options.font);if(ComponentUtil.isValidLabel(options.label)){this.labelDirty=true}else{options.label=\"\"}if(options.font!==undefined&&options.font!==null){if(typeof options.font===\"string\"){this.baseSize=this.fontOptions.size}else if((0,_typeof3[\"default\"])(options.font)===\"object\"){var size=options.font.size;if(size!==undefined){this.baseSize=size}}}}},{key:\"initFontOptions\",value:function initFontOptions(newFontOptions){var _this=this;util.forEach(multiFontStyle,function(style){_this.fontOptions[style]={}});if(Label.parseFontString(this.fontOptions,newFontOptions)){this.fontOptions.vadjust=0;return}util.forEach(newFontOptions,function(prop,n){if(prop!==undefined&&prop!==null&&(typeof prop===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(prop))!==\"object\"){_this.fontOptions[n]=prop}})}},{key:\"constrain\",value:function constrain(pile){var fontOptions={constrainWidth:false,maxWdt:-1,minWdt:-1,constrainHeight:false,minHgt:-1,valign:\"middle\"};var widthConstraint=util.topMost(pile,\"widthConstraint\");if(typeof widthConstraint===\"number\"){fontOptions.maxWdt=Number(widthConstraint);fontOptions.minWdt=Number(widthConstraint)}else if((typeof widthConstraint===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(widthConstraint))===\"object\"){var widthConstraintMaximum=util.topMost(pile,[\"widthConstraint\",\"maximum\"]);if(typeof widthConstraintMaximum===\"number\"){fontOptions.maxWdt=Number(widthConstraintMaximum)}var widthConstraintMinimum=util.topMost(pile,[\"widthConstraint\",\"minimum\"]);if(typeof widthConstraintMinimum===\"number\"){fontOptions.minWdt=Number(widthConstraintMinimum)}}var heightConstraint=util.topMost(pile,\"heightConstraint\");if(typeof heightConstraint===\"number\"){fontOptions.minHgt=Number(heightConstraint)}else if((typeof heightConstraint===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(heightConstraint))===\"object\"){var heightConstraintMinimum=util.topMost(pile,[\"heightConstraint\",\"minimum\"]);if(typeof heightConstraintMinimum===\"number\"){fontOptions.minHgt=Number(heightConstraintMinimum)}var heightConstraintValign=util.topMost(pile,[\"heightConstraint\",\"valign\"]);if(typeof heightConstraintValign===\"string\"){if(heightConstraintValign===\"top\"||heightConstraintValign===\"bottom\"){fontOptions.valign=heightConstraintValign}}}return fontOptions}},{key:\"update\",value:function update(options,pile){this.setOptions(options,true);this.propagateFonts(pile);util.deepExtend(this.fontOptions,this.constrain(pile));this.fontOptions.chooser=ComponentUtil.choosify(\"label\",pile)}},{key:\"adjustSizes\",value:function adjustSizes(margins){var widthBias=margins?margins.right+margins.left:0;if(this.fontOptions.constrainWidth){this.fontOptions.maxWdt-=widthBias;this.fontOptions.minWdt-=widthBias}var heightBias=margins?margins.top+margins.bottom:0;if(this.fontOptions.constrainHeight){this.fontOptions.minHgt-=heightBias}}},{key:\"addFontOptionsToPile\",value:function addFontOptionsToPile(dstPile,srcPile){for(var i=0;i<srcPile.length;++i){this.addFontToPile(dstPile,srcPile[i])}}},{key:\"addFontToPile\",value:function addFontToPile(pile,options){if(options===undefined)return;if(options.font===undefined||options.font===null)return;var item=options.font;pile.push(item)}},{key:\"getBasicOptions\",value:function getBasicOptions(pile){var ret={};for(var n=0;n<pile.length;++n){var fontOptions=pile[n];var tmpShorthand={};if(Label.parseFontString(tmpShorthand,fontOptions)){fontOptions=tmpShorthand}util.forEach(fontOptions,function(opt,name){if(opt===undefined)return;if(ret.hasOwnProperty(name))return;if(multiFontStyle.indexOf(name)!==-1){ret[name]={}}else{ret[name]=opt}})}return ret}},{key:\"getFontOption\",value:function getFontOption(pile,multiName,option){var multiFont=void 0;for(var n=0;n<pile.length;++n){var fontOptions=pile[n];if(fontOptions.hasOwnProperty(multiName)){multiFont=fontOptions[multiName];if(multiFont===undefined||multiFont===null)continue;var tmpShorthand={};if(Label.parseFontString(tmpShorthand,multiFont)){multiFont=tmpShorthand}if(multiFont.hasOwnProperty(option)){return multiFont[option]}}}if(this.fontOptions.hasOwnProperty(option)){return this.fontOptions[option]}throw new Error(\"Did not find value for multi-font for property: '\"+option+\"'\")}},{key:\"getFontOptions\",value:function getFontOptions(pile,multiName){var result={};var optionNames=[\"color\",\"size\",\"face\",\"mod\",\"vadjust\"];for(var i=0;i<optionNames.length;++i){var mod=optionNames[i];result[mod]=this.getFontOption(pile,multiName,mod)}return result}},{key:\"propagateFonts\",value:function propagateFonts(pile){var _this2=this;var fontPile=[];this.addFontOptionsToPile(fontPile,pile);this.fontOptions=this.getBasicOptions(fontPile);var _loop=function _loop(i){var mod=multiFontStyle[i];var modOptions=_this2.fontOptions[mod];var tmpMultiFontOptions=_this2.getFontOptions(fontPile,mod);util.forEach(tmpMultiFontOptions,function(option,n){modOptions[n]=option});modOptions.size=Number(modOptions.size);modOptions.vadjust=Number(modOptions.vadjust)};for(var i=0;i<multiFontStyle.length;++i){_loop(i)}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover){var baseline=arguments.length>5&&arguments[5]!==undefined?arguments[5]:\"middle\";if(this.elementOptions.label===undefined)return;var viewFontSize=this.fontOptions.size*this.body.view.scale;if(this.elementOptions.label&&viewFontSize<this.elementOptions.scaling.label.drawThreshold-1)return;if(viewFontSize>=this.elementOptions.scaling.label.maxVisible){viewFontSize=Number(this.elementOptions.scaling.label.maxVisible)/this.body.view.scale}this.calculateLabelSize(ctx,selected,hover,x,y,baseline);this._drawBackground(ctx);this._drawText(ctx,x,this.size.yLine,baseline,viewFontSize)}},{key:\"_drawBackground\",value:function _drawBackground(ctx){if(this.fontOptions.background!==undefined&&this.fontOptions.background!==\"none\"){ctx.fillStyle=this.fontOptions.background;var size=this.getSize();ctx.fillRect(size.left,size.top,size.width,size.height)}}},{key:\"_drawText\",value:function _drawText(ctx,x,y){var baseline=arguments.length>3&&arguments[3]!==undefined?arguments[3]:\"middle\";var viewFontSize=arguments[4];var _setAlignment2=this._setAlignment(ctx,x,y,baseline);var _setAlignment3=(0,_slicedToArray3[\"default\"])(_setAlignment2,2);x=_setAlignment3[0];y=_setAlignment3[1];ctx.textAlign=\"left\";x=x-this.size.width/2;if(this.fontOptions.valign&&this.size.height>this.size.labelHeight){if(this.fontOptions.valign===\"top\"){y-=(this.size.height-this.size.labelHeight)/2}if(this.fontOptions.valign===\"bottom\"){y+=(this.size.height-this.size.labelHeight)/2}}for(var i=0;i<this.lineCount;i++){var line=this.lines[i];if(line&&line.blocks){var width=0;if(this.isEdgeLabel||this.fontOptions.align===\"center\"){width+=(this.size.width-line.width)/2}else if(this.fontOptions.align===\"right\"){width+=this.size.width-line.width}for(var j=0;j<line.blocks.length;j++){var block=line.blocks[j];ctx.font=block.font;var _getColor2=this._getColor(block.color,viewFontSize,block.strokeColor),_getColor3=(0,_slicedToArray3[\"default\"])(_getColor2,2),fontColor=_getColor3[0],strokeColor=_getColor3[1];if(block.strokeWidth>0){ctx.lineWidth=block.strokeWidth;ctx.strokeStyle=strokeColor;ctx.lineJoin=\"round\"}ctx.fillStyle=fontColor;if(block.strokeWidth>0){ctx.strokeText(block.text,x+width,y+block.vadjust)}ctx.fillText(block.text,x+width,y+block.vadjust);width+=block.width}y+=line.height}}}},{key:\"_setAlignment\",value:function _setAlignment(ctx,x,y,baseline){if(this.isEdgeLabel&&this.fontOptions.align!==\"horizontal\"&&this.pointToSelf===false){x=0;y=0;var lineMargin=2;if(this.fontOptions.align===\"top\"){ctx.textBaseline=\"alphabetic\";y-=2*lineMargin}else if(this.fontOptions.align===\"bottom\"){ctx.textBaseline=\"hanging\";y+=2*lineMargin}else{ctx.textBaseline=\"middle\"}}else{ctx.textBaseline=baseline}return[x,y]}},{key:\"_getColor\",value:function _getColor(color,viewFontSize,initialStrokeColor){var fontColor=color||\"#000000\";var strokeColor=initialStrokeColor||\"#ffffff\";if(viewFontSize<=this.elementOptions.scaling.label.drawThreshold){var opacity=Math.max(0,Math.min(1,1-(this.elementOptions.scaling.label.drawThreshold-viewFontSize)));fontColor=util.overrideOpacity(fontColor,opacity);strokeColor=util.overrideOpacity(strokeColor,opacity)}return[fontColor,strokeColor]}},{key:\"getTextSize\",value:function getTextSize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;this._processLabel(ctx,selected,hover);return{width:this.size.width,height:this.size.height,lineCount:this.lineCount}}},{key:\"getSize\",value:function getSize(){var lineMargin=2;var x=this.size.left;var y=this.size.top-.5*lineMargin;if(this.isEdgeLabel){var x2=-this.size.width*.5;switch(this.fontOptions.align){case\"middle\":x=x2;y=-this.size.height*.5;break;case\"top\":x=x2;y=-(this.size.height+lineMargin);break;case\"bottom\":x=x2;y=lineMargin;break}}var ret={left:x,top:y,width:this.size.width,height:this.size.height};return ret}},{key:\"calculateLabelSize\",value:function calculateLabelSize(ctx,selected,hover){var x=arguments.length>3&&arguments[3]!==undefined?arguments[3]:0;var y=arguments.length>4&&arguments[4]!==undefined?arguments[4]:0;var baseline=arguments.length>5&&arguments[5]!==undefined?arguments[5]:\"middle\";this._processLabel(ctx,selected,hover);this.size.left=x-this.size.width*.5;this.size.top=y-this.size.height*.5;this.size.yLine=y+(1-this.lineCount)*.5*this.fontOptions.size;if(baseline===\"hanging\"){this.size.top+=.5*this.fontOptions.size;this.size.top+=4;this.size.yLine+=4}}},{key:\"getFormattingValues\",value:function getFormattingValues(ctx,selected,hover,mod){var getValue=function getValue(fontOptions,mod,option){if(mod===\"normal\"){if(option===\"mod\")return\"\";return fontOptions[option]}if(fontOptions[mod][option]!==undefined){return fontOptions[mod][option]}else{return fontOptions[option]}};var values={color:getValue(this.fontOptions,mod,\"color\"),size:getValue(this.fontOptions,mod,\"size\"),face:getValue(this.fontOptions,mod,\"face\"),mod:getValue(this.fontOptions,mod,\"mod\"),vadjust:getValue(this.fontOptions,mod,\"vadjust\"),strokeWidth:this.fontOptions.strokeWidth,strokeColor:this.fontOptions.strokeColor};if(selected||hover){if(mod===\"normal\"&&this.fontOptions.chooser===true&&this.elementOptions.labelHighlightBold){values.mod=\"bold\"}else{if(typeof this.fontOptions.chooser===\"function\"){this.fontOptions.chooser(values,this.elementOptions.id,selected,hover)}}}var fontString=\"\";if(values.mod!==undefined&&values.mod!==\"\"){fontString+=values.mod+\" \"}fontString+=values.size+\"px \"+values.face;ctx.font=fontString.replace(/\"/g,\"\");values.font=ctx.font;values.height=values.size;return values}},{key:\"differentState\",value:function differentState(selected,hover){return selected!==this.selectedState||hover!==this.hoverState}},{key:\"_processLabelText\",value:function _processLabelText(ctx,selected,hover,inText){var splitter=new LabelSplitter(ctx,this,selected,hover);return splitter.process(inText)}},{key:\"_processLabel\",value:function _processLabel(ctx,selected,hover){if(this.labelDirty===false&&!this.differentState(selected,hover))return;var state=this._processLabelText(ctx,selected,hover,this.elementOptions.label);if(this.fontOptions.minWdt>0&&state.width<this.fontOptions.minWdt){state.width=this.fontOptions.minWdt}this.size.labelHeight=state.height;if(this.fontOptions.minHgt>0&&state.height<this.fontOptions.minHgt){state.height=this.fontOptions.minHgt}this.lines=state.lines;this.lineCount=state.lines.length;this.size.width=state.width;this.size.height=state.height;this.selectedState=selected;this.hoverState=hover;this.labelDirty=false}},{key:\"visible\",value:function visible(){if(this.size.width===0||this.size.height===0||this.elementOptions.label===undefined){return false}var viewFontSize=this.fontOptions.size*this.body.view.scale;if(viewFontSize<this.elementOptions.scaling.label.drawThreshold-1){return false}return true}}],[{key:\"parseFontString\",value:function parseFontString(outOptions,inOptions){if(!inOptions||typeof inOptions!==\"string\")return false;var newOptionsArray=inOptions.split(\" \");outOptions.size=newOptionsArray[0].replace(\"px\",\"\");outOptions.face=newOptionsArray[1];outOptions.color=newOptionsArray[2];return true}}]);return Label}();exports[\"default\"]=Label},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var EndPoints=__webpack_require__(119)[\"default\"];var EdgeBase=function(){function EdgeBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,EdgeBase);this.body=body;this.labelModule=labelModule\n;this.options={};this.setOptions(options);this.colorDirty=true;this.color={};this.selectionWidth=2;this.hoverWidth=1.5;this.fromPoint=this.from;this.toPoint=this.to}(0,_createClass3[\"default\"])(EdgeBase,[{key:\"connect\",value:function connect(){this.from=this.body.nodes[this.options.from];this.to=this.body.nodes[this.options.to]}},{key:\"cleanup\",value:function cleanup(){return false}},{key:\"setOptions\",value:function setOptions(options){this.options=options;this.from=this.body.nodes[this.options.from];this.to=this.body.nodes[this.options.to];this.id=this.options.id}},{key:\"drawLine\",value:function drawLine(ctx,values,selected,hover,viaNode){ctx.strokeStyle=this.getColor(ctx,values,selected,hover);ctx.lineWidth=values.width;if(values.dashes!==false){this._drawDashedLine(ctx,values,viaNode)}else{this._drawLine(ctx,values,viaNode)}}},{key:\"_drawLine\",value:function _drawLine(ctx,values,viaNode,fromPoint,toPoint){if(this.from!=this.to){this._line(ctx,values,viaNode,fromPoint,toPoint)}else{var _getCircleData2=this._getCircleData(ctx),_getCircleData3=(0,_slicedToArray3[\"default\"])(_getCircleData2,3),x=_getCircleData3[0],y=_getCircleData3[1],radius=_getCircleData3[2];this._circle(ctx,values,x,y,radius)}}},{key:\"_drawDashedLine\",value:function _drawDashedLine(ctx,values,viaNode,fromPoint,toPoint){ctx.lineCap=\"round\";var pattern=[5,5];if(Array.isArray(values.dashes)===true){pattern=values.dashes}if(ctx.setLineDash!==undefined){ctx.save();ctx.setLineDash(pattern);ctx.lineDashOffset=0;if(this.from!=this.to){this._line(ctx,values,viaNode)}else{var _getCircleData4=this._getCircleData(ctx),_getCircleData5=(0,_slicedToArray3[\"default\"])(_getCircleData4,3),x=_getCircleData5[0],y=_getCircleData5[1],radius=_getCircleData5[2];this._circle(ctx,values,x,y,radius)}ctx.setLineDash([0]);ctx.lineDashOffset=0;ctx.restore()}else{if(this.from!=this.to){ctx.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,pattern)}else{var _getCircleData6=this._getCircleData(ctx),_getCircleData7=(0,_slicedToArray3[\"default\"])(_getCircleData6,3),_x=_getCircleData7[0],_y=_getCircleData7[1],_radius=_getCircleData7[2];this._circle(ctx,values,_x,_y,_radius)}this.enableShadow(ctx,values);ctx.stroke();this.disableShadow(ctx,values)}}},{key:\"findBorderPosition\",value:function findBorderPosition(nearNode,ctx,options){if(this.from!=this.to){return this._findBorderPosition(nearNode,ctx,options)}else{return this._findBorderPositionCircle(nearNode,ctx,options)}}},{key:\"findBorderPositions\",value:function findBorderPositions(ctx){var from={};var to={};if(this.from!=this.to){from=this._findBorderPosition(this.from,ctx);to=this._findBorderPosition(this.to,ctx)}else{var _getCircleData$slice=this._getCircleData(ctx).slice(0,2),_getCircleData$slice2=(0,_slicedToArray3[\"default\"])(_getCircleData$slice,2),x=_getCircleData$slice2[0],y=_getCircleData$slice2[1];from=this._findBorderPositionCircle(this.from,ctx,{x:x,y:y,low:.25,high:.6,direction:-1});to=this._findBorderPositionCircle(this.from,ctx,{x:x,y:y,low:.6,high:.8,direction:1})}return{from:from,to:to}}},{key:\"_getCircleData\",value:function _getCircleData(ctx){var x=void 0,y=void 0;var node=this.from;var radius=this.options.selfReferenceSize;if(ctx!==undefined){if(node.shape.width===undefined){node.shape.resize(ctx)}}if(node.shape.width>node.shape.height){x=node.x+node.shape.width*.5;y=node.y-radius}else{x=node.x+radius;y=node.y-node.shape.height*.5}return[x,y,radius]}},{key:\"_pointOnCircle\",value:function _pointOnCircle(x,y,radius,percentage){var angle=percentage*2*Math.PI;return{x:x+radius*Math.cos(angle),y:y-radius*Math.sin(angle)}}},{key:\"_findBorderPositionCircle\",value:function _findBorderPositionCircle(node,ctx,options){var x=options.x;var y=options.y;var low=options.low;var high=options.high;var direction=options.direction;var maxIterations=10;var iteration=0;var radius=this.options.selfReferenceSize;var pos=void 0,angle=void 0,distanceToBorder=void 0,distanceToPoint=void 0,difference=void 0;var threshold=.05;var middle=(low+high)*.5;while(low<=high&&iteration<maxIterations){middle=(low+high)*.5;pos=this._pointOnCircle(x,y,radius,middle);angle=Math.atan2(node.y-pos.y,node.x-pos.x);distanceToBorder=node.distanceToBorder(ctx,angle);distanceToPoint=Math.sqrt(Math.pow(pos.x-node.x,2)+Math.pow(pos.y-node.y,2));difference=distanceToBorder-distanceToPoint;if(Math.abs(difference)<threshold){break}else if(difference>0){if(direction>0){low=middle}else{high=middle}}else{if(direction>0){high=middle}else{low=middle}}iteration++}pos.t=middle;return pos}},{key:\"getLineWidth\",value:function getLineWidth(selected,hover){if(selected===true){return Math.max(this.selectionWidth,.3/this.body.view.scale)}else{if(hover===true){return Math.max(this.hoverWidth,.3/this.body.view.scale)}else{return Math.max(this.options.width,.3/this.body.view.scale)}}}},{key:\"getColor\",value:function getColor(ctx,values,selected,hover){if(values.inheritsColor!==false){if(values.inheritsColor===\"both\"&&this.from.id!==this.to.id){var grd=ctx.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y);var fromColor=void 0,toColor=void 0;fromColor=this.from.options.color.highlight.border;toColor=this.to.options.color.highlight.border;if(this.from.selected===false&&this.to.selected===false){fromColor=util.overrideOpacity(this.from.options.color.border,values.opacity);toColor=util.overrideOpacity(this.to.options.color.border,values.opacity)}else if(this.from.selected===true&&this.to.selected===false){toColor=this.to.options.color.border}else if(this.from.selected===false&&this.to.selected===true){fromColor=this.from.options.color.border}grd.addColorStop(0,fromColor);grd.addColorStop(1,toColor);return grd}if(values.inheritsColor===\"to\"){return util.overrideOpacity(this.to.options.color.border,values.opacity)}else{return util.overrideOpacity(this.from.options.color.border,values.opacity)}}else{return util.overrideOpacity(values.color,values.opacity)}}},{key:\"_circle\",value:function _circle(ctx,values,x,y,radius){this.enableShadow(ctx,values);ctx.beginPath();ctx.arc(x,y,radius,0,2*Math.PI,false);ctx.stroke();this.disableShadow(ctx,values)}},{key:\"getDistanceToEdge\",value:function getDistanceToEdge(x1,y1,x2,y2,x3,y3,via,values){var returnValue=0;if(this.from!=this.to){returnValue=this._getDistanceToEdge(x1,y1,x2,y2,x3,y3,via)}else{var _getCircleData8=this._getCircleData(undefined),_getCircleData9=(0,_slicedToArray3[\"default\"])(_getCircleData8,3),x=_getCircleData9[0],y=_getCircleData9[1],radius=_getCircleData9[2];var dx=x-x3;var dy=y-y3;returnValue=Math.abs(Math.sqrt(dx*dx+dy*dy)-radius)}return returnValue}},{key:\"_getDistanceToLine\",value:function _getDistanceToLine(x1,y1,x2,y2,x3,y3){var px=x2-x1;var py=y2-y1;var something=px*px+py*py;var u=((x3-x1)*px+(y3-y1)*py)/something;if(u>1){u=1}else if(u<0){u=0}var x=x1+u*px;var y=y1+u*py;var dx=x-x3;var dy=y-y3;return Math.sqrt(dx*dx+dy*dy)}},{key:\"getArrowData\",value:function getArrowData(ctx,position,viaNode,selected,hover,values){var angle=void 0;var arrowPoint=void 0;var node1=void 0;var node2=void 0;var guideOffset=void 0;var scaleFactor=void 0;var type=void 0;var lineWidth=values.width;if(position===\"from\"){node1=this.from;node2=this.to;guideOffset=.1;scaleFactor=values.fromArrowScale;type=values.fromArrowType}else if(position===\"to\"){node1=this.to;node2=this.from;guideOffset=-.1;scaleFactor=values.toArrowScale;type=values.toArrowType}else{node1=this.to;node2=this.from;scaleFactor=values.middleArrowScale;type=values.middleArrowType}if(node1!=node2){if(position!==\"middle\"){if(this.options.smooth.enabled===true){arrowPoint=this.findBorderPosition(node1,ctx,{via:viaNode});var guidePos=this.getPoint(Math.max(0,Math.min(1,arrowPoint.t+guideOffset)),viaNode);angle=Math.atan2(arrowPoint.y-guidePos.y,arrowPoint.x-guidePos.x)}else{angle=Math.atan2(node1.y-node2.y,node1.x-node2.x);arrowPoint=this.findBorderPosition(node1,ctx)}}else{angle=Math.atan2(node1.y-node2.y,node1.x-node2.x);arrowPoint=this.getPoint(.5,viaNode)}}else{var _getCircleData10=this._getCircleData(ctx),_getCircleData11=(0,_slicedToArray3[\"default\"])(_getCircleData10,3),x=_getCircleData11[0],y=_getCircleData11[1],radius=_getCircleData11[2];if(position===\"from\"){arrowPoint=this.findBorderPosition(this.from,ctx,{x:x,y:y,low:.25,high:.6,direction:-1});angle=arrowPoint.t*-2*Math.PI+1.5*Math.PI+.1*Math.PI}else if(position===\"to\"){arrowPoint=this.findBorderPosition(this.from,ctx,{x:x,y:y,low:.6,high:1,direction:1});angle=arrowPoint.t*-2*Math.PI+1.5*Math.PI-1.1*Math.PI}else{arrowPoint=this._pointOnCircle(x,y,radius,.175);angle=3.9269908169872414}}if(position===\"middle\"&&scaleFactor<0)lineWidth*=-1;var length=15*scaleFactor+3*lineWidth;var xi=arrowPoint.x-length*.9*Math.cos(angle);var yi=arrowPoint.y-length*.9*Math.sin(angle);var arrowCore={x:xi,y:yi};return{point:arrowPoint,core:arrowCore,angle:angle,length:length,type:type}}},{key:\"drawArrowHead\",value:function drawArrowHead(ctx,values,selected,hover,arrowData){ctx.strokeStyle=this.getColor(ctx,values,selected,hover);ctx.fillStyle=ctx.strokeStyle;ctx.lineWidth=values.width;EndPoints.draw(ctx,arrowData);this.enableShadow(ctx,values);ctx.fill();this.disableShadow(ctx,values)}},{key:\"enableShadow\",value:function enableShadow(ctx,values){if(values.shadow===true){ctx.shadowColor=values.shadowColor;ctx.shadowBlur=values.shadowSize;ctx.shadowOffsetX=values.shadowX;ctx.shadowOffsetY=values.shadowY}}},{key:\"disableShadow\",value:function disableShadow(ctx,values){if(values.shadow===true){ctx.shadowColor=\"rgba(0,0,0,0)\";ctx.shadowBlur=0;ctx.shadowOffsetX=0;ctx.shadowOffsetY=0}}}]);return EdgeBase}();exports[\"default\"]=EdgeBase},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var EndPoint=function(){function EndPoint(){(0,_classCallCheck3[\"default\"])(this,EndPoint)}(0,_createClass3[\"default\"])(EndPoint,null,[{key:\"transform\",value:function transform(points,arrowData){if(!(points instanceof Array)){points=[points]}var x=arrowData.point.x;var y=arrowData.point.y;var angle=arrowData.angle;var length=arrowData.length;for(var i=0;i<points.length;++i){var p=points[i];var xt=p.x*Math.cos(angle)-p.y*Math.sin(angle);var yt=p.x*Math.sin(angle)+p.y*Math.cos(angle);p.x=x+length*xt;p.y=y+length*yt}}},{key:\"drawPath\",value:function drawPath(ctx,points){ctx.beginPath();ctx.moveTo(points[0].x,points[0].y);for(var i=1;i<points.length;++i){ctx.lineTo(points[i].x,points[i].y)}ctx.closePath()}}]);return EndPoint}();var Arrow=function(_EndPoint){(0,_inherits3[\"default\"])(Arrow,_EndPoint);function Arrow(){(0,_classCallCheck3[\"default\"])(this,Arrow);return(0,_possibleConstructorReturn3[\"default\"])(this,(Arrow.__proto__||(0,_getPrototypeOf2[\"default\"])(Arrow)).apply(this,arguments))}(0,_createClass3[\"default\"])(Arrow,null,[{key:\"draw\",value:function draw(ctx,arrowData){var points=[{x:0,y:0},{x:-1,y:.3},{x:-.9,y:0},{x:-1,y:-.3}];EndPoint.transform(points,arrowData);EndPoint.drawPath(ctx,points)}}]);return Arrow}(EndPoint);var Circle=function(){function Circle(){(0,_classCallCheck3[\"default\"])(this,Circle)}(0,_createClass3[\"default\"])(Circle,null,[{key:\"draw\",value:function draw(ctx,arrowData){var point={x:-.4,y:0};EndPoint.transform(point,arrowData);ctx.circle(point.x,point.y,arrowData.length*.4)}}]);return Circle}();var Bar=function(){function Bar(){(0,_classCallCheck3[\"default\"])(this,Bar)}(0,_createClass3[\"default\"])(Bar,null,[{key:\"draw\",value:function draw(ctx,arrowData){var points=[{x:0,y:.5},{x:0,y:-.5},{x:-.15,y:-.5},{x:-.15,y:.5}];EndPoint.transform(points,arrowData);EndPoint.drawPath(ctx,points)}}]);return Bar}();var EndPoints=function(){function EndPoints(){(0,_classCallCheck3[\"default\"])(this,EndPoints)}(0,_createClass3[\"default\"])(EndPoints,null,[{key:\"draw\",value:function draw(ctx,arrowData){var type;if(arrowData.type){type=arrowData.type.toLowerCase()}switch(type){case\"circle\":Circle.draw(ctx,arrowData);break;case\"bar\":Bar.draw(ctx,arrowData);break;case\"arrow\":default:Arrow.draw(ctx,arrowData)}}}]);return EndPoints}();exports[\"default\"]=EndPoints},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var BarnesHutSolver=function(){function BarnesHutSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,BarnesHutSolver);this.body=body;this.physicsBody=physicsBody;this.barnesHutTree;this.setOptions(options);this.randomSeed=5}(0,_createClass3[\"default\"])(BarnesHutSolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options;this.thetaInversed=1/this.options.theta;this.overlapAvoidanceFactor=1-Math.max(0,Math.min(1,this.options.avoidOverlap))}},{key:\"seededRandom\",value:function seededRandom(){var x=Math.sin(this.randomSeed++)*1e4;return x-Math.floor(x)}},{key:\"solve\",value:function solve(){if(this.options.gravitationalConstant!==0&&this.physicsBody.physicsNodeIndices.length>0){var node=void 0;var nodes=this.body.nodes;var nodeIndices=this.physicsBody.physicsNodeIndices;var nodeCount=nodeIndices.length;var barnesHutTree=this._formBarnesHutTree(nodes,nodeIndices);this.barnesHutTree=barnesHutTree;for(var i=0;i<nodeCount;i++){node=nodes[nodeIndices[i]];if(node.options.mass>0){this._getForceContributions(barnesHutTree.root,node)}}}}},{key:\"_getForceContributions\",value:function _getForceContributions(parentBranch,node){this._getForceContribution(parentBranch.children.NW,node);this._getForceContribution(parentBranch.children.NE,node);this._getForceContribution(parentBranch.children.SW,node);this._getForceContribution(parentBranch.children.SE,node)}},{key:\"_getForceContribution\",value:function _getForceContribution(parentBranch,node){if(parentBranch.childrenCount>0){var dx=void 0,dy=void 0,distance=void 0;dx=parentBranch.centerOfMass.x-node.x;dy=parentBranch.centerOfMass.y-node.y;distance=Math.sqrt(dx*dx+dy*dy);if(distance*parentBranch.calcSize>this.thetaInversed){this._calculateForces(distance,dx,dy,node,parentBranch)}else{if(parentBranch.childrenCount===4){this._getForceContributions(parentBranch,node)}else{if(parentBranch.children.data.id!=node.id){this._calculateForces(distance,dx,dy,node,parentBranch)}}}}}},{key:\"_calculateForces\",value:function _calculateForces(distance,dx,dy,node,parentBranch){if(distance===0){distance=.1;dx=distance}if(this.overlapAvoidanceFactor<1&&node.shape.radius){distance=Math.max(.1+this.overlapAvoidanceFactor*node.shape.radius,distance-node.shape.radius)}var gravityForce=this.options.gravitationalConstant*parentBranch.mass*node.options.mass/Math.pow(distance,3);var fx=dx*gravityForce;var fy=dy*gravityForce;this.physicsBody.forces[node.id].x+=fx;this.physicsBody.forces[node.id].y+=fy}},{key:\"_formBarnesHutTree\",value:function _formBarnesHutTree(nodes,nodeIndices){var node=void 0;var nodeCount=nodeIndices.length;var minX=nodes[nodeIndices[0]].x;var minY=nodes[nodeIndices[0]].y;var maxX=nodes[nodeIndices[0]].x;var maxY=nodes[nodeIndices[0]].y;for(var i=1;i<nodeCount;i++){var _node=nodes[nodeIndices[i]];var x=_node.x;var y=_node.y;if(_node.options.mass>0){if(x<minX){minX=x}if(x>maxX){maxX=x}if(y<minY){minY=y}if(y>maxY){maxY=y}}}var sizeDiff=Math.abs(maxX-minX)-Math.abs(maxY-minY);if(sizeDiff>0){minY-=.5*sizeDiff;maxY+=.5*sizeDiff}else{minX+=.5*sizeDiff;maxX-=.5*sizeDiff}var minimumTreeSize=1e-5;var rootSize=Math.max(minimumTreeSize,Math.abs(maxX-minX));var halfRootSize=.5*rootSize;var centerX=.5*(minX+maxX),centerY=.5*(minY+maxY);var barnesHutTree={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:centerX-halfRootSize,maxX:centerX+halfRootSize,minY:centerY-halfRootSize,maxY:centerY+halfRootSize},size:rootSize,calcSize:1/rootSize,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(barnesHutTree.root);for(var _i=0;_i<nodeCount;_i++){node=nodes[nodeIndices[_i]];if(node.options.mass>0){this._placeInTree(barnesHutTree.root,node)}}return barnesHutTree}},{key:\"_updateBranchMass\",value:function _updateBranchMass(parentBranch,node){var centerOfMass=parentBranch.centerOfMass;var totalMass=parentBranch.mass+node.options.mass;var totalMassInv=1/totalMass;centerOfMass.x=centerOfMass.x*parentBranch.mass+node.x*node.options.mass;centerOfMass.x*=totalMassInv;centerOfMass.y=centerOfMass.y*parentBranch.mass+node.y*node.options.mass;centerOfMass.y*=totalMassInv;parentBranch.mass=totalMass;var biggestSize=Math.max(Math.max(node.height,node.radius),node.width);parentBranch.maxWidth=parentBranch.maxWidth<biggestSize?biggestSize:parentBranch.maxWidth}},{key:\"_placeInTree\",value:function _placeInTree(parentBranch,node,skipMassUpdate){if(skipMassUpdate!=true||skipMassUpdate===undefined){this._updateBranchMass(parentBranch,node)}var range=parentBranch.children.NW.range;var region=void 0;if(range.maxX>node.x){if(range.maxY>node.y){region=\"NW\"}else{region=\"SW\"}}else{if(range.maxY>node.y){region=\"NE\"}else{region=\"SE\"}}this._placeInRegion(parentBranch,node,region)}},{key:\"_placeInRegion\",value:function _placeInRegion(parentBranch,node,region){var children=parentBranch.children[region];switch(children.childrenCount){case 0:children.children.data=node;children.childrenCount=1;this._updateBranchMass(children,node);break;case 1:if(children.children.data.x===node.x&&children.children.data.y===node.y){node.x+=this.seededRandom();node.y+=this.seededRandom()}else{this._splitBranch(children);this._placeInTree(children,node)}break;case 4:this._placeInTree(children,node);break}}},{key:\"_splitBranch\",value:function _splitBranch(parentBranch){var containedNode=null;if(parentBranch.childrenCount===1){containedNode=parentBranch.children.data;parentBranch.mass=0;parentBranch.centerOfMass.x=0;parentBranch.centerOfMass.y=0}parentBranch.childrenCount=4;parentBranch.children.data=null;this._insertRegion(parentBranch,\"NW\");this._insertRegion(parentBranch,\"NE\");this._insertRegion(parentBranch,\"SW\");this._insertRegion(parentBranch,\"SE\");if(containedNode!=null){this._placeInTree(parentBranch,containedNode)}}},{key:\"_insertRegion\",value:function _insertRegion(parentBranch,region){var minX=void 0,maxX=void 0,minY=void 0,maxY=void 0;var childSize=.5*parentBranch.size;switch(region){case\"NW\":minX=parentBranch.range.minX;maxX=parentBranch.range.minX+childSize;minY=parentBranch.range.minY;maxY=parentBranch.range.minY+childSize;break;case\"NE\":minX=parentBranch.range.minX+childSize;maxX=parentBranch.range.maxX;minY=parentBranch.range.minY;maxY=parentBranch.range.minY+childSize;break;case\"SW\":minX=parentBranch.range.minX;maxX=parentBranch.range.minX+childSize;minY=parentBranch.range.minY+childSize;maxY=parentBranch.range.maxY;break;case\"SE\":minX=parentBranch.range.minX+childSize;maxX=parentBranch.range.maxX;minY=parentBranch.range.minY+childSize;maxY=parentBranch.range.maxY;break}parentBranch.children[region]={centerOfMass:{x:0,y:0},mass:0,range:{minX:minX,maxX:maxX,minY:minY,maxY:maxY},size:.5*parentBranch.size,calcSize:2*parentBranch.calcSize,children:{data:null},maxWidth:0,level:parentBranch.level+1,childrenCount:0}}},{key:\"_debug\",value:function _debug(ctx,color){if(this.barnesHutTree!==undefined){ctx.lineWidth=1;this._drawBranch(this.barnesHutTree.root,ctx,color)}}},{key:\"_drawBranch\",value:function _drawBranch(branch,ctx,color){if(color===undefined){color=\"#FF0000\"}if(branch.childrenCount===4){this._drawBranch(branch.children.NW,ctx);this._drawBranch(branch.children.NE,ctx);this._drawBranch(branch.children.SE,ctx);this._drawBranch(branch.children.SW,ctx)}ctx.strokeStyle=color;ctx.beginPath();ctx.moveTo(branch.range.minX,branch.range.minY);ctx.lineTo(branch.range.maxX,branch.range.minY);ctx.stroke();ctx.beginPath();ctx.moveTo(branch.range.maxX,branch.range.minY);ctx.lineTo(branch.range.maxX,branch.range.maxY);ctx.stroke();ctx.beginPath();ctx.moveTo(branch.range.maxX,branch.range.maxY);ctx.lineTo(branch.range.minX,branch.range.maxY);ctx.stroke();ctx.beginPath();ctx.moveTo(branch.range.minX,branch.range.maxY);ctx.lineTo(branch.range.minX,branch.range.minY);ctx.stroke()}}]);return BarnesHutSolver}();exports[\"default\"]=BarnesHutSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CentralGravitySolver=function(){function CentralGravitySolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,CentralGravitySolver);this.body=body;this.physicsBody=physicsBody;this.setOptions(options)}(0,_createClass3[\"default\"])(CentralGravitySolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"solve\",value:function solve(){var dx=void 0,dy=void 0,distance=void 0,node=void 0;var nodes=this.body.nodes;var nodeIndices=this.physicsBody.physicsNodeIndices;var forces=this.physicsBody.forces;for(var i=0;i<nodeIndices.length;i++){var nodeId=nodeIndices[i];node=nodes[nodeId];dx=-node.x;dy=-node.y;distance=Math.sqrt(dx*dx+dy*dy);this._calculateForces(distance,dx,dy,forces,node)}}},{key:\"_calculateForces\",value:function _calculateForces(distance,dx,dy,forces,node){var gravityForce=distance===0?0:this.options.centralGravity/distance;forces[node.id].x=dx*gravityForce;forces[node.id].y=dy*gravityForce}}]);return CentralGravitySolver}();exports[\"default\"]=CentralGravitySolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var string=\"string\";var bool=\"boolean\";var number=\"number\";var array=\"array\";var object=\"object\";var dom=\"dom\";var any=\"any\";var endPoints=[\"arrow\",\"circle\",\"bar\"];var allOptions={configure:{enabled:{boolean:bool},filter:{boolean:bool,string:string,array:array,function:\"function\"},container:{dom:dom},showButton:{boolean:bool},__type__:{object:object,boolean:bool,string:string,array:array,function:\"function\"}},edges:{arrows:{to:{enabled:{boolean:bool},scaleFactor:{number:number},type:{string:endPoints},__type__:{object:object,boolean:bool}},middle:{enabled:{boolean:bool},scaleFactor:{number:number},type:{string:endPoints},__type__:{object:object,boolean:bool}},from:{enabled:{boolean:bool},scaleFactor:{number:number},type:{string:endPoints},__type__:{object:object,boolean:bool}},__type__:{string:[\"from\",\"to\",\"middle\"],object:object}},arrowStrikethrough:{boolean:bool},chosen:{label:{boolean:bool,function:\"function\"},edge:{boolean:bool,function:\"function\"},__type__:{object:object,boolean:bool}},color:{color:{string:string},highlight:{string:string},hover:{string:string},inherit:{string:[\"from\",\"to\",\"both\"],boolean:bool},opacity:{number:number},__type__:{object:object,string:string}},dashes:{boolean:bool,array:array},font:{color:{string:string},size:{number:number},face:{string:string},background:{string:string},strokeWidth:{number:number},strokeColor:{string:string},align:{string:[\"horizontal\",\"top\",\"middle\",\"bottom\"]},vadjust:{number:number},multi:{boolean:bool,string:string},bold:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},boldital:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},ital:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},mono:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},__type__:{object:object,string:string}},hidden:{boolean:bool},hoverWidth:{function:\"function\",number:number},label:{string:string,undefined:\"undefined\"},labelHighlightBold:{boolean:bool},length:{number:number,undefined:\"undefined\"},physics:{boolean:bool},scaling:{min:{number:number},max:{number:number},label:{enabled:{boolean:bool},min:{number:number},max:{number:number},maxVisible:{number:number},drawThreshold:{number:number},__type__:{object:object,boolean:bool}},customScalingFunction:{function:\"function\"},__type__:{object:object}},selectionWidth:{function:\"function\",number:number},selfReferenceSize:{number:number},shadow:{enabled:{boolean:bool},color:{string:string},size:{number:number},x:{number:number},y:{number:number},__type__:{object:object,boolean:bool}},smooth:{enabled:{boolean:bool},type:{string:[\"dynamic\",\"continuous\",\"discrete\",\"diagonalCross\",\"straightCross\",\"horizontal\",\"vertical\",\"curvedCW\",\"curvedCCW\",\"cubicBezier\"]},roundness:{number:number},forceDirection:{string:[\"horizontal\",\"vertical\",\"none\"],boolean:bool},__type__:{object:object,boolean:bool}},title:{string:string,undefined:\"undefined\"},width:{number:number},widthConstraint:{maximum:{number:number},__type__:{object:object,boolean:bool,number:number}},value:{number:number,undefined:\"undefined\"},__type__:{object:object}},groups:{useDefaultGroups:{boolean:bool},__any__:\"get from nodes, will be overwritten below\",__type__:{object:object}},interaction:{dragNodes:{boolean:bool},dragView:{boolean:bool},hideEdgesOnDrag:{boolean:bool},hideNodesOnDrag:{boolean:bool},hover:{boolean:bool},keyboard:{enabled:{boolean:bool},speed:{x:{number:number},y:{number:number},zoom:{number:number},__type__:{object:object}},bindToWindow:{boolean:bool},__type__:{object:object,boolean:bool}},multiselect:{boolean:bool},navigationButtons:{boolean:bool},selectable:{boolean:bool},selectConnectedEdges:{boolean:bool},hoverConnectedEdges:{boolean:bool},tooltipDelay:{number:number},zoomView:{boolean:bool},__type__:{object:object}},layout:{randomSeed:{undefined:\"undefined\",number:number},improvedLayout:{boolean:bool},hierarchical:{enabled:{boolean:bool},levelSeparation:{number:number},nodeSpacing:{number:number},treeSpacing:{number:number},blockShifting:{boolean:bool},edgeMinimization:{boolean:bool},parentCentralization:{boolean:bool},direction:{string:[\"UD\",\"DU\",\"LR\",\"RL\"]},sortMethod:{string:[\"hubsize\",\"directed\"]},__type__:{object:object,boolean:bool}},__type__:{object:object}},manipulation:{enabled:{boolean:bool},initiallyActive:{boolean:bool},addNode:{boolean:bool,function:\"function\"},addEdge:{boolean:bool,function:\"function\"},editNode:{function:\"function\"},editEdge:{editWithoutDrag:{function:\"function\"},__type__:{object:object,boolean:bool,function:\"function\"}},deleteNode:{boolean:bool,function:\"function\"},deleteEdge:{boolean:bool,function:\"function\"},controlNodeStyle:\"get from nodes, will be overwritten below\",__type__:{object:object,boolean:bool}},nodes:{borderWidth:{number:number},borderWidthSelected:{number:number,undefined:\"undefined\"},brokenImage:{string:string,undefined:\"undefined\"},chosen:{label:{boolean:bool,function:\"function\"},node:{boolean:bool,function:\"function\"},__type__:{object:object,boolean:bool}},color:{border:{string:string},background:{string:string},highlight:{border:{string:string},background:{string:string},__type__:{object:object,string:string}},hover:{border:{string:string},background:{string:string},__type__:{object:object,string:string}},__type__:{object:object,string:string}},fixed:{x:{boolean:bool},y:{boolean:bool},__type__:{object:object,boolean:bool}},font:{align:{string:string},color:{string:string},size:{number:number},face:{string:string},background:{string:string},strokeWidth:{number:number},strokeColor:{string:string},vadjust:{number:number},multi:{boolean:bool,string:string},bold:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},boldital:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},ital:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},mono:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},__type__:{object:object,string:string}},group:{string:string,number:number,undefined:\"undefined\"},heightConstraint:{minimum:{number:number},valign:{string:string},__type__:{object:object,boolean:bool,number:number}},hidden:{boolean:bool},icon:{face:{string:string},code:{string:string},size:{number:number},color:{string:string},__type__:{object:object}},id:{string:string,number:number},image:{selected:{string:string,undefined:\"undefined\"},unselected:{string:string,undefined:\"undefined\"},__type__:{object:object,string:string}},label:{string:string,undefined:\"undefined\"},labelHighlightBold:{boolean:bool},level:{number:number,undefined:\"undefined\"},margin:{top:{number:number},right:{number:number},bottom:{number:number},left:{number:number},__type__:{object:object,number:number}},mass:{number:number},physics:{boolean:bool},scaling:{min:{number:number},max:{number:number},label:{enabled:{boolean:bool},min:{number:number},max:{number:number},maxVisible:{number:number},drawThreshold:{number:number},__type__:{object:object,boolean:bool}},customScalingFunction:{function:\"function\"},__type__:{object:object}},shadow:{enabled:{boolean:bool},color:{string:string},size:{number:number},x:{number:number},y:{number:number},__type__:{object:object,boolean:bool}},shape:{string:[\"ellipse\",\"circle\",\"database\",\"box\",\"text\",\"image\",\"circularImage\",\"diamond\",\"dot\",\"star\",\"triangle\",\"triangleDown\",\"square\",\"icon\",\"hexagon\"]},shapeProperties:{borderDashes:{boolean:bool,array:array},borderRadius:{number:number},interpolation:{boolean:bool},useImageSize:{boolean:bool},useBorderWithImage:{boolean:bool},__type__:{object:object}},size:{number:number},title:{string:string,dom:dom,undefined:\"undefined\"},value:{number:number,undefined:\"undefined\"},widthConstraint:{minimum:{number:number},maximum:{number:number},__type__:{object:object,boolean:bool,number:number}},x:{number:number},y:{number:number},__type__:{object:object}},physics:{enabled:{boolean:bool},barnesHut:{gravitationalConstant:{number:number},centralGravity:{number:number},springLength:{number:number},springConstant:{number:number},damping:{number:number},avoidOverlap:{number:number},__type__:{object:object}},forceAtlas2Based:{gravitationalConstant:{number:number},centralGravity:{number:number},springLength:{number:number},springConstant:{number:number},damping:{number:number},avoidOverlap:{number:number},__type__:{object:object}},repulsion:{centralGravity:{number:number},springLength:{number:number},springConstant:{number:number},nodeDistance:{number:number},damping:{number:number},__type__:{object:object}},hierarchicalRepulsion:{centralGravity:{number:number},springLength:{number:number},springConstant:{number:number},nodeDistance:{number:number},damping:{number:number},__type__:{object:object}},maxVelocity:{number:number},minVelocity:{number:number},solver:{string:[\"barnesHut\",\"repulsion\",\"hierarchicalRepulsion\",\"forceAtlas2Based\"]},stabilization:{enabled:{boolean:bool},iterations:{number:number},updateInterval:{number:number},onlyDynamicEdges:{boolean:bool},\nfit:{boolean:bool},__type__:{object:object,boolean:bool}},timestep:{number:number},adaptiveTimestep:{boolean:bool},__type__:{object:object,boolean:bool}},autoResize:{boolean:bool},clickToUse:{boolean:bool},locale:{string:string},locales:{__any__:{any:any},__type__:{object:object}},height:{string:string},width:{string:string},__type__:{object:object}};allOptions.groups.__any__=allOptions.nodes;allOptions.manipulation.controlNodeStyle=allOptions.nodes;var configureOptions={nodes:{borderWidth:[1,0,10,1],borderWidthSelected:[2,0,10,1],color:{border:[\"color\",\"#2B7CE9\"],background:[\"color\",\"#97C2FC\"],highlight:{border:[\"color\",\"#2B7CE9\"],background:[\"color\",\"#D2E5FF\"]},hover:{border:[\"color\",\"#2B7CE9\"],background:[\"color\",\"#D2E5FF\"]}},fixed:{x:false,y:false},font:{color:[\"color\",\"#343434\"],size:[14,0,100,1],face:[\"arial\",\"verdana\",\"tahoma\"],background:[\"color\",\"none\"],strokeWidth:[0,0,50,1],strokeColor:[\"color\",\"#ffffff\"]},hidden:false,labelHighlightBold:true,physics:true,scaling:{min:[10,0,200,1],max:[30,0,200,1],label:{enabled:false,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},shadow:{enabled:false,color:\"rgba(0,0,0,0.5)\",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},shape:[\"ellipse\",\"box\",\"circle\",\"database\",\"diamond\",\"dot\",\"square\",\"star\",\"text\",\"triangle\",\"triangleDown\",\"hexagon\"],shapeProperties:{borderDashes:false,borderRadius:[6,0,20,1],interpolation:true,useImageSize:false},size:[25,0,200,1]},edges:{arrows:{to:{enabled:false,scaleFactor:[1,0,3,.05],type:\"arrow\"},middle:{enabled:false,scaleFactor:[1,0,3,.05],type:\"arrow\"},from:{enabled:false,scaleFactor:[1,0,3,.05],type:\"arrow\"}},arrowStrikethrough:true,color:{color:[\"color\",\"#848484\"],highlight:[\"color\",\"#848484\"],hover:[\"color\",\"#848484\"],inherit:[\"from\",\"to\",\"both\",true,false],opacity:[1,0,1,.05]},dashes:false,font:{color:[\"color\",\"#343434\"],size:[14,0,100,1],face:[\"arial\",\"verdana\",\"tahoma\"],background:[\"color\",\"none\"],strokeWidth:[2,0,50,1],strokeColor:[\"color\",\"#ffffff\"],align:[\"horizontal\",\"top\",\"middle\",\"bottom\"]},hidden:false,hoverWidth:[1.5,0,5,.1],labelHighlightBold:true,physics:true,scaling:{min:[1,0,100,1],max:[15,0,100,1],label:{enabled:true,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},selectionWidth:[1.5,0,5,.1],selfReferenceSize:[20,0,200,1],shadow:{enabled:false,color:\"rgba(0,0,0,0.5)\",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},smooth:{enabled:true,type:[\"dynamic\",\"continuous\",\"discrete\",\"diagonalCross\",\"straightCross\",\"horizontal\",\"vertical\",\"curvedCW\",\"curvedCCW\",\"cubicBezier\"],forceDirection:[\"horizontal\",\"vertical\",\"none\"],roundness:[.5,0,1,.05]},width:[1,0,30,1]},layout:{hierarchical:{enabled:false,levelSeparation:[150,20,500,5],nodeSpacing:[100,20,500,5],treeSpacing:[200,20,500,5],blockShifting:true,edgeMinimization:true,parentCentralization:true,direction:[\"UD\",\"DU\",\"LR\",\"RL\"],sortMethod:[\"hubsize\",\"directed\"]}},interaction:{dragNodes:true,dragView:true,hideEdgesOnDrag:false,hideNodesOnDrag:false,hover:false,keyboard:{enabled:false,speed:{x:[10,0,40,1],y:[10,0,40,1],zoom:[.02,0,.1,.005]},bindToWindow:true},multiselect:false,navigationButtons:false,selectable:true,selectConnectedEdges:true,hoverConnectedEdges:true,tooltipDelay:[300,0,1e3,25],zoomView:true},manipulation:{enabled:false,initiallyActive:false},physics:{enabled:true,barnesHut:{gravitationalConstant:[-2e3,-3e4,0,50],centralGravity:[.3,0,10,.05],springLength:[95,0,500,5],springConstant:[.04,0,1.2,.005],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},forceAtlas2Based:{gravitationalConstant:[-50,-500,0,1],centralGravity:[.01,0,1,.005],springLength:[95,0,500,5],springConstant:[.08,0,1.2,.005],damping:[.4,0,1,.01],avoidOverlap:[0,0,1,.01]},repulsion:{centralGravity:[.2,0,10,.05],springLength:[200,0,500,5],springConstant:[.05,0,1.2,.005],nodeDistance:[100,0,500,5],damping:[.09,0,1,.01]},hierarchicalRepulsion:{centralGravity:[.2,0,10,.05],springLength:[100,0,500,5],springConstant:[.01,0,1.2,.005],nodeDistance:[120,0,500,5],damping:[.09,0,1,.01]},maxVelocity:[50,0,150,1],minVelocity:[.1,.01,.5,.01],solver:[\"barnesHut\",\"forceAtlas2Based\",\"repulsion\",\"hierarchicalRepulsion\"],timestep:[.5,.01,1,.01]}};exports.allOptions=allOptions;exports.configureOptions=configureOptions},function(module,exports,__webpack_require__){\"use strict\";var util=__webpack_require__(2);util.extend(exports,__webpack_require__(159));util.extend(exports,__webpack_require__(177));util.extend(exports,__webpack_require__(181))},function(module,exports,__webpack_require__){__webpack_require__(49);__webpack_require__(60);module.exports=__webpack_require__(136)},function(module,exports,__webpack_require__){\"use strict\";var addToUnscopables=__webpack_require__(126);var step=__webpack_require__(127);var Iterators=__webpack_require__(31);var toIObject=__webpack_require__(25);module.exports=__webpack_require__(79)(Array,\"Array\",function(iterated,kind){this._t=toIObject(iterated);this._i=0;this._k=kind},function(){var O=this._t;var kind=this._k;var index=this._i++;if(!O||index>=O.length){this._t=undefined;return step(1)}if(kind==\"keys\")return step(0,index);if(kind==\"values\")return step(0,O[index]);return step(0,[index,O[index]])},\"values\");Iterators.Arguments=Iterators.Array;addToUnscopables(\"keys\");addToUnscopables(\"values\");addToUnscopables(\"entries\")},function(module,exports){module.exports=function(){}},function(module,exports){module.exports=function(done,value){return{value:value,done:!!done}}},function(module,exports){module.exports=function(it){if(typeof it!=\"function\")throw TypeError(it+\" is not a function!\");return it}},function(module,exports,__webpack_require__){\"use strict\";var create=__webpack_require__(54);var descriptor=__webpack_require__(39);var setToStringTag=__webpack_require__(59);var IteratorPrototype={};__webpack_require__(26)(IteratorPrototype,__webpack_require__(13)(\"iterator\"),function(){return this});module.exports=function(Constructor,NAME,next){Constructor.prototype=create(IteratorPrototype,{next:descriptor(1,next)});setToStringTag(Constructor,NAME+\" Iterator\")}},function(module,exports,__webpack_require__){var dP=__webpack_require__(20);var anObject=__webpack_require__(27);var getKeys=__webpack_require__(33);module.exports=__webpack_require__(21)?Object.defineProperties:function defineProperties(O,Properties){anObject(O);var keys=getKeys(Properties);var length=keys.length;var i=0;var P;while(length>i)dP.f(O,P=keys[i++],Properties[P]);return O}},function(module,exports,__webpack_require__){var toIObject=__webpack_require__(25);var toLength=__webpack_require__(132);var toAbsoluteIndex=__webpack_require__(133);module.exports=function(IS_INCLUDES){return function($this,el,fromIndex){var O=toIObject($this);var length=toLength(O.length);var index=toAbsoluteIndex(fromIndex,length);var value;if(IS_INCLUDES&&el!=el)while(length>index){value=O[index++];if(value!=value)return true}else for(;length>index;index++)if(IS_INCLUDES||index in O){if(O[index]===el)return IS_INCLUDES||index||0}return!IS_INCLUDES&&-1}}},function(module,exports,__webpack_require__){var toInteger=__webpack_require__(55);var min=Math.min;module.exports=function(it){return it>0?min(toInteger(it),9007199254740991):0}},function(module,exports,__webpack_require__){var toInteger=__webpack_require__(55);var max=Math.max;var min=Math.min;module.exports=function(index,length){index=toInteger(index);return index<0?max(index+length,0):min(index,length)}},function(module,exports,__webpack_require__){var document=__webpack_require__(18).document;module.exports=document&&document.documentElement},function(module,exports,__webpack_require__){var toInteger=__webpack_require__(55);var defined=__webpack_require__(51);module.exports=function(TO_STRING){return function(that,pos){var s=String(defined(that));var i=toInteger(pos);var l=s.length;var a,b;if(i<0||i>=l)return TO_STRING?\"\":undefined;a=s.charCodeAt(i);return a<55296||a>56319||i+1===l||(b=s.charCodeAt(i+1))<56320||b>57343?TO_STRING?s.charAt(i):a:TO_STRING?s.slice(i,i+2):(a-55296<<10)+(b-56320)+65536}}},function(module,exports,__webpack_require__){var anObject=__webpack_require__(27);var get=__webpack_require__(137);module.exports=__webpack_require__(7).getIterator=function(it){var iterFn=get(it);if(typeof iterFn!=\"function\")throw TypeError(it+\" is not iterable!\");return anObject(iterFn.call(it))}},function(module,exports,__webpack_require__){var classof=__webpack_require__(86);var ITERATOR=__webpack_require__(13)(\"iterator\");var Iterators=__webpack_require__(31);module.exports=__webpack_require__(7).getIteratorMethod=function(it){if(it!=undefined)return it[ITERATOR]||it[\"@@iterator\"]||Iterators[classof(it)]}},function(module,exports,__webpack_require__){__webpack_require__(139);var $Object=__webpack_require__(7).Object;module.exports=function create(P,D){return $Object.create(P,D)}},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);$export($export.S,\"Object\",{create:__webpack_require__(54)})},function(module,exports,__webpack_require__){__webpack_require__(141);module.exports=__webpack_require__(7).Object.keys},function(module,exports,__webpack_require__){var toObject=__webpack_require__(41);var $keys=__webpack_require__(33);__webpack_require__(87)(\"keys\",function(){return function keys(it){return $keys(toObject(it))}})},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(143),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(60);__webpack_require__(49);module.exports=__webpack_require__(61).f(\"iterator\")},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(145),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(146);__webpack_require__(151);__webpack_require__(152);__webpack_require__(153);module.exports=__webpack_require__(7).Symbol},function(module,exports,__webpack_require__){\"use strict\";var global=__webpack_require__(18);var has=__webpack_require__(22);var DESCRIPTORS=__webpack_require__(21);var $export=__webpack_require__(17);var redefine=__webpack_require__(83);var META=__webpack_require__(147).KEY;var $fails=__webpack_require__(28);var shared=__webpack_require__(57);var setToStringTag=__webpack_require__(59);var uid=__webpack_require__(40);var wks=__webpack_require__(13);var wksExt=__webpack_require__(61);var wksDefine=__webpack_require__(62);var enumKeys=__webpack_require__(148);var isArray=__webpack_require__(149);var anObject=__webpack_require__(27);var toIObject=__webpack_require__(25);var toPrimitive=__webpack_require__(53);var createDesc=__webpack_require__(39);var _create=__webpack_require__(54);var gOPNExt=__webpack_require__(150);var $GOPD=__webpack_require__(89);var $DP=__webpack_require__(20);var $keys=__webpack_require__(33);var gOPD=$GOPD.f;var dP=$DP.f;var gOPN=gOPNExt.f;var $Symbol=global.Symbol;var $JSON=global.JSON;var _stringify=$JSON&&$JSON.stringify;var PROTOTYPE=\"prototype\";var HIDDEN=wks(\"_hidden\");var TO_PRIMITIVE=wks(\"toPrimitive\");var isEnum={}.propertyIsEnumerable;var SymbolRegistry=shared(\"symbol-registry\");var AllSymbols=shared(\"symbols\");var OPSymbols=shared(\"op-symbols\");var ObjectProto=Object[PROTOTYPE];var USE_NATIVE=typeof $Symbol==\"function\";var QObject=global.QObject;var setter=!QObject||!QObject[PROTOTYPE]||!QObject[PROTOTYPE].findChild;var setSymbolDesc=DESCRIPTORS&&$fails(function(){return _create(dP({},\"a\",{get:function(){return dP(this,\"a\",{value:7}).a}})).a!=7})?function(it,key,D){var protoDesc=gOPD(ObjectProto,key);if(protoDesc)delete ObjectProto[key];dP(it,key,D);if(protoDesc&&it!==ObjectProto)dP(ObjectProto,key,protoDesc)}:dP;var wrap=function(tag){var sym=AllSymbols[tag]=_create($Symbol[PROTOTYPE]);sym._k=tag;return sym};var isSymbol=USE_NATIVE&&typeof $Symbol.iterator==\"symbol\"?function(it){return typeof it==\"symbol\"}:function(it){return it instanceof $Symbol};var $defineProperty=function defineProperty(it,key,D){if(it===ObjectProto)$defineProperty(OPSymbols,key,D);anObject(it);key=toPrimitive(key,true);anObject(D);if(has(AllSymbols,key)){if(!D.enumerable){if(!has(it,HIDDEN))dP(it,HIDDEN,createDesc(1,{}));it[HIDDEN][key]=true}else{if(has(it,HIDDEN)&&it[HIDDEN][key])it[HIDDEN][key]=false;D=_create(D,{enumerable:createDesc(0,false)})}return setSymbolDesc(it,key,D)}return dP(it,key,D)};var $defineProperties=function defineProperties(it,P){anObject(it);var keys=enumKeys(P=toIObject(P));var i=0;var l=keys.length;var key;while(l>i)$defineProperty(it,key=keys[i++],P[key]);return it};var $create=function create(it,P){return P===undefined?_create(it):$defineProperties(_create(it),P)};var $propertyIsEnumerable=function propertyIsEnumerable(key){var E=isEnum.call(this,key=toPrimitive(key,true));if(this===ObjectProto&&has(AllSymbols,key)&&!has(OPSymbols,key))return false;return E||!has(this,key)||!has(AllSymbols,key)||has(this,HIDDEN)&&this[HIDDEN][key]?E:true};var $getOwnPropertyDescriptor=function getOwnPropertyDescriptor(it,key){it=toIObject(it);key=toPrimitive(key,true);if(it===ObjectProto&&has(AllSymbols,key)&&!has(OPSymbols,key))return;var D=gOPD(it,key);if(D&&has(AllSymbols,key)&&!(has(it,HIDDEN)&&it[HIDDEN][key]))D.enumerable=true;return D};var $getOwnPropertyNames=function getOwnPropertyNames(it){var names=gOPN(toIObject(it));var result=[];var i=0;var key;while(names.length>i){if(!has(AllSymbols,key=names[i++])&&key!=HIDDEN&&key!=META)result.push(key)}return result};var $getOwnPropertySymbols=function getOwnPropertySymbols(it){var IS_OP=it===ObjectProto;var names=gOPN(IS_OP?OPSymbols:toIObject(it));var result=[];var i=0;var key;while(names.length>i){if(has(AllSymbols,key=names[i++])&&(IS_OP?has(ObjectProto,key):true))result.push(AllSymbols[key])}return result};if(!USE_NATIVE){$Symbol=function Symbol(){if(this instanceof $Symbol)throw TypeError(\"Symbol is not a constructor!\");var tag=uid(arguments.length>0?arguments[0]:undefined);var $set=function(value){if(this===ObjectProto)$set.call(OPSymbols,value);if(has(this,HIDDEN)&&has(this[HIDDEN],tag))this[HIDDEN][tag]=false;setSymbolDesc(this,tag,createDesc(1,value))};if(DESCRIPTORS&&setter)setSymbolDesc(ObjectProto,tag,{configurable:true,set:$set});return wrap(tag)};redefine($Symbol[PROTOTYPE],\"toString\",function toString(){return this._k});$GOPD.f=$getOwnPropertyDescriptor;$DP.f=$defineProperty;__webpack_require__(88).f=gOPNExt.f=$getOwnPropertyNames;__webpack_require__(42).f=$propertyIsEnumerable;__webpack_require__(63).f=$getOwnPropertySymbols;if(DESCRIPTORS&&!__webpack_require__(52)){redefine(ObjectProto,\"propertyIsEnumerable\",$propertyIsEnumerable,true)}wksExt.f=function(name){return wrap(wks(name))}}$export($export.G+$export.W+$export.F*!USE_NATIVE,{Symbol:$Symbol});for(var es6Symbols=\"hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables\".split(\",\"),j=0;es6Symbols.length>j;)wks(es6Symbols[j++]);for(var wellKnownSymbols=$keys(wks.store),k=0;wellKnownSymbols.length>k;)wksDefine(wellKnownSymbols[k++]);$export($export.S+$export.F*!USE_NATIVE,\"Symbol\",{for:function(key){return has(SymbolRegistry,key+=\"\")?SymbolRegistry[key]:SymbolRegistry[key]=$Symbol(key)},keyFor:function keyFor(sym){if(!isSymbol(sym))throw TypeError(sym+\" is not a symbol!\");for(var key in SymbolRegistry)if(SymbolRegistry[key]===sym)return key},useSetter:function(){setter=true},useSimple:function(){setter=false}});$export($export.S+$export.F*!USE_NATIVE,\"Object\",{create:$create,defineProperty:$defineProperty,defineProperties:$defineProperties,getOwnPropertyDescriptor:$getOwnPropertyDescriptor,getOwnPropertyNames:$getOwnPropertyNames,getOwnPropertySymbols:$getOwnPropertySymbols});$JSON&&$export($export.S+$export.F*(!USE_NATIVE||$fails(function(){var S=$Symbol();return _stringify([S])!=\"[null]\"||_stringify({a:S})!=\"{}\"||_stringify(Object(S))!=\"{}\"})),\"JSON\",{stringify:function stringify(it){if(it===undefined||isSymbol(it))return;var args=[it];var i=1;var replacer,$replacer;while(arguments.length>i)args.push(arguments[i++]);replacer=args[1];if(typeof replacer==\"function\")$replacer=replacer;if($replacer||!isArray(replacer))replacer=function(key,value){if($replacer)value=$replacer.call(this,key,value);if(!isSymbol(value))return value};args[1]=replacer;return _stringify.apply($JSON,args)}});$Symbol[PROTOTYPE][TO_PRIMITIVE]||__webpack_require__(26)($Symbol[PROTOTYPE],TO_PRIMITIVE,$Symbol[PROTOTYPE].valueOf);setToStringTag($Symbol,\"Symbol\");setToStringTag(Math,\"Math\",true);setToStringTag(global.JSON,\"JSON\",true)},function(module,exports,__webpack_require__){var META=__webpack_require__(40)(\"meta\");var isObject=__webpack_require__(32);var has=__webpack_require__(22);var setDesc=__webpack_require__(20).f;var id=0;var isExtensible=Object.isExtensible||function(){return true};var FREEZE=!__webpack_require__(28)(function(){return isExtensible(Object.preventExtensions({}))});var setMeta=function(it){setDesc(it,META,{value:{i:\"O\"+ ++id,w:{}}})};var fastKey=function(it,create){if(!isObject(it))return typeof it==\"symbol\"?it:(typeof it==\"string\"?\"S\":\"P\")+it;if(!has(it,META)){if(!isExtensible(it))return\"F\";if(!create)return\"E\";setMeta(it)}return it[META].i};var getWeak=function(it,create){if(!has(it,META)){if(!isExtensible(it))return true;if(!create)return false;setMeta(it)}return it[META].w};var onFreeze=function(it){if(FREEZE&&meta.NEED&&isExtensible(it)&&!has(it,META))setMeta(it);return it};var meta=module.exports={KEY:META,NEED:false,fastKey:fastKey,getWeak:getWeak,onFreeze:onFreeze}},function(module,exports,__webpack_require__){var getKeys=__webpack_require__(33);var gOPS=__webpack_require__(63);var pIE=__webpack_require__(42);module.exports=function(it){var result=getKeys(it);var getSymbols=gOPS.f;if(getSymbols){var symbols=getSymbols(it);var isEnum=pIE.f;var i=0;var key;while(symbols.length>i)if(isEnum.call(it,key=symbols[i++]))result.push(key)}return result}},function(module,exports,__webpack_require__){var cof=__webpack_require__(50);module.exports=Array.isArray||function isArray(arg){return cof(arg)==\"Array\"}},function(module,exports,__webpack_require__){var toIObject=__webpack_require__(25);var gOPN=__webpack_require__(88).f;var toString={}.toString;var windowNames=typeof window==\"object\"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];var getWindowNames=function(it){try{return gOPN(it)}catch(e){return windowNames.slice()}};module.exports.f=function getOwnPropertyNames(it){return windowNames&&toString.call(it)==\"[object Window]\"?getWindowNames(it):gOPN(toIObject(it))}},function(module,exports){},function(module,exports,__webpack_require__){__webpack_require__(62)(\"asyncIterator\")},function(module,exports,__webpack_require__){__webpack_require__(62)(\"observable\")},function(module,exports,__webpack_require__){(function(module){var require;(function(global,factory){true?module.exports=factory():typeof define===\"function\"&&define.amd?define(factory):global.moment=factory()})(this,function(){\"use strict\";var hookCallback;function hooks(){return hookCallback.apply(null,arguments)}function setHookCallback(callback){hookCallback=callback}function isArray(input){return input instanceof Array||Object.prototype.toString.call(input)===\"[object Array]\"}function isObject(input){return input!=null&&Object.prototype.toString.call(input)===\"[object Object]\"}function isObjectEmpty(obj){if(Object.getOwnPropertyNames){return Object.getOwnPropertyNames(obj).length===0}else{var k;for(k in obj){if(obj.hasOwnProperty(k)){return false}}return true}}function isUndefined(input){return input===void 0}function isNumber(input){return typeof input===\"number\"||Object.prototype.toString.call(input)===\"[object Number]\"}function isDate(input){return input instanceof Date||Object.prototype.toString.call(input)===\"[object Date]\"}function map(arr,fn){var res=[],i;for(i=0;i<arr.length;++i){res.push(fn(arr[i],i))}return res}function hasOwnProp(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function extend(a,b){for(var i in b){if(hasOwnProp(b,i)){a[i]=b[i]}}if(hasOwnProp(b,\"toString\")){a.toString=b.toString}if(hasOwnProp(b,\"valueOf\")){a.valueOf=b.valueOf}return a}function createUTC(input,format,locale,strict){return createLocalOrUTC(input,format,locale,strict,true).utc()}function defaultParsingFlags(){return{empty:false,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:false,invalidMonth:null,invalidFormat:false,userInvalidated:false,iso:false,parsedDateParts:[],meridiem:null,rfc2822:false,weekdayMismatch:false}}function getParsingFlags(m){if(m._pf==null){m._pf=defaultParsingFlags()}return m._pf}var some;if(Array.prototype.some){some=Array.prototype.some}else{some=function(fun){var t=Object(this);var len=t.length>>>0;for(var i=0;i<len;i++){if(i in t&&fun.call(this,t[i],i,t)){return true}}return false}}function isValid(m){if(m._isValid==null){var flags=getParsingFlags(m);var parsedParts=some.call(flags.parsedDateParts,function(i){return i!=null});var isNowValid=!isNaN(m._d.getTime())&&flags.overflow<0&&!flags.empty&&!flags.invalidMonth&&!flags.invalidWeekday&&!flags.weekdayMismatch&&!flags.nullInput&&!flags.invalidFormat&&!flags.userInvalidated&&(!flags.meridiem||flags.meridiem&&parsedParts);if(m._strict){isNowValid=isNowValid&&flags.charsLeftOver===0&&flags.unusedTokens.length===0&&flags.bigHour===undefined}if(Object.isFrozen==null||!Object.isFrozen(m)){m._isValid=isNowValid}else{return isNowValid}}return m._isValid}function createInvalid(flags){var m=createUTC(NaN);if(flags!=null){extend(getParsingFlags(m),flags)}else{getParsingFlags(m).userInvalidated=true}return m}var momentProperties=hooks.momentProperties=[];function copyConfig(to,from){var i,prop,val;if(!isUndefined(from._isAMomentObject)){to._isAMomentObject=from._isAMomentObject}if(!isUndefined(from._i)){to._i=from._i}if(!isUndefined(from._f)){to._f=from._f}if(!isUndefined(from._l)){to._l=from._l}if(!isUndefined(from._strict)){to._strict=from._strict}if(!isUndefined(from._tzm)){to._tzm=from._tzm}if(!isUndefined(from._isUTC)){to._isUTC=from._isUTC}if(!isUndefined(from._offset)){to._offset=from._offset}if(!isUndefined(from._pf)){to._pf=getParsingFlags(from)}if(!isUndefined(from._locale)){to._locale=from._locale}if(momentProperties.length>0){for(i=0;i<momentProperties.length;i++){prop=momentProperties[i];val=from[prop];if(!isUndefined(val)){to[prop]=val}}}return to}var updateInProgress=false;function Moment(config){copyConfig(this,config);this._d=new Date(config._d!=null?config._d.getTime():NaN);if(!this.isValid()){this._d=new Date(NaN)}if(updateInProgress===false){updateInProgress=true;hooks.updateOffset(this);updateInProgress=false}}function isMoment(obj){return obj instanceof Moment||obj!=null&&obj._isAMomentObject!=null}function absFloor(number){if(number<0){return Math.ceil(number)||0}else{return Math.floor(number)}}function toInt(argumentForCoercion){var coercedNumber=+argumentForCoercion,value=0;if(coercedNumber!==0&&isFinite(coercedNumber)){value=absFloor(coercedNumber)}return value}function compareArrays(array1,array2,dontConvert){var len=Math.min(array1.length,array2.length),lengthDiff=Math.abs(array1.length-array2.length),diffs=0,i;for(i=0;i<len;i++){if(dontConvert&&array1[i]!==array2[i]||!dontConvert&&toInt(array1[i])!==toInt(array2[i])){diffs++}}return diffs+lengthDiff}function warn(msg){if(hooks.suppressDeprecationWarnings===false&&typeof console!==\"undefined\"&&console.warn){console.warn(\"Deprecation warning: \"+msg)}}function deprecate(msg,fn){var firstTime=true;return extend(function(){if(hooks.deprecationHandler!=null){hooks.deprecationHandler(null,msg)}if(firstTime){var args=[];var arg;for(var i=0;i<arguments.length;i++){arg=\"\";if(typeof arguments[i]===\"object\"){arg+=\"\\n[\"+i+\"] \";for(var key in arguments[0]){arg+=key+\": \"+arguments[0][key]+\", \"}arg=arg.slice(0,-2)}else{arg=arguments[i]}args.push(arg)}warn(msg+\"\\nArguments: \"+Array.prototype.slice.call(args).join(\"\")+\"\\n\"+(new Error).stack);firstTime=false}return fn.apply(this,arguments)},fn)}var deprecations={};function deprecateSimple(name,msg){if(hooks.deprecationHandler!=null){hooks.deprecationHandler(name,msg)}if(!deprecations[name]){warn(msg);deprecations[name]=true}}hooks.suppressDeprecationWarnings=false;hooks.deprecationHandler=null;function isFunction(input){return input instanceof Function||Object.prototype.toString.call(input)===\"[object Function]\"}function set(config){var prop,i;for(i in config){prop=config[i];if(isFunction(prop)){this[i]=prop}else{this[\"_\"+i]=prop}}this._config=config;this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+\"|\"+/\\d{1,2}/.source)}function mergeConfigs(parentConfig,childConfig){var res=extend({},parentConfig),prop;for(prop in childConfig){if(hasOwnProp(childConfig,prop)){if(isObject(parentConfig[prop])&&isObject(childConfig[prop])){res[prop]={};extend(res[prop],parentConfig[prop]);extend(res[prop],childConfig[prop])}else if(childConfig[prop]!=null){res[prop]=childConfig[prop]}else{delete res[prop]}}}for(prop in parentConfig){if(hasOwnProp(parentConfig,prop)&&!hasOwnProp(childConfig,prop)&&isObject(parentConfig[prop])){res[prop]=extend({},res[prop])}}return res}function Locale(config){if(config!=null){this.set(config)}}var keys;if(Object.keys){keys=Object.keys}else{keys=function(obj){var i,res=[];for(i in obj){if(hasOwnProp(obj,i)){res.push(i)}}return res}}var defaultCalendar={sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"};function calendar(key,mom,now){var output=this._calendar[key]||this._calendar[\"sameElse\"];return isFunction(output)?output.call(mom,now):output}var defaultLongDateFormat={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"};function longDateFormat(key){var format=this._longDateFormat[key],formatUpper=this._longDateFormat[key.toUpperCase()];if(format||!formatUpper){return format}this._longDateFormat[key]=formatUpper.replace(/MMMM|MM|DD|dddd/g,function(val){return val.slice(1)});return this._longDateFormat[key]}var defaultInvalidDate=\"Invalid date\";function invalidDate(){return this._invalidDate}var defaultOrdinal=\"%d\";var defaultDayOfMonthOrdinalParse=/\\d{1,2}/;function ordinal(number){return this._ordinal.replace(\"%d\",number)}var defaultRelativeTime={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",ss:\"%d seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};function relativeTime(number,withoutSuffix,string,isFuture){var output=this._relativeTime[string];return isFunction(output)?output(number,withoutSuffix,string,isFuture):output.replace(/%d/i,number)}function pastFuture(diff,output){var format=this._relativeTime[diff>0?\"future\":\"past\"];return isFunction(format)?format(output):format.replace(/%s/i,output)}var aliases={};function addUnitAlias(unit,shorthand){var lowerCase=unit.toLowerCase();aliases[lowerCase]=aliases[lowerCase+\"s\"]=aliases[shorthand]=unit}function normalizeUnits(units){return typeof units===\"string\"?aliases[units]||aliases[units.toLowerCase()]:undefined}function normalizeObjectUnits(inputObject){var normalizedInput={},normalizedProp,prop;for(prop in inputObject){if(hasOwnProp(inputObject,prop)){normalizedProp=normalizeUnits(prop);if(normalizedProp){normalizedInput[normalizedProp]=inputObject[prop]}}}return normalizedInput}var priorities={};function addUnitPriority(unit,priority){priorities[unit]=priority}function getPrioritizedUnits(unitsObj){var units=[];for(var u in unitsObj){units.push({unit:u,priority:priorities[u]})}units.sort(function(a,b){return a.priority-b.priority});return units}function zeroFill(number,targetLength,forceSign){var absNumber=\"\"+Math.abs(number),zerosToFill=targetLength-absNumber.length,sign=number>=0;return(sign?forceSign?\"+\":\"\":\"-\")+Math.pow(10,Math.max(0,zerosToFill)).toString().substr(1)+absNumber}var formattingTokens=/(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;var localFormattingTokens=/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;var formatFunctions={};var formatTokenFunctions={};function addFormatToken(token,padded,ordinal,callback){var func=callback;if(typeof callback===\"string\"){func=function(){return this[callback]()}}if(token){formatTokenFunctions[token]=func}if(padded){formatTokenFunctions[padded[0]]=function(){return zeroFill(func.apply(this,arguments),padded[1],padded[2])}}if(ordinal){formatTokenFunctions[ordinal]=function(){return this.localeData().ordinal(func.apply(this,arguments),token)}}}function removeFormattingTokens(input){if(input.match(/\\[[\\s\\S]/)){return input.replace(/^\\[|\\]$/g,\"\")}return input.replace(/\\\\/g,\"\")}function makeFormatFunction(format){var array=format.match(formattingTokens),i,length;for(i=0,length=array.length;i<length;i++){if(formatTokenFunctions[array[i]]){array[i]=formatTokenFunctions[array[i]]}else{array[i]=removeFormattingTokens(array[i])}}return function(mom){var output=\"\",i;for(i=0;i<length;i++){output+=isFunction(array[i])?array[i].call(mom,format):array[i]}return output}}function formatMoment(m,format){if(!m.isValid()){return m.localeData().invalidDate()}format=expandFormat(format,m.localeData());formatFunctions[format]=formatFunctions[format]||makeFormatFunction(format);return formatFunctions[format](m)}function expandFormat(format,locale){var i=5;function replaceLongDateFormatTokens(input){return locale.longDateFormat(input)||input}localFormattingTokens.lastIndex=0;while(i>=0&&localFormattingTokens.test(format)){format=format.replace(localFormattingTokens,replaceLongDateFormatTokens);localFormattingTokens.lastIndex=0;i-=1}return format}var match1=/\\d/;var match2=/\\d\\d/;var match3=/\\d{3}/;var match4=/\\d{4}/;var match6=/[+-]?\\d{6}/;var match1to2=/\\d\\d?/;var match3to4=/\\d\\d\\d\\d?/;var match5to6=/\\d\\d\\d\\d\\d\\d?/;var match1to3=/\\d{1,3}/;var match1to4=/\\d{1,4}/;var match1to6=/[+-]?\\d{1,6}/;var matchUnsigned=/\\d+/;var matchSigned=/[+-]?\\d+/;var matchOffset=/Z|[+-]\\d\\d:?\\d\\d/gi;var matchShortOffset=/Z|[+-]\\d\\d(?::?\\d\\d)?/gi;var matchTimestamp=/[+-]?\\d+(\\.\\d{1,3})?/;var matchWord=/[0-9]*['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF\\/]+(\\s*?[\\u0600-\\u06FF]+){1,2}/i;var regexes={};function addRegexToken(token,regex,strictRegex){regexes[token]=isFunction(regex)?regex:function(isStrict,localeData){return isStrict&&strictRegex?strictRegex:regex}}function getParseRegexForToken(token,config){if(!hasOwnProp(regexes,token)){return new RegExp(unescapeFormat(token))}return regexes[token](config._strict,config._locale)}function unescapeFormat(s){return regexEscape(s.replace(\"\\\\\",\"\").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,function(matched,p1,p2,p3,p4){return p1||p2||p3||p4}))}function regexEscape(s){return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}var tokens={};function addParseToken(token,callback){var i,func=callback;if(typeof token===\"string\"){token=[token]}if(isNumber(callback)){func=function(input,array){array[callback]=toInt(input)}}for(i=0;i<token.length;i++){tokens[token[i]]=func}}function addWeekParseToken(token,callback){addParseToken(token,function(input,array,config,token){config._w=config._w||{};callback(input,config._w,config,token)})}function addTimeToArrayFromToken(token,input,config){if(input!=null&&hasOwnProp(tokens,token)){tokens[token](input,config._a,config,token)}}var YEAR=0;var MONTH=1;var DATE=2;var HOUR=3;var MINUTE=4;var SECOND=5;var MILLISECOND=6;var WEEK=7;var WEEKDAY=8;addFormatToken(\"Y\",0,0,function(){var y=this.year();return y<=9999?\"\"+y:\"+\"+y});addFormatToken(0,[\"YY\",2],0,function(){return this.year()%100});addFormatToken(0,[\"YYYY\",4],0,\"year\");addFormatToken(0,[\"YYYYY\",5],0,\"year\");addFormatToken(0,[\"YYYYYY\",6,true],0,\"year\");addUnitAlias(\"year\",\"y\");addUnitPriority(\"year\",1);addRegexToken(\"Y\",matchSigned)\n;addRegexToken(\"YY\",match1to2,match2);addRegexToken(\"YYYY\",match1to4,match4);addRegexToken(\"YYYYY\",match1to6,match6);addRegexToken(\"YYYYYY\",match1to6,match6);addParseToken([\"YYYYY\",\"YYYYYY\"],YEAR);addParseToken(\"YYYY\",function(input,array){array[YEAR]=input.length===2?hooks.parseTwoDigitYear(input):toInt(input)});addParseToken(\"YY\",function(input,array){array[YEAR]=hooks.parseTwoDigitYear(input)});addParseToken(\"Y\",function(input,array){array[YEAR]=parseInt(input,10)});function daysInYear(year){return isLeapYear(year)?366:365}function isLeapYear(year){return year%4===0&&year%100!==0||year%400===0}hooks.parseTwoDigitYear=function(input){return toInt(input)+(toInt(input)>68?1900:2e3)};var getSetYear=makeGetSet(\"FullYear\",true);function getIsLeapYear(){return isLeapYear(this.year())}function makeGetSet(unit,keepTime){return function(value){if(value!=null){set$1(this,unit,value);hooks.updateOffset(this,keepTime);return this}else{return get(this,unit)}}}function get(mom,unit){return mom.isValid()?mom._d[\"get\"+(mom._isUTC?\"UTC\":\"\")+unit]():NaN}function set$1(mom,unit,value){if(mom.isValid()&&!isNaN(value)){if(unit===\"FullYear\"&&isLeapYear(mom.year())){mom._d[\"set\"+(mom._isUTC?\"UTC\":\"\")+unit](value,mom.month(),daysInMonth(value,mom.month()))}else{mom._d[\"set\"+(mom._isUTC?\"UTC\":\"\")+unit](value)}}}function stringGet(units){units=normalizeUnits(units);if(isFunction(this[units])){return this[units]()}return this}function stringSet(units,value){if(typeof units===\"object\"){units=normalizeObjectUnits(units);var prioritized=getPrioritizedUnits(units);for(var i=0;i<prioritized.length;i++){this[prioritized[i].unit](units[prioritized[i].unit])}}else{units=normalizeUnits(units);if(isFunction(this[units])){return this[units](value)}}return this}function mod(n,x){return(n%x+x)%x}var indexOf;if(Array.prototype.indexOf){indexOf=Array.prototype.indexOf}else{indexOf=function(o){var i;for(i=0;i<this.length;++i){if(this[i]===o){return i}}return-1}}function daysInMonth(year,month){if(isNaN(year)||isNaN(month)){return NaN}var modMonth=mod(month,12);year+=(month-modMonth)/12;return modMonth===1?isLeapYear(year)?29:28:31-modMonth%7%2}addFormatToken(\"M\",[\"MM\",2],\"Mo\",function(){return this.month()+1});addFormatToken(\"MMM\",0,0,function(format){return this.localeData().monthsShort(this,format)});addFormatToken(\"MMMM\",0,0,function(format){return this.localeData().months(this,format)});addUnitAlias(\"month\",\"M\");addUnitPriority(\"month\",8);addRegexToken(\"M\",match1to2);addRegexToken(\"MM\",match1to2,match2);addRegexToken(\"MMM\",function(isStrict,locale){return locale.monthsShortRegex(isStrict)});addRegexToken(\"MMMM\",function(isStrict,locale){return locale.monthsRegex(isStrict)});addParseToken([\"M\",\"MM\"],function(input,array){array[MONTH]=toInt(input)-1});addParseToken([\"MMM\",\"MMMM\"],function(input,array,config,token){var month=config._locale.monthsParse(input,token,config._strict);if(month!=null){array[MONTH]=month}else{getParsingFlags(config).invalidMonth=input}});var MONTHS_IN_FORMAT=/D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;var defaultLocaleMonths=\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\");function localeMonths(m,format){if(!m){return isArray(this._months)?this._months:this._months[\"standalone\"]}return isArray(this._months)?this._months[m.month()]:this._months[(this._months.isFormat||MONTHS_IN_FORMAT).test(format)?\"format\":\"standalone\"][m.month()]}var defaultLocaleMonthsShort=\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\");function localeMonthsShort(m,format){if(!m){return isArray(this._monthsShort)?this._monthsShort:this._monthsShort[\"standalone\"]}return isArray(this._monthsShort)?this._monthsShort[m.month()]:this._monthsShort[MONTHS_IN_FORMAT.test(format)?\"format\":\"standalone\"][m.month()]}function handleStrictParse(monthName,format,strict){var i,ii,mom,llc=monthName.toLocaleLowerCase();if(!this._monthsParse){this._monthsParse=[];this._longMonthsParse=[];this._shortMonthsParse=[];for(i=0;i<12;++i){mom=createUTC([2e3,i]);this._shortMonthsParse[i]=this.monthsShort(mom,\"\").toLocaleLowerCase();this._longMonthsParse[i]=this.months(mom,\"\").toLocaleLowerCase()}}if(strict){if(format===\"MMM\"){ii=indexOf.call(this._shortMonthsParse,llc);return ii!==-1?ii:null}else{ii=indexOf.call(this._longMonthsParse,llc);return ii!==-1?ii:null}}else{if(format===\"MMM\"){ii=indexOf.call(this._shortMonthsParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._longMonthsParse,llc);return ii!==-1?ii:null}else{ii=indexOf.call(this._longMonthsParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._shortMonthsParse,llc);return ii!==-1?ii:null}}}function localeMonthsParse(monthName,format,strict){var i,mom,regex;if(this._monthsParseExact){return handleStrictParse.call(this,monthName,format,strict)}if(!this._monthsParse){this._monthsParse=[];this._longMonthsParse=[];this._shortMonthsParse=[]}for(i=0;i<12;i++){mom=createUTC([2e3,i]);if(strict&&!this._longMonthsParse[i]){this._longMonthsParse[i]=new RegExp(\"^\"+this.months(mom,\"\").replace(\".\",\"\")+\"$\",\"i\");this._shortMonthsParse[i]=new RegExp(\"^\"+this.monthsShort(mom,\"\").replace(\".\",\"\")+\"$\",\"i\")}if(!strict&&!this._monthsParse[i]){regex=\"^\"+this.months(mom,\"\")+\"|^\"+this.monthsShort(mom,\"\");this._monthsParse[i]=new RegExp(regex.replace(\".\",\"\"),\"i\")}if(strict&&format===\"MMMM\"&&this._longMonthsParse[i].test(monthName)){return i}else if(strict&&format===\"MMM\"&&this._shortMonthsParse[i].test(monthName)){return i}else if(!strict&&this._monthsParse[i].test(monthName)){return i}}}function setMonth(mom,value){var dayOfMonth;if(!mom.isValid()){return mom}if(typeof value===\"string\"){if(/^\\d+$/.test(value)){value=toInt(value)}else{value=mom.localeData().monthsParse(value);if(!isNumber(value)){return mom}}}dayOfMonth=Math.min(mom.date(),daysInMonth(mom.year(),value));mom._d[\"set\"+(mom._isUTC?\"UTC\":\"\")+\"Month\"](value,dayOfMonth);return mom}function getSetMonth(value){if(value!=null){setMonth(this,value);hooks.updateOffset(this,true);return this}else{return get(this,\"Month\")}}function getDaysInMonth(){return daysInMonth(this.year(),this.month())}var defaultMonthsShortRegex=matchWord;function monthsShortRegex(isStrict){if(this._monthsParseExact){if(!hasOwnProp(this,\"_monthsRegex\")){computeMonthsParse.call(this)}if(isStrict){return this._monthsShortStrictRegex}else{return this._monthsShortRegex}}else{if(!hasOwnProp(this,\"_monthsShortRegex\")){this._monthsShortRegex=defaultMonthsShortRegex}return this._monthsShortStrictRegex&&isStrict?this._monthsShortStrictRegex:this._monthsShortRegex}}var defaultMonthsRegex=matchWord;function monthsRegex(isStrict){if(this._monthsParseExact){if(!hasOwnProp(this,\"_monthsRegex\")){computeMonthsParse.call(this)}if(isStrict){return this._monthsStrictRegex}else{return this._monthsRegex}}else{if(!hasOwnProp(this,\"_monthsRegex\")){this._monthsRegex=defaultMonthsRegex}return this._monthsStrictRegex&&isStrict?this._monthsStrictRegex:this._monthsRegex}}function computeMonthsParse(){function cmpLenRev(a,b){return b.length-a.length}var shortPieces=[],longPieces=[],mixedPieces=[],i,mom;for(i=0;i<12;i++){mom=createUTC([2e3,i]);shortPieces.push(this.monthsShort(mom,\"\"));longPieces.push(this.months(mom,\"\"));mixedPieces.push(this.months(mom,\"\"));mixedPieces.push(this.monthsShort(mom,\"\"))}shortPieces.sort(cmpLenRev);longPieces.sort(cmpLenRev);mixedPieces.sort(cmpLenRev);for(i=0;i<12;i++){shortPieces[i]=regexEscape(shortPieces[i]);longPieces[i]=regexEscape(longPieces[i])}for(i=0;i<24;i++){mixedPieces[i]=regexEscape(mixedPieces[i])}this._monthsRegex=new RegExp(\"^(\"+mixedPieces.join(\"|\")+\")\",\"i\");this._monthsShortRegex=this._monthsRegex;this._monthsStrictRegex=new RegExp(\"^(\"+longPieces.join(\"|\")+\")\",\"i\");this._monthsShortStrictRegex=new RegExp(\"^(\"+shortPieces.join(\"|\")+\")\",\"i\")}function createDate(y,m,d,h,M,s,ms){var date=new Date(y,m,d,h,M,s,ms);if(y<100&&y>=0&&isFinite(date.getFullYear())){date.setFullYear(y)}return date}function createUTCDate(y){var date=new Date(Date.UTC.apply(null,arguments));if(y<100&&y>=0&&isFinite(date.getUTCFullYear())){date.setUTCFullYear(y)}return date}function firstWeekOffset(year,dow,doy){var fwd=7+dow-doy,fwdlw=(7+createUTCDate(year,0,fwd).getUTCDay()-dow)%7;return-fwdlw+fwd-1}function dayOfYearFromWeeks(year,week,weekday,dow,doy){var localWeekday=(7+weekday-dow)%7,weekOffset=firstWeekOffset(year,dow,doy),dayOfYear=1+7*(week-1)+localWeekday+weekOffset,resYear,resDayOfYear;if(dayOfYear<=0){resYear=year-1;resDayOfYear=daysInYear(resYear)+dayOfYear}else if(dayOfYear>daysInYear(year)){resYear=year+1;resDayOfYear=dayOfYear-daysInYear(year)}else{resYear=year;resDayOfYear=dayOfYear}return{year:resYear,dayOfYear:resDayOfYear}}function weekOfYear(mom,dow,doy){var weekOffset=firstWeekOffset(mom.year(),dow,doy),week=Math.floor((mom.dayOfYear()-weekOffset-1)/7)+1,resWeek,resYear;if(week<1){resYear=mom.year()-1;resWeek=week+weeksInYear(resYear,dow,doy)}else if(week>weeksInYear(mom.year(),dow,doy)){resWeek=week-weeksInYear(mom.year(),dow,doy);resYear=mom.year()+1}else{resYear=mom.year();resWeek=week}return{week:resWeek,year:resYear}}function weeksInYear(year,dow,doy){var weekOffset=firstWeekOffset(year,dow,doy),weekOffsetNext=firstWeekOffset(year+1,dow,doy);return(daysInYear(year)-weekOffset+weekOffsetNext)/7}addFormatToken(\"w\",[\"ww\",2],\"wo\",\"week\");addFormatToken(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\");addUnitAlias(\"week\",\"w\");addUnitAlias(\"isoWeek\",\"W\");addUnitPriority(\"week\",5);addUnitPriority(\"isoWeek\",5);addRegexToken(\"w\",match1to2);addRegexToken(\"ww\",match1to2,match2);addRegexToken(\"W\",match1to2);addRegexToken(\"WW\",match1to2,match2);addWeekParseToken([\"w\",\"ww\",\"W\",\"WW\"],function(input,week,config,token){week[token.substr(0,1)]=toInt(input)});function localeWeek(mom){return weekOfYear(mom,this._week.dow,this._week.doy).week}var defaultLocaleWeek={dow:0,doy:6};function localeFirstDayOfWeek(){return this._week.dow}function localeFirstDayOfYear(){return this._week.doy}function getSetWeek(input){var week=this.localeData().week(this);return input==null?week:this.add((input-week)*7,\"d\")}function getSetISOWeek(input){var week=weekOfYear(this,1,4).week;return input==null?week:this.add((input-week)*7,\"d\")}addFormatToken(\"d\",0,\"do\",\"day\");addFormatToken(\"dd\",0,0,function(format){return this.localeData().weekdaysMin(this,format)});addFormatToken(\"ddd\",0,0,function(format){return this.localeData().weekdaysShort(this,format)});addFormatToken(\"dddd\",0,0,function(format){return this.localeData().weekdays(this,format)});addFormatToken(\"e\",0,0,\"weekday\");addFormatToken(\"E\",0,0,\"isoWeekday\");addUnitAlias(\"day\",\"d\");addUnitAlias(\"weekday\",\"e\");addUnitAlias(\"isoWeekday\",\"E\");addUnitPriority(\"day\",11);addUnitPriority(\"weekday\",11);addUnitPriority(\"isoWeekday\",11);addRegexToken(\"d\",match1to2);addRegexToken(\"e\",match1to2);addRegexToken(\"E\",match1to2);addRegexToken(\"dd\",function(isStrict,locale){return locale.weekdaysMinRegex(isStrict)});addRegexToken(\"ddd\",function(isStrict,locale){return locale.weekdaysShortRegex(isStrict)});addRegexToken(\"dddd\",function(isStrict,locale){return locale.weekdaysRegex(isStrict)});addWeekParseToken([\"dd\",\"ddd\",\"dddd\"],function(input,week,config,token){var weekday=config._locale.weekdaysParse(input,token,config._strict);if(weekday!=null){week.d=weekday}else{getParsingFlags(config).invalidWeekday=input}});addWeekParseToken([\"d\",\"e\",\"E\"],function(input,week,config,token){week[token]=toInt(input)});function parseWeekday(input,locale){if(typeof input!==\"string\"){return input}if(!isNaN(input)){return parseInt(input,10)}input=locale.weekdaysParse(input);if(typeof input===\"number\"){return input}return null}function parseIsoWeekday(input,locale){if(typeof input===\"string\"){return locale.weekdaysParse(input)%7||7}return isNaN(input)?null:input}var defaultLocaleWeekdays=\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\");function localeWeekdays(m,format){if(!m){return isArray(this._weekdays)?this._weekdays:this._weekdays[\"standalone\"]}return isArray(this._weekdays)?this._weekdays[m.day()]:this._weekdays[this._weekdays.isFormat.test(format)?\"format\":\"standalone\"][m.day()]}var defaultLocaleWeekdaysShort=\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\");function localeWeekdaysShort(m){return m?this._weekdaysShort[m.day()]:this._weekdaysShort}var defaultLocaleWeekdaysMin=\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\");function localeWeekdaysMin(m){return m?this._weekdaysMin[m.day()]:this._weekdaysMin}function handleStrictParse$1(weekdayName,format,strict){var i,ii,mom,llc=weekdayName.toLocaleLowerCase();if(!this._weekdaysParse){this._weekdaysParse=[];this._shortWeekdaysParse=[];this._minWeekdaysParse=[];for(i=0;i<7;++i){mom=createUTC([2e3,1]).day(i);this._minWeekdaysParse[i]=this.weekdaysMin(mom,\"\").toLocaleLowerCase();this._shortWeekdaysParse[i]=this.weekdaysShort(mom,\"\").toLocaleLowerCase();this._weekdaysParse[i]=this.weekdays(mom,\"\").toLocaleLowerCase()}}if(strict){if(format===\"dddd\"){ii=indexOf.call(this._weekdaysParse,llc);return ii!==-1?ii:null}else if(format===\"ddd\"){ii=indexOf.call(this._shortWeekdaysParse,llc);return ii!==-1?ii:null}else{ii=indexOf.call(this._minWeekdaysParse,llc);return ii!==-1?ii:null}}else{if(format===\"dddd\"){ii=indexOf.call(this._weekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._shortWeekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._minWeekdaysParse,llc);return ii!==-1?ii:null}else if(format===\"ddd\"){ii=indexOf.call(this._shortWeekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._weekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._minWeekdaysParse,llc);return ii!==-1?ii:null}else{ii=indexOf.call(this._minWeekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._weekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._shortWeekdaysParse,llc);return ii!==-1?ii:null}}}function localeWeekdaysParse(weekdayName,format,strict){var i,mom,regex;if(this._weekdaysParseExact){return handleStrictParse$1.call(this,weekdayName,format,strict)}if(!this._weekdaysParse){this._weekdaysParse=[];this._minWeekdaysParse=[];this._shortWeekdaysParse=[];this._fullWeekdaysParse=[]}for(i=0;i<7;i++){mom=createUTC([2e3,1]).day(i);if(strict&&!this._fullWeekdaysParse[i]){this._fullWeekdaysParse[i]=new RegExp(\"^\"+this.weekdays(mom,\"\").replace(\".\",\".?\")+\"$\",\"i\");this._shortWeekdaysParse[i]=new RegExp(\"^\"+this.weekdaysShort(mom,\"\").replace(\".\",\".?\")+\"$\",\"i\");this._minWeekdaysParse[i]=new RegExp(\"^\"+this.weekdaysMin(mom,\"\").replace(\".\",\".?\")+\"$\",\"i\")}if(!this._weekdaysParse[i]){regex=\"^\"+this.weekdays(mom,\"\")+\"|^\"+this.weekdaysShort(mom,\"\")+\"|^\"+this.weekdaysMin(mom,\"\");this._weekdaysParse[i]=new RegExp(regex.replace(\".\",\"\"),\"i\")}if(strict&&format===\"dddd\"&&this._fullWeekdaysParse[i].test(weekdayName)){return i}else if(strict&&format===\"ddd\"&&this._shortWeekdaysParse[i].test(weekdayName)){return i}else if(strict&&format===\"dd\"&&this._minWeekdaysParse[i].test(weekdayName)){return i}else if(!strict&&this._weekdaysParse[i].test(weekdayName)){return i}}}function getSetDayOfWeek(input){if(!this.isValid()){return input!=null?this:NaN}var day=this._isUTC?this._d.getUTCDay():this._d.getDay();if(input!=null){input=parseWeekday(input,this.localeData());return this.add(input-day,\"d\")}else{return day}}function getSetLocaleDayOfWeek(input){if(!this.isValid()){return input!=null?this:NaN}var weekday=(this.day()+7-this.localeData()._week.dow)%7;return input==null?weekday:this.add(input-weekday,\"d\")}function getSetISODayOfWeek(input){if(!this.isValid()){return input!=null?this:NaN}if(input!=null){var weekday=parseIsoWeekday(input,this.localeData());return this.day(this.day()%7?weekday:weekday-7)}else{return this.day()||7}}var defaultWeekdaysRegex=matchWord;function weekdaysRegex(isStrict){if(this._weekdaysParseExact){if(!hasOwnProp(this,\"_weekdaysRegex\")){computeWeekdaysParse.call(this)}if(isStrict){return this._weekdaysStrictRegex}else{return this._weekdaysRegex}}else{if(!hasOwnProp(this,\"_weekdaysRegex\")){this._weekdaysRegex=defaultWeekdaysRegex}return this._weekdaysStrictRegex&&isStrict?this._weekdaysStrictRegex:this._weekdaysRegex}}var defaultWeekdaysShortRegex=matchWord;function weekdaysShortRegex(isStrict){if(this._weekdaysParseExact){if(!hasOwnProp(this,\"_weekdaysRegex\")){computeWeekdaysParse.call(this)}if(isStrict){return this._weekdaysShortStrictRegex}else{return this._weekdaysShortRegex}}else{if(!hasOwnProp(this,\"_weekdaysShortRegex\")){this._weekdaysShortRegex=defaultWeekdaysShortRegex}return this._weekdaysShortStrictRegex&&isStrict?this._weekdaysShortStrictRegex:this._weekdaysShortRegex}}var defaultWeekdaysMinRegex=matchWord;function weekdaysMinRegex(isStrict){if(this._weekdaysParseExact){if(!hasOwnProp(this,\"_weekdaysRegex\")){computeWeekdaysParse.call(this)}if(isStrict){return this._weekdaysMinStrictRegex}else{return this._weekdaysMinRegex}}else{if(!hasOwnProp(this,\"_weekdaysMinRegex\")){this._weekdaysMinRegex=defaultWeekdaysMinRegex}return this._weekdaysMinStrictRegex&&isStrict?this._weekdaysMinStrictRegex:this._weekdaysMinRegex}}function computeWeekdaysParse(){function cmpLenRev(a,b){return b.length-a.length}var minPieces=[],shortPieces=[],longPieces=[],mixedPieces=[],i,mom,minp,shortp,longp;for(i=0;i<7;i++){mom=createUTC([2e3,1]).day(i);minp=this.weekdaysMin(mom,\"\");shortp=this.weekdaysShort(mom,\"\");longp=this.weekdays(mom,\"\");minPieces.push(minp);shortPieces.push(shortp);longPieces.push(longp);mixedPieces.push(minp);mixedPieces.push(shortp);mixedPieces.push(longp)}minPieces.sort(cmpLenRev);shortPieces.sort(cmpLenRev);longPieces.sort(cmpLenRev);mixedPieces.sort(cmpLenRev);for(i=0;i<7;i++){shortPieces[i]=regexEscape(shortPieces[i]);longPieces[i]=regexEscape(longPieces[i]);mixedPieces[i]=regexEscape(mixedPieces[i])}this._weekdaysRegex=new RegExp(\"^(\"+mixedPieces.join(\"|\")+\")\",\"i\");this._weekdaysShortRegex=this._weekdaysRegex;this._weekdaysMinRegex=this._weekdaysRegex;this._weekdaysStrictRegex=new RegExp(\"^(\"+longPieces.join(\"|\")+\")\",\"i\");this._weekdaysShortStrictRegex=new RegExp(\"^(\"+shortPieces.join(\"|\")+\")\",\"i\");this._weekdaysMinStrictRegex=new RegExp(\"^(\"+minPieces.join(\"|\")+\")\",\"i\")}function hFormat(){return this.hours()%12||12}function kFormat(){return this.hours()||24}addFormatToken(\"H\",[\"HH\",2],0,\"hour\");addFormatToken(\"h\",[\"hh\",2],0,hFormat);addFormatToken(\"k\",[\"kk\",2],0,kFormat);addFormatToken(\"hmm\",0,0,function(){return\"\"+hFormat.apply(this)+zeroFill(this.minutes(),2)});addFormatToken(\"hmmss\",0,0,function(){return\"\"+hFormat.apply(this)+zeroFill(this.minutes(),2)+zeroFill(this.seconds(),2)});addFormatToken(\"Hmm\",0,0,function(){return\"\"+this.hours()+zeroFill(this.minutes(),2)});addFormatToken(\"Hmmss\",0,0,function(){return\"\"+this.hours()+zeroFill(this.minutes(),2)+zeroFill(this.seconds(),2)});function meridiem(token,lowercase){addFormatToken(token,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),lowercase)})}meridiem(\"a\",true);meridiem(\"A\",false);addUnitAlias(\"hour\",\"h\");addUnitPriority(\"hour\",13);function matchMeridiem(isStrict,locale){return locale._meridiemParse}addRegexToken(\"a\",matchMeridiem);addRegexToken(\"A\",matchMeridiem);addRegexToken(\"H\",match1to2);addRegexToken(\"h\",match1to2);addRegexToken(\"k\",match1to2);addRegexToken(\"HH\",match1to2,match2);addRegexToken(\"hh\",match1to2,match2);addRegexToken(\"kk\",match1to2,match2);addRegexToken(\"hmm\",match3to4);addRegexToken(\"hmmss\",match5to6);addRegexToken(\"Hmm\",match3to4);addRegexToken(\"Hmmss\",match5to6);addParseToken([\"H\",\"HH\"],HOUR);addParseToken([\"k\",\"kk\"],function(input,array,config){var kInput=toInt(input);array[HOUR]=kInput===24?0:kInput});addParseToken([\"a\",\"A\"],function(input,array,config){config._isPm=config._locale.isPM(input);config._meridiem=input});addParseToken([\"h\",\"hh\"],function(input,array,config){array[HOUR]=toInt(input);getParsingFlags(config).bigHour=true});addParseToken(\"hmm\",function(input,array,config){var pos=input.length-2;array[HOUR]=toInt(input.substr(0,pos));array[MINUTE]=toInt(input.substr(pos));getParsingFlags(config).bigHour=true});addParseToken(\"hmmss\",function(input,array,config){var pos1=input.length-4;var pos2=input.length-2;array[HOUR]=toInt(input.substr(0,pos1));array[MINUTE]=toInt(input.substr(pos1,2));array[SECOND]=toInt(input.substr(pos2));getParsingFlags(config).bigHour=true});addParseToken(\"Hmm\",function(input,array,config){var pos=input.length-2;array[HOUR]=toInt(input.substr(0,pos));array[MINUTE]=toInt(input.substr(pos))});addParseToken(\"Hmmss\",function(input,array,config){var pos1=input.length-4;var pos2=input.length-2;array[HOUR]=toInt(input.substr(0,pos1));array[MINUTE]=toInt(input.substr(pos1,2));array[SECOND]=toInt(input.substr(pos2))});function localeIsPM(input){return(input+\"\").toLowerCase().charAt(0)===\"p\"}var defaultLocaleMeridiemParse=/[ap]\\.?m?\\.?/i;function localeMeridiem(hours,minutes,isLower){if(hours>11){return isLower?\"pm\":\"PM\"}else{return isLower?\"am\":\"AM\"}}var getSetHour=makeGetSet(\"Hours\",true);var baseConfig={calendar:defaultCalendar,longDateFormat:defaultLongDateFormat,invalidDate:defaultInvalidDate,ordinal:defaultOrdinal,dayOfMonthOrdinalParse:defaultDayOfMonthOrdinalParse,relativeTime:defaultRelativeTime,months:defaultLocaleMonths,monthsShort:defaultLocaleMonthsShort,week:defaultLocaleWeek,weekdays:defaultLocaleWeekdays,weekdaysMin:defaultLocaleWeekdaysMin,weekdaysShort:defaultLocaleWeekdaysShort,meridiemParse:defaultLocaleMeridiemParse};var locales={};var localeFamilies={};var globalLocale;function normalizeLocale(key){return key?key.toLowerCase().replace(\"_\",\"-\"):key}function chooseLocale(names){var i=0,j,next,locale,split;while(i<names.length){split=normalizeLocale(names[i]).split(\"-\");j=split.length;next=normalizeLocale(names[i+1]);next=next?next.split(\"-\"):null;while(j>0){locale=loadLocale(split.slice(0,j).join(\"-\"));if(locale){return locale}if(next&&next.length>=j&&compareArrays(split,next,true)>=j-1){break}j--}i++}return null}function loadLocale(name){var oldLocale=null;if(!locales[name]&&typeof module!==\"undefined\"&&module&&module.exports){try{oldLocale=globalLocale._abbr;var aliasedRequire=require;!function webpackMissingModule(){var e=new Error('Cannot find module \"./locale\"');e.code=\"MODULE_NOT_FOUND\";throw e}();getSetGlobalLocale(oldLocale)}catch(e){}}return locales[name]}function getSetGlobalLocale(key,values){var data;if(key){if(isUndefined(values)){data=getLocale(key)}else{data=defineLocale(key,values)}if(data){globalLocale=data}}return globalLocale._abbr}function defineLocale(name,config){if(config!==null){var parentConfig=baseConfig;config.abbr=name;if(locales[name]!=null){deprecateSimple(\"defineLocaleOverride\",\"use moment.updateLocale(localeName, config) to change \"+\"an existing locale. moment.defineLocale(localeName, \"+\"config) should only be used for creating a new locale \"+\"See http://momentjs.com/guides/#/warnings/define-locale/ for more info.\");parentConfig=locales[name]._config}else if(config.parentLocale!=null){if(locales[config.parentLocale]!=null){parentConfig=locales[config.parentLocale]._config}else{if(!localeFamilies[config.parentLocale]){localeFamilies[config.parentLocale]=[]}localeFamilies[config.parentLocale].push({name:name,config:config});return null}}locales[name]=new Locale(mergeConfigs(parentConfig,config));if(localeFamilies[name]){localeFamilies[name].forEach(function(x){defineLocale(x.name,x.config)})}getSetGlobalLocale(name);return locales[name]}else{delete locales[name];return null}}function updateLocale(name,config){if(config!=null){var locale,parentConfig=baseConfig;if(locales[name]!=null){parentConfig=locales[name]._config}config=mergeConfigs(parentConfig,config);locale=new Locale(config);locale.parentLocale=locales[name];locales[name]=locale;getSetGlobalLocale(name)}else{if(locales[name]!=null){if(locales[name].parentLocale!=null){locales[name]=locales[name].parentLocale}else if(locales[name]!=null){delete locales[name]}}}return locales[name]}function getLocale(key){var locale;if(key&&key._locale&&key._locale._abbr){key=key._locale._abbr}if(!key){return globalLocale}if(!isArray(key)){locale=loadLocale(key);if(locale){return locale}key=[key]}return chooseLocale(key)}function listLocales(){return keys(locales)}function checkOverflow(m){var overflow;var a=m._a;if(a&&getParsingFlags(m).overflow===-2){overflow=a[MONTH]<0||a[MONTH]>11?MONTH:a[DATE]<1||a[DATE]>daysInMonth(a[YEAR],a[MONTH])?DATE:a[HOUR]<0||a[HOUR]>24||a[HOUR]===24&&(a[MINUTE]!==0||a[SECOND]!==0||a[MILLISECOND]!==0)?HOUR:a[MINUTE]<0||a[MINUTE]>59?MINUTE:a[SECOND]<0||a[SECOND]>59?SECOND:a[MILLISECOND]<0||a[MILLISECOND]>999?MILLISECOND:-1;if(getParsingFlags(m)._overflowDayOfYear&&(overflow<YEAR||overflow>DATE)){overflow=DATE}if(getParsingFlags(m)._overflowWeeks&&overflow===-1){overflow=WEEK}if(getParsingFlags(m)._overflowWeekday&&overflow===-1){overflow=WEEKDAY}getParsingFlags(m).overflow=overflow}return m}function defaults(a,b,c){if(a!=null){return a}if(b!=null){return b}return c}function currentDateArray(config){var nowValue=new Date(hooks.now());if(config._useUTC){return[nowValue.getUTCFullYear(),nowValue.getUTCMonth(),nowValue.getUTCDate()]}return[nowValue.getFullYear(),nowValue.getMonth(),nowValue.getDate()]}function configFromArray(config){var i,date,input=[],currentDate,yearToUse;if(config._d){return}currentDate=currentDateArray(config);if(config._w&&config._a[DATE]==null&&config._a[MONTH]==null){dayOfYearFromWeekInfo(config)}if(config._dayOfYear!=null){yearToUse=defaults(config._a[YEAR],currentDate[YEAR]);if(config._dayOfYear>daysInYear(yearToUse)||config._dayOfYear===0){getParsingFlags(config)._overflowDayOfYear=true}date=createUTCDate(yearToUse,0,config._dayOfYear);config._a[MONTH]=date.getUTCMonth();config._a[DATE]=date.getUTCDate()}for(i=0;i<3&&config._a[i]==null;++i){config._a[i]=input[i]=currentDate[i]}for(;i<7;i++){config._a[i]=input[i]=config._a[i]==null?i===2?1:0:config._a[i]}if(config._a[HOUR]===24&&config._a[MINUTE]===0&&config._a[SECOND]===0&&config._a[MILLISECOND]===0){config._nextDay=true;config._a[HOUR]=0}config._d=(config._useUTC?createUTCDate:createDate).apply(null,input);if(config._tzm!=null){config._d.setUTCMinutes(config._d.getUTCMinutes()-config._tzm)}if(config._nextDay){config._a[HOUR]=24}if(config._w&&typeof config._w.d!==\"undefined\"&&config._w.d!==config._d.getDay()){getParsingFlags(config).weekdayMismatch=true}}function dayOfYearFromWeekInfo(config){var w,weekYear,week,weekday,dow,doy,temp,weekdayOverflow;w=config._w;if(w.GG!=null||w.W!=null||w.E!=null){dow=1;doy=4;weekYear=defaults(w.GG,config._a[YEAR],weekOfYear(createLocal(),1,4).year);week=defaults(w.W,1);weekday=defaults(w.E,1);if(weekday<1||weekday>7){weekdayOverflow=true}}else{dow=config._locale._week.dow;doy=config._locale._week.doy;var curWeek=weekOfYear(createLocal(),dow,doy);weekYear=defaults(w.gg,config._a[YEAR],curWeek.year);week=defaults(w.w,curWeek.week);if(w.d!=null){weekday=w.d;if(weekday<0||weekday>6){weekdayOverflow=true}}else if(w.e!=null){weekday=w.e+dow;if(w.e<0||w.e>6){weekdayOverflow=true}}else{weekday=dow}}if(week<1||week>weeksInYear(weekYear,dow,doy)){getParsingFlags(config)._overflowWeeks=true}else if(weekdayOverflow!=null){getParsingFlags(config)._overflowWeekday=true}else{temp=dayOfYearFromWeeks(weekYear,week,weekday,dow,doy);config._a[YEAR]=temp.year;config._dayOfYear=temp.dayOfYear}}var extendedIsoRegex=/^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;var basicIsoRegex=/^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;var tzRegex=/Z|[+-]\\d\\d(?::?\\d\\d)?/;var isoDates=[[\"YYYYYY-MM-DD\",/[+-]\\d{6}-\\d\\d-\\d\\d/],[\"YYYY-MM-DD\",/\\d{4}-\\d\\d-\\d\\d/],[\"GGGG-[W]WW-E\",/\\d{4}-W\\d\\d-\\d/],[\"GGGG-[W]WW\",/\\d{4}-W\\d\\d/,false],[\"YYYY-DDD\",/\\d{4}-\\d{3}/],[\"YYYY-MM\",/\\d{4}-\\d\\d/,false],[\"YYYYYYMMDD\",/[+-]\\d{10}/],[\"YYYYMMDD\",/\\d{8}/],[\"GGGG[W]WWE\",/\\d{4}W\\d{3}/],[\"GGGG[W]WW\",/\\d{4}W\\d{2}/,false],[\"YYYYDDD\",/\\d{7}/]];var isoTimes=[[\"HH:mm:ss.SSSS\",/\\d\\d:\\d\\d:\\d\\d\\.\\d+/],[\"HH:mm:ss,SSSS\",/\\d\\d:\\d\\d:\\d\\d,\\d+/],[\"HH:mm:ss\",/\\d\\d:\\d\\d:\\d\\d/],[\"HH:mm\",/\\d\\d:\\d\\d/],[\"HHmmss.SSSS\",/\\d\\d\\d\\d\\d\\d\\.\\d+/],[\"HHmmss,SSSS\",/\\d\\d\\d\\d\\d\\d,\\d+/],[\"HHmmss\",/\\d\\d\\d\\d\\d\\d/],[\"HHmm\",/\\d\\d\\d\\d/],[\"HH\",/\\d\\d/]];var aspNetJsonRegex=/^\\/?Date\\((\\-?\\d+)/i;function configFromISO(config){var i,l,string=config._i,match=extendedIsoRegex.exec(string)||basicIsoRegex.exec(string),allowTime,dateFormat,timeFormat,tzFormat;if(match){getParsingFlags(config).iso=true;for(i=0,l=isoDates.length;i<l;i++){if(isoDates[i][1].exec(match[1])){dateFormat=isoDates[i][0];allowTime=isoDates[i][2]!==false;break}}if(dateFormat==null){config._isValid=false;return}if(match[3]){for(i=0,l=isoTimes.length;i<l;i++){if(isoTimes[i][1].exec(match[3])){timeFormat=(match[2]||\" \")+isoTimes[i][0];break}}if(timeFormat==null){config._isValid=false;return}}if(!allowTime&&timeFormat!=null){config._isValid=false;return}if(match[4]){if(tzRegex.exec(match[4])){tzFormat=\"Z\"}else{config._isValid=false;return}}config._f=dateFormat+(timeFormat||\"\")+(tzFormat||\"\");configFromStringAndFormat(config)}else{config._isValid=false}}var rfc2822=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;function extractFromRFC2822Strings(yearStr,monthStr,dayStr,hourStr,minuteStr,secondStr){var result=[untruncateYear(yearStr),defaultLocaleMonthsShort.indexOf(monthStr),parseInt(dayStr,10),parseInt(hourStr,10),parseInt(minuteStr,10)];if(secondStr){result.push(parseInt(secondStr,10))}return result}function untruncateYear(yearStr){var year=parseInt(yearStr,10);if(year<=49){return 2e3+year}else if(year<=999){return 1900+year}return year}function preprocessRFC2822(s){return s.replace(/\\([^)]*\\)|[\\n\\t]/g,\" \").replace(/(\\s\\s+)/g,\" \").trim()}function checkWeekday(weekdayStr,parsedInput,config){if(weekdayStr){var weekdayProvided=defaultLocaleWeekdaysShort.indexOf(weekdayStr),weekdayActual=new Date(parsedInput[0],parsedInput[1],parsedInput[2]).getDay();if(weekdayProvided!==weekdayActual){getParsingFlags(config).weekdayMismatch=true;config._isValid=false;return false}}return true}var obsOffsets={UT:0,GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function calculateOffset(obsOffset,militaryOffset,numOffset){if(obsOffset){return obsOffsets[obsOffset]}else if(militaryOffset){return 0}else{var hm=parseInt(numOffset,10);var m=hm%100,h=(hm-m)/100;return h*60+m}}function configFromRFC2822(config){var match=rfc2822.exec(preprocessRFC2822(config._i));if(match){var parsedArray=extractFromRFC2822Strings(match[4],match[3],match[2],match[5],match[6],match[7]);if(!checkWeekday(match[1],parsedArray,config)){return}config._a=parsedArray;config._tzm=calculateOffset(match[8],match[9],match[10]);config._d=createUTCDate.apply(null,config._a);config._d.setUTCMinutes(config._d.getUTCMinutes()-config._tzm);getParsingFlags(config).rfc2822=true}else{config._isValid=false}}function configFromString(config){var matched=aspNetJsonRegex.exec(config._i);if(matched!==null){config._d=new Date(+matched[1]);return}configFromISO(config);if(config._isValid===false){delete config._isValid}else{return}configFromRFC2822(config);if(config._isValid===false){delete config._isValid}else{return}hooks.createFromInputFallback(config)}hooks.createFromInputFallback=deprecate(\"value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), \"+\"which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are \"+\"discouraged and will be removed in an upcoming major release. Please refer to \"+\"http://momentjs.com/guides/#/warnings/js-date/ for more info.\",function(config){config._d=new Date(config._i+(config._useUTC?\" UTC\":\"\"))});hooks.ISO_8601=function(){};hooks.RFC_2822=function(){};function configFromStringAndFormat(config){if(config._f===hooks.ISO_8601){configFromISO(config);return}if(config._f===hooks.RFC_2822){configFromRFC2822(config);return}config._a=[];getParsingFlags(config).empty=true\n;var string=\"\"+config._i,i,parsedInput,tokens,token,skipped,stringLength=string.length,totalParsedInputLength=0;tokens=expandFormat(config._f,config._locale).match(formattingTokens)||[];for(i=0;i<tokens.length;i++){token=tokens[i];parsedInput=(string.match(getParseRegexForToken(token,config))||[])[0];if(parsedInput){skipped=string.substr(0,string.indexOf(parsedInput));if(skipped.length>0){getParsingFlags(config).unusedInput.push(skipped)}string=string.slice(string.indexOf(parsedInput)+parsedInput.length);totalParsedInputLength+=parsedInput.length}if(formatTokenFunctions[token]){if(parsedInput){getParsingFlags(config).empty=false}else{getParsingFlags(config).unusedTokens.push(token)}addTimeToArrayFromToken(token,parsedInput,config)}else if(config._strict&&!parsedInput){getParsingFlags(config).unusedTokens.push(token)}}getParsingFlags(config).charsLeftOver=stringLength-totalParsedInputLength;if(string.length>0){getParsingFlags(config).unusedInput.push(string)}if(config._a[HOUR]<=12&&getParsingFlags(config).bigHour===true&&config._a[HOUR]>0){getParsingFlags(config).bigHour=undefined}getParsingFlags(config).parsedDateParts=config._a.slice(0);getParsingFlags(config).meridiem=config._meridiem;config._a[HOUR]=meridiemFixWrap(config._locale,config._a[HOUR],config._meridiem);configFromArray(config);checkOverflow(config)}function meridiemFixWrap(locale,hour,meridiem){var isPm;if(meridiem==null){return hour}if(locale.meridiemHour!=null){return locale.meridiemHour(hour,meridiem)}else if(locale.isPM!=null){isPm=locale.isPM(meridiem);if(isPm&&hour<12){hour+=12}if(!isPm&&hour===12){hour=0}return hour}else{return hour}}function configFromStringAndArray(config){var tempConfig,bestMoment,scoreToBeat,i,currentScore;if(config._f.length===0){getParsingFlags(config).invalidFormat=true;config._d=new Date(NaN);return}for(i=0;i<config._f.length;i++){currentScore=0;tempConfig=copyConfig({},config);if(config._useUTC!=null){tempConfig._useUTC=config._useUTC}tempConfig._f=config._f[i];configFromStringAndFormat(tempConfig);if(!isValid(tempConfig)){continue}currentScore+=getParsingFlags(tempConfig).charsLeftOver;currentScore+=getParsingFlags(tempConfig).unusedTokens.length*10;getParsingFlags(tempConfig).score=currentScore;if(scoreToBeat==null||currentScore<scoreToBeat){scoreToBeat=currentScore;bestMoment=tempConfig}}extend(config,bestMoment||tempConfig)}function configFromObject(config){if(config._d){return}var i=normalizeObjectUnits(config._i);config._a=map([i.year,i.month,i.day||i.date,i.hour,i.minute,i.second,i.millisecond],function(obj){return obj&&parseInt(obj,10)});configFromArray(config)}function createFromConfig(config){var res=new Moment(checkOverflow(prepareConfig(config)));if(res._nextDay){res.add(1,\"d\");res._nextDay=undefined}return res}function prepareConfig(config){var input=config._i,format=config._f;config._locale=config._locale||getLocale(config._l);if(input===null||format===undefined&&input===\"\"){return createInvalid({nullInput:true})}if(typeof input===\"string\"){config._i=input=config._locale.preparse(input)}if(isMoment(input)){return new Moment(checkOverflow(input))}else if(isDate(input)){config._d=input}else if(isArray(format)){configFromStringAndArray(config)}else if(format){configFromStringAndFormat(config)}else{configFromInput(config)}if(!isValid(config)){config._d=null}return config}function configFromInput(config){var input=config._i;if(isUndefined(input)){config._d=new Date(hooks.now())}else if(isDate(input)){config._d=new Date(input.valueOf())}else if(typeof input===\"string\"){configFromString(config)}else if(isArray(input)){config._a=map(input.slice(0),function(obj){return parseInt(obj,10)});configFromArray(config)}else if(isObject(input)){configFromObject(config)}else if(isNumber(input)){config._d=new Date(input)}else{hooks.createFromInputFallback(config)}}function createLocalOrUTC(input,format,locale,strict,isUTC){var c={};if(locale===true||locale===false){strict=locale;locale=undefined}if(isObject(input)&&isObjectEmpty(input)||isArray(input)&&input.length===0){input=undefined}c._isAMomentObject=true;c._useUTC=c._isUTC=isUTC;c._l=locale;c._i=input;c._f=format;c._strict=strict;return createFromConfig(c)}function createLocal(input,format,locale,strict){return createLocalOrUTC(input,format,locale,strict,false)}var prototypeMin=deprecate(\"moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var other=createLocal.apply(null,arguments);if(this.isValid()&&other.isValid()){return other<this?this:other}else{return createInvalid()}});var prototypeMax=deprecate(\"moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var other=createLocal.apply(null,arguments);if(this.isValid()&&other.isValid()){return other>this?this:other}else{return createInvalid()}});function pickBy(fn,moments){var res,i;if(moments.length===1&&isArray(moments[0])){moments=moments[0]}if(!moments.length){return createLocal()}res=moments[0];for(i=1;i<moments.length;++i){if(!moments[i].isValid()||moments[i][fn](res)){res=moments[i]}}return res}function min(){var args=[].slice.call(arguments,0);return pickBy(\"isBefore\",args)}function max(){var args=[].slice.call(arguments,0);return pickBy(\"isAfter\",args)}var now=function(){return Date.now?Date.now():+new Date};var ordering=[\"year\",\"quarter\",\"month\",\"week\",\"day\",\"hour\",\"minute\",\"second\",\"millisecond\"];function isDurationValid(m){for(var key in m){if(!(indexOf.call(ordering,key)!==-1&&(m[key]==null||!isNaN(m[key])))){return false}}var unitHasDecimal=false;for(var i=0;i<ordering.length;++i){if(m[ordering[i]]){if(unitHasDecimal){return false}if(parseFloat(m[ordering[i]])!==toInt(m[ordering[i]])){unitHasDecimal=true}}}return true}function isValid$1(){return this._isValid}function createInvalid$1(){return createDuration(NaN)}function Duration(duration){var normalizedInput=normalizeObjectUnits(duration),years=normalizedInput.year||0,quarters=normalizedInput.quarter||0,months=normalizedInput.month||0,weeks=normalizedInput.week||0,days=normalizedInput.day||0,hours=normalizedInput.hour||0,minutes=normalizedInput.minute||0,seconds=normalizedInput.second||0,milliseconds=normalizedInput.millisecond||0;this._isValid=isDurationValid(normalizedInput);this._milliseconds=+milliseconds+seconds*1e3+minutes*6e4+hours*1e3*60*60;this._days=+days+weeks*7;this._months=+months+quarters*3+years*12;this._data={};this._locale=getLocale();this._bubble()}function isDuration(obj){return obj instanceof Duration}function absRound(number){if(number<0){return Math.round(-1*number)*-1}else{return Math.round(number)}}function offset(token,separator){addFormatToken(token,0,0,function(){var offset=this.utcOffset();var sign=\"+\";if(offset<0){offset=-offset;sign=\"-\"}return sign+zeroFill(~~(offset/60),2)+separator+zeroFill(~~offset%60,2)})}offset(\"Z\",\":\");offset(\"ZZ\",\"\");addRegexToken(\"Z\",matchShortOffset);addRegexToken(\"ZZ\",matchShortOffset);addParseToken([\"Z\",\"ZZ\"],function(input,array,config){config._useUTC=true;config._tzm=offsetFromString(matchShortOffset,input)});var chunkOffset=/([\\+\\-]|\\d\\d)/gi;function offsetFromString(matcher,string){var matches=(string||\"\").match(matcher);if(matches===null){return null}var chunk=matches[matches.length-1]||[];var parts=(chunk+\"\").match(chunkOffset)||[\"-\",0,0];var minutes=+(parts[1]*60)+toInt(parts[2]);return minutes===0?0:parts[0]===\"+\"?minutes:-minutes}function cloneWithOffset(input,model){var res,diff;if(model._isUTC){res=model.clone();diff=(isMoment(input)||isDate(input)?input.valueOf():createLocal(input).valueOf())-res.valueOf();res._d.setTime(res._d.valueOf()+diff);hooks.updateOffset(res,false);return res}else{return createLocal(input).local()}}function getDateOffset(m){return-Math.round(m._d.getTimezoneOffset()/15)*15}hooks.updateOffset=function(){};function getSetOffset(input,keepLocalTime,keepMinutes){var offset=this._offset||0,localAdjust;if(!this.isValid()){return input!=null?this:NaN}if(input!=null){if(typeof input===\"string\"){input=offsetFromString(matchShortOffset,input);if(input===null){return this}}else if(Math.abs(input)<16&&!keepMinutes){input=input*60}if(!this._isUTC&&keepLocalTime){localAdjust=getDateOffset(this)}this._offset=input;this._isUTC=true;if(localAdjust!=null){this.add(localAdjust,\"m\")}if(offset!==input){if(!keepLocalTime||this._changeInProgress){addSubtract(this,createDuration(input-offset,\"m\"),1,false)}else if(!this._changeInProgress){this._changeInProgress=true;hooks.updateOffset(this,true);this._changeInProgress=null}}return this}else{return this._isUTC?offset:getDateOffset(this)}}function getSetZone(input,keepLocalTime){if(input!=null){if(typeof input!==\"string\"){input=-input}this.utcOffset(input,keepLocalTime);return this}else{return-this.utcOffset()}}function setOffsetToUTC(keepLocalTime){return this.utcOffset(0,keepLocalTime)}function setOffsetToLocal(keepLocalTime){if(this._isUTC){this.utcOffset(0,keepLocalTime);this._isUTC=false;if(keepLocalTime){this.subtract(getDateOffset(this),\"m\")}}return this}function setOffsetToParsedOffset(){if(this._tzm!=null){this.utcOffset(this._tzm,false,true)}else if(typeof this._i===\"string\"){var tZone=offsetFromString(matchOffset,this._i);if(tZone!=null){this.utcOffset(tZone)}else{this.utcOffset(0,true)}}return this}function hasAlignedHourOffset(input){if(!this.isValid()){return false}input=input?createLocal(input).utcOffset():0;return(this.utcOffset()-input)%60===0}function isDaylightSavingTime(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function isDaylightSavingTimeShifted(){if(!isUndefined(this._isDSTShifted)){return this._isDSTShifted}var c={};copyConfig(c,this);c=prepareConfig(c);if(c._a){var other=c._isUTC?createUTC(c._a):createLocal(c._a);this._isDSTShifted=this.isValid()&&compareArrays(c._a,other.toArray())>0}else{this._isDSTShifted=false}return this._isDSTShifted}function isLocal(){return this.isValid()?!this._isUTC:false}function isUtcOffset(){return this.isValid()?this._isUTC:false}function isUtc(){return this.isValid()?this._isUTC&&this._offset===0:false}var aspNetRegex=/^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;var isoRegex=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function createDuration(input,key){var duration=input,match=null,sign,ret,diffRes;if(isDuration(input)){duration={ms:input._milliseconds,d:input._days,M:input._months}}else if(isNumber(input)){duration={};if(key){duration[key]=input}else{duration.milliseconds=input}}else if(!!(match=aspNetRegex.exec(input))){sign=match[1]===\"-\"?-1:1;duration={y:0,d:toInt(match[DATE])*sign,h:toInt(match[HOUR])*sign,m:toInt(match[MINUTE])*sign,s:toInt(match[SECOND])*sign,ms:toInt(absRound(match[MILLISECOND]*1e3))*sign}}else if(!!(match=isoRegex.exec(input))){sign=match[1]===\"-\"?-1:match[1]===\"+\"?1:1;duration={y:parseIso(match[2],sign),M:parseIso(match[3],sign),w:parseIso(match[4],sign),d:parseIso(match[5],sign),h:parseIso(match[6],sign),m:parseIso(match[7],sign),s:parseIso(match[8],sign)}}else if(duration==null){duration={}}else if(typeof duration===\"object\"&&(\"from\"in duration||\"to\"in duration)){diffRes=momentsDifference(createLocal(duration.from),createLocal(duration.to));duration={};duration.ms=diffRes.milliseconds;duration.M=diffRes.months}ret=new Duration(duration);if(isDuration(input)&&hasOwnProp(input,\"_locale\")){ret._locale=input._locale}return ret}createDuration.fn=Duration.prototype;createDuration.invalid=createInvalid$1;function parseIso(inp,sign){var res=inp&&parseFloat(inp.replace(\",\",\".\"));return(isNaN(res)?0:res)*sign}function positiveMomentsDifference(base,other){var res={milliseconds:0,months:0};res.months=other.month()-base.month()+(other.year()-base.year())*12;if(base.clone().add(res.months,\"M\").isAfter(other)){--res.months}res.milliseconds=+other-+base.clone().add(res.months,\"M\");return res}function momentsDifference(base,other){var res;if(!(base.isValid()&&other.isValid())){return{milliseconds:0,months:0}}other=cloneWithOffset(other,base);if(base.isBefore(other)){res=positiveMomentsDifference(base,other)}else{res=positiveMomentsDifference(other,base);res.milliseconds=-res.milliseconds;res.months=-res.months}return res}function createAdder(direction,name){return function(val,period){var dur,tmp;if(period!==null&&!isNaN(+period)){deprecateSimple(name,\"moment().\"+name+\"(period, number) is deprecated. Please use moment().\"+name+\"(number, period). \"+\"See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.\");tmp=val;val=period;period=tmp}val=typeof val===\"string\"?+val:val;dur=createDuration(val,period);addSubtract(this,dur,direction);return this}}function addSubtract(mom,duration,isAdding,updateOffset){var milliseconds=duration._milliseconds,days=absRound(duration._days),months=absRound(duration._months);if(!mom.isValid()){return}updateOffset=updateOffset==null?true:updateOffset;if(months){setMonth(mom,get(mom,\"Month\")+months*isAdding)}if(days){set$1(mom,\"Date\",get(mom,\"Date\")+days*isAdding)}if(milliseconds){mom._d.setTime(mom._d.valueOf()+milliseconds*isAdding)}if(updateOffset){hooks.updateOffset(mom,days||months)}}var add=createAdder(1,\"add\");var subtract=createAdder(-1,\"subtract\");function getCalendarFormat(myMoment,now){var diff=myMoment.diff(now,\"days\",true);return diff<-6?\"sameElse\":diff<-1?\"lastWeek\":diff<0?\"lastDay\":diff<1?\"sameDay\":diff<2?\"nextDay\":diff<7?\"nextWeek\":\"sameElse\"}function calendar$1(time,formats){var now=time||createLocal(),sod=cloneWithOffset(now,this).startOf(\"day\"),format=hooks.calendarFormat(this,sod)||\"sameElse\";var output=formats&&(isFunction(formats[format])?formats[format].call(this,now):formats[format]);return this.format(output||this.localeData().calendar(format,this,createLocal(now)))}function clone(){return new Moment(this)}function isAfter(input,units){var localInput=isMoment(input)?input:createLocal(input);if(!(this.isValid()&&localInput.isValid())){return false}units=normalizeUnits(!isUndefined(units)?units:\"millisecond\");if(units===\"millisecond\"){return this.valueOf()>localInput.valueOf()}else{return localInput.valueOf()<this.clone().startOf(units).valueOf()}}function isBefore(input,units){var localInput=isMoment(input)?input:createLocal(input);if(!(this.isValid()&&localInput.isValid())){return false}units=normalizeUnits(!isUndefined(units)?units:\"millisecond\");if(units===\"millisecond\"){return this.valueOf()<localInput.valueOf()}else{return this.clone().endOf(units).valueOf()<localInput.valueOf()}}function isBetween(from,to,units,inclusivity){inclusivity=inclusivity||\"()\";return(inclusivity[0]===\"(\"?this.isAfter(from,units):!this.isBefore(from,units))&&(inclusivity[1]===\")\"?this.isBefore(to,units):!this.isAfter(to,units))}function isSame(input,units){var localInput=isMoment(input)?input:createLocal(input),inputMs;if(!(this.isValid()&&localInput.isValid())){return false}units=normalizeUnits(units||\"millisecond\");if(units===\"millisecond\"){return this.valueOf()===localInput.valueOf()}else{inputMs=localInput.valueOf();return this.clone().startOf(units).valueOf()<=inputMs&&inputMs<=this.clone().endOf(units).valueOf()}}function isSameOrAfter(input,units){return this.isSame(input,units)||this.isAfter(input,units)}function isSameOrBefore(input,units){return this.isSame(input,units)||this.isBefore(input,units)}function diff(input,units,asFloat){var that,zoneDelta,delta,output;if(!this.isValid()){return NaN}that=cloneWithOffset(input,this);if(!that.isValid()){return NaN}zoneDelta=(that.utcOffset()-this.utcOffset())*6e4;units=normalizeUnits(units);switch(units){case\"year\":output=monthDiff(this,that)/12;break;case\"month\":output=monthDiff(this,that);break;case\"quarter\":output=monthDiff(this,that)/3;break;case\"second\":output=(this-that)/1e3;break;case\"minute\":output=(this-that)/6e4;break;case\"hour\":output=(this-that)/36e5;break;case\"day\":output=(this-that-zoneDelta)/864e5;break;case\"week\":output=(this-that-zoneDelta)/6048e5;break;default:output=this-that}return asFloat?output:absFloor(output)}function monthDiff(a,b){var wholeMonthDiff=(b.year()-a.year())*12+(b.month()-a.month()),anchor=a.clone().add(wholeMonthDiff,\"months\"),anchor2,adjust;if(b-anchor<0){anchor2=a.clone().add(wholeMonthDiff-1,\"months\");adjust=(b-anchor)/(anchor-anchor2)}else{anchor2=a.clone().add(wholeMonthDiff+1,\"months\");adjust=(b-anchor)/(anchor2-anchor)}return-(wholeMonthDiff+adjust)||0}hooks.defaultFormat=\"YYYY-MM-DDTHH:mm:ssZ\";hooks.defaultFormatUtc=\"YYYY-MM-DDTHH:mm:ss[Z]\";function toString(){return this.clone().locale(\"en\").format(\"ddd MMM DD YYYY HH:mm:ss [GMT]ZZ\")}function toISOString(){if(!this.isValid()){return null}var m=this.clone().utc();if(m.year()<0||m.year()>9999){return formatMoment(m,\"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]\")}if(isFunction(Date.prototype.toISOString)){return this.toDate().toISOString()}return formatMoment(m,\"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]\")}function inspect(){if(!this.isValid()){return\"moment.invalid(/* \"+this._i+\" */)\"}var func=\"moment\";var zone=\"\";if(!this.isLocal()){func=this.utcOffset()===0?\"moment.utc\":\"moment.parseZone\";zone=\"Z\"}var prefix=\"[\"+func+'(\"]';var year=0<=this.year()&&this.year()<=9999?\"YYYY\":\"YYYYYY\";var datetime=\"-MM-DD[T]HH:mm:ss.SSS\";var suffix=zone+'[\")]';return this.format(prefix+year+datetime+suffix)}function format(inputString){if(!inputString){inputString=this.isUtc()?hooks.defaultFormatUtc:hooks.defaultFormat}var output=formatMoment(this,inputString);return this.localeData().postformat(output)}function from(time,withoutSuffix){if(this.isValid()&&(isMoment(time)&&time.isValid()||createLocal(time).isValid())){return createDuration({to:this,from:time}).locale(this.locale()).humanize(!withoutSuffix)}else{return this.localeData().invalidDate()}}function fromNow(withoutSuffix){return this.from(createLocal(),withoutSuffix)}function to(time,withoutSuffix){if(this.isValid()&&(isMoment(time)&&time.isValid()||createLocal(time).isValid())){return createDuration({from:this,to:time}).locale(this.locale()).humanize(!withoutSuffix)}else{return this.localeData().invalidDate()}}function toNow(withoutSuffix){return this.to(createLocal(),withoutSuffix)}function locale(key){var newLocaleData;if(key===undefined){return this._locale._abbr}else{newLocaleData=getLocale(key);if(newLocaleData!=null){this._locale=newLocaleData}return this}}var lang=deprecate(\"moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.\",function(key){if(key===undefined){return this.localeData()}else{return this.locale(key)}});function localeData(){return this._locale}function startOf(units){units=normalizeUnits(units);switch(units){case\"year\":this.month(0);case\"quarter\":case\"month\":this.date(1);case\"week\":case\"isoWeek\":case\"day\":case\"date\":this.hours(0);case\"hour\":this.minutes(0);case\"minute\":this.seconds(0);case\"second\":this.milliseconds(0)}if(units===\"week\"){this.weekday(0)}if(units===\"isoWeek\"){this.isoWeekday(1)}if(units===\"quarter\"){this.month(Math.floor(this.month()/3)*3)}return this}function endOf(units){units=normalizeUnits(units);if(units===undefined||units===\"millisecond\"){return this}if(units===\"date\"){units=\"day\"}return this.startOf(units).add(1,units===\"isoWeek\"?\"week\":units).subtract(1,\"ms\")}function valueOf(){return this._d.valueOf()-(this._offset||0)*6e4}function unix(){return Math.floor(this.valueOf()/1e3)}function toDate(){return new Date(this.valueOf())}function toArray(){var m=this;return[m.year(),m.month(),m.date(),m.hour(),m.minute(),m.second(),m.millisecond()]}function toObject(){var m=this;return{years:m.year(),months:m.month(),date:m.date(),hours:m.hours(),minutes:m.minutes(),seconds:m.seconds(),milliseconds:m.milliseconds()}}function toJSON(){return this.isValid()?this.toISOString():null}function isValid$2(){return isValid(this)}function parsingFlags(){return extend({},getParsingFlags(this))}function invalidAt(){return getParsingFlags(this).overflow}function creationData(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}addFormatToken(0,[\"gg\",2],0,function(){return this.weekYear()%100});addFormatToken(0,[\"GG\",2],0,function(){return this.isoWeekYear()%100});function addWeekYearFormatToken(token,getter){addFormatToken(0,[token,token.length],0,getter)}addWeekYearFormatToken(\"gggg\",\"weekYear\");addWeekYearFormatToken(\"ggggg\",\"weekYear\");addWeekYearFormatToken(\"GGGG\",\"isoWeekYear\");addWeekYearFormatToken(\"GGGGG\",\"isoWeekYear\");addUnitAlias(\"weekYear\",\"gg\");addUnitAlias(\"isoWeekYear\",\"GG\");addUnitPriority(\"weekYear\",1);addUnitPriority(\"isoWeekYear\",1);addRegexToken(\"G\",matchSigned);addRegexToken(\"g\",matchSigned);addRegexToken(\"GG\",match1to2,match2);addRegexToken(\"gg\",match1to2,match2);addRegexToken(\"GGGG\",match1to4,match4);addRegexToken(\"gggg\",match1to4,match4);addRegexToken(\"GGGGG\",match1to6,match6);addRegexToken(\"ggggg\",match1to6,match6);addWeekParseToken([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],function(input,week,config,token){week[token.substr(0,2)]=toInt(input)});addWeekParseToken([\"gg\",\"GG\"],function(input,week,config,token){week[token]=hooks.parseTwoDigitYear(input)});function getSetWeekYear(input){return getSetWeekYearHelper.call(this,input,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function getSetISOWeekYear(input){return getSetWeekYearHelper.call(this,input,this.isoWeek(),this.isoWeekday(),1,4)}function getISOWeeksInYear(){return weeksInYear(this.year(),1,4)}function getWeeksInYear(){var weekInfo=this.localeData()._week;return weeksInYear(this.year(),weekInfo.dow,weekInfo.doy)}function getSetWeekYearHelper(input,week,weekday,dow,doy){var weeksTarget;if(input==null){return weekOfYear(this,dow,doy).year}else{weeksTarget=weeksInYear(input,dow,doy);if(week>weeksTarget){week=weeksTarget}return setWeekAll.call(this,input,week,weekday,dow,doy)}}function setWeekAll(weekYear,week,weekday,dow,doy){var dayOfYearData=dayOfYearFromWeeks(weekYear,week,weekday,dow,doy),date=createUTCDate(dayOfYearData.year,0,dayOfYearData.dayOfYear);this.year(date.getUTCFullYear());this.month(date.getUTCMonth());this.date(date.getUTCDate());return this}addFormatToken(\"Q\",0,\"Qo\",\"quarter\");addUnitAlias(\"quarter\",\"Q\");addUnitPriority(\"quarter\",7);addRegexToken(\"Q\",match1);addParseToken(\"Q\",function(input,array){array[MONTH]=(toInt(input)-1)*3});function getSetQuarter(input){return input==null?Math.ceil((this.month()+1)/3):this.month((input-1)*3+this.month()%3)}addFormatToken(\"D\",[\"DD\",2],\"Do\",\"date\");addUnitAlias(\"date\",\"D\");addUnitPriority(\"date\",9);addRegexToken(\"D\",match1to2);addRegexToken(\"DD\",match1to2,match2);addRegexToken(\"Do\",function(isStrict,locale){return isStrict?locale._dayOfMonthOrdinalParse||locale._ordinalParse:locale._dayOfMonthOrdinalParseLenient});addParseToken([\"D\",\"DD\"],DATE);addParseToken(\"Do\",function(input,array){array[DATE]=toInt(input.match(match1to2)[0],10)});var getSetDayOfMonth=makeGetSet(\"Date\",true);addFormatToken(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\");addUnitAlias(\"dayOfYear\",\"DDD\");addUnitPriority(\"dayOfYear\",4);addRegexToken(\"DDD\",match1to3);addRegexToken(\"DDDD\",match3);addParseToken([\"DDD\",\"DDDD\"],function(input,array,config){config._dayOfYear=toInt(input)});function getSetDayOfYear(input){var dayOfYear=Math.round((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))/864e5)+1;return input==null?dayOfYear:this.add(input-dayOfYear,\"d\")}addFormatToken(\"m\",[\"mm\",2],0,\"minute\");addUnitAlias(\"minute\",\"m\");addUnitPriority(\"minute\",14);addRegexToken(\"m\",match1to2);addRegexToken(\"mm\",match1to2,match2);addParseToken([\"m\",\"mm\"],MINUTE);var getSetMinute=makeGetSet(\"Minutes\",false);addFormatToken(\"s\",[\"ss\",2],0,\"second\");addUnitAlias(\"second\",\"s\");addUnitPriority(\"second\",15);addRegexToken(\"s\",match1to2);addRegexToken(\"ss\",match1to2,match2);addParseToken([\"s\",\"ss\"],SECOND);var getSetSecond=makeGetSet(\"Seconds\",false);addFormatToken(\"S\",0,0,function(){return~~(this.millisecond()/100)});addFormatToken(0,[\"SS\",2],0,function(){return~~(this.millisecond()/10)});addFormatToken(0,[\"SSS\",3],0,\"millisecond\");addFormatToken(0,[\"SSSS\",4],0,function(){return this.millisecond()*10});addFormatToken(0,[\"SSSSS\",5],0,function(){return this.millisecond()*100});addFormatToken(0,[\"SSSSSS\",6],0,function(){return this.millisecond()*1e3});addFormatToken(0,[\"SSSSSSS\",7],0,function(){return this.millisecond()*1e4});addFormatToken(0,[\"SSSSSSSS\",8],0,function(){return this.millisecond()*1e5});addFormatToken(0,[\"SSSSSSSSS\",9],0,function(){return this.millisecond()*1e6});addUnitAlias(\"millisecond\",\"ms\");addUnitPriority(\"millisecond\",16);addRegexToken(\"S\",match1to3,match1);addRegexToken(\"SS\",match1to3,match2);addRegexToken(\"SSS\",match1to3,match3);var token;for(token=\"SSSS\";token.length<=9;token+=\"S\"){addRegexToken(token,matchUnsigned)}function parseMs(input,array){array[MILLISECOND]=toInt((\"0.\"+input)*1e3)}for(token=\"S\";token.length<=9;token+=\"S\"){addParseToken(token,parseMs)}var getSetMillisecond=makeGetSet(\"Milliseconds\",false);addFormatToken(\"z\",0,0,\"zoneAbbr\");addFormatToken(\"zz\",0,0,\"zoneName\");function getZoneAbbr(){return this._isUTC?\"UTC\":\"\"}function getZoneName(){return this._isUTC?\"Coordinated Universal Time\":\"\"}var proto=Moment.prototype;proto.add=add;proto.calendar=calendar$1;proto.clone=clone;proto.diff=diff;proto.endOf=endOf;proto.format=format;proto.from=from;proto.fromNow=fromNow;proto.to=to;proto.toNow=toNow;proto.get=stringGet;proto.invalidAt=invalidAt;proto.isAfter=isAfter;proto.isBefore=isBefore;proto.isBetween=isBetween;proto.isSame=isSame;proto.isSameOrAfter=isSameOrAfter;proto.isSameOrBefore=isSameOrBefore;proto.isValid=isValid$2;proto.lang=lang;proto.locale=locale;proto.localeData=localeData;proto.max=prototypeMax;proto.min=prototypeMin;proto.parsingFlags=parsingFlags;proto.set=stringSet;proto.startOf=startOf;proto.subtract=subtract;proto.toArray=toArray;proto.toObject=toObject;proto.toDate=toDate;proto.toISOString=toISOString;proto.inspect=inspect;proto.toJSON=toJSON;proto.toString=toString;proto.unix=unix;proto.valueOf=valueOf;proto.creationData=creationData;proto.year=getSetYear;proto.isLeapYear=getIsLeapYear;proto.weekYear=getSetWeekYear;proto.isoWeekYear=getSetISOWeekYear;proto.quarter=proto.quarters=getSetQuarter;proto.month=getSetMonth;proto.daysInMonth=getDaysInMonth;proto.week=proto.weeks=getSetWeek;proto.isoWeek=proto.isoWeeks=getSetISOWeek;proto.weeksInYear=getWeeksInYear;proto.isoWeeksInYear=getISOWeeksInYear;proto.date=getSetDayOfMonth;proto.day=proto.days=getSetDayOfWeek;proto.weekday=getSetLocaleDayOfWeek;proto.isoWeekday=getSetISODayOfWeek;proto.dayOfYear=getSetDayOfYear;proto.hour=proto.hours=getSetHour;proto.minute=proto.minutes=getSetMinute;proto.second=proto.seconds=getSetSecond;proto.millisecond=proto.milliseconds=getSetMillisecond;proto.utcOffset=getSetOffset;proto.utc=setOffsetToUTC;proto.local=setOffsetToLocal;proto.parseZone=setOffsetToParsedOffset;proto.hasAlignedHourOffset=hasAlignedHourOffset;proto.isDST=isDaylightSavingTime;proto.isLocal=isLocal;proto.isUtcOffset=isUtcOffset;proto.isUtc=isUtc;proto.isUTC=isUtc;proto.zoneAbbr=getZoneAbbr;proto.zoneName=getZoneName;proto.dates=deprecate(\"dates accessor is deprecated. Use date instead.\",getSetDayOfMonth);proto.months=deprecate(\"months accessor is deprecated. Use month instead\",getSetMonth);proto.years=deprecate(\"years accessor is deprecated. Use year instead\",getSetYear);proto.zone=deprecate(\"moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/\",getSetZone);proto.isDSTShifted=deprecate(\"isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information\",isDaylightSavingTimeShifted);function createUnix(input){return createLocal(input*1e3)}function createInZone(){return createLocal.apply(null,arguments).parseZone()}function preParsePostFormat(string){return string}var proto$1=Locale.prototype;proto$1.calendar=calendar;proto$1.longDateFormat=longDateFormat;proto$1.invalidDate=invalidDate;proto$1.ordinal=ordinal;proto$1.preparse=preParsePostFormat;proto$1.postformat=preParsePostFormat;proto$1.relativeTime=relativeTime;proto$1.pastFuture=pastFuture;proto$1.set=set;proto$1.months=localeMonths;proto$1.monthsShort=localeMonthsShort;proto$1.monthsParse=localeMonthsParse;proto$1.monthsRegex=monthsRegex;proto$1.monthsShortRegex=monthsShortRegex;proto$1.week=localeWeek;proto$1.firstDayOfYear=localeFirstDayOfYear;proto$1.firstDayOfWeek=localeFirstDayOfWeek;proto$1.weekdays=localeWeekdays;proto$1.weekdaysMin=localeWeekdaysMin;proto$1.weekdaysShort=localeWeekdaysShort;proto$1.weekdaysParse=localeWeekdaysParse;proto$1.weekdaysRegex=weekdaysRegex;proto$1.weekdaysShortRegex=weekdaysShortRegex;proto$1.weekdaysMinRegex=weekdaysMinRegex;proto$1.isPM=localeIsPM;proto$1.meridiem=localeMeridiem;function get$1(format,index,field,setter){var locale=getLocale();var utc=createUTC().set(setter,index);return locale[field](utc,format)}function listMonthsImpl(format,index,field){if(isNumber(format)){index=format;format=undefined}format=format||\"\";if(index!=null){return get$1(format,index,field,\"month\")}var i;var out=[];for(i=0;i<12;i++){out[i]=get$1(format,i,field,\"month\")}return out}function listWeekdaysImpl(localeSorted,format,index,field){if(typeof localeSorted===\"boolean\"){if(isNumber(format)){index=format;format=undefined}format=format||\"\"}else{format=localeSorted;index=format;localeSorted=false;if(isNumber(format)){index=format;format=undefined}format=format||\"\"}var locale=getLocale(),shift=localeSorted?locale._week.dow:0;if(index!=null){return get$1(format,(index+shift)%7,field,\"day\")}var i;var out=[];for(i=0;i<7;i++){out[i]=get$1(format,(i+shift)%7,field,\"day\")}return out}function listMonths(format,index){return listMonthsImpl(format,index,\"months\")}function listMonthsShort(format,index){return listMonthsImpl(format,index,\"monthsShort\")}function listWeekdays(localeSorted,format,index){return listWeekdaysImpl(localeSorted,format,index,\"weekdays\")}function listWeekdaysShort(localeSorted,format,index){return listWeekdaysImpl(localeSorted,format,index,\"weekdaysShort\")}function listWeekdaysMin(localeSorted,format,index){return listWeekdaysImpl(localeSorted,format,index,\"weekdaysMin\")}getSetGlobalLocale(\"en\",{dayOfMonthOrdinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(number){var b=number%10,output=toInt(number%100/10)===1?\"th\":b===1?\"st\":b===2?\"nd\":b===3?\"rd\":\"th\";return number+output}});hooks.lang=deprecate(\"moment.lang is deprecated. Use moment.locale instead.\",getSetGlobalLocale);hooks.langData=deprecate(\"moment.langData is deprecated. Use moment.localeData instead.\",getLocale);var mathAbs=Math.abs;function abs(){var data=this._data;this._milliseconds=mathAbs(this._milliseconds);this._days=mathAbs(this._days);this._months=mathAbs(this._months);data.milliseconds=mathAbs(data.milliseconds);data.seconds=mathAbs(data.seconds);data.minutes=mathAbs(data.minutes);data.hours=mathAbs(data.hours);data.months=mathAbs(data.months);data.years=mathAbs(data.years);return this}function addSubtract$1(duration,input,value,direction){var other=createDuration(input,value);duration._milliseconds+=direction*other._milliseconds;duration._days+=direction*other._days;duration._months+=direction*other._months;return duration._bubble()}function add$1(input,value){return addSubtract$1(this,input,value,1)}function subtract$1(input,value){return addSubtract$1(this,input,value,-1)}function absCeil(number){if(number<0){return Math.floor(number)}else{return Math.ceil(number)}}function bubble(){var milliseconds=this._milliseconds;var days=this._days;var months=this._months;var data=this._data;var seconds,minutes,hours,years,monthsFromDays;if(!(milliseconds>=0&&days>=0&&months>=0||milliseconds<=0&&days<=0&&months<=0)){milliseconds+=absCeil(monthsToDays(months)+days)*864e5;days=0;months=0}data.milliseconds=milliseconds%1e3;seconds=absFloor(milliseconds/1e3);data.seconds=seconds%60;minutes=absFloor(seconds/60)\n;data.minutes=minutes%60;hours=absFloor(minutes/60);data.hours=hours%24;days+=absFloor(hours/24);monthsFromDays=absFloor(daysToMonths(days));months+=monthsFromDays;days-=absCeil(monthsToDays(monthsFromDays));years=absFloor(months/12);months%=12;data.days=days;data.months=months;data.years=years;return this}function daysToMonths(days){return days*4800/146097}function monthsToDays(months){return months*146097/4800}function as(units){if(!this.isValid()){return NaN}var days;var months;var milliseconds=this._milliseconds;units=normalizeUnits(units);if(units===\"month\"||units===\"year\"){days=this._days+milliseconds/864e5;months=this._months+daysToMonths(days);return units===\"month\"?months:months/12}else{days=this._days+Math.round(monthsToDays(this._months));switch(units){case\"week\":return days/7+milliseconds/6048e5;case\"day\":return days+milliseconds/864e5;case\"hour\":return days*24+milliseconds/36e5;case\"minute\":return days*1440+milliseconds/6e4;case\"second\":return days*86400+milliseconds/1e3;case\"millisecond\":return Math.floor(days*864e5)+milliseconds;default:throw new Error(\"Unknown unit \"+units)}}}function valueOf$1(){if(!this.isValid()){return NaN}return this._milliseconds+this._days*864e5+this._months%12*2592e6+toInt(this._months/12)*31536e6}function makeAs(alias){return function(){return this.as(alias)}}var asMilliseconds=makeAs(\"ms\");var asSeconds=makeAs(\"s\");var asMinutes=makeAs(\"m\");var asHours=makeAs(\"h\");var asDays=makeAs(\"d\");var asWeeks=makeAs(\"w\");var asMonths=makeAs(\"M\");var asYears=makeAs(\"y\");function clone$1(){return createDuration(this)}function get$2(units){units=normalizeUnits(units);return this.isValid()?this[units+\"s\"]():NaN}function makeGetter(name){return function(){return this.isValid()?this._data[name]:NaN}}var milliseconds=makeGetter(\"milliseconds\");var seconds=makeGetter(\"seconds\");var minutes=makeGetter(\"minutes\");var hours=makeGetter(\"hours\");var days=makeGetter(\"days\");var months=makeGetter(\"months\");var years=makeGetter(\"years\");function weeks(){return absFloor(this.days()/7)}var round=Math.round;var thresholds={ss:44,s:45,m:45,h:22,d:26,M:11};function substituteTimeAgo(string,number,withoutSuffix,isFuture,locale){return locale.relativeTime(number||1,!!withoutSuffix,string,isFuture)}function relativeTime$1(posNegDuration,withoutSuffix,locale){var duration=createDuration(posNegDuration).abs();var seconds=round(duration.as(\"s\"));var minutes=round(duration.as(\"m\"));var hours=round(duration.as(\"h\"));var days=round(duration.as(\"d\"));var months=round(duration.as(\"M\"));var years=round(duration.as(\"y\"));var a=seconds<=thresholds.ss&&[\"s\",seconds]||seconds<thresholds.s&&[\"ss\",seconds]||minutes<=1&&[\"m\"]||minutes<thresholds.m&&[\"mm\",minutes]||hours<=1&&[\"h\"]||hours<thresholds.h&&[\"hh\",hours]||days<=1&&[\"d\"]||days<thresholds.d&&[\"dd\",days]||months<=1&&[\"M\"]||months<thresholds.M&&[\"MM\",months]||years<=1&&[\"y\"]||[\"yy\",years];a[2]=withoutSuffix;a[3]=+posNegDuration>0;a[4]=locale;return substituteTimeAgo.apply(null,a)}function getSetRelativeTimeRounding(roundingFunction){if(roundingFunction===undefined){return round}if(typeof roundingFunction===\"function\"){round=roundingFunction;return true}return false}function getSetRelativeTimeThreshold(threshold,limit){if(thresholds[threshold]===undefined){return false}if(limit===undefined){return thresholds[threshold]}thresholds[threshold]=limit;if(threshold===\"s\"){thresholds.ss=limit-1}return true}function humanize(withSuffix){if(!this.isValid()){return this.localeData().invalidDate()}var locale=this.localeData();var output=relativeTime$1(this,!withSuffix,locale);if(withSuffix){output=locale.pastFuture(+this,output)}return locale.postformat(output)}var abs$1=Math.abs;function sign(x){return(x>0)-(x<0)||+x}function toISOString$1(){if(!this.isValid()){return this.localeData().invalidDate()}var seconds=abs$1(this._milliseconds)/1e3;var days=abs$1(this._days);var months=abs$1(this._months);var minutes,hours,years;minutes=absFloor(seconds/60);hours=absFloor(minutes/60);seconds%=60;minutes%=60;years=absFloor(months/12);months%=12;var Y=years;var M=months;var D=days;var h=hours;var m=minutes;var s=seconds?seconds.toFixed(3).replace(/\\.?0+$/,\"\"):\"\";var total=this.asSeconds();if(!total){return\"P0D\"}var totalSign=total<0?\"-\":\"\";var ymSign=sign(this._months)!==sign(total)?\"-\":\"\";var daysSign=sign(this._days)!==sign(total)?\"-\":\"\";var hmsSign=sign(this._milliseconds)!==sign(total)?\"-\":\"\";return totalSign+\"P\"+(Y?ymSign+Y+\"Y\":\"\")+(M?ymSign+M+\"M\":\"\")+(D?daysSign+D+\"D\":\"\")+(h||m||s?\"T\":\"\")+(h?hmsSign+h+\"H\":\"\")+(m?hmsSign+m+\"M\":\"\")+(s?hmsSign+s+\"S\":\"\")}var proto$2=Duration.prototype;proto$2.isValid=isValid$1;proto$2.abs=abs;proto$2.add=add$1;proto$2.subtract=subtract$1;proto$2.as=as;proto$2.asMilliseconds=asMilliseconds;proto$2.asSeconds=asSeconds;proto$2.asMinutes=asMinutes;proto$2.asHours=asHours;proto$2.asDays=asDays;proto$2.asWeeks=asWeeks;proto$2.asMonths=asMonths;proto$2.asYears=asYears;proto$2.valueOf=valueOf$1;proto$2._bubble=bubble;proto$2.clone=clone$1;proto$2.get=get$2;proto$2.milliseconds=milliseconds;proto$2.seconds=seconds;proto$2.minutes=minutes;proto$2.hours=hours;proto$2.days=days;proto$2.weeks=weeks;proto$2.months=months;proto$2.years=years;proto$2.humanize=humanize;proto$2.toISOString=toISOString$1;proto$2.toString=toISOString$1;proto$2.toJSON=toISOString$1;proto$2.locale=locale;proto$2.localeData=localeData;proto$2.toIsoString=deprecate(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",toISOString$1);proto$2.lang=lang;addFormatToken(\"X\",0,0,\"unix\");addFormatToken(\"x\",0,0,\"valueOf\");addRegexToken(\"x\",matchSigned);addRegexToken(\"X\",matchTimestamp);addParseToken(\"X\",function(input,array,config){config._d=new Date(parseFloat(input,10)*1e3)});addParseToken(\"x\",function(input,array,config){config._d=new Date(toInt(input))});hooks.version=\"2.19.1\";setHookCallback(createLocal);hooks.fn=proto;hooks.min=min;hooks.max=max;hooks.now=now;hooks.utc=createUTC;hooks.unix=createUnix;hooks.months=listMonths;hooks.isDate=isDate;hooks.locale=getSetGlobalLocale;hooks.invalid=createInvalid;hooks.duration=createDuration;hooks.isMoment=isMoment;hooks.weekdays=listWeekdays;hooks.parseZone=createInZone;hooks.localeData=getLocale;hooks.isDuration=isDuration;hooks.monthsShort=listMonthsShort;hooks.weekdaysMin=listWeekdaysMin;hooks.defineLocale=defineLocale;hooks.updateLocale=updateLocale;hooks.locales=listLocales;hooks.weekdaysShort=listWeekdaysShort;hooks.normalizeUnits=normalizeUnits;hooks.relativeTimeRounding=getSetRelativeTimeRounding;hooks.relativeTimeThreshold=getSetRelativeTimeThreshold;hooks.calendarFormat=getCalendarFormat;hooks.prototype=proto;return hooks})}).call(exports,__webpack_require__(155)(module))},function(module,exports){module.exports=function(module){if(!module.webpackPolyfill){module.deprecate=function(){};module.paths=[];if(!module.children)module.children=[];Object.defineProperty(module,\"loaded\",{enumerable:true,get:function(){return module.l}});Object.defineProperty(module,\"id\",{enumerable:true,get:function(){return module.i}});module.webpackPolyfill=1}return module}},function(module,exports){function webpackEmptyContext(req){throw new Error(\"Cannot find module '\"+req+\"'.\")}webpackEmptyContext.keys=function(){return[]};webpackEmptyContext.resolve=webpackEmptyContext;module.exports=webpackEmptyContext;webpackEmptyContext.id=156},function(module,exports,__webpack_require__){\"use strict\";(function(global){var _rng;var globalVar=typeof window!==\"undefined\"?window:typeof global!==\"undefined\"?global:null;if(globalVar&&globalVar.crypto&&crypto.getRandomValues){var _rnds8=new Uint8Array(16);_rng=function whatwgRNG(){crypto.getRandomValues(_rnds8);return _rnds8}}if(!_rng){var _rnds=new Array(16);_rng=function _rng(){for(var i=0,r;i<16;i++){if((i&3)===0)r=Math.random()*4294967296;_rnds[i]=r>>>((i&3)<<3)&255}return _rnds}}var _byteToHex=[];var _hexToByte={};for(var i=0;i<256;i++){_byteToHex[i]=(i+256).toString(16).substr(1);_hexToByte[_byteToHex[i]]=i}function parse(s,buf,offset){var i=buf&&offset||0,ii=0;buf=buf||[];s.toLowerCase().replace(/[0-9a-f]{2}/g,function(oct){if(ii<16){buf[i+ii++]=_hexToByte[oct]}});while(ii<16){buf[i+ii++]=0}return buf}function unparse(buf,offset){var i=offset||0,bth=_byteToHex;return bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+\"-\"+bth[buf[i++]]+bth[buf[i++]]+\"-\"+bth[buf[i++]]+bth[buf[i++]]+\"-\"+bth[buf[i++]]+bth[buf[i++]]+\"-\"+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]}var _seedBytes=_rng();var _nodeId=[_seedBytes[0]|1,_seedBytes[1],_seedBytes[2],_seedBytes[3],_seedBytes[4],_seedBytes[5]];var _clockseq=(_seedBytes[6]<<8|_seedBytes[7])&16383;var _lastMSecs=0,_lastNSecs=0;function v1(options,buf,offset){var i=buf&&offset||0;var b=buf||[];options=options||{};var clockseq=options.clockseq!==undefined?options.clockseq:_clockseq;var msecs=options.msecs!==undefined?options.msecs:(new Date).getTime();var nsecs=options.nsecs!==undefined?options.nsecs:_lastNSecs+1;var dt=msecs-_lastMSecs+(nsecs-_lastNSecs)/1e4;if(dt<0&&options.clockseq===undefined){clockseq=clockseq+1&16383}if((dt<0||msecs>_lastMSecs)&&options.nsecs===undefined){nsecs=0}if(nsecs>=1e4){throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\")}_lastMSecs=msecs;_lastNSecs=nsecs;_clockseq=clockseq;msecs+=122192928e5;var tl=((msecs&268435455)*1e4+nsecs)%4294967296;b[i++]=tl>>>24&255;b[i++]=tl>>>16&255;b[i++]=tl>>>8&255;b[i++]=tl&255;var tmh=msecs/4294967296*1e4&268435455;b[i++]=tmh>>>8&255;b[i++]=tmh&255;b[i++]=tmh>>>24&15|16;b[i++]=tmh>>>16&255;b[i++]=clockseq>>>8|128;b[i++]=clockseq&255;var node=options.node||_nodeId;for(var n=0;n<6;n++){b[i+n]=node[n]}return buf?buf:unparse(b)}function v4(options,buf,offset){var i=buf&&offset||0;if(typeof options==\"string\"){buf=options==\"binary\"?new Array(16):null;options=null}options=options||{};var rnds=options.random||(options.rng||_rng)();rnds[6]=rnds[6]&15|64;rnds[8]=rnds[8]&63|128;if(buf){for(var ii=0;ii<16;ii++){buf[i+ii]=rnds[ii]}}return buf||unparse(rnds)}var uuid=v4;uuid.v1=v1;uuid.v4=v4;uuid.parse=parse;uuid.unparse=unparse;module.exports=uuid}).call(exports,__webpack_require__(158))},function(module,exports){var g;g=function(){return this}();try{g=g||Function(\"return this\")()||(1,eval)(\"this\")}catch(e){if(typeof window===\"object\")g=window}module.exports=g},function(module,exports,__webpack_require__){\"use strict\";exports.util=__webpack_require__(2);exports.DOMutil=__webpack_require__(14);exports.DataSet=__webpack_require__(11);exports.DataView=__webpack_require__(12);exports.Queue=__webpack_require__(43);exports.Graph3d=__webpack_require__(161);exports.graph3d={Camera:__webpack_require__(95),Filter:__webpack_require__(96),Point2d:__webpack_require__(91),Point3d:__webpack_require__(34),Slider:__webpack_require__(92),StepNumber:__webpack_require__(93)};exports.moment=__webpack_require__(9);exports.Hammer=__webpack_require__(10);exports.keycharm=__webpack_require__(35)},function(module,exports,__webpack_require__){var core=__webpack_require__(7);var $JSON=core.JSON||(core.JSON={stringify:JSON.stringify});module.exports=function stringify(it){return $JSON.stringify.apply($JSON,arguments)}},function(module,exports,__webpack_require__){\"use strict\";var _assign=__webpack_require__(90);var _assign2=_interopRequireDefault(_assign);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Emitter=__webpack_require__(44);var util=__webpack_require__(2);var Point3d=__webpack_require__(34);var Point2d=__webpack_require__(91);var Slider=__webpack_require__(92);var StepNumber=__webpack_require__(93);var Settings=__webpack_require__(94);var Validator=__webpack_require__(15)[\"default\"];var _require=__webpack_require__(15),printStyle=_require.printStyle;var _require2=__webpack_require__(172),allOptions=_require2.allOptions;var DataGroup=__webpack_require__(173);Graph3d.STYLE=Settings.STYLE;var autoByDefault=undefined;Graph3d.DEFAULTS={width:\"400px\",height:\"400px\",filterLabel:\"time\",legendLabel:\"value\",xLabel:\"x\",yLabel:\"y\",zLabel:\"z\",xValueLabel:function xValueLabel(v){return v},yValueLabel:function yValueLabel(v){return v},zValueLabel:function zValueLabel(v){return v},showXAxis:true,showYAxis:true,showZAxis:true,showGrid:true,showPerspective:true,showShadow:false,keepAspectRatio:true,verticalRatio:.5,dotSizeRatio:.02,dotSizeMinFraction:.5,dotSizeMaxFraction:2.5,showAnimationControls:autoByDefault,animationInterval:1e3,animationPreload:false,animationAutoStart:autoByDefault,axisColor:\"#4D4D4D\",gridColor:\"#D3D3D3\",xCenter:\"55%\",yCenter:\"50%\",style:Graph3d.STYLE.DOT,tooltip:false,tooltipStyle:{content:{padding:\"10px\",border:\"1px solid #4d4d4d\",color:\"#1a1a1a\",background:\"rgba(255,255,255,0.7)\",borderRadius:\"2px\",boxShadow:\"5px 5px 10px rgba(128,128,128,0.5)\"},line:{height:\"40px\",width:\"0\",borderLeft:\"1px solid #4d4d4d\"},dot:{height:\"0\",width:\"0\",border:\"5px solid #4d4d4d\",borderRadius:\"5px\"}},dataColor:{fill:\"#7DC1FF\",stroke:\"#3267D2\",strokeWidth:1},cameraPosition:{horizontal:1,vertical:.5,distance:1.7},showLegend:autoByDefault,backgroundColor:autoByDefault,xBarWidth:autoByDefault,yBarWidth:autoByDefault,valueMin:autoByDefault,valueMax:autoByDefault,xMin:autoByDefault,xMax:autoByDefault,xStep:autoByDefault,yMin:autoByDefault,yMax:autoByDefault,yStep:autoByDefault,zMin:autoByDefault,zMax:autoByDefault,zStep:autoByDefault};function Graph3d(container,data,options){if(!(this instanceof Graph3d)){throw new SyntaxError(\"Constructor must be called with the new operator\")}this.containerElement=container;this.dataGroup=new DataGroup;this.dataPoints=null;this.create();Settings.setDefaults(Graph3d.DEFAULTS,this);this.colX=undefined;this.colY=undefined;this.colZ=undefined;this.colValue=undefined;this.setOptions(options);this.setData(data)}Emitter(Graph3d.prototype);Graph3d.prototype._setScale=function(){this.scale=new Point3d(1/this.xRange.range(),1/this.yRange.range(),1/this.zRange.range());if(this.keepAspectRatio){if(this.scale.x<this.scale.y){this.scale.y=this.scale.x}else{this.scale.x=this.scale.y}}this.scale.z*=this.verticalRatio;if(this.valueRange!==undefined){this.scale.value=1/this.valueRange.range()}var xCenter=this.xRange.center()*this.scale.x;var yCenter=this.yRange.center()*this.scale.y;var zCenter=this.zRange.center()*this.scale.z;this.camera.setArmLocation(xCenter,yCenter,zCenter)};Graph3d.prototype._convert3Dto2D=function(point3d){var translation=this._convertPointToTranslation(point3d);return this._convertTranslationToScreen(translation)};Graph3d.prototype._convertPointToTranslation=function(point3d){var cameraLocation=this.camera.getCameraLocation(),cameraRotation=this.camera.getCameraRotation(),ax=point3d.x*this.scale.x,ay=point3d.y*this.scale.y,az=point3d.z*this.scale.z,cx=cameraLocation.x,cy=cameraLocation.y,cz=cameraLocation.z,sinTx=Math.sin(cameraRotation.x),cosTx=Math.cos(cameraRotation.x),sinTy=Math.sin(cameraRotation.y),cosTy=Math.cos(cameraRotation.y),sinTz=Math.sin(cameraRotation.z),cosTz=Math.cos(cameraRotation.z),dx=cosTy*(sinTz*(ay-cy)+cosTz*(ax-cx))-sinTy*(az-cz),dy=sinTx*(cosTy*(az-cz)+sinTy*(sinTz*(ay-cy)+cosTz*(ax-cx)))+cosTx*(cosTz*(ay-cy)-sinTz*(ax-cx)),dz=cosTx*(cosTy*(az-cz)+sinTy*(sinTz*(ay-cy)+cosTz*(ax-cx)))-sinTx*(cosTz*(ay-cy)-sinTz*(ax-cx));return new Point3d(dx,dy,dz)};Graph3d.prototype._convertTranslationToScreen=function(translation){var ex=this.eye.x,ey=this.eye.y,ez=this.eye.z,dx=translation.x,dy=translation.y,dz=translation.z;var bx;var by;if(this.showPerspective){bx=(dx-ex)*(ez/dz);by=(dy-ey)*(ez/dz)}else{bx=dx*-(ez/this.camera.getArmLength());by=dy*-(ez/this.camera.getArmLength())}return new Point2d(this.currentXCenter+bx*this.frame.canvas.clientWidth,this.currentYCenter-by*this.frame.canvas.clientWidth)};Graph3d.prototype._calcTranslations=function(points){for(var i=0;i<points.length;i++){var point=points[i];point.trans=this._convertPointToTranslation(point.point);point.screen=this._convertTranslationToScreen(point.trans);var transBottom=this._convertPointToTranslation(point.bottom);point.dist=this.showPerspective?transBottom.length():-transBottom.z}var sortDepth=function sortDepth(a,b){return b.dist-a.dist};points.sort(sortDepth)};Graph3d.prototype._initializeRanges=function(){var dg=this.dataGroup;this.xRange=dg.xRange;this.yRange=dg.yRange;this.zRange=dg.zRange;this.valueRange=dg.valueRange;this.xStep=dg.xStep;this.yStep=dg.yStep;this.zStep=dg.zStep;this.xBarWidth=dg.xBarWidth;this.yBarWidth=dg.yBarWidth;this.colX=dg.colX;this.colY=dg.colY;this.colZ=dg.colZ;this.colValue=dg.colValue;this._setScale()};Graph3d.prototype.getDataPoints=function(data){var dataPoints=[];for(var i=0;i<data.length;i++){var point=new Point3d;point.x=data[i][this.colX]||0;point.y=data[i][this.colY]||0;point.z=data[i][this.colZ]||0;point.data=data[i];if(this.colValue!==undefined){point.value=data[i][this.colValue]||0}var obj={};obj.point=point;obj.bottom=new Point3d(point.x,point.y,this.zRange.min);obj.trans=undefined;obj.screen=undefined;dataPoints.push(obj)}return dataPoints};Graph3d.prototype._getDataPoints=function(data){var x,y,i,obj;var dataPoints=[];if(this.style===Graph3d.STYLE.GRID||this.style===Graph3d.STYLE.SURFACE){var dataX=this.dataGroup.getDistinctValues(this.colX,data);var dataY=this.dataGroup.getDistinctValues(this.colY,data);dataPoints=this.getDataPoints(data);var dataMatrix=[];for(i=0;i<dataPoints.length;i++){obj=dataPoints[i];var xIndex=dataX.indexOf(obj.point.x);var yIndex=dataY.indexOf(obj.point.y);if(dataMatrix[xIndex]===undefined){dataMatrix[xIndex]=[]}dataMatrix[xIndex][yIndex]=obj}for(x=0;x<dataMatrix.length;x++){for(y=0;y<dataMatrix[x].length;y++){if(dataMatrix[x][y]){dataMatrix[x][y].pointRight=x<dataMatrix.length-1?dataMatrix[x+1][y]:undefined;dataMatrix[x][y].pointTop=y<dataMatrix[x].length-1?dataMatrix[x][y+1]:undefined;dataMatrix[x][y].pointCross=x<dataMatrix.length-1&&y<dataMatrix[x].length-1?dataMatrix[x+1][y+1]:undefined}}}}else{this._checkValueField(data);dataPoints=this.getDataPoints(data);if(this.style===Graph3d.STYLE.LINE){for(i=0;i<dataPoints.length;i++){if(i>0){dataPoints[i-1].pointNext=dataPoints[i]}}}}return dataPoints};Graph3d.prototype.create=function(){while(this.containerElement.hasChildNodes()){this.containerElement.removeChild(this.containerElement.firstChild)}this.frame=document.createElement(\"div\");this.frame.style.position=\"relative\";this.frame.style.overflow=\"hidden\";this.frame.canvas=document.createElement(\"canvas\");this.frame.canvas.style.position=\"relative\";this.frame.appendChild(this.frame.canvas);{var noCanvas=document.createElement(\"DIV\");noCanvas.style.color=\"red\";noCanvas.style.fontWeight=\"bold\";noCanvas.style.padding=\"10px\";noCanvas.innerHTML=\"Error: your browser does not support HTML canvas\";this.frame.canvas.appendChild(noCanvas)}this.frame.filter=document.createElement(\"div\");this.frame.filter.style.position=\"absolute\";this.frame.filter.style.bottom=\"0px\";this.frame.filter.style.left=\"0px\";this.frame.filter.style.width=\"100%\";this.frame.appendChild(this.frame.filter);var me=this;var onmousedown=function onmousedown(event){me._onMouseDown(event)};var ontouchstart=function ontouchstart(event){me._onTouchStart(event)};var onmousewheel=function onmousewheel(event){me._onWheel(event)};var ontooltip=function ontooltip(event){me._onTooltip(event)};var onclick=function onclick(event){me._onClick(event)};util.addEventListener(this.frame.canvas,\"mousedown\",onmousedown);util.addEventListener(this.frame.canvas,\"touchstart\",ontouchstart);util.addEventListener(this.frame.canvas,\"mousewheel\",onmousewheel);util.addEventListener(this.frame.canvas,\"mousemove\",ontooltip);util.addEventListener(this.frame.canvas,\"click\",onclick);this.containerElement.appendChild(this.frame)};Graph3d.prototype._setSize=function(width,height){this.frame.style.width=width;this.frame.style.height=height;this._resizeCanvas()};Graph3d.prototype._resizeCanvas=function(){this.frame.canvas.style.width=\"100%\";this.frame.canvas.style.height=\"100%\";this.frame.canvas.width=this.frame.canvas.clientWidth;this.frame.canvas.height=this.frame.canvas.clientHeight;this.frame.filter.style.width=this.frame.canvas.clientWidth-2*10+\"px\"};Graph3d.prototype.animationStart=function(){if(!this.animationAutoStart||!this.dataGroup.dataFilter)return;if(!this.frame.filter||!this.frame.filter.slider)throw new Error(\"No animation available\");this.frame.filter.slider.play()};Graph3d.prototype.animationStop=function(){if(!this.frame.filter||!this.frame.filter.slider)return;this.frame.filter.slider.stop()};Graph3d.prototype._resizeCenter=function(){if(this.xCenter.charAt(this.xCenter.length-1)===\"%\"){this.currentXCenter=parseFloat(this.xCenter)/100*this.frame.canvas.clientWidth}else{this.currentXCenter=parseFloat(this.xCenter)}if(this.yCenter.charAt(this.yCenter.length-1)===\"%\"){this.currentYCenter=parseFloat(this.yCenter)/100*(this.frame.canvas.clientHeight-this.frame.filter.clientHeight)}else{this.currentYCenter=parseFloat(this.yCenter)}};Graph3d.prototype.getCameraPosition=function(){var pos=this.camera.getArmRotation();pos.distance=this.camera.getArmLength();return pos};Graph3d.prototype._readData=function(data){this.dataPoints=this.dataGroup.initializeData(this,data,this.style);this._initializeRanges();this._redrawFilter()};Graph3d.prototype.setData=function(data){if(data===undefined||data===null)return;this._readData(data);this.redraw();this.animationStart()};Graph3d.prototype.setOptions=function(options){if(options===undefined)return;var errorFound=Validator.validate(options,allOptions);if(errorFound===true){console.log(\"%cErrors have been found in the supplied options object.\",printStyle)}this.animationStop();Settings.setOptions(options,this);this.setPointDrawingMethod();this._setSize(this.width,this.height);this.setData(this.dataGroup.getDataTable());this.animationStart()};Graph3d.prototype.setPointDrawingMethod=function(){var method=undefined;switch(this.style){case Graph3d.STYLE.BAR:method=Graph3d.prototype._redrawBarGraphPoint;break;case Graph3d.STYLE.BARCOLOR:method=Graph3d.prototype._redrawBarColorGraphPoint;break;case Graph3d.STYLE.BARSIZE:method=Graph3d.prototype._redrawBarSizeGraphPoint;break;case Graph3d.STYLE.DOT:method=Graph3d.prototype._redrawDotGraphPoint;break;case Graph3d.STYLE.DOTLINE:method=Graph3d.prototype._redrawDotLineGraphPoint;break;case Graph3d.STYLE.DOTCOLOR:method=Graph3d.prototype._redrawDotColorGraphPoint;break;case Graph3d.STYLE.DOTSIZE:method=Graph3d.prototype._redrawDotSizeGraphPoint;break;case Graph3d.STYLE.SURFACE:method=Graph3d.prototype._redrawSurfaceGraphPoint;break;case Graph3d.STYLE.GRID:method=Graph3d.prototype._redrawGridGraphPoint;break;case Graph3d.STYLE.LINE:method=Graph3d.prototype._redrawLineGraphPoint;break;default:throw new Error(\"Can not determine point drawing method \"+\"for graph style '\"+this.style+\"'\")}this._pointDrawingMethod=method};Graph3d.prototype.redraw=function(){if(this.dataPoints===undefined){throw new Error(\"Graph data not initialized\")}this._resizeCanvas();this._resizeCenter();this._redrawSlider();this._redrawClear();this._redrawAxis();this._redrawDataGraph();this._redrawInfo();this._redrawLegend()};Graph3d.prototype._getContext=function(){var canvas=this.frame.canvas;var ctx=canvas.getContext(\"2d\");ctx.lineJoin=\"round\";ctx.lineCap=\"round\";return ctx};Graph3d.prototype._redrawClear=function(){var canvas=this.frame.canvas;var ctx=canvas.getContext(\"2d\");ctx.clearRect(0,0,canvas.width,canvas.height)};Graph3d.prototype._dotSize=function(){return this.frame.clientWidth*this.dotSizeRatio};Graph3d.prototype._getLegendWidth=function(){var width;if(this.style===Graph3d.STYLE.DOTSIZE){var dotSize=this._dotSize();width=dotSize*this.dotSizeMaxFraction}else if(this.style===Graph3d.STYLE.BARSIZE){width=this.xBarWidth}else{width=20}return width};Graph3d.prototype._redrawLegend=function(){if(this.showLegend!==true){return}if(this.style===Graph3d.STYLE.LINE||this.style===Graph3d.STYLE.BARSIZE){return}var isSizeLegend=this.style===Graph3d.STYLE.BARSIZE||this.style===Graph3d.STYLE.DOTSIZE;var isValueLegend=this.style===Graph3d.STYLE.DOTSIZE||this.style===Graph3d.STYLE.DOTCOLOR||this.style===Graph3d.STYLE.BARCOLOR;var height=Math.max(this.frame.clientHeight*.25,100);var top=this.margin;var width=this._getLegendWidth();var right=this.frame.clientWidth-this.margin;var left=right-width;var bottom=top+height;var ctx=this._getContext();ctx.lineWidth=1;ctx.font=\"14px arial\";if(isSizeLegend===false){var ymin=0;var ymax=height;var y;for(y=ymin;y<ymax;y++){var f=(y-ymin)/(ymax-ymin);var hue=f*240;var color=this._hsv2rgb(hue,1,1);ctx.strokeStyle=color;ctx.beginPath();ctx.moveTo(left,top+y);ctx.lineTo(right,top+y);ctx.stroke()}ctx.strokeStyle=this.axisColor;ctx.strokeRect(left,top,width,height)}else{var widthMin;if(this.style===Graph3d.STYLE.DOTSIZE){widthMin=width*(this.dotSizeMinFraction/this.dotSizeMaxFraction)}else if(this.style===Graph3d.STYLE.BARSIZE){}ctx.strokeStyle=this.axisColor;ctx.fillStyle=this.dataColor.fill;ctx.beginPath();ctx.moveTo(left,top);ctx.lineTo(right,top);ctx.lineTo(left+widthMin,bottom);ctx.lineTo(left,bottom);ctx.closePath();ctx.fill();ctx.stroke()}var gridLineLen=5;var legendMin=isValueLegend?this.valueRange.min:this.zRange.min;var legendMax=isValueLegend?this.valueRange.max:this.zRange.max;var step=new StepNumber(legendMin,legendMax,(legendMax-legendMin)/5,true);step.start(true);var from;var to;while(!step.end()){y=bottom-(step.getCurrent()-legendMin)/(legendMax-legendMin)*height;from=new Point2d(left-gridLineLen,y);to=new Point2d(left,y);this._line(ctx,from,to);ctx.textAlign=\"right\";ctx.textBaseline=\"middle\";ctx.fillStyle=this.axisColor;ctx.fillText(step.getCurrent(),left-2*gridLineLen,y);step.next()}ctx.textAlign=\"right\";ctx.textBaseline=\"top\";var label=this.legendLabel;ctx.fillText(label,right,bottom+this.margin)};Graph3d.prototype._redrawFilter=function(){var dataFilter=this.dataGroup.dataFilter;var filter=this.frame.filter;filter.innerHTML=\"\";if(!dataFilter){filter.slider=undefined;return}var options={visible:this.showAnimationControls};var slider=new Slider(filter,options);filter.slider=slider;filter.style.padding=\"10px\";slider.setValues(dataFilter.values);slider.setPlayInterval(this.animationInterval);var me=this;var onchange=function onchange(){var dataFilter=me.dataGroup.dataFilter;var index=slider.getIndex();dataFilter.selectValue(index);me.dataPoints=dataFilter._getDataPoints();me.redraw()};slider.setOnChangeCallback(onchange)};Graph3d.prototype._redrawSlider=function(){if(this.frame.filter.slider!==undefined){this.frame.filter.slider.redraw()}};Graph3d.prototype._redrawInfo=function(){var info=this.dataGroup.getInfo();if(info===undefined)return;var ctx=this._getContext();ctx.font=\"14px arial\";ctx.lineStyle=\"gray\";ctx.fillStyle=\"gray\";ctx.textAlign=\"left\";ctx.textBaseline=\"top\";var x=this.margin;var y=this.margin;ctx.fillText(info,x,y)};Graph3d.prototype._line=function(ctx,from,to,strokeStyle){if(strokeStyle!==undefined){ctx.strokeStyle=strokeStyle}ctx.beginPath();ctx.moveTo(from.x,from.y);ctx.lineTo(to.x,to.y);ctx.stroke()};Graph3d.prototype.drawAxisLabelX=function(ctx,point3d,text,armAngle,yMargin){if(yMargin===undefined){yMargin=0}var point2d=this._convert3Dto2D(point3d);if(Math.cos(armAngle*2)>0){ctx.textAlign=\"center\";ctx.textBaseline=\"top\";point2d.y+=yMargin}else if(Math.sin(armAngle*2)<0){ctx.textAlign=\"right\";ctx.textBaseline=\"middle\"}else{ctx.textAlign=\"left\";ctx.textBaseline=\"middle\"}ctx.fillStyle=this.axisColor;ctx.fillText(text,point2d.x,point2d.y)};Graph3d.prototype.drawAxisLabelY=function(ctx,point3d,text,armAngle,yMargin){if(yMargin===undefined){yMargin=0}var point2d=this._convert3Dto2D(point3d);if(Math.cos(armAngle*2)<0){ctx.textAlign=\"center\";ctx.textBaseline=\"top\";point2d.y+=yMargin}else if(Math.sin(armAngle*2)>0){ctx.textAlign=\"right\";ctx.textBaseline=\"middle\"}else{ctx.textAlign=\"left\";ctx.textBaseline=\"middle\"}ctx.fillStyle=this.axisColor;ctx.fillText(text,point2d.x,point2d.y)};Graph3d.prototype.drawAxisLabelZ=function(ctx,point3d,text,offset){if(offset===undefined){offset=0}var point2d=this._convert3Dto2D(point3d);ctx.textAlign=\"right\";ctx.textBaseline=\"middle\";ctx.fillStyle=this.axisColor;ctx.fillText(text,point2d.x-offset,point2d.y)};Graph3d.prototype._line3d=function(ctx,from,to,strokeStyle){var from2d=this._convert3Dto2D(from);var to2d=this._convert3Dto2D(to);this._line(ctx,from2d,to2d,strokeStyle)};Graph3d.prototype._redrawAxis=function(){var ctx=this._getContext(),from,to,step,prettyStep,text,xText,yText,zText,offset,xOffset,yOffset;ctx.font=24/this.camera.getArmLength()+\"px arial\";var gridLenX=.025/this.scale.x;var gridLenY=.025/this.scale.y;var textMargin=5/this.camera.getArmLength();var armAngle=this.camera.getArmRotation().horizontal;var armVector=new Point2d(Math.cos(armAngle),Math.sin(armAngle));var xRange=this.xRange;var yRange=this.yRange;var zRange=this.zRange;var point3d;ctx.lineWidth=1;prettyStep=this.defaultXStep===undefined;step=new StepNumber(xRange.min,xRange.max,this.xStep,prettyStep);step.start(true);while(!step.end()){var x=step.getCurrent();if(this.showGrid){from=new Point3d(x,yRange.min,zRange.min);to=new Point3d(x,yRange.max,zRange.min);this._line3d(ctx,from,to,this.gridColor)}else if(this.showXAxis){from=new Point3d(x,yRange.min,zRange.min);to=new Point3d(x,yRange.min+gridLenX,zRange.min);this._line3d(ctx,from,to,this.axisColor);from=new Point3d(x,yRange.max,zRange.min);to=new Point3d(x,yRange.max-gridLenX,zRange.min);this._line3d(ctx,from,to,this.axisColor)}if(this.showXAxis){yText=armVector.x>0?yRange.min:yRange.max;point3d=new Point3d(x,yText,zRange.min);var msg=\" \"+this.xValueLabel(x)+\" \";this.drawAxisLabelX(ctx,point3d,msg,armAngle,textMargin)}step.next()}ctx.lineWidth=1;prettyStep=this.defaultYStep===undefined;step=new StepNumber(yRange.min,yRange.max,this.yStep,prettyStep);step.start(true);while(!step.end()){var y=step.getCurrent();if(this.showGrid){from=new Point3d(xRange.min,y,zRange.min);to=new Point3d(xRange.max,y,zRange.min);this._line3d(ctx,from,to,this.gridColor)}else if(this.showYAxis){from=new Point3d(xRange.min,y,zRange.min);to=new Point3d(xRange.min+gridLenY,y,zRange.min);this._line3d(ctx,from,to,this.axisColor);from=new Point3d(xRange.max,y,zRange.min);to=new Point3d(xRange.max-gridLenY,y,zRange.min);this._line3d(ctx,from,to,this.axisColor)}if(this.showYAxis){xText=armVector.y>0?xRange.min:xRange.max;point3d=new Point3d(xText,y,zRange.min);var _msg=\" \"+this.yValueLabel(y)+\" \";this.drawAxisLabelY(ctx,point3d,_msg,armAngle,textMargin)}step.next()}if(this.showZAxis){ctx.lineWidth=1;prettyStep=this.defaultZStep===undefined;step=new StepNumber(zRange.min,zRange.max,this.zStep,prettyStep);step.start(true);xText=armVector.x>0?xRange.min:xRange.max;yText=armVector.y<0?yRange.min:yRange.max;while(!step.end()){var z=step.getCurrent();var from3d=new Point3d(xText,yText,z);var from2d=this._convert3Dto2D(from3d);to=new Point2d(from2d.x-textMargin,from2d.y);this._line(ctx,from2d,to,this.axisColor);var _msg2=this.zValueLabel(z)+\" \";this.drawAxisLabelZ(ctx,from3d,_msg2,5);step.next()}ctx.lineWidth=1;from=new Point3d(xText,yText,zRange.min);to=new Point3d(xText,yText,zRange.max);this._line3d(ctx,from,to,this.axisColor)}if(this.showXAxis){var xMin2d;var xMax2d;ctx.lineWidth=1;xMin2d=new Point3d(xRange.min,yRange.min,zRange.min);xMax2d=new Point3d(xRange.max,yRange.min,zRange.min);this._line3d(ctx,xMin2d,xMax2d,this.axisColor);xMin2d=new Point3d(xRange.min,yRange.max,zRange.min);xMax2d=new Point3d(xRange.max,yRange.max,zRange.min);this._line3d(ctx,xMin2d,xMax2d,this.axisColor)}if(this.showYAxis){ctx.lineWidth=1;from=new Point3d(xRange.min,yRange.min,zRange.min);to=new Point3d(xRange.min,yRange.max,zRange.min);this._line3d(ctx,from,to,this.axisColor);from=new Point3d(xRange.max,yRange.min,zRange.min);to=new Point3d(xRange.max,yRange.max,zRange.min);this._line3d(ctx,from,to,this.axisColor)}var xLabel=this.xLabel;if(xLabel.length>0&&this.showXAxis){yOffset=.1/this.scale.y;xText=(xRange.max+3*xRange.min)/4;yText=armVector.x>0?yRange.min-yOffset:yRange.max+yOffset\n;text=new Point3d(xText,yText,zRange.min);this.drawAxisLabelX(ctx,text,xLabel,armAngle)}var yLabel=this.yLabel;if(yLabel.length>0&&this.showYAxis){xOffset=.1/this.scale.x;xText=armVector.y>0?xRange.min-xOffset:xRange.max+xOffset;yText=(yRange.max+3*yRange.min)/4;text=new Point3d(xText,yText,zRange.min);this.drawAxisLabelY(ctx,text,yLabel,armAngle)}var zLabel=this.zLabel;if(zLabel.length>0&&this.showZAxis){offset=30;xText=armVector.x>0?xRange.min:xRange.max;yText=armVector.y<0?yRange.min:yRange.max;zText=(zRange.max+3*zRange.min)/4;text=new Point3d(xText,yText,zText);this.drawAxisLabelZ(ctx,text,zLabel,offset)}};Graph3d.prototype._hsv2rgb=function(H,S,V){var R,G,B,C,Hi,X;C=V*S;Hi=Math.floor(H/60);X=C*(1-Math.abs(H/60%2-1));switch(Hi){case 0:R=C;G=X;B=0;break;case 1:R=X;G=C;B=0;break;case 2:R=0;G=C;B=X;break;case 3:R=0;G=X;B=C;break;case 4:R=X;G=0;B=C;break;case 5:R=C;G=0;B=X;break;default:R=0;G=0;B=0;break}return\"RGB(\"+parseInt(R*255)+\",\"+parseInt(G*255)+\",\"+parseInt(B*255)+\")\"};Graph3d.prototype._getStrokeWidth=function(point){if(point!==undefined){if(this.showPerspective){return 1/-point.trans.z*this.dataColor.strokeWidth}else{return-(this.eye.z/this.camera.getArmLength())*this.dataColor.strokeWidth}}return this.dataColor.strokeWidth};Graph3d.prototype._redrawBar=function(ctx,point,xWidth,yWidth,color,borderColor){var surface;var me=this;var point3d=point.point;var zMin=this.zRange.min;var top=[{point:new Point3d(point3d.x-xWidth,point3d.y-yWidth,point3d.z)},{point:new Point3d(point3d.x+xWidth,point3d.y-yWidth,point3d.z)},{point:new Point3d(point3d.x+xWidth,point3d.y+yWidth,point3d.z)},{point:new Point3d(point3d.x-xWidth,point3d.y+yWidth,point3d.z)}];var bottom=[{point:new Point3d(point3d.x-xWidth,point3d.y-yWidth,zMin)},{point:new Point3d(point3d.x+xWidth,point3d.y-yWidth,zMin)},{point:new Point3d(point3d.x+xWidth,point3d.y+yWidth,zMin)},{point:new Point3d(point3d.x-xWidth,point3d.y+yWidth,zMin)}];top.forEach(function(obj){obj.screen=me._convert3Dto2D(obj.point)});bottom.forEach(function(obj){obj.screen=me._convert3Dto2D(obj.point)});var surfaces=[{corners:top,center:Point3d.avg(bottom[0].point,bottom[2].point)},{corners:[top[0],top[1],bottom[1],bottom[0]],center:Point3d.avg(bottom[1].point,bottom[0].point)},{corners:[top[1],top[2],bottom[2],bottom[1]],center:Point3d.avg(bottom[2].point,bottom[1].point)},{corners:[top[2],top[3],bottom[3],bottom[2]],center:Point3d.avg(bottom[3].point,bottom[2].point)},{corners:[top[3],top[0],bottom[0],bottom[3]],center:Point3d.avg(bottom[0].point,bottom[3].point)}];point.surfaces=surfaces;for(var j=0;j<surfaces.length;j++){surface=surfaces[j];var transCenter=this._convertPointToTranslation(surface.center);surface.dist=this.showPerspective?transCenter.length():-transCenter.z}surfaces.sort(function(a,b){var diff=b.dist-a.dist;if(diff)return diff;if(a.corners===top)return 1;if(b.corners===top)return-1;return 0});ctx.lineWidth=this._getStrokeWidth(point);ctx.strokeStyle=borderColor;ctx.fillStyle=color;for(var _j=2;_j<surfaces.length;_j++){surface=surfaces[_j];this._polygon(ctx,surface.corners)}};Graph3d.prototype._polygon=function(ctx,points,fillStyle,strokeStyle){if(points.length<2){return}if(fillStyle!==undefined){ctx.fillStyle=fillStyle}if(strokeStyle!==undefined){ctx.strokeStyle=strokeStyle}ctx.beginPath();ctx.moveTo(points[0].screen.x,points[0].screen.y);for(var i=1;i<points.length;++i){var point=points[i];ctx.lineTo(point.screen.x,point.screen.y)}ctx.closePath();ctx.fill();ctx.stroke()};Graph3d.prototype._drawCircle=function(ctx,point,color,borderColor,size){var radius=this._calcRadius(point,size);ctx.lineWidth=this._getStrokeWidth(point);ctx.strokeStyle=borderColor;ctx.fillStyle=color;ctx.beginPath();ctx.arc(point.screen.x,point.screen.y,radius,0,Math.PI*2,true);ctx.fill();ctx.stroke()};Graph3d.prototype._getColorsRegular=function(point){var hue=(1-(point.point.z-this.zRange.min)*this.scale.z/this.verticalRatio)*240;var color=this._hsv2rgb(hue,1,1);var borderColor=this._hsv2rgb(hue,1,.8);return{fill:color,border:borderColor}};Graph3d.prototype._getColorsColor=function(point){var color,borderColor;if(typeof point.point.value===\"string\"){color=point.point.value;borderColor=point.point.value}else{var hue=(1-(point.point.value-this.valueRange.min)*this.scale.value)*240;color=this._hsv2rgb(hue,1,1);borderColor=this._hsv2rgb(hue,1,.8)}return{fill:color,border:borderColor}};Graph3d.prototype._getColorsSize=function(){return{fill:this.dataColor.fill,border:this.dataColor.stroke}};Graph3d.prototype._calcRadius=function(point,size){if(size===undefined){size=this._dotSize()}var radius;if(this.showPerspective){radius=size/-point.trans.z}else{radius=size*-(this.eye.z/this.camera.getArmLength())}if(radius<0){radius=0}return radius};Graph3d.prototype._redrawBarGraphPoint=function(ctx,point){var xWidth=this.xBarWidth/2;var yWidth=this.yBarWidth/2;var colors=this._getColorsRegular(point);this._redrawBar(ctx,point,xWidth,yWidth,colors.fill,colors.border)};Graph3d.prototype._redrawBarColorGraphPoint=function(ctx,point){var xWidth=this.xBarWidth/2;var yWidth=this.yBarWidth/2;var colors=this._getColorsColor(point);this._redrawBar(ctx,point,xWidth,yWidth,colors.fill,colors.border)};Graph3d.prototype._redrawBarSizeGraphPoint=function(ctx,point){var fraction=(point.point.value-this.valueRange.min)/this.valueRange.range();var xWidth=this.xBarWidth/2*(fraction*.8+.2);var yWidth=this.yBarWidth/2*(fraction*.8+.2);var colors=this._getColorsSize();this._redrawBar(ctx,point,xWidth,yWidth,colors.fill,colors.border)};Graph3d.prototype._redrawDotGraphPoint=function(ctx,point){var colors=this._getColorsRegular(point);this._drawCircle(ctx,point,colors.fill,colors.border)};Graph3d.prototype._redrawDotLineGraphPoint=function(ctx,point){var from=this._convert3Dto2D(point.bottom);ctx.lineWidth=1;this._line(ctx,from,point.screen,this.gridColor);this._redrawDotGraphPoint(ctx,point)};Graph3d.prototype._redrawDotColorGraphPoint=function(ctx,point){var colors=this._getColorsColor(point);this._drawCircle(ctx,point,colors.fill,colors.border)};Graph3d.prototype._redrawDotSizeGraphPoint=function(ctx,point){var dotSize=this._dotSize();var fraction=(point.point.value-this.valueRange.min)/this.valueRange.range();var sizeMin=dotSize*this.dotSizeMinFraction;var sizeRange=dotSize*this.dotSizeMaxFraction-sizeMin;var size=sizeMin+sizeRange*fraction;var colors=this._getColorsSize();this._drawCircle(ctx,point,colors.fill,colors.border,size)};Graph3d.prototype._redrawSurfaceGraphPoint=function(ctx,point){var right=point.pointRight;var top=point.pointTop;var cross=point.pointCross;if(point===undefined||right===undefined||top===undefined||cross===undefined){return}var topSideVisible=true;var fillStyle;var strokeStyle;if(this.showGrayBottom||this.showShadow){var aDiff=Point3d.subtract(cross.trans,point.trans);var bDiff=Point3d.subtract(top.trans,right.trans);var crossproduct=Point3d.crossProduct(aDiff,bDiff);var len=crossproduct.length();topSideVisible=crossproduct.z>0}if(topSideVisible){var zAvg=(point.point.z+right.point.z+top.point.z+cross.point.z)/4;var h=(1-(zAvg-this.zRange.min)*this.scale.z/this.verticalRatio)*240;var s=1;var v;if(this.showShadow){v=Math.min(1+crossproduct.x/len/2,1);fillStyle=this._hsv2rgb(h,s,v);strokeStyle=fillStyle}else{v=1;fillStyle=this._hsv2rgb(h,s,v);strokeStyle=this.axisColor}}else{fillStyle=\"gray\";strokeStyle=this.axisColor}ctx.lineWidth=this._getStrokeWidth(point);var points=[point,right,cross,top];this._polygon(ctx,points,fillStyle,strokeStyle)};Graph3d.prototype._drawGridLine=function(ctx,from,to){if(from===undefined||to===undefined){return}var zAvg=(from.point.z+to.point.z)/2;var h=(1-(zAvg-this.zRange.min)*this.scale.z/this.verticalRatio)*240;ctx.lineWidth=this._getStrokeWidth(from)*2;ctx.strokeStyle=this._hsv2rgb(h,1,1);this._line(ctx,from.screen,to.screen)};Graph3d.prototype._redrawGridGraphPoint=function(ctx,point){this._drawGridLine(ctx,point,point.pointRight);this._drawGridLine(ctx,point,point.pointTop)};Graph3d.prototype._redrawLineGraphPoint=function(ctx,point){if(point.pointNext===undefined){return}ctx.lineWidth=this._getStrokeWidth(point);ctx.strokeStyle=this.dataColor.stroke;this._line(ctx,point.screen,point.pointNext.screen)};Graph3d.prototype._redrawDataGraph=function(){var ctx=this._getContext();var i;if(this.dataPoints===undefined||this.dataPoints.length<=0)return;this._calcTranslations(this.dataPoints);for(i=0;i<this.dataPoints.length;i++){var point=this.dataPoints[i];this._pointDrawingMethod.call(this,ctx,point)}};Graph3d.prototype._storeMousePosition=function(event){this.startMouseX=getMouseX(event);this.startMouseY=getMouseY(event);this._startCameraOffset=this.camera.getOffset()};Graph3d.prototype._onMouseDown=function(event){event=event||window.event;if(this.leftButtonDown){this._onMouseUp(event)}this.leftButtonDown=event.which?event.which===1:event.button===1;if(!this.leftButtonDown&&!this.touchDown)return;this._storeMousePosition(event);this.startStart=new Date(this.start);this.startEnd=new Date(this.end);this.startArmRotation=this.camera.getArmRotation();this.frame.style.cursor=\"move\";var me=this;this.onmousemove=function(event){me._onMouseMove(event)};this.onmouseup=function(event){me._onMouseUp(event)};util.addEventListener(document,\"mousemove\",me.onmousemove);util.addEventListener(document,\"mouseup\",me.onmouseup);util.preventDefault(event)};Graph3d.prototype._onMouseMove=function(event){this.moving=true;event=event||window.event;var diffX=parseFloat(getMouseX(event))-this.startMouseX;var diffY=parseFloat(getMouseY(event))-this.startMouseY;if(event&&event.ctrlKey===true){var scaleX=this.frame.clientWidth*.5;var scaleY=this.frame.clientHeight*.5;var offXNew=(this._startCameraOffset.x||0)-diffX/scaleX*this.camera.armLength*.8;var offYNew=(this._startCameraOffset.y||0)+diffY/scaleY*this.camera.armLength*.8;this.camera.setOffset(offXNew,offYNew);this._storeMousePosition(event)}else{var horizontalNew=this.startArmRotation.horizontal+diffX/200;var verticalNew=this.startArmRotation.vertical+diffY/200;var snapAngle=4;var snapValue=Math.sin(snapAngle/360*2*Math.PI);if(Math.abs(Math.sin(horizontalNew))<snapValue){horizontalNew=Math.round(horizontalNew/Math.PI)*Math.PI-.001}if(Math.abs(Math.cos(horizontalNew))<snapValue){horizontalNew=(Math.round(horizontalNew/Math.PI-.5)+.5)*Math.PI-.001}if(Math.abs(Math.sin(verticalNew))<snapValue){verticalNew=Math.round(verticalNew/Math.PI)*Math.PI}if(Math.abs(Math.cos(verticalNew))<snapValue){verticalNew=(Math.round(verticalNew/Math.PI-.5)+.5)*Math.PI}this.camera.setArmRotation(horizontalNew,verticalNew)}this.redraw();var parameters=this.getCameraPosition();this.emit(\"cameraPositionChange\",parameters);util.preventDefault(event)};Graph3d.prototype._onMouseUp=function(event){this.frame.style.cursor=\"auto\";this.leftButtonDown=false;util.removeEventListener(document,\"mousemove\",this.onmousemove);util.removeEventListener(document,\"mouseup\",this.onmouseup);util.preventDefault(event)};Graph3d.prototype._onClick=function(event){if(!this.onclick_callback)return;if(!this.moving){var boundingRect=this.frame.getBoundingClientRect();var mouseX=getMouseX(event)-boundingRect.left;var mouseY=getMouseY(event)-boundingRect.top;var dataPoint=this._dataPointFromXY(mouseX,mouseY);if(dataPoint)this.onclick_callback(dataPoint.point.data)}else{this.moving=false}util.preventDefault(event)};Graph3d.prototype._onTooltip=function(event){var delay=300;var boundingRect=this.frame.getBoundingClientRect();var mouseX=getMouseX(event)-boundingRect.left;var mouseY=getMouseY(event)-boundingRect.top;if(!this.showTooltip){return}if(this.tooltipTimeout){clearTimeout(this.tooltipTimeout)}if(this.leftButtonDown){this._hideTooltip();return}if(this.tooltip&&this.tooltip.dataPoint){var dataPoint=this._dataPointFromXY(mouseX,mouseY);if(dataPoint!==this.tooltip.dataPoint){if(dataPoint){this._showTooltip(dataPoint)}else{this._hideTooltip()}}}else{var me=this;this.tooltipTimeout=setTimeout(function(){me.tooltipTimeout=null;var dataPoint=me._dataPointFromXY(mouseX,mouseY);if(dataPoint){me._showTooltip(dataPoint)}},delay)}};Graph3d.prototype._onTouchStart=function(event){this.touchDown=true;var me=this;this.ontouchmove=function(event){me._onTouchMove(event)};this.ontouchend=function(event){me._onTouchEnd(event)};util.addEventListener(document,\"touchmove\",me.ontouchmove);util.addEventListener(document,\"touchend\",me.ontouchend);this._onMouseDown(event)};Graph3d.prototype._onTouchMove=function(event){this._onMouseMove(event)};Graph3d.prototype._onTouchEnd=function(event){this.touchDown=false;util.removeEventListener(document,\"touchmove\",this.ontouchmove);util.removeEventListener(document,\"touchend\",this.ontouchend);this._onMouseUp(event)};Graph3d.prototype._onWheel=function(event){if(!event)event=window.event;var delta=0;if(event.wheelDelta){delta=event.wheelDelta/120}else if(event.detail){delta=-event.detail/3}if(delta){var oldLength=this.camera.getArmLength();var newLength=oldLength*(1-delta/10);this.camera.setArmLength(newLength);this.redraw();this._hideTooltip()}var parameters=this.getCameraPosition();this.emit(\"cameraPositionChange\",parameters);util.preventDefault(event)};Graph3d.prototype._insideTriangle=function(point,triangle){var a=triangle[0],b=triangle[1],c=triangle[2];function sign(x){return x>0?1:x<0?-1:0}var as=sign((b.x-a.x)*(point.y-a.y)-(b.y-a.y)*(point.x-a.x));var bs=sign((c.x-b.x)*(point.y-b.y)-(c.y-b.y)*(point.x-b.x));var cs=sign((a.x-c.x)*(point.y-c.y)-(a.y-c.y)*(point.x-c.x));return(as==0||bs==0||as==bs)&&(bs==0||cs==0||bs==cs)&&(as==0||cs==0||as==cs)};Graph3d.prototype._dataPointFromXY=function(x,y){var i,distMax=100,dataPoint=null,closestDataPoint=null,closestDist=null,center=new Point2d(x,y);if(this.style===Graph3d.STYLE.BAR||this.style===Graph3d.STYLE.BARCOLOR||this.style===Graph3d.STYLE.BARSIZE){for(i=this.dataPoints.length-1;i>=0;i--){dataPoint=this.dataPoints[i];var surfaces=dataPoint.surfaces;if(surfaces){for(var s=surfaces.length-1;s>=0;s--){var surface=surfaces[s];var corners=surface.corners;var triangle1=[corners[0].screen,corners[1].screen,corners[2].screen];var triangle2=[corners[2].screen,corners[3].screen,corners[0].screen];if(this._insideTriangle(center,triangle1)||this._insideTriangle(center,triangle2)){return dataPoint}}}}}else{for(i=0;i<this.dataPoints.length;i++){dataPoint=this.dataPoints[i];var point=dataPoint.screen;if(point){var distX=Math.abs(x-point.x);var distY=Math.abs(y-point.y);var dist=Math.sqrt(distX*distX+distY*distY);if((closestDist===null||dist<closestDist)&&dist<distMax){closestDist=dist;closestDataPoint=dataPoint}}}}return closestDataPoint};Graph3d.prototype.hasBars=function(style){return style==Graph3d.STYLE.BAR||style==Graph3d.STYLE.BARCOLOR||style==Graph3d.STYLE.BARSIZE};Graph3d.prototype._showTooltip=function(dataPoint){var content,line,dot;if(!this.tooltip){content=document.createElement(\"div\");(0,_assign2[\"default\"])(content.style,{},this.tooltipStyle.content);content.style.position=\"absolute\";line=document.createElement(\"div\");(0,_assign2[\"default\"])(line.style,{},this.tooltipStyle.line);line.style.position=\"absolute\";dot=document.createElement(\"div\");(0,_assign2[\"default\"])(dot.style,{},this.tooltipStyle.dot);dot.style.position=\"absolute\";this.tooltip={dataPoint:null,dom:{content:content,line:line,dot:dot}}}else{content=this.tooltip.dom.content;line=this.tooltip.dom.line;dot=this.tooltip.dom.dot}this._hideTooltip();this.tooltip.dataPoint=dataPoint;if(typeof this.showTooltip===\"function\"){content.innerHTML=this.showTooltip(dataPoint.point)}else{content.innerHTML=\"<table>\"+\"<tr><td>\"+this.xLabel+\":</td><td>\"+dataPoint.point.x+\"</td></tr>\"+\"<tr><td>\"+this.yLabel+\":</td><td>\"+dataPoint.point.y+\"</td></tr>\"+\"<tr><td>\"+this.zLabel+\":</td><td>\"+dataPoint.point.z+\"</td></tr>\"+\"</table>\"}content.style.left=\"0\";content.style.top=\"0\";this.frame.appendChild(content);this.frame.appendChild(line);this.frame.appendChild(dot);var contentWidth=content.offsetWidth;var contentHeight=content.offsetHeight;var lineHeight=line.offsetHeight;var dotWidth=dot.offsetWidth;var dotHeight=dot.offsetHeight;var left=dataPoint.screen.x-contentWidth/2;left=Math.min(Math.max(left,10),this.frame.clientWidth-10-contentWidth);line.style.left=dataPoint.screen.x+\"px\";line.style.top=dataPoint.screen.y-lineHeight+\"px\";content.style.left=left+\"px\";content.style.top=dataPoint.screen.y-lineHeight-contentHeight+\"px\";dot.style.left=dataPoint.screen.x-dotWidth/2+\"px\";dot.style.top=dataPoint.screen.y-dotHeight/2+\"px\"};Graph3d.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var prop in this.tooltip.dom){if(this.tooltip.dom.hasOwnProperty(prop)){var elem=this.tooltip.dom[prop];if(elem&&elem.parentNode){elem.parentNode.removeChild(elem)}}}}};function getMouseX(event){if(\"clientX\"in event)return event.clientX;return event.targetTouches[0]&&event.targetTouches[0].clientX||0}function getMouseY(event){if(\"clientY\"in event)return event.clientY;return event.targetTouches[0]&&event.targetTouches[0].clientY||0}Graph3d.prototype.setCameraPosition=function(pos){Settings.setCameraPosition(pos,this);this.redraw()};Graph3d.prototype.setSize=function(width,height){this._setSize(width,height);this.redraw()};module.exports=Graph3d},function(module,exports,__webpack_require__){__webpack_require__(163);module.exports=__webpack_require__(7).Object.assign},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);$export($export.S+$export.F,\"Object\",{assign:__webpack_require__(164)})},function(module,exports,__webpack_require__){\"use strict\";var getKeys=__webpack_require__(33);var gOPS=__webpack_require__(63);var pIE=__webpack_require__(42);var toObject=__webpack_require__(41);var IObject=__webpack_require__(78);var $assign=Object.assign;module.exports=!$assign||__webpack_require__(28)(function(){var A={};var B={};var S=Symbol();var K=\"abcdefghijklmnopqrst\";A[S]=7;K.split(\"\").forEach(function(k){B[k]=k});return $assign({},A)[S]!=7||Object.keys($assign({},B)).join(\"\")!=K})?function assign(target,source){var T=toObject(target);var aLen=arguments.length;var index=1;var getSymbols=gOPS.f;var isEnum=pIE.f;while(aLen>index){var S=IObject(arguments[index++]);var keys=getSymbols?getKeys(S).concat(getSymbols(S)):getKeys(S);var length=keys.length;var j=0;var key;while(length>j)if(isEnum.call(S,key=keys[j++]))T[key]=S[key]}return T}:$assign},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(166),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(167);module.exports=__webpack_require__(7).Math.sign},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);$export($export.S,\"Math\",{sign:__webpack_require__(168)})},function(module,exports){module.exports=Math.sign||function sign(x){return(x=+x)==0||x!=x?x:x<0?-1:1}},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(170),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(171);var $Object=__webpack_require__(7).Object;module.exports=function defineProperty(it,key,desc){return $Object.defineProperty(it,key,desc)}},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);$export($export.S+$export.F*!__webpack_require__(21),\"Object\",{defineProperty:__webpack_require__(20).f})},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var string=\"string\";var bool=\"boolean\";var number=\"number\";var object=\"object\";var colorOptions={fill:{string:string},stroke:{string:string},strokeWidth:{number:number},__type__:{string:string,object:object,undefined:\"undefined\"}};var allOptions={animationAutoStart:{boolean:bool,undefined:\"undefined\"},animationInterval:{number:number},animationPreload:{boolean:bool},axisColor:{string:string},backgroundColor:colorOptions,xBarWidth:{number:number,undefined:\"undefined\"},yBarWidth:{number:number,undefined:\"undefined\"},cameraPosition:{distance:{number:number},horizontal:{number:number},vertical:{number:number},__type__:{object:object}},xCenter:{string:string},yCenter:{string:string},dataColor:colorOptions,dotSizeMinFraction:{number:number},dotSizeMaxFraction:{number:number},dotSizeRatio:{number:number},filterLabel:{string:string},gridColor:{string:string},onclick:{function:\"function\"},keepAspectRatio:{boolean:bool},xLabel:{string:string},yLabel:{string:string},zLabel:{string:string},legendLabel:{string:string},xMin:{number:number,undefined:\"undefined\"},yMin:{number:number,undefined:\"undefined\"},zMin:{number:number,undefined:\"undefined\"},xMax:{number:number,undefined:\"undefined\"},yMax:{number:number,undefined:\"undefined\"},zMax:{number:number,undefined:\"undefined\"},showAnimationControls:{boolean:bool,undefined:\"undefined\"},showGrid:{boolean:bool},showLegend:{boolean:bool,undefined:\"undefined\"},showPerspective:{boolean:bool},showShadow:{boolean:bool},showXAxis:{boolean:bool},showYAxis:{boolean:bool},showZAxis:{boolean:bool},xStep:{number:number,undefined:\"undefined\"},yStep:{number:number,undefined:\"undefined\"},zStep:{number:number,undefined:\"undefined\"},style:{number:number,string:[\"bar\",\"bar-color\",\"bar-size\",\"dot\",\"dot-line\",\"dot-color\",\"dot-size\",\"line\",\"grid\",\"surface\"]},tooltip:{boolean:bool,function:\"function\"},tooltipStyle:{content:{color:{string:string},background:{string:string},border:{string:string},borderRadius:{string:string},boxShadow:{string:string},padding:{string:string},__type__:{object:object}},line:{borderLeft:{string:string},height:{string:string},width:{string:string},__type__:{object:object}},dot:{border:{string:string},borderRadius:{string:string},height:{string:string},width:{string:string},__type__:{object:object}},__type__:{object:object}},xValueLabel:{function:\"function\"},yValueLabel:{function:\"function\"},zValueLabel:{function:\"function\"},valueMax:{number:number,undefined:\"undefined\"},valueMin:{number:number,undefined:\"undefined\"},verticalRatio:{number:number},height:{string:string},width:{string:string},__type__:{object:object}};exports.allOptions=allOptions},function(module,exports,__webpack_require__){\"use strict\";var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Range=__webpack_require__(174);var Filter=__webpack_require__(96);var Settings=__webpack_require__(94);var Point3d=__webpack_require__(34);function DataGroup(){this.dataTable=null}DataGroup.prototype.initializeData=function(graph3d,rawData,style){if(rawData===undefined)return;if(Array.isArray(rawData)){rawData=new DataSet(rawData)}var data;if(rawData instanceof DataSet||rawData instanceof DataView){data=rawData.get()}else{throw new Error(\"Array, DataSet, or DataView expected\")}if(data.length==0)return;this.style=style;if(this.dataSet){this.dataSet.off(\"*\",this._onChange)}this.dataSet=rawData;this.dataTable=data;var me=this;this._onChange=function(){graph3d.setData(me.dataSet)};this.dataSet.on(\"*\",this._onChange);this.colX=\"x\";this.colY=\"y\";this.colZ=\"z\";var withBars=graph3d.hasBars(style);if(withBars){if(graph3d.defaultXBarWidth!==undefined){this.xBarWidth=graph3d.defaultXBarWidth}else{this.xBarWidth=this.getSmallestDifference(data,this.colX)||1}if(graph3d.defaultYBarWidth!==undefined){this.yBarWidth=graph3d.defaultYBarWidth}else{this.yBarWidth=this.getSmallestDifference(data,this.colY)||1}}this._initializeRange(data,this.colX,graph3d,withBars);this._initializeRange(data,this.colY,graph3d,withBars);this._initializeRange(data,this.colZ,graph3d,false);if(data[0].hasOwnProperty(\"style\")){this.colValue=\"style\";var valueRange=this.getColumnRange(data,this.colValue);this._setRangeDefaults(valueRange,graph3d.defaultValueMin,graph3d.defaultValueMax);this.valueRange=valueRange}var table=this.getDataTable();if(table[0].hasOwnProperty(\"filter\")){if(this.dataFilter===undefined){this.dataFilter=new Filter(this,\"filter\",graph3d);this.dataFilter.setOnLoadCallback(function(){graph3d.redraw()})}}var dataPoints;if(this.dataFilter){dataPoints=this.dataFilter._getDataPoints()}else{dataPoints=this._getDataPoints(this.getDataTable())}return dataPoints};DataGroup.prototype._collectRangeSettings=function(column,graph3d){var index=[\"x\",\"y\",\"z\"].indexOf(column);if(index==-1){throw new Error(\"Column '\"+column+\"' invalid\")}var upper=column.toUpperCase();return{barWidth:this[column+\"BarWidth\"],min:graph3d[\"default\"+upper+\"Min\"],max:graph3d[\"default\"+upper+\"Max\"],step:graph3d[\"default\"+upper+\"Step\"],range_label:column+\"Range\",step_label:column+\"Step\"}};DataGroup.prototype._initializeRange=function(data,column,graph3d,withBars){var NUMSTEPS=5;var settings=this._collectRangeSettings(column,graph3d);var range=this.getColumnRange(data,column);if(withBars&&column!=\"z\"){range.expand(settings.barWidth/2)}this._setRangeDefaults(range,settings.min,settings.max);this[settings.range_label]=range;this[settings.step_label]=settings.step!==undefined?settings.step:range.range()/NUMSTEPS};DataGroup.prototype.getDistinctValues=function(column,data){if(data===undefined){data=this.dataTable}var values=[];for(var i=0;i<data.length;i++){var value=data[i][column]||0;if(values.indexOf(value)===-1){values.push(value)}}return values.sort(function(a,b){return a-b})};DataGroup.prototype.getSmallestDifference=function(data,column){var values=this.getDistinctValues(data,column);var smallest_diff=null;for(var i=1;i<values.length;i++){var diff=values[i]-values[i-1];if(smallest_diff==null||smallest_diff>diff){smallest_diff=diff}}return smallest_diff};DataGroup.prototype.getColumnRange=function(data,column){var range=new Range;for(var i=0;i<data.length;i++){var item=data[i][column];range.adjust(item)}return range};DataGroup.prototype.getNumberOfRows=function(){return this.dataTable.length};DataGroup.prototype._setRangeDefaults=function(range,defaultMin,defaultMax){if(defaultMin!==undefined){range.min=defaultMin}if(defaultMax!==undefined){range.max=defaultMax}if(range.max<=range.min)range.max=range.min+1};DataGroup.prototype.getDataTable=function(){return this.dataTable};DataGroup.prototype.getDataSet=function(){return this.dataSet};DataGroup.prototype.getDataPoints=function(data){var dataPoints=[];for(var i=0;i<data.length;i++){var point=new Point3d;point.x=data[i][this.colX]||0;point.y=data[i][this.colY]||0;point.z=data[i][this.colZ]||0;point.data=data[i];if(this.colValue!==undefined){point.value=data[i][this.colValue]||0}var obj={};obj.point=point;obj.bottom=new Point3d(point.x,point.y,this.zRange.min);obj.trans=undefined;obj.screen=undefined;dataPoints.push(obj)}return dataPoints};DataGroup.prototype.initDataAsMatrix=function(data){var x,y,i,obj;var dataX=this.getDistinctValues(this.colX,data);var dataY=this.getDistinctValues(this.colY,data);var dataPoints=this.getDataPoints(data);var dataMatrix=[];for(i=0;i<dataPoints.length;i++){obj=dataPoints[i];var xIndex=dataX.indexOf(obj.point.x);var yIndex=dataY.indexOf(obj.point.y);if(dataMatrix[xIndex]===undefined){dataMatrix[xIndex]=[]}dataMatrix[xIndex][yIndex]=obj}for(x=0;x<dataMatrix.length;x++){for(y=0;y<dataMatrix[x].length;y++){if(dataMatrix[x][y]){dataMatrix[x][y].pointRight=x<dataMatrix.length-1?dataMatrix[x+1][y]:undefined;dataMatrix[x][y].pointTop=y<dataMatrix[x].length-1?dataMatrix[x][y+1]:undefined;dataMatrix[x][y].pointCross=x<dataMatrix.length-1&&y<dataMatrix[x].length-1?dataMatrix[x+1][y+1]:undefined}}}return dataPoints};DataGroup.prototype.getInfo=function(){var dataFilter=this.dataFilter;if(!dataFilter)return undefined;return dataFilter.getLabel()+\": \"+dataFilter.getSelectedValue()};DataGroup.prototype.reload=function(){if(this.dataTable){this.setData(this.dataTable)}};DataGroup.prototype._getDataPoints=function(data){var dataPoints=[];if(this.style===Settings.STYLE.GRID||this.style===Settings.STYLE.SURFACE){dataPoints=this.initDataAsMatrix(data)}else{this._checkValueField(data);dataPoints=this.getDataPoints(data);if(this.style===Settings.STYLE.LINE){for(var i=0;i<dataPoints.length;i++){if(i>0){dataPoints[i-1].pointNext=dataPoints[i]}}}}return dataPoints};DataGroup.prototype._checkValueField=function(data){var hasValueField=this.style===Settings.STYLE.BARCOLOR||this.style===Settings.STYLE.BARSIZE||this.style===Settings.STYLE.DOTCOLOR||this.style===Settings.STYLE.DOTSIZE;if(!hasValueField){return}if(this.colValue===undefined){throw new Error(\"Expected data to have \"+\" field 'style' \"+\" for graph style '\"+this.style+\"'\")}if(data[0][this.colValue]===undefined){throw new Error(\"Expected data to have \"+\" field '\"+this.colValue+\"' \"+\" for graph style '\"+this.style+\"'\")}};module.exports=DataGroup},function(module,exports,__webpack_require__){\"use strict\";function Range(){this.min=undefined;this.max=undefined}Range.prototype.adjust=function(value){if(value===undefined)return;if(this.min===undefined||this.min>value){this.min=value}if(this.max===undefined||this.max<value){this.max=value}};Range.prototype.combine=function(range){this.add(range.min);this.add(range.max)};Range.prototype.expand=function(val){if(val===undefined){return}var newMin=this.min-val;var newMax=this.max+val;if(newMin>newMax){throw new Error(\"Passed expansion value makes range invalid\")}this.min=newMin;this.max=newMax};Range.prototype.range=function(){return this.max-this.min};Range.prototype.center=function(){return(this.min+this.max)/2};module.exports=Range},function(module,exports,__webpack_require__){\"use strict\";var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;(function(factory){if(true){!(__WEBPACK_AMD_DEFINE_ARRAY__=[],__WEBPACK_AMD_DEFINE_FACTORY__=factory,__WEBPACK_AMD_DEFINE_RESULT__=typeof __WEBPACK_AMD_DEFINE_FACTORY__===\"function\"?__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__):__WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_RESULT__!==undefined&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}else if(typeof exports===\"object\"){module.exports=factory()}else{window.propagating=factory()}})(function(){var _firstTarget=null;return function propagating(hammer,options){var _options=options||{preventDefault:false};if(hammer.Manager){var Hammer=hammer;var PropagatingHammer=function(element,options){var o=Object.create(_options);if(options)Hammer.assign(o,options);return propagating(new Hammer(element,o),o)};Hammer.assign(PropagatingHammer,Hammer);PropagatingHammer.Manager=function(element,options){var o=Object.create(_options);if(options)Hammer.assign(o,options);return propagating(new Hammer.Manager(element,o),o)};return PropagatingHammer}var wrapper=Object.create(hammer);var element=hammer.element;if(!element.hammer)element.hammer=[];element.hammer.push(wrapper);hammer.on(\"hammer.input\",function(event){if(_options.preventDefault===true||_options.preventDefault===event.pointerType){event.preventDefault()}if(event.isFirst){_firstTarget=event.target}});wrapper._handlers={};wrapper.on=function(events,handler){split(events).forEach(function(event){var _handlers=wrapper._handlers[event];if(!_handlers){wrapper._handlers[event]=_handlers=[];hammer.on(event,propagatedHandler)}_handlers.push(handler)});return wrapper};wrapper.off=function(events,handler){split(events).forEach(function(event){var _handlers=wrapper._handlers[event];if(_handlers){_handlers=handler?_handlers.filter(function(h){return h!==handler}):[];if(_handlers.length>0){wrapper._handlers[event]=_handlers}else{hammer.off(event,propagatedHandler);delete wrapper._handlers[event]}}});return wrapper};wrapper.emit=function(eventType,event){_firstTarget=event.target;hammer.emit(eventType,event)};wrapper.destroy=function(){var hammers=hammer.element.hammer;var idx=hammers.indexOf(wrapper);if(idx!==-1)hammers.splice(idx,1);if(!hammers.length)delete hammer.element.hammer;wrapper._handlers={};hammer.destroy()};function split(events){return events.match(/[^ ]+/g)}function propagatedHandler(event){if(event.type!==\"hammer.input\"){if(!event.srcEvent._handled){event.srcEvent._handled={}}if(event.srcEvent._handled[event.type]){return}else{event.srcEvent._handled[event.type]=true}}var stopped=false\n;event.stopPropagation=function(){stopped=true};var srcStop=event.srcEvent.stopPropagation.bind(event.srcEvent);if(typeof srcStop==\"function\"){event.srcEvent.stopPropagation=function(){srcStop();event.stopPropagation()}}event.firstTarget=_firstTarget;var elem=_firstTarget;while(elem&&!stopped){var elemHammer=elem.hammer;if(elemHammer){var _handlers;for(var k=0;k<elemHammer.length;k++){_handlers=elemHammer[k]._handlers[event.type];if(_handlers)for(var i=0;i<_handlers.length&&!stopped;i++){_handlers[i](event)}}}elem=elem.parentNode}}return wrapper}})},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;(function(window,document,exportName,undefined){\"use strict\";var VENDOR_PREFIXES=[\"\",\"webkit\",\"Moz\",\"MS\",\"ms\",\"o\"];var TEST_ELEMENT=document.createElement(\"div\");var TYPE_FUNCTION=\"function\";var round=Math.round;var abs=Math.abs;var now=Date.now;function setTimeoutContext(fn,timeout,context){return setTimeout(bindFn(fn,context),timeout)}function invokeArrayArg(arg,fn,context){if(Array.isArray(arg)){each(arg,context[fn],context);return true}return false}function each(obj,iterator,context){var i;if(!obj){return}if(obj.forEach){obj.forEach(iterator,context)}else if(obj.length!==undefined){i=0;while(i<obj.length){iterator.call(context,obj[i],i,obj);i++}}else{for(i in obj){obj.hasOwnProperty(i)&&iterator.call(context,obj[i],i,obj)}}}function deprecate(method,name,message){var deprecationMessage=\"DEPRECATED METHOD: \"+name+\"\\n\"+message+\" AT \\n\";return function(){var e=new Error(\"get-stack-trace\");var stack=e&&e.stack?e.stack.replace(/^[^\\(]+?[\\n$]/gm,\"\").replace(/^\\s+at\\s+/gm,\"\").replace(/^Object.<anonymous>\\s*\\(/gm,\"{anonymous}()@\"):\"Unknown Stack Trace\";var log=window.console&&(window.console.warn||window.console.log);if(log){log.call(window.console,deprecationMessage,stack)}return method.apply(this,arguments)}}var assign;if(typeof Object.assign!==\"function\"){assign=function assign(target){if(target===undefined||target===null){throw new TypeError(\"Cannot convert undefined or null to object\")}var output=Object(target);for(var index=1;index<arguments.length;index++){var source=arguments[index];if(source!==undefined&&source!==null){for(var nextKey in source){if(source.hasOwnProperty(nextKey)){output[nextKey]=source[nextKey]}}}}return output}}else{assign=Object.assign}var extend=deprecate(function extend(dest,src,merge){var keys=Object.keys(src);var i=0;while(i<keys.length){if(!merge||merge&&dest[keys[i]]===undefined){dest[keys[i]]=src[keys[i]]}i++}return dest},\"extend\",\"Use `assign`.\");var merge=deprecate(function merge(dest,src){return extend(dest,src,true)},\"merge\",\"Use `assign`.\");function inherit(child,base,properties){var baseP=base.prototype,childP;childP=child.prototype=Object.create(baseP);childP.constructor=child;childP._super=baseP;if(properties){assign(childP,properties)}}function bindFn(fn,context){return function boundFn(){return fn.apply(context,arguments)}}function boolOrFn(val,args){if(typeof val==TYPE_FUNCTION){return val.apply(args?args[0]||undefined:undefined,args)}return val}function ifUndefined(val1,val2){return val1===undefined?val2:val1}function addEventListeners(target,types,handler){each(splitStr(types),function(type){target.addEventListener(type,handler,false)})}function removeEventListeners(target,types,handler){each(splitStr(types),function(type){target.removeEventListener(type,handler,false)})}function hasParent(node,parent){while(node){if(node==parent){return true}node=node.parentNode}return false}function inStr(str,find){return str.indexOf(find)>-1}function splitStr(str){return str.trim().split(/\\s+/g)}function inArray(src,find,findByKey){if(src.indexOf&&!findByKey){return src.indexOf(find)}else{var i=0;while(i<src.length){if(findByKey&&src[i][findByKey]==find||!findByKey&&src[i]===find){return i}i++}return-1}}function toArray(obj){return Array.prototype.slice.call(obj,0)}function uniqueArray(src,key,sort){var results=[];var values=[];var i=0;while(i<src.length){var val=key?src[i][key]:src[i];if(inArray(values,val)<0){results.push(src[i])}values[i]=val;i++}if(sort){if(!key){results=results.sort()}else{results=results.sort(function sortUniqueArray(a,b){return a[key]>b[key]})}}return results}function prefixed(obj,property){var prefix,prop;var camelProp=property[0].toUpperCase()+property.slice(1);var i=0;while(i<VENDOR_PREFIXES.length){prefix=VENDOR_PREFIXES[i];prop=prefix?prefix+camelProp:property;if(prop in obj){return prop}i++}return undefined}var _uniqueId=1;function uniqueId(){return _uniqueId++}function getWindowForElement(element){var doc=element.ownerDocument||element;return doc.defaultView||doc.parentWindow||window}var MOBILE_REGEX=/mobile|tablet|ip(ad|hone|od)|android/i;var SUPPORT_TOUCH=\"ontouchstart\"in window;var SUPPORT_POINTER_EVENTS=prefixed(window,\"PointerEvent\")!==undefined;var SUPPORT_ONLY_TOUCH=SUPPORT_TOUCH&&MOBILE_REGEX.test(navigator.userAgent);var INPUT_TYPE_TOUCH=\"touch\";var INPUT_TYPE_PEN=\"pen\";var INPUT_TYPE_MOUSE=\"mouse\";var INPUT_TYPE_KINECT=\"kinect\";var COMPUTE_INTERVAL=25;var INPUT_START=1;var INPUT_MOVE=2;var INPUT_END=4;var INPUT_CANCEL=8;var DIRECTION_NONE=1;var DIRECTION_LEFT=2;var DIRECTION_RIGHT=4;var DIRECTION_UP=8;var DIRECTION_DOWN=16;var DIRECTION_HORIZONTAL=DIRECTION_LEFT|DIRECTION_RIGHT;var DIRECTION_VERTICAL=DIRECTION_UP|DIRECTION_DOWN;var DIRECTION_ALL=DIRECTION_HORIZONTAL|DIRECTION_VERTICAL;var PROPS_XY=[\"x\",\"y\"];var PROPS_CLIENT_XY=[\"clientX\",\"clientY\"];function Input(manager,callback){var self=this;this.manager=manager;this.callback=callback;this.element=manager.element;this.target=manager.options.inputTarget;this.domHandler=function(ev){if(boolOrFn(manager.options.enable,[manager])){self.handler(ev)}};this.init()}Input.prototype={handler:function(){},init:function(){this.evEl&&addEventListeners(this.element,this.evEl,this.domHandler);this.evTarget&&addEventListeners(this.target,this.evTarget,this.domHandler);this.evWin&&addEventListeners(getWindowForElement(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&removeEventListeners(this.element,this.evEl,this.domHandler);this.evTarget&&removeEventListeners(this.target,this.evTarget,this.domHandler);this.evWin&&removeEventListeners(getWindowForElement(this.element),this.evWin,this.domHandler)}};function createInputInstance(manager){var Type;var inputClass=manager.options.inputClass;if(inputClass){Type=inputClass}else if(SUPPORT_POINTER_EVENTS){Type=PointerEventInput}else if(SUPPORT_ONLY_TOUCH){Type=TouchInput}else if(!SUPPORT_TOUCH){Type=MouseInput}else{Type=TouchMouseInput}return new Type(manager,inputHandler)}function inputHandler(manager,eventType,input){var pointersLen=input.pointers.length;var changedPointersLen=input.changedPointers.length;var isFirst=eventType&INPUT_START&&pointersLen-changedPointersLen===0;var isFinal=eventType&(INPUT_END|INPUT_CANCEL)&&pointersLen-changedPointersLen===0;input.isFirst=!!isFirst;input.isFinal=!!isFinal;if(isFirst){manager.session={}}input.eventType=eventType;computeInputData(manager,input);manager.emit(\"hammer.input\",input);manager.recognize(input);manager.session.prevInput=input}function computeInputData(manager,input){var session=manager.session;var pointers=input.pointers;var pointersLength=pointers.length;if(!session.firstInput){session.firstInput=simpleCloneInputData(input)}if(pointersLength>1&&!session.firstMultiple){session.firstMultiple=simpleCloneInputData(input)}else if(pointersLength===1){session.firstMultiple=false}var firstInput=session.firstInput;var firstMultiple=session.firstMultiple;var offsetCenter=firstMultiple?firstMultiple.center:firstInput.center;var center=input.center=getCenter(pointers);input.timeStamp=now();input.deltaTime=input.timeStamp-firstInput.timeStamp;input.angle=getAngle(offsetCenter,center);input.distance=getDistance(offsetCenter,center);computeDeltaXY(session,input);input.offsetDirection=getDirection(input.deltaX,input.deltaY);var overallVelocity=getVelocity(input.deltaTime,input.deltaX,input.deltaY);input.overallVelocityX=overallVelocity.x;input.overallVelocityY=overallVelocity.y;input.overallVelocity=abs(overallVelocity.x)>abs(overallVelocity.y)?overallVelocity.x:overallVelocity.y;input.scale=firstMultiple?getScale(firstMultiple.pointers,pointers):1;input.rotation=firstMultiple?getRotation(firstMultiple.pointers,pointers):0;input.maxPointers=!session.prevInput?input.pointers.length:input.pointers.length>session.prevInput.maxPointers?input.pointers.length:session.prevInput.maxPointers;computeIntervalInputData(session,input);var target=manager.element;if(hasParent(input.srcEvent.target,target)){target=input.srcEvent.target}input.target=target}function computeDeltaXY(session,input){var center=input.center;var offset=session.offsetDelta||{};var prevDelta=session.prevDelta||{};var prevInput=session.prevInput||{};if(input.eventType===INPUT_START||prevInput.eventType===INPUT_END){prevDelta=session.prevDelta={x:prevInput.deltaX||0,y:prevInput.deltaY||0};offset=session.offsetDelta={x:center.x,y:center.y}}input.deltaX=prevDelta.x+(center.x-offset.x);input.deltaY=prevDelta.y+(center.y-offset.y)}function computeIntervalInputData(session,input){var last=session.lastInterval||input,deltaTime=input.timeStamp-last.timeStamp,velocity,velocityX,velocityY,direction;if(input.eventType!=INPUT_CANCEL&&(deltaTime>COMPUTE_INTERVAL||last.velocity===undefined)){var deltaX=input.deltaX-last.deltaX;var deltaY=input.deltaY-last.deltaY;var v=getVelocity(deltaTime,deltaX,deltaY);velocityX=v.x;velocityY=v.y;velocity=abs(v.x)>abs(v.y)?v.x:v.y;direction=getDirection(deltaX,deltaY);session.lastInterval=input}else{velocity=last.velocity;velocityX=last.velocityX;velocityY=last.velocityY;direction=last.direction}input.velocity=velocity;input.velocityX=velocityX;input.velocityY=velocityY;input.direction=direction}function simpleCloneInputData(input){var pointers=[];var i=0;while(i<input.pointers.length){pointers[i]={clientX:round(input.pointers[i].clientX),clientY:round(input.pointers[i].clientY)};i++}return{timeStamp:now(),pointers:pointers,center:getCenter(pointers),deltaX:input.deltaX,deltaY:input.deltaY}}function getCenter(pointers){var pointersLength=pointers.length;if(pointersLength===1){return{x:round(pointers[0].clientX),y:round(pointers[0].clientY)}}var x=0,y=0,i=0;while(i<pointersLength){x+=pointers[i].clientX;y+=pointers[i].clientY;i++}return{x:round(x/pointersLength),y:round(y/pointersLength)}}function getVelocity(deltaTime,x,y){return{x:x/deltaTime||0,y:y/deltaTime||0}}function getDirection(x,y){if(x===y){return DIRECTION_NONE}if(abs(x)>=abs(y)){return x<0?DIRECTION_LEFT:DIRECTION_RIGHT}return y<0?DIRECTION_UP:DIRECTION_DOWN}function getDistance(p1,p2,props){if(!props){props=PROPS_XY}var x=p2[props[0]]-p1[props[0]],y=p2[props[1]]-p1[props[1]];return Math.sqrt(x*x+y*y)}function getAngle(p1,p2,props){if(!props){props=PROPS_XY}var x=p2[props[0]]-p1[props[0]],y=p2[props[1]]-p1[props[1]];return Math.atan2(y,x)*180/Math.PI}function getRotation(start,end){return getAngle(end[1],end[0],PROPS_CLIENT_XY)+getAngle(start[1],start[0],PROPS_CLIENT_XY)}function getScale(start,end){return getDistance(end[0],end[1],PROPS_CLIENT_XY)/getDistance(start[0],start[1],PROPS_CLIENT_XY)}var MOUSE_INPUT_MAP={mousedown:INPUT_START,mousemove:INPUT_MOVE,mouseup:INPUT_END};var MOUSE_ELEMENT_EVENTS=\"mousedown\";var MOUSE_WINDOW_EVENTS=\"mousemove mouseup\";function MouseInput(){this.evEl=MOUSE_ELEMENT_EVENTS;this.evWin=MOUSE_WINDOW_EVENTS;this.pressed=false;Input.apply(this,arguments)}inherit(MouseInput,Input,{handler:function MEhandler(ev){var eventType=MOUSE_INPUT_MAP[ev.type];if(eventType&INPUT_START&&ev.button===0){this.pressed=true}if(eventType&INPUT_MOVE&&ev.which!==1){eventType=INPUT_END}if(!this.pressed){return}if(eventType&INPUT_END){this.pressed=false}this.callback(this.manager,eventType,{pointers:[ev],changedPointers:[ev],pointerType:INPUT_TYPE_MOUSE,srcEvent:ev})}});var POINTER_INPUT_MAP={pointerdown:INPUT_START,pointermove:INPUT_MOVE,pointerup:INPUT_END,pointercancel:INPUT_CANCEL,pointerout:INPUT_CANCEL};var IE10_POINTER_TYPE_ENUM={2:INPUT_TYPE_TOUCH,3:INPUT_TYPE_PEN,4:INPUT_TYPE_MOUSE,5:INPUT_TYPE_KINECT};var POINTER_ELEMENT_EVENTS=\"pointerdown\";var POINTER_WINDOW_EVENTS=\"pointermove pointerup pointercancel\";if(window.MSPointerEvent&&!window.PointerEvent){POINTER_ELEMENT_EVENTS=\"MSPointerDown\";POINTER_WINDOW_EVENTS=\"MSPointerMove MSPointerUp MSPointerCancel\"}function PointerEventInput(){this.evEl=POINTER_ELEMENT_EVENTS;this.evWin=POINTER_WINDOW_EVENTS;Input.apply(this,arguments);this.store=this.manager.session.pointerEvents=[]}inherit(PointerEventInput,Input,{handler:function PEhandler(ev){var store=this.store;var removePointer=false;var eventTypeNormalized=ev.type.toLowerCase().replace(\"ms\",\"\");var eventType=POINTER_INPUT_MAP[eventTypeNormalized];var pointerType=IE10_POINTER_TYPE_ENUM[ev.pointerType]||ev.pointerType;var isTouch=pointerType==INPUT_TYPE_TOUCH;var storeIndex=inArray(store,ev.pointerId,\"pointerId\");if(eventType&INPUT_START&&(ev.button===0||isTouch)){if(storeIndex<0){store.push(ev);storeIndex=store.length-1}}else if(eventType&(INPUT_END|INPUT_CANCEL)){removePointer=true}if(storeIndex<0){return}store[storeIndex]=ev;this.callback(this.manager,eventType,{pointers:store,changedPointers:[ev],pointerType:pointerType,srcEvent:ev});if(removePointer){store.splice(storeIndex,1)}}});var SINGLE_TOUCH_INPUT_MAP={touchstart:INPUT_START,touchmove:INPUT_MOVE,touchend:INPUT_END,touchcancel:INPUT_CANCEL};var SINGLE_TOUCH_TARGET_EVENTS=\"touchstart\";var SINGLE_TOUCH_WINDOW_EVENTS=\"touchstart touchmove touchend touchcancel\";function SingleTouchInput(){this.evTarget=SINGLE_TOUCH_TARGET_EVENTS;this.evWin=SINGLE_TOUCH_WINDOW_EVENTS;this.started=false;Input.apply(this,arguments)}inherit(SingleTouchInput,Input,{handler:function TEhandler(ev){var type=SINGLE_TOUCH_INPUT_MAP[ev.type];if(type===INPUT_START){this.started=true}if(!this.started){return}var touches=normalizeSingleTouches.call(this,ev,type);if(type&(INPUT_END|INPUT_CANCEL)&&touches[0].length-touches[1].length===0){this.started=false}this.callback(this.manager,type,{pointers:touches[0],changedPointers:touches[1],pointerType:INPUT_TYPE_TOUCH,srcEvent:ev})}});function normalizeSingleTouches(ev,type){var all=toArray(ev.touches);var changed=toArray(ev.changedTouches);if(type&(INPUT_END|INPUT_CANCEL)){all=uniqueArray(all.concat(changed),\"identifier\",true)}return[all,changed]}var TOUCH_INPUT_MAP={touchstart:INPUT_START,touchmove:INPUT_MOVE,touchend:INPUT_END,touchcancel:INPUT_CANCEL};var TOUCH_TARGET_EVENTS=\"touchstart touchmove touchend touchcancel\";function TouchInput(){this.evTarget=TOUCH_TARGET_EVENTS;this.targetIds={};Input.apply(this,arguments)}inherit(TouchInput,Input,{handler:function MTEhandler(ev){var type=TOUCH_INPUT_MAP[ev.type];var touches=getTouches.call(this,ev,type);if(!touches){return}this.callback(this.manager,type,{pointers:touches[0],changedPointers:touches[1],pointerType:INPUT_TYPE_TOUCH,srcEvent:ev})}});function getTouches(ev,type){var allTouches=toArray(ev.touches);var targetIds=this.targetIds;if(type&(INPUT_START|INPUT_MOVE)&&allTouches.length===1){targetIds[allTouches[0].identifier]=true;return[allTouches,allTouches]}var i,targetTouches,changedTouches=toArray(ev.changedTouches),changedTargetTouches=[],target=this.target;targetTouches=allTouches.filter(function(touch){return hasParent(touch.target,target)});if(type===INPUT_START){i=0;while(i<targetTouches.length){targetIds[targetTouches[i].identifier]=true;i++}}i=0;while(i<changedTouches.length){if(targetIds[changedTouches[i].identifier]){changedTargetTouches.push(changedTouches[i])}if(type&(INPUT_END|INPUT_CANCEL)){delete targetIds[changedTouches[i].identifier]}i++}if(!changedTargetTouches.length){return}return[uniqueArray(targetTouches.concat(changedTargetTouches),\"identifier\",true),changedTargetTouches]}var DEDUP_TIMEOUT=2500;var DEDUP_DISTANCE=25;function TouchMouseInput(){Input.apply(this,arguments);var handler=bindFn(this.handler,this);this.touch=new TouchInput(this.manager,handler);this.mouse=new MouseInput(this.manager,handler);this.primaryTouch=null;this.lastTouches=[]}inherit(TouchMouseInput,Input,{handler:function TMEhandler(manager,inputEvent,inputData){var isTouch=inputData.pointerType==INPUT_TYPE_TOUCH,isMouse=inputData.pointerType==INPUT_TYPE_MOUSE;if(isMouse&&inputData.sourceCapabilities&&inputData.sourceCapabilities.firesTouchEvents){return}if(isTouch){recordTouches.call(this,inputEvent,inputData)}else if(isMouse&&isSyntheticEvent.call(this,inputData)){return}this.callback(manager,inputEvent,inputData)},destroy:function destroy(){this.touch.destroy();this.mouse.destroy()}});function recordTouches(eventType,eventData){if(eventType&INPUT_START){this.primaryTouch=eventData.changedPointers[0].identifier;setLastTouch.call(this,eventData)}else if(eventType&(INPUT_END|INPUT_CANCEL)){setLastTouch.call(this,eventData)}}function setLastTouch(eventData){var touch=eventData.changedPointers[0];if(touch.identifier===this.primaryTouch){var lastTouch={x:touch.clientX,y:touch.clientY};this.lastTouches.push(lastTouch);var lts=this.lastTouches;var removeLastTouch=function(){var i=lts.indexOf(lastTouch);if(i>-1){lts.splice(i,1)}};setTimeout(removeLastTouch,DEDUP_TIMEOUT)}}function isSyntheticEvent(eventData){var x=eventData.srcEvent.clientX,y=eventData.srcEvent.clientY;for(var i=0;i<this.lastTouches.length;i++){var t=this.lastTouches[i];var dx=Math.abs(x-t.x),dy=Math.abs(y-t.y);if(dx<=DEDUP_DISTANCE&&dy<=DEDUP_DISTANCE){return true}}return false}var PREFIXED_TOUCH_ACTION=prefixed(TEST_ELEMENT.style,\"touchAction\");var NATIVE_TOUCH_ACTION=PREFIXED_TOUCH_ACTION!==undefined;var TOUCH_ACTION_COMPUTE=\"compute\";var TOUCH_ACTION_AUTO=\"auto\";var TOUCH_ACTION_MANIPULATION=\"manipulation\";var TOUCH_ACTION_NONE=\"none\";var TOUCH_ACTION_PAN_X=\"pan-x\";var TOUCH_ACTION_PAN_Y=\"pan-y\";var TOUCH_ACTION_MAP=getTouchActionProps();function TouchAction(manager,value){this.manager=manager;this.set(value)}TouchAction.prototype={set:function(value){if(value==TOUCH_ACTION_COMPUTE){value=this.compute()}if(NATIVE_TOUCH_ACTION&&this.manager.element.style&&TOUCH_ACTION_MAP[value]){this.manager.element.style[PREFIXED_TOUCH_ACTION]=value}this.actions=value.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var actions=[];each(this.manager.recognizers,function(recognizer){if(boolOrFn(recognizer.options.enable,[recognizer])){actions=actions.concat(recognizer.getTouchAction())}});return cleanTouchActions(actions.join(\" \"))},preventDefaults:function(input){var srcEvent=input.srcEvent;var direction=input.offsetDirection;if(this.manager.session.prevented){srcEvent.preventDefault();return}var actions=this.actions;var hasNone=inStr(actions,TOUCH_ACTION_NONE)&&!TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];var hasPanY=inStr(actions,TOUCH_ACTION_PAN_Y)&&!TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];var hasPanX=inStr(actions,TOUCH_ACTION_PAN_X)&&!TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];if(hasNone){var isTapPointer=input.pointers.length===1;var isTapMovement=input.distance<2;var isTapTouchTime=input.deltaTime<250;if(isTapPointer&&isTapMovement&&isTapTouchTime){return}}if(hasPanX&&hasPanY){return}if(hasNone||hasPanY&&direction&DIRECTION_HORIZONTAL||hasPanX&&direction&DIRECTION_VERTICAL){return this.preventSrc(srcEvent)}},preventSrc:function(srcEvent){this.manager.session.prevented=true;srcEvent.preventDefault()}};function cleanTouchActions(actions){if(inStr(actions,TOUCH_ACTION_NONE)){return TOUCH_ACTION_NONE}var hasPanX=inStr(actions,TOUCH_ACTION_PAN_X);var hasPanY=inStr(actions,TOUCH_ACTION_PAN_Y);if(hasPanX&&hasPanY){return TOUCH_ACTION_NONE}if(hasPanX||hasPanY){return hasPanX?TOUCH_ACTION_PAN_X:TOUCH_ACTION_PAN_Y}if(inStr(actions,TOUCH_ACTION_MANIPULATION)){return TOUCH_ACTION_MANIPULATION}return TOUCH_ACTION_AUTO}function getTouchActionProps(){if(!NATIVE_TOUCH_ACTION){return false}var touchMap={};var cssSupports=window.CSS&&window.CSS.supports;[\"auto\",\"manipulation\",\"pan-y\",\"pan-x\",\"pan-x pan-y\",\"none\"].forEach(function(val){touchMap[val]=cssSupports?window.CSS.supports(\"touch-action\",val):true});return touchMap}var STATE_POSSIBLE=1;var STATE_BEGAN=2;var STATE_CHANGED=4;var STATE_ENDED=8;var STATE_RECOGNIZED=STATE_ENDED;var STATE_CANCELLED=16;var STATE_FAILED=32;function Recognizer(options){this.options=assign({},this.defaults,options||{});this.id=uniqueId();this.manager=null;this.options.enable=ifUndefined(this.options.enable,true);this.state=STATE_POSSIBLE;this.simultaneous={};this.requireFail=[]}Recognizer.prototype={defaults:{},set:function(options){assign(this.options,options);this.manager&&this.manager.touchAction.update();return this},recognizeWith:function(otherRecognizer){if(invokeArrayArg(otherRecognizer,\"recognizeWith\",this)){return this}var simultaneous=this.simultaneous;otherRecognizer=getRecognizerByNameIfManager(otherRecognizer,this);if(!simultaneous[otherRecognizer.id]){simultaneous[otherRecognizer.id]=otherRecognizer;otherRecognizer.recognizeWith(this)}return this},dropRecognizeWith:function(otherRecognizer){if(invokeArrayArg(otherRecognizer,\"dropRecognizeWith\",this)){return this}otherRecognizer=getRecognizerByNameIfManager(otherRecognizer,this);delete this.simultaneous[otherRecognizer.id];return this},requireFailure:function(otherRecognizer){if(invokeArrayArg(otherRecognizer,\"requireFailure\",this)){return this}var requireFail=this.requireFail;otherRecognizer=getRecognizerByNameIfManager(otherRecognizer,this);if(inArray(requireFail,otherRecognizer)===-1){requireFail.push(otherRecognizer);otherRecognizer.requireFailure(this)}return this},dropRequireFailure:function(otherRecognizer){if(invokeArrayArg(otherRecognizer,\"dropRequireFailure\",this)){return this}otherRecognizer=getRecognizerByNameIfManager(otherRecognizer,this);var index=inArray(this.requireFail,otherRecognizer);if(index>-1){this.requireFail.splice(index,1)}return this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(otherRecognizer){return!!this.simultaneous[otherRecognizer.id]},emit:function(input){var self=this;var state=this.state;function emit(event){self.manager.emit(event,input)}if(state<STATE_ENDED){emit(self.options.event+stateStr(state))}emit(self.options.event);if(input.additionalEvent){emit(input.additionalEvent)}if(state>=STATE_ENDED){emit(self.options.event+stateStr(state))}},tryEmit:function(input){if(this.canEmit()){return this.emit(input)}this.state=STATE_FAILED},canEmit:function(){var i=0;while(i<this.requireFail.length){if(!(this.requireFail[i].state&(STATE_FAILED|STATE_POSSIBLE))){return false}i++}return true},recognize:function(inputData){var inputDataClone=assign({},inputData);if(!boolOrFn(this.options.enable,[this,inputDataClone])){this.reset();this.state=STATE_FAILED;return}if(this.state&(STATE_RECOGNIZED|STATE_CANCELLED|STATE_FAILED)){this.state=STATE_POSSIBLE}this.state=this.process(inputDataClone);if(this.state&(STATE_BEGAN|STATE_CHANGED|STATE_ENDED|STATE_CANCELLED)){this.tryEmit(inputDataClone)}},process:function(inputData){},getTouchAction:function(){},reset:function(){}};function stateStr(state){if(state&STATE_CANCELLED){return\"cancel\"}else if(state&STATE_ENDED){return\"end\"}else if(state&STATE_CHANGED){return\"move\"}else if(state&STATE_BEGAN){return\"start\"}return\"\"}function directionStr(direction){if(direction==DIRECTION_DOWN){return\"down\"}else if(direction==DIRECTION_UP){return\"up\"}else if(direction==DIRECTION_LEFT){return\"left\"}else if(direction==DIRECTION_RIGHT){return\"right\"}return\"\"}function getRecognizerByNameIfManager(otherRecognizer,recognizer){var manager=recognizer.manager;if(manager){return manager.get(otherRecognizer)}return otherRecognizer}function AttrRecognizer(){Recognizer.apply(this,arguments)}inherit(AttrRecognizer,Recognizer,{defaults:{pointers:1},attrTest:function(input){var optionPointers=this.options.pointers;return optionPointers===0||input.pointers.length===optionPointers},process:function(input){var state=this.state;var eventType=input.eventType;var isRecognized=state&(STATE_BEGAN|STATE_CHANGED);var isValid=this.attrTest(input);if(isRecognized&&(eventType&INPUT_CANCEL||!isValid)){return state|STATE_CANCELLED}else if(isRecognized||isValid){if(eventType&INPUT_END){return state|STATE_ENDED}else if(!(state&STATE_BEGAN)){return STATE_BEGAN}return state|STATE_CHANGED}return STATE_FAILED}});function PanRecognizer(){AttrRecognizer.apply(this,arguments);this.pX=null;this.pY=null}inherit(PanRecognizer,AttrRecognizer,{defaults:{event:\"pan\",threshold:10,pointers:1,direction:DIRECTION_ALL},getTouchAction:function(){var direction=this.options.direction;var actions=[];if(direction&DIRECTION_HORIZONTAL){actions.push(TOUCH_ACTION_PAN_Y)}if(direction&DIRECTION_VERTICAL){actions.push(TOUCH_ACTION_PAN_X)}return actions},directionTest:function(input){var options=this.options;var hasMoved=true;var distance=input.distance;var direction=input.direction;var x=input.deltaX;var y=input.deltaY;if(!(direction&options.direction)){if(options.direction&DIRECTION_HORIZONTAL){direction=x===0?DIRECTION_NONE:x<0?DIRECTION_LEFT:DIRECTION_RIGHT;hasMoved=x!=this.pX;distance=Math.abs(input.deltaX)}else{direction=y===0?DIRECTION_NONE:y<0?DIRECTION_UP:DIRECTION_DOWN;hasMoved=y!=this.pY;distance=Math.abs(input.deltaY)}}input.direction=direction;return hasMoved&&distance>options.threshold&&direction&options.direction},attrTest:function(input){return AttrRecognizer.prototype.attrTest.call(this,input)&&(this.state&STATE_BEGAN||!(this.state&STATE_BEGAN)&&this.directionTest(input))},emit:function(input){this.pX=input.deltaX;this.pY=input.deltaY;var direction=directionStr(input.direction);if(direction){input.additionalEvent=this.options.event+direction}this._super.emit.call(this,input)}});function PinchRecognizer(){AttrRecognizer.apply(this,arguments)}inherit(PinchRecognizer,AttrRecognizer,{defaults:{event:\"pinch\",threshold:0,pointers:2},getTouchAction:function(){return[TOUCH_ACTION_NONE]},attrTest:function(input){return this._super.attrTest.call(this,input)&&(Math.abs(input.scale-1)>this.options.threshold||this.state&STATE_BEGAN)},emit:function(input){if(input.scale!==1){var inOut=input.scale<1?\"in\":\"out\";input.additionalEvent=this.options.event+inOut}this._super.emit.call(this,input)}});function PressRecognizer(){Recognizer.apply(this,arguments);this._timer=null;this._input=null}inherit(PressRecognizer,Recognizer,{defaults:{event:\"press\",pointers:1,time:251,threshold:9},getTouchAction:function(){return[TOUCH_ACTION_AUTO]},process:function(input){var options=this.options;var validPointers=input.pointers.length===options.pointers;var validMovement=input.distance<options.threshold;var validTime=input.deltaTime>options.time;this._input=input;if(!validMovement||!validPointers||input.eventType&(INPUT_END|INPUT_CANCEL)&&!validTime){this.reset()}else if(input.eventType&INPUT_START){this.reset();this._timer=setTimeoutContext(function(){this.state=STATE_RECOGNIZED;this.tryEmit()},options.time,this)}else if(input.eventType&INPUT_END){return STATE_RECOGNIZED}return STATE_FAILED},reset:function(){clearTimeout(this._timer)},emit:function(input){if(this.state!==STATE_RECOGNIZED){return}if(input&&input.eventType&INPUT_END){this.manager.emit(this.options.event+\"up\",input)}else{this._input.timeStamp=now();this.manager.emit(this.options.event,this._input)}}});function RotateRecognizer(){AttrRecognizer.apply(this,arguments)}inherit(RotateRecognizer,AttrRecognizer,{defaults:{event:\"rotate\",threshold:0,pointers:2},getTouchAction:function(){return[TOUCH_ACTION_NONE]},attrTest:function(input){return this._super.attrTest.call(this,input)&&(Math.abs(input.rotation)>this.options.threshold||this.state&STATE_BEGAN)}});function SwipeRecognizer(){AttrRecognizer.apply(this,arguments)}inherit(SwipeRecognizer,AttrRecognizer,{defaults:{event:\"swipe\",threshold:10,velocity:.3,direction:DIRECTION_HORIZONTAL|DIRECTION_VERTICAL,pointers:1},getTouchAction:function(){return PanRecognizer.prototype.getTouchAction.call(this)},attrTest:function(input){var direction=this.options.direction;var velocity;if(direction&(DIRECTION_HORIZONTAL|DIRECTION_VERTICAL)){velocity=input.overallVelocity}else if(direction&DIRECTION_HORIZONTAL){velocity=input.overallVelocityX}else if(direction&DIRECTION_VERTICAL){velocity=input.overallVelocityY}return this._super.attrTest.call(this,input)&&direction&input.offsetDirection&&input.distance>this.options.threshold&&input.maxPointers==this.options.pointers&&abs(velocity)>this.options.velocity&&input.eventType&INPUT_END},emit:function(input){var direction=directionStr(input.offsetDirection);if(direction){this.manager.emit(this.options.event+direction,input)}this.manager.emit(this.options.event,input)}});function TapRecognizer(){Recognizer.apply(this,arguments);this.pTime=false;this.pCenter=false;this._timer=null;this._input=null;this.count=0}inherit(TapRecognizer,Recognizer,{defaults:{event:\"tap\",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[TOUCH_ACTION_MANIPULATION]},process:function(input){var options=this.options;var validPointers=input.pointers.length===options.pointers;var validMovement=input.distance<options.threshold;var validTouchTime=input.deltaTime<options.time;this.reset();if(input.eventType&INPUT_START&&this.count===0){return this.failTimeout()}if(validMovement&&validTouchTime&&validPointers){if(input.eventType!=INPUT_END){return this.failTimeout()}var validInterval=this.pTime?input.timeStamp-this.pTime<options.interval:true;var validMultiTap=!this.pCenter||getDistance(this.pCenter,input.center)<options.posThreshold;this.pTime=input.timeStamp;this.pCenter=input.center;if(!validMultiTap||!validInterval){this.count=1}else{this.count+=1}this._input=input;var tapCount=this.count%options.taps;if(tapCount===0){if(!this.hasRequireFailures()){return STATE_RECOGNIZED}else{this._timer=setTimeoutContext(function(){this.state=STATE_RECOGNIZED;this.tryEmit()},options.interval,this);return STATE_BEGAN}}}return STATE_FAILED},failTimeout:function(){this._timer=setTimeoutContext(function(){this.state=STATE_FAILED},this.options.interval,this);return STATE_FAILED},reset:function(){clearTimeout(this._timer)},emit:function(){if(this.state==STATE_RECOGNIZED){this._input.tapCount=this.count;this.manager.emit(this.options.event,this._input)}}});function Hammer(element,options){options=options||{};options.recognizers=ifUndefined(options.recognizers,Hammer.defaults.preset);return new Manager(element,options)}Hammer.VERSION=\"2.0.7\";Hammer.defaults={domEvents:false,touchAction:TOUCH_ACTION_COMPUTE,enable:true,inputTarget:null,inputClass:null,preset:[[RotateRecognizer,{enable:false}],[PinchRecognizer,{enable:false},[\"rotate\"]],[SwipeRecognizer,{direction:DIRECTION_HORIZONTAL}],[PanRecognizer,{direction:DIRECTION_HORIZONTAL},[\"swipe\"]],[TapRecognizer],[TapRecognizer,{event:\"doubletap\",taps:2},[\"tap\"]],[PressRecognizer]],cssProps:{userSelect:\"none\",touchSelect:\"none\",touchCallout:\"none\",contentZooming:\"none\",userDrag:\"none\",tapHighlightColor:\"rgba(0,0,0,0)\"}};var STOP=1;var FORCED_STOP=2;function Manager(element,options){this.options=assign({},Hammer.defaults,options||{});this.options.inputTarget=this.options.inputTarget||element;this.handlers={};this.session={};this.recognizers=[];this.oldCssProps={};this.element=element;this.input=createInputInstance(this);this.touchAction=new TouchAction(this,this.options.touchAction);toggleCssProps(this,true);each(this.options.recognizers,function(item){var recognizer=this.add(new item[0](item[1]));item[2]&&recognizer.recognizeWith(item[2]);item[3]&&recognizer.requireFailure(item[3])},this)}Manager.prototype={set:function(options){assign(this.options,options);if(options.touchAction){this.touchAction.update()}if(options.inputTarget){this.input.destroy();this.input.target=options.inputTarget;this.input.init()}return this},stop:function(force){this.session.stopped=force?FORCED_STOP:STOP},recognize:function(inputData){var session=this.session;if(session.stopped){return}this.touchAction.preventDefaults(inputData)\n;var recognizer;var recognizers=this.recognizers;var curRecognizer=session.curRecognizer;if(!curRecognizer||curRecognizer&&curRecognizer.state&STATE_RECOGNIZED){curRecognizer=session.curRecognizer=null}var i=0;while(i<recognizers.length){recognizer=recognizers[i];if(session.stopped!==FORCED_STOP&&(!curRecognizer||recognizer==curRecognizer||recognizer.canRecognizeWith(curRecognizer))){recognizer.recognize(inputData)}else{recognizer.reset()}if(!curRecognizer&&recognizer.state&(STATE_BEGAN|STATE_CHANGED|STATE_ENDED)){curRecognizer=session.curRecognizer=recognizer}i++}},get:function(recognizer){if(recognizer instanceof Recognizer){return recognizer}var recognizers=this.recognizers;for(var i=0;i<recognizers.length;i++){if(recognizers[i].options.event==recognizer){return recognizers[i]}}return null},add:function(recognizer){if(invokeArrayArg(recognizer,\"add\",this)){return this}var existing=this.get(recognizer.options.event);if(existing){this.remove(existing)}this.recognizers.push(recognizer);recognizer.manager=this;this.touchAction.update();return recognizer},remove:function(recognizer){if(invokeArrayArg(recognizer,\"remove\",this)){return this}recognizer=this.get(recognizer);if(recognizer){var recognizers=this.recognizers;var index=inArray(recognizers,recognizer);if(index!==-1){recognizers.splice(index,1);this.touchAction.update()}}return this},on:function(events,handler){if(events===undefined){return}if(handler===undefined){return}var handlers=this.handlers;each(splitStr(events),function(event){handlers[event]=handlers[event]||[];handlers[event].push(handler)});return this},off:function(events,handler){if(events===undefined){return}var handlers=this.handlers;each(splitStr(events),function(event){if(!handler){delete handlers[event]}else{handlers[event]&&handlers[event].splice(inArray(handlers[event],handler),1)}});return this},emit:function(event,data){if(this.options.domEvents){triggerDomEvent(event,data)}var handlers=this.handlers[event]&&this.handlers[event].slice();if(!handlers||!handlers.length){return}data.type=event;data.preventDefault=function(){data.srcEvent.preventDefault()};var i=0;while(i<handlers.length){handlers[i](data);i++}},destroy:function(){this.element&&toggleCssProps(this,false);this.handlers={};this.session={};this.input.destroy();this.element=null}};function toggleCssProps(manager,add){var element=manager.element;if(!element.style){return}var prop;each(manager.options.cssProps,function(value,name){prop=prefixed(element.style,name);if(add){manager.oldCssProps[prop]=element.style[prop];element.style[prop]=value}else{element.style[prop]=manager.oldCssProps[prop]||\"\"}});if(!add){manager.oldCssProps={}}}function triggerDomEvent(event,data){var gestureEvent=document.createEvent(\"Event\");gestureEvent.initEvent(event,true,true);gestureEvent.gesture=data;data.target.dispatchEvent(gestureEvent)}assign(Hammer,{INPUT_START:INPUT_START,INPUT_MOVE:INPUT_MOVE,INPUT_END:INPUT_END,INPUT_CANCEL:INPUT_CANCEL,STATE_POSSIBLE:STATE_POSSIBLE,STATE_BEGAN:STATE_BEGAN,STATE_CHANGED:STATE_CHANGED,STATE_ENDED:STATE_ENDED,STATE_RECOGNIZED:STATE_RECOGNIZED,STATE_CANCELLED:STATE_CANCELLED,STATE_FAILED:STATE_FAILED,DIRECTION_NONE:DIRECTION_NONE,DIRECTION_LEFT:DIRECTION_LEFT,DIRECTION_RIGHT:DIRECTION_RIGHT,DIRECTION_UP:DIRECTION_UP,DIRECTION_DOWN:DIRECTION_DOWN,DIRECTION_HORIZONTAL:DIRECTION_HORIZONTAL,DIRECTION_VERTICAL:DIRECTION_VERTICAL,DIRECTION_ALL:DIRECTION_ALL,Manager:Manager,Input:Input,TouchAction:TouchAction,TouchInput:TouchInput,MouseInput:MouseInput,PointerEventInput:PointerEventInput,TouchMouseInput:TouchMouseInput,SingleTouchInput:SingleTouchInput,Recognizer:Recognizer,AttrRecognizer:AttrRecognizer,Tap:TapRecognizer,Pan:PanRecognizer,Swipe:SwipeRecognizer,Pinch:PinchRecognizer,Rotate:RotateRecognizer,Press:PressRecognizer,on:addEventListeners,off:removeEventListeners,each:each,merge:merge,extend:extend,assign:assign,inherit:inherit,bindFn:bindFn,prefixed:prefixed});var freeGlobal=typeof window!==\"undefined\"?window:typeof self!==\"undefined\"?self:{};freeGlobal.Hammer=Hammer;if(true){!(__WEBPACK_AMD_DEFINE_RESULT__=function(){return Hammer}.call(exports,__webpack_require__,exports,module),__WEBPACK_AMD_DEFINE_RESULT__!==undefined&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}else if(typeof module!=\"undefined\"&&module.exports){module.exports=Hammer}else{window[exportName]=Hammer}})(window,document,\"Hammer\")},function(module,exports,__webpack_require__){\"use strict\";exports.util=__webpack_require__(2);exports.DOMutil=__webpack_require__(14);exports.DataSet=__webpack_require__(11);exports.DataView=__webpack_require__(12);exports.Queue=__webpack_require__(43);exports.Timeline=__webpack_require__(178);exports.Graph2d=__webpack_require__(180);exports.timeline={Core:__webpack_require__(65),DateUtil:__webpack_require__(36),Range:__webpack_require__(64),stack:__webpack_require__(100),TimeStep:__webpack_require__(66),components:{items:{Item:__webpack_require__(38),BackgroundItem:__webpack_require__(103),BoxItem:__webpack_require__(101),PointItem:__webpack_require__(102),RangeItem:__webpack_require__(70)},BackgroundGroup:__webpack_require__(69),Component:__webpack_require__(16),CurrentTime:__webpack_require__(67),CustomTime:__webpack_require__(46),DataAxis:__webpack_require__(107),DataScale:__webpack_require__(108),GraphGroup:__webpack_require__(109),Group:__webpack_require__(68),ItemSet:__webpack_require__(99),Legend:__webpack_require__(112),LineGraph:__webpack_require__(106),TimeAxis:__webpack_require__(45)}};exports.moment=__webpack_require__(9);exports.Hammer=__webpack_require__(10);exports.keycharm=__webpack_require__(35)},function(module,exports,__webpack_require__){\"use strict\";var moment=__webpack_require__(9);var util=__webpack_require__(2);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Range=__webpack_require__(64);var Core=__webpack_require__(65);var TimeAxis=__webpack_require__(45);var CurrentTime=__webpack_require__(67);var CustomTime=__webpack_require__(46);var ItemSet=__webpack_require__(99);var printStyle=__webpack_require__(15).printStyle;var allOptions=__webpack_require__(105).allOptions;var configureOptions=__webpack_require__(105).configureOptions;var Configurator=__webpack_require__(71)[\"default\"];var Validator=__webpack_require__(15)[\"default\"];function Timeline(container,items,groups,options){if(!(this instanceof Timeline)){throw new SyntaxError(\"Constructor must be called with the new operator\")}if(!(Array.isArray(groups)||groups instanceof DataSet||groups instanceof DataView)&&groups instanceof Object){var forthArgument=options;options=groups;groups=forthArgument}if(options&&options.throttleRedraw){console.warn('Timeline option \"throttleRedraw\" is DEPRICATED and no longer supported. It will be removed in the next MAJOR release.')}var me=this;this.defaultOptions={start:null,end:null,autoResize:true,orientation:{axis:\"bottom\",item:\"bottom\"},moment:moment,width:null,height:null,maxHeight:null,minHeight:null};this.options=util.deepExtend({},this.defaultOptions);this._create(container);if(!options||options&&typeof options.rtl==\"undefined\"){this.dom.root.style.visibility=\"hidden\";var directionFromDom,domNode=this.dom.root;while(!directionFromDom&&domNode){directionFromDom=window.getComputedStyle(domNode,null).direction;domNode=domNode.parentElement}this.options.rtl=directionFromDom&&directionFromDom.toLowerCase()==\"rtl\"}else{this.options.rtl=options.rtl}this.options.rollingMode=options&&options.rollingMode;this.options.onInitialDrawComplete=options&&options.onInitialDrawComplete;this.components=[];this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{getScale:function getScale(){return me.timeAxis.step.scale},getStep:function getStep(){return me.timeAxis.step.step},toScreen:me._toScreen.bind(me),toGlobalScreen:me._toGlobalScreen.bind(me),toTime:me._toTime.bind(me),toGlobalTime:me._toGlobalTime.bind(me)}};this.range=new Range(this.body,this.options);this.components.push(this.range);this.body.range=this.range;this.timeAxis=new TimeAxis(this.body,this.options);this.timeAxis2=null;this.components.push(this.timeAxis);this.currentTime=new CurrentTime(this.body,this.options);this.components.push(this.currentTime);this.itemSet=new ItemSet(this.body,this.options);this.components.push(this.itemSet);this.itemsData=null;this.groupsData=null;this.dom.root.onclick=function(event){me.emit(\"click\",me.getEventProperties(event))};this.dom.root.ondblclick=function(event){me.emit(\"doubleClick\",me.getEventProperties(event))};this.dom.root.oncontextmenu=function(event){me.emit(\"contextmenu\",me.getEventProperties(event))};this.dom.root.onmouseover=function(event){me.emit(\"mouseOver\",me.getEventProperties(event))};if(window.PointerEvent){this.dom.root.onpointerdown=function(event){me.emit(\"mouseDown\",me.getEventProperties(event))};this.dom.root.onpointermove=function(event){me.emit(\"mouseMove\",me.getEventProperties(event))};this.dom.root.onpointerup=function(event){me.emit(\"mouseUp\",me.getEventProperties(event))}}else{this.dom.root.onmousemove=function(event){me.emit(\"mouseMove\",me.getEventProperties(event))};this.dom.root.onmousedown=function(event){me.emit(\"mouseDown\",me.getEventProperties(event))};this.dom.root.onmouseup=function(event){me.emit(\"mouseUp\",me.getEventProperties(event))}}this.initialFitDone=false;this.on(\"changed\",function(){if(this.itemsData==null||this.options.rollingMode)return;if(!me.initialFitDone){me.initialFitDone=true;if(me.options.start!=undefined||me.options.end!=undefined){if(me.options.start==undefined||me.options.end==undefined){var range=me.getItemRange()}var start=me.options.start!=undefined?me.options.start:range.min;var end=me.options.end!=undefined?me.options.end:range.max;me.setWindow(start,end,{animation:false})}else{me.fit({animation:false})}}if(!me.initialDrawDone&&me.initialRangeChangeDone){me.initialDrawDone=true;me.dom.root.style.visibility=\"visible\";if(me.options.onInitialDrawComplete){setTimeout(function(){return me.options.onInitialDrawComplete()},0)}}});if(options){this.setOptions(options)}if(groups){this.setGroups(groups)}if(items){this.setItems(items)}this._redraw()}Timeline.prototype=new Core;Timeline.prototype._createConfigurator=function(){return new Configurator(this,this.dom.container,configureOptions)};Timeline.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:true});this._redraw()};Timeline.prototype.setOptions=function(options){var errorFound=Validator.validate(options,allOptions);if(errorFound===true){console.log(\"%cErrors have been found in the supplied options object.\",printStyle)}Core.prototype.setOptions.call(this,options);if(\"type\"in options){if(options.type!==this.options.type){this.options.type=options.type;var itemsData=this.itemsData;if(itemsData){var selection=this.getSelection();this.setItems(null);this.setItems(itemsData);this.setSelection(selection)}}}};Timeline.prototype.setItems=function(items){var newDataSet;if(!items){newDataSet=null}else if(items instanceof DataSet||items instanceof DataView){newDataSet=items}else{newDataSet=new DataSet(items,{type:{start:\"Date\",end:\"Date\"}})}this.itemsData=newDataSet;this.itemSet&&this.itemSet.setItems(newDataSet)};Timeline.prototype.setGroups=function(groups){var newDataSet;if(!groups){newDataSet=null}else{var filter=function filter(group){return group.visible!==false};if(groups instanceof DataSet||groups instanceof DataView){newDataSet=new DataView(groups,{filter:filter})}else{newDataSet=new DataSet(groups.filter(filter))}}this.groupsData=newDataSet;this.itemSet.setGroups(newDataSet)};Timeline.prototype.setData=function(data){if(data&&data.groups){this.setGroups(data.groups)}if(data&&data.items){this.setItems(data.items)}};Timeline.prototype.setSelection=function(ids,options){this.itemSet&&this.itemSet.setSelection(ids);if(options&&options.focus){this.focus(ids,options)}};Timeline.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]};Timeline.prototype.focus=function(id,options){if(!this.itemsData||id==undefined)return;var ids=Array.isArray(id)?id:[id];var itemsData=this.itemsData.getDataSet().get(ids,{type:{start:\"Date\",end:\"Date\"}});var start=null;var end=null;itemsData.forEach(function(itemData){var s=itemData.start.valueOf();var e=\"end\"in itemData?itemData.end.valueOf():itemData.start.valueOf();if(start===null||s<start){start=s}if(end===null||e>end){end=e}});if(start!==null&&end!==null){var me=this;var item=this.itemSet.items[ids[0]];var startPos=this._getScrollTop()*-1;var initialVerticalScroll=null;var verticalAnimationFrame=function verticalAnimationFrame(ease,willDraw,done){var verticalScroll=getItemVerticalScroll(me,item);if(!initialVerticalScroll){initialVerticalScroll=verticalScroll}if(initialVerticalScroll.itemTop==verticalScroll.itemTop&&!initialVerticalScroll.shouldScroll){return}else if(initialVerticalScroll.itemTop!=verticalScroll.itemTop&&verticalScroll.shouldScroll){initialVerticalScroll=verticalScroll;startPos=me._getScrollTop()*-1}var from=startPos;var to=initialVerticalScroll.scrollOffset;var scrollTop=done?to:from+(to-from)*ease;me._setScrollTop(-scrollTop);if(!willDraw){me._redraw()}};var setFinalVerticalPosition=function setFinalVerticalPosition(){var finalVerticalScroll=getItemVerticalScroll(me,item);if(finalVerticalScroll.shouldScroll&&finalVerticalScroll.itemTop!=initialVerticalScroll.itemTop){me._setScrollTop(-finalVerticalScroll.scrollOffset);me._redraw()}};var finalVerticalCallback=function finalVerticalCallback(){setFinalVerticalPosition();setTimeout(setFinalVerticalPosition,100)};var middle=(start+end)/2;var interval=Math.max(this.range.end-this.range.start,(end-start)*1.1);var animation=options&&options.animation!==undefined?options.animation:true;if(!animation){initialVerticalScroll={shouldScroll:false,scrollOffset:-1,itemTop:-1}}this.range.setRange(middle-interval/2,middle+interval/2,{animation:animation},finalVerticalCallback,verticalAnimationFrame)}};Timeline.prototype.fit=function(options,callback){var animation=options&&options.animation!==undefined?options.animation:true;var range;var dataset=this.itemsData&&this.itemsData.getDataSet();if(dataset.length===1&&dataset.get()[0].end===undefined){range=this.getDataRange();this.moveTo(range.min.valueOf(),{animation:animation},callback)}else{range=this.getItemRange();this.range.setRange(range.min,range.max,{animation:animation},callback)}};function getStart(item){return util.convert(item.data.start,\"Date\").valueOf()}function getEnd(item){var end=item.data.end!=undefined?item.data.end:item.data.start;return util.convert(end,\"Date\").valueOf()}function getItemVerticalScroll(timeline,item){var leftHeight=timeline.props.leftContainer.height;var contentHeight=timeline.props.left.height;var group=item.parent;var offset=group.top;var shouldScroll=true;var orientation=timeline.timeAxis.options.orientation.axis;var itemTop=function itemTop(){if(orientation==\"bottom\"){return group.height-item.top-item.height}else{return item.top}};var currentScrollHeight=timeline._getScrollTop()*-1;var targetOffset=offset+itemTop();var height=item.height;if(targetOffset<currentScrollHeight){if(offset+leftHeight<=offset+itemTop()+height){offset+=itemTop()-timeline.itemSet.options.margin.item.vertical}}else if(targetOffset+height>currentScrollHeight+leftHeight){offset+=itemTop()+height-leftHeight+timeline.itemSet.options.margin.item.vertical}else{shouldScroll=false}offset=Math.min(offset,contentHeight-leftHeight);return{shouldScroll:shouldScroll,scrollOffset:offset,itemTop:targetOffset}}Timeline.prototype.getItemRange=function(){var range=this.getDataRange();var min=range.min!==null?range.min.valueOf():null;var max=range.max!==null?range.max.valueOf():null;var minItem=null;var maxItem=null;if(min!=null&&max!=null){var interval=max-min;if(interval<=0){interval=10}var factor=interval/this.props.center.width;var redrawQueue={};var redrawQueueLength=0;util.forEach(this.itemSet.items,function(item,key){if(item.groupShowing){var returnQueue=true;redrawQueue[key]=item.redraw(returnQueue);redrawQueueLength=redrawQueue[key].length}});var needRedraw=redrawQueueLength>0;if(needRedraw){for(var i=0;i<redrawQueueLength;i++){util.forEach(redrawQueue,function(fns){fns[i]()})}}util.forEach(this.itemSet.items,function(item){var start=getStart(item);var end=getEnd(item);var startSide;var endSide;if(this.options.rtl){startSide=start-(item.getWidthRight()+10)*factor;endSide=end+(item.getWidthLeft()+10)*factor}else{startSide=start-(item.getWidthLeft()+10)*factor;endSide=end+(item.getWidthRight()+10)*factor}if(startSide<min){min=startSide;minItem=item}if(endSide>max){max=endSide;maxItem=item}}.bind(this));if(minItem&&maxItem){var lhs=minItem.getWidthLeft()+10;var rhs=maxItem.getWidthRight()+10;var delta=this.props.center.width-lhs-rhs;if(delta>0){if(this.options.rtl){min=getStart(minItem)-rhs*interval/delta;max=getEnd(maxItem)+lhs*interval/delta}else{min=getStart(minItem)-lhs*interval/delta;max=getEnd(maxItem)+rhs*interval/delta}}}}return{min:min!=null?new Date(min):null,max:max!=null?new Date(max):null}};Timeline.prototype.getDataRange=function(){var min=null;var max=null;var dataset=this.itemsData&&this.itemsData.getDataSet();if(dataset){dataset.forEach(function(item){var start=util.convert(item.start,\"Date\").valueOf();var end=util.convert(item.end!=undefined?item.end:item.start,\"Date\").valueOf();if(min===null||start<min){min=start}if(max===null||end>max){max=end}})}return{min:min!=null?new Date(min):null,max:max!=null?new Date(max):null}};Timeline.prototype.getEventProperties=function(event){var clientX=event.center?event.center.x:event.clientX;var clientY=event.center?event.center.y:event.clientY;var x;if(this.options.rtl){x=util.getAbsoluteRight(this.dom.centerContainer)-clientX}else{x=clientX-util.getAbsoluteLeft(this.dom.centerContainer)}var y=clientY-util.getAbsoluteTop(this.dom.centerContainer);var item=this.itemSet.itemFromTarget(event);var group=this.itemSet.groupFromTarget(event);var customTime=CustomTime.customTimeFromTarget(event);var snap=this.itemSet.options.snap||null;var scale=this.body.util.getScale();var step=this.body.util.getStep();var time=this._toTime(x);var snappedTime=snap?snap(time,scale,step):time;var element=util.getTarget(event);var what=null;if(item!=null){what=\"item\"}else if(customTime!=null){what=\"custom-time\"}else if(util.hasParent(element,this.timeAxis.dom.foreground)){what=\"axis\"}else if(this.timeAxis2&&util.hasParent(element,this.timeAxis2.dom.foreground)){what=\"axis\"}else if(util.hasParent(element,this.itemSet.dom.labelSet)){what=\"group-label\"}else if(util.hasParent(element,this.currentTime.bar)){what=\"current-time\"}else if(util.hasParent(element,this.dom.center)){what=\"background\"}return{event:event,item:item?item.id:null,group:group?group.groupId:null,what:what,pageX:event.srcEvent?event.srcEvent.pageX:event.pageX,pageY:event.srcEvent?event.srcEvent.pageY:event.pageY,x:x,y:y,time:time,snappedTime:snappedTime}};Timeline.prototype.toggleRollingMode=function(){if(this.range.rolling){this.range.stopRolling()}else{if(this.options.rollingMode==undefined){this.setOptions(this.options)}this.range.startRolling()}};module.exports=Timeline},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hammer=__webpack_require__(10);var hammerUtil=__webpack_require__(37);var util=__webpack_require__(2);var ColorPicker=function(){function ColorPicker(){var pixelRatio=arguments.length>0&&arguments[0]!==undefined?arguments[0]:1;(0,_classCallCheck3[\"default\"])(this,ColorPicker);this.pixelRatio=pixelRatio;this.generated=false;this.centerCoordinates={x:289/2,y:289/2};this.r=289*.49;this.color={r:255,g:255,b:255,a:1};this.hueCircle=undefined;this.initialColor={r:255,g:255,b:255,a:1};this.previousColor=undefined;this.applied=false;this.updateCallback=function(){};this.closeCallback=function(){};this._create()}(0,_createClass3[\"default\"])(ColorPicker,[{key:\"insertTo\",value:function insertTo(container){if(this.hammer!==undefined){this.hammer.destroy();this.hammer=undefined}this.container=container;this.container.appendChild(this.frame);this._bindHammer();this._setSize()}},{key:\"setUpdateCallback\",value:function setUpdateCallback(callback){if(typeof callback===\"function\"){this.updateCallback=callback}else{throw new Error(\"Function attempted to set as colorPicker update callback is not a function.\")}}},{key:\"setCloseCallback\",value:function setCloseCallback(callback){if(typeof callback===\"function\"){this.closeCallback=callback}else{throw new Error(\"Function attempted to set as colorPicker closing callback is not a function.\")}}},{key:\"_isColorString\",value:function _isColorString(color){var htmlColors={black:\"#000000\",navy:\"#000080\",darkblue:\"#00008B\",mediumblue:\"#0000CD\",blue:\"#0000FF\",darkgreen:\"#006400\",green:\"#008000\",teal:\"#008080\",darkcyan:\"#008B8B\",deepskyblue:\"#00BFFF\",darkturquoise:\"#00CED1\",mediumspringgreen:\"#00FA9A\",lime:\"#00FF00\",springgreen:\"#00FF7F\",aqua:\"#00FFFF\",cyan:\"#00FFFF\",midnightblue:\"#191970\",dodgerblue:\"#1E90FF\",lightseagreen:\"#20B2AA\",forestgreen:\"#228B22\",seagreen:\"#2E8B57\",darkslategray:\"#2F4F4F\",limegreen:\"#32CD32\",mediumseagreen:\"#3CB371\",turquoise:\"#40E0D0\",royalblue:\"#4169E1\",steelblue:\"#4682B4\",darkslateblue:\"#483D8B\",mediumturquoise:\"#48D1CC\",indigo:\"#4B0082\",darkolivegreen:\"#556B2F\",cadetblue:\"#5F9EA0\",cornflowerblue:\"#6495ED\",mediumaquamarine:\"#66CDAA\",dimgray:\"#696969\",slateblue:\"#6A5ACD\",olivedrab:\"#6B8E23\",slategray:\"#708090\",lightslategray:\"#778899\",mediumslateblue:\"#7B68EE\",lawngreen:\"#7CFC00\",chartreuse:\"#7FFF00\",aquamarine:\"#7FFFD4\",maroon:\"#800000\",purple:\"#800080\",olive:\"#808000\",gray:\"#808080\",skyblue:\"#87CEEB\",lightskyblue:\"#87CEFA\",blueviolet:\"#8A2BE2\",darkred:\"#8B0000\",darkmagenta:\"#8B008B\",saddlebrown:\"#8B4513\",darkseagreen:\"#8FBC8F\",lightgreen:\"#90EE90\",mediumpurple:\"#9370D8\",darkviolet:\"#9400D3\",palegreen:\"#98FB98\",darkorchid:\"#9932CC\",yellowgreen:\"#9ACD32\",sienna:\"#A0522D\",brown:\"#A52A2A\",darkgray:\"#A9A9A9\",lightblue:\"#ADD8E6\",greenyellow:\"#ADFF2F\",paleturquoise:\"#AFEEEE\",lightsteelblue:\"#B0C4DE\",powderblue:\"#B0E0E6\",firebrick:\"#B22222\",darkgoldenrod:\"#B8860B\",mediumorchid:\"#BA55D3\",rosybrown:\"#BC8F8F\",darkkhaki:\"#BDB76B\",silver:\"#C0C0C0\",mediumvioletred:\"#C71585\",indianred:\"#CD5C5C\",peru:\"#CD853F\",chocolate:\"#D2691E\",tan:\"#D2B48C\",lightgrey:\"#D3D3D3\",palevioletred:\"#D87093\",thistle:\"#D8BFD8\",orchid:\"#DA70D6\",goldenrod:\"#DAA520\",crimson:\"#DC143C\",gainsboro:\"#DCDCDC\",plum:\"#DDA0DD\",burlywood:\"#DEB887\",lightcyan:\"#E0FFFF\",lavender:\"#E6E6FA\",darksalmon:\"#E9967A\",violet:\"#EE82EE\",palegoldenrod:\"#EEE8AA\",lightcoral:\"#F08080\",khaki:\"#F0E68C\",aliceblue:\"#F0F8FF\",honeydew:\"#F0FFF0\",azure:\"#F0FFFF\",sandybrown:\"#F4A460\",wheat:\"#F5DEB3\",beige:\"#F5F5DC\",whitesmoke:\"#F5F5F5\",mintcream:\"#F5FFFA\",ghostwhite:\"#F8F8FF\",salmon:\"#FA8072\",antiquewhite:\"#FAEBD7\",linen:\"#FAF0E6\",lightgoldenrodyellow:\"#FAFAD2\",oldlace:\"#FDF5E6\",red:\"#FF0000\",fuchsia:\"#FF00FF\",magenta:\"#FF00FF\",deeppink:\"#FF1493\",orangered:\"#FF4500\",tomato:\"#FF6347\",hotpink:\"#FF69B4\",coral:\"#FF7F50\",darkorange:\"#FF8C00\",lightsalmon:\"#FFA07A\",orange:\"#FFA500\",lightpink:\"#FFB6C1\",pink:\"#FFC0CB\",gold:\"#FFD700\",peachpuff:\"#FFDAB9\",navajowhite:\"#FFDEAD\",moccasin:\"#FFE4B5\",bisque:\"#FFE4C4\",mistyrose:\"#FFE4E1\",blanchedalmond:\"#FFEBCD\",papayawhip:\"#FFEFD5\",lavenderblush:\"#FFF0F5\",seashell:\"#FFF5EE\",cornsilk:\"#FFF8DC\",lemonchiffon:\"#FFFACD\",floralwhite:\"#FFFAF0\",snow:\"#FFFAFA\",yellow:\"#FFFF00\",lightyellow:\"#FFFFE0\",ivory:\"#FFFFF0\",white:\"#FFFFFF\"};if(typeof color===\"string\"){return htmlColors[color]}}},{key:\"setColor\",value:function setColor(color){var setInitial=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(color===\"none\"){return}var rgba=void 0;var htmlColor=this._isColorString(color);if(htmlColor!==undefined){color=htmlColor}if(util.isString(color)===true){if(util.isValidRGB(color)===true){var rgbaArray=color.substr(4).substr(0,color.length-5).split(\",\");rgba={r:rgbaArray[0],g:rgbaArray[1],b:rgbaArray[2],a:1}}else if(util.isValidRGBA(color)===true){var _rgbaArray=color.substr(5).substr(0,color.length-6).split(\",\");rgba={r:_rgbaArray[0],g:_rgbaArray[1],b:_rgbaArray[2],a:_rgbaArray[3]}}else if(util.isValidHex(color)===true){var rgbObj=util.hexToRGB(color);rgba={r:rgbObj.r,g:rgbObj.g,b:rgbObj.b,a:1}}}else{if(color instanceof Object){if(color.r!==undefined&&color.g!==undefined&&color.b!==undefined){var alpha=color.a!==undefined?color.a:\"1.0\";rgba={r:color.r,g:color.g,b:color.b,a:alpha}}}}if(rgba===undefined){throw new Error(\"Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: \"+(0,_stringify2[\"default\"])(color))}else{this._setColor(rgba,setInitial)}}},{key:\"show\",value:function show(){if(this.closeCallback!==undefined){this.closeCallback();this.closeCallback=undefined}this.applied=false;this.frame.style.display=\"block\";this._generateHueCircle()}},{key:\"_hide\",value:function _hide(){var _this=this;var storePrevious=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;if(storePrevious===true){this.previousColor=util.extend({},this.color)}if(this.applied===true){this.updateCallback(this.initialColor)}this.frame.style.display=\"none\";setTimeout(function(){if(_this.closeCallback!==undefined){_this.closeCallback();_this.closeCallback=undefined}},0)}},{key:\"_save\",value:function _save(){this.updateCallback(this.color);this.applied=false;this._hide()}},{key:\"_apply\",value:function _apply(){this.applied=true;this.updateCallback(this.color);this._updatePicker(this.color)}},{key:\"_loadLast\",value:function _loadLast(){if(this.previousColor!==undefined){this.setColor(this.previousColor,false)}else{alert(\"There is no last color to load...\")}}},{key:\"_setColor\",value:function _setColor(rgba){var setInitial=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(setInitial===true){this.initialColor=util.extend({},rgba)}this.color=rgba;var hsv=util.RGBToHSV(rgba.r,rgba.g,rgba.b);var angleConvert=2*Math.PI;var radius=this.r*hsv.s;var x=this.centerCoordinates.x+radius*Math.sin(angleConvert*hsv.h);var y=this.centerCoordinates.y+radius*Math.cos(angleConvert*hsv.h);this.colorPickerSelector.style.left=x-.5*this.colorPickerSelector.clientWidth+\"px\";this.colorPickerSelector.style.top=y-.5*this.colorPickerSelector.clientHeight+\"px\";this._updatePicker(rgba)}},{key:\"_setOpacity\",value:function _setOpacity(value){this.color.a=value/100;this._updatePicker(this.color)}},{key:\"_setBrightness\",value:function _setBrightness(value){var hsv=util.RGBToHSV(this.color.r,this.color.g,this.color.b);hsv.v=value/100;var rgba=util.HSVToRGB(hsv.h,hsv.s,hsv.v);rgba[\"a\"]=this.color.a;this.color=rgba;this._updatePicker()}},{key:\"_updatePicker\",value:function _updatePicker(){var rgba=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.color;var hsv=util.RGBToHSV(rgba.r,rgba.g,rgba.b);var ctx=this.colorPickerCanvas.getContext(\"2d\");if(this.pixelRation===undefined){this.pixelRatio=(window.devicePixelRatio||1)/(ctx.webkitBackingStorePixelRatio||ctx.mozBackingStorePixelRatio||ctx.msBackingStorePixelRatio||ctx.oBackingStorePixelRatio||ctx.backingStorePixelRatio||1)}ctx.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var w=this.colorPickerCanvas.clientWidth;var h=this.colorPickerCanvas.clientHeight;ctx.clearRect(0,0,w,h);ctx.putImageData(this.hueCircle,0,0);ctx.fillStyle=\"rgba(0,0,0,\"+(1-hsv.v)+\")\";ctx.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r);ctx.fill();this.brightnessRange.value=100*hsv.v;this.opacityRange.value=100*rgba.a;this.initialColorDiv.style.backgroundColor=\"rgba(\"+this.initialColor.r+\",\"+this.initialColor.g+\",\"+this.initialColor.b+\",\"+this.initialColor.a+\")\";this.newColorDiv.style.backgroundColor=\"rgba(\"+this.color.r+\",\"+this.color.g+\",\"+this.color.b+\",\"+this.color.a+\")\"}},{key:\"_setSize\",value:function _setSize(){this.colorPickerCanvas.style.width=\"100%\";this.colorPickerCanvas.style.height=\"100%\";this.colorPickerCanvas.width=289*this.pixelRatio;this.colorPickerCanvas.height=289*this.pixelRatio}},{key:\"_create\",value:function _create(){this.frame=document.createElement(\"div\");this.frame.className=\"vis-color-picker\";this.colorPickerDiv=document.createElement(\"div\");this.colorPickerSelector=document.createElement(\"div\");this.colorPickerSelector.className=\"vis-selector\";this.colorPickerDiv.appendChild(this.colorPickerSelector);this.colorPickerCanvas=document.createElement(\"canvas\");this.colorPickerDiv.appendChild(this.colorPickerCanvas);if(!this.colorPickerCanvas.getContext){var noCanvas=document.createElement(\"DIV\");noCanvas.style.color=\"red\";noCanvas.style.fontWeight=\"bold\";noCanvas.style.padding=\"10px\";noCanvas.innerHTML=\"Error: your browser does not support HTML canvas\";this.colorPickerCanvas.appendChild(noCanvas)}else{var ctx=this.colorPickerCanvas.getContext(\"2d\");this.pixelRatio=(window.devicePixelRatio||1)/(ctx.webkitBackingStorePixelRatio||ctx.mozBackingStorePixelRatio||ctx.msBackingStorePixelRatio||ctx.oBackingStorePixelRatio||ctx.backingStorePixelRatio||1);this.colorPickerCanvas.getContext(\"2d\").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}this.colorPickerDiv.className=\"vis-color\";this.opacityDiv=document.createElement(\"div\");this.opacityDiv.className=\"vis-opacity\";this.brightnessDiv=document.createElement(\"div\");this.brightnessDiv.className=\"vis-brightness\";this.arrowDiv=document.createElement(\"div\");this.arrowDiv.className=\"vis-arrow\";this.opacityRange=document.createElement(\"input\");try{this.opacityRange.type=\"range\";this.opacityRange.min=\"0\";this.opacityRange.max=\"100\"}catch(err){}this.opacityRange.value=\"100\";this.opacityRange.className=\"vis-range\";this.brightnessRange=document.createElement(\"input\");try{this.brightnessRange.type=\"range\";this.brightnessRange.min=\"0\";this.brightnessRange.max=\"100\"}catch(err){}this.brightnessRange.value=\"100\";this.brightnessRange.className=\"vis-range\";this.opacityDiv.appendChild(this.opacityRange);this.brightnessDiv.appendChild(this.brightnessRange);var me=this;this.opacityRange.onchange=function(){me._setOpacity(this.value)};this.opacityRange.oninput=function(){me._setOpacity(this.value)};this.brightnessRange.onchange=function(){me._setBrightness(this.value)};this.brightnessRange.oninput=function(){me._setBrightness(this.value)};this.brightnessLabel=document.createElement(\"div\");this.brightnessLabel.className=\"vis-label vis-brightness\";this.brightnessLabel.innerHTML=\"brightness:\";this.opacityLabel=document.createElement(\"div\");this.opacityLabel.className=\"vis-label vis-opacity\";this.opacityLabel.innerHTML=\"opacity:\";this.newColorDiv=document.createElement(\"div\");this.newColorDiv.className=\"vis-new-color\";this.newColorDiv.innerHTML=\"new\";this.initialColorDiv=document.createElement(\"div\");this.initialColorDiv.className=\"vis-initial-color\";this.initialColorDiv.innerHTML=\"initial\";this.cancelButton=document.createElement(\"div\");this.cancelButton.className=\"vis-button vis-cancel\";this.cancelButton.innerHTML=\"cancel\";this.cancelButton.onclick=this._hide.bind(this,false);this.applyButton=document.createElement(\"div\");this.applyButton.className=\"vis-button vis-apply\";this.applyButton.innerHTML=\"apply\";this.applyButton.onclick=this._apply.bind(this);this.saveButton=document.createElement(\"div\");this.saveButton.className=\"vis-button vis-save\";this.saveButton.innerHTML=\"save\";this.saveButton.onclick=this._save.bind(this);this.loadButton=document.createElement(\"div\");this.loadButton.className=\"vis-button vis-load\";this.loadButton.innerHTML=\"load last\";this.loadButton.onclick=this._loadLast.bind(this)\n;this.frame.appendChild(this.colorPickerDiv);this.frame.appendChild(this.arrowDiv);this.frame.appendChild(this.brightnessLabel);this.frame.appendChild(this.brightnessDiv);this.frame.appendChild(this.opacityLabel);this.frame.appendChild(this.opacityDiv);this.frame.appendChild(this.newColorDiv);this.frame.appendChild(this.initialColorDiv);this.frame.appendChild(this.cancelButton);this.frame.appendChild(this.applyButton);this.frame.appendChild(this.saveButton);this.frame.appendChild(this.loadButton)}},{key:\"_bindHammer\",value:function _bindHammer(){var _this2=this;this.drag={};this.pinch={};this.hammer=new Hammer(this.colorPickerCanvas);this.hammer.get(\"pinch\").set({enable:true});hammerUtil.onTouch(this.hammer,function(event){_this2._moveSelector(event)});this.hammer.on(\"tap\",function(event){_this2._moveSelector(event)});this.hammer.on(\"panstart\",function(event){_this2._moveSelector(event)});this.hammer.on(\"panmove\",function(event){_this2._moveSelector(event)});this.hammer.on(\"panend\",function(event){_this2._moveSelector(event)})}},{key:\"_generateHueCircle\",value:function _generateHueCircle(){if(this.generated===false){var ctx=this.colorPickerCanvas.getContext(\"2d\");if(this.pixelRation===undefined){this.pixelRatio=(window.devicePixelRatio||1)/(ctx.webkitBackingStorePixelRatio||ctx.mozBackingStorePixelRatio||ctx.msBackingStorePixelRatio||ctx.oBackingStorePixelRatio||ctx.backingStorePixelRatio||1)}ctx.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var w=this.colorPickerCanvas.clientWidth;var h=this.colorPickerCanvas.clientHeight;ctx.clearRect(0,0,w,h);var x=void 0,y=void 0,hue=void 0,sat=void 0;this.centerCoordinates={x:w*.5,y:h*.5};this.r=.49*w;var angleConvert=2*Math.PI/360;var hfac=1/360;var sfac=1/this.r;var rgb=void 0;for(hue=0;hue<360;hue++){for(sat=0;sat<this.r;sat++){x=this.centerCoordinates.x+sat*Math.sin(angleConvert*hue);y=this.centerCoordinates.y+sat*Math.cos(angleConvert*hue);rgb=util.HSVToRGB(hue*hfac,sat*sfac,1);ctx.fillStyle=\"rgb(\"+rgb.r+\",\"+rgb.g+\",\"+rgb.b+\")\";ctx.fillRect(x-.5,y-.5,2,2)}}ctx.strokeStyle=\"rgba(0,0,0,1)\";ctx.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r);ctx.stroke();this.hueCircle=ctx.getImageData(0,0,w,h)}this.generated=true}},{key:\"_moveSelector\",value:function _moveSelector(event){var rect=this.colorPickerDiv.getBoundingClientRect();var left=event.center.x-rect.left;var top=event.center.y-rect.top;var centerY=.5*this.colorPickerDiv.clientHeight;var centerX=.5*this.colorPickerDiv.clientWidth;var x=left-centerX;var y=top-centerY;var angle=Math.atan2(x,y);var radius=.98*Math.min(Math.sqrt(x*x+y*y),centerX);var newTop=Math.cos(angle)*radius+centerY;var newLeft=Math.sin(angle)*radius+centerX;this.colorPickerSelector.style.top=newTop-.5*this.colorPickerSelector.clientHeight+\"px\";this.colorPickerSelector.style.left=newLeft-.5*this.colorPickerSelector.clientWidth+\"px\";var h=angle/(2*Math.PI);h=h<0?h+1:h;var s=radius/this.r;var hsv=util.RGBToHSV(this.color.r,this.color.g,this.color.b);hsv.h=h;hsv.s=s;var rgba=util.HSVToRGB(hsv.h,hsv.s,hsv.v);rgba[\"a\"]=this.color.a;this.color=rgba;this.initialColorDiv.style.backgroundColor=\"rgba(\"+this.initialColor.r+\",\"+this.initialColor.g+\",\"+this.initialColor.b+\",\"+this.initialColor.a+\")\";this.newColorDiv.style.backgroundColor=\"rgba(\"+this.color.r+\",\"+this.color.g+\",\"+this.color.b+\",\"+this.color.a+\")\"}}]);return ColorPicker}();exports[\"default\"]=ColorPicker},function(module,exports,__webpack_require__){\"use strict\";var moment=__webpack_require__(9);var util=__webpack_require__(2);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Range=__webpack_require__(64);var Core=__webpack_require__(65);var TimeAxis=__webpack_require__(45);var CurrentTime=__webpack_require__(67);var CustomTime=__webpack_require__(46);var LineGraph=__webpack_require__(106);var printStyle=__webpack_require__(15).printStyle;var allOptions=__webpack_require__(113).allOptions;var configureOptions=__webpack_require__(113).configureOptions;var Configurator=__webpack_require__(71)[\"default\"];var Validator=__webpack_require__(15)[\"default\"];function Graph2d(container,items,groups,options){if(!(Array.isArray(groups)||groups instanceof DataSet||groups instanceof DataView)&&groups instanceof Object){var forthArgument=options;options=groups;groups=forthArgument}if(options&&options.throttleRedraw){console.warn('Graph2d option \"throttleRedraw\" is DEPRICATED and no longer supported. It will be removed in the next MAJOR release.')}var me=this;this.defaultOptions={start:null,end:null,autoResize:true,orientation:{axis:\"bottom\",item:\"bottom\"},moment:moment,width:null,height:null,maxHeight:null,minHeight:null};this.options=util.deepExtend({},this.defaultOptions);this._create(container);this.components=[];this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{toScreen:me._toScreen.bind(me),toGlobalScreen:me._toGlobalScreen.bind(me),toTime:me._toTime.bind(me),toGlobalTime:me._toGlobalTime.bind(me)}};this.range=new Range(this.body);this.components.push(this.range);this.body.range=this.range;this.timeAxis=new TimeAxis(this.body);this.components.push(this.timeAxis);this.currentTime=new CurrentTime(this.body);this.components.push(this.currentTime);this.linegraph=new LineGraph(this.body);this.components.push(this.linegraph);this.itemsData=null;this.groupsData=null;this.on(\"tap\",function(event){me.emit(\"click\",me.getEventProperties(event))});this.on(\"doubletap\",function(event){me.emit(\"doubleClick\",me.getEventProperties(event))});this.dom.root.oncontextmenu=function(event){me.emit(\"contextmenu\",me.getEventProperties(event))};if(options){this.setOptions(options)}if(groups){this.setGroups(groups)}if(items){this.setItems(items)}this._redraw()}Graph2d.prototype=new Core;Graph2d.prototype.setOptions=function(options){var errorFound=Validator.validate(options,allOptions);if(errorFound===true){console.log(\"%cErrors have been found in the supplied options object.\",printStyle)}Core.prototype.setOptions.call(this,options)};Graph2d.prototype.setItems=function(items){var initialLoad=this.itemsData==null;var newDataSet;if(!items){newDataSet=null}else if(items instanceof DataSet||items instanceof DataView){newDataSet=items}else{newDataSet=new DataSet(items,{type:{start:\"Date\",end:\"Date\"}})}this.itemsData=newDataSet;this.linegraph&&this.linegraph.setItems(newDataSet);if(initialLoad){if(this.options.start!=undefined||this.options.end!=undefined){var start=this.options.start!=undefined?this.options.start:null;var end=this.options.end!=undefined?this.options.end:null;this.setWindow(start,end,{animation:false})}else{this.fit({animation:false})}}};Graph2d.prototype.setGroups=function(groups){var newDataSet;if(!groups){newDataSet=null}else if(groups instanceof DataSet||groups instanceof DataView){newDataSet=groups}else{newDataSet=new DataSet(groups)}this.groupsData=newDataSet;this.linegraph.setGroups(newDataSet)};Graph2d.prototype.getLegend=function(groupId,width,height){if(width===undefined){width=15}if(height===undefined){height=15}if(this.linegraph.groups[groupId]!==undefined){return this.linegraph.groups[groupId].getLegend(width,height)}else{return\"cannot find group:'\"+groupId+\"'\"}};Graph2d.prototype.isGroupVisible=function(groupId){if(this.linegraph.groups[groupId]!==undefined){return this.linegraph.groups[groupId].visible&&(this.linegraph.options.groups.visibility[groupId]===undefined||this.linegraph.options.groups.visibility[groupId]==true)}else{return false}};Graph2d.prototype.getDataRange=function(){var min=null;var max=null;for(var groupId in this.linegraph.groups){if(this.linegraph.groups.hasOwnProperty(groupId)){if(this.linegraph.groups[groupId].visible==true){for(var i=0;i<this.linegraph.groups[groupId].itemsData.length;i++){var item=this.linegraph.groups[groupId].itemsData[i];var value=util.convert(item.x,\"Date\").valueOf();min=min==null?value:min>value?value:min;max=max==null?value:max<value?value:max}}}}return{min:min!=null?new Date(min):null,max:max!=null?new Date(max):null}};Graph2d.prototype.getEventProperties=function(event){var clientX=event.center?event.center.x:event.clientX;var clientY=event.center?event.center.y:event.clientY;var x=clientX-util.getAbsoluteLeft(this.dom.centerContainer);var y=clientY-util.getAbsoluteTop(this.dom.centerContainer);var time=this._toTime(x);var customTime=CustomTime.customTimeFromTarget(event);var element=util.getTarget(event);var what=null;if(util.hasParent(element,this.timeAxis.dom.foreground)){what=\"axis\"}else if(this.timeAxis2&&util.hasParent(element,this.timeAxis2.dom.foreground)){what=\"axis\"}else if(util.hasParent(element,this.linegraph.yAxisLeft.dom.frame)){what=\"data-axis\"}else if(util.hasParent(element,this.linegraph.yAxisRight.dom.frame)){what=\"data-axis\"}else if(util.hasParent(element,this.linegraph.legendLeft.dom.frame)){what=\"legend\"}else if(util.hasParent(element,this.linegraph.legendRight.dom.frame)){what=\"legend\"}else if(customTime!=null){what=\"custom-time\"}else if(util.hasParent(element,this.currentTime.bar)){what=\"current-time\"}else if(util.hasParent(element,this.dom.center)){what=\"background\"}var value=[];var yAxisLeft=this.linegraph.yAxisLeft;var yAxisRight=this.linegraph.yAxisRight;if(!yAxisLeft.hidden&&this.itemsData.length>0){value.push(yAxisLeft.screenToValue(y))}if(!yAxisRight.hidden&&this.itemsData.length>0){value.push(yAxisRight.screenToValue(y))}return{event:event,what:what,pageX:event.srcEvent?event.srcEvent.pageX:event.pageX,pageY:event.srcEvent?event.srcEvent.pageY:event.pageY,x:x,y:y,time:time,value:value}};Graph2d.prototype._createConfigurator=function(){return new Configurator(this,this.dom.container,configureOptions)};module.exports=Graph2d},function(module,exports,__webpack_require__){\"use strict\";exports.util=__webpack_require__(2);exports.DOMutil=__webpack_require__(14);exports.DataSet=__webpack_require__(11);exports.DataView=__webpack_require__(12);exports.Queue=__webpack_require__(43);exports.Network=__webpack_require__(182);exports.network={Images:__webpack_require__(116),dotparser:__webpack_require__(114),gephiParser:__webpack_require__(115),allOptions:__webpack_require__(122)};exports.network.convertDot=function(input){return exports.network.dotparser.DOTToGraph(input)};exports.network.convertGephi=function(input,options){return exports.network.gephiParser.parseGephi(input,options)};exports.moment=__webpack_require__(9);exports.Hammer=__webpack_require__(10);exports.keycharm=__webpack_require__(35)},function(module,exports,__webpack_require__){\"use strict\";__webpack_require__(183);var Emitter=__webpack_require__(44);var util=__webpack_require__(2);var dotparser=__webpack_require__(114);var gephiParser=__webpack_require__(115);var Activator=__webpack_require__(97);var locales=__webpack_require__(184);var Images=__webpack_require__(116)[\"default\"];var Groups=__webpack_require__(186)[\"default\"];var NodesHandler=__webpack_require__(187)[\"default\"];var EdgesHandler=__webpack_require__(214)[\"default\"];var PhysicsEngine=__webpack_require__(220)[\"default\"];var ClusterEngine=__webpack_require__(227)[\"default\"];var CanvasRenderer=__webpack_require__(229)[\"default\"];var Canvas=__webpack_require__(230)[\"default\"];var View=__webpack_require__(231)[\"default\"];var InteractionHandler=__webpack_require__(232)[\"default\"];var SelectionHandler=__webpack_require__(234)[\"default\"];var LayoutEngine=__webpack_require__(235)[\"default\"];var ManipulationSystem=__webpack_require__(237)[\"default\"];var Configurator=__webpack_require__(71)[\"default\"];var Validator=__webpack_require__(15)[\"default\"];var _require=__webpack_require__(15),printStyle=_require.printStyle;var _require2=__webpack_require__(122),allOptions=_require2.allOptions,configureOptions=_require2.configureOptions;var KamadaKawai=__webpack_require__(238)[\"default\"];function Network(container,data,options){var _this=this;if(!(this instanceof Network)){throw new SyntaxError(\"Constructor must be called with the new operator\")}this.options={};this.defaultOptions={locale:\"en\",locales:locales,clickToUse:false};util.extend(this.options,this.defaultOptions);this.body={container:container,nodes:{},nodeIndices:[],edges:{},edgeIndices:[],emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this),once:this.once.bind(this)},eventListeners:{onTap:function onTap(){},onTouch:function onTouch(){},onDoubleTap:function onDoubleTap(){},onHold:function onHold(){},onDragStart:function onDragStart(){},onDrag:function onDrag(){},onDragEnd:function onDragEnd(){},onMouseWheel:function onMouseWheel(){},onPinch:function onPinch(){},onMouseMove:function onMouseMove(){},onRelease:function onRelease(){},onContext:function onContext(){}},data:{nodes:null,edges:null},functions:{createNode:function createNode(){},createEdge:function createEdge(){},getPointer:function getPointer(){}},modules:{},view:{scale:1,translation:{x:0,y:0}}};this.bindEventListeners();this.images=new Images(function(){return _this.body.emitter.emit(\"_requestRedraw\")});this.groups=new Groups;this.canvas=new Canvas(this.body);this.selectionHandler=new SelectionHandler(this.body,this.canvas);this.interactionHandler=new InteractionHandler(this.body,this.canvas,this.selectionHandler);this.view=new View(this.body,this.canvas);this.renderer=new CanvasRenderer(this.body,this.canvas);this.physics=new PhysicsEngine(this.body);this.layoutEngine=new LayoutEngine(this.body);this.clustering=new ClusterEngine(this.body);this.manipulation=new ManipulationSystem(this.body,this.canvas,this.selectionHandler);this.nodesHandler=new NodesHandler(this.body,this.images,this.groups,this.layoutEngine);this.edgesHandler=new EdgesHandler(this.body,this.images,this.groups);this.body.modules[\"kamadaKawai\"]=new KamadaKawai(this.body,150,.05);this.body.modules[\"clustering\"]=this.clustering;this.canvas._create();this.setOptions(options);this.setData(data)}Emitter(Network.prototype);Network.prototype.setOptions=function(options){var _this2=this;if(options!==undefined){var errorFound=Validator.validate(options,allOptions);if(errorFound===true){console.log(\"%cErrors have been found in the supplied options object.\",printStyle)}var fields=[\"locale\",\"locales\",\"clickToUse\"];util.selectiveDeepExtend(fields,this.options,options);options=this.layoutEngine.setOptions(options.layout,options);this.canvas.setOptions(options);this.groups.setOptions(options.groups);this.nodesHandler.setOptions(options.nodes);this.edgesHandler.setOptions(options.edges);this.physics.setOptions(options.physics);this.manipulation.setOptions(options.manipulation,options,this.options);this.interactionHandler.setOptions(options.interaction);this.renderer.setOptions(options.interaction);this.selectionHandler.setOptions(options.interaction);if(options.groups!==undefined){this.body.emitter.emit(\"refreshNodes\")}if(\"configure\"in options){if(!this.configurator){this.configurator=new Configurator(this,this.body.container,configureOptions,this.canvas.pixelRatio)}this.configurator.setOptions(options.configure)}if(this.configurator&&this.configurator.options.enabled===true){var networkOptions={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};util.deepExtend(networkOptions.nodes,this.nodesHandler.options);util.deepExtend(networkOptions.edges,this.edgesHandler.options);util.deepExtend(networkOptions.layout,this.layoutEngine.options);util.deepExtend(networkOptions.interaction,this.selectionHandler.options);util.deepExtend(networkOptions.interaction,this.renderer.options);util.deepExtend(networkOptions.interaction,this.interactionHandler.options);util.deepExtend(networkOptions.manipulation,this.manipulation.options);util.deepExtend(networkOptions.physics,this.physics.options);util.deepExtend(networkOptions.global,this.canvas.options);util.deepExtend(networkOptions.global,this.options);this.configurator.setModuleOptions(networkOptions)}if(options.clickToUse!==undefined){if(options.clickToUse===true){if(this.activator===undefined){this.activator=new Activator(this.canvas.frame);this.activator.on(\"change\",function(){_this2.body.emitter.emit(\"activate\")})}}else{if(this.activator!==undefined){this.activator.destroy();delete this.activator}this.body.emitter.emit(\"activate\")}}else{this.body.emitter.emit(\"activate\")}this.canvas.setSize();this.body.emitter.emit(\"startSimulation\")}};Network.prototype._updateVisibleIndices=function(){var nodes=this.body.nodes;var edges=this.body.edges;this.body.nodeIndices=[];this.body.edgeIndices=[];for(var nodeId in nodes){if(nodes.hasOwnProperty(nodeId)){if(!this.clustering._isClusteredNode(nodeId)&&nodes[nodeId].options.hidden===false){this.body.nodeIndices.push(nodes[nodeId].id)}}}for(var edgeId in edges){if(edges.hasOwnProperty(edgeId)){var edge=edges[edgeId];var fromNode=nodes[edge.fromId];var toNode=nodes[edge.toId];var edgeNodesPresent=fromNode!==undefined&&toNode!==undefined;var isVisible=!this.clustering._isClusteredEdge(edgeId)&&edge.options.hidden===false&&edgeNodesPresent&&fromNode.options.hidden===false&&toNode.options.hidden===false;if(isVisible){this.body.edgeIndices.push(edge.id)}}}};Network.prototype.bindEventListeners=function(){var _this3=this;this.body.emitter.on(\"_dataChanged\",function(){_this3.edgesHandler._updateState();_this3.body.emitter.emit(\"_dataUpdated\")});this.body.emitter.on(\"_dataUpdated\",function(){_this3.clustering._updateState();_this3._updateVisibleIndices();_this3._updateValueRange(_this3.body.nodes);_this3._updateValueRange(_this3.body.edges);_this3.body.emitter.emit(\"startSimulation\");_this3.body.emitter.emit(\"_requestRedraw\")})};Network.prototype.setData=function(data){this.body.emitter.emit(\"resetPhysics\");this.body.emitter.emit(\"_resetData\");this.selectionHandler.unselectAll();if(data&&data.dot&&(data.nodes||data.edges)){throw new SyntaxError('Data must contain either parameter \"dot\" or '+' parameter pair \"nodes\" and \"edges\", but not both.')}this.setOptions(data&&data.options);if(data&&data.dot){console.log(\"The dot property has been deprecated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);\");var dotData=dotparser.DOTToGraph(data.dot);this.setData(dotData);return}else if(data&&data.gephi){console.log(\"The gephi property has been deprecated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);\");var gephiData=gephiParser.parseGephi(data.gephi);this.setData(gephiData);return}else{this.nodesHandler.setData(data&&data.nodes,true);this.edgesHandler.setData(data&&data.edges,true)}this.body.emitter.emit(\"_dataChanged\");this.body.emitter.emit(\"_dataLoaded\");this.body.emitter.emit(\"initPhysics\")};Network.prototype.destroy=function(){this.body.emitter.emit(\"destroy\");this.body.emitter.off();this.off();delete this.groups;delete this.canvas;delete this.selectionHandler;delete this.interactionHandler;delete this.view;delete this.renderer;delete this.physics;delete this.layoutEngine;delete this.clustering;delete this.manipulation;delete this.nodesHandler;delete this.edgesHandler;delete this.configurator;delete this.images;for(var nodeId in this.body.nodes){if(!this.body.nodes.hasOwnProperty(nodeId))continue;delete this.body.nodes[nodeId]}for(var edgeId in this.body.edges){if(!this.body.edges.hasOwnProperty(edgeId))continue;delete this.body.edges[edgeId]}util.recursiveDOMDelete(this.body.container)};Network.prototype._updateValueRange=function(obj){var id;var valueMin=undefined;var valueMax=undefined;var valueTotal=0;for(id in obj){if(obj.hasOwnProperty(id)){var value=obj[id].getValue();if(value!==undefined){valueMin=valueMin===undefined?value:Math.min(value,valueMin);valueMax=valueMax===undefined?value:Math.max(value,valueMax);valueTotal+=value}}}if(valueMin!==undefined&&valueMax!==undefined){for(id in obj){if(obj.hasOwnProperty(id)){obj[id].setValueRange(valueMin,valueMax,valueTotal)}}}};Network.prototype.isActive=function(){return!this.activator||this.activator.active};Network.prototype.setSize=function(){return this.canvas.setSize.apply(this.canvas,arguments)};Network.prototype.canvasToDOM=function(){return this.canvas.canvasToDOM.apply(this.canvas,arguments)};Network.prototype.DOMtoCanvas=function(){return this.canvas.DOMtoCanvas.apply(this.canvas,arguments)};Network.prototype.findNode=function(){return this.clustering.findNode.apply(this.clustering,arguments)};Network.prototype.isCluster=function(){return this.clustering.isCluster.apply(this.clustering,arguments)};Network.prototype.openCluster=function(){return this.clustering.openCluster.apply(this.clustering,arguments)};Network.prototype.cluster=function(){return this.clustering.cluster.apply(this.clustering,arguments)};Network.prototype.getNodesInCluster=function(){return this.clustering.getNodesInCluster.apply(this.clustering,arguments)};Network.prototype.clusterByConnection=function(){return this.clustering.clusterByConnection.apply(this.clustering,arguments)};Network.prototype.clusterByHubsize=function(){return this.clustering.clusterByHubsize.apply(this.clustering,arguments)};Network.prototype.clusterOutliers=function(){return this.clustering.clusterOutliers.apply(this.clustering,arguments)};Network.prototype.getSeed=function(){return this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)};Network.prototype.enableEditMode=function(){return this.manipulation.enableEditMode.apply(this.manipulation,arguments)};Network.prototype.disableEditMode=function(){return this.manipulation.disableEditMode.apply(this.manipulation,arguments)};Network.prototype.addNodeMode=function(){return this.manipulation.addNodeMode.apply(this.manipulation,arguments)};Network.prototype.editNode=function(){return this.manipulation.editNode.apply(this.manipulation,arguments)};Network.prototype.editNodeMode=function(){console.log(\"Deprecated: Please use editNode instead of editNodeMode.\");return this.manipulation.editNode.apply(this.manipulation,arguments)};Network.prototype.addEdgeMode=function(){return this.manipulation.addEdgeMode.apply(this.manipulation,arguments)};Network.prototype.editEdgeMode=function(){return this.manipulation.editEdgeMode.apply(this.manipulation,arguments)};Network.prototype.deleteSelected=function(){return this.manipulation.deleteSelected.apply(this.manipulation,arguments)};Network.prototype.getPositions=function(){return this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)};Network.prototype.storePositions=function(){return this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)};Network.prototype.moveNode=function(){return this.nodesHandler.moveNode.apply(this.nodesHandler,arguments)};Network.prototype.getBoundingBox=function(){return this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)};Network.prototype.getConnectedNodes=function(objectId){if(this.body.nodes[objectId]!==undefined){return this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments)}else{return this.edgesHandler.getConnectedNodes.apply(this.edgesHandler,arguments)}};Network.prototype.getConnectedEdges=function(){return this.nodesHandler.getConnectedEdges.apply(this.nodesHandler,arguments)};Network.prototype.startSimulation=function(){return this.physics.startSimulation.apply(this.physics,arguments)};Network.prototype.stopSimulation=function(){return this.physics.stopSimulation.apply(this.physics,arguments)};Network.prototype.stabilize=function(){return this.physics.stabilize.apply(this.physics,arguments)};Network.prototype.getSelection=function(){return this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)};Network.prototype.setSelection=function(){return this.selectionHandler.setSelection.apply(this.selectionHandler,arguments)};Network.prototype.getSelectedNodes=function(){return this.selectionHandler.getSelectedNodes.apply(this.selectionHandler,arguments)};Network.prototype.getSelectedEdges=function(){return this.selectionHandler.getSelectedEdges.apply(this.selectionHandler,arguments)};Network.prototype.getNodeAt=function(){var node=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);if(node!==undefined&&node.id!==undefined){return node.id}return node};Network.prototype.getEdgeAt=function(){var edge=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);if(edge!==undefined&&edge.id!==undefined){return edge.id}return edge};Network.prototype.selectNodes=function(){return this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)};Network.prototype.selectEdges=function(){return this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)};Network.prototype.unselectAll=function(){this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments);this.redraw()};Network.prototype.redraw=function(){return this.renderer.redraw.apply(this.renderer,arguments)};Network.prototype.getScale=function(){return this.view.getScale.apply(this.view,arguments)};Network.prototype.getViewPosition=function(){return this.view.getViewPosition.apply(this.view,arguments)};Network.prototype.fit=function(){return this.view.fit.apply(this.view,arguments)};Network.prototype.moveTo=function(){return this.view.moveTo.apply(this.view,arguments)};Network.prototype.focus=function(){return this.view.focus.apply(this.view,arguments)};Network.prototype.releaseNode=function(){return this.view.releaseNode.apply(this.view,arguments)};Network.prototype.getOptionsFromConfigurator=function(){var options={};if(this.configurator){options=this.configurator.getOptions.apply(this.configurator)}return options};module.exports=Network},function(module,exports,__webpack_require__){\"use strict\";if(typeof CanvasRenderingContext2D!==\"undefined\"){CanvasRenderingContext2D.prototype.circle=function(x,y,r){this.beginPath();this.arc(x,y,r,0,2*Math.PI,false);this.closePath()};CanvasRenderingContext2D.prototype.square=function(x,y,r){this.beginPath();this.rect(x-r,y-r,r*2,r*2);this.closePath()};CanvasRenderingContext2D.prototype.triangle=function(x,y,r){this.beginPath();r*=1.15;y+=.275*r;var s=r*2;var s2=s/2;var ir=Math.sqrt(3)/6*s;var h=Math.sqrt(s*s-s2*s2);this.moveTo(x,y-(h-ir));this.lineTo(x+s2,y+ir);this.lineTo(x-s2,y+ir);this.lineTo(x,y-(h-ir));this.closePath()};CanvasRenderingContext2D.prototype.triangleDown=function(x,y,r){this.beginPath();r*=1.15;y-=.275*r;var s=r*2;var s2=s/2;var ir=Math.sqrt(3)/6*s;var h=Math.sqrt(s*s-s2*s2);this.moveTo(x,y+(h-ir));this.lineTo(x+s2,y-ir);this.lineTo(x-s2,y-ir);this.lineTo(x,y+(h-ir));this.closePath()};CanvasRenderingContext2D.prototype.star=function(x,y,r){this.beginPath();r*=.82;y+=.1*r;for(var n=0;n<10;n++){var radius=n%2===0?r*1.3:r*.5;this.lineTo(x+radius*Math.sin(n*2*Math.PI/10),y-radius*Math.cos(n*2*Math.PI/10))}this.closePath()};CanvasRenderingContext2D.prototype.diamond=function(x,y,r){this.beginPath();this.lineTo(x,y+r);this.lineTo(x+r,y);this.lineTo(x,y-r);this.lineTo(x-r,y);this.closePath()};CanvasRenderingContext2D.prototype.roundRect=function(x,y,w,h,r){var r2d=Math.PI/180;if(w-2*r<0){r=w/2}if(h-2*r<0){r=h/2}this.beginPath();this.moveTo(x+r,y);this.lineTo(x+w-r,y);this.arc(x+w-r,y+r,r,r2d*270,r2d*360,false);this.lineTo(x+w,y+h-r);this.arc(x+w-r,y+h-r,r,0,r2d*90,false);this.lineTo(x+r,y+h);this.arc(x+r,y+h-r,r,r2d*90,r2d*180,false);this.lineTo(x,y+r);this.arc(x+r,y+r,r,r2d*180,r2d*270,false);this.closePath()};CanvasRenderingContext2D.prototype.ellipse_vis=function(x,y,w,h){var kappa=.5522848,ox=w/2*kappa,oy=h/2*kappa,xe=x+w,ye=y+h,xm=x+w/2,ym=y+h/2;this.beginPath();this.moveTo(x,ym);this.bezierCurveTo(x,ym-oy,xm-ox,y,xm,y);this.bezierCurveTo(xm+ox,y,xe,ym-oy,xe,ym);this.bezierCurveTo(xe,ym+oy,xm+ox,ye,xm,ye);this.bezierCurveTo(xm-ox,ye,x,ym+oy,x,ym);this.closePath()};CanvasRenderingContext2D.prototype.database=function(x,y,w,h){var f=1/3;var wEllipse=w;var hEllipse=h*f;var kappa=.5522848,ox=wEllipse/2*kappa,oy=hEllipse/2*kappa,xe=x+wEllipse,ye=y+hEllipse,xm=x+wEllipse/2,ym=y+hEllipse/2,ymb=y+(h-hEllipse/2),yeb=y+h;this.beginPath();this.moveTo(xe,ym);this.bezierCurveTo(xe,ym+oy,xm+ox,ye,xm,ye);this.bezierCurveTo(xm-ox,ye,x,ym+oy,x,ym);this.bezierCurveTo(x,ym-oy,xm-ox,y,xm,y);this.bezierCurveTo(xm+ox,y,xe,ym-oy,xe,ym);this.lineTo(xe,ymb);this.bezierCurveTo(xe,ymb+oy,xm+ox,yeb,xm,yeb);this.bezierCurveTo(xm-ox,yeb,x,ymb+oy,x,ymb);this.lineTo(x,ym)};CanvasRenderingContext2D.prototype.dashedLine=function(x,y,x2,y2,pattern){this.beginPath();this.moveTo(x,y);var patternLength=pattern.length;var dx=x2-x;var dy=y2-y;var slope=dy/dx;var distRemaining=Math.sqrt(dx*dx+dy*dy);var patternIndex=0;var draw=true;var xStep=0;var dashLength=pattern[0];while(distRemaining>=.1){dashLength=pattern[patternIndex++%patternLength];if(dashLength>distRemaining){dashLength=distRemaining}xStep=Math.sqrt(dashLength*dashLength/(1+slope*slope));xStep=dx<0?-xStep:xStep;x+=xStep;y+=slope*xStep;if(draw===true){this.lineTo(x,y)}else{this.moveTo(x,y)}distRemaining-=dashLength;draw=!draw}};CanvasRenderingContext2D.prototype.hexagon=function(x,y,r){this.beginPath();var sides=6;var a=Math.PI*2/sides;this.moveTo(x+r,y);for(var i=1;i<sides;i++){this.lineTo(x+r*Math.cos(a*i),y+r*Math.sin(a*i))}this.closePath()}}},function(module,exports,__webpack_require__){\"use strict\";exports[\"en\"]={edit:\"Edit\",del:\"Delete selected\",back:\"Back\",addNode:\"Add Node\",addEdge:\"Add Edge\",editNode:\"Edit Node\",editEdge:\"Edit Edge\",addDescription:\"Click in an empty space to place a new node.\",edgeDescription:\"Click on a node and drag the edge to another node to connect them.\",editEdgeDescription:\"Click on the control points and drag them to a node to connect to it.\",createEdgeError:\"Cannot link edges to a cluster.\",deleteClusterError:\"Clusters cannot be deleted.\",editClusterError:\"Clusters cannot be edited.\"};exports[\"en_EN\"]=exports[\"en\"];exports[\"en_US\"]=exports[\"en\"];exports[\"de\"]={edit:\"Editieren\",del:\"Lösche Auswahl\",back:\"Zurück\",addNode:\"Knoten hinzufügen\",addEdge:\"Kante hinzufügen\",editNode:\"Knoten editieren\",editEdge:\"Kante editieren\",addDescription:\"Klicke auf eine freie Stelle, um einen neuen Knoten zu plazieren.\",edgeDescription:\"Klicke auf einen Knoten und ziehe die Kante zu einem anderen Knoten, um diese zu verbinden.\",editEdgeDescription:\"Klicke auf die Verbindungspunkte und ziehe diese auf einen Knoten, um sie zu verbinden.\",createEdgeError:\"Es ist nicht möglich, Kanten mit Clustern zu verbinden.\",deleteClusterError:\"Cluster können nicht gelöscht werden.\",editClusterError:\"Cluster können nicht editiert werden.\"};exports[\"de_DE\"]=exports[\"de\"];exports[\"es\"]={edit:\"Editar\",del:\"Eliminar selección\",back:\"Átras\",addNode:\"Añadir nodo\",addEdge:\"Añadir arista\",editNode:\"Editar nodo\",editEdge:\"Editar arista\",addDescription:\"Haga clic en un lugar vacío para colocar un nuevo nodo.\",edgeDescription:\"Haga clic en un nodo y arrastre la arista hacia otro nodo para conectarlos.\",editEdgeDescription:\"Haga clic en un punto de control y arrastrelo a un nodo para conectarlo.\",createEdgeError:\"No se puede conectar una arista a un grupo.\",deleteClusterError:\"No es posible eliminar grupos.\",editClusterError:\"No es posible editar grupos.\"};exports[\"es_ES\"]=exports[\"es\"];exports[\"it\"]={edit:\"Modifica\",del:\"Cancella la selezione\",back:\"Indietro\",addNode:\"Aggiungi un nodo\",addEdge:\"Aggiungi un vertice\",editNode:\"Modifica il nodo\",editEdge:\"Modifica il vertice\",addDescription:\"Clicca per aggiungere un nuovo nodo\",edgeDescription:\"Clicca su un nodo e trascinalo ad un altro nodo per connetterli.\",editEdgeDescription:\"Clicca sui Punti di controllo e trascinali ad un nodo per connetterli.\",createEdgeError:\"Non si possono collegare vertici ad un cluster\",deleteClusterError:\"I cluster non possono essere cancellati\",editClusterError:\"I clusters non possono essere modificati.\"};exports[\"it_IT\"]=exports[\"it\"];exports[\"nl\"]={edit:\"Wijzigen\",del:\"Selectie verwijderen\",\nback:\"Terug\",addNode:\"Node toevoegen\",addEdge:\"Link toevoegen\",editNode:\"Node wijzigen\",editEdge:\"Link wijzigen\",addDescription:\"Klik op een leeg gebied om een nieuwe node te maken.\",edgeDescription:\"Klik op een node en sleep de link naar een andere node om ze te verbinden.\",editEdgeDescription:\"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.\",createEdgeError:\"Kan geen link maken naar een cluster.\",deleteClusterError:\"Clusters kunnen niet worden verwijderd.\",editClusterError:\"Clusters kunnen niet worden aangepast.\"};exports[\"nl_NL\"]=exports[\"nl\"];exports[\"nl_BE\"]=exports[\"nl\"];exports[\"pt-br\"]={edit:\"Editar\",del:\"Remover selecionado\",back:\"Voltar\",addNode:\"Adicionar nó\",addEdge:\"Adicionar aresta\",editNode:\"Editar nó\",editEdge:\"Editar aresta\",addDescription:\"Clique em um espaço em branco para adicionar um novo nó\",edgeDescription:\"Clique em um nó e arraste a aresta até outro nó para conectá-los\",editEdgeDescription:\"Clique nos pontos de controle e os arraste para um nó para conectá-los\",createEdgeError:\"Não foi possível linkar arestas a um cluster.\",deleteClusterError:\"Clusters não puderam ser removidos.\",editClusterError:\"Clusters não puderam ser editados.\"};exports[\"pt-BR\"]=exports[\"pt-br\"];exports[\"pt_BR\"]=exports[\"pt-br\"];exports[\"pt_br\"]=exports[\"pt-br\"];exports[\"ru\"]={edit:\"Редактировать\",del:\"Удалить выбранное\",back:\"Назад\",addNode:\"Добавить узел\",addEdge:\"Добавить ребро\",editNode:\"Редактировать узел\",editEdge:\"Редактировать ребро\",addDescription:\"Кликните в свободное место, чтобы добавить новый узел.\",edgeDescription:\"Кликните на узел и протяните ребро к другому узлу, чтобы соединить их.\",editEdgeDescription:\"Кликните на контрольные точки и перетащите их в узел, чтобы подключиться к нему.\",createEdgeError:\"Невозможно соединить ребра в кластер.\",deleteClusterError:\"Кластеры не могут быть удалены\",editClusterError:\"Кластеры недоступны для редактирования.\"};exports[\"ru_RU\"]=exports[\"ru\"];exports[\"cn\"]={edit:\"编辑\",del:\"删除选定\",back:\"返回\",addNode:\"添加节点\",addEdge:\"添加连接线\",editNode:\"编辑节点\",editEdge:\"编辑连接线\",addDescription:\"单击空白处放置新节点。\",edgeDescription:\"单击某个节点并将该连接线拖动到另一个节点以连接它们。\",editEdgeDescription:\"单击控制节点并将它们拖到节点上连接。\",createEdgeError:\"无法将连接线连接到群集。\",deleteClusterError:\"无法删除群集。\",editClusterError:\"无法编辑群集。\"};exports[\"zh_CN\"]=exports[\"cn\"]},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CachedImage=function(){function CachedImage(){(0,_classCallCheck3[\"default\"])(this,CachedImage);this.NUM_ITERATIONS=4;this.image=new Image;this.canvas=document.createElement(\"canvas\")}(0,_createClass3[\"default\"])(CachedImage,[{key:\"init\",value:function init(){if(this.initialized())return;this.src=this.image.src;var w=this.image.width;var h=this.image.height;this.width=w;this.height=h;var h2=Math.floor(h/2);var h4=Math.floor(h/4);var h8=Math.floor(h/8);var h16=Math.floor(h/16);var w2=Math.floor(w/2);var w4=Math.floor(w/4);var w8=Math.floor(w/8);var w16=Math.floor(w/16);this.canvas.width=3*w4;this.canvas.height=h2;this.coordinates=[[0,0,w2,h2],[w2,0,w4,h4],[w2,h4,w8,h8],[5*w8,h4,w16,h16]];this._fillMipMap()}},{key:\"initialized\",value:function initialized(){return this.coordinates!==undefined}},{key:\"_fillMipMap\",value:function _fillMipMap(){var ctx=this.canvas.getContext(\"2d\");var to=this.coordinates[0];ctx.drawImage(this.image,to[0],to[1],to[2],to[3]);for(var iterations=1;iterations<this.NUM_ITERATIONS;iterations++){var from=this.coordinates[iterations-1];var _to=this.coordinates[iterations];ctx.drawImage(this.canvas,from[0],from[1],from[2],from[3],_to[0],_to[1],_to[2],_to[3])}}},{key:\"drawImageAtPosition\",value:function drawImageAtPosition(ctx,factor,left,top,width,height){if(!this.initialized())return;if(factor>2){factor*=.5;var iterations=0;while(factor>2&&iterations<this.NUM_ITERATIONS){factor*=.5;iterations+=1}if(iterations>=this.NUM_ITERATIONS){iterations=this.NUM_ITERATIONS-1}var from=this.coordinates[iterations];ctx.drawImage(this.canvas,from[0],from[1],from[2],from[3],left,top,width,height)}else{ctx.drawImage(this.image,left,top,width,height)}}}]);return CachedImage}();exports[\"default\"]=CachedImage},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Groups=function(){function Groups(){(0,_classCallCheck3[\"default\"])(this,Groups);this.clear();this.defaultIndex=0;this.groupsArray=[];this.groupIndex=0;this.defaultGroups=[{border:\"#2B7CE9\",background:\"#97C2FC\",highlight:{border:\"#2B7CE9\",background:\"#D2E5FF\"},hover:{border:\"#2B7CE9\",background:\"#D2E5FF\"}},{border:\"#FFA500\",background:\"#FFFF00\",highlight:{border:\"#FFA500\",background:\"#FFFFA3\"},hover:{border:\"#FFA500\",background:\"#FFFFA3\"}},{border:\"#FA0A10\",background:\"#FB7E81\",highlight:{border:\"#FA0A10\",background:\"#FFAFB1\"},hover:{border:\"#FA0A10\",background:\"#FFAFB1\"}},{border:\"#41A906\",background:\"#7BE141\",highlight:{border:\"#41A906\",background:\"#A1EC76\"},hover:{border:\"#41A906\",background:\"#A1EC76\"}},{border:\"#E129F0\",background:\"#EB7DF4\",highlight:{border:\"#E129F0\",background:\"#F0B3F5\"},hover:{border:\"#E129F0\",background:\"#F0B3F5\"}},{border:\"#7C29F0\",background:\"#AD85E4\",highlight:{border:\"#7C29F0\",background:\"#D3BDF0\"},hover:{border:\"#7C29F0\",background:\"#D3BDF0\"}},{border:\"#C37F00\",background:\"#FFA807\",highlight:{border:\"#C37F00\",background:\"#FFCA66\"},hover:{border:\"#C37F00\",background:\"#FFCA66\"}},{border:\"#4220FB\",background:\"#6E6EFD\",highlight:{border:\"#4220FB\",background:\"#9B9BFD\"},hover:{border:\"#4220FB\",background:\"#9B9BFD\"}},{border:\"#FD5A77\",background:\"#FFC0CB\",highlight:{border:\"#FD5A77\",background:\"#FFD1D9\"},hover:{border:\"#FD5A77\",background:\"#FFD1D9\"}},{border:\"#4AD63A\",background:\"#C2FABC\",highlight:{border:\"#4AD63A\",background:\"#E6FFE3\"},hover:{border:\"#4AD63A\",background:\"#E6FFE3\"}},{border:\"#990000\",background:\"#EE0000\",highlight:{border:\"#BB0000\",background:\"#FF3333\"},hover:{border:\"#BB0000\",background:\"#FF3333\"}},{border:\"#FF6000\",background:\"#FF6000\",highlight:{border:\"#FF6000\",background:\"#FF6000\"},hover:{border:\"#FF6000\",background:\"#FF6000\"}},{border:\"#97C2FC\",background:\"#2B7CE9\",highlight:{border:\"#D2E5FF\",background:\"#2B7CE9\"},hover:{border:\"#D2E5FF\",background:\"#2B7CE9\"}},{border:\"#399605\",background:\"#255C03\",highlight:{border:\"#399605\",background:\"#255C03\"},hover:{border:\"#399605\",background:\"#255C03\"}},{border:\"#B70054\",background:\"#FF007E\",highlight:{border:\"#B70054\",background:\"#FF007E\"},hover:{border:\"#B70054\",background:\"#FF007E\"}},{border:\"#AD85E4\",background:\"#7C29F0\",highlight:{border:\"#D3BDF0\",background:\"#7C29F0\"},hover:{border:\"#D3BDF0\",background:\"#7C29F0\"}},{border:\"#4557FA\",background:\"#000EA1\",highlight:{border:\"#6E6EFD\",background:\"#000EA1\"},hover:{border:\"#6E6EFD\",background:\"#000EA1\"}},{border:\"#FFC0CB\",background:\"#FD5A77\",highlight:{border:\"#FFD1D9\",background:\"#FD5A77\"},hover:{border:\"#FFD1D9\",background:\"#FD5A77\"}},{border:\"#C2FABC\",background:\"#74D66A\",highlight:{border:\"#E6FFE3\",background:\"#74D66A\"},hover:{border:\"#E6FFE3\",background:\"#74D66A\"}},{border:\"#EE0000\",background:\"#990000\",highlight:{border:\"#FF3333\",background:\"#BB0000\"},hover:{border:\"#FF3333\",background:\"#BB0000\"}}];this.options={};this.defaultOptions={useDefaultGroups:true};util.extend(this.options,this.defaultOptions)}(0,_createClass3[\"default\"])(Groups,[{key:\"setOptions\",value:function setOptions(options){var optionFields=[\"useDefaultGroups\"];if(options!==undefined){for(var groupName in options){if(options.hasOwnProperty(groupName)){if(optionFields.indexOf(groupName)===-1){var group=options[groupName];this.add(groupName,group)}}}}}},{key:\"clear\",value:function clear(){this.groups={};this.groupsArray=[]}},{key:\"get\",value:function get(groupname){var shouldCreate=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var group=this.groups[groupname];if(group===undefined&&shouldCreate){if(this.options.useDefaultGroups===false&&this.groupsArray.length>0){var index=this.groupIndex%this.groupsArray.length;this.groupIndex++;group={};group.color=this.groups[this.groupsArray[index]];this.groups[groupname]=group}else{var _index=this.defaultIndex%this.defaultGroups.length;this.defaultIndex++;group={};group.color=this.defaultGroups[_index];this.groups[groupname]=group}}return group}},{key:\"add\",value:function add(groupName,style){this.groups[groupName]=style;this.groupsArray.push(groupName);return style}}]);return Groups}();exports[\"default\"]=Groups},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Node=__webpack_require__(47)[\"default\"];var NodesHandler=function(){function NodesHandler(body,images,groups,layoutEngine){var _this=this;(0,_classCallCheck3[\"default\"])(this,NodesHandler);this.body=body;this.images=images;this.groups=groups;this.layoutEngine=layoutEngine;this.body.functions.createNode=this.create.bind(this);this.nodesListeners={add:function add(event,params){_this.add(params.items)},update:function update(event,params){_this.update(params.items,params.data,params.oldData)},remove:function remove(event,params){_this.remove(params.items)}};this.defaultOptions={borderWidth:1,borderWidthSelected:2,brokenImage:undefined,color:{border:\"#2B7CE9\",background:\"#97C2FC\",highlight:{border:\"#2B7CE9\",background:\"#D2E5FF\"},hover:{border:\"#2B7CE9\",background:\"#D2E5FF\"}},fixed:{x:false,y:false},font:{color:\"#343434\",size:14,face:\"arial\",background:\"none\",strokeWidth:0,strokeColor:\"#ffffff\",align:\"center\",vadjust:0,multi:false,bold:{mod:\"bold\"},boldital:{mod:\"bold italic\"},ital:{mod:\"italic\"},mono:{mod:\"\",size:15,face:\"monospace\",vadjust:2}},group:undefined,hidden:false,icon:{face:\"FontAwesome\",code:undefined,size:50,color:\"#2B7CE9\"},image:undefined,label:undefined,labelHighlightBold:true,level:undefined,margin:{top:5,right:5,bottom:5,left:5},mass:1,physics:true,scaling:{min:10,max:30,label:{enabled:false,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function customScalingFunction(min,max,total,value){if(max===min){return.5}else{var scale=1/(max-min);return Math.max(0,(value-min)*scale)}}},shadow:{enabled:false,color:\"rgba(0,0,0,0.5)\",size:10,x:5,y:5},shape:\"ellipse\",shapeProperties:{borderDashes:false,borderRadius:6,interpolation:true,useImageSize:false,useBorderWithImage:false},size:25,title:undefined,value:undefined,x:undefined,y:undefined};if(this.defaultOptions.mass<=0){throw\"Internal error: mass in defaultOptions of NodesHandler may not be zero or negative\"}this.options=util.bridgeObject(this.defaultOptions);this.bindEventListeners()}(0,_createClass3[\"default\"])(NodesHandler,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this2=this;this.body.emitter.on(\"refreshNodes\",this.refresh.bind(this));this.body.emitter.on(\"refresh\",this.refresh.bind(this));this.body.emitter.on(\"destroy\",function(){util.forEach(_this2.nodesListeners,function(callback,event){if(_this2.body.data.nodes)_this2.body.data.nodes.off(event,callback)});delete _this2.body.functions.createNode;delete _this2.nodesListeners.add;delete _this2.nodesListeners.update;delete _this2.nodesListeners.remove;delete _this2.nodesListeners})}},{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){Node.parseOptions(this.options,options);if(options.shape!==undefined){for(var nodeId in this.body.nodes){if(this.body.nodes.hasOwnProperty(nodeId)){this.body.nodes[nodeId].updateShape()}}}if(options.font!==undefined){for(var _nodeId in this.body.nodes){if(this.body.nodes.hasOwnProperty(_nodeId)){this.body.nodes[_nodeId].updateLabelModule();this.body.nodes[_nodeId].needsRefresh()}}}if(options.size!==undefined){for(var _nodeId2 in this.body.nodes){if(this.body.nodes.hasOwnProperty(_nodeId2)){this.body.nodes[_nodeId2].needsRefresh()}}}if(options.hidden!==undefined||options.physics!==undefined){this.body.emitter.emit(\"_dataChanged\")}}}},{key:\"setData\",value:function setData(nodes){var doNotEmit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var oldNodesData=this.body.data.nodes;if(nodes instanceof DataSet||nodes instanceof DataView){this.body.data.nodes=nodes}else if(Array.isArray(nodes)){this.body.data.nodes=new DataSet;this.body.data.nodes.add(nodes)}else if(!nodes){this.body.data.nodes=new DataSet}else{throw new TypeError(\"Array or DataSet expected\")}if(oldNodesData){util.forEach(this.nodesListeners,function(callback,event){oldNodesData.off(event,callback)})}this.body.nodes={};if(this.body.data.nodes){var me=this;util.forEach(this.nodesListeners,function(callback,event){me.body.data.nodes.on(event,callback)});var ids=this.body.data.nodes.getIds();this.add(ids,true)}if(doNotEmit===false){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"add\",value:function add(ids){var doNotEmit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var id=void 0;var newNodes=[];for(var i=0;i<ids.length;i++){id=ids[i];var properties=this.body.data.nodes.get(id);var node=this.create(properties);newNodes.push(node);this.body.nodes[id]=node}this.layoutEngine.positionInitially(newNodes);if(doNotEmit===false){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"update\",value:function update(ids,changedData,oldData){var nodes=this.body.nodes;var dataChanged=false;for(var i=0;i<ids.length;i++){var id=ids[i];var node=nodes[id];var data=changedData[i];if(node!==undefined){if(node.setOptions(data)){dataChanged=true}}else{dataChanged=true;node=this.create(data);nodes[id]=node}}if(!dataChanged&&oldData!==undefined){dataChanged=changedData.some(function(newValue,index){var oldValue=oldData[index];return oldValue&&oldValue.level!==newValue.level})}if(dataChanged===true){this.body.emitter.emit(\"_dataChanged\")}else{this.body.emitter.emit(\"_dataUpdated\")}}},{key:\"remove\",value:function remove(ids){var nodes=this.body.nodes;for(var i=0;i<ids.length;i++){var id=ids[i];delete nodes[id]}this.body.emitter.emit(\"_dataChanged\")}},{key:\"create\",value:function create(properties){var constructorClass=arguments.length>1&&arguments[1]!==undefined?arguments[1]:Node;return new constructorClass(properties,this.body,this.images,this.groups,this.options,this.defaultOptions)}},{key:\"refresh\",value:function refresh(){var _this3=this;var clearPositions=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;util.forEach(this.body.nodes,function(node,nodeId){var data=_this3.body.data.nodes.get(nodeId);if(data!==undefined){if(clearPositions===true){node.setOptions({x:null,y:null})}node.setOptions({fixed:false});node.setOptions(data)}})}},{key:\"getPositions\",value:function getPositions(ids){var dataArray={};if(ids!==undefined){if(Array.isArray(ids)===true){for(var i=0;i<ids.length;i++){if(this.body.nodes[ids[i]]!==undefined){var node=this.body.nodes[ids[i]];dataArray[ids[i]]={x:Math.round(node.x),y:Math.round(node.y)}}}}else{if(this.body.nodes[ids]!==undefined){var _node=this.body.nodes[ids];dataArray[ids]={x:Math.round(_node.x),y:Math.round(_node.y)}}}}else{for(var _i=0;_i<this.body.nodeIndices.length;_i++){var _node2=this.body.nodes[this.body.nodeIndices[_i]];dataArray[this.body.nodeIndices[_i]]={x:Math.round(_node2.x),y:Math.round(_node2.y)}}}return dataArray}},{key:\"storePositions\",value:function storePositions(){var dataArray=[];var dataset=this.body.data.nodes.getDataSet();for(var nodeId in dataset._data){if(dataset._data.hasOwnProperty(nodeId)){var node=this.body.nodes[nodeId];if(dataset._data[nodeId].x!=Math.round(node.x)||dataset._data[nodeId].y!=Math.round(node.y)){dataArray.push({id:node.id,x:Math.round(node.x),y:Math.round(node.y)})}}}dataset.update(dataArray)}},{key:\"getBoundingBox\",value:function getBoundingBox(nodeId){if(this.body.nodes[nodeId]!==undefined){return this.body.nodes[nodeId].shape.boundingBox}}},{key:\"getConnectedNodes\",value:function getConnectedNodes(nodeId,direction){var nodeList=[];if(this.body.nodes[nodeId]!==undefined){var node=this.body.nodes[nodeId];var nodeObj={};for(var i=0;i<node.edges.length;i++){var edge=node.edges[i];if(direction!==\"to\"&&edge.toId==node.id){if(nodeObj[edge.fromId]===undefined){nodeList.push(edge.fromId);nodeObj[edge.fromId]=true}}else if(direction!==\"from\"&&edge.fromId==node.id){if(nodeObj[edge.toId]===undefined){nodeList.push(edge.toId);nodeObj[edge.toId]=true}}}}return nodeList}},{key:\"getConnectedEdges\",value:function getConnectedEdges(nodeId){var edgeList=[];if(this.body.nodes[nodeId]!==undefined){var node=this.body.nodes[nodeId];for(var i=0;i<node.edges.length;i++){edgeList.push(node.edges[i].id)}}else{console.log(\"NodeId provided for getConnectedEdges does not exist. Provided: \",nodeId)}return edgeList}},{key:\"moveNode\",value:function moveNode(nodeId,x,y){var _this4=this;if(this.body.nodes[nodeId]!==undefined){this.body.nodes[nodeId].x=Number(x);this.body.nodes[nodeId].y=Number(y);setTimeout(function(){_this4.body.emitter.emit(\"startSimulation\")},0)}else{console.log(\"Node id supplied to moveNode does not exist. Provided: \",nodeId)}}}]);return NodesHandler}();exports[\"default\"]=NodesHandler},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(189),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(49);__webpack_require__(60);module.exports=__webpack_require__(190)},function(module,exports,__webpack_require__){var classof=__webpack_require__(86);var ITERATOR=__webpack_require__(13)(\"iterator\");var Iterators=__webpack_require__(31);module.exports=__webpack_require__(7).isIterable=function(it){var O=Object(it);return O[ITERATOR]!==undefined||\"@@iterator\"in O||Iterators.hasOwnProperty(classof(O))}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var LabelAccumulator=__webpack_require__(192)[\"default\"];var ComponentUtil=__webpack_require__(48)[\"default\"];var LabelSplitter=function(){function LabelSplitter(ctx,parent,selected,hover){var _this=this;(0,_classCallCheck3[\"default\"])(this,LabelSplitter);this.ctx=ctx;this.parent=parent;var textWidth=function textWidth(text,mod){if(text===undefined)return 0;var values=_this.parent.getFormattingValues(ctx,selected,hover,mod);var width=0;if(text!==\"\"){var measure=_this.ctx.measureText(text);width=measure.width}return{width:width,values:values}};this.lines=new LabelAccumulator(textWidth)}(0,_createClass3[\"default\"])(LabelSplitter,[{key:\"process\",value:function process(text){if(!ComponentUtil.isValidLabel(text)){return this.lines.finalize()}var font=this.parent.fontOptions;text=text.replace(/\\r\\n/g,\"\\n\");text=text.replace(/\\r/g,\"\\n\");var nlLines=String(text).split(\"\\n\");var lineCount=nlLines.length;if(font.multi){for(var i=0;i<lineCount;i++){var blocks=this.splitBlocks(nlLines[i],font.multi);if(blocks===undefined)continue;if(blocks.length===0){this.lines.newLine(\"\");continue}if(font.maxWdt>0){for(var j=0;j<blocks.length;j++){var mod=blocks[j].mod;var _text=blocks[j].text;this.splitStringIntoLines(_text,mod,true)}}else{for(var _j=0;_j<blocks.length;_j++){var _mod=blocks[_j].mod;var _text2=blocks[_j].text;this.lines.append(_text2,_mod)}}this.lines.newLine()}}else{if(font.maxWdt>0){for(var _i=0;_i<lineCount;_i++){this.splitStringIntoLines(nlLines[_i])}}else{for(var _i2=0;_i2<lineCount;_i2++){this.lines.newLine(nlLines[_i2])}}}return this.lines.finalize()}},{key:\"decodeMarkupSystem\",value:function decodeMarkupSystem(markupSystem){var system=\"none\";if(markupSystem===\"markdown\"||markupSystem===\"md\"){system=\"markdown\"}else if(markupSystem===true||markupSystem===\"html\"){system=\"html\"}return system}},{key:\"splitHtmlBlocks\",value:function splitHtmlBlocks(text){var blocks=[];var s={bold:false,ital:false,mono:false,spacing:false,position:0,buffer:\"\",modStack:[]};s.mod=function(){return this.modStack.length===0?\"normal\":this.modStack[0]};s.modName=function(){if(this.modStack.length===0)return\"normal\";else if(this.modStack[0]===\"mono\")return\"mono\";else{if(s.bold&&s.ital){return\"boldital\"}else if(s.bold){return\"bold\"}else if(s.ital){return\"ital\"}}};s.emitBlock=function(){var override=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this.spacing){this.add(\" \");this.spacing=false}if(this.buffer.length>0){blocks.push({text:this.buffer,mod:this.modName()});this.buffer=\"\"}};s.add=function(text){if(text===\" \"){s.spacing=true}if(s.spacing){this.buffer+=\" \";this.spacing=false}if(text!=\" \"){this.buffer+=text}};while(s.position<text.length){var ch=text.charAt(s.position);if(/[ \\t]/.test(ch)){if(!s.mono){s.spacing=true}else{s.add(ch)}}else if(/</.test(ch)){if(!s.mono&&!s.bold&&/<b>/.test(text.substr(s.position,3))){s.emitBlock();s.bold=true;s.modStack.unshift(\"bold\");s.position+=2}else if(!s.mono&&!s.ital&&/<i>/.test(text.substr(s.position,3))){s.emitBlock();s.ital=true;s.modStack.unshift(\"ital\");s.position+=2}else if(!s.mono&&/<code>/.test(text.substr(s.position,6))){s.emitBlock();s.mono=true;s.modStack.unshift(\"mono\");s.position+=5}else if(!s.mono&&s.mod()===\"bold\"&&/<\\/b>/.test(text.substr(s.position,4))){s.emitBlock();s.bold=false;s.modStack.shift();s.position+=3}else if(!s.mono&&s.mod()===\"ital\"&&/<\\/i>/.test(text.substr(s.position,4))){s.emitBlock();s.ital=false;s.modStack.shift();s.position+=3}else if(s.mod()===\"mono\"&&/<\\/code>/.test(text.substr(s.position,7))){s.emitBlock();s.mono=false;s.modStack.shift();s.position+=6}else{s.add(ch)}}else if(/&/.test(ch)){if(/</.test(text.substr(s.position,4))){s.add(\"<\");s.position+=3}else if(/&/.test(text.substr(s.position,5))){s.add(\"&\");s.position+=4}else{s.add(\"&\")}}else{s.add(ch)}s.position++}s.emitBlock();return blocks}},{key:\"splitMarkdownBlocks\",value:function splitMarkdownBlocks(text){var blocks=[];var s={bold:false,ital:false,mono:false,beginable:true,spacing:false,position:0,buffer:\"\",modStack:[]};s.mod=function(){return this.modStack.length===0?\"normal\":this.modStack[0]};s.modName=function(){if(this.modStack.length===0)return\"normal\";else if(this.modStack[0]===\"mono\")return\"mono\";else{if(s.bold&&s.ital){return\"boldital\"}else if(s.bold){return\"bold\"}else if(s.ital){return\"ital\"}}};s.emitBlock=function(){var override=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this.spacing){this.add(\" \");this.spacing=false}if(this.buffer.length>0){blocks.push({text:this.buffer,mod:this.modName()});this.buffer=\"\"}};s.add=function(text){if(text===\" \"){s.spacing=true}if(s.spacing){this.buffer+=\" \";this.spacing=false}if(text!=\" \"){this.buffer+=text}};while(s.position<text.length){var ch=text.charAt(s.position);if(/[ \\t]/.test(ch)){if(!s.mono){s.spacing=true}else{s.add(ch)}s.beginable=true}else if(/\\\\/.test(ch)){if(s.position<text.length+1){s.position++;ch=text.charAt(s.position);if(/ \\t/.test(ch)){s.spacing=true}else{s.add(ch);s.beginable=false}}}else if(!s.mono&&!s.bold&&(s.beginable||s.spacing)&&/\\*/.test(ch)){s.emitBlock();s.bold=true;s.modStack.unshift(\"bold\")}else if(!s.mono&&!s.ital&&(s.beginable||s.spacing)&&/\\_/.test(ch)){s.emitBlock();s.ital=true;s.modStack.unshift(\"ital\")}else if(!s.mono&&(s.beginable||s.spacing)&&/`/.test(ch)){s.emitBlock();s.mono=true;s.modStack.unshift(\"mono\")}else if(!s.mono&&s.mod()===\"bold\"&&/\\*/.test(ch)){if(s.position===text.length-1||/[.,_` \\t\\n]/.test(text.charAt(s.position+1))){s.emitBlock();s.bold=false;s.modStack.shift()}else{s.add(ch)}}else if(!s.mono&&s.mod()===\"ital\"&&/\\_/.test(ch)){if(s.position===text.length-1||/[.,*` \\t\\n]/.test(text.charAt(s.position+1))){s.emitBlock();s.ital=false;s.modStack.shift()}else{s.add(ch)}}else if(s.mono&&s.mod()===\"mono\"&&/`/.test(ch)){if(s.position===text.length-1||/[.,*_ \\t\\n]/.test(text.charAt(s.position+1))){s.emitBlock();s.mono=false;s.modStack.shift()}else{s.add(ch)}}else{s.add(ch);s.beginable=false}s.position++}s.emitBlock();return blocks}},{key:\"splitBlocks\",value:function splitBlocks(text,markupSystem){var system=this.decodeMarkupSystem(markupSystem);if(system===\"none\"){return[{text:text,mod:\"normal\"}]}else if(system===\"markdown\"){return this.splitMarkdownBlocks(text)}else if(system===\"html\"){return this.splitHtmlBlocks(text)}}},{key:\"overMaxWidth\",value:function overMaxWidth(text){var width=this.ctx.measureText(text).width;return this.lines.curWidth()+width>this.parent.fontOptions.maxWdt}},{key:\"getLongestFit\",value:function getLongestFit(words){var text=\"\";var w=0;while(w<words.length){var pre=text===\"\"?\"\":\" \";var newText=text+pre+words[w];if(this.overMaxWidth(newText))break;text=newText;w++}return w}},{key:\"getLongestFitWord\",value:function getLongestFitWord(words){var w=0;while(w<words.length){if(this.overMaxWidth(words.slice(0,w)))break;w++}return w}},{key:\"splitStringIntoLines\",value:function splitStringIntoLines(str){var mod=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"normal\";var appendLast=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;str=str.replace(/^( +)/g,\"$1\\r\");str=str.replace(/([^\\r][^ ]*)( +)/g,\"$1\\r$2\\r\");var words=str.split(\"\\r\");while(words.length>0){var w=this.getLongestFit(words);if(w===0){var word=words[0];var x=this.getLongestFitWord(word);this.lines.newLine(word.slice(0,x),mod);words[0]=word.slice(x)}else{var newW=w;if(words[w-1]===\" \"){w--}else if(words[newW]===\" \"){newW++}var text=words.slice(0,w).join(\"\");if(w==words.length&&appendLast){this.lines.append(text,mod)}else{this.lines.newLine(text,mod)}words=words.slice(newW)}}}}]);return LabelSplitter}();exports[\"default\"]=LabelSplitter},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _assign=__webpack_require__(90);var _assign2=_interopRequireDefault(_assign);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var LabelAccumulator=function(){function LabelAccumulator(measureText){(0,_classCallCheck3[\"default\"])(this,LabelAccumulator);this.measureText=measureText;this.current=0;this.width=0;this.height=0;this.lines=[]}(0,_createClass3[\"default\"])(LabelAccumulator,[{key:\"_add\",value:function _add(l,text){var mod=arguments.length>2&&arguments[2]!==undefined?arguments[2]:\"normal\";if(this.lines[l]===undefined){this.lines[l]={width:0,height:0,blocks:[]}}var tmpText=text;if(text===undefined||text===\"\")tmpText=\" \";var result=this.measureText(tmpText,mod);var block=(0,_assign2[\"default\"])({},result.values);block.text=text;block.width=result.width;block.mod=mod;if(text===undefined||text===\"\"){block.width=0}this.lines[l].blocks.push(block);this.lines[l].width+=block.width}},{key:\"curWidth\",value:function curWidth(){var line=this.lines[this.current];if(line===undefined)return 0;return line.width}},{key:\"append\",value:function append(text){var mod=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"normal\";this._add(this.current,text,mod)}},{key:\"newLine\",value:function newLine(text){var mod=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"normal\";this._add(this.current,text,mod);this.current++}},{key:\"determineLineHeights\",value:function determineLineHeights(){for(var k=0;k<this.lines.length;k++){var line=this.lines[k];var height=0;if(line.blocks!==undefined){for(var l=0;l<line.blocks.length;l++){var block=line.blocks[l];if(height<block.height){height=block.height}}}line.height=height}}},{key:\"determineLabelSize\",value:function determineLabelSize(){var width=0;var height=0;for(var k=0;k<this.lines.length;k++){var line=this.lines[k];if(line.width>width){width=line.width}height+=line.height}this.width=width;this.height=height}},{key:\"removeEmptyBlocks\",value:function removeEmptyBlocks(){var tmpLines=[];for(var k=0;k<this.lines.length;k++){var line=this.lines[k];if(line.blocks.length===0)continue;if(k===this.lines.length-1){if(line.width===0)continue}var tmpLine={};(0,_assign2[\"default\"])(tmpLine,line);tmpLine.blocks=[];var firstEmptyBlock=void 0;var tmpBlocks=[];for(var l=0;l<line.blocks.length;l++){var block=line.blocks[l];if(block.width!==0){tmpBlocks.push(block)}else{if(firstEmptyBlock===undefined){firstEmptyBlock=block}}}if(tmpBlocks.length===0&&firstEmptyBlock!==undefined){tmpBlocks.push(firstEmptyBlock)}tmpLine.blocks=tmpBlocks;tmpLines.push(tmpLine)}return tmpLines}},{key:\"finalize\",value:function finalize(){this.determineLineHeights();this.determineLabelSize();var tmpLines=this.removeEmptyBlocks();return{width:this.width,height:this.height,lines:tmpLines}}}]);return LabelAccumulator}();exports[\"default\"]=LabelAccumulator},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Box=function(_NodeBase){(0,_inherits3[\"default\"])(Box,_NodeBase);function Box(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Box);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Box.__proto__||(0,_getPrototypeOf2[\"default\"])(Box)).call(this,options,body,labelModule));_this._setMargins(labelModule);return _this}(0,_createClass3[\"default\"])(Box,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;if(this.needsRefresh(selected,hover)){var dimensions=this.getDimensionsFromLabel(ctx,selected,hover);this.width=dimensions.width+this.margin.right+this.margin.left;this.height=dimensions.height+this.margin.top+this.margin.bottom;this.radius=this.width/2}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.left=x-this.width/2;this.top=y-this.height/2;this.initContextForDraw(ctx,values);ctx.roundRect(this.left,this.top,this.width,this.height,values.borderRadius);this.performFill(ctx,values);this.updateBoundingBox(x,y,ctx,selected,hover);this.labelModule.draw(ctx,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,selected,hover)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y,ctx,selected,hover){this._updateBoundingBox(x,y,ctx,selected,hover)\n;var borderRadius=this.options.shapeProperties.borderRadius;this._addBoundingBoxMargin(borderRadius)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){this.resize(ctx);var borderWidth=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(angle)),Math.abs(this.height/2/Math.sin(angle)))+borderWidth}}]);return Box}(_NodeBase3[\"default\"]);exports[\"default\"]=Box},function(module,exports,__webpack_require__){__webpack_require__(195);module.exports=__webpack_require__(7).Object.getPrototypeOf},function(module,exports,__webpack_require__){var toObject=__webpack_require__(41);var $getPrototypeOf=__webpack_require__(85);__webpack_require__(87)(\"getPrototypeOf\",function(){return function getPrototypeOf(it){return $getPrototypeOf(toObject(it))}})},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(197),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(198);module.exports=__webpack_require__(7).Object.setPrototypeOf},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);$export($export.S,\"Object\",{setPrototypeOf:__webpack_require__(199).set})},function(module,exports,__webpack_require__){var isObject=__webpack_require__(32);var anObject=__webpack_require__(27);var check=function(O,proto){anObject(O);if(!isObject(proto)&&proto!==null)throw TypeError(proto+\": can't set as prototype!\")};module.exports={set:Object.setPrototypeOf||(\"__proto__\"in{}?function(test,buggy,set){try{set=__webpack_require__(80)(Function.call,__webpack_require__(89).f(Object.prototype,\"__proto__\").set,2);set(test,[]);buggy=!(test instanceof Array)}catch(e){buggy=true}return function setPrototypeOf(O,proto){check(O,proto);if(buggy)O.__proto__=proto;else set(O,proto);return O}}({},false):undefined),check:check}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _CircleImageBase2=__webpack_require__(73);var _CircleImageBase3=_interopRequireDefault(_CircleImageBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Circle=function(_CircleImageBase){(0,_inherits3[\"default\"])(Circle,_CircleImageBase);function Circle(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Circle);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Circle.__proto__||(0,_getPrototypeOf2[\"default\"])(Circle)).call(this,options,body,labelModule));_this._setMargins(labelModule);return _this}(0,_createClass3[\"default\"])(Circle,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;if(this.needsRefresh(selected,hover)){var dimensions=this.getDimensionsFromLabel(ctx,selected,hover);var diameter=Math.max(dimensions.width+this.margin.right+this.margin.left,dimensions.height+this.margin.top+this.margin.bottom);this.options.size=diameter/2;this.width=diameter;this.height=diameter;this.radius=this.width/2}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.left=x-this.width/2;this.top=y-this.height/2;this._drawRawCircle(ctx,x,y,values);this.updateBoundingBox(x,y);this.labelModule.draw(ctx,this.left+this.textSize.width/2+this.margin.left,y,selected,hover)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y){this.boundingBox.top=y-this.options.size;this.boundingBox.left=x-this.options.size;this.boundingBox.right=x+this.options.size;this.boundingBox.bottom=y+this.options.size}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){this.resize(ctx);return this.width*.5}}]);return Circle}(_CircleImageBase3[\"default\"]);exports[\"default\"]=Circle},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _CircleImageBase2=__webpack_require__(73);var _CircleImageBase3=_interopRequireDefault(_CircleImageBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CircularImage=function(_CircleImageBase){(0,_inherits3[\"default\"])(CircularImage,_CircleImageBase);function CircularImage(options,body,labelModule,imageObj,imageObjAlt){(0,_classCallCheck3[\"default\"])(this,CircularImage);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(CircularImage.__proto__||(0,_getPrototypeOf2[\"default\"])(CircularImage)).call(this,options,body,labelModule));_this.setImages(imageObj,imageObjAlt);return _this}(0,_createClass3[\"default\"])(CircularImage,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;var imageAbsent=this.imageObj.src===undefined||this.imageObj.width===undefined||this.imageObj.height===undefined;if(imageAbsent){var diameter=this.options.size*2;this.width=diameter;this.height=diameter;this.radius=.5*this.width;return}if(this.needsRefresh(selected,hover)){this._resizeImage()}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.switchImages(selected);this.resize();this.left=x-this.width/2;this.top=y-this.height/2;this._drawRawCircle(ctx,x,y,values);ctx.save();ctx.clip();this._drawImageAtPosition(ctx,values);ctx.restore();this._drawImageLabel(ctx,x,y,selected,hover);this.updateBoundingBox(x,y)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y){this.boundingBox.top=y-this.options.size;this.boundingBox.left=x-this.options.size;this.boundingBox.right=x+this.options.size;this.boundingBox.bottom=y+this.options.size;this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left);this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width);this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){this.resize(ctx);return this.width*.5}}]);return CircularImage}(_CircleImageBase3[\"default\"]);exports[\"default\"]=CircularImage},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Database=function(_NodeBase){(0,_inherits3[\"default\"])(Database,_NodeBase);function Database(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Database);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Database.__proto__||(0,_getPrototypeOf2[\"default\"])(Database)).call(this,options,body,labelModule));_this._setMargins(labelModule);return _this}(0,_createClass3[\"default\"])(Database,[{key:\"resize\",value:function resize(ctx,selected,hover){if(this.needsRefresh(selected,hover)){var dimensions=this.getDimensionsFromLabel(ctx,selected,hover);var size=dimensions.width+this.margin.right+this.margin.left;this.width=size;this.height=size;this.radius=this.width/2}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.left=x-this.width/2;this.top=y-this.height/2;this.initContextForDraw(ctx,values);ctx.database(x-this.width/2,y-this.height/2,this.width,this.height);this.performFill(ctx,values);this.updateBoundingBox(x,y,ctx,selected,hover);this.labelModule.draw(ctx,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,selected,hover)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Database}(_NodeBase3[\"default\"]);exports[\"default\"]=Database},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Diamond=function(_ShapeBase){(0,_inherits3[\"default\"])(Diamond,_ShapeBase);function Diamond(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Diamond);return(0,_possibleConstructorReturn3[\"default\"])(this,(Diamond.__proto__||(0,_getPrototypeOf2[\"default\"])(Diamond)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Diamond,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"diamond\",4,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Diamond}(_ShapeBase3[\"default\"]);exports[\"default\"]=Diamond},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Dot=function(_ShapeBase){(0,_inherits3[\"default\"])(Dot,_ShapeBase);function Dot(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Dot);return(0,_possibleConstructorReturn3[\"default\"])(this,(Dot.__proto__||(0,_getPrototypeOf2[\"default\"])(Dot)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Dot,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"circle\",2,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){this.resize(ctx);return this.options.size}}]);return Dot}(_ShapeBase3[\"default\"]);exports[\"default\"]=Dot},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Ellipse=function(_NodeBase){(0,_inherits3[\"default\"])(Ellipse,_NodeBase);function Ellipse(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Ellipse);return(0,_possibleConstructorReturn3[\"default\"])(this,(Ellipse.__proto__||(0,_getPrototypeOf2[\"default\"])(Ellipse)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Ellipse,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;if(this.needsRefresh(selected,hover)){var dimensions=this.getDimensionsFromLabel(ctx,selected,hover);this.height=dimensions.height*2;this.width=dimensions.width+dimensions.height;this.radius=.5*this.width}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.left=x-this.width*.5;this.top=y-this.height*.5;this.initContextForDraw(ctx,values);ctx.ellipse_vis(this.left,this.top,this.width,this.height);this.performFill(ctx,values);this.updateBoundingBox(x,y,ctx,selected,hover);this.labelModule.draw(ctx,x,y,selected,hover)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){this.resize(ctx);var a=this.width*.5;var b=this.height*.5;var w=Math.sin(angle)*a;var h=Math.cos(angle)*b;return a*b/Math.sqrt(w*w+h*h)}}]);return Ellipse}(_NodeBase3[\"default\"]);exports[\"default\"]=Ellipse},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Icon=function(_NodeBase){(0,_inherits3[\"default\"])(Icon,_NodeBase);function Icon(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Icon);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Icon.__proto__||(0,_getPrototypeOf2[\"default\"])(Icon)).call(this,options,body,labelModule));_this._setMargins(labelModule);return _this}(0,_createClass3[\"default\"])(Icon,[{key:\"resize\",value:function resize(ctx,selected,hover){if(this.needsRefresh(selected,hover)){this.iconSize={width:Number(this.options.icon.size),height:Number(this.options.icon.size)};this.width=this.iconSize.width+this.margin.right+this.margin.left;this.height=this.iconSize.height+this.margin.top+this.margin.bottom;this.radius=.5*this.width}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.options.icon.size=this.options.icon.size||50;this.left=x-this.width/2;this.top=y-this.height/2;this._icon(ctx,x,y,selected,hover,values);if(this.options.label!==undefined){var iconTextSpacing=5;this.labelModule.draw(ctx,this.left+this.iconSize.width/2+this.margin.left,y+this.height/2+iconTextSpacing,selected)}this.updateBoundingBox(x,y)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y){this.boundingBox.top=y-this.options.icon.size*.5;this.boundingBox.left=x-this.options.icon.size*.5;this.boundingBox.right=x+this.options.icon.size*.5;this.boundingBox.bottom=y+this.options.icon.size*.5;if(this.options.label!==undefined&&this.labelModule.size.width>0){var iconTextSpacing=5;this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left);this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width);this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+iconTextSpacing)}}},{key:\"_icon\",value:function _icon(ctx,x,y,selected,hover,values){var iconSize=Number(this.options.icon.size);if(this.options.icon.code!==undefined){ctx.font=(selected?\"bold \":\"\")+iconSize+\"px \"+this.options.icon.face;ctx.fillStyle=this.options.icon.color||\"black\";ctx.textAlign=\"center\";ctx.textBaseline=\"middle\";this.enableShadow(ctx,values);ctx.fillText(this.options.icon.code,x,y);this.disableShadow(ctx,values)}else{console.error(\"When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.\")}}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Icon}(_NodeBase3[\"default\"]);exports[\"default\"]=Icon},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _CircleImageBase2=__webpack_require__(73);var _CircleImageBase3=_interopRequireDefault(_CircleImageBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Image=function(_CircleImageBase){(0,_inherits3[\"default\"])(Image,_CircleImageBase);function Image(options,body,labelModule,imageObj,imageObjAlt){(0,_classCallCheck3[\"default\"])(this,Image);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Image.__proto__||(0,_getPrototypeOf2[\"default\"])(Image)).call(this,options,body,labelModule));_this.setImages(imageObj,imageObjAlt);return _this}(0,_createClass3[\"default\"])(Image,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;var imageAbsent=this.imageObj.src===undefined||this.imageObj.width===undefined||this.imageObj.height===undefined;if(imageAbsent){var side=this.options.size*2;this.width=side;this.height=side;return}if(this.needsRefresh(selected,hover)){this._resizeImage()}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.switchImages(selected);this.resize();this.left=x-this.width/2;this.top=y-this.height/2;if(this.options.shapeProperties.useBorderWithImage===true){var neutralborderWidth=this.options.borderWidth;var selectionLineWidth=this.options.borderWidthSelected||2*this.options.borderWidth;var borderWidth=(selected?selectionLineWidth:neutralborderWidth)/this.body.view.scale;ctx.lineWidth=Math.min(this.width,borderWidth);ctx.beginPath();ctx.strokeStyle=selected?this.options.color.highlight.border:hover?this.options.color.hover.border:this.options.color.border;ctx.fillStyle=selected?this.options.color.highlight.background:hover?this.options.color.hover.background:this.options.color.background;ctx.rect(this.left-.5*ctx.lineWidth,this.top-.5*ctx.lineWidth,this.width+ctx.lineWidth,this.height+ctx.lineWidth);ctx.fill();this.performStroke(ctx,values);ctx.closePath()}this._drawImageAtPosition(ctx,values);this._drawImageLabel(ctx,x,y,selected,hover);this.updateBoundingBox(x,y)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y){this.resize();this._updateBoundingBox(x,y);if(this.options.label!==undefined&&this.labelModule.size.width>0){this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left);this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width);this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Image}(_CircleImageBase3[\"default\"]);exports[\"default\"]=Image},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Square=function(_ShapeBase){(0,_inherits3[\"default\"])(Square,_ShapeBase);function Square(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Square);return(0,_possibleConstructorReturn3[\"default\"])(this,(Square.__proto__||(0,_getPrototypeOf2[\"default\"])(Square)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Square,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"square\",2,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Square}(_ShapeBase3[\"default\"]);exports[\"default\"]=Square},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hexagon=function(_ShapeBase){(0,_inherits3[\"default\"])(Hexagon,_ShapeBase);function Hexagon(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Hexagon);return(0,_possibleConstructorReturn3[\"default\"])(this,(Hexagon.__proto__||(0,_getPrototypeOf2[\"default\"])(Hexagon)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Hexagon,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"hexagon\",4,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Hexagon}(_ShapeBase3[\"default\"]);exports[\"default\"]=Hexagon},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Star=function(_ShapeBase){(0,_inherits3[\"default\"])(Star,_ShapeBase);function Star(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Star);return(0,_possibleConstructorReturn3[\"default\"])(this,(Star.__proto__||(0,_getPrototypeOf2[\"default\"])(Star)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Star,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"star\",4,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Star}(_ShapeBase3[\"default\"]);exports[\"default\"]=Star},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Text=function(_NodeBase){(0,_inherits3[\"default\"])(Text,_NodeBase);function Text(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Text);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Text.__proto__||(0,_getPrototypeOf2[\"default\"])(Text)).call(this,options,body,labelModule));_this._setMargins(labelModule);return _this}(0,_createClass3[\"default\"])(Text,[{key:\"resize\",value:function resize(ctx,selected,hover){if(this.needsRefresh(selected,hover)){this.textSize=this.labelModule.getTextSize(ctx,selected,hover);this.width=this.textSize.width+this.margin.right+this.margin.left;this.height=this.textSize.height+this.margin.top+this.margin.bottom;this.radius=.5*this.width}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.left=x-this.width/2;this.top=y-this.height/2;this.enableShadow(ctx,values);this.labelModule.draw(ctx,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,selected,hover);this.disableShadow(ctx,values);this.updateBoundingBox(x,y,ctx,selected,hover)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Text}(_NodeBase3[\"default\"]);exports[\"default\"]=Text},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Triangle=function(_ShapeBase){(0,_inherits3[\"default\"])(Triangle,_ShapeBase);function Triangle(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Triangle);return(0,_possibleConstructorReturn3[\"default\"])(this,(Triangle.__proto__||(0,_getPrototypeOf2[\"default\"])(Triangle)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Triangle,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"triangle\",3,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Triangle}(_ShapeBase3[\"default\"]);exports[\"default\"]=Triangle},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var TriangleDown=function(_ShapeBase){(0,_inherits3[\"default\"])(TriangleDown,_ShapeBase);function TriangleDown(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,TriangleDown);return(0,_possibleConstructorReturn3[\"default\"])(this,(TriangleDown.__proto__||(0,_getPrototypeOf2[\"default\"])(TriangleDown)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(TriangleDown,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"triangleDown\",3,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return TriangleDown}(_ShapeBase3[\"default\"]);exports[\"default\"]=TriangleDown},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Edge=__webpack_require__(74)[\"default\"];var EdgesHandler=function(){function EdgesHandler(body,images,groups){var _this=this;(0,_classCallCheck3[\"default\"])(this,EdgesHandler);this.body=body;this.images=images;this.groups=groups;this.body.functions.createEdge=this.create.bind(this);this.edgesListeners={add:function add(event,params){_this.add(params.items)},update:function update(event,params){_this.update(params.items)},remove:function remove(event,params){_this.remove(params.items)}};this.options={};this.defaultOptions={arrows:{to:{enabled:false,\nscaleFactor:1,type:\"arrow\"},middle:{enabled:false,scaleFactor:1,type:\"arrow\"},from:{enabled:false,scaleFactor:1,type:\"arrow\"}},arrowStrikethrough:true,color:{color:\"#848484\",highlight:\"#848484\",hover:\"#848484\",inherit:\"from\",opacity:1},dashes:false,font:{color:\"#343434\",size:14,face:\"arial\",background:\"none\",strokeWidth:2,strokeColor:\"#ffffff\",align:\"horizontal\",multi:false,vadjust:0,bold:{mod:\"bold\"},boldital:{mod:\"bold italic\"},ital:{mod:\"italic\"},mono:{mod:\"\",size:15,face:\"courier new\",vadjust:2}},hidden:false,hoverWidth:1.5,label:undefined,labelHighlightBold:true,length:undefined,physics:true,scaling:{min:1,max:15,label:{enabled:true,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function customScalingFunction(min,max,total,value){if(max===min){return.5}else{var scale=1/(max-min);return Math.max(0,(value-min)*scale)}}},selectionWidth:1.5,selfReferenceSize:20,shadow:{enabled:false,color:\"rgba(0,0,0,0.5)\",size:10,x:5,y:5},smooth:{enabled:true,type:\"dynamic\",forceDirection:\"none\",roundness:.5},title:undefined,width:1,value:undefined};util.deepExtend(this.options,this.defaultOptions);this.bindEventListeners()}(0,_createClass3[\"default\"])(EdgesHandler,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this2=this;this.body.emitter.on(\"_forceDisableDynamicCurves\",function(type){var emit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(type===\"dynamic\"){type=\"continuous\"}var dataChanged=false;for(var edgeId in _this2.body.edges){if(_this2.body.edges.hasOwnProperty(edgeId)){var edge=_this2.body.edges[edgeId];var edgeData=_this2.body.data.edges._data[edgeId];if(edgeData!==undefined){var smoothOptions=edgeData.smooth;if(smoothOptions!==undefined){if(smoothOptions.enabled===true&&smoothOptions.type===\"dynamic\"){if(type===undefined){edge.setOptions({smooth:false})}else{edge.setOptions({smooth:{type:type}})}dataChanged=true}}}}}if(emit===true&&dataChanged===true){_this2.body.emitter.emit(\"_dataChanged\")}});this.body.emitter.on(\"_dataUpdated\",function(){_this2.reconnectEdges()});this.body.emitter.on(\"refreshEdges\",this.refresh.bind(this));this.body.emitter.on(\"refresh\",this.refresh.bind(this));this.body.emitter.on(\"destroy\",function(){util.forEach(_this2.edgesListeners,function(callback,event){if(_this2.body.data.edges)_this2.body.data.edges.off(event,callback)});delete _this2.body.functions.createEdge;delete _this2.edgesListeners.add;delete _this2.edgesListeners.update;delete _this2.edgesListeners.remove;delete _this2.edgesListeners})}},{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){Edge.parseOptions(this.options,options,true,this.defaultOptions,true);var dataChanged=false;if(options.smooth!==undefined){for(var edgeId in this.body.edges){if(this.body.edges.hasOwnProperty(edgeId)){dataChanged=this.body.edges[edgeId].updateEdgeType()||dataChanged}}}if(options.font!==undefined){for(var _edgeId in this.body.edges){if(this.body.edges.hasOwnProperty(_edgeId)){this.body.edges[_edgeId].updateLabelModule()}}}if(options.hidden!==undefined||options.physics!==undefined||dataChanged===true){this.body.emitter.emit(\"_dataChanged\")}}}},{key:\"setData\",value:function setData(edges){var _this3=this;var doNotEmit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var oldEdgesData=this.body.data.edges;if(edges instanceof DataSet||edges instanceof DataView){this.body.data.edges=edges}else if(Array.isArray(edges)){this.body.data.edges=new DataSet;this.body.data.edges.add(edges)}else if(!edges){this.body.data.edges=new DataSet}else{throw new TypeError(\"Array or DataSet expected\")}if(oldEdgesData){util.forEach(this.edgesListeners,function(callback,event){oldEdgesData.off(event,callback)})}this.body.edges={};if(this.body.data.edges){util.forEach(this.edgesListeners,function(callback,event){_this3.body.data.edges.on(event,callback)});var ids=this.body.data.edges.getIds();this.add(ids,true)}this.body.emitter.emit(\"_adjustEdgesForHierarchicalLayout\");if(doNotEmit===false){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"add\",value:function add(ids){var doNotEmit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var edges=this.body.edges;var edgesData=this.body.data.edges;for(var i=0;i<ids.length;i++){var id=ids[i];var oldEdge=edges[id];if(oldEdge){oldEdge.disconnect()}var data=edgesData.get(id,{showInternalIds:true});edges[id]=this.create(data)}this.body.emitter.emit(\"_adjustEdgesForHierarchicalLayout\");if(doNotEmit===false){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"update\",value:function update(ids){var edges=this.body.edges;var edgesData=this.body.data.edges;var dataChanged=false;for(var i=0;i<ids.length;i++){var id=ids[i];var data=edgesData.get(id);var edge=edges[id];if(edge!==undefined){edge.disconnect();dataChanged=edge.setOptions(data)||dataChanged;edge.connect()}else{this.body.edges[id]=this.create(data);dataChanged=true}}if(dataChanged===true){this.body.emitter.emit(\"_adjustEdgesForHierarchicalLayout\");this.body.emitter.emit(\"_dataChanged\")}else{this.body.emitter.emit(\"_dataUpdated\")}}},{key:\"remove\",value:function remove(ids){var emit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(ids.length===0)return;var edges=this.body.edges;util.forEach(ids,function(id){var edge=edges[id];if(edge!==undefined){edge.remove()}});if(emit){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"refresh\",value:function refresh(){var _this4=this;util.forEach(this.body.edges,function(edge,edgeId){var data=_this4.body.data.edges._data[edgeId];if(data!==undefined){edge.setOptions(data)}})}},{key:\"create\",value:function create(properties){return new Edge(properties,this.body,this.options,this.defaultOptions)}},{key:\"reconnectEdges\",value:function reconnectEdges(){var id;var nodes=this.body.nodes;var edges=this.body.edges;for(id in nodes){if(nodes.hasOwnProperty(id)){nodes[id].edges=[]}}for(id in edges){if(edges.hasOwnProperty(id)){var edge=edges[id];edge.from=null;edge.to=null;edge.connect()}}}},{key:\"getConnectedNodes\",value:function getConnectedNodes(edgeId){var nodeList=[];if(this.body.edges[edgeId]!==undefined){var edge=this.body.edges[edgeId];if(edge.fromId!==undefined){nodeList.push(edge.fromId)}if(edge.toId!==undefined){nodeList.push(edge.toId)}}return nodeList}},{key:\"_updateState\",value:function _updateState(){this._addMissingEdges();this._removeInvalidEdges()}},{key:\"_removeInvalidEdges\",value:function _removeInvalidEdges(){var _this5=this;var edgesToDelete=[];util.forEach(this.body.edges,function(edge,id){var toNode=_this5.body.nodes[edge.toId];var fromNode=_this5.body.nodes[edge.fromId];if(toNode!==undefined&&toNode.isCluster===true||fromNode!==undefined&&fromNode.isCluster===true){return}if(toNode===undefined||fromNode===undefined){edgesToDelete.push(id)}});this.remove(edgesToDelete,false)}},{key:\"_addMissingEdges\",value:function _addMissingEdges(){var edges=this.body.edges;var edgesData=this.body.data.edges;var addIds=[];edgesData.forEach(function(edgeData,edgeId){var edge=edges[edgeId];if(edge===undefined){addIds.push(edgeId)}});this.add(addIds,true)}}]);return EdgesHandler}();exports[\"default\"]=EdgesHandler},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _CubicBezierEdgeBase2=__webpack_require__(216);var _CubicBezierEdgeBase3=_interopRequireDefault(_CubicBezierEdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CubicBezierEdge=function(_CubicBezierEdgeBase){(0,_inherits3[\"default\"])(CubicBezierEdge,_CubicBezierEdgeBase);function CubicBezierEdge(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,CubicBezierEdge);return(0,_possibleConstructorReturn3[\"default\"])(this,(CubicBezierEdge.__proto__||(0,_getPrototypeOf2[\"default\"])(CubicBezierEdge)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(CubicBezierEdge,[{key:\"_line\",value:function _line(ctx,values,viaNodes){var via1=viaNodes[0];var via2=viaNodes[1];this._bezierCurve(ctx,values,via1,via2)}},{key:\"_getViaCoordinates\",value:function _getViaCoordinates(){var dx=this.from.x-this.to.x;var dy=this.from.y-this.to.y;var x1=void 0,y1=void 0,x2=void 0,y2=void 0;var roundness=this.options.smooth.roundness;if((Math.abs(dx)>Math.abs(dy)||this.options.smooth.forceDirection===true||this.options.smooth.forceDirection===\"horizontal\")&&this.options.smooth.forceDirection!==\"vertical\"){y1=this.from.y;y2=this.to.y;x1=this.from.x-roundness*dx;x2=this.to.x+roundness*dx}else{y1=this.from.y-roundness*dy;y2=this.to.y+roundness*dy;x1=this.from.x;x2=this.to.x}return[{x:x1,y:y1},{x:x2,y:y2}]}},{key:\"getViaNode\",value:function getViaNode(){return this._getViaCoordinates()}},{key:\"_findBorderPosition\",value:function _findBorderPosition(nearNode,ctx){return this._findBorderPositionBezier(nearNode,ctx)}},{key:\"_getDistanceToEdge\",value:function _getDistanceToEdge(x1,y1,x2,y2,x3,y3){var _ref=arguments.length>6&&arguments[6]!==undefined?arguments[6]:this._getViaCoordinates(),_ref2=(0,_slicedToArray3[\"default\"])(_ref,2),via1=_ref2[0],via2=_ref2[1];return this._getDistanceToBezierEdge(x1,y1,x2,y2,x3,y3,via1,via2)}},{key:\"getPoint\",value:function getPoint(percentage){var _ref3=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this._getViaCoordinates(),_ref4=(0,_slicedToArray3[\"default\"])(_ref3,2),via1=_ref4[0],via2=_ref4[1];var t=percentage;var vec=[];vec[0]=Math.pow(1-t,3);vec[1]=3*t*Math.pow(1-t,2);vec[2]=3*Math.pow(t,2)*(1-t);vec[3]=Math.pow(t,3);var x=vec[0]*this.fromPoint.x+vec[1]*via1.x+vec[2]*via2.x+vec[3]*this.toPoint.x;var y=vec[0]*this.fromPoint.y+vec[1]*via1.y+vec[2]*via2.y+vec[3]*this.toPoint.y;return{x:x,y:y}}}]);return CubicBezierEdge}(_CubicBezierEdgeBase3[\"default\"]);exports[\"default\"]=CubicBezierEdge},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _BezierEdgeBase2=__webpack_require__(75);var _BezierEdgeBase3=_interopRequireDefault(_BezierEdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CubicBezierEdgeBase=function(_BezierEdgeBase){(0,_inherits3[\"default\"])(CubicBezierEdgeBase,_BezierEdgeBase);function CubicBezierEdgeBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,CubicBezierEdgeBase);return(0,_possibleConstructorReturn3[\"default\"])(this,(CubicBezierEdgeBase.__proto__||(0,_getPrototypeOf2[\"default\"])(CubicBezierEdgeBase)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(CubicBezierEdgeBase,[{key:\"_getDistanceToBezierEdge\",value:function _getDistanceToBezierEdge(x1,y1,x2,y2,x3,y3,via1,via2){var minDistance=1e9;var distance=void 0;var i=void 0,t=void 0,x=void 0,y=void 0;var lastX=x1;var lastY=y1;var vec=[0,0,0,0];for(i=1;i<10;i++){t=.1*i;vec[0]=Math.pow(1-t,3);vec[1]=3*t*Math.pow(1-t,2);vec[2]=3*Math.pow(t,2)*(1-t);vec[3]=Math.pow(t,3);x=vec[0]*x1+vec[1]*via1.x+vec[2]*via2.x+vec[3]*x2;y=vec[0]*y1+vec[1]*via1.y+vec[2]*via2.y+vec[3]*y2;if(i>0){distance=this._getDistanceToLine(lastX,lastY,x,y,x3,y3);minDistance=distance<minDistance?distance:minDistance}lastX=x;lastY=y}return minDistance}}]);return CubicBezierEdgeBase}(_BezierEdgeBase3[\"default\"]);exports[\"default\"]=CubicBezierEdgeBase},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _BezierEdgeBase2=__webpack_require__(75);var _BezierEdgeBase3=_interopRequireDefault(_BezierEdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var BezierEdgeDynamic=function(_BezierEdgeBase){(0,_inherits3[\"default\"])(BezierEdgeDynamic,_BezierEdgeBase);function BezierEdgeDynamic(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,BezierEdgeDynamic);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(BezierEdgeDynamic.__proto__||(0,_getPrototypeOf2[\"default\"])(BezierEdgeDynamic)).call(this,options,body,labelModule));_this._boundFunction=function(){_this.positionBezierNode()};_this.body.emitter.on(\"_repositionBezierNodes\",_this._boundFunction);return _this}(0,_createClass3[\"default\"])(BezierEdgeDynamic,[{key:\"setOptions\",value:function setOptions(options){var physicsChange=false;if(this.options.physics!==options.physics){physicsChange=true}this.options=options;this.id=this.options.id;this.from=this.body.nodes[this.options.from];this.to=this.body.nodes[this.options.to];this.setupSupportNode();this.connect();if(physicsChange===true){this.via.setOptions({physics:this.options.physics});this.positionBezierNode()}}},{key:\"connect\",value:function connect(){this.from=this.body.nodes[this.options.from];this.to=this.body.nodes[this.options.to];if(this.from===undefined||this.to===undefined||this.options.physics===false){this.via.setOptions({physics:false})}else{if(this.from.id===this.to.id){this.via.setOptions({physics:false})}else{this.via.setOptions({physics:true})}}}},{key:\"cleanup\",value:function cleanup(){this.body.emitter.off(\"_repositionBezierNodes\",this._boundFunction);if(this.via!==undefined){delete this.body.nodes[this.via.id];this.via=undefined;return true}return false}},{key:\"setupSupportNode\",value:function setupSupportNode(){if(this.via===undefined){var nodeId=\"edgeId:\"+this.id;var node=this.body.functions.createNode({id:nodeId,shape:\"circle\",physics:true,hidden:true});this.body.nodes[nodeId]=node;this.via=node;this.via.parentEdgeId=this.id;this.positionBezierNode()}}},{key:\"positionBezierNode\",value:function positionBezierNode(){if(this.via!==undefined&&this.from!==undefined&&this.to!==undefined){this.via.x=.5*(this.from.x+this.to.x);this.via.y=.5*(this.from.y+this.to.y)}else if(this.via!==undefined){this.via.x=0;this.via.y=0}}},{key:\"_line\",value:function _line(ctx,values,viaNode){this._bezierCurve(ctx,values,viaNode)}},{key:\"getViaNode\",value:function getViaNode(){return this.via}},{key:\"getPoint\",value:function getPoint(percentage){var viaNode=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.via;var t=percentage;var x=void 0,y=void 0;if(this.from===this.to){var _getCircleData=this._getCircleData(this.from),_getCircleData2=(0,_slicedToArray3[\"default\"])(_getCircleData,3),cx=_getCircleData2[0],cy=_getCircleData2[1],cr=_getCircleData2[2];var a=2*Math.PI*(1-t);x=cx+cr*Math.sin(a);y=cy+cr-cr*(1-Math.cos(a))}else{x=Math.pow(1-t,2)*this.fromPoint.x+2*t*(1-t)*viaNode.x+Math.pow(t,2)*this.toPoint.x;y=Math.pow(1-t,2)*this.fromPoint.y+2*t*(1-t)*viaNode.y+Math.pow(t,2)*this.toPoint.y}return{x:x,y:y}}},{key:\"_findBorderPosition\",value:function _findBorderPosition(nearNode,ctx){return this._findBorderPositionBezier(nearNode,ctx,this.via)}},{key:\"_getDistanceToEdge\",value:function _getDistanceToEdge(x1,y1,x2,y2,x3,y3){return this._getDistanceToBezierEdge(x1,y1,x2,y2,x3,y3,this.via)}}]);return BezierEdgeDynamic}(_BezierEdgeBase3[\"default\"]);exports[\"default\"]=BezierEdgeDynamic},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _BezierEdgeBase2=__webpack_require__(75);var _BezierEdgeBase3=_interopRequireDefault(_BezierEdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var BezierEdgeStatic=function(_BezierEdgeBase){(0,_inherits3[\"default\"])(BezierEdgeStatic,_BezierEdgeBase);function BezierEdgeStatic(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,BezierEdgeStatic);return(0,_possibleConstructorReturn3[\"default\"])(this,(BezierEdgeStatic.__proto__||(0,_getPrototypeOf2[\"default\"])(BezierEdgeStatic)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(BezierEdgeStatic,[{key:\"_line\",value:function _line(ctx,values,viaNode){this._bezierCurve(ctx,values,viaNode)}},{key:\"getViaNode\",value:function getViaNode(){return this._getViaCoordinates()}},{key:\"_getViaCoordinates\",value:function _getViaCoordinates(){var xVia=undefined;var yVia=undefined;var factor=this.options.smooth.roundness;var type=this.options.smooth.type;var dx=Math.abs(this.from.x-this.to.x);var dy=Math.abs(this.from.y-this.to.y);if(type===\"discrete\"||type===\"diagonalCross\"){var stepX=void 0;var stepY=void 0;if(dx<=dy){stepX=stepY=factor*dy}else{stepX=stepY=factor*dx}if(this.from.x>this.to.x)stepX=-stepX;if(this.from.y>=this.to.y)stepY=-stepY;xVia=this.from.x+stepX;yVia=this.from.y+stepY;if(type===\"discrete\"){if(dx<=dy){xVia=dx<factor*dy?this.from.x:xVia}else{yVia=dy<factor*dx?this.from.y:yVia}}}else if(type===\"straightCross\"){var _stepX=(1-factor)*dx;var _stepY=(1-factor)*dy;if(dx<=dy){_stepX=0;if(this.from.y<this.to.y)_stepY=-_stepY}else{if(this.from.x<this.to.x)_stepX=-_stepX;_stepY=0}xVia=this.to.x+_stepX;yVia=this.to.y+_stepY}else if(type===\"horizontal\"){var _stepX2=(1-factor)*dx;if(this.from.x<this.to.x)_stepX2=-_stepX2;xVia=this.to.x+_stepX2;yVia=this.from.y}else if(type===\"vertical\"){var _stepY2=(1-factor)*dy;if(this.from.y<this.to.y)_stepY2=-_stepY2;xVia=this.from.x;yVia=this.to.y+_stepY2}else if(type===\"curvedCW\"){dx=this.to.x-this.from.x;dy=this.from.y-this.to.y;var radius=Math.sqrt(dx*dx+dy*dy);var pi=Math.PI;var originalAngle=Math.atan2(dy,dx);var myAngle=(originalAngle+(factor*.5+.5)*pi)%(2*pi);xVia=this.from.x+(factor*.5+.5)*radius*Math.sin(myAngle);yVia=this.from.y+(factor*.5+.5)*radius*Math.cos(myAngle)}else if(type===\"curvedCCW\"){dx=this.to.x-this.from.x;dy=this.from.y-this.to.y;var _radius=Math.sqrt(dx*dx+dy*dy);var _pi=Math.PI;var _originalAngle=Math.atan2(dy,dx);var _myAngle=(_originalAngle+(-factor*.5+.5)*_pi)%(2*_pi);xVia=this.from.x+(factor*.5+.5)*_radius*Math.sin(_myAngle);yVia=this.from.y+(factor*.5+.5)*_radius*Math.cos(_myAngle)}else{var _stepX3=void 0;var _stepY3=void 0;if(dx<=dy){_stepX3=_stepY3=factor*dy}else{_stepX3=_stepY3=factor*dx}if(this.from.x>this.to.x)_stepX3=-_stepX3;if(this.from.y>=this.to.y)_stepY3=-_stepY3;xVia=this.from.x+_stepX3;yVia=this.from.y+_stepY3;if(dx<=dy){if(this.from.x<=this.to.x){xVia=this.to.x<xVia?this.to.x:xVia}else{xVia=this.to.x>xVia?this.to.x:xVia}}else{if(this.from.y>=this.to.y){yVia=this.to.y>yVia?this.to.y:yVia}else{yVia=this.to.y<yVia?this.to.y:yVia}}}return{x:xVia,y:yVia}}},{key:\"_findBorderPosition\",value:function _findBorderPosition(nearNode,ctx){var options=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};return this._findBorderPositionBezier(nearNode,ctx,options.via)}},{key:\"_getDistanceToEdge\",value:function _getDistanceToEdge(x1,y1,x2,y2,x3,y3){var viaNode=arguments.length>6&&arguments[6]!==undefined?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge(x1,y1,x2,y2,x3,y3,viaNode)}},{key:\"getPoint\",value:function getPoint(percentage){var viaNode=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this._getViaCoordinates();var t=percentage;var x=Math.pow(1-t,2)*this.fromPoint.x+2*t*(1-t)*viaNode.x+Math.pow(t,2)*this.toPoint.x;var y=Math.pow(1-t,2)*this.fromPoint.y+2*t*(1-t)*viaNode.y+Math.pow(t,2)*this.toPoint.y;return{x:x,y:y}}}]);return BezierEdgeStatic}(_BezierEdgeBase3[\"default\"]);exports[\"default\"]=BezierEdgeStatic},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _EdgeBase2=__webpack_require__(118);var _EdgeBase3=_interopRequireDefault(_EdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var StraightEdge=function(_EdgeBase){(0,_inherits3[\"default\"])(StraightEdge,_EdgeBase);function StraightEdge(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,StraightEdge);return(0,_possibleConstructorReturn3[\"default\"])(this,(StraightEdge.__proto__||(0,_getPrototypeOf2[\"default\"])(StraightEdge)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(StraightEdge,[{key:\"_line\",value:function _line(ctx,values){ctx.beginPath();ctx.moveTo(this.fromPoint.x,this.fromPoint.y);ctx.lineTo(this.toPoint.x,this.toPoint.y);this.enableShadow(ctx,values);ctx.stroke();this.disableShadow(ctx,values)}},{key:\"getViaNode\",value:function getViaNode(){return undefined}},{key:\"getPoint\",value:function getPoint(percentage){return{x:(1-percentage)*this.fromPoint.x+percentage*this.toPoint.x,y:(1-percentage)*this.fromPoint.y+percentage*this.toPoint.y}}},{key:\"_findBorderPosition\",value:function _findBorderPosition(nearNode,ctx){var node1=this.to;var node2=this.from;if(nearNode.id===this.from.id){node1=this.from;node2=this.to}var angle=Math.atan2(node1.y-node2.y,node1.x-node2.x);var dx=node1.x-node2.x;var dy=node1.y-node2.y;var edgeSegmentLength=Math.sqrt(dx*dx+dy*dy);var toBorderDist=nearNode.distanceToBorder(ctx,angle);var toBorderPoint=(edgeSegmentLength-toBorderDist)/edgeSegmentLength;var borderPos={};borderPos.x=(1-toBorderPoint)*node2.x+toBorderPoint*node1.x;borderPos.y=(1-toBorderPoint)*node2.y+toBorderPoint*node1.y;return borderPos}},{key:\"_getDistanceToEdge\",value:function _getDistanceToEdge(x1,y1,x2,y2,x3,y3){return this._getDistanceToLine(x1,y1,x2,y2,x3,y3)}}]);return StraightEdge}(_EdgeBase3[\"default\"]);exports[\"default\"]=StraightEdge},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var BarnesHutSolver=__webpack_require__(120)[\"default\"];var Repulsion=__webpack_require__(221)[\"default\"];var HierarchicalRepulsion=__webpack_require__(222)[\"default\"];var SpringSolver=__webpack_require__(223)[\"default\"];var HierarchicalSpringSolver=__webpack_require__(224)[\"default\"];var CentralGravitySolver=__webpack_require__(121)[\"default\"];var ForceAtlas2BasedRepulsionSolver=__webpack_require__(225)[\"default\"];var ForceAtlas2BasedCentralGravitySolver=__webpack_require__(226)[\"default\"];var util=__webpack_require__(2);var EndPoints=__webpack_require__(119)[\"default\"];var PhysicsEngine=function(){function PhysicsEngine(body){(0,_classCallCheck3[\"default\"])(this,PhysicsEngine);this.body=body;this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}};this.physicsEnabled=true;this.simulationInterval=1e3/60;this.requiresTimeout=true;this.previousStates={};this.referenceState={};this.freezeCache={};this.renderTimer=undefined;this.adaptiveTimestep=false;this.adaptiveTimestepEnabled=false;this.adaptiveCounter=0;this.adaptiveInterval=3;this.stabilized=false;this.startedStabilization=false;this.stabilizationIterations=0;this.ready=false;this.options={};this.defaultOptions={enabled:true,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:\"barnesHut\",stabilization:{enabled:true,iterations:1e3,updateInterval:50,onlyDynamicEdges:false,fit:true},timestep:.5,adaptiveTimestep:true};util.extend(this.options,this.defaultOptions);this.timestep=.5;this.layoutFailed=false;this.bindEventListeners()}(0,_createClass3[\"default\"])(PhysicsEngine,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this=this;this.body.emitter.on(\"initPhysics\",function(){_this.initPhysics()});this.body.emitter.on(\"_layoutFailed\",function(){_this.layoutFailed=true});this.body.emitter.on(\"resetPhysics\",function(){_this.stopSimulation();_this.ready=false});this.body.emitter.on(\"disablePhysics\",function(){_this.physicsEnabled=false;_this.stopSimulation()});this.body.emitter.on(\"restorePhysics\",function(){_this.setOptions(_this.options);if(_this.ready===true){_this.startSimulation()}});this.body.emitter.on(\"startSimulation\",function(){if(_this.ready===true){_this.startSimulation()}});this.body.emitter.on(\"stopSimulation\",function(){_this.stopSimulation()});this.body.emitter.on(\"destroy\",function(){_this.stopSimulation(false);_this.body.emitter.off()});this.body.emitter.on(\"_dataChanged\",function(){_this.updatePhysicsData()})}},{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){if(options===false){this.options.enabled=false;this.physicsEnabled=false;this.stopSimulation()}else if(options===true){this.options.enabled=true;this.physicsEnabled=true;this.startSimulation()}else{this.physicsEnabled=true;util.selectiveNotDeepExtend([\"stabilization\"],this.options,options);util.mergeOptions(this.options,options,\"stabilization\");if(options.enabled===undefined){this.options.enabled=true}if(this.options.enabled===false){this.physicsEnabled=false;this.stopSimulation()}this.timestep=this.options.timestep}}this.init()}},{key:\"init\",value:function init(){var options;if(this.options.solver===\"forceAtlas2Based\"){options=this.options.forceAtlas2Based;this.nodesSolver=new ForceAtlas2BasedRepulsionSolver(this.body,this.physicsBody,options);this.edgesSolver=new SpringSolver(this.body,this.physicsBody,options);this.gravitySolver=new ForceAtlas2BasedCentralGravitySolver(this.body,this.physicsBody,options)}else if(this.options.solver===\"repulsion\"){options=this.options.repulsion;this.nodesSolver=new Repulsion(this.body,this.physicsBody,options);this.edgesSolver=new SpringSolver(this.body,this.physicsBody,options);this.gravitySolver=new CentralGravitySolver(this.body,this.physicsBody,options)}else if(this.options.solver===\"hierarchicalRepulsion\"){options=this.options.hierarchicalRepulsion;this.nodesSolver=new HierarchicalRepulsion(this.body,this.physicsBody,options);this.edgesSolver=new HierarchicalSpringSolver(this.body,this.physicsBody,options);this.gravitySolver=new CentralGravitySolver(this.body,this.physicsBody,options)}else{options=this.options.barnesHut;this.nodesSolver=new BarnesHutSolver(this.body,this.physicsBody,options);this.edgesSolver=new SpringSolver(this.body,this.physicsBody,options);this.gravitySolver=new CentralGravitySolver(this.body,this.physicsBody,options)}this.modelOptions=options}},{key:\"initPhysics\",value:function initPhysics(){if(this.physicsEnabled===true&&this.options.enabled===true){if(this.options.stabilization.enabled===true){this.stabilize()}else{this.stabilized=false;this.ready=true;this.body.emitter.emit(\"fit\",{},this.layoutFailed);this.startSimulation()}}else{this.ready=true;this.body.emitter.emit(\"fit\")}}},{key:\"startSimulation\",value:function startSimulation(){if(this.physicsEnabled===true&&this.options.enabled===true){this.stabilized=false;this.adaptiveTimestep=false;this.body.emitter.emit(\"_resizeNodes\");if(this.viewFunction===undefined){this.viewFunction=this.simulationStep.bind(this);this.body.emitter.on(\"initRedraw\",this.viewFunction);this.body.emitter.emit(\"_startRendering\")}}else{this.body.emitter.emit(\"_redraw\")}}},{key:\"stopSimulation\",value:function stopSimulation(){var emit=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;this.stabilized=true;if(emit===true){this._emitStabilized()}if(this.viewFunction!==undefined){this.body.emitter.off(\"initRedraw\",this.viewFunction);this.viewFunction=undefined;if(emit===true){this.body.emitter.emit(\"_stopRendering\")}}}},{key:\"simulationStep\",value:function simulationStep(){var startTime=Date.now();this.physicsTick();var physicsTime=Date.now()-startTime;if((physicsTime<.4*this.simulationInterval||this.runDoubleSpeed===true)&&this.stabilized===false){this.physicsTick();this.runDoubleSpeed=true}if(this.stabilized===true){this.stopSimulation()}}},{key:\"_emitStabilized\",value:function _emitStabilized(){var _this2=this;var amountOfIterations=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.stabilizationIterations;if(this.stabilizationIterations>1||this.startedStabilization===true){setTimeout(function(){_this2.body.emitter.emit(\"stabilized\",{iterations:amountOfIterations});_this2.startedStabilization=false;_this2.stabilizationIterations=0},0)}}},{key:\"physicsStep\",value:function physicsStep(){this.gravitySolver.solve();this.nodesSolver.solve();this.edgesSolver.solve();this.moveNodes()}},{key:\"adjustTimeStep\",value:function adjustTimeStep(){var factor=1.2;if(this._evaluateStepQuality()===true){this.timestep=factor*this.timestep}else{if(this.timestep/factor<this.options.timestep){this.timestep=this.options.timestep}else{this.adaptiveCounter=-1;this.timestep=Math.max(this.options.timestep,this.timestep/factor)}}}},{key:\"physicsTick\",value:function physicsTick(){this._startStabilizing();if(this.stabilized===true)return;if(this.adaptiveTimestep===true&&this.adaptiveTimestepEnabled===true){var doAdaptive=this.adaptiveCounter%this.adaptiveInterval===0;if(doAdaptive){this.timestep=2*this.timestep;this.physicsStep();this.revert();this.timestep=.5*this.timestep;this.physicsStep();this.physicsStep();this.adjustTimeStep()}else{this.physicsStep()}this.adaptiveCounter+=1}else{this.timestep=this.options.timestep;this.physicsStep()}\nif(this.stabilized===true)this.revert();this.stabilizationIterations++}},{key:\"updatePhysicsData\",value:function updatePhysicsData(){this.physicsBody.forces={};this.physicsBody.physicsNodeIndices=[];this.physicsBody.physicsEdgeIndices=[];var nodes=this.body.nodes;var edges=this.body.edges;for(var nodeId in nodes){if(nodes.hasOwnProperty(nodeId)){if(nodes[nodeId].options.physics===true){this.physicsBody.physicsNodeIndices.push(nodes[nodeId].id)}}}for(var edgeId in edges){if(edges.hasOwnProperty(edgeId)){if(edges[edgeId].options.physics===true){this.physicsBody.physicsEdgeIndices.push(edges[edgeId].id)}}}for(var i=0;i<this.physicsBody.physicsNodeIndices.length;i++){var _nodeId=this.physicsBody.physicsNodeIndices[i];this.physicsBody.forces[_nodeId]={x:0,y:0};if(this.physicsBody.velocities[_nodeId]===undefined){this.physicsBody.velocities[_nodeId]={x:0,y:0}}}for(var _nodeId2 in this.physicsBody.velocities){if(nodes[_nodeId2]===undefined){delete this.physicsBody.velocities[_nodeId2]}}}},{key:\"revert\",value:function revert(){var nodeIds=(0,_keys2[\"default\"])(this.previousStates);var nodes=this.body.nodes;var velocities=this.physicsBody.velocities;this.referenceState={};for(var i=0;i<nodeIds.length;i++){var nodeId=nodeIds[i];if(nodes[nodeId]!==undefined){if(nodes[nodeId].options.physics===true){this.referenceState[nodeId]={positions:{x:nodes[nodeId].x,y:nodes[nodeId].y}};velocities[nodeId].x=this.previousStates[nodeId].vx;velocities[nodeId].y=this.previousStates[nodeId].vy;nodes[nodeId].x=this.previousStates[nodeId].x;nodes[nodeId].y=this.previousStates[nodeId].y}}else{delete this.previousStates[nodeId]}}}},{key:\"_evaluateStepQuality\",value:function _evaluateStepQuality(){var dx=void 0,dy=void 0,dpos=void 0;var nodes=this.body.nodes;var reference=this.referenceState;var posThreshold=.3;for(var nodeId in this.referenceState){if(this.referenceState.hasOwnProperty(nodeId)&&nodes[nodeId]!==undefined){dx=nodes[nodeId].x-reference[nodeId].positions.x;dy=nodes[nodeId].y-reference[nodeId].positions.y;dpos=Math.sqrt(Math.pow(dx,2)+Math.pow(dy,2));if(dpos>posThreshold){return false}}}return true}},{key:\"moveNodes\",value:function moveNodes(){var nodeIndices=this.physicsBody.physicsNodeIndices;var maxNodeVelocity=0;var averageNodeVelocity=0;var velocityAdaptiveThreshold=5;for(var i=0;i<nodeIndices.length;i++){var nodeId=nodeIndices[i];var nodeVelocity=this._performStep(nodeId);maxNodeVelocity=Math.max(maxNodeVelocity,nodeVelocity);averageNodeVelocity+=nodeVelocity}this.adaptiveTimestepEnabled=averageNodeVelocity/nodeIndices.length<velocityAdaptiveThreshold;this.stabilized=maxNodeVelocity<this.options.minVelocity}},{key:\"calculateComponentVelocity\",value:function calculateComponentVelocity(v,f,m){var df=this.modelOptions.damping*v;var a=(f-df)/m;v+=a*this.timestep;var maxV=this.options.maxVelocity||1e9;if(Math.abs(v)>maxV){v=v>0?maxV:-maxV}return v}},{key:\"_performStep\",value:function _performStep(nodeId){var node=this.body.nodes[nodeId];var force=this.physicsBody.forces[nodeId];var velocity=this.physicsBody.velocities[nodeId];this.previousStates[nodeId]={x:node.x,y:node.y,vx:velocity.x,vy:velocity.y};if(node.options.fixed.x===false){velocity.x=this.calculateComponentVelocity(velocity.x,force.x,node.options.mass);node.x+=velocity.x*this.timestep}else{force.x=0;velocity.x=0}if(node.options.fixed.y===false){velocity.y=this.calculateComponentVelocity(velocity.y,force.y,node.options.mass);node.y+=velocity.y*this.timestep}else{force.y=0;velocity.y=0}var totalVelocity=Math.sqrt(Math.pow(velocity.x,2)+Math.pow(velocity.y,2));return totalVelocity}},{key:\"_freezeNodes\",value:function _freezeNodes(){var nodes=this.body.nodes;for(var id in nodes){if(nodes.hasOwnProperty(id)){if(nodes[id].x&&nodes[id].y){var fixed=nodes[id].options.fixed;this.freezeCache[id]={x:fixed.x,y:fixed.y};fixed.x=true;fixed.y=true}}}}},{key:\"_restoreFrozenNodes\",value:function _restoreFrozenNodes(){var nodes=this.body.nodes;for(var id in nodes){if(nodes.hasOwnProperty(id)){if(this.freezeCache[id]!==undefined){nodes[id].options.fixed.x=this.freezeCache[id].x;nodes[id].options.fixed.y=this.freezeCache[id].y}}}this.freezeCache={}}},{key:\"stabilize\",value:function stabilize(){var _this3=this;var iterations=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.options.stabilization.iterations;if(typeof iterations!==\"number\"){iterations=this.options.stabilization.iterations;console.log(\"The stabilize method needs a numeric amount of iterations. Switching to default: \",iterations)}if(this.physicsBody.physicsNodeIndices.length===0){this.ready=true;return}this.adaptiveTimestep=true&&this.options.adaptiveTimestep;this.body.emitter.emit(\"_resizeNodes\");this.stopSimulation();this.stabilized=false;this.body.emitter.emit(\"_blockRedraw\");this.targetIterations=iterations;if(this.options.stabilization.onlyDynamicEdges===true){this._freezeNodes()}this.stabilizationIterations=0;setTimeout(function(){return _this3._stabilizationBatch()},0)}},{key:\"_startStabilizing\",value:function _startStabilizing(){if(this.startedStabilization===true)return false;this.body.emitter.emit(\"startStabilizing\");this.startedStabilization=true;return true}},{key:\"_stabilizationBatch\",value:function _stabilizationBatch(){var _this4=this;var running=function running(){return _this4.stabilized===false&&_this4.stabilizationIterations<_this4.targetIterations};var sendProgress=function sendProgress(){_this4.body.emitter.emit(\"stabilizationProgress\",{iterations:_this4.stabilizationIterations,total:_this4.targetIterations})};if(this._startStabilizing()){sendProgress()}var count=0;while(running()&&count<this.options.stabilization.updateInterval){this.physicsTick();count++}sendProgress();if(running()){setTimeout(this._stabilizationBatch.bind(this),0)}else{this._finalizeStabilization()}}},{key:\"_finalizeStabilization\",value:function _finalizeStabilization(){this.body.emitter.emit(\"_allowRedraw\");if(this.options.stabilization.fit===true){this.body.emitter.emit(\"fit\")}if(this.options.stabilization.onlyDynamicEdges===true){this._restoreFrozenNodes()}this.body.emitter.emit(\"stabilizationIterationsDone\");this.body.emitter.emit(\"_requestRedraw\");if(this.stabilized===true){this._emitStabilized()}else{this.startSimulation()}this.ready=true}},{key:\"_drawForces\",value:function _drawForces(ctx){for(var i=0;i<this.physicsBody.physicsNodeIndices.length;i++){var index=this.physicsBody.physicsNodeIndices[i];var node=this.body.nodes[index];var force=this.physicsBody.forces[index];var factor=20;var colorFactor=.03;var forceSize=Math.sqrt(Math.pow(force.x,2)+Math.pow(force.x,2));var size=Math.min(Math.max(5,forceSize),15);var arrowSize=3*size;var color=util.HSVToHex((180-Math.min(1,Math.max(0,colorFactor*forceSize))*180)/360,1,1);var point={x:node.x+factor*force.x,y:node.y+factor*force.y};ctx.lineWidth=size;ctx.strokeStyle=color;ctx.beginPath();ctx.moveTo(node.x,node.y);ctx.lineTo(point.x,point.y);ctx.stroke();var angle=Math.atan2(force.y,force.x);ctx.fillStyle=color;EndPoints.draw(ctx,{type:\"arrow\",point:point,angle:angle,length:arrowSize});ctx.fill()}}}]);return PhysicsEngine}();exports[\"default\"]=PhysicsEngine},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var RepulsionSolver=function(){function RepulsionSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,RepulsionSolver);this.body=body;this.physicsBody=physicsBody;this.setOptions(options)}(0,_createClass3[\"default\"])(RepulsionSolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"solve\",value:function solve(){var dx,dy,distance,fx,fy,repulsingForce,node1,node2;var nodes=this.body.nodes;var nodeIndices=this.physicsBody.physicsNodeIndices;var forces=this.physicsBody.forces;var nodeDistance=this.options.nodeDistance;var a=-2/3/nodeDistance;var b=4/3;for(var i=0;i<nodeIndices.length-1;i++){node1=nodes[nodeIndices[i]];for(var j=i+1;j<nodeIndices.length;j++){node2=nodes[nodeIndices[j]];dx=node2.x-node1.x;dy=node2.y-node1.y;distance=Math.sqrt(dx*dx+dy*dy);if(distance===0){distance=.1*Math.random();dx=distance}if(distance<2*nodeDistance){if(distance<.5*nodeDistance){repulsingForce=1}else{repulsingForce=a*distance+b}repulsingForce=repulsingForce/distance;fx=dx*repulsingForce;fy=dy*repulsingForce;forces[node1.id].x-=fx;forces[node1.id].y-=fy;forces[node2.id].x+=fx;forces[node2.id].y+=fy}}}}}]);return RepulsionSolver}();exports[\"default\"]=RepulsionSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var HierarchicalRepulsionSolver=function(){function HierarchicalRepulsionSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,HierarchicalRepulsionSolver);this.body=body;this.physicsBody=physicsBody;this.setOptions(options)}(0,_createClass3[\"default\"])(HierarchicalRepulsionSolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"solve\",value:function solve(){var dx,dy,distance,fx,fy,repulsingForce,node1,node2,i,j;var nodes=this.body.nodes;var nodeIndices=this.physicsBody.physicsNodeIndices;var forces=this.physicsBody.forces;var nodeDistance=this.options.nodeDistance;for(i=0;i<nodeIndices.length-1;i++){node1=nodes[nodeIndices[i]];for(j=i+1;j<nodeIndices.length;j++){node2=nodes[nodeIndices[j]];if(node1.level===node2.level){dx=node2.x-node1.x;dy=node2.y-node1.y;distance=Math.sqrt(dx*dx+dy*dy);var steepness=.05;if(distance<nodeDistance){repulsingForce=-Math.pow(steepness*distance,2)+Math.pow(steepness*nodeDistance,2)}else{repulsingForce=0}if(distance===0){distance=.01}else{repulsingForce=repulsingForce/distance}fx=dx*repulsingForce;fy=dy*repulsingForce;forces[node1.id].x-=fx;forces[node1.id].y-=fy;forces[node2.id].x+=fx;forces[node2.id].y+=fy}}}}}]);return HierarchicalRepulsionSolver}();exports[\"default\"]=HierarchicalRepulsionSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var SpringSolver=function(){function SpringSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,SpringSolver);this.body=body;this.physicsBody=physicsBody;this.setOptions(options)}(0,_createClass3[\"default\"])(SpringSolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"solve\",value:function solve(){var edgeLength=void 0,edge=void 0;var edgeIndices=this.physicsBody.physicsEdgeIndices;var edges=this.body.edges;var node1=void 0,node2=void 0,node3=void 0;for(var i=0;i<edgeIndices.length;i++){edge=edges[edgeIndices[i]];if(edge.connected===true&&edge.toId!==edge.fromId){if(this.body.nodes[edge.toId]!==undefined&&this.body.nodes[edge.fromId]!==undefined){if(edge.edgeType.via!==undefined){edgeLength=edge.options.length===undefined?this.options.springLength:edge.options.length;node1=edge.to;node2=edge.edgeType.via;node3=edge.from;this._calculateSpringForce(node1,node2,.5*edgeLength);this._calculateSpringForce(node2,node3,.5*edgeLength)}else{edgeLength=edge.options.length===undefined?this.options.springLength*1.5:edge.options.length;this._calculateSpringForce(edge.from,edge.to,edgeLength)}}}}}},{key:\"_calculateSpringForce\",value:function _calculateSpringForce(node1,node2,edgeLength){var dx=node1.x-node2.x;var dy=node1.y-node2.y;var distance=Math.max(Math.sqrt(dx*dx+dy*dy),.01);var springForce=this.options.springConstant*(edgeLength-distance)/distance;var fx=dx*springForce;var fy=dy*springForce;if(this.physicsBody.forces[node1.id]!==undefined){this.physicsBody.forces[node1.id].x+=fx;this.physicsBody.forces[node1.id].y+=fy}if(this.physicsBody.forces[node2.id]!==undefined){this.physicsBody.forces[node2.id].x-=fx;this.physicsBody.forces[node2.id].y-=fy}}}]);return SpringSolver}();exports[\"default\"]=SpringSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var HierarchicalSpringSolver=function(){function HierarchicalSpringSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,HierarchicalSpringSolver);this.body=body;this.physicsBody=physicsBody;this.setOptions(options)}(0,_createClass3[\"default\"])(HierarchicalSpringSolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"solve\",value:function solve(){var edgeLength,edge;var dx,dy,fx,fy,springForce,distance;var edges=this.body.edges;var factor=.5;var edgeIndices=this.physicsBody.physicsEdgeIndices;var nodeIndices=this.physicsBody.physicsNodeIndices;var forces=this.physicsBody.forces;for(var i=0;i<nodeIndices.length;i++){var nodeId=nodeIndices[i];forces[nodeId].springFx=0;forces[nodeId].springFy=0}for(var _i=0;_i<edgeIndices.length;_i++){edge=edges[edgeIndices[_i]];if(edge.connected===true){edgeLength=edge.options.length===undefined?this.options.springLength:edge.options.length;dx=edge.from.x-edge.to.x;dy=edge.from.y-edge.to.y;distance=Math.sqrt(dx*dx+dy*dy);distance=distance===0?.01:distance;springForce=this.options.springConstant*(edgeLength-distance)/distance;fx=dx*springForce;fy=dy*springForce;if(edge.to.level!=edge.from.level){if(forces[edge.toId]!==undefined){forces[edge.toId].springFx-=fx;forces[edge.toId].springFy-=fy}if(forces[edge.fromId]!==undefined){forces[edge.fromId].springFx+=fx;forces[edge.fromId].springFy+=fy}}else{if(forces[edge.toId]!==undefined){forces[edge.toId].x-=factor*fx;forces[edge.toId].y-=factor*fy}if(forces[edge.fromId]!==undefined){forces[edge.fromId].x+=factor*fx;forces[edge.fromId].y+=factor*fy}}}}springForce=1;var springFx,springFy;for(var _i2=0;_i2<nodeIndices.length;_i2++){var _nodeId=nodeIndices[_i2];springFx=Math.min(springForce,Math.max(-springForce,forces[_nodeId].springFx));springFy=Math.min(springForce,Math.max(-springForce,forces[_nodeId].springFy));forces[_nodeId].x+=springFx;forces[_nodeId].y+=springFy}var totalFx=0;var totalFy=0;for(var _i3=0;_i3<nodeIndices.length;_i3++){var _nodeId2=nodeIndices[_i3];totalFx+=forces[_nodeId2].x;totalFy+=forces[_nodeId2].y}var correctionFx=totalFx/nodeIndices.length;var correctionFy=totalFy/nodeIndices.length;for(var _i4=0;_i4<nodeIndices.length;_i4++){var _nodeId3=nodeIndices[_i4];forces[_nodeId3].x-=correctionFx;forces[_nodeId3].y-=correctionFy}}}]);return HierarchicalSpringSolver}();exports[\"default\"]=HierarchicalSpringSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _BarnesHutSolver2=__webpack_require__(120);var _BarnesHutSolver3=_interopRequireDefault(_BarnesHutSolver2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var ForceAtlas2BasedRepulsionSolver=function(_BarnesHutSolver){(0,_inherits3[\"default\"])(ForceAtlas2BasedRepulsionSolver,_BarnesHutSolver);function ForceAtlas2BasedRepulsionSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,ForceAtlas2BasedRepulsionSolver);return(0,_possibleConstructorReturn3[\"default\"])(this,(ForceAtlas2BasedRepulsionSolver.__proto__||(0,_getPrototypeOf2[\"default\"])(ForceAtlas2BasedRepulsionSolver)).call(this,body,physicsBody,options))}(0,_createClass3[\"default\"])(ForceAtlas2BasedRepulsionSolver,[{key:\"_calculateForces\",value:function _calculateForces(distance,dx,dy,node,parentBranch){if(distance===0){distance=.1*Math.random();dx=distance}if(this.overlapAvoidanceFactor<1&&node.shape.radius){distance=Math.max(.1+this.overlapAvoidanceFactor*node.shape.radius,distance-node.shape.radius)}var degree=node.edges.length+1;var gravityForce=this.options.gravitationalConstant*parentBranch.mass*node.options.mass*degree/Math.pow(distance,2);var fx=dx*gravityForce;var fy=dy*gravityForce;this.physicsBody.forces[node.id].x+=fx;this.physicsBody.forces[node.id].y+=fy}}]);return ForceAtlas2BasedRepulsionSolver}(_BarnesHutSolver3[\"default\"]);exports[\"default\"]=ForceAtlas2BasedRepulsionSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _CentralGravitySolver2=__webpack_require__(121);var _CentralGravitySolver3=_interopRequireDefault(_CentralGravitySolver2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var ForceAtlas2BasedCentralGravitySolver=function(_CentralGravitySolver){(0,_inherits3[\"default\"])(ForceAtlas2BasedCentralGravitySolver,_CentralGravitySolver);function ForceAtlas2BasedCentralGravitySolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,ForceAtlas2BasedCentralGravitySolver);return(0,_possibleConstructorReturn3[\"default\"])(this,(ForceAtlas2BasedCentralGravitySolver.__proto__||(0,_getPrototypeOf2[\"default\"])(ForceAtlas2BasedCentralGravitySolver)).call(this,body,physicsBody,options))}(0,_createClass3[\"default\"])(ForceAtlas2BasedCentralGravitySolver,[{key:\"_calculateForces\",value:function _calculateForces(distance,dx,dy,forces,node){if(distance>0){var degree=node.edges.length+1;var gravityForce=this.options.centralGravity*degree*node.options.mass;forces[node.id].x=dx*gravityForce;forces[node.id].y=dy*gravityForce}}}]);return ForceAtlas2BasedCentralGravitySolver}(_CentralGravitySolver3[\"default\"]);exports[\"default\"]=ForceAtlas2BasedCentralGravitySolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var NetworkUtil=__webpack_require__(76)[\"default\"];var Cluster=__webpack_require__(228)[\"default\"];var Edge=__webpack_require__(74)[\"default\"];var Node=__webpack_require__(47)[\"default\"];var ClusterEngine=function(){function ClusterEngine(body){var _this=this;(0,_classCallCheck3[\"default\"])(this,ClusterEngine);this.body=body;this.clusteredNodes={};this.clusteredEdges={};this.options={};this.defaultOptions={};util.extend(this.options,this.defaultOptions);this.body.emitter.on(\"_resetData\",function(){_this.clusteredNodes={};_this.clusteredEdges={}})}(0,_createClass3[\"default\"])(ClusterEngine,[{key:\"clusterByHubsize\",value:function clusterByHubsize(hubsize,options){if(hubsize===undefined){hubsize=this._getHubSize()}else if((typeof hubsize===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(hubsize))===\"object\"){options=this._checkOptions(hubsize);hubsize=this._getHubSize()}var nodesToCluster=[];for(var i=0;i<this.body.nodeIndices.length;i++){var node=this.body.nodes[this.body.nodeIndices[i]];if(node.edges.length>=hubsize){nodesToCluster.push(node.id)}}for(var _i=0;_i<nodesToCluster.length;_i++){this.clusterByConnection(nodesToCluster[_i],options,true)}this.body.emitter.emit(\"_dataChanged\")}},{key:\"cluster\",value:function cluster(){var _this2=this;var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var refreshData=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(options.joinCondition===undefined){throw new Error(\"Cannot call clusterByNodeData without a joinCondition function in the options.\")}options=this._checkOptions(options);var childNodesObj={};var childEdgesObj={};util.forEach(this.body.nodes,function(node,nodeId){var clonedOptions=NetworkUtil.cloneOptions(node);if(options.joinCondition(clonedOptions)===true){childNodesObj[nodeId]=node;util.forEach(node.edges,function(edge){if(_this2.clusteredEdges[edge.id]===undefined){childEdgesObj[edge.id]=edge}})}});this._cluster(childNodesObj,childEdgesObj,options,refreshData)}},{key:\"clusterByEdgeCount\",value:function clusterByEdgeCount(edgeCount,options){var _this3=this;var refreshData=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;options=this._checkOptions(options);var clusters=[];var usedNodes={};var edge=void 0,edges=void 0,relevantEdgeCount=void 0;var _loop=function _loop(i){var childNodesObj={};var childEdgesObj={};var nodeId=_this3.body.nodeIndices[i];var node=_this3.body.nodes[nodeId];if(usedNodes[nodeId]===undefined){relevantEdgeCount=0;edges=[];for(var j=0;j<node.edges.length;j++){edge=node.edges[j];if(_this3.clusteredEdges[edge.id]===undefined){if(edge.toId!==edge.fromId){relevantEdgeCount++}edges.push(edge)}}if(relevantEdgeCount===edgeCount){checkJoinCondition=function checkJoinCondition(node){if(options.joinCondition===undefined||options.joinCondition===null){return true}var clonedOptions=NetworkUtil.cloneOptions(node);return options.joinCondition(clonedOptions)};var gatheringSuccessful=true;for(var _j=0;_j<edges.length;_j++){edge=edges[_j];var childNodeId=_this3._getConnectedId(edge,nodeId);if(checkJoinCondition(node)){childEdgesObj[edge.id]=edge;childNodesObj[nodeId]=node;childNodesObj[childNodeId]=_this3.body.nodes[childNodeId];usedNodes[nodeId]=true}else{gatheringSuccessful=false;break}}if((0,_keys2[\"default\"])(childNodesObj).length>0&&(0,_keys2[\"default\"])(childEdgesObj).length>0&&gatheringSuccessful===true){findClusterData=function findClusterData(){for(var n=0;n<clusters.length;++n){for(var m in childNodesObj){if(clusters[n].nodes[m]!==undefined){return clusters[n]}}}return undefined};foundCluster=findClusterData();if(foundCluster!==undefined){for(var m in childNodesObj){if(foundCluster.nodes[m]===undefined){foundCluster.nodes[m]=childNodesObj[m]}}for(var _m in childEdgesObj){if(foundCluster.edges[_m]===undefined){foundCluster.edges[_m]=childEdgesObj[_m]}}}else{clusters.push({nodes:childNodesObj,edges:childEdgesObj})}}}}};for(var i=0;i<this.body.nodeIndices.length;i++){var checkJoinCondition;var findClusterData;var foundCluster;_loop(i)}for(var i=0;i<clusters.length;i++){this._cluster(clusters[i].nodes,clusters[i].edges,options,false)}if(refreshData===true){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"clusterOutliers\",value:function clusterOutliers(options){var refreshData=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;this.clusterByEdgeCount(1,options,refreshData)}},{key:\"clusterBridges\",value:function clusterBridges(options){var refreshData=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;this.clusterByEdgeCount(2,options,refreshData)}},{key:\"clusterByConnection\",value:function clusterByConnection(nodeId,options){var refreshData=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;if(nodeId===undefined){throw new Error(\"No nodeId supplied to clusterByConnection!\")}if(this.body.nodes[nodeId]===undefined){throw new Error(\"The nodeId given to clusterByConnection does not exist!\")}var node=this.body.nodes[nodeId];options=this._checkOptions(options,node);if(options.clusterNodeProperties.x===undefined){options.clusterNodeProperties.x=node.x}if(options.clusterNodeProperties.y===undefined){options.clusterNodeProperties.y=node.y}if(options.clusterNodeProperties.fixed===undefined){options.clusterNodeProperties.fixed={};options.clusterNodeProperties.fixed.x=node.options.fixed.x;options.clusterNodeProperties.fixed.y=node.options.fixed.y}var childNodesObj={};var childEdgesObj={};var parentNodeId=node.id;var parentClonedOptions=NetworkUtil.cloneOptions(node);childNodesObj[parentNodeId]=node;for(var i=0;i<node.edges.length;i++){var edge=node.edges[i];if(this.clusteredEdges[edge.id]===undefined){var childNodeId=this._getConnectedId(edge,parentNodeId);if(this.clusteredNodes[childNodeId]===undefined){if(childNodeId!==parentNodeId){if(options.joinCondition===undefined){childEdgesObj[edge.id]=edge;childNodesObj[childNodeId]=this.body.nodes[childNodeId]}else{var childClonedOptions=NetworkUtil.cloneOptions(this.body.nodes[childNodeId]);if(options.joinCondition(parentClonedOptions,childClonedOptions)===true){childEdgesObj[edge.id]=edge;childNodesObj[childNodeId]=this.body.nodes[childNodeId]}}}else{childEdgesObj[edge.id]=edge}}}}var childNodeIDs=(0,_keys2[\"default\"])(childNodesObj).map(function(childNode){return childNodesObj[childNode].id});for(childNode in childNodesObj){if(!childNodesObj.hasOwnProperty(childNode))continue;var childNode=childNodesObj[childNode];for(var y=0;y<childNode.edges.length;y++){var childEdge=childNode.edges[y];if(childNodeIDs.indexOf(this._getConnectedId(childEdge,childNode.id))>-1){childEdgesObj[childEdge.id]=childEdge}}}this._cluster(childNodesObj,childEdgesObj,options,refreshData)}},{key:\"_createClusterEdges\",value:function _createClusterEdges(childNodesObj,childEdgesObj,clusterNodeProperties,clusterEdgeProperties){var edge=void 0,childNodeId=void 0,childNode=void 0,toId=void 0,fromId=void 0,otherNodeId=void 0;var childKeys=(0,_keys2[\"default\"])(childNodesObj);var createEdges=[];for(var i=0;i<childKeys.length;i++){childNodeId=childKeys[i];childNode=childNodesObj[childNodeId];for(var j=0;j<childNode.edges.length;j++){edge=childNode.edges[j];if(this.clusteredEdges[edge.id]===undefined){if(edge.toId==edge.fromId){childEdgesObj[edge.id]=edge}else{if(edge.toId==childNodeId){toId=clusterNodeProperties.id;fromId=edge.fromId;otherNodeId=fromId}else{toId=edge.toId;fromId=clusterNodeProperties.id;otherNodeId=toId}}if(childNodesObj[otherNodeId]===undefined){createEdges.push({edge:edge,fromId:fromId,toId:toId})}}}}var newEdges=[];var getNewEdge=function getNewEdge(createdEdge){for(var _j2=0;_j2<newEdges.length;_j2++){var newEdge=newEdges[_j2];var matchToDirection=createdEdge.fromId===newEdge.fromId&&createdEdge.toId===newEdge.toId;var matchFromDirection=createdEdge.fromId===newEdge.toId&&createdEdge.toId===newEdge.fromId;if(matchToDirection||matchFromDirection){return newEdge}}return null};for(var _j3=0;_j3<createEdges.length;_j3++){var createdEdge=createEdges[_j3];var _edge=createdEdge.edge;var newEdge=getNewEdge(createdEdge);if(newEdge===null){newEdge=this._createClusteredEdge(createdEdge.fromId,createdEdge.toId,_edge,clusterEdgeProperties);newEdges.push(newEdge)}else{newEdge.clusteringEdgeReplacingIds.push(_edge.id)}this.body.edges[_edge.id].edgeReplacedById=newEdge.id;this._backupEdgeOptions(_edge);_edge.setOptions({physics:false})}}},{key:\"_checkOptions\",value:function _checkOptions(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(options.clusterEdgeProperties===undefined){options.clusterEdgeProperties={}}if(options.clusterNodeProperties===undefined){options.clusterNodeProperties={}}return options}},{key:\"_cluster\",value:function _cluster(childNodesObj,childEdgesObj,options){var refreshData=arguments.length>3&&arguments[3]!==undefined?arguments[3]:true;var tmpNodesToRemove=[];for(var _nodeId in childNodesObj){if(childNodesObj.hasOwnProperty(_nodeId)){if(this.clusteredNodes[_nodeId]!==undefined){tmpNodesToRemove.push(_nodeId)}}}for(var n=0;n<tmpNodesToRemove.length;++n){delete childNodesObj[tmpNodesToRemove[n]]}if((0,_keys2[\"default\"])(childNodesObj).length==0){return}if((0,_keys2[\"default\"])(childNodesObj).length==1&&options.clusterNodeProperties.allowSingleNodeCluster!=true){return}var clusterNodeProperties=util.deepExtend({},options.clusterNodeProperties);if(options.processProperties!==undefined){var childNodesOptions=[];for(var _nodeId2 in childNodesObj){if(childNodesObj.hasOwnProperty(_nodeId2)){var clonedOptions=NetworkUtil.cloneOptions(childNodesObj[_nodeId2]);childNodesOptions.push(clonedOptions)}}var childEdgesOptions=[];for(var edgeId in childEdgesObj){if(childEdgesObj.hasOwnProperty(edgeId)){if(edgeId.substr(0,12)!==\"clusterEdge:\"){var _clonedOptions=NetworkUtil.cloneOptions(childEdgesObj[edgeId],\"edge\");childEdgesOptions.push(_clonedOptions)}}}clusterNodeProperties=options.processProperties(clusterNodeProperties,childNodesOptions,childEdgesOptions);if(!clusterNodeProperties){throw new Error(\"The processProperties function does not return properties!\")}}if(clusterNodeProperties.id===undefined){clusterNodeProperties.id=\"cluster:\"+util.randomUUID()}var clusterId=clusterNodeProperties.id;if(clusterNodeProperties.label===undefined){clusterNodeProperties.label=\"cluster\"}var pos=undefined;if(clusterNodeProperties.x===undefined){pos=this._getClusterPosition(childNodesObj);clusterNodeProperties.x=pos.x}if(clusterNodeProperties.y===undefined){if(pos===undefined){pos=this._getClusterPosition(childNodesObj)}clusterNodeProperties.y=pos.y}clusterNodeProperties.id=clusterId;var clusterNode=this.body.functions.createNode(clusterNodeProperties,Cluster);clusterNode.containedNodes=childNodesObj;clusterNode.containedEdges=childEdgesObj;clusterNode.clusterEdgeProperties=options.clusterEdgeProperties;this.body.nodes[clusterNodeProperties.id]=clusterNode;this._clusterEdges(childNodesObj,childEdgesObj,clusterNodeProperties,options.clusterEdgeProperties);clusterNodeProperties.id=undefined;if(refreshData===true){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"_backupEdgeOptions\",value:function _backupEdgeOptions(edge){if(this.clusteredEdges[edge.id]===undefined){this.clusteredEdges[edge.id]={physics:edge.options.physics}}}},{key:\"_restoreEdge\",value:function _restoreEdge(edge){var originalOptions=this.clusteredEdges[edge.id];if(originalOptions!==undefined){edge.setOptions({physics:originalOptions.physics});delete this.clusteredEdges[edge.id]}}},{key:\"isCluster\",value:function isCluster(nodeId){if(this.body.nodes[nodeId]!==undefined){return this.body.nodes[nodeId].isCluster===true}else{console.log(\"Node does not exist.\");return false}}},{key:\"_getClusterPosition\",value:function _getClusterPosition(childNodesObj){var childKeys=(0,_keys2[\"default\"])(childNodesObj);var minX=childNodesObj[childKeys[0]].x;var maxX=childNodesObj[childKeys[0]].x;var minY=childNodesObj[childKeys[0]].y;var maxY=childNodesObj[childKeys[0]].y;var node=void 0;for(var i=1;i<childKeys.length;i++){node=childNodesObj[childKeys[i]];minX=node.x<minX?node.x:minX;maxX=node.x>maxX?node.x:maxX\n;minY=node.y<minY?node.y:minY;maxY=node.y>maxY?node.y:maxY}return{x:.5*(minX+maxX),y:.5*(minY+maxY)}}},{key:\"openCluster\",value:function openCluster(clusterNodeId,options){var refreshData=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;if(clusterNodeId===undefined){throw new Error(\"No clusterNodeId supplied to openCluster.\")}var clusterNode=this.body.nodes[clusterNodeId];if(clusterNode===undefined){throw new Error(\"The clusterNodeId supplied to openCluster does not exist.\")}if(clusterNode.isCluster!==true||clusterNode.containedNodes===undefined||clusterNode.containedEdges===undefined){throw new Error(\"The node:\"+clusterNodeId+\" is not a valid cluster.\")}var stack=this.findNode(clusterNodeId);var parentIndex=stack.indexOf(clusterNodeId)-1;if(parentIndex>=0){var parentClusterNodeId=stack[parentIndex];var parentClusterNode=this.body.nodes[parentClusterNodeId];parentClusterNode._openChildCluster(clusterNodeId);delete this.body.nodes[clusterNodeId];if(refreshData===true){this.body.emitter.emit(\"_dataChanged\")}return}var containedNodes=clusterNode.containedNodes;var containedEdges=clusterNode.containedEdges;if(options!==undefined&&options.releaseFunction!==undefined&&typeof options.releaseFunction===\"function\"){var positions={};var clusterPosition={x:clusterNode.x,y:clusterNode.y};for(var _nodeId3 in containedNodes){if(containedNodes.hasOwnProperty(_nodeId3)){var containedNode=this.body.nodes[_nodeId3];positions[_nodeId3]={x:containedNode.x,y:containedNode.y}}}var newPositions=options.releaseFunction(clusterPosition,positions);for(var _nodeId4 in containedNodes){if(containedNodes.hasOwnProperty(_nodeId4)){var _containedNode=this.body.nodes[_nodeId4];if(newPositions[_nodeId4]!==undefined){_containedNode.x=newPositions[_nodeId4].x===undefined?clusterNode.x:newPositions[_nodeId4].x;_containedNode.y=newPositions[_nodeId4].y===undefined?clusterNode.y:newPositions[_nodeId4].y}}}}else{util.forEach(containedNodes,function(containedNode){if(containedNode.options.fixed.x===false){containedNode.x=clusterNode.x}if(containedNode.options.fixed.y===false){containedNode.y=clusterNode.y}})}for(var _nodeId5 in containedNodes){if(containedNodes.hasOwnProperty(_nodeId5)){var _containedNode2=this.body.nodes[_nodeId5];_containedNode2.vx=clusterNode.vx;_containedNode2.vy=clusterNode.vy;_containedNode2.setOptions({physics:true});delete this.clusteredNodes[_nodeId5]}}var edgesToBeDeleted=[];for(var i=0;i<clusterNode.edges.length;i++){edgesToBeDeleted.push(clusterNode.edges[i])}for(var _i2=0;_i2<edgesToBeDeleted.length;_i2++){var edge=edgesToBeDeleted[_i2];var otherNodeId=this._getConnectedId(edge,clusterNodeId);var otherNode=this.clusteredNodes[otherNodeId];for(var j=0;j<edge.clusteringEdgeReplacingIds.length;j++){var transferId=edge.clusteringEdgeReplacingIds[j];var transferEdge=this.body.edges[transferId];if(transferEdge===undefined)continue;if(otherNode!==undefined){var otherCluster=this.body.nodes[otherNode.clusterId];otherCluster.containedEdges[transferEdge.id]=transferEdge;delete containedEdges[transferEdge.id];var fromId=transferEdge.fromId;var toId=transferEdge.toId;if(transferEdge.toId==otherNodeId){toId=otherNode.clusterId}else{fromId=otherNode.clusterId}this._createClusteredEdge(fromId,toId,transferEdge,otherCluster.clusterEdgeProperties,{hidden:false,physics:true})}else{this._restoreEdge(transferEdge)}}edge.remove()}for(var edgeId in containedEdges){if(containedEdges.hasOwnProperty(edgeId)){this._restoreEdge(containedEdges[edgeId])}}delete this.body.nodes[clusterNodeId];if(refreshData===true){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"getNodesInCluster\",value:function getNodesInCluster(clusterId){var nodesArray=[];if(this.isCluster(clusterId)===true){var containedNodes=this.body.nodes[clusterId].containedNodes;for(var _nodeId6 in containedNodes){if(containedNodes.hasOwnProperty(_nodeId6)){nodesArray.push(this.body.nodes[_nodeId6].id)}}}return nodesArray}},{key:\"findNode\",value:function findNode(nodeId){var stack=[];var max=100;var counter=0;var node=void 0;while(this.clusteredNodes[nodeId]!==undefined&&counter<max){node=this.body.nodes[nodeId];if(node===undefined)return[];stack.push(node.id);nodeId=this.clusteredNodes[nodeId].clusterId;counter++}node=this.body.nodes[nodeId];if(node===undefined)return[];stack.push(node.id);stack.reverse();return stack}},{key:\"updateClusteredNode\",value:function updateClusteredNode(clusteredNodeId,newOptions){if(clusteredNodeId===undefined){throw new Error(\"No clusteredNodeId supplied to updateClusteredNode.\")}if(newOptions===undefined){throw new Error(\"No newOptions supplied to updateClusteredNode.\")}if(this.body.nodes[clusteredNodeId]===undefined){throw new Error(\"The clusteredNodeId supplied to updateClusteredNode does not exist.\")}this.body.nodes[clusteredNodeId].setOptions(newOptions);this.body.emitter.emit(\"_dataChanged\")}},{key:\"updateEdge\",value:function updateEdge(startEdgeId,newOptions){if(startEdgeId===undefined){throw new Error(\"No startEdgeId supplied to updateEdge.\")}if(newOptions===undefined){throw new Error(\"No newOptions supplied to updateEdge.\")}if(this.body.edges[startEdgeId]===undefined){throw new Error(\"The startEdgeId supplied to updateEdge does not exist.\")}var allEdgeIds=this.getClusteredEdges(startEdgeId);for(var i=0;i<allEdgeIds.length;i++){var edge=this.body.edges[allEdgeIds[i]];edge.setOptions(newOptions)}this.body.emitter.emit(\"_dataChanged\")}},{key:\"getClusteredEdges\",value:function getClusteredEdges(edgeId){var stack=[];var max=100;var counter=0;while(edgeId!==undefined&&this.body.edges[edgeId]!==undefined&&counter<max){stack.push(this.body.edges[edgeId].id);edgeId=this.body.edges[edgeId].edgeReplacedById;counter++}stack.reverse();return stack}},{key:\"getBaseEdge\",value:function getBaseEdge(clusteredEdgeId){return this.getBaseEdges(clusteredEdgeId)[0]}},{key:\"getBaseEdges\",value:function getBaseEdges(clusteredEdgeId){var IdsToHandle=[clusteredEdgeId];var doneIds=[];var foundIds=[];var max=100;var counter=0;while(IdsToHandle.length>0&&counter<max){var nextId=IdsToHandle.pop();if(nextId===undefined)continue;var nextEdge=this.body.edges[nextId];if(nextEdge===undefined)continue;counter++;var replacingIds=nextEdge.clusteringEdgeReplacingIds;if(replacingIds===undefined){foundIds.push(nextId)}else{for(var i=0;i<replacingIds.length;++i){var replacingId=replacingIds[i];if(IdsToHandle.indexOf(replacingIds)!==-1||doneIds.indexOf(replacingIds)!==-1){continue}IdsToHandle.push(replacingId)}}doneIds.push(nextId)}return foundIds}},{key:\"_getConnectedId\",value:function _getConnectedId(edge,nodeId){if(edge.toId!=nodeId){return edge.toId}else if(edge.fromId!=nodeId){return edge.fromId}else{return edge.fromId}}},{key:\"_getHubSize\",value:function _getHubSize(){var average=0;var averageSquared=0;var hubCounter=0;var largestHub=0;for(var i=0;i<this.body.nodeIndices.length;i++){var _node=this.body.nodes[this.body.nodeIndices[i]];if(_node.edges.length>largestHub){largestHub=_node.edges.length}average+=_node.edges.length;averageSquared+=Math.pow(_node.edges.length,2);hubCounter+=1}average=average/hubCounter;averageSquared=averageSquared/hubCounter;var variance=averageSquared-Math.pow(average,2);var standardDeviation=Math.sqrt(variance);var hubThreshold=Math.floor(average+2*standardDeviation);if(hubThreshold>largestHub){hubThreshold=largestHub}return hubThreshold}},{key:\"_createClusteredEdge\",value:function _createClusteredEdge(fromId,toId,baseEdge,clusterEdgeProperties,extraOptions){var clonedOptions=NetworkUtil.cloneOptions(baseEdge,\"edge\");util.deepExtend(clonedOptions,clusterEdgeProperties);clonedOptions.from=fromId;clonedOptions.to=toId;clonedOptions.id=\"clusterEdge:\"+util.randomUUID();if(extraOptions!==undefined){util.deepExtend(clonedOptions,extraOptions)}var newEdge=this.body.functions.createEdge(clonedOptions);newEdge.clusteringEdgeReplacingIds=[baseEdge.id];newEdge.connect();this.body.edges[newEdge.id]=newEdge;return newEdge}},{key:\"_clusterEdges\",value:function _clusterEdges(childNodes,childEdges,clusterNode,clusterEdgeProperties){if(childEdges instanceof Edge){var edge=childEdges;var obj={};obj[edge.id]=edge;childEdges=obj}if(childNodes instanceof Node){var _node2=childNodes;var _obj={};_obj[_node2.id]=_node2;childNodes=_obj}if(clusterNode===undefined||clusterNode===null){throw new Error(\"_clusterEdges: parameter clusterNode required\")}if(clusterEdgeProperties===undefined){clusterEdgeProperties=clusterNode.clusterEdgeProperties}this._createClusterEdges(childNodes,childEdges,clusterNode,clusterEdgeProperties);for(var edgeId in childEdges){if(childEdges.hasOwnProperty(edgeId)){if(this.body.edges[edgeId]!==undefined){var _edge2=this.body.edges[edgeId];this._backupEdgeOptions(_edge2);_edge2.setOptions({physics:false})}}}for(var _nodeId7 in childNodes){if(childNodes.hasOwnProperty(_nodeId7)){this.clusteredNodes[_nodeId7]={clusterId:clusterNode.id,node:this.body.nodes[_nodeId7]};this.body.nodes[_nodeId7].setOptions({physics:false})}}}},{key:\"_getClusterNodeForNode\",value:function _getClusterNodeForNode(nodeId){if(nodeId===undefined)return undefined;var clusteredNode=this.clusteredNodes[nodeId];if(clusteredNode===undefined)return undefined;var clusterId=clusteredNode.clusterId;if(clusterId===undefined)return undefined;return this.body.nodes[clusterId]}},{key:\"_filter\",value:function _filter(arr,callback){var ret=[];util.forEach(arr,function(item){if(callback(item)){ret.push(item)}});return ret}},{key:\"_updateState\",value:function _updateState(){var _this4=this;var nodeId=void 0;var deletedNodeIds=[];var deletedEdgeIds=[];var eachClusterNode=function eachClusterNode(callback){util.forEach(_this4.body.nodes,function(node){if(node.isCluster===true){callback(node)}})};for(nodeId in this.clusteredNodes){if(!this.clusteredNodes.hasOwnProperty(nodeId))continue;var _node3=this.body.nodes[nodeId];if(_node3===undefined){deletedNodeIds.push(nodeId)}}eachClusterNode(function(clusterNode){for(var n=0;n<deletedNodeIds.length;n++){delete clusterNode.containedNodes[deletedNodeIds[n]]}});for(var n=0;n<deletedNodeIds.length;n++){delete this.clusteredNodes[deletedNodeIds[n]]}util.forEach(this.clusteredEdges,function(edgeId){var edge=_this4.body.edges[edgeId];if(edge===undefined||!edge.endPointsValid()){deletedEdgeIds.push(edgeId)}});eachClusterNode(function(clusterNode){util.forEach(clusterNode.containedEdges,function(edge,edgeId){if(!edge.endPointsValid()&&deletedEdgeIds.indexOf(edgeId)===-1){deletedEdgeIds.push(edgeId)}})});util.forEach(this.body.edges,function(edge,edgeId){var isValid=true;var replacedIds=edge.clusteringEdgeReplacingIds;if(replacedIds!==undefined){var numValid=0;util.forEach(replacedIds,function(containedEdgeId){var containedEdge=_this4.body.edges[containedEdgeId];if(containedEdge!==undefined&&containedEdge.endPointsValid()){numValid+=1}});isValid=numValid>0}if(!edge.endPointsValid()||!isValid){deletedEdgeIds.push(edgeId)}});eachClusterNode(function(clusterNode){util.forEach(deletedEdgeIds,function(deletedEdgeId){delete clusterNode.containedEdges[deletedEdgeId];util.forEach(clusterNode.edges,function(edge,m){if(edge.id===deletedEdgeId){clusterNode.edges[m]=null;return}edge.clusteringEdgeReplacingIds=_this4._filter(edge.clusteringEdgeReplacingIds,function(id){return deletedEdgeIds.indexOf(id)===-1})});clusterNode.edges=_this4._filter(clusterNode.edges,function(item){return item!==null})})});util.forEach(deletedEdgeIds,function(edgeId){delete _this4.clusteredEdges[edgeId]});util.forEach(deletedEdgeIds,function(edgeId){delete _this4.body.edges[edgeId]});var ids=(0,_keys2[\"default\"])(this.body.edges);util.forEach(ids,function(edgeId){var edge=_this4.body.edges[edgeId];var shouldBeClustered=_this4._isClusteredNode(edge.fromId)||_this4._isClusteredNode(edge.toId);if(shouldBeClustered===_this4._isClusteredEdge(edge.id)){return}if(shouldBeClustered){var clusterFrom=_this4._getClusterNodeForNode(edge.fromId);if(clusterFrom!==undefined){_this4._clusterEdges(_this4.body.nodes[edge.fromId],edge,clusterFrom)}var clusterTo=_this4._getClusterNodeForNode(edge.toId);if(clusterTo!==undefined){_this4._clusterEdges(_this4.body.nodes[edge.toId],edge,clusterTo)}}else{throw new Error(\"remove edge from clustering not implemented!\")}});var changed=false;var continueLoop=true;var _loop2=function _loop2(){var clustersToOpen=[];eachClusterNode(function(clusterNode){var numNodes=(0,_keys2[\"default\"])(clusterNode.containedNodes).length;var allowSingle=clusterNode.options.allowSingleNodeCluster===true;if(allowSingle&&numNodes<1||!allowSingle&&numNodes<2){clustersToOpen.push(clusterNode.id)}});for(var _n=0;_n<clustersToOpen.length;++_n){_this4.openCluster(clustersToOpen[_n],{},false)}continueLoop=clustersToOpen.length>0;changed=changed||continueLoop};while(continueLoop){_loop2()}if(changed){this._updateState()}}},{key:\"_isClusteredNode\",value:function _isClusteredNode(nodeId){return this.clusteredNodes[nodeId]!==undefined}},{key:\"_isClusteredEdge\",value:function _isClusteredEdge(edgeId){return this.clusteredEdges[edgeId]!==undefined}}]);return ClusterEngine}();exports[\"default\"]=ClusterEngine},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Node=__webpack_require__(47)[\"default\"];var Cluster=function(_Node){(0,_inherits3[\"default\"])(Cluster,_Node);function Cluster(options,body,imagelist,grouplist,globalOptions,defaultOptions){(0,_classCallCheck3[\"default\"])(this,Cluster);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Cluster.__proto__||(0,_getPrototypeOf2[\"default\"])(Cluster)).call(this,options,body,imagelist,grouplist,globalOptions,defaultOptions));_this.isCluster=true;_this.containedNodes={};_this.containedEdges={};return _this}(0,_createClass3[\"default\"])(Cluster,[{key:\"_openChildCluster\",value:function _openChildCluster(childClusterId){var _this2=this;var childCluster=this.body.nodes[childClusterId];if(this.containedNodes[childClusterId]===undefined){throw new Error(\"node with id: \"+childClusterId+\" not in current cluster\")}if(!childCluster.isCluster){throw new Error(\"node with id: \"+childClusterId+\" is not a cluster\")}delete this.containedNodes[childClusterId];util.forEach(childCluster.edges,function(edge){delete _this2.containedEdges[edge.id]});util.forEach(childCluster.containedNodes,function(node,nodeId){_this2.containedNodes[nodeId]=node});childCluster.containedNodes={};util.forEach(childCluster.containedEdges,function(edge,edgeId){_this2.containedEdges[edgeId]=edge});childCluster.containedEdges={};util.forEach(childCluster.edges,function(clusterEdge){util.forEach(_this2.edges,function(parentClusterEdge){var index=parentClusterEdge.clusteringEdgeReplacingIds.indexOf(clusterEdge.id);if(index===-1)return;util.forEach(clusterEdge.clusteringEdgeReplacingIds,function(srcId){parentClusterEdge.clusteringEdgeReplacingIds.push(srcId);_this2.body.edges[srcId].edgeReplacedById=parentClusterEdge.id});parentClusterEdge.clusteringEdgeReplacingIds.splice(index,1)})});childCluster.edges=[]}}]);return Cluster}(Node);exports[\"default\"]=Cluster},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _initRequestAnimationFrame(){var func;if(window!==undefined){func=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame}if(func===undefined){window.requestAnimationFrame=function(callback){callback()}}else{window.requestAnimationFrame=func}}var util=__webpack_require__(2);var CanvasRenderer=function(){function CanvasRenderer(body,canvas){(0,_classCallCheck3[\"default\"])(this,CanvasRenderer);_initRequestAnimationFrame();this.body=body;this.canvas=canvas;this.redrawRequested=false;this.renderTimer=undefined;this.requiresTimeout=true;this.renderingActive=false;this.renderRequests=0;this.allowRedraw=true;this.dragging=false;this.options={};this.defaultOptions={hideEdgesOnDrag:false,hideNodesOnDrag:false};util.extend(this.options,this.defaultOptions);this._determineBrowserMethod();this.bindEventListeners()}(0,_createClass3[\"default\"])(CanvasRenderer,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this=this;this.body.emitter.on(\"dragStart\",function(){_this.dragging=true});this.body.emitter.on(\"dragEnd\",function(){_this.dragging=false});this.body.emitter.on(\"_resizeNodes\",function(){_this._resizeNodes()});this.body.emitter.on(\"_redraw\",function(){if(_this.renderingActive===false){_this._redraw()}});this.body.emitter.on(\"_blockRedraw\",function(){_this.allowRedraw=false});this.body.emitter.on(\"_allowRedraw\",function(){_this.allowRedraw=true;_this.redrawRequested=false});this.body.emitter.on(\"_requestRedraw\",this._requestRedraw.bind(this));this.body.emitter.on(\"_startRendering\",function(){_this.renderRequests+=1;_this.renderingActive=true;_this._startRendering()});this.body.emitter.on(\"_stopRendering\",function(){_this.renderRequests-=1;_this.renderingActive=_this.renderRequests>0;_this.renderTimer=undefined});this.body.emitter.on(\"destroy\",function(){_this.renderRequests=0;_this.allowRedraw=false;_this.renderingActive=false;if(_this.requiresTimeout===true){clearTimeout(_this.renderTimer)}else{window.cancelAnimationFrame(_this.renderTimer)}_this.body.emitter.off()})}},{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){var fields=[\"hideEdgesOnDrag\",\"hideNodesOnDrag\"];util.selectiveDeepExtend(fields,this.options,options)}}},{key:\"_requestNextFrame\",value:function _requestNextFrame(callback,delay){if(typeof window===\"undefined\")return;var timer=void 0;var myWindow=window;if(this.requiresTimeout===true){timer=myWindow.setTimeout(callback,delay)}else{if(myWindow.requestAnimationFrame){timer=myWindow.requestAnimationFrame(callback)}}return timer}},{key:\"_startRendering\",value:function _startRendering(){if(this.renderingActive===true){if(this.renderTimer===undefined){this.renderTimer=this._requestNextFrame(this._renderStep.bind(this),this.simulationInterval)}}}},{key:\"_renderStep\",value:function _renderStep(){if(this.renderingActive===true){this.renderTimer=undefined;if(this.requiresTimeout===true){this._startRendering()}this._redraw();if(this.requiresTimeout===false){this._startRendering()}}}},{key:\"redraw\",value:function redraw(){this.body.emitter.emit(\"setSize\");this._redraw()}},{key:\"_requestRedraw\",value:function _requestRedraw(){var _this2=this;if(this.redrawRequested!==true&&this.renderingActive===false&&this.allowRedraw===true){this.redrawRequested=true;this._requestNextFrame(function(){_this2._redraw(false)},0)}}},{key:\"_redraw\",value:function _redraw(){var hidden=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this.allowRedraw===true){this.body.emitter.emit(\"initRedraw\");this.redrawRequested=false;if(this.canvas.frame.canvas.width===0||this.canvas.frame.canvas.height===0){this.canvas.setSize()}this.canvas.setTransform();var ctx=this.canvas.getContext();var w=this.canvas.frame.canvas.clientWidth;var h=this.canvas.frame.canvas.clientHeight;ctx.clearRect(0,0,w,h);if(this.canvas.frame.clientWidth===0){return}ctx.save();ctx.translate(this.body.view.translation.x,this.body.view.translation.y);ctx.scale(this.body.view.scale,this.body.view.scale);ctx.beginPath();this.body.emitter.emit(\"beforeDrawing\",ctx);ctx.closePath();if(hidden===false){if(this.dragging===false||this.dragging===true&&this.options.hideEdgesOnDrag===false){this._drawEdges(ctx)}}if(this.dragging===false||this.dragging===true&&this.options.hideNodesOnDrag===false){this._drawNodes(ctx,hidden)}ctx.beginPath();this.body.emitter.emit(\"afterDrawing\",ctx);ctx.closePath();ctx.restore();if(hidden===true){ctx.clearRect(0,0,w,h)}}}},{key:\"_resizeNodes\",value:function _resizeNodes(){this.canvas.setTransform();var ctx=this.canvas.getContext();ctx.save();ctx.translate(this.body.view.translation.x,this.body.view.translation.y);ctx.scale(this.body.view.scale,this.body.view.scale);var nodes=this.body.nodes;var node=void 0;for(var nodeId in nodes){if(nodes.hasOwnProperty(nodeId)){node=nodes[nodeId];node.resize(ctx);node.updateBoundingBox(ctx,node.selected)}}ctx.restore()}},{key:\"_drawNodes\",value:function _drawNodes(ctx){var alwaysShow=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var nodes=this.body.nodes;var nodeIndices=this.body.nodeIndices;var node=void 0;var selected=[];var margin=20;var topLeft=this.canvas.DOMtoCanvas({x:-margin,y:-margin});var bottomRight=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+margin,y:this.canvas.frame.canvas.clientHeight+margin});var viewableArea={top:topLeft.y,left:topLeft.x,bottom:bottomRight.y,right:bottomRight.x};for(var i=0;i<nodeIndices.length;i++){node=nodes[nodeIndices[i]];if(node.isSelected()){selected.push(nodeIndices[i])}else{if(alwaysShow===true){node.draw(ctx)}else if(node.isBoundingBoxOverlappingWith(viewableArea)===true){node.draw(ctx)}else{node.updateBoundingBox(ctx,node.selected)}}}for(var _i=0;_i<selected.length;_i++){node=nodes[selected[_i]];node.draw(ctx)}}},{key:\"_drawEdges\",value:function _drawEdges(ctx){var edges=this.body.edges;var edgeIndices=this.body.edgeIndices;var edge=void 0;for(var i=0;i<edgeIndices.length;i++){edge=edges[edgeIndices[i]];if(edge.connected===true){edge.draw(ctx)}}}},{key:\"_determineBrowserMethod\",value:function _determineBrowserMethod(){if(typeof window!==\"undefined\"){var browserType=navigator.userAgent.toLowerCase();this.requiresTimeout=false;if(browserType.indexOf(\"msie 9.0\")!=-1){this.requiresTimeout=true}else if(browserType.indexOf(\"safari\")!=-1){if(browserType.indexOf(\"chrome\")<=-1){this.requiresTimeout=true}}}else{this.requiresTimeout=true}}}]);return CanvasRenderer}();exports[\"default\"]=CanvasRenderer},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hammer=__webpack_require__(10);var hammerUtil=__webpack_require__(37);var util=__webpack_require__(2);var Canvas=function(){function Canvas(body){(0,_classCallCheck3[\"default\"])(this,Canvas);this.body=body;this.pixelRatio=1;this.resizeTimer=undefined;this.resizeFunction=this._onResize.bind(this);this.cameraState={};this.initialized=false;this.canvasViewCenter={};this.options={};this.defaultOptions={autoResize:true,height:\"100%\",width:\"100%\"};util.extend(this.options,this.defaultOptions);this.bindEventListeners()}(0,_createClass3[\"default\"])(Canvas,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this=this;this.body.emitter.once(\"resize\",function(obj){if(obj.width!==0){_this.body.view.translation.x=obj.width*.5}if(obj.height!==0){_this.body.view.translation.y=obj.height*.5}});this.body.emitter.on(\"setSize\",this.setSize.bind(this));this.body.emitter.on(\"destroy\",function(){_this.hammerFrame.destroy();_this.hammer.destroy();_this._cleanUp()})}},{key:\"setOptions\",value:function setOptions(options){var _this2=this;if(options!==undefined){var fields=[\"width\",\"height\",\"autoResize\"];util.selectiveDeepExtend(fields,this.options,options)}if(this.options.autoResize===true){this._cleanUp();this.resizeTimer=setInterval(function(){var changed=_this2.setSize();if(changed===true){_this2.body.emitter.emit(\"_requestRedraw\")}},1e3);this.resizeFunction=this._onResize.bind(this);util.addEventListener(window,\"resize\",this.resizeFunction)}}},{key:\"_cleanUp\",value:function _cleanUp(){if(this.resizeTimer!==undefined){clearInterval(this.resizeTimer)}util.removeEventListener(window,\"resize\",this.resizeFunction);this.resizeFunction=undefined}},{key:\"_onResize\",value:function _onResize(){this.setSize();this.body.emitter.emit(\"_redraw\")}},{key:\"_getCameraState\",value:function _getCameraState(){var pixelRatio=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.pixelRatio;if(this.initialized===true){this.cameraState.previousWidth=this.frame.canvas.width/pixelRatio;this.cameraState.previousHeight=this.frame.canvas.height/pixelRatio;this.cameraState.scale=this.body.view.scale;this.cameraState.position=this.DOMtoCanvas({x:.5*this.frame.canvas.width/pixelRatio,y:.5*this.frame.canvas.height/pixelRatio})}}},{key:\"_setCameraState\",value:function _setCameraState(){if(this.cameraState.scale!==undefined&&this.frame.canvas.clientWidth!==0&&this.frame.canvas.clientHeight!==0&&this.pixelRatio!==0&&this.cameraState.previousWidth>0){var widthRatio=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth;var heightRatio=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight;var newScale=this.cameraState.scale;if(widthRatio!=1&&heightRatio!=1){newScale=this.cameraState.scale*.5*(widthRatio+heightRatio)}else if(widthRatio!=1){newScale=this.cameraState.scale*widthRatio}else if(heightRatio!=1){newScale=this.cameraState.scale*heightRatio}this.body.view.scale=newScale;var currentViewCenter=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight});var distanceFromCenter={x:currentViewCenter.x-this.cameraState.position.x,y:currentViewCenter.y-this.cameraState.position.y};this.body.view.translation.x+=distanceFromCenter.x*this.body.view.scale;this.body.view.translation.y+=distanceFromCenter.y*this.body.view.scale}}},{key:\"_prepareValue\",value:function _prepareValue(value){if(typeof value===\"number\"){return value+\"px\"}else if(typeof value===\"string\"){if(value.indexOf(\"%\")!==-1||value.indexOf(\"px\")!==-1){return value}else if(value.indexOf(\"%\")===-1){return value+\"px\"}}throw new Error(\"Could not use the value supplied for width or height:\"+value)}},{key:\"_create\",value:function _create(){while(this.body.container.hasChildNodes()){this.body.container.removeChild(this.body.container.firstChild)}this.frame=document.createElement(\"div\");this.frame.className=\"vis-network\";this.frame.style.position=\"relative\";this.frame.style.overflow=\"hidden\";this.frame.tabIndex=900;this.frame.canvas=document.createElement(\"canvas\");this.frame.canvas.style.position=\"relative\";this.frame.appendChild(this.frame.canvas);if(!this.frame.canvas.getContext){var noCanvas=document.createElement(\"DIV\");noCanvas.style.color=\"red\";noCanvas.style.fontWeight=\"bold\";noCanvas.style.padding=\"10px\";noCanvas.innerHTML=\"Error: your browser does not support HTML canvas\";this.frame.canvas.appendChild(noCanvas)}else{this._setPixelRatio();this.setTransform()}this.body.container.appendChild(this.frame);this.body.view.scale=1;this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight};this._bindHammer()}},{key:\"_bindHammer\",value:function _bindHammer(){var _this3=this;if(this.hammer!==undefined){this.hammer.destroy()}this.drag={};this.pinch={};this.hammer=new Hammer(this.frame.canvas);this.hammer.get(\"pinch\").set({enable:true});this.hammer.get(\"pan\").set({threshold:5,direction:Hammer.DIRECTION_ALL});hammerUtil.onTouch(this.hammer,function(event){_this3.body.eventListeners.onTouch(event)});this.hammer.on(\"tap\",function(event){_this3.body.eventListeners.onTap(event)});this.hammer.on(\"doubletap\",function(event){_this3.body.eventListeners.onDoubleTap(event)});this.hammer.on(\"press\",function(event){_this3.body.eventListeners.onHold(event)});this.hammer.on(\"panstart\",function(event){_this3.body.eventListeners.onDragStart(event)});this.hammer.on(\"panmove\",function(event){_this3.body.eventListeners.onDrag(event)});this.hammer.on(\"panend\",function(event){_this3.body.eventListeners.onDragEnd(event)});this.hammer.on(\"pinch\",function(event){_this3.body.eventListeners.onPinch(event)});this.frame.canvas.addEventListener(\"mousewheel\",function(event){_this3.body.eventListeners.onMouseWheel(event)});this.frame.canvas.addEventListener(\"DOMMouseScroll\",function(event){_this3.body.eventListeners.onMouseWheel(event)});this.frame.canvas.addEventListener(\"mousemove\",function(event){_this3.body.eventListeners.onMouseMove(event)});this.frame.canvas.addEventListener(\"contextmenu\",function(event){_this3.body.eventListeners.onContext(event)});this.hammerFrame=new Hammer(this.frame);hammerUtil.onRelease(this.hammerFrame,function(event){_this3.body.eventListeners.onRelease(event)})}},{key:\"setSize\",value:function setSize(){var width=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.options.width;var height=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.options.height;width=this._prepareValue(width);height=this._prepareValue(height);var emitEvent=false;var oldWidth=this.frame.canvas.width;var oldHeight=this.frame.canvas.height;var previousRatio=this.pixelRatio;this._setPixelRatio();if(width!=this.options.width||height!=this.options.height||this.frame.style.width!=width||this.frame.style.height!=height){this._getCameraState(previousRatio);this.frame.style.width=width;this.frame.style.height=height;this.frame.canvas.style.width=\"100%\";this.frame.canvas.style.height=\"100%\";this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio);this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);this.options.width=width;this.options.height=height;this.canvasViewCenter={x:.5*this.frame.clientWidth,y:.5*this.frame.clientHeight};emitEvent=true}else{var newWidth=Math.round(this.frame.canvas.clientWidth*this.pixelRatio);var newHeight=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);if(this.frame.canvas.width!==newWidth||this.frame.canvas.height!==newHeight){this._getCameraState(previousRatio)}if(this.frame.canvas.width!==newWidth){this.frame.canvas.width=newWidth;emitEvent=true}if(this.frame.canvas.height!==newHeight){this.frame.canvas.height=newHeight;emitEvent=true}}if(emitEvent===true){this.body.emitter.emit(\"resize\",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(oldWidth/this.pixelRatio),oldHeight:Math.round(oldHeight/this.pixelRatio)});this._setCameraState()}this.initialized=true;return emitEvent}},{key:\"getContext\",value:function getContext(){return this.frame.canvas.getContext(\"2d\")}},{key:\"_determinePixelRatio\",value:function _determinePixelRatio(){var ctx=this.getContext();if(ctx===undefined){throw new Error(\"Could not get canvax context\")}var numerator=1;if(typeof window!==\"undefined\"){numerator=window.devicePixelRatio||1}var denominator=ctx.webkitBackingStorePixelRatio||ctx.mozBackingStorePixelRatio||ctx.msBackingStorePixelRatio||ctx.oBackingStorePixelRatio||ctx.backingStorePixelRatio||1;return numerator/denominator}},{key:\"_setPixelRatio\",value:function _setPixelRatio(){this.pixelRatio=this._determinePixelRatio()}},{key:\"setTransform\",value:function setTransform(){var ctx=this.getContext();if(ctx===undefined){throw new Error(\"Could not get canvax context\")}ctx.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}},{key:\"_XconvertDOMtoCanvas\",value:function _XconvertDOMtoCanvas(x){return(x-this.body.view.translation.x)/this.body.view.scale}},{\nkey:\"_XconvertCanvasToDOM\",value:function _XconvertCanvasToDOM(x){return x*this.body.view.scale+this.body.view.translation.x}},{key:\"_YconvertDOMtoCanvas\",value:function _YconvertDOMtoCanvas(y){return(y-this.body.view.translation.y)/this.body.view.scale}},{key:\"_YconvertCanvasToDOM\",value:function _YconvertCanvasToDOM(y){return y*this.body.view.scale+this.body.view.translation.y}},{key:\"canvasToDOM\",value:function canvasToDOM(pos){return{x:this._XconvertCanvasToDOM(pos.x),y:this._YconvertCanvasToDOM(pos.y)}}},{key:\"DOMtoCanvas\",value:function DOMtoCanvas(pos){return{x:this._XconvertDOMtoCanvas(pos.x),y:this._YconvertDOMtoCanvas(pos.y)}}}]);return Canvas}();exports[\"default\"]=Canvas},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var NetworkUtil=__webpack_require__(76)[\"default\"];var View=function(){function View(body,canvas){var _this=this;(0,_classCallCheck3[\"default\"])(this,View);this.body=body;this.canvas=canvas;this.animationSpeed=1/this.renderRefreshRate;this.animationEasingFunction=\"easeInOutQuint\";this.easingTime=0;this.sourceScale=0;this.targetScale=0;this.sourceTranslation=0;this.targetTranslation=0;this.lockedOnNodeId=undefined;this.lockedOnNodeOffset=undefined;this.touchTime=0;this.viewFunction=undefined;this.body.emitter.on(\"fit\",this.fit.bind(this));this.body.emitter.on(\"animationFinished\",function(){_this.body.emitter.emit(\"_stopRendering\")});this.body.emitter.on(\"unlockNode\",this.releaseNode.bind(this))}(0,_createClass3[\"default\"])(View,[{key:\"setOptions\",value:function setOptions(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};this.options=options}},{key:\"fit\",value:function fit(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{nodes:[]};var initialZoom=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var range=void 0;var zoomLevel=void 0;if(options.nodes===undefined||options.nodes.length===0){options.nodes=this.body.nodeIndices}if(initialZoom===true){var positionDefined=0;for(var nodeId in this.body.nodes){if(this.body.nodes.hasOwnProperty(nodeId)){var node=this.body.nodes[nodeId];if(node.predefinedPosition===true){positionDefined+=1}}}if(positionDefined>.5*this.body.nodeIndices.length){this.fit(options,false);return}range=NetworkUtil.getRange(this.body.nodes,options.nodes);var numberOfNodes=this.body.nodeIndices.length;zoomLevel=12.662/(numberOfNodes+7.4147)+.0964822;var factor=Math.min(this.canvas.frame.canvas.clientWidth/600,this.canvas.frame.canvas.clientHeight/600);zoomLevel*=factor}else{this.body.emitter.emit(\"_resizeNodes\");range=NetworkUtil.getRange(this.body.nodes,options.nodes);var xDistance=Math.abs(range.maxX-range.minX)*1.1;var yDistance=Math.abs(range.maxY-range.minY)*1.1;var xZoomLevel=this.canvas.frame.canvas.clientWidth/xDistance;var yZoomLevel=this.canvas.frame.canvas.clientHeight/yDistance;zoomLevel=xZoomLevel<=yZoomLevel?xZoomLevel:yZoomLevel}if(zoomLevel>1){zoomLevel=1}else if(zoomLevel===0){zoomLevel=1}var center=NetworkUtil.findCenter(range);var animationOptions={position:center,scale:zoomLevel,animation:options.animation};this.moveTo(animationOptions)}},{key:\"focus\",value:function focus(nodeId){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(this.body.nodes[nodeId]!==undefined){var nodePosition={x:this.body.nodes[nodeId].x,y:this.body.nodes[nodeId].y};options.position=nodePosition;options.lockedOnNode=nodeId;this.moveTo(options)}else{console.log(\"Node: \"+nodeId+\" cannot be found.\")}}},{key:\"moveTo\",value:function moveTo(options){if(options===undefined){options={};return}if(options.offset===undefined){options.offset={x:0,y:0}}if(options.offset.x===undefined){options.offset.x=0}if(options.offset.y===undefined){options.offset.y=0}if(options.scale===undefined){options.scale=this.body.view.scale}if(options.position===undefined){options.position=this.getViewPosition()}if(options.animation===undefined){options.animation={duration:0}}if(options.animation===false){options.animation={duration:0}}if(options.animation===true){options.animation={}}if(options.animation.duration===undefined){options.animation.duration=1e3}if(options.animation.easingFunction===undefined){options.animation.easingFunction=\"easeInOutQuad\"}this.animateView(options)}},{key:\"animateView\",value:function animateView(options){if(options===undefined){return}this.animationEasingFunction=options.animation.easingFunction;this.releaseNode();if(options.locked===true){this.lockedOnNodeId=options.lockedOnNode;this.lockedOnNodeOffset=options.offset}if(this.easingTime!=0){this._transitionRedraw(true)}this.sourceScale=this.body.view.scale;this.sourceTranslation=this.body.view.translation;this.targetScale=options.scale;this.body.view.scale=this.targetScale;var viewCenter=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight});var distanceFromCenter={x:viewCenter.x-options.position.x,y:viewCenter.y-options.position.y};this.targetTranslation={x:this.sourceTranslation.x+distanceFromCenter.x*this.targetScale+options.offset.x,y:this.sourceTranslation.y+distanceFromCenter.y*this.targetScale+options.offset.y};if(options.animation.duration===0){if(this.lockedOnNodeId!=undefined){this.viewFunction=this._lockedRedraw.bind(this);this.body.emitter.on(\"initRedraw\",this.viewFunction)}else{this.body.view.scale=this.targetScale;this.body.view.translation=this.targetTranslation;this.body.emitter.emit(\"_requestRedraw\")}}else{this.animationSpeed=1/(60*options.animation.duration*.001)||1/60;this.animationEasingFunction=options.animation.easingFunction;this.viewFunction=this._transitionRedraw.bind(this);this.body.emitter.on(\"initRedraw\",this.viewFunction);this.body.emitter.emit(\"_startRendering\")}}},{key:\"_lockedRedraw\",value:function _lockedRedraw(){var nodePosition={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y};var viewCenter=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight});var distanceFromCenter={x:viewCenter.x-nodePosition.x,y:viewCenter.y-nodePosition.y};var sourceTranslation=this.body.view.translation;var targetTranslation={x:sourceTranslation.x+distanceFromCenter.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:sourceTranslation.y+distanceFromCenter.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=targetTranslation}},{key:\"releaseNode\",value:function releaseNode(){if(this.lockedOnNodeId!==undefined&&this.viewFunction!==undefined){this.body.emitter.off(\"initRedraw\",this.viewFunction);this.lockedOnNodeId=undefined;this.lockedOnNodeOffset=undefined}}},{key:\"_transitionRedraw\",value:function _transitionRedraw(){var finished=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;this.easingTime+=this.animationSpeed;this.easingTime=finished===true?1:this.easingTime;var progress=util.easingFunctions[this.animationEasingFunction](this.easingTime);this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*progress;this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*progress,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*progress};if(this.easingTime>=1){this.body.emitter.off(\"initRedraw\",this.viewFunction);this.easingTime=0;if(this.lockedOnNodeId!=undefined){this.viewFunction=this._lockedRedraw.bind(this);this.body.emitter.on(\"initRedraw\",this.viewFunction)}this.body.emitter.emit(\"animationFinished\")}}},{key:\"getScale\",value:function getScale(){return this.body.view.scale}},{key:\"getViewPosition\",value:function getViewPosition(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}]);return View}();exports[\"default\"]=View},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var NavigationHandler=__webpack_require__(233)[\"default\"];var Popup=__webpack_require__(104)[\"default\"];var InteractionHandler=function(){function InteractionHandler(body,canvas,selectionHandler){(0,_classCallCheck3[\"default\"])(this,InteractionHandler);this.body=body;this.canvas=canvas;this.selectionHandler=selectionHandler;this.navigationHandler=new NavigationHandler(body,canvas);this.body.eventListeners.onTap=this.onTap.bind(this);this.body.eventListeners.onTouch=this.onTouch.bind(this);this.body.eventListeners.onDoubleTap=this.onDoubleTap.bind(this);this.body.eventListeners.onHold=this.onHold.bind(this);this.body.eventListeners.onDragStart=this.onDragStart.bind(this);this.body.eventListeners.onDrag=this.onDrag.bind(this);this.body.eventListeners.onDragEnd=this.onDragEnd.bind(this);this.body.eventListeners.onMouseWheel=this.onMouseWheel.bind(this);this.body.eventListeners.onPinch=this.onPinch.bind(this);this.body.eventListeners.onMouseMove=this.onMouseMove.bind(this);this.body.eventListeners.onRelease=this.onRelease.bind(this);this.body.eventListeners.onContext=this.onContext.bind(this);this.touchTime=0;this.drag={};this.pinch={};this.popup=undefined;this.popupObj=undefined;this.popupTimer=undefined;this.body.functions.getPointer=this.getPointer.bind(this);this.options={};this.defaultOptions={dragNodes:true,dragView:true,hover:false,keyboard:{enabled:false,speed:{x:10,y:10,zoom:.02},bindToWindow:true},navigationButtons:false,tooltipDelay:300,zoomView:true};util.extend(this.options,this.defaultOptions);this.bindEventListeners()}(0,_createClass3[\"default\"])(InteractionHandler,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this=this;this.body.emitter.on(\"destroy\",function(){clearTimeout(_this.popupTimer);delete _this.body.functions.getPointer})}},{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){var fields=[\"hideEdgesOnDrag\",\"hideNodesOnDrag\",\"keyboard\",\"multiselect\",\"selectable\",\"selectConnectedEdges\"];util.selectiveNotDeepExtend(fields,this.options,options);util.mergeOptions(this.options,options,\"keyboard\");if(options.tooltip){util.extend(this.options.tooltip,options.tooltip);if(options.tooltip.color){this.options.tooltip.color=util.parseColor(options.tooltip.color)}}}this.navigationHandler.setOptions(this.options)}},{key:\"getPointer\",value:function getPointer(touch){return{x:touch.x-util.getAbsoluteLeft(this.canvas.frame.canvas),y:touch.y-util.getAbsoluteTop(this.canvas.frame.canvas)}}},{key:\"onTouch\",value:function onTouch(event){if((new Date).valueOf()-this.touchTime>50){this.drag.pointer=this.getPointer(event.center);this.drag.pinched=false;this.pinch.scale=this.body.view.scale;this.touchTime=(new Date).valueOf()}}},{key:\"onTap\",value:function onTap(event){var pointer=this.getPointer(event.center);var multiselect=this.selectionHandler.options.multiselect&&(event.changedPointers[0].ctrlKey||event.changedPointers[0].metaKey);this.checkSelectionChanges(pointer,event,multiselect);this.selectionHandler._generateClickEvent(\"click\",event,pointer)}},{key:\"onDoubleTap\",value:function onDoubleTap(event){var pointer=this.getPointer(event.center);this.selectionHandler._generateClickEvent(\"doubleClick\",event,pointer)}},{key:\"onHold\",value:function onHold(event){var pointer=this.getPointer(event.center);var multiselect=this.selectionHandler.options.multiselect;this.checkSelectionChanges(pointer,event,multiselect);this.selectionHandler._generateClickEvent(\"click\",event,pointer);this.selectionHandler._generateClickEvent(\"hold\",event,pointer)}},{key:\"onRelease\",value:function onRelease(event){if((new Date).valueOf()-this.touchTime>10){var pointer=this.getPointer(event.center);this.selectionHandler._generateClickEvent(\"release\",event,pointer);this.touchTime=(new Date).valueOf()}}},{key:\"onContext\",value:function onContext(event){var pointer=this.getPointer({x:event.clientX,y:event.clientY});this.selectionHandler._generateClickEvent(\"oncontext\",event,pointer)}},{key:\"checkSelectionChanges\",value:function checkSelectionChanges(pointer,event){var add=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var previousSelection=this.selectionHandler.getSelection();var selected=false;if(add===true){selected=this.selectionHandler.selectAdditionalOnPoint(pointer)}else{selected=this.selectionHandler.selectOnPoint(pointer)}var currentSelection=this.selectionHandler.getSelection();var deselectedItems=this._determineDifference(previousSelection,currentSelection);var selectedItems=this._determineDifference(currentSelection,previousSelection);if(deselectedItems.edges.length>0){this.selectionHandler._generateClickEvent(\"deselectEdge\",event,pointer,previousSelection);selected=true}if(deselectedItems.nodes.length>0){this.selectionHandler._generateClickEvent(\"deselectNode\",event,pointer,previousSelection);selected=true}if(selectedItems.nodes.length>0){this.selectionHandler._generateClickEvent(\"selectNode\",event,pointer);selected=true}if(selectedItems.edges.length>0){this.selectionHandler._generateClickEvent(\"selectEdge\",event,pointer);selected=true}if(selected===true){this.selectionHandler._generateClickEvent(\"select\",event,pointer)}}},{key:\"_determineDifference\",value:function _determineDifference(firstSet,secondSet){var arrayDiff=function arrayDiff(firstArr,secondArr){var result=[];for(var i=0;i<firstArr.length;i++){var value=firstArr[i];if(secondArr.indexOf(value)===-1){result.push(value)}}return result};return{nodes:arrayDiff(firstSet.nodes,secondSet.nodes),edges:arrayDiff(firstSet.edges,secondSet.edges)}}},{key:\"onDragStart\",value:function onDragStart(event){if(this.drag.pointer===undefined){this.onTouch(event)}var node=this.selectionHandler.getNodeAt(this.drag.pointer);this.drag.dragging=true;this.drag.selection=[];this.drag.translation=util.extend({},this.body.view.translation);this.drag.nodeId=undefined;if(node!==undefined&&this.options.dragNodes===true){this.drag.nodeId=node.id;if(node.isSelected()===false){this.selectionHandler.unselectAll();this.selectionHandler.selectObject(node)}this.selectionHandler._generateClickEvent(\"dragStart\",event,this.drag.pointer);var selection=this.selectionHandler.selectionObj.nodes;for(var nodeId in selection){if(selection.hasOwnProperty(nodeId)){var object=selection[nodeId];var s={id:object.id,node:object,x:object.x,y:object.y,xFixed:object.options.fixed.x,yFixed:object.options.fixed.y};object.options.fixed.x=true;object.options.fixed.y=true;this.drag.selection.push(s)}}}else{this.selectionHandler._generateClickEvent(\"dragStart\",event,this.drag.pointer,undefined,true)}}},{key:\"onDrag\",value:function onDrag(event){var _this2=this;if(this.drag.pinched===true){return}this.body.emitter.emit(\"unlockNode\");var pointer=this.getPointer(event.center);var selection=this.drag.selection;if(selection&&selection.length&&this.options.dragNodes===true){this.selectionHandler._generateClickEvent(\"dragging\",event,pointer);var deltaX=pointer.x-this.drag.pointer.x;var deltaY=pointer.y-this.drag.pointer.y;selection.forEach(function(selection){var node=selection.node;if(selection.xFixed===false){node.x=_this2.canvas._XconvertDOMtoCanvas(_this2.canvas._XconvertCanvasToDOM(selection.x)+deltaX)}if(selection.yFixed===false){node.y=_this2.canvas._YconvertDOMtoCanvas(_this2.canvas._YconvertCanvasToDOM(selection.y)+deltaY)}});this.body.emitter.emit(\"startSimulation\")}else{if(this.options.dragView===true){this.selectionHandler._generateClickEvent(\"dragging\",event,pointer,undefined,true);if(this.drag.pointer===undefined){this.onDragStart(event);return}var diffX=pointer.x-this.drag.pointer.x;var diffY=pointer.y-this.drag.pointer.y;this.body.view.translation={x:this.drag.translation.x+diffX,y:this.drag.translation.y+diffY};this.body.emitter.emit(\"_requestRedraw\")}}}},{key:\"onDragEnd\",value:function onDragEnd(event){this.drag.dragging=false;var selection=this.drag.selection;if(selection&&selection.length){selection.forEach(function(s){s.node.options.fixed.x=s.xFixed;s.node.options.fixed.y=s.yFixed});this.selectionHandler._generateClickEvent(\"dragEnd\",event,this.getPointer(event.center));this.body.emitter.emit(\"startSimulation\")}else{this.selectionHandler._generateClickEvent(\"dragEnd\",event,this.getPointer(event.center),undefined,true);this.body.emitter.emit(\"_requestRedraw\")}}},{key:\"onPinch\",value:function onPinch(event){var pointer=this.getPointer(event.center);this.drag.pinched=true;if(this.pinch[\"scale\"]===undefined){this.pinch.scale=1}var scale=this.pinch.scale*event.scale;this.zoom(scale,pointer)}},{key:\"zoom\",value:function zoom(scale,pointer){if(this.options.zoomView===true){var scaleOld=this.body.view.scale;if(scale<1e-5){scale=1e-5}if(scale>10){scale=10}var preScaleDragPointer=undefined;if(this.drag!==undefined){if(this.drag.dragging===true){preScaleDragPointer=this.canvas.DOMtoCanvas(this.drag.pointer)}}var translation=this.body.view.translation;var scaleFrac=scale/scaleOld;var tx=(1-scaleFrac)*pointer.x+translation.x*scaleFrac;var ty=(1-scaleFrac)*pointer.y+translation.y*scaleFrac;this.body.view.scale=scale;this.body.view.translation={x:tx,y:ty};if(preScaleDragPointer!=undefined){var postScaleDragPointer=this.canvas.canvasToDOM(preScaleDragPointer);this.drag.pointer.x=postScaleDragPointer.x;this.drag.pointer.y=postScaleDragPointer.y}this.body.emitter.emit(\"_requestRedraw\");if(scaleOld<scale){this.body.emitter.emit(\"zoom\",{direction:\"+\",scale:this.body.view.scale,pointer:pointer})}else{this.body.emitter.emit(\"zoom\",{direction:\"-\",scale:this.body.view.scale,pointer:pointer})}}}},{key:\"onMouseWheel\",value:function onMouseWheel(event){if(this.options.zoomView===true){var delta=0;if(event.wheelDelta){delta=event.wheelDelta/120}else if(event.detail){delta=-event.detail/3}if(delta!==0){var scale=this.body.view.scale;var zoom=delta/10;if(delta<0){zoom=zoom/(1-zoom)}scale*=1+zoom;var pointer=this.getPointer({x:event.clientX,y:event.clientY});this.zoom(scale,pointer)}event.preventDefault()}}},{key:\"onMouseMove\",value:function onMouseMove(event){var _this3=this;var pointer=this.getPointer({x:event.clientX,y:event.clientY});var popupVisible=false;if(this.popup!==undefined){if(this.popup.hidden===false){this._checkHidePopup(pointer)}if(this.popup.hidden===false){popupVisible=true;this.popup.setPosition(pointer.x+3,pointer.y-5);this.popup.show()}}if(this.options.keyboard.bindToWindow===false&&this.options.keyboard.enabled===true){this.canvas.frame.focus()}if(popupVisible===false){if(this.popupTimer!==undefined){clearInterval(this.popupTimer);this.popupTimer=undefined}if(!this.drag.dragging){this.popupTimer=setTimeout(function(){return _this3._checkShowPopup(pointer)},this.options.tooltipDelay)}}if(this.options.hover===true){this.selectionHandler.hoverObject(event,pointer)}}},{key:\"_checkShowPopup\",value:function _checkShowPopup(pointer){var x=this.canvas._XconvertDOMtoCanvas(pointer.x);var y=this.canvas._YconvertDOMtoCanvas(pointer.y);var pointerObj={left:x,top:y,right:x,bottom:y};var previousPopupObjId=this.popupObj===undefined?undefined:this.popupObj.id;var nodeUnderCursor=false;var popupType=\"node\";if(this.popupObj===undefined){var nodeIndices=this.body.nodeIndices;var nodes=this.body.nodes;var node=void 0;var overlappingNodes=[];for(var i=0;i<nodeIndices.length;i++){node=nodes[nodeIndices[i]];if(node.isOverlappingWith(pointerObj)===true){if(node.getTitle()!==undefined){overlappingNodes.push(nodeIndices[i])}}}if(overlappingNodes.length>0){this.popupObj=nodes[overlappingNodes[overlappingNodes.length-1]];nodeUnderCursor=true}}if(this.popupObj===undefined&&nodeUnderCursor===false){var edgeIndices=this.body.edgeIndices;var edges=this.body.edges;var edge=void 0;var overlappingEdges=[];for(var _i=0;_i<edgeIndices.length;_i++){edge=edges[edgeIndices[_i]];if(edge.isOverlappingWith(pointerObj)===true){if(edge.connected===true&&edge.getTitle()!==undefined){overlappingEdges.push(edgeIndices[_i])}}}if(overlappingEdges.length>0){this.popupObj=edges[overlappingEdges[overlappingEdges.length-1]];popupType=\"edge\"}}if(this.popupObj!==undefined){if(this.popupObj.id!==previousPopupObjId){if(this.popup===undefined){this.popup=new Popup(this.canvas.frame)}this.popup.popupTargetType=popupType;this.popup.popupTargetId=this.popupObj.id;this.popup.setPosition(pointer.x+3,pointer.y-5);this.popup.setText(this.popupObj.getTitle());this.popup.show();this.body.emitter.emit(\"showPopup\",this.popupObj.id)}}else{if(this.popup!==undefined){this.popup.hide();this.body.emitter.emit(\"hidePopup\")}}}},{key:\"_checkHidePopup\",value:function _checkHidePopup(pointer){var pointerObj=this.selectionHandler._pointerToPositionObject(pointer);var stillOnObj=false;if(this.popup.popupTargetType===\"node\"){if(this.body.nodes[this.popup.popupTargetId]!==undefined){stillOnObj=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(pointerObj);if(stillOnObj===true){var overNode=this.selectionHandler.getNodeAt(pointer);stillOnObj=overNode===undefined?false:overNode.id===this.popup.popupTargetId}}}else{if(this.selectionHandler.getNodeAt(pointer)===undefined){if(this.body.edges[this.popup.popupTargetId]!==undefined){stillOnObj=this.body.edges[this.popup.popupTargetId].isOverlappingWith(pointerObj)}}}if(stillOnObj===false){this.popupObj=undefined;this.popup.hide();this.body.emitter.emit(\"hidePopup\")}}}]);return InteractionHandler}();exports[\"default\"]=InteractionHandler},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hammer=__webpack_require__(10);var hammerUtil=__webpack_require__(37);var keycharm=__webpack_require__(35);var NavigationHandler=function(){function NavigationHandler(body,canvas){var _this=this;(0,_classCallCheck3[\"default\"])(this,NavigationHandler);this.body=body;this.canvas=canvas;this.iconsCreated=false;this.navigationHammers=[];this.boundFunctions={};this.touchTime=0;this.activated=false;this.body.emitter.on(\"activate\",function(){_this.activated=true;_this.configureKeyboardBindings()});this.body.emitter.on(\"deactivate\",function(){_this.activated=false;_this.configureKeyboardBindings()});this.body.emitter.on(\"destroy\",function(){if(_this.keycharm!==undefined){_this.keycharm.destroy()}});this.options={}}(0,_createClass3[\"default\"])(NavigationHandler,[{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){this.options=options;this.create()}}},{key:\"create\",value:function create(){if(this.options.navigationButtons===true){if(this.iconsCreated===false){this.loadNavigationElements()}}else if(this.iconsCreated===true){this.cleanNavigation()}this.configureKeyboardBindings()}},{key:\"cleanNavigation\",value:function cleanNavigation(){if(this.navigationHammers.length!=0){for(var i=0;i<this.navigationHammers.length;i++){this.navigationHammers[i].destroy()}this.navigationHammers=[]}if(this.navigationDOM&&this.navigationDOM[\"wrapper\"]&&this.navigationDOM[\"wrapper\"].parentNode){this.navigationDOM[\"wrapper\"].parentNode.removeChild(this.navigationDOM[\"wrapper\"])}this.iconsCreated=false}},{key:\"loadNavigationElements\",value:function loadNavigationElements(){var _this2=this;this.cleanNavigation();this.navigationDOM={};var navigationDivs=[\"up\",\"down\",\"left\",\"right\",\"zoomIn\",\"zoomOut\",\"zoomExtends\"];var navigationDivActions=[\"_moveUp\",\"_moveDown\",\"_moveLeft\",\"_moveRight\",\"_zoomIn\",\"_zoomOut\",\"_fit\"];this.navigationDOM[\"wrapper\"]=document.createElement(\"div\");this.navigationDOM[\"wrapper\"].className=\"vis-navigation\";this.canvas.frame.appendChild(this.navigationDOM[\"wrapper\"]);for(var i=0;i<navigationDivs.length;i++){this.navigationDOM[navigationDivs[i]]=document.createElement(\"div\");this.navigationDOM[navigationDivs[i]].className=\"vis-button vis-\"+navigationDivs[i];this.navigationDOM[\"wrapper\"].appendChild(this.navigationDOM[navigationDivs[i]]);var hammer=new Hammer(this.navigationDOM[navigationDivs[i]]);if(navigationDivActions[i]===\"_fit\"){hammerUtil.onTouch(hammer,this._fit.bind(this))}else{hammerUtil.onTouch(hammer,this.bindToRedraw.bind(this,navigationDivActions[i]))}this.navigationHammers.push(hammer)}var hammerFrame=new Hammer(this.canvas.frame);hammerUtil.onRelease(hammerFrame,function(){_this2._stopMovement()});this.navigationHammers.push(hammerFrame);this.iconsCreated=true}},{key:\"bindToRedraw\",value:function bindToRedraw(action){if(this.boundFunctions[action]===undefined){this.boundFunctions[action]=this[action].bind(this);this.body.emitter.on(\"initRedraw\",this.boundFunctions[action]);this.body.emitter.emit(\"_startRendering\")}}},{key:\"unbindFromRedraw\",value:function unbindFromRedraw(action){if(this.boundFunctions[action]!==undefined){this.body.emitter.off(\"initRedraw\",this.boundFunctions[action]);this.body.emitter.emit(\"_stopRendering\");delete this.boundFunctions[action]}}},{key:\"_fit\",value:function _fit(){if((new Date).valueOf()-this.touchTime>700){this.body.emitter.emit(\"fit\",{duration:700});this.touchTime=(new Date).valueOf()}}},{key:\"_stopMovement\",value:function _stopMovement(){for(var boundAction in this.boundFunctions){if(this.boundFunctions.hasOwnProperty(boundAction)){this.body.emitter.off(\"initRedraw\",this.boundFunctions[boundAction]);this.body.emitter.emit(\"_stopRendering\")}}this.boundFunctions={}}},{key:\"_moveUp\",value:function _moveUp(){this.body.view.translation.y+=this.options.keyboard.speed.y}},{key:\"_moveDown\",value:function _moveDown(){this.body.view.translation.y-=this.options.keyboard.speed.y}},{key:\"_moveLeft\",value:function _moveLeft(){this.body.view.translation.x+=this.options.keyboard.speed.x}},{key:\"_moveRight\",value:function _moveRight(){this.body.view.translation.x-=this.options.keyboard.speed.x}},{key:\"_zoomIn\",value:function _zoomIn(){var scaleOld=this.body.view.scale;var scale=this.body.view.scale*(1+this.options.keyboard.speed.zoom);var translation=this.body.view.translation;var scaleFrac=scale/scaleOld;var tx=(1-scaleFrac)*this.canvas.canvasViewCenter.x+translation.x*scaleFrac;var ty=(1-scaleFrac)*this.canvas.canvasViewCenter.y+translation.y*scaleFrac;this.body.view.scale=scale;this.body.view.translation={x:tx,y:ty};this.body.emitter.emit(\"zoom\",{direction:\"+\",scale:this.body.view.scale,pointer:null})}},{key:\"_zoomOut\",value:function _zoomOut(){var scaleOld=this.body.view.scale;var scale=this.body.view.scale/(1+this.options.keyboard.speed.zoom);var translation=this.body.view.translation;var scaleFrac=scale/scaleOld;var tx=(1-scaleFrac)*this.canvas.canvasViewCenter.x+translation.x*scaleFrac;var ty=(1-scaleFrac)*this.canvas.canvasViewCenter.y+translation.y*scaleFrac;this.body.view.scale=scale;this.body.view.translation={x:tx,y:ty};this.body.emitter.emit(\"zoom\",{direction:\"-\",scale:this.body.view.scale,pointer:null})}},{key:\"configureKeyboardBindings\",value:function configureKeyboardBindings(){var _this3=this;if(this.keycharm!==undefined){this.keycharm.destroy()}if(this.options.keyboard.enabled===true){if(this.options.keyboard.bindToWindow===true){this.keycharm=keycharm({container:window,preventDefault:true})}else{this.keycharm=keycharm({container:this.canvas.frame,preventDefault:true})}this.keycharm.reset();if(this.activated===true){this.keycharm.bind(\"up\",function(){_this3.bindToRedraw(\"_moveUp\")},\"keydown\");this.keycharm.bind(\"down\",function(){_this3.bindToRedraw(\"_moveDown\")},\"keydown\");this.keycharm.bind(\"left\",function(){_this3.bindToRedraw(\"_moveLeft\")},\"keydown\");this.keycharm.bind(\"right\",function(){_this3.bindToRedraw(\"_moveRight\")},\"keydown\");this.keycharm.bind(\"=\",function(){_this3.bindToRedraw(\"_zoomIn\")},\"keydown\");this.keycharm.bind(\"num+\",function(){_this3.bindToRedraw(\"_zoomIn\")},\"keydown\");this.keycharm.bind(\"num-\",function(){_this3.bindToRedraw(\"_zoomOut\")},\"keydown\");this.keycharm.bind(\"-\",function(){_this3.bindToRedraw(\"_zoomOut\")},\"keydown\");this.keycharm.bind(\"[\",function(){_this3.bindToRedraw(\"_zoomOut\")},\"keydown\");this.keycharm.bind(\"]\",function(){_this3.bindToRedraw(\"_zoomIn\")},\"keydown\");this.keycharm.bind(\"pageup\",function(){_this3.bindToRedraw(\"_zoomIn\")},\"keydown\");this.keycharm.bind(\"pagedown\",function(){_this3.bindToRedraw(\"_zoomOut\")},\"keydown\");this.keycharm.bind(\"up\",function(){_this3.unbindFromRedraw(\"_moveUp\")},\"keyup\");this.keycharm.bind(\"down\",function(){_this3.unbindFromRedraw(\"_moveDown\")},\"keyup\");this.keycharm.bind(\"left\",function(){_this3.unbindFromRedraw(\"_moveLeft\")},\"keyup\");this.keycharm.bind(\"right\",function(){_this3.unbindFromRedraw(\"_moveRight\")},\"keyup\");this.keycharm.bind(\"=\",function(){_this3.unbindFromRedraw(\"_zoomIn\")},\"keyup\");this.keycharm.bind(\"num+\",function(){_this3.unbindFromRedraw(\"_zoomIn\")},\"keyup\");this.keycharm.bind(\"num-\",function(){_this3.unbindFromRedraw(\"_zoomOut\")},\"keyup\");this.keycharm.bind(\"-\",function(){_this3.unbindFromRedraw(\"_zoomOut\")},\"keyup\");this.keycharm.bind(\"[\",function(){_this3.unbindFromRedraw(\"_zoomOut\")},\"keyup\");this.keycharm.bind(\"]\",function(){_this3.unbindFromRedraw(\"_zoomIn\")},\"keyup\");this.keycharm.bind(\"pageup\",function(){_this3.unbindFromRedraw(\"_zoomIn\")},\"keyup\");this.keycharm.bind(\"pagedown\",function(){_this3.unbindFromRedraw(\"_zoomOut\")},\"keyup\")}}}}]);return NavigationHandler}();exports[\"default\"]=NavigationHandler},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Node=__webpack_require__(47)[\"default\"];var Edge=__webpack_require__(74)[\"default\"];var util=__webpack_require__(2);var SelectionHandler=function(){function SelectionHandler(body,canvas){var _this=this;(0,_classCallCheck3[\"default\"])(this,SelectionHandler);this.body=body;this.canvas=canvas;this.selectionObj={nodes:[],edges:[]};this.hoverObj={nodes:{},edges:{}};this.options={};this.defaultOptions={multiselect:false,selectable:true,selectConnectedEdges:true,hoverConnectedEdges:true};util.extend(this.options,this.defaultOptions);this.body.emitter.on(\"_dataChanged\",function(){_this.updateSelection()})}(0,_createClass3[\"default\"])(SelectionHandler,[{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){var fields=[\"multiselect\",\"hoverConnectedEdges\",\"selectable\",\"selectConnectedEdges\"];util.selectiveDeepExtend(fields,this.options,options)}}},{key:\"selectOnPoint\",value:function selectOnPoint(pointer){var selected=false;if(this.options.selectable===true){var obj=this.getNodeAt(pointer)||this.getEdgeAt(pointer);this.unselectAll();if(obj!==undefined){selected=this.selectObject(obj)}this.body.emitter.emit(\"_requestRedraw\")}return selected}},{key:\"selectAdditionalOnPoint\",value:function selectAdditionalOnPoint(pointer){var selectionChanged=false;if(this.options.selectable===true){var obj=this.getNodeAt(pointer)||this.getEdgeAt(pointer);if(obj!==undefined){selectionChanged=true;if(obj.isSelected()===true){this.deselectObject(obj)}else{this.selectObject(obj)}this.body.emitter.emit(\"_requestRedraw\")}}return selectionChanged}},{key:\"_initBaseEvent\",value:function _initBaseEvent(event,pointer){var properties={};properties[\"pointer\"]={DOM:{\nx:pointer.x,y:pointer.y},canvas:this.canvas.DOMtoCanvas(pointer)};properties[\"event\"]=event;return properties}},{key:\"_generateClickEvent\",value:function _generateClickEvent(eventType,event,pointer,oldSelection){var emptySelection=arguments.length>4&&arguments[4]!==undefined?arguments[4]:false;var properties=this._initBaseEvent(event,pointer);if(emptySelection===true){properties.nodes=[];properties.edges=[]}else{var tmp=this.getSelection();properties.nodes=tmp.nodes;properties.edges=tmp.edges}if(oldSelection!==undefined){properties[\"previousSelection\"]=oldSelection}if(eventType==\"click\"){properties.items=this.getClickedItems(pointer)}this.body.emitter.emit(eventType,properties)}},{key:\"selectObject\",value:function selectObject(obj){var highlightEdges=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.options.selectConnectedEdges;if(obj!==undefined){if(obj instanceof Node){if(highlightEdges===true){this._selectConnectedEdges(obj)}}obj.select();this._addToSelection(obj);return true}return false}},{key:\"deselectObject\",value:function deselectObject(obj){if(obj.isSelected()===true){obj.selected=false;this._removeFromSelection(obj)}}},{key:\"_getAllNodesOverlappingWith\",value:function _getAllNodesOverlappingWith(object){var overlappingNodes=[];var nodes=this.body.nodes;for(var i=0;i<this.body.nodeIndices.length;i++){var nodeId=this.body.nodeIndices[i];if(nodes[nodeId].isOverlappingWith(object)){overlappingNodes.push(nodeId)}}return overlappingNodes}},{key:\"_pointerToPositionObject\",value:function _pointerToPositionObject(pointer){var canvasPos=this.canvas.DOMtoCanvas(pointer);return{left:canvasPos.x-1,top:canvasPos.y+1,right:canvasPos.x+1,bottom:canvasPos.y-1}}},{key:\"getNodeAt\",value:function getNodeAt(pointer){var returnNode=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var positionObject=this._pointerToPositionObject(pointer);var overlappingNodes=this._getAllNodesOverlappingWith(positionObject);if(overlappingNodes.length>0){if(returnNode===true){return this.body.nodes[overlappingNodes[overlappingNodes.length-1]]}else{return overlappingNodes[overlappingNodes.length-1]}}else{return undefined}}},{key:\"_getEdgesOverlappingWith\",value:function _getEdgesOverlappingWith(object,overlappingEdges){var edges=this.body.edges;for(var i=0;i<this.body.edgeIndices.length;i++){var edgeId=this.body.edgeIndices[i];if(edges[edgeId].isOverlappingWith(object)){overlappingEdges.push(edgeId)}}}},{key:\"_getAllEdgesOverlappingWith\",value:function _getAllEdgesOverlappingWith(object){var overlappingEdges=[];this._getEdgesOverlappingWith(object,overlappingEdges);return overlappingEdges}},{key:\"getEdgeAt\",value:function getEdgeAt(pointer){var returnEdge=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var canvasPos=this.canvas.DOMtoCanvas(pointer);var mindist=10;var overlappingEdge=null;var edges=this.body.edges;for(var i=0;i<this.body.edgeIndices.length;i++){var edgeId=this.body.edgeIndices[i];var edge=edges[edgeId];if(edge.connected){var xFrom=edge.from.x;var yFrom=edge.from.y;var xTo=edge.to.x;var yTo=edge.to.y;var dist=edge.edgeType.getDistanceToEdge(xFrom,yFrom,xTo,yTo,canvasPos.x,canvasPos.y);if(dist<mindist){overlappingEdge=edgeId;mindist=dist}}}if(overlappingEdge!==null){if(returnEdge===true){return this.body.edges[overlappingEdge]}else{return overlappingEdge}}else{return undefined}}},{key:\"_addToSelection\",value:function _addToSelection(obj){if(obj instanceof Node){this.selectionObj.nodes[obj.id]=obj}else{this.selectionObj.edges[obj.id]=obj}}},{key:\"_addToHover\",value:function _addToHover(obj){if(obj instanceof Node){this.hoverObj.nodes[obj.id]=obj}else{this.hoverObj.edges[obj.id]=obj}}},{key:\"_removeFromSelection\",value:function _removeFromSelection(obj){if(obj instanceof Node){delete this.selectionObj.nodes[obj.id];this._unselectConnectedEdges(obj)}else{delete this.selectionObj.edges[obj.id]}}},{key:\"unselectAll\",value:function unselectAll(){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){this.selectionObj.nodes[nodeId].unselect()}}for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){this.selectionObj.edges[edgeId].unselect()}}this.selectionObj={nodes:{},edges:{}}}},{key:\"_getSelectedNodeCount\",value:function _getSelectedNodeCount(){var count=0;for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){count+=1}}return count}},{key:\"_getSelectedNode\",value:function _getSelectedNode(){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){return this.selectionObj.nodes[nodeId]}}return undefined}},{key:\"_getSelectedEdge\",value:function _getSelectedEdge(){for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){return this.selectionObj.edges[edgeId]}}return undefined}},{key:\"_getSelectedEdgeCount\",value:function _getSelectedEdgeCount(){var count=0;for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){count+=1}}return count}},{key:\"_getSelectedObjectCount\",value:function _getSelectedObjectCount(){var count=0;for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){count+=1}}for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){count+=1}}return count}},{key:\"_selectionIsEmpty\",value:function _selectionIsEmpty(){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){return false}}for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){return false}}return true}},{key:\"_clusterInSelection\",value:function _clusterInSelection(){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){if(this.selectionObj.nodes[nodeId].clusterSize>1){return true}}}return false}},{key:\"_selectConnectedEdges\",value:function _selectConnectedEdges(node){for(var i=0;i<node.edges.length;i++){var edge=node.edges[i];edge.select();this._addToSelection(edge)}}},{key:\"_hoverConnectedEdges\",value:function _hoverConnectedEdges(node){for(var i=0;i<node.edges.length;i++){var edge=node.edges[i];edge.hover=true;this._addToHover(edge)}}},{key:\"_unselectConnectedEdges\",value:function _unselectConnectedEdges(node){for(var i=0;i<node.edges.length;i++){var edge=node.edges[i];edge.unselect();this._removeFromSelection(edge)}}},{key:\"emitBlurEvent\",value:function emitBlurEvent(event,pointer,object){var properties=this._initBaseEvent(event,pointer);if(object.hover===true){object.hover=false;if(object instanceof Node){properties.node=object.id;this.body.emitter.emit(\"blurNode\",properties)}else{properties.edge=object.id;this.body.emitter.emit(\"blurEdge\",properties)}}}},{key:\"emitHoverEvent\",value:function emitHoverEvent(event,pointer,object){var properties=this._initBaseEvent(event,pointer);var hoverChanged=false;if(object.hover===false){object.hover=true;this._addToHover(object);hoverChanged=true;if(object instanceof Node){properties.node=object.id;this.body.emitter.emit(\"hoverNode\",properties)}else{properties.edge=object.id;this.body.emitter.emit(\"hoverEdge\",properties)}}return hoverChanged}},{key:\"hoverObject\",value:function hoverObject(event,pointer){var object=this.getNodeAt(pointer);if(object===undefined){object=this.getEdgeAt(pointer)}var hoverChanged=false;for(var nodeId in this.hoverObj.nodes){if(this.hoverObj.nodes.hasOwnProperty(nodeId)){if(object===undefined||object instanceof Node&&object.id!=nodeId||object instanceof Edge){this.emitBlurEvent(event,pointer,this.hoverObj.nodes[nodeId]);delete this.hoverObj.nodes[nodeId];hoverChanged=true}}}for(var edgeId in this.hoverObj.edges){if(this.hoverObj.edges.hasOwnProperty(edgeId)){if(hoverChanged===true){this.hoverObj.edges[edgeId].hover=false;delete this.hoverObj.edges[edgeId]}else if(object===undefined||object instanceof Edge&&object.id!=edgeId||object instanceof Node&&!object.hover){this.emitBlurEvent(event,pointer,this.hoverObj.edges[edgeId]);delete this.hoverObj.edges[edgeId];hoverChanged=true}}}if(object!==undefined){hoverChanged=hoverChanged||this.emitHoverEvent(event,pointer,object);if(object instanceof Node&&this.options.hoverConnectedEdges===true){this._hoverConnectedEdges(object)}}if(hoverChanged===true){this.body.emitter.emit(\"_requestRedraw\")}}},{key:\"getSelection\",value:function getSelection(){var nodeIds=this.getSelectedNodes();var edgeIds=this.getSelectedEdges();return{nodes:nodeIds,edges:edgeIds}}},{key:\"getSelectedNodes\",value:function getSelectedNodes(){var idArray=[];if(this.options.selectable===true){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){idArray.push(this.selectionObj.nodes[nodeId].id)}}}return idArray}},{key:\"getSelectedEdges\",value:function getSelectedEdges(){var idArray=[];if(this.options.selectable===true){for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){idArray.push(this.selectionObj.edges[edgeId].id)}}}return idArray}},{key:\"setSelection\",value:function setSelection(selection){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i=void 0,id=void 0;if(!selection||!selection.nodes&&!selection.edges)throw\"Selection must be an object with nodes and/or edges properties\";if(options.unselectAll||options.unselectAll===undefined){this.unselectAll()}if(selection.nodes){for(i=0;i<selection.nodes.length;i++){id=selection.nodes[i];var node=this.body.nodes[id];if(!node){throw new RangeError('Node with id \"'+id+'\" not found')}this.selectObject(node,options.highlightEdges)}}if(selection.edges){for(i=0;i<selection.edges.length;i++){id=selection.edges[i];var edge=this.body.edges[id];if(!edge){throw new RangeError('Edge with id \"'+id+'\" not found')}this.selectObject(edge)}}this.body.emitter.emit(\"_requestRedraw\")}},{key:\"selectNodes\",value:function selectNodes(selection){var highlightEdges=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(!selection||selection.length===undefined)throw\"Selection must be an array with ids\";this.setSelection({nodes:selection},{highlightEdges:highlightEdges})}},{key:\"selectEdges\",value:function selectEdges(selection){if(!selection||selection.length===undefined)throw\"Selection must be an array with ids\";this.setSelection({edges:selection})}},{key:\"updateSelection\",value:function updateSelection(){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){if(!this.body.nodes.hasOwnProperty(nodeId)){delete this.selectionObj.nodes[nodeId]}}}for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){if(!this.body.edges.hasOwnProperty(edgeId)){delete this.selectionObj.edges[edgeId]}}}}},{key:\"getClickedItems\",value:function getClickedItems(pointer){var point=this.canvas.DOMtoCanvas(pointer);var items=[];var nodeIndices=this.body.nodeIndices;var nodes=this.body.nodes;for(var i=nodeIndices.length-1;i>=0;i--){var node=nodes[nodeIndices[i]];var ret=node.getItemsOnPoint(point);items.push.apply(items,ret)}var edgeIndices=this.body.edgeIndices;var edges=this.body.edges;for(var _i=edgeIndices.length-1;_i>=0;_i--){var edge=edges[edgeIndices[_i]];var _ret=edge.getItemsOnPoint(point);items.push.apply(items,_ret)}return items}}]);return SelectionHandler}();exports[\"default\"]=SelectionHandler},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var NetworkUtil=__webpack_require__(76)[\"default\"];var _require=__webpack_require__(236),HorizontalStrategy=_require.HorizontalStrategy,VerticalStrategy=_require.VerticalStrategy;var HierarchicalStatus=function(){function HierarchicalStatus(){(0,_classCallCheck3[\"default\"])(this,HierarchicalStatus);this.childrenReference={};this.parentReference={};this.trees={};this.distributionOrdering={};this.levels={};this.distributionIndex={};this.isTree=false;this.treeIndex=-1}(0,_createClass3[\"default\"])(HierarchicalStatus,[{key:\"addRelation\",value:function addRelation(parentNodeId,childNodeId){if(this.childrenReference[parentNodeId]===undefined){this.childrenReference[parentNodeId]=[]}this.childrenReference[parentNodeId].push(childNodeId);if(this.parentReference[childNodeId]===undefined){this.parentReference[childNodeId]=[]}this.parentReference[childNodeId].push(parentNodeId)}},{key:\"checkIfTree\",value:function checkIfTree(){for(var i in this.parentReference){if(this.parentReference[i].length>1){this.isTree=false;return}}this.isTree=true}},{key:\"numTrees\",value:function numTrees(){return this.treeIndex+1}},{key:\"setTreeIndex\",value:function setTreeIndex(node,treeId){if(treeId===undefined)return;if(this.trees[node.id]===undefined){this.trees[node.id]=treeId;this.treeIndex=Math.max(treeId,this.treeIndex)}}},{key:\"ensureLevel\",value:function ensureLevel(nodeId){if(this.levels[nodeId]===undefined){this.levels[nodeId]=0}}},{key:\"getMaxLevel\",value:function getMaxLevel(nodeId){var _this=this;var accumulator={};var _getMaxLevel=function _getMaxLevel(nodeId){if(accumulator[nodeId]!==undefined){return accumulator[nodeId]}var level=_this.levels[nodeId];if(_this.childrenReference[nodeId]){var children=_this.childrenReference[nodeId];if(children.length>0){for(var i=0;i<children.length;i++){level=Math.max(level,_getMaxLevel(children[i]))}}}accumulator[nodeId]=level;return level};return _getMaxLevel(nodeId)}},{key:\"levelDownstream\",value:function levelDownstream(nodeA,nodeB){if(this.levels[nodeB.id]===undefined){if(this.levels[nodeA.id]===undefined){this.levels[nodeA.id]=0}this.levels[nodeB.id]=this.levels[nodeA.id]+1}}},{key:\"setMinLevelToZero\",value:function setMinLevelToZero(nodes){var minLevel=1e9;for(var nodeId in nodes){if(nodes.hasOwnProperty(nodeId)){if(this.levels[nodeId]!==undefined){minLevel=Math.min(this.levels[nodeId],minLevel)}}}for(var _nodeId in nodes){if(nodes.hasOwnProperty(_nodeId)){if(this.levels[_nodeId]!==undefined){this.levels[_nodeId]-=minLevel}}}}},{key:\"getTreeSize\",value:function getTreeSize(nodes,index){var min_x=1e9;var max_x=-1e9;var min_y=1e9;var max_y=-1e9;for(var nodeId in this.trees){if(this.trees.hasOwnProperty(nodeId)){if(this.trees[nodeId]===index){var node=nodes[nodeId];min_x=Math.min(node.x,min_x);max_x=Math.max(node.x,max_x);min_y=Math.min(node.y,min_y);max_y=Math.max(node.y,max_y)}}}return{min_x:min_x,max_x:max_x,min_y:min_y,max_y:max_y}}},{key:\"hasSameParent\",value:function hasSameParent(node1,node2){var parents1=this.parentReference[node1.id];var parents2=this.parentReference[node2.id];if(parents1===undefined||parents2===undefined){return false}for(var i=0;i<parents1.length;i++){for(var j=0;j<parents2.length;j++){if(parents1[i]==parents2[j]){return true}}}return false}},{key:\"inSameSubNetwork\",value:function inSameSubNetwork(node1,node2){return this.trees[node1.id]===this.trees[node2.id]}},{key:\"getLevels\",value:function getLevels(){return(0,_keys2[\"default\"])(this.distributionOrdering)}},{key:\"addToOrdering\",value:function addToOrdering(node,level){if(this.distributionOrdering[level]===undefined){this.distributionOrdering[level]=[]}var isPresent=false;var curLevel=this.distributionOrdering[level];for(var n in curLevel){if(curLevel[n]===node){isPresent=true;break}}if(!isPresent){this.distributionOrdering[level].push(node);this.distributionIndex[node.id]=this.distributionOrdering[level].length-1}}}]);return HierarchicalStatus}();var LayoutEngine=function(){function LayoutEngine(body){(0,_classCallCheck3[\"default\"])(this,LayoutEngine);this.body=body;this.initialRandomSeed=Math.round(Math.random()*1e6);this.randomSeed=this.initialRandomSeed;this.setPhysics=false;this.options={};this.optionsBackup={physics:{}};this.defaultOptions={randomSeed:undefined,improvedLayout:true,hierarchical:{enabled:false,levelSeparation:150,nodeSpacing:100,treeSpacing:200,blockShifting:true,edgeMinimization:true,parentCentralization:true,direction:\"UD\",sortMethod:\"hubsize\"}};util.extend(this.options,this.defaultOptions);this.bindEventListeners()}(0,_createClass3[\"default\"])(LayoutEngine,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this2=this;this.body.emitter.on(\"_dataChanged\",function(){_this2.setupHierarchicalLayout()});this.body.emitter.on(\"_dataLoaded\",function(){_this2.layoutNetwork()});this.body.emitter.on(\"_resetHierarchicalLayout\",function(){_this2.setupHierarchicalLayout()});this.body.emitter.on(\"_adjustEdgesForHierarchicalLayout\",function(){if(_this2.options.hierarchical.enabled!==true){return}var type=_this2.direction.curveType();_this2.body.emitter.emit(\"_forceDisableDynamicCurves\",type,false)})}},{key:\"setOptions\",value:function setOptions(options,allOptions){if(options!==undefined){var hierarchical=this.options.hierarchical;var prevHierarchicalState=hierarchical.enabled;util.selectiveDeepExtend([\"randomSeed\",\"improvedLayout\"],this.options,options);util.mergeOptions(this.options,options,\"hierarchical\");if(options.randomSeed!==undefined){this.initialRandomSeed=options.randomSeed}if(hierarchical.enabled===true){if(prevHierarchicalState===true){this.body.emitter.emit(\"refresh\",true)}if(hierarchical.direction===\"RL\"||hierarchical.direction===\"DU\"){if(hierarchical.levelSeparation>0){hierarchical.levelSeparation*=-1}}else{if(hierarchical.levelSeparation<0){hierarchical.levelSeparation*=-1}}this.setDirectionStrategy();this.body.emitter.emit(\"_resetHierarchicalLayout\");return this.adaptAllOptionsForHierarchicalLayout(allOptions)}else{if(prevHierarchicalState===true){this.body.emitter.emit(\"refresh\");return util.deepExtend(allOptions,this.optionsBackup)}}}return allOptions}},{key:\"adaptAllOptionsForHierarchicalLayout\",value:function adaptAllOptionsForHierarchicalLayout(allOptions){if(this.options.hierarchical.enabled===true){var backupPhysics=this.optionsBackup.physics;if(allOptions.physics===undefined||allOptions.physics===true){allOptions.physics={enabled:backupPhysics.enabled===undefined?true:backupPhysics.enabled,solver:\"hierarchicalRepulsion\"};backupPhysics.enabled=backupPhysics.enabled===undefined?true:backupPhysics.enabled;backupPhysics.solver=backupPhysics.solver||\"barnesHut\"}else if((0,_typeof3[\"default\"])(allOptions.physics)===\"object\"){backupPhysics.enabled=allOptions.physics.enabled===undefined?true:allOptions.physics.enabled;backupPhysics.solver=allOptions.physics.solver||\"barnesHut\";allOptions.physics.solver=\"hierarchicalRepulsion\"}else if(allOptions.physics!==false){backupPhysics.solver=\"barnesHut\";allOptions.physics={solver:\"hierarchicalRepulsion\"}}var type=this.direction.curveType();if(allOptions.edges===undefined){this.optionsBackup.edges={smooth:{enabled:true,type:\"dynamic\"}};allOptions.edges={smooth:false}}else if(allOptions.edges.smooth===undefined){this.optionsBackup.edges={smooth:{enabled:true,type:\"dynamic\"}};allOptions.edges.smooth=false}else{if(typeof allOptions.edges.smooth===\"boolean\"){this.optionsBackup.edges={smooth:allOptions.edges.smooth};allOptions.edges.smooth={enabled:allOptions.edges.smooth,type:type}}else{var smooth=allOptions.edges.smooth;if(smooth.type!==undefined&&smooth.type!==\"dynamic\"){type=smooth.type}this.optionsBackup.edges={smooth:smooth.enabled===undefined?true:smooth.enabled,type:smooth.type===undefined?\"dynamic\":smooth.type,roundness:smooth.roundness===undefined?.5:smooth.roundness,forceDirection:smooth.forceDirection===undefined?false:smooth.forceDirection};allOptions.edges.smooth={enabled:smooth.enabled===undefined?true:smooth.enabled,type:type,roundness:smooth.roundness===undefined?.5:smooth.roundness,forceDirection:smooth.forceDirection===undefined?false:smooth.forceDirection}}}this.body.emitter.emit(\"_forceDisableDynamicCurves\",type)}return allOptions}},{key:\"seededRandom\",value:function seededRandom(){var x=Math.sin(this.randomSeed++)*1e4;return x-Math.floor(x)}},{key:\"positionInitially\",value:function positionInitially(nodesArray){if(this.options.hierarchical.enabled!==true){this.randomSeed=this.initialRandomSeed;var radius=nodesArray.length+50;for(var i=0;i<nodesArray.length;i++){var node=nodesArray[i];var angle=2*Math.PI*this.seededRandom();if(node.x===undefined){node.x=radius*Math.cos(angle)}if(node.y===undefined){node.y=radius*Math.sin(angle)}}}}},{key:\"layoutNetwork\",value:function layoutNetwork(){if(this.options.hierarchical.enabled!==true&&this.options.improvedLayout===true){var indices=this.body.nodeIndices;var positionDefined=0;for(var i=0;i<indices.length;i++){var node=this.body.nodes[indices[i]];if(node.predefinedPosition===true){positionDefined+=1}}if(positionDefined<.5*indices.length){var MAX_LEVELS=10;var level=0;var clusterThreshold=150;var clusterOptions={clusterNodeProperties:{shape:\"ellipse\",label:\"\",group:\"\",font:{multi:false}},clusterEdgeProperties:{label:\"\",font:{multi:false},smooth:{enabled:false}}};if(indices.length>clusterThreshold){var startLength=indices.length;while(indices.length>clusterThreshold&&level<=MAX_LEVELS){level+=1;var before=indices.length;if(level%3===0){this.body.modules.clustering.clusterBridges(clusterOptions)}else{this.body.modules.clustering.clusterOutliers(clusterOptions)}var after=indices.length;if(before==after&&level%3!==0){this._declusterAll();this.body.emitter.emit(\"_layoutFailed\");console.info(\"This network could not be positioned by this version of the improved layout algorithm.\"+\" Please disable improvedLayout for better performance.\");return}}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*startLength)})}if(level>MAX_LEVELS){console.info(\"The clustering didn't succeed within the amount of interations allowed,\"+\" progressing with partial result.\")}this.body.modules.kamadaKawai.solve(indices,this.body.edgeIndices,true);this._shiftToCenter();var offset=70;for(var _i=0;_i<indices.length;_i++){var _node=this.body.nodes[indices[_i]];if(_node.predefinedPosition===false){_node.x+=(.5-this.seededRandom())*offset;_node.y+=(.5-this.seededRandom())*offset}}this._declusterAll();this.body.emitter.emit(\"_repositionBezierNodes\")}}}},{key:\"_shiftToCenter\",value:function _shiftToCenter(){var range=NetworkUtil.getRangeCore(this.body.nodes,this.body.nodeIndices);var center=NetworkUtil.findCenter(range);for(var i=0;i<this.body.nodeIndices.length;i++){var node=this.body.nodes[this.body.nodeIndices[i]];node.x-=center.x;node.y-=center.y}}},{key:\"_declusterAll\",value:function _declusterAll(){var clustersPresent=true;while(clustersPresent===true){clustersPresent=false;for(var i=0;i<this.body.nodeIndices.length;i++){if(this.body.nodes[this.body.nodeIndices[i]].isCluster===true){clustersPresent=true;this.body.modules.clustering.openCluster(this.body.nodeIndices[i],{},false)}}if(clustersPresent===true){this.body.emitter.emit(\"_dataChanged\")}}}},{key:\"getSeed\",value:function getSeed(){return this.initialRandomSeed}},{key:\"setupHierarchicalLayout\",value:function setupHierarchicalLayout(){if(this.options.hierarchical.enabled===true&&this.body.nodeIndices.length>0){var node=void 0,nodeId=void 0;var definedLevel=false;var undefinedLevel=false;this.lastNodeOnLevel={};this.hierarchical=new HierarchicalStatus;for(nodeId in this.body.nodes){if(this.body.nodes.hasOwnProperty(nodeId)){node=this.body.nodes[nodeId];if(node.options.level!==undefined){definedLevel=true;this.hierarchical.levels[nodeId]=node.options.level}else{undefinedLevel=true}}}if(undefinedLevel===true&&definedLevel===true){throw new Error(\"To use the hierarchical layout, nodes require either no predefined levels\"+\" or levels have to be defined for all nodes.\")}else{if(undefinedLevel===true){var sortMethod=this.options.hierarchical.sortMethod;if(sortMethod===\"hubsize\"){this._determineLevelsByHubsize()}else if(sortMethod===\"directed\"){this._determineLevelsDirected()}else if(sortMethod===\"custom\"){this._determineLevelsCustomCallback()}}for(var _nodeId2 in this.body.nodes){if(this.body.nodes.hasOwnProperty(_nodeId2)){this.hierarchical.ensureLevel(_nodeId2)}}var distribution=this._getDistribution();this._generateMap();this._placeNodesByHierarchy(distribution);this._condenseHierarchy();this._shiftToCenter()}}}},{key:\"_condenseHierarchy\",value:function _condenseHierarchy(){var _this3=this;var stillShifting=false;var branches={};var shiftTrees=function shiftTrees(){var treeSizes=getTreeSizes();var shiftBy=0;for(var i=0;i<treeSizes.length-1;i++){var diff=treeSizes[i].max-treeSizes[i+1].min;shiftBy+=diff+_this3.options.hierarchical.treeSpacing;shiftTree(i+1,shiftBy)}};var shiftTree=function shiftTree(index,offset){var trees=_this3.hierarchical.trees;for(var nodeId in trees){if(trees.hasOwnProperty(nodeId)){if(trees[nodeId]===index){_this3.direction.shift(nodeId,offset)}}}};var getTreeSizes=function getTreeSizes(){var treeWidths=[];for(var i=0;i<_this3.hierarchical.numTrees();i++){treeWidths.push(_this3.direction.getTreeSize(i))}return treeWidths};var getBranchNodes=function getBranchNodes(source,map){if(map[source.id]){return}map[source.id]=true;if(_this3.hierarchical.childrenReference[source.id]){var children=_this3.hierarchical.childrenReference[source.id];if(children.length>0){for(var i=0;i<children.length;i++){getBranchNodes(_this3.body.nodes[children[i]],map)}}}};var getBranchBoundary=function getBranchBoundary(branchMap){var maxLevel=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1e9;var minSpace=1e9;var maxSpace=1e9;var min=1e9;var max=-1e9;for(var branchNode in branchMap){if(branchMap.hasOwnProperty(branchNode)){var node=_this3.body.nodes[branchNode];var level=_this3.hierarchical.levels[node.id];var position=_this3.direction.getPosition(node);var _getSpaceAroundNode2=_this3._getSpaceAroundNode(node,branchMap),_getSpaceAroundNode3=(0,_slicedToArray3[\"default\"])(_getSpaceAroundNode2,2),minSpaceNode=_getSpaceAroundNode3[0],maxSpaceNode=_getSpaceAroundNode3[1];minSpace=Math.min(minSpaceNode,minSpace);maxSpace=Math.min(maxSpaceNode,maxSpace);if(level<=maxLevel){min=Math.min(position,min);max=Math.max(position,max)}}}return[min,max,minSpace,maxSpace]};var getCollisionLevel=function getCollisionLevel(node1,node2){var maxLevel1=_this3.hierarchical.getMaxLevel(node1.id);var maxLevel2=_this3.hierarchical.getMaxLevel(node2.id);return Math.min(maxLevel1,maxLevel2)};var shiftElementsCloser=function shiftElementsCloser(callback,levels,centerParents){var hier=_this3.hierarchical;for(var i=0;i<levels.length;i++){var level=levels[i];var levelNodes=hier.distributionOrdering[level];if(levelNodes.length>1){for(var j=0;j<levelNodes.length-1;j++){var node1=levelNodes[j];var node2=levelNodes[j+1];if(hier.hasSameParent(node1,node2)&&hier.inSameSubNetwork(node1,node2)){callback(node1,node2,centerParents)}}}}};var branchShiftCallback=function branchShiftCallback(node1,node2){var centerParent=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var pos1=_this3.direction.getPosition(node1);var pos2=_this3.direction.getPosition(node2);var diffAbs=Math.abs(pos2-pos1);var nodeSpacing=_this3.options.hierarchical.nodeSpacing;if(diffAbs>nodeSpacing){var branchNodes1={};var branchNodes2={};getBranchNodes(node1,branchNodes1);getBranchNodes(node2,branchNodes2);var maxLevel=getCollisionLevel(node1,node2);var branchNodeBoundary1=getBranchBoundary(branchNodes1,maxLevel);var branchNodeBoundary2=getBranchBoundary(branchNodes2,maxLevel);var max1=branchNodeBoundary1[1];var min2=branchNodeBoundary2[0];var minSpace2=branchNodeBoundary2[2];var diffBranch=Math.abs(max1-min2);if(diffBranch>nodeSpacing){var offset=max1-min2+nodeSpacing;if(offset<-minSpace2+nodeSpacing){offset=-minSpace2+nodeSpacing}if(offset<0){_this3._shiftBlock(node2.id,offset);stillShifting=true;if(centerParent===true)_this3._centerParent(node2)}}}};var minimizeEdgeLength=function minimizeEdgeLength(iterations,node){var nodeId=node.id;var allEdges=node.edges;var nodeLevel=_this3.hierarchical.levels[node.id];var C2=_this3.options.hierarchical.levelSeparation*_this3.options.hierarchical.levelSeparation;var referenceNodes={};var aboveEdges=[];for(var i=0;i<allEdges.length;i++){var edge=allEdges[i];if(edge.toId!=edge.fromId){var otherNode=edge.toId==nodeId?edge.from:edge.to;referenceNodes[allEdges[i].id]=otherNode;if(_this3.hierarchical.levels[otherNode.id]<nodeLevel){aboveEdges.push(edge)}}}var getFx=function getFx(point,edges){var sum=0;for(var _i2=0;_i2<edges.length;_i2++){if(referenceNodes[edges[_i2].id]!==undefined){var a=_this3.direction.getPosition(referenceNodes[edges[_i2].id])-point;sum+=a/Math.sqrt(a*a+C2)}}return sum};var getDFx=function getDFx(point,edges){var sum=0;for(var _i3=0;_i3<edges.length;_i3++){if(referenceNodes[edges[_i3].id]!==undefined){var a=_this3.direction.getPosition(referenceNodes[edges[_i3].id])-point;sum-=C2*Math.pow(a*a+C2,-1.5)}}return sum};var getGuess=function getGuess(iterations,edges){var guess=_this3.direction.getPosition(node);var guessMap={};for(var _i4=0;_i4<iterations;_i4++){var fx=getFx(guess,edges);var dfx=getDFx(guess,edges);var limit=40;var ratio=Math.max(-limit,Math.min(limit,Math.round(fx/dfx)));guess=guess-ratio;if(guessMap[guess]!==undefined){break}guessMap[guess]=_i4}return guess};var moveBranch=function moveBranch(guess){var nodePosition=_this3.direction.getPosition(node);if(branches[node.id]===undefined){var branchNodes={};getBranchNodes(node,branchNodes);branches[node.id]=branchNodes}var branchBoundary=getBranchBoundary(branches[node.id]);var minSpaceBranch=branchBoundary[2];var maxSpaceBranch=branchBoundary[3];var diff=guess-nodePosition;var branchOffset=0;if(diff>0){branchOffset=Math.min(diff,maxSpaceBranch-_this3.options.hierarchical.nodeSpacing)}else if(diff<0){branchOffset=-Math.min(-diff,minSpaceBranch-_this3.options.hierarchical.nodeSpacing)}if(branchOffset!=0){_this3._shiftBlock(node.id,branchOffset);stillShifting=true}};var moveNode=function moveNode(guess){var nodePosition=_this3.direction.getPosition(node);var _getSpaceAroundNode4=_this3._getSpaceAroundNode(node),_getSpaceAroundNode5=(0,_slicedToArray3[\"default\"])(_getSpaceAroundNode4,2),minSpace=_getSpaceAroundNode5[0],maxSpace=_getSpaceAroundNode5[1];var diff=guess-nodePosition;var newPosition=nodePosition;if(diff>0){newPosition=Math.min(nodePosition+(maxSpace-_this3.options.hierarchical.nodeSpacing),guess)}else if(diff<0){newPosition=Math.max(nodePosition-(minSpace-_this3.options.hierarchical.nodeSpacing),guess)}if(newPosition!==nodePosition){_this3.direction.setPosition(node,newPosition);stillShifting=true}};var guess=getGuess(iterations,aboveEdges);moveBranch(guess);guess=getGuess(iterations,allEdges);moveNode(guess)};var minimizeEdgeLengthBottomUp=function minimizeEdgeLengthBottomUp(iterations){var levels=_this3.hierarchical.getLevels();levels=levels.reverse();for(var i=0;i<iterations;i++){stillShifting=false;for(var j=0;j<levels.length;j++){var level=levels[j];var levelNodes=_this3.hierarchical.distributionOrdering[level];for(var k=0;k<levelNodes.length;k++){minimizeEdgeLength(1e3,levelNodes[k])}}if(stillShifting!==true){break}}};var shiftBranchesCloserBottomUp=function shiftBranchesCloserBottomUp(iterations){var levels=_this3.hierarchical.getLevels();levels=levels.reverse();for(var i=0;i<iterations;i++){stillShifting=false;shiftElementsCloser(branchShiftCallback,levels,true);if(stillShifting!==true){break}}};var centerAllParents=function centerAllParents(){for(var nodeId in _this3.body.nodes){if(_this3.body.nodes.hasOwnProperty(nodeId))_this3._centerParent(_this3.body.nodes[nodeId])}};var centerAllParentsBottomUp=function centerAllParentsBottomUp(){var levels=_this3.hierarchical.getLevels()\n;levels=levels.reverse();for(var i=0;i<levels.length;i++){var level=levels[i];var levelNodes=_this3.hierarchical.distributionOrdering[level];for(var j=0;j<levelNodes.length;j++){_this3._centerParent(levelNodes[j])}}};if(this.options.hierarchical.blockShifting===true){shiftBranchesCloserBottomUp(5);centerAllParents()}if(this.options.hierarchical.edgeMinimization===true){minimizeEdgeLengthBottomUp(20)}if(this.options.hierarchical.parentCentralization===true){centerAllParentsBottomUp()}shiftTrees()}},{key:\"_getSpaceAroundNode\",value:function _getSpaceAroundNode(node,map){var useMap=true;if(map===undefined){useMap=false}var level=this.hierarchical.levels[node.id];if(level!==undefined){var index=this.hierarchical.distributionIndex[node.id];var position=this.direction.getPosition(node);var ordering=this.hierarchical.distributionOrdering[level];var minSpace=1e9;var maxSpace=1e9;if(index!==0){var prevNode=ordering[index-1];if(useMap===true&&map[prevNode.id]===undefined||useMap===false){var prevPos=this.direction.getPosition(prevNode);minSpace=position-prevPos}}if(index!=ordering.length-1){var nextNode=ordering[index+1];if(useMap===true&&map[nextNode.id]===undefined||useMap===false){var nextPos=this.direction.getPosition(nextNode);maxSpace=Math.min(maxSpace,nextPos-position)}}return[minSpace,maxSpace]}else{return[0,0]}}},{key:\"_centerParent\",value:function _centerParent(node){if(this.hierarchical.parentReference[node.id]){var parents=this.hierarchical.parentReference[node.id];for(var i=0;i<parents.length;i++){var parentId=parents[i];var parentNode=this.body.nodes[parentId];var children=this.hierarchical.childrenReference[parentId];if(children!==undefined){var newPosition=this._getCenterPosition(children);var position=this.direction.getPosition(parentNode);var _getSpaceAroundNode6=this._getSpaceAroundNode(parentNode),_getSpaceAroundNode7=(0,_slicedToArray3[\"default\"])(_getSpaceAroundNode6,2),minSpace=_getSpaceAroundNode7[0],maxSpace=_getSpaceAroundNode7[1];var diff=position-newPosition;if(diff<0&&Math.abs(diff)<maxSpace-this.options.hierarchical.nodeSpacing||diff>0&&Math.abs(diff)<minSpace-this.options.hierarchical.nodeSpacing){this.direction.setPosition(parentNode,newPosition)}}}}}},{key:\"_placeNodesByHierarchy\",value:function _placeNodesByHierarchy(distribution){this.positionedNodes={};for(var level in distribution){if(distribution.hasOwnProperty(level)){var nodeArray=(0,_keys2[\"default\"])(distribution[level]);nodeArray=this._indexArrayToNodes(nodeArray);this.direction.sort(nodeArray);var handledNodeCount=0;for(var i=0;i<nodeArray.length;i++){var node=nodeArray[i];if(this.positionedNodes[node.id]===undefined){var spacing=this.options.hierarchical.nodeSpacing;var pos=spacing*handledNodeCount;if(handledNodeCount>0){pos=this.direction.getPosition(nodeArray[i-1])+spacing}this.direction.setPosition(node,pos,level);this._validatePositionAndContinue(node,level,pos);handledNodeCount++}}}}}},{key:\"_placeBranchNodes\",value:function _placeBranchNodes(parentId,parentLevel){var childRef=this.hierarchical.childrenReference[parentId];if(childRef===undefined){return}var childNodes=[];for(var i=0;i<childRef.length;i++){childNodes.push(this.body.nodes[childRef[i]])}this.direction.sort(childNodes);for(var _i5=0;_i5<childNodes.length;_i5++){var childNode=childNodes[_i5];var childNodeLevel=this.hierarchical.levels[childNode.id];if(childNodeLevel>parentLevel&&this.positionedNodes[childNode.id]===undefined){var spacing=this.options.hierarchical.nodeSpacing;var pos=void 0;if(_i5===0){pos=this.direction.getPosition(this.body.nodes[parentId])}else{pos=this.direction.getPosition(childNodes[_i5-1])+spacing}this.direction.setPosition(childNode,pos,childNodeLevel);this._validatePositionAndContinue(childNode,childNodeLevel,pos)}else{return}}var center=this._getCenterPosition(childNodes);this.direction.setPosition(this.body.nodes[parentId],center,parentLevel)}},{key:\"_validatePositionAndContinue\",value:function _validatePositionAndContinue(node,level,pos){if(!this.hierarchical.isTree)return;if(this.lastNodeOnLevel[level]!==undefined){var previousPos=this.direction.getPosition(this.body.nodes[this.lastNodeOnLevel[level]]);if(pos-previousPos<this.options.hierarchical.nodeSpacing){var diff=previousPos+this.options.hierarchical.nodeSpacing-pos;var sharedParent=this._findCommonParent(this.lastNodeOnLevel[level],node.id);this._shiftBlock(sharedParent.withChild,diff)}}this.lastNodeOnLevel[level]=node.id;this.positionedNodes[node.id]=true;this._placeBranchNodes(node.id,level)}},{key:\"_indexArrayToNodes\",value:function _indexArrayToNodes(idArray){var array=[];for(var i=0;i<idArray.length;i++){array.push(this.body.nodes[idArray[i]])}return array}},{key:\"_getDistribution\",value:function _getDistribution(){var distribution={};var nodeId=void 0,node=void 0;for(nodeId in this.body.nodes){if(this.body.nodes.hasOwnProperty(nodeId)){node=this.body.nodes[nodeId];var level=this.hierarchical.levels[nodeId]===undefined?0:this.hierarchical.levels[nodeId];this.direction.fix(node,level);if(distribution[level]===undefined){distribution[level]={}}distribution[level][nodeId]=node}}return distribution}},{key:\"_getActiveEdges\",value:function _getActiveEdges(node){var _this4=this;var result=[];util.forEach(node.edges,function(edge){if(_this4.body.edgeIndices.indexOf(edge.id)!==-1){result.push(edge)}});return result}},{key:\"_getHubSizes\",value:function _getHubSizes(){var _this5=this;var hubSizes={};var nodeIds=this.body.nodeIndices;util.forEach(nodeIds,function(nodeId){var node=_this5.body.nodes[nodeId];var hubSize=_this5._getActiveEdges(node).length;hubSizes[hubSize]=true});var result=[];util.forEach(hubSizes,function(size){result.push(Number(size))});result.sort(function(a,b){return b-a});return result}},{key:\"_determineLevelsByHubsize\",value:function _determineLevelsByHubsize(){var _this6=this;var levelDownstream=function levelDownstream(nodeA,nodeB){_this6.hierarchical.levelDownstream(nodeA,nodeB)};var hubSizes=this._getHubSizes();var _loop=function _loop(i){var hubSize=hubSizes[i];if(hubSize===0)return\"break\";util.forEach(_this6.body.nodeIndices,function(nodeId){var node=_this6.body.nodes[nodeId];if(hubSize===_this6._getActiveEdges(node).length){_this6._crawlNetwork(levelDownstream,nodeId)}})};for(var i=0;i<hubSizes.length;++i){var _ret=_loop(i);if(_ret===\"break\")break}}},{key:\"_determineLevelsCustomCallback\",value:function _determineLevelsCustomCallback(){var _this7=this;var minLevel=1e5;var customCallback=function customCallback(nodeA,nodeB,edge){};var levelByDirection=function levelByDirection(nodeA,nodeB,edge){var levelA=_this7.hierarchical.levels[nodeA.id];if(levelA===undefined){levelA=_this7.hierarchical.levels[nodeA.id]=minLevel}var diff=customCallback(NetworkUtil.cloneOptions(nodeA,\"node\"),NetworkUtil.cloneOptions(nodeB,\"node\"),NetworkUtil.cloneOptions(edge,\"edge\"));_this7.hierarchical.levels[nodeB.id]=levelA+diff};this._crawlNetwork(levelByDirection);this.hierarchical.setMinLevelToZero(this.body.nodes)}},{key:\"_determineLevelsDirected\",value:function _determineLevelsDirected(){var _this8=this;var minLevel=1e4;var isBidirectional=function isBidirectional(edge){util.forEach(_this8.body.edges,function(otherEdge){if(otherEdge.toId===edge.fromId&&otherEdge.fromId===edge.toId){return true}});return false};var levelByDirection=function levelByDirection(nodeA,nodeB,edge){var levelA=_this8.hierarchical.levels[nodeA.id];var levelB=_this8.hierarchical.levels[nodeB.id];if(isBidirectional(edge)&&levelA!==undefined&&levelB!==undefined){return}if(levelA===undefined){levelA=_this8.hierarchical.levels[nodeA.id]=minLevel}if(edge.toId==nodeB.id){_this8.hierarchical.levels[nodeB.id]=levelA+1}else{_this8.hierarchical.levels[nodeB.id]=levelA-1}};this._crawlNetwork(levelByDirection);this.hierarchical.setMinLevelToZero(this.body.nodes)}},{key:\"_generateMap\",value:function _generateMap(){var _this9=this;var fillInRelations=function fillInRelations(parentNode,childNode){if(_this9.hierarchical.levels[childNode.id]>_this9.hierarchical.levels[parentNode.id]){_this9.hierarchical.addRelation(parentNode.id,childNode.id)}};this._crawlNetwork(fillInRelations);this.hierarchical.checkIfTree()}},{key:\"_crawlNetwork\",value:function _crawlNetwork(){var _this10=this;var callback=arguments.length>0&&arguments[0]!==undefined?arguments[0]:function(){};var startingNodeId=arguments[1];var progress={};var crawler=function crawler(node,tree){if(progress[node.id]===undefined){_this10.hierarchical.setTreeIndex(node,tree);progress[node.id]=true;var childNode=void 0;var edges=_this10._getActiveEdges(node);for(var i=0;i<edges.length;i++){var edge=edges[i];if(edge.connected===true){if(edge.toId==node.id){childNode=edge.from}else{childNode=edge.to}if(node.id!=childNode.id){callback(node,childNode,edge);crawler(childNode,tree)}}}}};if(startingNodeId===undefined){var treeIndex=0;for(var i=0;i<this.body.nodeIndices.length;i++){var nodeId=this.body.nodeIndices[i];if(progress[nodeId]===undefined){var node=this.body.nodes[nodeId];crawler(node,treeIndex);treeIndex+=1}}}else{var _node2=this.body.nodes[startingNodeId];if(_node2===undefined){console.error(\"Node not found:\",startingNodeId);return}crawler(_node2)}}},{key:\"_shiftBlock\",value:function _shiftBlock(parentId,diff){var _this11=this;var progress={};var shifter=function shifter(parentId){if(progress[parentId]){return}progress[parentId]=true;_this11.direction.shift(parentId,diff);var childRef=_this11.hierarchical.childrenReference[parentId];if(childRef!==undefined){for(var i=0;i<childRef.length;i++){shifter(childRef[i])}}};shifter(parentId)}},{key:\"_findCommonParent\",value:function _findCommonParent(childA,childB){var _this12=this;var parents={};var iterateParents=function iterateParents(parents,child){var parentRef=_this12.hierarchical.parentReference[child];if(parentRef!==undefined){for(var i=0;i<parentRef.length;i++){var parent=parentRef[i];parents[parent]=true;iterateParents(parents,parent)}}};var findParent=function findParent(parents,child){var parentRef=_this12.hierarchical.parentReference[child];if(parentRef!==undefined){for(var i=0;i<parentRef.length;i++){var parent=parentRef[i];if(parents[parent]!==undefined){return{foundParent:parent,withChild:child}}var branch=findParent(parents,parent);if(branch.foundParent!==null){return branch}}}return{foundParent:null,withChild:child}};iterateParents(parents,childA);return findParent(parents,childB)}},{key:\"setDirectionStrategy\",value:function setDirectionStrategy(){var isVertical=this.options.hierarchical.direction===\"UD\"||this.options.hierarchical.direction===\"DU\";if(isVertical){this.direction=new VerticalStrategy(this)}else{this.direction=new HorizontalStrategy(this)}}},{key:\"_getCenterPosition\",value:function _getCenterPosition(childNodes){var minPos=1e9;var maxPos=-1e9;for(var i=0;i<childNodes.length;i++){var childNode=void 0;if(childNodes[i].id!==undefined){childNode=childNodes[i]}else{var childNodeId=childNodes[i];childNode=this.body.nodes[childNodeId]}var position=this.direction.getPosition(childNode);minPos=Math.min(minPos,position);maxPos=Math.max(maxPos,position)}return.5*(minPos+maxPos)}}]);return LayoutEngine}();exports[\"default\"]=LayoutEngine},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.VerticalStrategy=exports.HorizontalStrategy=undefined;var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var DirectionInterface=function(){function DirectionInterface(){(0,_classCallCheck3[\"default\"])(this,DirectionInterface)}(0,_createClass3[\"default\"])(DirectionInterface,[{key:\"abstract\",value:function abstract(){throw new Error(\"Can't instantiate abstract class!\")}},{key:\"fake_use\",value:function fake_use(){}},{key:\"curveType\",value:function curveType(){return this.abstract()}},{key:\"getPosition\",value:function getPosition(node){this.fake_use(node);return this.abstract()}},{key:\"setPosition\",value:function setPosition(node,position){var level=arguments.length>2&&arguments[2]!==undefined?arguments[2]:undefined;this.fake_use(node,position,level);this.abstract()}},{key:\"getTreeSize\",value:function getTreeSize(index){this.fake_use(index);return this.abstract()}},{key:\"sort\",value:function sort(nodeArray){this.fake_use(nodeArray);this.abstract()}},{key:\"fix\",value:function fix(node,level){this.fake_use(node,level);this.abstract()}},{key:\"shift\",value:function shift(nodeId,diff){this.fake_use(nodeId,diff);this.abstract()}}]);return DirectionInterface}();var VerticalStrategy=function(_DirectionInterface){(0,_inherits3[\"default\"])(VerticalStrategy,_DirectionInterface);function VerticalStrategy(layout){(0,_classCallCheck3[\"default\"])(this,VerticalStrategy);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(VerticalStrategy.__proto__||(0,_getPrototypeOf2[\"default\"])(VerticalStrategy)).call(this));_this.layout=layout;return _this}(0,_createClass3[\"default\"])(VerticalStrategy,[{key:\"curveType\",value:function curveType(){return\"horizontal\"}},{key:\"getPosition\",value:function getPosition(node){return node.x}},{key:\"setPosition\",value:function setPosition(node,position){var level=arguments.length>2&&arguments[2]!==undefined?arguments[2]:undefined;if(level!==undefined){this.layout.hierarchical.addToOrdering(node,level)}node.x=position}},{key:\"getTreeSize\",value:function getTreeSize(index){var res=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,index);return{min:res.min_x,max:res.max_x}}},{key:\"sort\",value:function sort(nodeArray){nodeArray.sort(function(a,b){if(a.x===undefined||b.x===undefined)return 0;return a.x-b.x})}},{key:\"fix\",value:function fix(node,level){node.y=this.layout.options.hierarchical.levelSeparation*level;node.options.fixed.y=true}},{key:\"shift\",value:function shift(nodeId,diff){this.layout.body.nodes[nodeId].x+=diff}}]);return VerticalStrategy}(DirectionInterface);var HorizontalStrategy=function(_DirectionInterface2){(0,_inherits3[\"default\"])(HorizontalStrategy,_DirectionInterface2);function HorizontalStrategy(layout){(0,_classCallCheck3[\"default\"])(this,HorizontalStrategy);var _this2=(0,_possibleConstructorReturn3[\"default\"])(this,(HorizontalStrategy.__proto__||(0,_getPrototypeOf2[\"default\"])(HorizontalStrategy)).call(this));_this2.layout=layout;return _this2}(0,_createClass3[\"default\"])(HorizontalStrategy,[{key:\"curveType\",value:function curveType(){return\"vertical\"}},{key:\"getPosition\",value:function getPosition(node){return node.y}},{key:\"setPosition\",value:function setPosition(node,position){var level=arguments.length>2&&arguments[2]!==undefined?arguments[2]:undefined;if(level!==undefined){this.layout.hierarchical.addToOrdering(node,level)}node.y=position}},{key:\"getTreeSize\",value:function getTreeSize(index){var res=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,index);return{min:res.min_y,max:res.max_y}}},{key:\"sort\",value:function sort(nodeArray){nodeArray.sort(function(a,b){if(a.y===undefined||b.y===undefined)return 0;return a.y-b.y})}},{key:\"fix\",value:function fix(node,level){node.x=this.layout.options.hierarchical.levelSeparation*level;node.options.fixed.x=true}},{key:\"shift\",value:function shift(nodeId,diff){this.layout.body.nodes[nodeId].y+=diff}}]);return HorizontalStrategy}(DirectionInterface);exports.HorizontalStrategy=HorizontalStrategy;exports.VerticalStrategy=VerticalStrategy},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Hammer=__webpack_require__(10);var hammerUtil=__webpack_require__(37);var ManipulationSystem=function(){function ManipulationSystem(body,canvas,selectionHandler){var _this=this;(0,_classCallCheck3[\"default\"])(this,ManipulationSystem);this.body=body;this.canvas=canvas;this.selectionHandler=selectionHandler;this.editMode=false;this.manipulationDiv=undefined;this.editModeDiv=undefined;this.closeDiv=undefined;this.manipulationHammers=[];this.temporaryUIFunctions={};this.temporaryEventFunctions=[];this.touchTime=0;this.temporaryIds={nodes:[],edges:[]};this.guiEnabled=false;this.inMode=false;this.selectedControlNode=undefined;this.options={};this.defaultOptions={enabled:false,initiallyActive:false,addNode:true,addEdge:true,editNode:undefined,editEdge:true,deleteNode:true,deleteEdge:true,controlNodeStyle:{shape:\"dot\",size:6,color:{background:\"#ff0000\",border:\"#3c3c3c\",highlight:{background:\"#07f968\",border:\"#3c3c3c\"}},borderWidth:2,borderWidthSelected:2}};util.extend(this.options,this.defaultOptions);this.body.emitter.on(\"destroy\",function(){_this._clean()});this.body.emitter.on(\"_dataChanged\",this._restore.bind(this));this.body.emitter.on(\"_resetData\",this._restore.bind(this))}(0,_createClass3[\"default\"])(ManipulationSystem,[{key:\"_restore\",value:function _restore(){if(this.inMode!==false){if(this.options.initiallyActive===true){this.enableEditMode()}else{this.disableEditMode()}}}},{key:\"setOptions\",value:function setOptions(options,allOptions,globalOptions){if(allOptions!==undefined){if(allOptions.locale!==undefined){this.options.locale=allOptions.locale}else{this.options.locale=globalOptions.locale}if(allOptions.locales!==undefined){this.options.locales=allOptions.locales}else{this.options.locales=globalOptions.locales}}if(options!==undefined){if(typeof options===\"boolean\"){this.options.enabled=options}else{this.options.enabled=true;util.deepExtend(this.options,options)}if(this.options.initiallyActive===true){this.editMode=true}this._setup()}}},{key:\"toggleEditMode\",value:function toggleEditMode(){if(this.editMode===true){this.disableEditMode()}else{this.enableEditMode()}}},{key:\"enableEditMode\",value:function enableEditMode(){this.editMode=true;this._clean();if(this.guiEnabled===true){this.manipulationDiv.style.display=\"block\";this.closeDiv.style.display=\"block\";this.editModeDiv.style.display=\"none\";this.showManipulatorToolbar()}}},{key:\"disableEditMode\",value:function disableEditMode(){this.editMode=false;this._clean();if(this.guiEnabled===true){this.manipulationDiv.style.display=\"none\";this.closeDiv.style.display=\"none\";this.editModeDiv.style.display=\"block\";this._createEditButton()}}},{key:\"showManipulatorToolbar\",value:function showManipulatorToolbar(){this._clean();this.manipulationDOM={};if(this.guiEnabled===true){this.editMode=true;this.manipulationDiv.style.display=\"block\";this.closeDiv.style.display=\"block\";var selectedNodeCount=this.selectionHandler._getSelectedNodeCount();var selectedEdgeCount=this.selectionHandler._getSelectedEdgeCount();var selectedTotalCount=selectedNodeCount+selectedEdgeCount;var locale=this.options.locales[this.options.locale];var needSeperator=false;if(this.options.addNode!==false){this._createAddNodeButton(locale);needSeperator=true}if(this.options.addEdge!==false){if(needSeperator===true){this._createSeperator(1)}else{needSeperator=true}this._createAddEdgeButton(locale)}if(selectedNodeCount===1&&typeof this.options.editNode===\"function\"){if(needSeperator===true){this._createSeperator(2)}else{needSeperator=true}this._createEditNodeButton(locale)}else if(selectedEdgeCount===1&&selectedNodeCount===0&&this.options.editEdge!==false){if(needSeperator===true){this._createSeperator(3)}else{needSeperator=true}this._createEditEdgeButton(locale)}if(selectedTotalCount!==0){if(selectedNodeCount>0&&this.options.deleteNode!==false){if(needSeperator===true){this._createSeperator(4)}this._createDeleteButton(locale)}else if(selectedNodeCount===0&&this.options.deleteEdge!==false){if(needSeperator===true){this._createSeperator(4)}this._createDeleteButton(locale)}}this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this));this._temporaryBindEvent(\"select\",this.showManipulatorToolbar.bind(this))}this.body.emitter.emit(\"_redraw\")}},{key:\"addNodeMode\",value:function addNodeMode(){if(this.editMode!==true){this.enableEditMode()}this._clean();this.inMode=\"addNode\";if(this.guiEnabled===true){var locale=this.options.locales[this.options.locale];this.manipulationDOM={};this._createBackButton(locale);this._createSeperator();this._createDescription(locale[\"addDescription\"]||this.options.locales[\"en\"][\"addDescription\"]);this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindEvent(\"click\",this._performAddNode.bind(this))}},{key:\"editNode\",value:function editNode(){var _this2=this;if(this.editMode!==true){this.enableEditMode()}this._clean();var node=this.selectionHandler._getSelectedNode();if(node!==undefined){this.inMode=\"editNode\";if(typeof this.options.editNode===\"function\"){if(node.isCluster!==true){var data=util.deepExtend({},node.options,false);data.x=node.x;data.y=node.y;if(this.options.editNode.length===2){this.options.editNode(data,function(finalizedData){if(finalizedData!==null&&finalizedData!==undefined&&_this2.inMode===\"editNode\"){_this2.body.data.nodes.getDataSet().update(finalizedData)}_this2.showManipulatorToolbar()})}else{throw new Error(\"The function for edit does not support two arguments (data, callback)\")}}else{alert(this.options.locales[this.options.locale][\"editClusterError\"]||this.options.locales[\"en\"][\"editClusterError\"])}}else{throw new Error(\"No function has been configured to handle the editing of nodes.\")}}else{this.showManipulatorToolbar()}}},{key:\"addEdgeMode\",value:function addEdgeMode(){if(this.editMode!==true){this.enableEditMode()}this._clean();this.inMode=\"addEdge\";if(this.guiEnabled===true){var locale=this.options.locales[this.options.locale];this.manipulationDOM={};this._createBackButton(locale);this._createSeperator();this._createDescription(locale[\"edgeDescription\"]||this.options.locales[\"en\"][\"edgeDescription\"]);this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindUI(\"onTouch\",this._handleConnect.bind(this));this._temporaryBindUI(\"onDragEnd\",this._finishConnect.bind(this));this._temporaryBindUI(\"onDrag\",this._dragControlNode.bind(this));this._temporaryBindUI(\"onRelease\",this._finishConnect.bind(this));this._temporaryBindUI(\"onDragStart\",this._dragStartEdge.bind(this));this._temporaryBindUI(\"onHold\",function(){})}},{key:\"editEdgeMode\",value:function editEdgeMode(){if(this.editMode!==true){this.enableEditMode()}this._clean();this.inMode=\"editEdge\";if((0,_typeof3[\"default\"])(this.options.editEdge)===\"object\"&&typeof this.options.editEdge.editWithoutDrag===\"function\"){this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0];if(this.edgeBeingEditedId!==undefined){var edge=this.body.edges[this.edgeBeingEditedId];this._performEditEdge(edge.from,edge.to);return}}if(this.guiEnabled===true){var locale=this.options.locales[this.options.locale];this.manipulationDOM={};this._createBackButton(locale);this._createSeperator();this._createDescription(locale[\"editEdgeDescription\"]||this.options.locales[\"en\"][\"editEdgeDescription\"]);this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0];if(this.edgeBeingEditedId!==undefined){var _edge=this.body.edges[this.edgeBeingEditedId];var controlNodeFrom=this._getNewTargetNode(_edge.from.x,_edge.from.y);var controlNodeTo=this._getNewTargetNode(_edge.to.x,_edge.to.y);this.temporaryIds.nodes.push(controlNodeFrom.id);this.temporaryIds.nodes.push(controlNodeTo.id);this.body.nodes[controlNodeFrom.id]=controlNodeFrom;this.body.nodeIndices.push(controlNodeFrom.id);this.body.nodes[controlNodeTo.id]=controlNodeTo;this.body.nodeIndices.push(controlNodeTo.id);this._temporaryBindUI(\"onTouch\",this._controlNodeTouch.bind(this));this._temporaryBindUI(\"onTap\",function(){});this._temporaryBindUI(\"onHold\",function(){});this._temporaryBindUI(\"onDragStart\",this._controlNodeDragStart.bind(this));this._temporaryBindUI(\"onDrag\",this._controlNodeDrag.bind(this));this._temporaryBindUI(\"onDragEnd\",this._controlNodeDragEnd.bind(this));this._temporaryBindUI(\"onMouseMove\",function(){});this._temporaryBindEvent(\"beforeDrawing\",function(ctx){var positions=_edge.edgeType.findBorderPositions(ctx);if(controlNodeFrom.selected===false){controlNodeFrom.x=positions.from.x;controlNodeFrom.y=positions.from.y}if(controlNodeTo.selected===false){controlNodeTo.x=positions.to.x;controlNodeTo.y=positions.to.y}});this.body.emitter.emit(\"_redraw\")}else{this.showManipulatorToolbar()}}},{key:\"deleteSelected\",value:function deleteSelected(){var _this3=this;if(this.editMode!==true){this.enableEditMode()}this._clean();this.inMode=\"delete\";var selectedNodes=this.selectionHandler.getSelectedNodes();var selectedEdges=this.selectionHandler.getSelectedEdges();var deleteFunction=undefined;if(selectedNodes.length>0){for(var i=0;i<selectedNodes.length;i++){if(this.body.nodes[selectedNodes[i]].isCluster===true){alert(this.options.locales[this.options.locale][\"deleteClusterError\"]||this.options.locales[\"en\"][\"deleteClusterError\"]);return}}if(typeof this.options.deleteNode===\"function\"){deleteFunction=this.options.deleteNode}}else if(selectedEdges.length>0){if(typeof this.options.deleteEdge===\"function\"){deleteFunction=this.options.deleteEdge}}if(typeof deleteFunction===\"function\"){var data={nodes:selectedNodes,edges:selectedEdges};if(deleteFunction.length===2){deleteFunction(data,function(finalizedData){if(finalizedData!==null&&finalizedData!==undefined&&_this3.inMode===\"delete\"){_this3.body.data.edges.getDataSet().remove(finalizedData.edges);_this3.body.data.nodes.getDataSet().remove(finalizedData.nodes);_this3.body.emitter.emit(\"startSimulation\");_this3.showManipulatorToolbar()}else{_this3.body.emitter.emit(\"startSimulation\");_this3.showManipulatorToolbar()}})}else{throw new Error(\"The function for delete does not support two arguments (data, callback)\")}}else{this.body.data.edges.getDataSet().remove(selectedEdges);this.body.data.nodes.getDataSet().remove(selectedNodes);this.body.emitter.emit(\"startSimulation\");this.showManipulatorToolbar()}}},{key:\"_setup\",value:function _setup(){if(this.options.enabled===true){this.guiEnabled=true;this._createWrappers();if(this.editMode===false){this._createEditButton()}else{this.showManipulatorToolbar()}}else{this._removeManipulationDOM();this.guiEnabled=false}}},{key:\"_createWrappers\",value:function _createWrappers(){if(this.manipulationDiv===undefined){this.manipulationDiv=document.createElement(\"div\");this.manipulationDiv.className=\"vis-manipulation\";if(this.editMode===true){this.manipulationDiv.style.display=\"block\"}else{this.manipulationDiv.style.display=\"none\"}this.canvas.frame.appendChild(this.manipulationDiv)}if(this.editModeDiv===undefined){this.editModeDiv=document.createElement(\"div\");this.editModeDiv.className=\"vis-edit-mode\";if(this.editMode===true){this.editModeDiv.style.display=\"none\"}else{this.editModeDiv.style.display=\"block\"}this.canvas.frame.appendChild(this.editModeDiv)}if(this.closeDiv===undefined){this.closeDiv=document.createElement(\"div\");this.closeDiv.className=\"vis-close\";this.closeDiv.style.display=this.manipulationDiv.style.display;this.canvas.frame.appendChild(this.closeDiv)}}},{key:\"_getNewTargetNode\",value:function _getNewTargetNode(x,y){var controlNodeStyle=util.deepExtend({},this.options.controlNodeStyle);controlNodeStyle.id=\"targetNode\"+util.randomUUID();controlNodeStyle.hidden=false;controlNodeStyle.physics=false;controlNodeStyle.x=x;controlNodeStyle.y=y;var node=this.body.functions.createNode(controlNodeStyle);node.shape.boundingBox={left:x,right:x,top:y,bottom:y};return node}},{key:\"_createEditButton\",value:function _createEditButton(){this._clean();this.manipulationDOM={};util.recursiveDOMDelete(this.editModeDiv);var locale=this.options.locales[this.options.locale];var button=this._createButton(\"editMode\",\"vis-button vis-edit vis-edit-mode\",locale[\"edit\"]||this.options.locales[\"en\"][\"edit\"]);this.editModeDiv.appendChild(button);this._bindHammerToDiv(button,this.toggleEditMode.bind(this))}},{key:\"_clean\",value:function _clean(){this.inMode=false;if(this.guiEnabled===true){util.recursiveDOMDelete(this.editModeDiv);util.recursiveDOMDelete(this.manipulationDiv);this._cleanManipulatorHammers()}this._cleanupTemporaryNodesAndEdges();this._unbindTemporaryUIs();this._unbindTemporaryEvents();this.body.emitter.emit(\"restorePhysics\")}},{key:\"_cleanManipulatorHammers\",value:function _cleanManipulatorHammers(){if(this.manipulationHammers.length!=0){for(var i=0;i<this.manipulationHammers.length;i++){this.manipulationHammers[i].destroy()}this.manipulationHammers=[]}}},{key:\"_removeManipulationDOM\",value:function _removeManipulationDOM(){this._clean();util.recursiveDOMDelete(this.manipulationDiv);util.recursiveDOMDelete(this.editModeDiv);util.recursiveDOMDelete(this.closeDiv);if(this.manipulationDiv){this.canvas.frame.removeChild(this.manipulationDiv)}if(this.editModeDiv){this.canvas.frame.removeChild(this.editModeDiv)}if(this.closeDiv){this.canvas.frame.removeChild(this.closeDiv)}this.manipulationDiv=undefined;this.editModeDiv=undefined;this.closeDiv=undefined}},{key:\"_createSeperator\",value:function _createSeperator(){var index=arguments.length>0&&arguments[0]!==undefined?arguments[0]:1;this.manipulationDOM[\"seperatorLineDiv\"+index]=document.createElement(\"div\");this.manipulationDOM[\"seperatorLineDiv\"+index].className=\"vis-separator-line\";this.manipulationDiv.appendChild(this.manipulationDOM[\"seperatorLineDiv\"+index])}},{key:\"_createAddNodeButton\",value:function _createAddNodeButton(locale){var button=this._createButton(\"addNode\",\"vis-button vis-add\",locale[\"addNode\"]||this.options.locales[\"en\"][\"addNode\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.addNodeMode.bind(this))}},{key:\"_createAddEdgeButton\",value:function _createAddEdgeButton(locale){var button=this._createButton(\"addEdge\",\"vis-button vis-connect\",locale[\"addEdge\"]||this.options.locales[\"en\"][\"addEdge\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.addEdgeMode.bind(this))}},{key:\"_createEditNodeButton\",value:function _createEditNodeButton(locale){var button=this._createButton(\"editNode\",\"vis-button vis-edit\",locale[\"editNode\"]||this.options.locales[\"en\"][\"editNode\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.editNode.bind(this))}},{key:\"_createEditEdgeButton\",value:function _createEditEdgeButton(locale){var button=this._createButton(\"editEdge\",\"vis-button vis-edit\",locale[\"editEdge\"]||this.options.locales[\"en\"][\"editEdge\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.editEdgeMode.bind(this))}},{key:\"_createDeleteButton\",value:function _createDeleteButton(locale){var deleteBtnClass;if(this.options.rtl){deleteBtnClass=\"vis-button vis-delete-rtl\"}else{deleteBtnClass=\"vis-button vis-delete\"}var button=this._createButton(\"delete\",deleteBtnClass,locale[\"del\"]||this.options.locales[\"en\"][\"del\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.deleteSelected.bind(this))}},{key:\"_createBackButton\",value:function _createBackButton(locale){\nvar button=this._createButton(\"back\",\"vis-button vis-back\",locale[\"back\"]||this.options.locales[\"en\"][\"back\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.showManipulatorToolbar.bind(this))}},{key:\"_createButton\",value:function _createButton(id,className,label){var labelClassName=arguments.length>3&&arguments[3]!==undefined?arguments[3]:\"vis-label\";this.manipulationDOM[id+\"Div\"]=document.createElement(\"div\");this.manipulationDOM[id+\"Div\"].className=className;this.manipulationDOM[id+\"Label\"]=document.createElement(\"div\");this.manipulationDOM[id+\"Label\"].className=labelClassName;this.manipulationDOM[id+\"Label\"].innerHTML=label;this.manipulationDOM[id+\"Div\"].appendChild(this.manipulationDOM[id+\"Label\"]);return this.manipulationDOM[id+\"Div\"]}},{key:\"_createDescription\",value:function _createDescription(label){this.manipulationDiv.appendChild(this._createButton(\"description\",\"vis-button vis-none\",label))}},{key:\"_temporaryBindEvent\",value:function _temporaryBindEvent(event,newFunction){this.temporaryEventFunctions.push({event:event,boundFunction:newFunction});this.body.emitter.on(event,newFunction)}},{key:\"_temporaryBindUI\",value:function _temporaryBindUI(UIfunctionName,newFunction){if(this.body.eventListeners[UIfunctionName]!==undefined){this.temporaryUIFunctions[UIfunctionName]=this.body.eventListeners[UIfunctionName];this.body.eventListeners[UIfunctionName]=newFunction}else{throw new Error(\"This UI function does not exist. Typo? You tried: \"+UIfunctionName+\" possible are: \"+(0,_stringify2[\"default\"])((0,_keys2[\"default\"])(this.body.eventListeners)))}}},{key:\"_unbindTemporaryUIs\",value:function _unbindTemporaryUIs(){for(var functionName in this.temporaryUIFunctions){if(this.temporaryUIFunctions.hasOwnProperty(functionName)){this.body.eventListeners[functionName]=this.temporaryUIFunctions[functionName];delete this.temporaryUIFunctions[functionName]}}this.temporaryUIFunctions={}}},{key:\"_unbindTemporaryEvents\",value:function _unbindTemporaryEvents(){for(var i=0;i<this.temporaryEventFunctions.length;i++){var eventName=this.temporaryEventFunctions[i].event;var boundFunction=this.temporaryEventFunctions[i].boundFunction;this.body.emitter.off(eventName,boundFunction)}this.temporaryEventFunctions=[]}},{key:\"_bindHammerToDiv\",value:function _bindHammerToDiv(domElement,boundFunction){var hammer=new Hammer(domElement,{});hammerUtil.onTouch(hammer,boundFunction);this.manipulationHammers.push(hammer)}},{key:\"_cleanupTemporaryNodesAndEdges\",value:function _cleanupTemporaryNodesAndEdges(){for(var i=0;i<this.temporaryIds.edges.length;i++){this.body.edges[this.temporaryIds.edges[i]].disconnect();delete this.body.edges[this.temporaryIds.edges[i]];var indexTempEdge=this.body.edgeIndices.indexOf(this.temporaryIds.edges[i]);if(indexTempEdge!==-1){this.body.edgeIndices.splice(indexTempEdge,1)}}for(var _i=0;_i<this.temporaryIds.nodes.length;_i++){delete this.body.nodes[this.temporaryIds.nodes[_i]];var indexTempNode=this.body.nodeIndices.indexOf(this.temporaryIds.nodes[_i]);if(indexTempNode!==-1){this.body.nodeIndices.splice(indexTempNode,1)}}this.temporaryIds={nodes:[],edges:[]}}},{key:\"_controlNodeTouch\",value:function _controlNodeTouch(event){this.selectionHandler.unselectAll();this.lastTouch=this.body.functions.getPointer(event.center);this.lastTouch.translation=util.extend({},this.body.view.translation)}},{key:\"_controlNodeDragStart\",value:function _controlNodeDragStart(event){var pointer=this.lastTouch;var pointerObj=this.selectionHandler._pointerToPositionObject(pointer);var from=this.body.nodes[this.temporaryIds.nodes[0]];var to=this.body.nodes[this.temporaryIds.nodes[1]];var edge=this.body.edges[this.edgeBeingEditedId];this.selectedControlNode=undefined;var fromSelect=from.isOverlappingWith(pointerObj);var toSelect=to.isOverlappingWith(pointerObj);if(fromSelect===true){this.selectedControlNode=from;edge.edgeType.from=from}else if(toSelect===true){this.selectedControlNode=to;edge.edgeType.to=to}if(this.selectedControlNode!==undefined){this.selectionHandler.selectObject(this.selectedControlNode)}this.body.emitter.emit(\"_redraw\")}},{key:\"_controlNodeDrag\",value:function _controlNodeDrag(event){this.body.emitter.emit(\"disablePhysics\");var pointer=this.body.functions.getPointer(event.center);var pos=this.canvas.DOMtoCanvas(pointer);if(this.selectedControlNode!==undefined){this.selectedControlNode.x=pos.x;this.selectedControlNode.y=pos.y}else{var diffX=pointer.x-this.lastTouch.x;var diffY=pointer.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+diffX,y:this.lastTouch.translation.y+diffY}}this.body.emitter.emit(\"_redraw\")}},{key:\"_controlNodeDragEnd\",value:function _controlNodeDragEnd(event){var pointer=this.body.functions.getPointer(event.center);var pointerObj=this.selectionHandler._pointerToPositionObject(pointer);var edge=this.body.edges[this.edgeBeingEditedId];if(this.selectedControlNode===undefined){return}this.selectionHandler.unselectAll();var overlappingNodeIds=this.selectionHandler._getAllNodesOverlappingWith(pointerObj);var node=undefined;for(var i=overlappingNodeIds.length-1;i>=0;i--){if(overlappingNodeIds[i]!==this.selectedControlNode.id){node=this.body.nodes[overlappingNodeIds[i]];break}}if(node!==undefined&&this.selectedControlNode!==undefined){if(node.isCluster===true){alert(this.options.locales[this.options.locale][\"createEdgeError\"]||this.options.locales[\"en\"][\"createEdgeError\"])}else{var from=this.body.nodes[this.temporaryIds.nodes[0]];if(this.selectedControlNode.id===from.id){this._performEditEdge(node.id,edge.to.id)}else{this._performEditEdge(edge.from.id,node.id)}}}else{edge.updateEdgeType();this.body.emitter.emit(\"restorePhysics\")}this.body.emitter.emit(\"_redraw\")}},{key:\"_handleConnect\",value:function _handleConnect(event){if((new Date).valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(event.center);this.lastTouch.translation=util.extend({},this.body.view.translation);var pointer=this.lastTouch;var node=this.selectionHandler.getNodeAt(pointer);if(node!==undefined){if(node.isCluster===true){alert(this.options.locales[this.options.locale][\"createEdgeError\"]||this.options.locales[\"en\"][\"createEdgeError\"])}else{var targetNode=this._getNewTargetNode(node.x,node.y);this.body.nodes[targetNode.id]=targetNode;this.body.nodeIndices.push(targetNode.id);var connectionEdge=this.body.functions.createEdge({id:\"connectionEdge\"+util.randomUUID(),from:node.id,to:targetNode.id,physics:false,smooth:{enabled:true,type:\"continuous\",roundness:.5}});this.body.edges[connectionEdge.id]=connectionEdge;this.body.edgeIndices.push(connectionEdge.id);this.temporaryIds.nodes.push(targetNode.id);this.temporaryIds.edges.push(connectionEdge.id)}}this.touchTime=(new Date).valueOf()}}},{key:\"_dragControlNode\",value:function _dragControlNode(event){var pointer=this.body.functions.getPointer(event.center);if(this.temporaryIds.nodes[0]!==undefined){var targetNode=this.body.nodes[this.temporaryIds.nodes[0]];targetNode.x=this.canvas._XconvertDOMtoCanvas(pointer.x);targetNode.y=this.canvas._YconvertDOMtoCanvas(pointer.y);this.body.emitter.emit(\"_redraw\")}else{var diffX=pointer.x-this.lastTouch.x;var diffY=pointer.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+diffX,y:this.lastTouch.translation.y+diffY}}}},{key:\"_finishConnect\",value:function _finishConnect(event){var pointer=this.body.functions.getPointer(event.center);var pointerObj=this.selectionHandler._pointerToPositionObject(pointer);var connectFromId=undefined;if(this.temporaryIds.edges[0]!==undefined){connectFromId=this.body.edges[this.temporaryIds.edges[0]].fromId}var overlappingNodeIds=this.selectionHandler._getAllNodesOverlappingWith(pointerObj);var node=undefined;for(var i=overlappingNodeIds.length-1;i>=0;i--){if(this.temporaryIds.nodes.indexOf(overlappingNodeIds[i])===-1){node=this.body.nodes[overlappingNodeIds[i]];break}}this._cleanupTemporaryNodesAndEdges();if(node!==undefined){if(node.isCluster===true){alert(this.options.locales[this.options.locale][\"createEdgeError\"]||this.options.locales[\"en\"][\"createEdgeError\"])}else{if(this.body.nodes[connectFromId]!==undefined&&this.body.nodes[node.id]!==undefined){this._performAddEdge(connectFromId,node.id)}}}this.body.emitter.emit(\"_redraw\")}},{key:\"_dragStartEdge\",value:function _dragStartEdge(event){var pointer=this.lastTouch;this.selectionHandler._generateClickEvent(\"dragStart\",event,pointer,undefined,true)}},{key:\"_performAddNode\",value:function _performAddNode(clickData){var _this4=this;var defaultData={id:util.randomUUID(),x:clickData.pointer.canvas.x,y:clickData.pointer.canvas.y,label:\"new\"};if(typeof this.options.addNode===\"function\"){if(this.options.addNode.length===2){this.options.addNode(defaultData,function(finalizedData){if(finalizedData!==null&&finalizedData!==undefined&&_this4.inMode===\"addNode\"){_this4.body.data.nodes.getDataSet().add(finalizedData);_this4.showManipulatorToolbar()}})}else{this.showManipulatorToolbar();throw new Error(\"The function for add does not support two arguments (data,callback)\")}}else{this.body.data.nodes.getDataSet().add(defaultData);this.showManipulatorToolbar()}}},{key:\"_performAddEdge\",value:function _performAddEdge(sourceNodeId,targetNodeId){var _this5=this;var defaultData={from:sourceNodeId,to:targetNodeId};if(typeof this.options.addEdge===\"function\"){if(this.options.addEdge.length===2){this.options.addEdge(defaultData,function(finalizedData){if(finalizedData!==null&&finalizedData!==undefined&&_this5.inMode===\"addEdge\"){_this5.body.data.edges.getDataSet().add(finalizedData);_this5.selectionHandler.unselectAll();_this5.showManipulatorToolbar()}})}else{throw new Error(\"The function for connect does not support two arguments (data,callback)\")}}else{this.body.data.edges.getDataSet().add(defaultData);this.selectionHandler.unselectAll();this.showManipulatorToolbar()}}},{key:\"_performEditEdge\",value:function _performEditEdge(sourceNodeId,targetNodeId){var _this6=this;var defaultData={id:this.edgeBeingEditedId,from:sourceNodeId,to:targetNodeId,label:this.body.data.edges._data[this.edgeBeingEditedId].label};var eeFunct=this.options.editEdge;if((typeof eeFunct===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(eeFunct))===\"object\"){eeFunct=eeFunct.editWithoutDrag}if(typeof eeFunct===\"function\"){if(eeFunct.length===2){eeFunct(defaultData,function(finalizedData){if(finalizedData===null||finalizedData===undefined||_this6.inMode!==\"editEdge\"){_this6.body.edges[defaultData.id].updateEdgeType();_this6.body.emitter.emit(\"_redraw\");_this6.showManipulatorToolbar()}else{_this6.body.data.edges.getDataSet().update(finalizedData);_this6.selectionHandler.unselectAll();_this6.showManipulatorToolbar()}})}else{throw new Error(\"The function for edit does not support two arguments (data, callback)\")}}else{this.body.data.edges.getDataSet().update(defaultData);this.selectionHandler.unselectAll();this.showManipulatorToolbar()}}}]);return ManipulationSystem}();exports[\"default\"]=ManipulationSystem},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _FloydWarshall=__webpack_require__(239);var _FloydWarshall2=_interopRequireDefault(_FloydWarshall);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var KamadaKawai=function(){function KamadaKawai(body,edgeLength,edgeStrength){(0,_classCallCheck3[\"default\"])(this,KamadaKawai);this.body=body;this.springLength=edgeLength;this.springConstant=edgeStrength;this.distanceSolver=new _FloydWarshall2[\"default\"]}(0,_createClass3[\"default\"])(KamadaKawai,[{key:\"setOptions\",value:function setOptions(options){if(options){if(options.springLength){this.springLength=options.springLength}if(options.springConstant){this.springConstant=options.springConstant}}}},{key:\"solve\",value:function solve(nodesArray,edgesArray){var ignoreClusters=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var D_matrix=this.distanceSolver.getDistances(this.body,nodesArray,edgesArray);this._createL_matrix(D_matrix);this._createK_matrix(D_matrix);this._createE_matrix();var threshold=.01;var innerThreshold=1;var iterations=0;var maxIterations=Math.max(1e3,Math.min(10*this.body.nodeIndices.length,6e3));var maxInnerIterations=5;var maxEnergy=1e9;var highE_nodeId=0,dE_dx=0,dE_dy=0,delta_m=0,subIterations=0;while(maxEnergy>threshold&&iterations<maxIterations){iterations+=1;var _getHighestEnergyNode2=this._getHighestEnergyNode(ignoreClusters);var _getHighestEnergyNode3=(0,_slicedToArray3[\"default\"])(_getHighestEnergyNode2,4);highE_nodeId=_getHighestEnergyNode3[0];maxEnergy=_getHighestEnergyNode3[1];dE_dx=_getHighestEnergyNode3[2];dE_dy=_getHighestEnergyNode3[3];delta_m=maxEnergy;subIterations=0;while(delta_m>innerThreshold&&subIterations<maxInnerIterations){subIterations+=1;this._moveNode(highE_nodeId,dE_dx,dE_dy);var _getEnergy2=this._getEnergy(highE_nodeId);var _getEnergy3=(0,_slicedToArray3[\"default\"])(_getEnergy2,3);delta_m=_getEnergy3[0];dE_dx=_getEnergy3[1];dE_dy=_getEnergy3[2]}}}},{key:\"_getHighestEnergyNode\",value:function _getHighestEnergyNode(ignoreClusters){var nodesArray=this.body.nodeIndices;var nodes=this.body.nodes;var maxEnergy=0;var maxEnergyNodeId=nodesArray[0];var dE_dx_max=0,dE_dy_max=0;for(var nodeIdx=0;nodeIdx<nodesArray.length;nodeIdx++){var m=nodesArray[nodeIdx];if(nodes[m].predefinedPosition===false||nodes[m].isCluster===true&&ignoreClusters===true||nodes[m].options.fixed.x===true||nodes[m].options.fixed.y===true){var _getEnergy4=this._getEnergy(m),_getEnergy5=(0,_slicedToArray3[\"default\"])(_getEnergy4,3),delta_m=_getEnergy5[0],dE_dx=_getEnergy5[1],dE_dy=_getEnergy5[2];if(maxEnergy<delta_m){maxEnergy=delta_m;maxEnergyNodeId=m;dE_dx_max=dE_dx;dE_dy_max=dE_dy}}}return[maxEnergyNodeId,maxEnergy,dE_dx_max,dE_dy_max]}},{key:\"_getEnergy\",value:function _getEnergy(m){var _E_sums$m=(0,_slicedToArray3[\"default\"])(this.E_sums[m],2),dE_dx=_E_sums$m[0],dE_dy=_E_sums$m[1];var delta_m=Math.sqrt(Math.pow(dE_dx,2)+Math.pow(dE_dy,2));return[delta_m,dE_dx,dE_dy]}},{key:\"_moveNode\",value:function _moveNode(m,dE_dx,dE_dy){var nodesArray=this.body.nodeIndices;var nodes=this.body.nodes;var d2E_dx2=0;var d2E_dxdy=0;var d2E_dy2=0;var x_m=nodes[m].x;var y_m=nodes[m].y;var km=this.K_matrix[m];var lm=this.L_matrix[m];for(var iIdx=0;iIdx<nodesArray.length;iIdx++){var i=nodesArray[iIdx];if(i!==m){var x_i=nodes[i].x;var y_i=nodes[i].y;var kmat=km[i];var lmat=lm[i];var denominator=1/Math.pow(Math.pow(x_m-x_i,2)+Math.pow(y_m-y_i,2),1.5);d2E_dx2+=kmat*(1-lmat*Math.pow(y_m-y_i,2)*denominator);d2E_dxdy+=kmat*(lmat*(x_m-x_i)*(y_m-y_i)*denominator);d2E_dy2+=kmat*(1-lmat*Math.pow(x_m-x_i,2)*denominator)}}var A=d2E_dx2,B=d2E_dxdy,C=dE_dx,D=d2E_dy2,E=dE_dy;var dy=(C/A+E/B)/(B/A-D/B);var dx=-(B*dy+C)/A;nodes[m].x+=dx;nodes[m].y+=dy;this._updateE_matrix(m)}},{key:\"_createL_matrix\",value:function _createL_matrix(D_matrix){var nodesArray=this.body.nodeIndices;var edgeLength=this.springLength;this.L_matrix=[];for(var i=0;i<nodesArray.length;i++){this.L_matrix[nodesArray[i]]={};for(var j=0;j<nodesArray.length;j++){this.L_matrix[nodesArray[i]][nodesArray[j]]=edgeLength*D_matrix[nodesArray[i]][nodesArray[j]]}}}},{key:\"_createK_matrix\",value:function _createK_matrix(D_matrix){var nodesArray=this.body.nodeIndices;var edgeStrength=this.springConstant;this.K_matrix=[];for(var i=0;i<nodesArray.length;i++){this.K_matrix[nodesArray[i]]={};for(var j=0;j<nodesArray.length;j++){this.K_matrix[nodesArray[i]][nodesArray[j]]=edgeStrength*Math.pow(D_matrix[nodesArray[i]][nodesArray[j]],-2)}}}},{key:\"_createE_matrix\",value:function _createE_matrix(){var nodesArray=this.body.nodeIndices;var nodes=this.body.nodes;this.E_matrix={};this.E_sums={};for(var mIdx=0;mIdx<nodesArray.length;mIdx++){this.E_matrix[nodesArray[mIdx]]=[]}for(var _mIdx=0;_mIdx<nodesArray.length;_mIdx++){var m=nodesArray[_mIdx];var x_m=nodes[m].x;var y_m=nodes[m].y;var dE_dx=0;var dE_dy=0;for(var iIdx=_mIdx;iIdx<nodesArray.length;iIdx++){var i=nodesArray[iIdx];if(i!==m){var x_i=nodes[i].x;var y_i=nodes[i].y;var denominator=1/Math.sqrt(Math.pow(x_m-x_i,2)+Math.pow(y_m-y_i,2));this.E_matrix[m][iIdx]=[this.K_matrix[m][i]*(x_m-x_i-this.L_matrix[m][i]*(x_m-x_i)*denominator),this.K_matrix[m][i]*(y_m-y_i-this.L_matrix[m][i]*(y_m-y_i)*denominator)];this.E_matrix[i][_mIdx]=this.E_matrix[m][iIdx];dE_dx+=this.E_matrix[m][iIdx][0];dE_dy+=this.E_matrix[m][iIdx][1]}}this.E_sums[m]=[dE_dx,dE_dy]}}},{key:\"_updateE_matrix\",value:function _updateE_matrix(m){var nodesArray=this.body.nodeIndices;var nodes=this.body.nodes;var colm=this.E_matrix[m];var kcolm=this.K_matrix[m];var lcolm=this.L_matrix[m];var x_m=nodes[m].x;var y_m=nodes[m].y;var dE_dx=0;var dE_dy=0;for(var iIdx=0;iIdx<nodesArray.length;iIdx++){var i=nodesArray[iIdx];if(i!==m){var cell=colm[iIdx];var oldDx=cell[0];var oldDy=cell[1];var x_i=nodes[i].x;var y_i=nodes[i].y;var denominator=1/Math.sqrt(Math.pow(x_m-x_i,2)+Math.pow(y_m-y_i,2));var dx=kcolm[i]*(x_m-x_i-lcolm[i]*(x_m-x_i)*denominator);var dy=kcolm[i]*(y_m-y_i-lcolm[i]*(y_m-y_i)*denominator);colm[iIdx]=[dx,dy];dE_dx+=dx;dE_dy+=dy;var sum=this.E_sums[i];sum[0]+=dx-oldDx;sum[1]+=dy-oldDy}}this.E_sums[m]=[dE_dx,dE_dy]}}]);return KamadaKawai}();exports[\"default\"]=KamadaKawai},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var FloydWarshall=function(){function FloydWarshall(){(0,_classCallCheck3[\"default\"])(this,FloydWarshall)}(0,_createClass3[\"default\"])(FloydWarshall,[{key:\"getDistances\",value:function getDistances(body,nodesArray,edgesArray){var D_matrix={};var edges=body.edges;for(var i=0;i<nodesArray.length;i++){var node=nodesArray[i];var cell={};D_matrix[node]=cell;for(var j=0;j<nodesArray.length;j++){cell[nodesArray[j]]=i==j?0:1e9}}for(var _i=0;_i<edgesArray.length;_i++){var edge=edges[edgesArray[_i]];if(edge.connected===true&&D_matrix[edge.fromId]!==undefined&&D_matrix[edge.toId]!==undefined){D_matrix[edge.fromId][edge.toId]=1;D_matrix[edge.toId][edge.fromId]=1}}var nodeCount=nodesArray.length;for(var k=0;k<nodeCount;k++){var knode=nodesArray[k];var kcolm=D_matrix[knode];for(var _i2=0;_i2<nodeCount-1;_i2++){var inode=nodesArray[_i2];var icolm=D_matrix[inode];for(var _j=_i2+1;_j<nodeCount;_j++){var jnode=nodesArray[_j];var jcolm=D_matrix[jnode];var val=Math.min(icolm[jnode],icolm[knode]+kcolm[jnode]);icolm[jnode]=val;jcolm[inode]=val}}}return D_matrix}}]);return FloydWarshall}();exports[\"default\"]=FloydWarshall}])});\n",
"type": "application/javascript",
"module-type": "library"
}
}
}
{"tiddlers":{"$:/plugins/flibbles/relink/js/bulkops.js":{"text":"/*\\\nmodule-type: startup\n\nReplaces the relinkTiddler defined in $:/core/modules/wiki-bulkops.js\n\nThis is a startup instead of a wikimethods module-type because it's the only\nway to ensure this runs after the old relinkTiddler method is applied.\n\n\\*/\n(function(){\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar language = require('$:/plugins/flibbles/relink/js/language.js');\nvar utils = require(\"$:/plugins/flibbles/relink/js/utils.js\");\n\nexports.name = \"redefine-relinkTiddler\";\nexports.synchronous = true;\n// load-modules is when wikimethods are applied in\n// ``$:/core/modules/startup/load-modules.js``\nexports.after = ['load-modules'];\n// We come before commands because they may do renaming, or jasmine testing\nexports.before = ['commands'];\n\nexports.startup = function() {\n\t$tw.Wiki.prototype.relinkTiddler = relinkTiddler;\n};\n\n/** Walks through all relinkable tiddlers and relinks them.\n * This replaces the existing function in core Tiddlywiki.\n */\nfunction relinkTiddler(fromTitle, toTitle, options) {\n\toptions = options || {};\n\tvar failures = [];\n\tvar indexer = utils.getIndexer(this);\n\tvar records = indexer.relinkLookup(fromTitle, toTitle, options);\n\tfor (var title in records) {\n\t\tvar entries = records[title],\n\t\t\tchanges = Object.create(null),\n\t\t\tupdate = false,\n\t\t\tfails = false;\n\t\tfor (var field in entries) {\n\t\t\tvar entry = entries[field];\n\t\t\tfails = fails || entry.impossible;\n\t\t\tif (entry.output !== undefined) {\n\t\t\t\tchanges[field] = entry.output;\n\t\t\t\tupdate = true;\n\t\t\t}\n\t\t}\n\t\tif (fails) {\n\t\t\tfailures.push(title);\n\t\t}\n\t\t// If any fields changed, update tiddler\n\t\tif (update) {\n\t\t\tconsole.log(\"Renaming '\"+fromTitle+\"' to '\"+toTitle+\"' in '\" + title + \"'\");\n\n\t\t\tvar tiddler = this.getTiddler(title);\n\t\t\tvar modifyField = utils.touchModifyField(this) ? this.getModificationFields() : undefined;\n\t\t\tvar newTiddler = new $tw.Tiddler(tiddler,changes,modifyField)\n\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-relinking-tiddler\",newTiddler,tiddler);\n\t\t\tthis.addTiddler(newTiddler);\n\t\t\t// If the title changed, we need to perform a nested rename\n\t\t\tif (newTiddler.fields.title !== title) {\n\t\t\t\tthis.deleteTiddler(title);\n\t\t\t\tthis.relinkTiddler(title, newTiddler.fields.title,options);\n\t\t\t}\n\t\t}\n\t};\n\tif (failures.length > 0) {\n\t\tvar options = $tw.utils.extend(\n\t\t\t{ variables: {to: toTitle, from: fromTitle},\n\t\t\t wiki: this},\n\t\t\toptions );\n\t\tlanguage.reportFailures(failures, options);\n\t}\n};\n\n})();\n","module-type":"startup","title":"$:/plugins/flibbles/relink/js/bulkops.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/indexer.js":{"text":"/*\\\nmodule-type: indexer\n\nIndexes results from tiddler reference reports so we don't have to call them\nso much.\n\n\\*/\n\n\"use strict\";\n\nvar utils = require(\"./utils.js\");\nvar TiddlerContext = utils.getContext('tiddler');\n\nfunction Indexer(wiki) {\n\tthis.wiki = wiki;\n};\n\nIndexer.prototype.init = function() {\n\tthis.rebuild();\n};\n\nIndexer.prototype.rebuild = function() {\n\tthis.index = null;\n\tthis.backIndex = null;\n\tthis.contexts = Object.create(null);\n\tthis.changedTiddlers = undefined;\n\tthis.lastRelinks = Object.create(null);\n};\n\nIndexer.prototype.update = function(updateDescriptor) {\n\tif (!this.index) {\n\t\treturn;\n\t}\n\tvar title;\n\tif (!this.changedTiddlers) {\n\t\tthis.changedTiddlers = Object.create(null);\n\t}\n\tif (updateDescriptor.old.exists) {\n\t\ttitle = updateDescriptor.old.tiddler.fields.title;\n\t\tthis.changedTiddlers[title] = {deleted: true};\n\t\tthis._purge(title);\n\t}\n\tif (updateDescriptor['new'].exists) {\n\t\t// If its the same tiddler as old, this overrides the 'deleted' entry\n\t\ttitle = updateDescriptor['new'].tiddler.fields.title;\n\t\tthis.changedTiddlers[title] = {modified: true};\n\t}\n};\n\nIndexer.prototype.lookup = function(title) {\n\tthis._upkeep();\n\treturn this.index[title];\n};\n\nIndexer.prototype.reverseLookup = function(title) {\n\tthis._upkeep();\n\treturn this.backIndex[title] || Object.create(null);\n};\n\nIndexer.prototype.relinkLookup = function(fromTitle, toTitle, options) {\n\tthis._upkeep();\n\tvar shortlist = undefined;\n\tvar lastRelink = this.lastRelinks[fromTitle];\n\tif (lastRelink) {\n\t\tif (lastRelink.to === toTitle) {\n\t\t\t// We need to reintroduce the relink cache, where temporary info\n\t\t\t// was stored.\n\t\t\toptions.cache = lastRelink.cache;\n\t\t\treturn lastRelink.results;\n\t\t}\n\t\tshortlist = buildShortlist(lastRelink);\n\t}\n\tvar results = utils.getRelinkResults(this.wiki, fromTitle, toTitle, this.context, shortlist, options);\n\tif (Object.keys(this.lastRelinks).length > 3) {\n\t\t// The cache got a little large. wipe it clean.\n\t\tthis.lastRelinks = Object.create(null);\n\t}\n\tthis.lastRelinks[fromTitle] = {\n\t\tfrom: fromTitle,\n\t\tresults: results,\n\t\tto: toTitle,\n\t\tcache: options.cache,\n\t\tmaybeRelevant: Object.create(null)};\n\treturn results;\n};\n\n// Returns all tiddlers that don't have anything referencing it.\nIndexer.prototype.orphans = function() {\n\tthis._upkeep();\n\tvar results = [];\n\tfor (var title in this.index) {\n\t\tif (!this.backIndex[title]\n\t\t|| Object.keys(this.backIndex[title]).length === 0) {\n\t\t\tresults.push(title);\n\t\t}\n\t}\n\treturn results;\n};\n\nIndexer.prototype._upkeep = function() {\n\tvar title;\n\tif (this.changedTiddlers && (this.context.changed(this.changedTiddlers) || this.context.parent.changed(this.changedTiddlers))) {\n\t\t// If global macro context or whitelist context changed, wipe all\n\t\tthis.rebuild();\n\t}\n\tif (!this.index) {\n\t\tthis.index = Object.create(null);\n\t\tthis.backIndex = Object.create(null);\n\t\tthis.context = utils.getWikiContext(this.wiki);\n\t\tvar titles = this.wiki.getRelinkableTitles();\n\t\tfor (var i = 0; i < titles.length; i++) {\n\t\t\tthis._populate(titles[i]);\n\t\t};\n\t} else if (this.changedTiddlers) {\n\t\t// If there are cached changes, we apply them now.\n\t\tfor (title in this.contexts) {\n\t\t\tvar tiddlerContext = this.contexts[title];\n\t\t\tif (tiddlerContext.changed(this.changedTiddlers)) {\n\t\t\t\tthis._purge(title);\n\t\t\t\tthis._populate(title);\n\t\t\t\tthis._decacheRelink(title);\n\t\t\t\t// Wipe this change, so we don't risk updating it twice.\n\t\t\t\tthis.changedTiddlers[title] = undefined;\n\t\t\t}\n\t\t}\n\t\tfor (title in this.changedTiddlers) {\n\t\t\tvar change = this.changedTiddlers[title];\n\t\t\tif (change && change.modified) {\n\t\t\t\tthis._purge(title);\n\t\t\t\tthis._populate(title);\n\t\t\t\tthis._decacheRelink(title);\n\t\t\t}\n\t\t}\n\t\tthis.changedTiddlers = undefined;\n\t}\n};\n\nIndexer.prototype._purge = function(title) {\n\tfor (var entry in this.index[title]) {\n\t\tdelete this.backIndex[entry][title];\n\t}\n\tdelete this.contexts[title];\n\tdelete this.index[title];\n};\n\n// This drops the cached relink results if unsanctioned tiddlers were changed\nIndexer.prototype._decacheRelink = function(title) {\n\tvar tiddler = this.wiki.getTiddler(title);\n\tfor (var from in this.lastRelinks) {\n\t\tvar lastRelink = this.lastRelinks[from];\n\t\tif (title !== from\n\t\t&& title !== lastRelink.to\n\t\t&& (!tiddler\n\t\t|| !$tw.utils.hop(tiddler.fields, 'draft.of') // is a draft\n\t\t|| tiddler.fields['draft.of'] !== from// draft of target\n\t\t|| references(this.index[title], from))) { // draft references target\n\t\t\t// This is not the draft of the last relinked title,\n\t\t\t// so our cached results should be wiped.\n\t\t\tlastRelink.maybeRelevant[title] = true;\n\t\t\t// Force this cached relink to partially refresh when it comes time\n\t\t\tlastRelink.to = undefined;\n\t\t}\n\t}\n};\n\nfunction references(list, item) {\n\treturn list !== undefined && list[item];\n};\n\n// Compiles a short list of tiddlers we need to check for a rename.\n// This list will be much faster to relink again.\nfunction buildShortlist(lastRelink) {\n\tvar shortlist = Object.keys(lastRelink.results);\n\tfor (var title in lastRelink.maybeRelevant) {\n\t\tif (lastRelink.results[title] === undefined) {\n\t\t\tshortlist.push(title);\n\t\t}\n\t}\n\treturn shortlist;\n};\n\nIndexer.prototype._populate = function(title) {\n\t// Fetch the report for a title, and populate the indexes with result\n\tvar tiddlerContext = new TiddlerContext(this.wiki, this.context, title);\n\tvar references = utils.getTiddlerRelinkReferences(this.wiki, title, tiddlerContext);\n\tthis.index[title] = references;\n\tif (tiddlerContext.hasImports()) {\n\t\tthis.contexts[title] = tiddlerContext;\n\t}\n\tfor (var ref in references) {\n\t\tthis.backIndex[ref] = this.backIndex[ref] || Object.create(null);\n\t\tthis.backIndex[ref][title] = references[ref];\n\t}\n};\n\nexports.RelinkIndexer = Indexer;\n","module-type":"indexer","title":"$:/plugins/flibbles/relink/js/indexer.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/language.js":{"text":"/*\\\nmodule-type: library\n\nThis handles all logging and alerts Relink emits.\n\n\\*/\n\nexports.getString = function(outputType, title, options) {\n\ttitle = \"$:/plugins/flibbles/relink/language/\" + title;\n\treturn options.wiki.renderTiddler(outputType, title, options);\n};\n\nvar logger;\n\nexports.warn = function(string, options) {\n\tif (!logger) {\n\t\tlogger = new $tw.utils.Logger(\"Relinker\");\n\t}\n\tlogger.alert(string);\n};\n\nexports.reportFailures = function(failureList, options) {\n\tvar alertString = this.getString(\"text/html\", \"Error/ReportFailedRelinks\", options)\n\tvar alreadyReported = Object.create(null);\n\tvar reportList = [];\n\t$tw.utils.each(failureList, function(f) {\n\t\tif (!alreadyReported[f]) {\n\t\t\tif ($tw.browser) {\n\t\t\t\t// This might not make the link if the title is complicated.\n\t\t\t\t// Whatever.\n\t\t\t\treportList.push(\"\\n* [[\" + f + \"]]\");\n\t\t\t} else {\n\t\t\t\treportList.push(\"\\n* \" + f);\n\t\t\t}\n\t\t\talreadyReported[f] = true;\n\t\t}\n\t});\n\tthis.warn(alertString + \"\\n\" + reportList.join(\"\"));\n};\n","module-type":"library","title":"$:/plugins/flibbles/relink/js/language.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/mangler.js":{"text":"/*\\\nmodule-type: widget\n\nCreates a mangler widget for field validation. This isn't meant to be used\nby the user. It's only used in Relink configuration.\n\n\\*/\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar language = require('$:/plugins/flibbles/relink/js/language.js');\nvar utils = require('$:/plugins/flibbles/relink/js/utils.js');\n\nvar RelinkManglerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"relink-add-field\", handler: \"handleAddFieldEvent\"},\n\t\t{type: \"relink-add-operator\", handler: \"handleAddOperatorEvent\"},\n\t\t{type: \"relink-add-parameter\", handler: \"handleAddParameterEvent\"},\n\t\t{type: \"relink-add-attribute\", handler: \"handleAddAttributeEvent\"}\n\t]);\n};\n\nexports.relinkmangler = RelinkManglerWidget;\n\nRelinkManglerWidget.prototype = new Widget();\n\n// This wraps alert so it can be monkeypatched during testing.\nRelinkManglerWidget.prototype.alert = function(message) {\n\talert(message);\n};\n\nRelinkManglerWidget.prototype.handleAddFieldEvent = function(event) {\n\tvar param = event.paramObject;\n\tif (typeof param !== \"object\" || !param.field) {\n\t\t// Can't handle it.\n\t\treturn true;\n\t}\n\tvar trimmedName = param.field.trim();\n\tif (!trimmedName) {\n\t\t// Still can't handle it, but don't warn.\n\t\treturn true;\n\t}\n\tif(!$tw.utils.isValidFieldName(trimmedName)) {\n\t\tthis.alert($tw.language.getString(\n\t\t\t\"InvalidFieldName\",\n\t\t\t{variables:\n\t\t\t\t{fieldName: trimmedName}\n\t\t\t}\n\t\t));\n\t} else {\n\t\tadd(this.wiki, \"fields\", trimmedName);\n\t}\n\treturn true;\n};\n\n/**Not much validation, even though there are definitely illegal\n * operator names. If you input on, Relink won't relink it, but it\n * won't choke on it either. Tiddlywiki will...\n */\nRelinkManglerWidget.prototype.handleAddOperatorEvent = function(event) {\n\tvar param = event.paramObject;\n\tif (param) {\n\t\tadd(this.wiki, \"operators\", param.operator);\n\t}\n\treturn true;\n};\n\nRelinkManglerWidget.prototype.handleAddParameterEvent = function(event) {\n\tvar param = event.paramObject;\n\tif (param && param.macro && param.parameter) {\n\t\tif (/\\s/.test(param.macro.trim())) {\n\t\t\tthis.alert(language.getString(\n\t\t\t\t\"text/plain\",\n\t\t\t\t\"Error/InvalidMacroName\",\n\t\t\t\t{ variables: {macroName: param.macro},\n\t\t\t\t wiki: this.wiki\n\t\t\t\t}\n\t\t\t));\n\t\t} else if (/[ \\/]/.test(param.parameter.trim())) {\n\t\t\tthis.alert(language.getString(\n\t\t\t\t\"text/plain\",\n\t\t\t\t\"Error/InvalidParameterName\",\n\t\t\t\t{ variables: {parameterName: param.parameter},\n\t\t\t\t wiki: this.wiki\n\t\t\t\t}\n\t\t\t));\n\t\t} else {\n\t\t\tadd(this.wiki, \"macros\", param.macro, param.parameter);\n\t\t}\n\t}\n\treturn true;\n};\n\nRelinkManglerWidget.prototype.handleAddAttributeEvent = function(event) {\n\tvar param = event.paramObject;\n\tif (param && param.element && param.attribute) {\n\t\tif (/[ \\/]/.test(param.element.trim())) {\n\t\t\tthis.alert(language.getString(\n\t\t\t\t\"text/plain\",\n\t\t\t\t\"Error/InvalidElementName\",\n\t\t\t\t{ variables: {elementName: param.element},\n\t\t\t\t wiki: this.wiki\n\t\t\t\t}\n\t\t\t));\n\t\t} else if (/[ \\/]/.test(param.attribute.trim())) {\n\t\t\tthis.alert(language.getString(\n\t\t\t\t\"text/plain\",\n\t\t\t\t\"Error/InvalidAttributeName\",\n\t\t\t\t{ variables: {attributeName: param.attribute},\n\t\t\t\t wiki: this.wiki\n\t\t\t\t}\n\t\t\t));\n\t\t} else {\n\t\t\tadd(this.wiki, \"attributes\", param.element, param.attribute);\n\t\t}\n\t}\n\treturn true;\n};\n\nfunction add(wiki, category/*, path parts*/) {\n\tvar path = \"$:/config/flibbles/relink/\" + category;\n\tfor (var x = 2; x < arguments.length; x++) {\n\t\tvar part = arguments[x];\n\t\t// Abort if it's falsy, or only whitespace. Also, trim spaces\n\t\tif (!part || !(part = part.trim())) {\n\t\t\treturn;\n\t\t}\n\t\tpath = path + \"/\" + part;\n\t}\n\tvar def = utils.getDefaultType(wiki);\n\twiki.addTiddler({title: path, text: def});\n};\n","module-type":"widget","title":"$:/plugins/flibbles/relink/js/mangler.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/settings.js":{"text":"/*\\\nmodule-type: library\n\nThis handles the fetching and distribution of relink settings.\n\n\\*/\n\nvar utils = require('./utils');\n\n///// Legacy. You used to be able to access the type from utils.\nexports.getType = utils.getType;\n/////\n","module-type":"library","title":"$:/plugins/flibbles/relink/js/settings.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/utils.js":{"text":"/*\\\nmodule-type: library\n\nUtility methods for relink.\n\n\\*/\n\nvar macroFilter = \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\";\n\n/**This works nearly identically to $tw.modules.getModulesByTypeAsHashmap\n * except that this also takes care of migrating V1 relink modules.\n */\nexports.getModulesByTypeAsHashmap = function(moduleType, nameField) {\n\tvar results = Object.create(null);\n\t$tw.modules.forEachModuleOfType(moduleType, function(title, module) {\n\t\tvar key = module[nameField];\n\t\tif (key !== undefined) {\n\t\t\tresults[key] = module;\n\t\t} else {\n\t\t\tfor (var entry in module) {\n\t\t\t\tresults[entry] = {\n\t\t\t\t\trelink: module[entry],\n\t\t\t\t\treport: function() {}};\n\t\t\t\tresults[entry][nameField] = entry;\n\t\t\t}\n\t\t}\n\t});\n\t// We've got to sort these so that behavior is consistent across different\n\t// versions of TiddlyMap, whose module return order depends on version...\n\treturn sortModules(results);\n};\n\nfunction sortModules(moduleMap) {\n\tvar keys = Object.keys(moduleMap);\n\tvar sortedResults = Object.create(null);\n\tkeys.sort();\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tif (moduleMap[key].after\n\t\t&& moduleMap[key].after.some(function(requirement) { return !sortedResults[requirement]})) {\n\t\t\t// Not all requirements have been met yet.\n\t\t\t$tw.utils.pushTop(keys, key);\n\t\t\ti--;\n\t\t} else {\n\t\t\tsortedResults[key] = moduleMap[key];\n\t\t}\n\t}\n\treturn sortedResults;\n};\n\nexports.getTiddlerRelinkReferences = function(wiki, title, context) {\n\tvar tiddler = wiki.getTiddler(title),\n\t\treferences = Object.create(null),\n\t\toptions = {settings: context, wiki: wiki};\n\tif (tiddler) {\n\t\ttry {\n\t\t\tfor (var relinker in getRelinkOperators()) {\n\t\t\t\tgetRelinkOperators()[relinker].report(tiddler, function(title, blurb) {\n\t\t\t\t\treferences[title] = references[title] || [];\n\t\t\t\t\treferences[title].push(blurb || '');\n\t\t\t\t}, options);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tif (e.message) {\n\t\t\t\te.message = e.message + \"\\nWhen reporting '\" + title + \"' Relink references\";\n\t\t\t}\n\t\t\tthrow e;\n\t\t}\n\t}\n\treturn references;\n};\n\n/** Returns a pair like this,\n * { title: {field: entry, ... }, ... }\n */\nexports.getRelinkResults = function(wiki, fromTitle, toTitle, context, tiddlerList, options) {\n\toptions = options || {};\n\toptions.wiki = options.wiki || wiki;\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\tvar changeList = Object.create(null);\n\tif(fromTitle && toTitle !== undefined) {\n\t\tif (tiddlerList === undefined) {\n\t\t\ttiddlerList = wiki.getRelinkableTitles();\n\t\t}\n\t\tfor (var i = 0; i < tiddlerList.length; i++) {\n\t\t\tvar title = tiddlerList[i];\n\t\t\tvar tiddler = wiki.getTiddler(title);\n\t\t\tif(tiddler) {\n\t\t\t\ttry {\n\t\t\t\t\tvar entries = Object.create(null),\n\t\t\t\t\t\toperators = getRelinkOperators();\n\t\t\t\t\toptions.settings = new Contexts.tiddler(wiki, context, title);\n\t\t\t\t\tfor (var operation in operators) {\n\t\t\t\t\t\toperators[operation].relink(tiddler, fromTitle, toTitle, entries, options);\n\t\t\t\t\t}\n\t\t\t\t\tfor (var field in entries) {\n\t\t\t\t\t\t// So long as there is one key,\n\t\t\t\t\t\t// add it to the change list.\n\t\t\t\t\t\tif (tiddler.fields[\"plugin-type\"]) {\n\t\t\t\t\t\t\t// We never change plugins, even if they have links\n\t\t\t\t\t\t\tchangeList[title] = {};\n\t\t\t\t\t\t\tchangeList[title][field] = {impossible: true};\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tchangeList[title] = entries;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// Should we test for instanceof Error instead?: yes\n\t\t\t\t\t// Does that work in the testing environment?: no\n\t\t\t\t\tif (e.message) {\n\t\t\t\t\t\te.message = e.message + \"\\nWhen relinking '\" + title + \"'\";\n\t\t\t\t\t}\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn changeList;\n};\n\nvar Contexts = $tw.modules.applyMethods('relinkcontext');\n\nexports.getContext = function(name) {\n\treturn Contexts[name];\n};\n\nexports.getWikiContext = function(wiki) {\n\t// This gives a fresh context every time. It is up to the indexer or\n\t// the cache to preserve those contexts for as long as needed.\n\tvar whitelist = new Contexts.whitelist(wiki);\n\treturn new Contexts.import(wiki, whitelist, macroFilter);\n};\n\n/** Returns the Relink indexer, or a dummy object which pretends to be one.\n */\nexports.getIndexer = function(wiki) {\n\tif (!wiki._relink_indexer) {\n\t\twiki._relink_indexer = (wiki.getIndexer && wiki.getIndexer(\"RelinkIndexer\")) || new (require('$:/plugins/flibbles/relink/js/utils/backupIndexer.js'))(wiki);\n\t}\n\treturn wiki._relink_indexer;\n};\n\n/**Relinking supports a cache that persists throughout a whole relink op.\n * This is because the Tiddlywiki caches may get wiped multiple times\n * throughout the course of a relink.\n */\nexports.getCacheForRun = function(options, cacheName, initializer) {\n\toptions.cache = options.cache || Object.create(null);\n\tif (!$tw.utils.hop(options.cache, cacheName)) {\n\t\toptions.cache[cacheName] = initializer();\n\t}\n\treturn options.cache[cacheName];\n};\n\n/**Returns a specific relinker.\n * This is useful for wikitext rules which need to parse a filter or a list\n */\nexports.getType = function(name) {\n\tvar Handler = getFieldTypes()[name];\n\treturn Handler ? new Handler() : undefined;\n};\n\nexports.getTypes = function() {\n\t// We don't return fieldTypes, because we don't want it modified,\n\t// and we need to filter out legacy names.\n\tvar rtn = Object.create(null);\n\tfor (var type in getFieldTypes()) {\n\t\tvar typeObject = getFieldTypes()[type];\n\t\trtn[typeObject.typeName] = typeObject;\n\t}\n\treturn rtn;\n};\n\nexports.getDefaultType = function(wiki) {\n\tvar tiddler = wiki.getTiddler(\"$:/config/flibbles/relink/settings/default-type\");\n\tvar defaultType = tiddler && tiddler.fields.text;\n\t// make sure the default actually exists, otherwise default\n\treturn fieldTypes[defaultType] ? defaultType : \"title\";\n};\n\nexports.touchModifyField = function(wiki) {\n\tvar tiddler = wiki.getTiddler(\"$:/config/flibbles/relink/touch-modify\");\n\treturn tiddler && tiddler.fields.text.trim() === \"yes\";\n};\n\n/**Given some text, and a param or attribute within that text, this returns\n * what type of quotation that attribute is using.\n *\n * param: An object in the form {end:, ...}\n */\nexports.determineQuote = function(text, param) {\n\tvar pos = param.end-1;\n\tif (text[pos] === \"'\") {\n\t\treturn \"'\";\n\t}\n\tif (text[pos] === '\"') {\n\t\tif (text.substr(pos-2, 3) === '\"\"\"') {\n\t\t\treturn '\"\"\"';\n\t\t} else {\n\t\t\treturn '\"';\n\t\t}\n\t}\n\tif (text.substr(pos-1,2) === ']]' && text.substr((pos-param.value.length)-3, 2) === '[[') {\n\t\treturn \"[[\";\n\t}\n\treturn '';\n};\n\nvar fieldTypes;\n\nfunction getFieldTypes() {\n\tif (!fieldTypes) {\n\t\tfieldTypes = Object.create(null);\n\t\t$tw.modules.forEachModuleOfType(\"relinkfieldtype\", function(title, exports) {\n\t\t\tfunction NewType() {};\n\t\t\tNewType.prototype = exports;\n\t\t\tNewType.typeName = exports.name;\n\t\t\tfieldTypes[exports.name] = NewType;\n\t\t\t// For legacy, if the NewType doesn't have a report method, we add one\n\t\t\tif (!exports.report) {\n\t\t\t\texports.report = function() {};\n\t\t\t}\n\t\t\t// Also for legacy, some of the field types can go by other names\n\t\t\tif (exports.aliases) {\n\t\t\t\t$tw.utils.each(exports.aliases, function(alias) {\n\t\t\t\t\tfieldTypes[alias] = NewType;\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\treturn fieldTypes;\n}\n\nvar relinkOperators;\n\nfunction getRelinkOperators() {\n\tif (!relinkOperators) {\n\t\trelinkOperators = exports.getModulesByTypeAsHashmap('relinkoperator', 'name');\n\t}\n\treturn relinkOperators;\n};\n","module-type":"library","title":"$:/plugins/flibbles/relink/js/utils.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/wikimethods.js":{"text":"/*\\\nmodule-type: wikimethod\n\nIntroduces some utility methods used by Relink.\n\n\\*/\n\nvar utils = require(\"./utils.js\");\n\nexports.getTiddlerRelinkReferences = function(title) {\n\treturn utils.getIndexer(this).lookup(title);\n};\n\nexports.getTiddlerRelinkBackreferences = function(title) {\n\treturn utils.getIndexer(this).reverseLookup(title);\n};\n\nexports.getRelinkableTitles = function() {\n\tvar toUpdate = \"$:/config/flibbles/relink/to-update\";\n\tvar wiki = this;\n\treturn this.getCacheForTiddler(toUpdate, \"relink-toUpdate\", function() {\n\t\tvar tiddler = wiki.getTiddler(toUpdate);\n\t\tif (tiddler) {\n\t\t\treturn wiki.compileFilter(tiddler.fields.text);\n\t\t} else {\n\t\t\treturn wiki.allTitles;\n\t\t}\n\t})();\n};\n\nexports.getRelinkOrphans = function() {\n\treturn utils.getIndexer(this).orphans();\n};\n","module-type":"wikimethod","title":"$:/plugins/flibbles/relink/js/wikimethods.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/filteroperators/all_relinkable.js":{"text":"/*\\\nmodule-type: allfilteroperator\n\nFilter function for [all[relinkable]].\nReturns all tiddlers subject to relinking.\n\n\\*/\n\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.relinkable = function(source,prefix,options) {\n\treturn options.wiki.getRelinkableTitles();\n};\n\n})();\n","module-type":"allfilteroperator","title":"$:/plugins/flibbles/relink/js/filteroperators/all_relinkable.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/filteroperators/orphans.js":{"text":"/*\\\nmodule-type: relinkfilteroperator\n\nFilter function for [relink:orphans[]].\nReturns all tiddlers which are not referenced in any way\n\n\\*/\n\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.orphans = function(source,prefix,options) {\n\treturn options.wiki.getRelinkOrphans();\n};\n\n})();\n","module-type":"relinkfilteroperator","title":"$:/plugins/flibbles/relink/js/filteroperators/orphans.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/filteroperators/references.js":{"text":"/*\\\nmodule-type: relinkfilteroperator\n\nGiven a title as an operand, returns all non-shadow tiddlers that have any\nsort of updatable reference to it.\n\n`relink:backreferences[]]`\n`relink:references[]]`\n\nReturns all tiddlers that reference `fromTiddler` somewhere inside them.\n\nInput is ignored. Maybe it shouldn't do this.\n\\*/\n\nvar LinkedList = $tw.utils.LinkedList;\n\nif (!LinkedList) {\n\t/* If the linked list isn't available, make a quick crappy version. */\n\tLinkedList = function() {this.array=[];};\n\n\tLinkedList.prototype.pushTop = function(array) {\n\t\t$tw.utils.pushTop(this.array, array);\n\t};\n\n\tLinkedList.prototype.toArray = function() {\n\t\treturn this.array;\n\t};\n};\n\nexports.backreferences = function(source,operator,options) {\n\tvar results = new LinkedList();\n\tsource(function(tiddler,title) {\n\t\tresults.pushTop(Object.keys(options.wiki.getTiddlerRelinkBackreferences(title,options)));\n\t});\n\treturn results.toArray();\n};\n\nexports.references = function(source,operator,options) {\n\tvar results = new LinkedList();\n\tsource(function(tiddler,title) {\n\t\tvar refs = options.wiki.getTiddlerRelinkReferences(title,options);\n\t\tif (refs) {\n\t\t\tresults.pushTop(Object.keys(refs));\n\t\t}\n\t});\n\treturn results.toArray();\n};\n","module-type":"relinkfilteroperator","title":"$:/plugins/flibbles/relink/js/filteroperators/references.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/filteroperators/relink.js":{"text":"/*\\\nmodule-type: filteroperator\n\nThis filter acts as a namespace for several small, simple filters, such as\n\n`[relink:impossible[]]`\n\n\\*/\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar language = require('$:/plugins/flibbles/relink/js/language.js');\n\nvar relinkFilterOperators;\n\nfunction getRelinkFilterOperators() {\n\tif(!relinkFilterOperators) {\n\t\trelinkFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"relinkfilteroperator\",\n\t\t relinkFilterOperators);\n\t}\n\treturn relinkFilterOperators;\n}\n\nexports.relink = function(source,operator,options) {\n\tvar suffixPair = parseSuffix(operator.suffix);\n\tvar relinkFilterOperator = getRelinkFilterOperators()[suffixPair[0]];\n\tif (relinkFilterOperator) {\n\t\tvar newOperator = $tw.utils.extend({}, operator);\n\t\tnewOperator.suffix = suffixPair[1];\n\t\treturn relinkFilterOperator(source, newOperator, options);\n\t} else {\n\t\treturn [language.getString(\"text/plain\", \"Error/RelinkFilterOperator\", options)];\n\t}\n};\n\nfunction parseSuffix(suffix) {\n\tvar index = suffix? suffix.indexOf(\":\"): -1;\n\tif (index >= 0) {\n\t\treturn [suffix.substr(0, index), suffix.substr(index+1)];\n\t} else {\n\t\treturn [suffix];\n\t}\n}\n","module-type":"filteroperator","title":"$:/plugins/flibbles/relink/js/filteroperators/relink.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/filteroperators/report.js":{"text":"/*\\\nmodule-type: relinkfilteroperator\n\nGiven a title as an operand, returns a string for each occurrence of that title\nwithin each input title.\n\n[[title]] +[relink:report[fromTiddler]]`\n\nReturns string representation of fromTiddler occurrences in title.\n\\*/\n\nexports.report = function(source,operator,options) {\n\tvar fromTitle = operator.operand,\n\t\tresults = [];\n\tif (fromTitle) {\n\t\tvar blurbs = options.wiki.getTiddlerRelinkBackreferences(fromTitle);\n\t\tsource(function(tiddler, title) {\n\t\t\tif (blurbs[title]) {\n\t\t\t\tresults = results.concat(blurbs[title]);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n","module-type":"relinkfilteroperator","title":"$:/plugins/flibbles/relink/js/filteroperators/report.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/filteroperators/signatures.js":{"text":"/*\\\nmodule-type: relinkfilteroperator\n\nThis filter returns all input tiddlers which are a source of\nrelink configuration.\n\n`[all[tiddlers+system]relink:source[macros]]`\n\n\\*/\n\nvar utils = require('$:/plugins/flibbles/relink/js/utils.js');\n\nexports.signatures = function(source,operator,options) {\n\tvar plugin = operator.operand || null;\n\tvar set = getSet(options);\n\tif (plugin === \"$:/core\") {\n\t\t// Core doesn't actually have any settings. We mean Relink\n\t\tplugin = \"$:/plugins/flibbles/relink\";\n\t}\n\tvar signatures = [];\n\tfor (var signature in set) {\n\t\tvar source = set[signature].source;\n\t\tif (options.wiki.getShadowSource(source) === plugin) {\n\t\t\tsignatures.push(signature);\n\t\t}\n\t}\n\treturn signatures;\n};\n\nexports.type = function(source,operator,options) {\n\tvar results = [];\n\tvar set = getSet(options);\n\tsource(function(tiddler, signature) {\n\t\tif (set[signature]) {\n\t\t\tresults.push(set[signature].name);\n\t\t}\n\t});\n\treturn results;\n};\n\nexports.types = function(source,operator,options) {\n\tvar def = utils.getDefaultType(options.wiki);\n\tvar types = Object.keys(utils.getTypes());\n\ttypes.sort();\n\t// move default to front\n\ttypes.sort(function(x,y) { return x === def ? -1 : y === def ? 1 : 0; });\n\treturn types;\n};\n\nexports.source = function(source,operator,options) {\n\tvar results = [];\n\tvar category = operator.suffix;\n\tvar set = getSet(options);\n\tsource(function(tiddler, signature) {\n\t\tif (set[signature]) {\n\t\t\tresults.push(set[signature].source);\n\t\t}\n\t});\n\treturn results;\n};\n\nfunction getSet(options) {\n\treturn options.wiki.getGlobalCache(\"relink-signatures\", function() {\n\t\tvar config = utils.getWikiContext(options.wiki);\n\t\tvar set = Object.create(null);\n\t\tvar categories = {\n\t\t\tattributes: config.getAttributes(),\n\t\t\tfields: config.getFields(),\n\t\t\tmacros: config.getMacros(),\n\t\t\toperators: config.getOperators()};\n\t\t$tw.utils.each(categories, function(list, category) {\n\t\t\t$tw.utils.each(list, function(item, key) {\n\t\t\t\tset[category + \"/\" + key] = item;\n\t\t\t});\n\t\t});\n\t\treturn set;\n\t});\n};\n","module-type":"relinkfilteroperator","title":"$:/plugins/flibbles/relink/js/filteroperators/signatures.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/filteroperators/splitafter.js":{"text":"/*\\\ntitle: $:/core/modules/filters/splitbefore.js\ntype: application/javascript\nmodule-type: relinkfilteroperator\n\nFilter operator that splits each result on the last occurance of the specified separator and returns the last bit.\n\nWhat does this have to do with relink? Nothing. I need this so I can render\nthe configuration menu. I //could// use [splitregexp[]], but then I'd be\nlimited to Tiddlywiki v5.1.20 or later.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.splitafter = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar index = title.lastIndexOf(operator.operand);\n\t\tif(index < 0) {\n\t\t\t$tw.utils.pushTop(results,title);\n\t\t} else {\n\t\t\t$tw.utils.pushTop(results,title.substr(index+1));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n\n","title":"$:/plugins/flibbles/relink/js/filteroperators/splitafter.js","type":"application/javascript","module-type":"relinkfilteroperator"},"$:/plugins/flibbles/relink/js/filteroperators/wouldchange.js":{"text":"/*\\\nmodule-type: relinkfilteroperator\n\nwouldchange: Generator.\n\nGiven each input title, it returns all the tiddlers that would be changed if the currentTiddler were to be renamed to the operand.\n\nimpossible: filters all source titles for ones that encounter errors on failure.\n\nTHESE ARE INTERNAL FILTER OPERATOR AND ARE NOT INTENDED TO BE USED BY USERS.\n\n\\*/\n\nvar language = require(\"$:/plugins/flibbles/relink/js/language.js\");\nvar utils = require(\"$:/plugins/flibbles/relink/js/utils.js\");\n\nexports.wouldchange = function(source,operator,options) {\n\tvar from = options.widget && options.widget.getVariable(\"currentTiddler\"),\n\t\tto = operator.operand,\n\t\tindexer = utils.getIndexer(options.wiki),\n\t\trecords = indexer.relinkLookup(from, to, options);\n\treturn Object.keys(records);\n};\n\nexports.impossible = function(source,operator,options) {\n\tvar from = options.widget && options.widget.getVariable(\"currentTiddler\"),\n\t\tto = operator.operand,\n\t\tresults = [],\n\t\tindexer = utils.getIndexer(options.wiki),\n\t\trecords = indexer.relinkLookup(from, to, options);\n\tsource(function(tiddler, title) {\n\t\tvar fields = records[title];\n\t\tif (fields) {\n\t\t\tfor (var field in fields) {\n\t\t\t\tif (fields[field].impossible) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n","module-type":"relinkfilteroperator","title":"$:/plugins/flibbles/relink/js/filteroperators/wouldchange.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/settings/attributes.js":{"text":"/*\\\n\nFactory method for creating the attributes whitelist cache.\n\n\\*/\n\nvar utils = require('../utils');\n\nexports.name = \"attributes\";\n\nexports.generate = function(attributes, tiddler, key) {\n\tvar data = utils.getType(tiddler.fields.text.trim());\n\tif (data) {\n\t\tdata.source = tiddler.fields.title;\n\t\t// Secret feature. You can access a config tiddler's\n\t\t// fields from inside the fieldtype handler. Cool\n\t\t// tricks can be done with this.\n\t\tdata.fields = tiddler.fields;\n\t\tvar elem = root(key);\n\t\tvar attr = key.substr(elem.length+1);\n\t\tattributes[elem] = attributes[elem] || Object.create(null);\n\t\tattributes[elem][attr] = data;\n\t}\n};\n\n/* Returns first bit of a path. path/to/tiddler -> path\n */\nfunction root(string) {\n\tvar index = string.indexOf('/');\n\tif (index >= 0) {\n\t\treturn string.substr(0, index);\n\t}\n};\n\n","module-type":"relinksetting","title":"$:/plugins/flibbles/relink/js/settings/attributes.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/settings/fields.js":{"text":"/*\\\n\nFactory method for creating the fields whitelist cache.\n\n\\*/\n\nvar utils = require('../utils');\n\nexports.name = \"fields\";\n\nexports.generate = function(fields, tiddler, name) {\n\tvar data = utils.getType(tiddler.fields.text.trim());\n\tif (data) {\n\t\tdata.source = tiddler.fields.title;\n\t\t// Secret feature. You can access a config tiddler's\n\t\t// fields from inside the fieldtype handler. Cool\n\t\t// tricks can be done with this.\n\t\tdata.fields = tiddler.fields;\n\t\tfields[name] = data;\n\t}\n};\n","module-type":"relinksetting","title":"$:/plugins/flibbles/relink/js/settings/fields.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/settings/fieldwidgets.js":{"text":"/*\\\n\nFactory method for creating the fieldattributes regexp cache.\n\n\\*/\n\nexports.name = \"fieldattributes\";\n\nexports.generate = function(fieldattributes, tiddler, key) {\n\tfieldattributes[key] = new RegExp(tiddler.fields.text.trim());\n};\n","module-type":"relinksetting","title":"$:/plugins/flibbles/relink/js/settings/fieldwidgets.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/settings/macros.js":{"text":"/*\\\n\nFactory method for creating the macros whitelist cache.\n\n\\*/\n\nvar utils = require('../utils');\n\nexports.name = \"macros\";\n\nexports.generate = function(macros, tiddler, key) {\n\tvar data = utils.getType(tiddler.fields.text.trim());\n\tif (data) {\n\t\tdata.source = tiddler.fields.title;\n\t\t// Secret feature. You can access a config tiddler's\n\t\t// fields from inside the fieldtype handler. Cool\n\t\t// tricks can be done with this.\n\t\tdata.fields = tiddler.fields;\n\t\t// We take the last index, not the first, because macro\n\t\t// parameters can't have slashes, but macroNames can.\n\t\tvar name = dir(key);\n\t\tvar arg = key.substr(name.length+1);\n\t\tmacros[name] = macros[name] || Object.create(null);\n\t\tmacros[name][arg] = data;\n\t}\n};\n\n/* Returns all but the last bit of a path. path/to/tiddler -> path/to\n */\nfunction dir(string) {\n\tvar index = string.lastIndexOf('/');\n\tif (index >= 0) {\n\t\treturn string.substr(0, index);\n\t}\n}\n\n","module-type":"relinksetting","title":"$:/plugins/flibbles/relink/js/settings/macros.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/settings/operators.js":{"text":"/*\\\n\nFactory method for creating the operators whitelist cache.\n\n\\*/\n\nvar utils = require('../utils');\n\nexports.name = \"operators\";\n\nexports.generate = function(operators, tiddler, key) {\n\tvar data = utils.getType(tiddler.fields.text.trim());\n\tif (data) {\n\t\tdata.source = tiddler.fields.title;\n\t\t// Secret feature. You can access a config tiddler's\n\t\t// fields from inside the fieldtype handler. Cool\n\t\t// tricks can be done with this.\n\t\tdata.fields = tiddler.fields;\n\t\tvar pair = key.split('/');\n\t\tvar name = pair[0];\n\t\tdata.key = key;\n\t\toperators[name] = operators[name] || Object.create(null);\n\t\toperators[name][pair[1] || 1] = data;\n\t}\n};\n","module-type":"relinksetting","title":"$:/plugins/flibbles/relink/js/settings/operators.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/fieldtypes/filter.js":{"text":"/*\\\n\nThis specifies logic for updating filters to reflect title changes.\n\n\\*/\n\nvar refHandler = require(\"$:/plugins/flibbles/relink/js/fieldtypes/reference\");\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\nvar utils = require('$:/plugins/flibbles/relink/js/utils.js');\nvar filterRelinkers = utils.getModulesByTypeAsHashmap('relinkfilter', 'name');\n\nexports.name = \"filter\";\n\nexports.report = function(filter, callback, options) {\n\tif (filter) {\n\t\ttry {\n\t\t\tvar parseTree = options.wiki.parseFilter(filter);\n\t\t} catch (e) {\n\t\t\t// It must have been malformed. Return without doing anything.\n\t\t\treturn;\n\t\t}\n\t\tfor (var module in filterRelinkers) {\n\t\t\tfilterRelinkers[module].report(parseTree, callback, options);\n\t\t}\n\t}\n};\n\n/**Returns undefined if no change was made.\n */\nexports.relink = function(filter, fromTitle, toTitle, options) {\n\tvar changed = false;\n\tvar results = {};\n\tvar parseTree;\n\tif (filter) {\n\t\ttry {\n\t\t\tparseTree = options.wiki.parseFilter(filter);\n\t\t} catch (e) {\n\t\t\t// It must have been malformed. Return without doing anything.\n\t\t\treturn;\n\t\t}\n\t\tfor (var module in filterRelinkers) {\n\t\t\tvar entry = filterRelinkers[module].relink(parseTree, fromTitle, toTitle, options);\n\t\t\tif (entry) {\n\t\t\t\tif (entry.changed) {\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t\tif (entry.impossible) {\n\t\t\t\t\tresults.impossible = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif (changed) {\n\t\tvar builder = assembleFilterString(parseTree, filter, options);\n\t\tresults.output = builder.results();\n\t\tresults.impossible = results.impossible || builder.impossible;\n\t\treturn results;\n\t}\n\tif (results.impossible) {\n\t\treturn results;\n\t}\n\treturn undefined\n};\n\nfunction assembleFilterString(parseTree, oldFilter, options) {\n\tvar relinker = new Rebuilder(oldFilter),\n\t\twordBarrierRequired = false,\n\t\tp = 0;\n\tfor (var i = 0; i < parseTree.length; i++) {\n\t\tvar start = $tw.utils.skipWhiteSpace(oldFilter, p);\n\t\tif (start !== p) {\n\t\t\t// There's some breathing room between this run and the last.\n\t\t\t// We'll never need to insert space.\n\t\t\twordBarrierRequired = false;\n\t\t\tp = start;\n\t\t}\n\t\tvar run = parseTree[i];\n\t\tif (run.prefix) {\n\t\t\tif (wordBarrierRequired) {\n\t\t\t\trelinker.add(' ', p, p);\n\t\t\t\twordBarrierRequired = false;\n\t\t\t}\n\t\t\tp += run.prefix.length;\n\t\t}\n\t\tif (oldFilter[p] !== '['\n\t\t|| (oldFilter[p+1] === '[' && run.operators.length === 1)) {\n\t\t\t// It's a string title\n\t\t\tvar text = run.operators[0].operands[0].text,\n\t\t\t\tend,\n\t\t\t\told;\n\t\t\tswitch (oldFilter[p]) {\n\t\t\tcase \"'\":\n\t\t\tcase '\"':\n\t\t\t\t// p + 1 to skip the first quote\n\t\t\t\t// indexOf() + 1 to skip the last\n\t\t\t\tend = oldFilter.indexOf(oldFilter[p], p+1) + 1;\n\t\t\t\told = oldFilter.substring(p+1, end-1);\n\t\t\t\tbreak;\n\t\t\tcase '[':\n\t\t\t\tend = oldFilter.indexOf(']', p);\n\t\t\t\told = oldFilter.substring(p+2, end);\n\t\t\t\t// +2 to get past the ']]'\n\t\t\t\tend += 2;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tend = skipWord(oldFilter, p);\n\t\t\t\told = oldFilter.substring(p, end);\n\t\t\t}\n\t\t\tif (old !== text) {\n\t\t\t\tvar wrapped = wrapTitle(text, oldFilter[p] !== \"[\" ? oldFilter[p] : '', options);\n\t\t\t\tif (wrapped !== undefined) {\n\t\t\t\t\t// This is a no-quote title. If breathing room is required,\n\t\t\t\t\t// add it. Also, we may need breathing room after it.\n\t\t\t\t\tif (wordBarrierRequired && wrapped[0] !== \"[\") {\n\t\t\t\t\t\trelinker.add(' ', p, p);\n\t\t\t\t\t}\n\t\t\t\t\trelinker.add(wrapped, p, end);\n\t\t\t\t\twordBarrierRequired = wrapped === text;\n\t\t\t\t} else if (options.placeholder) {\n\t\t\t\t\tvar ph = options.placeholder.getPlaceholderFor(text);\n\t\t\t\t\trelinker.add('[<' + ph + '>]', p, end);\n\t\t\t\t} else {\n\t\t\t\t\trelinker.impossible = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (wordBarrierRequired && oldFilter[p] !== \"[\") {\n\t\t\t\t\trelinker.add(' ', p, p);\n\t\t\t\t}\n\t\t\t\twordBarrierRequired = oldFilter.indexOf(text) === p;\n\t\t\t}\n\t\t\tp = end;\n\t\t} else {\n\t\t\twordBarrierRequired = false;\n\t\t\tp++;\n\t\t\tfor (var j = 0; j < run.operators.length; j++) {\n\t\t\t\tvar operator = run.operators[j];\n\t\t\t\tvar start = p;\n\t\t\t\tfor (var index = 0; index < operator.operands.length; index++) {\n\t\t\t\t\tvar operand = operator.operands[index],\n\t\t\t\t\t\tskip = false;\n\t\t\t\t\t\tend,\n\t\t\t\t\t\twrapped;\n\t\t\t\t\tif (operand.indirect) {\n\t\t\t\t\t\tp = oldFilter.indexOf('{', p);\n\t\t\t\t\t\tend = oldFilter.indexOf('}', p+1);\n\t\t\t\t\t\twrapped = '{' + operand.text + '}';\n\t\t\t\t\t} else if (operand.variable) {\n\t\t\t\t\t\tp = oldFilter.indexOf('<', p);\n\t\t\t\t\t\tend = oldFilter.indexOf('>', p+1);\n\t\t\t\t\t\twrapped = '<' + operand.text + '>';\n\t\t\t\t\t} else if (operator.regexp) {\n\t\t\t\t\t\tp = oldFilter.indexOf('/', p);\n\t\t\t\t\t\tend = oldFilter.indexOf('/', p+1);\n\t\t\t\t\t\tskip = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tp = oldFilter.indexOf('[', p);\n\t\t\t\t\t\tend = oldFilter.indexOf(']', p+1);\n\t\t\t\t\t\tif (!canBePrettyOperand(operand.text) || (options.inBraces && operand.text.indexOf('}}}') >= 0)) {\n\t\t\t\t\t\t\tif (options.placeholder) {\n\t\t\t\t\t\t\t\tvar ph = options.placeholder.getPlaceholderFor(operand.text, operand.handler);\n\t\t\t\t\t\t\t\twrapped = '<' + ph + '>';\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tskip = true;\n\t\t\t\t\t\t\t\trelinker.impossible = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\twrapped = '[' + operand.text + ']';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tend++; // skip the closing brace\n\t\t\t\t\tif (index === 0) {\n\t\t\t\t\t\t// If this is the first operand, let's first recreate the operator signature in case it was changed at all.\n\t\t\t\t\t\trelinker.add(operatorSignature(operator, oldFilter, start), start, p);\n\t\t\t\t\t}\n\t\t\t\t\tif (!skip) {\n\t\t\t\t\t\trelinker.add(wrapped, p, end);\n\t\t\t\t\t}\n\t\t\t\t\tp = end;\n\t\t\t\t}\n\t\t\t}\n\t\t\tp++; // Skip the closing brace;\n\t\t}\n\t}\n\treturn relinker;\n};\n\nfunction operatorSignature(operator, oldText, start) {\n\t// If it's a title operand, try to determine if it was a shorthand.\n\tvar prefix = operator.prefix || '';\n\tvar signature = prefix + ((operator.operator === 'title' && oldText[start + prefix.length] !== 't')? '': operator.operator);\n\tif (operator.suffix) {\n\t\tsignature += ':' + operator.suffix;\n\t}\n\treturn signature;\n}\n\nfunction skipWord(source,pos) {\n\tvar c;\n\twhile(true) {\n\t\tc = source.charAt(pos);\n\t\tif((c !== \"\") && (c !== \" \") && (c !== \"\\f\") && (c !== \"\\n\")\n\t\t&& (c !== \"\\r\") && (c !== \"\\t\")\n\t\t&& (c !== \"\\v\")&& (c !== \"\\u00a0\") // Ignores obscure unicode spaces\n\t\t&& (c !== \"[\") && (c !== \"]\")) { // Ignore brackets\n\t\t\tpos++;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n};\n\n/* Same as this.relink, except this has the added constraint that the return\n * value must be able to be wrapped in curly braces. (i.e. '{{{...}}}')\n */\nexports.relinkInBraces = function(filter, fromTitle, toTitle, options) {\n\tvar braceOptions = $tw.utils.extend({inBraces: true}, options);\n\tvar entry = this.relink(filter, fromTitle, toTitle, braceOptions);\n\tif (entry && entry.output && !canBeInBraces(entry.output)) {\n\t\t// It was possible, but it won't fit in braces, so we must give up\n\t\tdelete entry.output;\n\t\tentry.impossible = true;\n\t}\n\treturn entry;\n};\n\nfunction wrapTitle(value, preference, options) {\n\tvar choices = {\n\t\t\"\": function(v) {return /^[^\\s\\[\\]\\}\\+\\-\\~\\=\\:][^\\s\\[\\]]*[^\\s\\[\\]\\}]$/.test(v); },\n\t\t\"[\": canBePrettyOperand,\n\t\t\"'\": function(v) {return v.indexOf(\"'\") < 0; },\n\t\t'\"': function(v) {return v.indexOf('\"') < 0; }\n\t};\n\tvar wrappers = {\n\t\t\"\": function(v) {return v; },\n\t\t\"[\": function(v) {return \"[[\"+v+\"]]\"; },\n\t\t\"'\": function(v) {return \"'\"+v+\"'\"; },\n\t\t'\"': function(v) {return '\"'+v+'\"'; }\n\t};\n\tif (options.inBraces && value.indexOf('}}}') >= 0) {\n\t\t// In this particular case, it can't be wrapped in this filter,\n\t\t// even if it would have worked within the context of the filter itself\n\t\treturn undefined;\n\t}\n\tif (!choices[preference]) {\n\t\tpreference = '';\n\t}\n\tif (choices[preference](value)) {\n\t\treturn wrappers[preference](value);\n\t}\n\tfor (var quote in choices) {\n\t\tif (choices[quote](value)) {\n\t\t\treturn wrappers[quote](value);\n\t\t}\n\t}\n\t// No quotes will work on this\n\treturn undefined;\n}\n\nfunction canBePrettyOperand(value) {\n\treturn value.indexOf(']') < 0;\n};\n\nfunction canBeInBraces(value) {\n\treturn value.indexOf(\"}}}\") < 0 && value.substr(value.length-2) !== '}}';\n};\n","module-type":"relinkfieldtype","title":"$:/plugins/flibbles/relink/js/fieldtypes/filter.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/fieldtypes/list.js":{"text":"/*\\\nThis manages replacing titles that occur within stringLists, like,\n\nTiddlerA [[Tiddler with spaces]] [[Another Title]]\n\\*/\n\nexports.name = \"list\";\n\nexports.report = function(value, callback, options) {\n\tvar list = $tw.utils.parseStringArray(value);\n\tfor (var i = 0; i < list.length; i++) {\n\t\tcallback(list[i]);\n\t}\n};\n\n/**Returns undefined if no change was made.\n * Parameter: value can literally be a list. This can happen for builtin\n * types 'list' and 'tag'. In those cases, we also return list.\n */\nexports.relink = function(value, fromTitle, toTitle, options) {\n\tvar isModified = false,\n\t\tactualList = false,\n\t\tlist;\n\tif (typeof value !== \"string\") {\n\t\t// Not a string. Must be a list.\n\t\t// clone it, since we may make changes to this possibly\n\t\t// frozen list.\n\t\tlist = (value || []).slice(0);\n\t\tactualList = true;\n\t} else {\n\t\tlist = $tw.utils.parseStringArray(value || \"\");\n\t}\n\t$tw.utils.each(list,function (title,index) {\n\t\tif(title === fromTitle) {\n\t\t\tlist[index] = toTitle;\n\t\t\tisModified = true;\n\t\t}\n\t});\n\tif (isModified) {\n\t\tvar entry = {name: \"list\"};\n\t\t// It doesn't parse correctly alone, it won't\n\t\t// parse correctly in any list.\n\t\tif (!canBeListItem(toTitle)) {\n\t\t\tentry.impossible = true;\n\t\t} else if (actualList) {\n\t\t\tentry.output = list;\n\t\t} else {\n\t\t\tentry.output = $tw.utils.stringifyList(list);\n\t\t}\n\t\treturn entry;\n\t}\n\treturn undefined;\n};\n\nfunction canBeListItem(value) {\n\tvar regexp = /\\]\\][^\\S\\xA0]/m;\n\treturn !regexp.test(value);\n};\n","module-type":"relinkfieldtype","title":"$:/plugins/flibbles/relink/js/fieldtypes/list.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/fieldtypes/reference.js":{"text":"/*\\\nThis manages replacing titles that occur inside text references,\n\ntiddlerTitle\ntiddlerTitle!!field\n!!field\ntiddlerTitle##propertyIndex\n\\*/\n\nvar utils = require('$:/plugins/flibbles/relink/js/utils.js');\nvar referenceOperators = utils.getModulesByTypeAsHashmap('relinkreference', 'name');\n\nexports.name = \"reference\";\n\nexports.report = function(value, callback, options) {\n\tif (value) {\n\t\tvar reference = $tw.utils.parseTextReference(value);\n\t\tfor (var operator in referenceOperators) {\n\t\t\treferenceOperators[operator].report(reference, callback, options);\n\t\t}\n\t}\n};\n\nexports.relink = function(value, fromTitle, toTitle, options) {\n\tvar entry;\n\tif (value) {\n\t\tvar impossible = false;\n\t\tvar modified = false;\n\t\tvar reference = $tw.utils.parseTextReference(value);\n\t\tfor (var operator in referenceOperators) {\n\t\t\tvar result = referenceOperators[operator].relink(reference, fromTitle, toTitle, options);\n\t\t\tif (result) {\n\t\t\t\tif (result.impossible) {\n\t\t\t\t\timpossible = true;\n\t\t\t\t}\n\t\t\t\tif (result.output) {\n\t\t\t\t\tmodified = true;\n\t\t\t\t\treference = result.output;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (modified) {\n\t\t\tif (exports.canBePretty(reference.title)) {\n\t\t\t\tentry = {output: exports.toString(reference)};\n\t\t\t} else {\n\t\t\t\timpossible = true;\n\t\t\t}\n\t\t}\n\t\tif (impossible) {\n\t\t\tentry = entry || {};\n\t\t\tentry.impossible = true;\n\t\t}\n\t}\n\treturn entry;\n};\n\n/* Same as this.relink, except this has the added constraint that the return\n * value must be able to be wrapped in curly braces.\n */\nexports.relinkInBraces = function(value, fromTitle, toTitle, options) {\n\tvar log = this.relink(value, fromTitle, toTitle, options);\n\tif (log && log.output && log.output.indexOf(\"}\") >= 0) {\n\t\tdelete log.output;\n\t\tlog.impossible = true;\n\t}\n\treturn log;\n};\n\nexports.toString = function(textReference) {\n\tvar title = textReference.title || '';\n\tif (textReference.field) {\n\t\treturn title + \"!!\" + textReference.field;\n\t} else if (textReference.index) {\n\t\treturn title + \"##\" + textReference.index;\n\t}\n\treturn title;\n};\n\nexports.canBePretty = function(title) {\n\treturn !title || (title.indexOf(\"!!\") < 0 && title.indexOf(\"##\") < 0);\n};\n","module-type":"relinkfieldtype","title":"$:/plugins/flibbles/relink/js/fieldtypes/reference.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/fieldtypes/title.js":{"text":"/*\\\nThis specifies logic for replacing a single-tiddler field. This is the\nsimplest kind of field type. One title swaps out for the other.\n\\*/\n\n// NOTE TO MODDERS: If you're making your own field types, the name must be\n// alpha characters only.\nexports.name = 'title';\n\nexports.report = function(value, callback, options) {\n\tcallback(value);\n};\n\n/**Returns undefined if no change was made.\n */\nexports.relink = function(value, fromTitle, toTitle, options) {\n\tif (value === fromTitle) {\n\t\treturn {output: toTitle};\n\t}\n\treturn undefined;\n};\n\n// This is legacy support for when 'title' was known as 'field'\nexports.aliases = ['field', 'yes'];\n","module-type":"relinkfieldtype","title":"$:/plugins/flibbles/relink/js/fieldtypes/title.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/fieldtypes/wikitext.js":{"text":"/*\\\nThis specifies logic for updating filters to reflect title changes.\n\\*/\n\nexports.name = \"wikitext\";\n\nvar type = 'text/vnd.tiddlywiki';\n\nvar WikiParser = require(\"$:/core/modules/parsers/wikiparser/wikiparser.js\")[type];\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder.js\");\nvar utils = require('$:/plugins/flibbles/relink/js/utils');\nvar WikitextContext = utils.getContext('wikitext');\n\nfunction collectRules() {\n\tvar rules = Object.create(null);\n\t$tw.modules.forEachModuleOfType(\"relinkwikitextrule\", function(title, exports) {\n\t\tvar names = exports.name;\n\t\tif (typeof names === \"string\") {\n\t\t\tnames = [names];\n\t\t}\n\t\tif (names !== undefined) {\n\t\t\tfor (var i = 0; i < names.length; i++) {\n\t\t\t\trules[names[i]] = exports;\n\t\t\t}\n\t\t}\n\t});\n\treturn rules;\n}\n\nfunction WikiWalker(type, text, options) {\n\tthis.options = options;\n\tif (!this.relinkMethodsInjected) {\n\t\tvar rules = collectRules();\n\t\t$tw.utils.each([this.pragmaRuleClasses, this.blockRuleClasses, this.inlineRuleClasses], function(classList) {\n\t\t\tfor (var name in classList) {\n\t\t\t\tif (rules[name]) {\n\t\t\t\t\tdelete rules[name].name;\n\t\t\t\t\t$tw.utils.extend(classList[name].prototype, rules[name]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tWikiWalker.prototype.relinkMethodsInjected = true;\n\t}\n\tthis.context = new WikitextContext(options.settings);\n\tWikiParser.call(this, type, text, options);\n};\n\nWikiWalker.prototype = Object.create(WikiParser.prototype);\n\nWikiWalker.prototype.parsePragmas = function() {\n\tvar entries = this.tree;\n\twhile (true) {\n\t\tthis.skipWhitespace();\n\t\tif (this.pos >= this.sourceLength) {\n\t\t\tbreak;\n\t\t}\n\t\tvar nextMatch = this.findNextMatch(this.pragmaRules, this.pos);\n\t\tif (!nextMatch || nextMatch.matchIndex !== this.pos) {\n\t\t\tbreak;\n\t\t}\n\t\tentries.push.apply(entries, this.handleRule(nextMatch));\n\t}\n\treturn entries;\n};\n\nWikiWalker.prototype.parseInlineRunUnterminated = function(options) {\n\tvar entries = [];\n\tvar nextMatch = this.findNextMatch(this.inlineRules, this.pos);\n\twhile (this.pos < this.sourceLength && nextMatch) {\n\t\tif (nextMatch.matchIndex > this.pos) {\n\t\t\tthis.pos = nextMatch.matchIndex;\n\t\t}\n\t\tentries.push.apply(entries, this.handleRule(nextMatch));\n\t\tnextMatch = this.findNextMatch(this.inlineRules, this.pos);\n\t}\n\tthis.pos = this.sourceLength;\n\treturn entries;\n};\n\nWikiWalker.prototype.parseInlineRunTerminated = function(terminatorRegExp,options) {\n\tvar entries = [];\n\toptions = options || {};\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar terminatorMatch = terminatorRegExp.exec(this.source);\n\tvar inlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\twhile(this.pos < this.sourceLength && (terminatorMatch || inlineRuleMatch)) {\n\t\tif (terminatorMatch) {\n\t\t\tif (!inlineRuleMatch || inlineRuleMatch.matchIndex >= terminatorMatch.index) {\n\t\t\t\tthis.pos = terminatorMatch.index;\n\t\t\t\tif (options.eatTerminator) {\n\t\t\t\t\tthis.pos += terminatorMatch[0].length;\n\t\t\t\t}\n\t\t\t\treturn entries;\n\t\t\t}\n\t\t}\n\t\tif (inlineRuleMatch) {\n\t\t\tif (inlineRuleMatch.matchIndex > this.pos) {\n\t\t\t\tthis.pos = inlineRuleMatch.matchIndex;\n\t\t\t}\n\t\t\tentries.push.apply(entries, this.handleRule(inlineRuleMatch));\n\t\t\tinlineRuleMatch = this.findNextMatch(this.inlineRules, this.pos);\n\t\t\tterminatorRegExp.lastIndex = this.pos;\n\t\t\tterminatorMatch = terminatorRegExp.exec(this.source);\n\t\t}\n\t}\n\tthis.pos = this.sourceLength;\n\treturn entries;\n\n};\n\nWikiWalker.prototype.parseBlock = function(terminatorRegExpString) {\n\tvar terminatorRegExp = terminatorRegExpString ? new RegExp(\"(\" + terminatorRegExpString + \"|\\\\r?\\\\n\\\\r?\\\\n)\",\"mg\") : /(\\r?\\n\\r?\\n)/mg;\n\tthis.skipWhitespace();\n\tif (this.pos >= this.sourceLength) {\n\t\treturn [];\n\t}\n\tvar nextMatch = this.findNextMatch(this.blockRules, this.pos);\n\tif(nextMatch && nextMatch.matchIndex === this.pos) {\n\t\treturn this.handleRule(nextMatch);\n\t}\n\treturn this.parseInlineRun(terminatorRegExp);\n};\n\nWikiWalker.prototype.amendRules = function(type, names) {\n\tvar only;\n\tWikiParser.prototype.amendRules.call(this, type, names);\n\tif (type === \"only\") {\n\t\tonly = true;\n\t} else if (type === \"except\") {\n\t\tonly = false;\n\t} else {\n\t\treturn;\n\t}\n\tif (only !== (names.indexOf(\"macrodef\") >= 0) && this.options.macrodefCanBeDisabled) {\n\t\tthis.options.placeholder = undefined\n\t}\n\tif (only !== (names.indexOf(\"html\") >= 0)) {\n\t\tthis.context.allowWidgets = disabled;\n\t}\n\tif (only !== (names.indexOf(\"prettylink\") >= 0)) {\n\t\tthis.context.allowPrettylinks = disabled;\n\t}\n};\n\nfunction disabled() { return false; };\n\n/// Reporter\n\nfunction WikiReporter(type, text, callback, options) {\n\tthis.callback = callback;\n\tWikiWalker.call(this, type, text, options);\n};\n\nWikiReporter.prototype = Object.create(WikiWalker.prototype);\n\nWikiReporter.prototype.handleRule = function(ruleInfo) {\n\tif (ruleInfo.rule.report) {\n\t\truleInfo.rule.report(this.source, this.callback, this.options);\n\t} else {\n\t\tif (ruleInfo.rule.matchRegExp !== undefined) {\n\t\t\tthis.pos = ruleInfo.rule.matchRegExp.lastIndex;\n\t\t} else {\n\t\t\t// We can't easily determine the end of this\n\t\t\t// rule match. We'll \"parse\" it so that\n\t\t\t// parser.pos gets updated, but we throw away\n\t\t\t// the results.\n\t\t\truleInfo.rule.parse();\n\t\t}\n\t}\n};\n\nexports.report = function(wikitext, callback, options) {\n\t// Unfortunately it's the side-effect of creating this that reports.\n\tnew WikiReporter(options.type, wikitext, callback, options);\n};\n\n/// Relinker\n\nfunction WikiRelinker(type, text, fromTitle, toTitle, options) {\n\tthis.fromTitle = fromTitle;\n\tthis.toTitle = toTitle;\n\tthis.placeholder = options.placeholder;\n\tif (this.placeholder) {\n\t\tthis.placeholder.parser = this;\n\t}\n\tWikiWalker.call(this, type, text, options);\n};\n\nWikiRelinker.prototype = Object.create(WikiWalker.prototype);\n\nWikiRelinker.prototype.handleRule = function(ruleInfo) {\n\tif (ruleInfo.rule.relink) {\n\t\tvar start = ruleInfo.matchIndex;\n\t\tvar newEntry = ruleInfo.rule.relink(this.source, this.fromTitle, this.toTitle, this.options);\n\t\tif (newEntry !== undefined) {\n\t\t\tif (newEntry.output) {\n\t\t\t\tnewEntry.start = start;\n\t\t\t\tnewEntry.end = this.pos;\n\t\t\t}\n\t\t\treturn [newEntry];\n\t\t}\n\t} else {\n\t\tif (ruleInfo.rule.matchRegExp !== undefined) {\n\t\t\tthis.pos = ruleInfo.rule.matchRegExp.lastIndex;\n\t\t} else {\n\t\t\t// We can't easily determine the end of this\n\t\t\t// rule match. We'll \"parse\" it so that\n\t\t\t// parser.pos gets updated, but we throw away\n\t\t\t// the results.\n\t\t\truleInfo.rule.parse();\n\t\t}\n\t}\n\treturn [];\n};\n\nexports.relink = function(wikitext, fromTitle, toTitle, options) {\n\tvar parser = new WikiRelinker(options.type, wikitext, fromTitle, toTitle, options),\n\t\twikiEntry = undefined;\n\t// Now that we have an array of entries, let's produce the wikiText entry\n\t// containing them all.\n\tif (parser.tree.length > 0) {\n\t\tvar builder = new Rebuilder(wikitext);\n\t\twikiEntry = {};\n\t\tfor (var i = 0; i < parser.tree.length; i++) {\n\t\t\tvar entry = parser.tree[i];\n\t\t\tif (entry.impossible) {\n\t\t\t\twikiEntry.impossible = true;\n\t\t\t}\n\t\t\tif (entry.output) {\n\t\t\t\tbuilder.add(entry.output, entry.start, entry.end);\n\t\t\t}\n\t\t}\n\t\twikiEntry.output = builder.results();\n\t}\n\treturn wikiEntry;\n};\n","module-type":"relinkfieldtype","title":"$:/plugins/flibbles/relink/js/fieldtypes/wikitext.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/fieldtypes/filter/operators.js":{"text":"/*\\\n\nHandles reporting of filter operators.\n\n\\*/\n\nvar refHandler = require(\"$:/plugins/flibbles/relink/js/fieldtypes/reference\");\nvar titleHandler = require(\"$:/plugins/flibbles/relink/js/fieldtypes/title\");\nvar macrocall = require(\"$:/plugins/flibbles/relink/js/utils/macrocall.js\");\n\nexports.name = \"operators\";\n\nexports.report = function(filterParseTree, callback, options) {\n\tfor (var i = 0; i < filterParseTree.length; i++) {\n\t\tvar run = filterParseTree[i];\n\t\tfor (var j = 0; j < run.operators.length; j++) {\n\t\t\tvar operator = run.operators[j];\n\t\t\tfor (var index = 1; index <= operator.operands.length; index++) {\n\t\t\t\tvar operand = operator.operands[index-1];\n\t\t\t\tvar display = operator.operator === 'title'? '': operator.operator;\n\t\t\t\tif (operator.suffix) {\n\t\t\t\t\tdisplay += ':' + operator.suffix;\n\t\t\t\t}\n\t\t\t\t// Now add any commas if this is a later operand\n\t\t\t\tfor (var x = 1; x < index; x++) {\n\t\t\t\t\tdisplay += ',';\n\t\t\t\t}\n\t\t\t\tif (operand.indirect) {\n\t\t\t\t\trefHandler.report(operand.text, function(title, blurb) {\n\t\t\t\t\t\tcallback(title, (run.prefix || '') + '[' + (operator.prefix || '') + display + '{' + (blurb || '') + '}]');\n\t\t\t\t\t}, options);\n\t\t\t\t} else if (operand.variable) {\n\t\t\t\t\tvar macro = $tw.utils.parseMacroInvocation(\"<<\"+operand.text+\">>\", 0);\n\t\t\t\t\tmacrocall.report(options.settings, macro, function(title, blurb) {\n\t\t\t\t\t\tcallback(title, (run.prefix || '') + '[' + (operator.prefix || '') + display + '<' + blurb + '>]');\n\t\t\t\t\t}, options);\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (operand.text) {\n\t\t\t\t\tvar handler = fieldType(options.settings, operator, index, options)\n\t\t\t\t\tif (handler) {\n\t\t\t\t\t\thandler.report(operand.text, function(title, blurb) {\n\t\t\t\t\t\t\tif (blurb || !standaloneTitleRun(run)) {\n\t\t\t\t\t\t\t\tcallback(title, (run.prefix || '') + '[' + (operator.prefix || '') + display + '[' + (blurb || '') + ']]');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcallback(title, run.prefix);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, options);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nexports.relink = function(filterParseTree, fromTitle, toTitle, options) {\n\tvar output = {};\n\tfor (var i = 0; i < filterParseTree.length; i++) {\n\t\tvar run = filterParseTree[i];\n\t\tfor (var j = 0; j < run.operators.length; j++) {\n\t\t\tvar operator = run.operators[j];\n\t\t\tfor (var index = 1; index <= operator.operands.length; index++) {\n\t\t\t\tvar operand = operator.operands[index-1],\n\t\t\t\t\tentry = undefined;\n\t\t\t\tif (operand.indirect) {\n\t\t\t\t\tentry = refHandler.relinkInBraces(operand.text, fromTitle, toTitle, options);\n\t\t\t\t} else if (operand.variable) {\n\t\t\t\t\tentry = relinkMacro(options.settings, operand.text, fromTitle, toTitle, options);\n\t\t\t\t} else if (operand.text) {\n\t\t\t\t\tvar handler = fieldType(options.settings, operator, index, options)\n\t\t\t\t\tif (handler) {\n\t\t\t\t\t\tentry = handler.relink(operand.text, fromTitle, toTitle, options);\n\t\t\t\t\t\tif (entry && entry.output) {\n\t\t\t\t\t\t\toperand.handler = handler.name;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (entry) {\n\t\t\t\t\tif (entry.output) {\n\t\t\t\t\t\toutput.changed = true;\n\t\t\t\t\t\toperand.text = entry.output;\n\t\t\t\t\t}\n\t\t\t\t\tif (entry.impossible) {\n\t\t\t\t\t\toutput.impossible = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn output;\n};\n\n// Returns the relinker needed for a given operator, or returns undefined.\n// This method should really be broken into three modules called relinkfilteroperator\nfunction fieldType(context, operator, index, options) {\n\tvar op = operator.operator,\n\t\tsuffix = operator.suffix,\n\t\trtn = (suffix && context.getOperator(op + ':' + suffix, index))\n\t\t || context.getOperator(op, index);\n\tif (!rtn && op === 'contains' && index == 1) {\n\t\t// The 'contains' operator gets special handling\n\t\tsuffix = suffix || 'list';\n\t\tvar handler = context.getFields()[suffix];\n\t\tif (handler && (handler.name === 'list' || handler.name === 'filter')) {\n\t\t\t// Contains uses the title handler, but only if it's\n\t\t\t// searching a 'list' or 'filter' field.\n\t\t\treturn titleHandler;\n\t\t}\n\n\t}\n\tif (!rtn && index == 1) {\n\t\t// maybe it's a field operator?\n\t\trtn = (op === 'field' && context.getFields()[suffix])\n\t\t || (!suffix && !options.wiki.getFilterOperators()[op] && context.getFields()[op]);\n\t}\n\treturn rtn;\n};\n\nfunction standaloneTitleRun(run) {\n\tif (run.operators.length == 1) {\n\t\tvar op = run.operators[0];\n\t\treturn op.operator === 'title'\n\t\t\t&& !op.prefix\n\t\t\t&& !op.suffix;\n\t}\n\treturn false;\n};\n\n// Takes care of relinking a macro, as well as putting it back together.\nfunction relinkMacro(context, text, fromTitle, toTitle, options) {\n\ttext = \"<<\" + text + \">>\";\n\tvar macro = $tw.utils.parseMacroInvocation(text, 0);\n\tvar entry = macrocall.relink(context, macro, text, fromTitle, toTitle, false, options);\n\tif (entry && entry.output) {\n\t\tvar string = macrocall.reassemble(entry.output, text, options);\n\t\t// We remove the surrounding brackets.\n\t\tstring = string.substring(2, string.length-2);\n\t\t// And we make sure that no brackets remain\n\t\tif (string.indexOf(\">\") >= 0) {\n\t\t\tdelete entry.output;\n\t\t\tentry.impossible = true;\n\t\t} else {\n\t\t\tentry.output = string;\n\t\t}\n\t}\n\treturn entry;\n};\n","module-type":"relinkfilter","title":"$:/plugins/flibbles/relink/js/fieldtypes/filter/operators.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/fieldtypes/reference/title.js":{"text":"/*\\\n\nThis handles the title inside of references.\n\n\\*/\n\nexports.name = 'title';\n\nexports.report = function(reference, callback, options) {\n\tvar title = reference.title;\n\tif (title) {\n\t\tif (reference.field) {\n\t\t\tcallback(title, '!!' + reference.field);\n\t\t} else if (reference.index) {\n\t\t\tcallback(title, '##' + reference.index);\n\t\t} else {\n\t\t\tcallback(title);\n\t\t}\n\t}\n};\n\nexports.relink = function(reference, fromTitle, toTitle, options) {\n\tif ($tw.utils.trim(reference.title) === fromTitle) {\n\t\t// preserve user's whitespace\n\t\treference.title = reference.title.replace(fromTitle, toTitle);\n\t\treturn {output: reference};\n\t}\n};\n","module-type":"relinkreference","title":"$:/plugins/flibbles/relink/js/fieldtypes/reference/title.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/fields.js":{"text":"/*\\\n\nHandles all fields specified in the plugin configuration. Currently, this\nonly supports single-value fields.\n\n\\*/\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = 'fields';\n\nexports.report = function(tiddler, callback, options) {\n\tvar fields = options.settings.getFields();\n\t$tw.utils.each(fields, function(handler, field) {\n\t\tvar input = tiddler.fields[field];\n\t\tif (input) {\n\t\t\tif (field === 'list' && tiddler.fields['plugin-type']) {\n\t\t\t\t// We have a built-in exception here. plugins use their list\n\t\t\t\t// field differently. There's a whole mechanism for what\n\t\t\t\t// they actually point to, but let's not bother with that now\n\t\t\t\treturn;\n\t\t\t}\n\t\t\thandler.report(input, function(title, blurb) {\n\t\t\t\tif (blurb) {\n\t\t\t\t\tcallback(title, field + ': ' + blurb);\n\t\t\t\t} else {\n\t\t\t\t\tcallback(title, field);\n\t\t\t\t}\n\t\t\t}, options);\n\t\t}\n\t});\n};\n\nexports.relink = function(tiddler, fromTitle, toTitle, changes, options) {\n\tvar fields = options.settings.getFields();\n\t$tw.utils.each(fields, function(handler, field) {\n\t\tvar input = tiddler.fields[field];\n\t\tif (input) {\n\t\t\tif (field === 'list' && tiddler.fields['plugin-type']) {\n\t\t\t\t// Same deal as above. Skip.\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar entry = handler.relink(input, fromTitle, toTitle, options);\n\t\t\tif (entry !== undefined) {\n\t\t\t\tchanges[field] = entry;\n\t\t\t}\n\t\t}\n\t});\n};\n","module-type":"relinkoperator","title":"$:/plugins/flibbles/relink/js/relinkoperations/fields.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text.js":{"text":"/*\\\n\nDepending on the tiddler type, this will apply textOperators which may\nrelink titles within the body.\n\n\\*/\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar defaultOperator = \"text/vnd.tiddlywiki\";\nvar utils = require('$:/plugins/flibbles/relink/js/utils.js');\n\nexports.name = 'text';\n\nvar textOperators = utils.getModulesByTypeAsHashmap('relinktext', 'type');\n\n// These are deprecated. Don't use them.\nvar oldTextOperators = utils.getModulesByTypeAsHashmap('relinktextoperator', 'type');\n\n// $:/DefaultTiddlers is a tiddler which has type \"text/vnd.tiddlywiki\",\n// but it lies. It doesn't contain wikitext. It contains a filter, so\n// we pretend it has a filter type.\n// If you want to be able to add more exceptions for your plugin, let me know.\nvar exceptions = {\n\t\"$:/DefaultTiddlers\": \"text/x-tiddler-filter\"\n};\n\nexports.report = function(tiddler, callback, options) {\n\tvar fields = tiddler.fields;\n\tif (fields.text) {\n\t\tvar type = exceptions[fields.title] || fields.type || defaultOperator;\n\t\tif (textOperators[type]) {\n\t\t\ttextOperators[type].report(tiddler.fields.text, callback, options);\n\t\t} else if (oldTextOperators[type]) {\n\t\t\t// For the deprecated text operators\n\t\t\toldTextOperators[type].report(tiddler, callback, options);\n\t\t}\n\t}\n};\n\nexports.relink = function(tiddler, fromTitle, toTitle, changes, options) {\n\tvar fields = tiddler.fields;\n\tif (fields.text) {\n\t\tvar type = exceptions[fields.title] || fields.type || defaultOperator,\n\t\t\tentry;\n\t\tif (textOperators[type]) {\n\t\t\tentry = textOperators[type].relink(tiddler.fields.text, fromTitle, toTitle, options);\n\t\t} else if (oldTextOperators[type]) {\n\t\t\t// For the deprecated text operators\n\t\t\tentry = oldTextOperators[type].relink(tiddler, fromTitle, toTitle, options);\n\t\t}\n\t\tif (entry) {\n\t\t\tchanges.text = entry;\n\t\t}\n\t}\n};\n","module-type":"relinkoperator","title":"$:/plugins/flibbles/relink/js/relinkoperations/text.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/filtertext.js":{"text":"/*\\\n\nThis relinks tiddlers which contain filters in their body, as oppose to\nwikitext.\n\n\\*/\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar filterHandler = require(\"$:/plugins/flibbles/relink/js/utils\").getType('filter');\n\nexports.type = 'text/x-tiddler-filter';\n\nexports.report = filterHandler.report;\nexports.relink = filterHandler.relink;\n","module-type":"relinktext","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/filtertext.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/listtext.js":{"text":"/*\\\n\nThis relinks tiddlers which contain a tiddler list as their body.\n\n\\*/\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar listHandler = require(\"$:/plugins/flibbles/relink/js/utils\").getType('list');\n\nexports.type = 'text/x-tiddler-list';\n\nexports.report = listHandler.report;\nexports.relink = listHandler.relink;\n","module-type":"relinktext","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/listtext.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/referencetext.js":{"text":"/*\\\n\nThis relinks tiddlers which contain a tiddler reference as their body.\n\n\\*/\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar refHandler = require(\"$:/plugins/flibbles/relink/js/utils\").getType('reference');\n\nexports.type = 'text/x-tiddler-reference';\n\nexports.report = refHandler.report;\nexports.relink = refHandler.relink;\n","module-type":"relinktext","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/referencetext.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/titletext.js":{"text":"/*\\\n\nThis relinks tiddlers which contain a single title as their body.\n\n\\*/\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar titleHandler = require(\"$:/plugins/flibbles/relink/js/utils\").getType('title');\n\nexports.type = 'text/x-tiddler-title';\n\nexports.report = titleHandler.report;\nexports.relink = titleHandler.relink;\n","module-type":"relinktext","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/titletext.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext.js":{"text":"/*\\\n\nChecks for fromTitle in text. If found, sees if it's relevant,\nand tries to swap it out if it is.\n\n\\*/\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Placeholder = require(\"$:/plugins/flibbles/relink/js/utils/placeholder.js\");\nvar wikitextHandler = require('$:/plugins/flibbles/relink/js/utils.js').getType('wikitext');\n\nexports.type = 'text/vnd.tiddlywiki';\n\nexports.report = wikitextHandler.report;\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar placeholder = new Placeholder();\n\tvar currentOptions = Object.create(options);\n\tcurrentOptions.placeholder = placeholder;\n\tvar entry = wikitextHandler.relink(text, fromTitle, toTitle, currentOptions);\n\tif (entry && entry.output) {\n\t\t// If there's output, we've also got to prepend any macros\n\t\t// that the placeholder defined.\n\t\tvar preamble = placeholder.getPreamble();\n\t\tentry.output = preamble + entry.output;\n\t}\n\treturn entry;\n};\n","module-type":"relinktext","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/code.js":{"text":"/*\\\nmodule-type: relinkwikitextrule\n\nHandles code blocks. Or rather //doesn't// handle them, since we should\nignore their contents.\n\n\"`` [[Renamed Title]] ``\" will remain unchanged.\n\n\\*/\n\nexports.name = [\"codeinline\", \"codeblock\"];\n\nexports.relink = function(text) {\n\tvar reEnd;\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// I'm lazy. This relink method works for both codeblock and codeinline\n\tif (this.match[0].length > 2) {\n\t\t// Must be a codeblock\n\t\treEnd = /\\r?\\n```$/mg;\n\t} else {\n\t\t// Must be a codeinline\n\t\treEnd = new RegExp(this.match[1], \"mg\");\n\t}\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(text);\n\tif (match) {\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn undefined;\n};\n\n// Same thing. Just skip the pos ahead.\nexports.report = exports.relink;\n","module-type":"relinkwikitextrule","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/code.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/comment.js":{"text":"/*\\\nmodule-type: relinkwikitextrule\n\nHandles comment blocks. Or rather //doesn't// handle them, since we should\nignore their contents.\n\n\"<!-- [[Renamed Title]] -->\" will remain unchanged.\n\n\\*/\n\nexports.name = [\"commentinline\", \"commentblock\"];\n\nexports.relink = function(text) {\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\treturn undefined;\n};\n\nexports.report = exports.relink;\n","module-type":"relinkwikitextrule","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/comment.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/filteredtransclude.js":{"text":"/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement of filtered transclusions in wiki text like,\n\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n\nThis renames both the list and the template field.\n\n\\*/\n\nexports.name = ['filteredtranscludeinline', 'filteredtranscludeblock'];\n\nvar filterHandler = require(\"$:/plugins/flibbles/relink/js/utils\").getType('filter');\nvar utils = require(\"./utils.js\");\n\nexports.report = function(text, callback, options) {\n\tvar m = this.match,\n\t\tfilter = m[1],\n\t\ttemplate = $tw.utils.trim(m[3]),\n\t\tappend = template ? '||' + template + '}}}' : '}}}';\n\tfilterHandler.report(filter, function(title, blurb) {\n\t\tcallback(title, '{{{' + blurb + append);\n\t}, options);\n\tif (template) {\n\t\tcallback(template, '{{{' + $tw.utils.trim(filter).replace(/\\r?\\n/mg, ' ') + '||}}}');\n\t}\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar m = this.match,\n\t\tfilter = m[1],\n\t\ttooltip = m[2],\n\t\ttemplate = m[3],\n\t\tstyle = m[4],\n\t\tclasses = m[5],\n\t\tparser = this.parser,\n\t\tentry = {};\n\tparser.pos = this.matchRegExp.lastIndex;\n\tvar modified = false;\n\n\tvar filterEntry = filterHandler.relink(filter, fromTitle, toTitle, options);\n\tif (filterEntry !== undefined) {\n\t\tif (filterEntry.output) {\n\t\t\tfilter = filterEntry.output;\n\t\t\tmodified = true;\n\t\t}\n\t\tif (filterEntry.impossible) {\n\t\t\tentry.impossible = true;\n\t\t}\n\t}\n\n\tif ($tw.utils.trim(template) === fromTitle) {\n\t\t// preserves user-inputted whitespace\n\t\ttemplate = template.replace(fromTitle, toTitle);\n\t\tmodified = true;\n\t}\n\tif (!modified) {\n\t\tif (!entry.impossible) {\n\t\t\treturn undefined;\n\t\t}\n\t} else {\n\t\tvar output = this.makeFilteredtransclude(this.parser, filter, tooltip, template, style, classes);\n\t\tif (output === undefined) {\n\t\t\tentry.impossible = true;\n\t\t} else {\n\t\t\t// By copying over the ending newline of the original\n\t\t\t// text if present, thisrelink method thus works for\n\t\t\t// both the inline and block rule\n\t\t\tentry.output = output + utils.getEndingNewline(m[0]);\n\t\t}\n\t}\n\treturn entry;\n};\n\nexports.makeFilteredtransclude = function(parser, filter, tooltip, template, style, classes) {\n\tif (canBePretty(filter) && canBePrettyTemplate(template)) {\n\t\treturn prettyList(filter, tooltip, template, style, classes);\n\t}\n\tif (classes !== undefined) {\n\t\tclasses = classes.split('.').join(' ');\n\t}\n\treturn utils.makeWidget(parser, '$list', {\n\t\tfilter: filter,\n\t\ttooltip: tooltip,\n\t\ttemplate: template,\n\t\tstyle: style || undefined,\n\t\titemClass: classes});\n};\n\nfunction prettyList(filter, tooltip, template, style, classes) {\n\tif (tooltip === undefined) {\n\t\ttooltip = '';\n\t} else {\n\t\ttooltip = \"|\" + tooltip;\n\t}\n\tif (template === undefined) {\n\t\ttemplate = '';\n\t} else {\n\t\ttemplate = \"||\" + template;\n\t}\n\tif (classes === undefined) {\n\t\tclasses = '';\n\t} else {\n\t\tclasses = \".\" + classes;\n\t}\n\tstyle = style || '';\n\treturn \"{{{\"+filter+tooltip+template+\"}}\"+style+\"}\"+classes;\n};\n\nfunction canBePretty(filter) {\n\treturn filter.indexOf('|') < 0 && filter.indexOf('}}') < 0;\n};\n\nfunction canBePrettyTemplate(template) {\n\treturn !template || (\n\t\ttemplate.indexOf('|') < 0\n\t\t&& template.indexOf('{') < 0\n\t\t&& template.indexOf('}') < 0);\n};\n","module-type":"relinkwikitextrule","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/filteredtransclude.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/html.js":{"text":"/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement in attributes of widgets and html elements\nThis is configurable to select exactly which attributes of which elements\nshould be changed.\n\n<$link to=\"TiddlerTitle\" />\n\n\\*/\n\nvar utils = require(\"./utils.js\");\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\nvar relinkUtils = require('$:/plugins/flibbles/relink/js/utils.js');\nvar htmlOperators = relinkUtils.getModulesByTypeAsHashmap('relinkhtml', 'name');\n\nexports.name = \"html\";\n\nexports.report = function(text, callback, options) {\n\tvar element = this.nextTag.tag;\n\tvar nestedOptions = Object.create(options);\n\tnestedOptions.settings = this.parser.context;\n\tfor (var operator in htmlOperators) {\n\t\thtmlOperators[operator].report(this.nextTag, this.parser, function(title, blurb) {\n\t\t\tcallback(title, '<' + blurb + ' />');\n\t\t}, nestedOptions);\n\t}\n\tthis.parse();\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar widgetEntry = {};\n\twidgetEntry.attributes = Object.create(null);\n\twidgetEntry.element = this.nextTag.tag;\n\tvar elem = this.nextTag;\n\tvar changed = false;\n\tvar nestedOptions = Object.create(options);\n\tnestedOptions.settings = this.parser.context;\n\tfor (var operator in htmlOperators) {\n\t\tvar entry = htmlOperators[operator].relink(this.nextTag, this.parser, fromTitle, toTitle, nestedOptions);\n\t\tif (entry) {\n\t\t\tif (entry.output) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tif (entry.impossible) {\n\t\t\t\twidgetEntry.impossible = true;\n\t\t\t}\n\t\t}\n\t}\n\tvar tag = this.parse()[0];\n\tif (tag.children) {\n\t\tfor (var i = 0; i < tag.children.length; i++) {\n\t\t\tvar child = tag.children[i];\n\t\t\tif (child.output) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tif (child.impossible) {\n\t\t\t\twidgetEntry.impossible = true;\n\t\t\t}\n\t\t}\n\t}\n\tif (changed) {\n\t\tvar builder = new Rebuilder(text, elem.start);\n\t\tfor (var attributeName in elem.attributes) {\n\t\t\tvar attr = elem.attributes[attributeName];\n\t\t\tvar quotedValue;\n\t\t\tswitch (attr.type) {\n\t\t\tcase 'string':\n\t\t\t\tif (attr.valueless) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tvar quote = relinkUtils.determineQuote(text, attr);\n\t\t\t\tquotedValue = utils.wrapAttributeValue(attr.value, quote)\n\t\t\t\tif (quotedValue === undefined) {\n\t\t\t\t\t// The value was unquotable. We need to make\n\t\t\t\t\t// a macro in order to replace it.\n\t\t\t\t\tif (!options.placeholder) {\n\t\t\t\t\t\t// but we can't...\n\t\t\t\t\t\twidgetEntry.impossible = true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar value = options.placeholder.getPlaceholderFor(attr.value,attr.handler)\n\t\t\t\t\t\tquotedValue = \"<<\"+value+\">>\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'indirect':\n\t\t\t\tquotedValue = \"{{\" + attr.textReference + \"}}\";\n\t\t\t\tbreak;\n\t\t\tcase 'filtered':\n\t\t\t\tquotedValue = \"{{{\" + attr.filter + \"}}}\";\n\t\t\t\tbreak;\n\t\t\tcase 'macro':\n\t\t\t\tif (attr.output) {\n\t\t\t\t\tquotedValue = attr.output;\n\t\t\t\t} else {\n\t\t\t\t\tquotedValue = undefined;\n\t\t\t\t}\n\t\t\t\t// Else If output isn't set, this wasn't ever changed\n\t\t\t\tbreak;\n\t\t\tcase 'substituted':\n\t\t\t\tvar ticIndex = attr.rawValue.lastIndexOf(\"`\");\n\t\t\t\tif (ticIndex < 0) {\n\t\t\t\t\tquotedValue = \"`\" + attr.rawValue + \"`\";\n\t\t\t\t} else if (ticIndex < attr.rawValue.length-1\n\t\t\t\t\t\t&& attr.rawValue.indexOf(\"```\") < 0) {\n\t\t\t\t\tquotedValue = \"```\" + attr.rawValue + \"```\";\n\t\t\t\t} else {\n\t\t\t\t\t// We can't have a tic at the end; can't have triple tic.\n\t\t\t\t\twidgetEntry.impossible = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tvar ptr = attr.start;\n\t\t\tptr = $tw.utils.skipWhiteSpace(text, ptr);\n\t\t\tif (attributeName !== attr.name) {\n\t\t\t\t// Ooh, the attribute name changed\n\t\t\t\tbuilder.add(attr.name, ptr, ptr + attributeName.length);\n\t\t\t}\n\t\t\tif (quotedValue) {\n\t\t\t\t// We have a new attribute value\n\t\t\t\tptr += attributeName.length;\n\t\t\t\tptr = $tw.utils.skipWhiteSpace(text, ptr);\n\t\t\t\tptr++; // For the equals\n\t\t\t\tptr = $tw.utils.skipWhiteSpace(text, ptr);\n\t\t\t\tbuilder.add(quotedValue, ptr, attr.end);\n\t\t\t}\n\t\t}\n\t\tif (tag.children) {\n\t\t\tfor (var i = 0; i < tag.children.length; i++) {\n\t\t\t\tvar child = tag.children[i];\n\t\t\t\tif (child.output) {\n\t\t\t\t\tbuilder.add(child.output, child.start, child.end);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\twidgetEntry.output = builder.results(this.parser.pos);\n\t}\n\tif (widgetEntry.output || widgetEntry.impossible) {\n\t\treturn widgetEntry;\n\t}\n\treturn undefined;\n};\n","module-type":"relinkwikitextrule","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/html.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/image.js":{"text":"/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement in wiki text inline rules, like,\n\n[img[tiddler.jpg]]\n\n[img width=23 height=24 [Description|tiddler.jpg]]\n\n\\*/\n\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\nvar refHandler = require(\"$:/plugins/flibbles/relink/js/fieldtypes/reference\");\nvar filterHandler = require(\"$:/plugins/flibbles/relink/js/utils\").getType('filter');\nvar macrocall = require(\"./macrocall.js\");\nvar utils = require(\"./utils.js\");\nvar relinkUtils = require('$:/plugins/flibbles/relink/js/utils.js');\n\nexports.name = \"image\";\n\nexports.report = function(text, callback, options) {\n\tvar ptr = this.nextImage.start + 4; //[img\n\tvar inSource = false;\n\tfor (var attributeName in this.nextImage.attributes) {\n\t\tvar attr = this.nextImage.attributes[attributeName];\n\t\tif (attributeName === \"source\" || attributeName === \"tooltip\") {\n\t\t\tif (inSource) {\n\t\t\t\tptr = text.indexOf('|', ptr);\n\t\t\t} else {\n\t\t\t\tptr = text.indexOf('[', ptr);\n\t\t\t\tinSource = true;\n\t\t\t}\n\t\t\tptr += 1;\n\t\t}\n\t\tif (attributeName === \"source\") {\n\t\t\tvar tooltip = this.nextImage.attributes.tooltip;\n\t\t\tvar blurb = '[img[' + (tooltip ? tooltip.value : '') + ']]';\n\t\t\tcallback(attr.value, blurb);\n\t\t\tptr = text.indexOf(attr.value, ptr);\n\t\t\tptr = text.indexOf(']]', ptr) + 2;\n\t\t} else if (attributeName !== \"tooltip\") {\n\t\t\tptr = reportAttribute(this.parser, attr, callback, options);\n\t\t}\n\t}\n\tthis.parser.pos = ptr;\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar ptr = this.nextImage.start,\n\t\tbuilder = new Rebuilder(text, ptr),\n\t\tmakeWidget = false,\n\t\tskipSource = false,\n\t\timageEntry;\n\tif (this.nextImage.attributes.source.value === fromTitle && !canBePretty(toTitle, this.nextImage.attributes.tooltip)) {\n\t\tif (this.parser.context.allowWidgets() && (utils.wrapAttributeValue(toTitle) || options.placeholder)) {\n\t\t\tmakeWidget = true;\n\t\t\tbuilder.add(\"<$image\", ptr, ptr+4);\n\t\t} else {\n\t\t\t// We won't be able to make a placeholder to replace\n\t\t\t// the source attribute. We check now so we don't\n\t\t\t// prematurely convert into a widget.\n\t\t\t// Keep going in case other attributes need replacing.\n\t\t\tskipSource = true;\n\t\t}\n\t}\n\tptr += 4; //[img\n\tvar inSource = false;\n\tfor (var attributeName in this.nextImage.attributes) {\n\t\tvar attr = this.nextImage.attributes[attributeName];\n\t\tif (attributeName === \"source\" || attributeName === \"tooltip\") {\n\t\t\tif (inSource) {\n\t\t\t\tptr = text.indexOf('|', ptr);\n\t\t\t} else {\n\t\t\t\tptr = text.indexOf('[', ptr);\n\t\t\t\tinSource = true;\n\t\t\t}\n\t\t\tif (makeWidget) {\n\t\t\t\tif (\" \\t\\n\".indexOf(text[ptr-1]) >= 0) {\n\t\t\t\t\tbuilder.add('', ptr, ptr+1);\n\t\t\t\t} else {\n\t\t\t\t\tbuilder.add(' ', ptr, ptr+1);\n\t\t\t\t}\n\t\t\t}\n\t\t\tptr += 1;\n\t\t}\n\t\tif (attributeName === \"source\") {\n\t\t\tptr = text.indexOf(attr.value, ptr);\n\t\t\tif (attr.value === fromTitle) {\n\t\t\t\tif (makeWidget) {\n\t\t\t\t\tvar quotedValue = utils.wrapAttributeValue(toTitle);\n\t\t\t\t\tif (quotedValue === undefined) {\n\t\t\t\t\t\tvar key = options.placeholder.getPlaceholderFor(toTitle);\n\t\t\t\t\t\tbuilder.add(\"source=<<\"+key+\">>\", ptr, ptr+fromTitle.length);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbuilder.add(\"source=\"+quotedValue, ptr, ptr+fromTitle.length);\n\t\t\t\t\t}\n\t\t\t\t} else if (!skipSource) {\n\t\t\t\t\tbuilder.add(toTitle, ptr, ptr+fromTitle.length);\n\t\t\t\t} else {\n\t\t\t\t\tbuilder.impossible = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tptr = text.indexOf(']]', ptr);\n\t\t\tif (makeWidget) {\n\t\t\t\tbuilder.add(\"/>\", ptr, ptr+2);\n\t\t\t}\n\t\t\tptr += 2;\n\t\t} else if (attributeName === \"tooltip\") {\n\t\t\tif (makeWidget) {\n\t\t\t\tptr = text.indexOf(attr.value, ptr);\n\t\t\t\tvar quotedValue = utils.wrapAttributeValue(attr.value);\n\t\t\t\tbuilder.add(\"tooltip=\"+quotedValue, ptr, ptr+attr.value.length);\n\t\t\t}\n\t\t} else {\n\t\t\tptr = relinkAttribute(this.parser, attr, builder, fromTitle, toTitle, options);\n\t\t}\n\t}\n\tthis.parser.pos = ptr;\n\tif (builder.changed() || builder.impossible) {\n\t\timageEntry = {\n\t\t\toutput: builder.results(ptr),\n\t\t\timpossible: builder.impossible };\n\t}\n\treturn imageEntry;\n};\n\nfunction reportAttribute(parser, attribute, callback, options) {\n\tvar text = parser.source;\n\tvar ptr = text.indexOf(attribute.name, attribute.start);\n\tvar end;\n\tptr += attribute.name.length;\n\tptr = text.indexOf('=', ptr);\n\tif (attribute.type === \"string\") {\n\t\tptr = text.indexOf(attribute.value, ptr)\n\t\tvar quote = relinkUtils.determineQuote(text, attribute);\n\t\t// ignore first quote. We already passed it\n\t\tend = ptr + quote.length + attribute.value.length;\n\t} else if (attribute.type === \"indirect\") {\n\t\tptr = text.indexOf('{{', ptr);\n\t\tvar end = ptr + attribute.textReference.length + 4;\n\t\trefHandler.report(attribute.textReference, function(title, blurb) {\n\t\t\tcallback(title, '[img ' + attribute.name + '={{' + (blurb || '') + '}}]');\n\t\t}, options);\n\t} else if (attribute.type === \"filtered\") {\n\t\tptr = text.indexOf('{{{', ptr);\n\t\tvar end = ptr + attribute.filter.length + 6;\n\t\tfilterHandler.report(attribute.filter, function(title, blurb) {\n\t\t\tcallback(title, '[img ' + attribute.name + '={{{' + blurb + '}}}]');\n\t\t}, options);\n\t} else if (attribute.type === \"macro\") {\n\t\tptr = text.indexOf(\"<<\", ptr);\n\t\tvar end = attribute.value.end;\n\t\tvar macro = attribute.value;\n\t\tvar oldValue = attribute.value;\n\t\tmacrocall.reportAttribute(parser, macro, function(title, blurb) {\n\t\t\tcallback(title, '[img ' + attribute.name + '=' + blurb + ']');\n\t\t}, options);\n\t}\n\treturn end;\n};\n\nfunction relinkAttribute(parser, attribute, builder, fromTitle, toTitle, options) {\n\tvar text = builder.text;\n\tvar ptr = text.indexOf(attribute.name, attribute.start);\n\tvar end;\n\tptr += attribute.name.length;\n\tptr = text.indexOf('=', ptr);\n\tif (attribute.type === \"string\") {\n\t\tptr = text.indexOf(attribute.value, ptr)\n\t\tvar quote = relinkUtils.determineQuote(text, attribute);\n\t\t// ignore first quote. We already passed it\n\t\tend = ptr + quote.length + attribute.value.length;\n\t} else if (attribute.type === \"indirect\") {\n\t\tptr = text.indexOf('{{', ptr);\n\t\tvar end = ptr + attribute.textReference.length + 4;\n\t\tvar ref = refHandler.relinkInBraces(attribute.textReference, fromTitle, toTitle, options);\n\t\tif (ref) {\n\t\t\tif (ref.impossible) {\n\t\t\t\tbuilder.impossible = true;\n\t\t\t}\n\t\t\tif (ref.output) {\n\t\t\t\tbuilder.add(\"{{\"+ref.output+\"}}\", ptr, end);\n\t\t\t}\n\t\t}\n\t} else if (attribute.type === \"filtered\") {\n\t\tptr = text.indexOf('{{{', ptr);\n\t\tvar end = ptr + attribute.filter.length + 6;\n\t\tvar filter = filterHandler.relinkInBraces(attribute.filter, fromTitle, toTitle, options);\n\t\tif (filter !== undefined) {\n\t\t\tif (filter.impossible) {\n\t\t\t\tbuilder.impossible = true;\n\t\t\t}\n\t\t\tif (filter.output) {\n\t\t\t\tvar quoted = \"{{{\"+filter.output+\"}}}\";\n\t\t\t\tbuilder.add(quoted, ptr, end);\n\t\t\t}\n\t\t}\n\t} else if (attribute.type === \"macro\") {\n\t\tptr = text.indexOf(\"<<\", ptr);\n\t\tvar end = attribute.value.end;\n\t\tvar macro = attribute.value;\n\t\tvar oldValue = attribute.value;\n\t\tvar macroEntry = macrocall.relinkAttribute(parser, macro, text, fromTitle, toTitle, options);\n\t\tif (macroEntry !== undefined) {\n\t\t\tif (macroEntry.impossible) {\n\t\t\t\tbuilder.impossible = true;\n\t\t\t}\n\t\t\tif (macroEntry.output) {\n\t\t\t\tbuilder.add(macroEntry.output, ptr, end);\n\t\t\t}\n\t\t}\n\t}\n\treturn end;\n};\n\nfunction canBePretty(title, tooltip) {\n\treturn title.indexOf(']') < 0 && (tooltip || title.indexOf('|') < 0);\n};\n","module-type":"relinkwikitextrule","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/image.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/import.js":{"text":"/*\\\nmodule-type: relinkwikitextrule\n\nHandles import pragmas\n\n\\import [tag[MyTiddler]]\n\\*/\n\nvar utils = require(\"$:/plugins/flibbles/relink/js/utils.js\");\nvar filterRelinker = utils.getType('filter');\nvar ImportContext = utils.getContext('import');\n\nexports.name = \"import\";\n\nexports.report = function(text, callback, options) {\n\t// This moves the pos for us\n\tvar parseTree = this.parse();\n\tvar filter = parseTree[0].attributes.filter.value || '';\n\tfilterRelinker.report(filter, function(title, blurb) {\n\t\tif (blurb) {\n\t\t\tblurb = '\\\\import ' + blurb;\n\t\t} else {\n\t\t\tblurb = '\\\\import';\n\t\t}\n\t\tcallback(title, blurb);\n\t}, options);\n\t// Before we go, we need to actually import the variables\n\t// it's calling for, and any /relink pragma\n\tthis.parser.context = new ImportContext(options.wiki, this.parser.context, filter);\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\t// In this one case, I'll let the parser parse out the filter and move\n\t// the ptr.\n\tvar start = this.matchRegExp.lastIndex,\n\t\tparseTree = this.parse(),\n\t\tfilter = parseTree[0].attributes.filter.value || '',\n\t\tentry = filterRelinker.relink(filter, fromTitle, toTitle, options);\n\tif (entry !== undefined && entry.output) {\n\t\tvar newline = text.substring(start+filter.length, this.parser.pos);\n\t\tfilter = entry.output;\n\t\tentry.output = \"\\\\import \" + filter + newline;\n\t}\n\n\t// Before we go, we need to actually import the variables\n\t// it's calling for, and any /relink pragma\n\tthis.parser.context = new ImportContext(options.wiki, this.parser.context, filter);\n\n\treturn entry;\n};\n","module-type":"relinkwikitextrule","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/import.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/macrocall.js":{"text":"/*\\\nmodule-type: relinkwikitextrule\n\nHandles macro calls.\n\n<<myMacro '[[MyFilter]]' 'myTitle'>>\n\n\\*/\n\nvar utils = require(\"./utils.js\");\nvar relinkUtils = require('$:/plugins/flibbles/relink/js/utils.js');\nvar macrocall = require('$:/plugins/flibbles/relink/js/utils/macrocall.js');\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\nvar EntryNode = require('$:/plugins/flibbles/relink/js/utils/entry');\n\nexports.name = [\"macrocallinline\", \"macrocallblock\"];\n\nexports.report = function(text, callback, options) {\n\tvar macroInfo = getInfoFromRule(this);\n\tthis.parser.pos = macroInfo.end;\n\tthis.reportAttribute(this.parser, macroInfo, callback, options);\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar macroInfo = getInfoFromRule(this);\n\tvar managedMacro = this.parser.context.getMacro(macroInfo.name);\n\tthis.parser.pos = macroInfo.end;\n\tif (!managedMacro) {\n\t\t// We don't manage this macro. Bye.\n\t\treturn undefined;\n\t}\n\tvar mayBeWidget = this.parser.context.allowWidgets();\n\tvar names = getParamNames(this.parser, macroInfo.name, macroInfo.params, options);\n\tif (names === undefined) {\n\t\t// Needed the definition, and couldn't find it. So if a single\n\t\t// parameter needs to placeholder, just fail.\n\t\tmayBeWidget = false;\n\t}\n\tvar entry = macrocall.relink(this.parser.context, macroInfo, text, fromTitle, toTitle, mayBeWidget, options);\n\tif (entry && entry.output) {\n\t\tentry.output = macroToString(entry.output, text, names, options);\n\t}\n\treturn entry;\n};\n\n/** Relinks macros that occur as attributes, like <$element attr=<<...>> />\n * Processes the same, except it can't downgrade into a widget if the title\n * is complicated.\n * Kept for backward compatibility reasons\n */\nexports.relinkAttribute = function(parser, macro, text, fromTitle, toTitle, options) {\n\tvar entry = macrocall.relink(parser.context, macro, text, fromTitle, toTitle, false, options);\n\tif (entry && entry.output) {\n\t\tentry.output = macrocall.reassemble(entry.output, text, options);\n\t}\n\treturn entry;\n};\n\n/** As in, report a macrocall invocation that is an html attribute.\n * Kept for backward compatibility reasons\n */\nexports.reportAttribute = function(parser, macro, callback, options) {\n\tmacrocall.report(parser.context, macro, function(title, blurb) {\n\t\tcallback(title, \"<<\" + blurb + \">>\");\n\t}, options);\n};\n\nfunction getInfoFromRule(rule) {\n\t// Get all the details of the match\n\tvar macroInfo = rule.nextCall;\n\tif (!macroInfo) {\n\t\t// rule.match is used <v5.1.24\n\t\tvar match = rule.match,\n\t\t\toffset = $tw.utils.skipWhiteSpace(match[0], match[1].length+2);\n\t\tmacroInfo = {\n\t\t\tname: match[1],\n\t\t\tstart: rule.matchRegExp.lastIndex - match[0].length,\n\t\t\tend: rule.matchRegExp.lastIndex,\n\t\t};\n\t\tmacroInfo.params = parseParams(match[2], offset+macroInfo.start);\n\t}\n\t// post v5.3.0 changed it so name and param aren't used, but we still use\n\t// them. Maybe I should migrate so that I don't either, and that it's\n\t// orderedAttributes and $variable that I use.\n\tif (macroInfo.name === undefined) {\n\t\tmacroInfo.name = macroInfo.attributes[\"$variable\"].value;\n\t\tmacroInfo.params = macroInfo.orderedAttributes.slice(1);\n\t\tvar index = 0;\n\t\tfor (var i = 0; i < macroInfo.params.length; i++) {\n\t\t\tvar param = macroInfo.params[i];\n\t\t\tif (param.name === index.toString()) {\n\t\t\t\t// Swap out the param with one that doesn't have a name.\n\t\t\t\tmacroInfo.params[i] = {\n\t\t\t\t\tstart: param.start,\n\t\t\t\t\tend: param.end,\n\t\t\t\t\ttype: param.type,\n\t\t\t\t\tvalue: param.value\n\t\t\t\t};\n\t\t\t\tindex++;\n\t\t\t}\n\t\t}\n\t}\n\treturn macroInfo;\n};\n\nfunction mustBeAWidget(macro) {\n\tfor (var i = 0; i < macro.params.length; i++) {\n\t\tif (macro.params[i].type === \"macro\") {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false\n};\n\n/**Given a macro object ({name:, params:, start: end:}), and the text where\n * it was parsed from, returns a new macro that maintains any syntactic\n * structuring.\n */\nfunction macroToString(macro, text, names, options) {\n\tif (mustBeAWidget(macro)) {\n\t\tvar attrs = [];\n\t\tfor (var i = 0; i < macro.params.length; i++) {\n\t\t\tvar p = macro.params[i];\n\t\t\tvar val;\n\t\t\tif (p.newValue) {\n\t\t\t\tval = p.newValue;\n\t\t\t} else {\n\t\t\t\tval = utils.wrapAttributeValue(p.value);\n\t\t\t}\n\t\t\tattrs.push(\" \"+names[i]+\"=\"+val);\n\t\t}\n\t\treturn \"<$macrocall $name=\"+utils.wrapAttributeValue(macro.name)+attrs.join('')+\"/>\";\n\t} else {\n\t\treturn macrocall.reassemble(macro, text, options);\n\t}\n};\n\nfunction getParamNames(parser, macroName, params, options) {\n\tvar used = Object.create(null);\n\tvar rtn = new Array(params.length);\n\tvar anonsExist = false;\n\tvar i;\n\tfor (i = 0; i < params.length; i++) {\n\t\tvar name = params[i].name;\n\t\tif (name) {\n\t\t\trtn[i] = name;\n\t\t\tused[name] = true;\n\t\t} else {\n\t\t\tanonsExist = true;\n\t\t}\n\t}\n\tif (anonsExist) {\n\t\tvar def = parser.context.getMacroDefinition(macroName);\n\t\tif (def === undefined) {\n\t\t\t// If there are anonymous parameters, and we can't\n\t\t\t// find the definition, then we can't hope to create\n\t\t\t// a widget.\n\t\t\treturn undefined;\n\t\t}\n\t\tvar defParams = def.params || [];\n\t\tvar defPtr = 0;\n\t\tfor (i = 0; i < params.length; i++) {\n\t\t\tif (rtn[i] === undefined) {\n\t\t\t\twhile(defPtr < defParams.length && used[defParams[defPtr].name]) {\n\t\t\t\t\tdefPtr++;\n\t\t\t\t}\n\t\t\t\tif (defPtr >= defParams.length) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\trtn[i] = defParams[defPtr].name;\n\t\t\t\tused[defParams[defPtr].name] = true;\n\t\t\t}\n\t\t}\n\t}\n\treturn rtn;\n};\n\nfunction parseParams(paramString, pos) {\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = { };\n\t\t// We need to find the group match that isn't undefined.\n\t\tfor (var i = 2; i <= 6; i++) {\n\t\t\tif (paramMatch[i] !== undefined) {\n\t\t\t\tparamInfo.value = paramMatch[i];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\t//paramInfo.start = pos;\n\t\tparamInfo.end = reParam.lastIndex + pos;\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn params;\n};\n","module-type":"relinkwikitextrule","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/macrocall.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/macrodef.js":{"text":"/*\\\nmodule-type: relinkwikitextrule\n\nHandles pragma macro definitions. Except we only update placeholder macros\nthat we may have previously install.\n\n\\define relink-?() Tough title\n\n\\*/\n\nvar utils = require(\"$:/plugins/flibbles/relink/js/utils\");\nvar VariableContext = utils.getContext('variable');\n\nexports.name = \"macrodef\";\n\nexports.report = function(text, callback, options) {\n\tvar setParseTreeNode = this.parse(),\n\t\tm = this.match,\n\t\tname = m[1];\n\tthis.parser.context = new VariableContext(this.parser.context, setParseTreeNode[0]);\n\t// Parse set the pos pointer, but we don't want to skip the macro body.\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar endMatch = getBodyMatch(text, this.parser.pos, m[3]);\n\tif (endMatch) {\n\t\tvar value = endMatch[2],\n\t\t\thandler = utils.getType(getActiveType(name, m[2]) || 'wikitext');\n\t\tif (handler) {\n\t\t\tvar entry = handler.report(value, function(title, blurb) {\n\t\t\t\tvar macroStr = '\\\\define ' + name + '()';\n\t\t\t\tif (blurb) {\n\t\t\t\t\tmacroStr += ' ' + blurb;\n\t\t\t\t}\n\t\t\t\tcallback(title, macroStr);\n\t\t\t}, options);\n\t\t}\n\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t}\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar setParseTreeNode = this.parse(),\n\t\tentry,\n\t\tm = this.match,\n\t\tname = m[1],\n\t\tparams = m[2],\n\t\tmultiline = m[3];\n\tthis.parser.context = new VariableContext(this.parser.context, setParseTreeNode[0]);\n\t// Parse set the pos pointer, but we don't want to skip the macro body.\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar endMatch = getBodyMatch(text, this.parser.pos, multiline);\n\tif (endMatch) {\n\t\tvar value = endMatch[2],\n\t\t\ttype = getActiveType(name, params),\n\t\t\thandler = utils.getType(type || 'wikitext');\n\t\tif (handler) {\n\t\t\t// If this is an active relink placeholder, then let's remember it\n\t\t\tif (type && options.placeholder) {\n\t\t\t\toptions.placeholder.registerExisting(name, value);\n\t\t\t}\n\t\t\t// Relink the contents\n\t\t\tentry = handler.relink(value, fromTitle, toTitle, options);\n\t\t\tif (entry && entry.output) {\n\t\t\t\tentry.output = m[0] + endMatch[1] + entry.output + endMatch[0];\n\t\t\t}\n\t\t}\n\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t}\n\treturn entry;\n};\n\n// Return another match for the body, but tooled uniquely\n// m[1] = whitespace before body\n// m[2] = body\n// m.index + m[0].length -> end of match\nfunction getBodyMatch(text, pos, isMultiline) {\n\tvar whitespace,\n\t\tvalueRegExp;\n\tif (isMultiline) {\n\t\tvalueRegExp = /\\r?\\n\\\\end[^\\S\\n\\r]*(?:\\r?\\n|$)/mg;\n\t\twhitespace = '';\n\t} else {\n\t\tvalueRegExp = /(?:\\r?\\n|$)/mg;\n\t\tvar newPos = $tw.utils.skipWhiteSpace(text, pos);\n\t\twhitespace = text.substring(pos, newPos);\n\t\tpos = newPos;\n\t}\n\tvalueRegExp.lastIndex = pos;\n\tvar match = valueRegExp.exec(text);\n\tif (match) {\n\t\tmatch[1] = whitespace;\n\t\tmatch[2] = text.substring(pos, match.index);\n\t}\n\treturn match;\n};\n\nfunction getActiveType(macroName, parameters) {\n\tvar placeholder = /^relink-(?:(\\w+)-)?\\d+$/.exec(macroName);\n\t// normal macro or special placeholder?\n\tif (placeholder && parameters === '') {\n\t\treturn placeholder[1] || 'title';\n\t}\n\treturn undefined;\n};\n","module-type":"relinkwikitextrule","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/macrodef.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/prettylink.js":{"text":"/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement in wiki text inline rules, like,\n\n[[Introduction]]\n\n[[link description|TiddlerTitle]]\n\n\\*/\n\nvar utils = require(\"./utils.js\");\n\nexports.name = \"prettylink\";\n\nexports.report = function(text, callback, options) {\n\tvar text = this.match[1],\n\t\tlink = this.match[2] || text;\n\tif (!$tw.utils.isLinkExternal(link)) {\n\t\tcallback(link, '[[' + text + ']]');\n\t}\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar caption, m = this.match;\n\tif (m[2] === fromTitle) {\n\t\t// format is [[caption|MyTiddler]]\n\t\tcaption = m[1];\n\t} else if (m[2] !== undefined || m[1] !== fromTitle) {\n\t\t// format is [[MyTiddler]], and it doesn't match\n\t\treturn undefined;\n\t}\n\tvar entry = { output: utils.makePrettylink(this.parser, toTitle, caption) };\n\tif (entry.output === undefined) {\n\t\tentry.impossible = true;\n\t}\n\treturn entry;\n};\n","module-type":"relinkwikitextrule","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/prettylink.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/quoteblock.js":{"text":"/*\\\nmodule-type: relinkwikitextrule\n\nHandles the quote blocks, as in:\n\n<<<\n...\n<<<\n\n\\*/\n\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\n\nexports.name = \"quoteblock\";\n\nexports.type = {block: true};\n\nexports.report = function(text, callback, options) {\n\tvar reEndString = \"^\" + this.match[1] + \"(?!<)\";\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\tthis.parser.parseClasses();\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\n\t// Parse the optional cite\n\treportCite(this.parser, this.match[1]);\n\t// Now parse the body of the quote\n\tthis.parser.parseBlocks(reEndString);\n\tif (this.match) {\n\t\t// Now parse the closing cite\n\t\treportCite(this.parser, this.match[1]);\n\t}\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar reEndString = \"^\" + this.match[1] + \"(?!<)\";\n\tvar builder = new Rebuilder(text, this.parser.pos);\n\tvar entry;\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\tthis.parser.parseClasses();\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\n\t// Parse the optional cite\n\tmergeRelinks(builder, this.parser.parseInlineRun(/(\\r?\\n)/mg));\n\t// Now parse the body of the quote\n\tmergeRelinks(builder, this.parser.parseBlocks(reEndString));\n\t// Now parse the closing cite\n\tmergeRelinks(builder, this.parser.parseInlineRun(/(\\r?\\n)/mg));\n\n\tif (builder.changed() || builder.impossible) {\n\t\tentry = {};\n\t\tentry.output = builder.results(this.parser.pos);\n\t\tif (builder.impossible) {\n\t\t\tentry.impossible = true;\n\t\t}\n\t}\n\treturn entry;\n};\n\nfunction reportCite(parser, delimeter) {\n\tvar callback = parser.callback;\n\ttry {\n\t\tparser.callback = function(title, blurb) {\n\t\t\treturn callback(title, delimeter + \" \" + blurb);\n\t\t};\n\t\tparser.parseInlineRun(/(\\r?\\n)/mg);\n\t} finally {\n\t\tparser.callback = callback;\n\t}\n};\n\nfunction mergeRelinks(builder, output) {\n\tif (output.length > 0) {\n\t\tfor (var i = 0; i < output.length; i++) {\n\t\t\tvar o = output[i];\n\t\t\tif (o.output) {\n\t\t\t\tbuilder.add(o.output, o.start, o.end);\n\t\t\t}\n\t\t\tif (o.impossible) {\n\t\t\t\tbuilder.impossible = true;\n\t\t\t}\n\t\t}\n\t}\n};\n","module-type":"relinkwikitextrule","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/quoteblock.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/relink.js":{"text":"/*\\\nmodule-type: wikirule\n\nThis defines the \\relink inline pragma used to locally declare\nrelink rules for macros.\n\nIt takes care of providing its own relink and report rules.\n\n\\*/\n\nvar utils = require('$:/plugins/flibbles/relink/js/utils.js');\nvar language = require('$:/plugins/flibbles/relink/js/language.js');\n\nexports.name = \"relink\";\nexports.types = {pragma: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /^\\\\relink[^\\S\\n]+([^(\\s]+)([^\\r\\n]*)(\\r?\\n)?/mg;\n};\n\n/**This makes the widget that the macro library will later parse to determine\n * new macro relink state.\n *\n * It's a <$set> widget so it can appear BEFORE \\define pragma and not\n * prevent that pragma from being scooped up by importvariables.\n * (importvariables stops scooping as soon as it sees something besides $set) */\nexports.parse = function() {\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar macroName;\n\tvar macroParams = Object.create(null);\n\tvar error = undefined;\n\tvar rtn = [];\n\tvar self = this;\n\tthis.interpretSettings(function(macro, parameter, type) {\n\t\tmacroName = macro;\n\t\tif (type && !utils.getType(type)) {\n\t\t\terror = language.getString(\"text/plain\", \"Error/UnrecognizedType\",\n\t\t\t\t{variables: {type: type}, wiki: self.parser.wiki});\n\t\t}\n\t\tmacroParams[parameter] = type;\n\t});\n\t// If no macroname. Return nothing, this rule will be ignored by parsers\n\tif (macroName) {\n\t\tvar relink = Object.create(null);\n\t\trelink[macroName] = macroParams;\n\t\trtn.push({\n\t\t\ttype: \"set\",\n\t\t\tattributes: {\n\t\t\t\tname: {type: \"string\", value: \"\"}\n\t\t\t},\n\t\t\tchildren: [],\n\t\t\tisMacroDefinition: true,\n\t\t\trelink: relink});\n\t}\n\tif (error) {\n\t\trtn.push({\n\t\t\ttype: \"element\", tag: \"span\", attributes: {\n\t\t\t\t\"class\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: \"tc-error tc-relink-error\"\n\t\t\t\t}\n\t\t\t}, children: [\n\t\t\t\t{type: \"text\", text: error}\n\t\t\t]});\n\t}\n\treturn rtn;\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar parser = this.parser;\n\tvar currentTiddler = parser.context.widget.variables.currentTiddler.value;\n\tparser.pos = this.matchRegExp.lastIndex;\n\tthis.interpretSettings(function(macro, parameter, type) {\n\t\toptions.settings.addSetting(parser.wiki, macro, parameter, type, currentTiddler);\n\t});\n\t// Return nothing, because this rule is ignored by the parser\n\treturn undefined;\n};\n\nexports.interpretSettings = function(block) {\n\tvar paramString = this.match[2];\n\tif (paramString !== \"\") {\n\t\tvar macro = this.match[1];\n\t\tvar reParam = /\\s*([A-Za-z0-9\\-_]+)(?:\\s*:\\s*([^\\s]+))?/mg;\n\t\tvar paramMatch = reParam.exec(paramString);\n\t\twhile (paramMatch) {\n\t\t\tvar parameter = paramMatch[1];\n\t\t\tvar type = paramMatch[2];\n\t\t\tblock(macro, parameter, type);\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\t}\n\t}\n};\n","module-type":"wikirule","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/relink.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/rules.js":{"text":"/*\\\nmodule-type: relinkwikitextrule\n\nParses and acknowledges any pragma rules a tiddler has.\n\n\\rules except html wikilink\n\n\\*/\n\nexports.name = \"rules\";\n\n/**This is all we have to do. The rules rule doesn't parse. It just amends\n * the rules, which is exactly what I want it to do too.\n * It also takes care of moving the pos pointer forward.\n */\nexports.relink = function() {\n\tthis.parse();\n\treturn undefined;\n};\n\n// Same deal\nexports.report = exports.relink;\n","module-type":"relinkwikitextrule","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/rules.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/syslink.js":{"text":"/*\\\nmodule-type: relinkwikitextrule\n\nHandles sys links\n\n$:/sys/link\n\nbut not:\n\n~$:/sys/link\n\n\\*/\n\nvar utils = require(\"./utils.js\");\n\nexports.name = \"syslink\";\n\nexports.report = function(text, callback, options) {\n\tvar title = this.match[0];\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tif (title[0] !== \"~\") {\n\t\tcallback(title, '~' + title);\n\t}\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar entry = undefined;\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tif (this.match[0] === fromTitle && this.match[0][0] !== \"~\") {\n\t\tentry = {output: this.makeSyslink(toTitle, options)};\n\t\tif (entry.output === undefined) {\n\t\t\tentry.impossible = true;\n\t\t}\n\t}\n\treturn entry;\n};\n\nexports.makeSyslink = function(title, options) {\n\tvar match = title.match(this.matchRegExp);\n\tif (match && match[0] === title && title[0] !== \"~\") {\n\t\treturn title;\n\t} else {\n\t\treturn utils.makePrettylink(this.parser, title);\n\t}\n};\n","module-type":"relinkwikitextrule","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/syslink.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/table.js":{"text":"/*\\\nmodule-type: relinkwikitextrule\n\nHandles tables. Or rather handles the cells inside the tables, since tables\nthemselves aren't relinked.\n\n\\*/\n\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\n\nexports.name = \"table\";\n\nexports.types = {block: true};\n\nexports.report = function(text, callback, options) {\n\tvar rowRegExp = /^\\|([^\\n]*)\\|([fhck]?)\\r?(?:\\n|$)/mg,\n\t\trowTermRegExp = /(\\|(?:[fhck]?)\\r?(?:\\n|$))/mg;\n\t// Match the row\n\trowRegExp.lastIndex = this.parser.pos;\n\tvar rowMatch = rowRegExp.exec(this.parser.source);\n\twhile(rowMatch && rowMatch.index === this.parser.pos) {\n\t\tvar rowType = rowMatch[2];\n\t\t// Check if it is a class assignment\n\t\tif(rowType === \"k\") {\n\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t} else if(rowType === \"c\") {\n\t\t\t// Is this a caption row?\n\t\t\t// If so, move past the opening `|` of the row\n\t\t\tthis.parser.pos++;\n\t\t\t// Parse the caption\n\t\t\tvar oldCallback = this.parser.callback;\n\t\t\tthis.parser.callback = function(title, blurb) {\n\t\t\t\tcallback(title, '|' + blurb + '|c');\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tthis.parser.parseInlineRun(rowTermRegExp,{eatTerminator: true});\n\t\t\t} finally {\n\t\t\t\tthis.parser.callback = oldCallback;\n\t\t\t}\n\t\t} else {\n\t\t\t// Process the row\n\t\t\tprocessRow.call(this, rowType, callback);\n\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t}\n\t\trowMatch = rowRegExp.exec(this.parser.source);\n\t}\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar rowRegExp = /^\\|([^\\n]*)\\|([fhck]?)\\r?(?:\\n|$)/mg,\n\t\trowTermRegExp = /(\\|(?:[fhck]?)\\r?(?:\\n|$))/mg,\n\t\tbuilder = new Rebuilder(text, this.parser.pos),\n\t\timpossible = false,\n\t\toutput,\n\t\tentry;\n\t// Match the row\n\trowRegExp.lastIndex = this.parser.pos;\n\tvar rowMatch = rowRegExp.exec(this.parser.source);\n\twhile(rowMatch && rowMatch.index === this.parser.pos) {\n\t\tvar rowType = rowMatch[2];\n\t\t// Check if it is a class assignment\n\t\tif(rowType === \"k\") {\n\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t} else {\n\t\t\t// Is this a caption row?\n\t\t\tif(rowType === \"c\") {\n\t\t\t\t// If so, move past the opening `|` of the row\n\t\t\t\tthis.parser.pos++;\n\t\t\t\t// Parse the caption\n\t\t\t\toutput = this.parser.parseInlineRun(rowTermRegExp,{eatTerminator: true});\n\t\t\t} else {\n\t\t\t\t// Process the row\n\t\t\t\toutput = processRow.call(this);\n\t\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t\t}\n\t\t\tif (output.length > 0) {\n\t\t\t\tfor (var i = 0; i < output.length; i++) {\n\t\t\t\t\tvar o = output[i];\n\t\t\t\t\tif (o.output) {\n\t\t\t\t\t\tbuilder.add(o.output, o.start, o.end);\n\t\t\t\t\t}\n\t\t\t\t\tif (o.impossible) {\n\t\t\t\t\t\timpossible = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\trowMatch = rowRegExp.exec(this.parser.source);\n\t}\n\tif (builder.changed() || impossible) {\n\t\tentry = {}\n\t\tentry.output = builder.results(this.parser.pos);\n\t\tif (impossible) {\n\t\t\tentry.impossible = true;\n\t\t}\n\t}\n\treturn entry;\n};\n\nvar processRow = function(rowType, callback) {\n\tvar cellRegExp = /(?:\\|([^\\n\\|]*)\\|)|(\\|[fhck]?\\r?(?:\\n|$))/mg,\n\t\tcellTermRegExp = /((?:\\x20*)\\|)/mg,\n\t\tchildren = [];\n\t// Match a single cell\n\tcellRegExp.lastIndex = this.parser.pos;\n\tvar cellMatch = cellRegExp.exec(this.parser.source);\n\twhile(cellMatch && cellMatch.index === this.parser.pos) {\n\t\tif(cellMatch[2]) {\n\t\t\t// End of row\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t\tbreak;\n\t\t}\n\t\tswitch (cellMatch[1]) {\n\t\tcase '~':\n\t\tcase '>':\n\t\tcase '<':\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t// For ordinary cells, step beyond the opening `|`\n\t\t\tthis.parser.pos++;\n\t\t\t// Look for a space at the start of the cell\n\t\t\tvar spaceLeft = false;\n\t\t\tvar prefix = '|';\n\t\t\tvar suffix = '|';\n\t\t\tif(this.parser.source.substr(this.parser.pos).search(/^\\^([^\\^]|\\^\\^)/) === 0) {\n\t\t\t\tprefix += '^';\n\t\t\t\tthis.parser.pos++;\n\t\t\t} else if(this.parser.source.substr(this.parser.pos).search(/^,([^,]|,,)/) === 0) {\n\t\t\t\tprefix += ',';\n\t\t\t\tthis.parser.pos++;\n\t\t\t}\n\t\t\tvar chr = this.parser.source.substr(this.parser.pos,1);\n\t\t\twhile(chr === \" \") {\n\t\t\t\tspaceLeft = true;\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tchr = this.parser.source.substr(this.parser.pos,1);\n\t\t\t}\n\t\t\tif (spaceLeft) {\n\t\t\t\tprefix += ' ';\n\t\t\t}\n\t\t\t// Check whether this is a heading cell\n\t\t\tif(chr === \"!\") {\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tprefix += '!';\n\t\t\t}\n\t\t\t// Parse the cell\n\t\t\tvar oldCallback = this.parser.callback;\n\t\t\tvar reports = [];\n\t\t\tthis.parser.callback = function(title, blurb) {\n\t\t\t\treports.push(title, blurb);\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tvar output = this.parser.parseInlineRun(cellTermRegExp,{eatTerminator: true});\n\t\t\t\tif (output.length > 0) {\n\t\t\t\t\tchildren.push(output[0]);\n\t\t\t\t}\n\t\t\t\tif(this.parser.source.substr(this.parser.pos - 2,1) === \" \") { // spaceRight\n\t\t\t\t\tsuffix = ' |';\n\t\t\t\t}\n\t\t\t\tfor (var i = 0; i < reports.length; i += 2) {\n\t\t\t\t\tcallback(reports[i], prefix + reports[i+1] + suffix + rowType);\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.parser.callback = oldCallback;\n\t\t\t}\n\t\t\t// Move back to the closing `|`\n\t\t\tthis.parser.pos--;\n\t\t}\n\t\tcellRegExp.lastIndex = this.parser.pos;\n\t\tcellMatch = cellRegExp.exec(this.parser.source);\n\t}\n\treturn children;\n};\n","module-type":"relinkwikitextrule","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/table.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/transclude.js":{"text":"/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement of transclusions in wiki text like,\n\n{{RenamedTiddler}}\n{{RenamedTiddler||TemplateTitle}}\n\nThis renames both the tiddler and the template field.\n\n\\*/\n\nvar refHandler = require(\"$:/plugins/flibbles/relink/js/fieldtypes/reference\");\nvar utils = require(\"./utils.js\");\nvar relinkUtils = require('$:/plugins/flibbles/relink/js/utils.js');\nvar referenceOperators = relinkUtils.getModulesByTypeAsHashmap('relinkreference', 'name');\n\nexports.name = ['transcludeinline', 'transcludeblock'];\n\nexports.report = function(text, callback, options) {\n\tvar m = this.match,\n\t\trefString = $tw.utils.trim(m[1]),\n\t\tref = parseTextReference(refString),\n\t\ttemplate = $tw.utils.trim(m[2]),\n\t\tparams = m[3];\n\tfor (var operator in referenceOperators) {\n\t\treferenceOperators[operator].report(ref, function(title, blurb) {\n\t\t\tblurb = blurb || \"\";\n\t\t\tif (template) {\n\t\t\t\tblurb += '||' + template;\n\t\t\t}\n\t\t\tif (params) {\n\t\t\t\tblurb += '|' + params;\n\t\t\t}\n\t\t\tcallback(title, \"{{\" + blurb + \"}}\");\n\t\t}, options);\n\t}\n\tif (template) {\n\t\tvar templateBlurb = refString + '||';\n\t\tif (params) {\n\t\t\ttemplateBlurb += '|' + params;\n\t\t}\n\t\tcallback(template, '{{' + templateBlurb + '}}');\n\t}\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar m = this.match,\n\t\treference = parseTextReference(m[1]),\n\t\ttemplate = m[2],\n\t\tparams = m[3],\n\t\tentry = undefined,\n\t\timpossible = false,\n\t\tmodified = false;\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tfor (var operator in referenceOperators) {\n\t\tvar result = referenceOperators[operator].relink(reference, fromTitle, toTitle, options);\n\t\tif (result !== undefined) {\n\t\t\tif (result.impossible) {\n\t\t\t\timpossible = true;\n\t\t\t}\n\t\t\tif (result.output) {\n\t\t\t\treference = result.output;\n\t\t\t\tmodified = true\n\t\t\t}\n\t\t}\n\t}\n\tif ($tw.utils.trim(template) === fromTitle) {\n\t\ttemplate = template.replace(fromTitle, toTitle);\n\t\tmodified = true;\n\t}\n\tif (modified) {\n\t\tvar output = this.makeTransclude(this.parser, reference, template, params);\n\t\tif (output) {\n\t\t\t// Adding any newline that might have existed is\n\t\t\t// what allows this relink method to work for both\n\t\t\t// the block and inline filter wikitext rule.\n\t\t\tentry = {output: output + utils.getEndingNewline(m[0])};\n\t\t} else {\n\t\t\timpossible = true;\n\t\t}\n\t}\n\tif (impossible) {\n\t\tentry = entry || {};\n\t\tentry.impossible = true;\n\t}\n\treturn entry;\n};\n\n// I have my own because the core one is deficient for my needs.\nfunction parseTextReference(textRef) {\n\t// Separate out the title, field name and/or JSON indices\n\tvar reTextRef = /^([\\w\\W]*?)(?:!!(\\S[\\w\\W]*)|##(\\S[\\w\\W]*))?$/g,\n\t\tmatch = reTextRef.exec(textRef),\n\t\tresult = {};\n\tif(match) {\n\t\t// Return the parts\n\t\tresult.title = match[1];\n\t\tresult.field = match[2];\n\t\tresult.index = match[3];\n\t} else {\n\t\t// If we couldn't parse it\n\t\tresult.title = textRef\n\t}\n\treturn result;\n};\n\n/** This converts a reference and a template into a string representation\n * of a transclude.\n */\nexports.makeTransclude = function(parser, reference, template, params) {\n\tvar rtn;\n\tif (!canBePrettyTemplate(template)) {\n\t\tvar widget = utils.makeWidget(parser, '$transclude', {\n\t\t\ttiddler: $tw.utils.trim(template),\n\t\t\tfield: reference.field,\n\t\t\tindex: reference.index});\n\t\tif (reference.title && widget !== undefined) {\n\t\t\trtn = utils.makeWidget(parser, '$tiddler', {tiddler: $tw.utils.trim(reference.title)}, widget);\n\t\t} else {\n\t\t\trtn = widget;\n\t\t}\n\t} else if (!canBePrettyTitle(reference.title) || !canBePrettyField(reference.field)) {\n\t\t// This block and the next account for the 1%...\n\t\tvar transclude;\n\t\tif (canBePrettyField(reference.field)) {\n\t\t\tvar reducedRef = {field: reference.field, index: reference.index};\n\t\t\ttransclude = prettyTransclude(reducedRef, template, params);\n\t\t} else {\n\t\t\ttransclude = utils.makeWidget(parser, \"$transclude\", {tiddler: $tw.utils.trim(reference.title), field: reference.field});\n\t\t}\n\t\trtn = utils.makeWidget(parser, '$tiddler', {tiddler: $tw.utils.trim(reference.title)}, transclude);\n\t} else {\n\t\t// This block takes care of 99% of all cases\n\t\trtn = prettyTransclude(reference, template, params);\n\t}\n\treturn rtn;\n};\n\nfunction canBePrettyTitle(value) {\n\treturn refHandler.canBePretty(value) && canBePrettyTemplate(value);\n};\n\nfunction canBePrettyField(value) {\n\treturn !/[\\|\\}\\{]/.test(value);\n};\n\nfunction canBePrettyTemplate(value) {\n\treturn !value || (value.indexOf('}') < 0 && value.indexOf('{') < 0 && value.indexOf('|') < 0);\n};\n\nfunction prettyTransclude(textReference, template, params) {\n\tif (typeof textReference !== \"string\") {\n\t\ttextReference = refHandler.toString(textReference);\n\t}\n\tif (!textReference) {\n\t\ttextReference = '';\n\t}\n\tif (template !== undefined) {\n\t\ttextReference += \"||\" + template;\n\t}\n\tif (params) {\n\t\ttextReference += \"|\" + params;\n\t}\n\treturn \"{{\"+textReference+\"}}\";\n};\n","module-type":"relinkwikitextrule","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/transclude.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/typedblock.js":{"text":"/*\\\nmodule-type: relinkwikitextrule\n\nHandles the typeed blocks, as in:\n\n$$$text/vnd.tiddlywiki>text/html\n...\n$$$\n\n\\*/\n\nvar utils = require('$:/plugins/flibbles/relink/js/utils.js');\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\nvar language = require('$:/plugins/flibbles/relink/js/language.js');\n\nexports.name = \"typedblock\";\n\nexports.types = {block: true};\n\nvar textOperators;\nvar oldTextOperators;\n\nfunction getTextOperator(type, options) {\n\tvar operator;\n\tif (textOperators === undefined) {\n\t\ttextOperators = utils.getModulesByTypeAsHashmap('relinktext', 'type');\n\t\toldTextOperators = utils.getModulesByTypeAsHashmap('relinktextoperator', 'type');\n\t}\n\toperator = textOperators[type];\n\tif (operator) {\n\t\treturn operator;\n\t}\n\tvar info = $tw.utils.getFileExtensionInfo(type);\n\tif (info && textOperators[info.type]) {\n\t\treturn textOperators[info.type];\n\t}\n\tvar old = oldTextOperators[type] || (info && oldTextOperators[info.type]);\n\tif (old) {\n\t\tvar vars = Object.create(options);\n\t\tvars.variables = {type: old.type, keyword: type};\n\t\tvar warnString = language.getString(\"text/html\", \"Warning/OldRelinkTextOperator\", vars)\n\t\tlanguage.warn(warnString);\n\t\toldTextOperators[type] = undefined;\n\t}\n};\n\nfunction getText() {\n\tvar reEnd = /\\r?\\n\\$\\$\\$\\r?(?:\\n|$)/mg;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn text;\n};\n\nexports.report = function(text, callback, options) {\n\tvar innerText = getText.call(this),\n\t\toperator = getTextOperator(this.match[1], options);\n\tif (operator) {\n\t\treturn operator.report(innerText, callback, options);\n\t}\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar start = this.parser.pos,\n\t\tinnerStart = this.matchRegExp.lastIndex,\n\t\tinnerText = getText.call(this),\n\t\toperator = getTextOperator(this.match[1], options);\n\tif (operator) {\n\t\tvar innerOptions = Object.create(options);\n\t\tinnerOptions.settings = this.parser.context;\n\t\tvar results = operator.relink(innerText, fromTitle, toTitle, innerOptions);\n\t\tif (results && results.output) {\n\t\t\tvar builder = new Rebuilder(text, start);\n\t\t\tbuilder.add(results.output, innerStart, innerStart + innerText.length);\n\t\t\tresults.output = builder.results(this.parser.pos);\n\t\t}\n\t\treturn results;\n\t}\n};\n","module-type":"relinkwikitextrule","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/typedblock.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/utils.js":{"text":"/*\\\nmodule-type: library\n\nUtility methods for the wikitext relink rules.\n\n\\*/\n\nexports.makeWidget = function(parser, tag, attributes, body) {\n\tif (!parser.context.allowWidgets()) {\n\t\treturn undefined;\n\t}\n\tvar string = '<' + tag;\n\tfor (var attr in attributes) {\n\t\tvar value = attributes[attr];\n\t\tif (value !== undefined) {\n\t\t\tvar quoted = exports.wrapAttributeValue(value);\n\t\t\tif (!quoted) {\n\t\t\t\tif (!parser.options.placeholder) {\n\t\t\t\t\t// It's not possible to make this widget\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\tvar category = getPlaceholderCategory(parser.context, tag, attr);\n\t\t\t\tquoted = '<<' + parser.placeholder.getPlaceholderFor(value, category) + '>>';\n\t\t\t}\n\t\t\tstring += ' ' + attr + '=' + quoted;\n\t\t}\n\t}\n\tif (body !== undefined) {\n\t\tstring += '>' + body + '</' + tag + '>';\n\t} else {\n\t\tstring += '/>';\n\t}\n\treturn string;\n};\n\nfunction getPlaceholderCategory(context, tag, attribute) {\n\tvar element = context.getAttribute(tag);\n\tvar rule = element && element[attribute];\n\t// titles go to relink-\\d\n\t// plaintext goes to relink-plaintext-\\d\n\t// because titles are way more common, also legacy\n\tif (rule === undefined) {\n\t\treturn 'plaintext';\n\t} else {\n\t\trule = rule.fields.text;\n\t\tif (rule === 'title') {\n\t\t\trule = undefined;\n\t\t}\n\t\treturn rule;\n\t}\n};\n\nexports.makePrettylink = function(parser, title, caption) {\n\tvar output;\n\tif (parser.context.allowPrettylinks() && canBePrettylink(title, caption)) {\n\t\tif (caption !== undefined) {\n\t\t\toutput = \"[[\" + caption + \"|\" + title + \"]]\";\n\t\t} else {\n\t\t\toutput = \"[[\" + title + \"]]\";\n\t\t}\n\t} else if (caption !== undefined) {\n\t\tvar safeCaption = sanitizeCaption(parser, caption);\n\t\tif (safeCaption !== undefined) {\n\t\t\toutput = exports.makeWidget(parser, '$link', {to: title}, safeCaption);\n\t\t}\n\t} else if (exports.shorthandPrettylinksSupported(parser.wiki)) {\n\t\toutput = exports.makeWidget(parser, '$link', {to: title});\n\t} else if (parser.context.allowWidgets() && parser.placeholder) {\n\t\t// If we don't have a caption, we must resort to\n\t\t// placeholders anyway to prevent link/caption desync\n\t\t// from later relinks.\n\t\t// It doesn't matter whether the tiddler is quotable.\n\t\tvar ph = parser.placeholder.getPlaceholderFor(title);\n\t\toutput = \"<$link to=<<\"+ph+\">>><$text text=<<\"+ph+\">>/></$link>\";\n\t}\n\treturn output;\n};\n\n/**In version 5.1.20, Tiddlywiki made it so <$link to\"something\" /> would\n * use \"something\" as a caption. This is preferable. However, Relink works\n * going back to 5.1.14, so we need to have different handling for both\n * cases.\n */\nvar _supported;\nexports.shorthandPrettylinksSupported = function(wiki) {\n\tif (_supported === undefined) {\n\t\tvar test = wiki.renderText(\"text/plain\", \"text/vnd.tiddlywiki\", \"<$link to=test/>\");\n\t\t_supported = (test === \"test\");\n\t}\n\treturn _supported;\n};\n\n/**Return true if value can be used inside a prettylink.\n */\nfunction canBePrettylink(value, customCaption) {\n\treturn value.indexOf(\"]]\") < 0 && value[value.length-1] !== ']' && (customCaption !== undefined || value.indexOf('|') < 0);\n};\n\nfunction sanitizeCaption(parser, caption) {\n\tvar plaintext = parser.wiki.renderText(\"text/plain\", \"text/vnd.tiddlywiki\", caption);\n\tif (plaintext === caption && caption.indexOf(\"</$link>\") <= 0) {\n\t\treturn caption;\n\t} else {\n\t\treturn exports.makeWidget(parser, '$text', {text: caption});\n\t}\n};\n\n/**Finds an appropriate quote mark for a given value.\n *\n *Tiddlywiki doesn't have escape characters for attribute values. Instead,\n * we just have to find the type of quotes that'll work for the given title.\n * There exist titles that simply can't be quoted.\n * If it can stick with the preference, it will.\n *\n * return: Returns the wrapped value, or undefined if it's impossible to wrap\n */\nexports.wrapAttributeValue = function(value, preference) {\n\tvar whitelist = [\"\", \"'\", '\"', '\"\"\"'];\n\tvar choices = {\n\t\t\"\": function(v) {return !/([\\/\\s<>\"'=])/.test(v) && v.length > 0; },\n\t\t\"'\": function(v) {return v.indexOf(\"'\") < 0; },\n\t\t'\"': function(v) {return v.indexOf('\"') < 0; },\n\t\t'\"\"\"': function(v) {return v.indexOf('\"\"\"') < 0 && v[v.length-1] != '\"';}\n\t};\n\tif (choices[preference] && choices[preference](value)) {\n\t\treturn wrap(value, preference);\n\t}\n\tfor (var i = 0; i < whitelist.length; i++) {\n\t\tvar quote = whitelist[i];\n\t\tif (choices[quote](value)) {\n\t\t\treturn wrap(value, quote);\n\t\t}\n\t}\n\t// No quotes will work on this\n\treturn undefined;\n};\n\nfunction wrap(value, wrapper) {\n\tvar wrappers = {\n\t\t\"\": function(v) {return v; },\n\t\t\"'\": function(v) {return \"'\"+v+\"'\"; },\n\t\t'\"': function(v) {return '\"'+v+'\"'; },\n\t\t'\"\"\"': function(v) {return '\"\"\"'+v+'\"\"\"'; },\n\t\t\"[[\": function(v) {return \"[[\"+v+\"]]\"; }\n\t};\n\tvar chosen = wrappers[wrapper];\n\tif (chosen) {\n\t\treturn chosen(value);\n\t} else {\n\t\treturn undefined;\n\t}\n};\n\nfunction canBePrettyOperand(value) {\n\treturn value.indexOf(']') < 0;\n};\n\n// Finds the newline at the end of a string and returns it. Empty string if\n// none exists.\nexports.getEndingNewline = function(string) {\n\tvar l = string.length;\n\tif (string[l-1] === '\\n') {\n\t\treturn (string[l-2] === '\\r') ? \"\\r\\n\" : \"\\n\";\n\t}\n\treturn \"\";\n};\n","module-type":"library","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/utils.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/wikilink.js":{"text":"/*\\\nmodule-type: relinkwikitextrule\n\nHandles CamelCase links\n\nWikiLink\n\nbut not:\n\n~WikiLink\n\n\\*/\n\nvar utils = require(\"./utils.js\");\n\nexports.name = \"wikilink\";\n\nexports.report = function(text, callback, options) {\n\tvar title = this.match[0],\n\t\tunlink = $tw.config.textPrimitives.unWikiLink;\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tif (title[0] !== unlink) {\n\t\tcallback(title, unlink + title);\n\t}\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar entry = undefined,\n\t\ttitle = this.match[0];\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tif (title === fromTitle && title[0] !== $tw.config.textPrimitives.unWikiLink) {\n\t\tentry = { output: this.makeWikilink(toTitle, options) };\n\t\tif (entry.output === undefined) {\n\t\t\tentry.impossible = true;\n\t\t}\n\t}\n\treturn entry;\n};\n\nexports.makeWikilink = function(title, options) {\n\tif (title.match(this.matchRegExp) && title[0] !== $tw.config.textPrimitives.unWikiLink) {\n\t\treturn title;\n\t} else {\n\t\treturn utils.makePrettylink(this.parser, title);\n\t}\n};\n","module-type":"relinkwikitextrule","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/wikilink.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/html/attributes.js":{"text":"/*\\\n\nHandles all element attribute values. Most widget relinking happens here.\n\n\\*/\n\n'use strict';\n\nvar relinkUtils = require('$:/plugins/flibbles/relink/js/utils.js');\nvar refHandler = relinkUtils.getType('reference');\nvar filterHandler = relinkUtils.getType('filter');\nvar macrocall = require(\"$:/plugins/flibbles/relink/js/utils/macrocall.js\");\nvar attributeOperators = relinkUtils.getModulesByTypeAsHashmap('relinkhtmlattributes', 'name');\n\nexports.name = \"attributes\";\n\nexports.report = function(element, parser, callback, options) {\n\tfor (var attributeName in element.attributes) {\n\t\tvar attr = element.attributes[attributeName];\n\t\tvar nextEql = parser.source.indexOf('=', attr.start);\n\t\t// This is the rare case of changing tiddler\n\t\t// \"true\" to something else when \"true\" is\n\t\t// implicit, like <$link to /> We ignore those.\n\t\tif (nextEql < 0 || nextEql > attr.end) {\n\t\t\tcontinue;\n\t\t}\n\t\tswitch (attr.type) {\n\t\tcase \"string\":\n\t\t\tfor (var operatorName in attributeOperators) {\n\t\t\t\tvar operator = attributeOperators[operatorName];\n\t\t\t\tvar handler = operator.getHandler(element, attr, options);\n\t\t\t\tif (handler) {\n\t\t\t\t\thandler.report(attr.value, function(title, blurb) {\n\t\t\t\t\t\tif (operator.formBlurb) {\n\t\t\t\t\t\t\tif (blurb) {\n\t\t\t\t\t\t\t\tblurb = '\"' + blurb + '\"';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcallback(title, operator.formBlurb(element, attr, blurb, options));\n\t\t\t\t\t\t} else if (blurb) {\n\t\t\t\t\t\t\tcallback(title, element.tag + ' ' + attributeName + '=\"' + blurb + '\"');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcallback(title, element.tag + ' ' + attributeName);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, options);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"indirect\":\n\t\t\trefHandler.report(attr.textReference, function(title, blurb) {\n\t\t\t\tcallback(title, element.tag + ' ' + attributeName + '={{' + (blurb || '') + '}}');\n\t\t\t}, options);\n\t\t\tbreak;\n\t\tcase \"filtered\":\n\t\t\tfilterHandler.report(attr.filter, function(title, blurb) {\n\t\t\t\tcallback(title, element.tag + ' ' + attributeName + '={{{' + blurb + '}}}');\n\t\t\t}, options);\n\t\t\tbreak;\n\t\tcase \"macro\":\n\t\t\tvar macro = attr.value;\n\t\t\tmacrocall.report(options.settings, macro, function(title, blurb) {\n\t\t\t\tcallback(title, element.tag + ' ' + attributeName + '=<<' + blurb + '>>');\n\t\t\t}, options);\n\t\t\tbreak;\n\t\tcase \"substituted\":\n\t\t\tvar filterRegex = /\\$\\{([\\S\\s]+?)\\}\\$/g, filter;\n\t\t\twhile (filter = filterRegex.exec(attr.rawValue)) {\n\t\t\t\tfilterHandler.report(filter[1], function(title, blurb) {\n\t\t\t\t\tcallback(title, element.tag + ' ' + attributeName + '=`${' + blurb + '}$`');\n\t\t\t\t}, options);\n\t\t\t}\n\t\t\tfor (var operatorName in attributeOperators) {\n\t\t\t\tvar operator = attributeOperators[operatorName];\n\t\t\t\tvar handler = operator.getHandler(element, attr, options);\n\t\t\t\tif (handler) {\n\t\t\t\t\thandler.report(attr.rawValue, function(title, blurb) {\n\t\t\t\t\t\t// Only consider titles without substitutions.\n\t\t\t\t\t\tif (!hasSubstitutions(title)) {\n\t\t\t\t\t\t\tif (operator.formBlurb) {\n\t\t\t\t\t\t\t\tblurb = '`' + (blurb || '') + '`';\n\t\t\t\t\t\t\t\tcallback(title, operator.formBlurb(element, attr, blurb, options));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcallback(title, element.tag + ' ' + attributeName + '=`' + (blurb || '') + '`');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, options);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t}\n};\n\nexports.relink = function(element, parser, fromTitle, toTitle, options) {\n\tvar changed = undefined, impossible = undefined;\n\tfor (var attributeName in element.attributes) {\n\t\tvar attr = element.attributes[attributeName];\n\t\tvar nextEql = parser.source.indexOf('=', attr.start);\n\t\t// This is the rare case of changing tiddler\n\t\t// \"true\" to something else when \"true\" is\n\t\t// implicit, like <$link to /> We ignore those.\n\t\tif (nextEql < 0 || nextEql > attr.end) {\n\t\t\tattr.valueless = true;\n\t\t\tcontinue;\n\t\t}\n\t\t// TODO: This = undefined wasn't here before. Does it have to be?\n\t\tvar entry = undefined;\n\t\tswitch (attr.type) {\n\t\tcase 'string':\n\t\t\tfor (var operatorName in attributeOperators) {\n\t\t\t\tvar operator = attributeOperators[operatorName];\n\t\t\t\tvar handler = operator.getHandler(element, attr, options);\n\t\t\t\tif (handler) {\n\t\t\t\t\tentry = handler.relink(attr.value, fromTitle, toTitle, options);\n\t\t\t\t\tif (entry && entry.output) {\n\t\t\t\t\t\tattr.value = entry.output;\n\t\t\t\t\t\tattr.handler = handler.name;\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'indirect':\n\t\t\tentry = refHandler.relinkInBraces(attr.textReference, fromTitle, toTitle, options);\n\t\t\tif (entry && entry.output) {\n\t\t\t\tattr.textReference = entry.output;\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'filtered':\n\t\t\tentry = filterHandler.relinkInBraces(attr.filter, fromTitle, toTitle, options);\n\t\t\tif (entry && entry.output) {\n\t\t\t\tattr.filter = entry.output;\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'macro':\n\t\t\tvar macro = attr.value;\n\t\t\tentry = macrocall.relink(options.settings, macro, parser.source, fromTitle, toTitle, false, options);\n\t\t\tif (entry && entry.output) {\n\t\t\t\tattr.output = macrocall.reassemble(entry.output, parser.source, options);\n\t\t\t\tattr.value = entry.output;\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'substituted':\n\t\t\tvar newValue = attr.rawValue.replace(/\\$\\{([\\S\\s]+?)\\}\\$/g, function(match, filter) {\n\t\t\t\tvar filterEntry = filterHandler.relink(filter, fromTitle, toTitle, options);\n\t\t\t\tif (filterEntry) {\n\t\t\t\t\tif (filterEntry.output) {\n\t\t\t\t\t\t// The only }$ should be the one at the very end\n\t\t\t\t\t\tif (filterEntry.output.indexOf(\"}$\") < 0) {\n\t\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t\t\treturn '${' + filterEntry.output + '}$';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\timpossible = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (filterEntry.impossible) {\n\t\t\t\t\t\timpossible = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\t\t\tattr.rawValue = newValue;\n\t\t\tif (!hasSubstitutions(fromTitle)) {\n\t\t\t\tfor (var operatorName in attributeOperators) {\n\t\t\t\t\tvar operator = attributeOperators[operatorName];\n\t\t\t\t\tvar handler = operator.getHandler(element, attr, options);\n\t\t\t\t\tif (handler) {\n\t\t\t\t\t\tentry = handler.relink(attr.rawValue, fromTitle, toTitle, options);\n\t\t\t\t\t\tif (entry && entry.output) {\n\t\t\t\t\t\t\tif (hasSubstitutions(toTitle)) {\n\t\t\t\t\t\t\t\t// If we relinked, but the toTitle can't be in\n\t\t\t\t\t\t\t\t// a substition, then we must fail instead.\n\t\t\t\t\t\t\t\tentry.impossible = true;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tattr.rawValue = entry.output;\n\t\t\t\t\t\t\t\tattr.handler = handler.name;\n\t\t\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tif (entry && entry.impossible) {\n\t\t\timpossible = true;\n\t\t}\n\t}\n\tif (changed || impossible) {\n\t\treturn {output: changed, impossible: impossible};\n\t}\n};\n\nfunction hasSubstitutions(title) {\n\tif (/\\$\\(\\w+\\)\\$/.test(title)) {\n\t\treturn true;\n\t} else return (/\\$\\{[\\S\\s]+?\\}\\$/.test(title));\n};\n","module-type":"relinkhtml","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/html/attributes.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/html/importvariables.js":{"text":"/*\\\n\nHandles state updating required for $importvariables widgets\n\n\\*/\n\nvar relinkUtils = require('$:/plugins/flibbles/relink/js/utils.js');\nvar ImportContext = relinkUtils.getContext('import');\n\nexports.name = \"importvariables\";\n\nexports.report = function(element, parser, callback, options) {\n\tif (element.tag === \"$importvariables\") {\n\t\tprocessImport(element, parser, options);\n\t}\n};\n\nexports.relink = function(element, parser, fromTitle, toTitle, options) {\n\tif (element.tag === \"$importvariables\") {\n\t\tprocessImport(element, parser, options);\n\t}\n};\n\nfunction processImport(element, parser, options) {\n\tvar importFilterAttr = element.attributes.filter;\n\tif (importFilterAttr) {\n\t\tprocessImportFilter(parser, importFilterAttr, options);\n\t}\n};\n\n// This processes a <$importvariables> filter attribute and adds any new\n// variables to our parser.\nfunction processImportFilter(parser, importAttribute, options) {\n\tif (typeof importAttribute === \"string\") {\n\t\t// It was changed. Reparse it. It'll be a quoted\n\t\t// attribute value. Add a dummy attribute name.\n\t\timportAttribute = $tw.utils.parseAttribute(\"p=\"+importAttribute, 0)\n\t}\n\tvar context = parser.context;\n\tvar importFilter = computeAttribute(context, importAttribute, options);\n\tparser.context = new ImportContext(options.wiki, context, importFilter);\n};\n\nfunction computeAttribute(context, attribute, options) {\n\tvar value;\n\tif(attribute.type === \"filtered\") {\n\t\tvar parentWidget = context.widget;\n\t\tvalue = options.wiki.filterTiddlers(attribute.filter,parentWidget)[0] || \"\";\n\t} else if(attribute.type === \"indirect\") {\n\t\tvar parentWidget = context.widget;\n\t\tvalue = options.wiki.getTextReference(attribute.textReference,\"\",parentWidget.variables.currentTiddler.value);\n\t} else if(attribute.type === \"macro\") {\n\t\tvar parentWidget = context.widget;\n\t\tvalue = parentWidget.getVariable(attribute.value.name,{params: attribute.value.params});\n\t} else { // String attribute\n\t\tvalue = attribute.value;\n\t}\n\treturn value;\n};\n","module-type":"relinkhtml","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/html/importvariables.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/html/attributes/fields.js":{"text":"/*\\ \nHandles replacement in widgets which allow arbitrary attributes that\ncorrespond to tiddler fields.\n\n\\*/\n\nexports.name = \"fields\";\n\nexports.getHandler = function(element, attribute, options) {\n\tvar regexp = options.settings.getConfig(\"fieldattributes\")[element.tag];\n\tif (regexp) {\n\t\tvar results = regexp.exec(attribute.name);\n\t\tif (results && results[0] === attribute.name) {\n\t\t\treturn options.settings.getFields()[results[1]];\n\t\t}\n\t}\n};\n","module-type":"relinkhtmlattributes","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/html/attributes/fields.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/html/attributes/macrocall.js":{"text":"/*\\\n\nHandles replacement in $macrocall widgets\n\n\\*/\n\nexports.name = \"macrocall\";\n\nexports.getHandler = function(element, attribute, options) {\n\tif (element.tag === \"$macrocall\") {\n\t\tvar nameAttr = element.attributes[\"$name\"];\n\t\tif (nameAttr) {\n\t\t\tvar setting = options.settings.getMacro(nameAttr.value);\n\t\t\treturn setting && setting[attribute.name];\n\t\t}\n\t}\n};\n\nexports.formBlurb = function(element, attribute, blurb, options) {\n\tvar nameAttr = element.attributes[\"$name\"];\n\tvar newBlurb = '<' + nameAttr.value + ' ' + attribute.name;\n\tif (blurb) {\n\t\tnewBlurb += '=' + blurb;\n\t}\n\treturn newBlurb;\n};\n","module-type":"relinkhtmlattributes","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/html/attributes/macrocall.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/html/attributes/whitelist.js":{"text":"/*\\ \n\nHandles replacement of widget attributes that are specified in the whitelist.\n\n\\*/\n\nexports.name = \"whitelist\";\n\nexports.getHandler = function(element, attribute, options) {\n\tvar setting = options.settings.getAttribute(element.tag);\n\treturn setting && setting[attribute.name];\n};\n","module-type":"relinkhtmlattributes","title":"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/html/attributes/whitelist.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/contexts/context.js":{"text":"/*\\\n\nBase class for relink contexts.\n\n\\*/\n\nfunction Context() {\n};\n\nexports.context = Context;\n\n// This class does no special handling of fields, operators, or attributes.\n// we pass it along to the parent.\nContext.prototype.getFields = function() {\n\treturn this.parent.getFields();\n};\n\nContext.prototype.getOperator = function(name, index) {\n\treturn this.parent.getOperator(name, index);\n};\n\nContext.prototype.getOperators = function() {\n\treturn this.parent.getOperators();\n};\n\nContext.prototype.getAttribute = function(elementName) {\n\treturn this.parent.getAttribute(elementName);\n};\n\nContext.prototype.getAttributes = function() {\n\treturn this.parent.getAttributes();\n};\n\nContext.prototype.getConfig = function(category) {\n\treturn this.parent.getConfig(category);\n};\n\nContext.prototype.getMacro = function(macroName) {\n\treturn this.parent.getMacro(macroName);\n};\n\nContext.prototype.getMacros = function() {\n\treturn this.parent.getMacros();\n};\n\nContext.prototype.allowPrettylinks = function() {\n\treturn this.parent.allowPrettylinks();\n};\n\nContext.prototype.allowWidgets = function() {\n\treturn this.parent.allowWidgets();\n};\n\nContext.prototype.hasImports = function(value) {\n\treturn this.parent.hasImports(value);\n};\n","module-type":"relinkcontext","title":"$:/plugins/flibbles/relink/js/contexts/context.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/contexts/import.js":{"text":"/*\\\n\nThis handles the fetching and distribution of relink settings.\n\n\\*/\n\nvar WidgetContext = require('./widget').widget;\n\nfunction ImportContext(wiki, parent, filter) {\n\tthis.parent = parent;\n\tthis.wiki = wiki;\n\tvar importWidget = createImportWidget(filter, this.wiki, this.parent.widget);\n\tthis._compileList(importWidget.tiddlerList);\n\t// This only works if only one filter is imported\n\tthis.widget = this.getBottom(importWidget);\n\t// Trickle this up, so that any containing tiddlercontext knows that this\n\t// tiddler does some importing, and must be checked regularly.\n\tparent.hasImports(true);\n};\n\nexports.import = ImportContext;\n\nImportContext.prototype = new WidgetContext();\n\nImportContext.prototype.changed = function(changes) {\n\treturn this.widget && this.widget.refresh(changes)\n};\n\nfunction createImportWidget(filter, wiki, parent) {\n\tvar widget = wiki.makeWidget( { tree: [{\n\t\ttype: \"importvariables\",\n\t\tattributes: {\n\t\t\t\"filter\": {\n\t\t\t\ttype: \"string\",\n\t\t\t\tvalue: filter\n\t\t\t}\n\t\t}\n\t}] }, { parentWidget: parent} );\n\tif (parent) {\n\t\tparent.children.push(widget);\n\t}\n\twidget.execute();\n\twidget.renderChildren();\n\tvar importWidget = widget.children[0];\n\treturn importWidget;\n};\n\nImportContext.prototype._compileList = function(titleList) {\n\tfor (var i = 0; i < titleList.length; i++) {\n\t\tvar parser = this.wiki.parseTiddler(titleList[i]);\n\t\tif (parser) {\n\t\t\tvar parseTreeNode = parser.tree[0];\n\t\t\twhile (parseTreeNode && parseTreeNode.type === \"set\") {\n\t\t\t\tif (parseTreeNode.relink) {\n\t\t\t\t\tfor (var macroName in parseTreeNode.relink) {\n\t\t\t\t\t\tvar parameters = parseTreeNode.relink[macroName];\n\t\t\t\t\t\tfor (var paramName in parameters) {\n\t\t\t\t\t\t\tthis.addSetting(this.wiki, macroName, paramName, parameters[paramName], titleList[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tparseTreeNode = parseTreeNode.children && parseTreeNode.children[0];\n\t\t\t}\n\t\t}\n\t}\n};\n","module-type":"relinkcontext","title":"$:/plugins/flibbles/relink/js/contexts/import.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/contexts/tiddler.js":{"text":"/*\\\n\nContext for a tiddler. Defines nothing but makes an entry point to test if\na tiddler must be refreshed.\n\n\\*/\n\nvar WidgetContext = require('./widget.js').widget;\n\nfunction TiddlerContext(wiki, parentContext, title) {\n\tthis.title = title;\n\tthis.parent = parentContext;\n\tvar globalWidget = parentContext && parentContext.widget;\n\tvar parentWidget = wiki.makeWidget(null, {parentWidget: globalWidget});\n\tparentWidget.setVariable('currentTiddler', title);\n\tthis.widget = wiki.makeWidget(null, {parentWidget: parentWidget});\n};\n\nexports.tiddler = TiddlerContext;\n\nTiddlerContext.prototype = new WidgetContext();\n\nTiddlerContext.prototype.changed = function(changes) {\n\treturn this.widget && this.widget.refresh(changes);\n};\n\n// By default, a tiddler context does not use imports, unless an import\n// statement is later discovered somewhere in the fields.\nTiddlerContext.prototype.hasImports = function(value) {\n\treturn this._hasImports || (this._hasImports = value);\n};\n","module-type":"relinkcontext","title":"$:/plugins/flibbles/relink/js/contexts/tiddler.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/contexts/variable.js":{"text":"/*\\\n\nThis handles the context for variables. Either from $set, $vars, or \\define\n\n\\*/\n\nvar WidgetContext = require('./widget').widget;\n\nfunction VariableContext(parent, setParseTreeNode) {\n\tthis.parent = parent;\n\t// Now create a new widget and attach it.\n\tvar attachPoint = parent.widget;\n\tvar setWidget = attachPoint.makeChildWidget(setParseTreeNode);\n\tattachPoint.children.push(setWidget);\n\tsetWidget.computeAttributes();\n\tsetWidget.execute();\n\t// point our widget to bottom, where any other contexts would attach to\n\tthis.widget = this.getBottom(setWidget);\n};\n\nexports.variable = VariableContext;\n\nVariableContext.prototype = new WidgetContext();\n","module-type":"relinkcontext","title":"$:/plugins/flibbles/relink/js/contexts/variable.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/contexts/whitelist.js":{"text":"/*\\\n\nThis top-level context manages settings inside the whitelist. It never has\na parent.\n\n\\*/\n\nvar utils = require('../utils');\nvar Context = require('./context').context;\n\nvar prefix = \"$:/config/flibbles/relink/\";\n\n/**Factories define methods that create settings given config tiddlers.\n * for factory method 'example', it will be called once for each:\n * \"$:/config/flibbles/relink/example/...\" tiddler that exists.\n * the argument \"key\" will be set to the contents of \"...\"\n *\n * The reason I build relink settings in this convoluted way is to minimize\n * the number of times tiddlywiki has to run through EVERY tiddler looking\n * for relink config tiddlers.\n */\nvar settingsGenerators = utils.getModulesByTypeAsHashmap('relinksetting', 'name');\n\nfunction WhitelistContext(wiki) {\n\tbuild(this, wiki);\n};\n\nexports.whitelist = WhitelistContext;\n\nWhitelistContext.prototype = new Context();\n\n/**Hot directories are directories for which if anything changes inside them,\n * then Relink must completely rebuild its index.\n * By default, this includes the whitelist settings, but relink-titles also\n * includes its rules disabling directory.\n * This is the FIRST solution I came up with to this problem. If you're\n * looking at this, please make a github issue so I have a chance to understand\n * your needs. This is currently a HACK solution.\n */\nWhitelistContext.hotDirectories = [prefix];\n\nWhitelistContext.prototype.getAttribute = function(elementName) {\n\treturn this.attributes[elementName];\n};\n\nWhitelistContext.prototype.getAttributes = function() {\n\treturn flatten(this.attributes);\n};\n\nWhitelistContext.prototype.getFields = function() {\n\treturn this.fields;\n};\n\nWhitelistContext.prototype.getConfig = function(category) {\n\treturn this[category];\n};\n\nWhitelistContext.prototype.getOperator = function(operatorName, operandIndex) {\n\tvar op = this.operators[operatorName];\n\treturn op && op[operandIndex || 1];\n};\n\nWhitelistContext.prototype.getOperators = function() {\n\tvar signatures = Object.create(null);\n\tfor (var op in this.operators) {\n\t\tvar operandSet = this.operators[op];\n\t\tfor (var index in operandSet) {\n\t\t\tvar entry = operandSet[index];\n\t\t\tsignatures[entry.key] = entry;\n\t\t}\n\t}\n\treturn signatures;\n};\n\nWhitelistContext.prototype.getMacro = function(macroName) {\n\treturn this.macros[macroName];\n};\n\nWhitelistContext.prototype.getMacros = function() {\n\treturn flatten(this.macros);\n};\n\nWhitelistContext.prototype.changed = function(changedTiddlers) {\n\tfor (var i = 0; i < WhitelistContext.hotDirectories.length; i++) {\n\t\tvar dir = WhitelistContext.hotDirectories[i];\n\t\tfor (var title in changedTiddlers) {\n\t\t\tif (title.substr(0, dir.length) === dir) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nWhitelistContext.prototype.hasImports = function(value) {\n\t// We don't care if imports are used. This is the global level.\n\treturn false;\n};\n\nfunction build(settings, wiki) {\n\tfor (var name in settingsGenerators) {\n\t\tsettings[name] = Object.create(null);\n\t}\n\twiki.eachShadowPlusTiddlers(function(tiddler, title) {\n\t\tif (title.substr(0, prefix.length) === prefix) {\n\t\t\tvar remainder = title.substr(prefix.length);\n\t\t\tvar category = root(remainder);\n\t\t\tvar factory = settingsGenerators[category];\n\t\t\tif (factory) {\n\t\t\t\tvar name = remainder.substr(category.length+1);\n\t\t\t\tfactory.generate(settings[category], tiddler, name, wiki);\n\t\t\t}\n\t\t}\n\t});\n};\n\n/* Returns first bit of a path. path/to/tiddler -> path\n */\nfunction root(string) {\n\tvar index = string.indexOf('/');\n\tif (index >= 0) {\n\t\treturn string.substr(0, index);\n\t}\n};\n\n/* Turns {dir: {file1: 'value1', file2: 'value2'}}\n * into {dir/file1: 'value1', dir/file2: 'value2'}\n */\nfunction flatten(set) {\n\tvar signatures = Object.create(null);\n\tfor (var outerName in set) {\n\t\tvar setItem = set[outerName];\n\t\tfor (var innerName in setItem) {\n\t\t\tsignatures[outerName + \"/\" + innerName] = setItem[innerName];\n\t\t}\n\t}\n\treturn signatures;\n};\n","module-type":"relinkcontext","title":"$:/plugins/flibbles/relink/js/contexts/whitelist.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/contexts/widget.js":{"text":"/*\\\n\nThis is a virtual subclass of context for contexts that exist within widgets\nof a specific tiddler.\n\nAll widget contexts must have a widget member.\n\n\\*/\n\nvar Context = require('./context.js').context;\nvar utils = require('$:/plugins/flibbles/relink/js/utils.js');\n\nfunction WidgetContext() {};\n\nexports.widget = WidgetContext;\n\nWidgetContext.prototype = new Context();\n\nWidgetContext.prototype.getMacroDefinition = function(variableName) {\n\t// widget.variables is prototyped, so it looks up into all its parents too\n\treturn this.widget.variables[variableName] || $tw.macros[variableName];\n};\n\nWidgetContext.prototype.addSetting = function(wiki, macroName, parameter, type, sourceTitle) {\n\tthis.macros = this.macros || Object.create(null);\n\tvar macro = this.macros[macroName];\n\ttype = type || utils.getDefaultType(wiki);\n\tif (macro === undefined) {\n\t\tmacro = this.macros[macroName] = Object.create(null);\n\t}\n\tvar handler = utils.getType(type);\n\tif (handler) {\n\t\thandler.source = sourceTitle;\n\t\t// We attach the fields of the defining tiddler for the benefit\n\t\t// of any 3rd party field types that want access to them.\n\t\tvar tiddler = wiki.getTiddler(sourceTitle);\n\t\thandler.fields = tiddler.fields;\n\t\tmacro[parameter] = handler;\n\t}\n};\n\nWidgetContext.prototype.getMacros = function() {\n\tvar signatures = this.parent.getMacros();\n\tif (this.macros) {\n\t\tfor (var macroName in this.macros) {\n\t\t\tvar macro = this.macros[macroName];\n\t\t\tfor (var param in macro) {\n\t\t\t\tsignatures[macroName + \"/\" + param] = macro[param];\n\t\t\t}\n\t\t}\n\t}\n\treturn signatures;\n};\n\n/**This does strange handling because it's possible for a macro to have\n * its individual parameters whitelisted in separate places.\n * Don't know WHY someone would do this, but it can happen.\n */\nWidgetContext.prototype.getMacro = function(macroName) {\n\tvar theseSettings = this.macros && this.macros[macroName];\n\tvar parentSettings;\n\tif (this.parent) {\n\t\tparentSettings = this.parent.getMacro(macroName);\n\t}\n\tif (theseSettings && parentSettings) {\n\t\t// gotta merge them without changing either. This is expensive,\n\t\t// but it'll happen rarely.\n\t\tvar rtnSettings = $tw.utils.extend(Object.create(null), theseSettings, parentSettings);\n\t\treturn rtnSettings;\n\t}\n\treturn theseSettings || parentSettings;\n};\n\n/**Returns the deepest descendant of the given widget.\n */\nWidgetContext.prototype.getBottom = function(widget) {\n\twhile (widget.children.length > 0) {\n\t\twidget = widget.children[0];\n\t}\n\treturn widget;\n};\n","module-type":"relinkcontext","title":"$:/plugins/flibbles/relink/js/contexts/widget.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/contexts/wikitext.js":{"text":"/*\\\n\nContext for wikitext. It can contain rules about what's allowed in this\ncurrent layer of wikitext.\n\n\\*/\n\nvar WidgetContext = require('./widget.js').widget;\n\nfunction WikitextContext(parentContext) {\n\tthis.parent = parentContext;\n\tthis.widget = parentContext.widget;\n};\n\nexports.wikitext = WikitextContext;\n\nWikitextContext.prototype = new WidgetContext();\n\n// Unless this specific context has rules about it, widgets and prettyLInks are allowed.\nWikitextContext.prototype.allowWidgets = enabled;\nWikitextContext.prototype.allowPrettylinks = enabled;\n\nfunction enabled() { return true; };\n","module-type":"relinkcontext","title":"$:/plugins/flibbles/relink/js/contexts/wikitext.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/utils/backupIndexer.js":{"text":"/*\\\nmodule-type: library\n\nThis is a backup indexer Relink uses if the real one is disabled, or we're\n<V5.1.23. It's not nearly as good, but it caches some.\n\n\\*/\n\n\"use strict\";\n\nvar utils = require(\"$:/plugins/flibbles/relink/js/utils.js\");\nvar TiddlerContext = utils.getContext('tiddler');\n\n// This is the indexer we use if the current wiki doesn't support indexers.\nfunction BackupIndexer(wiki) {\n\tthis.wiki = wiki;\n};\n\nmodule.exports = BackupIndexer;\n\nBackupIndexer.prototype.lookup = function(title) {\n\treturn getCache(this.wiki).lookup[title];\n};\n\nBackupIndexer.prototype.reverseLookup = function(title) {\n\tvar index = getCache(this.wiki);\n\tif (!index.reverse[title]) {\n\t\tvar record = Object.create(null);\n\t\tfor (var other in index.lookup) {\n\t\t\tif (index.lookup[other][title]) {\n\t\t\t\trecord[other] = index.lookup[other][title];\n\t\t\t}\n\t\t}\n\t\tindex.reverse[title] = record;\n\t}\n\treturn index.reverse[title];\n};\n\n/* The backup indexer doesn't bother caching relink reports. It would always\n * be called after a draft tiddler had changed, which would defeat the point.\n */\nBackupIndexer.prototype.relinkLookup = function(fromTitle, toTitle, options) {\n\tvar cache = getCache(this.wiki);\n\tif (cache.lastRelinkFrom === fromTitle && cache.lastRelinkTo === toTitle) {\n\t\toptions.cache = cache.lastRelinkCache;\n\t\treturn cache.lastRelink;\n\t}\n\tcache.lastRelink = utils.getRelinkResults(this.wiki, fromTitle, toTitle, cache.context, undefined, options);\n\tcache.lastRelinkFrom = fromTitle;\n\tcache.lastRelinkTo = toTitle;\n\tcache.lastRelinkCache = options.cache;\n\treturn cache.lastRelink;\n};\n\nBackupIndexer.prototype.orphans = function() {\n\tvar index = getCache(this.wiki).lookup;\n\tvar results = [];\n\tfor (var title in index) {\n\t\tvar found = false;\n\t\tfor (var anything in this.reverseLookup(title)) {\n\t\t\tfound = true;\n\t\t\tbreak;\n\t\t}\n\t\tif (!found) {\n\t\t\tresults.push(title);\n\t\t}\n\t}\n\treturn results;\n};\n\nfunction getCache(wiki) {\n\treturn wiki.getGlobalCache('relink', function() {\n\t\tvar tiddlerList = wiki.getRelinkableTitles();\n\t\tvar index = Object.create(null);\n\t\tvar wikiContext = utils.getWikiContext(wiki);\n\t\tfor (var i = 0; i < tiddlerList.length; i++) {\n\t\t\tvar title = tiddlerList[i];\n\t\t\tvar tiddler = wiki.getTiddler(title);\n\t\t\tif (tiddler && !tiddler.fields[\"plugin-type\"]) {\n\t\t\t\tvar context = new TiddlerContext(wiki, wikiContext, title);\n\t\t\t\tindex[title] = utils.getTiddlerRelinkReferences(wiki, title, context);\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tlookup: index,\n\t\t\treverse: Object.create(null),\n\t\t\tcontext: wikiContext};\n\t});\n};\n","module-type":"library","title":"$:/plugins/flibbles/relink/js/utils/backupIndexer.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/utils/entry.js":{"text":"/*\\\n\nEntries are deprecated. Don't use them. These classes are here just so that\nany 3rd party modules built for Relink V1 don't break.\n\nJust return an object like, {output: \"string\", impossible: true|undefined}\n\n\\*/\n\nfunction EntryNode() {\n\tthis.children = [];\n};\n\nmodule.exports = EntryNode;\n\n/** PURE VIRTUAL\n * EntryNode.prototype.report = function() -> [\"string\", ...]\n */\n\nEntryNode.newType = function() {\n\treturn EntryNode;\n};\n\nEntryNode.prototype.add = function(entry) {\n\tthis.children.push(entry);\n};\n\nfunction EntryCollection() {\n\tthis.children = Object.create(null);\n\tthis.types = Object.create(null);\n};\n\nEntryNode.newCollection = function(name) {\n\treturn EntryCollection;\n};\n\n// Again. I reiterate. Don't use this. All this is just legacy support.\nObject.defineProperty(EntryCollection, 'impossible', {\n\tget: function() {\n\t\tvar imp = this._impossible;\n\t\tthis.eachChild(function(child) { imp = imp || child.impossible; });\n\t\treturn imp;\n\t},\n\tset: function(impossible) {\n\t\tthis._impossible = true;\n\t}\n});\n\nEntryCollection.prototype.eachChild = function(method) {\n\tfor (var child in this.children) {\n\t\tmethod(this.children[child]);\n\t}\n};\n\nEntryCollection.prototype.addChild = function(child, name, type) {\n\tthis.children[name] = child;\n\tthis.types[name] = type;\n};\n\nEntryCollection.prototype.hasChildren = function() {\n\treturn Object.keys(this.children).length > 0;\n};\n","module-type":"library","title":"$:/plugins/flibbles/relink/js/utils/entry.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/utils/macrocall.js":{"text":"/*\\\n\nMethods for reporting and relinking macros. Behaves much like a fieldtype, except that it's not.\n\n\\*/\n\nvar utils = require('$:/plugins/flibbles/relink/js/utils.js');\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\n\n// Error thrown when a macro's definition is needed, but can't be found.\nfunction CannotFindMacroDef() {};\nCannotFindMacroDef.prototype.impossible = true;\nCannotFindMacroDef.prototype.name = \"macroparam\";\n// Failed relinks due to missing definitions aren't reported for now.\n// I may want to do something special later on.\nCannotFindMacroDef.prototype.report = function() { return []; };\n\n/** As in, report a macrocall invocation that is an html attribute.\n * macro: must be a macro object.*/\nexports.report = function(context, macro, callback, options) {\n\tvar managedMacro = context.getMacro(macro.name);\n\tif (!managedMacro) {\n\t\t// We don't manage this macro. Bye.\n\t\treturn undefined;\n\t}\n\tfor (var managedArg in managedMacro) {\n\t\tvar index;\n\t\ttry {\n\t\t\tindex = getParamIndexWithinMacrocall(context, macro.name, managedArg, macro.params, options);\n\t\t} catch (e) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (index < 0) {\n\t\t\t// The argument was not supplied. Move on to next.\n\t\t\tcontinue;\n\t\t}\n\t\tvar param = macro.params[index];\n\t\tvar handler = managedMacro[managedArg];\n\t\tvar nestedOptions = Object.create(options);\n\t\tnestedOptions.settings = context;\n\t\tvar entry = handler.report(param.value, function(title, blurb) {\n\t\t\tvar rtn = managedArg;\n\t\t\tif (blurb) {\n\t\t\t\trtn += ': \"' + blurb + '\"';\n\t\t\t}\n\t\t\tcallback(title, macro.name + ' ' + rtn);\n\t\t}, nestedOptions);\n\t}\n};\n\n/**Processes the given macro,\n * macro: {name:, params:, start:, end:}\n * each parameters: {name:, end:, value:}\n * Macro invocation returned is the same, but relinked, and may have new keys:\n * parameters: {type: macro, start:, newValue: (quoted replacement value)}\n * Output of the returned entry isn't a string, but a macro object. It needs\n * to be converted.\n */\nexports.relink = function(context, macro, text, fromTitle, toTitle, mayBeWidget, options) {\n\tvar managedMacro = context.getMacro(macro.name);\n\tvar modified = false;\n\tif (!managedMacro) {\n\t\t// We don't manage this macro. Bye.\n\t\treturn undefined;\n\t}\n\tvar outMacro = $tw.utils.extend({}, macro);\n\tvar macroEntry = {};\n\toutMacro.params = macro.params.slice();\n\tfor (var managedArg in managedMacro) {\n\t\tvar index;\n\t\ttry {\n\t\t\tindex = getParamIndexWithinMacrocall(context, macro.name, managedArg, macro.params, options);\n\t\t} catch (e) {\n\t\t\tif (e instanceof CannotFindMacroDef) {\n\t\t\t\tmacroEntry.impossible = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tif (index < 0) {\n\t\t\t// this arg either was not supplied, or we can't find\n\t\t\t// the definition, so we can't tie it to an anonymous\n\t\t\t// argument. Either way, move on to the next.\n\t\t\tcontinue;\n\t\t}\n\t\tvar param = macro.params[index];\n\t\tvar handler = managedMacro[managedArg];\n\t\tvar nestedOptions = Object.create(options);\n\t\tnestedOptions.settings = context;\n\t\tvar entry = handler.relink(param.value, fromTitle, toTitle, nestedOptions);\n\t\tif (entry === undefined) {\n\t\t\tcontinue;\n\t\t}\n\t\t// Macro parameters can only be string parameters, not\n\t\t// indirect, or macro, or filtered\n\t\tif (entry.impossible) {\n\t\t\tmacroEntry.impossible = true;\n\t\t}\n\t\tif (!entry.output) {\n\t\t\tcontinue;\n\t\t}\n\t\tvar quote = utils.determineQuote(text, param);\n\t\tvar quoted = wrapParameterValue(entry.output, quote);\n\t\tvar newParam = $tw.utils.extend({}, param);\n\t\tif (quoted === undefined) {\n\t\t\tif (!mayBeWidget || !options.placeholder) {\n\t\t\t\tmacroEntry.impossible = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar ph = options.placeholder.getPlaceholderFor(entry.output,handler.name);\n\t\t\tnewParam.newValue = \"<<\"+ph+\">>\";\n\t\t\tnewParam.type = \"macro\";\n\t\t} else {\n\t\t\tnewParam.start = newParam.end - (newParam.value.length + (quote.length*2));\n\t\t\tnewParam.value = entry.output;\n\t\t\tnewParam.newValue = quoted;\n\t\t}\n\t\toutMacro.params[index] = newParam;\n\t\tmodified = true;\n\t}\n\tif (modified || macroEntry.impossible) {\n\t\tif (modified) {\n\t\t\tmacroEntry.output = outMacro;\n\t\t}\n\t\treturn macroEntry;\n\t}\n\treturn undefined;\n};\n\n/**Converts the macro object into a string, includes the <<..>>.\n * The text is the old text the macro was formed from. It's used to preserve\n * whitespace.\n */\nexports.reassemble = function(macro, text, options) {\n\tvar builder = new Rebuilder(text, macro.start);\n\tfor (var i = 0; i < macro.params.length; i++) {\n\t\tvar param = macro.params[i];\n\t\tif (param.newValue) {\n\t\t\tbuilder.add(param.newValue, param.start, param.end);\n\t\t}\n\t}\n\treturn builder.results(macro.end);\n};\n\n\n/** Returns -1 if param definitely isn't in macrocall.\n */\nfunction getParamIndexWithinMacrocall(context, macroName, param, params, options) {\n\tvar index, i, anonsExist = false;\n\tfor (i = 0; i < params.length; i++) {\n\t\tvar name = params[i].name;\n\t\tif (name === param) {\n\t\t\treturn i;\n\t\t}\n\t\tif (name === undefined) {\n\t\t\tanonsExist = true;\n\t\t}\n\t}\n\tif (!anonsExist) {\n\t\t// If no anonymous parameters are present, and we didn't find\n\t\t// it among the named ones, it must not be there.\n\t\treturn -1;\n\t}\n\tvar expectedIndex = indexOfParameterDef(context, macroName, param, options);\n\t// We've got to skip over all the named parameter instances.\n\tif (expectedIndex >= 0) {\n\t\tvar anonI = 0;\n\t\tfor (i = 0; i < params.length; i++) {\n\t\t\tif (params[i].name === undefined) {\n\t\t\t\tif (anonI === expectedIndex) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t\tanonI++;\n\t\t\t} else {\n\t\t\t\tvar indexOfOther = indexOfParameterDef(context, macroName, params[i].name, options);\n\t\t\t\tif (indexOfOther < expectedIndex) {\n\t\t\t\t\tanonI++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn -1;\n};\n\n// Looks up the definition of a macro, and figures out what the expected index\n// is for the given parameter.\nfunction indexOfParameterDef(context, macroName, paramName, options) {\n\tvar def = context.getMacroDefinition(macroName);\n\tif (def === undefined) {\n\t\tthrow new CannotFindMacroDef();\n\t}\n\tvar params = def.params || [];\n\tfor (var i = 0; i < params.length; i++) {\n\t\tif (params[i].name === paramName) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\n// Looks up the definition of a macro, and figures out what the expected index\n// is for the given parameter.\nfunction indexOfParameterDef(context, macroName, paramName, options) {\n\tvar def = context.getMacroDefinition(macroName);\n\tif (def === undefined) {\n\t\tthrow new CannotFindMacroDef();\n\t}\n\tvar params = def.params || [];\n\tfor (var i = 0; i < params.length; i++) {\n\t\tif (params[i].name === paramName) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\n/**Like wrapAttribute value, except for macro parameters, not attributes.\n *\n * These are more permissive. Allows brackets,\n * and slashes and '<' in unquoted values.\n */\nfunction wrapParameterValue(value, preference) {\n\tvar whitelist = [\"\", \"'\", '\"', '[[', '\"\"\"'];\n\tvar choices = {\n\t\t\"\": function(v) {return !/([\\s>\"'=])/.test(v); },\n\t\t\"'\": function(v) {return v.indexOf(\"'\") < 0; },\n\t\t'\"': function(v) {return v.indexOf('\"') < 0; },\n\t\t\"[[\": canBePrettyOperand,\n\t\t'\"\"\"': function(v) {return v.indexOf('\"\"\"') < 0 && v[v.length-1] != '\"';}\n\t};\n\tif (choices[preference] && choices[preference](value)) {\n\t\treturn wrap(value, preference);\n\t}\n\tfor (var i = 0; i < whitelist.length; i++) {\n\t\tvar quote = whitelist[i];\n\t\tif (choices[quote](value)) {\n\t\t\treturn wrap(value, quote);\n\t\t}\n\t}\n\t// No quotes will work on this\n\treturn undefined;\n};\n\nfunction canBePrettyOperand(value) {\n\treturn value.indexOf(']') < 0;\n};\n\n\nfunction wrap(value, wrapper) {\n\tvar wrappers = {\n\t\t\"\": function(v) {return v; },\n\t\t\"'\": function(v) {return \"'\"+v+\"'\"; },\n\t\t'\"': function(v) {return '\"'+v+'\"'; },\n\t\t'\"\"\"': function(v) {return '\"\"\"'+v+'\"\"\"'; },\n\t\t\"[[\": function(v) {return \"[[\"+v+\"]]\"; }\n\t};\n\tvar chosen = wrappers[wrapper];\n\tif (chosen) {\n\t\treturn chosen(value);\n\t} else {\n\t\treturn undefined;\n\t}\n};\n","module-type":"library","title":"$:/plugins/flibbles/relink/js/utils/macrocall.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/utils/placeholder.js":{"text":"/*\\\n\nA method which doles out placeholders when requested, and constructs\nthe necessary supporting pragma when requested.\n\n\\*/\n\nvar utils = require('../utils');\n\nfunction Placeholder() {\n\tthis.placeholders = Object.create(null);\n\tthis.reverseMap = {};\n\tthis.used = Object.create(null);\n};\n\nmodule.exports = Placeholder;\n\nPlaceholder.prototype.getPlaceholderFor = function(value, category) {\n\tthis.reverseMap[category] = this.reverseMap[category] || Object.create(null);\n\tvar placeholder = this.reverseMap[category][value];\n\tif (placeholder) {\n\t\treturn placeholder;\n\t}\n\tvar config = (this.parser && this.parser.context) || utils.getWikiContext(this.parser.wiki);\n\tvar number = 0;\n\tvar prefix = \"relink-\"\n\tif (category && category !== \"title\") {\n\t\t// I don't like \"relink-title-1\". \"relink-1\" should be for\n\t\t// titles. lists, and filters can have descriptors though.\n\t\tprefix += category + \"-\";\n\t}\n\tdo {\n\t\tnumber += 1;\n\t\tplaceholder = prefix + number;\n\t} while (config.getMacroDefinition(placeholder) || this.used[placeholder]);\n\tthis.placeholders[placeholder] = value;\n\tthis.reverseMap[category][value] = placeholder;\n\tthis.used[placeholder] = true;\n\treturn placeholder;\n};\n\n// For registering placeholders that already existed\nPlaceholder.prototype.registerExisting = function(key, value) {\n\tthis.reverseMap[value] = key;\n\tthis.used[key] = true;\n};\n\nPlaceholder.prototype.getPreamble = function() {\n\tvar results = [];\n\tvar keys = Object.keys(this.placeholders);\n\tif (keys.length > 0) {\n\t\tkeys.sort();\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tvar name = keys[i];\n\t\t\tvar val = this.placeholders[name];\n\t\t\tresults.push(\"\\\\define \"+name+\"() \"+val+\"\\n\");\n\t\t}\n\t}\n\treturn results.join('');\n};\n\n","module-type":"library","title":"$:/plugins/flibbles/relink/js/utils/placeholder.js","type":"application/javascript"},"$:/plugins/flibbles/relink/js/utils/rebuilder.js":{"text":"/*\\\n\nThis helper class aids in reconstructing an existing string with new parts.\n\n\\*/\n\nfunction Rebuilder(text, start) {\n\tthis.text = text;\n\tthis.index = start || 0;\n\tthis.pieces = [];\n};\n\nmodule.exports = Rebuilder;\n\n/**Pieces must be added consecutively.\n * Start and end are the indices in the old string specifying where to graft\n * in the new piece.\n */\nRebuilder.prototype.add = function(value, start, end) {\n\tthis.pieces.push(this.text.substring(this.index, start), value);\n\tthis.index = end;\n};\n\nRebuilder.prototype.changed = function() {\n\treturn this.pieces.length > 0;\n};\n\nRebuilder.prototype.results = function(end) {\n\tif (this.changed()) {\n\t\tthis.pieces.push(this.text.substring(this.index, end));\n\t\treturn this.pieces.join('');\n\t}\n\treturn undefined;\n};\n","module-type":"library","title":"$:/plugins/flibbles/relink/js/utils/rebuilder.js","type":"application/javascript"},"$:/plugins/flibbles/relink/Filters/Missing":{"title":"$:/plugins/flibbles/relink/Filters/Missing","description":"{{$:/plugins/flibbles/relink/language/Filters/Missing}}","filter":"[all[]!is[system]relink:references[]!is[tiddler]!is[shadow]!prefix[$:/tags/]sort[title]] -[[]]","tags":"$:/tags/Filter"},"$:/plugins/flibbles/relink/Filters/Orphans":{"title":"$:/plugins/flibbles/relink/Filters/Orphans","description":"{{$:/plugins/flibbles/relink/language/Filters/Orphans}}","filter":"[relink:orphans[]!is[system]sort[title]]","tags":"$:/tags/Filter"},"$:/config/flibbles/relink/attributes/$action-deletefield/$tiddler":{"title":"$:/config/flibbles/relink/attributes/$action-deletefield/$tiddler","text":"filter"},"$:/config/flibbles/relink/attributes/$action-deletetiddler/$filter":{"title":"$:/config/flibbles/relink/attributes/$action-deletetiddler/$filter","text":"filter"},"$:/config/flibbles/relink/attributes/$action-deletetiddler/$tiddler":{"title":"$:/config/flibbles/relink/attributes/$action-deletetiddler/$tiddler","text":"title"},"$:/config/flibbles/relink/attributes/$action-listops/$filter":{"title":"$:/config/flibbles/relink/attributes/$action-listops/$filter","text":"filter"},"$:/config/flibbles/relink/attributes/$action-listops/$tiddler":{"title":"$:/config/flibbles/relink/attributes/$action-listops/$tiddler","text":"title"},"$:/config/flibbles/relink/attributes/$action-log/$$filter":{"title":"$:/config/flibbles/relink/attributes/$action-log/$$filter","text":"filter"},"$:/config/flibbles/relink/attributes/$action-navigate/$to":{"title":"$:/config/flibbles/relink/attributes/$action-navigate/$to","text":"title"},"$:/config/flibbles/relink/attributes/$action-popup/$state":{"title":"$:/config/flibbles/relink/attributes/$action-popup/$state","text":"title"},"$:/config/flibbles/relink/attributes/$action-sendmessage/$names":{"title":"$:/config/flibbles/relink/attributes/$action-sendmessage/$names","text":"filter"},"$:/config/flibbles/relink/attributes/$action-sendmessage/$values":{"title":"$:/config/flibbles/relink/attributes/$action-sendmessage/$values","text":"filter"},"$:/config/flibbles/relink/attributes/$action-setfield/$tiddler":{"title":"$:/config/flibbles/relink/attributes/$action-setfield/$tiddler","text":"title"},"$:/config/flibbles/relink/attributes/$action-setmultiplefields/$tiddler":{"title":"$:/config/flibbles/relink/attributes/$action-setmultiplefields/$tiddler","text":"title"},"$:/config/flibbles/relink/attributes/$action-setmultiplefields/$fields":{"title":"$:/config/flibbles/relink/attributes/$action-setmultiplefields/$fields","text":"filter"},"$:/config/flibbles/relink/attributes/$action-setmultiplefields/$indexes":{"title":"$:/config/flibbles/relink/attributes/$action-setmultiplefields/$indexes","text":"filter"},"$:/config/flibbles/relink/attributes/$action-setmultiplefields/$values":{"title":"$:/config/flibbles/relink/attributes/$action-setmultiplefields/$values","text":"filter"},"$:/config/flibbles/relink/attributes/$button/actions":{"title":"$:/config/flibbles/relink/attributes/$button/actions","text":"wikitext"},"$:/config/flibbles/relink/attributes/$button/set":{"title":"$:/config/flibbles/relink/attributes/$button/set","text":"reference"},"$:/config/flibbles/relink/attributes/$button/setTo":{"title":"$:/config/flibbles/relink/attributes/$button/setTo","text":"title"},"$:/config/flibbles/relink/attributes/$button/to":{"title":"$:/config/flibbles/relink/attributes/$button/to","text":"title"},"$:/config/flibbles/relink/attributes/$checkbox/actions":{"title":"$:/config/flibbles/relink/attributes/$checkbox/actions","text":"wikitext"},"$:/config/flibbles/relink/attributes/$checkbox/checkactions":{"title":"$:/config/flibbles/relink/attributes/$checkbox/checkactions","text":"wikitext"},"$:/config/flibbles/relink/attributes/$checkbox/tiddler":{"title":"$:/config/flibbles/relink/attributes/$checkbox/tiddler","text":"title"},"$:/config/flibbles/relink/attributes/$checkbox/tag":{"title":"$:/config/flibbles/relink/attributes/$checkbox/tag","text":"title"},"$:/config/flibbles/relink/attributes/$checkbox/uncheckactions":{"title":"$:/config/flibbles/relink/attributes/$checkbox/uncheckactions","text":"wikitext"},"$:/config/flibbles/relink/attributes/$count/filter":{"title":"$:/config/flibbles/relink/attributes/$count/filter","text":"filter"},"$:/config/flibbles/relink/attributes/$draggable/tiddler":{"title":"$:/config/flibbles/relink/attributes/$draggable/tiddler","text":"title"},"$:/config/flibbles/relink/attributes/$draggable/filter":{"title":"$:/config/flibbles/relink/attributes/$draggable/filter","text":"filter"},"$:/config/flibbles/relink/attributes/$droppable/actions":{"title":"$:/config/flibbles/relink/attributes/$droppable/actions","text":"wikitext"},"$:/config/flibbles/relink/attributes/$dropzone/actions":{"title":"$:/config/flibbles/relink/attributes/$dropzone/actions","text":"wikitext"},"$:/config/flibbles/relink/attributes/$edit-bitmap/tiddler":{"title":"$:/config/flibbles/relink/attributes/$edit-bitmap/tiddler","text":"title"},"$:/config/flibbles/relink/attributes/$edit-text/tiddler":{"title":"$:/config/flibbles/relink/attributes/$edit-text/tiddler","text":"title"},"$:/config/flibbles/relink/attributes/$edit/inputActions":{"title":"$:/config/flibbles/relink/attributes/$edit/inputActions","text":"wikitext"},"$:/config/flibbles/relink/attributes/$edit/refreshTitle":{"title":"$:/config/flibbles/relink/attributes/$edit/refreshTitle","text":"title"},"$:/config/flibbles/relink/attributes/$edit/tiddler":{"title":"$:/config/flibbles/relink/attributes/$edit/tiddler","text":"title"},"$:/config/flibbles/relink/attributes/$encrypt/filter":{"title":"$:/config/flibbles/relink/attributes/$encrypt/filter","text":"filter"},"$:/config/flibbles/relink/attributes/$fieldmangler/tiddler":{"title":"$:/config/flibbles/relink/attributes/$fieldmangler/tiddler","text":"title"},"$:/config/flibbles/relink/attributes/$fields/tiddler":{"title":"$:/config/flibbles/relink/attributes/$fields/tiddler","text":"title"},"$:/config/flibbles/relink/attributes/$genesis/$names":{"title":"$:/config/flibbles/relink/attributes/$genesis/$names","text":"filter"},"$:/config/flibbles/relink/attributes/$genesis/$values":{"title":"$:/config/flibbles/relink/attributes/$genesis/$values","text":"filter"},"$:/config/flibbles/relink/attributes/$image/source":{"title":"$:/config/flibbles/relink/attributes/$image/source","text":"title"},"$:/config/flibbles/relink/attributes/$importvariables/filter":{"title":"$:/config/flibbles/relink/attributes/$importvariables/filter","text":"filter"},"$:/config/flibbles/relink/attributes/$jsontiddler/tiddler":{"title":"$:/config/flibbles/relink/attributes/$jsontiddler/tiddler","text":"title"},"$:/config/flibbles/relink/attributes/$keyboard/actions":{"title":"$:/config/flibbles/relink/attributes/$keyboard/actions","text":"wikitext"},"$:/config/flibbles/relink/attributes/$linkcatcher/to":{"title":"$:/config/flibbles/relink/attributes/$linkcatcher/to","text":"title"},"$:/config/flibbles/relink/attributes/$linkcatcher/set":{"title":"$:/config/flibbles/relink/attributes/$linkcatcher/set","text":"title"},"$:/config/flibbles/relink/attributes/$link/to":{"title":"$:/config/flibbles/relink/attributes/$link/to","text":"title"},"$:/config/flibbles/relink/attributes/$link/tooltip":{"title":"$:/config/flibbles/relink/attributes/$link/tooltip","text":"wikitext"},"$:/config/flibbles/relink/attributes/$linkcatcher/actions":{"title":"$:/config/flibbles/relink/attributes/$linkcatcher/actions","text":"wikitext"},"$:/config/flibbles/relink/attributes/$list/filter":{"title":"$:/config/flibbles/relink/attributes/$list/filter","text":"filter"},"$:/config/flibbles/relink/attributes/$list/template":{"title":"$:/config/flibbles/relink/attributes/$list/template","text":"title"},"$:/config/flibbles/relink/attributes/$list/editTemplate":{"title":"$:/config/flibbles/relink/attributes/$list/editTemplate","text":"title"},"$:/config/flibbles/relink/attributes/$list/emptyMessage":{"title":"$:/config/flibbles/relink/attributes/$list/emptyMessage","text":"wikitext"},"$:/config/flibbles/relink/attributes/$list/history":{"title":"$:/config/flibbles/relink/attributes/$list/history","text":"title"},"$:/config/flibbles/relink/attributes/$log/$$filter":{"title":"$:/config/flibbles/relink/attributes/$log/$$filter","text":"filter"},"$:/config/flibbles/relink/attributes/$messagecatcher/actions":{"title":"$:/config/flibbles/relink/attributes/$messagecatcher/actions","text":"wikitext"},"$:/config/flibbles/relink/attributes/$navigator/story":{"title":"$:/config/flibbles/relink/attributes/$navigator/story","text":"title"},"$:/config/flibbles/relink/attributes/$navigator/history":{"title":"$:/config/flibbles/relink/attributes/$navigator/history","text":"title"},"$:/config/flibbles/relink/attributes/$radio/actions":{"title":"$:/config/flibbles/relink/attributes/$radio/actions","text":"wikitext"},"$:/config/flibbles/relink/attributes/$radio/tiddler":{"title":"$:/config/flibbles/relink/attributes/$radio/tiddler","text":"title"},"$:/config/flibbles/relink/attributes/$range/actions":{"title":"$:/config/flibbles/relink/attributes/$range/actions","text":"wikitext"},"$:/config/flibbles/relink/attributes/$range/actionsStart":{"title":"$:/config/flibbles/relink/attributes/$range/actionsStart","text":"wikitext"},"$:/config/flibbles/relink/attributes/$range/actionsStop":{"title":"$:/config/flibbles/relink/attributes/$range/actionsStop","text":"wikitext"},"$:/config/flibbles/relink/attributes/$range/tiddler":{"title":"$:/config/flibbles/relink/attributes/$range/tiddler","text":"title"},"$:/config/flibbles/relink/attributes/$reveal/state":{"title":"$:/config/flibbles/relink/attributes/$reveal/state","text":"reference"},"$:/config/flibbles/relink/attributes/$reveal/stateTitle":{"title":"$:/config/flibbles/relink/attributes/$reveal/stateTitle","text":"title"},"$:/config/flibbles/relink/attributes/$select/actions":{"title":"$:/config/flibbles/relink/attributes/$select/actions","text":"wikitext"},"$:/config/flibbles/relink/attributes/$select/tiddler":{"title":"$:/config/flibbles/relink/attributes/$select/tiddler","text":"title"},"$:/config/flibbles/relink/attributes/$setvariable/tiddler":{"title":"$:/config/flibbles/relink/attributes/$setvariable/tiddler","text":"title"},"$:/config/flibbles/relink/attributes/$setvariable/subtiddler":{"title":"$:/config/flibbles/relink/attributes/$setvariable/subtiddler","text":"title"},"$:/config/flibbles/relink/attributes/$setvariable/filter":{"title":"$:/config/flibbles/relink/attributes/$setvariable/filter","text":"filter"},"$:/config/flibbles/relink/attributes/$set/tiddler":{"title":"$:/config/flibbles/relink/attributes/$set/tiddler","text":"title"},"$:/config/flibbles/relink/attributes/$set/subtiddler":{"title":"$:/config/flibbles/relink/attributes/$set/subtiddler","text":"title"},"$:/config/flibbles/relink/attributes/$set/filter":{"title":"$:/config/flibbles/relink/attributes/$set/filter","text":"filter"},"$:/config/flibbles/relink/attributes/$setmultiplevariables/$names":{"title":"$:/config/flibbles/relink/attributes/$setmultiplevariables/$names","text":"filter"},"$:/config/flibbles/relink/attributes/$setmultiplevariables/$values":{"title":"$:/config/flibbles/relink/attributes/$setmultiplevariables/$values","text":"filter"},"$:/config/flibbles/relink/attributes/$tiddler/tiddler":{"title":"$:/config/flibbles/relink/attributes/$tiddler/tiddler","text":"title"},"$:/config/flibbles/relink/attributes/$transclude/tiddler":{"title":"$:/config/flibbles/relink/attributes/$transclude/tiddler","text":"title"},"$:/config/flibbles/relink/attributes/$transclude/subtiddler":{"title":"$:/config/flibbles/relink/attributes/$transclude/subtiddler","text":"title"},"$:/config/flibbles/relink/attributes/$view/tiddler":{"title":"$:/config/flibbles/relink/attributes/$view/tiddler","text":"title"},"$:/config/flibbles/relink/attributes/$view/subtiddler":{"title":"$:/config/flibbles/relink/attributes/$view/subtiddler","text":"title"},"$:/config/flibbles/relink/attributes/$wikify/text":{"title":"$:/config/flibbles/relink/attributes/$wikify/text","text":"wikitext"},"$:/plugins/flibbles/relink/configuration":{"title":"$:/plugins/flibbles/relink/configuration","text":"\\whitespace trim\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/flibbles/relink/Configuration]!has[draft.of]]\" \"$:/plugins/flibbles/relink/ui/configuration/Fields\">>\n</div>\n"},"$:/config/flibbles/relink/fieldattributes/$action-createtiddler":{"title":"$:/config/flibbles/relink/fieldattributes/$action-createtiddler","text":"([^$].*)"},"$:/config/flibbles/relink/fieldattributes/$action-deletefield":{"title":"$:/config/flibbles/relink/fieldattributes/$action-deletefield","text":"([^$].*)"},"$:/config/flibbles/relink/fieldattributes/$action-setfield":{"title":"$:/config/flibbles/relink/fieldattributes/$action-setfield","text":"([^$].*)"},"$:/config/flibbles/relink/fieldattributes/$jsontiddler":{"title":"$:/config/flibbles/relink/fieldattributes/$jsontiddler","text":"\\$(.*)"},"$:/config/flibbles/relink/fields/caption":{"title":"$:/config/flibbles/relink/fields/caption","text":"wikitext"},"$:/config/flibbles/relink/fields/filter":{"title":"$:/config/flibbles/relink/fields/filter","text":"filter"},"$:/config/flibbles/relink/fields/list":{"title":"$:/config/flibbles/relink/fields/list","text":"list"},"$:/config/flibbles/relink/fields/list-after":{"title":"$:/config/flibbles/relink/fields/list-after","text":"title"},"$:/config/flibbles/relink/fields/list-before":{"title":"$:/config/flibbles/relink/fields/list-before","text":"title"},"$:/config/flibbles/relink/fields/tags":{"title":"$:/config/flibbles/relink/fields/tags","text":"list"},"$:/plugins/flibbles/relink/language/Buttons/Delete/Hint":{"title":"$:/plugins/flibbles/relink/language/Buttons/Delete/Hint","text":"delete"},"$:/plugins/flibbles/relink/language/Buttons/LinkToInline/Hint":{"title":"$:/plugins/flibbles/relink/language/Buttons/LinkToInline/Hint","text":"go to defining tiddler"},"$:/plugins/flibbles/relink/language/Buttons/NewAttribute/Hint":{"title":"$:/plugins/flibbles/relink/language/Buttons/NewAttribute/Hint","text":"Specify a new widget/element attribute to be updated whenever a tiddler is renamed"},"$:/plugins/flibbles/relink/language/Buttons/NewAttribute/Caption":{"title":"$:/plugins/flibbles/relink/language/Buttons/NewAttribute/Caption","text":"add"},"$:/plugins/flibbles/relink/language/Buttons/NewField/Hint":{"title":"$:/plugins/flibbles/relink/language/Buttons/NewField/Hint","text":"Specify a new field to be updated whenever a tiddler is renamed"},"$:/plugins/flibbles/relink/language/Buttons/NewField/Caption":{"title":"$:/plugins/flibbles/relink/language/Buttons/NewField/Caption","text":"add"},"$:/plugins/flibbles/relink/language/Buttons/NewOperator/Hint":{"title":"$:/plugins/flibbles/relink/language/Buttons/NewOperator/Hint","text":"Specify a new filter operator to be considered whenever a tiddler is renamed"},"$:/plugins/flibbles/relink/language/Buttons/NewOperator/Caption":{"title":"$:/plugins/flibbles/relink/language/Buttons/NewOperator/Caption","text":"add"},"$:/plugins/flibbles/relink/language/Buttons/NewParameter/Hint":{"title":"$:/plugins/flibbles/relink/language/Buttons/NewParameter/Hint","text":"Specify a new macro parameter to be updated whenever a tiddler is renamed"},"$:/plugins/flibbles/relink/language/Buttons/NewParameter/Caption":{"title":"$:/plugins/flibbles/relink/language/Buttons/NewParameter/Caption","text":"add"},"$:/plugins/flibbles/relink/language/Error/InvalidAttributeName":{"title":"$:/plugins/flibbles/relink/language/Error/InvalidAttributeName","text":"Illegal characters in attribute name \"<$text text=<<attributeName>>/>\". Attributes cannot contain slashes ('/'), closing angle or square brackets ('>' or ']'), quotes or apostrophes ('\"' or \"'\"), equals ('='), or whitespace"},"$:/plugins/flibbles/relink/language/Error/InvalidElementName":{"title":"$:/plugins/flibbles/relink/language/Error/InvalidElementName","text":"Illegal characters in element/widget name \"<$text text=<<elementName>>/>\". Element tags can only contain letters and the characters hyphen (`-`) and dollar sign (`$`)"},"$:/plugins/flibbles/relink/language/Error/InvalidMacroName":{"title":"$:/plugins/flibbles/relink/language/Error/InvalidMacroName","text":"Illegal characters in macro name \"<$text text=<<macroName>>/>\". Macros cannot contain whitespace"},"$:/plugins/flibbles/relink/language/Error/InvalidParameterName":{"title":"$:/plugins/flibbles/relink/language/Error/InvalidParameterName","text":"Illegal characters in parameter name \"<$text text=<<parameterName>>/>\". Parameters can only contain letters, digits, and the characters underscore (`_`) and hyphen (`-`)"},"$:/plugins/flibbles/relink/language/Error/RelinkFilterOperator":{"title":"$:/plugins/flibbles/relink/language/Error/RelinkFilterOperator","text":"Filter Error: Unknown suffix for the 'relink' filter operator"},"$:/plugins/flibbles/relink/language/Error/ReportFailedRelinks":{"title":"$:/plugins/flibbles/relink/language/Error/ReportFailedRelinks","text":"Relink could not update '<<from>>' to '<<to>>' inside the following tiddlers:"},"$:/plugins/flibbles/relink/language/Error/UnrecognizedType":{"title":"$:/plugins/flibbles/relink/language/Error/UnrecognizedType","text":"Relink parse error: Unrecognized field type '<<type>>'"},"$:/plugins/flibbles/relink/language/Filters/Missing":{"title":"$:/plugins/flibbles/relink/language/Filters/Missing","text":"//Relink// Missing tiddlers"},"$:/plugins/flibbles/relink/language/Filters/Orphans":{"title":"$:/plugins/flibbles/relink/language/Filters/Orphans","text":"//Relink// Orphans tiddlers"},"$:/plugins/flibbles/relink/language/Help/Attributes":{"title":"$:/plugins/flibbles/relink/language/Help/Attributes","text":"See the <a href={{{[{$:/plugins/flibbles/relink!!demo}addsuffix[#Attributes]]}}} class=\"tc-tiddlylink-external\">Attributes documentation page</a> for details."},"$:/plugins/flibbles/relink/language/Help/Fields":{"title":"$:/plugins/flibbles/relink/language/Help/Fields","text":"See the <a href={{{[{$:/plugins/flibbles/relink!!demo}addsuffix[#Fields]]}}} class=\"tc-tiddlylink-external\">Fields documentation page</a> for details."},"$:/plugins/flibbles/relink/language/Help/Macros":{"title":"$:/plugins/flibbles/relink/language/Help/Macros","text":"See the <a href={{{[{$:/plugins/flibbles/relink!!demo}addsuffix[#Macros]]}}} class=\"tc-tiddlylink-external\">Macros documentation page</a> for details."},"$:/plugins/flibbles/relink/language/Help/Operators":{"title":"$:/plugins/flibbles/relink/language/Help/Operators","text":"See the <a href={{{[{$:/plugins/flibbles/relink!!demo}addsuffix[#Operators]]}}} class=\"tc-tiddlylink-external\">Operators documentation page</a> for details."},"$:/plugins/flibbles/relink/language/SideBar/Missing/Caption":{"title":"$:/plugins/flibbles/relink/language/SideBar/Missing/Caption","text":"//Relink//<br>Missing"},"$:/plugins/flibbles/relink/language/SideBar/Orphans/Caption":{"title":"$:/plugins/flibbles/relink/language/SideBar/Orphans/Caption","text":"//Relink//<br>Orphans"},"$:/plugins/flibbles/relink/language/TiddlerInfo/References/Empty":{"title":"$:/plugins/flibbles/relink/language/TiddlerInfo/References/Empty","text":"No tiddlers contain any fields, links, macros, transclusions, or widgets referencing this one"},"$:/plugins/flibbles/relink/language/TiddlerInfo/References/Description":{"title":"$:/plugins/flibbles/relink/language/TiddlerInfo/References/Description","text":"The following tiddlers contain fields, links, macros, transclusions, or widgets referencing this one:"},"$:/plugins/flibbles/relink/language/TiddlerInfo/References/Caption":{"title":"$:/plugins/flibbles/relink/language/TiddlerInfo/References/Caption","text":"//Relink// References"},"$:/plugins/flibbles/relink/language/ui/Attributes/Caption":{"title":"$:/plugins/flibbles/relink/language/ui/Attributes/Caption","text":"Attributes"},"$:/plugins/flibbles/relink/language/ui/Fields/Caption":{"title":"$:/plugins/flibbles/relink/language/ui/Fields/Caption","text":"Fields"},"$:/plugins/flibbles/relink/language/ui/Macros/Caption":{"title":"$:/plugins/flibbles/relink/language/ui/Macros/Caption","text":"Macros"},"$:/plugins/flibbles/relink/language/ui/Operators/Caption":{"title":"$:/plugins/flibbles/relink/language/ui/Operators/Caption","text":"Operators"},"$:/plugins/flibbles/relink/language/Warning/OldRelinkTextOperator":{"title":"$:/plugins/flibbles/relink/language/Warning/OldRelinkTextOperator","text":"Relink cannot parse your <code>$$$<<keyword>></code> wikitext until you migrate your \"<<type>>\" relink module from the deprecated ''relinktextoperator'' module-type to ''relinktext''.<br><br>See <a href={{{ [[Versions/2.1.0]addprefix[#]addprefix{$:/plugins/flibbles/relink!!demo}encodeuri[]] }}} class=\"tc-tiddlylink-external\">the online documentation</a> for details."},"$:/plugins/flibbles/relink/license":{"title":"$:/plugins/flibbles/relink/license","type":"text/vnd.tiddlywiki","text":"<a href={{$:/plugins/flibbles/relink!!demo}} class=\"tc-tiddlylink-external\">Relink Plugin</a> Copyright (c) 2019-<<now YYYY>> Cameron Fischer\n\n[[BSD 3-Clause License|https://raw.githubusercontent.com/flibbles/tw5-relink/master/LICENSE]]\n"},"$:/config/flibbles/relink/macros/colour-picker/actions":{"title":"$:/config/flibbles/relink/macros/colour-picker/actions","text":"wikitext"},"$:/config/flibbles/relink/macros/csvtiddlers/filter":{"title":"$:/config/flibbles/relink/macros/csvtiddlers/filter","text":"filter"},"$:/config/flibbles/relink/macros/datauri/title":{"title":"$:/config/flibbles/relink/macros/datauri/title","text":"title"},"$:/config/flibbles/relink/macros/image-picker/actions":{"title":"$:/config/flibbles/relink/macros/image-picker/actions","text":"wikitext"},"$:/config/flibbles/relink/macros/jsontiddler/title":{"title":"$:/config/flibbles/relink/macros/jsontiddler/title","text":"title"},"$:/config/flibbles/relink/macros/jsontiddlers/filter":{"title":"$:/config/flibbles/relink/macros/jsontiddlers/filter","text":"filter"},"$:/config/flibbles/relink/macros/keyboard-driven-input/configTiddlerFilter":{"title":"$:/config/flibbles/relink/macros/keyboard-driven-input/configTiddlerFilter","text":"filter"},"$:/config/flibbles/relink/macros/keyboard-driven-input/inputAcceptActions":{"title":"$:/config/flibbles/relink/macros/keyboard-driven-input/inputAcceptActions","text":"wikitext"},"$:/config/flibbles/relink/macros/keyboard-driven-input/inputAcceptVariantActions":{"title":"$:/config/flibbles/relink/macros/keyboard-driven-input/inputAcceptVariantActions","text":"wikitext"},"$:/config/flibbles/relink/macros/keyboard-driven-input/inputCancelActions":{"title":"$:/config/flibbles/relink/macros/keyboard-driven-input/inputCancelActions","text":"wikitext"},"$:/config/flibbles/relink/macros/keyboard-driven-input/selectionStateTitle":{"title":"$:/config/flibbles/relink/macros/keyboard-driven-input/selectionStateTitle","text":"title"},"$:/config/flibbles/relink/macros/keyboard-driven-input/storeTitle":{"title":"$:/config/flibbles/relink/macros/keyboard-driven-input/storeTitle","text":"title"},"$:/config/flibbles/relink/macros/keyboard-driven-input/tiddler":{"title":"$:/config/flibbles/relink/macros/keyboard-driven-input/tiddler","text":"title"},"$:/config/flibbles/relink/macros/list-links/filter":{"title":"$:/config/flibbles/relink/macros/list-links/filter","text":"filter"},"$:/config/flibbles/relink/macros/list-links/emptyMessage":{"title":"$:/config/flibbles/relink/macros/list-links/emptyMessage","text":"wikitext"},"$:/config/flibbles/relink/macros/list-links-draggable/tiddler":{"title":"$:/config/flibbles/relink/macros/list-links-draggable/tiddler","text":"title"},"$:/config/flibbles/relink/macros/list-links-draggable/itemTemplate":{"title":"$:/config/flibbles/relink/macros/list-links-draggable/itemTemplate","text":"title"},"$:/config/flibbles/relink/macros/list-tagged-draggable/tag":{"title":"$:/config/flibbles/relink/macros/list-tagged-draggable/tag","text":"title"},"$:/config/flibbles/relink/macros/list-tagged-draggable/emptyMessage":{"title":"$:/config/flibbles/relink/macros/list-tagged-draggable/emptyMessage","text":"wikitext"},"$:/config/flibbles/relink/macros/list-tagged-draggable/itemTemplate":{"title":"$:/config/flibbles/relink/macros/list-tagged-draggable/itemTemplate","text":"title"},"$:/config/flibbles/relink/macros/list-thumbnails/filter":{"title":"$:/config/flibbles/relink/macros/list-thumbnails/filter","text":"filter"},"$:/config/flibbles/relink/macros/tabs/actions":{"title":"$:/config/flibbles/relink/macros/tabs/actions","text":"wikitext"},"$:/config/flibbles/relink/macros/tabs/buttonTemplate":{"title":"$:/config/flibbles/relink/macros/tabs/buttonTemplate","text":"title"},"$:/config/flibbles/relink/macros/tabs/default":{"title":"$:/config/flibbles/relink/macros/tabs/default","text":"title"},"$:/config/flibbles/relink/macros/tabs/tabsList":{"title":"$:/config/flibbles/relink/macros/tabs/tabsList","text":"filter"},"$:/config/flibbles/relink/macros/tabs/template":{"title":"$:/config/flibbles/relink/macros/tabs/template","text":"title"},"$:/config/flibbles/relink/macros/tag/tag":{"title":"$:/config/flibbles/relink/macros/tag/tag","text":"title"},"$:/config/flibbles/relink/macros/tag-picker/actions":{"title":"$:/config/flibbles/relink/macros/tag-picker/actions","text":"wikitext"},"$:/config/flibbles/relink/macros/tag-pill/actions":{"title":"$:/config/flibbles/relink/macros/tag-pill/actions","text":"wikitext"},"$:/config/flibbles/relink/macros/tag-pill/tag":{"title":"$:/config/flibbles/relink/macros/tag-pill/tag","text":"title"},"$:/config/flibbles/relink/macros/toc/tag":{"title":"$:/config/flibbles/relink/macros/toc/tag","text":"title"},"$:/config/flibbles/relink/macros/toc/itemClassFilter":{"title":"$:/config/flibbles/relink/macros/toc/itemClassFilter","text":"filter"},"$:/config/flibbles/relink/macros/toc-expandable/tag":{"title":"$:/config/flibbles/relink/macros/toc-expandable/tag","text":"title"},"$:/config/flibbles/relink/macros/toc-expandable/itemClassFilter":{"title":"$:/config/flibbles/relink/macros/toc-expandable/itemClassFilter","text":"filter"},"$:/config/flibbles/relink/macros/toc-expandable/exclude":{"title":"$:/config/flibbles/relink/macros/toc-expandable/exclude","text":"list"},"$:/config/flibbles/relink/macros/toc-selective-expandable/tag":{"title":"$:/config/flibbles/relink/macros/toc-selective-expandable/tag","text":"title"},"$:/config/flibbles/relink/macros/toc-selective-expandable/itemClassFilter":{"title":"$:/config/flibbles/relink/macros/toc-selective-expandable/itemClassFilter","text":"filter"},"$:/config/flibbles/relink/macros/toc-selective-expandable/exclude":{"title":"$:/config/flibbles/relink/macros/toc-selective-expandable/exclude","text":"list"},"$:/config/flibbles/relink/macros/toc-tabbed-external-nav/tag":{"title":"$:/config/flibbles/relink/macros/toc-tabbed-external-nav/tag","text":"title"},"$:/config/flibbles/relink/macros/toc-tabbed-external-nav/selectedTiddler":{"title":"$:/config/flibbles/relink/macros/toc-tabbed-external-nav/selectedTiddler","text":"title"},"$:/config/flibbles/relink/macros/toc-tabbed-external-nav/unselectedText":{"title":"$:/config/flibbles/relink/macros/toc-tabbed-external-nav/unselectedText","text":"wikitext"},"$:/config/flibbles/relink/macros/toc-tabbed-external-nav/missingText":{"title":"$:/config/flibbles/relink/macros/toc-tabbed-external-nav/missingText","text":"wikitext"},"$:/config/flibbles/relink/macros/toc-tabbed-external-nav/template":{"title":"$:/config/flibbles/relink/macros/toc-tabbed-external-nav/template","text":"title"},"$:/config/flibbles/relink/macros/toc-tabbed-internal-nav/tag":{"title":"$:/config/flibbles/relink/macros/toc-tabbed-internal-nav/tag","text":"title"},"$:/config/flibbles/relink/macros/toc-tabbed-internal-nav/selectedTiddler":{"title":"$:/config/flibbles/relink/macros/toc-tabbed-internal-nav/selectedTiddler","text":"title"},"$:/config/flibbles/relink/macros/toc-tabbed-internal-nav/unselectedText":{"title":"$:/config/flibbles/relink/macros/toc-tabbed-internal-nav/unselectedText","text":"wikitext"},"$:/config/flibbles/relink/macros/toc-tabbed-internal-nav/missingText":{"title":"$:/config/flibbles/relink/macros/toc-tabbed-internal-nav/missingText","text":"wikitext"},"$:/config/flibbles/relink/macros/toc-tabbed-internal-nav/template":{"title":"$:/config/flibbles/relink/macros/toc-tabbed-internal-nav/template","text":"title"},"$:/config/flibbles/relink/macros/translink/title":{"title":"$:/config/flibbles/relink/macros/translink/title","text":"title"},"$:/config/flibbles/relink/operators/filter":{"title":"$:/config/flibbles/relink/operators/filter","text":"filter"},"$:/config/flibbles/relink/operators/list":{"title":"$:/config/flibbles/relink/operators/list","text":"reference"},"$:/config/flibbles/relink/operators/subfilter":{"title":"$:/config/flibbles/relink/operators/subfilter","text":"filter"},"$:/config/flibbles/relink/operators/tag":{"title":"$:/config/flibbles/relink/operators/tag","text":"title"},"$:/config/flibbles/relink/operators/title":{"title":"$:/config/flibbles/relink/operators/title","text":"title"},"$:/config/flibbles/relink/operators/field:title":{"title":"$:/config/flibbles/relink/operators/field:title","text":"title"},"$:/config/flibbles/relink/operators/relink:report":{"title":"$:/config/flibbles/relink/operators/relink:report","text":"title"},"$:/language/EditTemplate/Title/Impossibles/Prompt":{"title":"$:/language/EditTemplate/Title/Impossibles/Prompt","text":"''Warning:'' Not all references in the following tiddlers can be updated by //Relink// due to the complexity of the new title:"},"$:/language/EditTemplate/Title/References/Prompt":{"title":"$:/language/EditTemplate/Title/References/Prompt","text":"The following tiddlers will be updated if relinking:"},"$:/language/EditTemplate/Title/Relink/Prompt":{"title":"$:/language/EditTemplate/Title/Relink/Prompt","text":"Use //Relink// to update ''<$text text=<<fromTitle>>/>'' to ''<$text text=<<toTitle>>/>'' across all other tiddlers"},"$:/core/ui/EditTemplate/title":{"title":"$:/core/ui/EditTemplate/title","tags":"$:/tags/EditTemplate","text":"\\whitespace trim\n<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus={{{ [{$:/config/AutoFocus}match[title]then[true]] ~[[false]] }}} tabindex={{$:/config/EditTabIndex}} cancelPopups=\"yes\" dir={{$:/config/DefaultTextDirection}}/>\n\n<$vars pattern=\"\"\"[\\|\\[\\]{}]\"\"\" bad-chars=\"\"\"`| [ ] { }`\"\"\">\n\n<$list filter=\"[all[current]regexp:draft.title<pattern>]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\" dir={{$:/config/DefaultTextDirection}}>\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/BadCharacterWarning}}\n\n</div>\n\n</$list>\n\n</$vars>\n\n<$reveal state=\"!!draft.title\" type=\"nomatch\" text={{!!draft.of}} tag=\"div\" dir={{$:/config/DefaultTextDirection}}>\n\n<$list filter=\"[{!!draft.title}!is[missing]]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/Exists/Prompt}}: <$link to={{!!draft.title}} />\n\n</div>\n\n</$list>\n\n<$list filter=\"[{!!draft.of}!is[missing]]\" variable=\"listItem\">\n\n<$vars fromTitle={{!!draft.of}} toTitle={{!!draft.title}}>\n\n<$checkbox tiddler=\"$:/config/RelinkOnRename\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> {{$:/language/EditTemplate/Title/Relink/Prompt}}</$checkbox>\n\n<$tiddler tiddler=<<fromTitle>> >\n\n<$list filter=\"[relink:wouldchange<toTitle>limit[1]]\" variable=\"listItem\">\n\n<$vars stateTiddler=<<qualify \"$:/state/edit/references\">> >\n\n<$set\n\tname=\"prompt\"\n\tfilter=\"[relink:wouldchange<toTitle>relink:impossible<toTitle>]\"\n\tvalue=\"EditTemplate/Title/Impossibles/Prompt\"\n\temptyValue=\"EditTemplate/Title/References/Prompt\" >\n<$reveal type=\"nomatch\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"show\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n \n<$macrocall $name=lingo title=<<prompt>> />\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"hide\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n \n<$macrocall $name=lingo title=<<prompt>> />\n</$button>\n</$reveal>\n</$set>\n\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$list variable=\"listItem\" filter=\"[relink:wouldchange<toTitle>!title[$:/StoryList]sort[title]]\" template=\"$:/plugins/flibbles/relink/ui/ListItemTemplate\">\n</$list>\n</$reveal>\n\n</$vars>\n\n</$list>\n\n</$tiddler>\n\n</$vars>\n\n</$list>\n\n</$reveal>\n"},"$:/config/flibbles/relink/PluginLibrary":{"title":"$:/config/flibbles/relink/PluginLibrary","caption":"//Relink// Library","url":"https://flibbles.github.io/tw5-relink/library/index.html","tags":"$:/tags/PluginLibrary","text":"The //Relink// library contains //Relink// as well as its supplemental plugins. It is maintained by Flibbles. See the [[github page|https://github.com/flibbles/tw5-relink]] for more information.\n"},"$:/plugins/flibbles/relink/readme":{"title":"$:/plugins/flibbles/relink/readme","type":"text/vnd.tiddlywiki","text":"When renaming a tiddler, Relink can update the fields, filters, and widgets\nof all other tiddlers. However, it works through whitelisting.\n\nIt's already configured to update tiddler titles for all core widgets, filters,\nand fields, but the whitelists can be customized for each of this in the\nconfiguration panel.\n\nSee <a href={{$:/plugins/flibbles/relink!!source}} class=\"tc-tiddlylink-external\">the tw5-relink website</a> for more details and examples.\n"},"$:/config/flibbles/relink/settings/default-type":{"title":"$:/config/flibbles/relink/settings/default-type","text":"title"},"$:/config/flibbles/relink/touch-modify":{"title":"$:/config/flibbles/relink/touch-modify","text":"yes"},"$:/config/DefaultColourMappings/relink-impossible":{"title":"$:/config/DefaultColourMappings/relink-impossible","text":"<<colour dirty-indicator>>"},"$:/language/Docs/PaletteColours/relink-impossible":{"title":"$:/language/Docs/PaletteColours/relink-impossible","text":"Relink link impossible"},"$:/plugins/flibbles/relink/ui/ListItemTemplate":{"title":"$:/plugins/flibbles/relink/ui/ListItemTemplate","text":"\\whitespace trim\n<$set\n\tname=\"classes\"\n\tfilter=\"[<listItem>relink:impossible<toTitle>]\"\n\tvalue=\"tc-menu-list-item tc-relink-impossible\"\n\temptyValue=\"tc-menu-list-item\">\n<div class=<<classes>>>\n<$link to=<<listItem>>><$text text=<<listItem>> /></$link>\n</div>\n</$set>\n"},"$:/plugins/flibbles/relink/ui/ListItemWithBlurbTemplate":{"title":"$:/plugins/flibbles/relink/ui/ListItemWithBlurbTemplate","text":"<div class=\"tc-menu-list-item\"><$link /></div>\n<$list variable=blurb filter=\"[<currentTiddler>relink:report<missingTiddler>]\"><div class=\"tc-relink-menu-missing-blurb\"><$text text=<<blurb>> /></div>\n"},"$:/plugins/flibbles/relink/ui/MissingTemplate":{"title":"$:/plugins/flibbles/relink/ui/MissingTemplate","text":"\\whitespace trim\n<$set name=\"missingTiddler\" value=<<currentTiddler>> >\n<div class=\"tc-tiddler-missing\">\n<$button popup=<<qualify \"$:/state/relink/popup/missing\">> class=\"tc-btn-invisible tc-missing-tiddler-label\">\n<$view field=\"title\" format=\"text\" />\n</$button>\n<$reveal state=<<qualify \"$:/state/relink/popup/missing\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<hr>\n<$list filter=\"[all[current]relink:backreferences[]sort[title]]\" template=\"$:/plugins/flibbles/relink/ui/ListItemWithBlurbTemplate\"/>\n</div>\n</$reveal>\n</div>\n</$set>\n"},"$:/plugins/flibbles/relink/ui/MoreSideBar/Missing":{"title":"$:/plugins/flibbles/relink/ui/MoreSideBar/Missing","caption":"{{$:/plugins/flibbles/relink/language/SideBar/Missing/Caption}}","tags":"$:/tags/MoreSideBar","text":"<$list filter={{$:/plugins/flibbles/relink/Filters/Missing!!filter}} template=\"$:/plugins/flibbles/relink/ui/MissingTemplate\" />\n"},"$:/plugins/flibbles/relink/ui/MoreSideBar/Orphans":{"title":"$:/plugins/flibbles/relink/ui/MoreSideBar/Orphans","caption":"{{$:/plugins/flibbles/relink/language/SideBar/Orphans/Caption}}","tags":"$:/tags/MoreSideBar","text":"<$list filter={{$:/plugins/flibbles/relink/Filters/Orphans!!filter}} template=\"$:/core/ui/ListItemTemplate\" />\n"},"$:/plugins/flibbles/relink/ui/TiddlerInfo/References":{"title":"$:/plugins/flibbles/relink/ui/TiddlerInfo/References","caption":"{{$:/plugins/flibbles/relink/language/TiddlerInfo/References/Caption}}","tags":"$:/tags/TiddlerInfo","text":"\\define lingo-base() $:/plugins/flibbles/relink/language/TiddlerInfo/\n\\define filter() [all[current]relink:backreferences[]!title[$:/StoryList]!prefix[$:/temp/]sort[title]]\n\\whitespace trim\n<$list filter=\"[subfilter<filter>first[]]\">\n<<lingo References/Description>>\n</$list>\n<table class=\"tc-relink-references-table\">\n<tbody>\n<$list filter=<<filter>> emptyMessage=<<lingo References/Empty>> variable=\"listItem\" template=\"$:/plugins/flibbles/relink/ui/TiddlerInfo/ReferencesTemplate\" />\n</tbody>\n</table>\n"},"$:/plugins/flibbles/relink/ui/TiddlerInfo/ReferencesTemplate":{"title":"$:/plugins/flibbles/relink/ui/TiddlerInfo/ReferencesTemplate","text":"\\whitespace trim\n<tr class=\"tc-relink-references\">\n<td class=\"tc-relink-references-title\">\n<$link to=<<listItem>>/>\n</td>\n<td class=\"tc-relink-references-report\">\n<$list filter=\"[<listItem>relink:report<currentTiddler>]\">\n\n<$text text=<<currentTiddler>> />\n</$list>\n\n</td>\n</tr>\n"},"$:/plugins/flibbles/relink/ui/components/button-delete":{"title":"$:/plugins/flibbles/relink/ui/components/button-delete","text":"\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define prefix() $:/config/flibbles/relink/\n\\whitespace trim\n\n<$list\n\tfilter=\"[all[current]prefix<prefix>]\"\n\temptyMessage=\"<$link><$button class='tc-btn-invisible' tooltip={{$:/plugins/flibbles/relink/language/Buttons/LinkToInline/Hint}}>{{$:/core/images/link}}</$button></$link>\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/plugins/flibbles/relink/language/Buttons/Delete/Hint}}><$list filter=\"[all[current]is[tiddler]]\">\n<$action-deletetiddler $tiddler=<<currentTiddler>> />\n</$list><$list filter=\"[all[current]is[shadow]]\">\n<$action-setfield $tiddler=<<tiddlerName>> text=\"\" />\n</$list>\n{{$:/core/images/delete-button}}\n</$button>\n</$list>\n"},"$:/plugins/flibbles/relink/ui/components/select-fieldtype":{"title":"$:/plugins/flibbles/relink/ui/components/select-fieldtype","text":"\\define prefix() $:/config/flibbles/relink/\n\\whitespace trim\n\n<$vars type={{{ [<signature>relink:type[]] }}} >\n<$list filter=\"[all[current]prefix<prefix>]\" >\n<$select tiddler=<<currentTiddler>> >\n<$list variable=\"option\" filter=\"[relink:types[]]\">\n<option><$text text=<<option>> /></option>\n</$list>\n</$select>\n</$list><$list filter=\"[all[current]!prefix<prefix>]\">\n<$text text=<<type>> />\n</$list>\n</$vars>\n"},"$:/plugins/flibbles/relink/ui/components/tables":{"title":"$:/plugins/flibbles/relink/ui/components/tables","text":"\\define .make-table(title, plugin, default-table-state:yes)\n\\whitespace trim\n\n<$list variable=\"render\" filter=\"[relink:signatures<__plugin__>prefix<__category__>first[]]\">\n<$set name=\"table-state\" value=<<qualify \"\"\"$:/state/flibbles/relink/tables/$title$\"\"\">>>\n<tr><th class=\"tc-relink-header-plugin\" colspan=<<column-count>> >\n<$reveal type=\"nomatch\" state=<<table-state>> text=\"yes\" default=\"\"\"$default-table-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<table-state>> setTo=\"yes\">\n{{$:/core/images/right-arrow}} $title$\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<table-state>> text=\"yes\" default=\"\"\"$default-table-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<table-state>> setTo=\"no\">\n{{$:/core/images/down-arrow}} $title$\n</$button>\n</$reveal>\n</th></tr>\n<$list\n\tvariable=\"signature\"\n\tfilter=\"[relink:signatures<__plugin__>prefix<__category__>sort[]]\">\n<$vars key={{{ [<signature>removeprefix<__category__>removeprefix[/]] }}} >\n<$tiddler tiddler={{{[<signature>relink:source[]]}}} >\n<$reveal tag=\"tr\" type=\"match\" state=<<table-state>> text=\"yes\" default=\"\"\"$default-table-state$\"\"\">\n<$macrocall $name=<<__list-row-macro__>> signature=<<signature>> />\n<td class=\"tc-relink-column-type\">{{||$:/plugins/flibbles/relink/ui/components/select-fieldtype}}</td>\n<td class=\"tc-relink-column-delete\">{{||$:/plugins/flibbles/relink/ui/components/button-delete}}</td>\n</$reveal>\n</$tiddler>\n</$vars>\n</$list>\n</$set>\n</$list>\n\\end\n\n\\define tables(category, list-row-macro, header-list)\n\\whitespace trim\n<$vars\n\tcolumn-count={{{[enlist<__header-list__>] [[DeleteColumn]] +[count[]]}}}>\n<table class=\"tc-relink-whitelist\"><tbody>\n<tr>\n<$list variable=\"header\" filter=\"[enlist<__header-list__>butlast[]]\"><th><<header>></th></$list>\n<!-- We have the last column extend into the delete/link column, which is unlabeled. -->\n<th colspan=2><$text text={{{ [enlist<__header-list__>last[]] }}} /></th>\n</tr>\n<<.make-table Custom \"\" yes>>\n\n<$list\n\tfilter=\"[plugin-type[plugin]![$:/core]![$:/plugins/flibbles/relink]]\">\n<$set name=\"subtitle\" filter=\"[all[current]has[description]]\" value=\"''{{!!name}}'': <$text text={{!!description}}/>\" emptyValue=\"''{{!!name}}''\" >\n<$macrocall $name=\".make-table\" title=<<subtitle>> plugin=<<currentTiddler>> />\n</$set>\n</$list>\n<<.make-table Core \"$:/plugins/flibbles/relink\">>\n\n</tbody></table>\n</$vars>\n\\end\n"},"$:/plugins/flibbles/relink/ui/configuration/Attributes":{"title":"$:/plugins/flibbles/relink/ui/configuration/Attributes","caption":"{{$:/plugins/flibbles/relink/language/ui/Attributes/Caption}}","tags":"$:/tags/flibbles/relink/Configuration","text":"\\import $:/plugins/flibbles/relink/ui/components/tables\n\\define prefix-attr() $:/config/flibbles/relink/attributes/\n\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define element-name-tiddler() $:/state/flibbles/relink/element-name\n\\define attribute-name-tiddler() $:/state/flibbles/relink/attribute-name\n\n\\define row()\n\\whitespace trim\n<$set name='element'\n value={{{[<key>splitbefore[/]removesuffix[/]]}}}>\n<$set name=\"attribute\"\n value={{{[<key>removeprefix<element>removeprefix[/]]}}}>\n<td><$text text=<<element>> /></td>\n<td><$text text=<<attribute>> /></td>\n</$set></$set>\n\\end\n\\define body()\n\\whitespace trim\n\n<em class=\"tc-edit\">Add a new attribute:</em>\n \n<$edit-text\n\ttiddler=<<element-name-tiddler>>\n\ttag=\"input\"\n\tdefault=\"\"\n\tplaceholder=\"widget/element\" />\n \n<$edit-text\n\ttiddler=<<attribute-name-tiddler>>\n\ttag=\"input\"\n\tdefault=\"\"\n\tplaceholder=\"attribute\" />\n \n<$reveal type=\"nomatch\" text=\"\" state=<<element-name-tiddler>> >\n<$reveal type=\"nomatch\" text=\"\" state=<<attribute-name-tiddler>> >\n<$relinkmangler>\n<$button\n\ttooltip={{$(lingo-base)$NewAttribute/Hint}}\n\taria-label={{$(lingo-base)$NewAttribute/Caption}}>\n<$action-sendmessage\n\t$message=\"relink-add-attribute\"\n\telement={{$(element-name-tiddler)$}}\n\tattribute={{$(attribute-name-tiddler)$}} />\n<$action-deletetiddler $tiddler=<<attribute-name-tiddler>> />\n<$action-deletetiddler $tiddler=<<element-name-tiddler>> />\n<$text text={{$(lingo-base)$NewAttribute/Caption}}/>\n</$button>\n</$relinkmangler>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=<<attribute-name-tiddler>> >\n<$button>\n<$text text={{$(lingo-base)$NewAttribute/Caption}}/>\n</$button>\n</$reveal>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=<<element-name-tiddler>> >\n<$button>\n<$text text={{$(lingo-base)$NewAttribute/Caption}}/>\n</$button>\n</$reveal>\n<$macrocall\n\t$name=tables\n\tcategory=\"attributes\"\n\theader-list=\"[[Widget/HTML Element]] Attribute Type\"\n\tlist-row-macro=\"row\" />\n\\end\n\n{{$:/plugins/flibbles/relink/language/Help/Attributes}}\n\n<<body>>\n"},"$:/plugins/flibbles/relink/ui/configuration/Fields":{"title":"$:/plugins/flibbles/relink/ui/configuration/Fields","caption":"{{$:/plugins/flibbles/relink/language/ui/Fields/Caption}}","tags":"$:/tags/flibbles/relink/Configuration","text":"\\import $:/plugins/flibbles/relink/ui/components/tables\n\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define field-name-tiddler() $:/state/flibbles/relink/field-name\n\n\\define row()\n<td><$text text=<<key>> /></td>\n\\end\n\n\\define body()\n\\whitespace trim\n\n<em class='tc-edit'>Add a new field:</em>\n \n<$edit-text\n\ttiddler=<<field-name-tiddler>>\n\ttag=\"input\"\n\tdefault=\"\"\n\tplaceholder=\"field name\" />\n \n<$reveal type=\"nomatch\" text=\"\" state=<<field-name-tiddler>> >\n<$relinkmangler>\n<$button\n\ttooltip={{$(lingo-base)$NewField/Hint}}\n\taria-label={{$(lingo-base)$NewField/Caption}}>\n<$action-sendmessage\n\t$message=\"relink-add-field\"\n\tfield={{$(field-name-tiddler)$}} />\n<$action-deletetiddler $tiddler=<<field-name-tiddler>> />\n<$text text={{$(lingo-base)$NewField/Caption}}/>\n</$button>\n</$relinkmangler>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=<<field-name-tiddler>> >\n<$button>\n<$text text={{$(lingo-base)$NewField/Caption}}/>\n</$button>\n</$reveal>\n<$macrocall\n\t$name=tables\n\tcategory=\"fields\"\n\theader-list=\"[[Field Name]] [[Field Type]]\"\n\tlist-row-macro=\"row\" />\n\\end\n\n{{$:/plugins/flibbles/relink/language/Help/Fields}}\n\n<<body>>\n"},"$:/plugins/flibbles/relink/ui/configuration/Macros":{"title":"$:/plugins/flibbles/relink/ui/configuration/Macros","caption":"{{$:/plugins/flibbles/relink/language/ui/Macros/Caption}}","tags":"$:/tags/flibbles/relink/Configuration","text":"\\import $:/plugins/flibbles/relink/ui/components/tables\n\\define prefix-macro() $:/config/flibbles/relink/macros/\n\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define macro-name-tiddler() $:/state/flibbles/relink/macro-name\n\\define parameter-name-tiddler() $:/state/flibbles/relink/parameter-name\n\n\\define row()\n\\whitespace trim\n<$set name=\"parameter\"\n value={{{[<key>relink:splitafter[/]]}}}>\n<$set name='macro'\n value={{{[<key>removesuffix<parameter>removesuffix[/]]}}}>\n<td><$text text=<<macro>> /></td>\n<td><$text text=<<parameter>> /></td>\n</$set></$set>\n\\end\n\n\\define body()\n\\whitespace trim\n\n<em class=\"tc-edit\">Add a new macro parameter:</em>\n \n<$edit-text\n\ttiddler=<<macro-name-tiddler>>\n\ttag=\"input\"\n\tdefault=\"\"\n\tplaceholder=\"macro\" />\n \n<$edit-text\n\ttiddler=<<parameter-name-tiddler>>\n\ttag=\"input\"\n\tdefault=\"\"\n\tplaceholder=\"parameter\" />\n \n<$reveal type=\"nomatch\" text=\"\" state=<<macro-name-tiddler>> >\n<$reveal type=\"nomatch\" text=\"\" state=<<parameter-name-tiddler>> >\n<$relinkmangler>\n<$button\n\ttooltip={{$(lingo-base)$NewParameter/Hint}}\n\taria-label={{$(lingo-base)$NewParameter/Caption}}>\n<$action-sendmessage\n\t$message=\"relink-add-parameter\"\n\tmacro={{$(macro-name-tiddler)$}}\n\tparameter={{$(parameter-name-tiddler)$}} />\n<$action-deletetiddler $tiddler=<<parameter-name-tiddler>> />\n<$action-deletetiddler $tiddler=<<macro-name-tiddler>> />\n<$text text={{$(lingo-base)$NewParameter/Caption}}/>\n</$button>\n</$relinkmangler>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=<<parameter-name-tiddler>> >\n<$button>\n<$text text={{$(lingo-base)$NewParameter/Caption}}/>\n</$button>\n</$reveal>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=<<macro-name-tiddler>> >\n<$button>\n<$text text={{$(lingo-base)$NewParameter/Caption}}/>\n</$button>\n</$reveal>\n<$macrocall\n\t$name=tables\n\tcategory=\"macros\"\n\theader-list=\"Macro Parameter Type\"\n\tlist-row-macro=\"row\" />\n\\end\n\n{{$:/plugins/flibbles/relink/language/Help/Macros}}\n\n<<body>>\n"},"$:/plugins/flibbles/relink/ui/configuration/Operators":{"title":"$:/plugins/flibbles/relink/ui/configuration/Operators","caption":"{{$:/plugins/flibbles/relink/language/ui/Operators/Caption}}","tags":"$:/tags/flibbles/relink/Configuration","text":"\\import $:/plugins/flibbles/relink/ui/components/tables\n\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define operator-name-tiddler() $:/state/flibbles/relink/operator-name\n\n\\define row()\n<td><$text text=<<key>> /></td>\n\\end\n\n\\define body()\n\\whitespace trim\n\n<em class='tc-edit'>Add a new filter operator:</em>\n \n<$edit-text\n\ttiddler=<<operator-name-tiddler>>\n\ttag=\"input\"\n\tdefault=\"\"\n\tplaceholder=\"operator name\" />\n \n<$reveal type=\"nomatch\" text=\"\" state=<<operator-name-tiddler>>>\n<$relinkmangler>\n<$button\n\ttooltip={{$(lingo-base)$NewOperator/Hint}}\n\taria-label={{$(lingo-base)$NewOperator/Caption}}>\n<$action-sendmessage\n\t$message=\"relink-add-operator\"\n\toperator={{$(operator-name-tiddler)$}} />\n<$action-deletetiddler $tiddler=<<operator-name-tiddler>> />\n<$text text={{$(lingo-base)$NewOperator/Caption}}/>\n</$button>\n</$relinkmangler>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=<<operator-name-tiddler>>>\n<$button>\n<$text text={{$(lingo-base)$NewOperator/Caption}}/>\n</$button>\n</$reveal>\n<$macrocall\n\t$name=tables\n\tcategory=\"operators\"\n\theader-list=\"[[Filter Operator]] [[Operand Type]]\"\n\tlist-row-macro=\"row\" />\n\\end\n\n{{$:/plugins/flibbles/relink/language/Help/Operators}}\n\n<<body>>\n"},"$:/plugins/flibbles/relink/ui/stylesheet.css":{"title":"$:/plugins/flibbles/relink/ui/stylesheet.css","tags":"$:/tags/Stylesheet","text":".tc-relink-references {\n}\n\n.tc-relink-references-table {\n\twidth: 100%;\n\tborder: none;\n}\n\n.tc-relink-references-table td {\n\tborder-left: none;\n}\n\n.tc-relink-references-table tr:first-child td {\n\tborder-top: none;\n}\n\n.tc-relink-references-title {\n\ttext-align: left;\n\tvertical-align: top;\n}\n\n.tc-relink-references-occurrence {\n\tfont-style: italic;\n\ttext-align: left;\n\tfont-weight: 200;\n\tpadding-left: 25px;\n\tvertical-align: top;\n}\n\n.tc-relink-header-plugin {\n\ttext-align: left;\n}\n\n.tc-relink-header-plugin button {\n\twidth: 100%\n}\n\n.tc-relink-column-type {\n\twidth: 8em;\n}\n\n.tc-relink-column-type select {\n\twidth: 100%;\n}\n\n.tc-relink-column-delete {\n\tborder-left: none;\n\ttext-align: left;\n}\n\n.tc-relink-column-delete button {\n\tpadding-left: 1em;\n}\n\n.tc-relink-impossible a.tc-tiddlylink {\n\tcolor: <<colour relink-impossible>>;\n}\n\n.tc-relink-menu-missing-blurb {\n\tmargin-left: 30pt;\n}\n"}}}
{"tiddlers":{"$:/plugins/Gk0Wk/page-toc/CurrentTiddlerTOC":{"title":"$:/plugins/Gk0Wk/page-toc/CurrentTiddlerTOC","text":"<$list filter=\"[[$:/temp/focussedTiddler]is[tiddler]get[text]]\" variable=\"tiddler\">\n\nTOC of <$text text=<<tiddler>>/>:\n<$page-toc tiddler=<<tiddler>> emptyMessage=\"Empty TOC\"/>\n\n</$list>\n"},"$:/plugins/Gk0Wk/page-toc/LICENSE":{"title":"$:/plugins/Gk0Wk/page-toc/LICENSE","text":"MIT License\n\nCopyright (c) 2021 Ke Wang (Gk0Wk in GitHub)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","type":"text/plain"},"$:/plugins/Gk0Wk/page-toc/PageTOCButton":{"title":"$:/plugins/Gk0Wk/page-toc/PageTOCButton","list-after":"$:/core/ui/Buttons/info","tags":"$:/tags/ViewToolbar","caption":"{{$:/core/images/list-bullet}} {{$:/plugins/Gk0Wk/page-toc/PageTOCButton!!hint}}","description":"Show TOC of this tiddler","hint":"Page TOC","text":"\\whitespace trim\n<$set value={{{ [<currentTiddler>addprefix[$:/temp/Gk0Wk/page-toc/PageTOCButton/]] }}} name=\"stateTiddler\">\n<$button popup=<<stateTiddler>> tooltip={{$:/plugins/Gk0Wk/page-toc/PageTOCButton!!description}} aria-label={{$:/plugins/Gk0Wk/page-toc/PageTOCButton!!hint}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">{{$:/core/images/list-bullet}}</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\"><span class=\"tc-btn-text\">{{$:/plugins/Gk0Wk/page-toc/PageTOCButton!!hint}}</span></$list>\n</$button>\n<$reveal type=\"popup\" state=<<stateTiddler>> position=\"belowleft\" tag=\"div\" class=\"tc-popup-keep\">\n<$page-toc tiddler=<<currentTiddler>> emptyMessage=\"Empty TOC\" class=\"gk0wk-tiddlertoc-viewbuttonpopup\" headerClassPrefix=\"gk0wk-tiddlertoc-viewbuttonpopup-\" />\n</$reveal>\n</$set>\n"},"$:/plugins/Gk0Wk/page-toc/readme":{"title":"$:/plugins/Gk0Wk/page-toc/readme","text":"<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]]\" variable=\"lang\">\n<$list filter=\"[<lang>search[zh]]\">\n\n利用条目的H1~H6标题为条目生成可导航的目录。没错,就是对单个条目生成的标题目录。而且目录是点击可导航的,就是说会滚动到标题所在的位置!\n\n虽然TiddlyWiki的组织逻辑不推荐编写过长的条目,但总会有碰到阅读长条目的时候。相信所有有类似经历的用户都曾想过:如果能为单个长条目生成阅读目录就好了,毕竟迷失在长文中是一件很痛苦的事情。我也是这其中的一员。\n\n本插件提供了一个能够对某个条目生成目录的空间`<$page-toc>`,参数如下:\n\n|!参数 |!解释 |\n|tiddler |要生成目录的条目的标题,默认是当前条目(`currentTiddler`) |\n|tag |为目录外层容器提供一个可选的HTML标签,用于代替默认的`div` |\n|headerTag |为目录内层标题提供一个可选的HTML标签,用于代替默认的`p` |\n|class |为目录外层容器指定类名,默认是`gk0wk-tiddlertoc-container` |\n|headerClassPrefix |为目录内层标题指定类前缀(后面是`h1`~`h6`或`empty`),默认是`gk0wk-tiddlertoc-` |\n|emptyMessage |目录为空、条目不存在或者条目不是文章时显示的文字 |\n|scrollMode |滚动到标题的模式,`center`(默认)是将标题滚动到窗口中央,`start`和`end`是滚动到窗口的顶部和底部,`nearest`是根据相对位置选择滚动到顶部或者底部 |\n|h1, h2, ..., h6 |是否将某一级标题包含在内,默认均为`yes` |\n\n例如:\n\n```\n<$page-toc tiddler=<<currentTiddler>> emptyMessage=\"Empty TOC\"/>\n```\n\n同时,我利用这个控件编写了两个小的组件,可以直接使用这两个组件,也可以学习这两个组件的用法做自己的DIY:\n\n* [[CurrentTiddlerTOC|$:/plugins/Gk0Wk/page-toc/CurrentTiddlerTOC]] 可以显示当前所阅读的条目的名称并生成目录,但是需要[[Hotzone插件|https://tw-cpl.netlify.app/#felixhayashi%2Fhotzone]]的支持。\n* [[PageTOCButton|$:/plugins/Gk0Wk/page-toc/PageTOCButton]] 为每个条目的工具栏增加以一个 {{$:/core/images/list-bullet}} 按钮,点击即可显示目录。\n\n如有任何使用问题,欢迎向我提[[Issue|https://github.com/Gk0Wk/TiddlySeq/issues]]!\n\n> 本插件使用灵活而强大的 <$text text=\"TiddlyWiki\" /> 开发框架 [[Tiddly.ModernDev|https://github.com/tiddly-gittly/Modern.TiddlyDev]]\n\n</$list>\n\n<$list filter=\"[<lang>!search[zh]]\">\n\nGenerate a navigable table of contents for tiddlers using the H1~H6 headings of the tiddlers. That's right, it's a headline table of contents generated for a single tiddler. And the table of contents is navigable by clicking on it, meaning it will scroll to where the title is!\n\nAlthough TiddlyWiki's organizational logic does not recommend writing excessively long tiddlers, there will always be times when you read long tiddlers. I'm sure all users who have had similar experiences have wondered if it would be nice to have a table of contents for individual long tiddlers, after all, it's a pain to get lost in long articles. I am also one of them.\n\nThis plugin provides a widget `<$page-toc>` that can generate a table of contents for a tiddler with the following parameters.\n\n|!Attribute |!Description |\n|tiddler |Title of the tiddler to generate the TOC, default is the current tiddler (`currentTiddler`) |\n|tag |Provide an optional HTML tag for the outer container of the TOC to replace the default `div` |\n|headerTag |Provide an optional HTML tag for the inner TOC header to replace the default `p` |\n|class |Specify the class name for the outer container of the TOC, the default is `gk0wk-tiddlertoc-container` |\n|headerClassPrefix |Specify the class prefix (followed by `h1`~`h6` or `empty`) for the TOC inner level title, default is `gk0wk-tiddlertoc-` |\n|emptyMessage |The text displayed when the table of contents is empty, the tiddler does not exist, or the tiddler is not an article |\n|scrollMode |Scroll to header mode, `center` (default) is to scroll the header to the center of the window, `start` and `end` are to scroll to the top and bottom of the window, and `nearest` is to scroll to the top or bottom depending on the relative position |\n|h1, h2, ..., h6 |Whether to include a certain level of title, default is `yes` |\n\nFor instance:\n\n```\n<$page-toc tiddler=<<currentTiddler>> emptyMessage=\"Empty TOC\"/>\n```\n\nAt the same time, I have written two small components using this widget, which can be used directly or you can learn the usage of these two components to do your own DIY:\n\n* [[CurrentTiddlerTOC|$:/plugins/Gk0Wk/page-toc/CurrentTiddlerTOC]] You can display the name of the currently read tiddler and generate a table of contents, but it requires the support of [[Hotzone Plugin|https://tw-cpl.netlify.app/#felixhayashi%2Fhotzone]].\n* [[PageTOCButton|$:/plugins/Gk0Wk/page-toc/PageTOCButton]] Add a {{$:/core/images/list-bullet}} button to the toolbar for each tiddler and click it to display the table of contents.\n\nFeel free to make me an [[Issue|https://github.com/Gk0Wk/TiddlySeq/issues]] if you have any usage problems!\n\n> This plugin uses the flexible and powerful <$text text=\"TiddlyWiki\" /> development framework [[Tiddly.ModernDev|https://github.com/tiddly-gittly/Modern.TiddlyDev]]\n\n</$list>\n</$list>\n"},"$:/plugins/Gk0Wk/page-toc/style.css":{"title":"$:/plugins/Gk0Wk/page-toc/style.css","text":".gk0wk-tiddlertoc-h1 {\n padding-left: 0;\n}\n.gk0wk-tiddlertoc-h2 {\n padding-left: 1em;\n}\n.gk0wk-tiddlertoc-h3 {\n padding-left: 2em;\n}\n.gk0wk-tiddlertoc-h4 {\n padding-left: 3em;\n}\n.gk0wk-tiddlertoc-h5 {\n padding-left: 4em;\n}\n.gk0wk-tiddlertoc-h6 {\n padding-left: 5em;\n}\n\n.gk0wk-tiddlertoc-empty {\n color: <<colour very-muted-foreground>>;\n user-select: none;\n}\n\n.gk0wk-tiddlertoc-h1,\n.gk0wk-tiddlertoc-h2,\n.gk0wk-tiddlertoc-h3,\n.gk0wk-tiddlertoc-h4,\n.gk0wk-tiddlertoc-h5,\n.gk0wk-tiddlertoc-h6 {\n user-select: none;\n cursor: pointer;\n transition: all {{$:/config/AnimationDuration}}ms;\n}\n\n.gk0wk-tiddlertoc-h1:hover,\n.gk0wk-tiddlertoc-h2:hover,\n.gk0wk-tiddlertoc-h3:hover,\n.gk0wk-tiddlertoc-h4:hover,\n.gk0wk-tiddlertoc-h5:hover,\n.gk0wk-tiddlertoc-h6:hover {\n color: <<colour foreground>>;\n}\n\n.gk0wk-tiddlertoc-viewbuttonpopup {\n border-radius: 3px;\n background: <<colour page-background>>;\n width: min(90vw, 300px);\n <<box-shadow \"#00000070 0 2px 6px\">>\n filter: contrast(90%);\n padding: 0;\n overflow-y: auto;\n max-height: 80vh;\n}\n\n.gk0wk-tiddlertoc-viewbuttonpopup-h1 {\n padding-left: 16px;\n}\n\n.gk0wk-tiddlertoc-viewbuttonpopup-h2 {\n padding-left: calc(16px + 1em);\n}\n\n.gk0wk-tiddlertoc-viewbuttonpopup-h3 {\n padding-left: calc(16px + 2em);\n}\n\n.gk0wk-tiddlertoc-viewbuttonpopup-h4 {\n padding-left: calc(16px + 3em);\n}\n\n.gk0wk-tiddlertoc-viewbuttonpopup-h5 {\n padding-left: calc(16px + 4em);\n}\n\n.gk0wk-tiddlertoc-viewbuttonpopup-h6 {\n padding-left: calc(16px + 5em);\n}\n\n.gk0wk-tiddlertoc-viewbuttonpopup-empty {\n color: <<colour very-muted-foreground>>;\n user-select: none;\n font-size: 24px;\n line-height: 1em;\n padding: 20px;\n text-align: center;\n margin: 0 !important;\n}\n\n.gk0wk-tiddlertoc-viewbuttonpopup-h1,\n.gk0wk-tiddlertoc-viewbuttonpopup-h2,\n.gk0wk-tiddlertoc-viewbuttonpopup-h3,\n.gk0wk-tiddlertoc-viewbuttonpopup-h4,\n.gk0wk-tiddlertoc-viewbuttonpopup-h5,\n.gk0wk-tiddlertoc-viewbuttonpopup-h6 {\n font-size: 16px;\n font-weight: 700;\n line-height: 1em;\n margin: 0 !important;\n padding-top: 10px;\n padding-bottom: 10px;\n padding-right: 6px;\n user-select: none;\n cursor: pointer;\n background: transparent;\n opacity: 0.7;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n transition: all {{$:/config/AnimationDuration}}ms;\n}\n\n.gk0wk-tiddlertoc-viewbuttonpopup-h1:hover,\n.gk0wk-tiddlertoc-viewbuttonpopup-h2:hover,\n.gk0wk-tiddlertoc-viewbuttonpopup-h3:hover,\n.gk0wk-tiddlertoc-viewbuttonpopup-h4:hover,\n.gk0wk-tiddlertoc-viewbuttonpopup-h5:hover,\n.gk0wk-tiddlertoc-viewbuttonpopup-h6:hover {\n opacity: 1;\n background: <<colour background>>;\n color: <<colour foreground>>;\n}\n","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki"},"$:/plugins/Gk0Wk/page-toc/PageTOCWidget.js":{"title":"$:/plugins/Gk0Wk/page-toc/PageTOCWidget.js","module-type":"widget","type":"application/javascript","Modern.TiddlyDev#Origin":"PageTOCWidget.ts","text":"\"use strict\";var import_widget=require(\"$:/core/modules/widgets/widget.js\"),PageTOCWidget=class extends import_widget.widget{constructor(){super(...arguments),this.tocNodeTag=\"div\",this.tocHeaderNodeTag=\"p\",this.tocNodeClass=\"gk0wk-tiddlertoc-container\",this.tocHeaderNodeClassPrefix=\"gk0wk-tiddlertoc-\",this.tocTitle=\"\",this.emptyMessage=\"\",this.scrollMode=\"center\",this.includeHeaderMap={h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0}}initialise(e,t){super.initialise(e,t),this.computeAttributes()}execute(){this.tocTitle=this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\")),this.tocNodeTag=this.getAttribute(\"tag\",\"div\"),$tw.config.htmlUnsafeElements.includes(this.tocNodeTag)&&(this.tocNodeTag=\"div\"),this.tocHeaderNodeTag=this.getAttribute(\"headerTag\",\"p\"),$tw.config.htmlUnsafeElements.includes(this.tocHeaderNodeTag)&&(this.tocHeaderNodeTag=\"p\"),this.tocNodeClass=this.getAttribute(\"class\",\"gk0wk-tiddlertoc-container\"),this.tocHeaderNodeClassPrefix=this.getAttribute(\"headerClassPrefix\",\"gk0wk-tiddlertoc-\"),this.emptyMessage=this.getAttribute(\"emptyMessage\",\"\"),this.includeHeaderMap.h1=\"yes\"===this.getAttribute(\"h1\",\"yes\"),this.includeHeaderMap.h2=\"yes\"===this.getAttribute(\"h2\",\"yes\"),this.includeHeaderMap.h3=\"yes\"===this.getAttribute(\"h3\",\"yes\"),this.includeHeaderMap.h4=\"yes\"===this.getAttribute(\"h4\",\"yes\"),this.includeHeaderMap.h5=\"yes\"===this.getAttribute(\"h5\",\"yes\"),this.includeHeaderMap.h6=\"yes\"===this.getAttribute(\"h6\",\"yes\"),this.scrollMode=this.getAttribute(\"scrollMode\",\"center\"),[\"start\",\"center\",\"end\",\"nearest\"].includes(this.scrollMode)||(this.scrollMode=\"center\")}render(e,i){if(this.parentDomNode=e,this.execute(),this.parentWidget.hasVariable(\"page-toc-recursion-detection\",\"yes\"))this.domNodes.push(e.appendChild(this.document.createTextNode(\"[Page TOC]\")));else{this.setVariable(\"page-toc-recursion-detection\",\"yes\");var s=$tw.utils.domMaker(this.tocNodeTag,{\"class\":this.tocNodeClass});this.domNodes.push(s);try{const o=this.getTOCInfo();if(o&&0!==o.headers.length)for(let e=0,t=o.headers.length;e<t;e++){const{tag:d,text:l,count:a}=o.headers[e];var r=$tw.utils.domMaker(this.tocHeaderNodeTag,{\"class\":\"\"+this.tocHeaderNodeClassPrefix+d,text:l});$tw.browser&&r.addEventListener(\"click\",()=>{var e,t,i=null==(t=null==(e=null==(t=document.querySelector(`.tc-tiddler-frame[data-tiddler-title=\"${o.title.replace('\"','\\\\\"')}\"]`))?void 0:t.querySelectorAll)?void 0:e.call(t,\".tc-tiddler-body \"+d))?void 0:t[a];if(i)switch(this.scrollMode){case\"center\":case\"nearest\":i.scrollIntoView({behavior:\"smooth\",block:this.scrollMode});break;default:i.scrollIntoView({behavior:\"auto\",block:this.scrollMode}),\"end\"===this.scrollMode?(document.body.scrollTop+=100,document.scrollingElement&&(document.scrollingElement.scrollTop+=100)):(document.body.scrollTop-=100,document.scrollingElement&&(document.scrollingElement.scrollTop-=100))}}),s.appendChild(r)}else s.insertBefore($tw.utils.domMaker(this.tocHeaderNodeTag,{\"class\":this.tocHeaderNodeClassPrefix+\"empty\",text:this.emptyMessage}),i)}catch(t){console.error(t),s.textContent=String(t)}e.insertBefore(s,i)}}refresh(e){var t=this.computeAttributes();return 0<$tw.utils.count(t)||Object.hasOwnProperty.call(t,this.tocTitle)?(this.refreshSelf(),this.refreshChildren(e),!0):this.refreshChildren(e)}getTOCInfo(){if(\"\"!==this.tocTitle){var e=$tw.wiki.getTiddler(this.tocTitle);if(e){var e=e.fields.type||\"text/vnd.tiddlywiki\",t=(null==(t=$tw.config.contentTypeInfo[e])?void 0:t.deserializerType)||e;if(\"text/vnd.tiddlywiki\"===t||\"text/x-markdown\"===t){for(var i=[],s={h1:0,h2:0,h3:0,h4:0,h5:0,h6:0},e=$tw.wiki.parseTiddler(this.tocTitle).tree,t=$tw.wiki.makeWidget({tree:e}),e=$tw.fakeDocument.createElement(\"div\"),r=(t.render(e,null),[e]);0<r.length;){var o=r.pop();if(/^h[1-6]$/.test(o.tagName)&&(console.log(o),i.push({tag:o.tagName,count:s[o.tagName]++,text:o.textContent||\"\"})),Array.isArray(o.children))for(let e=o.children.length-1;0<=e;e--)r.push(o.children[e])}return{title:this.tocTitle,headers:i}}}}}};exports[\"page-toc\"]=PageTOCWidget;"}}}
{
"tiddlers": {
"$:/plugins/kixam/moment/moment.js": {
"text": "!function(e,a){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=a():\"function\"==typeof define&&define.amd?define(a):e.moment=a()}(this,function(){\"use strict\";var e,n;function l(){return e.apply(null,arguments)}function _(e){return e instanceof Array||\"[object Array]\"===Object.prototype.toString.call(e)}function i(e){return null!=e&&\"[object Object]\"===Object.prototype.toString.call(e)}function o(e){return void 0===e}function m(e){return\"number\"==typeof e||\"[object Number]\"===Object.prototype.toString.call(e)}function u(e){return e instanceof Date||\"[object Date]\"===Object.prototype.toString.call(e)}function M(e,a){var t,s=[];for(t=0;t<e.length;++t)s.push(a(e[t],t));return s}function h(e,a){return Object.prototype.hasOwnProperty.call(e,a)}function L(e,a){for(var t in a)h(a,t)&&(e[t]=a[t]);return h(a,\"toString\")&&(e.toString=a.toString),h(a,\"valueOf\")&&(e.valueOf=a.valueOf),e}function c(e,a,t,s){return Sa(e,a,t,s,!0).utc()}function Y(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function y(e){if(null==e._isValid){var a=Y(e),t=n.call(a.parsedDateParts,function(e){return null!=e}),s=!isNaN(e._d.getTime())&&a.overflow<0&&!a.empty&&!a.invalidMonth&&!a.invalidWeekday&&!a.weekdayMismatch&&!a.nullInput&&!a.invalidFormat&&!a.userInvalidated&&(!a.meridiem||a.meridiem&&t);if(e._strict&&(s=s&&0===a.charsLeftOver&&0===a.unusedTokens.length&&void 0===a.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return s;e._isValid=s}return e._isValid}function f(e){var a=c(NaN);return null!=e?L(Y(a),e):Y(a).userInvalidated=!0,a}n=Array.prototype.some?Array.prototype.some:function(e){for(var a=Object(this),t=a.length>>>0,s=0;s<t;s++)if(s in a&&e.call(this,a[s],s,a))return!0;return!1};var d=l.momentProperties=[];function k(e,a){var t,s,n;if(o(a._isAMomentObject)||(e._isAMomentObject=a._isAMomentObject),o(a._i)||(e._i=a._i),o(a._f)||(e._f=a._f),o(a._l)||(e._l=a._l),o(a._strict)||(e._strict=a._strict),o(a._tzm)||(e._tzm=a._tzm),o(a._isUTC)||(e._isUTC=a._isUTC),o(a._offset)||(e._offset=a._offset),o(a._pf)||(e._pf=Y(a)),o(a._locale)||(e._locale=a._locale),0<d.length)for(t=0;t<d.length;t++)o(n=a[s=d[t]])||(e[s]=n);return e}var a=!1;function p(e){k(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===a&&(a=!0,l.updateOffset(this),a=!1)}function D(e){return e instanceof p||null!=e&&null!=e._isAMomentObject}function T(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function g(e){var a=+e,t=0;return 0!==a&&isFinite(a)&&(t=T(a)),t}function r(e,a,t){var s,n=Math.min(e.length,a.length),d=Math.abs(e.length-a.length),r=0;for(s=0;s<n;s++)(t&&e[s]!==a[s]||!t&&g(e[s])!==g(a[s]))&&r++;return r+d}function w(e){!1===l.suppressDeprecationWarnings&&\"undefined\"!=typeof console&&console.warn&&console.warn(\"Deprecation warning: \"+e)}function t(n,d){var r=!0;return L(function(){if(null!=l.deprecationHandler&&l.deprecationHandler(null,n),r){for(var e,a=[],t=0;t<arguments.length;t++){if(e=\"\",\"object\"==typeof arguments[t]){for(var s in e+=\"\\n[\"+t+\"] \",arguments[0])e+=s+\": \"+arguments[0][s]+\", \";e=e.slice(0,-2)}else e=arguments[t];a.push(e)}w(n+\"\\nArguments: \"+Array.prototype.slice.call(a).join(\"\")+\"\\n\"+(new Error).stack),r=!1}return d.apply(this,arguments)},d)}var s,v={};function S(e,a){null!=l.deprecationHandler&&l.deprecationHandler(e,a),v[e]||(w(a),v[e]=!0)}function H(e){return e instanceof Function||\"[object Function]\"===Object.prototype.toString.call(e)}function b(e,a){var t,s=L({},e);for(t in a)h(a,t)&&(i(e[t])&&i(a[t])?(s[t]={},L(s[t],e[t]),L(s[t],a[t])):null!=a[t]?s[t]=a[t]:delete s[t]);for(t in e)h(e,t)&&!h(a,t)&&i(e[t])&&(s[t]=L({},s[t]));return s}function j(e){null!=e&&this.set(e)}l.suppressDeprecationWarnings=!1,l.deprecationHandler=null,s=Object.keys?Object.keys:function(e){var a,t=[];for(a in e)h(e,a)&&t.push(a);return t};var x={};function O(e,a){var t=e.toLowerCase();x[t]=x[t+\"s\"]=x[a]=e}function P(e){return\"string\"==typeof e?x[e]||x[e.toLowerCase()]:void 0}function W(e){var a,t,s={};for(t in e)h(e,t)&&(a=P(t))&&(s[a]=e[t]);return s}var A={};function E(e,a){A[e]=a}function F(e,a,t){var s=\"\"+Math.abs(e),n=a-s.length;return(0<=e?t?\"+\":\"\":\"-\")+Math.pow(10,Math.max(0,n)).toString().substr(1)+s}var z=/(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,J=/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,N={},R={};function C(e,a,t,s){var n=s;\"string\"==typeof s&&(n=function(){return this[s]()}),e&&(R[e]=n),a&&(R[a[0]]=function(){return F(n.apply(this,arguments),a[1],a[2])}),t&&(R[t]=function(){return this.localeData().ordinal(n.apply(this,arguments),e)})}function I(e,a){return e.isValid()?(a=U(a,e.localeData()),N[a]=N[a]||function(s){var e,n,a,d=s.match(z);for(e=0,n=d.length;e<n;e++)R[d[e]]?d[e]=R[d[e]]:d[e]=(a=d[e]).match(/\\[[\\s\\S]/)?a.replace(/^\\[|\\]$/g,\"\"):a.replace(/\\\\/g,\"\");return function(e){var a,t=\"\";for(a=0;a<n;a++)t+=H(d[a])?d[a].call(e,s):d[a];return t}}(a),N[a](e)):e.localeData().invalidDate()}function U(e,a){var t=5;function s(e){return a.longDateFormat(e)||e}for(J.lastIndex=0;0<=t&&J.test(e);)e=e.replace(J,s),J.lastIndex=0,t-=1;return e}var G=/\\d/,V=/\\d\\d/,K=/\\d{3}/,Z=/\\d{4}/,$=/[+-]?\\d{6}/,B=/\\d\\d?/,q=/\\d\\d\\d\\d?/,Q=/\\d\\d\\d\\d\\d\\d?/,X=/\\d{1,3}/,ee=/\\d{1,4}/,ae=/[+-]?\\d{1,6}/,te=/\\d+/,se=/[+-]?\\d+/,ne=/Z|[+-]\\d\\d:?\\d\\d/gi,de=/Z|[+-]\\d\\d(?::?\\d\\d)?/gi,re=/[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,_e={};function ie(e,t,s){_e[e]=H(t)?t:function(e,a){return e&&s?s:t}}function oe(e,a){return h(_e,e)?_e[e](a._strict,a._locale):new RegExp(me(e.replace(\"\\\\\",\"\").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,function(e,a,t,s,n){return a||t||s||n})))}function me(e){return e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}var ue={};function le(e,t){var a,s=t;for(\"string\"==typeof e&&(e=[e]),m(t)&&(s=function(e,a){a[t]=g(e)}),a=0;a<e.length;a++)ue[e[a]]=s}function Me(e,n){le(e,function(e,a,t,s){t._w=t._w||{},n(e,t._w,t,s)})}var he=0,Le=1,ce=2,Ye=3,ye=4,fe=5,ke=6,pe=7,De=8;function Te(e){return ge(e)?366:365}function ge(e){return e%4==0&&e%100!=0||e%400==0}C(\"Y\",0,0,function(){var e=this.year();return e<=9999?\"\"+e:\"+\"+e}),C(0,[\"YY\",2],0,function(){return this.year()%100}),C(0,[\"YYYY\",4],0,\"year\"),C(0,[\"YYYYY\",5],0,\"year\"),C(0,[\"YYYYYY\",6,!0],0,\"year\"),O(\"year\",\"y\"),E(\"year\",1),ie(\"Y\",se),ie(\"YY\",B,V),ie(\"YYYY\",ee,Z),ie(\"YYYYY\",ae,$),ie(\"YYYYYY\",ae,$),le([\"YYYYY\",\"YYYYYY\"],he),le(\"YYYY\",function(e,a){a[he]=2===e.length?l.parseTwoDigitYear(e):g(e)}),le(\"YY\",function(e,a){a[he]=l.parseTwoDigitYear(e)}),le(\"Y\",function(e,a){a[he]=parseInt(e,10)}),l.parseTwoDigitYear=function(e){return g(e)+(68<g(e)?1900:2e3)};var we,ve=Se(\"FullYear\",!0);function Se(a,t){return function(e){return null!=e?(be(this,a,e),l.updateOffset(this,t),this):He(this,a)}}function He(e,a){return e.isValid()?e._d[\"get\"+(e._isUTC?\"UTC\":\"\")+a]():NaN}function be(e,a,t){e.isValid()&&!isNaN(t)&&(\"FullYear\"===a&&ge(e.year())&&1===e.month()&&29===e.date()?e._d[\"set\"+(e._isUTC?\"UTC\":\"\")+a](t,e.month(),je(t,e.month())):e._d[\"set\"+(e._isUTC?\"UTC\":\"\")+a](t))}function je(e,a){if(isNaN(e)||isNaN(a))return NaN;var t,s=(a%(t=12)+t)%t;return e+=(a-s)/12,1===s?ge(e)?29:28:31-s%7%2}we=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var a;for(a=0;a<this.length;++a)if(this[a]===e)return a;return-1},C(\"M\",[\"MM\",2],\"Mo\",function(){return this.month()+1}),C(\"MMM\",0,0,function(e){return this.localeData().monthsShort(this,e)}),C(\"MMMM\",0,0,function(e){return this.localeData().months(this,e)}),O(\"month\",\"M\"),E(\"month\",8),ie(\"M\",B),ie(\"MM\",B,V),ie(\"MMM\",function(e,a){return a.monthsShortRegex(e)}),ie(\"MMMM\",function(e,a){return a.monthsRegex(e)}),le([\"M\",\"MM\"],function(e,a){a[Le]=g(e)-1}),le([\"MMM\",\"MMMM\"],function(e,a,t,s){var n=t._locale.monthsParse(e,s,t._strict);null!=n?a[Le]=n:Y(t).invalidMonth=e});var xe=/D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,Oe=\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\");var Pe=\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\");function We(e,a){var t;if(!e.isValid())return e;if(\"string\"==typeof a)if(/^\\d+$/.test(a))a=g(a);else if(!m(a=e.localeData().monthsParse(a)))return e;return t=Math.min(e.date(),je(e.year(),a)),e._d[\"set\"+(e._isUTC?\"UTC\":\"\")+\"Month\"](a,t),e}function Ae(e){return null!=e?(We(this,e),l.updateOffset(this,!0),this):He(this,\"Month\")}var Ee=re;var Fe=re;function ze(){function e(e,a){return a.length-e.length}var a,t,s=[],n=[],d=[];for(a=0;a<12;a++)t=c([2e3,a]),s.push(this.monthsShort(t,\"\")),n.push(this.months(t,\"\")),d.push(this.months(t,\"\")),d.push(this.monthsShort(t,\"\"));for(s.sort(e),n.sort(e),d.sort(e),a=0;a<12;a++)s[a]=me(s[a]),n[a]=me(n[a]);for(a=0;a<24;a++)d[a]=me(d[a]);this._monthsRegex=new RegExp(\"^(\"+d.join(\"|\")+\")\",\"i\"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp(\"^(\"+n.join(\"|\")+\")\",\"i\"),this._monthsShortStrictRegex=new RegExp(\"^(\"+s.join(\"|\")+\")\",\"i\")}function Je(e){var a;if(e<100&&0<=e){var t=Array.prototype.slice.call(arguments);t[0]=e+400,a=new Date(Date.UTC.apply(null,t)),isFinite(a.getUTCFullYear())&&a.setUTCFullYear(e)}else a=new Date(Date.UTC.apply(null,arguments));return a}function Ne(e,a,t){var s=7+a-t;return-((7+Je(e,0,s).getUTCDay()-a)%7)+s-1}function Re(e,a,t,s,n){var d,r,_=1+7*(a-1)+(7+t-s)%7+Ne(e,s,n);return r=_<=0?Te(d=e-1)+_:_>Te(e)?(d=e+1,_-Te(e)):(d=e,_),{year:d,dayOfYear:r}}function Ce(e,a,t){var s,n,d=Ne(e.year(),a,t),r=Math.floor((e.dayOfYear()-d-1)/7)+1;return r<1?s=r+Ie(n=e.year()-1,a,t):r>Ie(e.year(),a,t)?(s=r-Ie(e.year(),a,t),n=e.year()+1):(n=e.year(),s=r),{week:s,year:n}}function Ie(e,a,t){var s=Ne(e,a,t),n=Ne(e+1,a,t);return(Te(e)-s+n)/7}C(\"w\",[\"ww\",2],\"wo\",\"week\"),C(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\"),O(\"week\",\"w\"),O(\"isoWeek\",\"W\"),E(\"week\",5),E(\"isoWeek\",5),ie(\"w\",B),ie(\"ww\",B,V),ie(\"W\",B),ie(\"WW\",B,V),Me([\"w\",\"ww\",\"W\",\"WW\"],function(e,a,t,s){a[s.substr(0,1)]=g(e)});function Ue(e,a){return e.slice(a,7).concat(e.slice(0,a))}C(\"d\",0,\"do\",\"day\"),C(\"dd\",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),C(\"ddd\",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),C(\"dddd\",0,0,function(e){return this.localeData().weekdays(this,e)}),C(\"e\",0,0,\"weekday\"),C(\"E\",0,0,\"isoWeekday\"),O(\"day\",\"d\"),O(\"weekday\",\"e\"),O(\"isoWeekday\",\"E\"),E(\"day\",11),E(\"weekday\",11),E(\"isoWeekday\",11),ie(\"d\",B),ie(\"e\",B),ie(\"E\",B),ie(\"dd\",function(e,a){return a.weekdaysMinRegex(e)}),ie(\"ddd\",function(e,a){return a.weekdaysShortRegex(e)}),ie(\"dddd\",function(e,a){return a.weekdaysRegex(e)}),Me([\"dd\",\"ddd\",\"dddd\"],function(e,a,t,s){var n=t._locale.weekdaysParse(e,s,t._strict);null!=n?a.d=n:Y(t).invalidWeekday=e}),Me([\"d\",\"e\",\"E\"],function(e,a,t,s){a[s]=g(e)});var Ge=\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\");var Ve=\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\");var Ke=\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\");var Ze=re;var $e=re;var Be=re;function qe(){function e(e,a){return a.length-e.length}var a,t,s,n,d,r=[],_=[],i=[],o=[];for(a=0;a<7;a++)t=c([2e3,1]).day(a),s=this.weekdaysMin(t,\"\"),n=this.weekdaysShort(t,\"\"),d=this.weekdays(t,\"\"),r.push(s),_.push(n),i.push(d),o.push(s),o.push(n),o.push(d);for(r.sort(e),_.sort(e),i.sort(e),o.sort(e),a=0;a<7;a++)_[a]=me(_[a]),i[a]=me(i[a]),o[a]=me(o[a]);this._weekdaysRegex=new RegExp(\"^(\"+o.join(\"|\")+\")\",\"i\"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp(\"^(\"+i.join(\"|\")+\")\",\"i\"),this._weekdaysShortStrictRegex=new RegExp(\"^(\"+_.join(\"|\")+\")\",\"i\"),this._weekdaysMinStrictRegex=new RegExp(\"^(\"+r.join(\"|\")+\")\",\"i\")}function Qe(){return this.hours()%12||12}function Xe(e,a){C(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),a)})}function ea(e,a){return a._meridiemParse}C(\"H\",[\"HH\",2],0,\"hour\"),C(\"h\",[\"hh\",2],0,Qe),C(\"k\",[\"kk\",2],0,function(){return this.hours()||24}),C(\"hmm\",0,0,function(){return\"\"+Qe.apply(this)+F(this.minutes(),2)}),C(\"hmmss\",0,0,function(){return\"\"+Qe.apply(this)+F(this.minutes(),2)+F(this.seconds(),2)}),C(\"Hmm\",0,0,function(){return\"\"+this.hours()+F(this.minutes(),2)}),C(\"Hmmss\",0,0,function(){return\"\"+this.hours()+F(this.minutes(),2)+F(this.seconds(),2)}),Xe(\"a\",!0),Xe(\"A\",!1),O(\"hour\",\"h\"),E(\"hour\",13),ie(\"a\",ea),ie(\"A\",ea),ie(\"H\",B),ie(\"h\",B),ie(\"k\",B),ie(\"HH\",B,V),ie(\"hh\",B,V),ie(\"kk\",B,V),ie(\"hmm\",q),ie(\"hmmss\",Q),ie(\"Hmm\",q),ie(\"Hmmss\",Q),le([\"H\",\"HH\"],Ye),le([\"k\",\"kk\"],function(e,a,t){var s=g(e);a[Ye]=24===s?0:s}),le([\"a\",\"A\"],function(e,a,t){t._isPm=t._locale.isPM(e),t._meridiem=e}),le([\"h\",\"hh\"],function(e,a,t){a[Ye]=g(e),Y(t).bigHour=!0}),le(\"hmm\",function(e,a,t){var s=e.length-2;a[Ye]=g(e.substr(0,s)),a[ye]=g(e.substr(s)),Y(t).bigHour=!0}),le(\"hmmss\",function(e,a,t){var s=e.length-4,n=e.length-2;a[Ye]=g(e.substr(0,s)),a[ye]=g(e.substr(s,2)),a[fe]=g(e.substr(n)),Y(t).bigHour=!0}),le(\"Hmm\",function(e,a,t){var s=e.length-2;a[Ye]=g(e.substr(0,s)),a[ye]=g(e.substr(s))}),le(\"Hmmss\",function(e,a,t){var s=e.length-4,n=e.length-2;a[Ye]=g(e.substr(0,s)),a[ye]=g(e.substr(s,2)),a[fe]=g(e.substr(n))});var aa,ta=Se(\"Hours\",!0),sa={calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},longDateFormat:{LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},invalidDate:\"Invalid date\",ordinal:\"%d\",dayOfMonthOrdinalParse:/\\d{1,2}/,relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",ss:\"%d seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},months:Oe,monthsShort:Pe,week:{dow:0,doy:6},weekdays:Ge,weekdaysMin:Ke,weekdaysShort:Ve,meridiemParse:/[ap]\\.?m?\\.?/i},na={},da={};function ra(e){return e?e.toLowerCase().replace(\"_\",\"-\"):e}function _a(e){var a=null;if(!na[e]&&\"undefined\"!=typeof module&&module&&module.exports)try{a=aa._abbr,require(\"./locale/\"+e),ia(a)}catch(e){}return na[e]}function ia(e,a){var t;return e&&((t=o(a)?ma(e):oa(e,a))?aa=t:\"undefined\"!=typeof console&&console.warn&&console.warn(\"Locale \"+e+\" not found. Did you forget to load it?\")),aa._abbr}function oa(e,a){if(null===a)return delete na[e],null;var t,s=sa;if(a.abbr=e,null!=na[e])S(\"defineLocaleOverride\",\"use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.\"),s=na[e]._config;else if(null!=a.parentLocale)if(null!=na[a.parentLocale])s=na[a.parentLocale]._config;else{if(null==(t=_a(a.parentLocale)))return da[a.parentLocale]||(da[a.parentLocale]=[]),da[a.parentLocale].push({name:e,config:a}),null;s=t._config}return na[e]=new j(b(s,a)),da[e]&&da[e].forEach(function(e){oa(e.name,e.config)}),ia(e),na[e]}function ma(e){var a;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return aa;if(!_(e)){if(a=_a(e))return a;e=[e]}return function(e){for(var a,t,s,n,d=0;d<e.length;){for(a=(n=ra(e[d]).split(\"-\")).length,t=(t=ra(e[d+1]))?t.split(\"-\"):null;0<a;){if(s=_a(n.slice(0,a).join(\"-\")))return s;if(t&&t.length>=a&&r(n,t,!0)>=a-1)break;a--}d++}return aa}(e)}function ua(e){var a,t=e._a;return t&&-2===Y(e).overflow&&(a=t[Le]<0||11<t[Le]?Le:t[ce]<1||t[ce]>je(t[he],t[Le])?ce:t[Ye]<0||24<t[Ye]||24===t[Ye]&&(0!==t[ye]||0!==t[fe]||0!==t[ke])?Ye:t[ye]<0||59<t[ye]?ye:t[fe]<0||59<t[fe]?fe:t[ke]<0||999<t[ke]?ke:-1,Y(e)._overflowDayOfYear&&(a<he||ce<a)&&(a=ce),Y(e)._overflowWeeks&&-1===a&&(a=pe),Y(e)._overflowWeekday&&-1===a&&(a=De),Y(e).overflow=a),e}function la(e,a,t){return null!=e?e:null!=a?a:t}function Ma(e){var a,t,s,n,d,r=[];if(!e._d){var _,i;for(_=e,i=new Date(l.now()),s=_._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()],e._w&&null==e._a[ce]&&null==e._a[Le]&&function(e){var a,t,s,n,d,r,_,i;if(null!=(a=e._w).GG||null!=a.W||null!=a.E)d=1,r=4,t=la(a.GG,e._a[he],Ce(Ha(),1,4).year),s=la(a.W,1),((n=la(a.E,1))<1||7<n)&&(i=!0);else{d=e._locale._week.dow,r=e._locale._week.doy;var o=Ce(Ha(),d,r);t=la(a.gg,e._a[he],o.year),s=la(a.w,o.week),null!=a.d?((n=a.d)<0||6<n)&&(i=!0):null!=a.e?(n=a.e+d,(a.e<0||6<a.e)&&(i=!0)):n=d}s<1||s>Ie(t,d,r)?Y(e)._overflowWeeks=!0:null!=i?Y(e)._overflowWeekday=!0:(_=Re(t,s,n,d,r),e._a[he]=_.year,e._dayOfYear=_.dayOfYear)}(e),null!=e._dayOfYear&&(d=la(e._a[he],s[he]),(e._dayOfYear>Te(d)||0===e._dayOfYear)&&(Y(e)._overflowDayOfYear=!0),t=Je(d,0,e._dayOfYear),e._a[Le]=t.getUTCMonth(),e._a[ce]=t.getUTCDate()),a=0;a<3&&null==e._a[a];++a)e._a[a]=r[a]=s[a];for(;a<7;a++)e._a[a]=r[a]=null==e._a[a]?2===a?1:0:e._a[a];24===e._a[Ye]&&0===e._a[ye]&&0===e._a[fe]&&0===e._a[ke]&&(e._nextDay=!0,e._a[Ye]=0),e._d=(e._useUTC?Je:function(e,a,t,s,n,d,r){var _;return e<100&&0<=e?(_=new Date(e+400,a,t,s,n,d,r),isFinite(_.getFullYear())&&_.setFullYear(e)):_=new Date(e,a,t,s,n,d,r),_}).apply(null,r),n=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[Ye]=24),e._w&&void 0!==e._w.d&&e._w.d!==n&&(Y(e).weekdayMismatch=!0)}}var ha=/^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,La=/^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,ca=/Z|[+-]\\d\\d(?::?\\d\\d)?/,Ya=[[\"YYYYYY-MM-DD\",/[+-]\\d{6}-\\d\\d-\\d\\d/],[\"YYYY-MM-DD\",/\\d{4}-\\d\\d-\\d\\d/],[\"GGGG-[W]WW-E\",/\\d{4}-W\\d\\d-\\d/],[\"GGGG-[W]WW\",/\\d{4}-W\\d\\d/,!1],[\"YYYY-DDD\",/\\d{4}-\\d{3}/],[\"YYYY-MM\",/\\d{4}-\\d\\d/,!1],[\"YYYYYYMMDD\",/[+-]\\d{10}/],[\"YYYYMMDD\",/\\d{8}/],[\"GGGG[W]WWE\",/\\d{4}W\\d{3}/],[\"GGGG[W]WW\",/\\d{4}W\\d{2}/,!1],[\"YYYYDDD\",/\\d{7}/]],ya=[[\"HH:mm:ss.SSSS\",/\\d\\d:\\d\\d:\\d\\d\\.\\d+/],[\"HH:mm:ss,SSSS\",/\\d\\d:\\d\\d:\\d\\d,\\d+/],[\"HH:mm:ss\",/\\d\\d:\\d\\d:\\d\\d/],[\"HH:mm\",/\\d\\d:\\d\\d/],[\"HHmmss.SSSS\",/\\d\\d\\d\\d\\d\\d\\.\\d+/],[\"HHmmss,SSSS\",/\\d\\d\\d\\d\\d\\d,\\d+/],[\"HHmmss\",/\\d\\d\\d\\d\\d\\d/],[\"HHmm\",/\\d\\d\\d\\d/],[\"HH\",/\\d\\d/]],fa=/^\\/?Date\\((\\-?\\d+)/i;function ka(e){var a,t,s,n,d,r,_=e._i,i=ha.exec(_)||La.exec(_);if(i){for(Y(e).iso=!0,a=0,t=Ya.length;a<t;a++)if(Ya[a][1].exec(i[1])){n=Ya[a][0],s=!1!==Ya[a][2];break}if(null==n)return void(e._isValid=!1);if(i[3]){for(a=0,t=ya.length;a<t;a++)if(ya[a][1].exec(i[3])){d=(i[2]||\" \")+ya[a][0];break}if(null==d)return void(e._isValid=!1)}if(!s&&null!=d)return void(e._isValid=!1);if(i[4]){if(!ca.exec(i[4]))return void(e._isValid=!1);r=\"Z\"}e._f=n+(d||\"\")+(r||\"\"),wa(e)}else e._isValid=!1}var pa=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;function Da(e,a,t,s,n,d){var r=[function(e){var a=parseInt(e,10);{if(a<=49)return 2e3+a;if(a<=999)return 1900+a}return a}(e),Pe.indexOf(a),parseInt(t,10),parseInt(s,10),parseInt(n,10)];return d&&r.push(parseInt(d,10)),r}var Ta={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function ga(e){var a,t,s,n=pa.exec(e._i.replace(/\\([^)]*\\)|[\\n\\t]/g,\" \").replace(/(\\s\\s+)/g,\" \").replace(/^\\s\\s*/,\"\").replace(/\\s\\s*$/,\"\"));if(n){var d=Da(n[4],n[3],n[2],n[5],n[6],n[7]);if(a=n[1],t=d,s=e,a&&Ve.indexOf(a)!==new Date(t[0],t[1],t[2]).getDay()&&(Y(s).weekdayMismatch=!0,!(s._isValid=!1)))return;e._a=d,e._tzm=function(e,a,t){if(e)return Ta[e];if(a)return 0;var s=parseInt(t,10),n=s%100;return(s-n)/100*60+n}(n[8],n[9],n[10]),e._d=Je.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),Y(e).rfc2822=!0}else e._isValid=!1}function wa(e){if(e._f!==l.ISO_8601)if(e._f!==l.RFC_2822){e._a=[],Y(e).empty=!0;var a,t,s,n,d,r,_,i,o=\"\"+e._i,m=o.length,u=0;for(s=U(e._f,e._locale).match(z)||[],a=0;a<s.length;a++)n=s[a],(t=(o.match(oe(n,e))||[])[0])&&(0<(d=o.substr(0,o.indexOf(t))).length&&Y(e).unusedInput.push(d),o=o.slice(o.indexOf(t)+t.length),u+=t.length),R[n]?(t?Y(e).empty=!1:Y(e).unusedTokens.push(n),r=n,i=e,null!=(_=t)&&h(ue,r)&&ue[r](_,i._a,i,r)):e._strict&&!t&&Y(e).unusedTokens.push(n);Y(e).charsLeftOver=m-u,0<o.length&&Y(e).unusedInput.push(o),e._a[Ye]<=12&&!0===Y(e).bigHour&&0<e._a[Ye]&&(Y(e).bigHour=void 0),Y(e).parsedDateParts=e._a.slice(0),Y(e).meridiem=e._meridiem,e._a[Ye]=function(e,a,t){var s;if(null==t)return a;return null!=e.meridiemHour?e.meridiemHour(a,t):(null!=e.isPM&&((s=e.isPM(t))&&a<12&&(a+=12),s||12!==a||(a=0)),a)}(e._locale,e._a[Ye],e._meridiem),Ma(e),ua(e)}else ga(e);else ka(e)}function va(e){var a,t,s,n,d=e._i,r=e._f;return e._locale=e._locale||ma(e._l),null===d||void 0===r&&\"\"===d?f({nullInput:!0}):(\"string\"==typeof d&&(e._i=d=e._locale.preparse(d)),D(d)?new p(ua(d)):(u(d)?e._d=d:_(r)?function(e){var a,t,s,n,d;if(0===e._f.length)return Y(e).invalidFormat=!0,e._d=new Date(NaN);for(n=0;n<e._f.length;n++)d=0,a=k({},e),null!=e._useUTC&&(a._useUTC=e._useUTC),a._f=e._f[n],wa(a),y(a)&&(d+=Y(a).charsLeftOver,d+=10*Y(a).unusedTokens.length,Y(a).score=d,(null==s||d<s)&&(s=d,t=a));L(e,t||a)}(e):r?wa(e):o(t=(a=e)._i)?a._d=new Date(l.now()):u(t)?a._d=new Date(t.valueOf()):\"string\"==typeof t?(s=a,null===(n=fa.exec(s._i))?(ka(s),!1===s._isValid&&(delete s._isValid,ga(s),!1===s._isValid&&(delete s._isValid,l.createFromInputFallback(s)))):s._d=new Date(+n[1])):_(t)?(a._a=M(t.slice(0),function(e){return parseInt(e,10)}),Ma(a)):i(t)?function(e){if(!e._d){var a=W(e._i);e._a=M([a.year,a.month,a.day||a.date,a.hour,a.minute,a.second,a.millisecond],function(e){return e&&parseInt(e,10)}),Ma(e)}}(a):m(t)?a._d=new Date(t):l.createFromInputFallback(a),y(e)||(e._d=null),e))}function Sa(e,a,t,s,n){var d,r={};return!0!==t&&!1!==t||(s=t,t=void 0),(i(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var a;for(a in e)if(e.hasOwnProperty(a))return!1;return!0}(e)||_(e)&&0===e.length)&&(e=void 0),r._isAMomentObject=!0,r._useUTC=r._isUTC=n,r._l=t,r._i=e,r._f=a,r._strict=s,(d=new p(ua(va(r))))._nextDay&&(d.add(1,\"d\"),d._nextDay=void 0),d}function Ha(e,a,t,s){return Sa(e,a,t,s,!1)}l.createFromInputFallback=t(\"value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.\",function(e){e._d=new Date(e._i+(e._useUTC?\" UTC\":\"\"))}),l.ISO_8601=function(){},l.RFC_2822=function(){};var ba=t(\"moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var e=Ha.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:f()}),ja=t(\"moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var e=Ha.apply(null,arguments);return this.isValid()&&e.isValid()?this<e?this:e:f()});function xa(e,a){var t,s;if(1===a.length&&_(a[0])&&(a=a[0]),!a.length)return Ha();for(t=a[0],s=1;s<a.length;++s)a[s].isValid()&&!a[s][e](t)||(t=a[s]);return t}var Oa=[\"year\",\"quarter\",\"month\",\"week\",\"day\",\"hour\",\"minute\",\"second\",\"millisecond\"];function Pa(e){var a=W(e),t=a.year||0,s=a.quarter||0,n=a.month||0,d=a.week||a.isoWeek||0,r=a.day||0,_=a.hour||0,i=a.minute||0,o=a.second||0,m=a.millisecond||0;this._isValid=function(e){for(var a in e)if(-1===we.call(Oa,a)||null!=e[a]&&isNaN(e[a]))return!1;for(var t=!1,s=0;s<Oa.length;++s)if(e[Oa[s]]){if(t)return!1;parseFloat(e[Oa[s]])!==g(e[Oa[s]])&&(t=!0)}return!0}(a),this._milliseconds=+m+1e3*o+6e4*i+1e3*_*60*60,this._days=+r+7*d,this._months=+n+3*s+12*t,this._data={},this._locale=ma(),this._bubble()}function Wa(e){return e instanceof Pa}function Aa(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function Ea(e,t){C(e,0,0,function(){var e=this.utcOffset(),a=\"+\";return e<0&&(e=-e,a=\"-\"),a+F(~~(e/60),2)+t+F(~~e%60,2)})}Ea(\"Z\",\":\"),Ea(\"ZZ\",\"\"),ie(\"Z\",de),ie(\"ZZ\",de),le([\"Z\",\"ZZ\"],function(e,a,t){t._useUTC=!0,t._tzm=za(de,e)});var Fa=/([\\+\\-]|\\d\\d)/gi;function za(e,a){var t=(a||\"\").match(e);if(null===t)return null;var s=((t[t.length-1]||[])+\"\").match(Fa)||[\"-\",0,0],n=60*s[1]+g(s[2]);return 0===n?0:\"+\"===s[0]?n:-n}function Ja(e,a){var t,s;return a._isUTC?(t=a.clone(),s=(D(e)||u(e)?e.valueOf():Ha(e).valueOf())-t.valueOf(),t._d.setTime(t._d.valueOf()+s),l.updateOffset(t,!1),t):Ha(e).local()}function Na(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Ra(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}l.updateOffset=function(){};var Ca=/^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/,Ia=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Ua(e,a){var t,s,n,d=e,r=null;return Wa(e)?d={ms:e._milliseconds,d:e._days,M:e._months}:m(e)?(d={},a?d[a]=e:d.milliseconds=e):(r=Ca.exec(e))?(t=\"-\"===r[1]?-1:1,d={y:0,d:g(r[ce])*t,h:g(r[Ye])*t,m:g(r[ye])*t,s:g(r[fe])*t,ms:g(Aa(1e3*r[ke]))*t}):(r=Ia.exec(e))?(t=\"-\"===r[1]?-1:1,d={y:Ga(r[2],t),M:Ga(r[3],t),w:Ga(r[4],t),d:Ga(r[5],t),h:Ga(r[6],t),m:Ga(r[7],t),s:Ga(r[8],t)}):null==d?d={}:\"object\"==typeof d&&(\"from\"in d||\"to\"in d)&&(n=function(e,a){var t;if(!e.isValid()||!a.isValid())return{milliseconds:0,months:0};a=Ja(a,e),e.isBefore(a)?t=Va(e,a):((t=Va(a,e)).milliseconds=-t.milliseconds,t.months=-t.months);return t}(Ha(d.from),Ha(d.to)),(d={}).ms=n.milliseconds,d.M=n.months),s=new Pa(d),Wa(e)&&h(e,\"_locale\")&&(s._locale=e._locale),s}function Ga(e,a){var t=e&&parseFloat(e.replace(\",\",\".\"));return(isNaN(t)?0:t)*a}function Va(e,a){var t={};return t.months=a.month()-e.month()+12*(a.year()-e.year()),e.clone().add(t.months,\"M\").isAfter(a)&&--t.months,t.milliseconds=+a-+e.clone().add(t.months,\"M\"),t}function Ka(s,n){return function(e,a){var t;return null===a||isNaN(+a)||(S(n,\"moment().\"+n+\"(period, number) is deprecated. Please use moment().\"+n+\"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.\"),t=e,e=a,a=t),Za(this,Ua(e=\"string\"==typeof e?+e:e,a),s),this}}function Za(e,a,t,s){var n=a._milliseconds,d=Aa(a._days),r=Aa(a._months);e.isValid()&&(s=null==s||s,r&&We(e,He(e,\"Month\")+r*t),d&&be(e,\"Date\",He(e,\"Date\")+d*t),n&&e._d.setTime(e._d.valueOf()+n*t),s&&l.updateOffset(e,d||r))}Ua.fn=Pa.prototype,Ua.invalid=function(){return Ua(NaN)};var $a=Ka(1,\"add\"),Ba=Ka(-1,\"subtract\");function qa(e,a){var t=12*(a.year()-e.year())+(a.month()-e.month()),s=e.clone().add(t,\"months\");return-(t+(a-s<0?(a-s)/(s-e.clone().add(t-1,\"months\")):(a-s)/(e.clone().add(t+1,\"months\")-s)))||0}function Qa(e){var a;return void 0===e?this._locale._abbr:(null!=(a=ma(e))&&(this._locale=a),this)}l.defaultFormat=\"YYYY-MM-DDTHH:mm:ssZ\",l.defaultFormatUtc=\"YYYY-MM-DDTHH:mm:ss[Z]\";var Xa=t(\"moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.\",function(e){return void 0===e?this.localeData():this.locale(e)});function et(){return this._locale}var at=126227808e5;function tt(e,a){return(e%a+a)%a}function st(e,a,t){return e<100&&0<=e?new Date(e+400,a,t)-at:new Date(e,a,t).valueOf()}function nt(e,a,t){return e<100&&0<=e?Date.UTC(e+400,a,t)-at:Date.UTC(e,a,t)}function dt(e,a){C(0,[e,e.length],0,a)}function rt(e,a,t,s,n){var d;return null==e?Ce(this,s,n).year:((d=Ie(e,s,n))<a&&(a=d),function(e,a,t,s,n){var d=Re(e,a,t,s,n),r=Je(d.year,0,d.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}.call(this,e,a,t,s,n))}C(0,[\"gg\",2],0,function(){return this.weekYear()%100}),C(0,[\"GG\",2],0,function(){return this.isoWeekYear()%100}),dt(\"gggg\",\"weekYear\"),dt(\"ggggg\",\"weekYear\"),dt(\"GGGG\",\"isoWeekYear\"),dt(\"GGGGG\",\"isoWeekYear\"),O(\"weekYear\",\"gg\"),O(\"isoWeekYear\",\"GG\"),E(\"weekYear\",1),E(\"isoWeekYear\",1),ie(\"G\",se),ie(\"g\",se),ie(\"GG\",B,V),ie(\"gg\",B,V),ie(\"GGGG\",ee,Z),ie(\"gggg\",ee,Z),ie(\"GGGGG\",ae,$),ie(\"ggggg\",ae,$),Me([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],function(e,a,t,s){a[s.substr(0,2)]=g(e)}),Me([\"gg\",\"GG\"],function(e,a,t,s){a[s]=l.parseTwoDigitYear(e)}),C(\"Q\",0,\"Qo\",\"quarter\"),O(\"quarter\",\"Q\"),E(\"quarter\",7),ie(\"Q\",G),le(\"Q\",function(e,a){a[Le]=3*(g(e)-1)}),C(\"D\",[\"DD\",2],\"Do\",\"date\"),O(\"date\",\"D\"),E(\"date\",9),ie(\"D\",B),ie(\"DD\",B,V),ie(\"Do\",function(e,a){return e?a._dayOfMonthOrdinalParse||a._ordinalParse:a._dayOfMonthOrdinalParseLenient}),le([\"D\",\"DD\"],ce),le(\"Do\",function(e,a){a[ce]=g(e.match(B)[0])});var _t=Se(\"Date\",!0);C(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\"),O(\"dayOfYear\",\"DDD\"),E(\"dayOfYear\",4),ie(\"DDD\",X),ie(\"DDDD\",K),le([\"DDD\",\"DDDD\"],function(e,a,t){t._dayOfYear=g(e)}),C(\"m\",[\"mm\",2],0,\"minute\"),O(\"minute\",\"m\"),E(\"minute\",14),ie(\"m\",B),ie(\"mm\",B,V),le([\"m\",\"mm\"],ye);var it=Se(\"Minutes\",!1);C(\"s\",[\"ss\",2],0,\"second\"),O(\"second\",\"s\"),E(\"second\",15),ie(\"s\",B),ie(\"ss\",B,V),le([\"s\",\"ss\"],fe);var ot,mt=Se(\"Seconds\",!1);for(C(\"S\",0,0,function(){return~~(this.millisecond()/100)}),C(0,[\"SS\",2],0,function(){return~~(this.millisecond()/10)}),C(0,[\"SSS\",3],0,\"millisecond\"),C(0,[\"SSSS\",4],0,function(){return 10*this.millisecond()}),C(0,[\"SSSSS\",5],0,function(){return 100*this.millisecond()}),C(0,[\"SSSSSS\",6],0,function(){return 1e3*this.millisecond()}),C(0,[\"SSSSSSS\",7],0,function(){return 1e4*this.millisecond()}),C(0,[\"SSSSSSSS\",8],0,function(){return 1e5*this.millisecond()}),C(0,[\"SSSSSSSSS\",9],0,function(){return 1e6*this.millisecond()}),O(\"millisecond\",\"ms\"),E(\"millisecond\",16),ie(\"S\",X,G),ie(\"SS\",X,V),ie(\"SSS\",X,K),ot=\"SSSS\";ot.length<=9;ot+=\"S\")ie(ot,te);function ut(e,a){a[ke]=g(1e3*(\"0.\"+e))}for(ot=\"S\";ot.length<=9;ot+=\"S\")le(ot,ut);var lt=Se(\"Milliseconds\",!1);C(\"z\",0,0,\"zoneAbbr\"),C(\"zz\",0,0,\"zoneName\");var Mt=p.prototype;function ht(e){return e}Mt.add=$a,Mt.calendar=function(e,a){var t=e||Ha(),s=Ja(t,this).startOf(\"day\"),n=l.calendarFormat(this,s)||\"sameElse\",d=a&&(H(a[n])?a[n].call(this,t):a[n]);return this.format(d||this.localeData().calendar(n,this,Ha(t)))},Mt.clone=function(){return new p(this)},Mt.diff=function(e,a,t){var s,n,d;if(!this.isValid())return NaN;if(!(s=Ja(e,this)).isValid())return NaN;switch(n=6e4*(s.utcOffset()-this.utcOffset()),a=P(a)){case\"year\":d=qa(this,s)/12;break;case\"month\":d=qa(this,s);break;case\"quarter\":d=qa(this,s)/3;break;case\"second\":d=(this-s)/1e3;break;case\"minute\":d=(this-s)/6e4;break;case\"hour\":d=(this-s)/36e5;break;case\"day\":d=(this-s-n)/864e5;break;case\"week\":d=(this-s-n)/6048e5;break;default:d=this-s}return t?d:T(d)},Mt.endOf=function(e){var a;if(void 0===(e=P(e))||\"millisecond\"===e||!this.isValid())return this;var t=this._isUTC?nt:st;switch(e){case\"year\":a=t(this.year()+1,0,1)-1;break;case\"quarter\":a=t(this.year(),this.month()-this.month()%3+3,1)-1;break;case\"month\":a=t(this.year(),this.month()+1,1)-1;break;case\"week\":a=t(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case\"isoWeek\":a=t(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case\"day\":case\"date\":a=t(this.year(),this.month(),this.date()+1)-1;break;case\"hour\":a=this._d.valueOf(),a+=36e5-tt(a+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case\"minute\":a=this._d.valueOf(),a+=6e4-tt(a,6e4)-1;break;case\"second\":a=this._d.valueOf(),a+=1e3-tt(a,1e3)-1;break}return this._d.setTime(a),l.updateOffset(this,!0),this},Mt.format=function(e){e||(e=this.isUtc()?l.defaultFormatUtc:l.defaultFormat);var a=I(this,e);return this.localeData().postformat(a)},Mt.from=function(e,a){return this.isValid()&&(D(e)&&e.isValid()||Ha(e).isValid())?Ua({to:this,from:e}).locale(this.locale()).humanize(!a):this.localeData().invalidDate()},Mt.fromNow=function(e){return this.from(Ha(),e)},Mt.to=function(e,a){return this.isValid()&&(D(e)&&e.isValid()||Ha(e).isValid())?Ua({from:this,to:e}).locale(this.locale()).humanize(!a):this.localeData().invalidDate()},Mt.toNow=function(e){return this.to(Ha(),e)},Mt.get=function(e){return H(this[e=P(e)])?this[e]():this},Mt.invalidAt=function(){return Y(this).overflow},Mt.isAfter=function(e,a){var t=D(e)?e:Ha(e);return!(!this.isValid()||!t.isValid())&&(\"millisecond\"===(a=P(a)||\"millisecond\")?this.valueOf()>t.valueOf():t.valueOf()<this.clone().startOf(a).valueOf())},Mt.isBefore=function(e,a){var t=D(e)?e:Ha(e);return!(!this.isValid()||!t.isValid())&&(\"millisecond\"===(a=P(a)||\"millisecond\")?this.valueOf()<t.valueOf():this.clone().endOf(a).valueOf()<t.valueOf())},Mt.isBetween=function(e,a,t,s){var n=D(e)?e:Ha(e),d=D(a)?a:Ha(a);return!!(this.isValid()&&n.isValid()&&d.isValid())&&(\"(\"===(s=s||\"()\")[0]?this.isAfter(n,t):!this.isBefore(n,t))&&(\")\"===s[1]?this.isBefore(d,t):!this.isAfter(d,t))},Mt.isSame=function(e,a){var t,s=D(e)?e:Ha(e);return!(!this.isValid()||!s.isValid())&&(\"millisecond\"===(a=P(a)||\"millisecond\")?this.valueOf()===s.valueOf():(t=s.valueOf(),this.clone().startOf(a).valueOf()<=t&&t<=this.clone().endOf(a).valueOf()))},Mt.isSameOrAfter=function(e,a){return this.isSame(e,a)||this.isAfter(e,a)},Mt.isSameOrBefore=function(e,a){return this.isSame(e,a)||this.isBefore(e,a)},Mt.isValid=function(){return y(this)},Mt.lang=Xa,Mt.locale=Qa,Mt.localeData=et,Mt.max=ja,Mt.min=ba,Mt.parsingFlags=function(){return L({},Y(this))},Mt.set=function(e,a){if(\"object\"==typeof e)for(var t=function(e){var a=[];for(var t in e)a.push({unit:t,priority:A[t]});return a.sort(function(e,a){return e.priority-a.priority}),a}(e=W(e)),s=0;s<t.length;s++)this[t[s].unit](e[t[s].unit]);else if(H(this[e=P(e)]))return this[e](a);return this},Mt.startOf=function(e){var a;if(void 0===(e=P(e))||\"millisecond\"===e||!this.isValid())return this;var t=this._isUTC?nt:st;switch(e){case\"year\":a=t(this.year(),0,1);break;case\"quarter\":a=t(this.year(),this.month()-this.month()%3,1);break;case\"month\":a=t(this.year(),this.month(),1);break;case\"week\":a=t(this.year(),this.month(),this.date()-this.weekday());break;case\"isoWeek\":a=t(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case\"day\":case\"date\":a=t(this.year(),this.month(),this.date());break;case\"hour\":a=this._d.valueOf(),a-=tt(a+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case\"minute\":a=this._d.valueOf(),a-=tt(a,6e4);break;case\"second\":a=this._d.valueOf(),a-=tt(a,1e3);break}return this._d.setTime(a),l.updateOffset(this,!0),this},Mt.subtract=Ba,Mt.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},Mt.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},Mt.toDate=function(){return new Date(this.valueOf())},Mt.toISOString=function(e){if(!this.isValid())return null;var a=!0!==e,t=a?this.clone().utc():this;return t.year()<0||9999<t.year()?I(t,a?\"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]\":\"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ\"):H(Date.prototype.toISOString)?a?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace(\"Z\",I(t,\"Z\")):I(t,a?\"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]\":\"YYYY-MM-DD[T]HH:mm:ss.SSSZ\")},Mt.inspect=function(){if(!this.isValid())return\"moment.invalid(/* \"+this._i+\" */)\";var e=\"moment\",a=\"\";this.isLocal()||(e=0===this.utcOffset()?\"moment.utc\":\"moment.parseZone\",a=\"Z\");var t=\"[\"+e+'(\"]',s=0<=this.year()&&this.year()<=9999?\"YYYY\":\"YYYYYY\",n=a+'[\")]';return this.format(t+s+\"-MM-DD[T]HH:mm:ss.SSS\"+n)},Mt.toJSON=function(){return this.isValid()?this.toISOString():null},Mt.toString=function(){return this.clone().locale(\"en\").format(\"ddd MMM DD YYYY HH:mm:ss [GMT]ZZ\")},Mt.unix=function(){return Math.floor(this.valueOf()/1e3)},Mt.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},Mt.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},Mt.year=ve,Mt.isLeapYear=function(){return ge(this.year())},Mt.weekYear=function(e){return rt.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},Mt.isoWeekYear=function(e){return rt.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},Mt.quarter=Mt.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},Mt.month=Ae,Mt.daysInMonth=function(){return je(this.year(),this.month())},Mt.week=Mt.weeks=function(e){var a=this.localeData().week(this);return null==e?a:this.add(7*(e-a),\"d\")},Mt.isoWeek=Mt.isoWeeks=function(e){var a=Ce(this,1,4).week;return null==e?a:this.add(7*(e-a),\"d\")},Mt.weeksInYear=function(){var e=this.localeData()._week;return Ie(this.year(),e.dow,e.doy)},Mt.isoWeeksInYear=function(){return Ie(this.year(),1,4)},Mt.date=_t,Mt.day=Mt.days=function(e){if(!this.isValid())return null!=e?this:NaN;var a,t,s=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(a=e,t=this.localeData(),e=\"string\"!=typeof a?a:isNaN(a)?\"number\"==typeof(a=t.weekdaysParse(a))?a:null:parseInt(a,10),this.add(e-s,\"d\")):s},Mt.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var a=(this.day()+7-this.localeData()._week.dow)%7;return null==e?a:this.add(e-a,\"d\")},Mt.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null==e)return this.day()||7;var a,t,s=(a=e,t=this.localeData(),\"string\"==typeof a?t.weekdaysParse(a)%7||7:isNaN(a)?null:a);return this.day(this.day()%7?s:s-7)},Mt.dayOfYear=function(e){var a=Math.round((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))/864e5)+1;return null==e?a:this.add(e-a,\"d\")},Mt.hour=Mt.hours=ta,Mt.minute=Mt.minutes=it,Mt.second=Mt.seconds=mt,Mt.millisecond=Mt.milliseconds=lt,Mt.utcOffset=function(e,a,t){var s,n=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null==e)return this._isUTC?n:Na(this);if(\"string\"==typeof e){if(null===(e=za(de,e)))return this}else Math.abs(e)<16&&!t&&(e*=60);return!this._isUTC&&a&&(s=Na(this)),this._offset=e,this._isUTC=!0,null!=s&&this.add(s,\"m\"),n!==e&&(!a||this._changeInProgress?Za(this,Ua(e-n,\"m\"),1,!1):this._changeInProgress||(this._changeInProgress=!0,l.updateOffset(this,!0),this._changeInProgress=null)),this},Mt.utc=function(e){return this.utcOffset(0,e)},Mt.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Na(this),\"m\")),this},Mt.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if(\"string\"==typeof this._i){var e=za(ne,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},Mt.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Ha(e).utcOffset():0,(this.utcOffset()-e)%60==0)},Mt.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},Mt.isLocal=function(){return!!this.isValid()&&!this._isUTC},Mt.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},Mt.isUtc=Ra,Mt.isUTC=Ra,Mt.zoneAbbr=function(){return this._isUTC?\"UTC\":\"\"},Mt.zoneName=function(){return this._isUTC?\"Coordinated Universal Time\":\"\"},Mt.dates=t(\"dates accessor is deprecated. Use date instead.\",_t),Mt.months=t(\"months accessor is deprecated. Use month instead\",Ae),Mt.years=t(\"years accessor is deprecated. Use year instead\",ve),Mt.zone=t(\"moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/\",function(e,a){return null!=e?(\"string\"!=typeof e&&(e=-e),this.utcOffset(e,a),this):-this.utcOffset()}),Mt.isDSTShifted=t(\"isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information\",function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var e={};if(k(e,this),(e=va(e))._a){var a=e._isUTC?c(e._a):Ha(e._a);this._isDSTShifted=this.isValid()&&0<r(e._a,a.toArray())}else this._isDSTShifted=!1;return this._isDSTShifted});var Lt=j.prototype;function ct(e,a,t,s){var n=ma(),d=c().set(s,a);return n[t](d,e)}function Yt(e,a,t){if(m(e)&&(a=e,e=void 0),e=e||\"\",null!=a)return ct(e,a,t,\"month\");var s,n=[];for(s=0;s<12;s++)n[s]=ct(e,s,t,\"month\");return n}function yt(e,a,t,s){a=(\"boolean\"==typeof e?m(a)&&(t=a,a=void 0):(a=e,e=!1,m(t=a)&&(t=a,a=void 0)),a||\"\");var n,d=ma(),r=e?d._week.dow:0;if(null!=t)return ct(a,(t+r)%7,s,\"day\");var _=[];for(n=0;n<7;n++)_[n]=ct(a,(n+r)%7,s,\"day\");return _}Lt.calendar=function(e,a,t){var s=this._calendar[e]||this._calendar.sameElse;return H(s)?s.call(a,t):s},Lt.longDateFormat=function(e){var a=this._longDateFormat[e],t=this._longDateFormat[e.toUpperCase()];return a||!t?a:(this._longDateFormat[e]=t.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])},Lt.invalidDate=function(){return this._invalidDate},Lt.ordinal=function(e){return this._ordinal.replace(\"%d\",e)},Lt.preparse=ht,Lt.postformat=ht,Lt.relativeTime=function(e,a,t,s){var n=this._relativeTime[t];return H(n)?n(e,a,t,s):n.replace(/%d/i,e)},Lt.pastFuture=function(e,a){var t=this._relativeTime[0<e?\"future\":\"past\"];return H(t)?t(a):t.replace(/%s/i,a)},Lt.set=function(e){var a,t;for(t in e)H(a=e[t])?this[t]=a:this[\"_\"+t]=a;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+\"|\"+/\\d{1,2}/.source)},Lt.months=function(e,a){return e?_(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||xe).test(a)?\"format\":\"standalone\"][e.month()]:_(this._months)?this._months:this._months.standalone},Lt.monthsShort=function(e,a){return e?_(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[xe.test(a)?\"format\":\"standalone\"][e.month()]:_(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},Lt.monthsParse=function(e,a,t){var s,n,d;if(this._monthsParseExact)return function(e,a,t){var s,n,d,r=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],s=0;s<12;++s)d=c([2e3,s]),this._shortMonthsParse[s]=this.monthsShort(d,\"\").toLocaleLowerCase(),this._longMonthsParse[s]=this.months(d,\"\").toLocaleLowerCase();return t?\"MMM\"===a?-1!==(n=we.call(this._shortMonthsParse,r))?n:null:-1!==(n=we.call(this._longMonthsParse,r))?n:null:\"MMM\"===a?-1!==(n=we.call(this._shortMonthsParse,r))?n:-1!==(n=we.call(this._longMonthsParse,r))?n:null:-1!==(n=we.call(this._longMonthsParse,r))?n:-1!==(n=we.call(this._shortMonthsParse,r))?n:null}.call(this,e,a,t);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(n=c([2e3,s]),t&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp(\"^\"+this.months(n,\"\").replace(\".\",\"\")+\"$\",\"i\"),this._shortMonthsParse[s]=new RegExp(\"^\"+this.monthsShort(n,\"\").replace(\".\",\"\")+\"$\",\"i\")),t||this._monthsParse[s]||(d=\"^\"+this.months(n,\"\")+\"|^\"+this.monthsShort(n,\"\"),this._monthsParse[s]=new RegExp(d.replace(\".\",\"\"),\"i\")),t&&\"MMMM\"===a&&this._longMonthsParse[s].test(e))return s;if(t&&\"MMM\"===a&&this._shortMonthsParse[s].test(e))return s;if(!t&&this._monthsParse[s].test(e))return s}},Lt.monthsRegex=function(e){return this._monthsParseExact?(h(this,\"_monthsRegex\")||ze.call(this),e?this._monthsStrictRegex:this._monthsRegex):(h(this,\"_monthsRegex\")||(this._monthsRegex=Fe),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},Lt.monthsShortRegex=function(e){return this._monthsParseExact?(h(this,\"_monthsRegex\")||ze.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(h(this,\"_monthsShortRegex\")||(this._monthsShortRegex=Ee),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},Lt.week=function(e){return Ce(e,this._week.dow,this._week.doy).week},Lt.firstDayOfYear=function(){return this._week.doy},Lt.firstDayOfWeek=function(){return this._week.dow},Lt.weekdays=function(e,a){var t=_(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(a)?\"format\":\"standalone\"];return!0===e?Ue(t,this._week.dow):e?t[e.day()]:t},Lt.weekdaysMin=function(e){return!0===e?Ue(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},Lt.weekdaysShort=function(e){return!0===e?Ue(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},Lt.weekdaysParse=function(e,a,t){var s,n,d;if(this._weekdaysParseExact)return function(e,a,t){var s,n,d,r=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)d=c([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(d,\"\").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(d,\"\").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(d,\"\").toLocaleLowerCase();return t?\"dddd\"===a?-1!==(n=we.call(this._weekdaysParse,r))?n:null:\"ddd\"===a?-1!==(n=we.call(this._shortWeekdaysParse,r))?n:null:-1!==(n=we.call(this._minWeekdaysParse,r))?n:null:\"dddd\"===a?-1!==(n=we.call(this._weekdaysParse,r))?n:-1!==(n=we.call(this._shortWeekdaysParse,r))?n:-1!==(n=we.call(this._minWeekdaysParse,r))?n:null:\"ddd\"===a?-1!==(n=we.call(this._shortWeekdaysParse,r))?n:-1!==(n=we.call(this._weekdaysParse,r))?n:-1!==(n=we.call(this._minWeekdaysParse,r))?n:null:-1!==(n=we.call(this._minWeekdaysParse,r))?n:-1!==(n=we.call(this._weekdaysParse,r))?n:-1!==(n=we.call(this._shortWeekdaysParse,r))?n:null}.call(this,e,a,t);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(n=c([2e3,1]).day(s),t&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp(\"^\"+this.weekdays(n,\"\").replace(\".\",\"\\\\.?\")+\"$\",\"i\"),this._shortWeekdaysParse[s]=new RegExp(\"^\"+this.weekdaysShort(n,\"\").replace(\".\",\"\\\\.?\")+\"$\",\"i\"),this._minWeekdaysParse[s]=new RegExp(\"^\"+this.weekdaysMin(n,\"\").replace(\".\",\"\\\\.?\")+\"$\",\"i\")),this._weekdaysParse[s]||(d=\"^\"+this.weekdays(n,\"\")+\"|^\"+this.weekdaysShort(n,\"\")+\"|^\"+this.weekdaysMin(n,\"\"),this._weekdaysParse[s]=new RegExp(d.replace(\".\",\"\"),\"i\")),t&&\"dddd\"===a&&this._fullWeekdaysParse[s].test(e))return s;if(t&&\"ddd\"===a&&this._shortWeekdaysParse[s].test(e))return s;if(t&&\"dd\"===a&&this._minWeekdaysParse[s].test(e))return s;if(!t&&this._weekdaysParse[s].test(e))return s}},Lt.weekdaysRegex=function(e){return this._weekdaysParseExact?(h(this,\"_weekdaysRegex\")||qe.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(h(this,\"_weekdaysRegex\")||(this._weekdaysRegex=Ze),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},Lt.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(h(this,\"_weekdaysRegex\")||qe.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(h(this,\"_weekdaysShortRegex\")||(this._weekdaysShortRegex=$e),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},Lt.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(h(this,\"_weekdaysRegex\")||qe.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(h(this,\"_weekdaysMinRegex\")||(this._weekdaysMinRegex=Be),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},Lt.isPM=function(e){return\"p\"===(e+\"\").toLowerCase().charAt(0)},Lt.meridiem=function(e,a,t){return 11<e?t?\"pm\":\"PM\":t?\"am\":\"AM\"},ia(\"en\",{dayOfMonthOrdinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var a=e%10;return e+(1===g(e%100/10)?\"th\":1===a?\"st\":2===a?\"nd\":3===a?\"rd\":\"th\")}}),l.lang=t(\"moment.lang is deprecated. Use moment.locale instead.\",ia),l.langData=t(\"moment.langData is deprecated. Use moment.localeData instead.\",ma);var ft=Math.abs;function kt(e,a,t,s){var n=Ua(a,t);return e._milliseconds+=s*n._milliseconds,e._days+=s*n._days,e._months+=s*n._months,e._bubble()}function pt(e){return e<0?Math.floor(e):Math.ceil(e)}function Dt(e){return 4800*e/146097}function Tt(e){return 146097*e/4800}function gt(e){return function(){return this.as(e)}}var wt=gt(\"ms\"),vt=gt(\"s\"),St=gt(\"m\"),Ht=gt(\"h\"),bt=gt(\"d\"),jt=gt(\"w\"),xt=gt(\"M\"),Ot=gt(\"Q\"),Pt=gt(\"y\");function Wt(e){return function(){return this.isValid()?this._data[e]:NaN}}var At=Wt(\"milliseconds\"),Et=Wt(\"seconds\"),Ft=Wt(\"minutes\"),zt=Wt(\"hours\"),Jt=Wt(\"days\"),Nt=Wt(\"months\"),Rt=Wt(\"years\");var Ct=Math.round,It={ss:44,s:45,m:45,h:22,d:26,M:11};var Ut=Math.abs;function Gt(e){return(0<e)-(e<0)||+e}function Vt(){if(!this.isValid())return this.localeData().invalidDate();var e,a,t=Ut(this._milliseconds)/1e3,s=Ut(this._days),n=Ut(this._months);a=T((e=T(t/60))/60),t%=60,e%=60;var d=T(n/12),r=n%=12,_=s,i=a,o=e,m=t?t.toFixed(3).replace(/\\.?0+$/,\"\"):\"\",u=this.asSeconds();if(!u)return\"P0D\";var l=u<0?\"-\":\"\",M=Gt(this._months)!==Gt(u)?\"-\":\"\",h=Gt(this._days)!==Gt(u)?\"-\":\"\",L=Gt(this._milliseconds)!==Gt(u)?\"-\":\"\";return l+\"P\"+(d?M+d+\"Y\":\"\")+(r?M+r+\"M\":\"\")+(_?h+_+\"D\":\"\")+(i||o||m?\"T\":\"\")+(i?L+i+\"H\":\"\")+(o?L+o+\"M\":\"\")+(m?L+m+\"S\":\"\")}var Kt=Pa.prototype;Kt.isValid=function(){return this._isValid},Kt.abs=function(){var e=this._data;return this._milliseconds=ft(this._milliseconds),this._days=ft(this._days),this._months=ft(this._months),e.milliseconds=ft(e.milliseconds),e.seconds=ft(e.seconds),e.minutes=ft(e.minutes),e.hours=ft(e.hours),e.months=ft(e.months),e.years=ft(e.years),this},Kt.add=function(e,a){return kt(this,e,a,1)},Kt.subtract=function(e,a){return kt(this,e,a,-1)},Kt.as=function(e){if(!this.isValid())return NaN;var a,t,s=this._milliseconds;if(\"month\"===(e=P(e))||\"quarter\"===e||\"year\"===e)switch(a=this._days+s/864e5,t=this._months+Dt(a),e){case\"month\":return t;case\"quarter\":return t/3;case\"year\":return t/12}else switch(a=this._days+Math.round(Tt(this._months)),e){case\"week\":return a/7+s/6048e5;case\"day\":return a+s/864e5;case\"hour\":return 24*a+s/36e5;case\"minute\":return 1440*a+s/6e4;case\"second\":return 86400*a+s/1e3;case\"millisecond\":return Math.floor(864e5*a)+s;default:throw new Error(\"Unknown unit \"+e)}},Kt.asMilliseconds=wt,Kt.asSeconds=vt,Kt.asMinutes=St,Kt.asHours=Ht,Kt.asDays=bt,Kt.asWeeks=jt,Kt.asMonths=xt,Kt.asQuarters=Ot,Kt.asYears=Pt,Kt.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*g(this._months/12):NaN},Kt._bubble=function(){var e,a,t,s,n,d=this._milliseconds,r=this._days,_=this._months,i=this._data;return 0<=d&&0<=r&&0<=_||d<=0&&r<=0&&_<=0||(d+=864e5*pt(Tt(_)+r),_=r=0),i.milliseconds=d%1e3,e=T(d/1e3),i.seconds=e%60,a=T(e/60),i.minutes=a%60,t=T(a/60),i.hours=t%24,_+=n=T(Dt(r+=T(t/24))),r-=pt(Tt(n)),s=T(_/12),_%=12,i.days=r,i.months=_,i.years=s,this},Kt.clone=function(){return Ua(this)},Kt.get=function(e){return e=P(e),this.isValid()?this[e+\"s\"]():NaN},Kt.milliseconds=At,Kt.seconds=Et,Kt.minutes=Ft,Kt.hours=zt,Kt.days=Jt,Kt.weeks=function(){return T(this.days()/7)},Kt.months=Nt,Kt.years=Rt,Kt.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var a,t,s,n,d,r,_,i,o,m,u,l=this.localeData(),M=(t=!e,s=l,n=Ua(a=this).abs(),d=Ct(n.as(\"s\")),r=Ct(n.as(\"m\")),_=Ct(n.as(\"h\")),i=Ct(n.as(\"d\")),o=Ct(n.as(\"M\")),m=Ct(n.as(\"y\")),(u=d<=It.ss&&[\"s\",d]||d<It.s&&[\"ss\",d]||r<=1&&[\"m\"]||r<It.m&&[\"mm\",r]||_<=1&&[\"h\"]||_<It.h&&[\"hh\",_]||i<=1&&[\"d\"]||i<It.d&&[\"dd\",i]||o<=1&&[\"M\"]||o<It.M&&[\"MM\",o]||m<=1&&[\"y\"]||[\"yy\",m])[2]=t,u[3]=0<+a,u[4]=s,function(e,a,t,s,n){return n.relativeTime(a||1,!!t,e,s)}.apply(null,u));return e&&(M=l.pastFuture(+this,M)),l.postformat(M)},Kt.toISOString=Vt,Kt.toString=Vt,Kt.toJSON=Vt,Kt.locale=Qa,Kt.localeData=et,Kt.toIsoString=t(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",Vt),Kt.lang=Xa,C(\"X\",0,0,\"unix\"),C(\"x\",0,0,\"valueOf\"),ie(\"x\",se),ie(\"X\",/[+-]?\\d+(\\.\\d{1,3})?/),le(\"X\",function(e,a,t){t._d=new Date(1e3*parseFloat(e,10))}),le(\"x\",function(e,a,t){t._d=new Date(g(e))}),l.version=\"2.24.0\",e=Ha,l.fn=Mt,l.min=function(){return xa(\"isBefore\",[].slice.call(arguments,0))},l.max=function(){return xa(\"isAfter\",[].slice.call(arguments,0))},l.now=function(){return Date.now?Date.now():+new Date},l.utc=c,l.unix=function(e){return Ha(1e3*e)},l.months=function(e,a){return Yt(e,a,\"months\")},l.isDate=u,l.locale=ia,l.invalid=f,l.duration=Ua,l.isMoment=D,l.weekdays=function(e,a,t){return yt(e,a,t,\"weekdays\")},l.parseZone=function(){return Ha.apply(null,arguments).parseZone()},l.localeData=ma,l.isDuration=Wa,l.monthsShort=function(e,a){return Yt(e,a,\"monthsShort\")},l.weekdaysMin=function(e,a,t){return yt(e,a,t,\"weekdaysMin\")},l.defineLocale=oa,l.updateLocale=function(e,a){if(null!=a){var t,s,n=sa;null!=(s=_a(e))&&(n=s._config),(t=new j(a=b(n,a))).parentLocale=na[e],na[e]=t,ia(e)}else null!=na[e]&&(null!=na[e].parentLocale?na[e]=na[e].parentLocale:null!=na[e]&&delete na[e]);return na[e]},l.locales=function(){return s(na)},l.weekdaysShort=function(e,a,t){return yt(e,a,t,\"weekdaysShort\")},l.normalizeUnits=P,l.relativeTimeRounding=function(e){return void 0===e?Ct:\"function\"==typeof e&&(Ct=e,!0)},l.relativeTimeThreshold=function(e,a){return void 0!==It[e]&&(void 0===a?It[e]:(It[e]=a,\"s\"===e&&(It.ss=a-1),!0))},l.calendarFormat=function(e,a){var t=e.diff(a,\"days\",!0);return t<-6?\"sameElse\":t<-1?\"lastWeek\":t<0?\"lastDay\":t<1?\"sameDay\":t<2?\"nextDay\":t<7?\"nextWeek\":\"sameElse\"},l.prototype=Mt,l.HTML5_FMT={DATETIME_LOCAL:\"YYYY-MM-DDTHH:mm\",DATETIME_LOCAL_SECONDS:\"YYYY-MM-DDTHH:mm:ss\",DATETIME_LOCAL_MS:\"YYYY-MM-DDTHH:mm:ss.SSS\",DATE:\"YYYY-MM-DD\",TIME:\"HH:mm\",TIME_SECONDS:\"HH:mm:ss\",TIME_MS:\"HH:mm:ss.SSS\",WEEK:\"GGGG-[W]WW\",MONTH:\"YYYY-MM\"},l.defineLocale(\"af\",{months:\"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember\".split(\"_\"),monthsShort:\"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des\".split(\"_\"),weekdays:\"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag\".split(\"_\"),weekdaysShort:\"Son_Maa_Din_Woe_Don_Vry_Sat\".split(\"_\"),weekdaysMin:\"So_Ma_Di_Wo_Do_Vr_Sa\".split(\"_\"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,a,t){return e<12?t?\"vm\":\"VM\":t?\"nm\":\"NM\"},longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Vandag om] LT\",nextDay:\"[M\\xf4re om] LT\",nextWeek:\"dddd [om] LT\",lastDay:\"[Gister om] LT\",lastWeek:\"[Laas] dddd [om] LT\",sameElse:\"L\"},relativeTime:{future:\"oor %s\",past:\"%s gelede\",s:\"'n paar sekondes\",ss:\"%d sekondes\",m:\"'n minuut\",mm:\"%d minute\",h:\"'n uur\",hh:\"%d ure\",d:\"'n dag\",dd:\"%d dae\",M:\"'n maand\",MM:\"%d maande\",y:\"'n jaar\",yy:\"%d jaar\"},dayOfMonthOrdinalParse:/\\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?\"ste\":\"de\")},week:{dow:1,doy:4}}),l.defineLocale(\"ar-dz\",{months:\"\\u062c\\u0627\\u0646\\u0641\\u064a_\\u0641\\u064a\\u0641\\u0631\\u064a_\\u0645\\u0627\\u0631\\u0633_\\u0623\\u0641\\u0631\\u064a\\u0644_\\u0645\\u0627\\u064a_\\u062c\\u0648\\u0627\\u0646_\\u062c\\u0648\\u064a\\u0644\\u064a\\u0629_\\u0623\\u0648\\u062a_\\u0633\\u0628\\u062a\\u0645\\u0628\\u0631_\\u0623\\u0643\\u062a\\u0648\\u0628\\u0631_\\u0646\\u0648\\u0641\\u0645\\u0628\\u0631_\\u062f\\u064a\\u0633\\u0645\\u0628\\u0631\".split(\"_\"),monthsShort:\"\\u062c\\u0627\\u0646\\u0641\\u064a_\\u0641\\u064a\\u0641\\u0631\\u064a_\\u0645\\u0627\\u0631\\u0633_\\u0623\\u0641\\u0631\\u064a\\u0644_\\u0645\\u0627\\u064a_\\u062c\\u0648\\u0627\\u0646_\\u062c\\u0648\\u064a\\u0644\\u064a\\u0629_\\u0623\\u0648\\u062a_\\u0633\\u0628\\u062a\\u0645\\u0628\\u0631_\\u0623\\u0643\\u062a\\u0648\\u0628\\u0631_\\u0646\\u0648\\u0641\\u0645\\u0628\\u0631_\\u062f\\u064a\\u0633\\u0645\\u0628\\u0631\".split(\"_\"),weekdays:\"\\u0627\\u0644\\u0623\\u062d\\u062f_\\u0627\\u0644\\u0625\\u062b\\u0646\\u064a\\u0646_\\u0627\\u0644\\u062b\\u0644\\u0627\\u062b\\u0627\\u0621_\\u0627\\u0644\\u0623\\u0631\\u0628\\u0639\\u0627\\u0621_\\u0627\\u0644\\u062e\\u0645\\u064a\\u0633_\\u0627\\u0644\\u062c\\u0645\\u0639\\u0629_\\u0627\\u0644\\u0633\\u0628\\u062a\".split(\"_\"),weekdaysShort:\"\\u0627\\u062d\\u062f_\\u0627\\u062b\\u0646\\u064a\\u0646_\\u062b\\u0644\\u0627\\u062b\\u0627\\u0621_\\u0627\\u0631\\u0628\\u0639\\u0627\\u0621_\\u062e\\u0645\\u064a\\u0633_\\u062c\\u0645\\u0639\\u0629_\\u0633\\u0628\\u062a\".split(\"_\"),weekdaysMin:\"\\u0623\\u062d_\\u0625\\u062b_\\u062b\\u0644\\u0627_\\u0623\\u0631_\\u062e\\u0645_\\u062c\\u0645_\\u0633\\u0628\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[\\u0627\\u0644\\u064a\\u0648\\u0645 \\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",nextDay:\"[\\u063a\\u062f\\u0627 \\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",nextWeek:\"dddd [\\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",lastDay:\"[\\u0623\\u0645\\u0633 \\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",lastWeek:\"dddd [\\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",sameElse:\"L\"},relativeTime:{future:\"\\u0641\\u064a %s\",past:\"\\u0645\\u0646\\u0630 %s\",s:\"\\u062b\\u0648\\u0627\\u0646\",ss:\"%d \\u062b\\u0627\\u0646\\u064a\\u0629\",m:\"\\u062f\\u0642\\u064a\\u0642\\u0629\",mm:\"%d \\u062f\\u0642\\u0627\\u0626\\u0642\",h:\"\\u0633\\u0627\\u0639\\u0629\",hh:\"%d \\u0633\\u0627\\u0639\\u0627\\u062a\",d:\"\\u064a\\u0648\\u0645\",dd:\"%d \\u0623\\u064a\\u0627\\u0645\",M:\"\\u0634\\u0647\\u0631\",MM:\"%d \\u0623\\u0634\\u0647\\u0631\",y:\"\\u0633\\u0646\\u0629\",yy:\"%d \\u0633\\u0646\\u0648\\u0627\\u062a\"},week:{dow:0,doy:4}}),l.defineLocale(\"ar-kw\",{months:\"\\u064a\\u0646\\u0627\\u064a\\u0631_\\u0641\\u0628\\u0631\\u0627\\u064a\\u0631_\\u0645\\u0627\\u0631\\u0633_\\u0623\\u0628\\u0631\\u064a\\u0644_\\u0645\\u0627\\u064a_\\u064a\\u0648\\u0646\\u064a\\u0648_\\u064a\\u0648\\u0644\\u064a\\u0648\\u0632_\\u063a\\u0634\\u062a_\\u0634\\u062a\\u0646\\u0628\\u0631_\\u0623\\u0643\\u062a\\u0648\\u0628\\u0631_\\u0646\\u0648\\u0646\\u0628\\u0631_\\u062f\\u062c\\u0646\\u0628\\u0631\".split(\"_\"),monthsShort:\"\\u064a\\u0646\\u0627\\u064a\\u0631_\\u0641\\u0628\\u0631\\u0627\\u064a\\u0631_\\u0645\\u0627\\u0631\\u0633_\\u0623\\u0628\\u0631\\u064a\\u0644_\\u0645\\u0627\\u064a_\\u064a\\u0648\\u0646\\u064a\\u0648_\\u064a\\u0648\\u0644\\u064a\\u0648\\u0632_\\u063a\\u0634\\u062a_\\u0634\\u062a\\u0646\\u0628\\u0631_\\u0623\\u0643\\u062a\\u0648\\u0628\\u0631_\\u0646\\u0648\\u0646\\u0628\\u0631_\\u062f\\u062c\\u0646\\u0628\\u0631\".split(\"_\"),weekdays:\"\\u0627\\u0644\\u0623\\u062d\\u062f_\\u0627\\u0644\\u0625\\u062a\\u0646\\u064a\\u0646_\\u0627\\u0644\\u062b\\u0644\\u0627\\u062b\\u0627\\u0621_\\u0627\\u0644\\u0623\\u0631\\u0628\\u0639\\u0627\\u0621_\\u0627\\u0644\\u062e\\u0645\\u064a\\u0633_\\u0627\\u0644\\u062c\\u0645\\u0639\\u0629_\\u0627\\u0644\\u0633\\u0628\\u062a\".split(\"_\"),weekdaysShort:\"\\u0627\\u062d\\u062f_\\u0627\\u062a\\u0646\\u064a\\u0646_\\u062b\\u0644\\u0627\\u062b\\u0627\\u0621_\\u0627\\u0631\\u0628\\u0639\\u0627\\u0621_\\u062e\\u0645\\u064a\\u0633_\\u062c\\u0645\\u0639\\u0629_\\u0633\\u0628\\u062a\".split(\"_\"),weekdaysMin:\"\\u062d_\\u0646_\\u062b_\\u0631_\\u062e_\\u062c_\\u0633\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[\\u0627\\u0644\\u064a\\u0648\\u0645 \\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",nextDay:\"[\\u063a\\u062f\\u0627 \\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",nextWeek:\"dddd [\\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",lastDay:\"[\\u0623\\u0645\\u0633 \\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",lastWeek:\"dddd [\\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",sameElse:\"L\"},relativeTime:{future:\"\\u0641\\u064a %s\",past:\"\\u0645\\u0646\\u0630 %s\",s:\"\\u062b\\u0648\\u0627\\u0646\",ss:\"%d \\u062b\\u0627\\u0646\\u064a\\u0629\",m:\"\\u062f\\u0642\\u064a\\u0642\\u0629\",mm:\"%d \\u062f\\u0642\\u0627\\u0626\\u0642\",h:\"\\u0633\\u0627\\u0639\\u0629\",hh:\"%d \\u0633\\u0627\\u0639\\u0627\\u062a\",d:\"\\u064a\\u0648\\u0645\",dd:\"%d \\u0623\\u064a\\u0627\\u0645\",M:\"\\u0634\\u0647\\u0631\",MM:\"%d \\u0623\\u0634\\u0647\\u0631\",y:\"\\u0633\\u0646\\u0629\",yy:\"%d \\u0633\\u0646\\u0648\\u0627\\u062a\"},week:{dow:0,doy:12}});var Zt={1:\"1\",2:\"2\",3:\"3\",4:\"4\",5:\"5\",6:\"6\",7:\"7\",8:\"8\",9:\"9\",0:\"0\"},$t=function(e){return 0===e?0:1===e?1:2===e?2:3<=e%100&&e%100<=10?3:11<=e%100?4:5},Bt={s:[\"\\u0623\\u0642\\u0644 \\u0645\\u0646 \\u062b\\u0627\\u0646\\u064a\\u0629\",\"\\u062b\\u0627\\u0646\\u064a\\u0629 \\u0648\\u0627\\u062d\\u062f\\u0629\",[\"\\u062b\\u0627\\u0646\\u064a\\u062a\\u0627\\u0646\",\"\\u062b\\u0627\\u0646\\u064a\\u062a\\u064a\\u0646\"],\"%d \\u062b\\u0648\\u0627\\u0646\",\"%d \\u062b\\u0627\\u0646\\u064a\\u0629\",\"%d \\u062b\\u0627\\u0646\\u064a\\u0629\"],m:[\"\\u0623\\u0642\\u0644 \\u0645\\u0646 \\u062f\\u0642\\u064a\\u0642\\u0629\",\"\\u062f\\u0642\\u064a\\u0642\\u0629 \\u0648\\u0627\\u062d\\u062f\\u0629\",[\"\\u062f\\u0642\\u064a\\u0642\\u062a\\u0627\\u0646\",\"\\u062f\\u0642\\u064a\\u0642\\u062a\\u064a\\u0646\"],\"%d \\u062f\\u0642\\u0627\\u0626\\u0642\",\"%d \\u062f\\u0642\\u064a\\u0642\\u0629\",\"%d \\u062f\\u0642\\u064a\\u0642\\u0629\"],h:[\"\\u0623\\u0642\\u0644 \\u0645\\u0646 \\u0633\\u0627\\u0639\\u0629\",\"\\u0633\\u0627\\u0639\\u0629 \\u0648\\u0627\\u062d\\u062f\\u0629\",[\"\\u0633\\u0627\\u0639\\u062a\\u0627\\u0646\",\"\\u0633\\u0627\\u0639\\u062a\\u064a\\u0646\"],\"%d \\u0633\\u0627\\u0639\\u0627\\u062a\",\"%d \\u0633\\u0627\\u0639\\u0629\",\"%d \\u0633\\u0627\\u0639\\u0629\"],d:[\"\\u0623\\u0642\\u0644 \\u0645\\u0646 \\u064a\\u0648\\u0645\",\"\\u064a\\u0648\\u0645 \\u0648\\u0627\\u062d\\u062f\",[\"\\u064a\\u0648\\u0645\\u0627\\u0646\",\"\\u064a\\u0648\\u0645\\u064a\\u0646\"],\"%d \\u0623\\u064a\\u0627\\u0645\",\"%d \\u064a\\u0648\\u0645\\u064b\\u0627\",\"%d \\u064a\\u0648\\u0645\"],M:[\"\\u0623\\u0642\\u0644 \\u0645\\u0646 \\u0634\\u0647\\u0631\",\"\\u0634\\u0647\\u0631 \\u0648\\u0627\\u062d\\u062f\",[\"\\u0634\\u0647\\u0631\\u0627\\u0646\",\"\\u0634\\u0647\\u0631\\u064a\\u0646\"],\"%d \\u0623\\u0634\\u0647\\u0631\",\"%d \\u0634\\u0647\\u0631\\u0627\",\"%d \\u0634\\u0647\\u0631\"],y:[\"\\u0623\\u0642\\u0644 \\u0645\\u0646 \\u0639\\u0627\\u0645\",\"\\u0639\\u0627\\u0645 \\u0648\\u0627\\u062d\\u062f\",[\"\\u0639\\u0627\\u0645\\u0627\\u0646\",\"\\u0639\\u0627\\u0645\\u064a\\u0646\"],\"%d \\u0623\\u0639\\u0648\\u0627\\u0645\",\"%d \\u0639\\u0627\\u0645\\u064b\\u0627\",\"%d \\u0639\\u0627\\u0645\"]},qt=function(r){return function(e,a,t,s){var n=$t(e),d=Bt[r][$t(e)];return 2===n&&(d=d[a?0:1]),d.replace(/%d/i,e)}},Qt=[\"\\u064a\\u0646\\u0627\\u064a\\u0631\",\"\\u0641\\u0628\\u0631\\u0627\\u064a\\u0631\",\"\\u0645\\u0627\\u0631\\u0633\",\"\\u0623\\u0628\\u0631\\u064a\\u0644\",\"\\u0645\\u0627\\u064a\\u0648\",\"\\u064a\\u0648\\u0646\\u064a\\u0648\",\"\\u064a\\u0648\\u0644\\u064a\\u0648\",\"\\u0623\\u063a\\u0633\\u0637\\u0633\",\"\\u0633\\u0628\\u062a\\u0645\\u0628\\u0631\",\"\\u0623\\u0643\\u062a\\u0648\\u0628\\u0631\",\"\\u0646\\u0648\\u0641\\u0645\\u0628\\u0631\",\"\\u062f\\u064a\\u0633\\u0645\\u0628\\u0631\"];l.defineLocale(\"ar-ly\",{months:Qt,monthsShort:Qt,weekdays:\"\\u0627\\u0644\\u0623\\u062d\\u062f_\\u0627\\u0644\\u0625\\u062b\\u0646\\u064a\\u0646_\\u0627\\u0644\\u062b\\u0644\\u0627\\u062b\\u0627\\u0621_\\u0627\\u0644\\u0623\\u0631\\u0628\\u0639\\u0627\\u0621_\\u0627\\u0644\\u062e\\u0645\\u064a\\u0633_\\u0627\\u0644\\u062c\\u0645\\u0639\\u0629_\\u0627\\u0644\\u0633\\u0628\\u062a\".split(\"_\"),weekdaysShort:\"\\u0623\\u062d\\u062f_\\u0625\\u062b\\u0646\\u064a\\u0646_\\u062b\\u0644\\u0627\\u062b\\u0627\\u0621_\\u0623\\u0631\\u0628\\u0639\\u0627\\u0621_\\u062e\\u0645\\u064a\\u0633_\\u062c\\u0645\\u0639\\u0629_\\u0633\\u0628\\u062a\".split(\"_\"),weekdaysMin:\"\\u062d_\\u0646_\\u062b_\\u0631_\\u062e_\\u062c_\\u0633\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"D/\\u200fM/\\u200fYYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},meridiemParse:/\\u0635|\\u0645/,isPM:function(e){return\"\\u0645\"===e},meridiem:function(e,a,t){return e<12?\"\\u0635\":\"\\u0645\"},calendar:{sameDay:\"[\\u0627\\u0644\\u064a\\u0648\\u0645 \\u0639\\u0646\\u062f \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",nextDay:\"[\\u063a\\u062f\\u064b\\u0627 \\u0639\\u0646\\u062f \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",nextWeek:\"dddd [\\u0639\\u0646\\u062f \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",lastDay:\"[\\u0623\\u0645\\u0633 \\u0639\\u0646\\u062f \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",lastWeek:\"dddd [\\u0639\\u0646\\u062f \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",sameElse:\"L\"},relativeTime:{future:\"\\u0628\\u0639\\u062f %s\",past:\"\\u0645\\u0646\\u0630 %s\",s:qt(\"s\"),ss:qt(\"s\"),m:qt(\"m\"),mm:qt(\"m\"),h:qt(\"h\"),hh:qt(\"h\"),d:qt(\"d\"),dd:qt(\"d\"),M:qt(\"M\"),MM:qt(\"M\"),y:qt(\"y\"),yy:qt(\"y\")},preparse:function(e){return e.replace(/\\u060c/g,\",\")},postformat:function(e){return e.replace(/\\d/g,function(e){return Zt[e]}).replace(/,/g,\"\\u060c\")},week:{dow:6,doy:12}}),l.defineLocale(\"ar-ma\",{months:\"\\u064a\\u0646\\u0627\\u064a\\u0631_\\u0641\\u0628\\u0631\\u0627\\u064a\\u0631_\\u0645\\u0627\\u0631\\u0633_\\u0623\\u0628\\u0631\\u064a\\u0644_\\u0645\\u0627\\u064a_\\u064a\\u0648\\u0646\\u064a\\u0648_\\u064a\\u0648\\u0644\\u064a\\u0648\\u0632_\\u063a\\u0634\\u062a_\\u0634\\u062a\\u0646\\u0628\\u0631_\\u0623\\u0643\\u062a\\u0648\\u0628\\u0631_\\u0646\\u0648\\u0646\\u0628\\u0631_\\u062f\\u062c\\u0646\\u0628\\u0631\".split(\"_\"),monthsShort:\"\\u064a\\u0646\\u0627\\u064a\\u0631_\\u0641\\u0628\\u0631\\u0627\\u064a\\u0631_\\u0645\\u0627\\u0631\\u0633_\\u0623\\u0628\\u0631\\u064a\\u0644_\\u0645\\u0627\\u064a_\\u064a\\u0648\\u0646\\u064a\\u0648_\\u064a\\u0648\\u0644\\u064a\\u0648\\u0632_\\u063a\\u0634\\u062a_\\u0634\\u062a\\u0646\\u0628\\u0631_\\u0623\\u0643\\u062a\\u0648\\u0628\\u0631_\\u0646\\u0648\\u0646\\u0628\\u0631_\\u062f\\u062c\\u0646\\u0628\\u0631\".split(\"_\"),weekdays:\"\\u0627\\u0644\\u0623\\u062d\\u062f_\\u0627\\u0644\\u0625\\u062a\\u0646\\u064a\\u0646_\\u0627\\u0644\\u062b\\u0644\\u0627\\u062b\\u0627\\u0621_\\u0627\\u0644\\u0623\\u0631\\u0628\\u0639\\u0627\\u0621_\\u0627\\u0644\\u062e\\u0645\\u064a\\u0633_\\u0627\\u0644\\u062c\\u0645\\u0639\\u0629_\\u0627\\u0644\\u0633\\u0628\\u062a\".split(\"_\"),weekdaysShort:\"\\u0627\\u062d\\u062f_\\u0627\\u062a\\u0646\\u064a\\u0646_\\u062b\\u0644\\u0627\\u062b\\u0627\\u0621_\\u0627\\u0631\\u0628\\u0639\\u0627\\u0621_\\u062e\\u0645\\u064a\\u0633_\\u062c\\u0645\\u0639\\u0629_\\u0633\\u0628\\u062a\".split(\"_\"),weekdaysMin:\"\\u062d_\\u0646_\\u062b_\\u0631_\\u062e_\\u062c_\\u0633\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[\\u0627\\u0644\\u064a\\u0648\\u0645 \\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",nextDay:\"[\\u063a\\u062f\\u0627 \\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",nextWeek:\"dddd [\\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",lastDay:\"[\\u0623\\u0645\\u0633 \\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",lastWeek:\"dddd [\\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",sameElse:\"L\"},relativeTime:{future:\"\\u0641\\u064a %s\",past:\"\\u0645\\u0646\\u0630 %s\",s:\"\\u062b\\u0648\\u0627\\u0646\",ss:\"%d \\u062b\\u0627\\u0646\\u064a\\u0629\",m:\"\\u062f\\u0642\\u064a\\u0642\\u0629\",mm:\"%d \\u062f\\u0642\\u0627\\u0626\\u0642\",h:\"\\u0633\\u0627\\u0639\\u0629\",hh:\"%d \\u0633\\u0627\\u0639\\u0627\\u062a\",d:\"\\u064a\\u0648\\u0645\",dd:\"%d \\u0623\\u064a\\u0627\\u0645\",M:\"\\u0634\\u0647\\u0631\",MM:\"%d \\u0623\\u0634\\u0647\\u0631\",y:\"\\u0633\\u0646\\u0629\",yy:\"%d \\u0633\\u0646\\u0648\\u0627\\u062a\"},week:{dow:6,doy:12}});var Xt={1:\"\\u0661\",2:\"\\u0662\",3:\"\\u0663\",4:\"\\u0664\",5:\"\\u0665\",6:\"\\u0666\",7:\"\\u0667\",8:\"\\u0668\",9:\"\\u0669\",0:\"\\u0660\"},es={\"\\u0661\":\"1\",\"\\u0662\":\"2\",\"\\u0663\":\"3\",\"\\u0664\":\"4\",\"\\u0665\":\"5\",\"\\u0666\":\"6\",\"\\u0667\":\"7\",\"\\u0668\":\"8\",\"\\u0669\":\"9\",\"\\u0660\":\"0\"};l.defineLocale(\"ar-sa\",{months:\"\\u064a\\u0646\\u0627\\u064a\\u0631_\\u0641\\u0628\\u0631\\u0627\\u064a\\u0631_\\u0645\\u0627\\u0631\\u0633_\\u0623\\u0628\\u0631\\u064a\\u0644_\\u0645\\u0627\\u064a\\u0648_\\u064a\\u0648\\u0646\\u064a\\u0648_\\u064a\\u0648\\u0644\\u064a\\u0648_\\u0623\\u063a\\u0633\\u0637\\u0633_\\u0633\\u0628\\u062a\\u0645\\u0628\\u0631_\\u0623\\u0643\\u062a\\u0648\\u0628\\u0631_\\u0646\\u0648\\u0641\\u0645\\u0628\\u0631_\\u062f\\u064a\\u0633\\u0645\\u0628\\u0631\".split(\"_\"),monthsShort:\"\\u064a\\u0646\\u0627\\u064a\\u0631_\\u0641\\u0628\\u0631\\u0627\\u064a\\u0631_\\u0645\\u0627\\u0631\\u0633_\\u0623\\u0628\\u0631\\u064a\\u0644_\\u0645\\u0627\\u064a\\u0648_\\u064a\\u0648\\u0646\\u064a\\u0648_\\u064a\\u0648\\u0644\\u064a\\u0648_\\u0623\\u063a\\u0633\\u0637\\u0633_\\u0633\\u0628\\u062a\\u0645\\u0628\\u0631_\\u0623\\u0643\\u062a\\u0648\\u0628\\u0631_\\u0646\\u0648\\u0641\\u0645\\u0628\\u0631_\\u062f\\u064a\\u0633\\u0645\\u0628\\u0631\".split(\"_\"),weekdays:\"\\u0627\\u0644\\u0623\\u062d\\u062f_\\u0627\\u0644\\u0625\\u062b\\u0646\\u064a\\u0646_\\u0627\\u0644\\u062b\\u0644\\u0627\\u062b\\u0627\\u0621_\\u0627\\u0644\\u0623\\u0631\\u0628\\u0639\\u0627\\u0621_\\u0627\\u0644\\u062e\\u0645\\u064a\\u0633_\\u0627\\u0644\\u062c\\u0645\\u0639\\u0629_\\u0627\\u0644\\u0633\\u0628\\u062a\".split(\"_\"),weekdaysShort:\"\\u0623\\u062d\\u062f_\\u0625\\u062b\\u0646\\u064a\\u0646_\\u062b\\u0644\\u0627\\u062b\\u0627\\u0621_\\u0623\\u0631\\u0628\\u0639\\u0627\\u0621_\\u062e\\u0645\\u064a\\u0633_\\u062c\\u0645\\u0639\\u0629_\\u0633\\u0628\\u062a\".split(\"_\"),weekdaysMin:\"\\u062d_\\u0646_\\u062b_\\u0631_\\u062e_\\u062c_\\u0633\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},meridiemParse:/\\u0635|\\u0645/,isPM:function(e){return\"\\u0645\"===e},meridiem:function(e,a,t){return e<12?\"\\u0635\":\"\\u0645\"},calendar:{sameDay:\"[\\u0627\\u0644\\u064a\\u0648\\u0645 \\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",nextDay:\"[\\u063a\\u062f\\u0627 \\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",nextWeek:\"dddd [\\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",lastDay:\"[\\u0623\\u0645\\u0633 \\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",lastWeek:\"dddd [\\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",sameElse:\"L\"},relativeTime:{future:\"\\u0641\\u064a %s\",past:\"\\u0645\\u0646\\u0630 %s\",s:\"\\u062b\\u0648\\u0627\\u0646\",ss:\"%d \\u062b\\u0627\\u0646\\u064a\\u0629\",m:\"\\u062f\\u0642\\u064a\\u0642\\u0629\",mm:\"%d \\u062f\\u0642\\u0627\\u0626\\u0642\",h:\"\\u0633\\u0627\\u0639\\u0629\",hh:\"%d \\u0633\\u0627\\u0639\\u0627\\u062a\",d:\"\\u064a\\u0648\\u0645\",dd:\"%d \\u0623\\u064a\\u0627\\u0645\",M:\"\\u0634\\u0647\\u0631\",MM:\"%d \\u0623\\u0634\\u0647\\u0631\",y:\"\\u0633\\u0646\\u0629\",yy:\"%d \\u0633\\u0646\\u0648\\u0627\\u062a\"},preparse:function(e){return e.replace(/[\\u0661\\u0662\\u0663\\u0664\\u0665\\u0666\\u0667\\u0668\\u0669\\u0660]/g,function(e){return es[e]}).replace(/\\u060c/g,\",\")},postformat:function(e){return e.replace(/\\d/g,function(e){return Xt[e]}).replace(/,/g,\"\\u060c\")},week:{dow:0,doy:6}}),l.defineLocale(\"ar-tn\",{months:\"\\u062c\\u0627\\u0646\\u0641\\u064a_\\u0641\\u064a\\u0641\\u0631\\u064a_\\u0645\\u0627\\u0631\\u0633_\\u0623\\u0641\\u0631\\u064a\\u0644_\\u0645\\u0627\\u064a_\\u062c\\u0648\\u0627\\u0646_\\u062c\\u0648\\u064a\\u0644\\u064a\\u0629_\\u0623\\u0648\\u062a_\\u0633\\u0628\\u062a\\u0645\\u0628\\u0631_\\u0623\\u0643\\u062a\\u0648\\u0628\\u0631_\\u0646\\u0648\\u0641\\u0645\\u0628\\u0631_\\u062f\\u064a\\u0633\\u0645\\u0628\\u0631\".split(\"_\"),monthsShort:\"\\u062c\\u0627\\u0646\\u0641\\u064a_\\u0641\\u064a\\u0641\\u0631\\u064a_\\u0645\\u0627\\u0631\\u0633_\\u0623\\u0641\\u0631\\u064a\\u0644_\\u0645\\u0627\\u064a_\\u062c\\u0648\\u0627\\u0646_\\u062c\\u0648\\u064a\\u0644\\u064a\\u0629_\\u0623\\u0648\\u062a_\\u0633\\u0628\\u062a\\u0645\\u0628\\u0631_\\u0623\\u0643\\u062a\\u0648\\u0628\\u0631_\\u0646\\u0648\\u0641\\u0645\\u0628\\u0631_\\u062f\\u064a\\u0633\\u0645\\u0628\\u0631\".split(\"_\"),weekdays:\"\\u0627\\u0644\\u0623\\u062d\\u062f_\\u0627\\u0644\\u0625\\u062b\\u0646\\u064a\\u0646_\\u0627\\u0644\\u062b\\u0644\\u0627\\u062b\\u0627\\u0621_\\u0627\\u0644\\u0623\\u0631\\u0628\\u0639\\u0627\\u0621_\\u0627\\u0644\\u062e\\u0645\\u064a\\u0633_\\u0627\\u0644\\u062c\\u0645\\u0639\\u0629_\\u0627\\u0644\\u0633\\u0628\\u062a\".split(\"_\"),weekdaysShort:\"\\u0623\\u062d\\u062f_\\u0625\\u062b\\u0646\\u064a\\u0646_\\u062b\\u0644\\u0627\\u062b\\u0627\\u0621_\\u0623\\u0631\\u0628\\u0639\\u0627\\u0621_\\u062e\\u0645\\u064a\\u0633_\\u062c\\u0645\\u0639\\u0629_\\u0633\\u0628\\u062a\".split(\"_\"),weekdaysMin:\"\\u062d_\\u0646_\\u062b_\\u0631_\\u062e_\\u062c_\\u0633\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[\\u0627\\u0644\\u064a\\u0648\\u0645 \\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",nextDay:\"[\\u063a\\u062f\\u0627 \\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",nextWeek:\"dddd [\\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",lastDay:\"[\\u0623\\u0645\\u0633 \\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",lastWeek:\"dddd [\\u0639\\u0644\\u0649 \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",sameElse:\"L\"},relativeTime:{future:\"\\u0641\\u064a %s\",past:\"\\u0645\\u0646\\u0630 %s\",s:\"\\u062b\\u0648\\u0627\\u0646\",ss:\"%d \\u062b\\u0627\\u0646\\u064a\\u0629\",m:\"\\u062f\\u0642\\u064a\\u0642\\u0629\",mm:\"%d \\u062f\\u0642\\u0627\\u0626\\u0642\",h:\"\\u0633\\u0627\\u0639\\u0629\",hh:\"%d \\u0633\\u0627\\u0639\\u0627\\u062a\",d:\"\\u064a\\u0648\\u0645\",dd:\"%d \\u0623\\u064a\\u0627\\u0645\",M:\"\\u0634\\u0647\\u0631\",MM:\"%d \\u0623\\u0634\\u0647\\u0631\",y:\"\\u0633\\u0646\\u0629\",yy:\"%d \\u0633\\u0646\\u0648\\u0627\\u062a\"},week:{dow:1,doy:4}});var as={1:\"\\u0661\",2:\"\\u0662\",3:\"\\u0663\",4:\"\\u0664\",5:\"\\u0665\",6:\"\\u0666\",7:\"\\u0667\",8:\"\\u0668\",9:\"\\u0669\",0:\"\\u0660\"},ts={\"\\u0661\":\"1\",\"\\u0662\":\"2\",\"\\u0663\":\"3\",\"\\u0664\":\"4\",\"\\u0665\":\"5\",\"\\u0666\":\"6\",\"\\u0667\":\"7\",\"\\u0668\":\"8\",\"\\u0669\":\"9\",\"\\u0660\":\"0\"},ss=function(e){return 0===e?0:1===e?1:2===e?2:3<=e%100&&e%100<=10?3:11<=e%100?4:5},ns={s:[\"\\u0623\\u0642\\u0644 \\u0645\\u0646 \\u062b\\u0627\\u0646\\u064a\\u0629\",\"\\u062b\\u0627\\u0646\\u064a\\u0629 \\u0648\\u0627\\u062d\\u062f\\u0629\",[\"\\u062b\\u0627\\u0646\\u064a\\u062a\\u0627\\u0646\",\"\\u062b\\u0627\\u0646\\u064a\\u062a\\u064a\\u0646\"],\"%d \\u062b\\u0648\\u0627\\u0646\",\"%d \\u062b\\u0627\\u0646\\u064a\\u0629\",\"%d \\u062b\\u0627\\u0646\\u064a\\u0629\"],m:[\"\\u0623\\u0642\\u0644 \\u0645\\u0646 \\u062f\\u0642\\u064a\\u0642\\u0629\",\"\\u062f\\u0642\\u064a\\u0642\\u0629 \\u0648\\u0627\\u062d\\u062f\\u0629\",[\"\\u062f\\u0642\\u064a\\u0642\\u062a\\u0627\\u0646\",\"\\u062f\\u0642\\u064a\\u0642\\u062a\\u064a\\u0646\"],\"%d \\u062f\\u0642\\u0627\\u0626\\u0642\",\"%d \\u062f\\u0642\\u064a\\u0642\\u0629\",\"%d \\u062f\\u0642\\u064a\\u0642\\u0629\"],h:[\"\\u0623\\u0642\\u0644 \\u0645\\u0646 \\u0633\\u0627\\u0639\\u0629\",\"\\u0633\\u0627\\u0639\\u0629 \\u0648\\u0627\\u062d\\u062f\\u0629\",[\"\\u0633\\u0627\\u0639\\u062a\\u0627\\u0646\",\"\\u0633\\u0627\\u0639\\u062a\\u064a\\u0646\"],\"%d \\u0633\\u0627\\u0639\\u0627\\u062a\",\"%d \\u0633\\u0627\\u0639\\u0629\",\"%d \\u0633\\u0627\\u0639\\u0629\"],d:[\"\\u0623\\u0642\\u0644 \\u0645\\u0646 \\u064a\\u0648\\u0645\",\"\\u064a\\u0648\\u0645 \\u0648\\u0627\\u062d\\u062f\",[\"\\u064a\\u0648\\u0645\\u0627\\u0646\",\"\\u064a\\u0648\\u0645\\u064a\\u0646\"],\"%d \\u0623\\u064a\\u0627\\u0645\",\"%d \\u064a\\u0648\\u0645\\u064b\\u0627\",\"%d \\u064a\\u0648\\u0645\"],M:[\"\\u0623\\u0642\\u0644 \\u0645\\u0646 \\u0634\\u0647\\u0631\",\"\\u0634\\u0647\\u0631 \\u0648\\u0627\\u062d\\u062f\",[\"\\u0634\\u0647\\u0631\\u0627\\u0646\",\"\\u0634\\u0647\\u0631\\u064a\\u0646\"],\"%d \\u0623\\u0634\\u0647\\u0631\",\"%d \\u0634\\u0647\\u0631\\u0627\",\"%d \\u0634\\u0647\\u0631\"],y:[\"\\u0623\\u0642\\u0644 \\u0645\\u0646 \\u0639\\u0627\\u0645\",\"\\u0639\\u0627\\u0645 \\u0648\\u0627\\u062d\\u062f\",[\"\\u0639\\u0627\\u0645\\u0627\\u0646\",\"\\u0639\\u0627\\u0645\\u064a\\u0646\"],\"%d \\u0623\\u0639\\u0648\\u0627\\u0645\",\"%d \\u0639\\u0627\\u0645\\u064b\\u0627\",\"%d \\u0639\\u0627\\u0645\"]},ds=function(r){return function(e,a,t,s){var n=ss(e),d=ns[r][ss(e)];return 2===n&&(d=d[a?0:1]),d.replace(/%d/i,e)}},rs=[\"\\u064a\\u0646\\u0627\\u064a\\u0631\",\"\\u0641\\u0628\\u0631\\u0627\\u064a\\u0631\",\"\\u0645\\u0627\\u0631\\u0633\",\"\\u0623\\u0628\\u0631\\u064a\\u0644\",\"\\u0645\\u0627\\u064a\\u0648\",\"\\u064a\\u0648\\u0646\\u064a\\u0648\",\"\\u064a\\u0648\\u0644\\u064a\\u0648\",\"\\u0623\\u063a\\u0633\\u0637\\u0633\",\"\\u0633\\u0628\\u062a\\u0645\\u0628\\u0631\",\"\\u0623\\u0643\\u062a\\u0648\\u0628\\u0631\",\"\\u0646\\u0648\\u0641\\u0645\\u0628\\u0631\",\"\\u062f\\u064a\\u0633\\u0645\\u0628\\u0631\"];l.defineLocale(\"ar\",{months:rs,monthsShort:rs,weekdays:\"\\u0627\\u0644\\u0623\\u062d\\u062f_\\u0627\\u0644\\u0625\\u062b\\u0646\\u064a\\u0646_\\u0627\\u0644\\u062b\\u0644\\u0627\\u062b\\u0627\\u0621_\\u0627\\u0644\\u0623\\u0631\\u0628\\u0639\\u0627\\u0621_\\u0627\\u0644\\u062e\\u0645\\u064a\\u0633_\\u0627\\u0644\\u062c\\u0645\\u0639\\u0629_\\u0627\\u0644\\u0633\\u0628\\u062a\".split(\"_\"),weekdaysShort:\"\\u0623\\u062d\\u062f_\\u0625\\u062b\\u0646\\u064a\\u0646_\\u062b\\u0644\\u0627\\u062b\\u0627\\u0621_\\u0623\\u0631\\u0628\\u0639\\u0627\\u0621_\\u062e\\u0645\\u064a\\u0633_\\u062c\\u0645\\u0639\\u0629_\\u0633\\u0628\\u062a\".split(\"_\"),weekdaysMin:\"\\u062d_\\u0646_\\u062b_\\u0631_\\u062e_\\u062c_\\u0633\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"D/\\u200fM/\\u200fYYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},meridiemParse:/\\u0635|\\u0645/,isPM:function(e){return\"\\u0645\"===e},meridiem:function(e,a,t){return e<12?\"\\u0635\":\"\\u0645\"},calendar:{sameDay:\"[\\u0627\\u0644\\u064a\\u0648\\u0645 \\u0639\\u0646\\u062f \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",nextDay:\"[\\u063a\\u062f\\u064b\\u0627 \\u0639\\u0646\\u062f \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",nextWeek:\"dddd [\\u0639\\u0646\\u062f \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",lastDay:\"[\\u0623\\u0645\\u0633 \\u0639\\u0646\\u062f \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",lastWeek:\"dddd [\\u0639\\u0646\\u062f \\u0627\\u0644\\u0633\\u0627\\u0639\\u0629] LT\",sameElse:\"L\"},relativeTime:{future:\"\\u0628\\u0639\\u062f %s\",past:\"\\u0645\\u0646\\u0630 %s\",s:ds(\"s\"),ss:ds(\"s\"),m:ds(\"m\"),mm:ds(\"m\"),h:ds(\"h\"),hh:ds(\"h\"),d:ds(\"d\"),dd:ds(\"d\"),M:ds(\"M\"),MM:ds(\"M\"),y:ds(\"y\"),yy:ds(\"y\")},preparse:function(e){return e.replace(/[\\u0661\\u0662\\u0663\\u0664\\u0665\\u0666\\u0667\\u0668\\u0669\\u0660]/g,function(e){return ts[e]}).replace(/\\u060c/g,\",\")},postformat:function(e){return e.replace(/\\d/g,function(e){return as[e]}).replace(/,/g,\"\\u060c\")},week:{dow:6,doy:12}});var _s={1:\"-inci\",5:\"-inci\",8:\"-inci\",70:\"-inci\",80:\"-inci\",2:\"-nci\",7:\"-nci\",20:\"-nci\",50:\"-nci\",3:\"-\\xfcnc\\xfc\",4:\"-\\xfcnc\\xfc\",100:\"-\\xfcnc\\xfc\",6:\"-nc\\u0131\",9:\"-uncu\",10:\"-uncu\",30:\"-uncu\",60:\"-\\u0131nc\\u0131\",90:\"-\\u0131nc\\u0131\"};function is(e,a,t){var s,n;return\"m\"===t?a?\"\\u0445\\u0432\\u0456\\u043b\\u0456\\u043d\\u0430\":\"\\u0445\\u0432\\u0456\\u043b\\u0456\\u043d\\u0443\":\"h\"===t?a?\"\\u0433\\u0430\\u0434\\u0437\\u0456\\u043d\\u0430\":\"\\u0433\\u0430\\u0434\\u0437\\u0456\\u043d\\u0443\":e+\" \"+(s=+e,n={ss:a?\"\\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u0430_\\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u044b_\\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\":\"\\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u0443_\\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u044b_\\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\",mm:a?\"\\u0445\\u0432\\u0456\\u043b\\u0456\\u043d\\u0430_\\u0445\\u0432\\u0456\\u043b\\u0456\\u043d\\u044b_\\u0445\\u0432\\u0456\\u043b\\u0456\\u043d\":\"\\u0445\\u0432\\u0456\\u043b\\u0456\\u043d\\u0443_\\u0445\\u0432\\u0456\\u043b\\u0456\\u043d\\u044b_\\u0445\\u0432\\u0456\\u043b\\u0456\\u043d\",hh:a?\"\\u0433\\u0430\\u0434\\u0437\\u0456\\u043d\\u0430_\\u0433\\u0430\\u0434\\u0437\\u0456\\u043d\\u044b_\\u0433\\u0430\\u0434\\u0437\\u0456\\u043d\":\"\\u0433\\u0430\\u0434\\u0437\\u0456\\u043d\\u0443_\\u0433\\u0430\\u0434\\u0437\\u0456\\u043d\\u044b_\\u0433\\u0430\\u0434\\u0437\\u0456\\u043d\",dd:\"\\u0434\\u0437\\u0435\\u043d\\u044c_\\u0434\\u043d\\u0456_\\u0434\\u0437\\u0451\\u043d\",MM:\"\\u043c\\u0435\\u0441\\u044f\\u0446_\\u043c\\u0435\\u0441\\u044f\\u0446\\u044b_\\u043c\\u0435\\u0441\\u044f\\u0446\\u0430\\u045e\",yy:\"\\u0433\\u043e\\u0434_\\u0433\\u0430\\u0434\\u044b_\\u0433\\u0430\\u0434\\u043e\\u045e\"}[t].split(\"_\"),s%10==1&&s%100!=11?n[0]:2<=s%10&&s%10<=4&&(s%100<10||20<=s%100)?n[1]:n[2])}l.defineLocale(\"az\",{months:\"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr\".split(\"_\"),monthsShort:\"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek\".split(\"_\"),weekdays:\"Bazar_Bazar ert\\u0259si_\\xc7\\u0259r\\u015f\\u0259nb\\u0259 ax\\u015fam\\u0131_\\xc7\\u0259r\\u015f\\u0259nb\\u0259_C\\xfcm\\u0259 ax\\u015fam\\u0131_C\\xfcm\\u0259_\\u015e\\u0259nb\\u0259\".split(\"_\"),weekdaysShort:\"Baz_BzE_\\xc7Ax_\\xc7\\u0259r_CAx_C\\xfcm_\\u015e\\u0259n\".split(\"_\"),weekdaysMin:\"Bz_BE_\\xc7A_\\xc7\\u0259_CA_C\\xfc_\\u015e\\u0259\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[bug\\xfcn saat] LT\",nextDay:\"[sabah saat] LT\",nextWeek:\"[g\\u0259l\\u0259n h\\u0259ft\\u0259] dddd [saat] LT\",lastDay:\"[d\\xfcn\\u0259n] LT\",lastWeek:\"[ke\\xe7\\u0259n h\\u0259ft\\u0259] dddd [saat] LT\",sameElse:\"L\"},relativeTime:{future:\"%s sonra\",past:\"%s \\u0259vv\\u0259l\",s:\"birne\\xe7\\u0259 saniy\\u0259\",ss:\"%d saniy\\u0259\",m:\"bir d\\u0259qiq\\u0259\",mm:\"%d d\\u0259qiq\\u0259\",h:\"bir saat\",hh:\"%d saat\",d:\"bir g\\xfcn\",dd:\"%d g\\xfcn\",M:\"bir ay\",MM:\"%d ay\",y:\"bir il\",yy:\"%d il\"},meridiemParse:/gec\\u0259|s\\u0259h\\u0259r|g\\xfcnd\\xfcz|ax\\u015fam/,isPM:function(e){return/^(g\\xfcnd\\xfcz|ax\\u015fam)$/.test(e)},meridiem:function(e,a,t){return e<4?\"gec\\u0259\":e<12?\"s\\u0259h\\u0259r\":e<17?\"g\\xfcnd\\xfcz\":\"ax\\u015fam\"},dayOfMonthOrdinalParse:/\\d{1,2}-(\\u0131nc\\u0131|inci|nci|\\xfcnc\\xfc|nc\\u0131|uncu)/,ordinal:function(e){if(0===e)return e+\"-\\u0131nc\\u0131\";var a=e%10;return e+(_s[a]||_s[e%100-a]||_s[100<=e?100:null])},week:{dow:1,doy:7}}),l.defineLocale(\"be\",{months:{format:\"\\u0441\\u0442\\u0443\\u0434\\u0437\\u0435\\u043d\\u044f_\\u043b\\u044e\\u0442\\u0430\\u0433\\u0430_\\u0441\\u0430\\u043a\\u0430\\u0432\\u0456\\u043a\\u0430_\\u043a\\u0440\\u0430\\u0441\\u0430\\u0432\\u0456\\u043a\\u0430_\\u0442\\u0440\\u0430\\u045e\\u043d\\u044f_\\u0447\\u044d\\u0440\\u0432\\u0435\\u043d\\u044f_\\u043b\\u0456\\u043f\\u0435\\u043d\\u044f_\\u0436\\u043d\\u0456\\u045e\\u043d\\u044f_\\u0432\\u0435\\u0440\\u0430\\u0441\\u043d\\u044f_\\u043a\\u0430\\u0441\\u0442\\u0440\\u044b\\u0447\\u043d\\u0456\\u043a\\u0430_\\u043b\\u0456\\u0441\\u0442\\u0430\\u043f\\u0430\\u0434\\u0430_\\u0441\\u043d\\u0435\\u0436\\u043d\\u044f\".split(\"_\"),standalone:\"\\u0441\\u0442\\u0443\\u0434\\u0437\\u0435\\u043d\\u044c_\\u043b\\u044e\\u0442\\u044b_\\u0441\\u0430\\u043a\\u0430\\u0432\\u0456\\u043a_\\u043a\\u0440\\u0430\\u0441\\u0430\\u0432\\u0456\\u043a_\\u0442\\u0440\\u0430\\u0432\\u0435\\u043d\\u044c_\\u0447\\u044d\\u0440\\u0432\\u0435\\u043d\\u044c_\\u043b\\u0456\\u043f\\u0435\\u043d\\u044c_\\u0436\\u043d\\u0456\\u0432\\u0435\\u043d\\u044c_\\u0432\\u0435\\u0440\\u0430\\u0441\\u0435\\u043d\\u044c_\\u043a\\u0430\\u0441\\u0442\\u0440\\u044b\\u0447\\u043d\\u0456\\u043a_\\u043b\\u0456\\u0441\\u0442\\u0430\\u043f\\u0430\\u0434_\\u0441\\u043d\\u0435\\u0436\\u0430\\u043d\\u044c\".split(\"_\")},monthsShort:\"\\u0441\\u0442\\u0443\\u0434_\\u043b\\u044e\\u0442_\\u0441\\u0430\\u043a_\\u043a\\u0440\\u0430\\u0441_\\u0442\\u0440\\u0430\\u0432_\\u0447\\u044d\\u0440\\u0432_\\u043b\\u0456\\u043f_\\u0436\\u043d\\u0456\\u0432_\\u0432\\u0435\\u0440_\\u043a\\u0430\\u0441\\u0442_\\u043b\\u0456\\u0441\\u0442_\\u0441\\u043d\\u0435\\u0436\".split(\"_\"),weekdays:{format:\"\\u043d\\u044f\\u0434\\u0437\\u0435\\u043b\\u044e_\\u043f\\u0430\\u043d\\u044f\\u0434\\u0437\\u0435\\u043b\\u0430\\u043a_\\u0430\\u045e\\u0442\\u043e\\u0440\\u0430\\u043a_\\u0441\\u0435\\u0440\\u0430\\u0434\\u0443_\\u0447\\u0430\\u0446\\u0432\\u0435\\u0440_\\u043f\\u044f\\u0442\\u043d\\u0456\\u0446\\u0443_\\u0441\\u0443\\u0431\\u043e\\u0442\\u0443\".split(\"_\"),standalone:\"\\u043d\\u044f\\u0434\\u0437\\u0435\\u043b\\u044f_\\u043f\\u0430\\u043d\\u044f\\u0434\\u0437\\u0435\\u043b\\u0430\\u043a_\\u0430\\u045e\\u0442\\u043e\\u0440\\u0430\\u043a_\\u0441\\u0435\\u0440\\u0430\\u0434\\u0430_\\u0447\\u0430\\u0446\\u0432\\u0435\\u0440_\\u043f\\u044f\\u0442\\u043d\\u0456\\u0446\\u0430_\\u0441\\u0443\\u0431\\u043e\\u0442\\u0430\".split(\"_\"),isFormat:/\\[ ?[\\u0423\\u0443\\u045e] ?(?:\\u043c\\u0456\\u043d\\u0443\\u043b\\u0443\\u044e|\\u043d\\u0430\\u0441\\u0442\\u0443\\u043f\\u043d\\u0443\\u044e)? ?\\] ?dddd/},weekdaysShort:\"\\u043d\\u0434_\\u043f\\u043d_\\u0430\\u0442_\\u0441\\u0440_\\u0447\\u0446_\\u043f\\u0442_\\u0441\\u0431\".split(\"_\"),weekdaysMin:\"\\u043d\\u0434_\\u043f\\u043d_\\u0430\\u0442_\\u0441\\u0440_\\u0447\\u0446_\\u043f\\u0442_\\u0441\\u0431\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY \\u0433.\",LLL:\"D MMMM YYYY \\u0433., HH:mm\",LLLL:\"dddd, D MMMM YYYY \\u0433., HH:mm\"},calendar:{sameDay:\"[\\u0421\\u0451\\u043d\\u043d\\u044f \\u045e] LT\",nextDay:\"[\\u0417\\u0430\\u045e\\u0442\\u0440\\u0430 \\u045e] LT\",lastDay:\"[\\u0423\\u0447\\u043e\\u0440\\u0430 \\u045e] LT\",nextWeek:function(){return\"[\\u0423] dddd [\\u045e] LT\"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return\"[\\u0423 \\u043c\\u0456\\u043d\\u0443\\u043b\\u0443\\u044e] dddd [\\u045e] LT\";case 1:case 2:case 4:return\"[\\u0423 \\u043c\\u0456\\u043d\\u0443\\u043b\\u044b] dddd [\\u045e] LT\"}},sameElse:\"L\"},relativeTime:{future:\"\\u043f\\u0440\\u0430\\u0437 %s\",past:\"%s \\u0442\\u0430\\u043c\\u0443\",s:\"\\u043d\\u0435\\u043a\\u0430\\u043b\\u044c\\u043a\\u0456 \\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\",m:is,mm:is,h:is,hh:is,d:\"\\u0434\\u0437\\u0435\\u043d\\u044c\",dd:is,M:\"\\u043c\\u0435\\u0441\\u044f\\u0446\",MM:is,y:\"\\u0433\\u043e\\u0434\",yy:is},meridiemParse:/\\u043d\\u043e\\u0447\\u044b|\\u0440\\u0430\\u043d\\u0456\\u0446\\u044b|\\u0434\\u043d\\u044f|\\u0432\\u0435\\u0447\\u0430\\u0440\\u0430/,isPM:function(e){return/^(\\u0434\\u043d\\u044f|\\u0432\\u0435\\u0447\\u0430\\u0440\\u0430)$/.test(e)},meridiem:function(e,a,t){return e<4?\"\\u043d\\u043e\\u0447\\u044b\":e<12?\"\\u0440\\u0430\\u043d\\u0456\\u0446\\u044b\":e<17?\"\\u0434\\u043d\\u044f\":\"\\u0432\\u0435\\u0447\\u0430\\u0440\\u0430\"},dayOfMonthOrdinalParse:/\\d{1,2}-(\\u0456|\\u044b|\\u0433\\u0430)/,ordinal:function(e,a){switch(a){case\"M\":case\"d\":case\"DDD\":case\"w\":case\"W\":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+\"-\\u044b\":e+\"-\\u0456\";case\"D\":return e+\"-\\u0433\\u0430\";default:return e}},week:{dow:1,doy:7}}),l.defineLocale(\"bg\",{months:\"\\u044f\\u043d\\u0443\\u0430\\u0440\\u0438_\\u0444\\u0435\\u0432\\u0440\\u0443\\u0430\\u0440\\u0438_\\u043c\\u0430\\u0440\\u0442_\\u0430\\u043f\\u0440\\u0438\\u043b_\\u043c\\u0430\\u0439_\\u044e\\u043d\\u0438_\\u044e\\u043b\\u0438_\\u0430\\u0432\\u0433\\u0443\\u0441\\u0442_\\u0441\\u0435\\u043f\\u0442\\u0435\\u043c\\u0432\\u0440\\u0438_\\u043e\\u043a\\u0442\\u043e\\u043c\\u0432\\u0440\\u0438_\\u043d\\u043e\\u0435\\u043c\\u0432\\u0440\\u0438_\\u0434\\u0435\\u043a\\u0435\\u043c\\u0432\\u0440\\u0438\".split(\"_\"),monthsShort:\"\\u044f\\u043d\\u0440_\\u0444\\u0435\\u0432_\\u043c\\u0430\\u0440_\\u0430\\u043f\\u0440_\\u043c\\u0430\\u0439_\\u044e\\u043d\\u0438_\\u044e\\u043b\\u0438_\\u0430\\u0432\\u0433_\\u0441\\u0435\\u043f_\\u043e\\u043a\\u0442_\\u043d\\u043e\\u0435_\\u0434\\u0435\\u043a\".split(\"_\"),weekdays:\"\\u043d\\u0435\\u0434\\u0435\\u043b\\u044f_\\u043f\\u043e\\u043d\\u0435\\u0434\\u0435\\u043b\\u043d\\u0438\\u043a_\\u0432\\u0442\\u043e\\u0440\\u043d\\u0438\\u043a_\\u0441\\u0440\\u044f\\u0434\\u0430_\\u0447\\u0435\\u0442\\u0432\\u044a\\u0440\\u0442\\u044a\\u043a_\\u043f\\u0435\\u0442\\u044a\\u043a_\\u0441\\u044a\\u0431\\u043e\\u0442\\u0430\".split(\"_\"),weekdaysShort:\"\\u043d\\u0435\\u0434_\\u043f\\u043e\\u043d_\\u0432\\u0442\\u043e_\\u0441\\u0440\\u044f_\\u0447\\u0435\\u0442_\\u043f\\u0435\\u0442_\\u0441\\u044a\\u0431\".split(\"_\"),weekdaysMin:\"\\u043d\\u0434_\\u043f\\u043d_\\u0432\\u0442_\\u0441\\u0440_\\u0447\\u0442_\\u043f\\u0442_\\u0441\\u0431\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"D.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY H:mm\",LLLL:\"dddd, D MMMM YYYY H:mm\"},calendar:{sameDay:\"[\\u0414\\u043d\\u0435\\u0441 \\u0432] LT\",nextDay:\"[\\u0423\\u0442\\u0440\\u0435 \\u0432] LT\",nextWeek:\"dddd [\\u0432] LT\",lastDay:\"[\\u0412\\u0447\\u0435\\u0440\\u0430 \\u0432] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return\"[\\u0412 \\u0438\\u0437\\u043c\\u0438\\u043d\\u0430\\u043b\\u0430\\u0442\\u0430] dddd [\\u0432] LT\";case 1:case 2:case 4:case 5:return\"[\\u0412 \\u0438\\u0437\\u043c\\u0438\\u043d\\u0430\\u043b\\u0438\\u044f] dddd [\\u0432] LT\"}},sameElse:\"L\"},relativeTime:{future:\"\\u0441\\u043b\\u0435\\u0434 %s\",past:\"\\u043f\\u0440\\u0435\\u0434\\u0438 %s\",s:\"\\u043d\\u044f\\u043a\\u043e\\u043b\\u043a\\u043e \\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u0438\",ss:\"%d \\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u0438\",m:\"\\u043c\\u0438\\u043d\\u0443\\u0442\\u0430\",mm:\"%d \\u043c\\u0438\\u043d\\u0443\\u0442\\u0438\",h:\"\\u0447\\u0430\\u0441\",hh:\"%d \\u0447\\u0430\\u0441\\u0430\",d:\"\\u0434\\u0435\\u043d\",dd:\"%d \\u0434\\u043d\\u0438\",M:\"\\u043c\\u0435\\u0441\\u0435\\u0446\",MM:\"%d \\u043c\\u0435\\u0441\\u0435\\u0446\\u0430\",y:\"\\u0433\\u043e\\u0434\\u0438\\u043d\\u0430\",yy:\"%d \\u0433\\u043e\\u0434\\u0438\\u043d\\u0438\"},dayOfMonthOrdinalParse:/\\d{1,2}-(\\u0435\\u0432|\\u0435\\u043d|\\u0442\\u0438|\\u0432\\u0438|\\u0440\\u0438|\\u043c\\u0438)/,ordinal:function(e){var a=e%10,t=e%100;return 0===e?e+\"-\\u0435\\u0432\":0===t?e+\"-\\u0435\\u043d\":10<t&&t<20?e+\"-\\u0442\\u0438\":1===a?e+\"-\\u0432\\u0438\":2===a?e+\"-\\u0440\\u0438\":7===a||8===a?e+\"-\\u043c\\u0438\":e+\"-\\u0442\\u0438\"},week:{dow:1,doy:7}}),l.defineLocale(\"bm\",{months:\"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M\\u025bkalo_Zuw\\u025bnkalo_Zuluyekalo_Utikalo_S\\u025btanburukalo_\\u0254kut\\u0254burukalo_Nowanburukalo_Desanburukalo\".split(\"_\"),monthsShort:\"Zan_Few_Mar_Awi_M\\u025b_Zuw_Zul_Uti_S\\u025bt_\\u0254ku_Now_Des\".split(\"_\"),weekdays:\"Kari_Nt\\u025bn\\u025bn_Tarata_Araba_Alamisa_Juma_Sibiri\".split(\"_\"),weekdaysShort:\"Kar_Nt\\u025b_Tar_Ara_Ala_Jum_Sib\".split(\"_\"),weekdaysMin:\"Ka_Nt_Ta_Ar_Al_Ju_Si\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"MMMM [tile] D [san] YYYY\",LLL:\"MMMM [tile] D [san] YYYY [l\\u025br\\u025b] HH:mm\",LLLL:\"dddd MMMM [tile] D [san] YYYY [l\\u025br\\u025b] HH:mm\"},calendar:{sameDay:\"[Bi l\\u025br\\u025b] LT\",nextDay:\"[Sini l\\u025br\\u025b] LT\",nextWeek:\"dddd [don l\\u025br\\u025b] LT\",lastDay:\"[Kunu l\\u025br\\u025b] LT\",lastWeek:\"dddd [t\\u025bm\\u025bnen l\\u025br\\u025b] LT\",sameElse:\"L\"},relativeTime:{future:\"%s k\\u0254n\\u0254\",past:\"a b\\u025b %s b\\u0254\",s:\"sanga dama dama\",ss:\"sekondi %d\",m:\"miniti kelen\",mm:\"miniti %d\",h:\"l\\u025br\\u025b kelen\",hh:\"l\\u025br\\u025b %d\",d:\"tile kelen\",dd:\"tile %d\",M:\"kalo kelen\",MM:\"kalo %d\",y:\"san kelen\",yy:\"san %d\"},week:{dow:1,doy:4}});var os={1:\"\\u09e7\",2:\"\\u09e8\",3:\"\\u09e9\",4:\"\\u09ea\",5:\"\\u09eb\",6:\"\\u09ec\",7:\"\\u09ed\",8:\"\\u09ee\",9:\"\\u09ef\",0:\"\\u09e6\"},ms={\"\\u09e7\":\"1\",\"\\u09e8\":\"2\",\"\\u09e9\":\"3\",\"\\u09ea\":\"4\",\"\\u09eb\":\"5\",\"\\u09ec\":\"6\",\"\\u09ed\":\"7\",\"\\u09ee\":\"8\",\"\\u09ef\":\"9\",\"\\u09e6\":\"0\"};l.defineLocale(\"bn\",{months:\"\\u099c\\u09be\\u09a8\\u09c1\\u09df\\u09be\\u09b0\\u09c0_\\u09ab\\u09c7\\u09ac\\u09cd\\u09b0\\u09c1\\u09df\\u09be\\u09b0\\u09bf_\\u09ae\\u09be\\u09b0\\u09cd\\u099a_\\u098f\\u09aa\\u09cd\\u09b0\\u09bf\\u09b2_\\u09ae\\u09c7_\\u099c\\u09c1\\u09a8_\\u099c\\u09c1\\u09b2\\u09be\\u0987_\\u0986\\u0997\\u09b8\\u09cd\\u099f_\\u09b8\\u09c7\\u09aa\\u09cd\\u099f\\u09c7\\u09ae\\u09cd\\u09ac\\u09b0_\\u0985\\u0995\\u09cd\\u099f\\u09cb\\u09ac\\u09b0_\\u09a8\\u09ad\\u09c7\\u09ae\\u09cd\\u09ac\\u09b0_\\u09a1\\u09bf\\u09b8\\u09c7\\u09ae\\u09cd\\u09ac\\u09b0\".split(\"_\"),monthsShort:\"\\u099c\\u09be\\u09a8\\u09c1_\\u09ab\\u09c7\\u09ac_\\u09ae\\u09be\\u09b0\\u09cd\\u099a_\\u098f\\u09aa\\u09cd\\u09b0_\\u09ae\\u09c7_\\u099c\\u09c1\\u09a8_\\u099c\\u09c1\\u09b2_\\u0986\\u0997_\\u09b8\\u09c7\\u09aa\\u09cd\\u099f_\\u0985\\u0995\\u09cd\\u099f\\u09cb_\\u09a8\\u09ad\\u09c7_\\u09a1\\u09bf\\u09b8\\u09c7\".split(\"_\"),weekdays:\"\\u09b0\\u09ac\\u09bf\\u09ac\\u09be\\u09b0_\\u09b8\\u09cb\\u09ae\\u09ac\\u09be\\u09b0_\\u09ae\\u0999\\u09cd\\u0997\\u09b2\\u09ac\\u09be\\u09b0_\\u09ac\\u09c1\\u09a7\\u09ac\\u09be\\u09b0_\\u09ac\\u09c3\\u09b9\\u09b8\\u09cd\\u09aa\\u09a4\\u09bf\\u09ac\\u09be\\u09b0_\\u09b6\\u09c1\\u0995\\u09cd\\u09b0\\u09ac\\u09be\\u09b0_\\u09b6\\u09a8\\u09bf\\u09ac\\u09be\\u09b0\".split(\"_\"),weekdaysShort:\"\\u09b0\\u09ac\\u09bf_\\u09b8\\u09cb\\u09ae_\\u09ae\\u0999\\u09cd\\u0997\\u09b2_\\u09ac\\u09c1\\u09a7_\\u09ac\\u09c3\\u09b9\\u09b8\\u09cd\\u09aa\\u09a4\\u09bf_\\u09b6\\u09c1\\u0995\\u09cd\\u09b0_\\u09b6\\u09a8\\u09bf\".split(\"_\"),weekdaysMin:\"\\u09b0\\u09ac\\u09bf_\\u09b8\\u09cb\\u09ae_\\u09ae\\u0999\\u09cd\\u0997_\\u09ac\\u09c1\\u09a7_\\u09ac\\u09c3\\u09b9\\u0983_\\u09b6\\u09c1\\u0995\\u09cd\\u09b0_\\u09b6\\u09a8\\u09bf\".split(\"_\"),longDateFormat:{LT:\"A h:mm \\u09b8\\u09ae\\u09df\",LTS:\"A h:mm:ss \\u09b8\\u09ae\\u09df\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm \\u09b8\\u09ae\\u09df\",LLLL:\"dddd, D MMMM YYYY, A h:mm \\u09b8\\u09ae\\u09df\"},calendar:{sameDay:\"[\\u0986\\u099c] LT\",nextDay:\"[\\u0986\\u0997\\u09be\\u09ae\\u09c0\\u0995\\u09be\\u09b2] LT\",nextWeek:\"dddd, LT\",lastDay:\"[\\u0997\\u09a4\\u0995\\u09be\\u09b2] LT\",lastWeek:\"[\\u0997\\u09a4] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s \\u09aa\\u09b0\\u09c7\",past:\"%s \\u0986\\u0997\\u09c7\",s:\"\\u0995\\u09df\\u09c7\\u0995 \\u09b8\\u09c7\\u0995\\u09c7\\u09a8\\u09cd\\u09a1\",ss:\"%d \\u09b8\\u09c7\\u0995\\u09c7\\u09a8\\u09cd\\u09a1\",m:\"\\u098f\\u0995 \\u09ae\\u09bf\\u09a8\\u09bf\\u099f\",mm:\"%d \\u09ae\\u09bf\\u09a8\\u09bf\\u099f\",h:\"\\u098f\\u0995 \\u0998\\u09a8\\u09cd\\u099f\\u09be\",hh:\"%d \\u0998\\u09a8\\u09cd\\u099f\\u09be\",d:\"\\u098f\\u0995 \\u09a6\\u09bf\\u09a8\",dd:\"%d \\u09a6\\u09bf\\u09a8\",M:\"\\u098f\\u0995 \\u09ae\\u09be\\u09b8\",MM:\"%d \\u09ae\\u09be\\u09b8\",y:\"\\u098f\\u0995 \\u09ac\\u099b\\u09b0\",yy:\"%d \\u09ac\\u099b\\u09b0\"},preparse:function(e){return e.replace(/[\\u09e7\\u09e8\\u09e9\\u09ea\\u09eb\\u09ec\\u09ed\\u09ee\\u09ef\\u09e6]/g,function(e){return ms[e]})},postformat:function(e){return e.replace(/\\d/g,function(e){return os[e]})},meridiemParse:/\\u09b0\\u09be\\u09a4|\\u09b8\\u0995\\u09be\\u09b2|\\u09a6\\u09c1\\u09aa\\u09c1\\u09b0|\\u09ac\\u09bf\\u0995\\u09be\\u09b2|\\u09b0\\u09be\\u09a4/,meridiemHour:function(e,a){return 12===e&&(e=0),\"\\u09b0\\u09be\\u09a4\"===a&&4<=e||\"\\u09a6\\u09c1\\u09aa\\u09c1\\u09b0\"===a&&e<5||\"\\u09ac\\u09bf\\u0995\\u09be\\u09b2\"===a?e+12:e},meridiem:function(e,a,t){return e<4?\"\\u09b0\\u09be\\u09a4\":e<10?\"\\u09b8\\u0995\\u09be\\u09b2\":e<17?\"\\u09a6\\u09c1\\u09aa\\u09c1\\u09b0\":e<20?\"\\u09ac\\u09bf\\u0995\\u09be\\u09b2\":\"\\u09b0\\u09be\\u09a4\"},week:{dow:0,doy:6}});var us={1:\"\\u0f21\",2:\"\\u0f22\",3:\"\\u0f23\",4:\"\\u0f24\",5:\"\\u0f25\",6:\"\\u0f26\",7:\"\\u0f27\",8:\"\\u0f28\",9:\"\\u0f29\",0:\"\\u0f20\"},ls={\"\\u0f21\":\"1\",\"\\u0f22\":\"2\",\"\\u0f23\":\"3\",\"\\u0f24\":\"4\",\"\\u0f25\":\"5\",\"\\u0f26\":\"6\",\"\\u0f27\":\"7\",\"\\u0f28\":\"8\",\"\\u0f29\":\"9\",\"\\u0f20\":\"0\"};function Ms(e,a,t){var s,n,d;return e+\" \"+(s={mm:\"munutenn\",MM:\"miz\",dd:\"devezh\"}[t],2!==e?s:void 0!==(d={m:\"v\",b:\"v\",d:\"z\"})[(n=s).charAt(0)]?d[n.charAt(0)]+n.substring(1):n)}function hs(e,a,t){var s=e+\" \";switch(t){case\"ss\":return s+=1===e?\"sekunda\":2===e||3===e||4===e?\"sekunde\":\"sekundi\";case\"m\":return a?\"jedna minuta\":\"jedne minute\";case\"mm\":return s+=1===e?\"minuta\":2===e||3===e||4===e?\"minute\":\"minuta\";case\"h\":return a?\"jedan sat\":\"jednog sata\";case\"hh\":return s+=1===e?\"sat\":2===e||3===e||4===e?\"sata\":\"sati\";case\"dd\":return s+=1===e?\"dan\":\"dana\";case\"MM\":return s+=1===e?\"mjesec\":2===e||3===e||4===e?\"mjeseca\":\"mjeseci\";case\"yy\":return s+=1===e?\"godina\":2===e||3===e||4===e?\"godine\":\"godina\"}}l.defineLocale(\"bo\",{months:\"\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f51\\u0f44\\u0f0b\\u0f54\\u0f7c_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f42\\u0f49\\u0f72\\u0f66\\u0f0b\\u0f54_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f42\\u0f66\\u0f74\\u0f58\\u0f0b\\u0f54_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f56\\u0f5e\\u0f72\\u0f0b\\u0f54_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f63\\u0f94\\u0f0b\\u0f54_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f51\\u0fb2\\u0f74\\u0f42\\u0f0b\\u0f54_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f56\\u0f51\\u0f74\\u0f53\\u0f0b\\u0f54_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f56\\u0f62\\u0f92\\u0fb1\\u0f51\\u0f0b\\u0f54_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f51\\u0f42\\u0f74\\u0f0b\\u0f54_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f56\\u0f45\\u0f74\\u0f0b\\u0f54_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f56\\u0f45\\u0f74\\u0f0b\\u0f42\\u0f45\\u0f72\\u0f42\\u0f0b\\u0f54_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f56\\u0f45\\u0f74\\u0f0b\\u0f42\\u0f49\\u0f72\\u0f66\\u0f0b\\u0f54\".split(\"_\"),monthsShort:\"\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f51\\u0f44\\u0f0b\\u0f54\\u0f7c_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f42\\u0f49\\u0f72\\u0f66\\u0f0b\\u0f54_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f42\\u0f66\\u0f74\\u0f58\\u0f0b\\u0f54_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f56\\u0f5e\\u0f72\\u0f0b\\u0f54_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f63\\u0f94\\u0f0b\\u0f54_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f51\\u0fb2\\u0f74\\u0f42\\u0f0b\\u0f54_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f56\\u0f51\\u0f74\\u0f53\\u0f0b\\u0f54_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f56\\u0f62\\u0f92\\u0fb1\\u0f51\\u0f0b\\u0f54_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f51\\u0f42\\u0f74\\u0f0b\\u0f54_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f56\\u0f45\\u0f74\\u0f0b\\u0f54_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f56\\u0f45\\u0f74\\u0f0b\\u0f42\\u0f45\\u0f72\\u0f42\\u0f0b\\u0f54_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f56\\u0f45\\u0f74\\u0f0b\\u0f42\\u0f49\\u0f72\\u0f66\\u0f0b\\u0f54\".split(\"_\"),weekdays:\"\\u0f42\\u0f5f\\u0f60\\u0f0b\\u0f49\\u0f72\\u0f0b\\u0f58\\u0f0b_\\u0f42\\u0f5f\\u0f60\\u0f0b\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b_\\u0f42\\u0f5f\\u0f60\\u0f0b\\u0f58\\u0f72\\u0f42\\u0f0b\\u0f51\\u0f58\\u0f62\\u0f0b_\\u0f42\\u0f5f\\u0f60\\u0f0b\\u0f63\\u0fb7\\u0f42\\u0f0b\\u0f54\\u0f0b_\\u0f42\\u0f5f\\u0f60\\u0f0b\\u0f55\\u0f74\\u0f62\\u0f0b\\u0f56\\u0f74_\\u0f42\\u0f5f\\u0f60\\u0f0b\\u0f54\\u0f0b\\u0f66\\u0f44\\u0f66\\u0f0b_\\u0f42\\u0f5f\\u0f60\\u0f0b\\u0f66\\u0fa4\\u0f7a\\u0f53\\u0f0b\\u0f54\\u0f0b\".split(\"_\"),weekdaysShort:\"\\u0f49\\u0f72\\u0f0b\\u0f58\\u0f0b_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b_\\u0f58\\u0f72\\u0f42\\u0f0b\\u0f51\\u0f58\\u0f62\\u0f0b_\\u0f63\\u0fb7\\u0f42\\u0f0b\\u0f54\\u0f0b_\\u0f55\\u0f74\\u0f62\\u0f0b\\u0f56\\u0f74_\\u0f54\\u0f0b\\u0f66\\u0f44\\u0f66\\u0f0b_\\u0f66\\u0fa4\\u0f7a\\u0f53\\u0f0b\\u0f54\\u0f0b\".split(\"_\"),weekdaysMin:\"\\u0f49\\u0f72\\u0f0b\\u0f58\\u0f0b_\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b_\\u0f58\\u0f72\\u0f42\\u0f0b\\u0f51\\u0f58\\u0f62\\u0f0b_\\u0f63\\u0fb7\\u0f42\\u0f0b\\u0f54\\u0f0b_\\u0f55\\u0f74\\u0f62\\u0f0b\\u0f56\\u0f74_\\u0f54\\u0f0b\\u0f66\\u0f44\\u0f66\\u0f0b_\\u0f66\\u0fa4\\u0f7a\\u0f53\\u0f0b\\u0f54\\u0f0b\".split(\"_\"),longDateFormat:{LT:\"A h:mm\",LTS:\"A h:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm\",LLLL:\"dddd, D MMMM YYYY, A h:mm\"},calendar:{sameDay:\"[\\u0f51\\u0f72\\u0f0b\\u0f62\\u0f72\\u0f44] LT\",nextDay:\"[\\u0f66\\u0f44\\u0f0b\\u0f49\\u0f72\\u0f53] LT\",nextWeek:\"[\\u0f56\\u0f51\\u0f74\\u0f53\\u0f0b\\u0f55\\u0fb2\\u0f42\\u0f0b\\u0f62\\u0f97\\u0f7a\\u0f66\\u0f0b\\u0f58], LT\",lastDay:\"[\\u0f41\\u0f0b\\u0f66\\u0f44] LT\",lastWeek:\"[\\u0f56\\u0f51\\u0f74\\u0f53\\u0f0b\\u0f55\\u0fb2\\u0f42\\u0f0b\\u0f58\\u0f50\\u0f60\\u0f0b\\u0f58] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s \\u0f63\\u0f0b\",past:\"%s \\u0f66\\u0f94\\u0f53\\u0f0b\\u0f63\",s:\"\\u0f63\\u0f58\\u0f0b\\u0f66\\u0f44\",ss:\"%d \\u0f66\\u0f90\\u0f62\\u0f0b\\u0f46\\u0f0d\",m:\"\\u0f66\\u0f90\\u0f62\\u0f0b\\u0f58\\u0f0b\\u0f42\\u0f45\\u0f72\\u0f42\",mm:\"%d \\u0f66\\u0f90\\u0f62\\u0f0b\\u0f58\",h:\"\\u0f46\\u0f74\\u0f0b\\u0f5a\\u0f7c\\u0f51\\u0f0b\\u0f42\\u0f45\\u0f72\\u0f42\",hh:\"%d \\u0f46\\u0f74\\u0f0b\\u0f5a\\u0f7c\\u0f51\",d:\"\\u0f49\\u0f72\\u0f53\\u0f0b\\u0f42\\u0f45\\u0f72\\u0f42\",dd:\"%d \\u0f49\\u0f72\\u0f53\\u0f0b\",M:\"\\u0f5f\\u0fb3\\u0f0b\\u0f56\\u0f0b\\u0f42\\u0f45\\u0f72\\u0f42\",MM:\"%d \\u0f5f\\u0fb3\\u0f0b\\u0f56\",y:\"\\u0f63\\u0f7c\\u0f0b\\u0f42\\u0f45\\u0f72\\u0f42\",yy:\"%d \\u0f63\\u0f7c\"},preparse:function(e){return e.replace(/[\\u0f21\\u0f22\\u0f23\\u0f24\\u0f25\\u0f26\\u0f27\\u0f28\\u0f29\\u0f20]/g,function(e){return ls[e]})},postformat:function(e){return e.replace(/\\d/g,function(e){return us[e]})},meridiemParse:/\\u0f58\\u0f5a\\u0f53\\u0f0b\\u0f58\\u0f7c|\\u0f5e\\u0f7c\\u0f42\\u0f66\\u0f0b\\u0f40\\u0f66|\\u0f49\\u0f72\\u0f53\\u0f0b\\u0f42\\u0f74\\u0f44|\\u0f51\\u0f42\\u0f7c\\u0f44\\u0f0b\\u0f51\\u0f42|\\u0f58\\u0f5a\\u0f53\\u0f0b\\u0f58\\u0f7c/,meridiemHour:function(e,a){return 12===e&&(e=0),\"\\u0f58\\u0f5a\\u0f53\\u0f0b\\u0f58\\u0f7c\"===a&&4<=e||\"\\u0f49\\u0f72\\u0f53\\u0f0b\\u0f42\\u0f74\\u0f44\"===a&&e<5||\"\\u0f51\\u0f42\\u0f7c\\u0f44\\u0f0b\\u0f51\\u0f42\"===a?e+12:e},meridiem:function(e,a,t){return e<4?\"\\u0f58\\u0f5a\\u0f53\\u0f0b\\u0f58\\u0f7c\":e<10?\"\\u0f5e\\u0f7c\\u0f42\\u0f66\\u0f0b\\u0f40\\u0f66\":e<17?\"\\u0f49\\u0f72\\u0f53\\u0f0b\\u0f42\\u0f74\\u0f44\":e<20?\"\\u0f51\\u0f42\\u0f7c\\u0f44\\u0f0b\\u0f51\\u0f42\":\"\\u0f58\\u0f5a\\u0f53\\u0f0b\\u0f58\\u0f7c\"},week:{dow:0,doy:6}}),l.defineLocale(\"br\",{months:\"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu\".split(\"_\"),monthsShort:\"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker\".split(\"_\"),weekdays:\"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn\".split(\"_\"),weekdaysShort:\"Sul_Lun_Meu_Mer_Yao_Gwe_Sad\".split(\"_\"),weekdaysMin:\"Su_Lu_Me_Mer_Ya_Gw_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"h[e]mm A\",LTS:\"h[e]mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D [a viz] MMMM YYYY\",LLL:\"D [a viz] MMMM YYYY h[e]mm A\",LLLL:\"dddd, D [a viz] MMMM YYYY h[e]mm A\"},calendar:{sameDay:\"[Hiziv da] LT\",nextDay:\"[Warc'hoazh da] LT\",nextWeek:\"dddd [da] LT\",lastDay:\"[Dec'h da] LT\",lastWeek:\"dddd [paset da] LT\",sameElse:\"L\"},relativeTime:{future:\"a-benn %s\",past:\"%s 'zo\",s:\"un nebeud segondenno\\xf9\",ss:\"%d eilenn\",m:\"ur vunutenn\",mm:Ms,h:\"un eur\",hh:\"%d eur\",d:\"un devezh\",dd:Ms,M:\"ur miz\",MM:Ms,y:\"ur bloaz\",yy:function(e){switch(function e(a){return 9<a?e(a%10):a}(e)){case 1:case 3:case 4:case 5:case 9:return e+\" bloaz\";default:return e+\" vloaz\"}}},dayOfMonthOrdinalParse:/\\d{1,2}(a\\xf1|vet)/,ordinal:function(e){return e+(1===e?\"a\\xf1\":\"vet\")},week:{dow:1,doy:4}}),l.defineLocale(\"bs\",{months:\"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar\".split(\"_\"),monthsShort:\"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.\".split(\"_\"),monthsParseExact:!0,weekdays:\"nedjelja_ponedjeljak_utorak_srijeda_\\u010detvrtak_petak_subota\".split(\"_\"),weekdaysShort:\"ned._pon._uto._sri._\\u010det._pet._sub.\".split(\"_\"),weekdaysMin:\"ne_po_ut_sr_\\u010de_pe_su\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedjelju] [u] LT\";case 3:return\"[u] [srijedu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[ju\\u010der u] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:return\"[pro\\u0161lu] dddd [u] LT\";case 6:return\"[pro\\u0161le] [subote] [u] LT\";case 1:case 2:case 4:case 5:return\"[pro\\u0161li] dddd [u] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"prije %s\",s:\"par sekundi\",ss:hs,m:hs,mm:hs,h:hs,hh:hs,d:\"dan\",dd:hs,M:\"mjesec\",MM:hs,y:\"godinu\",yy:hs},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),l.defineLocale(\"ca\",{months:{standalone:\"gener_febrer_mar\\xe7_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre\".split(\"_\"),format:\"de gener_de febrer_de mar\\xe7_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\"_\"),isFormat:/D[oD]?(\\s)+MMMM/},monthsShort:\"gen._febr._mar\\xe7_abr._maig_juny_jul._ag._set._oct._nov._des.\".split(\"_\"),monthsParseExact:!0,weekdays:\"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte\".split(\"_\"),weekdaysShort:\"dg._dl._dt._dc._dj._dv._ds.\".split(\"_\"),weekdaysMin:\"dg_dl_dt_dc_dj_dv_ds\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM [de] YYYY\",ll:\"D MMM YYYY\",LLL:\"D MMMM [de] YYYY [a les] H:mm\",lll:\"D MMM YYYY, H:mm\",LLLL:\"dddd D MMMM [de] YYYY [a les] H:mm\",llll:\"ddd D MMM YYYY, H:mm\"},calendar:{sameDay:function(){return\"[avui a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},nextDay:function(){return\"[dem\\xe0 a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},nextWeek:function(){return\"dddd [a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},lastDay:function(){return\"[ahir a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},lastWeek:function(){return\"[el] dddd [passat a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:\"d'aqu\\xed %s\",past:\"fa %s\",s:\"uns segons\",ss:\"%d segons\",m:\"un minut\",mm:\"%d minuts\",h:\"una hora\",hh:\"%d hores\",d:\"un dia\",dd:\"%d dies\",M:\"un mes\",MM:\"%d mesos\",y:\"un any\",yy:\"%d anys\"},dayOfMonthOrdinalParse:/\\d{1,2}(r|n|t|\\xe8|a)/,ordinal:function(e,a){var t=1===e?\"r\":2===e?\"n\":3===e?\"r\":4===e?\"t\":\"\\xe8\";return\"w\"!==a&&\"W\"!==a||(t=\"a\"),e+t},week:{dow:1,doy:4}});var Ls=\"leden_\\xfanor_b\\u0159ezen_duben_kv\\u011bten_\\u010derven_\\u010dervenec_srpen_z\\xe1\\u0159\\xed_\\u0159\\xedjen_listopad_prosinec\".split(\"_\"),cs=\"led_\\xfano_b\\u0159e_dub_kv\\u011b_\\u010dvn_\\u010dvc_srp_z\\xe1\\u0159_\\u0159\\xedj_lis_pro\".split(\"_\"),Ys=[/^led/i,/^\\xfano/i,/^b\\u0159e/i,/^dub/i,/^kv\\u011b/i,/^(\\u010dvn|\\u010derven$|\\u010dervna)/i,/^(\\u010dvc|\\u010dervenec|\\u010dervence)/i,/^srp/i,/^z\\xe1\\u0159/i,/^\\u0159\\xedj/i,/^lis/i,/^pro/i],ys=/^(leden|\\xfanor|b\\u0159ezen|duben|kv\\u011bten|\\u010dervenec|\\u010dervence|\\u010derven|\\u010dervna|srpen|z\\xe1\\u0159\\xed|\\u0159\\xedjen|listopad|prosinec|led|\\xfano|b\\u0159e|dub|kv\\u011b|\\u010dvn|\\u010dvc|srp|z\\xe1\\u0159|\\u0159\\xedj|lis|pro)/i;function fs(e){return 1<e&&e<5&&1!=~~(e/10)}function ks(e,a,t,s){var n=e+\" \";switch(t){case\"s\":return a||s?\"p\\xe1r sekund\":\"p\\xe1r sekundami\";case\"ss\":return a||s?n+(fs(e)?\"sekundy\":\"sekund\"):n+\"sekundami\";break;case\"m\":return a?\"minuta\":s?\"minutu\":\"minutou\";case\"mm\":return a||s?n+(fs(e)?\"minuty\":\"minut\"):n+\"minutami\";break;case\"h\":return a?\"hodina\":s?\"hodinu\":\"hodinou\";case\"hh\":return a||s?n+(fs(e)?\"hodiny\":\"hodin\"):n+\"hodinami\";break;case\"d\":return a||s?\"den\":\"dnem\";case\"dd\":return a||s?n+(fs(e)?\"dny\":\"dn\\xed\"):n+\"dny\";break;case\"M\":return a||s?\"m\\u011bs\\xedc\":\"m\\u011bs\\xedcem\";case\"MM\":return a||s?n+(fs(e)?\"m\\u011bs\\xedce\":\"m\\u011bs\\xedc\\u016f\"):n+\"m\\u011bs\\xedci\";break;case\"y\":return a||s?\"rok\":\"rokem\";case\"yy\":return a||s?n+(fs(e)?\"roky\":\"let\"):n+\"lety\";break}}function ps(e,a,t,s){var n={m:[\"eine Minute\",\"einer Minute\"],h:[\"eine Stunde\",\"einer Stunde\"],d:[\"ein Tag\",\"einem Tag\"],dd:[e+\" Tage\",e+\" Tagen\"],M:[\"ein Monat\",\"einem Monat\"],MM:[e+\" Monate\",e+\" Monaten\"],y:[\"ein Jahr\",\"einem Jahr\"],yy:[e+\" Jahre\",e+\" Jahren\"]};return a?n[t][0]:n[t][1]}function Ds(e,a,t,s){var n={m:[\"eine Minute\",\"einer Minute\"],h:[\"eine Stunde\",\"einer Stunde\"],d:[\"ein Tag\",\"einem Tag\"],dd:[e+\" Tage\",e+\" Tagen\"],M:[\"ein Monat\",\"einem Monat\"],MM:[e+\" Monate\",e+\" Monaten\"],y:[\"ein Jahr\",\"einem Jahr\"],yy:[e+\" Jahre\",e+\" Jahren\"]};return a?n[t][0]:n[t][1]}function Ts(e,a,t,s){var n={m:[\"eine Minute\",\"einer Minute\"],h:[\"eine Stunde\",\"einer Stunde\"],d:[\"ein Tag\",\"einem Tag\"],dd:[e+\" Tage\",e+\" Tagen\"],M:[\"ein Monat\",\"einem Monat\"],MM:[e+\" Monate\",e+\" Monaten\"],y:[\"ein Jahr\",\"einem Jahr\"],yy:[e+\" Jahre\",e+\" Jahren\"]};return a?n[t][0]:n[t][1]}l.defineLocale(\"cs\",{months:Ls,monthsShort:cs,monthsRegex:ys,monthsShortRegex:ys,monthsStrictRegex:/^(leden|ledna|\\xfanora|\\xfanor|b\\u0159ezen|b\\u0159ezna|duben|dubna|kv\\u011bten|kv\\u011btna|\\u010dervenec|\\u010dervence|\\u010derven|\\u010dervna|srpen|srpna|z\\xe1\\u0159\\xed|\\u0159\\xedjen|\\u0159\\xedjna|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|\\xfano|b\\u0159e|dub|kv\\u011b|\\u010dvn|\\u010dvc|srp|z\\xe1\\u0159|\\u0159\\xedj|lis|pro)/i,monthsParse:Ys,longMonthsParse:Ys,shortMonthsParse:Ys,weekdays:\"ned\\u011ble_pond\\u011bl\\xed_\\xfater\\xfd_st\\u0159eda_\\u010dtvrtek_p\\xe1tek_sobota\".split(\"_\"),weekdaysShort:\"ne_po_\\xfat_st_\\u010dt_p\\xe1_so\".split(\"_\"),weekdaysMin:\"ne_po_\\xfat_st_\\u010dt_p\\xe1_so\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd D. MMMM YYYY H:mm\",l:\"D. M. YYYY\"},calendar:{sameDay:\"[dnes v] LT\",nextDay:\"[z\\xedtra v] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v ned\\u011bli v] LT\";case 1:case 2:return\"[v] dddd [v] LT\";case 3:return\"[ve st\\u0159edu v] LT\";case 4:return\"[ve \\u010dtvrtek v] LT\";case 5:return\"[v p\\xe1tek v] LT\";case 6:return\"[v sobotu v] LT\"}},lastDay:\"[v\\u010dera v] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[minulou ned\\u011bli v] LT\";case 1:case 2:return\"[minul\\xe9] dddd [v] LT\";case 3:return\"[minulou st\\u0159edu v] LT\";case 4:case 5:return\"[minul\\xfd] dddd [v] LT\";case 6:return\"[minulou sobotu v] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"p\\u0159ed %s\",s:ks,ss:ks,m:ks,mm:ks,h:ks,hh:ks,d:ks,dd:ks,M:ks,MM:ks,y:ks,yy:ks},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),l.defineLocale(\"cv\",{months:\"\\u043a\\u04d1\\u0440\\u043b\\u0430\\u0447_\\u043d\\u0430\\u0440\\u04d1\\u0441_\\u043f\\u0443\\u0448_\\u0430\\u043a\\u0430_\\u043c\\u0430\\u0439_\\u04ab\\u04d7\\u0440\\u0442\\u043c\\u0435_\\u0443\\u0442\\u04d1_\\u04ab\\u0443\\u0440\\u043b\\u0430_\\u0430\\u0432\\u04d1\\u043d_\\u044e\\u043f\\u0430_\\u0447\\u04f3\\u043a_\\u0440\\u0430\\u0448\\u0442\\u0430\\u0432\".split(\"_\"),monthsShort:\"\\u043a\\u04d1\\u0440_\\u043d\\u0430\\u0440_\\u043f\\u0443\\u0448_\\u0430\\u043a\\u0430_\\u043c\\u0430\\u0439_\\u04ab\\u04d7\\u0440_\\u0443\\u0442\\u04d1_\\u04ab\\u0443\\u0440_\\u0430\\u0432\\u043d_\\u044e\\u043f\\u0430_\\u0447\\u04f3\\u043a_\\u0440\\u0430\\u0448\".split(\"_\"),weekdays:\"\\u0432\\u044b\\u0440\\u0441\\u0430\\u0440\\u043d\\u0438\\u043a\\u0443\\u043d_\\u0442\\u0443\\u043d\\u0442\\u0438\\u043a\\u0443\\u043d_\\u044b\\u0442\\u043b\\u0430\\u0440\\u0438\\u043a\\u0443\\u043d_\\u044e\\u043d\\u043a\\u0443\\u043d_\\u043a\\u04d7\\u04ab\\u043d\\u0435\\u0440\\u043d\\u0438\\u043a\\u0443\\u043d_\\u044d\\u0440\\u043d\\u0435\\u043a\\u0443\\u043d_\\u0448\\u04d1\\u043c\\u0430\\u0442\\u043a\\u0443\\u043d\".split(\"_\"),weekdaysShort:\"\\u0432\\u044b\\u0440_\\u0442\\u0443\\u043d_\\u044b\\u0442\\u043b_\\u044e\\u043d_\\u043a\\u04d7\\u04ab_\\u044d\\u0440\\u043d_\\u0448\\u04d1\\u043c\".split(\"_\"),weekdaysMin:\"\\u0432\\u0440_\\u0442\\u043d_\\u044b\\u0442_\\u044e\\u043d_\\u043a\\u04ab_\\u044d\\u0440_\\u0448\\u043c\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD-MM-YYYY\",LL:\"YYYY [\\u04ab\\u0443\\u043b\\u0445\\u0438] MMMM [\\u0443\\u0439\\u04d1\\u0445\\u04d7\\u043d] D[-\\u043c\\u04d7\\u0448\\u04d7]\",LLL:\"YYYY [\\u04ab\\u0443\\u043b\\u0445\\u0438] MMMM [\\u0443\\u0439\\u04d1\\u0445\\u04d7\\u043d] D[-\\u043c\\u04d7\\u0448\\u04d7], HH:mm\",LLLL:\"dddd, YYYY [\\u04ab\\u0443\\u043b\\u0445\\u0438] MMMM [\\u0443\\u0439\\u04d1\\u0445\\u04d7\\u043d] D[-\\u043c\\u04d7\\u0448\\u04d7], HH:mm\"},calendar:{sameDay:\"[\\u041f\\u0430\\u044f\\u043d] LT [\\u0441\\u0435\\u0445\\u0435\\u0442\\u0440\\u0435]\",nextDay:\"[\\u042b\\u0440\\u0430\\u043d] LT [\\u0441\\u0435\\u0445\\u0435\\u0442\\u0440\\u0435]\",lastDay:\"[\\u04d6\\u043d\\u0435\\u0440] LT [\\u0441\\u0435\\u0445\\u0435\\u0442\\u0440\\u0435]\",nextWeek:\"[\\u04aa\\u0438\\u0442\\u0435\\u0441] dddd LT [\\u0441\\u0435\\u0445\\u0435\\u0442\\u0440\\u0435]\",lastWeek:\"[\\u0418\\u0440\\u0442\\u043d\\u04d7] dddd LT [\\u0441\\u0435\\u0445\\u0435\\u0442\\u0440\\u0435]\",sameElse:\"L\"},relativeTime:{future:function(e){return e+(/\\u0441\\u0435\\u0445\\u0435\\u0442$/i.exec(e)?\"\\u0440\\u0435\\u043d\":/\\u04ab\\u0443\\u043b$/i.exec(e)?\"\\u0442\\u0430\\u043d\":\"\\u0440\\u0430\\u043d\")},past:\"%s \\u043a\\u0430\\u044f\\u043b\\u043b\\u0430\",s:\"\\u043f\\u04d7\\u0440-\\u0438\\u043a \\u04ab\\u0435\\u043a\\u043a\\u0443\\u043d\\u0442\",ss:\"%d \\u04ab\\u0435\\u043a\\u043a\\u0443\\u043d\\u0442\",m:\"\\u043f\\u04d7\\u0440 \\u043c\\u0438\\u043d\\u0443\\u0442\",mm:\"%d \\u043c\\u0438\\u043d\\u0443\\u0442\",h:\"\\u043f\\u04d7\\u0440 \\u0441\\u0435\\u0445\\u0435\\u0442\",hh:\"%d \\u0441\\u0435\\u0445\\u0435\\u0442\",d:\"\\u043f\\u04d7\\u0440 \\u043a\\u0443\\u043d\",dd:\"%d \\u043a\\u0443\\u043d\",M:\"\\u043f\\u04d7\\u0440 \\u0443\\u0439\\u04d1\\u0445\",MM:\"%d \\u0443\\u0439\\u04d1\\u0445\",y:\"\\u043f\\u04d7\\u0440 \\u04ab\\u0443\\u043b\",yy:\"%d \\u04ab\\u0443\\u043b\"},dayOfMonthOrdinalParse:/\\d{1,2}-\\u043c\\u04d7\\u0448/,ordinal:\"%d-\\u043c\\u04d7\\u0448\",week:{dow:1,doy:7}}),l.defineLocale(\"cy\",{months:\"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr\".split(\"_\"),monthsShort:\"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag\".split(\"_\"),weekdays:\"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn\".split(\"_\"),weekdaysShort:\"Sul_Llun_Maw_Mer_Iau_Gwe_Sad\".split(\"_\"),weekdaysMin:\"Su_Ll_Ma_Me_Ia_Gw_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Heddiw am] LT\",nextDay:\"[Yfory am] LT\",nextWeek:\"dddd [am] LT\",lastDay:\"[Ddoe am] LT\",lastWeek:\"dddd [diwethaf am] LT\",sameElse:\"L\"},relativeTime:{future:\"mewn %s\",past:\"%s yn \\xf4l\",s:\"ychydig eiliadau\",ss:\"%d eiliad\",m:\"munud\",mm:\"%d munud\",h:\"awr\",hh:\"%d awr\",d:\"diwrnod\",dd:\"%d diwrnod\",M:\"mis\",MM:\"%d mis\",y:\"blwyddyn\",yy:\"%d flynedd\"},dayOfMonthOrdinalParse:/\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(e){var a=\"\";return 20<e?a=40===e||50===e||60===e||80===e||100===e?\"fed\":\"ain\":0<e&&(a=[\"\",\"af\",\"il\",\"ydd\",\"ydd\",\"ed\",\"ed\",\"ed\",\"fed\",\"fed\",\"fed\",\"eg\",\"fed\",\"eg\",\"eg\",\"fed\",\"eg\",\"eg\",\"fed\",\"eg\",\"fed\"][e]),e+a},week:{dow:1,doy:4}}),l.defineLocale(\"da\",{months:\"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"s\\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\\xf8rdag\".split(\"_\"),weekdaysShort:\"s\\xf8n_man_tir_ons_tor_fre_l\\xf8r\".split(\"_\"),weekdaysMin:\"s\\xf8_ma_ti_on_to_fr_l\\xf8\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY HH:mm\",LLLL:\"dddd [d.] D. MMMM YYYY [kl.] HH:mm\"},calendar:{sameDay:\"[i dag kl.] LT\",nextDay:\"[i morgen kl.] LT\",nextWeek:\"p\\xe5 dddd [kl.] LT\",lastDay:\"[i g\\xe5r kl.] LT\",lastWeek:\"[i] dddd[s kl.] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"%s siden\",s:\"f\\xe5 sekunder\",ss:\"%d sekunder\",m:\"et minut\",mm:\"%d minutter\",h:\"en time\",hh:\"%d timer\",d:\"en dag\",dd:\"%d dage\",M:\"en m\\xe5ned\",MM:\"%d m\\xe5neder\",y:\"et \\xe5r\",yy:\"%d \\xe5r\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),l.defineLocale(\"de-at\",{months:\"J\\xe4nner_Februar_M\\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"J\\xe4n._Feb._M\\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.\".split(\"_\"),monthsParseExact:!0,weekdays:\"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag\".split(\"_\"),weekdaysShort:\"So._Mo._Di._Mi._Do._Fr._Sa.\".split(\"_\"),weekdaysMin:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY HH:mm\",LLLL:\"dddd, D. MMMM YYYY HH:mm\"},calendar:{sameDay:\"[heute um] LT [Uhr]\",sameElse:\"L\",nextDay:\"[morgen um] LT [Uhr]\",nextWeek:\"dddd [um] LT [Uhr]\",lastDay:\"[gestern um] LT [Uhr]\",lastWeek:\"[letzten] dddd [um] LT [Uhr]\"},relativeTime:{future:\"in %s\",past:\"vor %s\",s:\"ein paar Sekunden\",ss:\"%d Sekunden\",m:ps,mm:\"%d Minuten\",h:ps,hh:\"%d Stunden\",d:ps,dd:ps,M:ps,MM:ps,y:ps,yy:ps},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),l.defineLocale(\"de-ch\",{months:\"Januar_Februar_M\\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jan._Feb._M\\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.\".split(\"_\"),monthsParseExact:!0,weekdays:\"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag\".split(\"_\"),weekdaysShort:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),weekdaysMin:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY HH:mm\",LLLL:\"dddd, D. MMMM YYYY HH:mm\"},calendar:{sameDay:\"[heute um] LT [Uhr]\",sameElse:\"L\",nextDay:\"[morgen um] LT [Uhr]\",nextWeek:\"dddd [um] LT [Uhr]\",lastDay:\"[gestern um] LT [Uhr]\",lastWeek:\"[letzten] dddd [um] LT [Uhr]\"},relativeTime:{future:\"in %s\",past:\"vor %s\",s:\"ein paar Sekunden\",ss:\"%d Sekunden\",m:Ds,mm:\"%d Minuten\",h:Ds,hh:\"%d Stunden\",d:Ds,dd:Ds,M:Ds,MM:Ds,y:Ds,yy:Ds},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),l.defineLocale(\"de\",{months:\"Januar_Februar_M\\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jan._Feb._M\\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.\".split(\"_\"),monthsParseExact:!0,weekdays:\"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag\".split(\"_\"),weekdaysShort:\"So._Mo._Di._Mi._Do._Fr._Sa.\".split(\"_\"),weekdaysMin:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY HH:mm\",LLLL:\"dddd, D. MMMM YYYY HH:mm\"},calendar:{sameDay:\"[heute um] LT [Uhr]\",sameElse:\"L\",nextDay:\"[morgen um] LT [Uhr]\",nextWeek:\"dddd [um] LT [Uhr]\",lastDay:\"[gestern um] LT [Uhr]\",lastWeek:\"[letzten] dddd [um] LT [Uhr]\"},relativeTime:{future:\"in %s\",past:\"vor %s\",s:\"ein paar Sekunden\",ss:\"%d Sekunden\",m:Ts,mm:\"%d Minuten\",h:Ts,hh:\"%d Stunden\",d:Ts,dd:Ts,M:Ts,MM:Ts,y:Ts,yy:Ts},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}});var gs=[\"\\u0796\\u07ac\\u0782\\u07aa\\u0787\\u07a6\\u0783\\u07a9\",\"\\u078a\\u07ac\\u0784\\u07b0\\u0783\\u07aa\\u0787\\u07a6\\u0783\\u07a9\",\"\\u0789\\u07a7\\u0783\\u07a8\\u0797\\u07aa\",\"\\u0787\\u07ad\\u0795\\u07b0\\u0783\\u07a9\\u078d\\u07aa\",\"\\u0789\\u07ad\",\"\\u0796\\u07ab\\u0782\\u07b0\",\"\\u0796\\u07aa\\u078d\\u07a6\\u0787\\u07a8\",\"\\u0787\\u07af\\u078e\\u07a6\\u0790\\u07b0\\u0793\\u07aa\",\"\\u0790\\u07ac\\u0795\\u07b0\\u0793\\u07ac\\u0789\\u07b0\\u0784\\u07a6\\u0783\\u07aa\",\"\\u0787\\u07ae\\u0786\\u07b0\\u0793\\u07af\\u0784\\u07a6\\u0783\\u07aa\",\"\\u0782\\u07ae\\u0788\\u07ac\\u0789\\u07b0\\u0784\\u07a6\\u0783\\u07aa\",\"\\u0791\\u07a8\\u0790\\u07ac\\u0789\\u07b0\\u0784\\u07a6\\u0783\\u07aa\"],ws=[\"\\u0787\\u07a7\\u078b\\u07a8\\u0787\\u07b0\\u078c\\u07a6\",\"\\u0780\\u07af\\u0789\\u07a6\",\"\\u0787\\u07a6\\u0782\\u07b0\\u078e\\u07a7\\u0783\\u07a6\",\"\\u0784\\u07aa\\u078b\\u07a6\",\"\\u0784\\u07aa\\u0783\\u07a7\\u0790\\u07b0\\u078a\\u07a6\\u078c\\u07a8\",\"\\u0780\\u07aa\\u0786\\u07aa\\u0783\\u07aa\",\"\\u0780\\u07ae\\u0782\\u07a8\\u0780\\u07a8\\u0783\\u07aa\"];l.defineLocale(\"dv\",{months:gs,monthsShort:gs,weekdays:ws,weekdaysShort:ws,weekdaysMin:\"\\u0787\\u07a7\\u078b\\u07a8_\\u0780\\u07af\\u0789\\u07a6_\\u0787\\u07a6\\u0782\\u07b0_\\u0784\\u07aa\\u078b\\u07a6_\\u0784\\u07aa\\u0783\\u07a7_\\u0780\\u07aa\\u0786\\u07aa_\\u0780\\u07ae\\u0782\\u07a8\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"D/M/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},meridiemParse:/\\u0789\\u0786|\\u0789\\u078a/,isPM:function(e){return\"\\u0789\\u078a\"===e},meridiem:function(e,a,t){return e<12?\"\\u0789\\u0786\":\"\\u0789\\u078a\"},calendar:{sameDay:\"[\\u0789\\u07a8\\u0787\\u07a6\\u078b\\u07aa] LT\",nextDay:\"[\\u0789\\u07a7\\u078b\\u07a6\\u0789\\u07a7] LT\",nextWeek:\"dddd LT\",lastDay:\"[\\u0787\\u07a8\\u0787\\u07b0\\u0794\\u07ac] LT\",lastWeek:\"[\\u078a\\u07a7\\u0787\\u07a8\\u078c\\u07aa\\u0788\\u07a8] dddd LT\",sameElse:\"L\"},relativeTime:{future:\"\\u078c\\u07ac\\u0783\\u07ad\\u078e\\u07a6\\u0787\\u07a8 %s\",past:\"\\u0786\\u07aa\\u0783\\u07a8\\u0782\\u07b0 %s\",s:\"\\u0790\\u07a8\\u0786\\u07aa\\u0782\\u07b0\\u078c\\u07aa\\u0786\\u07ae\\u0785\\u07ac\\u0787\\u07b0\",ss:\"d% \\u0790\\u07a8\\u0786\\u07aa\\u0782\\u07b0\\u078c\\u07aa\",m:\"\\u0789\\u07a8\\u0782\\u07a8\\u0793\\u07ac\\u0787\\u07b0\",mm:\"\\u0789\\u07a8\\u0782\\u07a8\\u0793\\u07aa %d\",h:\"\\u078e\\u07a6\\u0791\\u07a8\\u0787\\u07a8\\u0783\\u07ac\\u0787\\u07b0\",hh:\"\\u078e\\u07a6\\u0791\\u07a8\\u0787\\u07a8\\u0783\\u07aa %d\",d:\"\\u078b\\u07aa\\u0788\\u07a6\\u0780\\u07ac\\u0787\\u07b0\",dd:\"\\u078b\\u07aa\\u0788\\u07a6\\u0790\\u07b0 %d\",M:\"\\u0789\\u07a6\\u0780\\u07ac\\u0787\\u07b0\",MM:\"\\u0789\\u07a6\\u0790\\u07b0 %d\",y:\"\\u0787\\u07a6\\u0780\\u07a6\\u0783\\u07ac\\u0787\\u07b0\",yy:\"\\u0787\\u07a6\\u0780\\u07a6\\u0783\\u07aa %d\"},preparse:function(e){return e.replace(/\\u060c/g,\",\")},postformat:function(e){return e.replace(/,/g,\"\\u060c\")},week:{dow:7,doy:12}}),l.defineLocale(\"el\",{monthsNominativeEl:\"\\u0399\\u03b1\\u03bd\\u03bf\\u03c5\\u03ac\\u03c1\\u03b9\\u03bf\\u03c2_\\u03a6\\u03b5\\u03b2\\u03c1\\u03bf\\u03c5\\u03ac\\u03c1\\u03b9\\u03bf\\u03c2_\\u039c\\u03ac\\u03c1\\u03c4\\u03b9\\u03bf\\u03c2_\\u0391\\u03c0\\u03c1\\u03af\\u03bb\\u03b9\\u03bf\\u03c2_\\u039c\\u03ac\\u03b9\\u03bf\\u03c2_\\u0399\\u03bf\\u03cd\\u03bd\\u03b9\\u03bf\\u03c2_\\u0399\\u03bf\\u03cd\\u03bb\\u03b9\\u03bf\\u03c2_\\u0391\\u03cd\\u03b3\\u03bf\\u03c5\\u03c3\\u03c4\\u03bf\\u03c2_\\u03a3\\u03b5\\u03c0\\u03c4\\u03ad\\u03bc\\u03b2\\u03c1\\u03b9\\u03bf\\u03c2_\\u039f\\u03ba\\u03c4\\u03ce\\u03b2\\u03c1\\u03b9\\u03bf\\u03c2_\\u039d\\u03bf\\u03ad\\u03bc\\u03b2\\u03c1\\u03b9\\u03bf\\u03c2_\\u0394\\u03b5\\u03ba\\u03ad\\u03bc\\u03b2\\u03c1\\u03b9\\u03bf\\u03c2\".split(\"_\"),monthsGenitiveEl:\"\\u0399\\u03b1\\u03bd\\u03bf\\u03c5\\u03b1\\u03c1\\u03af\\u03bf\\u03c5_\\u03a6\\u03b5\\u03b2\\u03c1\\u03bf\\u03c5\\u03b1\\u03c1\\u03af\\u03bf\\u03c5_\\u039c\\u03b1\\u03c1\\u03c4\\u03af\\u03bf\\u03c5_\\u0391\\u03c0\\u03c1\\u03b9\\u03bb\\u03af\\u03bf\\u03c5_\\u039c\\u03b1\\u0390\\u03bf\\u03c5_\\u0399\\u03bf\\u03c5\\u03bd\\u03af\\u03bf\\u03c5_\\u0399\\u03bf\\u03c5\\u03bb\\u03af\\u03bf\\u03c5_\\u0391\\u03c5\\u03b3\\u03bf\\u03cd\\u03c3\\u03c4\\u03bf\\u03c5_\\u03a3\\u03b5\\u03c0\\u03c4\\u03b5\\u03bc\\u03b2\\u03c1\\u03af\\u03bf\\u03c5_\\u039f\\u03ba\\u03c4\\u03c9\\u03b2\\u03c1\\u03af\\u03bf\\u03c5_\\u039d\\u03bf\\u03b5\\u03bc\\u03b2\\u03c1\\u03af\\u03bf\\u03c5_\\u0394\\u03b5\\u03ba\\u03b5\\u03bc\\u03b2\\u03c1\\u03af\\u03bf\\u03c5\".split(\"_\"),months:function(e,a){return e?\"string\"==typeof a&&/D/.test(a.substring(0,a.indexOf(\"MMMM\")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:\"\\u0399\\u03b1\\u03bd_\\u03a6\\u03b5\\u03b2_\\u039c\\u03b1\\u03c1_\\u0391\\u03c0\\u03c1_\\u039c\\u03b1\\u03ca_\\u0399\\u03bf\\u03c5\\u03bd_\\u0399\\u03bf\\u03c5\\u03bb_\\u0391\\u03c5\\u03b3_\\u03a3\\u03b5\\u03c0_\\u039f\\u03ba\\u03c4_\\u039d\\u03bf\\u03b5_\\u0394\\u03b5\\u03ba\".split(\"_\"),weekdays:\"\\u039a\\u03c5\\u03c1\\u03b9\\u03b1\\u03ba\\u03ae_\\u0394\\u03b5\\u03c5\\u03c4\\u03ad\\u03c1\\u03b1_\\u03a4\\u03c1\\u03af\\u03c4\\u03b7_\\u03a4\\u03b5\\u03c4\\u03ac\\u03c1\\u03c4\\u03b7_\\u03a0\\u03ad\\u03bc\\u03c0\\u03c4\\u03b7_\\u03a0\\u03b1\\u03c1\\u03b1\\u03c3\\u03ba\\u03b5\\u03c5\\u03ae_\\u03a3\\u03ac\\u03b2\\u03b2\\u03b1\\u03c4\\u03bf\".split(\"_\"),weekdaysShort:\"\\u039a\\u03c5\\u03c1_\\u0394\\u03b5\\u03c5_\\u03a4\\u03c1\\u03b9_\\u03a4\\u03b5\\u03c4_\\u03a0\\u03b5\\u03bc_\\u03a0\\u03b1\\u03c1_\\u03a3\\u03b1\\u03b2\".split(\"_\"),weekdaysMin:\"\\u039a\\u03c5_\\u0394\\u03b5_\\u03a4\\u03c1_\\u03a4\\u03b5_\\u03a0\\u03b5_\\u03a0\\u03b1_\\u03a3\\u03b1\".split(\"_\"),meridiem:function(e,a,t){return 11<e?t?\"\\u03bc\\u03bc\":\"\\u039c\\u039c\":t?\"\\u03c0\\u03bc\":\"\\u03a0\\u039c\"},isPM:function(e){return\"\\u03bc\"===(e+\"\").toLowerCase()[0]},meridiemParse:/[\\u03a0\\u039c]\\.?\\u039c?\\.?/i,longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendarEl:{sameDay:\"[\\u03a3\\u03ae\\u03bc\\u03b5\\u03c1\\u03b1 {}] LT\",nextDay:\"[\\u0391\\u03cd\\u03c1\\u03b9\\u03bf {}] LT\",nextWeek:\"dddd [{}] LT\",lastDay:\"[\\u03a7\\u03b8\\u03b5\\u03c2 {}] LT\",lastWeek:function(){switch(this.day()){case 6:return\"[\\u03c4\\u03bf \\u03c0\\u03c1\\u03bf\\u03b7\\u03b3\\u03bf\\u03cd\\u03bc\\u03b5\\u03bd\\u03bf] dddd [{}] LT\";default:return\"[\\u03c4\\u03b7\\u03bd \\u03c0\\u03c1\\u03bf\\u03b7\\u03b3\\u03bf\\u03cd\\u03bc\\u03b5\\u03bd\\u03b7] dddd [{}] LT\"}},sameElse:\"L\"},calendar:function(e,a){var t=this._calendarEl[e],s=a&&a.hours();return H(t)&&(t=t.apply(a)),t.replace(\"{}\",s%12==1?\"\\u03c3\\u03c4\\u03b7\":\"\\u03c3\\u03c4\\u03b9\\u03c2\")},relativeTime:{future:\"\\u03c3\\u03b5 %s\",past:\"%s \\u03c0\\u03c1\\u03b9\\u03bd\",s:\"\\u03bb\\u03af\\u03b3\\u03b1 \\u03b4\\u03b5\\u03c5\\u03c4\\u03b5\\u03c1\\u03cc\\u03bb\\u03b5\\u03c0\\u03c4\\u03b1\",ss:\"%d \\u03b4\\u03b5\\u03c5\\u03c4\\u03b5\\u03c1\\u03cc\\u03bb\\u03b5\\u03c0\\u03c4\\u03b1\",m:\"\\u03ad\\u03bd\\u03b1 \\u03bb\\u03b5\\u03c0\\u03c4\\u03cc\",mm:\"%d \\u03bb\\u03b5\\u03c0\\u03c4\\u03ac\",h:\"\\u03bc\\u03af\\u03b1 \\u03ce\\u03c1\\u03b1\",hh:\"%d \\u03ce\\u03c1\\u03b5\\u03c2\",d:\"\\u03bc\\u03af\\u03b1 \\u03bc\\u03ad\\u03c1\\u03b1\",dd:\"%d \\u03bc\\u03ad\\u03c1\\u03b5\\u03c2\",M:\"\\u03ad\\u03bd\\u03b1\\u03c2 \\u03bc\\u03ae\\u03bd\\u03b1\\u03c2\",MM:\"%d \\u03bc\\u03ae\\u03bd\\u03b5\\u03c2\",y:\"\\u03ad\\u03bd\\u03b1\\u03c2 \\u03c7\\u03c1\\u03cc\\u03bd\\u03bf\\u03c2\",yy:\"%d \\u03c7\\u03c1\\u03cc\\u03bd\\u03b9\\u03b1\"},dayOfMonthOrdinalParse:/\\d{1,2}\\u03b7/,ordinal:\"%d\\u03b7\",week:{dow:1,doy:4}}),l.defineLocale(\"en-SG\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",ss:\"%d seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},dayOfMonthOrdinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?\"th\":1===a?\"st\":2===a?\"nd\":3===a?\"rd\":\"th\")},week:{dow:1,doy:4}}),l.defineLocale(\"en-au\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",ss:\"%d seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},dayOfMonthOrdinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?\"th\":1===a?\"st\":2===a?\"nd\":3===a?\"rd\":\"th\")},week:{dow:1,doy:4}}),l.defineLocale(\"en-ca\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"YYYY-MM-DD\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",ss:\"%d seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},dayOfMonthOrdinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?\"th\":1===a?\"st\":2===a?\"nd\":3===a?\"rd\":\"th\")}}),l.defineLocale(\"en-gb\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",ss:\"%d seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},dayOfMonthOrdinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?\"th\":1===a?\"st\":2===a?\"nd\":3===a?\"rd\":\"th\")},week:{dow:1,doy:4}}),l.defineLocale(\"en-ie\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",ss:\"%d seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},dayOfMonthOrdinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?\"th\":1===a?\"st\":2===a?\"nd\":3===a?\"rd\":\"th\")},week:{dow:1,doy:4}}),l.defineLocale(\"en-il\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},dayOfMonthOrdinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?\"th\":1===a?\"st\":2===a?\"nd\":3===a?\"rd\":\"th\")}}),l.defineLocale(\"en-nz\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",ss:\"%d seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},dayOfMonthOrdinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?\"th\":1===a?\"st\":2===a?\"nd\":3===a?\"rd\":\"th\")},week:{dow:1,doy:4}}),l.defineLocale(\"eo\",{months:\"januaro_februaro_marto_aprilo_majo_junio_julio_a\\u016dgusto_septembro_oktobro_novembro_decembro\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maj_jun_jul_a\\u016dg_sep_okt_nov_dec\".split(\"_\"),weekdays:\"diman\\u0109o_lundo_mardo_merkredo_\\u0135a\\u016ddo_vendredo_sabato\".split(\"_\"),weekdaysShort:\"dim_lun_mard_merk_\\u0135a\\u016d_ven_sab\".split(\"_\"),weekdaysMin:\"di_lu_ma_me_\\u0135a_ve_sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"D[-a de] MMMM, YYYY\",LLL:\"D[-a de] MMMM, YYYY HH:mm\",LLLL:\"dddd, [la] D[-a de] MMMM, YYYY HH:mm\"},meridiemParse:/[ap]\\.t\\.m/i,isPM:function(e){return\"p\"===e.charAt(0).toLowerCase()},meridiem:function(e,a,t){return 11<e?t?\"p.t.m.\":\"P.T.M.\":t?\"a.t.m.\":\"A.T.M.\"},calendar:{sameDay:\"[Hodia\\u016d je] LT\",nextDay:\"[Morga\\u016d je] LT\",nextWeek:\"dddd [je] LT\",lastDay:\"[Hiera\\u016d je] LT\",lastWeek:\"[pasinta] dddd [je] LT\",sameElse:\"L\"},relativeTime:{future:\"post %s\",past:\"anta\\u016d %s\",s:\"sekundoj\",ss:\"%d sekundoj\",m:\"minuto\",mm:\"%d minutoj\",h:\"horo\",hh:\"%d horoj\",d:\"tago\",dd:\"%d tagoj\",M:\"monato\",MM:\"%d monatoj\",y:\"jaro\",yy:\"%d jaroj\"},dayOfMonthOrdinalParse:/\\d{1,2}a/,ordinal:\"%da\",week:{dow:1,doy:7}});var vs=\"ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.\".split(\"_\"),Ss=\"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic\".split(\"_\"),Hs=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],bs=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;l.defineLocale(\"es-do\",{months:\"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre\".split(\"_\"),monthsShort:function(e,a){return e?/-MMM-/.test(a)?Ss[e.month()]:vs[e.month()]:vs},monthsRegex:bs,monthsShortRegex:bs,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,monthsParse:Hs,longMonthsParse:Hs,shortMonthsParse:Hs,weekdays:\"domingo_lunes_martes_mi\\xe9rcoles_jueves_viernes_s\\xe1bado\".split(\"_\"),weekdaysShort:\"dom._lun._mar._mi\\xe9._jue._vie._s\\xe1b.\".split(\"_\"),weekdaysMin:\"do_lu_ma_mi_ju_vi_s\\xe1\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY h:mm A\",LLLL:\"dddd, D [de] MMMM [de] YYYY h:mm A\"},calendar:{sameDay:function(){return\"[hoy a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextDay:function(){return\"[ma\\xf1ana a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextWeek:function(){return\"dddd [a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastDay:function(){return\"[ayer a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastWeek:function(){return\"[el] dddd [pasado a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:\"en %s\",past:\"hace %s\",s:\"unos segundos\",ss:\"%d segundos\",m:\"un minuto\",mm:\"%d minutos\",h:\"una hora\",hh:\"%d horas\",d:\"un d\\xeda\",dd:\"%d d\\xedas\",M:\"un mes\",MM:\"%d meses\",y:\"un a\\xf1o\",yy:\"%d a\\xf1os\"},dayOfMonthOrdinalParse:/\\d{1,2}\\xba/,ordinal:\"%d\\xba\",week:{dow:1,doy:4}});var js=\"ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.\".split(\"_\"),xs=\"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic\".split(\"_\"),Os=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],Ps=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;l.defineLocale(\"es-us\",{months:\"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre\".split(\"_\"),monthsShort:function(e,a){return e?/-MMM-/.test(a)?xs[e.month()]:js[e.month()]:js},monthsRegex:Ps,monthsShortRegex:Ps,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,monthsParse:Os,longMonthsParse:Os,shortMonthsParse:Os,weekdays:\"domingo_lunes_martes_mi\\xe9rcoles_jueves_viernes_s\\xe1bado\".split(\"_\"),weekdaysShort:\"dom._lun._mar._mi\\xe9._jue._vie._s\\xe1b.\".split(\"_\"),weekdaysMin:\"do_lu_ma_mi_ju_vi_s\\xe1\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"MM/DD/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY h:mm A\",LLLL:\"dddd, D [de] MMMM [de] YYYY h:mm A\"},calendar:{sameDay:function(){return\"[hoy a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextDay:function(){return\"[ma\\xf1ana a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextWeek:function(){return\"dddd [a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastDay:function(){return\"[ayer a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastWeek:function(){return\"[el] dddd [pasado a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:\"en %s\",past:\"hace %s\",s:\"unos segundos\",ss:\"%d segundos\",m:\"un minuto\",mm:\"%d minutos\",h:\"una hora\",hh:\"%d horas\",d:\"un d\\xeda\",dd:\"%d d\\xedas\",M:\"un mes\",MM:\"%d meses\",y:\"un a\\xf1o\",yy:\"%d a\\xf1os\"},dayOfMonthOrdinalParse:/\\d{1,2}\\xba/,ordinal:\"%d\\xba\",week:{dow:0,doy:6}});var Ws=\"ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.\".split(\"_\"),As=\"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic\".split(\"_\"),Es=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],Fs=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;function zs(e,a,t,s){var n={s:[\"m\\xf5ne sekundi\",\"m\\xf5ni sekund\",\"paar sekundit\"],ss:[e+\"sekundi\",e+\"sekundit\"],m:[\"\\xfche minuti\",\"\\xfcks minut\"],mm:[e+\" minuti\",e+\" minutit\"],h:[\"\\xfche tunni\",\"tund aega\",\"\\xfcks tund\"],hh:[e+\" tunni\",e+\" tundi\"],d:[\"\\xfche p\\xe4eva\",\"\\xfcks p\\xe4ev\"],M:[\"kuu aja\",\"kuu aega\",\"\\xfcks kuu\"],MM:[e+\" kuu\",e+\" kuud\"],y:[\"\\xfche aasta\",\"aasta\",\"\\xfcks aasta\"],yy:[e+\" aasta\",e+\" aastat\"]};return a?n[t][2]?n[t][2]:n[t][1]:s?n[t][0]:n[t][1]}l.defineLocale(\"es\",{months:\"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre\".split(\"_\"),monthsShort:function(e,a){return e?/-MMM-/.test(a)?As[e.month()]:Ws[e.month()]:Ws},monthsRegex:Fs,monthsShortRegex:Fs,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,monthsParse:Es,longMonthsParse:Es,shortMonthsParse:Es,weekdays:\"domingo_lunes_martes_mi\\xe9rcoles_jueves_viernes_s\\xe1bado\".split(\"_\"),weekdaysShort:\"dom._lun._mar._mi\\xe9._jue._vie._s\\xe1b.\".split(\"_\"),weekdaysMin:\"do_lu_ma_mi_ju_vi_s\\xe1\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY H:mm\",LLLL:\"dddd, D [de] MMMM [de] YYYY H:mm\"},calendar:{sameDay:function(){return\"[hoy a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextDay:function(){return\"[ma\\xf1ana a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextWeek:function(){return\"dddd [a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastDay:function(){return\"[ayer a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastWeek:function(){return\"[el] dddd [pasado a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:\"en %s\",past:\"hace %s\",s:\"unos segundos\",ss:\"%d segundos\",m:\"un minuto\",mm:\"%d minutos\",h:\"una hora\",hh:\"%d horas\",d:\"un d\\xeda\",dd:\"%d d\\xedas\",M:\"un mes\",MM:\"%d meses\",y:\"un a\\xf1o\",yy:\"%d a\\xf1os\"},dayOfMonthOrdinalParse:/\\d{1,2}\\xba/,ordinal:\"%d\\xba\",week:{dow:1,doy:4}}),l.defineLocale(\"et\",{months:\"jaanuar_veebruar_m\\xe4rts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember\".split(\"_\"),monthsShort:\"jaan_veebr_m\\xe4rts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets\".split(\"_\"),weekdays:\"p\\xfchap\\xe4ev_esmasp\\xe4ev_teisip\\xe4ev_kolmap\\xe4ev_neljap\\xe4ev_reede_laup\\xe4ev\".split(\"_\"),weekdaysShort:\"P_E_T_K_N_R_L\".split(\"_\"),weekdaysMin:\"P_E_T_K_N_R_L\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[T\\xe4na,] LT\",nextDay:\"[Homme,] LT\",nextWeek:\"[J\\xe4rgmine] dddd LT\",lastDay:\"[Eile,] LT\",lastWeek:\"[Eelmine] dddd LT\",sameElse:\"L\"},relativeTime:{future:\"%s p\\xe4rast\",past:\"%s tagasi\",s:zs,ss:zs,m:zs,mm:zs,h:zs,hh:zs,d:zs,dd:\"%d p\\xe4eva\",M:zs,MM:zs,y:zs,yy:zs},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),l.defineLocale(\"eu\",{months:\"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua\".split(\"_\"),monthsShort:\"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.\".split(\"_\"),monthsParseExact:!0,weekdays:\"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata\".split(\"_\"),weekdaysShort:\"ig._al._ar._az._og._ol._lr.\".split(\"_\"),weekdaysMin:\"ig_al_ar_az_og_ol_lr\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"YYYY[ko] MMMM[ren] D[a]\",LLL:\"YYYY[ko] MMMM[ren] D[a] HH:mm\",LLLL:\"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm\",l:\"YYYY-M-D\",ll:\"YYYY[ko] MMM D[a]\",lll:\"YYYY[ko] MMM D[a] HH:mm\",llll:\"ddd, YYYY[ko] MMM D[a] HH:mm\"},calendar:{sameDay:\"[gaur] LT[etan]\",nextDay:\"[bihar] LT[etan]\",nextWeek:\"dddd LT[etan]\",lastDay:\"[atzo] LT[etan]\",lastWeek:\"[aurreko] dddd LT[etan]\",sameElse:\"L\"},relativeTime:{future:\"%s barru\",past:\"duela %s\",s:\"segundo batzuk\",ss:\"%d segundo\",m:\"minutu bat\",mm:\"%d minutu\",h:\"ordu bat\",hh:\"%d ordu\",d:\"egun bat\",dd:\"%d egun\",M:\"hilabete bat\",MM:\"%d hilabete\",y:\"urte bat\",yy:\"%d urte\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}});var Js={1:\"\\u06f1\",2:\"\\u06f2\",3:\"\\u06f3\",4:\"\\u06f4\",5:\"\\u06f5\",6:\"\\u06f6\",7:\"\\u06f7\",8:\"\\u06f8\",9:\"\\u06f9\",0:\"\\u06f0\"},Ns={\"\\u06f1\":\"1\",\"\\u06f2\":\"2\",\"\\u06f3\":\"3\",\"\\u06f4\":\"4\",\"\\u06f5\":\"5\",\"\\u06f6\":\"6\",\"\\u06f7\":\"7\",\"\\u06f8\":\"8\",\"\\u06f9\":\"9\",\"\\u06f0\":\"0\"};l.defineLocale(\"fa\",{months:\"\\u0698\\u0627\\u0646\\u0648\\u06cc\\u0647_\\u0641\\u0648\\u0631\\u06cc\\u0647_\\u0645\\u0627\\u0631\\u0633_\\u0622\\u0648\\u0631\\u06cc\\u0644_\\u0645\\u0647_\\u0698\\u0648\\u0626\\u0646_\\u0698\\u0648\\u0626\\u06cc\\u0647_\\u0627\\u0648\\u062a_\\u0633\\u067e\\u062a\\u0627\\u0645\\u0628\\u0631_\\u0627\\u06a9\\u062a\\u0628\\u0631_\\u0646\\u0648\\u0627\\u0645\\u0628\\u0631_\\u062f\\u0633\\u0627\\u0645\\u0628\\u0631\".split(\"_\"),monthsShort:\"\\u0698\\u0627\\u0646\\u0648\\u06cc\\u0647_\\u0641\\u0648\\u0631\\u06cc\\u0647_\\u0645\\u0627\\u0631\\u0633_\\u0622\\u0648\\u0631\\u06cc\\u0644_\\u0645\\u0647_\\u0698\\u0648\\u0626\\u0646_\\u0698\\u0648\\u0626\\u06cc\\u0647_\\u0627\\u0648\\u062a_\\u0633\\u067e\\u062a\\u0627\\u0645\\u0628\\u0631_\\u0627\\u06a9\\u062a\\u0628\\u0631_\\u0646\\u0648\\u0627\\u0645\\u0628\\u0631_\\u062f\\u0633\\u0627\\u0645\\u0628\\u0631\".split(\"_\"),weekdays:\"\\u06cc\\u06a9\\u200c\\u0634\\u0646\\u0628\\u0647_\\u062f\\u0648\\u0634\\u0646\\u0628\\u0647_\\u0633\\u0647\\u200c\\u0634\\u0646\\u0628\\u0647_\\u0686\\u0647\\u0627\\u0631\\u0634\\u0646\\u0628\\u0647_\\u067e\\u0646\\u062c\\u200c\\u0634\\u0646\\u0628\\u0647_\\u062c\\u0645\\u0639\\u0647_\\u0634\\u0646\\u0628\\u0647\".split(\"_\"),weekdaysShort:\"\\u06cc\\u06a9\\u200c\\u0634\\u0646\\u0628\\u0647_\\u062f\\u0648\\u0634\\u0646\\u0628\\u0647_\\u0633\\u0647\\u200c\\u0634\\u0646\\u0628\\u0647_\\u0686\\u0647\\u0627\\u0631\\u0634\\u0646\\u0628\\u0647_\\u067e\\u0646\\u062c\\u200c\\u0634\\u0646\\u0628\\u0647_\\u062c\\u0645\\u0639\\u0647_\\u0634\\u0646\\u0628\\u0647\".split(\"_\"),weekdaysMin:\"\\u06cc_\\u062f_\\u0633_\\u0686_\\u067e_\\u062c_\\u0634\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},meridiemParse:/\\u0642\\u0628\\u0644 \\u0627\\u0632 \\u0638\\u0647\\u0631|\\u0628\\u0639\\u062f \\u0627\\u0632 \\u0638\\u0647\\u0631/,isPM:function(e){return/\\u0628\\u0639\\u062f \\u0627\\u0632 \\u0638\\u0647\\u0631/.test(e)},meridiem:function(e,a,t){return e<12?\"\\u0642\\u0628\\u0644 \\u0627\\u0632 \\u0638\\u0647\\u0631\":\"\\u0628\\u0639\\u062f \\u0627\\u0632 \\u0638\\u0647\\u0631\"},calendar:{sameDay:\"[\\u0627\\u0645\\u0631\\u0648\\u0632 \\u0633\\u0627\\u0639\\u062a] LT\",nextDay:\"[\\u0641\\u0631\\u062f\\u0627 \\u0633\\u0627\\u0639\\u062a] LT\",nextWeek:\"dddd [\\u0633\\u0627\\u0639\\u062a] LT\",lastDay:\"[\\u062f\\u06cc\\u0631\\u0648\\u0632 \\u0633\\u0627\\u0639\\u062a] LT\",lastWeek:\"dddd [\\u067e\\u06cc\\u0634] [\\u0633\\u0627\\u0639\\u062a] LT\",sameElse:\"L\"},relativeTime:{future:\"\\u062f\\u0631 %s\",past:\"%s \\u067e\\u06cc\\u0634\",s:\"\\u0686\\u0646\\u062f \\u062b\\u0627\\u0646\\u06cc\\u0647\",ss:\"\\u062b\\u0627\\u0646\\u06cc\\u0647 d%\",m:\"\\u06cc\\u06a9 \\u062f\\u0642\\u06cc\\u0642\\u0647\",mm:\"%d \\u062f\\u0642\\u06cc\\u0642\\u0647\",h:\"\\u06cc\\u06a9 \\u0633\\u0627\\u0639\\u062a\",hh:\"%d \\u0633\\u0627\\u0639\\u062a\",d:\"\\u06cc\\u06a9 \\u0631\\u0648\\u0632\",dd:\"%d \\u0631\\u0648\\u0632\",M:\"\\u06cc\\u06a9 \\u0645\\u0627\\u0647\",MM:\"%d \\u0645\\u0627\\u0647\",y:\"\\u06cc\\u06a9 \\u0633\\u0627\\u0644\",yy:\"%d \\u0633\\u0627\\u0644\"},preparse:function(e){return e.replace(/[\\u06f0-\\u06f9]/g,function(e){return Ns[e]}).replace(/\\u060c/g,\",\")},postformat:function(e){return e.replace(/\\d/g,function(e){return Js[e]}).replace(/,/g,\"\\u060c\")},dayOfMonthOrdinalParse:/\\d{1,2}\\u0645/,ordinal:\"%d\\u0645\",week:{dow:6,doy:12}});var Rs=\"nolla yksi kaksi kolme nelj\\xe4 viisi kuusi seitsem\\xe4n kahdeksan yhdeks\\xe4n\".split(\" \"),Cs=[\"nolla\",\"yhden\",\"kahden\",\"kolmen\",\"nelj\\xe4n\",\"viiden\",\"kuuden\",Rs[7],Rs[8],Rs[9]];function Is(e,a,t,s){var n,d,r=\"\";switch(t){case\"s\":return s?\"muutaman sekunnin\":\"muutama sekunti\";case\"ss\":return s?\"sekunnin\":\"sekuntia\";case\"m\":return s?\"minuutin\":\"minuutti\";case\"mm\":r=s?\"minuutin\":\"minuuttia\";break;case\"h\":return s?\"tunnin\":\"tunti\";case\"hh\":r=s?\"tunnin\":\"tuntia\";break;case\"d\":return s?\"p\\xe4iv\\xe4n\":\"p\\xe4iv\\xe4\";case\"dd\":r=s?\"p\\xe4iv\\xe4n\":\"p\\xe4iv\\xe4\\xe4\";break;case\"M\":return s?\"kuukauden\":\"kuukausi\";case\"MM\":r=s?\"kuukauden\":\"kuukautta\";break;case\"y\":return s?\"vuoden\":\"vuosi\";case\"yy\":r=s?\"vuoden\":\"vuotta\";break}return d=s,r=((n=e)<10?d?Cs[n]:Rs[n]:n)+\" \"+r}l.defineLocale(\"fi\",{months:\"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes\\xe4kuu_hein\\xe4kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu\".split(\"_\"),monthsShort:\"tammi_helmi_maalis_huhti_touko_kes\\xe4_hein\\xe4_elo_syys_loka_marras_joulu\".split(\"_\"),weekdays:\"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai\".split(\"_\"),weekdaysShort:\"su_ma_ti_ke_to_pe_la\".split(\"_\"),weekdaysMin:\"su_ma_ti_ke_to_pe_la\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD.MM.YYYY\",LL:\"Do MMMM[ta] YYYY\",LLL:\"Do MMMM[ta] YYYY, [klo] HH.mm\",LLLL:\"dddd, Do MMMM[ta] YYYY, [klo] HH.mm\",l:\"D.M.YYYY\",ll:\"Do MMM YYYY\",lll:\"Do MMM YYYY, [klo] HH.mm\",llll:\"ddd, Do MMM YYYY, [klo] HH.mm\"},calendar:{sameDay:\"[t\\xe4n\\xe4\\xe4n] [klo] LT\",nextDay:\"[huomenna] [klo] LT\",nextWeek:\"dddd [klo] LT\",lastDay:\"[eilen] [klo] LT\",lastWeek:\"[viime] dddd[na] [klo] LT\",sameElse:\"L\"},relativeTime:{future:\"%s p\\xe4\\xe4st\\xe4\",past:\"%s sitten\",s:Is,ss:Is,m:Is,mm:Is,h:Is,hh:Is,d:Is,dd:Is,M:Is,MM:Is,y:Is,yy:Is},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),l.defineLocale(\"fo\",{months:\"januar_februar_mars_apr\\xedl_mai_juni_juli_august_september_oktober_november_desember\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des\".split(\"_\"),weekdays:\"sunnudagur_m\\xe1nadagur_t\\xfdsdagur_mikudagur_h\\xf3sdagur_fr\\xedggjadagur_leygardagur\".split(\"_\"),weekdaysShort:\"sun_m\\xe1n_t\\xfds_mik_h\\xf3s_fr\\xed_ley\".split(\"_\"),weekdaysMin:\"su_m\\xe1_t\\xfd_mi_h\\xf3_fr_le\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D. MMMM, YYYY HH:mm\"},calendar:{sameDay:\"[\\xcd dag kl.] LT\",nextDay:\"[\\xcd morgin kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[\\xcd gj\\xe1r kl.] LT\",lastWeek:\"[s\\xed\\xf0stu] dddd [kl] LT\",sameElse:\"L\"},relativeTime:{future:\"um %s\",past:\"%s s\\xed\\xf0ani\",s:\"f\\xe1 sekund\",ss:\"%d sekundir\",m:\"ein minuttur\",mm:\"%d minuttir\",h:\"ein t\\xedmi\",hh:\"%d t\\xedmar\",d:\"ein dagur\",dd:\"%d dagar\",M:\"ein m\\xe1na\\xf0ur\",MM:\"%d m\\xe1na\\xf0ir\",y:\"eitt \\xe1r\",yy:\"%d \\xe1r\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),l.defineLocale(\"fr-ca\",{months:\"janvier_f\\xe9vrier_mars_avril_mai_juin_juillet_ao\\xfbt_septembre_octobre_novembre_d\\xe9cembre\".split(\"_\"),monthsShort:\"janv._f\\xe9vr._mars_avr._mai_juin_juil._ao\\xfbt_sept._oct._nov._d\\xe9c.\".split(\"_\"),monthsParseExact:!0,weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"di_lu_ma_me_je_ve_sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Aujourd\\u2019hui \\xe0] LT\",nextDay:\"[Demain \\xe0] LT\",nextWeek:\"dddd [\\xe0] LT\",lastDay:\"[Hier \\xe0] LT\",lastWeek:\"dddd [dernier \\xe0] LT\",sameElse:\"L\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",ss:\"%d secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},dayOfMonthOrdinalParse:/\\d{1,2}(er|e)/,ordinal:function(e,a){switch(a){default:case\"M\":case\"Q\":case\"D\":case\"DDD\":case\"d\":return e+(1===e?\"er\":\"e\");case\"w\":case\"W\":return e+(1===e?\"re\":\"e\")}}}),l.defineLocale(\"fr-ch\",{months:\"janvier_f\\xe9vrier_mars_avril_mai_juin_juillet_ao\\xfbt_septembre_octobre_novembre_d\\xe9cembre\".split(\"_\"),monthsShort:\"janv._f\\xe9vr._mars_avr._mai_juin_juil._ao\\xfbt_sept._oct._nov._d\\xe9c.\".split(\"_\"),monthsParseExact:!0,weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"di_lu_ma_me_je_ve_sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Aujourd\\u2019hui \\xe0] LT\",nextDay:\"[Demain \\xe0] LT\",nextWeek:\"dddd [\\xe0] LT\",lastDay:\"[Hier \\xe0] LT\",lastWeek:\"dddd [dernier \\xe0] LT\",sameElse:\"L\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",ss:\"%d secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},dayOfMonthOrdinalParse:/\\d{1,2}(er|e)/,ordinal:function(e,a){switch(a){default:case\"M\":case\"Q\":case\"D\":case\"DDD\":case\"d\":return e+(1===e?\"er\":\"e\");case\"w\":case\"W\":return e+(1===e?\"re\":\"e\")}},week:{dow:1,doy:4}}),l.defineLocale(\"fr\",{months:\"janvier_f\\xe9vrier_mars_avril_mai_juin_juillet_ao\\xfbt_septembre_octobre_novembre_d\\xe9cembre\".split(\"_\"),monthsShort:\"janv._f\\xe9vr._mars_avr._mai_juin_juil._ao\\xfbt_sept._oct._nov._d\\xe9c.\".split(\"_\"),monthsParseExact:!0,weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"di_lu_ma_me_je_ve_sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Aujourd\\u2019hui \\xe0] LT\",nextDay:\"[Demain \\xe0] LT\",nextWeek:\"dddd [\\xe0] LT\",lastDay:\"[Hier \\xe0] LT\",lastWeek:\"dddd [dernier \\xe0] LT\",sameElse:\"L\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",ss:\"%d secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},dayOfMonthOrdinalParse:/\\d{1,2}(er|)/,ordinal:function(e,a){switch(a){case\"D\":return e+(1===e?\"er\":\"\");default:case\"M\":case\"Q\":case\"DDD\":case\"d\":return e+(1===e?\"er\":\"e\");case\"w\":case\"W\":return e+(1===e?\"re\":\"e\")}},week:{dow:1,doy:4}});var Us=\"jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.\".split(\"_\"),Gs=\"jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des\".split(\"_\");l.defineLocale(\"fy\",{months:\"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber\".split(\"_\"),monthsShort:function(e,a){return e?/-MMM-/.test(a)?Gs[e.month()]:Us[e.month()]:Us},monthsParseExact:!0,weekdays:\"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon\".split(\"_\"),weekdaysShort:\"si._mo._ti._wo._to._fr._so.\".split(\"_\"),weekdaysMin:\"Si_Mo_Ti_Wo_To_Fr_So\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD-MM-YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[hjoed om] LT\",nextDay:\"[moarn om] LT\",nextWeek:\"dddd [om] LT\",lastDay:\"[juster om] LT\",lastWeek:\"[\\xf4fr\\xfbne] dddd [om] LT\",sameElse:\"L\"},relativeTime:{future:\"oer %s\",past:\"%s lyn\",s:\"in pear sekonden\",ss:\"%d sekonden\",m:\"ien min\\xfat\",mm:\"%d minuten\",h:\"ien oere\",hh:\"%d oeren\",d:\"ien dei\",dd:\"%d dagen\",M:\"ien moanne\",MM:\"%d moannen\",y:\"ien jier\",yy:\"%d jierren\"},dayOfMonthOrdinalParse:/\\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?\"ste\":\"de\")},week:{dow:1,doy:4}});l.defineLocale(\"ga\",{months:[\"Ean\\xe1ir\",\"Feabhra\",\"M\\xe1rta\",\"Aibre\\xe1n\",\"Bealtaine\",\"M\\xe9itheamh\",\"I\\xfail\",\"L\\xfanasa\",\"Me\\xe1n F\\xf3mhair\",\"Deaireadh F\\xf3mhair\",\"Samhain\",\"Nollaig\"],monthsShort:[\"Ean\\xe1\",\"Feab\",\"M\\xe1rt\",\"Aibr\",\"Beal\",\"M\\xe9it\",\"I\\xfail\",\"L\\xfana\",\"Me\\xe1n\",\"Deai\",\"Samh\",\"Noll\"],monthsParseExact:!0,weekdays:[\"D\\xe9 Domhnaigh\",\"D\\xe9 Luain\",\"D\\xe9 M\\xe1irt\",\"D\\xe9 C\\xe9adaoin\",\"D\\xe9ardaoin\",\"D\\xe9 hAoine\",\"D\\xe9 Satharn\"],weekdaysShort:[\"Dom\",\"Lua\",\"M\\xe1i\",\"C\\xe9a\",\"D\\xe9a\",\"hAo\",\"Sat\"],weekdaysMin:[\"Do\",\"Lu\",\"M\\xe1\",\"Ce\",\"D\\xe9\",\"hA\",\"Sa\"],longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Inniu ag] LT\",nextDay:\"[Am\\xe1rach ag] LT\",nextWeek:\"dddd [ag] LT\",lastDay:\"[Inn\\xe9 aig] LT\",lastWeek:\"dddd [seo caite] [ag] LT\",sameElse:\"L\"},relativeTime:{future:\"i %s\",past:\"%s \\xf3 shin\",s:\"c\\xfapla soicind\",ss:\"%d soicind\",m:\"n\\xf3im\\xe9ad\",mm:\"%d n\\xf3im\\xe9ad\",h:\"uair an chloig\",hh:\"%d uair an chloig\",d:\"l\\xe1\",dd:\"%d l\\xe1\",M:\"m\\xed\",MM:\"%d m\\xed\",y:\"bliain\",yy:\"%d bliain\"},dayOfMonthOrdinalParse:/\\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?\"d\":e%10==2?\"na\":\"mh\")},week:{dow:1,doy:4}});function Vs(e,a,t,s){var n={s:[\"thodde secondanim\",\"thodde second\"],ss:[e+\" secondanim\",e+\" second\"],m:[\"eka mintan\",\"ek minute\"],mm:[e+\" mintanim\",e+\" mintam\"],h:[\"eka voran\",\"ek vor\"],hh:[e+\" voranim\",e+\" voram\"],d:[\"eka disan\",\"ek dis\"],dd:[e+\" disanim\",e+\" dis\"],M:[\"eka mhoinean\",\"ek mhoino\"],MM:[e+\" mhoineanim\",e+\" mhoine\"],y:[\"eka vorsan\",\"ek voros\"],yy:[e+\" vorsanim\",e+\" vorsam\"]};return a?n[t][0]:n[t][1]}l.defineLocale(\"gd\",{months:[\"Am Faoilleach\",\"An Gearran\",\"Am M\\xe0rt\",\"An Giblean\",\"An C\\xe8itean\",\"An t-\\xd2gmhios\",\"An t-Iuchar\",\"An L\\xf9nastal\",\"An t-Sultain\",\"An D\\xe0mhair\",\"An t-Samhain\",\"An D\\xf9bhlachd\"],monthsShort:[\"Faoi\",\"Gear\",\"M\\xe0rt\",\"Gibl\",\"C\\xe8it\",\"\\xd2gmh\",\"Iuch\",\"L\\xf9n\",\"Sult\",\"D\\xe0mh\",\"Samh\",\"D\\xf9bh\"],monthsParseExact:!0,weekdays:[\"Did\\xf2mhnaich\",\"Diluain\",\"Dim\\xe0irt\",\"Diciadain\",\"Diardaoin\",\"Dihaoine\",\"Disathairne\"],weekdaysShort:[\"Did\",\"Dil\",\"Dim\",\"Dic\",\"Dia\",\"Dih\",\"Dis\"],weekdaysMin:[\"D\\xf2\",\"Lu\",\"M\\xe0\",\"Ci\",\"Ar\",\"Ha\",\"Sa\"],longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[An-diugh aig] LT\",nextDay:\"[A-m\\xe0ireach aig] LT\",nextWeek:\"dddd [aig] LT\",lastDay:\"[An-d\\xe8 aig] LT\",lastWeek:\"dddd [seo chaidh] [aig] LT\",sameElse:\"L\"},relativeTime:{future:\"ann an %s\",past:\"bho chionn %s\",s:\"beagan diogan\",ss:\"%d diogan\",m:\"mionaid\",mm:\"%d mionaidean\",h:\"uair\",hh:\"%d uairean\",d:\"latha\",dd:\"%d latha\",M:\"m\\xecos\",MM:\"%d m\\xecosan\",y:\"bliadhna\",yy:\"%d bliadhna\"},dayOfMonthOrdinalParse:/\\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?\"d\":e%10==2?\"na\":\"mh\")},week:{dow:1,doy:4}}),l.defineLocale(\"gl\",{months:\"xaneiro_febreiro_marzo_abril_maio_xu\\xf1o_xullo_agosto_setembro_outubro_novembro_decembro\".split(\"_\"),monthsShort:\"xan._feb._mar._abr._mai._xu\\xf1._xul._ago._set._out._nov._dec.\".split(\"_\"),monthsParseExact:!0,weekdays:\"domingo_luns_martes_m\\xe9rcores_xoves_venres_s\\xe1bado\".split(\"_\"),weekdaysShort:\"dom._lun._mar._m\\xe9r._xov._ven._s\\xe1b.\".split(\"_\"),weekdaysMin:\"do_lu_ma_m\\xe9_xo_ve_s\\xe1\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY H:mm\",LLLL:\"dddd, D [de] MMMM [de] YYYY H:mm\"},calendar:{sameDay:function(){return\"[hoxe \"+(1!==this.hours()?\"\\xe1s\":\"\\xe1\")+\"] LT\"},nextDay:function(){return\"[ma\\xf1\\xe1 \"+(1!==this.hours()?\"\\xe1s\":\"\\xe1\")+\"] LT\"},nextWeek:function(){return\"dddd [\"+(1!==this.hours()?\"\\xe1s\":\"a\")+\"] LT\"},lastDay:function(){return\"[onte \"+(1!==this.hours()?\"\\xe1\":\"a\")+\"] LT\"},lastWeek:function(){return\"[o] dddd [pasado \"+(1!==this.hours()?\"\\xe1s\":\"a\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:function(e){return 0===e.indexOf(\"un\")?\"n\"+e:\"en \"+e},past:\"hai %s\",s:\"uns segundos\",ss:\"%d segundos\",m:\"un minuto\",mm:\"%d minutos\",h:\"unha hora\",hh:\"%d horas\",d:\"un d\\xeda\",dd:\"%d d\\xedas\",M:\"un mes\",MM:\"%d meses\",y:\"un ano\",yy:\"%d anos\"},dayOfMonthOrdinalParse:/\\d{1,2}\\xba/,ordinal:\"%d\\xba\",week:{dow:1,doy:4}}),l.defineLocale(\"gom-latn\",{months:\"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr\".split(\"_\"),monthsShort:\"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.\".split(\"_\"),monthsParseExact:!0,weekdays:\"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var\".split(\"_\"),weekdaysShort:\"Ait._Som._Mon._Bud._Bre._Suk._Son.\".split(\"_\"),weekdaysMin:\"Ai_Sm_Mo_Bu_Br_Su_Sn\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"A h:mm [vazta]\",LTS:\"A h:mm:ss [vazta]\",L:\"DD-MM-YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY A h:mm [vazta]\",LLLL:\"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]\",llll:\"ddd, D MMM YYYY, A h:mm [vazta]\"},calendar:{sameDay:\"[Aiz] LT\",nextDay:\"[Faleam] LT\",nextWeek:\"[Ieta to] dddd[,] LT\",lastDay:\"[Kal] LT\",lastWeek:\"[Fatlo] dddd[,] LT\",sameElse:\"L\"},relativeTime:{future:\"%s\",past:\"%s adim\",s:Vs,ss:Vs,m:Vs,mm:Vs,h:Vs,hh:Vs,d:Vs,dd:Vs,M:Vs,MM:Vs,y:Vs,yy:Vs},dayOfMonthOrdinalParse:/\\d{1,2}(er)/,ordinal:function(e,a){switch(a){case\"D\":return e+\"er\";default:case\"M\":case\"Q\":case\"DDD\":case\"d\":case\"w\":case\"W\":return e}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(e,a){return 12===e&&(e=0),\"rati\"===a?e<4?e:e+12:\"sokalli\"===a?e:\"donparam\"===a?12<e?e:e+12:\"sanje\"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?\"rati\":e<12?\"sokalli\":e<16?\"donparam\":e<20?\"sanje\":\"rati\"}});var Ks={1:\"\\u0ae7\",2:\"\\u0ae8\",3:\"\\u0ae9\",4:\"\\u0aea\",5:\"\\u0aeb\",6:\"\\u0aec\",7:\"\\u0aed\",8:\"\\u0aee\",9:\"\\u0aef\",0:\"\\u0ae6\"},Zs={\"\\u0ae7\":\"1\",\"\\u0ae8\":\"2\",\"\\u0ae9\":\"3\",\"\\u0aea\":\"4\",\"\\u0aeb\":\"5\",\"\\u0aec\":\"6\",\"\\u0aed\":\"7\",\"\\u0aee\":\"8\",\"\\u0aef\":\"9\",\"\\u0ae6\":\"0\"};l.defineLocale(\"gu\",{months:\"\\u0a9c\\u0abe\\u0aa8\\u0acd\\u0aaf\\u0ac1\\u0a86\\u0ab0\\u0ac0_\\u0aab\\u0ac7\\u0aac\\u0acd\\u0ab0\\u0ac1\\u0a86\\u0ab0\\u0ac0_\\u0aae\\u0abe\\u0ab0\\u0acd\\u0a9a_\\u0a8f\\u0aaa\\u0acd\\u0ab0\\u0abf\\u0ab2_\\u0aae\\u0ac7_\\u0a9c\\u0ac2\\u0aa8_\\u0a9c\\u0ac1\\u0ab2\\u0abe\\u0a88_\\u0a91\\u0a97\\u0ab8\\u0acd\\u0a9f_\\u0ab8\\u0aaa\\u0acd\\u0a9f\\u0ac7\\u0aae\\u0acd\\u0aac\\u0ab0_\\u0a91\\u0a95\\u0acd\\u0a9f\\u0acd\\u0aac\\u0ab0_\\u0aa8\\u0ab5\\u0ac7\\u0aae\\u0acd\\u0aac\\u0ab0_\\u0aa1\\u0abf\\u0ab8\\u0ac7\\u0aae\\u0acd\\u0aac\\u0ab0\".split(\"_\"),monthsShort:\"\\u0a9c\\u0abe\\u0aa8\\u0acd\\u0aaf\\u0ac1._\\u0aab\\u0ac7\\u0aac\\u0acd\\u0ab0\\u0ac1._\\u0aae\\u0abe\\u0ab0\\u0acd\\u0a9a_\\u0a8f\\u0aaa\\u0acd\\u0ab0\\u0abf._\\u0aae\\u0ac7_\\u0a9c\\u0ac2\\u0aa8_\\u0a9c\\u0ac1\\u0ab2\\u0abe._\\u0a91\\u0a97._\\u0ab8\\u0aaa\\u0acd\\u0a9f\\u0ac7._\\u0a91\\u0a95\\u0acd\\u0a9f\\u0acd._\\u0aa8\\u0ab5\\u0ac7._\\u0aa1\\u0abf\\u0ab8\\u0ac7.\".split(\"_\"),monthsParseExact:!0,weekdays:\"\\u0ab0\\u0ab5\\u0abf\\u0ab5\\u0abe\\u0ab0_\\u0ab8\\u0acb\\u0aae\\u0ab5\\u0abe\\u0ab0_\\u0aae\\u0a82\\u0a97\\u0ab3\\u0ab5\\u0abe\\u0ab0_\\u0aac\\u0ac1\\u0aa7\\u0acd\\u0ab5\\u0abe\\u0ab0_\\u0a97\\u0ac1\\u0ab0\\u0ac1\\u0ab5\\u0abe\\u0ab0_\\u0ab6\\u0ac1\\u0a95\\u0acd\\u0ab0\\u0ab5\\u0abe\\u0ab0_\\u0ab6\\u0aa8\\u0abf\\u0ab5\\u0abe\\u0ab0\".split(\"_\"),weekdaysShort:\"\\u0ab0\\u0ab5\\u0abf_\\u0ab8\\u0acb\\u0aae_\\u0aae\\u0a82\\u0a97\\u0ab3_\\u0aac\\u0ac1\\u0aa7\\u0acd_\\u0a97\\u0ac1\\u0ab0\\u0ac1_\\u0ab6\\u0ac1\\u0a95\\u0acd\\u0ab0_\\u0ab6\\u0aa8\\u0abf\".split(\"_\"),weekdaysMin:\"\\u0ab0_\\u0ab8\\u0acb_\\u0aae\\u0a82_\\u0aac\\u0ac1_\\u0a97\\u0ac1_\\u0ab6\\u0ac1_\\u0ab6\".split(\"_\"),longDateFormat:{LT:\"A h:mm \\u0ab5\\u0abe\\u0a97\\u0acd\\u0aaf\\u0ac7\",LTS:\"A h:mm:ss \\u0ab5\\u0abe\\u0a97\\u0acd\\u0aaf\\u0ac7\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm \\u0ab5\\u0abe\\u0a97\\u0acd\\u0aaf\\u0ac7\",LLLL:\"dddd, D MMMM YYYY, A h:mm \\u0ab5\\u0abe\\u0a97\\u0acd\\u0aaf\\u0ac7\"},calendar:{sameDay:\"[\\u0a86\\u0a9c] LT\",nextDay:\"[\\u0a95\\u0abe\\u0ab2\\u0ac7] LT\",nextWeek:\"dddd, LT\",lastDay:\"[\\u0a97\\u0a87\\u0a95\\u0abe\\u0ab2\\u0ac7] LT\",lastWeek:\"[\\u0aaa\\u0abe\\u0a9b\\u0ab2\\u0abe] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s \\u0aae\\u0abe\",past:\"%s \\u0aaa\\u0ac7\\u0ab9\\u0ab2\\u0abe\",s:\"\\u0a85\\u0aae\\u0ac1\\u0a95 \\u0aaa\\u0ab3\\u0acb\",ss:\"%d \\u0ab8\\u0ac7\\u0a95\\u0a82\\u0aa1\",m:\"\\u0a8f\\u0a95 \\u0aae\\u0abf\\u0aa8\\u0abf\\u0a9f\",mm:\"%d \\u0aae\\u0abf\\u0aa8\\u0abf\\u0a9f\",h:\"\\u0a8f\\u0a95 \\u0a95\\u0ab2\\u0abe\\u0a95\",hh:\"%d \\u0a95\\u0ab2\\u0abe\\u0a95\",d:\"\\u0a8f\\u0a95 \\u0aa6\\u0abf\\u0ab5\\u0ab8\",dd:\"%d \\u0aa6\\u0abf\\u0ab5\\u0ab8\",M:\"\\u0a8f\\u0a95 \\u0aae\\u0ab9\\u0abf\\u0aa8\\u0acb\",MM:\"%d \\u0aae\\u0ab9\\u0abf\\u0aa8\\u0acb\",y:\"\\u0a8f\\u0a95 \\u0ab5\\u0ab0\\u0acd\\u0ab7\",yy:\"%d \\u0ab5\\u0ab0\\u0acd\\u0ab7\"},preparse:function(e){return e.replace(/[\\u0ae7\\u0ae8\\u0ae9\\u0aea\\u0aeb\\u0aec\\u0aed\\u0aee\\u0aef\\u0ae6]/g,function(e){return Zs[e]})},postformat:function(e){return e.replace(/\\d/g,function(e){return Ks[e]})},meridiemParse:/\\u0ab0\\u0abe\\u0aa4|\\u0aac\\u0aaa\\u0acb\\u0ab0|\\u0ab8\\u0ab5\\u0abe\\u0ab0|\\u0ab8\\u0abe\\u0a82\\u0a9c/,meridiemHour:function(e,a){return 12===e&&(e=0),\"\\u0ab0\\u0abe\\u0aa4\"===a?e<4?e:e+12:\"\\u0ab8\\u0ab5\\u0abe\\u0ab0\"===a?e:\"\\u0aac\\u0aaa\\u0acb\\u0ab0\"===a?10<=e?e:e+12:\"\\u0ab8\\u0abe\\u0a82\\u0a9c\"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?\"\\u0ab0\\u0abe\\u0aa4\":e<10?\"\\u0ab8\\u0ab5\\u0abe\\u0ab0\":e<17?\"\\u0aac\\u0aaa\\u0acb\\u0ab0\":e<20?\"\\u0ab8\\u0abe\\u0a82\\u0a9c\":\"\\u0ab0\\u0abe\\u0aa4\"},week:{dow:0,doy:6}}),l.defineLocale(\"he\",{months:\"\\u05d9\\u05e0\\u05d5\\u05d0\\u05e8_\\u05e4\\u05d1\\u05e8\\u05d5\\u05d0\\u05e8_\\u05de\\u05e8\\u05e5_\\u05d0\\u05e4\\u05e8\\u05d9\\u05dc_\\u05de\\u05d0\\u05d9_\\u05d9\\u05d5\\u05e0\\u05d9_\\u05d9\\u05d5\\u05dc\\u05d9_\\u05d0\\u05d5\\u05d2\\u05d5\\u05e1\\u05d8_\\u05e1\\u05e4\\u05d8\\u05de\\u05d1\\u05e8_\\u05d0\\u05d5\\u05e7\\u05d8\\u05d5\\u05d1\\u05e8_\\u05e0\\u05d5\\u05d1\\u05de\\u05d1\\u05e8_\\u05d3\\u05e6\\u05de\\u05d1\\u05e8\".split(\"_\"),monthsShort:\"\\u05d9\\u05e0\\u05d5\\u05f3_\\u05e4\\u05d1\\u05e8\\u05f3_\\u05de\\u05e8\\u05e5_\\u05d0\\u05e4\\u05e8\\u05f3_\\u05de\\u05d0\\u05d9_\\u05d9\\u05d5\\u05e0\\u05d9_\\u05d9\\u05d5\\u05dc\\u05d9_\\u05d0\\u05d5\\u05d2\\u05f3_\\u05e1\\u05e4\\u05d8\\u05f3_\\u05d0\\u05d5\\u05e7\\u05f3_\\u05e0\\u05d5\\u05d1\\u05f3_\\u05d3\\u05e6\\u05de\\u05f3\".split(\"_\"),weekdays:\"\\u05e8\\u05d0\\u05e9\\u05d5\\u05df_\\u05e9\\u05e0\\u05d9_\\u05e9\\u05dc\\u05d9\\u05e9\\u05d9_\\u05e8\\u05d1\\u05d9\\u05e2\\u05d9_\\u05d7\\u05de\\u05d9\\u05e9\\u05d9_\\u05e9\\u05d9\\u05e9\\u05d9_\\u05e9\\u05d1\\u05ea\".split(\"_\"),weekdaysShort:\"\\u05d0\\u05f3_\\u05d1\\u05f3_\\u05d2\\u05f3_\\u05d3\\u05f3_\\u05d4\\u05f3_\\u05d5\\u05f3_\\u05e9\\u05f3\".split(\"_\"),weekdaysMin:\"\\u05d0_\\u05d1_\\u05d2_\\u05d3_\\u05d4_\\u05d5_\\u05e9\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D [\\u05d1]MMMM YYYY\",LLL:\"D [\\u05d1]MMMM YYYY HH:mm\",LLLL:\"dddd, D [\\u05d1]MMMM YYYY HH:mm\",l:\"D/M/YYYY\",ll:\"D MMM YYYY\",lll:\"D MMM YYYY HH:mm\",llll:\"ddd, D MMM YYYY HH:mm\"},calendar:{sameDay:\"[\\u05d4\\u05d9\\u05d5\\u05dd \\u05d1\\u05be]LT\",nextDay:\"[\\u05de\\u05d7\\u05e8 \\u05d1\\u05be]LT\",nextWeek:\"dddd [\\u05d1\\u05e9\\u05e2\\u05d4] LT\",lastDay:\"[\\u05d0\\u05ea\\u05de\\u05d5\\u05dc \\u05d1\\u05be]LT\",lastWeek:\"[\\u05d1\\u05d9\\u05d5\\u05dd] dddd [\\u05d4\\u05d0\\u05d7\\u05e8\\u05d5\\u05df \\u05d1\\u05e9\\u05e2\\u05d4] LT\",sameElse:\"L\"},relativeTime:{future:\"\\u05d1\\u05e2\\u05d5\\u05d3 %s\",past:\"\\u05dc\\u05e4\\u05e0\\u05d9 %s\",s:\"\\u05de\\u05e1\\u05e4\\u05e8 \\u05e9\\u05e0\\u05d9\\u05d5\\u05ea\",ss:\"%d \\u05e9\\u05e0\\u05d9\\u05d5\\u05ea\",m:\"\\u05d3\\u05e7\\u05d4\",mm:\"%d \\u05d3\\u05e7\\u05d5\\u05ea\",h:\"\\u05e9\\u05e2\\u05d4\",hh:function(e){return 2===e?\"\\u05e9\\u05e2\\u05ea\\u05d9\\u05d9\\u05dd\":e+\" \\u05e9\\u05e2\\u05d5\\u05ea\"},d:\"\\u05d9\\u05d5\\u05dd\",dd:function(e){return 2===e?\"\\u05d9\\u05d5\\u05de\\u05d9\\u05d9\\u05dd\":e+\" \\u05d9\\u05de\\u05d9\\u05dd\"},M:\"\\u05d7\\u05d5\\u05d3\\u05e9\",MM:function(e){return 2===e?\"\\u05d7\\u05d5\\u05d3\\u05e9\\u05d9\\u05d9\\u05dd\":e+\" \\u05d7\\u05d5\\u05d3\\u05e9\\u05d9\\u05dd\"},y:\"\\u05e9\\u05e0\\u05d4\",yy:function(e){return 2===e?\"\\u05e9\\u05e0\\u05ea\\u05d9\\u05d9\\u05dd\":e%10==0&&10!==e?e+\" \\u05e9\\u05e0\\u05d4\":e+\" \\u05e9\\u05e0\\u05d9\\u05dd\"}},meridiemParse:/\\u05d0\\u05d7\\u05d4\"\\u05e6|\\u05dc\\u05e4\\u05e0\\u05d4\"\\u05e6|\\u05d0\\u05d7\\u05e8\\u05d9 \\u05d4\\u05e6\\u05d4\\u05e8\\u05d9\\u05d9\\u05dd|\\u05dc\\u05e4\\u05e0\\u05d9 \\u05d4\\u05e6\\u05d4\\u05e8\\u05d9\\u05d9\\u05dd|\\u05dc\\u05e4\\u05e0\\u05d5\\u05ea \\u05d1\\u05d5\\u05e7\\u05e8|\\u05d1\\u05d1\\u05d5\\u05e7\\u05e8|\\u05d1\\u05e2\\u05e8\\u05d1/i,isPM:function(e){return/^(\\u05d0\\u05d7\\u05d4\"\\u05e6|\\u05d0\\u05d7\\u05e8\\u05d9 \\u05d4\\u05e6\\u05d4\\u05e8\\u05d9\\u05d9\\u05dd|\\u05d1\\u05e2\\u05e8\\u05d1)$/.test(e)},meridiem:function(e,a,t){return e<5?\"\\u05dc\\u05e4\\u05e0\\u05d5\\u05ea \\u05d1\\u05d5\\u05e7\\u05e8\":e<10?\"\\u05d1\\u05d1\\u05d5\\u05e7\\u05e8\":e<12?t?'\\u05dc\\u05e4\\u05e0\\u05d4\"\\u05e6':\"\\u05dc\\u05e4\\u05e0\\u05d9 \\u05d4\\u05e6\\u05d4\\u05e8\\u05d9\\u05d9\\u05dd\":e<18?t?'\\u05d0\\u05d7\\u05d4\"\\u05e6':\"\\u05d0\\u05d7\\u05e8\\u05d9 \\u05d4\\u05e6\\u05d4\\u05e8\\u05d9\\u05d9\\u05dd\":\"\\u05d1\\u05e2\\u05e8\\u05d1\"}});var $s={1:\"\\u0967\",2:\"\\u0968\",3:\"\\u0969\",4:\"\\u096a\",5:\"\\u096b\",6:\"\\u096c\",7:\"\\u096d\",8:\"\\u096e\",9:\"\\u096f\",0:\"\\u0966\"},Bs={\"\\u0967\":\"1\",\"\\u0968\":\"2\",\"\\u0969\":\"3\",\"\\u096a\":\"4\",\"\\u096b\":\"5\",\"\\u096c\":\"6\",\"\\u096d\":\"7\",\"\\u096e\":\"8\",\"\\u096f\":\"9\",\"\\u0966\":\"0\"};function qs(e,a,t){var s=e+\" \";switch(t){case\"ss\":return s+=1===e?\"sekunda\":2===e||3===e||4===e?\"sekunde\":\"sekundi\";case\"m\":return a?\"jedna minuta\":\"jedne minute\";case\"mm\":return s+=1===e?\"minuta\":2===e||3===e||4===e?\"minute\":\"minuta\";case\"h\":return a?\"jedan sat\":\"jednog sata\";case\"hh\":return s+=1===e?\"sat\":2===e||3===e||4===e?\"sata\":\"sati\";case\"dd\":return s+=1===e?\"dan\":\"dana\";case\"MM\":return s+=1===e?\"mjesec\":2===e||3===e||4===e?\"mjeseca\":\"mjeseci\";case\"yy\":return s+=1===e?\"godina\":2===e||3===e||4===e?\"godine\":\"godina\"}}l.defineLocale(\"hi\",{months:\"\\u091c\\u0928\\u0935\\u0930\\u0940_\\u092b\\u093c\\u0930\\u0935\\u0930\\u0940_\\u092e\\u093e\\u0930\\u094d\\u091a_\\u0905\\u092a\\u094d\\u0930\\u0948\\u0932_\\u092e\\u0908_\\u091c\\u0942\\u0928_\\u091c\\u0941\\u0932\\u093e\\u0908_\\u0905\\u0917\\u0938\\u094d\\u0924_\\u0938\\u093f\\u0924\\u092e\\u094d\\u092c\\u0930_\\u0905\\u0915\\u094d\\u091f\\u0942\\u092c\\u0930_\\u0928\\u0935\\u092e\\u094d\\u092c\\u0930_\\u0926\\u093f\\u0938\\u092e\\u094d\\u092c\\u0930\".split(\"_\"),monthsShort:\"\\u091c\\u0928._\\u092b\\u093c\\u0930._\\u092e\\u093e\\u0930\\u094d\\u091a_\\u0905\\u092a\\u094d\\u0930\\u0948._\\u092e\\u0908_\\u091c\\u0942\\u0928_\\u091c\\u0941\\u0932._\\u0905\\u0917._\\u0938\\u093f\\u0924._\\u0905\\u0915\\u094d\\u091f\\u0942._\\u0928\\u0935._\\u0926\\u093f\\u0938.\".split(\"_\"),monthsParseExact:!0,weekdays:\"\\u0930\\u0935\\u093f\\u0935\\u093e\\u0930_\\u0938\\u094b\\u092e\\u0935\\u093e\\u0930_\\u092e\\u0902\\u0917\\u0932\\u0935\\u093e\\u0930_\\u092c\\u0941\\u0927\\u0935\\u093e\\u0930_\\u0917\\u0941\\u0930\\u0942\\u0935\\u093e\\u0930_\\u0936\\u0941\\u0915\\u094d\\u0930\\u0935\\u093e\\u0930_\\u0936\\u0928\\u093f\\u0935\\u093e\\u0930\".split(\"_\"),weekdaysShort:\"\\u0930\\u0935\\u093f_\\u0938\\u094b\\u092e_\\u092e\\u0902\\u0917\\u0932_\\u092c\\u0941\\u0927_\\u0917\\u0941\\u0930\\u0942_\\u0936\\u0941\\u0915\\u094d\\u0930_\\u0936\\u0928\\u093f\".split(\"_\"),weekdaysMin:\"\\u0930_\\u0938\\u094b_\\u092e\\u0902_\\u092c\\u0941_\\u0917\\u0941_\\u0936\\u0941_\\u0936\".split(\"_\"),longDateFormat:{LT:\"A h:mm \\u092c\\u091c\\u0947\",LTS:\"A h:mm:ss \\u092c\\u091c\\u0947\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm \\u092c\\u091c\\u0947\",LLLL:\"dddd, D MMMM YYYY, A h:mm \\u092c\\u091c\\u0947\"},calendar:{sameDay:\"[\\u0906\\u091c] LT\",nextDay:\"[\\u0915\\u0932] LT\",nextWeek:\"dddd, LT\",lastDay:\"[\\u0915\\u0932] LT\",lastWeek:\"[\\u092a\\u093f\\u091b\\u0932\\u0947] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s \\u092e\\u0947\\u0902\",past:\"%s \\u092a\\u0939\\u0932\\u0947\",s:\"\\u0915\\u0941\\u091b \\u0939\\u0940 \\u0915\\u094d\\u0937\\u0923\",ss:\"%d \\u0938\\u0947\\u0915\\u0902\\u0921\",m:\"\\u090f\\u0915 \\u092e\\u093f\\u0928\\u091f\",mm:\"%d \\u092e\\u093f\\u0928\\u091f\",h:\"\\u090f\\u0915 \\u0918\\u0902\\u091f\\u093e\",hh:\"%d \\u0918\\u0902\\u091f\\u0947\",d:\"\\u090f\\u0915 \\u0926\\u093f\\u0928\",dd:\"%d \\u0926\\u093f\\u0928\",M:\"\\u090f\\u0915 \\u092e\\u0939\\u0940\\u0928\\u0947\",MM:\"%d \\u092e\\u0939\\u0940\\u0928\\u0947\",y:\"\\u090f\\u0915 \\u0935\\u0930\\u094d\\u0937\",yy:\"%d \\u0935\\u0930\\u094d\\u0937\"},preparse:function(e){return e.replace(/[\\u0967\\u0968\\u0969\\u096a\\u096b\\u096c\\u096d\\u096e\\u096f\\u0966]/g,function(e){return Bs[e]})},postformat:function(e){return e.replace(/\\d/g,function(e){return $s[e]})},meridiemParse:/\\u0930\\u093e\\u0924|\\u0938\\u0941\\u092c\\u0939|\\u0926\\u094b\\u092a\\u0939\\u0930|\\u0936\\u093e\\u092e/,meridiemHour:function(e,a){return 12===e&&(e=0),\"\\u0930\\u093e\\u0924\"===a?e<4?e:e+12:\"\\u0938\\u0941\\u092c\\u0939\"===a?e:\"\\u0926\\u094b\\u092a\\u0939\\u0930\"===a?10<=e?e:e+12:\"\\u0936\\u093e\\u092e\"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?\"\\u0930\\u093e\\u0924\":e<10?\"\\u0938\\u0941\\u092c\\u0939\":e<17?\"\\u0926\\u094b\\u092a\\u0939\\u0930\":e<20?\"\\u0936\\u093e\\u092e\":\"\\u0930\\u093e\\u0924\"},week:{dow:0,doy:6}}),l.defineLocale(\"hr\",{months:{format:\"sije\\u010dnja_velja\\u010de_o\\u017eujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca\".split(\"_\"),standalone:\"sije\\u010danj_velja\\u010da_o\\u017eujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac\".split(\"_\")},monthsShort:\"sij._velj._o\\u017eu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.\".split(\"_\"),monthsParseExact:!0,weekdays:\"nedjelja_ponedjeljak_utorak_srijeda_\\u010detvrtak_petak_subota\".split(\"_\"),weekdaysShort:\"ned._pon._uto._sri._\\u010det._pet._sub.\".split(\"_\"),weekdaysMin:\"ne_po_ut_sr_\\u010de_pe_su\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedjelju] [u] LT\";case 3:return\"[u] [srijedu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[ju\\u010der u] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:return\"[pro\\u0161lu] dddd [u] LT\";case 6:return\"[pro\\u0161le] [subote] [u] LT\";case 1:case 2:case 4:case 5:return\"[pro\\u0161li] dddd [u] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"prije %s\",s:\"par sekundi\",ss:qs,m:qs,mm:qs,h:qs,hh:qs,d:\"dan\",dd:qs,M:\"mjesec\",MM:qs,y:\"godinu\",yy:qs},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}});var Qs=\"vas\\xe1rnap h\\xe9tf\\u0151n kedden szerd\\xe1n cs\\xfct\\xf6rt\\xf6k\\xf6n p\\xe9nteken szombaton\".split(\" \");function Xs(e,a,t,s){var n=e;switch(t){case\"s\":return s||a?\"n\\xe9h\\xe1ny m\\xe1sodperc\":\"n\\xe9h\\xe1ny m\\xe1sodperce\";case\"ss\":return n+(s||a)?\" m\\xe1sodperc\":\" m\\xe1sodperce\";case\"m\":return\"egy\"+(s||a?\" perc\":\" perce\");case\"mm\":return n+(s||a?\" perc\":\" perce\");case\"h\":return\"egy\"+(s||a?\" \\xf3ra\":\" \\xf3r\\xe1ja\");case\"hh\":return n+(s||a?\" \\xf3ra\":\" \\xf3r\\xe1ja\");case\"d\":return\"egy\"+(s||a?\" nap\":\" napja\");case\"dd\":return n+(s||a?\" nap\":\" napja\");case\"M\":return\"egy\"+(s||a?\" h\\xf3nap\":\" h\\xf3napja\");case\"MM\":return n+(s||a?\" h\\xf3nap\":\" h\\xf3napja\");case\"y\":return\"egy\"+(s||a?\" \\xe9v\":\" \\xe9ve\");case\"yy\":return n+(s||a?\" \\xe9v\":\" \\xe9ve\")}return\"\"}function en(e){return(e?\"\":\"[m\\xfalt] \")+\"[\"+Qs[this.day()]+\"] LT[-kor]\"}function an(e){return e%100==11||e%10!=1}function tn(e,a,t,s){var n=e+\" \";switch(t){case\"s\":return a||s?\"nokkrar sek\\xfandur\":\"nokkrum sek\\xfandum\";case\"ss\":return an(e)?n+(a||s?\"sek\\xfandur\":\"sek\\xfandum\"):n+\"sek\\xfanda\";case\"m\":return a?\"m\\xedn\\xfata\":\"m\\xedn\\xfatu\";case\"mm\":return an(e)?n+(a||s?\"m\\xedn\\xfatur\":\"m\\xedn\\xfatum\"):a?n+\"m\\xedn\\xfata\":n+\"m\\xedn\\xfatu\";case\"hh\":return an(e)?n+(a||s?\"klukkustundir\":\"klukkustundum\"):n+\"klukkustund\";case\"d\":return a?\"dagur\":s?\"dag\":\"degi\";case\"dd\":return an(e)?a?n+\"dagar\":n+(s?\"daga\":\"d\\xf6gum\"):a?n+\"dagur\":n+(s?\"dag\":\"degi\");case\"M\":return a?\"m\\xe1nu\\xf0ur\":s?\"m\\xe1nu\\xf0\":\"m\\xe1nu\\xf0i\";case\"MM\":return an(e)?a?n+\"m\\xe1nu\\xf0ir\":n+(s?\"m\\xe1nu\\xf0i\":\"m\\xe1nu\\xf0um\"):a?n+\"m\\xe1nu\\xf0ur\":n+(s?\"m\\xe1nu\\xf0\":\"m\\xe1nu\\xf0i\");case\"y\":return a||s?\"\\xe1r\":\"\\xe1ri\";case\"yy\":return an(e)?n+(a||s?\"\\xe1r\":\"\\xe1rum\"):n+(a||s?\"\\xe1r\":\"\\xe1ri\")}}l.defineLocale(\"hu\",{months:\"janu\\xe1r_febru\\xe1r_m\\xe1rcius_\\xe1prilis_m\\xe1jus_j\\xfanius_j\\xfalius_augusztus_szeptember_okt\\xf3ber_november_december\".split(\"_\"),monthsShort:\"jan_feb_m\\xe1rc_\\xe1pr_m\\xe1j_j\\xfan_j\\xfal_aug_szept_okt_nov_dec\".split(\"_\"),weekdays:\"vas\\xe1rnap_h\\xe9tf\\u0151_kedd_szerda_cs\\xfct\\xf6rt\\xf6k_p\\xe9ntek_szombat\".split(\"_\"),weekdaysShort:\"vas_h\\xe9t_kedd_sze_cs\\xfct_p\\xe9n_szo\".split(\"_\"),weekdaysMin:\"v_h_k_sze_cs_p_szo\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"YYYY.MM.DD.\",LL:\"YYYY. MMMM D.\",LLL:\"YYYY. MMMM D. H:mm\",LLLL:\"YYYY. MMMM D., dddd H:mm\"},meridiemParse:/de|du/i,isPM:function(e){return\"u\"===e.charAt(1).toLowerCase()},meridiem:function(e,a,t){return e<12?!0===t?\"de\":\"DE\":!0===t?\"du\":\"DU\"},calendar:{sameDay:\"[ma] LT[-kor]\",nextDay:\"[holnap] LT[-kor]\",nextWeek:function(){return en.call(this,!0)},lastDay:\"[tegnap] LT[-kor]\",lastWeek:function(){return en.call(this,!1)},sameElse:\"L\"},relativeTime:{future:\"%s m\\xfalva\",past:\"%s\",s:Xs,ss:Xs,m:Xs,mm:Xs,h:Xs,hh:Xs,d:Xs,dd:Xs,M:Xs,MM:Xs,y:Xs,yy:Xs},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),l.defineLocale(\"hy-am\",{months:{format:\"\\u0570\\u0578\\u0582\\u0576\\u057e\\u0561\\u0580\\u056b_\\u0583\\u0565\\u057f\\u0580\\u057e\\u0561\\u0580\\u056b_\\u0574\\u0561\\u0580\\u057f\\u056b_\\u0561\\u057a\\u0580\\u056b\\u056c\\u056b_\\u0574\\u0561\\u0575\\u056b\\u057d\\u056b_\\u0570\\u0578\\u0582\\u0576\\u056b\\u057d\\u056b_\\u0570\\u0578\\u0582\\u056c\\u056b\\u057d\\u056b_\\u0585\\u0563\\u0578\\u057d\\u057f\\u0578\\u057d\\u056b_\\u057d\\u0565\\u057a\\u057f\\u0565\\u0574\\u0562\\u0565\\u0580\\u056b_\\u0570\\u0578\\u056f\\u057f\\u0565\\u0574\\u0562\\u0565\\u0580\\u056b_\\u0576\\u0578\\u0575\\u0565\\u0574\\u0562\\u0565\\u0580\\u056b_\\u0564\\u0565\\u056f\\u057f\\u0565\\u0574\\u0562\\u0565\\u0580\\u056b\".split(\"_\"),standalone:\"\\u0570\\u0578\\u0582\\u0576\\u057e\\u0561\\u0580_\\u0583\\u0565\\u057f\\u0580\\u057e\\u0561\\u0580_\\u0574\\u0561\\u0580\\u057f_\\u0561\\u057a\\u0580\\u056b\\u056c_\\u0574\\u0561\\u0575\\u056b\\u057d_\\u0570\\u0578\\u0582\\u0576\\u056b\\u057d_\\u0570\\u0578\\u0582\\u056c\\u056b\\u057d_\\u0585\\u0563\\u0578\\u057d\\u057f\\u0578\\u057d_\\u057d\\u0565\\u057a\\u057f\\u0565\\u0574\\u0562\\u0565\\u0580_\\u0570\\u0578\\u056f\\u057f\\u0565\\u0574\\u0562\\u0565\\u0580_\\u0576\\u0578\\u0575\\u0565\\u0574\\u0562\\u0565\\u0580_\\u0564\\u0565\\u056f\\u057f\\u0565\\u0574\\u0562\\u0565\\u0580\".split(\"_\")},monthsShort:\"\\u0570\\u0576\\u057e_\\u0583\\u057f\\u0580_\\u0574\\u0580\\u057f_\\u0561\\u057a\\u0580_\\u0574\\u0575\\u057d_\\u0570\\u0576\\u057d_\\u0570\\u056c\\u057d_\\u0585\\u0563\\u057d_\\u057d\\u057a\\u057f_\\u0570\\u056f\\u057f_\\u0576\\u0574\\u0562_\\u0564\\u056f\\u057f\".split(\"_\"),weekdays:\"\\u056f\\u056b\\u0580\\u0561\\u056f\\u056b_\\u0565\\u0580\\u056f\\u0578\\u0582\\u0577\\u0561\\u0562\\u0569\\u056b_\\u0565\\u0580\\u0565\\u0584\\u0577\\u0561\\u0562\\u0569\\u056b_\\u0579\\u0578\\u0580\\u0565\\u0584\\u0577\\u0561\\u0562\\u0569\\u056b_\\u0570\\u056b\\u0576\\u0563\\u0577\\u0561\\u0562\\u0569\\u056b_\\u0578\\u0582\\u0580\\u0562\\u0561\\u0569_\\u0577\\u0561\\u0562\\u0561\\u0569\".split(\"_\"),weekdaysShort:\"\\u056f\\u0580\\u056f_\\u0565\\u0580\\u056f_\\u0565\\u0580\\u0584_\\u0579\\u0580\\u0584_\\u0570\\u0576\\u0563_\\u0578\\u0582\\u0580\\u0562_\\u0577\\u0562\\u0569\".split(\"_\"),weekdaysMin:\"\\u056f\\u0580\\u056f_\\u0565\\u0580\\u056f_\\u0565\\u0580\\u0584_\\u0579\\u0580\\u0584_\\u0570\\u0576\\u0563_\\u0578\\u0582\\u0580\\u0562_\\u0577\\u0562\\u0569\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY \\u0569.\",LLL:\"D MMMM YYYY \\u0569., HH:mm\",LLLL:\"dddd, D MMMM YYYY \\u0569., HH:mm\"},calendar:{sameDay:\"[\\u0561\\u0575\\u057d\\u0585\\u0580] LT\",nextDay:\"[\\u057e\\u0561\\u0572\\u0568] LT\",lastDay:\"[\\u0565\\u0580\\u0565\\u056f] LT\",nextWeek:function(){return\"dddd [\\u0585\\u0580\\u0568 \\u056a\\u0561\\u0574\\u0568] LT\"},lastWeek:function(){return\"[\\u0561\\u0576\\u0581\\u0561\\u056e] dddd [\\u0585\\u0580\\u0568 \\u056a\\u0561\\u0574\\u0568] LT\"},sameElse:\"L\"},relativeTime:{future:\"%s \\u0570\\u0565\\u057f\\u0578\",past:\"%s \\u0561\\u057c\\u0561\\u057b\",s:\"\\u0574\\u056b \\u0584\\u0561\\u0576\\u056b \\u057e\\u0561\\u0575\\u0580\\u056f\\u0575\\u0561\\u0576\",ss:\"%d \\u057e\\u0561\\u0575\\u0580\\u056f\\u0575\\u0561\\u0576\",m:\"\\u0580\\u0578\\u057a\\u0565\",mm:\"%d \\u0580\\u0578\\u057a\\u0565\",h:\"\\u056a\\u0561\\u0574\",hh:\"%d \\u056a\\u0561\\u0574\",d:\"\\u0585\\u0580\",dd:\"%d \\u0585\\u0580\",M:\"\\u0561\\u0574\\u056b\\u057d\",MM:\"%d \\u0561\\u0574\\u056b\\u057d\",y:\"\\u057f\\u0561\\u0580\\u056b\",yy:\"%d \\u057f\\u0561\\u0580\\u056b\"},meridiemParse:/\\u0563\\u056b\\u0577\\u0565\\u0580\\u057e\\u0561|\\u0561\\u057c\\u0561\\u057e\\u0578\\u057f\\u057e\\u0561|\\u0581\\u0565\\u0580\\u0565\\u056f\\u057e\\u0561|\\u0565\\u0580\\u0565\\u056f\\u0578\\u0575\\u0561\\u0576/,isPM:function(e){return/^(\\u0581\\u0565\\u0580\\u0565\\u056f\\u057e\\u0561|\\u0565\\u0580\\u0565\\u056f\\u0578\\u0575\\u0561\\u0576)$/.test(e)},meridiem:function(e){return e<4?\"\\u0563\\u056b\\u0577\\u0565\\u0580\\u057e\\u0561\":e<12?\"\\u0561\\u057c\\u0561\\u057e\\u0578\\u057f\\u057e\\u0561\":e<17?\"\\u0581\\u0565\\u0580\\u0565\\u056f\\u057e\\u0561\":\"\\u0565\\u0580\\u0565\\u056f\\u0578\\u0575\\u0561\\u0576\"},dayOfMonthOrdinalParse:/\\d{1,2}|\\d{1,2}-(\\u056b\\u0576|\\u0580\\u0564)/,ordinal:function(e,a){switch(a){case\"DDD\":case\"w\":case\"W\":case\"DDDo\":return 1===e?e+\"-\\u056b\\u0576\":e+\"-\\u0580\\u0564\";default:return e}},week:{dow:1,doy:7}}),l.defineLocale(\"id\",{months:\"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des\".split(\"_\"),weekdays:\"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu\".split(\"_\"),weekdaysShort:\"Min_Sen_Sel_Rab_Kam_Jum_Sab\".split(\"_\"),weekdaysMin:\"Mg_Sn_Sl_Rb_Km_Jm_Sb\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [pukul] HH.mm\",LLLL:\"dddd, D MMMM YYYY [pukul] HH.mm\"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,a){return 12===e&&(e=0),\"pagi\"===a?e:\"siang\"===a?11<=e?e:e+12:\"sore\"===a||\"malam\"===a?e+12:void 0},meridiem:function(e,a,t){return e<11?\"pagi\":e<15?\"siang\":e<19?\"sore\":\"malam\"},calendar:{sameDay:\"[Hari ini pukul] LT\",nextDay:\"[Besok pukul] LT\",nextWeek:\"dddd [pukul] LT\",lastDay:\"[Kemarin pukul] LT\",lastWeek:\"dddd [lalu pukul] LT\",sameElse:\"L\"},relativeTime:{future:\"dalam %s\",past:\"%s yang lalu\",s:\"beberapa detik\",ss:\"%d detik\",m:\"semenit\",mm:\"%d menit\",h:\"sejam\",hh:\"%d jam\",d:\"sehari\",dd:\"%d hari\",M:\"sebulan\",MM:\"%d bulan\",y:\"setahun\",yy:\"%d tahun\"},week:{dow:1,doy:7}}),l.defineLocale(\"is\",{months:\"jan\\xfaar_febr\\xfaar_mars_apr\\xedl_ma\\xed_j\\xfan\\xed_j\\xfal\\xed_\\xe1g\\xfast_september_okt\\xf3ber_n\\xf3vember_desember\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_ma\\xed_j\\xfan_j\\xfal_\\xe1g\\xfa_sep_okt_n\\xf3v_des\".split(\"_\"),weekdays:\"sunnudagur_m\\xe1nudagur_\\xferi\\xf0judagur_mi\\xf0vikudagur_fimmtudagur_f\\xf6studagur_laugardagur\".split(\"_\"),weekdaysShort:\"sun_m\\xe1n_\\xferi_mi\\xf0_fim_f\\xf6s_lau\".split(\"_\"),weekdaysMin:\"Su_M\\xe1_\\xder_Mi_Fi_F\\xf6_La\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY [kl.] H:mm\",LLLL:\"dddd, D. MMMM YYYY [kl.] H:mm\"},calendar:{sameDay:\"[\\xed dag kl.] LT\",nextDay:\"[\\xe1 morgun kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[\\xed g\\xe6r kl.] LT\",lastWeek:\"[s\\xed\\xf0asta] dddd [kl.] LT\",sameElse:\"L\"},relativeTime:{future:\"eftir %s\",past:\"fyrir %s s\\xed\\xf0an\",s:tn,ss:tn,m:tn,mm:tn,h:\"klukkustund\",hh:tn,d:tn,dd:tn,M:tn,MM:tn,y:tn,yy:tn},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),l.defineLocale(\"it-ch\",{months:\"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre\".split(\"_\"),monthsShort:\"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic\".split(\"_\"),weekdays:\"domenica_luned\\xec_marted\\xec_mercoled\\xec_gioved\\xec_venerd\\xec_sabato\".split(\"_\"),weekdaysShort:\"dom_lun_mar_mer_gio_ven_sab\".split(\"_\"),weekdaysMin:\"do_lu_ma_me_gi_ve_sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Oggi alle] LT\",nextDay:\"[Domani alle] LT\",nextWeek:\"dddd [alle] LT\",lastDay:\"[Ieri alle] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[la scorsa] dddd [alle] LT\";default:return\"[lo scorso] dddd [alle] LT\"}},sameElse:\"L\"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?\"tra\":\"in\")+\" \"+e},past:\"%s fa\",s:\"alcuni secondi\",ss:\"%d secondi\",m:\"un minuto\",mm:\"%d minuti\",h:\"un'ora\",hh:\"%d ore\",d:\"un giorno\",dd:\"%d giorni\",M:\"un mese\",MM:\"%d mesi\",y:\"un anno\",yy:\"%d anni\"},dayOfMonthOrdinalParse:/\\d{1,2}\\xba/,ordinal:\"%d\\xba\",week:{dow:1,doy:4}}),l.defineLocale(\"it\",{months:\"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre\".split(\"_\"),monthsShort:\"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic\".split(\"_\"),weekdays:\"domenica_luned\\xec_marted\\xec_mercoled\\xec_gioved\\xec_venerd\\xec_sabato\".split(\"_\"),weekdaysShort:\"dom_lun_mar_mer_gio_ven_sab\".split(\"_\"),weekdaysMin:\"do_lu_ma_me_gi_ve_sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Oggi alle] LT\",nextDay:\"[Domani alle] LT\",nextWeek:\"dddd [alle] LT\",lastDay:\"[Ieri alle] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[la scorsa] dddd [alle] LT\";default:return\"[lo scorso] dddd [alle] LT\"}},sameElse:\"L\"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?\"tra\":\"in\")+\" \"+e},past:\"%s fa\",s:\"alcuni secondi\",ss:\"%d secondi\",m:\"un minuto\",mm:\"%d minuti\",h:\"un'ora\",hh:\"%d ore\",d:\"un giorno\",dd:\"%d giorni\",M:\"un mese\",MM:\"%d mesi\",y:\"un anno\",yy:\"%d anni\"},dayOfMonthOrdinalParse:/\\d{1,2}\\xba/,ordinal:\"%d\\xba\",week:{dow:1,doy:4}}),l.defineLocale(\"ja\",{months:\"\\u4e00\\u6708_\\u4e8c\\u6708_\\u4e09\\u6708_\\u56db\\u6708_\\u4e94\\u6708_\\u516d\\u6708_\\u4e03\\u6708_\\u516b\\u6708_\\u4e5d\\u6708_\\u5341\\u6708_\\u5341\\u4e00\\u6708_\\u5341\\u4e8c\\u6708\".split(\"_\"),monthsShort:\"1\\u6708_2\\u6708_3\\u6708_4\\u6708_5\\u6708_6\\u6708_7\\u6708_8\\u6708_9\\u6708_10\\u6708_11\\u6708_12\\u6708\".split(\"_\"),weekdays:\"\\u65e5\\u66dc\\u65e5_\\u6708\\u66dc\\u65e5_\\u706b\\u66dc\\u65e5_\\u6c34\\u66dc\\u65e5_\\u6728\\u66dc\\u65e5_\\u91d1\\u66dc\\u65e5_\\u571f\\u66dc\\u65e5\".split(\"_\"),weekdaysShort:\"\\u65e5_\\u6708_\\u706b_\\u6c34_\\u6728_\\u91d1_\\u571f\".split(\"_\"),weekdaysMin:\"\\u65e5_\\u6708_\\u706b_\\u6c34_\\u6728_\\u91d1_\\u571f\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY/MM/DD\",LL:\"YYYY\\u5e74M\\u6708D\\u65e5\",LLL:\"YYYY\\u5e74M\\u6708D\\u65e5 HH:mm\",LLLL:\"YYYY\\u5e74M\\u6708D\\u65e5 dddd HH:mm\",l:\"YYYY/MM/DD\",ll:\"YYYY\\u5e74M\\u6708D\\u65e5\",lll:\"YYYY\\u5e74M\\u6708D\\u65e5 HH:mm\",llll:\"YYYY\\u5e74M\\u6708D\\u65e5(ddd) HH:mm\"},meridiemParse:/\\u5348\\u524d|\\u5348\\u5f8c/i,isPM:function(e){return\"\\u5348\\u5f8c\"===e},meridiem:function(e,a,t){return e<12?\"\\u5348\\u524d\":\"\\u5348\\u5f8c\"},calendar:{sameDay:\"[\\u4eca\\u65e5] LT\",nextDay:\"[\\u660e\\u65e5] LT\",nextWeek:function(e){return e.week()<this.week()?\"[\\u6765\\u9031]dddd LT\":\"dddd LT\"},lastDay:\"[\\u6628\\u65e5] LT\",lastWeek:function(e){return this.week()<e.week()?\"[\\u5148\\u9031]dddd LT\":\"dddd LT\"},sameElse:\"L\"},dayOfMonthOrdinalParse:/\\d{1,2}\\u65e5/,ordinal:function(e,a){switch(a){case\"d\":case\"D\":case\"DDD\":return e+\"\\u65e5\";default:return e}},relativeTime:{future:\"%s\\u5f8c\",past:\"%s\\u524d\",s:\"\\u6570\\u79d2\",ss:\"%d\\u79d2\",m:\"1\\u5206\",mm:\"%d\\u5206\",h:\"1\\u6642\\u9593\",hh:\"%d\\u6642\\u9593\",d:\"1\\u65e5\",dd:\"%d\\u65e5\",M:\"1\\u30f6\\u6708\",MM:\"%d\\u30f6\\u6708\",y:\"1\\u5e74\",yy:\"%d\\u5e74\"}}),l.defineLocale(\"jv\",{months:\"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des\".split(\"_\"),weekdays:\"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu\".split(\"_\"),weekdaysShort:\"Min_Sen_Sel_Reb_Kem_Jem_Sep\".split(\"_\"),weekdaysMin:\"Mg_Sn_Sl_Rb_Km_Jm_Sp\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [pukul] HH.mm\",LLLL:\"dddd, D MMMM YYYY [pukul] HH.mm\"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(e,a){return 12===e&&(e=0),\"enjing\"===a?e:\"siyang\"===a?11<=e?e:e+12:\"sonten\"===a||\"ndalu\"===a?e+12:void 0},meridiem:function(e,a,t){return e<11?\"enjing\":e<15?\"siyang\":e<19?\"sonten\":\"ndalu\"},calendar:{sameDay:\"[Dinten puniko pukul] LT\",nextDay:\"[Mbenjang pukul] LT\",nextWeek:\"dddd [pukul] LT\",lastDay:\"[Kala wingi pukul] LT\",lastWeek:\"dddd [kepengker pukul] LT\",sameElse:\"L\"},relativeTime:{future:\"wonten ing %s\",past:\"%s ingkang kepengker\",s:\"sawetawis detik\",ss:\"%d detik\",m:\"setunggal menit\",mm:\"%d menit\",h:\"setunggal jam\",hh:\"%d jam\",d:\"sedinten\",dd:\"%d dinten\",M:\"sewulan\",MM:\"%d wulan\",y:\"setaun\",yy:\"%d taun\"},week:{dow:1,doy:7}}),l.defineLocale(\"ka\",{months:{standalone:\"\\u10d8\\u10d0\\u10dc\\u10d5\\u10d0\\u10e0\\u10d8_\\u10d7\\u10d4\\u10d1\\u10d4\\u10e0\\u10d5\\u10d0\\u10da\\u10d8_\\u10db\\u10d0\\u10e0\\u10e2\\u10d8_\\u10d0\\u10de\\u10e0\\u10d8\\u10da\\u10d8_\\u10db\\u10d0\\u10d8\\u10e1\\u10d8_\\u10d8\\u10d5\\u10dc\\u10d8\\u10e1\\u10d8_\\u10d8\\u10d5\\u10da\\u10d8\\u10e1\\u10d8_\\u10d0\\u10d2\\u10d5\\u10d8\\u10e1\\u10e2\\u10dd_\\u10e1\\u10d4\\u10e5\\u10e2\\u10d4\\u10db\\u10d1\\u10d4\\u10e0\\u10d8_\\u10dd\\u10e5\\u10e2\\u10dd\\u10db\\u10d1\\u10d4\\u10e0\\u10d8_\\u10dc\\u10dd\\u10d4\\u10db\\u10d1\\u10d4\\u10e0\\u10d8_\\u10d3\\u10d4\\u10d9\\u10d4\\u10db\\u10d1\\u10d4\\u10e0\\u10d8\".split(\"_\"),format:\"\\u10d8\\u10d0\\u10dc\\u10d5\\u10d0\\u10e0\\u10e1_\\u10d7\\u10d4\\u10d1\\u10d4\\u10e0\\u10d5\\u10d0\\u10da\\u10e1_\\u10db\\u10d0\\u10e0\\u10e2\\u10e1_\\u10d0\\u10de\\u10e0\\u10d8\\u10da\\u10d8\\u10e1_\\u10db\\u10d0\\u10d8\\u10e1\\u10e1_\\u10d8\\u10d5\\u10dc\\u10d8\\u10e1\\u10e1_\\u10d8\\u10d5\\u10da\\u10d8\\u10e1\\u10e1_\\u10d0\\u10d2\\u10d5\\u10d8\\u10e1\\u10e2\\u10e1_\\u10e1\\u10d4\\u10e5\\u10e2\\u10d4\\u10db\\u10d1\\u10d4\\u10e0\\u10e1_\\u10dd\\u10e5\\u10e2\\u10dd\\u10db\\u10d1\\u10d4\\u10e0\\u10e1_\\u10dc\\u10dd\\u10d4\\u10db\\u10d1\\u10d4\\u10e0\\u10e1_\\u10d3\\u10d4\\u10d9\\u10d4\\u10db\\u10d1\\u10d4\\u10e0\\u10e1\".split(\"_\")},monthsShort:\"\\u10d8\\u10d0\\u10dc_\\u10d7\\u10d4\\u10d1_\\u10db\\u10d0\\u10e0_\\u10d0\\u10de\\u10e0_\\u10db\\u10d0\\u10d8_\\u10d8\\u10d5\\u10dc_\\u10d8\\u10d5\\u10da_\\u10d0\\u10d2\\u10d5_\\u10e1\\u10d4\\u10e5_\\u10dd\\u10e5\\u10e2_\\u10dc\\u10dd\\u10d4_\\u10d3\\u10d4\\u10d9\".split(\"_\"),weekdays:{standalone:\"\\u10d9\\u10d5\\u10d8\\u10e0\\u10d0_\\u10dd\\u10e0\\u10e8\\u10d0\\u10d1\\u10d0\\u10d7\\u10d8_\\u10e1\\u10d0\\u10db\\u10e8\\u10d0\\u10d1\\u10d0\\u10d7\\u10d8_\\u10dd\\u10d7\\u10ee\\u10e8\\u10d0\\u10d1\\u10d0\\u10d7\\u10d8_\\u10ee\\u10e3\\u10d7\\u10e8\\u10d0\\u10d1\\u10d0\\u10d7\\u10d8_\\u10de\\u10d0\\u10e0\\u10d0\\u10e1\\u10d9\\u10d4\\u10d5\\u10d8_\\u10e8\\u10d0\\u10d1\\u10d0\\u10d7\\u10d8\".split(\"_\"),format:\"\\u10d9\\u10d5\\u10d8\\u10e0\\u10d0\\u10e1_\\u10dd\\u10e0\\u10e8\\u10d0\\u10d1\\u10d0\\u10d7\\u10e1_\\u10e1\\u10d0\\u10db\\u10e8\\u10d0\\u10d1\\u10d0\\u10d7\\u10e1_\\u10dd\\u10d7\\u10ee\\u10e8\\u10d0\\u10d1\\u10d0\\u10d7\\u10e1_\\u10ee\\u10e3\\u10d7\\u10e8\\u10d0\\u10d1\\u10d0\\u10d7\\u10e1_\\u10de\\u10d0\\u10e0\\u10d0\\u10e1\\u10d9\\u10d4\\u10d5\\u10e1_\\u10e8\\u10d0\\u10d1\\u10d0\\u10d7\\u10e1\".split(\"_\"),isFormat:/(\\u10ec\\u10d8\\u10dc\\u10d0|\\u10e8\\u10d4\\u10db\\u10d3\\u10d4\\u10d2)/},weekdaysShort:\"\\u10d9\\u10d5\\u10d8_\\u10dd\\u10e0\\u10e8_\\u10e1\\u10d0\\u10db_\\u10dd\\u10d7\\u10ee_\\u10ee\\u10e3\\u10d7_\\u10de\\u10d0\\u10e0_\\u10e8\\u10d0\\u10d1\".split(\"_\"),weekdaysMin:\"\\u10d9\\u10d5_\\u10dd\\u10e0_\\u10e1\\u10d0_\\u10dd\\u10d7_\\u10ee\\u10e3_\\u10de\\u10d0_\\u10e8\\u10d0\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendar:{sameDay:\"[\\u10d3\\u10e6\\u10d4\\u10e1] LT[-\\u10d6\\u10d4]\",nextDay:\"[\\u10ee\\u10d5\\u10d0\\u10da] LT[-\\u10d6\\u10d4]\",lastDay:\"[\\u10d2\\u10e3\\u10e8\\u10d8\\u10dc] LT[-\\u10d6\\u10d4]\",nextWeek:\"[\\u10e8\\u10d4\\u10db\\u10d3\\u10d4\\u10d2] dddd LT[-\\u10d6\\u10d4]\",lastWeek:\"[\\u10ec\\u10d8\\u10dc\\u10d0] dddd LT-\\u10d6\\u10d4\",sameElse:\"L\"},relativeTime:{future:function(e){return/(\\u10ec\\u10d0\\u10db\\u10d8|\\u10ec\\u10e3\\u10d7\\u10d8|\\u10e1\\u10d0\\u10d0\\u10d7\\u10d8|\\u10ec\\u10d4\\u10da\\u10d8)/.test(e)?e.replace(/\\u10d8$/,\"\\u10e8\\u10d8\"):e+\"\\u10e8\\u10d8\"},past:function(e){return/(\\u10ec\\u10d0\\u10db\\u10d8|\\u10ec\\u10e3\\u10d7\\u10d8|\\u10e1\\u10d0\\u10d0\\u10d7\\u10d8|\\u10d3\\u10e6\\u10d4|\\u10d7\\u10d5\\u10d4)/.test(e)?e.replace(/(\\u10d8|\\u10d4)$/,\"\\u10d8\\u10e1 \\u10ec\\u10d8\\u10dc\"):/\\u10ec\\u10d4\\u10da\\u10d8/.test(e)?e.replace(/\\u10ec\\u10d4\\u10da\\u10d8$/,\"\\u10ec\\u10da\\u10d8\\u10e1 \\u10ec\\u10d8\\u10dc\"):void 0},s:\"\\u10e0\\u10d0\\u10db\\u10d3\\u10d4\\u10dc\\u10d8\\u10db\\u10d4 \\u10ec\\u10d0\\u10db\\u10d8\",ss:\"%d \\u10ec\\u10d0\\u10db\\u10d8\",m:\"\\u10ec\\u10e3\\u10d7\\u10d8\",mm:\"%d \\u10ec\\u10e3\\u10d7\\u10d8\",h:\"\\u10e1\\u10d0\\u10d0\\u10d7\\u10d8\",hh:\"%d \\u10e1\\u10d0\\u10d0\\u10d7\\u10d8\",d:\"\\u10d3\\u10e6\\u10d4\",dd:\"%d \\u10d3\\u10e6\\u10d4\",M:\"\\u10d7\\u10d5\\u10d4\",MM:\"%d \\u10d7\\u10d5\\u10d4\",y:\"\\u10ec\\u10d4\\u10da\\u10d8\",yy:\"%d \\u10ec\\u10d4\\u10da\\u10d8\"},dayOfMonthOrdinalParse:/0|1-\\u10da\\u10d8|\\u10db\\u10d4-\\d{1,2}|\\d{1,2}-\\u10d4/,ordinal:function(e){return 0===e?e:1===e?e+\"-\\u10da\\u10d8\":e<20||e<=100&&e%20==0||e%100==0?\"\\u10db\\u10d4-\"+e:e+\"-\\u10d4\"},week:{dow:1,doy:7}});var sn={0:\"-\\u0448\\u0456\",1:\"-\\u0448\\u0456\",2:\"-\\u0448\\u0456\",3:\"-\\u0448\\u0456\",4:\"-\\u0448\\u0456\",5:\"-\\u0448\\u0456\",6:\"-\\u0448\\u044b\",7:\"-\\u0448\\u0456\",8:\"-\\u0448\\u0456\",9:\"-\\u0448\\u044b\",10:\"-\\u0448\\u044b\",20:\"-\\u0448\\u044b\",30:\"-\\u0448\\u044b\",40:\"-\\u0448\\u044b\",50:\"-\\u0448\\u0456\",60:\"-\\u0448\\u044b\",70:\"-\\u0448\\u0456\",80:\"-\\u0448\\u0456\",90:\"-\\u0448\\u044b\",100:\"-\\u0448\\u0456\"};l.defineLocale(\"kk\",{months:\"\\u049b\\u0430\\u04a3\\u0442\\u0430\\u0440_\\u0430\\u049b\\u043f\\u0430\\u043d_\\u043d\\u0430\\u0443\\u0440\\u044b\\u0437_\\u0441\\u04d9\\u0443\\u0456\\u0440_\\u043c\\u0430\\u043c\\u044b\\u0440_\\u043c\\u0430\\u0443\\u0441\\u044b\\u043c_\\u0448\\u0456\\u043b\\u0434\\u0435_\\u0442\\u0430\\u043c\\u044b\\u0437_\\u049b\\u044b\\u0440\\u043a\\u04af\\u0439\\u0435\\u043a_\\u049b\\u0430\\u0437\\u0430\\u043d_\\u049b\\u0430\\u0440\\u0430\\u0448\\u0430_\\u0436\\u0435\\u043b\\u0442\\u043e\\u049b\\u0441\\u0430\\u043d\".split(\"_\"),monthsShort:\"\\u049b\\u0430\\u04a3_\\u0430\\u049b\\u043f_\\u043d\\u0430\\u0443_\\u0441\\u04d9\\u0443_\\u043c\\u0430\\u043c_\\u043c\\u0430\\u0443_\\u0448\\u0456\\u043b_\\u0442\\u0430\\u043c_\\u049b\\u044b\\u0440_\\u049b\\u0430\\u0437_\\u049b\\u0430\\u0440_\\u0436\\u0435\\u043b\".split(\"_\"),weekdays:\"\\u0436\\u0435\\u043a\\u0441\\u0435\\u043d\\u0431\\u0456_\\u0434\\u04af\\u0439\\u0441\\u0435\\u043d\\u0431\\u0456_\\u0441\\u0435\\u0439\\u0441\\u0435\\u043d\\u0431\\u0456_\\u0441\\u04d9\\u0440\\u0441\\u0435\\u043d\\u0431\\u0456_\\u0431\\u0435\\u0439\\u0441\\u0435\\u043d\\u0431\\u0456_\\u0436\\u04b1\\u043c\\u0430_\\u0441\\u0435\\u043d\\u0431\\u0456\".split(\"_\"),weekdaysShort:\"\\u0436\\u0435\\u043a_\\u0434\\u04af\\u0439_\\u0441\\u0435\\u0439_\\u0441\\u04d9\\u0440_\\u0431\\u0435\\u0439_\\u0436\\u04b1\\u043c_\\u0441\\u0435\\u043d\".split(\"_\"),weekdaysMin:\"\\u0436\\u043a_\\u0434\\u0439_\\u0441\\u0439_\\u0441\\u0440_\\u0431\\u0439_\\u0436\\u043c_\\u0441\\u043d\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[\\u0411\\u04af\\u0433\\u0456\\u043d \\u0441\\u0430\\u0493\\u0430\\u0442] LT\",nextDay:\"[\\u0415\\u0440\\u0442\\u0435\\u04a3 \\u0441\\u0430\\u0493\\u0430\\u0442] LT\",nextWeek:\"dddd [\\u0441\\u0430\\u0493\\u0430\\u0442] LT\",lastDay:\"[\\u041a\\u0435\\u0448\\u0435 \\u0441\\u0430\\u0493\\u0430\\u0442] LT\",lastWeek:\"[\\u04e8\\u0442\\u043a\\u0435\\u043d \\u0430\\u043f\\u0442\\u0430\\u043d\\u044b\\u04a3] dddd [\\u0441\\u0430\\u0493\\u0430\\u0442] LT\",sameElse:\"L\"},relativeTime:{future:\"%s \\u0456\\u0448\\u0456\\u043d\\u0434\\u0435\",past:\"%s \\u0431\\u04b1\\u0440\\u044b\\u043d\",s:\"\\u0431\\u0456\\u0440\\u043d\\u0435\\u0448\\u0435 \\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\",ss:\"%d \\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\",m:\"\\u0431\\u0456\\u0440 \\u043c\\u0438\\u043d\\u0443\\u0442\",mm:\"%d \\u043c\\u0438\\u043d\\u0443\\u0442\",h:\"\\u0431\\u0456\\u0440 \\u0441\\u0430\\u0493\\u0430\\u0442\",hh:\"%d \\u0441\\u0430\\u0493\\u0430\\u0442\",d:\"\\u0431\\u0456\\u0440 \\u043a\\u04af\\u043d\",dd:\"%d \\u043a\\u04af\\u043d\",M:\"\\u0431\\u0456\\u0440 \\u0430\\u0439\",MM:\"%d \\u0430\\u0439\",y:\"\\u0431\\u0456\\u0440 \\u0436\\u044b\\u043b\",yy:\"%d \\u0436\\u044b\\u043b\"},dayOfMonthOrdinalParse:/\\d{1,2}-(\\u0448\\u0456|\\u0448\\u044b)/,ordinal:function(e){return e+(sn[e]||sn[e%10]||sn[100<=e?100:null])},week:{dow:1,doy:7}});var nn={1:\"\\u17e1\",2:\"\\u17e2\",3:\"\\u17e3\",4:\"\\u17e4\",5:\"\\u17e5\",6:\"\\u17e6\",7:\"\\u17e7\",8:\"\\u17e8\",9:\"\\u17e9\",0:\"\\u17e0\"},dn={\"\\u17e1\":\"1\",\"\\u17e2\":\"2\",\"\\u17e3\":\"3\",\"\\u17e4\":\"4\",\"\\u17e5\":\"5\",\"\\u17e6\":\"6\",\"\\u17e7\":\"7\",\"\\u17e8\":\"8\",\"\\u17e9\":\"9\",\"\\u17e0\":\"0\"};l.defineLocale(\"km\",{months:\"\\u1798\\u1780\\u179a\\u17b6_\\u1780\\u17bb\\u1798\\u17d2\\u1797\\u17c8_\\u1798\\u17b8\\u1793\\u17b6_\\u1798\\u17c1\\u179f\\u17b6_\\u17a7\\u179f\\u1797\\u17b6_\\u1798\\u17b7\\u1790\\u17bb\\u1793\\u17b6_\\u1780\\u1780\\u17d2\\u1780\\u178a\\u17b6_\\u179f\\u17b8\\u17a0\\u17b6_\\u1780\\u1789\\u17d2\\u1789\\u17b6_\\u178f\\u17bb\\u179b\\u17b6_\\u179c\\u17b7\\u1785\\u17d2\\u1786\\u17b7\\u1780\\u17b6_\\u1792\\u17d2\\u1793\\u17bc\".split(\"_\"),monthsShort:\"\\u1798\\u1780\\u179a\\u17b6_\\u1780\\u17bb\\u1798\\u17d2\\u1797\\u17c8_\\u1798\\u17b8\\u1793\\u17b6_\\u1798\\u17c1\\u179f\\u17b6_\\u17a7\\u179f\\u1797\\u17b6_\\u1798\\u17b7\\u1790\\u17bb\\u1793\\u17b6_\\u1780\\u1780\\u17d2\\u1780\\u178a\\u17b6_\\u179f\\u17b8\\u17a0\\u17b6_\\u1780\\u1789\\u17d2\\u1789\\u17b6_\\u178f\\u17bb\\u179b\\u17b6_\\u179c\\u17b7\\u1785\\u17d2\\u1786\\u17b7\\u1780\\u17b6_\\u1792\\u17d2\\u1793\\u17bc\".split(\"_\"),weekdays:\"\\u17a2\\u17b6\\u1791\\u17b7\\u178f\\u17d2\\u1799_\\u1785\\u17d0\\u1793\\u17d2\\u1791_\\u17a2\\u1784\\u17d2\\u1782\\u17b6\\u179a_\\u1796\\u17bb\\u1792_\\u1796\\u17d2\\u179a\\u17a0\\u179f\\u17d2\\u1794\\u178f\\u17b7\\u17cd_\\u179f\\u17bb\\u1780\\u17d2\\u179a_\\u179f\\u17c5\\u179a\\u17cd\".split(\"_\"),weekdaysShort:\"\\u17a2\\u17b6_\\u1785_\\u17a2_\\u1796_\\u1796\\u17d2\\u179a_\\u179f\\u17bb_\\u179f\".split(\"_\"),weekdaysMin:\"\\u17a2\\u17b6_\\u1785_\\u17a2_\\u1796_\\u1796\\u17d2\\u179a_\\u179f\\u17bb_\\u179f\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},meridiemParse:/\\u1796\\u17d2\\u179a\\u17b9\\u1780|\\u179b\\u17d2\\u1784\\u17b6\\u1785/,isPM:function(e){return\"\\u179b\\u17d2\\u1784\\u17b6\\u1785\"===e},meridiem:function(e,a,t){return e<12?\"\\u1796\\u17d2\\u179a\\u17b9\\u1780\":\"\\u179b\\u17d2\\u1784\\u17b6\\u1785\"},calendar:{sameDay:\"[\\u1790\\u17d2\\u1784\\u17c3\\u1793\\u17c1\\u17c7 \\u1798\\u17c9\\u17c4\\u1784] LT\",nextDay:\"[\\u179f\\u17d2\\u17a2\\u17c2\\u1780 \\u1798\\u17c9\\u17c4\\u1784] LT\",nextWeek:\"dddd [\\u1798\\u17c9\\u17c4\\u1784] LT\",lastDay:\"[\\u1798\\u17d2\\u179f\\u17b7\\u179b\\u1798\\u17b7\\u1789 \\u1798\\u17c9\\u17c4\\u1784] LT\",lastWeek:\"dddd [\\u179f\\u1794\\u17d2\\u178f\\u17b6\\u17a0\\u17cd\\u1798\\u17bb\\u1793] [\\u1798\\u17c9\\u17c4\\u1784] LT\",sameElse:\"L\"},relativeTime:{future:\"%s\\u1791\\u17c0\\u178f\",past:\"%s\\u1798\\u17bb\\u1793\",s:\"\\u1794\\u17c9\\u17bb\\u1793\\u17d2\\u1798\\u17b6\\u1793\\u179c\\u17b7\\u1793\\u17b6\\u1791\\u17b8\",ss:\"%d \\u179c\\u17b7\\u1793\\u17b6\\u1791\\u17b8\",m:\"\\u1798\\u17bd\\u1799\\u1793\\u17b6\\u1791\\u17b8\",mm:\"%d \\u1793\\u17b6\\u1791\\u17b8\",h:\"\\u1798\\u17bd\\u1799\\u1798\\u17c9\\u17c4\\u1784\",hh:\"%d \\u1798\\u17c9\\u17c4\\u1784\",d:\"\\u1798\\u17bd\\u1799\\u1790\\u17d2\\u1784\\u17c3\",dd:\"%d \\u1790\\u17d2\\u1784\\u17c3\",M:\"\\u1798\\u17bd\\u1799\\u1781\\u17c2\",MM:\"%d \\u1781\\u17c2\",y:\"\\u1798\\u17bd\\u1799\\u1786\\u17d2\\u1793\\u17b6\\u17c6\",yy:\"%d \\u1786\\u17d2\\u1793\\u17b6\\u17c6\"},dayOfMonthOrdinalParse:/\\u1791\\u17b8\\d{1,2}/,ordinal:\"\\u1791\\u17b8%d\",preparse:function(e){return e.replace(/[\\u17e1\\u17e2\\u17e3\\u17e4\\u17e5\\u17e6\\u17e7\\u17e8\\u17e9\\u17e0]/g,function(e){return dn[e]})},postformat:function(e){return e.replace(/\\d/g,function(e){return nn[e]})},week:{dow:1,doy:4}});var rn={1:\"\\u0ce7\",2:\"\\u0ce8\",3:\"\\u0ce9\",4:\"\\u0cea\",5:\"\\u0ceb\",6:\"\\u0cec\",7:\"\\u0ced\",8:\"\\u0cee\",9:\"\\u0cef\",0:\"\\u0ce6\"},_n={\"\\u0ce7\":\"1\",\"\\u0ce8\":\"2\",\"\\u0ce9\":\"3\",\"\\u0cea\":\"4\",\"\\u0ceb\":\"5\",\"\\u0cec\":\"6\",\"\\u0ced\":\"7\",\"\\u0cee\":\"8\",\"\\u0cef\":\"9\",\"\\u0ce6\":\"0\"};l.defineLocale(\"kn\",{months:\"\\u0c9c\\u0ca8\\u0cb5\\u0cb0\\u0cbf_\\u0cab\\u0cc6\\u0cac\\u0ccd\\u0cb0\\u0cb5\\u0cb0\\u0cbf_\\u0cae\\u0cbe\\u0cb0\\u0ccd\\u0c9a\\u0ccd_\\u0c8f\\u0caa\\u0ccd\\u0cb0\\u0cbf\\u0cb2\\u0ccd_\\u0cae\\u0cc6\\u0cd5_\\u0c9c\\u0cc2\\u0ca8\\u0ccd_\\u0c9c\\u0cc1\\u0cb2\\u0cc6\\u0cd6_\\u0c86\\u0c97\\u0cb8\\u0ccd\\u0c9f\\u0ccd_\\u0cb8\\u0cc6\\u0caa\\u0ccd\\u0c9f\\u0cc6\\u0c82\\u0cac\\u0cb0\\u0ccd_\\u0c85\\u0c95\\u0ccd\\u0c9f\\u0cc6\\u0cc2\\u0cd5\\u0cac\\u0cb0\\u0ccd_\\u0ca8\\u0cb5\\u0cc6\\u0c82\\u0cac\\u0cb0\\u0ccd_\\u0ca1\\u0cbf\\u0cb8\\u0cc6\\u0c82\\u0cac\\u0cb0\\u0ccd\".split(\"_\"),monthsShort:\"\\u0c9c\\u0ca8_\\u0cab\\u0cc6\\u0cac\\u0ccd\\u0cb0_\\u0cae\\u0cbe\\u0cb0\\u0ccd\\u0c9a\\u0ccd_\\u0c8f\\u0caa\\u0ccd\\u0cb0\\u0cbf\\u0cb2\\u0ccd_\\u0cae\\u0cc6\\u0cd5_\\u0c9c\\u0cc2\\u0ca8\\u0ccd_\\u0c9c\\u0cc1\\u0cb2\\u0cc6\\u0cd6_\\u0c86\\u0c97\\u0cb8\\u0ccd\\u0c9f\\u0ccd_\\u0cb8\\u0cc6\\u0caa\\u0ccd\\u0c9f\\u0cc6\\u0c82_\\u0c85\\u0c95\\u0ccd\\u0c9f\\u0cc6\\u0cc2\\u0cd5_\\u0ca8\\u0cb5\\u0cc6\\u0c82_\\u0ca1\\u0cbf\\u0cb8\\u0cc6\\u0c82\".split(\"_\"),monthsParseExact:!0,weekdays:\"\\u0cad\\u0cbe\\u0ca8\\u0cc1\\u0cb5\\u0cbe\\u0cb0_\\u0cb8\\u0cc6\\u0cc2\\u0cd5\\u0cae\\u0cb5\\u0cbe\\u0cb0_\\u0cae\\u0c82\\u0c97\\u0cb3\\u0cb5\\u0cbe\\u0cb0_\\u0cac\\u0cc1\\u0ca7\\u0cb5\\u0cbe\\u0cb0_\\u0c97\\u0cc1\\u0cb0\\u0cc1\\u0cb5\\u0cbe\\u0cb0_\\u0cb6\\u0cc1\\u0c95\\u0ccd\\u0cb0\\u0cb5\\u0cbe\\u0cb0_\\u0cb6\\u0ca8\\u0cbf\\u0cb5\\u0cbe\\u0cb0\".split(\"_\"),weekdaysShort:\"\\u0cad\\u0cbe\\u0ca8\\u0cc1_\\u0cb8\\u0cc6\\u0cc2\\u0cd5\\u0cae_\\u0cae\\u0c82\\u0c97\\u0cb3_\\u0cac\\u0cc1\\u0ca7_\\u0c97\\u0cc1\\u0cb0\\u0cc1_\\u0cb6\\u0cc1\\u0c95\\u0ccd\\u0cb0_\\u0cb6\\u0ca8\\u0cbf\".split(\"_\"),weekdaysMin:\"\\u0cad\\u0cbe_\\u0cb8\\u0cc6\\u0cc2\\u0cd5_\\u0cae\\u0c82_\\u0cac\\u0cc1_\\u0c97\\u0cc1_\\u0cb6\\u0cc1_\\u0cb6\".split(\"_\"),longDateFormat:{LT:\"A h:mm\",LTS:\"A h:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm\",LLLL:\"dddd, D MMMM YYYY, A h:mm\"},calendar:{sameDay:\"[\\u0c87\\u0c82\\u0ca6\\u0cc1] LT\",nextDay:\"[\\u0ca8\\u0cbe\\u0cb3\\u0cc6] LT\",nextWeek:\"dddd, LT\",lastDay:\"[\\u0ca8\\u0cbf\\u0ca8\\u0ccd\\u0ca8\\u0cc6] LT\",lastWeek:\"[\\u0c95\\u0cc6\\u0cc2\\u0ca8\\u0cc6\\u0caf] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s \\u0ca8\\u0c82\\u0ca4\\u0cb0\",past:\"%s \\u0cb9\\u0cbf\\u0c82\\u0ca6\\u0cc6\",s:\"\\u0c95\\u0cc6\\u0cb2\\u0cb5\\u0cc1 \\u0c95\\u0ccd\\u0cb7\\u0ca3\\u0c97\\u0cb3\\u0cc1\",ss:\"%d \\u0cb8\\u0cc6\\u0c95\\u0cc6\\u0c82\\u0ca1\\u0cc1\\u0c97\\u0cb3\\u0cc1\",m:\"\\u0c92\\u0c82\\u0ca6\\u0cc1 \\u0ca8\\u0cbf\\u0cae\\u0cbf\\u0cb7\",mm:\"%d \\u0ca8\\u0cbf\\u0cae\\u0cbf\\u0cb7\",h:\"\\u0c92\\u0c82\\u0ca6\\u0cc1 \\u0c97\\u0c82\\u0c9f\\u0cc6\",hh:\"%d \\u0c97\\u0c82\\u0c9f\\u0cc6\",d:\"\\u0c92\\u0c82\\u0ca6\\u0cc1 \\u0ca6\\u0cbf\\u0ca8\",dd:\"%d \\u0ca6\\u0cbf\\u0ca8\",M:\"\\u0c92\\u0c82\\u0ca6\\u0cc1 \\u0ca4\\u0cbf\\u0c82\\u0c97\\u0cb3\\u0cc1\",MM:\"%d \\u0ca4\\u0cbf\\u0c82\\u0c97\\u0cb3\\u0cc1\",y:\"\\u0c92\\u0c82\\u0ca6\\u0cc1 \\u0cb5\\u0cb0\\u0ccd\\u0cb7\",yy:\"%d \\u0cb5\\u0cb0\\u0ccd\\u0cb7\"},preparse:function(e){return e.replace(/[\\u0ce7\\u0ce8\\u0ce9\\u0cea\\u0ceb\\u0cec\\u0ced\\u0cee\\u0cef\\u0ce6]/g,function(e){return _n[e]})},postformat:function(e){return e.replace(/\\d/g,function(e){return rn[e]})},meridiemParse:/\\u0cb0\\u0cbe\\u0ca4\\u0ccd\\u0cb0\\u0cbf|\\u0cac\\u0cc6\\u0cb3\\u0cbf\\u0c97\\u0ccd\\u0c97\\u0cc6|\\u0cae\\u0ca7\\u0ccd\\u0caf\\u0cbe\\u0cb9\\u0ccd\\u0ca8|\\u0cb8\\u0c82\\u0c9c\\u0cc6/,meridiemHour:function(e,a){return 12===e&&(e=0),\"\\u0cb0\\u0cbe\\u0ca4\\u0ccd\\u0cb0\\u0cbf\"===a?e<4?e:e+12:\"\\u0cac\\u0cc6\\u0cb3\\u0cbf\\u0c97\\u0ccd\\u0c97\\u0cc6\"===a?e:\"\\u0cae\\u0ca7\\u0ccd\\u0caf\\u0cbe\\u0cb9\\u0ccd\\u0ca8\"===a?10<=e?e:e+12:\"\\u0cb8\\u0c82\\u0c9c\\u0cc6\"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?\"\\u0cb0\\u0cbe\\u0ca4\\u0ccd\\u0cb0\\u0cbf\":e<10?\"\\u0cac\\u0cc6\\u0cb3\\u0cbf\\u0c97\\u0ccd\\u0c97\\u0cc6\":e<17?\"\\u0cae\\u0ca7\\u0ccd\\u0caf\\u0cbe\\u0cb9\\u0ccd\\u0ca8\":e<20?\"\\u0cb8\\u0c82\\u0c9c\\u0cc6\":\"\\u0cb0\\u0cbe\\u0ca4\\u0ccd\\u0cb0\\u0cbf\"},dayOfMonthOrdinalParse:/\\d{1,2}(\\u0ca8\\u0cc6\\u0cd5)/,ordinal:function(e){return e+\"\\u0ca8\\u0cc6\\u0cd5\"},week:{dow:0,doy:6}}),l.defineLocale(\"ko\",{months:\"1\\uc6d4_2\\uc6d4_3\\uc6d4_4\\uc6d4_5\\uc6d4_6\\uc6d4_7\\uc6d4_8\\uc6d4_9\\uc6d4_10\\uc6d4_11\\uc6d4_12\\uc6d4\".split(\"_\"),monthsShort:\"1\\uc6d4_2\\uc6d4_3\\uc6d4_4\\uc6d4_5\\uc6d4_6\\uc6d4_7\\uc6d4_8\\uc6d4_9\\uc6d4_10\\uc6d4_11\\uc6d4_12\\uc6d4\".split(\"_\"),weekdays:\"\\uc77c\\uc694\\uc77c_\\uc6d4\\uc694\\uc77c_\\ud654\\uc694\\uc77c_\\uc218\\uc694\\uc77c_\\ubaa9\\uc694\\uc77c_\\uae08\\uc694\\uc77c_\\ud1a0\\uc694\\uc77c\".split(\"_\"),weekdaysShort:\"\\uc77c_\\uc6d4_\\ud654_\\uc218_\\ubaa9_\\uae08_\\ud1a0\".split(\"_\"),weekdaysMin:\"\\uc77c_\\uc6d4_\\ud654_\\uc218_\\ubaa9_\\uae08_\\ud1a0\".split(\"_\"),longDateFormat:{LT:\"A h:mm\",LTS:\"A h:mm:ss\",L:\"YYYY.MM.DD.\",LL:\"YYYY\\ub144 MMMM D\\uc77c\",LLL:\"YYYY\\ub144 MMMM D\\uc77c A h:mm\",LLLL:\"YYYY\\ub144 MMMM D\\uc77c dddd A h:mm\",l:\"YYYY.MM.DD.\",ll:\"YYYY\\ub144 MMMM D\\uc77c\",lll:\"YYYY\\ub144 MMMM D\\uc77c A h:mm\",llll:\"YYYY\\ub144 MMMM D\\uc77c dddd A h:mm\"},calendar:{sameDay:\"\\uc624\\ub298 LT\",nextDay:\"\\ub0b4\\uc77c LT\",nextWeek:\"dddd LT\",lastDay:\"\\uc5b4\\uc81c LT\",lastWeek:\"\\uc9c0\\ub09c\\uc8fc dddd LT\",sameElse:\"L\"},relativeTime:{future:\"%s \\ud6c4\",past:\"%s \\uc804\",s:\"\\uba87 \\ucd08\",ss:\"%d\\ucd08\",m:\"1\\ubd84\",mm:\"%d\\ubd84\",h:\"\\ud55c \\uc2dc\\uac04\",hh:\"%d\\uc2dc\\uac04\",d:\"\\ud558\\ub8e8\",dd:\"%d\\uc77c\",M:\"\\ud55c \\ub2ec\",MM:\"%d\\ub2ec\",y:\"\\uc77c \\ub144\",yy:\"%d\\ub144\"},dayOfMonthOrdinalParse:/\\d{1,2}(\\uc77c|\\uc6d4|\\uc8fc)/,ordinal:function(e,a){switch(a){case\"d\":case\"D\":case\"DDD\":return e+\"\\uc77c\";case\"M\":return e+\"\\uc6d4\";case\"w\":case\"W\":return e+\"\\uc8fc\";default:return e}},meridiemParse:/\\uc624\\uc804|\\uc624\\ud6c4/,isPM:function(e){return\"\\uc624\\ud6c4\"===e},meridiem:function(e,a,t){return e<12?\"\\uc624\\uc804\":\"\\uc624\\ud6c4\"}});var on={1:\"\\u0661\",2:\"\\u0662\",3:\"\\u0663\",4:\"\\u0664\",5:\"\\u0665\",6:\"\\u0666\",7:\"\\u0667\",8:\"\\u0668\",9:\"\\u0669\",0:\"\\u0660\"},mn={\"\\u0661\":\"1\",\"\\u0662\":\"2\",\"\\u0663\":\"3\",\"\\u0664\":\"4\",\"\\u0665\":\"5\",\"\\u0666\":\"6\",\"\\u0667\":\"7\",\"\\u0668\":\"8\",\"\\u0669\":\"9\",\"\\u0660\":\"0\"},un=[\"\\u06a9\\u0627\\u0646\\u0648\\u0646\\u06cc \\u062f\\u0648\\u0648\\u06d5\\u0645\",\"\\u0634\\u0648\\u0628\\u0627\\u062a\",\"\\u0626\\u0627\\u0632\\u0627\\u0631\",\"\\u0646\\u06cc\\u0633\\u0627\\u0646\",\"\\u0626\\u0627\\u06cc\\u0627\\u0631\",\"\\u062d\\u0648\\u0632\\u06d5\\u06cc\\u0631\\u0627\\u0646\",\"\\u062a\\u06d5\\u0645\\u0645\\u0648\\u0632\",\"\\u0626\\u0627\\u0628\",\"\\u0626\\u06d5\\u06cc\\u0644\\u0648\\u0648\\u0644\",\"\\u062a\\u0634\\u0631\\u06cc\\u0646\\u06cc \\u06cc\\u06d5\\u0643\\u06d5\\u0645\",\"\\u062a\\u0634\\u0631\\u06cc\\u0646\\u06cc \\u062f\\u0648\\u0648\\u06d5\\u0645\",\"\\u0643\\u0627\\u0646\\u0648\\u0646\\u06cc \\u06cc\\u06d5\\u06a9\\u06d5\\u0645\"];l.defineLocale(\"ku\",{months:un,monthsShort:un,weekdays:\"\\u06cc\\u0647\\u200c\\u0643\\u0634\\u0647\\u200c\\u0645\\u0645\\u0647\\u200c_\\u062f\\u0648\\u0648\\u0634\\u0647\\u200c\\u0645\\u0645\\u0647\\u200c_\\u0633\\u06ce\\u0634\\u0647\\u200c\\u0645\\u0645\\u0647\\u200c_\\u0686\\u0648\\u0627\\u0631\\u0634\\u0647\\u200c\\u0645\\u0645\\u0647\\u200c_\\u067e\\u06ce\\u0646\\u062c\\u0634\\u0647\\u200c\\u0645\\u0645\\u0647\\u200c_\\u0647\\u0647\\u200c\\u06cc\\u0646\\u06cc_\\u0634\\u0647\\u200c\\u0645\\u0645\\u0647\\u200c\".split(\"_\"),weekdaysShort:\"\\u06cc\\u0647\\u200c\\u0643\\u0634\\u0647\\u200c\\u0645_\\u062f\\u0648\\u0648\\u0634\\u0647\\u200c\\u0645_\\u0633\\u06ce\\u0634\\u0647\\u200c\\u0645_\\u0686\\u0648\\u0627\\u0631\\u0634\\u0647\\u200c\\u0645_\\u067e\\u06ce\\u0646\\u062c\\u0634\\u0647\\u200c\\u0645_\\u0647\\u0647\\u200c\\u06cc\\u0646\\u06cc_\\u0634\\u0647\\u200c\\u0645\\u0645\\u0647\\u200c\".split(\"_\"),weekdaysMin:\"\\u06cc_\\u062f_\\u0633_\\u0686_\\u067e_\\u0647_\\u0634\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},meridiemParse:/\\u0626\\u06ce\\u0648\\u0627\\u0631\\u0647\\u200c|\\u0628\\u0647\\u200c\\u06cc\\u0627\\u0646\\u06cc/,isPM:function(e){return/\\u0626\\u06ce\\u0648\\u0627\\u0631\\u0647\\u200c/.test(e)},meridiem:function(e,a,t){return e<12?\"\\u0628\\u0647\\u200c\\u06cc\\u0627\\u0646\\u06cc\":\"\\u0626\\u06ce\\u0648\\u0627\\u0631\\u0647\\u200c\"},calendar:{sameDay:\"[\\u0626\\u0647\\u200c\\u0645\\u0631\\u06c6 \\u0643\\u0627\\u062a\\u0698\\u0645\\u06ce\\u0631] LT\",nextDay:\"[\\u0628\\u0647\\u200c\\u06cc\\u0627\\u0646\\u06cc \\u0643\\u0627\\u062a\\u0698\\u0645\\u06ce\\u0631] LT\",nextWeek:\"dddd [\\u0643\\u0627\\u062a\\u0698\\u0645\\u06ce\\u0631] LT\",lastDay:\"[\\u062f\\u0648\\u06ce\\u0646\\u06ce \\u0643\\u0627\\u062a\\u0698\\u0645\\u06ce\\u0631] LT\",lastWeek:\"dddd [\\u0643\\u0627\\u062a\\u0698\\u0645\\u06ce\\u0631] LT\",sameElse:\"L\"},relativeTime:{future:\"\\u0644\\u0647\\u200c %s\",past:\"%s\",s:\"\\u0686\\u0647\\u200c\\u0646\\u062f \\u0686\\u0631\\u0643\\u0647\\u200c\\u06cc\\u0647\\u200c\\u0643\",ss:\"\\u0686\\u0631\\u0643\\u0647\\u200c %d\",m:\"\\u06cc\\u0647\\u200c\\u0643 \\u062e\\u0648\\u0644\\u0647\\u200c\\u0643\",mm:\"%d \\u062e\\u0648\\u0644\\u0647\\u200c\\u0643\",h:\"\\u06cc\\u0647\\u200c\\u0643 \\u0643\\u0627\\u062a\\u0698\\u0645\\u06ce\\u0631\",hh:\"%d \\u0643\\u0627\\u062a\\u0698\\u0645\\u06ce\\u0631\",d:\"\\u06cc\\u0647\\u200c\\u0643 \\u0695\\u06c6\\u0698\",dd:\"%d \\u0695\\u06c6\\u0698\",M:\"\\u06cc\\u0647\\u200c\\u0643 \\u0645\\u0627\\u0646\\u06af\",MM:\"%d \\u0645\\u0627\\u0646\\u06af\",y:\"\\u06cc\\u0647\\u200c\\u0643 \\u0633\\u0627\\u06b5\",yy:\"%d \\u0633\\u0627\\u06b5\"},preparse:function(e){return e.replace(/[\\u0661\\u0662\\u0663\\u0664\\u0665\\u0666\\u0667\\u0668\\u0669\\u0660]/g,function(e){return mn[e]}).replace(/\\u060c/g,\",\")},postformat:function(e){return e.replace(/\\d/g,function(e){return on[e]}).replace(/,/g,\"\\u060c\")},week:{dow:6,doy:12}});var ln={0:\"-\\u0447\\u04af\",1:\"-\\u0447\\u0438\",2:\"-\\u0447\\u0438\",3:\"-\\u0447\\u04af\",4:\"-\\u0447\\u04af\",5:\"-\\u0447\\u0438\",6:\"-\\u0447\\u044b\",7:\"-\\u0447\\u0438\",8:\"-\\u0447\\u0438\",9:\"-\\u0447\\u0443\",10:\"-\\u0447\\u0443\",20:\"-\\u0447\\u044b\",30:\"-\\u0447\\u0443\",40:\"-\\u0447\\u044b\",50:\"-\\u0447\\u04af\",60:\"-\\u0447\\u044b\",70:\"-\\u0447\\u0438\",80:\"-\\u0447\\u0438\",90:\"-\\u0447\\u0443\",100:\"-\\u0447\\u04af\"};function Mn(e,a,t,s){var n={m:[\"eng Minutt\",\"enger Minutt\"],h:[\"eng Stonn\",\"enger Stonn\"],d:[\"een Dag\",\"engem Dag\"],M:[\"ee Mount\",\"engem Mount\"],y:[\"ee Joer\",\"engem Joer\"]};return a?n[t][0]:n[t][1]}function hn(e){if(e=parseInt(e,10),isNaN(e))return!1;if(e<0)return!0;if(e<10)return 4<=e&&e<=7;if(e<100){var a=e%10;return hn(0===a?e/10:a)}if(e<1e4){for(;10<=e;)e/=10;return hn(e)}return hn(e/=1e3)}l.defineLocale(\"ky\",{months:\"\\u044f\\u043d\\u0432\\u0430\\u0440\\u044c_\\u0444\\u0435\\u0432\\u0440\\u0430\\u043b\\u044c_\\u043c\\u0430\\u0440\\u0442_\\u0430\\u043f\\u0440\\u0435\\u043b\\u044c_\\u043c\\u0430\\u0439_\\u0438\\u044e\\u043d\\u044c_\\u0438\\u044e\\u043b\\u044c_\\u0430\\u0432\\u0433\\u0443\\u0441\\u0442_\\u0441\\u0435\\u043d\\u0442\\u044f\\u0431\\u0440\\u044c_\\u043e\\u043a\\u0442\\u044f\\u0431\\u0440\\u044c_\\u043d\\u043e\\u044f\\u0431\\u0440\\u044c_\\u0434\\u0435\\u043a\\u0430\\u0431\\u0440\\u044c\".split(\"_\"),monthsShort:\"\\u044f\\u043d\\u0432_\\u0444\\u0435\\u0432_\\u043c\\u0430\\u0440\\u0442_\\u0430\\u043f\\u0440_\\u043c\\u0430\\u0439_\\u0438\\u044e\\u043d\\u044c_\\u0438\\u044e\\u043b\\u044c_\\u0430\\u0432\\u0433_\\u0441\\u0435\\u043d_\\u043e\\u043a\\u0442_\\u043d\\u043e\\u044f_\\u0434\\u0435\\u043a\".split(\"_\"),weekdays:\"\\u0416\\u0435\\u043a\\u0448\\u0435\\u043c\\u0431\\u0438_\\u0414\\u04af\\u0439\\u0448\\u04e9\\u043c\\u0431\\u04af_\\u0428\\u0435\\u0439\\u0448\\u0435\\u043c\\u0431\\u0438_\\u0428\\u0430\\u0440\\u0448\\u0435\\u043c\\u0431\\u0438_\\u0411\\u0435\\u0439\\u0448\\u0435\\u043c\\u0431\\u0438_\\u0416\\u0443\\u043c\\u0430_\\u0418\\u0448\\u0435\\u043c\\u0431\\u0438\".split(\"_\"),weekdaysShort:\"\\u0416\\u0435\\u043a_\\u0414\\u04af\\u0439_\\u0428\\u0435\\u0439_\\u0428\\u0430\\u0440_\\u0411\\u0435\\u0439_\\u0416\\u0443\\u043c_\\u0418\\u0448\\u0435\".split(\"_\"),weekdaysMin:\"\\u0416\\u043a_\\u0414\\u0439_\\u0428\\u0439_\\u0428\\u0440_\\u0411\\u0439_\\u0416\\u043c_\\u0418\\u0448\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[\\u0411\\u04af\\u0433\\u04af\\u043d \\u0441\\u0430\\u0430\\u0442] LT\",nextDay:\"[\\u042d\\u0440\\u0442\\u0435\\u04a3 \\u0441\\u0430\\u0430\\u0442] LT\",nextWeek:\"dddd [\\u0441\\u0430\\u0430\\u0442] LT\",lastDay:\"[\\u041a\\u0435\\u0447\\u044d\\u044d \\u0441\\u0430\\u0430\\u0442] LT\",lastWeek:\"[\\u04e8\\u0442\\u043a\\u04e9\\u043d \\u0430\\u043f\\u0442\\u0430\\u043d\\u044b\\u043d] dddd [\\u043a\\u04af\\u043d\\u04af] [\\u0441\\u0430\\u0430\\u0442] LT\",sameElse:\"L\"},relativeTime:{future:\"%s \\u0438\\u0447\\u0438\\u043d\\u0434\\u0435\",past:\"%s \\u043c\\u0443\\u0440\\u0443\\u043d\",s:\"\\u0431\\u0438\\u0440\\u043d\\u0435\\u0447\\u0435 \\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\",ss:\"%d \\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\",m:\"\\u0431\\u0438\\u0440 \\u043c\\u04af\\u043d\\u04e9\\u0442\",mm:\"%d \\u043c\\u04af\\u043d\\u04e9\\u0442\",h:\"\\u0431\\u0438\\u0440 \\u0441\\u0430\\u0430\\u0442\",hh:\"%d \\u0441\\u0430\\u0430\\u0442\",d:\"\\u0431\\u0438\\u0440 \\u043a\\u04af\\u043d\",dd:\"%d \\u043a\\u04af\\u043d\",M:\"\\u0431\\u0438\\u0440 \\u0430\\u0439\",MM:\"%d \\u0430\\u0439\",y:\"\\u0431\\u0438\\u0440 \\u0436\\u044b\\u043b\",yy:\"%d \\u0436\\u044b\\u043b\"},dayOfMonthOrdinalParse:/\\d{1,2}-(\\u0447\\u0438|\\u0447\\u044b|\\u0447\\u04af|\\u0447\\u0443)/,ordinal:function(e){return e+(ln[e]||ln[e%10]||ln[100<=e?100:null])},week:{dow:1,doy:7}}),l.defineLocale(\"lb\",{months:\"Januar_Februar_M\\xe4erz_Abr\\xebll_Mee_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.\".split(\"_\"),monthsParseExact:!0,weekdays:\"Sonndeg_M\\xe9indeg_D\\xebnschdeg_M\\xebttwoch_Donneschdeg_Freideg_Samschdeg\".split(\"_\"),weekdaysShort:\"So._M\\xe9._D\\xeb._M\\xeb._Do._Fr._Sa.\".split(\"_\"),weekdaysMin:\"So_M\\xe9_D\\xeb_M\\xeb_Do_Fr_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm [Auer]\",LTS:\"H:mm:ss [Auer]\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm [Auer]\",LLLL:\"dddd, D. MMMM YYYY H:mm [Auer]\"},calendar:{sameDay:\"[Haut um] LT\",sameElse:\"L\",nextDay:\"[Muer um] LT\",nextWeek:\"dddd [um] LT\",lastDay:\"[G\\xebschter um] LT\",lastWeek:function(){switch(this.day()){case 2:case 4:return\"[Leschten] dddd [um] LT\";default:return\"[Leschte] dddd [um] LT\"}}},relativeTime:{future:function(e){return hn(e.substr(0,e.indexOf(\" \")))?\"a \"+e:\"an \"+e},past:function(e){return hn(e.substr(0,e.indexOf(\" \")))?\"viru \"+e:\"virun \"+e},s:\"e puer Sekonnen\",ss:\"%d Sekonnen\",m:Mn,mm:\"%d Minutten\",h:Mn,hh:\"%d Stonnen\",d:Mn,dd:\"%d Deeg\",M:Mn,MM:\"%d M\\xe9int\",y:Mn,yy:\"%d Joer\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),l.defineLocale(\"lo\",{months:\"\\u0ea1\\u0eb1\\u0e87\\u0e81\\u0ead\\u0e99_\\u0e81\\u0eb8\\u0ea1\\u0e9e\\u0eb2_\\u0ea1\\u0eb5\\u0e99\\u0eb2_\\u0ec0\\u0ea1\\u0eaa\\u0eb2_\\u0e9e\\u0eb6\\u0e94\\u0eaa\\u0eb0\\u0e9e\\u0eb2_\\u0ea1\\u0eb4\\u0e96\\u0eb8\\u0e99\\u0eb2_\\u0e81\\u0ecd\\u0ea5\\u0eb0\\u0e81\\u0ebb\\u0e94_\\u0eaa\\u0eb4\\u0e87\\u0eab\\u0eb2_\\u0e81\\u0eb1\\u0e99\\u0e8d\\u0eb2_\\u0e95\\u0eb8\\u0ea5\\u0eb2_\\u0e9e\\u0eb0\\u0e88\\u0eb4\\u0e81_\\u0e97\\u0eb1\\u0e99\\u0ea7\\u0eb2\".split(\"_\"),monthsShort:\"\\u0ea1\\u0eb1\\u0e87\\u0e81\\u0ead\\u0e99_\\u0e81\\u0eb8\\u0ea1\\u0e9e\\u0eb2_\\u0ea1\\u0eb5\\u0e99\\u0eb2_\\u0ec0\\u0ea1\\u0eaa\\u0eb2_\\u0e9e\\u0eb6\\u0e94\\u0eaa\\u0eb0\\u0e9e\\u0eb2_\\u0ea1\\u0eb4\\u0e96\\u0eb8\\u0e99\\u0eb2_\\u0e81\\u0ecd\\u0ea5\\u0eb0\\u0e81\\u0ebb\\u0e94_\\u0eaa\\u0eb4\\u0e87\\u0eab\\u0eb2_\\u0e81\\u0eb1\\u0e99\\u0e8d\\u0eb2_\\u0e95\\u0eb8\\u0ea5\\u0eb2_\\u0e9e\\u0eb0\\u0e88\\u0eb4\\u0e81_\\u0e97\\u0eb1\\u0e99\\u0ea7\\u0eb2\".split(\"_\"),weekdays:\"\\u0ead\\u0eb2\\u0e97\\u0eb4\\u0e94_\\u0e88\\u0eb1\\u0e99_\\u0ead\\u0eb1\\u0e87\\u0e84\\u0eb2\\u0e99_\\u0e9e\\u0eb8\\u0e94_\\u0e9e\\u0eb0\\u0eab\\u0eb1\\u0e94_\\u0eaa\\u0eb8\\u0e81_\\u0ec0\\u0eaa\\u0ebb\\u0eb2\".split(\"_\"),weekdaysShort:\"\\u0e97\\u0eb4\\u0e94_\\u0e88\\u0eb1\\u0e99_\\u0ead\\u0eb1\\u0e87\\u0e84\\u0eb2\\u0e99_\\u0e9e\\u0eb8\\u0e94_\\u0e9e\\u0eb0\\u0eab\\u0eb1\\u0e94_\\u0eaa\\u0eb8\\u0e81_\\u0ec0\\u0eaa\\u0ebb\\u0eb2\".split(\"_\"),weekdaysMin:\"\\u0e97_\\u0e88_\\u0ead\\u0e84_\\u0e9e_\\u0e9e\\u0eab_\\u0eaa\\u0e81_\\u0eaa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"\\u0ea7\\u0eb1\\u0e99dddd D MMMM YYYY HH:mm\"},meridiemParse:/\\u0e95\\u0ead\\u0e99\\u0ec0\\u0e8a\\u0ebb\\u0ec9\\u0eb2|\\u0e95\\u0ead\\u0e99\\u0ec1\\u0ea5\\u0e87/,isPM:function(e){return\"\\u0e95\\u0ead\\u0e99\\u0ec1\\u0ea5\\u0e87\"===e},meridiem:function(e,a,t){return e<12?\"\\u0e95\\u0ead\\u0e99\\u0ec0\\u0e8a\\u0ebb\\u0ec9\\u0eb2\":\"\\u0e95\\u0ead\\u0e99\\u0ec1\\u0ea5\\u0e87\"},calendar:{sameDay:\"[\\u0ea1\\u0eb7\\u0ec9\\u0e99\\u0eb5\\u0ec9\\u0ec0\\u0ea7\\u0ea5\\u0eb2] LT\",nextDay:\"[\\u0ea1\\u0eb7\\u0ec9\\u0ead\\u0eb7\\u0ec8\\u0e99\\u0ec0\\u0ea7\\u0ea5\\u0eb2] LT\",nextWeek:\"[\\u0ea7\\u0eb1\\u0e99]dddd[\\u0edc\\u0ec9\\u0eb2\\u0ec0\\u0ea7\\u0ea5\\u0eb2] LT\",lastDay:\"[\\u0ea1\\u0eb7\\u0ec9\\u0ea7\\u0eb2\\u0e99\\u0e99\\u0eb5\\u0ec9\\u0ec0\\u0ea7\\u0ea5\\u0eb2] LT\",lastWeek:\"[\\u0ea7\\u0eb1\\u0e99]dddd[\\u0ec1\\u0ea5\\u0ec9\\u0ea7\\u0e99\\u0eb5\\u0ec9\\u0ec0\\u0ea7\\u0ea5\\u0eb2] LT\",sameElse:\"L\"},relativeTime:{future:\"\\u0ead\\u0eb5\\u0e81 %s\",past:\"%s\\u0e9c\\u0ec8\\u0eb2\\u0e99\\u0ea1\\u0eb2\",s:\"\\u0e9a\\u0ecd\\u0ec8\\u0ec0\\u0e97\\u0ebb\\u0ec8\\u0eb2\\u0ec3\\u0e94\\u0ea7\\u0eb4\\u0e99\\u0eb2\\u0e97\\u0eb5\",ss:\"%d \\u0ea7\\u0eb4\\u0e99\\u0eb2\\u0e97\\u0eb5\",m:\"1 \\u0e99\\u0eb2\\u0e97\\u0eb5\",mm:\"%d \\u0e99\\u0eb2\\u0e97\\u0eb5\",h:\"1 \\u0e8a\\u0ebb\\u0ec8\\u0ea7\\u0ec2\\u0ea1\\u0e87\",hh:\"%d \\u0e8a\\u0ebb\\u0ec8\\u0ea7\\u0ec2\\u0ea1\\u0e87\",d:\"1 \\u0ea1\\u0eb7\\u0ec9\",dd:\"%d \\u0ea1\\u0eb7\\u0ec9\",M:\"1 \\u0ec0\\u0e94\\u0eb7\\u0ead\\u0e99\",MM:\"%d \\u0ec0\\u0e94\\u0eb7\\u0ead\\u0e99\",y:\"1 \\u0e9b\\u0eb5\",yy:\"%d \\u0e9b\\u0eb5\"},dayOfMonthOrdinalParse:/(\\u0e97\\u0eb5\\u0ec8)\\d{1,2}/,ordinal:function(e){return\"\\u0e97\\u0eb5\\u0ec8\"+e}});var Ln={ss:\"sekund\\u0117_sekund\\u017ei\\u0173_sekundes\",m:\"minut\\u0117_minut\\u0117s_minut\\u0119\",mm:\"minut\\u0117s_minu\\u010di\\u0173_minutes\",h:\"valanda_valandos_valand\\u0105\",hh:\"valandos_valand\\u0173_valandas\",d:\"diena_dienos_dien\\u0105\",dd:\"dienos_dien\\u0173_dienas\",M:\"m\\u0117nuo_m\\u0117nesio_m\\u0117nes\\u012f\",MM:\"m\\u0117nesiai_m\\u0117nesi\\u0173_m\\u0117nesius\",y:\"metai_met\\u0173_metus\",yy:\"metai_met\\u0173_metus\"};function cn(e,a,t,s){return a?yn(t)[0]:s?yn(t)[1]:yn(t)[2]}function Yn(e){return e%10==0||10<e&&e<20}function yn(e){return Ln[e].split(\"_\")}function fn(e,a,t,s){var n=e+\" \";return 1===e?n+cn(0,a,t[0],s):a?n+(Yn(e)?yn(t)[1]:yn(t)[0]):s?n+yn(t)[1]:n+(Yn(e)?yn(t)[1]:yn(t)[2])}l.defineLocale(\"lt\",{months:{format:\"sausio_vasario_kovo_baland\\u017eio_gegu\\u017e\\u0117s_bir\\u017eelio_liepos_rugpj\\u016b\\u010dio_rugs\\u0117jo_spalio_lapkri\\u010dio_gruod\\u017eio\".split(\"_\"),standalone:\"sausis_vasaris_kovas_balandis_gegu\\u017e\\u0117_bir\\u017eelis_liepa_rugpj\\u016btis_rugs\\u0117jis_spalis_lapkritis_gruodis\".split(\"_\"),isFormat:/D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/},monthsShort:\"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd\".split(\"_\"),weekdays:{format:\"sekmadien\\u012f_pirmadien\\u012f_antradien\\u012f_tre\\u010diadien\\u012f_ketvirtadien\\u012f_penktadien\\u012f_\\u0161e\\u0161tadien\\u012f\".split(\"_\"),standalone:\"sekmadienis_pirmadienis_antradienis_tre\\u010diadienis_ketvirtadienis_penktadienis_\\u0161e\\u0161tadienis\".split(\"_\"),isFormat:/dddd HH:mm/},weekdaysShort:\"Sek_Pir_Ant_Tre_Ket_Pen_\\u0160e\\u0161\".split(\"_\"),weekdaysMin:\"S_P_A_T_K_Pn_\\u0160\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"YYYY [m.] MMMM D [d.]\",LLL:\"YYYY [m.] MMMM D [d.], HH:mm [val.]\",LLLL:\"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]\",l:\"YYYY-MM-DD\",ll:\"YYYY [m.] MMMM D [d.]\",lll:\"YYYY [m.] MMMM D [d.], HH:mm [val.]\",llll:\"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]\"},calendar:{sameDay:\"[\\u0160iandien] LT\",nextDay:\"[Rytoj] LT\",nextWeek:\"dddd LT\",lastDay:\"[Vakar] LT\",lastWeek:\"[Pra\\u0117jus\\u012f] dddd LT\",sameElse:\"L\"},relativeTime:{future:\"po %s\",past:\"prie\\u0161 %s\",s:function(e,a,t,s){return a?\"kelios sekund\\u0117s\":s?\"keli\\u0173 sekund\\u017ei\\u0173\":\"kelias sekundes\"},ss:fn,m:cn,mm:fn,h:cn,hh:fn,d:cn,dd:fn,M:cn,MM:fn,y:cn,yy:fn},dayOfMonthOrdinalParse:/\\d{1,2}-oji/,ordinal:function(e){return e+\"-oji\"},week:{dow:1,doy:4}});var kn={ss:\"sekundes_sekund\\u0113m_sekunde_sekundes\".split(\"_\"),m:\"min\\u016btes_min\\u016bt\\u0113m_min\\u016bte_min\\u016btes\".split(\"_\"),mm:\"min\\u016btes_min\\u016bt\\u0113m_min\\u016bte_min\\u016btes\".split(\"_\"),h:\"stundas_stund\\u0101m_stunda_stundas\".split(\"_\"),hh:\"stundas_stund\\u0101m_stunda_stundas\".split(\"_\"),d:\"dienas_dien\\u0101m_diena_dienas\".split(\"_\"),dd:\"dienas_dien\\u0101m_diena_dienas\".split(\"_\"),M:\"m\\u0113ne\\u0161a_m\\u0113ne\\u0161iem_m\\u0113nesis_m\\u0113ne\\u0161i\".split(\"_\"),MM:\"m\\u0113ne\\u0161a_m\\u0113ne\\u0161iem_m\\u0113nesis_m\\u0113ne\\u0161i\".split(\"_\"),y:\"gada_gadiem_gads_gadi\".split(\"_\"),yy:\"gada_gadiem_gads_gadi\".split(\"_\")};function pn(e,a,t){return t?a%10==1&&a%100!=11?e[2]:e[3]:a%10==1&&a%100!=11?e[0]:e[1]}function Dn(e,a,t){return e+\" \"+pn(kn[t],e,a)}function Tn(e,a,t){return pn(kn[t],e,a)}l.defineLocale(\"lv\",{months:\"janv\\u0101ris_febru\\u0101ris_marts_apr\\u012blis_maijs_j\\u016bnijs_j\\u016blijs_augusts_septembris_oktobris_novembris_decembris\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_mai_j\\u016bn_j\\u016bl_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"sv\\u0113tdiena_pirmdiena_otrdiena_tre\\u0161diena_ceturtdiena_piektdiena_sestdiena\".split(\"_\"),weekdaysShort:\"Sv_P_O_T_C_Pk_S\".split(\"_\"),weekdaysMin:\"Sv_P_O_T_C_Pk_S\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY.\",LL:\"YYYY. [gada] D. MMMM\",LLL:\"YYYY. [gada] D. MMMM, HH:mm\",LLLL:\"YYYY. [gada] D. MMMM, dddd, HH:mm\"},calendar:{sameDay:\"[\\u0160odien pulksten] LT\",nextDay:\"[R\\u012bt pulksten] LT\",nextWeek:\"dddd [pulksten] LT\",lastDay:\"[Vakar pulksten] LT\",lastWeek:\"[Pag\\u0101ju\\u0161\\u0101] dddd [pulksten] LT\",sameElse:\"L\"},relativeTime:{future:\"p\\u0113c %s\",past:\"pirms %s\",s:function(e,a){return a?\"da\\u017eas sekundes\":\"da\\u017e\\u0101m sekund\\u0113m\"},ss:Dn,m:Tn,mm:Dn,h:Tn,hh:Dn,d:Tn,dd:Dn,M:Tn,MM:Dn,y:Tn,yy:Dn},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}});var gn={words:{ss:[\"sekund\",\"sekunda\",\"sekundi\"],m:[\"jedan minut\",\"jednog minuta\"],mm:[\"minut\",\"minuta\",\"minuta\"],h:[\"jedan sat\",\"jednog sata\"],hh:[\"sat\",\"sata\",\"sati\"],dd:[\"dan\",\"dana\",\"dana\"],MM:[\"mjesec\",\"mjeseca\",\"mjeseci\"],yy:[\"godina\",\"godine\",\"godina\"]},correctGrammaticalCase:function(e,a){return 1===e?a[0]:2<=e&&e<=4?a[1]:a[2]},translate:function(e,a,t){var s=gn.words[t];return 1===t.length?a?s[0]:s[1]:e+\" \"+gn.correctGrammaticalCase(e,s)}};function wn(e,a,t,s){switch(t){case\"s\":return a?\"\\u0445\\u044d\\u0434\\u0445\\u044d\\u043d \\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\":\"\\u0445\\u044d\\u0434\\u0445\\u044d\\u043d \\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u044b\\u043d\";case\"ss\":return e+(a?\" \\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\":\" \\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u044b\\u043d\");case\"m\":case\"mm\":return e+(a?\" \\u043c\\u0438\\u043d\\u0443\\u0442\":\" \\u043c\\u0438\\u043d\\u0443\\u0442\\u044b\\u043d\");case\"h\":case\"hh\":return e+(a?\" \\u0446\\u0430\\u0433\":\" \\u0446\\u0430\\u0433\\u0438\\u0439\\u043d\");case\"d\":case\"dd\":return e+(a?\" \\u04e9\\u0434\\u04e9\\u0440\":\" \\u04e9\\u0434\\u0440\\u0438\\u0439\\u043d\");case\"M\":case\"MM\":return e+(a?\" \\u0441\\u0430\\u0440\":\" \\u0441\\u0430\\u0440\\u044b\\u043d\");case\"y\":case\"yy\":return e+(a?\" \\u0436\\u0438\\u043b\":\" \\u0436\\u0438\\u043b\\u0438\\u0439\\u043d\");default:return e}}l.defineLocale(\"me\",{months:\"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar\".split(\"_\"),monthsShort:\"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.\".split(\"_\"),monthsParseExact:!0,weekdays:\"nedjelja_ponedjeljak_utorak_srijeda_\\u010detvrtak_petak_subota\".split(\"_\"),weekdaysShort:\"ned._pon._uto._sri._\\u010det._pet._sub.\".split(\"_\"),weekdaysMin:\"ne_po_ut_sr_\\u010de_pe_su\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sjutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedjelju] [u] LT\";case 3:return\"[u] [srijedu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[ju\\u010de u] LT\",lastWeek:function(){return[\"[pro\\u0161le] [nedjelje] [u] LT\",\"[pro\\u0161log] [ponedjeljka] [u] LT\",\"[pro\\u0161log] [utorka] [u] LT\",\"[pro\\u0161le] [srijede] [u] LT\",\"[pro\\u0161log] [\\u010detvrtka] [u] LT\",\"[pro\\u0161log] [petka] [u] LT\",\"[pro\\u0161le] [subote] [u] LT\"][this.day()]},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"prije %s\",s:\"nekoliko sekundi\",ss:gn.translate,m:gn.translate,mm:gn.translate,h:gn.translate,hh:gn.translate,d:\"dan\",dd:gn.translate,M:\"mjesec\",MM:gn.translate,y:\"godinu\",yy:gn.translate},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),l.defineLocale(\"mi\",{months:\"Kohi-t\\u0101te_Hui-tanguru_Pout\\u016b-te-rangi_Paenga-wh\\u0101wh\\u0101_Haratua_Pipiri_H\\u014dngoingoi_Here-turi-k\\u014dk\\u0101_Mahuru_Whiringa-\\u0101-nuku_Whiringa-\\u0101-rangi_Hakihea\".split(\"_\"),monthsShort:\"Kohi_Hui_Pou_Pae_Hara_Pipi_H\\u014dngoi_Here_Mahu_Whi-nu_Whi-ra_Haki\".split(\"_\"),monthsRegex:/(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,monthsShortRegex:/(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,weekdays:\"R\\u0101tapu_Mane_T\\u016brei_Wenerei_T\\u0101ite_Paraire_H\\u0101tarei\".split(\"_\"),weekdaysShort:\"Ta_Ma_T\\u016b_We_T\\u0101i_Pa_H\\u0101\".split(\"_\"),weekdaysMin:\"Ta_Ma_T\\u016b_We_T\\u0101i_Pa_H\\u0101\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [i] HH:mm\",LLLL:\"dddd, D MMMM YYYY [i] HH:mm\"},calendar:{sameDay:\"[i teie mahana, i] LT\",nextDay:\"[apopo i] LT\",nextWeek:\"dddd [i] LT\",lastDay:\"[inanahi i] LT\",lastWeek:\"dddd [whakamutunga i] LT\",sameElse:\"L\"},relativeTime:{future:\"i roto i %s\",past:\"%s i mua\",s:\"te h\\u0113kona ruarua\",ss:\"%d h\\u0113kona\",m:\"he meneti\",mm:\"%d meneti\",h:\"te haora\",hh:\"%d haora\",d:\"he ra\",dd:\"%d ra\",M:\"he marama\",MM:\"%d marama\",y:\"he tau\",yy:\"%d tau\"},dayOfMonthOrdinalParse:/\\d{1,2}\\xba/,ordinal:\"%d\\xba\",week:{dow:1,doy:4}}),l.defineLocale(\"mk\",{months:\"\\u0458\\u0430\\u043d\\u0443\\u0430\\u0440\\u0438_\\u0444\\u0435\\u0432\\u0440\\u0443\\u0430\\u0440\\u0438_\\u043c\\u0430\\u0440\\u0442_\\u0430\\u043f\\u0440\\u0438\\u043b_\\u043c\\u0430\\u0458_\\u0458\\u0443\\u043d\\u0438_\\u0458\\u0443\\u043b\\u0438_\\u0430\\u0432\\u0433\\u0443\\u0441\\u0442_\\u0441\\u0435\\u043f\\u0442\\u0435\\u043c\\u0432\\u0440\\u0438_\\u043e\\u043a\\u0442\\u043e\\u043c\\u0432\\u0440\\u0438_\\u043d\\u043e\\u0435\\u043c\\u0432\\u0440\\u0438_\\u0434\\u0435\\u043a\\u0435\\u043c\\u0432\\u0440\\u0438\".split(\"_\"),monthsShort:\"\\u0458\\u0430\\u043d_\\u0444\\u0435\\u0432_\\u043c\\u0430\\u0440_\\u0430\\u043f\\u0440_\\u043c\\u0430\\u0458_\\u0458\\u0443\\u043d_\\u0458\\u0443\\u043b_\\u0430\\u0432\\u0433_\\u0441\\u0435\\u043f_\\u043e\\u043a\\u0442_\\u043d\\u043e\\u0435_\\u0434\\u0435\\u043a\".split(\"_\"),weekdays:\"\\u043d\\u0435\\u0434\\u0435\\u043b\\u0430_\\u043f\\u043e\\u043d\\u0435\\u0434\\u0435\\u043b\\u043d\\u0438\\u043a_\\u0432\\u0442\\u043e\\u0440\\u043d\\u0438\\u043a_\\u0441\\u0440\\u0435\\u0434\\u0430_\\u0447\\u0435\\u0442\\u0432\\u0440\\u0442\\u043e\\u043a_\\u043f\\u0435\\u0442\\u043e\\u043a_\\u0441\\u0430\\u0431\\u043e\\u0442\\u0430\".split(\"_\"),weekdaysShort:\"\\u043d\\u0435\\u0434_\\u043f\\u043e\\u043d_\\u0432\\u0442\\u043e_\\u0441\\u0440\\u0435_\\u0447\\u0435\\u0442_\\u043f\\u0435\\u0442_\\u0441\\u0430\\u0431\".split(\"_\"),weekdaysMin:\"\\u043de_\\u043fo_\\u0432\\u0442_\\u0441\\u0440_\\u0447\\u0435_\\u043f\\u0435_\\u0441a\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"D.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY H:mm\",LLLL:\"dddd, D MMMM YYYY H:mm\"},calendar:{sameDay:\"[\\u0414\\u0435\\u043d\\u0435\\u0441 \\u0432\\u043e] LT\",nextDay:\"[\\u0423\\u0442\\u0440\\u0435 \\u0432\\u043e] LT\",nextWeek:\"[\\u0412\\u043e] dddd [\\u0432\\u043e] LT\",lastDay:\"[\\u0412\\u0447\\u0435\\u0440\\u0430 \\u0432\\u043e] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return\"[\\u0418\\u0437\\u043c\\u0438\\u043d\\u0430\\u0442\\u0430\\u0442\\u0430] dddd [\\u0432\\u043e] LT\";case 1:case 2:case 4:case 5:return\"[\\u0418\\u0437\\u043c\\u0438\\u043d\\u0430\\u0442\\u0438\\u043e\\u0442] dddd [\\u0432\\u043e] LT\"}},sameElse:\"L\"},relativeTime:{future:\"\\u043f\\u043e\\u0441\\u043b\\u0435 %s\",past:\"\\u043f\\u0440\\u0435\\u0434 %s\",s:\"\\u043d\\u0435\\u043a\\u043e\\u043b\\u043a\\u0443 \\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u0438\",ss:\"%d \\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u0438\",m:\"\\u043c\\u0438\\u043d\\u0443\\u0442\\u0430\",mm:\"%d \\u043c\\u0438\\u043d\\u0443\\u0442\\u0438\",h:\"\\u0447\\u0430\\u0441\",hh:\"%d \\u0447\\u0430\\u0441\\u0430\",d:\"\\u0434\\u0435\\u043d\",dd:\"%d \\u0434\\u0435\\u043d\\u0430\",M:\"\\u043c\\u0435\\u0441\\u0435\\u0446\",MM:\"%d \\u043c\\u0435\\u0441\\u0435\\u0446\\u0438\",y:\"\\u0433\\u043e\\u0434\\u0438\\u043d\\u0430\",yy:\"%d \\u0433\\u043e\\u0434\\u0438\\u043d\\u0438\"},dayOfMonthOrdinalParse:/\\d{1,2}-(\\u0435\\u0432|\\u0435\\u043d|\\u0442\\u0438|\\u0432\\u0438|\\u0440\\u0438|\\u043c\\u0438)/,ordinal:function(e){var a=e%10,t=e%100;return 0===e?e+\"-\\u0435\\u0432\":0===t?e+\"-\\u0435\\u043d\":10<t&&t<20?e+\"-\\u0442\\u0438\":1===a?e+\"-\\u0432\\u0438\":2===a?e+\"-\\u0440\\u0438\":7===a||8===a?e+\"-\\u043c\\u0438\":e+\"-\\u0442\\u0438\"},week:{dow:1,doy:7}}),l.defineLocale(\"ml\",{months:\"\\u0d1c\\u0d28\\u0d41\\u0d35\\u0d30\\u0d3f_\\u0d2b\\u0d46\\u0d2c\\u0d4d\\u0d30\\u0d41\\u0d35\\u0d30\\u0d3f_\\u0d2e\\u0d3e\\u0d7c\\u0d1a\\u0d4d\\u0d1a\\u0d4d_\\u0d0f\\u0d2a\\u0d4d\\u0d30\\u0d3f\\u0d7d_\\u0d2e\\u0d47\\u0d2f\\u0d4d_\\u0d1c\\u0d42\\u0d7a_\\u0d1c\\u0d42\\u0d32\\u0d48_\\u0d13\\u0d17\\u0d38\\u0d4d\\u0d31\\u0d4d\\u0d31\\u0d4d_\\u0d38\\u0d46\\u0d2a\\u0d4d\\u0d31\\u0d4d\\u0d31\\u0d02\\u0d2c\\u0d7c_\\u0d12\\u0d15\\u0d4d\\u0d1f\\u0d4b\\u0d2c\\u0d7c_\\u0d28\\u0d35\\u0d02\\u0d2c\\u0d7c_\\u0d21\\u0d3f\\u0d38\\u0d02\\u0d2c\\u0d7c\".split(\"_\"),monthsShort:\"\\u0d1c\\u0d28\\u0d41._\\u0d2b\\u0d46\\u0d2c\\u0d4d\\u0d30\\u0d41._\\u0d2e\\u0d3e\\u0d7c._\\u0d0f\\u0d2a\\u0d4d\\u0d30\\u0d3f._\\u0d2e\\u0d47\\u0d2f\\u0d4d_\\u0d1c\\u0d42\\u0d7a_\\u0d1c\\u0d42\\u0d32\\u0d48._\\u0d13\\u0d17._\\u0d38\\u0d46\\u0d2a\\u0d4d\\u0d31\\u0d4d\\u0d31._\\u0d12\\u0d15\\u0d4d\\u0d1f\\u0d4b._\\u0d28\\u0d35\\u0d02._\\u0d21\\u0d3f\\u0d38\\u0d02.\".split(\"_\"),monthsParseExact:!0,weekdays:\"\\u0d1e\\u0d3e\\u0d2f\\u0d31\\u0d3e\\u0d34\\u0d4d\\u0d1a_\\u0d24\\u0d3f\\u0d19\\u0d4d\\u0d15\\u0d33\\u0d3e\\u0d34\\u0d4d\\u0d1a_\\u0d1a\\u0d4a\\u0d35\\u0d4d\\u0d35\\u0d3e\\u0d34\\u0d4d\\u0d1a_\\u0d2c\\u0d41\\u0d27\\u0d28\\u0d3e\\u0d34\\u0d4d\\u0d1a_\\u0d35\\u0d4d\\u0d2f\\u0d3e\\u0d34\\u0d3e\\u0d34\\u0d4d\\u0d1a_\\u0d35\\u0d46\\u0d33\\u0d4d\\u0d33\\u0d3f\\u0d2f\\u0d3e\\u0d34\\u0d4d\\u0d1a_\\u0d36\\u0d28\\u0d3f\\u0d2f\\u0d3e\\u0d34\\u0d4d\\u0d1a\".split(\"_\"),weekdaysShort:\"\\u0d1e\\u0d3e\\u0d2f\\u0d7c_\\u0d24\\u0d3f\\u0d19\\u0d4d\\u0d15\\u0d7e_\\u0d1a\\u0d4a\\u0d35\\u0d4d\\u0d35_\\u0d2c\\u0d41\\u0d27\\u0d7b_\\u0d35\\u0d4d\\u0d2f\\u0d3e\\u0d34\\u0d02_\\u0d35\\u0d46\\u0d33\\u0d4d\\u0d33\\u0d3f_\\u0d36\\u0d28\\u0d3f\".split(\"_\"),weekdaysMin:\"\\u0d1e\\u0d3e_\\u0d24\\u0d3f_\\u0d1a\\u0d4a_\\u0d2c\\u0d41_\\u0d35\\u0d4d\\u0d2f\\u0d3e_\\u0d35\\u0d46_\\u0d36\".split(\"_\"),longDateFormat:{LT:\"A h:mm -\\u0d28\\u0d41\",LTS:\"A h:mm:ss -\\u0d28\\u0d41\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm -\\u0d28\\u0d41\",LLLL:\"dddd, D MMMM YYYY, A h:mm -\\u0d28\\u0d41\"},calendar:{sameDay:\"[\\u0d07\\u0d28\\u0d4d\\u0d28\\u0d4d] LT\",nextDay:\"[\\u0d28\\u0d3e\\u0d33\\u0d46] LT\",nextWeek:\"dddd, LT\",lastDay:\"[\\u0d07\\u0d28\\u0d4d\\u0d28\\u0d32\\u0d46] LT\",lastWeek:\"[\\u0d15\\u0d34\\u0d3f\\u0d1e\\u0d4d\\u0d1e] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s \\u0d15\\u0d34\\u0d3f\\u0d1e\\u0d4d\\u0d1e\\u0d4d\",past:\"%s \\u0d2e\\u0d41\\u0d7b\\u0d2a\\u0d4d\",s:\"\\u0d05\\u0d7d\\u0d2a \\u0d28\\u0d3f\\u0d2e\\u0d3f\\u0d37\\u0d19\\u0d4d\\u0d19\\u0d7e\",ss:\"%d \\u0d38\\u0d46\\u0d15\\u0d4d\\u0d15\\u0d7b\\u0d21\\u0d4d\",m:\"\\u0d12\\u0d30\\u0d41 \\u0d2e\\u0d3f\\u0d28\\u0d3f\\u0d31\\u0d4d\\u0d31\\u0d4d\",mm:\"%d \\u0d2e\\u0d3f\\u0d28\\u0d3f\\u0d31\\u0d4d\\u0d31\\u0d4d\",h:\"\\u0d12\\u0d30\\u0d41 \\u0d2e\\u0d23\\u0d3f\\u0d15\\u0d4d\\u0d15\\u0d42\\u0d7c\",hh:\"%d \\u0d2e\\u0d23\\u0d3f\\u0d15\\u0d4d\\u0d15\\u0d42\\u0d7c\",d:\"\\u0d12\\u0d30\\u0d41 \\u0d26\\u0d3f\\u0d35\\u0d38\\u0d02\",dd:\"%d \\u0d26\\u0d3f\\u0d35\\u0d38\\u0d02\",M:\"\\u0d12\\u0d30\\u0d41 \\u0d2e\\u0d3e\\u0d38\\u0d02\",MM:\"%d \\u0d2e\\u0d3e\\u0d38\\u0d02\",y:\"\\u0d12\\u0d30\\u0d41 \\u0d35\\u0d7c\\u0d37\\u0d02\",yy:\"%d \\u0d35\\u0d7c\\u0d37\\u0d02\"},meridiemParse:/\\u0d30\\u0d3e\\u0d24\\u0d4d\\u0d30\\u0d3f|\\u0d30\\u0d3e\\u0d35\\u0d3f\\u0d32\\u0d46|\\u0d09\\u0d1a\\u0d4d\\u0d1a \\u0d15\\u0d34\\u0d3f\\u0d1e\\u0d4d\\u0d1e\\u0d4d|\\u0d35\\u0d48\\u0d15\\u0d41\\u0d28\\u0d4d\\u0d28\\u0d47\\u0d30\\u0d02|\\u0d30\\u0d3e\\u0d24\\u0d4d\\u0d30\\u0d3f/i,meridiemHour:function(e,a){return 12===e&&(e=0),\"\\u0d30\\u0d3e\\u0d24\\u0d4d\\u0d30\\u0d3f\"===a&&4<=e||\"\\u0d09\\u0d1a\\u0d4d\\u0d1a \\u0d15\\u0d34\\u0d3f\\u0d1e\\u0d4d\\u0d1e\\u0d4d\"===a||\"\\u0d35\\u0d48\\u0d15\\u0d41\\u0d28\\u0d4d\\u0d28\\u0d47\\u0d30\\u0d02\"===a?e+12:e},meridiem:function(e,a,t){return e<4?\"\\u0d30\\u0d3e\\u0d24\\u0d4d\\u0d30\\u0d3f\":e<12?\"\\u0d30\\u0d3e\\u0d35\\u0d3f\\u0d32\\u0d46\":e<17?\"\\u0d09\\u0d1a\\u0d4d\\u0d1a \\u0d15\\u0d34\\u0d3f\\u0d1e\\u0d4d\\u0d1e\\u0d4d\":e<20?\"\\u0d35\\u0d48\\u0d15\\u0d41\\u0d28\\u0d4d\\u0d28\\u0d47\\u0d30\\u0d02\":\"\\u0d30\\u0d3e\\u0d24\\u0d4d\\u0d30\\u0d3f\"}}),l.defineLocale(\"mn\",{months:\"\\u041d\\u044d\\u0433\\u0434\\u04af\\u0433\\u044d\\u044d\\u0440 \\u0441\\u0430\\u0440_\\u0425\\u043e\\u0451\\u0440\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440_\\u0413\\u0443\\u0440\\u0430\\u0432\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440_\\u0414\\u04e9\\u0440\\u04e9\\u0432\\u0434\\u04af\\u0433\\u044d\\u044d\\u0440 \\u0441\\u0430\\u0440_\\u0422\\u0430\\u0432\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440_\\u0417\\u0443\\u0440\\u0433\\u0430\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440_\\u0414\\u043e\\u043b\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440_\\u041d\\u0430\\u0439\\u043c\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440_\\u0415\\u0441\\u0434\\u04af\\u0433\\u044d\\u044d\\u0440 \\u0441\\u0430\\u0440_\\u0410\\u0440\\u0430\\u0432\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440_\\u0410\\u0440\\u0432\\u0430\\u043d \\u043d\\u044d\\u0433\\u0434\\u04af\\u0433\\u044d\\u044d\\u0440 \\u0441\\u0430\\u0440_\\u0410\\u0440\\u0432\\u0430\\u043d \\u0445\\u043e\\u0451\\u0440\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440\".split(\"_\"),monthsShort:\"1 \\u0441\\u0430\\u0440_2 \\u0441\\u0430\\u0440_3 \\u0441\\u0430\\u0440_4 \\u0441\\u0430\\u0440_5 \\u0441\\u0430\\u0440_6 \\u0441\\u0430\\u0440_7 \\u0441\\u0430\\u0440_8 \\u0441\\u0430\\u0440_9 \\u0441\\u0430\\u0440_10 \\u0441\\u0430\\u0440_11 \\u0441\\u0430\\u0440_12 \\u0441\\u0430\\u0440\".split(\"_\"),monthsParseExact:!0,weekdays:\"\\u041d\\u044f\\u043c_\\u0414\\u0430\\u0432\\u0430\\u0430_\\u041c\\u044f\\u0433\\u043c\\u0430\\u0440_\\u041b\\u0445\\u0430\\u0433\\u0432\\u0430_\\u041f\\u04af\\u0440\\u044d\\u0432_\\u0411\\u0430\\u0430\\u0441\\u0430\\u043d_\\u0411\\u044f\\u043c\\u0431\\u0430\".split(\"_\"),weekdaysShort:\"\\u041d\\u044f\\u043c_\\u0414\\u0430\\u0432_\\u041c\\u044f\\u0433_\\u041b\\u0445\\u0430_\\u041f\\u04af\\u0440_\\u0411\\u0430\\u0430_\\u0411\\u044f\\u043c\".split(\"_\"),weekdaysMin:\"\\u041d\\u044f_\\u0414\\u0430_\\u041c\\u044f_\\u041b\\u0445_\\u041f\\u04af_\\u0411\\u0430_\\u0411\\u044f\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"YYYY \\u043e\\u043d\\u044b MMMM\\u044b\\u043d D\",LLL:\"YYYY \\u043e\\u043d\\u044b MMMM\\u044b\\u043d D HH:mm\",LLLL:\"dddd, YYYY \\u043e\\u043d\\u044b MMMM\\u044b\\u043d D HH:mm\"},meridiemParse:/\\u04ae\\u04e8|\\u04ae\\u0425/i,isPM:function(e){return\"\\u04ae\\u0425\"===e},meridiem:function(e,a,t){return e<12?\"\\u04ae\\u04e8\":\"\\u04ae\\u0425\"},calendar:{sameDay:\"[\\u04e8\\u043d\\u04e9\\u04e9\\u0434\\u04e9\\u0440] LT\",nextDay:\"[\\u041c\\u0430\\u0440\\u0433\\u0430\\u0430\\u0448] LT\",nextWeek:\"[\\u0418\\u0440\\u044d\\u0445] dddd LT\",lastDay:\"[\\u04e8\\u0447\\u0438\\u0433\\u0434\\u04e9\\u0440] LT\",lastWeek:\"[\\u04e8\\u043d\\u0433\\u04e9\\u0440\\u0441\\u04e9\\u043d] dddd LT\",sameElse:\"L\"},relativeTime:{future:\"%s \\u0434\\u0430\\u0440\\u0430\\u0430\",past:\"%s \\u04e9\\u043c\\u043d\\u04e9\",s:wn,ss:wn,m:wn,mm:wn,h:wn,hh:wn,d:wn,dd:wn,M:wn,MM:wn,y:wn,yy:wn},dayOfMonthOrdinalParse:/\\d{1,2} \\u04e9\\u0434\\u04e9\\u0440/,ordinal:function(e,a){switch(a){case\"d\":case\"D\":case\"DDD\":return e+\" \\u04e9\\u0434\\u04e9\\u0440\";default:return e}}});var vn={1:\"\\u0967\",2:\"\\u0968\",3:\"\\u0969\",4:\"\\u096a\",5:\"\\u096b\",6:\"\\u096c\",7:\"\\u096d\",8:\"\\u096e\",9:\"\\u096f\",0:\"\\u0966\"},Sn={\"\\u0967\":\"1\",\"\\u0968\":\"2\",\"\\u0969\":\"3\",\"\\u096a\":\"4\",\"\\u096b\":\"5\",\"\\u096c\":\"6\",\"\\u096d\":\"7\",\"\\u096e\":\"8\",\"\\u096f\":\"9\",\"\\u0966\":\"0\"};function Hn(e,a,t,s){var n=\"\";if(a)switch(t){case\"s\":n=\"\\u0915\\u093e\\u0939\\u0940 \\u0938\\u0947\\u0915\\u0902\\u0926\";break;case\"ss\":n=\"%d \\u0938\\u0947\\u0915\\u0902\\u0926\";break;case\"m\":n=\"\\u090f\\u0915 \\u092e\\u093f\\u0928\\u093f\\u091f\";break;case\"mm\":n=\"%d \\u092e\\u093f\\u0928\\u093f\\u091f\\u0947\";break;case\"h\":n=\"\\u090f\\u0915 \\u0924\\u093e\\u0938\";break;case\"hh\":n=\"%d \\u0924\\u093e\\u0938\";break;case\"d\":n=\"\\u090f\\u0915 \\u0926\\u093f\\u0935\\u0938\";break;case\"dd\":n=\"%d \\u0926\\u093f\\u0935\\u0938\";break;case\"M\":n=\"\\u090f\\u0915 \\u092e\\u0939\\u093f\\u0928\\u093e\";break;case\"MM\":n=\"%d \\u092e\\u0939\\u093f\\u0928\\u0947\";break;case\"y\":n=\"\\u090f\\u0915 \\u0935\\u0930\\u094d\\u0937\";break;case\"yy\":n=\"%d \\u0935\\u0930\\u094d\\u0937\\u0947\";break}else switch(t){case\"s\":n=\"\\u0915\\u093e\\u0939\\u0940 \\u0938\\u0947\\u0915\\u0902\\u0926\\u093e\\u0902\";break;case\"ss\":n=\"%d \\u0938\\u0947\\u0915\\u0902\\u0926\\u093e\\u0902\";break;case\"m\":n=\"\\u090f\\u0915\\u093e \\u092e\\u093f\\u0928\\u093f\\u091f\\u093e\";break;case\"mm\":n=\"%d \\u092e\\u093f\\u0928\\u093f\\u091f\\u093e\\u0902\";break;case\"h\":n=\"\\u090f\\u0915\\u093e \\u0924\\u093e\\u0938\\u093e\";break;case\"hh\":n=\"%d \\u0924\\u093e\\u0938\\u093e\\u0902\";break;case\"d\":n=\"\\u090f\\u0915\\u093e \\u0926\\u093f\\u0935\\u0938\\u093e\";break;case\"dd\":n=\"%d \\u0926\\u093f\\u0935\\u0938\\u093e\\u0902\";break;case\"M\":n=\"\\u090f\\u0915\\u093e \\u092e\\u0939\\u093f\\u0928\\u094d\\u092f\\u093e\";break;case\"MM\":n=\"%d \\u092e\\u0939\\u093f\\u0928\\u094d\\u092f\\u093e\\u0902\";break;case\"y\":n=\"\\u090f\\u0915\\u093e \\u0935\\u0930\\u094d\\u0937\\u093e\";break;case\"yy\":n=\"%d \\u0935\\u0930\\u094d\\u0937\\u093e\\u0902\";break}return n.replace(/%d/i,e)}l.defineLocale(\"mr\",{months:\"\\u091c\\u093e\\u0928\\u0947\\u0935\\u093e\\u0930\\u0940_\\u092b\\u0947\\u092c\\u094d\\u0930\\u0941\\u0935\\u093e\\u0930\\u0940_\\u092e\\u093e\\u0930\\u094d\\u091a_\\u090f\\u092a\\u094d\\u0930\\u093f\\u0932_\\u092e\\u0947_\\u091c\\u0942\\u0928_\\u091c\\u0941\\u0932\\u0948_\\u0911\\u0917\\u0938\\u094d\\u091f_\\u0938\\u092a\\u094d\\u091f\\u0947\\u0902\\u092c\\u0930_\\u0911\\u0915\\u094d\\u091f\\u094b\\u092c\\u0930_\\u0928\\u094b\\u0935\\u094d\\u0939\\u0947\\u0902\\u092c\\u0930_\\u0921\\u093f\\u0938\\u0947\\u0902\\u092c\\u0930\".split(\"_\"),monthsShort:\"\\u091c\\u093e\\u0928\\u0947._\\u092b\\u0947\\u092c\\u094d\\u0930\\u0941._\\u092e\\u093e\\u0930\\u094d\\u091a._\\u090f\\u092a\\u094d\\u0930\\u093f._\\u092e\\u0947._\\u091c\\u0942\\u0928._\\u091c\\u0941\\u0932\\u0948._\\u0911\\u0917._\\u0938\\u092a\\u094d\\u091f\\u0947\\u0902._\\u0911\\u0915\\u094d\\u091f\\u094b._\\u0928\\u094b\\u0935\\u094d\\u0939\\u0947\\u0902._\\u0921\\u093f\\u0938\\u0947\\u0902.\".split(\"_\"),monthsParseExact:!0,weekdays:\"\\u0930\\u0935\\u093f\\u0935\\u093e\\u0930_\\u0938\\u094b\\u092e\\u0935\\u093e\\u0930_\\u092e\\u0902\\u0917\\u0933\\u0935\\u093e\\u0930_\\u092c\\u0941\\u0927\\u0935\\u093e\\u0930_\\u0917\\u0941\\u0930\\u0942\\u0935\\u093e\\u0930_\\u0936\\u0941\\u0915\\u094d\\u0930\\u0935\\u093e\\u0930_\\u0936\\u0928\\u093f\\u0935\\u093e\\u0930\".split(\"_\"),weekdaysShort:\"\\u0930\\u0935\\u093f_\\u0938\\u094b\\u092e_\\u092e\\u0902\\u0917\\u0933_\\u092c\\u0941\\u0927_\\u0917\\u0941\\u0930\\u0942_\\u0936\\u0941\\u0915\\u094d\\u0930_\\u0936\\u0928\\u093f\".split(\"_\"),weekdaysMin:\"\\u0930_\\u0938\\u094b_\\u092e\\u0902_\\u092c\\u0941_\\u0917\\u0941_\\u0936\\u0941_\\u0936\".split(\"_\"),longDateFormat:{LT:\"A h:mm \\u0935\\u093e\\u091c\\u0924\\u093e\",LTS:\"A h:mm:ss \\u0935\\u093e\\u091c\\u0924\\u093e\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm \\u0935\\u093e\\u091c\\u0924\\u093e\",LLLL:\"dddd, D MMMM YYYY, A h:mm \\u0935\\u093e\\u091c\\u0924\\u093e\"},calendar:{sameDay:\"[\\u0906\\u091c] LT\",nextDay:\"[\\u0909\\u0926\\u094d\\u092f\\u093e] LT\",nextWeek:\"dddd, LT\",lastDay:\"[\\u0915\\u093e\\u0932] LT\",lastWeek:\"[\\u092e\\u093e\\u0917\\u0940\\u0932] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s\\u092e\\u0927\\u094d\\u092f\\u0947\",past:\"%s\\u092a\\u0942\\u0930\\u094d\\u0935\\u0940\",s:Hn,ss:Hn,m:Hn,mm:Hn,h:Hn,hh:Hn,d:Hn,dd:Hn,M:Hn,MM:Hn,y:Hn,yy:Hn},preparse:function(e){return e.replace(/[\\u0967\\u0968\\u0969\\u096a\\u096b\\u096c\\u096d\\u096e\\u096f\\u0966]/g,function(e){return Sn[e]})},postformat:function(e){return e.replace(/\\d/g,function(e){return vn[e]})},meridiemParse:/\\u0930\\u093e\\u0924\\u094d\\u0930\\u0940|\\u0938\\u0915\\u093e\\u0933\\u0940|\\u0926\\u0941\\u092a\\u093e\\u0930\\u0940|\\u0938\\u093e\\u092f\\u0902\\u0915\\u093e\\u0933\\u0940/,meridiemHour:function(e,a){return 12===e&&(e=0),\"\\u0930\\u093e\\u0924\\u094d\\u0930\\u0940\"===a?e<4?e:e+12:\"\\u0938\\u0915\\u093e\\u0933\\u0940\"===a?e:\"\\u0926\\u0941\\u092a\\u093e\\u0930\\u0940\"===a?10<=e?e:e+12:\"\\u0938\\u093e\\u092f\\u0902\\u0915\\u093e\\u0933\\u0940\"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?\"\\u0930\\u093e\\u0924\\u094d\\u0930\\u0940\":e<10?\"\\u0938\\u0915\\u093e\\u0933\\u0940\":e<17?\"\\u0926\\u0941\\u092a\\u093e\\u0930\\u0940\":e<20?\"\\u0938\\u093e\\u092f\\u0902\\u0915\\u093e\\u0933\\u0940\":\"\\u0930\\u093e\\u0924\\u094d\\u0930\\u0940\"},week:{dow:0,doy:6}}),l.defineLocale(\"ms-my\",{months:\"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember\".split(\"_\"),monthsShort:\"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis\".split(\"_\"),weekdays:\"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu\".split(\"_\"),weekdaysShort:\"Ahd_Isn_Sel_Rab_Kha_Jum_Sab\".split(\"_\"),weekdaysMin:\"Ah_Is_Sl_Rb_Km_Jm_Sb\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [pukul] HH.mm\",LLLL:\"dddd, D MMMM YYYY [pukul] HH.mm\"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,a){return 12===e&&(e=0),\"pagi\"===a?e:\"tengahari\"===a?11<=e?e:e+12:\"petang\"===a||\"malam\"===a?e+12:void 0},meridiem:function(e,a,t){return e<11?\"pagi\":e<15?\"tengahari\":e<19?\"petang\":\"malam\"},calendar:{sameDay:\"[Hari ini pukul] LT\",nextDay:\"[Esok pukul] LT\",nextWeek:\"dddd [pukul] LT\",lastDay:\"[Kelmarin pukul] LT\",lastWeek:\"dddd [lepas pukul] LT\",sameElse:\"L\"},relativeTime:{future:\"dalam %s\",past:\"%s yang lepas\",s:\"beberapa saat\",ss:\"%d saat\",m:\"seminit\",mm:\"%d minit\",h:\"sejam\",hh:\"%d jam\",d:\"sehari\",dd:\"%d hari\",M:\"sebulan\",MM:\"%d bulan\",y:\"setahun\",yy:\"%d tahun\"},week:{dow:1,doy:7}}),l.defineLocale(\"ms\",{months:\"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember\".split(\"_\"),monthsShort:\"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis\".split(\"_\"),weekdays:\"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu\".split(\"_\"),weekdaysShort:\"Ahd_Isn_Sel_Rab_Kha_Jum_Sab\".split(\"_\"),weekdaysMin:\"Ah_Is_Sl_Rb_Km_Jm_Sb\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [pukul] HH.mm\",LLLL:\"dddd, D MMMM YYYY [pukul] HH.mm\"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,a){return 12===e&&(e=0),\"pagi\"===a?e:\"tengahari\"===a?11<=e?e:e+12:\"petang\"===a||\"malam\"===a?e+12:void 0},meridiem:function(e,a,t){return e<11?\"pagi\":e<15?\"tengahari\":e<19?\"petang\":\"malam\"},calendar:{sameDay:\"[Hari ini pukul] LT\",nextDay:\"[Esok pukul] LT\",nextWeek:\"dddd [pukul] LT\",lastDay:\"[Kelmarin pukul] LT\",lastWeek:\"dddd [lepas pukul] LT\",sameElse:\"L\"},relativeTime:{future:\"dalam %s\",past:\"%s yang lepas\",s:\"beberapa saat\",ss:\"%d saat\",m:\"seminit\",mm:\"%d minit\",h:\"sejam\",hh:\"%d jam\",d:\"sehari\",dd:\"%d hari\",M:\"sebulan\",MM:\"%d bulan\",y:\"setahun\",yy:\"%d tahun\"},week:{dow:1,doy:7}}),l.defineLocale(\"mt\",{months:\"Jannar_Frar_Marzu_April_Mejju_\\u0120unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Di\\u010bembru\".split(\"_\"),monthsShort:\"Jan_Fra_Mar_Apr_Mej_\\u0120un_Lul_Aww_Set_Ott_Nov_Di\\u010b\".split(\"_\"),weekdays:\"Il-\\u0126add_It-Tnejn_It-Tlieta_L-Erbg\\u0127a_Il-\\u0126amis_Il-\\u0120img\\u0127a_Is-Sibt\".split(\"_\"),weekdaysShort:\"\\u0126ad_Tne_Tli_Erb_\\u0126am_\\u0120im_Sib\".split(\"_\"),weekdaysMin:\"\\u0126a_Tn_Tl_Er_\\u0126a_\\u0120i_Si\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Illum fil-]LT\",nextDay:\"[G\\u0127ada fil-]LT\",nextWeek:\"dddd [fil-]LT\",lastDay:\"[Il-biera\\u0127 fil-]LT\",lastWeek:\"dddd [li g\\u0127adda] [fil-]LT\",sameElse:\"L\"},relativeTime:{future:\"f\\u2019 %s\",past:\"%s ilu\",s:\"ftit sekondi\",ss:\"%d sekondi\",m:\"minuta\",mm:\"%d minuti\",h:\"sieg\\u0127a\",hh:\"%d sieg\\u0127at\",d:\"\\u0121urnata\",dd:\"%d \\u0121ranet\",M:\"xahar\",MM:\"%d xhur\",y:\"sena\",yy:\"%d sni\"},dayOfMonthOrdinalParse:/\\d{1,2}\\xba/,ordinal:\"%d\\xba\",week:{dow:1,doy:4}});var bn={1:\"\\u1041\",2:\"\\u1042\",3:\"\\u1043\",4:\"\\u1044\",5:\"\\u1045\",6:\"\\u1046\",7:\"\\u1047\",8:\"\\u1048\",9:\"\\u1049\",0:\"\\u1040\"},jn={\"\\u1041\":\"1\",\"\\u1042\":\"2\",\"\\u1043\":\"3\",\"\\u1044\":\"4\",\"\\u1045\":\"5\",\"\\u1046\":\"6\",\"\\u1047\":\"7\",\"\\u1048\":\"8\",\"\\u1049\":\"9\",\"\\u1040\":\"0\"};l.defineLocale(\"my\",{months:\"\\u1007\\u1014\\u103a\\u1014\\u101d\\u102b\\u101b\\u102e_\\u1016\\u1031\\u1016\\u1031\\u102c\\u103a\\u101d\\u102b\\u101b\\u102e_\\u1019\\u1010\\u103a_\\u1027\\u1015\\u103c\\u102e_\\u1019\\u1031_\\u1007\\u103d\\u1014\\u103a_\\u1007\\u1030\\u101c\\u102d\\u102f\\u1004\\u103a_\\u101e\\u103c\\u1002\\u102f\\u1010\\u103a_\\u1005\\u1000\\u103a\\u1010\\u1004\\u103a\\u1018\\u102c_\\u1021\\u1031\\u102c\\u1000\\u103a\\u1010\\u102d\\u102f\\u1018\\u102c_\\u1014\\u102d\\u102f\\u101d\\u1004\\u103a\\u1018\\u102c_\\u1012\\u102e\\u1007\\u1004\\u103a\\u1018\\u102c\".split(\"_\"),monthsShort:\"\\u1007\\u1014\\u103a_\\u1016\\u1031_\\u1019\\u1010\\u103a_\\u1015\\u103c\\u102e_\\u1019\\u1031_\\u1007\\u103d\\u1014\\u103a_\\u101c\\u102d\\u102f\\u1004\\u103a_\\u101e\\u103c_\\u1005\\u1000\\u103a_\\u1021\\u1031\\u102c\\u1000\\u103a_\\u1014\\u102d\\u102f_\\u1012\\u102e\".split(\"_\"),weekdays:\"\\u1010\\u1014\\u1004\\u103a\\u1039\\u1002\\u1014\\u103d\\u1031_\\u1010\\u1014\\u1004\\u103a\\u1039\\u101c\\u102c_\\u1021\\u1004\\u103a\\u1039\\u1002\\u102b_\\u1017\\u102f\\u1012\\u1039\\u1013\\u101f\\u1030\\u1038_\\u1000\\u103c\\u102c\\u101e\\u1015\\u1010\\u1031\\u1038_\\u101e\\u1031\\u102c\\u1000\\u103c\\u102c_\\u1005\\u1014\\u1031\".split(\"_\"),weekdaysShort:\"\\u1014\\u103d\\u1031_\\u101c\\u102c_\\u1002\\u102b_\\u101f\\u1030\\u1038_\\u1000\\u103c\\u102c_\\u101e\\u1031\\u102c_\\u1014\\u1031\".split(\"_\"),weekdaysMin:\"\\u1014\\u103d\\u1031_\\u101c\\u102c_\\u1002\\u102b_\\u101f\\u1030\\u1038_\\u1000\\u103c\\u102c_\\u101e\\u1031\\u102c_\\u1014\\u1031\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[\\u101a\\u1014\\u1031.] LT [\\u1019\\u103e\\u102c]\",nextDay:\"[\\u1019\\u1014\\u1000\\u103a\\u1016\\u103c\\u1014\\u103a] LT [\\u1019\\u103e\\u102c]\",nextWeek:\"dddd LT [\\u1019\\u103e\\u102c]\",lastDay:\"[\\u1019\\u1014\\u1031.\\u1000] LT [\\u1019\\u103e\\u102c]\",lastWeek:\"[\\u1015\\u103c\\u102e\\u1038\\u1001\\u1032\\u1037\\u101e\\u1031\\u102c] dddd LT [\\u1019\\u103e\\u102c]\",sameElse:\"L\"},relativeTime:{future:\"\\u101c\\u102c\\u1019\\u100a\\u103a\\u1037 %s \\u1019\\u103e\\u102c\",past:\"\\u101c\\u103d\\u1014\\u103a\\u1001\\u1032\\u1037\\u101e\\u1031\\u102c %s \\u1000\",s:\"\\u1005\\u1000\\u1039\\u1000\\u1014\\u103a.\\u1021\\u1014\\u100a\\u103a\\u1038\\u1004\\u101a\\u103a\",ss:\"%d \\u1005\\u1000\\u1039\\u1000\\u1014\\u1037\\u103a\",m:\"\\u1010\\u1005\\u103a\\u1019\\u102d\\u1014\\u1005\\u103a\",mm:\"%d \\u1019\\u102d\\u1014\\u1005\\u103a\",h:\"\\u1010\\u1005\\u103a\\u1014\\u102c\\u101b\\u102e\",hh:\"%d \\u1014\\u102c\\u101b\\u102e\",d:\"\\u1010\\u1005\\u103a\\u101b\\u1000\\u103a\",dd:\"%d \\u101b\\u1000\\u103a\",M:\"\\u1010\\u1005\\u103a\\u101c\",MM:\"%d \\u101c\",y:\"\\u1010\\u1005\\u103a\\u1014\\u103e\\u1005\\u103a\",yy:\"%d \\u1014\\u103e\\u1005\\u103a\"},preparse:function(e){return e.replace(/[\\u1041\\u1042\\u1043\\u1044\\u1045\\u1046\\u1047\\u1048\\u1049\\u1040]/g,function(e){return jn[e]})},postformat:function(e){return e.replace(/\\d/g,function(e){return bn[e]})},week:{dow:1,doy:4}}),l.defineLocale(\"nb\",{months:\"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember\".split(\"_\"),monthsShort:\"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.\".split(\"_\"),monthsParseExact:!0,weekdays:\"s\\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\\xf8rdag\".split(\"_\"),weekdaysShort:\"s\\xf8._ma._ti._on._to._fr._l\\xf8.\".split(\"_\"),weekdaysMin:\"s\\xf8_ma_ti_on_to_fr_l\\xf8\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY [kl.] HH:mm\",LLLL:\"dddd D. MMMM YYYY [kl.] HH:mm\"},calendar:{sameDay:\"[i dag kl.] LT\",nextDay:\"[i morgen kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[i g\\xe5r kl.] LT\",lastWeek:\"[forrige] dddd [kl.] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"%s siden\",s:\"noen sekunder\",ss:\"%d sekunder\",m:\"ett minutt\",mm:\"%d minutter\",h:\"en time\",hh:\"%d timer\",d:\"en dag\",dd:\"%d dager\",M:\"en m\\xe5ned\",MM:\"%d m\\xe5neder\",y:\"ett \\xe5r\",yy:\"%d \\xe5r\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}});var xn={1:\"\\u0967\",2:\"\\u0968\",3:\"\\u0969\",4:\"\\u096a\",5:\"\\u096b\",6:\"\\u096c\",7:\"\\u096d\",8:\"\\u096e\",9:\"\\u096f\",0:\"\\u0966\"},On={\"\\u0967\":\"1\",\"\\u0968\":\"2\",\"\\u0969\":\"3\",\"\\u096a\":\"4\",\"\\u096b\":\"5\",\"\\u096c\":\"6\",\"\\u096d\":\"7\",\"\\u096e\":\"8\",\"\\u096f\":\"9\",\"\\u0966\":\"0\"};l.defineLocale(\"ne\",{months:\"\\u091c\\u0928\\u0935\\u0930\\u0940_\\u092b\\u0947\\u092c\\u094d\\u0930\\u0941\\u0935\\u0930\\u0940_\\u092e\\u093e\\u0930\\u094d\\u091a_\\u0905\\u092a\\u094d\\u0930\\u093f\\u0932_\\u092e\\u0908_\\u091c\\u0941\\u0928_\\u091c\\u0941\\u0932\\u093e\\u0908_\\u0905\\u0917\\u0937\\u094d\\u091f_\\u0938\\u0947\\u092a\\u094d\\u091f\\u0947\\u092e\\u094d\\u092c\\u0930_\\u0905\\u0915\\u094d\\u091f\\u094b\\u092c\\u0930_\\u0928\\u094b\\u092d\\u0947\\u092e\\u094d\\u092c\\u0930_\\u0921\\u093f\\u0938\\u0947\\u092e\\u094d\\u092c\\u0930\".split(\"_\"),monthsShort:\"\\u091c\\u0928._\\u092b\\u0947\\u092c\\u094d\\u0930\\u0941._\\u092e\\u093e\\u0930\\u094d\\u091a_\\u0905\\u092a\\u094d\\u0930\\u093f._\\u092e\\u0908_\\u091c\\u0941\\u0928_\\u091c\\u0941\\u0932\\u093e\\u0908._\\u0905\\u0917._\\u0938\\u0947\\u092a\\u094d\\u091f._\\u0905\\u0915\\u094d\\u091f\\u094b._\\u0928\\u094b\\u092d\\u0947._\\u0921\\u093f\\u0938\\u0947.\".split(\"_\"),monthsParseExact:!0,weekdays:\"\\u0906\\u0907\\u0924\\u092c\\u093e\\u0930_\\u0938\\u094b\\u092e\\u092c\\u093e\\u0930_\\u092e\\u0919\\u094d\\u0917\\u0932\\u092c\\u093e\\u0930_\\u092c\\u0941\\u0927\\u092c\\u093e\\u0930_\\u092c\\u093f\\u0939\\u093f\\u092c\\u093e\\u0930_\\u0936\\u0941\\u0915\\u094d\\u0930\\u092c\\u093e\\u0930_\\u0936\\u0928\\u093f\\u092c\\u093e\\u0930\".split(\"_\"),weekdaysShort:\"\\u0906\\u0907\\u0924._\\u0938\\u094b\\u092e._\\u092e\\u0919\\u094d\\u0917\\u0932._\\u092c\\u0941\\u0927._\\u092c\\u093f\\u0939\\u093f._\\u0936\\u0941\\u0915\\u094d\\u0930._\\u0936\\u0928\\u093f.\".split(\"_\"),weekdaysMin:\"\\u0906._\\u0938\\u094b._\\u092e\\u0902._\\u092c\\u0941._\\u092c\\u093f._\\u0936\\u0941._\\u0936.\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"A\\u0915\\u094b h:mm \\u092c\\u091c\\u0947\",LTS:\"A\\u0915\\u094b h:mm:ss \\u092c\\u091c\\u0947\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A\\u0915\\u094b h:mm \\u092c\\u091c\\u0947\",LLLL:\"dddd, D MMMM YYYY, A\\u0915\\u094b h:mm \\u092c\\u091c\\u0947\"},preparse:function(e){return e.replace(/[\\u0967\\u0968\\u0969\\u096a\\u096b\\u096c\\u096d\\u096e\\u096f\\u0966]/g,function(e){return On[e]})},postformat:function(e){return e.replace(/\\d/g,function(e){return xn[e]})},meridiemParse:/\\u0930\\u093e\\u0924\\u093f|\\u092c\\u093f\\u0939\\u093e\\u0928|\\u0926\\u093f\\u0909\\u0901\\u0938\\u094b|\\u0938\\u093e\\u0901\\u091d/,meridiemHour:function(e,a){return 12===e&&(e=0),\"\\u0930\\u093e\\u0924\\u093f\"===a?e<4?e:e+12:\"\\u092c\\u093f\\u0939\\u093e\\u0928\"===a?e:\"\\u0926\\u093f\\u0909\\u0901\\u0938\\u094b\"===a?10<=e?e:e+12:\"\\u0938\\u093e\\u0901\\u091d\"===a?e+12:void 0},meridiem:function(e,a,t){return e<3?\"\\u0930\\u093e\\u0924\\u093f\":e<12?\"\\u092c\\u093f\\u0939\\u093e\\u0928\":e<16?\"\\u0926\\u093f\\u0909\\u0901\\u0938\\u094b\":e<20?\"\\u0938\\u093e\\u0901\\u091d\":\"\\u0930\\u093e\\u0924\\u093f\"},calendar:{sameDay:\"[\\u0906\\u091c] LT\",nextDay:\"[\\u092d\\u094b\\u0932\\u093f] LT\",nextWeek:\"[\\u0906\\u0909\\u0901\\u0926\\u094b] dddd[,] LT\",lastDay:\"[\\u0939\\u093f\\u091c\\u094b] LT\",lastWeek:\"[\\u0917\\u090f\\u0915\\u094b] dddd[,] LT\",sameElse:\"L\"},relativeTime:{future:\"%s\\u092e\\u093e\",past:\"%s \\u0905\\u0917\\u093e\\u0921\\u093f\",s:\"\\u0915\\u0947\\u0939\\u0940 \\u0915\\u094d\\u0937\\u0923\",ss:\"%d \\u0938\\u0947\\u0915\\u0947\\u0923\\u094d\\u0921\",m:\"\\u090f\\u0915 \\u092e\\u093f\\u0928\\u0947\\u091f\",mm:\"%d \\u092e\\u093f\\u0928\\u0947\\u091f\",h:\"\\u090f\\u0915 \\u0918\\u0923\\u094d\\u091f\\u093e\",hh:\"%d \\u0918\\u0923\\u094d\\u091f\\u093e\",d:\"\\u090f\\u0915 \\u0926\\u093f\\u0928\",dd:\"%d \\u0926\\u093f\\u0928\",M:\"\\u090f\\u0915 \\u092e\\u0939\\u093f\\u0928\\u093e\",MM:\"%d \\u092e\\u0939\\u093f\\u0928\\u093e\",y:\"\\u090f\\u0915 \\u092c\\u0930\\u094d\\u0937\",yy:\"%d \\u092c\\u0930\\u094d\\u0937\"},week:{dow:0,doy:6}});var Pn=\"jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.\".split(\"_\"),Wn=\"jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),An=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],En=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;l.defineLocale(\"nl-be\",{months:\"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december\".split(\"_\"),monthsShort:function(e,a){return e?/-MMM-/.test(a)?Wn[e.month()]:Pn[e.month()]:Pn},monthsRegex:En,monthsShortRegex:En,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,monthsParse:An,longMonthsParse:An,shortMonthsParse:An,weekdays:\"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag\".split(\"_\"),weekdaysShort:\"zo._ma._di._wo._do._vr._za.\".split(\"_\"),weekdaysMin:\"zo_ma_di_wo_do_vr_za\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[vandaag om] LT\",nextDay:\"[morgen om] LT\",nextWeek:\"dddd [om] LT\",lastDay:\"[gisteren om] LT\",lastWeek:\"[afgelopen] dddd [om] LT\",sameElse:\"L\"},relativeTime:{future:\"over %s\",past:\"%s geleden\",s:\"een paar seconden\",ss:\"%d seconden\",m:\"\\xe9\\xe9n minuut\",mm:\"%d minuten\",h:\"\\xe9\\xe9n uur\",hh:\"%d uur\",d:\"\\xe9\\xe9n dag\",dd:\"%d dagen\",M:\"\\xe9\\xe9n maand\",MM:\"%d maanden\",y:\"\\xe9\\xe9n jaar\",yy:\"%d jaar\"},dayOfMonthOrdinalParse:/\\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?\"ste\":\"de\")},week:{dow:1,doy:4}});var Fn=\"jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.\".split(\"_\"),zn=\"jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),Jn=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],Nn=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;l.defineLocale(\"nl\",{months:\"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december\".split(\"_\"),monthsShort:function(e,a){return e?/-MMM-/.test(a)?zn[e.month()]:Fn[e.month()]:Fn},monthsRegex:Nn,monthsShortRegex:Nn,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,monthsParse:Jn,longMonthsParse:Jn,shortMonthsParse:Jn,weekdays:\"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag\".split(\"_\"),weekdaysShort:\"zo._ma._di._wo._do._vr._za.\".split(\"_\"),weekdaysMin:\"zo_ma_di_wo_do_vr_za\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD-MM-YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[vandaag om] LT\",nextDay:\"[morgen om] LT\",nextWeek:\"dddd [om] LT\",lastDay:\"[gisteren om] LT\",lastWeek:\"[afgelopen] dddd [om] LT\",sameElse:\"L\"},relativeTime:{future:\"over %s\",past:\"%s geleden\",s:\"een paar seconden\",ss:\"%d seconden\",m:\"\\xe9\\xe9n minuut\",mm:\"%d minuten\",h:\"\\xe9\\xe9n uur\",hh:\"%d uur\",d:\"\\xe9\\xe9n dag\",dd:\"%d dagen\",M:\"\\xe9\\xe9n maand\",MM:\"%d maanden\",y:\"\\xe9\\xe9n jaar\",yy:\"%d jaar\"},dayOfMonthOrdinalParse:/\\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?\"ste\":\"de\")},week:{dow:1,doy:4}}),l.defineLocale(\"nn\",{months:\"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des\".split(\"_\"),weekdays:\"sundag_m\\xe5ndag_tysdag_onsdag_torsdag_fredag_laurdag\".split(\"_\"),weekdaysShort:\"sun_m\\xe5n_tys_ons_tor_fre_lau\".split(\"_\"),weekdaysMin:\"su_m\\xe5_ty_on_to_fr_l\\xf8\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY [kl.] H:mm\",LLLL:\"dddd D. MMMM YYYY [kl.] HH:mm\"},calendar:{sameDay:\"[I dag klokka] LT\",nextDay:\"[I morgon klokka] LT\",nextWeek:\"dddd [klokka] LT\",lastDay:\"[I g\\xe5r klokka] LT\",lastWeek:\"[F\\xf8reg\\xe5ande] dddd [klokka] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"%s sidan\",s:\"nokre sekund\",ss:\"%d sekund\",m:\"eit minutt\",mm:\"%d minutt\",h:\"ein time\",hh:\"%d timar\",d:\"ein dag\",dd:\"%d dagar\",M:\"ein m\\xe5nad\",MM:\"%d m\\xe5nader\",y:\"eit \\xe5r\",yy:\"%d \\xe5r\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}});var Rn={1:\"\\u0a67\",2:\"\\u0a68\",3:\"\\u0a69\",4:\"\\u0a6a\",5:\"\\u0a6b\",6:\"\\u0a6c\",7:\"\\u0a6d\",8:\"\\u0a6e\",9:\"\\u0a6f\",0:\"\\u0a66\"},Cn={\"\\u0a67\":\"1\",\"\\u0a68\":\"2\",\"\\u0a69\":\"3\",\"\\u0a6a\":\"4\",\"\\u0a6b\":\"5\",\"\\u0a6c\":\"6\",\"\\u0a6d\":\"7\",\"\\u0a6e\":\"8\",\"\\u0a6f\":\"9\",\"\\u0a66\":\"0\"};l.defineLocale(\"pa-in\",{months:\"\\u0a1c\\u0a28\\u0a35\\u0a30\\u0a40_\\u0a2b\\u0a3c\\u0a30\\u0a35\\u0a30\\u0a40_\\u0a2e\\u0a3e\\u0a30\\u0a1a_\\u0a05\\u0a2a\\u0a4d\\u0a30\\u0a48\\u0a32_\\u0a2e\\u0a08_\\u0a1c\\u0a42\\u0a28_\\u0a1c\\u0a41\\u0a32\\u0a3e\\u0a08_\\u0a05\\u0a17\\u0a38\\u0a24_\\u0a38\\u0a24\\u0a70\\u0a2c\\u0a30_\\u0a05\\u0a15\\u0a24\\u0a42\\u0a2c\\u0a30_\\u0a28\\u0a35\\u0a70\\u0a2c\\u0a30_\\u0a26\\u0a38\\u0a70\\u0a2c\\u0a30\".split(\"_\"),monthsShort:\"\\u0a1c\\u0a28\\u0a35\\u0a30\\u0a40_\\u0a2b\\u0a3c\\u0a30\\u0a35\\u0a30\\u0a40_\\u0a2e\\u0a3e\\u0a30\\u0a1a_\\u0a05\\u0a2a\\u0a4d\\u0a30\\u0a48\\u0a32_\\u0a2e\\u0a08_\\u0a1c\\u0a42\\u0a28_\\u0a1c\\u0a41\\u0a32\\u0a3e\\u0a08_\\u0a05\\u0a17\\u0a38\\u0a24_\\u0a38\\u0a24\\u0a70\\u0a2c\\u0a30_\\u0a05\\u0a15\\u0a24\\u0a42\\u0a2c\\u0a30_\\u0a28\\u0a35\\u0a70\\u0a2c\\u0a30_\\u0a26\\u0a38\\u0a70\\u0a2c\\u0a30\".split(\"_\"),weekdays:\"\\u0a10\\u0a24\\u0a35\\u0a3e\\u0a30_\\u0a38\\u0a4b\\u0a2e\\u0a35\\u0a3e\\u0a30_\\u0a2e\\u0a70\\u0a17\\u0a32\\u0a35\\u0a3e\\u0a30_\\u0a2c\\u0a41\\u0a27\\u0a35\\u0a3e\\u0a30_\\u0a35\\u0a40\\u0a30\\u0a35\\u0a3e\\u0a30_\\u0a38\\u0a3c\\u0a41\\u0a71\\u0a15\\u0a30\\u0a35\\u0a3e\\u0a30_\\u0a38\\u0a3c\\u0a28\\u0a40\\u0a1a\\u0a30\\u0a35\\u0a3e\\u0a30\".split(\"_\"),weekdaysShort:\"\\u0a10\\u0a24_\\u0a38\\u0a4b\\u0a2e_\\u0a2e\\u0a70\\u0a17\\u0a32_\\u0a2c\\u0a41\\u0a27_\\u0a35\\u0a40\\u0a30_\\u0a38\\u0a3c\\u0a41\\u0a15\\u0a30_\\u0a38\\u0a3c\\u0a28\\u0a40\".split(\"_\"),weekdaysMin:\"\\u0a10\\u0a24_\\u0a38\\u0a4b\\u0a2e_\\u0a2e\\u0a70\\u0a17\\u0a32_\\u0a2c\\u0a41\\u0a27_\\u0a35\\u0a40\\u0a30_\\u0a38\\u0a3c\\u0a41\\u0a15\\u0a30_\\u0a38\\u0a3c\\u0a28\\u0a40\".split(\"_\"),longDateFormat:{LT:\"A h:mm \\u0a35\\u0a1c\\u0a47\",LTS:\"A h:mm:ss \\u0a35\\u0a1c\\u0a47\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm \\u0a35\\u0a1c\\u0a47\",LLLL:\"dddd, D MMMM YYYY, A h:mm \\u0a35\\u0a1c\\u0a47\"},calendar:{sameDay:\"[\\u0a05\\u0a1c] LT\",nextDay:\"[\\u0a15\\u0a32] LT\",nextWeek:\"[\\u0a05\\u0a17\\u0a32\\u0a3e] dddd, LT\",lastDay:\"[\\u0a15\\u0a32] LT\",lastWeek:\"[\\u0a2a\\u0a3f\\u0a1b\\u0a32\\u0a47] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s \\u0a35\\u0a3f\\u0a71\\u0a1a\",past:\"%s \\u0a2a\\u0a3f\\u0a1b\\u0a32\\u0a47\",s:\"\\u0a15\\u0a41\\u0a1d \\u0a38\\u0a15\\u0a3f\\u0a70\\u0a1f\",ss:\"%d \\u0a38\\u0a15\\u0a3f\\u0a70\\u0a1f\",m:\"\\u0a07\\u0a15 \\u0a2e\\u0a3f\\u0a70\\u0a1f\",mm:\"%d \\u0a2e\\u0a3f\\u0a70\\u0a1f\",h:\"\\u0a07\\u0a71\\u0a15 \\u0a18\\u0a70\\u0a1f\\u0a3e\",hh:\"%d \\u0a18\\u0a70\\u0a1f\\u0a47\",d:\"\\u0a07\\u0a71\\u0a15 \\u0a26\\u0a3f\\u0a28\",dd:\"%d \\u0a26\\u0a3f\\u0a28\",M:\"\\u0a07\\u0a71\\u0a15 \\u0a2e\\u0a39\\u0a40\\u0a28\\u0a3e\",MM:\"%d \\u0a2e\\u0a39\\u0a40\\u0a28\\u0a47\",y:\"\\u0a07\\u0a71\\u0a15 \\u0a38\\u0a3e\\u0a32\",yy:\"%d \\u0a38\\u0a3e\\u0a32\"},preparse:function(e){return e.replace(/[\\u0a67\\u0a68\\u0a69\\u0a6a\\u0a6b\\u0a6c\\u0a6d\\u0a6e\\u0a6f\\u0a66]/g,function(e){return Cn[e]})},postformat:function(e){return e.replace(/\\d/g,function(e){return Rn[e]})},meridiemParse:/\\u0a30\\u0a3e\\u0a24|\\u0a38\\u0a35\\u0a47\\u0a30|\\u0a26\\u0a41\\u0a2a\\u0a39\\u0a3f\\u0a30|\\u0a38\\u0a3c\\u0a3e\\u0a2e/,meridiemHour:function(e,a){return 12===e&&(e=0),\"\\u0a30\\u0a3e\\u0a24\"===a?e<4?e:e+12:\"\\u0a38\\u0a35\\u0a47\\u0a30\"===a?e:\"\\u0a26\\u0a41\\u0a2a\\u0a39\\u0a3f\\u0a30\"===a?10<=e?e:e+12:\"\\u0a38\\u0a3c\\u0a3e\\u0a2e\"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?\"\\u0a30\\u0a3e\\u0a24\":e<10?\"\\u0a38\\u0a35\\u0a47\\u0a30\":e<17?\"\\u0a26\\u0a41\\u0a2a\\u0a39\\u0a3f\\u0a30\":e<20?\"\\u0a38\\u0a3c\\u0a3e\\u0a2e\":\"\\u0a30\\u0a3e\\u0a24\"},week:{dow:0,doy:6}});var In=\"stycze\\u0144_luty_marzec_kwiecie\\u0144_maj_czerwiec_lipiec_sierpie\\u0144_wrzesie\\u0144_pa\\u017adziernik_listopad_grudzie\\u0144\".split(\"_\"),Un=\"stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\\u015bnia_pa\\u017adziernika_listopada_grudnia\".split(\"_\");function Gn(e){return e%10<5&&1<e%10&&~~(e/10)%10!=1}function Vn(e,a,t){var s=e+\" \";switch(t){case\"ss\":return s+(Gn(e)?\"sekundy\":\"sekund\");case\"m\":return a?\"minuta\":\"minut\\u0119\";case\"mm\":return s+(Gn(e)?\"minuty\":\"minut\");case\"h\":return a?\"godzina\":\"godzin\\u0119\";case\"hh\":return s+(Gn(e)?\"godziny\":\"godzin\");case\"MM\":return s+(Gn(e)?\"miesi\\u0105ce\":\"miesi\\u0119cy\");case\"yy\":return s+(Gn(e)?\"lata\":\"lat\")}}function Kn(e,a,t){var s=\" \";return(20<=e%100||100<=e&&e%100==0)&&(s=\" de \"),e+s+{ss:\"secunde\",mm:\"minute\",hh:\"ore\",dd:\"zile\",MM:\"luni\",yy:\"ani\"}[t]}function Zn(e,a,t){var s,n;return\"m\"===t?a?\"\\u043c\\u0438\\u043d\\u0443\\u0442\\u0430\":\"\\u043c\\u0438\\u043d\\u0443\\u0442\\u0443\":e+\" \"+(s=+e,n={ss:a?\"\\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u0430_\\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u044b_\\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\":\"\\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u0443_\\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u044b_\\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\",mm:a?\"\\u043c\\u0438\\u043d\\u0443\\u0442\\u0430_\\u043c\\u0438\\u043d\\u0443\\u0442\\u044b_\\u043c\\u0438\\u043d\\u0443\\u0442\":\"\\u043c\\u0438\\u043d\\u0443\\u0442\\u0443_\\u043c\\u0438\\u043d\\u0443\\u0442\\u044b_\\u043c\\u0438\\u043d\\u0443\\u0442\",hh:\"\\u0447\\u0430\\u0441_\\u0447\\u0430\\u0441\\u0430_\\u0447\\u0430\\u0441\\u043e\\u0432\",dd:\"\\u0434\\u0435\\u043d\\u044c_\\u0434\\u043d\\u044f_\\u0434\\u043d\\u0435\\u0439\",MM:\"\\u043c\\u0435\\u0441\\u044f\\u0446_\\u043c\\u0435\\u0441\\u044f\\u0446\\u0430_\\u043c\\u0435\\u0441\\u044f\\u0446\\u0435\\u0432\",yy:\"\\u0433\\u043e\\u0434_\\u0433\\u043e\\u0434\\u0430_\\u043b\\u0435\\u0442\"}[t].split(\"_\"),s%10==1&&s%100!=11?n[0]:2<=s%10&&s%10<=4&&(s%100<10||20<=s%100)?n[1]:n[2])}l.defineLocale(\"pl\",{months:function(e,a){return e?\"\"===a?\"(\"+Un[e.month()]+\"|\"+In[e.month()]+\")\":/D MMMM/.test(a)?Un[e.month()]:In[e.month()]:In},monthsShort:\"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\\u017a_lis_gru\".split(\"_\"),weekdays:\"niedziela_poniedzia\\u0142ek_wtorek_\\u015broda_czwartek_pi\\u0105tek_sobota\".split(\"_\"),weekdaysShort:\"ndz_pon_wt_\\u015br_czw_pt_sob\".split(\"_\"),weekdaysMin:\"Nd_Pn_Wt_\\u015ar_Cz_Pt_So\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Dzi\\u015b o] LT\",nextDay:\"[Jutro o] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[W niedziel\\u0119 o] LT\";case 2:return\"[We wtorek o] LT\";case 3:return\"[W \\u015brod\\u0119 o] LT\";case 6:return\"[W sobot\\u0119 o] LT\";default:return\"[W] dddd [o] LT\"}},lastDay:\"[Wczoraj o] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[W zesz\\u0142\\u0105 niedziel\\u0119 o] LT\";case 3:return\"[W zesz\\u0142\\u0105 \\u015brod\\u0119 o] LT\";case 6:return\"[W zesz\\u0142\\u0105 sobot\\u0119 o] LT\";default:return\"[W zesz\\u0142y] dddd [o] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"%s temu\",s:\"kilka sekund\",ss:Vn,m:Vn,mm:Vn,h:Vn,hh:Vn,d:\"1 dzie\\u0144\",dd:\"%d dni\",M:\"miesi\\u0105c\",MM:Vn,y:\"rok\",yy:Vn},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),l.defineLocale(\"pt-br\",{months:\"Janeiro_Fevereiro_Mar\\xe7o_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro\".split(\"_\"),monthsShort:\"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez\".split(\"_\"),weekdays:\"Domingo_Segunda-feira_Ter\\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\\xe1bado\".split(\"_\"),weekdaysShort:\"Dom_Seg_Ter_Qua_Qui_Sex_S\\xe1b\".split(\"_\"),weekdaysMin:\"Do_2\\xaa_3\\xaa_4\\xaa_5\\xaa_6\\xaa_S\\xe1\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY [\\xe0s] HH:mm\",LLLL:\"dddd, D [de] MMMM [de] YYYY [\\xe0s] HH:mm\"},calendar:{sameDay:\"[Hoje \\xe0s] LT\",nextDay:\"[Amanh\\xe3 \\xe0s] LT\",nextWeek:\"dddd [\\xe0s] LT\",lastDay:\"[Ontem \\xe0s] LT\",lastWeek:function(){return 0===this.day()||6===this.day()?\"[\\xdaltimo] dddd [\\xe0s] LT\":\"[\\xdaltima] dddd [\\xe0s] LT\"},sameElse:\"L\"},relativeTime:{future:\"em %s\",past:\"h\\xe1 %s\",s:\"poucos segundos\",ss:\"%d segundos\",m:\"um minuto\",mm:\"%d minutos\",h:\"uma hora\",hh:\"%d horas\",d:\"um dia\",dd:\"%d dias\",M:\"um m\\xeas\",MM:\"%d meses\",y:\"um ano\",yy:\"%d anos\"},dayOfMonthOrdinalParse:/\\d{1,2}\\xba/,ordinal:\"%d\\xba\"}),l.defineLocale(\"pt\",{months:\"Janeiro_Fevereiro_Mar\\xe7o_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro\".split(\"_\"),monthsShort:\"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez\".split(\"_\"),weekdays:\"Domingo_Segunda-feira_Ter\\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\\xe1bado\".split(\"_\"),weekdaysShort:\"Dom_Seg_Ter_Qua_Qui_Sex_S\\xe1b\".split(\"_\"),weekdaysMin:\"Do_2\\xaa_3\\xaa_4\\xaa_5\\xaa_6\\xaa_S\\xe1\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY HH:mm\",LLLL:\"dddd, D [de] MMMM [de] YYYY HH:mm\"},calendar:{sameDay:\"[Hoje \\xe0s] LT\",nextDay:\"[Amanh\\xe3 \\xe0s] LT\",nextWeek:\"dddd [\\xe0s] LT\",lastDay:\"[Ontem \\xe0s] LT\",lastWeek:function(){return 0===this.day()||6===this.day()?\"[\\xdaltimo] dddd [\\xe0s] LT\":\"[\\xdaltima] dddd [\\xe0s] LT\"},sameElse:\"L\"},relativeTime:{future:\"em %s\",past:\"h\\xe1 %s\",s:\"segundos\",ss:\"%d segundos\",m:\"um minuto\",mm:\"%d minutos\",h:\"uma hora\",hh:\"%d horas\",d:\"um dia\",dd:\"%d dias\",M:\"um m\\xeas\",MM:\"%d meses\",y:\"um ano\",yy:\"%d anos\"},dayOfMonthOrdinalParse:/\\d{1,2}\\xba/,ordinal:\"%d\\xba\",week:{dow:1,doy:4}}),l.defineLocale(\"ro\",{months:\"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie\".split(\"_\"),monthsShort:\"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.\".split(\"_\"),monthsParseExact:!0,weekdays:\"duminic\\u0103_luni_mar\\u021bi_miercuri_joi_vineri_s\\xe2mb\\u0103t\\u0103\".split(\"_\"),weekdaysShort:\"Dum_Lun_Mar_Mie_Joi_Vin_S\\xe2m\".split(\"_\"),weekdaysMin:\"Du_Lu_Ma_Mi_Jo_Vi_S\\xe2\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY H:mm\",LLLL:\"dddd, D MMMM YYYY H:mm\"},calendar:{sameDay:\"[azi la] LT\",nextDay:\"[m\\xe2ine la] LT\",nextWeek:\"dddd [la] LT\",lastDay:\"[ieri la] LT\",lastWeek:\"[fosta] dddd [la] LT\",sameElse:\"L\"},relativeTime:{future:\"peste %s\",past:\"%s \\xeen urm\\u0103\",s:\"c\\xe2teva secunde\",ss:Kn,m:\"un minut\",mm:Kn,h:\"o or\\u0103\",hh:Kn,d:\"o zi\",dd:Kn,M:\"o lun\\u0103\",MM:Kn,y:\"un an\",yy:Kn},week:{dow:1,doy:7}});var $n=[/^\\u044f\\u043d\\u0432/i,/^\\u0444\\u0435\\u0432/i,/^\\u043c\\u0430\\u0440/i,/^\\u0430\\u043f\\u0440/i,/^\\u043c\\u0430[\\u0439\\u044f]/i,/^\\u0438\\u044e\\u043d/i,/^\\u0438\\u044e\\u043b/i,/^\\u0430\\u0432\\u0433/i,/^\\u0441\\u0435\\u043d/i,/^\\u043e\\u043a\\u0442/i,/^\\u043d\\u043e\\u044f/i,/^\\u0434\\u0435\\u043a/i];l.defineLocale(\"ru\",{months:{format:\"\\u044f\\u043d\\u0432\\u0430\\u0440\\u044f_\\u0444\\u0435\\u0432\\u0440\\u0430\\u043b\\u044f_\\u043c\\u0430\\u0440\\u0442\\u0430_\\u0430\\u043f\\u0440\\u0435\\u043b\\u044f_\\u043c\\u0430\\u044f_\\u0438\\u044e\\u043d\\u044f_\\u0438\\u044e\\u043b\\u044f_\\u0430\\u0432\\u0433\\u0443\\u0441\\u0442\\u0430_\\u0441\\u0435\\u043d\\u0442\\u044f\\u0431\\u0440\\u044f_\\u043e\\u043a\\u0442\\u044f\\u0431\\u0440\\u044f_\\u043d\\u043e\\u044f\\u0431\\u0440\\u044f_\\u0434\\u0435\\u043a\\u0430\\u0431\\u0440\\u044f\".split(\"_\"),standalone:\"\\u044f\\u043d\\u0432\\u0430\\u0440\\u044c_\\u0444\\u0435\\u0432\\u0440\\u0430\\u043b\\u044c_\\u043c\\u0430\\u0440\\u0442_\\u0430\\u043f\\u0440\\u0435\\u043b\\u044c_\\u043c\\u0430\\u0439_\\u0438\\u044e\\u043d\\u044c_\\u0438\\u044e\\u043b\\u044c_\\u0430\\u0432\\u0433\\u0443\\u0441\\u0442_\\u0441\\u0435\\u043d\\u0442\\u044f\\u0431\\u0440\\u044c_\\u043e\\u043a\\u0442\\u044f\\u0431\\u0440\\u044c_\\u043d\\u043e\\u044f\\u0431\\u0440\\u044c_\\u0434\\u0435\\u043a\\u0430\\u0431\\u0440\\u044c\".split(\"_\")},monthsShort:{format:\"\\u044f\\u043d\\u0432._\\u0444\\u0435\\u0432\\u0440._\\u043c\\u0430\\u0440._\\u0430\\u043f\\u0440._\\u043c\\u0430\\u044f_\\u0438\\u044e\\u043d\\u044f_\\u0438\\u044e\\u043b\\u044f_\\u0430\\u0432\\u0433._\\u0441\\u0435\\u043d\\u0442._\\u043e\\u043a\\u0442._\\u043d\\u043e\\u044f\\u0431._\\u0434\\u0435\\u043a.\".split(\"_\"),standalone:\"\\u044f\\u043d\\u0432._\\u0444\\u0435\\u0432\\u0440._\\u043c\\u0430\\u0440\\u0442_\\u0430\\u043f\\u0440._\\u043c\\u0430\\u0439_\\u0438\\u044e\\u043d\\u044c_\\u0438\\u044e\\u043b\\u044c_\\u0430\\u0432\\u0433._\\u0441\\u0435\\u043d\\u0442._\\u043e\\u043a\\u0442._\\u043d\\u043e\\u044f\\u0431._\\u0434\\u0435\\u043a.\".split(\"_\")},weekdays:{standalone:\"\\u0432\\u043e\\u0441\\u043a\\u0440\\u0435\\u0441\\u0435\\u043d\\u044c\\u0435_\\u043f\\u043e\\u043d\\u0435\\u0434\\u0435\\u043b\\u044c\\u043d\\u0438\\u043a_\\u0432\\u0442\\u043e\\u0440\\u043d\\u0438\\u043a_\\u0441\\u0440\\u0435\\u0434\\u0430_\\u0447\\u0435\\u0442\\u0432\\u0435\\u0440\\u0433_\\u043f\\u044f\\u0442\\u043d\\u0438\\u0446\\u0430_\\u0441\\u0443\\u0431\\u0431\\u043e\\u0442\\u0430\".split(\"_\"),format:\"\\u0432\\u043e\\u0441\\u043a\\u0440\\u0435\\u0441\\u0435\\u043d\\u044c\\u0435_\\u043f\\u043e\\u043d\\u0435\\u0434\\u0435\\u043b\\u044c\\u043d\\u0438\\u043a_\\u0432\\u0442\\u043e\\u0440\\u043d\\u0438\\u043a_\\u0441\\u0440\\u0435\\u0434\\u0443_\\u0447\\u0435\\u0442\\u0432\\u0435\\u0440\\u0433_\\u043f\\u044f\\u0442\\u043d\\u0438\\u0446\\u0443_\\u0441\\u0443\\u0431\\u0431\\u043e\\u0442\\u0443\".split(\"_\"),isFormat:/\\[ ?[\\u0412\\u0432] ?(?:\\u043f\\u0440\\u043e\\u0448\\u043b\\u0443\\u044e|\\u0441\\u043b\\u0435\\u0434\\u0443\\u044e\\u0449\\u0443\\u044e|\\u044d\\u0442\\u0443)? ?\\] ?dddd/},weekdaysShort:\"\\u0432\\u0441_\\u043f\\u043d_\\u0432\\u0442_\\u0441\\u0440_\\u0447\\u0442_\\u043f\\u0442_\\u0441\\u0431\".split(\"_\"),weekdaysMin:\"\\u0432\\u0441_\\u043f\\u043d_\\u0432\\u0442_\\u0441\\u0440_\\u0447\\u0442_\\u043f\\u0442_\\u0441\\u0431\".split(\"_\"),monthsParse:$n,longMonthsParse:$n,shortMonthsParse:$n,monthsRegex:/^(\\u044f\\u043d\\u0432\\u0430\\u0440[\\u044c\\u044f]|\\u044f\\u043d\\u0432\\.?|\\u0444\\u0435\\u0432\\u0440\\u0430\\u043b[\\u044c\\u044f]|\\u0444\\u0435\\u0432\\u0440?\\.?|\\u043c\\u0430\\u0440\\u0442\\u0430?|\\u043c\\u0430\\u0440\\.?|\\u0430\\u043f\\u0440\\u0435\\u043b[\\u044c\\u044f]|\\u0430\\u043f\\u0440\\.?|\\u043c\\u0430[\\u0439\\u044f]|\\u0438\\u044e\\u043d[\\u044c\\u044f]|\\u0438\\u044e\\u043d\\.?|\\u0438\\u044e\\u043b[\\u044c\\u044f]|\\u0438\\u044e\\u043b\\.?|\\u0430\\u0432\\u0433\\u0443\\u0441\\u0442\\u0430?|\\u0430\\u0432\\u0433\\.?|\\u0441\\u0435\\u043d\\u0442\\u044f\\u0431\\u0440[\\u044c\\u044f]|\\u0441\\u0435\\u043d\\u0442?\\.?|\\u043e\\u043a\\u0442\\u044f\\u0431\\u0440[\\u044c\\u044f]|\\u043e\\u043a\\u0442\\.?|\\u043d\\u043e\\u044f\\u0431\\u0440[\\u044c\\u044f]|\\u043d\\u043e\\u044f\\u0431?\\.?|\\u0434\\u0435\\u043a\\u0430\\u0431\\u0440[\\u044c\\u044f]|\\u0434\\u0435\\u043a\\.?)/i,monthsShortRegex:/^(\\u044f\\u043d\\u0432\\u0430\\u0440[\\u044c\\u044f]|\\u044f\\u043d\\u0432\\.?|\\u0444\\u0435\\u0432\\u0440\\u0430\\u043b[\\u044c\\u044f]|\\u0444\\u0435\\u0432\\u0440?\\.?|\\u043c\\u0430\\u0440\\u0442\\u0430?|\\u043c\\u0430\\u0440\\.?|\\u0430\\u043f\\u0440\\u0435\\u043b[\\u044c\\u044f]|\\u0430\\u043f\\u0440\\.?|\\u043c\\u0430[\\u0439\\u044f]|\\u0438\\u044e\\u043d[\\u044c\\u044f]|\\u0438\\u044e\\u043d\\.?|\\u0438\\u044e\\u043b[\\u044c\\u044f]|\\u0438\\u044e\\u043b\\.?|\\u0430\\u0432\\u0433\\u0443\\u0441\\u0442\\u0430?|\\u0430\\u0432\\u0433\\.?|\\u0441\\u0435\\u043d\\u0442\\u044f\\u0431\\u0440[\\u044c\\u044f]|\\u0441\\u0435\\u043d\\u0442?\\.?|\\u043e\\u043a\\u0442\\u044f\\u0431\\u0440[\\u044c\\u044f]|\\u043e\\u043a\\u0442\\.?|\\u043d\\u043e\\u044f\\u0431\\u0440[\\u044c\\u044f]|\\u043d\\u043e\\u044f\\u0431?\\.?|\\u0434\\u0435\\u043a\\u0430\\u0431\\u0440[\\u044c\\u044f]|\\u0434\\u0435\\u043a\\.?)/i,monthsStrictRegex:/^(\\u044f\\u043d\\u0432\\u0430\\u0440[\\u044f\\u044c]|\\u0444\\u0435\\u0432\\u0440\\u0430\\u043b[\\u044f\\u044c]|\\u043c\\u0430\\u0440\\u0442\\u0430?|\\u0430\\u043f\\u0440\\u0435\\u043b[\\u044f\\u044c]|\\u043c\\u0430[\\u044f\\u0439]|\\u0438\\u044e\\u043d[\\u044f\\u044c]|\\u0438\\u044e\\u043b[\\u044f\\u044c]|\\u0430\\u0432\\u0433\\u0443\\u0441\\u0442\\u0430?|\\u0441\\u0435\\u043d\\u0442\\u044f\\u0431\\u0440[\\u044f\\u044c]|\\u043e\\u043a\\u0442\\u044f\\u0431\\u0440[\\u044f\\u044c]|\\u043d\\u043e\\u044f\\u0431\\u0440[\\u044f\\u044c]|\\u0434\\u0435\\u043a\\u0430\\u0431\\u0440[\\u044f\\u044c])/i,monthsShortStrictRegex:/^(\\u044f\\u043d\\u0432\\.|\\u0444\\u0435\\u0432\\u0440?\\.|\\u043c\\u0430\\u0440[\\u0442.]|\\u0430\\u043f\\u0440\\.|\\u043c\\u0430[\\u044f\\u0439]|\\u0438\\u044e\\u043d[\\u044c\\u044f.]|\\u0438\\u044e\\u043b[\\u044c\\u044f.]|\\u0430\\u0432\\u0433\\.|\\u0441\\u0435\\u043d\\u0442?\\.|\\u043e\\u043a\\u0442\\.|\\u043d\\u043e\\u044f\\u0431?\\.|\\u0434\\u0435\\u043a\\.)/i,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY \\u0433.\",LLL:\"D MMMM YYYY \\u0433., H:mm\",LLLL:\"dddd, D MMMM YYYY \\u0433., H:mm\"},calendar:{sameDay:\"[\\u0421\\u0435\\u0433\\u043e\\u0434\\u043d\\u044f, \\u0432] LT\",nextDay:\"[\\u0417\\u0430\\u0432\\u0442\\u0440\\u0430, \\u0432] LT\",lastDay:\"[\\u0412\\u0447\\u0435\\u0440\\u0430, \\u0432] LT\",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?\"[\\u0412\\u043e] dddd, [\\u0432] LT\":\"[\\u0412] dddd, [\\u0432] LT\";switch(this.day()){case 0:return\"[\\u0412 \\u0441\\u043b\\u0435\\u0434\\u0443\\u044e\\u0449\\u0435\\u0435] dddd, [\\u0432] LT\";case 1:case 2:case 4:return\"[\\u0412 \\u0441\\u043b\\u0435\\u0434\\u0443\\u044e\\u0449\\u0438\\u0439] dddd, [\\u0432] LT\";case 3:case 5:case 6:return\"[\\u0412 \\u0441\\u043b\\u0435\\u0434\\u0443\\u044e\\u0449\\u0443\\u044e] dddd, [\\u0432] LT\"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?\"[\\u0412\\u043e] dddd, [\\u0432] LT\":\"[\\u0412] dddd, [\\u0432] LT\";switch(this.day()){case 0:return\"[\\u0412 \\u043f\\u0440\\u043e\\u0448\\u043b\\u043e\\u0435] dddd, [\\u0432] LT\";case 1:case 2:case 4:return\"[\\u0412 \\u043f\\u0440\\u043e\\u0448\\u043b\\u044b\\u0439] dddd, [\\u0432] LT\";case 3:case 5:case 6:return\"[\\u0412 \\u043f\\u0440\\u043e\\u0448\\u043b\\u0443\\u044e] dddd, [\\u0432] LT\"}},sameElse:\"L\"},relativeTime:{future:\"\\u0447\\u0435\\u0440\\u0435\\u0437 %s\",past:\"%s \\u043d\\u0430\\u0437\\u0430\\u0434\",s:\"\\u043d\\u0435\\u0441\\u043a\\u043e\\u043b\\u044c\\u043a\\u043e \\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\",ss:Zn,m:Zn,mm:Zn,h:\"\\u0447\\u0430\\u0441\",hh:Zn,d:\"\\u0434\\u0435\\u043d\\u044c\",dd:Zn,M:\"\\u043c\\u0435\\u0441\\u044f\\u0446\",MM:Zn,y:\"\\u0433\\u043e\\u0434\",yy:Zn},meridiemParse:/\\u043d\\u043e\\u0447\\u0438|\\u0443\\u0442\\u0440\\u0430|\\u0434\\u043d\\u044f|\\u0432\\u0435\\u0447\\u0435\\u0440\\u0430/i,isPM:function(e){return/^(\\u0434\\u043d\\u044f|\\u0432\\u0435\\u0447\\u0435\\u0440\\u0430)$/.test(e)},meridiem:function(e,a,t){return e<4?\"\\u043d\\u043e\\u0447\\u0438\":e<12?\"\\u0443\\u0442\\u0440\\u0430\":e<17?\"\\u0434\\u043d\\u044f\":\"\\u0432\\u0435\\u0447\\u0435\\u0440\\u0430\"},dayOfMonthOrdinalParse:/\\d{1,2}-(\\u0439|\\u0433\\u043e|\\u044f)/,ordinal:function(e,a){switch(a){case\"M\":case\"d\":case\"DDD\":return e+\"-\\u0439\";case\"D\":return e+\"-\\u0433\\u043e\";case\"w\":case\"W\":return e+\"-\\u044f\";default:return e}},week:{dow:1,doy:4}});var Bn=[\"\\u062c\\u0646\\u0648\\u0631\\u064a\",\"\\u0641\\u064a\\u0628\\u0631\\u0648\\u0631\\u064a\",\"\\u0645\\u0627\\u0631\\u0686\",\"\\u0627\\u067e\\u0631\\u064a\\u0644\",\"\\u0645\\u0626\\u064a\",\"\\u062c\\u0648\\u0646\",\"\\u062c\\u0648\\u0644\\u0627\\u0621\\u0650\",\"\\u0622\\u06af\\u0633\\u067d\",\"\\u0633\\u064a\\u067e\\u067d\\u0645\\u0628\\u0631\",\"\\u0622\\u06aa\\u067d\\u0648\\u0628\\u0631\",\"\\u0646\\u0648\\u0645\\u0628\\u0631\",\"\\u068a\\u0633\\u0645\\u0628\\u0631\"],qn=[\"\\u0622\\u0686\\u0631\",\"\\u0633\\u0648\\u0645\\u0631\",\"\\u0627\\u06b1\\u0627\\u0631\\u0648\",\"\\u0627\\u0631\\u0628\\u0639\",\"\\u062e\\u0645\\u064a\\u0633\",\"\\u062c\\u0645\\u0639\",\"\\u0687\\u0646\\u0687\\u0631\"];l.defineLocale(\"sd\",{months:Bn,monthsShort:Bn,weekdays:qn,weekdaysShort:qn,weekdaysMin:qn,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd\\u060c D MMMM YYYY HH:mm\"},meridiemParse:/\\u0635\\u0628\\u062d|\\u0634\\u0627\\u0645/,isPM:function(e){return\"\\u0634\\u0627\\u0645\"===e},meridiem:function(e,a,t){return e<12?\"\\u0635\\u0628\\u062d\":\"\\u0634\\u0627\\u0645\"},calendar:{sameDay:\"[\\u0627\\u0684] LT\",nextDay:\"[\\u0633\\u0680\\u0627\\u06bb\\u064a] LT\",nextWeek:\"dddd [\\u0627\\u06b3\\u064a\\u0646 \\u0647\\u0641\\u062a\\u064a \\u062a\\u064a] LT\",lastDay:\"[\\u06aa\\u0627\\u0644\\u0647\\u0647] LT\",lastWeek:\"[\\u06af\\u0632\\u0631\\u064a\\u0644 \\u0647\\u0641\\u062a\\u064a] dddd [\\u062a\\u064a] LT\",sameElse:\"L\"},relativeTime:{future:\"%s \\u067e\\u0648\\u0621\",past:\"%s \\u0627\\u06b3\",s:\"\\u0686\\u0646\\u062f \\u0633\\u064a\\u06aa\\u0646\\u068a\",ss:\"%d \\u0633\\u064a\\u06aa\\u0646\\u068a\",m:\"\\u0647\\u06aa \\u0645\\u0646\\u067d\",mm:\"%d \\u0645\\u0646\\u067d\",h:\"\\u0647\\u06aa \\u06aa\\u0644\\u0627\\u06aa\",hh:\"%d \\u06aa\\u0644\\u0627\\u06aa\",d:\"\\u0647\\u06aa \\u068f\\u064a\\u0646\\u0647\\u0646\",dd:\"%d \\u068f\\u064a\\u0646\\u0647\\u0646\",M:\"\\u0647\\u06aa \\u0645\\u0647\\u064a\\u0646\\u0648\",MM:\"%d \\u0645\\u0647\\u064a\\u0646\\u0627\",y:\"\\u0647\\u06aa \\u0633\\u0627\\u0644\",yy:\"%d \\u0633\\u0627\\u0644\"},preparse:function(e){return e.replace(/\\u060c/g,\",\")},postformat:function(e){return e.replace(/,/g,\"\\u060c\")},week:{dow:1,doy:4}}),l.defineLocale(\"se\",{months:\"o\\u0111\\u0111ajagem\\xe1nnu_guovvam\\xe1nnu_njuk\\u010dam\\xe1nnu_cuo\\u014bom\\xe1nnu_miessem\\xe1nnu_geassem\\xe1nnu_suoidnem\\xe1nnu_borgem\\xe1nnu_\\u010dak\\u010dam\\xe1nnu_golggotm\\xe1nnu_sk\\xe1bmam\\xe1nnu_juovlam\\xe1nnu\".split(\"_\"),monthsShort:\"o\\u0111\\u0111j_guov_njuk_cuo_mies_geas_suoi_borg_\\u010dak\\u010d_golg_sk\\xe1b_juov\".split(\"_\"),weekdays:\"sotnabeaivi_vuoss\\xe1rga_ma\\u014b\\u014beb\\xe1rga_gaskavahkku_duorastat_bearjadat_l\\xe1vvardat\".split(\"_\"),weekdaysShort:\"sotn_vuos_ma\\u014b_gask_duor_bear_l\\xe1v\".split(\"_\"),weekdaysMin:\"s_v_m_g_d_b_L\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"MMMM D. [b.] YYYY\",LLL:\"MMMM D. [b.] YYYY [ti.] HH:mm\",LLLL:\"dddd, MMMM D. [b.] YYYY [ti.] HH:mm\"},calendar:{sameDay:\"[otne ti] LT\",nextDay:\"[ihttin ti] LT\",nextWeek:\"dddd [ti] LT\",lastDay:\"[ikte ti] LT\",lastWeek:\"[ovddit] dddd [ti] LT\",sameElse:\"L\"},relativeTime:{future:\"%s gea\\u017ees\",past:\"ma\\u014bit %s\",s:\"moadde sekunddat\",ss:\"%d sekunddat\",m:\"okta minuhta\",mm:\"%d minuhtat\",h:\"okta diimmu\",hh:\"%d diimmut\",d:\"okta beaivi\",dd:\"%d beaivvit\",M:\"okta m\\xe1nnu\",MM:\"%d m\\xe1nut\",y:\"okta jahki\",yy:\"%d jagit\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),l.defineLocale(\"si\",{months:\"\\u0da2\\u0db1\\u0dc0\\u0dcf\\u0dbb\\u0dd2_\\u0db4\\u0dd9\\u0db6\\u0dbb\\u0dc0\\u0dcf\\u0dbb\\u0dd2_\\u0db8\\u0dcf\\u0dbb\\u0dca\\u0dad\\u0dd4_\\u0d85\\u0db4\\u0dca\\u200d\\u0dbb\\u0dda\\u0dbd\\u0dca_\\u0db8\\u0dd0\\u0dba\\u0dd2_\\u0da2\\u0dd6\\u0db1\\u0dd2_\\u0da2\\u0dd6\\u0dbd\\u0dd2_\\u0d85\\u0d9c\\u0ddd\\u0dc3\\u0dca\\u0dad\\u0dd4_\\u0dc3\\u0dd0\\u0db4\\u0dca\\u0dad\\u0dd0\\u0db8\\u0dca\\u0db6\\u0dbb\\u0dca_\\u0d94\\u0d9a\\u0dca\\u0dad\\u0ddd\\u0db6\\u0dbb\\u0dca_\\u0db1\\u0ddc\\u0dc0\\u0dd0\\u0db8\\u0dca\\u0db6\\u0dbb\\u0dca_\\u0daf\\u0dd9\\u0dc3\\u0dd0\\u0db8\\u0dca\\u0db6\\u0dbb\\u0dca\".split(\"_\"),monthsShort:\"\\u0da2\\u0db1_\\u0db4\\u0dd9\\u0db6_\\u0db8\\u0dcf\\u0dbb\\u0dca_\\u0d85\\u0db4\\u0dca_\\u0db8\\u0dd0\\u0dba\\u0dd2_\\u0da2\\u0dd6\\u0db1\\u0dd2_\\u0da2\\u0dd6\\u0dbd\\u0dd2_\\u0d85\\u0d9c\\u0ddd_\\u0dc3\\u0dd0\\u0db4\\u0dca_\\u0d94\\u0d9a\\u0dca_\\u0db1\\u0ddc\\u0dc0\\u0dd0_\\u0daf\\u0dd9\\u0dc3\\u0dd0\".split(\"_\"),weekdays:\"\\u0d89\\u0dbb\\u0dd2\\u0daf\\u0dcf_\\u0dc3\\u0db3\\u0dd4\\u0daf\\u0dcf_\\u0d85\\u0d9f\\u0dc4\\u0dbb\\u0dd4\\u0dc0\\u0dcf\\u0daf\\u0dcf_\\u0db6\\u0daf\\u0dcf\\u0daf\\u0dcf_\\u0db6\\u0dca\\u200d\\u0dbb\\u0dc4\\u0dc3\\u0dca\\u0db4\\u0dad\\u0dd2\\u0db1\\u0dca\\u0daf\\u0dcf_\\u0dc3\\u0dd2\\u0d9a\\u0dd4\\u0dbb\\u0dcf\\u0daf\\u0dcf_\\u0dc3\\u0dd9\\u0db1\\u0dc3\\u0dd4\\u0dbb\\u0dcf\\u0daf\\u0dcf\".split(\"_\"),weekdaysShort:\"\\u0d89\\u0dbb\\u0dd2_\\u0dc3\\u0db3\\u0dd4_\\u0d85\\u0d9f_\\u0db6\\u0daf\\u0dcf_\\u0db6\\u0dca\\u200d\\u0dbb\\u0dc4_\\u0dc3\\u0dd2\\u0d9a\\u0dd4_\\u0dc3\\u0dd9\\u0db1\".split(\"_\"),weekdaysMin:\"\\u0d89_\\u0dc3_\\u0d85_\\u0db6_\\u0db6\\u0dca\\u200d\\u0dbb_\\u0dc3\\u0dd2_\\u0dc3\\u0dd9\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"a h:mm\",LTS:\"a h:mm:ss\",L:\"YYYY/MM/DD\",LL:\"YYYY MMMM D\",LLL:\"YYYY MMMM D, a h:mm\",LLLL:\"YYYY MMMM D [\\u0dc0\\u0dd0\\u0db1\\u0dd2] dddd, a h:mm:ss\"},calendar:{sameDay:\"[\\u0d85\\u0daf] LT[\\u0da7]\",nextDay:\"[\\u0dc4\\u0dd9\\u0da7] LT[\\u0da7]\",nextWeek:\"dddd LT[\\u0da7]\",lastDay:\"[\\u0d8a\\u0dba\\u0dda] LT[\\u0da7]\",lastWeek:\"[\\u0db4\\u0dc3\\u0dd4\\u0d9c\\u0dd2\\u0dba] dddd LT[\\u0da7]\",sameElse:\"L\"},relativeTime:{future:\"%s\\u0d9a\\u0dd2\\u0db1\\u0dca\",past:\"%s\\u0d9a\\u0da7 \\u0db4\\u0dd9\\u0dbb\",s:\"\\u0dad\\u0dad\\u0dca\\u0db4\\u0dbb \\u0d9a\\u0dd2\\u0dc4\\u0dd2\\u0db4\\u0dba\",ss:\"\\u0dad\\u0dad\\u0dca\\u0db4\\u0dbb %d\",m:\"\\u0db8\\u0dd2\\u0db1\\u0dd2\\u0dad\\u0dca\\u0dad\\u0dd4\\u0dc0\",mm:\"\\u0db8\\u0dd2\\u0db1\\u0dd2\\u0dad\\u0dca\\u0dad\\u0dd4 %d\",h:\"\\u0db4\\u0dd0\\u0dba\",hh:\"\\u0db4\\u0dd0\\u0dba %d\",d:\"\\u0daf\\u0dd2\\u0db1\\u0dba\",dd:\"\\u0daf\\u0dd2\\u0db1 %d\",M:\"\\u0db8\\u0dcf\\u0dc3\\u0dba\",MM:\"\\u0db8\\u0dcf\\u0dc3 %d\",y:\"\\u0dc0\\u0dc3\\u0dbb\",yy:\"\\u0dc0\\u0dc3\\u0dbb %d\"},dayOfMonthOrdinalParse:/\\d{1,2} \\u0dc0\\u0dd0\\u0db1\\u0dd2/,ordinal:function(e){return e+\" \\u0dc0\\u0dd0\\u0db1\\u0dd2\"},meridiemParse:/\\u0db4\\u0dd9\\u0dbb \\u0dc0\\u0dbb\\u0dd4|\\u0db4\\u0dc3\\u0dca \\u0dc0\\u0dbb\\u0dd4|\\u0db4\\u0dd9.\\u0dc0|\\u0db4.\\u0dc0./,isPM:function(e){return\"\\u0db4.\\u0dc0.\"===e||\"\\u0db4\\u0dc3\\u0dca \\u0dc0\\u0dbb\\u0dd4\"===e},meridiem:function(e,a,t){return 11<e?t?\"\\u0db4.\\u0dc0.\":\"\\u0db4\\u0dc3\\u0dca \\u0dc0\\u0dbb\\u0dd4\":t?\"\\u0db4\\u0dd9.\\u0dc0.\":\"\\u0db4\\u0dd9\\u0dbb \\u0dc0\\u0dbb\\u0dd4\"}});var Qn=\"janu\\xe1r_febru\\xe1r_marec_apr\\xedl_m\\xe1j_j\\xfan_j\\xfal_august_september_okt\\xf3ber_november_december\".split(\"_\"),Xn=\"jan_feb_mar_apr_m\\xe1j_j\\xfan_j\\xfal_aug_sep_okt_nov_dec\".split(\"_\");function ed(e){return 1<e&&e<5}function ad(e,a,t,s){var n=e+\" \";switch(t){case\"s\":return a||s?\"p\\xe1r sek\\xfand\":\"p\\xe1r sekundami\";case\"ss\":return a||s?n+(ed(e)?\"sekundy\":\"sek\\xfand\"):n+\"sekundami\";break;case\"m\":return a?\"min\\xfata\":s?\"min\\xfatu\":\"min\\xfatou\";case\"mm\":return a||s?n+(ed(e)?\"min\\xfaty\":\"min\\xfat\"):n+\"min\\xfatami\";break;case\"h\":return a?\"hodina\":s?\"hodinu\":\"hodinou\";case\"hh\":return a||s?n+(ed(e)?\"hodiny\":\"hod\\xedn\"):n+\"hodinami\";break;case\"d\":return a||s?\"de\\u0148\":\"d\\u0148om\";case\"dd\":return a||s?n+(ed(e)?\"dni\":\"dn\\xed\"):n+\"d\\u0148ami\";break;case\"M\":return a||s?\"mesiac\":\"mesiacom\";case\"MM\":return a||s?n+(ed(e)?\"mesiace\":\"mesiacov\"):n+\"mesiacmi\";break;case\"y\":return a||s?\"rok\":\"rokom\";case\"yy\":return a||s?n+(ed(e)?\"roky\":\"rokov\"):n+\"rokmi\";break}}function td(e,a,t,s){var n=e+\" \";switch(t){case\"s\":return a||s?\"nekaj sekund\":\"nekaj sekundami\";case\"ss\":return n+=1===e?a?\"sekundo\":\"sekundi\":2===e?a||s?\"sekundi\":\"sekundah\":e<5?a||s?\"sekunde\":\"sekundah\":\"sekund\";case\"m\":return a?\"ena minuta\":\"eno minuto\";case\"mm\":return n+=1===e?a?\"minuta\":\"minuto\":2===e?a||s?\"minuti\":\"minutama\":e<5?a||s?\"minute\":\"minutami\":a||s?\"minut\":\"minutami\";case\"h\":return a?\"ena ura\":\"eno uro\";case\"hh\":return n+=1===e?a?\"ura\":\"uro\":2===e?a||s?\"uri\":\"urama\":e<5?a||s?\"ure\":\"urami\":a||s?\"ur\":\"urami\";case\"d\":return a||s?\"en dan\":\"enim dnem\";case\"dd\":return n+=1===e?a||s?\"dan\":\"dnem\":2===e?a||s?\"dni\":\"dnevoma\":a||s?\"dni\":\"dnevi\";case\"M\":return a||s?\"en mesec\":\"enim mesecem\";case\"MM\":return n+=1===e?a||s?\"mesec\":\"mesecem\":2===e?a||s?\"meseca\":\"mesecema\":e<5?a||s?\"mesece\":\"meseci\":a||s?\"mesecev\":\"meseci\";case\"y\":return a||s?\"eno leto\":\"enim letom\";case\"yy\":return n+=1===e?a||s?\"leto\":\"letom\":2===e?a||s?\"leti\":\"letoma\":e<5?a||s?\"leta\":\"leti\":a||s?\"let\":\"leti\"}}l.defineLocale(\"sk\",{months:Qn,monthsShort:Xn,weekdays:\"nede\\u013ea_pondelok_utorok_streda_\\u0161tvrtok_piatok_sobota\".split(\"_\"),weekdaysShort:\"ne_po_ut_st_\\u0161t_pi_so\".split(\"_\"),weekdaysMin:\"ne_po_ut_st_\\u0161t_pi_so\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[dnes o] LT\",nextDay:\"[zajtra o] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v nede\\u013eu o] LT\";case 1:case 2:return\"[v] dddd [o] LT\";case 3:return\"[v stredu o] LT\";case 4:return\"[vo \\u0161tvrtok o] LT\";case 5:return\"[v piatok o] LT\";case 6:return\"[v sobotu o] LT\"}},lastDay:\"[v\\u010dera o] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[minul\\xfa nede\\u013eu o] LT\";case 1:case 2:return\"[minul\\xfd] dddd [o] LT\";case 3:return\"[minul\\xfa stredu o] LT\";case 4:case 5:return\"[minul\\xfd] dddd [o] LT\";case 6:return\"[minul\\xfa sobotu o] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"pred %s\",s:ad,ss:ad,m:ad,mm:ad,h:ad,hh:ad,d:ad,dd:ad,M:ad,MM:ad,y:ad,yy:ad},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),l.defineLocale(\"sl\",{months:\"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.\".split(\"_\"),monthsParseExact:!0,weekdays:\"nedelja_ponedeljek_torek_sreda_\\u010detrtek_petek_sobota\".split(\"_\"),weekdaysShort:\"ned._pon._tor._sre._\\u010det._pet._sob.\".split(\"_\"),weekdaysMin:\"ne_po_to_sr_\\u010de_pe_so\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[danes ob] LT\",nextDay:\"[jutri ob] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v] [nedeljo] [ob] LT\";case 3:return\"[v] [sredo] [ob] LT\";case 6:return\"[v] [soboto] [ob] LT\";case 1:case 2:case 4:case 5:return\"[v] dddd [ob] LT\"}},lastDay:\"[v\\u010deraj ob] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[prej\\u0161njo] [nedeljo] [ob] LT\";case 3:return\"[prej\\u0161njo] [sredo] [ob] LT\";case 6:return\"[prej\\u0161njo] [soboto] [ob] LT\";case 1:case 2:case 4:case 5:return\"[prej\\u0161nji] dddd [ob] LT\"}},sameElse:\"L\"},relativeTime:{future:\"\\u010dez %s\",past:\"pred %s\",s:td,ss:td,m:td,mm:td,h:td,hh:td,d:td,dd:td,M:td,MM:td,y:td,yy:td},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),l.defineLocale(\"sq\",{months:\"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N\\xebntor_Dhjetor\".split(\"_\"),monthsShort:\"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N\\xebn_Dhj\".split(\"_\"),weekdays:\"E Diel_E H\\xebn\\xeb_E Mart\\xeb_E M\\xebrkur\\xeb_E Enjte_E Premte_E Shtun\\xeb\".split(\"_\"),weekdaysShort:\"Die_H\\xebn_Mar_M\\xebr_Enj_Pre_Sht\".split(\"_\"),weekdaysMin:\"D_H_Ma_M\\xeb_E_P_Sh\".split(\"_\"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return\"M\"===e.charAt(0)},meridiem:function(e,a,t){return e<12?\"PD\":\"MD\"},longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Sot n\\xeb] LT\",nextDay:\"[Nes\\xebr n\\xeb] LT\",nextWeek:\"dddd [n\\xeb] LT\",lastDay:\"[Dje n\\xeb] LT\",lastWeek:\"dddd [e kaluar n\\xeb] LT\",sameElse:\"L\"},relativeTime:{future:\"n\\xeb %s\",past:\"%s m\\xeb par\\xeb\",s:\"disa sekonda\",ss:\"%d sekonda\",m:\"nj\\xeb minut\\xeb\",mm:\"%d minuta\",h:\"nj\\xeb or\\xeb\",hh:\"%d or\\xeb\",d:\"nj\\xeb dit\\xeb\",dd:\"%d dit\\xeb\",M:\"nj\\xeb muaj\",MM:\"%d muaj\",y:\"nj\\xeb vit\",yy:\"%d vite\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}});var sd={words:{ss:[\"\\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u0430\",\"\\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u0435\",\"\\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u0438\"],m:[\"\\u0458\\u0435\\u0434\\u0430\\u043d \\u043c\\u0438\\u043d\\u0443\\u0442\",\"\\u0458\\u0435\\u0434\\u043d\\u0435 \\u043c\\u0438\\u043d\\u0443\\u0442\\u0435\"],mm:[\"\\u043c\\u0438\\u043d\\u0443\\u0442\",\"\\u043c\\u0438\\u043d\\u0443\\u0442\\u0435\",\"\\u043c\\u0438\\u043d\\u0443\\u0442\\u0430\"],h:[\"\\u0458\\u0435\\u0434\\u0430\\u043d \\u0441\\u0430\\u0442\",\"\\u0458\\u0435\\u0434\\u043d\\u043e\\u0433 \\u0441\\u0430\\u0442\\u0430\"],hh:[\"\\u0441\\u0430\\u0442\",\"\\u0441\\u0430\\u0442\\u0430\",\"\\u0441\\u0430\\u0442\\u0438\"],dd:[\"\\u0434\\u0430\\u043d\",\"\\u0434\\u0430\\u043d\\u0430\",\"\\u0434\\u0430\\u043d\\u0430\"],MM:[\"\\u043c\\u0435\\u0441\\u0435\\u0446\",\"\\u043c\\u0435\\u0441\\u0435\\u0446\\u0430\",\"\\u043c\\u0435\\u0441\\u0435\\u0446\\u0438\"],yy:[\"\\u0433\\u043e\\u0434\\u0438\\u043d\\u0430\",\"\\u0433\\u043e\\u0434\\u0438\\u043d\\u0435\",\"\\u0433\\u043e\\u0434\\u0438\\u043d\\u0430\"]},correctGrammaticalCase:function(e,a){return 1===e?a[0]:2<=e&&e<=4?a[1]:a[2]},translate:function(e,a,t){var s=sd.words[t];return 1===t.length?a?s[0]:s[1]:e+\" \"+sd.correctGrammaticalCase(e,s)}};l.defineLocale(\"sr-cyrl\",{months:\"\\u0458\\u0430\\u043d\\u0443\\u0430\\u0440_\\u0444\\u0435\\u0431\\u0440\\u0443\\u0430\\u0440_\\u043c\\u0430\\u0440\\u0442_\\u0430\\u043f\\u0440\\u0438\\u043b_\\u043c\\u0430\\u0458_\\u0458\\u0443\\u043d_\\u0458\\u0443\\u043b_\\u0430\\u0432\\u0433\\u0443\\u0441\\u0442_\\u0441\\u0435\\u043f\\u0442\\u0435\\u043c\\u0431\\u0430\\u0440_\\u043e\\u043a\\u0442\\u043e\\u0431\\u0430\\u0440_\\u043d\\u043e\\u0432\\u0435\\u043c\\u0431\\u0430\\u0440_\\u0434\\u0435\\u0446\\u0435\\u043c\\u0431\\u0430\\u0440\".split(\"_\"),monthsShort:\"\\u0458\\u0430\\u043d._\\u0444\\u0435\\u0431._\\u043c\\u0430\\u0440._\\u0430\\u043f\\u0440._\\u043c\\u0430\\u0458_\\u0458\\u0443\\u043d_\\u0458\\u0443\\u043b_\\u0430\\u0432\\u0433._\\u0441\\u0435\\u043f._\\u043e\\u043a\\u0442._\\u043d\\u043e\\u0432._\\u0434\\u0435\\u0446.\".split(\"_\"),monthsParseExact:!0,weekdays:\"\\u043d\\u0435\\u0434\\u0435\\u0459\\u0430_\\u043f\\u043e\\u043d\\u0435\\u0434\\u0435\\u0459\\u0430\\u043a_\\u0443\\u0442\\u043e\\u0440\\u0430\\u043a_\\u0441\\u0440\\u0435\\u0434\\u0430_\\u0447\\u0435\\u0442\\u0432\\u0440\\u0442\\u0430\\u043a_\\u043f\\u0435\\u0442\\u0430\\u043a_\\u0441\\u0443\\u0431\\u043e\\u0442\\u0430\".split(\"_\"),weekdaysShort:\"\\u043d\\u0435\\u0434._\\u043f\\u043e\\u043d._\\u0443\\u0442\\u043e._\\u0441\\u0440\\u0435._\\u0447\\u0435\\u0442._\\u043f\\u0435\\u0442._\\u0441\\u0443\\u0431.\".split(\"_\"),weekdaysMin:\"\\u043d\\u0435_\\u043f\\u043e_\\u0443\\u0442_\\u0441\\u0440_\\u0447\\u0435_\\u043f\\u0435_\\u0441\\u0443\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[\\u0434\\u0430\\u043d\\u0430\\u0441 \\u0443] LT\",nextDay:\"[\\u0441\\u0443\\u0442\\u0440\\u0430 \\u0443] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[\\u0443] [\\u043d\\u0435\\u0434\\u0435\\u0459\\u0443] [\\u0443] LT\";case 3:return\"[\\u0443] [\\u0441\\u0440\\u0435\\u0434\\u0443] [\\u0443] LT\";case 6:return\"[\\u0443] [\\u0441\\u0443\\u0431\\u043e\\u0442\\u0443] [\\u0443] LT\";case 1:case 2:case 4:case 5:return\"[\\u0443] dddd [\\u0443] LT\"}},lastDay:\"[\\u0458\\u0443\\u0447\\u0435 \\u0443] LT\",lastWeek:function(){return[\"[\\u043f\\u0440\\u043e\\u0448\\u043b\\u0435] [\\u043d\\u0435\\u0434\\u0435\\u0459\\u0435] [\\u0443] LT\",\"[\\u043f\\u0440\\u043e\\u0448\\u043b\\u043e\\u0433] [\\u043f\\u043e\\u043d\\u0435\\u0434\\u0435\\u0459\\u043a\\u0430] [\\u0443] LT\",\"[\\u043f\\u0440\\u043e\\u0448\\u043b\\u043e\\u0433] [\\u0443\\u0442\\u043e\\u0440\\u043a\\u0430] [\\u0443] LT\",\"[\\u043f\\u0440\\u043e\\u0448\\u043b\\u0435] [\\u0441\\u0440\\u0435\\u0434\\u0435] [\\u0443] LT\",\"[\\u043f\\u0440\\u043e\\u0448\\u043b\\u043e\\u0433] [\\u0447\\u0435\\u0442\\u0432\\u0440\\u0442\\u043a\\u0430] [\\u0443] LT\",\"[\\u043f\\u0440\\u043e\\u0448\\u043b\\u043e\\u0433] [\\u043f\\u0435\\u0442\\u043a\\u0430] [\\u0443] LT\",\"[\\u043f\\u0440\\u043e\\u0448\\u043b\\u0435] [\\u0441\\u0443\\u0431\\u043e\\u0442\\u0435] [\\u0443] LT\"][this.day()]},sameElse:\"L\"},relativeTime:{future:\"\\u0437\\u0430 %s\",past:\"\\u043f\\u0440\\u0435 %s\",s:\"\\u043d\\u0435\\u043a\\u043e\\u043b\\u0438\\u043a\\u043e \\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u0438\",ss:sd.translate,m:sd.translate,mm:sd.translate,h:sd.translate,hh:sd.translate,d:\"\\u0434\\u0430\\u043d\",dd:sd.translate,M:\"\\u043c\\u0435\\u0441\\u0435\\u0446\",MM:sd.translate,y:\"\\u0433\\u043e\\u0434\\u0438\\u043d\\u0443\",yy:sd.translate},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}});var nd={words:{ss:[\"sekunda\",\"sekunde\",\"sekundi\"],m:[\"jedan minut\",\"jedne minute\"],mm:[\"minut\",\"minute\",\"minuta\"],h:[\"jedan sat\",\"jednog sata\"],hh:[\"sat\",\"sata\",\"sati\"],dd:[\"dan\",\"dana\",\"dana\"],MM:[\"mesec\",\"meseca\",\"meseci\"],yy:[\"godina\",\"godine\",\"godina\"]},correctGrammaticalCase:function(e,a){return 1===e?a[0]:2<=e&&e<=4?a[1]:a[2]},translate:function(e,a,t){var s=nd.words[t];return 1===t.length?a?s[0]:s[1]:e+\" \"+nd.correctGrammaticalCase(e,s)}};l.defineLocale(\"sr\",{months:\"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar\".split(\"_\"),monthsShort:\"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.\".split(\"_\"),monthsParseExact:!0,weekdays:\"nedelja_ponedeljak_utorak_sreda_\\u010detvrtak_petak_subota\".split(\"_\"),weekdaysShort:\"ned._pon._uto._sre._\\u010det._pet._sub.\".split(\"_\"),weekdaysMin:\"ne_po_ut_sr_\\u010de_pe_su\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedelju] [u] LT\";case 3:return\"[u] [sredu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[ju\\u010de u] LT\",lastWeek:function(){return[\"[pro\\u0161le] [nedelje] [u] LT\",\"[pro\\u0161log] [ponedeljka] [u] LT\",\"[pro\\u0161log] [utorka] [u] LT\",\"[pro\\u0161le] [srede] [u] LT\",\"[pro\\u0161log] [\\u010detvrtka] [u] LT\",\"[pro\\u0161log] [petka] [u] LT\",\"[pro\\u0161le] [subote] [u] LT\"][this.day()]},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"pre %s\",s:\"nekoliko sekundi\",ss:nd.translate,m:nd.translate,mm:nd.translate,h:nd.translate,hh:nd.translate,d:\"dan\",dd:nd.translate,M:\"mesec\",MM:nd.translate,y:\"godinu\",yy:nd.translate},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),l.defineLocale(\"ss\",{months:\"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\"_\"),monthsShort:\"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo\".split(\"_\"),weekdays:\"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo\".split(\"_\"),weekdaysShort:\"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg\".split(\"_\"),weekdaysMin:\"Li_Us_Lb_Lt_Ls_Lh_Ug\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendar:{sameDay:\"[Namuhla nga] LT\",nextDay:\"[Kusasa nga] LT\",nextWeek:\"dddd [nga] LT\",lastDay:\"[Itolo nga] LT\",lastWeek:\"dddd [leliphelile] [nga] LT\",sameElse:\"L\"},relativeTime:{future:\"nga %s\",past:\"wenteka nga %s\",s:\"emizuzwana lomcane\",ss:\"%d mzuzwana\",m:\"umzuzu\",mm:\"%d emizuzu\",h:\"lihora\",hh:\"%d emahora\",d:\"lilanga\",dd:\"%d emalanga\",M:\"inyanga\",MM:\"%d tinyanga\",y:\"umnyaka\",yy:\"%d iminyaka\"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(e,a,t){return e<11?\"ekuseni\":e<15?\"emini\":e<19?\"entsambama\":\"ebusuku\"},meridiemHour:function(e,a){return 12===e&&(e=0),\"ekuseni\"===a?e:\"emini\"===a?11<=e?e:e+12:\"entsambama\"===a||\"ebusuku\"===a?0===e?0:e+12:void 0},dayOfMonthOrdinalParse:/\\d{1,2}/,ordinal:\"%d\",week:{dow:1,doy:4}}),l.defineLocale(\"sv\",{months:\"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"s\\xf6ndag_m\\xe5ndag_tisdag_onsdag_torsdag_fredag_l\\xf6rdag\".split(\"_\"),weekdaysShort:\"s\\xf6n_m\\xe5n_tis_ons_tor_fre_l\\xf6r\".split(\"_\"),weekdaysMin:\"s\\xf6_m\\xe5_ti_on_to_fr_l\\xf6\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [kl.] HH:mm\",LLLL:\"dddd D MMMM YYYY [kl.] HH:mm\",lll:\"D MMM YYYY HH:mm\",llll:\"ddd D MMM YYYY HH:mm\"},calendar:{sameDay:\"[Idag] LT\",nextDay:\"[Imorgon] LT\",lastDay:\"[Ig\\xe5r] LT\",nextWeek:\"[P\\xe5] dddd LT\",lastWeek:\"[I] dddd[s] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"f\\xf6r %s sedan\",s:\"n\\xe5gra sekunder\",ss:\"%d sekunder\",m:\"en minut\",mm:\"%d minuter\",h:\"en timme\",hh:\"%d timmar\",d:\"en dag\",dd:\"%d dagar\",M:\"en m\\xe5nad\",MM:\"%d m\\xe5nader\",y:\"ett \\xe5r\",yy:\"%d \\xe5r\"},dayOfMonthOrdinalParse:/\\d{1,2}(e|a)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?\"e\":1===a?\"a\":2===a?\"a\":\"e\")},week:{dow:1,doy:4}}),l.defineLocale(\"sw\",{months:\"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba\".split(\"_\"),monthsShort:\"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des\".split(\"_\"),weekdays:\"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi\".split(\"_\"),weekdaysShort:\"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos\".split(\"_\"),weekdaysMin:\"J2_J3_J4_J5_Al_Ij_J1\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[leo saa] LT\",nextDay:\"[kesho saa] LT\",nextWeek:\"[wiki ijayo] dddd [saat] LT\",lastDay:\"[jana] LT\",lastWeek:\"[wiki iliyopita] dddd [saat] LT\",sameElse:\"L\"},relativeTime:{future:\"%s baadaye\",past:\"tokea %s\",s:\"hivi punde\",ss:\"sekunde %d\",m:\"dakika moja\",mm:\"dakika %d\",h:\"saa limoja\",hh:\"masaa %d\",d:\"siku moja\",dd:\"masiku %d\",M:\"mwezi mmoja\",MM:\"miezi %d\",y:\"mwaka mmoja\",yy:\"miaka %d\"},week:{dow:1,doy:7}});var dd={1:\"\\u0be7\",2:\"\\u0be8\",3:\"\\u0be9\",4:\"\\u0bea\",5:\"\\u0beb\",6:\"\\u0bec\",7:\"\\u0bed\",8:\"\\u0bee\",9:\"\\u0bef\",0:\"\\u0be6\"},rd={\"\\u0be7\":\"1\",\"\\u0be8\":\"2\",\"\\u0be9\":\"3\",\"\\u0bea\":\"4\",\"\\u0beb\":\"5\",\"\\u0bec\":\"6\",\"\\u0bed\":\"7\",\"\\u0bee\":\"8\",\"\\u0bef\":\"9\",\"\\u0be6\":\"0\"};l.defineLocale(\"ta\",{months:\"\\u0b9c\\u0ba9\\u0bb5\\u0bb0\\u0bbf_\\u0baa\\u0bbf\\u0baa\\u0bcd\\u0bb0\\u0bb5\\u0bb0\\u0bbf_\\u0bae\\u0bbe\\u0bb0\\u0bcd\\u0b9a\\u0bcd_\\u0b8f\\u0baa\\u0bcd\\u0bb0\\u0bb2\\u0bcd_\\u0bae\\u0bc7_\\u0b9c\\u0bc2\\u0ba9\\u0bcd_\\u0b9c\\u0bc2\\u0bb2\\u0bc8_\\u0b86\\u0b95\\u0bb8\\u0bcd\\u0b9f\\u0bcd_\\u0b9a\\u0bc6\\u0baa\\u0bcd\\u0b9f\\u0bc6\\u0bae\\u0bcd\\u0baa\\u0bb0\\u0bcd_\\u0b85\\u0b95\\u0bcd\\u0b9f\\u0bc7\\u0bbe\\u0baa\\u0bb0\\u0bcd_\\u0ba8\\u0bb5\\u0bae\\u0bcd\\u0baa\\u0bb0\\u0bcd_\\u0b9f\\u0bbf\\u0b9a\\u0bae\\u0bcd\\u0baa\\u0bb0\\u0bcd\".split(\"_\"),monthsShort:\"\\u0b9c\\u0ba9\\u0bb5\\u0bb0\\u0bbf_\\u0baa\\u0bbf\\u0baa\\u0bcd\\u0bb0\\u0bb5\\u0bb0\\u0bbf_\\u0bae\\u0bbe\\u0bb0\\u0bcd\\u0b9a\\u0bcd_\\u0b8f\\u0baa\\u0bcd\\u0bb0\\u0bb2\\u0bcd_\\u0bae\\u0bc7_\\u0b9c\\u0bc2\\u0ba9\\u0bcd_\\u0b9c\\u0bc2\\u0bb2\\u0bc8_\\u0b86\\u0b95\\u0bb8\\u0bcd\\u0b9f\\u0bcd_\\u0b9a\\u0bc6\\u0baa\\u0bcd\\u0b9f\\u0bc6\\u0bae\\u0bcd\\u0baa\\u0bb0\\u0bcd_\\u0b85\\u0b95\\u0bcd\\u0b9f\\u0bc7\\u0bbe\\u0baa\\u0bb0\\u0bcd_\\u0ba8\\u0bb5\\u0bae\\u0bcd\\u0baa\\u0bb0\\u0bcd_\\u0b9f\\u0bbf\\u0b9a\\u0bae\\u0bcd\\u0baa\\u0bb0\\u0bcd\".split(\"_\"),weekdays:\"\\u0b9e\\u0bbe\\u0baf\\u0bbf\\u0bb1\\u0bcd\\u0bb1\\u0bc1\\u0b95\\u0bcd\\u0b95\\u0bbf\\u0bb4\\u0bae\\u0bc8_\\u0ba4\\u0bbf\\u0b99\\u0bcd\\u0b95\\u0b9f\\u0bcd\\u0b95\\u0bbf\\u0bb4\\u0bae\\u0bc8_\\u0b9a\\u0bc6\\u0bb5\\u0bcd\\u0bb5\\u0bbe\\u0baf\\u0bcd\\u0b95\\u0bbf\\u0bb4\\u0bae\\u0bc8_\\u0baa\\u0bc1\\u0ba4\\u0ba9\\u0bcd\\u0b95\\u0bbf\\u0bb4\\u0bae\\u0bc8_\\u0bb5\\u0bbf\\u0baf\\u0bbe\\u0bb4\\u0b95\\u0bcd\\u0b95\\u0bbf\\u0bb4\\u0bae\\u0bc8_\\u0bb5\\u0bc6\\u0bb3\\u0bcd\\u0bb3\\u0bbf\\u0b95\\u0bcd\\u0b95\\u0bbf\\u0bb4\\u0bae\\u0bc8_\\u0b9a\\u0ba9\\u0bbf\\u0b95\\u0bcd\\u0b95\\u0bbf\\u0bb4\\u0bae\\u0bc8\".split(\"_\"),weekdaysShort:\"\\u0b9e\\u0bbe\\u0baf\\u0bbf\\u0bb1\\u0bc1_\\u0ba4\\u0bbf\\u0b99\\u0bcd\\u0b95\\u0bb3\\u0bcd_\\u0b9a\\u0bc6\\u0bb5\\u0bcd\\u0bb5\\u0bbe\\u0baf\\u0bcd_\\u0baa\\u0bc1\\u0ba4\\u0ba9\\u0bcd_\\u0bb5\\u0bbf\\u0baf\\u0bbe\\u0bb4\\u0ba9\\u0bcd_\\u0bb5\\u0bc6\\u0bb3\\u0bcd\\u0bb3\\u0bbf_\\u0b9a\\u0ba9\\u0bbf\".split(\"_\"),weekdaysMin:\"\\u0b9e\\u0bbe_\\u0ba4\\u0bbf_\\u0b9a\\u0bc6_\\u0baa\\u0bc1_\\u0bb5\\u0bbf_\\u0bb5\\u0bc6_\\u0b9a\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, HH:mm\",LLLL:\"dddd, D MMMM YYYY, HH:mm\"},calendar:{sameDay:\"[\\u0b87\\u0ba9\\u0bcd\\u0bb1\\u0bc1] LT\",nextDay:\"[\\u0ba8\\u0bbe\\u0bb3\\u0bc8] LT\",nextWeek:\"dddd, LT\",lastDay:\"[\\u0ba8\\u0bc7\\u0bb1\\u0bcd\\u0bb1\\u0bc1] LT\",lastWeek:\"[\\u0b95\\u0b9f\\u0ba8\\u0bcd\\u0ba4 \\u0bb5\\u0bbe\\u0bb0\\u0bae\\u0bcd] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s \\u0b87\\u0bb2\\u0bcd\",past:\"%s \\u0bae\\u0bc1\\u0ba9\\u0bcd\",s:\"\\u0b92\\u0bb0\\u0bc1 \\u0b9a\\u0bbf\\u0bb2 \\u0bb5\\u0bbf\\u0ba8\\u0bbe\\u0b9f\\u0bbf\\u0b95\\u0bb3\\u0bcd\",ss:\"%d \\u0bb5\\u0bbf\\u0ba8\\u0bbe\\u0b9f\\u0bbf\\u0b95\\u0bb3\\u0bcd\",m:\"\\u0b92\\u0bb0\\u0bc1 \\u0ba8\\u0bbf\\u0bae\\u0bbf\\u0b9f\\u0bae\\u0bcd\",mm:\"%d \\u0ba8\\u0bbf\\u0bae\\u0bbf\\u0b9f\\u0b99\\u0bcd\\u0b95\\u0bb3\\u0bcd\",h:\"\\u0b92\\u0bb0\\u0bc1 \\u0bae\\u0ba3\\u0bbf \\u0ba8\\u0bc7\\u0bb0\\u0bae\\u0bcd\",hh:\"%d \\u0bae\\u0ba3\\u0bbf \\u0ba8\\u0bc7\\u0bb0\\u0bae\\u0bcd\",d:\"\\u0b92\\u0bb0\\u0bc1 \\u0ba8\\u0bbe\\u0bb3\\u0bcd\",dd:\"%d \\u0ba8\\u0bbe\\u0b9f\\u0bcd\\u0b95\\u0bb3\\u0bcd\",M:\"\\u0b92\\u0bb0\\u0bc1 \\u0bae\\u0bbe\\u0ba4\\u0bae\\u0bcd\",MM:\"%d \\u0bae\\u0bbe\\u0ba4\\u0b99\\u0bcd\\u0b95\\u0bb3\\u0bcd\",y:\"\\u0b92\\u0bb0\\u0bc1 \\u0bb5\\u0bb0\\u0bc1\\u0b9f\\u0bae\\u0bcd\",yy:\"%d \\u0b86\\u0ba3\\u0bcd\\u0b9f\\u0bc1\\u0b95\\u0bb3\\u0bcd\"},dayOfMonthOrdinalParse:/\\d{1,2}\\u0bb5\\u0ba4\\u0bc1/,ordinal:function(e){return e+\"\\u0bb5\\u0ba4\\u0bc1\"},preparse:function(e){return e.replace(/[\\u0be7\\u0be8\\u0be9\\u0bea\\u0beb\\u0bec\\u0bed\\u0bee\\u0bef\\u0be6]/g,function(e){return rd[e]})},postformat:function(e){return e.replace(/\\d/g,function(e){return dd[e]})},meridiemParse:/\\u0baf\\u0bbe\\u0bae\\u0bae\\u0bcd|\\u0bb5\\u0bc8\\u0b95\\u0bb1\\u0bc8|\\u0b95\\u0bbe\\u0bb2\\u0bc8|\\u0ba8\\u0ba3\\u0bcd\\u0baa\\u0b95\\u0bb2\\u0bcd|\\u0b8e\\u0bb1\\u0bcd\\u0baa\\u0bbe\\u0b9f\\u0bc1|\\u0bae\\u0bbe\\u0bb2\\u0bc8/,meridiem:function(e,a,t){return e<2?\" \\u0baf\\u0bbe\\u0bae\\u0bae\\u0bcd\":e<6?\" \\u0bb5\\u0bc8\\u0b95\\u0bb1\\u0bc8\":e<10?\" \\u0b95\\u0bbe\\u0bb2\\u0bc8\":e<14?\" \\u0ba8\\u0ba3\\u0bcd\\u0baa\\u0b95\\u0bb2\\u0bcd\":e<18?\" \\u0b8e\\u0bb1\\u0bcd\\u0baa\\u0bbe\\u0b9f\\u0bc1\":e<22?\" \\u0bae\\u0bbe\\u0bb2\\u0bc8\":\" \\u0baf\\u0bbe\\u0bae\\u0bae\\u0bcd\"},meridiemHour:function(e,a){return 12===e&&(e=0),\"\\u0baf\\u0bbe\\u0bae\\u0bae\\u0bcd\"===a?e<2?e:e+12:\"\\u0bb5\\u0bc8\\u0b95\\u0bb1\\u0bc8\"===a||\"\\u0b95\\u0bbe\\u0bb2\\u0bc8\"===a?e:\"\\u0ba8\\u0ba3\\u0bcd\\u0baa\\u0b95\\u0bb2\\u0bcd\"===a&&10<=e?e:e+12},week:{dow:0,doy:6}}),l.defineLocale(\"te\",{months:\"\\u0c1c\\u0c28\\u0c35\\u0c30\\u0c3f_\\u0c2b\\u0c3f\\u0c2c\\u0c4d\\u0c30\\u0c35\\u0c30\\u0c3f_\\u0c2e\\u0c3e\\u0c30\\u0c4d\\u0c1a\\u0c3f_\\u0c0f\\u0c2a\\u0c4d\\u0c30\\u0c3f\\u0c32\\u0c4d_\\u0c2e\\u0c47_\\u0c1c\\u0c42\\u0c28\\u0c4d_\\u0c1c\\u0c41\\u0c32\\u0c48_\\u0c06\\u0c17\\u0c38\\u0c4d\\u0c1f\\u0c41_\\u0c38\\u0c46\\u0c2a\\u0c4d\\u0c1f\\u0c46\\u0c02\\u0c2c\\u0c30\\u0c4d_\\u0c05\\u0c15\\u0c4d\\u0c1f\\u0c4b\\u0c2c\\u0c30\\u0c4d_\\u0c28\\u0c35\\u0c02\\u0c2c\\u0c30\\u0c4d_\\u0c21\\u0c3f\\u0c38\\u0c46\\u0c02\\u0c2c\\u0c30\\u0c4d\".split(\"_\"),monthsShort:\"\\u0c1c\\u0c28._\\u0c2b\\u0c3f\\u0c2c\\u0c4d\\u0c30._\\u0c2e\\u0c3e\\u0c30\\u0c4d\\u0c1a\\u0c3f_\\u0c0f\\u0c2a\\u0c4d\\u0c30\\u0c3f._\\u0c2e\\u0c47_\\u0c1c\\u0c42\\u0c28\\u0c4d_\\u0c1c\\u0c41\\u0c32\\u0c48_\\u0c06\\u0c17._\\u0c38\\u0c46\\u0c2a\\u0c4d._\\u0c05\\u0c15\\u0c4d\\u0c1f\\u0c4b._\\u0c28\\u0c35._\\u0c21\\u0c3f\\u0c38\\u0c46.\".split(\"_\"),monthsParseExact:!0,weekdays:\"\\u0c06\\u0c26\\u0c3f\\u0c35\\u0c3e\\u0c30\\u0c02_\\u0c38\\u0c4b\\u0c2e\\u0c35\\u0c3e\\u0c30\\u0c02_\\u0c2e\\u0c02\\u0c17\\u0c33\\u0c35\\u0c3e\\u0c30\\u0c02_\\u0c2c\\u0c41\\u0c27\\u0c35\\u0c3e\\u0c30\\u0c02_\\u0c17\\u0c41\\u0c30\\u0c41\\u0c35\\u0c3e\\u0c30\\u0c02_\\u0c36\\u0c41\\u0c15\\u0c4d\\u0c30\\u0c35\\u0c3e\\u0c30\\u0c02_\\u0c36\\u0c28\\u0c3f\\u0c35\\u0c3e\\u0c30\\u0c02\".split(\"_\"),weekdaysShort:\"\\u0c06\\u0c26\\u0c3f_\\u0c38\\u0c4b\\u0c2e_\\u0c2e\\u0c02\\u0c17\\u0c33_\\u0c2c\\u0c41\\u0c27_\\u0c17\\u0c41\\u0c30\\u0c41_\\u0c36\\u0c41\\u0c15\\u0c4d\\u0c30_\\u0c36\\u0c28\\u0c3f\".split(\"_\"),weekdaysMin:\"\\u0c06_\\u0c38\\u0c4b_\\u0c2e\\u0c02_\\u0c2c\\u0c41_\\u0c17\\u0c41_\\u0c36\\u0c41_\\u0c36\".split(\"_\"),longDateFormat:{LT:\"A h:mm\",LTS:\"A h:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm\",LLLL:\"dddd, D MMMM YYYY, A h:mm\"},calendar:{sameDay:\"[\\u0c28\\u0c47\\u0c21\\u0c41] LT\",nextDay:\"[\\u0c30\\u0c47\\u0c2a\\u0c41] LT\",nextWeek:\"dddd, LT\",lastDay:\"[\\u0c28\\u0c3f\\u0c28\\u0c4d\\u0c28] LT\",lastWeek:\"[\\u0c17\\u0c24] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s \\u0c32\\u0c4b\",past:\"%s \\u0c15\\u0c4d\\u0c30\\u0c3f\\u0c24\\u0c02\",s:\"\\u0c15\\u0c4a\\u0c28\\u0c4d\\u0c28\\u0c3f \\u0c15\\u0c4d\\u0c37\\u0c23\\u0c3e\\u0c32\\u0c41\",ss:\"%d \\u0c38\\u0c46\\u0c15\\u0c28\\u0c4d\\u0c32\\u0c41\",m:\"\\u0c12\\u0c15 \\u0c28\\u0c3f\\u0c2e\\u0c3f\\u0c37\\u0c02\",mm:\"%d \\u0c28\\u0c3f\\u0c2e\\u0c3f\\u0c37\\u0c3e\\u0c32\\u0c41\",h:\"\\u0c12\\u0c15 \\u0c17\\u0c02\\u0c1f\",hh:\"%d \\u0c17\\u0c02\\u0c1f\\u0c32\\u0c41\",d:\"\\u0c12\\u0c15 \\u0c30\\u0c4b\\u0c1c\\u0c41\",dd:\"%d \\u0c30\\u0c4b\\u0c1c\\u0c41\\u0c32\\u0c41\",M:\"\\u0c12\\u0c15 \\u0c28\\u0c46\\u0c32\",MM:\"%d \\u0c28\\u0c46\\u0c32\\u0c32\\u0c41\",y:\"\\u0c12\\u0c15 \\u0c38\\u0c02\\u0c35\\u0c24\\u0c4d\\u0c38\\u0c30\\u0c02\",yy:\"%d \\u0c38\\u0c02\\u0c35\\u0c24\\u0c4d\\u0c38\\u0c30\\u0c3e\\u0c32\\u0c41\"},dayOfMonthOrdinalParse:/\\d{1,2}\\u0c35/,ordinal:\"%d\\u0c35\",meridiemParse:/\\u0c30\\u0c3e\\u0c24\\u0c4d\\u0c30\\u0c3f|\\u0c09\\u0c26\\u0c2f\\u0c02|\\u0c2e\\u0c27\\u0c4d\\u0c2f\\u0c3e\\u0c39\\u0c4d\\u0c28\\u0c02|\\u0c38\\u0c3e\\u0c2f\\u0c02\\u0c24\\u0c4d\\u0c30\\u0c02/,meridiemHour:function(e,a){return 12===e&&(e=0),\"\\u0c30\\u0c3e\\u0c24\\u0c4d\\u0c30\\u0c3f\"===a?e<4?e:e+12:\"\\u0c09\\u0c26\\u0c2f\\u0c02\"===a?e:\"\\u0c2e\\u0c27\\u0c4d\\u0c2f\\u0c3e\\u0c39\\u0c4d\\u0c28\\u0c02\"===a?10<=e?e:e+12:\"\\u0c38\\u0c3e\\u0c2f\\u0c02\\u0c24\\u0c4d\\u0c30\\u0c02\"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?\"\\u0c30\\u0c3e\\u0c24\\u0c4d\\u0c30\\u0c3f\":e<10?\"\\u0c09\\u0c26\\u0c2f\\u0c02\":e<17?\"\\u0c2e\\u0c27\\u0c4d\\u0c2f\\u0c3e\\u0c39\\u0c4d\\u0c28\\u0c02\":e<20?\"\\u0c38\\u0c3e\\u0c2f\\u0c02\\u0c24\\u0c4d\\u0c30\\u0c02\":\"\\u0c30\\u0c3e\\u0c24\\u0c4d\\u0c30\\u0c3f\"},week:{dow:0,doy:6}}),l.defineLocale(\"tet\",{months:\"Janeiru_Fevereiru_Marsu_Abril_Maiu_Ju\\xf1u_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru\".split(\"_\"),monthsShort:\"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez\".split(\"_\"),weekdays:\"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu\".split(\"_\"),weekdaysShort:\"Dom_Seg_Ters_Kua_Kint_Sest_Sab\".split(\"_\"),weekdaysMin:\"Do_Seg_Te_Ku_Ki_Ses_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Ohin iha] LT\",nextDay:\"[Aban iha] LT\",nextWeek:\"dddd [iha] LT\",lastDay:\"[Horiseik iha] LT\",lastWeek:\"dddd [semana kotuk] [iha] LT\",sameElse:\"L\"},relativeTime:{future:\"iha %s\",past:\"%s liuba\",s:\"minutu balun\",ss:\"minutu %d\",m:\"minutu ida\",mm:\"minutu %d\",h:\"oras ida\",hh:\"oras %d\",d:\"loron ida\",dd:\"loron %d\",M:\"fulan ida\",MM:\"fulan %d\",y:\"tinan ida\",yy:\"tinan %d\"},dayOfMonthOrdinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?\"th\":1===a?\"st\":2===a?\"nd\":3===a?\"rd\":\"th\")},week:{dow:1,doy:4}});var _d={0:\"-\\u0443\\u043c\",1:\"-\\u0443\\u043c\",2:\"-\\u044e\\u043c\",3:\"-\\u044e\\u043c\",4:\"-\\u0443\\u043c\",5:\"-\\u0443\\u043c\",6:\"-\\u0443\\u043c\",7:\"-\\u0443\\u043c\",8:\"-\\u0443\\u043c\",9:\"-\\u0443\\u043c\",10:\"-\\u0443\\u043c\",12:\"-\\u0443\\u043c\",13:\"-\\u0443\\u043c\",20:\"-\\u0443\\u043c\",30:\"-\\u044e\\u043c\",40:\"-\\u0443\\u043c\",50:\"-\\u0443\\u043c\",60:\"-\\u0443\\u043c\",70:\"-\\u0443\\u043c\",80:\"-\\u0443\\u043c\",90:\"-\\u0443\\u043c\",100:\"-\\u0443\\u043c\"};l.defineLocale(\"tg\",{months:\"\\u044f\\u043d\\u0432\\u0430\\u0440_\\u0444\\u0435\\u0432\\u0440\\u0430\\u043b_\\u043c\\u0430\\u0440\\u0442_\\u0430\\u043f\\u0440\\u0435\\u043b_\\u043c\\u0430\\u0439_\\u0438\\u044e\\u043d_\\u0438\\u044e\\u043b_\\u0430\\u0432\\u0433\\u0443\\u0441\\u0442_\\u0441\\u0435\\u043d\\u0442\\u044f\\u0431\\u0440_\\u043e\\u043a\\u0442\\u044f\\u0431\\u0440_\\u043d\\u043e\\u044f\\u0431\\u0440_\\u0434\\u0435\\u043a\\u0430\\u0431\\u0440\".split(\"_\"),monthsShort:\"\\u044f\\u043d\\u0432_\\u0444\\u0435\\u0432_\\u043c\\u0430\\u0440_\\u0430\\u043f\\u0440_\\u043c\\u0430\\u0439_\\u0438\\u044e\\u043d_\\u0438\\u044e\\u043b_\\u0430\\u0432\\u0433_\\u0441\\u0435\\u043d_\\u043e\\u043a\\u0442_\\u043d\\u043e\\u044f_\\u0434\\u0435\\u043a\".split(\"_\"),weekdays:\"\\u044f\\u043a\\u0448\\u0430\\u043d\\u0431\\u0435_\\u0434\\u0443\\u0448\\u0430\\u043d\\u0431\\u0435_\\u0441\\u0435\\u0448\\u0430\\u043d\\u0431\\u0435_\\u0447\\u043e\\u0440\\u0448\\u0430\\u043d\\u0431\\u0435_\\u043f\\u0430\\u043d\\u04b7\\u0448\\u0430\\u043d\\u0431\\u0435_\\u04b7\\u0443\\u043c\\u044a\\u0430_\\u0448\\u0430\\u043d\\u0431\\u0435\".split(\"_\"),weekdaysShort:\"\\u044f\\u0448\\u0431_\\u0434\\u0448\\u0431_\\u0441\\u0448\\u0431_\\u0447\\u0448\\u0431_\\u043f\\u0448\\u0431_\\u04b7\\u0443\\u043c_\\u0448\\u043d\\u0431\".split(\"_\"),weekdaysMin:\"\\u044f\\u0448_\\u0434\\u0448_\\u0441\\u0448_\\u0447\\u0448_\\u043f\\u0448_\\u04b7\\u043c_\\u0448\\u0431\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[\\u0418\\u043c\\u0440\\u04ef\\u0437 \\u0441\\u043e\\u0430\\u0442\\u0438] LT\",nextDay:\"[\\u041f\\u0430\\u0433\\u043e\\u04b3 \\u0441\\u043e\\u0430\\u0442\\u0438] LT\",lastDay:\"[\\u0414\\u0438\\u0440\\u04ef\\u0437 \\u0441\\u043e\\u0430\\u0442\\u0438] LT\",nextWeek:\"dddd[\\u0438] [\\u04b3\\u0430\\u0444\\u0442\\u0430\\u0438 \\u043e\\u044f\\u043d\\u0434\\u0430 \\u0441\\u043e\\u0430\\u0442\\u0438] LT\",lastWeek:\"dddd[\\u0438] [\\u04b3\\u0430\\u0444\\u0442\\u0430\\u0438 \\u0433\\u0443\\u0437\\u0430\\u0448\\u0442\\u0430 \\u0441\\u043e\\u0430\\u0442\\u0438] LT\",sameElse:\"L\"},relativeTime:{future:\"\\u0431\\u0430\\u044a\\u0434\\u0438 %s\",past:\"%s \\u043f\\u0435\\u0448\",s:\"\\u044f\\u043a\\u0447\\u0430\\u043d\\u0434 \\u0441\\u043e\\u043d\\u0438\\u044f\",m:\"\\u044f\\u043a \\u0434\\u0430\\u049b\\u0438\\u049b\\u0430\",mm:\"%d \\u0434\\u0430\\u049b\\u0438\\u049b\\u0430\",h:\"\\u044f\\u043a \\u0441\\u043e\\u0430\\u0442\",hh:\"%d \\u0441\\u043e\\u0430\\u0442\",d:\"\\u044f\\u043a \\u0440\\u04ef\\u0437\",dd:\"%d \\u0440\\u04ef\\u0437\",M:\"\\u044f\\u043a \\u043c\\u043e\\u04b3\",MM:\"%d \\u043c\\u043e\\u04b3\",y:\"\\u044f\\u043a \\u0441\\u043e\\u043b\",yy:\"%d \\u0441\\u043e\\u043b\"},meridiemParse:/\\u0448\\u0430\\u0431|\\u0441\\u0443\\u0431\\u04b3|\\u0440\\u04ef\\u0437|\\u0431\\u0435\\u0433\\u043e\\u04b3/,meridiemHour:function(e,a){return 12===e&&(e=0),\"\\u0448\\u0430\\u0431\"===a?e<4?e:e+12:\"\\u0441\\u0443\\u0431\\u04b3\"===a?e:\"\\u0440\\u04ef\\u0437\"===a?11<=e?e:e+12:\"\\u0431\\u0435\\u0433\\u043e\\u04b3\"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?\"\\u0448\\u0430\\u0431\":e<11?\"\\u0441\\u0443\\u0431\\u04b3\":e<16?\"\\u0440\\u04ef\\u0437\":e<19?\"\\u0431\\u0435\\u0433\\u043e\\u04b3\":\"\\u0448\\u0430\\u0431\"},dayOfMonthOrdinalParse:/\\d{1,2}-(\\u0443\\u043c|\\u044e\\u043c)/,ordinal:function(e){return e+(_d[e]||_d[e%10]||_d[100<=e?100:null])},week:{dow:1,doy:7}}),l.defineLocale(\"th\",{months:\"\\u0e21\\u0e01\\u0e23\\u0e32\\u0e04\\u0e21_\\u0e01\\u0e38\\u0e21\\u0e20\\u0e32\\u0e1e\\u0e31\\u0e19\\u0e18\\u0e4c_\\u0e21\\u0e35\\u0e19\\u0e32\\u0e04\\u0e21_\\u0e40\\u0e21\\u0e29\\u0e32\\u0e22\\u0e19_\\u0e1e\\u0e24\\u0e29\\u0e20\\u0e32\\u0e04\\u0e21_\\u0e21\\u0e34\\u0e16\\u0e38\\u0e19\\u0e32\\u0e22\\u0e19_\\u0e01\\u0e23\\u0e01\\u0e0e\\u0e32\\u0e04\\u0e21_\\u0e2a\\u0e34\\u0e07\\u0e2b\\u0e32\\u0e04\\u0e21_\\u0e01\\u0e31\\u0e19\\u0e22\\u0e32\\u0e22\\u0e19_\\u0e15\\u0e38\\u0e25\\u0e32\\u0e04\\u0e21_\\u0e1e\\u0e24\\u0e28\\u0e08\\u0e34\\u0e01\\u0e32\\u0e22\\u0e19_\\u0e18\\u0e31\\u0e19\\u0e27\\u0e32\\u0e04\\u0e21\".split(\"_\"),monthsShort:\"\\u0e21.\\u0e04._\\u0e01.\\u0e1e._\\u0e21\\u0e35.\\u0e04._\\u0e40\\u0e21.\\u0e22._\\u0e1e.\\u0e04._\\u0e21\\u0e34.\\u0e22._\\u0e01.\\u0e04._\\u0e2a.\\u0e04._\\u0e01.\\u0e22._\\u0e15.\\u0e04._\\u0e1e.\\u0e22._\\u0e18.\\u0e04.\".split(\"_\"),monthsParseExact:!0,weekdays:\"\\u0e2d\\u0e32\\u0e17\\u0e34\\u0e15\\u0e22\\u0e4c_\\u0e08\\u0e31\\u0e19\\u0e17\\u0e23\\u0e4c_\\u0e2d\\u0e31\\u0e07\\u0e04\\u0e32\\u0e23_\\u0e1e\\u0e38\\u0e18_\\u0e1e\\u0e24\\u0e2b\\u0e31\\u0e2a\\u0e1a\\u0e14\\u0e35_\\u0e28\\u0e38\\u0e01\\u0e23\\u0e4c_\\u0e40\\u0e2a\\u0e32\\u0e23\\u0e4c\".split(\"_\"),weekdaysShort:\"\\u0e2d\\u0e32\\u0e17\\u0e34\\u0e15\\u0e22\\u0e4c_\\u0e08\\u0e31\\u0e19\\u0e17\\u0e23\\u0e4c_\\u0e2d\\u0e31\\u0e07\\u0e04\\u0e32\\u0e23_\\u0e1e\\u0e38\\u0e18_\\u0e1e\\u0e24\\u0e2b\\u0e31\\u0e2a_\\u0e28\\u0e38\\u0e01\\u0e23\\u0e4c_\\u0e40\\u0e2a\\u0e32\\u0e23\\u0e4c\".split(\"_\"),weekdaysMin:\"\\u0e2d\\u0e32._\\u0e08._\\u0e2d._\\u0e1e._\\u0e1e\\u0e24._\\u0e28._\\u0e2a.\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY \\u0e40\\u0e27\\u0e25\\u0e32 H:mm\",LLLL:\"\\u0e27\\u0e31\\u0e19dddd\\u0e17\\u0e35\\u0e48 D MMMM YYYY \\u0e40\\u0e27\\u0e25\\u0e32 H:mm\"},meridiemParse:/\\u0e01\\u0e48\\u0e2d\\u0e19\\u0e40\\u0e17\\u0e35\\u0e48\\u0e22\\u0e07|\\u0e2b\\u0e25\\u0e31\\u0e07\\u0e40\\u0e17\\u0e35\\u0e48\\u0e22\\u0e07/,isPM:function(e){return\"\\u0e2b\\u0e25\\u0e31\\u0e07\\u0e40\\u0e17\\u0e35\\u0e48\\u0e22\\u0e07\"===e},meridiem:function(e,a,t){return e<12?\"\\u0e01\\u0e48\\u0e2d\\u0e19\\u0e40\\u0e17\\u0e35\\u0e48\\u0e22\\u0e07\":\"\\u0e2b\\u0e25\\u0e31\\u0e07\\u0e40\\u0e17\\u0e35\\u0e48\\u0e22\\u0e07\"},calendar:{sameDay:\"[\\u0e27\\u0e31\\u0e19\\u0e19\\u0e35\\u0e49 \\u0e40\\u0e27\\u0e25\\u0e32] LT\",nextDay:\"[\\u0e1e\\u0e23\\u0e38\\u0e48\\u0e07\\u0e19\\u0e35\\u0e49 \\u0e40\\u0e27\\u0e25\\u0e32] LT\",nextWeek:\"dddd[\\u0e2b\\u0e19\\u0e49\\u0e32 \\u0e40\\u0e27\\u0e25\\u0e32] LT\",lastDay:\"[\\u0e40\\u0e21\\u0e37\\u0e48\\u0e2d\\u0e27\\u0e32\\u0e19\\u0e19\\u0e35\\u0e49 \\u0e40\\u0e27\\u0e25\\u0e32] LT\",lastWeek:\"[\\u0e27\\u0e31\\u0e19]dddd[\\u0e17\\u0e35\\u0e48\\u0e41\\u0e25\\u0e49\\u0e27 \\u0e40\\u0e27\\u0e25\\u0e32] LT\",sameElse:\"L\"},relativeTime:{future:\"\\u0e2d\\u0e35\\u0e01 %s\",past:\"%s\\u0e17\\u0e35\\u0e48\\u0e41\\u0e25\\u0e49\\u0e27\",s:\"\\u0e44\\u0e21\\u0e48\\u0e01\\u0e35\\u0e48\\u0e27\\u0e34\\u0e19\\u0e32\\u0e17\\u0e35\",ss:\"%d \\u0e27\\u0e34\\u0e19\\u0e32\\u0e17\\u0e35\",m:\"1 \\u0e19\\u0e32\\u0e17\\u0e35\",mm:\"%d \\u0e19\\u0e32\\u0e17\\u0e35\",h:\"1 \\u0e0a\\u0e31\\u0e48\\u0e27\\u0e42\\u0e21\\u0e07\",hh:\"%d \\u0e0a\\u0e31\\u0e48\\u0e27\\u0e42\\u0e21\\u0e07\",d:\"1 \\u0e27\\u0e31\\u0e19\",dd:\"%d \\u0e27\\u0e31\\u0e19\",M:\"1 \\u0e40\\u0e14\\u0e37\\u0e2d\\u0e19\",MM:\"%d \\u0e40\\u0e14\\u0e37\\u0e2d\\u0e19\",y:\"1 \\u0e1b\\u0e35\",yy:\"%d \\u0e1b\\u0e35\"}}),l.defineLocale(\"tl-ph\",{months:\"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre\".split(\"_\"),monthsShort:\"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis\".split(\"_\"),weekdays:\"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado\".split(\"_\"),weekdaysShort:\"Lin_Lun_Mar_Miy_Huw_Biy_Sab\".split(\"_\"),weekdaysMin:\"Li_Lu_Ma_Mi_Hu_Bi_Sab\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"MM/D/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY HH:mm\",LLLL:\"dddd, MMMM DD, YYYY HH:mm\"},calendar:{sameDay:\"LT [ngayong araw]\",nextDay:\"[Bukas ng] LT\",nextWeek:\"LT [sa susunod na] dddd\",lastDay:\"LT [kahapon]\",lastWeek:\"LT [noong nakaraang] dddd\",sameElse:\"L\"},relativeTime:{future:\"sa loob ng %s\",past:\"%s ang nakalipas\",s:\"ilang segundo\",ss:\"%d segundo\",m:\"isang minuto\",mm:\"%d minuto\",h:\"isang oras\",hh:\"%d oras\",d:\"isang araw\",dd:\"%d araw\",M:\"isang buwan\",MM:\"%d buwan\",y:\"isang taon\",yy:\"%d taon\"},dayOfMonthOrdinalParse:/\\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}});var id=\"pagh_wa\\u2019_cha\\u2019_wej_loS_vagh_jav_Soch_chorgh_Hut\".split(\"_\");function od(e,a,t,s){var n=function(e){var a=Math.floor(e%1e3/100),t=Math.floor(e%100/10),s=e%10,n=\"\";0<a&&(n+=id[a]+\"vatlh\");0<t&&(n+=(\"\"!==n?\" \":\"\")+id[t]+\"maH\");0<s&&(n+=(\"\"!==n?\" \":\"\")+id[s]);return\"\"===n?\"pagh\":n}(e);switch(t){case\"ss\":return n+\" lup\";case\"mm\":return n+\" tup\";case\"hh\":return n+\" rep\";case\"dd\":return n+\" jaj\";case\"MM\":return n+\" jar\";case\"yy\":return n+\" DIS\"}}l.defineLocale(\"tlh\",{months:\"tera\\u2019 jar wa\\u2019_tera\\u2019 jar cha\\u2019_tera\\u2019 jar wej_tera\\u2019 jar loS_tera\\u2019 jar vagh_tera\\u2019 jar jav_tera\\u2019 jar Soch_tera\\u2019 jar chorgh_tera\\u2019 jar Hut_tera\\u2019 jar wa\\u2019maH_tera\\u2019 jar wa\\u2019maH wa\\u2019_tera\\u2019 jar wa\\u2019maH cha\\u2019\".split(\"_\"),monthsShort:\"jar wa\\u2019_jar cha\\u2019_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa\\u2019maH_jar wa\\u2019maH wa\\u2019_jar wa\\u2019maH cha\\u2019\".split(\"_\"),monthsParseExact:!0,weekdays:\"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj\".split(\"_\"),weekdaysShort:\"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj\".split(\"_\"),weekdaysMin:\"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[DaHjaj] LT\",nextDay:\"[wa\\u2019leS] LT\",nextWeek:\"LLL\",lastDay:\"[wa\\u2019Hu\\u2019] LT\",lastWeek:\"LLL\",sameElse:\"L\"},relativeTime:{future:function(e){var a=e;return a=-1!==e.indexOf(\"jaj\")?a.slice(0,-3)+\"leS\":-1!==e.indexOf(\"jar\")?a.slice(0,-3)+\"waQ\":-1!==e.indexOf(\"DIS\")?a.slice(0,-3)+\"nem\":a+\" pIq\"},past:function(e){var a=e;return a=-1!==e.indexOf(\"jaj\")?a.slice(0,-3)+\"Hu\\u2019\":-1!==e.indexOf(\"jar\")?a.slice(0,-3)+\"wen\":-1!==e.indexOf(\"DIS\")?a.slice(0,-3)+\"ben\":a+\" ret\"},s:\"puS lup\",ss:od,m:\"wa\\u2019 tup\",mm:od,h:\"wa\\u2019 rep\",hh:od,d:\"wa\\u2019 jaj\",dd:od,M:\"wa\\u2019 jar\",MM:od,y:\"wa\\u2019 DIS\",yy:od},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}});var md={1:\"'inci\",5:\"'inci\",8:\"'inci\",70:\"'inci\",80:\"'inci\",2:\"'nci\",7:\"'nci\",20:\"'nci\",50:\"'nci\",3:\"'\\xfcnc\\xfc\",4:\"'\\xfcnc\\xfc\",100:\"'\\xfcnc\\xfc\",6:\"'nc\\u0131\",9:\"'uncu\",10:\"'uncu\",30:\"'uncu\",60:\"'\\u0131nc\\u0131\",90:\"'\\u0131nc\\u0131\"};function ud(e,a,t,s){var n={s:[\"viensas secunds\",\"'iensas secunds\"],ss:[e+\" secunds\",e+\" secunds\"],m:[\"'n m\\xedut\",\"'iens m\\xedut\"],mm:[e+\" m\\xeduts\",e+\" m\\xeduts\"],h:[\"'n \\xfeora\",\"'iensa \\xfeora\"],hh:[e+\" \\xfeoras\",e+\" \\xfeoras\"],d:[\"'n ziua\",\"'iensa ziua\"],dd:[e+\" ziuas\",e+\" ziuas\"],M:[\"'n mes\",\"'iens mes\"],MM:[e+\" mesen\",e+\" mesen\"],y:[\"'n ar\",\"'iens ar\"],yy:[e+\" ars\",e+\" ars\"]};return s?n[t][0]:a?n[t][0]:n[t][1]}function ld(e,a,t){var s,n;return\"m\"===t?a?\"\\u0445\\u0432\\u0438\\u043b\\u0438\\u043d\\u0430\":\"\\u0445\\u0432\\u0438\\u043b\\u0438\\u043d\\u0443\":\"h\"===t?a?\"\\u0433\\u043e\\u0434\\u0438\\u043d\\u0430\":\"\\u0433\\u043e\\u0434\\u0438\\u043d\\u0443\":e+\" \"+(s=+e,n={ss:a?\"\\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u0430_\\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u0438_\\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\":\"\\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u0443_\\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\\u0438_\\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\",mm:a?\"\\u0445\\u0432\\u0438\\u043b\\u0438\\u043d\\u0430_\\u0445\\u0432\\u0438\\u043b\\u0438\\u043d\\u0438_\\u0445\\u0432\\u0438\\u043b\\u0438\\u043d\":\"\\u0445\\u0432\\u0438\\u043b\\u0438\\u043d\\u0443_\\u0445\\u0432\\u0438\\u043b\\u0438\\u043d\\u0438_\\u0445\\u0432\\u0438\\u043b\\u0438\\u043d\",hh:a?\"\\u0433\\u043e\\u0434\\u0438\\u043d\\u0430_\\u0433\\u043e\\u0434\\u0438\\u043d\\u0438_\\u0433\\u043e\\u0434\\u0438\\u043d\":\"\\u0433\\u043e\\u0434\\u0438\\u043d\\u0443_\\u0433\\u043e\\u0434\\u0438\\u043d\\u0438_\\u0433\\u043e\\u0434\\u0438\\u043d\",dd:\"\\u0434\\u0435\\u043d\\u044c_\\u0434\\u043d\\u0456_\\u0434\\u043d\\u0456\\u0432\",MM:\"\\u043c\\u0456\\u0441\\u044f\\u0446\\u044c_\\u043c\\u0456\\u0441\\u044f\\u0446\\u0456_\\u043c\\u0456\\u0441\\u044f\\u0446\\u0456\\u0432\",yy:\"\\u0440\\u0456\\u043a_\\u0440\\u043e\\u043a\\u0438_\\u0440\\u043e\\u043a\\u0456\\u0432\"}[t].split(\"_\"),s%10==1&&s%100!=11?n[0]:2<=s%10&&s%10<=4&&(s%100<10||20<=s%100)?n[1]:n[2])}function Md(e){return function(){return e+\"\\u043e\"+(11===this.hours()?\"\\u0431\":\"\")+\"] LT\"}}l.defineLocale(\"tr\",{months:\"Ocak_\\u015eubat_Mart_Nisan_May\\u0131s_Haziran_Temmuz_A\\u011fustos_Eyl\\xfcl_Ekim_Kas\\u0131m_Aral\\u0131k\".split(\"_\"),monthsShort:\"Oca_\\u015eub_Mar_Nis_May_Haz_Tem_A\\u011fu_Eyl_Eki_Kas_Ara\".split(\"_\"),weekdays:\"Pazar_Pazartesi_Sal\\u0131_\\xc7ar\\u015famba_Per\\u015fembe_Cuma_Cumartesi\".split(\"_\"),weekdaysShort:\"Paz_Pts_Sal_\\xc7ar_Per_Cum_Cts\".split(\"_\"),weekdaysMin:\"Pz_Pt_Sa_\\xc7a_Pe_Cu_Ct\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[bug\\xfcn saat] LT\",nextDay:\"[yar\\u0131n saat] LT\",nextWeek:\"[gelecek] dddd [saat] LT\",lastDay:\"[d\\xfcn] LT\",lastWeek:\"[ge\\xe7en] dddd [saat] LT\",sameElse:\"L\"},relativeTime:{future:\"%s sonra\",past:\"%s \\xf6nce\",s:\"birka\\xe7 saniye\",ss:\"%d saniye\",m:\"bir dakika\",mm:\"%d dakika\",h:\"bir saat\",hh:\"%d saat\",d:\"bir g\\xfcn\",dd:\"%d g\\xfcn\",M:\"bir ay\",MM:\"%d ay\",y:\"bir y\\u0131l\",yy:\"%d y\\u0131l\"},ordinal:function(e,a){switch(a){case\"d\":case\"D\":case\"Do\":case\"DD\":return e;default:if(0===e)return e+\"'\\u0131nc\\u0131\";var t=e%10;return e+(md[t]||md[e%100-t]||md[100<=e?100:null])}},week:{dow:1,doy:7}}),l.defineLocale(\"tzl\",{months:\"Januar_Fevraglh_Mar\\xe7_Avr\\xefu_Mai_G\\xfcn_Julia_Guscht_Setemvar_Listop\\xe4ts_Noemvar_Zecemvar\".split(\"_\"),monthsShort:\"Jan_Fev_Mar_Avr_Mai_G\\xfcn_Jul_Gus_Set_Lis_Noe_Zec\".split(\"_\"),weekdays:\"S\\xfaladi_L\\xfane\\xe7i_Maitzi_M\\xe1rcuri_Xh\\xfaadi_Vi\\xe9ner\\xe7i_S\\xe1turi\".split(\"_\"),weekdaysShort:\"S\\xfal_L\\xfan_Mai_M\\xe1r_Xh\\xfa_Vi\\xe9_S\\xe1t\".split(\"_\"),weekdaysMin:\"S\\xfa_L\\xfa_Ma_M\\xe1_Xh_Vi_S\\xe1\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM [dallas] YYYY\",LLL:\"D. MMMM [dallas] YYYY HH.mm\",LLLL:\"dddd, [li] D. MMMM [dallas] YYYY HH.mm\"},meridiemParse:/d\\'o|d\\'a/i,isPM:function(e){return\"d'o\"===e.toLowerCase()},meridiem:function(e,a,t){return 11<e?t?\"d'o\":\"D'O\":t?\"d'a\":\"D'A\"},calendar:{sameDay:\"[oxhi \\xe0] LT\",nextDay:\"[dem\\xe0 \\xe0] LT\",nextWeek:\"dddd [\\xe0] LT\",lastDay:\"[ieiri \\xe0] LT\",lastWeek:\"[s\\xfcr el] dddd [lasteu \\xe0] LT\",sameElse:\"L\"},relativeTime:{future:\"osprei %s\",past:\"ja%s\",s:ud,ss:ud,m:ud,mm:ud,h:ud,hh:ud,d:ud,dd:ud,M:ud,MM:ud,y:ud,yy:ud},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),l.defineLocale(\"tzm-latn\",{months:\"innayr_br\\u02e4ayr\\u02e4_mar\\u02e4s\\u02e4_ibrir_mayyw_ywnyw_ywlywz_\\u0263w\\u0161t_\\u0161wtanbir_kt\\u02e4wbr\\u02e4_nwwanbir_dwjnbir\".split(\"_\"),monthsShort:\"innayr_br\\u02e4ayr\\u02e4_mar\\u02e4s\\u02e4_ibrir_mayyw_ywnyw_ywlywz_\\u0263w\\u0161t_\\u0161wtanbir_kt\\u02e4wbr\\u02e4_nwwanbir_dwjnbir\".split(\"_\"),weekdays:\"asamas_aynas_asinas_akras_akwas_asimwas_asi\\u1e0dyas\".split(\"_\"),weekdaysShort:\"asamas_aynas_asinas_akras_akwas_asimwas_asi\\u1e0dyas\".split(\"_\"),weekdaysMin:\"asamas_aynas_asinas_akras_akwas_asimwas_asi\\u1e0dyas\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[asdkh g] LT\",nextDay:\"[aska g] LT\",nextWeek:\"dddd [g] LT\",lastDay:\"[assant g] LT\",lastWeek:\"dddd [g] LT\",sameElse:\"L\"},relativeTime:{future:\"dadkh s yan %s\",past:\"yan %s\",s:\"imik\",ss:\"%d imik\",m:\"minu\\u1e0d\",mm:\"%d minu\\u1e0d\",h:\"sa\\u025ba\",hh:\"%d tassa\\u025bin\",d:\"ass\",dd:\"%d ossan\",M:\"ayowr\",MM:\"%d iyyirn\",y:\"asgas\",yy:\"%d isgasn\"},week:{dow:6,doy:12}}),l.defineLocale(\"tzm\",{months:\"\\u2d49\\u2d4f\\u2d4f\\u2d30\\u2d62\\u2d54_\\u2d31\\u2d55\\u2d30\\u2d62\\u2d55_\\u2d4e\\u2d30\\u2d55\\u2d5a_\\u2d49\\u2d31\\u2d54\\u2d49\\u2d54_\\u2d4e\\u2d30\\u2d62\\u2d62\\u2d53_\\u2d62\\u2d53\\u2d4f\\u2d62\\u2d53_\\u2d62\\u2d53\\u2d4d\\u2d62\\u2d53\\u2d63_\\u2d56\\u2d53\\u2d5b\\u2d5c_\\u2d5b\\u2d53\\u2d5c\\u2d30\\u2d4f\\u2d31\\u2d49\\u2d54_\\u2d3d\\u2d5f\\u2d53\\u2d31\\u2d55_\\u2d4f\\u2d53\\u2d61\\u2d30\\u2d4f\\u2d31\\u2d49\\u2d54_\\u2d37\\u2d53\\u2d4a\\u2d4f\\u2d31\\u2d49\\u2d54\".split(\"_\"),monthsShort:\"\\u2d49\\u2d4f\\u2d4f\\u2d30\\u2d62\\u2d54_\\u2d31\\u2d55\\u2d30\\u2d62\\u2d55_\\u2d4e\\u2d30\\u2d55\\u2d5a_\\u2d49\\u2d31\\u2d54\\u2d49\\u2d54_\\u2d4e\\u2d30\\u2d62\\u2d62\\u2d53_\\u2d62\\u2d53\\u2d4f\\u2d62\\u2d53_\\u2d62\\u2d53\\u2d4d\\u2d62\\u2d53\\u2d63_\\u2d56\\u2d53\\u2d5b\\u2d5c_\\u2d5b\\u2d53\\u2d5c\\u2d30\\u2d4f\\u2d31\\u2d49\\u2d54_\\u2d3d\\u2d5f\\u2d53\\u2d31\\u2d55_\\u2d4f\\u2d53\\u2d61\\u2d30\\u2d4f\\u2d31\\u2d49\\u2d54_\\u2d37\\u2d53\\u2d4a\\u2d4f\\u2d31\\u2d49\\u2d54\".split(\"_\"),weekdays:\"\\u2d30\\u2d59\\u2d30\\u2d4e\\u2d30\\u2d59_\\u2d30\\u2d62\\u2d4f\\u2d30\\u2d59_\\u2d30\\u2d59\\u2d49\\u2d4f\\u2d30\\u2d59_\\u2d30\\u2d3d\\u2d54\\u2d30\\u2d59_\\u2d30\\u2d3d\\u2d61\\u2d30\\u2d59_\\u2d30\\u2d59\\u2d49\\u2d4e\\u2d61\\u2d30\\u2d59_\\u2d30\\u2d59\\u2d49\\u2d39\\u2d62\\u2d30\\u2d59\".split(\"_\"),weekdaysShort:\"\\u2d30\\u2d59\\u2d30\\u2d4e\\u2d30\\u2d59_\\u2d30\\u2d62\\u2d4f\\u2d30\\u2d59_\\u2d30\\u2d59\\u2d49\\u2d4f\\u2d30\\u2d59_\\u2d30\\u2d3d\\u2d54\\u2d30\\u2d59_\\u2d30\\u2d3d\\u2d61\\u2d30\\u2d59_\\u2d30\\u2d59\\u2d49\\u2d4e\\u2d61\\u2d30\\u2d59_\\u2d30\\u2d59\\u2d49\\u2d39\\u2d62\\u2d30\\u2d59\".split(\"_\"),weekdaysMin:\"\\u2d30\\u2d59\\u2d30\\u2d4e\\u2d30\\u2d59_\\u2d30\\u2d62\\u2d4f\\u2d30\\u2d59_\\u2d30\\u2d59\\u2d49\\u2d4f\\u2d30\\u2d59_\\u2d30\\u2d3d\\u2d54\\u2d30\\u2d59_\\u2d30\\u2d3d\\u2d61\\u2d30\\u2d59_\\u2d30\\u2d59\\u2d49\\u2d4e\\u2d61\\u2d30\\u2d59_\\u2d30\\u2d59\\u2d49\\u2d39\\u2d62\\u2d30\\u2d59\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[\\u2d30\\u2d59\\u2d37\\u2d45 \\u2d34] LT\",nextDay:\"[\\u2d30\\u2d59\\u2d3d\\u2d30 \\u2d34] LT\",nextWeek:\"dddd [\\u2d34] LT\",lastDay:\"[\\u2d30\\u2d5a\\u2d30\\u2d4f\\u2d5c \\u2d34] LT\",lastWeek:\"dddd [\\u2d34] LT\",sameElse:\"L\"},relativeTime:{future:\"\\u2d37\\u2d30\\u2d37\\u2d45 \\u2d59 \\u2d62\\u2d30\\u2d4f %s\",past:\"\\u2d62\\u2d30\\u2d4f %s\",s:\"\\u2d49\\u2d4e\\u2d49\\u2d3d\",ss:\"%d \\u2d49\\u2d4e\\u2d49\\u2d3d\",m:\"\\u2d4e\\u2d49\\u2d4f\\u2d53\\u2d3a\",mm:\"%d \\u2d4e\\u2d49\\u2d4f\\u2d53\\u2d3a\",h:\"\\u2d59\\u2d30\\u2d44\\u2d30\",hh:\"%d \\u2d5c\\u2d30\\u2d59\\u2d59\\u2d30\\u2d44\\u2d49\\u2d4f\",d:\"\\u2d30\\u2d59\\u2d59\",dd:\"%d o\\u2d59\\u2d59\\u2d30\\u2d4f\",M:\"\\u2d30\\u2d62o\\u2d53\\u2d54\",MM:\"%d \\u2d49\\u2d62\\u2d62\\u2d49\\u2d54\\u2d4f\",y:\"\\u2d30\\u2d59\\u2d33\\u2d30\\u2d59\",yy:\"%d \\u2d49\\u2d59\\u2d33\\u2d30\\u2d59\\u2d4f\"},week:{dow:6,doy:12}}),l.defineLocale(\"ug-cn\",{months:\"\\u064a\\u0627\\u0646\\u06cb\\u0627\\u0631_\\u0641\\u06d0\\u06cb\\u0631\\u0627\\u0644_\\u0645\\u0627\\u0631\\u062a_\\u0626\\u0627\\u067e\\u0631\\u06d0\\u0644_\\u0645\\u0627\\u064a_\\u0626\\u0649\\u064a\\u06c7\\u0646_\\u0626\\u0649\\u064a\\u06c7\\u0644_\\u0626\\u0627\\u06cb\\u063a\\u06c7\\u0633\\u062a_\\u0633\\u06d0\\u0646\\u062a\\u06d5\\u0628\\u0649\\u0631_\\u0626\\u06c6\\u0643\\u062a\\u06d5\\u0628\\u0649\\u0631_\\u0646\\u0648\\u064a\\u0627\\u0628\\u0649\\u0631_\\u062f\\u06d0\\u0643\\u0627\\u0628\\u0649\\u0631\".split(\"_\"),monthsShort:\"\\u064a\\u0627\\u0646\\u06cb\\u0627\\u0631_\\u0641\\u06d0\\u06cb\\u0631\\u0627\\u0644_\\u0645\\u0627\\u0631\\u062a_\\u0626\\u0627\\u067e\\u0631\\u06d0\\u0644_\\u0645\\u0627\\u064a_\\u0626\\u0649\\u064a\\u06c7\\u0646_\\u0626\\u0649\\u064a\\u06c7\\u0644_\\u0626\\u0627\\u06cb\\u063a\\u06c7\\u0633\\u062a_\\u0633\\u06d0\\u0646\\u062a\\u06d5\\u0628\\u0649\\u0631_\\u0626\\u06c6\\u0643\\u062a\\u06d5\\u0628\\u0649\\u0631_\\u0646\\u0648\\u064a\\u0627\\u0628\\u0649\\u0631_\\u062f\\u06d0\\u0643\\u0627\\u0628\\u0649\\u0631\".split(\"_\"),weekdays:\"\\u064a\\u06d5\\u0643\\u0634\\u06d5\\u0646\\u0628\\u06d5_\\u062f\\u06c8\\u0634\\u06d5\\u0646\\u0628\\u06d5_\\u0633\\u06d5\\u064a\\u0634\\u06d5\\u0646\\u0628\\u06d5_\\u0686\\u0627\\u0631\\u0634\\u06d5\\u0646\\u0628\\u06d5_\\u067e\\u06d5\\u064a\\u0634\\u06d5\\u0646\\u0628\\u06d5_\\u062c\\u06c8\\u0645\\u06d5_\\u0634\\u06d5\\u0646\\u0628\\u06d5\".split(\"_\"),weekdaysShort:\"\\u064a\\u06d5_\\u062f\\u06c8_\\u0633\\u06d5_\\u0686\\u0627_\\u067e\\u06d5_\\u062c\\u06c8_\\u0634\\u06d5\".split(\"_\"),weekdaysMin:\"\\u064a\\u06d5_\\u062f\\u06c8_\\u0633\\u06d5_\\u0686\\u0627_\\u067e\\u06d5_\\u062c\\u06c8_\\u0634\\u06d5\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"YYYY-\\u064a\\u0649\\u0644\\u0649M-\\u0626\\u0627\\u064a\\u0646\\u0649\\u06adD-\\u0643\\u06c8\\u0646\\u0649\",LLL:\"YYYY-\\u064a\\u0649\\u0644\\u0649M-\\u0626\\u0627\\u064a\\u0646\\u0649\\u06adD-\\u0643\\u06c8\\u0646\\u0649\\u060c HH:mm\",LLLL:\"dddd\\u060c YYYY-\\u064a\\u0649\\u0644\\u0649M-\\u0626\\u0627\\u064a\\u0646\\u0649\\u06adD-\\u0643\\u06c8\\u0646\\u0649\\u060c HH:mm\"},meridiemParse:/\\u064a\\u06d0\\u0631\\u0649\\u0645 \\u0643\\u06d0\\u0686\\u06d5|\\u0633\\u06d5\\u06be\\u06d5\\u0631|\\u0686\\u06c8\\u0634\\u062a\\u0649\\u0646 \\u0628\\u06c7\\u0631\\u06c7\\u0646|\\u0686\\u06c8\\u0634|\\u0686\\u06c8\\u0634\\u062a\\u0649\\u0646 \\u0643\\u06d0\\u064a\\u0649\\u0646|\\u0643\\u06d5\\u0686/,meridiemHour:function(e,a){return 12===e&&(e=0),\"\\u064a\\u06d0\\u0631\\u0649\\u0645 \\u0643\\u06d0\\u0686\\u06d5\"===a||\"\\u0633\\u06d5\\u06be\\u06d5\\u0631\"===a||\"\\u0686\\u06c8\\u0634\\u062a\\u0649\\u0646 \\u0628\\u06c7\\u0631\\u06c7\\u0646\"===a?e:\"\\u0686\\u06c8\\u0634\\u062a\\u0649\\u0646 \\u0643\\u06d0\\u064a\\u0649\\u0646\"===a||\"\\u0643\\u06d5\\u0686\"===a?e+12:11<=e?e:e+12},meridiem:function(e,a,t){var s=100*e+a;return s<600?\"\\u064a\\u06d0\\u0631\\u0649\\u0645 \\u0643\\u06d0\\u0686\\u06d5\":s<900?\"\\u0633\\u06d5\\u06be\\u06d5\\u0631\":s<1130?\"\\u0686\\u06c8\\u0634\\u062a\\u0649\\u0646 \\u0628\\u06c7\\u0631\\u06c7\\u0646\":s<1230?\"\\u0686\\u06c8\\u0634\":s<1800?\"\\u0686\\u06c8\\u0634\\u062a\\u0649\\u0646 \\u0643\\u06d0\\u064a\\u0649\\u0646\":\"\\u0643\\u06d5\\u0686\"},calendar:{sameDay:\"[\\u0628\\u06c8\\u06af\\u06c8\\u0646 \\u0633\\u0627\\u0626\\u06d5\\u062a] LT\",nextDay:\"[\\u0626\\u06d5\\u062a\\u06d5 \\u0633\\u0627\\u0626\\u06d5\\u062a] LT\",nextWeek:\"[\\u0643\\u06d0\\u0644\\u06d5\\u0631\\u0643\\u0649] dddd [\\u0633\\u0627\\u0626\\u06d5\\u062a] LT\",lastDay:\"[\\u062a\\u06c6\\u0646\\u06c8\\u06af\\u06c8\\u0646] LT\",lastWeek:\"[\\u0626\\u0627\\u0644\\u062f\\u0649\\u0646\\u0642\\u0649] dddd [\\u0633\\u0627\\u0626\\u06d5\\u062a] LT\",sameElse:\"L\"},relativeTime:{future:\"%s \\u0643\\u06d0\\u064a\\u0649\\u0646\",past:\"%s \\u0628\\u06c7\\u0631\\u06c7\\u0646\",s:\"\\u0646\\u06d5\\u0686\\u0686\\u06d5 \\u0633\\u06d0\\u0643\\u0648\\u0646\\u062a\",ss:\"%d \\u0633\\u06d0\\u0643\\u0648\\u0646\\u062a\",m:\"\\u0628\\u0649\\u0631 \\u0645\\u0649\\u0646\\u06c7\\u062a\",mm:\"%d \\u0645\\u0649\\u0646\\u06c7\\u062a\",h:\"\\u0628\\u0649\\u0631 \\u0633\\u0627\\u0626\\u06d5\\u062a\",hh:\"%d \\u0633\\u0627\\u0626\\u06d5\\u062a\",d:\"\\u0628\\u0649\\u0631 \\u0643\\u06c8\\u0646\",dd:\"%d \\u0643\\u06c8\\u0646\",M:\"\\u0628\\u0649\\u0631 \\u0626\\u0627\\u064a\",MM:\"%d \\u0626\\u0627\\u064a\",y:\"\\u0628\\u0649\\u0631 \\u064a\\u0649\\u0644\",yy:\"%d \\u064a\\u0649\\u0644\"},dayOfMonthOrdinalParse:/\\d{1,2}(-\\u0643\\u06c8\\u0646\\u0649|-\\u0626\\u0627\\u064a|-\\u06be\\u06d5\\u067e\\u062a\\u06d5)/,ordinal:function(e,a){switch(a){case\"d\":case\"D\":case\"DDD\":return e+\"-\\u0643\\u06c8\\u0646\\u0649\";case\"w\":case\"W\":return e+\"-\\u06be\\u06d5\\u067e\\u062a\\u06d5\";default:return e}},preparse:function(e){return e.replace(/\\u060c/g,\",\")},postformat:function(e){return e.replace(/,/g,\"\\u060c\")},week:{dow:1,doy:7}}),l.defineLocale(\"uk\",{months:{format:\"\\u0441\\u0456\\u0447\\u043d\\u044f_\\u043b\\u044e\\u0442\\u043e\\u0433\\u043e_\\u0431\\u0435\\u0440\\u0435\\u0437\\u043d\\u044f_\\u043a\\u0432\\u0456\\u0442\\u043d\\u044f_\\u0442\\u0440\\u0430\\u0432\\u043d\\u044f_\\u0447\\u0435\\u0440\\u0432\\u043d\\u044f_\\u043b\\u0438\\u043f\\u043d\\u044f_\\u0441\\u0435\\u0440\\u043f\\u043d\\u044f_\\u0432\\u0435\\u0440\\u0435\\u0441\\u043d\\u044f_\\u0436\\u043e\\u0432\\u0442\\u043d\\u044f_\\u043b\\u0438\\u0441\\u0442\\u043e\\u043f\\u0430\\u0434\\u0430_\\u0433\\u0440\\u0443\\u0434\\u043d\\u044f\".split(\"_\"),standalone:\"\\u0441\\u0456\\u0447\\u0435\\u043d\\u044c_\\u043b\\u044e\\u0442\\u0438\\u0439_\\u0431\\u0435\\u0440\\u0435\\u0437\\u0435\\u043d\\u044c_\\u043a\\u0432\\u0456\\u0442\\u0435\\u043d\\u044c_\\u0442\\u0440\\u0430\\u0432\\u0435\\u043d\\u044c_\\u0447\\u0435\\u0440\\u0432\\u0435\\u043d\\u044c_\\u043b\\u0438\\u043f\\u0435\\u043d\\u044c_\\u0441\\u0435\\u0440\\u043f\\u0435\\u043d\\u044c_\\u0432\\u0435\\u0440\\u0435\\u0441\\u0435\\u043d\\u044c_\\u0436\\u043e\\u0432\\u0442\\u0435\\u043d\\u044c_\\u043b\\u0438\\u0441\\u0442\\u043e\\u043f\\u0430\\u0434_\\u0433\\u0440\\u0443\\u0434\\u0435\\u043d\\u044c\".split(\"_\")},monthsShort:\"\\u0441\\u0456\\u0447_\\u043b\\u044e\\u0442_\\u0431\\u0435\\u0440_\\u043a\\u0432\\u0456\\u0442_\\u0442\\u0440\\u0430\\u0432_\\u0447\\u0435\\u0440\\u0432_\\u043b\\u0438\\u043f_\\u0441\\u0435\\u0440\\u043f_\\u0432\\u0435\\u0440_\\u0436\\u043e\\u0432\\u0442_\\u043b\\u0438\\u0441\\u0442_\\u0433\\u0440\\u0443\\u0434\".split(\"_\"),weekdays:function(e,a){var t={nominative:\"\\u043d\\u0435\\u0434\\u0456\\u043b\\u044f_\\u043f\\u043e\\u043d\\u0435\\u0434\\u0456\\u043b\\u043e\\u043a_\\u0432\\u0456\\u0432\\u0442\\u043e\\u0440\\u043e\\u043a_\\u0441\\u0435\\u0440\\u0435\\u0434\\u0430_\\u0447\\u0435\\u0442\\u0432\\u0435\\u0440_\\u043f\\u2019\\u044f\\u0442\\u043d\\u0438\\u0446\\u044f_\\u0441\\u0443\\u0431\\u043e\\u0442\\u0430\".split(\"_\"),accusative:\"\\u043d\\u0435\\u0434\\u0456\\u043b\\u044e_\\u043f\\u043e\\u043d\\u0435\\u0434\\u0456\\u043b\\u043e\\u043a_\\u0432\\u0456\\u0432\\u0442\\u043e\\u0440\\u043e\\u043a_\\u0441\\u0435\\u0440\\u0435\\u0434\\u0443_\\u0447\\u0435\\u0442\\u0432\\u0435\\u0440_\\u043f\\u2019\\u044f\\u0442\\u043d\\u0438\\u0446\\u044e_\\u0441\\u0443\\u0431\\u043e\\u0442\\u0443\".split(\"_\"),genitive:\"\\u043d\\u0435\\u0434\\u0456\\u043b\\u0456_\\u043f\\u043e\\u043d\\u0435\\u0434\\u0456\\u043b\\u043a\\u0430_\\u0432\\u0456\\u0432\\u0442\\u043e\\u0440\\u043a\\u0430_\\u0441\\u0435\\u0440\\u0435\\u0434\\u0438_\\u0447\\u0435\\u0442\\u0432\\u0435\\u0440\\u0433\\u0430_\\u043f\\u2019\\u044f\\u0442\\u043d\\u0438\\u0446\\u0456_\\u0441\\u0443\\u0431\\u043e\\u0442\\u0438\".split(\"_\")};return!0===e?t.nominative.slice(1,7).concat(t.nominative.slice(0,1)):e?t[/(\\[[\\u0412\\u0432\\u0423\\u0443]\\]) ?dddd/.test(a)?\"accusative\":/\\[?(?:\\u043c\\u0438\\u043d\\u0443\\u043b\\u043e\\u0457|\\u043d\\u0430\\u0441\\u0442\\u0443\\u043f\\u043d\\u043e\\u0457)? ?\\] ?dddd/.test(a)?\"genitive\":\"nominative\"][e.day()]:t.nominative},weekdaysShort:\"\\u043d\\u0434_\\u043f\\u043d_\\u0432\\u0442_\\u0441\\u0440_\\u0447\\u0442_\\u043f\\u0442_\\u0441\\u0431\".split(\"_\"),weekdaysMin:\"\\u043d\\u0434_\\u043f\\u043d_\\u0432\\u0442_\\u0441\\u0440_\\u0447\\u0442_\\u043f\\u0442_\\u0441\\u0431\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY \\u0440.\",LLL:\"D MMMM YYYY \\u0440., HH:mm\",LLLL:\"dddd, D MMMM YYYY \\u0440., HH:mm\"},calendar:{sameDay:Md(\"[\\u0421\\u044c\\u043e\\u0433\\u043e\\u0434\\u043d\\u0456 \"),nextDay:Md(\"[\\u0417\\u0430\\u0432\\u0442\\u0440\\u0430 \"),lastDay:Md(\"[\\u0412\\u0447\\u043e\\u0440\\u0430 \"),nextWeek:Md(\"[\\u0423] dddd [\"),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return Md(\"[\\u041c\\u0438\\u043d\\u0443\\u043b\\u043e\\u0457] dddd [\").call(this);case 1:case 2:case 4:return Md(\"[\\u041c\\u0438\\u043d\\u0443\\u043b\\u043e\\u0433\\u043e] dddd [\").call(this)}},sameElse:\"L\"},relativeTime:{future:\"\\u0437\\u0430 %s\",past:\"%s \\u0442\\u043e\\u043c\\u0443\",s:\"\\u0434\\u0435\\u043a\\u0456\\u043b\\u044c\\u043a\\u0430 \\u0441\\u0435\\u043a\\u0443\\u043d\\u0434\",ss:ld,m:ld,mm:ld,h:\"\\u0433\\u043e\\u0434\\u0438\\u043d\\u0443\",hh:ld,d:\"\\u0434\\u0435\\u043d\\u044c\",dd:ld,M:\"\\u043c\\u0456\\u0441\\u044f\\u0446\\u044c\",MM:ld,y:\"\\u0440\\u0456\\u043a\",yy:ld},meridiemParse:/\\u043d\\u043e\\u0447\\u0456|\\u0440\\u0430\\u043d\\u043a\\u0443|\\u0434\\u043d\\u044f|\\u0432\\u0435\\u0447\\u043e\\u0440\\u0430/,isPM:function(e){return/^(\\u0434\\u043d\\u044f|\\u0432\\u0435\\u0447\\u043e\\u0440\\u0430)$/.test(e)},meridiem:function(e,a,t){return e<4?\"\\u043d\\u043e\\u0447\\u0456\":e<12?\"\\u0440\\u0430\\u043d\\u043a\\u0443\":e<17?\"\\u0434\\u043d\\u044f\":\"\\u0432\\u0435\\u0447\\u043e\\u0440\\u0430\"},dayOfMonthOrdinalParse:/\\d{1,2}-(\\u0439|\\u0433\\u043e)/,ordinal:function(e,a){switch(a){case\"M\":case\"d\":case\"DDD\":case\"w\":case\"W\":return e+\"-\\u0439\";case\"D\":return e+\"-\\u0433\\u043e\";default:return e}},week:{dow:1,doy:7}});var hd=[\"\\u062c\\u0646\\u0648\\u0631\\u06cc\",\"\\u0641\\u0631\\u0648\\u0631\\u06cc\",\"\\u0645\\u0627\\u0631\\u0686\",\"\\u0627\\u067e\\u0631\\u06cc\\u0644\",\"\\u0645\\u0626\\u06cc\",\"\\u062c\\u0648\\u0646\",\"\\u062c\\u0648\\u0644\\u0627\\u0626\\u06cc\",\"\\u0627\\u06af\\u0633\\u062a\",\"\\u0633\\u062a\\u0645\\u0628\\u0631\",\"\\u0627\\u06a9\\u062a\\u0648\\u0628\\u0631\",\"\\u0646\\u0648\\u0645\\u0628\\u0631\",\"\\u062f\\u0633\\u0645\\u0628\\u0631\"],Ld=[\"\\u0627\\u062a\\u0648\\u0627\\u0631\",\"\\u067e\\u06cc\\u0631\",\"\\u0645\\u0646\\u06af\\u0644\",\"\\u0628\\u062f\\u06be\",\"\\u062c\\u0645\\u0639\\u0631\\u0627\\u062a\",\"\\u062c\\u0645\\u0639\\u06c1\",\"\\u06c1\\u0641\\u062a\\u06c1\"];return l.defineLocale(\"ur\",{months:hd,monthsShort:hd,weekdays:Ld,weekdaysShort:Ld,weekdaysMin:Ld,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd\\u060c D MMMM YYYY HH:mm\"},meridiemParse:/\\u0635\\u0628\\u062d|\\u0634\\u0627\\u0645/,isPM:function(e){return\"\\u0634\\u0627\\u0645\"===e},meridiem:function(e,a,t){return e<12?\"\\u0635\\u0628\\u062d\":\"\\u0634\\u0627\\u0645\"},calendar:{sameDay:\"[\\u0622\\u062c \\u0628\\u0648\\u0642\\u062a] LT\",nextDay:\"[\\u06a9\\u0644 \\u0628\\u0648\\u0642\\u062a] LT\",nextWeek:\"dddd [\\u0628\\u0648\\u0642\\u062a] LT\",lastDay:\"[\\u06af\\u0630\\u0634\\u062a\\u06c1 \\u0631\\u0648\\u0632 \\u0628\\u0648\\u0642\\u062a] LT\",lastWeek:\"[\\u06af\\u0630\\u0634\\u062a\\u06c1] dddd [\\u0628\\u0648\\u0642\\u062a] LT\",sameElse:\"L\"},relativeTime:{future:\"%s \\u0628\\u0639\\u062f\",past:\"%s \\u0642\\u0628\\u0644\",s:\"\\u0686\\u0646\\u062f \\u0633\\u06cc\\u06a9\\u0646\\u0688\",ss:\"%d \\u0633\\u06cc\\u06a9\\u0646\\u0688\",m:\"\\u0627\\u06cc\\u06a9 \\u0645\\u0646\\u0679\",mm:\"%d \\u0645\\u0646\\u0679\",h:\"\\u0627\\u06cc\\u06a9 \\u06af\\u06be\\u0646\\u0679\\u06c1\",hh:\"%d \\u06af\\u06be\\u0646\\u0679\\u06d2\",d:\"\\u0627\\u06cc\\u06a9 \\u062f\\u0646\",dd:\"%d \\u062f\\u0646\",M:\"\\u0627\\u06cc\\u06a9 \\u0645\\u0627\\u06c1\",MM:\"%d \\u0645\\u0627\\u06c1\",y:\"\\u0627\\u06cc\\u06a9 \\u0633\\u0627\\u0644\",yy:\"%d \\u0633\\u0627\\u0644\"},preparse:function(e){return e.replace(/\\u060c/g,\",\")},postformat:function(e){return e.replace(/,/g,\"\\u060c\")},week:{dow:1,doy:4}}),l.defineLocale(\"uz-latn\",{months:\"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr\".split(\"_\"),monthsShort:\"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek\".split(\"_\"),weekdays:\"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba\".split(\"_\"),weekdaysShort:\"Yak_Dush_Sesh_Chor_Pay_Jum_Shan\".split(\"_\"),weekdaysMin:\"Ya_Du_Se_Cho_Pa_Ju_Sha\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"D MMMM YYYY, dddd HH:mm\"},calendar:{sameDay:\"[Bugun soat] LT [da]\",nextDay:\"[Ertaga] LT [da]\",nextWeek:\"dddd [kuni soat] LT [da]\",lastDay:\"[Kecha soat] LT [da]\",lastWeek:\"[O'tgan] dddd [kuni soat] LT [da]\",sameElse:\"L\"},relativeTime:{future:\"Yaqin %s ichida\",past:\"Bir necha %s oldin\",s:\"soniya\",ss:\"%d soniya\",m:\"bir daqiqa\",mm:\"%d daqiqa\",h:\"bir soat\",hh:\"%d soat\",d:\"bir kun\",dd:\"%d kun\",M:\"bir oy\",MM:\"%d oy\",y:\"bir yil\",yy:\"%d yil\"},week:{dow:1,doy:7}}),l.defineLocale(\"uz\",{months:\"\\u044f\\u043d\\u0432\\u0430\\u0440_\\u0444\\u0435\\u0432\\u0440\\u0430\\u043b_\\u043c\\u0430\\u0440\\u0442_\\u0430\\u043f\\u0440\\u0435\\u043b_\\u043c\\u0430\\u0439_\\u0438\\u044e\\u043d_\\u0438\\u044e\\u043b_\\u0430\\u0432\\u0433\\u0443\\u0441\\u0442_\\u0441\\u0435\\u043d\\u0442\\u044f\\u0431\\u0440_\\u043e\\u043a\\u0442\\u044f\\u0431\\u0440_\\u043d\\u043e\\u044f\\u0431\\u0440_\\u0434\\u0435\\u043a\\u0430\\u0431\\u0440\".split(\"_\"),monthsShort:\"\\u044f\\u043d\\u0432_\\u0444\\u0435\\u0432_\\u043c\\u0430\\u0440_\\u0430\\u043f\\u0440_\\u043c\\u0430\\u0439_\\u0438\\u044e\\u043d_\\u0438\\u044e\\u043b_\\u0430\\u0432\\u0433_\\u0441\\u0435\\u043d_\\u043e\\u043a\\u0442_\\u043d\\u043e\\u044f_\\u0434\\u0435\\u043a\".split(\"_\"),weekdays:\"\\u042f\\u043a\\u0448\\u0430\\u043d\\u0431\\u0430_\\u0414\\u0443\\u0448\\u0430\\u043d\\u0431\\u0430_\\u0421\\u0435\\u0448\\u0430\\u043d\\u0431\\u0430_\\u0427\\u043e\\u0440\\u0448\\u0430\\u043d\\u0431\\u0430_\\u041f\\u0430\\u0439\\u0448\\u0430\\u043d\\u0431\\u0430_\\u0416\\u0443\\u043c\\u0430_\\u0428\\u0430\\u043d\\u0431\\u0430\".split(\"_\"),weekdaysShort:\"\\u042f\\u043a\\u0448_\\u0414\\u0443\\u0448_\\u0421\\u0435\\u0448_\\u0427\\u043e\\u0440_\\u041f\\u0430\\u0439_\\u0416\\u0443\\u043c_\\u0428\\u0430\\u043d\".split(\"_\"),weekdaysMin:\"\\u042f\\u043a_\\u0414\\u0443_\\u0421\\u0435_\\u0427\\u043e_\\u041f\\u0430_\\u0416\\u0443_\\u0428\\u0430\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"D MMMM YYYY, dddd HH:mm\"},calendar:{sameDay:\"[\\u0411\\u0443\\u0433\\u0443\\u043d \\u0441\\u043e\\u0430\\u0442] LT [\\u0434\\u0430]\",nextDay:\"[\\u042d\\u0440\\u0442\\u0430\\u0433\\u0430] LT [\\u0434\\u0430]\",nextWeek:\"dddd [\\u043a\\u0443\\u043d\\u0438 \\u0441\\u043e\\u0430\\u0442] LT [\\u0434\\u0430]\",lastDay:\"[\\u041a\\u0435\\u0447\\u0430 \\u0441\\u043e\\u0430\\u0442] LT [\\u0434\\u0430]\",lastWeek:\"[\\u0423\\u0442\\u0433\\u0430\\u043d] dddd [\\u043a\\u0443\\u043d\\u0438 \\u0441\\u043e\\u0430\\u0442] LT [\\u0434\\u0430]\",sameElse:\"L\"},relativeTime:{future:\"\\u042f\\u043a\\u0438\\u043d %s \\u0438\\u0447\\u0438\\u0434\\u0430\",past:\"\\u0411\\u0438\\u0440 \\u043d\\u0435\\u0447\\u0430 %s \\u043e\\u043b\\u0434\\u0438\\u043d\",s:\"\\u0444\\u0443\\u0440\\u0441\\u0430\\u0442\",ss:\"%d \\u0444\\u0443\\u0440\\u0441\\u0430\\u0442\",m:\"\\u0431\\u0438\\u0440 \\u0434\\u0430\\u043a\\u0438\\u043a\\u0430\",mm:\"%d \\u0434\\u0430\\u043a\\u0438\\u043a\\u0430\",h:\"\\u0431\\u0438\\u0440 \\u0441\\u043e\\u0430\\u0442\",hh:\"%d \\u0441\\u043e\\u0430\\u0442\",d:\"\\u0431\\u0438\\u0440 \\u043a\\u0443\\u043d\",dd:\"%d \\u043a\\u0443\\u043d\",M:\"\\u0431\\u0438\\u0440 \\u043e\\u0439\",MM:\"%d \\u043e\\u0439\",y:\"\\u0431\\u0438\\u0440 \\u0439\\u0438\\u043b\",yy:\"%d \\u0439\\u0438\\u043b\"},week:{dow:1,doy:7}}),l.defineLocale(\"vi\",{months:\"th\\xe1ng 1_th\\xe1ng 2_th\\xe1ng 3_th\\xe1ng 4_th\\xe1ng 5_th\\xe1ng 6_th\\xe1ng 7_th\\xe1ng 8_th\\xe1ng 9_th\\xe1ng 10_th\\xe1ng 11_th\\xe1ng 12\".split(\"_\"),monthsShort:\"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12\".split(\"_\"),monthsParseExact:!0,weekdays:\"ch\\u1ee7 nh\\u1eadt_th\\u1ee9 hai_th\\u1ee9 ba_th\\u1ee9 t\\u01b0_th\\u1ee9 n\\u0103m_th\\u1ee9 s\\xe1u_th\\u1ee9 b\\u1ea3y\".split(\"_\"),weekdaysShort:\"CN_T2_T3_T4_T5_T6_T7\".split(\"_\"),weekdaysMin:\"CN_T2_T3_T4_T5_T6_T7\".split(\"_\"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,a,t){return e<12?t?\"sa\":\"SA\":t?\"ch\":\"CH\"},longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM [n\\u0103m] YYYY\",LLL:\"D MMMM [n\\u0103m] YYYY HH:mm\",LLLL:\"dddd, D MMMM [n\\u0103m] YYYY HH:mm\",l:\"DD/M/YYYY\",ll:\"D MMM YYYY\",lll:\"D MMM YYYY HH:mm\",llll:\"ddd, D MMM YYYY HH:mm\"},calendar:{sameDay:\"[H\\xf4m nay l\\xfac] LT\",nextDay:\"[Ng\\xe0y mai l\\xfac] LT\",nextWeek:\"dddd [tu\\u1ea7n t\\u1edbi l\\xfac] LT\",lastDay:\"[H\\xf4m qua l\\xfac] LT\",lastWeek:\"dddd [tu\\u1ea7n r\\u1ed3i l\\xfac] LT\",sameElse:\"L\"},relativeTime:{future:\"%s t\\u1edbi\",past:\"%s tr\\u01b0\\u1edbc\",s:\"v\\xe0i gi\\xe2y\",ss:\"%d gi\\xe2y\",m:\"m\\u1ed9t ph\\xfat\",mm:\"%d ph\\xfat\",h:\"m\\u1ed9t gi\\u1edd\",hh:\"%d gi\\u1edd\",d:\"m\\u1ed9t ng\\xe0y\",dd:\"%d ng\\xe0y\",M:\"m\\u1ed9t th\\xe1ng\",MM:\"%d th\\xe1ng\",y:\"m\\u1ed9t n\\u0103m\",yy:\"%d n\\u0103m\"},dayOfMonthOrdinalParse:/\\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}}),l.defineLocale(\"x-pseudo\",{months:\"J~\\xe1\\xf1\\xfa\\xe1~r\\xfd_F~\\xe9br\\xfa~\\xe1r\\xfd_~M\\xe1rc~h_\\xc1p~r\\xedl_~M\\xe1\\xfd_~J\\xfa\\xf1\\xe9~_J\\xfal~\\xfd_\\xc1\\xfa~g\\xfast~_S\\xe9p~t\\xe9mb~\\xe9r_\\xd3~ct\\xf3b~\\xe9r_\\xd1~\\xf3v\\xe9m~b\\xe9r_~D\\xe9c\\xe9~mb\\xe9r\".split(\"_\"),monthsShort:\"J~\\xe1\\xf1_~F\\xe9b_~M\\xe1r_~\\xc1pr_~M\\xe1\\xfd_~J\\xfa\\xf1_~J\\xfal_~\\xc1\\xfag_~S\\xe9p_~\\xd3ct_~\\xd1\\xf3v_~D\\xe9c\".split(\"_\"),monthsParseExact:!0,weekdays:\"S~\\xfa\\xf1d\\xe1~\\xfd_M\\xf3~\\xf1d\\xe1\\xfd~_T\\xfa\\xe9~sd\\xe1\\xfd~_W\\xe9d~\\xf1\\xe9sd~\\xe1\\xfd_T~h\\xfars~d\\xe1\\xfd_~Fr\\xedd~\\xe1\\xfd_S~\\xe1t\\xfar~d\\xe1\\xfd\".split(\"_\"),weekdaysShort:\"S~\\xfa\\xf1_~M\\xf3\\xf1_~T\\xfa\\xe9_~W\\xe9d_~Th\\xfa_~Fr\\xed_~S\\xe1t\".split(\"_\"),weekdaysMin:\"S~\\xfa_M\\xf3~_T\\xfa_~W\\xe9_T~h_Fr~_S\\xe1\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[T~\\xf3d\\xe1~\\xfd \\xe1t] LT\",nextDay:\"[T~\\xf3m\\xf3~rr\\xf3~w \\xe1t] LT\",nextWeek:\"dddd [\\xe1t] LT\",lastDay:\"[\\xdd~\\xe9st~\\xe9rd\\xe1~\\xfd \\xe1t] LT\",lastWeek:\"[L~\\xe1st] dddd [\\xe1t] LT\",sameElse:\"L\"},relativeTime:{future:\"\\xed~\\xf1 %s\",past:\"%s \\xe1~g\\xf3\",s:\"\\xe1 ~f\\xe9w ~s\\xe9c\\xf3~\\xf1ds\",ss:\"%d s~\\xe9c\\xf3\\xf1~ds\",m:\"\\xe1 ~m\\xed\\xf1~\\xfat\\xe9\",mm:\"%d m~\\xed\\xf1\\xfa~t\\xe9s\",h:\"\\xe1~\\xf1 h\\xf3~\\xfar\",hh:\"%d h~\\xf3\\xfars\",d:\"\\xe1 ~d\\xe1\\xfd\",dd:\"%d d~\\xe1\\xfds\",M:\"\\xe1 ~m\\xf3\\xf1~th\",MM:\"%d m~\\xf3\\xf1t~hs\",y:\"\\xe1 ~\\xfd\\xe9\\xe1r\",yy:\"%d \\xfd~\\xe9\\xe1rs\"},dayOfMonthOrdinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?\"th\":1===a?\"st\":2===a?\"nd\":3===a?\"rd\":\"th\")},week:{dow:1,doy:4}}),l.defineLocale(\"yo\",{months:\"S\\u1eb9\\u0301r\\u1eb9\\u0301_E\\u0300re\\u0300le\\u0300_\\u1eb8r\\u1eb9\\u0300na\\u0300_I\\u0300gbe\\u0301_E\\u0300bibi_O\\u0300ku\\u0300du_Ag\\u1eb9mo_O\\u0300gu\\u0301n_Owewe_\\u1ecc\\u0300wa\\u0300ra\\u0300_Be\\u0301lu\\u0301_\\u1ecc\\u0300p\\u1eb9\\u0300\\u0300\".split(\"_\"),monthsShort:\"S\\u1eb9\\u0301r_E\\u0300rl_\\u1eb8rn_I\\u0300gb_E\\u0300bi_O\\u0300ku\\u0300_Ag\\u1eb9_O\\u0300gu\\u0301_Owe_\\u1ecc\\u0300wa\\u0300_Be\\u0301l_\\u1ecc\\u0300p\\u1eb9\\u0300\\u0300\".split(\"_\"),weekdays:\"A\\u0300i\\u0300ku\\u0301_Aje\\u0301_I\\u0300s\\u1eb9\\u0301gun_\\u1eccj\\u1ecd\\u0301ru\\u0301_\\u1eccj\\u1ecd\\u0301b\\u1ecd_\\u1eb8ti\\u0300_A\\u0300ba\\u0301m\\u1eb9\\u0301ta\".split(\"_\"),weekdaysShort:\"A\\u0300i\\u0300k_Aje\\u0301_I\\u0300s\\u1eb9\\u0301_\\u1eccjr_\\u1eccjb_\\u1eb8ti\\u0300_A\\u0300ba\\u0301\".split(\"_\"),weekdaysMin:\"A\\u0300i\\u0300_Aj_I\\u0300s_\\u1eccr_\\u1eccb_\\u1eb8t_A\\u0300b\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendar:{sameDay:\"[O\\u0300ni\\u0300 ni] LT\",nextDay:\"[\\u1ecc\\u0300la ni] LT\",nextWeek:\"dddd [\\u1eccs\\u1eb9\\u0300 to\\u0301n'b\\u1ecd] [ni] LT\",lastDay:\"[A\\u0300na ni] LT\",lastWeek:\"dddd [\\u1eccs\\u1eb9\\u0300 to\\u0301l\\u1ecd\\u0301] [ni] LT\",sameElse:\"L\"},relativeTime:{future:\"ni\\u0301 %s\",past:\"%s k\\u1ecdja\\u0301\",s:\"i\\u0300s\\u1eb9ju\\u0301 aaya\\u0301 die\",ss:\"aaya\\u0301 %d\",m:\"i\\u0300s\\u1eb9ju\\u0301 kan\",mm:\"i\\u0300s\\u1eb9ju\\u0301 %d\",h:\"wa\\u0301kati kan\",hh:\"wa\\u0301kati %d\",d:\"\\u1ecdj\\u1ecd\\u0301 kan\",dd:\"\\u1ecdj\\u1ecd\\u0301 %d\",M:\"osu\\u0300 kan\",MM:\"osu\\u0300 %d\",y:\"\\u1ecddu\\u0301n kan\",yy:\"\\u1ecddu\\u0301n %d\"},dayOfMonthOrdinalParse:/\\u1ecdj\\u1ecd\\u0301\\s\\d{1,2}/,ordinal:\"\\u1ecdj\\u1ecd\\u0301 %d\",week:{dow:1,doy:4}}),l.defineLocale(\"zh-cn\",{months:\"\\u4e00\\u6708_\\u4e8c\\u6708_\\u4e09\\u6708_\\u56db\\u6708_\\u4e94\\u6708_\\u516d\\u6708_\\u4e03\\u6708_\\u516b\\u6708_\\u4e5d\\u6708_\\u5341\\u6708_\\u5341\\u4e00\\u6708_\\u5341\\u4e8c\\u6708\".split(\"_\"),monthsShort:\"1\\u6708_2\\u6708_3\\u6708_4\\u6708_5\\u6708_6\\u6708_7\\u6708_8\\u6708_9\\u6708_10\\u6708_11\\u6708_12\\u6708\".split(\"_\"),weekdays:\"\\u661f\\u671f\\u65e5_\\u661f\\u671f\\u4e00_\\u661f\\u671f\\u4e8c_\\u661f\\u671f\\u4e09_\\u661f\\u671f\\u56db_\\u661f\\u671f\\u4e94_\\u661f\\u671f\\u516d\".split(\"_\"),weekdaysShort:\"\\u5468\\u65e5_\\u5468\\u4e00_\\u5468\\u4e8c_\\u5468\\u4e09_\\u5468\\u56db_\\u5468\\u4e94_\\u5468\\u516d\".split(\"_\"),weekdaysMin:\"\\u65e5_\\u4e00_\\u4e8c_\\u4e09_\\u56db_\\u4e94_\\u516d\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY/MM/DD\",LL:\"YYYY\\u5e74M\\u6708D\\u65e5\",LLL:\"YYYY\\u5e74M\\u6708D\\u65e5Ah\\u70b9mm\\u5206\",LLLL:\"YYYY\\u5e74M\\u6708D\\u65e5ddddAh\\u70b9mm\\u5206\",l:\"YYYY/M/D\",ll:\"YYYY\\u5e74M\\u6708D\\u65e5\",lll:\"YYYY\\u5e74M\\u6708D\\u65e5 HH:mm\",llll:\"YYYY\\u5e74M\\u6708D\\u65e5dddd HH:mm\"},meridiemParse:/\\u51cc\\u6668|\\u65e9\\u4e0a|\\u4e0a\\u5348|\\u4e2d\\u5348|\\u4e0b\\u5348|\\u665a\\u4e0a/,meridiemHour:function(e,a){return 12===e&&(e=0),\"\\u51cc\\u6668\"===a||\"\\u65e9\\u4e0a\"===a||\"\\u4e0a\\u5348\"===a?e:\"\\u4e0b\\u5348\"===a||\"\\u665a\\u4e0a\"===a?e+12:11<=e?e:e+12},meridiem:function(e,a,t){var s=100*e+a;return s<600?\"\\u51cc\\u6668\":s<900?\"\\u65e9\\u4e0a\":s<1130?\"\\u4e0a\\u5348\":s<1230?\"\\u4e2d\\u5348\":s<1800?\"\\u4e0b\\u5348\":\"\\u665a\\u4e0a\"},calendar:{sameDay:\"[\\u4eca\\u5929]LT\",nextDay:\"[\\u660e\\u5929]LT\",nextWeek:\"[\\u4e0b]ddddLT\",lastDay:\"[\\u6628\\u5929]LT\",lastWeek:\"[\\u4e0a]ddddLT\",sameElse:\"L\"},dayOfMonthOrdinalParse:/\\d{1,2}(\\u65e5|\\u6708|\\u5468)/,ordinal:function(e,a){switch(a){case\"d\":case\"D\":case\"DDD\":return e+\"\\u65e5\";case\"M\":return e+\"\\u6708\";case\"w\":case\"W\":return e+\"\\u5468\";default:return e}},relativeTime:{future:\"%s\\u5185\",past:\"%s\\u524d\",s:\"\\u51e0\\u79d2\",ss:\"%d \\u79d2\",m:\"1 \\u5206\\u949f\",mm:\"%d \\u5206\\u949f\",h:\"1 \\u5c0f\\u65f6\",hh:\"%d \\u5c0f\\u65f6\",d:\"1 \\u5929\",dd:\"%d \\u5929\",M:\"1 \\u4e2a\\u6708\",MM:\"%d \\u4e2a\\u6708\",y:\"1 \\u5e74\",yy:\"%d \\u5e74\"},week:{dow:1,doy:4}}),l.defineLocale(\"zh-hk\",{months:\"\\u4e00\\u6708_\\u4e8c\\u6708_\\u4e09\\u6708_\\u56db\\u6708_\\u4e94\\u6708_\\u516d\\u6708_\\u4e03\\u6708_\\u516b\\u6708_\\u4e5d\\u6708_\\u5341\\u6708_\\u5341\\u4e00\\u6708_\\u5341\\u4e8c\\u6708\".split(\"_\"),monthsShort:\"1\\u6708_2\\u6708_3\\u6708_4\\u6708_5\\u6708_6\\u6708_7\\u6708_8\\u6708_9\\u6708_10\\u6708_11\\u6708_12\\u6708\".split(\"_\"),weekdays:\"\\u661f\\u671f\\u65e5_\\u661f\\u671f\\u4e00_\\u661f\\u671f\\u4e8c_\\u661f\\u671f\\u4e09_\\u661f\\u671f\\u56db_\\u661f\\u671f\\u4e94_\\u661f\\u671f\\u516d\".split(\"_\"),weekdaysShort:\"\\u9031\\u65e5_\\u9031\\u4e00_\\u9031\\u4e8c_\\u9031\\u4e09_\\u9031\\u56db_\\u9031\\u4e94_\\u9031\\u516d\".split(\"_\"),weekdaysMin:\"\\u65e5_\\u4e00_\\u4e8c_\\u4e09_\\u56db_\\u4e94_\\u516d\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY/MM/DD\",LL:\"YYYY\\u5e74M\\u6708D\\u65e5\",LLL:\"YYYY\\u5e74M\\u6708D\\u65e5 HH:mm\",LLLL:\"YYYY\\u5e74M\\u6708D\\u65e5dddd HH:mm\",l:\"YYYY/M/D\",ll:\"YYYY\\u5e74M\\u6708D\\u65e5\",lll:\"YYYY\\u5e74M\\u6708D\\u65e5 HH:mm\",llll:\"YYYY\\u5e74M\\u6708D\\u65e5dddd HH:mm\"},meridiemParse:/\\u51cc\\u6668|\\u65e9\\u4e0a|\\u4e0a\\u5348|\\u4e2d\\u5348|\\u4e0b\\u5348|\\u665a\\u4e0a/,meridiemHour:function(e,a){return 12===e&&(e=0),\"\\u51cc\\u6668\"===a||\"\\u65e9\\u4e0a\"===a||\"\\u4e0a\\u5348\"===a?e:\"\\u4e2d\\u5348\"===a?11<=e?e:e+12:\"\\u4e0b\\u5348\"===a||\"\\u665a\\u4e0a\"===a?e+12:void 0},meridiem:function(e,a,t){var s=100*e+a;return s<600?\"\\u51cc\\u6668\":s<900?\"\\u65e9\\u4e0a\":s<1130?\"\\u4e0a\\u5348\":s<1230?\"\\u4e2d\\u5348\":s<1800?\"\\u4e0b\\u5348\":\"\\u665a\\u4e0a\"},calendar:{sameDay:\"[\\u4eca\\u5929]LT\",nextDay:\"[\\u660e\\u5929]LT\",nextWeek:\"[\\u4e0b]ddddLT\",lastDay:\"[\\u6628\\u5929]LT\",lastWeek:\"[\\u4e0a]ddddLT\",sameElse:\"L\"},dayOfMonthOrdinalParse:/\\d{1,2}(\\u65e5|\\u6708|\\u9031)/,ordinal:function(e,a){switch(a){case\"d\":case\"D\":case\"DDD\":return e+\"\\u65e5\";case\"M\":return e+\"\\u6708\";case\"w\":case\"W\":return e+\"\\u9031\";default:return e}},relativeTime:{future:\"%s\\u5167\",past:\"%s\\u524d\",s:\"\\u5e7e\\u79d2\",ss:\"%d \\u79d2\",m:\"1 \\u5206\\u9418\",mm:\"%d \\u5206\\u9418\",h:\"1 \\u5c0f\\u6642\",hh:\"%d \\u5c0f\\u6642\",d:\"1 \\u5929\",dd:\"%d \\u5929\",M:\"1 \\u500b\\u6708\",MM:\"%d \\u500b\\u6708\",y:\"1 \\u5e74\",yy:\"%d \\u5e74\"}}),l.defineLocale(\"zh-tw\",{months:\"\\u4e00\\u6708_\\u4e8c\\u6708_\\u4e09\\u6708_\\u56db\\u6708_\\u4e94\\u6708_\\u516d\\u6708_\\u4e03\\u6708_\\u516b\\u6708_\\u4e5d\\u6708_\\u5341\\u6708_\\u5341\\u4e00\\u6708_\\u5341\\u4e8c\\u6708\".split(\"_\"),monthsShort:\"1\\u6708_2\\u6708_3\\u6708_4\\u6708_5\\u6708_6\\u6708_7\\u6708_8\\u6708_9\\u6708_10\\u6708_11\\u6708_12\\u6708\".split(\"_\"),weekdays:\"\\u661f\\u671f\\u65e5_\\u661f\\u671f\\u4e00_\\u661f\\u671f\\u4e8c_\\u661f\\u671f\\u4e09_\\u661f\\u671f\\u56db_\\u661f\\u671f\\u4e94_\\u661f\\u671f\\u516d\".split(\"_\"),weekdaysShort:\"\\u9031\\u65e5_\\u9031\\u4e00_\\u9031\\u4e8c_\\u9031\\u4e09_\\u9031\\u56db_\\u9031\\u4e94_\\u9031\\u516d\".split(\"_\"),weekdaysMin:\"\\u65e5_\\u4e00_\\u4e8c_\\u4e09_\\u56db_\\u4e94_\\u516d\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY/MM/DD\",LL:\"YYYY\\u5e74M\\u6708D\\u65e5\",LLL:\"YYYY\\u5e74M\\u6708D\\u65e5 HH:mm\",LLLL:\"YYYY\\u5e74M\\u6708D\\u65e5dddd HH:mm\",l:\"YYYY/M/D\",ll:\"YYYY\\u5e74M\\u6708D\\u65e5\",lll:\"YYYY\\u5e74M\\u6708D\\u65e5 HH:mm\",llll:\"YYYY\\u5e74M\\u6708D\\u65e5dddd HH:mm\"},meridiemParse:/\\u51cc\\u6668|\\u65e9\\u4e0a|\\u4e0a\\u5348|\\u4e2d\\u5348|\\u4e0b\\u5348|\\u665a\\u4e0a/,meridiemHour:function(e,a){return 12===e&&(e=0),\"\\u51cc\\u6668\"===a||\"\\u65e9\\u4e0a\"===a||\"\\u4e0a\\u5348\"===a?e:\"\\u4e2d\\u5348\"===a?11<=e?e:e+12:\"\\u4e0b\\u5348\"===a||\"\\u665a\\u4e0a\"===a?e+12:void 0},meridiem:function(e,a,t){var s=100*e+a;return s<600?\"\\u51cc\\u6668\":s<900?\"\\u65e9\\u4e0a\":s<1130?\"\\u4e0a\\u5348\":s<1230?\"\\u4e2d\\u5348\":s<1800?\"\\u4e0b\\u5348\":\"\\u665a\\u4e0a\"},calendar:{sameDay:\"[\\u4eca\\u5929] LT\",nextDay:\"[\\u660e\\u5929] LT\",nextWeek:\"[\\u4e0b]dddd LT\",lastDay:\"[\\u6628\\u5929] LT\",lastWeek:\"[\\u4e0a]dddd LT\",sameElse:\"L\"},dayOfMonthOrdinalParse:/\\d{1,2}(\\u65e5|\\u6708|\\u9031)/,ordinal:function(e,a){switch(a){case\"d\":case\"D\":case\"DDD\":return e+\"\\u65e5\";case\"M\":return e+\"\\u6708\";case\"w\":case\"W\":return e+\"\\u9031\";default:return e}},relativeTime:{future:\"%s\\u5167\",past:\"%s\\u524d\",s:\"\\u5e7e\\u79d2\",ss:\"%d \\u79d2\",m:\"1 \\u5206\\u9418\",mm:\"%d \\u5206\\u9418\",h:\"1 \\u5c0f\\u6642\",hh:\"%d \\u5c0f\\u6642\",d:\"1 \\u5929\",dd:\"%d \\u5929\",M:\"1 \\u500b\\u6708\",MM:\"%d \\u500b\\u6708\",y:\"1 \\u5e74\",yy:\"%d \\u5e74\"}}),l.locale(\"en\"),l});",
"type": "application/javascript",
"title": "$:/plugins/kixam/moment/moment.js",
"module-type": "library"
},
"$:/plugins/kixam/moment/icon": {
"text": "<svg height=\"22pt\" width=\"22pt\" viewBox=\"0 0 128 128\">\n<path d=\"m 64.116816,0 -54.4965957,31.959746 0.00139,63.919491 54.4965967,31.959743 54.496603,-31.959743 0,-63.919491 L 64.118211,0 Z M 63.842544,28.318892 A 35.326327,35.326327 0 0 1 99.17259,63.645219 35.326327,35.326327 0 0 1 63.842544,98.975265 35.326327,35.326327 0 0 1 28.516216,63.645219 35.326327,35.326327 0 0 1 63.842544,28.318892 Z m 0,4.775599 c -16.870097,0 -30.550728,13.680631 -30.550728,30.550728 0,16.874746 13.680631,30.555841 30.550728,30.555841 16.874745,0 30.555841,-13.681095 30.555841,-30.555841 0,-16.870097 -13.681096,-30.550728 -30.555841,-30.550728 z m 0,1.906893 c 1.06455,0 1.910611,0.860008 1.910611,1.915725 l 0,28.638722 -17.190856,0 c -1.027361,0 -1.905499,-0.85536 -1.905499,-1.910612 0,-1.059902 0.854895,-1.905963 1.905499,-1.905963 l 13.374282,0 0,-24.81285 c 0,-1.06362 0.855359,-1.925022 1.905963,-1.925022 z\"/>\n</svg>\n",
"title": "$:/plugins/kixam/moment/icon",
"tags": "$:/tags/Image",
"type": "text/vnd.tiddlywiki"
},
"$:/plugins/kixam/moment/readme": {
"text": "! moment.js\n\nA plugin for [[TiddlyWiki|http://tiddlywiki.com]] 5, that provides the [[moment.js library|http://momentjs.com]].\n",
"title": "$:/plugins/kixam/moment/readme"
},
"$:/plugins/kixam/moment/license": {
"text": "!! moment.js licence: [[MIT|http://mit-license.org/]]\n```\nCopyright (c) 2011-2015 Tim Wood, Iskren Chernev, Moment.js contributors\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n```\n\n!! Plugin license: [[BSD 2-clause simplified license|http://www.freebsd.org/copyright/freebsd-license.html]]\n```\nCopyright (c) 2015, kixam\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n```\n",
"title": "$:/plugins/kixam/moment/license"
}
}
}
{
"tiddlers": {
"$:/plugins/kixam/timeline/lib.utils.js": {
"title": "$:/plugins/kixam/timeline/lib.utils.js",
"text": "/*\\\ntitle: $:/plugins/kixam/timeline/lib.utils.js\ntype: application/javascript\nmodule-type: library\n\n A library of reusable functions, used in the TW5-visjsTimeline plugin\n\n\\*/\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\n\n(function() {\n 'use strict';\n\n // parseWidgetAttributes\n //\n // Utility to handle configuration attributes for a widget.\n // It handles validation, coercion and assignment of attribute values to the current widgets fields.\n // Parent and nextSibling are required so that any errors can be reported\n //\n // The attributeDefns are a object representing with a field for each attribute expected by the widget\n //\n // Each definition field is an object with two fields\n // type - This is used to coerce values before assignment (only string and integer are currently supported)\n // defaultValue - When an attribute is not provided in the plugin call, then this value should be used instead\n //\n // If an attribute is passed to the plugin that is not expected (i.e. in the attributeDefns object), then this function returns false\n // and an error message is output on the parent. This should be shown instead of the widget's usual view.\n //\n function parseWidgetAttributes(self, attributeDefns) {\n var errors = [];\n for (var attr in self.attributes) {\n if (attributeDefns[attr] === undefined) {\n errors.push(attr);\n } else {\n if (attributeDefns[attr].type == \"string\") {\n self[attr] = self.attributes[attr];\n } else if (attributeDefns[attr].type == \"integer\") {\n self[attr] = parseInt(self.attributes[attr] );\n if (isNaN(self[attr])) {\n delete self[attr];\n }\n }\n }\n }\n if (errors.length !== 0) {\n return errors;\n }\n for (var attrDefn in attributeDefns) {\n if (self[attrDefn] === undefined) {\n self[attrDefn] = attributeDefns[attrDefn].defaultValue;\n }\n }\n return undefined;\n }\n\n function displayTiddler(self,toTiddlerTitle){\n var domTiddler = self.parentDomNode.parentNode;\n var bounds = domTiddler.getBoundingClientRect();\n var e = {\n type: \"tm-navigate\",\n navigateTo: toTiddlerTitle,\n navigateFromTitle: self.getVariable(\"currentTiddler\"),\n navigateFromNode: domTiddler,\n navigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n }\n };\n self.dispatchEvent(e);\n }\n\n function enhancedColorStyle(csscolor) {\n var color = $tw.utils.parseCSSColor(csscolor);\n var style = null;\n if(color !== null) {\n for(var i=0;i<3;i++) color[i] = Math.floor(240 + color[i] / 17);\n\n style = \"border-color: \" + csscolor + \";\"\n + \"background-color: rgb(\" + (color[0]).toString()+\",\"\n + (color[1]).toString()+\",\"\n + (color[2]).toString()+\");\";\n }\n return style;\n }\n\n // adapted from $tw.utils.error of $:/boot/boot.js\n function dispError(message, title, subtitle) {\n console.error($tw.node ? \"\\x1b[1;31m\" + message + \"\\x1b[0m\" : message);\n if($tw.browser && !$tw.node) {\n // Display an error message to the user\n var dm = $tw.utils.domMaker,\n heading = dm(\"h1\",{text: (title || \"Error with vis.js Timeline\")}),\n prompt = dm(\"div\",{text: (subtitle || \"Please check the following:\"), \"class\": \"tc-error-prompt\"}),\n message = dm(\"div\",{innerHTML: message, attributes: {style: \"text-align: left;\"}}),\n button = dm(\"button\",{text: \"close\"}),\n form = dm(\"form\",{children: [heading,prompt,message,button], \"class\": \"tc-error-form\", attributes: {style: \"background-color: rgb(75, 75, 255); border: 8px solid rgb(0, 0, 255);\"}});\n document.body.insertBefore(form,document.body.firstChild);\n form.addEventListener(\"submit\",function(event) {\n document.body.removeChild(form);\n event.preventDefault();\n return false;\n },true);\n return null;\n } else if(!$tw.browser) {\n // Exit if we're under node.js\n process.exit(1);\n }\n }\n\n function setTiddlerField(tiddlerTitle, field, value) {\n if(tiddlerTitle && field) {\n var fields = {\n title: tiddlerTitle\n };\n fields[field] = value;\n var tiddler = $tw.wiki.getTiddler(tiddlerTitle, true);\n $tw.wiki.addTiddler(new $tw.Tiddler(tiddler, fields));\n }\n }\n\n exports.parseWidgetAttributes = parseWidgetAttributes;\n exports.displayTiddler = displayTiddler;\n exports.enhancedColorStyle = enhancedColorStyle;\n exports.dispError = dispError;\n exports.setTiddlerField = setTiddlerField;\n}\n());\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/kixam/timeline/icon": {
"title": "$:/plugins/kixam/timeline/icon",
"tags": "$:/tags/Image",
"text": "<svg height=\"22pt\" width=\"22pt\" viewBox=\"0 0 128 128\">\n<path fill-rule=\"evenodd\" d=\"m64 0 54.56 32v64l-54.56 32-54.56-32v-64zm-48.429 75.635c8.5524 1.5516 29.568 7.708 27.545 6.755-10.977-5.172-27.059-20.046-27.059-20.046l26.814-23.294s12.652-15.314 29.23-16.023c3.6806-.15747 13.92-7.5832 19.605-5.2303 4.0461 1.6746 7.6113 13.276 9.3244 19.035 4.6497 15.63 3.1019 46.52 3.1019 46.52s6.4391-.30692 7.0193 6.8629c.18694 2.3102-.0602 10.297-9.1531 10.615-28.973 1.01-61.939-6.115-86.429-25.195zm57.684-31.244a17.066 17.066 0 0 0 -17.073 17.073 17.066 17.066 0 0 0 17.073 17.063 17.066 17.066 0 0 0 17.063 -17.063 17.066 17.066 0 0 0 -17.063 -17.073zm4.6 17.455a5.3692 5.3692 0 0 1 5.3727 5.3636 5.3692 5.3692 0 0 1 -5.3727 5.3727 5.3692 5.3692 0 0 1 -5.3727 -5.3727 5.3692 5.3692 0 0 1 5.3727 -5.3636z\"/>\n</svg>\n"
},
"$:/plugins/kixam/timeline/styles.css": {
"title": "$:/plugins/kixam/timeline/styles.css",
"tags": "[[$:/tags/Stylesheet]]",
"type": "text/css",
"text": ".vis-item .vis-dot {\n border-color: inherit;\n}\n\n.vis-item .vis-range {\n background-color: #f0f0ff;\n}\n\n.vis-labelset .vis-label {\n background-color: #fffff0;\n}\n\n.vis-labelset .vis-label .vis-inner {\n font-weight: bold;\n width: 100%;\n text-align: center;\n}\n\n.visjstimeline-navpad {\n position: relative;\n}\n\n.visjstimeline-navpad div, .visjstimeline-warning {\n z-index: 9999;\n cursor: pointer;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.visjstimeline-navpad div {\n width: 34px;\n height: 34px;\n border: 3px solid #cccccc;\n -moz-border-radius: 17px;\n border-radius: 17px;\n position: absolute;\n display: inline-block;\n text-align: center;\n padding-top: 3px;\n}\n\n.visjstimeline-navpad div:hover {\n box-shadow: 0 0 3px 3px rgba(56,207,21,0.30);\n}\n\n.visjstimeline-navpad #up {\n bottom: 50px;\n left: 55px;\n}\n\n.visjstimeline-navpad #down {\n bottom: 10px;\n left: 55px;\n}\n\n.visjstimeline-navpad #left {\n bottom: 10px;\n left: 15px;\n}\n\n.visjstimeline-navpad #right {\n bottom: 10px;\n left: 95px;\n}\n\n.visjstimeline-navpad #zoomIn {\n bottom: 10px;\n right: 15px;\n}\n\n.visjstimeline-navpad #zoomOut{\n bottom: 10px;\n right: 55px;\n}\n\n.visjstimeline-navpad #zoomExtends {\n bottom: 50px;\n right: 15px;\n}\n\n.visjstimeline-warning {\n fill: #FFFFFF;\n background-color: #EE0000;\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.75);\n top: 15px;\n right: 15px;\n width: 34px;\n height: 34px;\n position: absolute;\n display: inline-block;\n cursor: pointer;\n}\n\n.visjstimeline-warning:hover {\n background-color: #FF0000;\n}\n\n.visjstimeline-warning svg {\n width: 32px;\n height: 32px;\n margin: 1px;\n}\n\n.item-icon svg, .item-icon img {\n max-height: 14px;\n max-width: 14px;\n}\n\n.group-icon svg, .group-icon img {\n max-height: 16px;\n max-width: 16px;\n}\n"
},
"$:/plugins/kixam/timeline/license": {
"title": "$:/plugins/kixam/timeline/license",
"text": "! [[BSD 2-clause simplified license|http://www.freebsd.org/copyright/freebsd-license.html]]\n```\nCopyright (c) 2015, kixam\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n# Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n# Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n```\n"
},
"$:/plugins/kixam/timeline/readme": {
"title": "$:/plugins/kixam/timeline/readme",
"text": "! vis.js Timeline\n\nA timeline plugin for [[TiddlyWiki|http://tiddlywiki.com]] 5, using [[vis.js|http://visjs.org]].\n\n---\n\nContinued from [[emkay's plugin|https://github.com/emkayonline/tw5visjs]].\n\nProvides [[vis-timeline|https://github.com/visjs/vis-timeline]], and integrates the Timeline object.\n\nDepends on [[hammer.js plugin|https://github.com/kixam/TW5-hammer.js]] and [[moment.js plugin|https://github.com/kixam/TW5-moment.js]], which are available, along with installation instructions, on the [[demo site|http://kixam.github.io/TW5-visjsTimeline]].\n"
},
"$:/plugins/kixam/timeline/usage": {
"title": "$:/plugins/kixam/timeline/usage",
"text": "\\define createSaveCloseTiddler(title,text)\n<$action-sendmessage $message=\"tm-new-tiddler\" title=\"$title$\" text=\"$text$\" />\n<$action-sendmessage $message=\"tm-save-tiddler\" $param=\"Draft of '$title$'\" />\n<$action-sendmessage $message=\"tm-close-tiddler\" $param=\"$title$\" />\n\\end\n\n\\define demoTiddlerContents(option)\nValue for option ''$option$'' : <$edit-text tag=input tiddler='$(optionValueTiddler)$'/>\n\n!!Result\n<$visjstimeline $option$={{$(optionValueTiddler)$}} />\n\\end\n\n\\define tryit(option,value:\"\")\n<$set name=optionValueTiddler value=\"$:/temp/plugins/kixam/visjstimeline-demo-option-$option$\">\n<$set name=optionDemoTiddler value=\"Testing option '$option$'\">\n<$button>\n<$macrocall $name=createSaveCloseTiddler title=<<optionValueTiddler>> text=\"$value$\" />\n<$macrocall $name=createSaveCloseTiddler title=<<optionDemoTiddler>> text=<<demoTiddlerContents \"$option$\">> />\n<$action-navigate $to=<<optionDemoTiddler>> />\nTry it!\n</$button>\n</$set>\n</$set>\n\\end\n\n!Introduction\n\nThis project is a direct continuation of [[emkay's plugin|https://github.com/emkayonline/tw5visjs]].\n\nThe `<$visjstimeline>` widget shows a set of tiddlers on a graphical timeline. The timeline is interactive and dynamic, and can be zoomed and moved around by dragging.\n\n!Content and Attributes\n\nA list of tiddlers is specified using a filter.\n\nEach matching tiddler is shown on the timeline using its specified start date and, if provided, end date fields. The start date defaults to the 'created' field.\n\n!! Valid date format on tiddlers\n* By default dates are parsed using the [[TiddlyWiki|http://tiddlywiki.com/#TiddlyWiki]] date parser (which will handle the `created` and `modified` fields)\n* An override date format can be specified.\n* This format will apply to both the start and end dates, `customTime`, as well as `timeline.start` and `timeline.end` fields if set manually.\n* Additionally the start date or end date field on a tiddler, or the `customTime` attribute, can be set to the word `now`: this will set the date in the timeline to the date at the time the timeline is displayed.\n* Finally, any date field can use `moment`'s [[relative date calculation functions|http://momentjs.com/docs/#/manipulating/add/]] `add` or `subtract`, overloading the provided format. For instance, if `persistent` option is used, one can manually set `timeline.start` field to `moment().subtract(2,days)`, which will result in the timeline start date to be 2 days before 'now', that is 2 days before the date when the timeline is rendered. The syntax `moment(2015-10-14).add(1,days)` would compute into one day after Wednesday, 14th October, 2015, that is, Thursday, 15th. In this particular case, it is advised to set `vis.js` option `moveable` to `false`, see this plugin's `config` option.\n\n!! Relevant tiddler fields\n|!Field|!Interpretation|\n| `caption` |Used to represent the tiddler instead of the `title`.|\n| `description` |Used instead of `caption` or `title` to render description text when mouse hovers over the item.|\n| `icon` |Link to a image tiddler that will be used as the item's icon.|\n| `color` |Used to render the corresponding item or group on the timeline.|\n| `timeline.start` and `timeline.end` |If the `persistent` attribute is present, used to initialize the start and end of the contained timeline x-axis, respectively. When in use, `persistent` option will use a temporary tiddler at `$:/temp/plugins/kixam/visjstimeline/persistent/<titleOfTiddlerContainingTimeline>`. Note that, if `vis.js` option `moveable` is set to `true`, which is the default, these fields at the temporary tiddler will be silently overwritten by this plugin whenever the user zooms or moves the timeline. You can also change them manually.|\n\n!! Attributes\n\nAll attributes are optional.\n\n|!Attribute|!Description|!Default value|! |\n| `filter` |The [[TiddlerFilter|http://tiddlywiki.com/#Filters]] used to generate the list of tiddlers to display.|`!is[system]`|<<tryit filter \"[all[tiddlers]tag[Group A]]\">>|\n| `startDateField` |A field on each tiddler that defines the start date of a tiddler in the timeline.|`created`|<<tryit startDateField modified>>|\n| `endDateField` |A field on each tiddler that defines the end date of a tiddler in the timeline.|//undefined//|<<tryit endDateField created>>|\n| `format` |The format for parsing the dates, using the moment.js [[Parse string+format|http://momentjs.com/docs/#/parsing/string-format/]]. If unset, uses [[TW5 date format|http://tiddlywiki.com/#DateFormat]].|//undefined//||\n| `tipFormat` |If present, the date format used to display the starting and ending dates in the tooltip boxes when mouse gets over an item. If unset, the dates are not displayed|//undefined//|<<tryit tipFormat \"YYYY-MM-DD HH:mm:ss\">>|\n| `groupField` |A field whose value will be used to group tiddlers on the timeline.|//undefined//|<<tryit groupField color>>|\n| `customTime` |A date at which a vertical bar will be shown on the timeline. Affected by `format`. It can be moved by the user, but the new position will not be saved.|//undefined//|<<tryit customTime \"20150619\">>|\n| `groupTags` |If `groupField` field is not used and if a filtered tiddler has a tag among the given [[Title List|http://tiddlywiki.com/#Title%20List]], this tag will be used as the item's group.|//undefined//|<<tryit groupTags \"[[Group A]]\">>|\n| `boxing` |If set to `static`, the containing box will be static. If set to `auto`, the timeline will dynamically adjust its height to the items to show.|`static`|<<tryit boxing auto>>|\n| `navpad` |If set, a navpad will be shown.|//undefined//|<<tryit navpad>>|\n| `config` |Title of a tiddler which contains configuration options for the timeline in [[JSON format|http://tiddlywiki.com/#JSONTiddlers]], as per [[vis.js documentation|https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options]].|//undefined//||\n| `persistent` |If set, the x-axis range will become persistent. Uses (creates, if needed) 2 fields of the tiddler containing the timeline, namely `timeline.start` and `timeline.end`.|//undefined//|<<tryit persistent>>|\n\n!!!Notes about the `config` attribute\n* for the sake of integration, not all the options are available, please see [[the whitelist|$:/plugins/kixam/timeline/validOptions]];\n* the `navpad` is not affected by options passed through this mechanism, except for these listed below the `whitelist` under the name `navbarReactOptions`;\n* if you create or change options in your config tiddler after the timeline was drawn, you may need to have it redrawn, e.g. by editing/canceling the tiddler containing the timeline, or by changing sidebar panel back and forth.\n\n!!!Notes about the `groupField` and `groupTags` attributes\n* if the `filter` finds tiddlers that cannot be grouped according to the criteria given by either of these attributes, these tiddlers will be shown in a dedicated generic group called `Global`\n* if a tiddler representing a tag is listed by the `groupTags` attribute and has any of the relevant tiddler fields listed in the previous section, they will be used to render the group in the group margin\n\nThe content of the `<$visjstimeline>` widget is ignored.\n\n! Example Usage\n\nShow all non-system tiddlers, using their created date as the start date:\n\n`<$visjstimeline/>`\n\nShow all Tiddlers with a name starting 'Tiddler', using the born and died fields with a custom format:\n\n`<$visjstimeline filter=\"[prefix[Tiddler]]\" startDateField=\"born\" endDateField=\"died\" format=\"YYYY MMM\"/>`\n"
},
"$:/plugins/kixam/timeline/validOptions": {
"title": "$:/plugins/kixam/timeline/validOptions",
"type": "application/json",
"text": "{\n\t\"whitelist\": [\"align\",\"clickToUse\",\"end\",\"format\",\"hiddenDates\",\"margin\",\"max\",\"min\",\"moveable\",\"orientation\",\"showCurrentTime\",\"showMajorLabels\",\"showMinorLabels\",\"stack\",\"start\",\"timeAxis\",\"zoomable\",\"zoomMin\",\"zoomMax\"],\n\t\"navbarReactOptions\": [\"clickToUse\",\"max\",\"min\",\"zoomMin\",\"zoomMax\"]\n}\n"
},
"$:/plugins/kixam/timeline/vis-timeline.css": {
"title": "$:/plugins/kixam/timeline/vis-timeline.css",
"type": "text/vnd.tiddlywiki",
"tags": "$:/tags/Stylesheet",
"text": "\\rules except list\n\n.vis-custom-time{background-color:#6e94ff;width:2px;cursor:move;z-index:1}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-horizontal{position:absolute;width:100%;height:0;border-bottom:1px solid}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-minor{border-color:#e5e5e5}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-major{border-color:#bfbfbf}.vis-data-axis .vis-y-axis.vis-major{width:100%;position:absolute;color:#4d4d4d;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-major.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-minor{position:absolute;width:100%;color:#bebebe;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-minor.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title{position:absolute;color:#4d4d4d;white-space:nowrap;bottom:20px;text-align:center}.vis-data-axis .vis-y-axis.vis-title.vis-measure{padding:0;margin:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title.vis-left{bottom:0;-webkit-transform-origin:left top;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;transform-origin:left bottom;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.vis-data-axis .vis-y-axis.vis-title.vis-right{bottom:0;-webkit-transform-origin:right bottom;-moz-transform-origin:right bottom;-ms-transform-origin:right bottom;-o-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.vis-legend{background-color:rgba(247,252,255,.65);padding:5px;border:1px solid #b3b3b3;box-shadow:2px 2px 10px rgba(154,154,154,.55)}.vis-legend-text{white-space:nowrap;display:inline-block}.vis-time-axis{position:relative;overflow:hidden}.vis-time-axis.vis-foreground{top:0;left:0;width:100%}.vis-time-axis.vis-background{position:absolute;top:0;left:0;width:100%;height:100%}.vis-time-axis .vis-text{position:absolute;color:#4d4d4d;padding:3px;overflow:hidden;box-sizing:border-box;white-space:nowrap}.vis-time-axis .vis-text.vis-measure{position:absolute;padding-left:0;padding-right:0;margin-left:0;margin-right:0;visibility:hidden}.vis-time-axis .vis-grid.vis-vertical{position:absolute;border-left:1px solid}.vis-time-axis .vis-grid.vis-vertical-rtl{position:absolute;border-right:1px solid}.vis-time-axis .vis-grid.vis-minor{border-color:#e5e5e5}.vis-time-axis .vis-grid.vis-major{border-color:#bfbfbf}.vis [class*=span]{min-height:0;width:auto}.vis-item{position:absolute;color:#1a1a1a;border-color:#97b0f8;border-width:1px;background-color:#d5ddf6;display:inline-block;z-index:1}.vis-item.vis-selected{border-color:#ffc200;background-color:#fff785;z-index:2}.vis-editable.vis-selected{cursor:move}.vis-item.vis-point.vis-selected{background-color:#fff785}.vis-item.vis-box{text-align:center;border-style:solid;border-radius:2px}.vis-item.vis-point{background:0 0}.vis-item.vis-dot{position:absolute;padding:0;border-width:4px;border-style:solid;border-radius:4px}.vis-item.vis-range{border-style:solid;border-radius:2px;box-sizing:border-box}.vis-item.vis-background{border:none;background-color:rgba(213,221,246,.4);box-sizing:border-box;padding:0;margin:0}.vis-item .vis-item-overflow{position:relative;width:100%;height:100%;padding:0;margin:0;overflow:hidden}.vis-item-visible-frame{white-space:nowrap}.vis-item.vis-range .vis-item-content{position:relative;display:inline-block}.vis-item.vis-background .vis-item-content{position:absolute;display:inline-block}.vis-item.vis-line{padding:0;position:absolute;width:0;border-left-width:1px;border-left-style:solid}.vis-item .vis-item-content{white-space:nowrap;box-sizing:border-box;padding:5px}.vis-item .vis-onUpdateTime-tooltip{position:absolute;background:#4f81bd;color:#fff;width:200px;text-align:center;white-space:nowrap;padding:5px;border-radius:1px;transition:.4s;-o-transition:.4s;-moz-transition:.4s;-webkit-transition:.4s}.vis-item .vis-delete,.vis-item .vis-delete-rtl{position:absolute;top:0;width:24px;height:24px;box-sizing:border-box;padding:0 5px;cursor:pointer;-webkit-transition:background .2s linear;-moz-transition:background .2s linear;-ms-transition:background .2s linear;-o-transition:background .2s linear;transition:background .2s linear}.vis-item .vis-delete{right:-24px}.vis-item .vis-delete-rtl{left:-24px}.vis-item .vis-delete-rtl:after,.vis-item .vis-delete:after{content:\"\\00D7\";color:red;font-family:arial,sans-serif;font-size:22px;font-weight:700;-webkit-transition:color .2s linear;-moz-transition:color .2s linear;-ms-transition:color .2s linear;-o-transition:color .2s linear;transition:color .2s linear}.vis-item .vis-delete-rtl:hover,.vis-item .vis-delete:hover{background:red}.vis-item .vis-delete-rtl:hover:after,.vis-item .vis-delete:hover:after{color:#fff}.vis-item .vis-drag-center{position:absolute;width:100%;height:100%;top:0;left:0;cursor:move}.vis-item.vis-range .vis-drag-left{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;left:-4px;cursor:w-resize}.vis-item.vis-range .vis-drag-right{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;right:-4px;cursor:e-resize}.vis-range.vis-item.vis-readonly .vis-drag-left,.vis-range.vis-item.vis-readonly .vis-drag-right{cursor:auto}.vis-item.vis-cluster{vertical-align:center;text-align:center;border-style:solid;border-radius:2px}.vis-item.vis-cluster-line{padding:0;position:absolute;width:0;border-left-width:1px;border-left-style:solid}.vis-item.vis-cluster-dot{position:absolute;padding:0;border-width:4px;border-style:solid;border-radius:4px}.vis-current-time{background-color:#ff7f6e;width:2px;z-index:1;pointer-events:none}.vis-rolling-mode-btn{height:40px;width:40px;position:absolute;top:7px;right:20px;border-radius:50%;font-size:28px;cursor:pointer;opacity:.8;color:#fff;font-weight:700;text-align:center;background:#3876c2}.vis-rolling-mode-btn:before{content:\"\\26F6\"}.vis-rolling-mode-btn:hover{opacity:1}.vis-panel{position:absolute;padding:0;margin:0;box-sizing:border-box}.vis-panel.vis-bottom,.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right,.vis-panel.vis-top{border:1px #bfbfbf}.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right{border-top-style:solid;border-bottom-style:solid;overflow:hidden}.vis-left.vis-panel.vis-vertical-scroll,.vis-right.vis-panel.vis-vertical-scroll{height:100%;overflow-x:hidden;overflow-y:scroll}.vis-left.vis-panel.vis-vertical-scroll{direction:rtl}.vis-left.vis-panel.vis-vertical-scroll .vis-content{direction:ltr}.vis-right.vis-panel.vis-vertical-scroll{direction:ltr}.vis-right.vis-panel.vis-vertical-scroll .vis-content{direction:rtl}.vis-panel.vis-bottom,.vis-panel.vis-center,.vis-panel.vis-top{border-left-style:solid;border-right-style:solid}.vis-background{overflow:hidden}.vis-panel>.vis-content{position:relative}.vis-panel .vis-shadow{position:absolute;width:100%;height:1px;box-shadow:0 0 10px rgba(0,0,0,.8)}.vis-panel .vis-shadow.vis-top{top:-1px;left:0}.vis-panel .vis-shadow.vis-bottom{bottom:-1px;left:0}.vis-graph-group0{fill:#4f81bd;fill-opacity:0;stroke-width:2px;stroke:#4f81bd}.vis-graph-group1{fill:#f79646;fill-opacity:0;stroke-width:2px;stroke:#f79646}.vis-graph-group2{fill:#8c51cf;fill-opacity:0;stroke-width:2px;stroke:#8c51cf}.vis-graph-group3{fill:#75c841;fill-opacity:0;stroke-width:2px;stroke:#75c841}.vis-graph-group4{fill:#ff0100;fill-opacity:0;stroke-width:2px;stroke:#ff0100}.vis-graph-group5{fill:#37d8e6;fill-opacity:0;stroke-width:2px;stroke:#37d8e6}.vis-graph-group6{fill:#042662;fill-opacity:0;stroke-width:2px;stroke:#042662}.vis-graph-group7{fill:#00ff26;fill-opacity:0;stroke-width:2px;stroke:#00ff26}.vis-graph-group8{fill:#f0f;fill-opacity:0;stroke-width:2px;stroke:#f0f}.vis-graph-group9{fill:#8f3938;fill-opacity:0;stroke-width:2px;stroke:#8f3938}.vis-timeline .vis-fill{fill-opacity:.1;stroke:none}.vis-timeline .vis-bar{fill-opacity:.5;stroke-width:1px}.vis-timeline .vis-point{stroke-width:2px;fill-opacity:1}.vis-timeline .vis-legend-background{stroke-width:1px;fill-opacity:.9;fill:#fff;stroke:#c2c2c2}.vis-timeline .vis-outline{stroke-width:1px;fill-opacity:1;fill:#fff;stroke:#e5e5e5}.vis-timeline .vis-icon-fill{fill-opacity:.3;stroke:none}.vis-timeline{position:relative;border:1px solid #bfbfbf;overflow:hidden;padding:0;margin:0;box-sizing:border-box}.vis-loading-screen{width:100%;height:100%;position:absolute;top:0;left:0}.vis-itemset{position:relative;padding:0;margin:0;box-sizing:border-box}.vis-itemset .vis-background,.vis-itemset .vis-foreground{position:absolute;width:100%;height:100%;overflow:visible}.vis-axis{position:absolute;width:100%;height:0;left:0;z-index:1}.vis-foreground .vis-group{position:relative;box-sizing:border-box;border-bottom:1px solid #bfbfbf}.vis-foreground .vis-group:last-child{border-bottom:none}.vis-nesting-group{cursor:pointer}.vis-label.vis-nested-group.vis-group-level-unknown-but-gte1{background:#f5f5f5}.vis-label.vis-nested-group.vis-group-level-0{background-color:#fff}.vis-ltr .vis-label.vis-nested-group.vis-group-level-0 .vis-inner{padding-left:0}.vis-rtl .vis-label.vis-nested-group.vis-group-level-0 .vis-inner{padding-right:0}.vis-label.vis-nested-group.vis-group-level-1{background-color:rgba(0,0,0,.05)}.vis-ltr .vis-label.vis-nested-group.vis-group-level-1 .vis-inner{padding-left:15px}.vis-rtl .vis-label.vis-nested-group.vis-group-level-1 .vis-inner{padding-right:15px}.vis-label.vis-nested-group.vis-group-level-2{background-color:rgba(0,0,0,.1)}.vis-ltr .vis-label.vis-nested-group.vis-group-level-2 .vis-inner{padding-left:30px}.vis-rtl .vis-label.vis-nested-group.vis-group-level-2 .vis-inner{padding-right:30px}.vis-label.vis-nested-group.vis-group-level-3{background-color:rgba(0,0,0,.15)}.vis-ltr .vis-label.vis-nested-group.vis-group-level-3 .vis-inner{padding-left:45px}.vis-rtl .vis-label.vis-nested-group.vis-group-level-3 .vis-inner{padding-right:45px}.vis-label.vis-nested-group.vis-group-level-4{background-color:rgba(0,0,0,.2)}.vis-ltr .vis-label.vis-nested-group.vis-group-level-4 .vis-inner{padding-left:60px}.vis-rtl .vis-label.vis-nested-group.vis-group-level-4 .vis-inner{padding-right:60px}.vis-label.vis-nested-group.vis-group-level-5{background-color:rgba(0,0,0,.25)}.vis-ltr .vis-label.vis-nested-group.vis-group-level-5 .vis-inner{padding-left:75px}.vis-rtl .vis-label.vis-nested-group.vis-group-level-5 .vis-inner{padding-right:75px}.vis-label.vis-nested-group.vis-group-level-6{background-color:rgba(0,0,0,.3)}.vis-ltr .vis-label.vis-nested-group.vis-group-level-6 .vis-inner{padding-left:90px}.vis-rtl .vis-label.vis-nested-group.vis-group-level-6 .vis-inner{padding-right:90px}.vis-label.vis-nested-group.vis-group-level-7{background-color:rgba(0,0,0,.35)}.vis-ltr .vis-label.vis-nested-group.vis-group-level-7 .vis-inner{padding-left:105px}.vis-rtl .vis-label.vis-nested-group.vis-group-level-7 .vis-inner{padding-right:105px}.vis-label.vis-nested-group.vis-group-level-8{background-color:rgba(0,0,0,.4)}.vis-ltr .vis-label.vis-nested-group.vis-group-level-8 .vis-inner{padding-left:120px}.vis-rtl .vis-label.vis-nested-group.vis-group-level-8 .vis-inner{padding-right:120px}.vis-label.vis-nested-group.vis-group-level-9{background-color:rgba(0,0,0,.45)}.vis-ltr .vis-label.vis-nested-group.vis-group-level-9 .vis-inner{padding-left:135px}.vis-rtl .vis-label.vis-nested-group.vis-group-level-9 .vis-inner{padding-right:135px}.vis-label.vis-nested-group{background-color:rgba(0,0,0,.5)}.vis-ltr .vis-label.vis-nested-group .vis-inner{padding-left:150px}.vis-rtl .vis-label.vis-nested-group .vis-inner{padding-right:150px}.vis-group-level-unknown-but-gte1{border:1px solid red}.vis-label.vis-nesting-group:before{display:inline-block;width:15px}.vis-label.vis-nesting-group.expanded:before{content:\"\\25BC\"}.vis-label.vis-nesting-group.collapsed:before{content:\"\\25B6\"}.vis-rtl .vis-label.vis-nesting-group.collapsed:before{content:\"\\25C0\"}.vis-ltr .vis-label:not(.vis-nesting-group):not(.vis-group-level-0){padding-left:15px}.vis-rtl .vis-label:not(.vis-nesting-group):not(.vis-group-level-0){padding-right:15px}.vis-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-labelset{position:relative;overflow:hidden;box-sizing:border-box}.vis-labelset .vis-label{position:relative;left:0;top:0;width:100%;color:#4d4d4d;box-sizing:border-box}.vis-labelset .vis-label{border-bottom:1px solid #bfbfbf}.vis-labelset .vis-label.draggable{cursor:pointer}.vis-group-is-dragging{background:rgba(0,0,0,.1)}.vis-labelset .vis-label:last-child{border-bottom:none}.vis-labelset .vis-label .vis-inner{display:inline-block;padding:5px}.vis-labelset .vis-label .vis-inner.vis-hidden{padding:0}div.vis-configuration{position:relative;display:block;float:left;font-size:12px}div.vis-configuration-wrapper{display:block;width:700px}div.vis-configuration-wrapper::after{clear:both;content:\"\";display:block}div.vis-configuration.vis-config-option-container{display:block;width:495px;background-color:#fff;border:2px solid #f7f8fa;border-radius:4px;margin-top:20px;left:10px;padding-left:5px}div.vis-configuration.vis-config-button{display:block;width:495px;height:25px;vertical-align:middle;line-height:25px;background-color:#f7f8fa;border:2px solid #ceced0;border-radius:4px;margin-top:20px;left:10px;padding-left:5px;cursor:pointer;margin-bottom:30px}div.vis-configuration.vis-config-button.hover{background-color:#4588e6;border:2px solid #214373;color:#fff}div.vis-configuration.vis-config-item{display:block;float:left;width:495px;height:25px;vertical-align:middle;line-height:25px}div.vis-configuration.vis-config-item.vis-config-s2{left:10px;background-color:#f7f8fa;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s3{left:20px;background-color:#e4e9f0;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s4{left:30px;background-color:#cfd8e6;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-header{font-size:18px;font-weight:700}div.vis-configuration.vis-config-label{width:120px;height:25px;line-height:25px}div.vis-configuration.vis-config-label.vis-config-s3{width:110px}div.vis-configuration.vis-config-label.vis-config-s4{width:100px}div.vis-configuration.vis-config-colorBlock{top:1px;width:30px;height:19px;border:1px solid #444;border-radius:2px;padding:0;margin:0;cursor:pointer}input.vis-configuration.vis-config-checkbox{left:-5px}input.vis-configuration.vis-config-rangeinput{position:relative;top:-5px;width:60px;padding:1px;margin:0;pointer-events:none}input.vis-configuration.vis-config-range{-webkit-appearance:none;border:0 solid #fff;background-color:rgba(0,0,0,0);width:300px;height:20px}input.vis-configuration.vis-config-range::-webkit-slider-runnable-track{width:300px;height:5px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-webkit-slider-thumb{-webkit-appearance:none;border:1px solid #14334b;height:17px;width:17px;border-radius:50%;background:#3876c2;background:-moz-linear-gradient(top,#3876c2 0,#385380 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#3876c2),color-stop(100%,#385380));background:-webkit-linear-gradient(top,#3876c2 0,#385380 100%);background:-o-linear-gradient(top,#3876c2 0,#385380 100%);background:-ms-linear-gradient(top,#3876c2 0,#385380 100%);background:linear-gradient(to bottom,#3876c2 0,#385380 100%);box-shadow:#111927 0 0 1px 0;margin-top:-7px}input.vis-configuration.vis-config-range:focus{outline:0}input.vis-configuration.vis-config-range:focus::-webkit-slider-runnable-track{background:#9d9d9d;background:-moz-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#9d9d9d),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-o-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:linear-gradient(to bottom,#9d9d9d 0,#c8c8c8 99%)}input.vis-configuration.vis-config-range::-moz-range-track{width:300px;height:10px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-moz-range-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:-moz-focusring{outline:1px solid #fff;outline-offset:-1px}input.vis-configuration.vis-config-range::-ms-track{width:300px;height:5px;background:0 0;border-color:transparent;border-width:6px 0;color:transparent}input.vis-configuration.vis-config-range::-ms-fill-lower{background:#777;border-radius:10px}input.vis-configuration.vis-config-range::-ms-fill-upper{background:#ddd;border-radius:10px}input.vis-configuration.vis-config-range::-ms-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:focus::-ms-fill-lower{background:#888}input.vis-configuration.vis-config-range:focus::-ms-fill-upper{background:#ccc}.vis-configuration-popup{position:absolute;background:rgba(57,76,89,.85);border:2px solid #f2faff;line-height:30px;height:30px;width:150px;text-align:center;color:#fff;font-size:14px;border-radius:4px;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.vis-configuration-popup:after,.vis-configuration-popup:before{left:100%;top:50%;border:solid transparent;content:\" \";height:0;width:0;position:absolute;pointer-events:none}.vis-configuration-popup:after{border-color:rgba(136,183,213,0);border-left-color:rgba(57,76,89,.85);border-width:8px;margin-top:-8px}.vis-configuration-popup:before{border-color:rgba(194,225,245,0);border-left-color:#f2faff;border-width:12px;margin-top:-12px}.vis .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-active{box-shadow:0 0 10px #86d5f8}div.vis-tooltip{position:absolute;visibility:hidden;padding:5px;white-space:nowrap;font-family:verdana;font-size:14px;color:#000;background-color:#f5f4ed;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #808074;box-shadow:3px 3px 10px rgba(0,0,0,.2);pointer-events:none;z-index:5}\n\n"
},
"$:/plugins/kixam/timeline/vis-timeline.js": {
"title": "$:/plugins/kixam/timeline/vis-timeline.js",
"text": "/*\\\ntitle: $:/plugins/kixam/timeline/vis-timeline.js\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\\*/\nvar vis;if($tw.browser){\n\n\n/**\n * vis-timeline - timeline-graph2d\n * https://github.com/visjs/vis-timeline\n *\n * Create a fully customizable, interactive timeline with items and ranges.\n *\n * @version 5.1.0\n * @date 2019-08-31T10:52:58Z\n *\n * @copyright (c) 2011-2017 Almende B.V, http://almende.com\n * @copyright (c) 2018-2019 visjs contributors, https://github.com/visjs\n *\n * @license \n * vis.js is dual licensed under both\n *\n * 1. The Apache 2.0 License\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * and\n *\n * 2. The MIT License\n * http://opensource.org/licenses/MIT\n *\n * vis.js may be distributed under either license.\n */(function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t(require(\"$:/plugins/kixam/moment/moment.js\"),require(\"$:/plugins/tiddlywiki/hammerjs/hammer.js\")):\"function\"==typeof define&&define.amd?define([\"$:/plugins/kixam/moment/moment.js\",\"$:/plugins/tiddlywiki/hammerjs/hammer.js\"],t):(e=e||self,e.vis=t(e.moment,e.hammerjs))})(this,function(e,t){'use strict';var Vt=Math.sqrt,Bt=Math.log,qt=Math.round,Zt=Math.pow,Xt=Math.abs,Kt=Math.ceil,Qt=Math.floor,$t=Math.max,Jt=Math.min;function o(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function n(e){if(Array.isArray(e)){for(var t=0,o=Array(e.length);t<e.length;t++)o[t]=e[t];return o}}function a(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function r(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function s(e){return to(e)||oo(e)||no()}function d(){throw new Error(\"Dynamic requires are not currently supported by rollup-plugin-commonjs\")}function l(e,t){return t={exports:{}},e(t,t.exports),t.exports}function p(e,t){var o=t||0,n=lo;return n[e[o++]]+n[e[o++]]+n[e[o++]]+n[e[o++]]+\"-\"+n[e[o++]]+n[e[o++]]+\"-\"+n[e[o++]]+n[e[o++]]+\"-\"+n[e[o++]]+n[e[o++]]+\"-\"+n[e[o++]]+n[e[o++]]+n[e[o++]]+n[e[o++]]+n[e[o++]]+n[e[o++]]}function m(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=1<arguments.length?arguments[1]:void 0,o=2<arguments.length?arguments[2]:void 0,n=t&&o||0;\"string\"==typeof e&&(t=\"binary\"===e?Array(16):void 0,e={});var i=e.random||(e.rng||mo)();if(i[6]=64|15&i[6],i[8]=128|63&i[8],t)for(var a=0;16>a;a++)t[n+a]=i[a];return t||p(i)}function u(e,t){var o=Object.keys(e);return Object.getOwnPropertySymbols&&o.push.apply(o,Object.getOwnPropertySymbols(e)),t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o}function c(e){for(var t=1,o;t<arguments.length;t++)o=null==arguments[t]?{}:arguments[t],t%2?u(o,!0).forEach(function(t){eo(e,t,o[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):u(o).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))});return e}function g(e){return e instanceof Number||\"number\"==typeof e}function h(e){if(e)for(;!0===e.hasChildNodes();){var t=e.firstChild;t&&(h(t),e.removeChild(t))}}function y(e){return e instanceof String||\"string\"==typeof e}function f(e){return\"object\"===ro(e)&&null!==e}function b(e){if(e instanceof Date)return!0;if(y(e)){var t=fo.exec(e);if(t)return!0;if(!isNaN(Date.parse(e)))return!0}return!1}function _(e){return so.isMoment(e)}function v(e,t,o,n){var i=!1;!0===n&&(i=null===t[o]&&e[o]!==void 0),i?delete e[o]:e[o]=t[o]}function k(e,t){var o=!!(2<arguments.length&&arguments[2]!==void 0)&&arguments[2];for(var n in e)if(t[n]!==void 0)if(null===t[n]||\"object\"!==ro(t[n]))v(e,t,n,o);else{var i=e[n],a=t[n];f(i)&&f(a)&&k(i,a,o)}}function w(e,t){if(!Array.isArray(e))throw new Error(\"Array with property names expected as first argument\");for(var o=arguments.length,n=Array(2<o?o-2:0),i=2;i<o;i++)n[i-2]=arguments[i];for(var a=0,r=n,s;a<r.length;a++){s=r[a];for(var d=0,l;d<e.length;d++)l=e[d],s&&Object.prototype.hasOwnProperty.call(s,l)&&(t[l]=s[l])}return t}function x(e,t,o){var n=!!(3<arguments.length&&arguments[3]!==void 0)&&arguments[3];if(Array.isArray(o))throw new TypeError(\"Arrays are not supported by deepExtend\");for(var i=0,a;i<e.length;i++)if(a=e[i],Object.prototype.hasOwnProperty.call(o,a))if(o[a]&&o[a].constructor===Object)void 0===t[a]&&(t[a]={}),t[a].constructor===Object?S(t[a],o[a],!1,n):v(t,o,a,n);else if(Array.isArray(o[a]))throw new TypeError(\"Arrays are not supported by deepExtend\");else v(t,o,a,n);return t}function D(e,t,o){var n=!!(3<arguments.length&&arguments[3]!==void 0)&&arguments[3];if(Array.isArray(o))throw new TypeError(\"Arrays are not supported by deepExtend\");for(var a in o)if(Object.prototype.hasOwnProperty.call(o,a)&&-1===e.indexOf(a))if(o[a]&&o[a].constructor===Object)void 0===t[a]&&(t[a]={}),t[a].constructor===Object?S(t[a],o[a]):v(t,o,a,n);else if(Array.isArray(o[a])){t[a]=[];for(var r=0;r<o[a].length;r++)t[a].push(o[a][r])}else v(t,o,a,n);return t}function S(e,t){var o=!!(2<arguments.length&&arguments[2]!==void 0)&&arguments[2],n=!!(3<arguments.length&&arguments[3]!==void 0)&&arguments[3];for(var a in t)if(Object.prototype.hasOwnProperty.call(t,a)||!0===o)if(t[a]&&t[a].constructor===Object)void 0===e[a]&&(e[a]={}),e[a].constructor===Object?S(e[a],t[a],o):v(e,t,a,n);else if(Array.isArray(t[a])){e[a]=[];for(var r=0;r<t[a].length;r++)e[a].push(t[a][r])}else v(e,t,a,n);return e}function C(e,t){if(e.length!==t.length)return!1;for(var o=0,n=e.length;o<n;o++)if(e[o]!=t[o])return!1;return!0}function T(e,t){var o;if(void 0!==e){if(null===e)return null;if(!t)return e;if(\"string\"!=typeof t&&!(t instanceof String))throw new Error(\"Type must be a string\");switch(t){case\"boolean\":case\"Boolean\":return!!e;case\"number\":case\"Number\":return y(e)&&!isNaN(Date.parse(e))?so(e).valueOf():+e.valueOf();case\"string\":case\"String\":return e+\"\";case\"Date\":if(g(e))return new Date(e);if(e instanceof Date)return new Date(e.valueOf());if(_(e))return new Date(e.valueOf());if(y(e))return o=fo.exec(e),o?new Date(+o[1]):so(new Date(e)).toDate();throw new Error(\"Cannot convert object of type \"+O(e)+\" to type Date\");case\"Moment\":if(g(e))return so(e);if(e instanceof Date)return so(e.valueOf());if(_(e))return so(e);if(y(e))return o=fo.exec(e),o?so(+o[1]):so(e);throw new Error(\"Cannot convert object of type \"+O(e)+\" to type Date\");case\"ISODate\":if(g(e))return new Date(e);if(e instanceof Date)return e.toISOString();if(_(e))return e.toDate().toISOString();if(y(e))return o=fo.exec(e),o?new Date(+o[1]).toISOString():so(e).format();throw new Error(\"Cannot convert object of type \"+O(e)+\" to type ISODate\");case\"ASPDate\":if(g(e))return\"/Date(\"+e+\")/\";if(e instanceof Date||_(e))return\"/Date(\"+e.valueOf()+\")/\";if(y(e)){o=fo.exec(e);var n;return n=o?new Date(+o[1]).valueOf():new Date(e).valueOf(),\"/Date(\"+n+\")/\"}throw new Error(\"Cannot convert object of type \"+O(e)+\" to type ASPDate\");default:throw new Error(\"Unknown type \".concat(t));}}}function O(e){var t=ro(e);return\"object\"===t?null===e?\"null\":e instanceof Boolean?\"Boolean\":e instanceof Number?\"Number\":e instanceof String?\"String\":Array.isArray(e)?\"Array\":e instanceof Date?\"Date\":\"Object\":\"number\"===t?\"Number\":\"boolean\"===t?\"Boolean\":\"string\"===t?\"String\":void 0===t?\"undefined\":t}function M(e,t){return[].concat(io(e),[t])}function I(e){return e.slice()}function P(e){return e.getBoundingClientRect().left}function E(e){return e.getBoundingClientRect().right}function Y(e){return e.getBoundingClientRect().top}function R(e,t){var o=e.className.split(\" \"),n=t.split(\" \");o=o.concat(n.filter(function(e){return 0>o.indexOf(e)})),e.className=o.join(\" \")}function A(e,t){var o=e.className.split(\" \"),n=t.split(\" \");o=o.filter(function(e){return 0>n.indexOf(e)}),e.className=o.join(\" \")}function N(e,t){if(Array.isArray(e))for(var o=e.length,n=0;n<o;n++)t(e[n],n,e);else for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t(e[a],a,e)}function L(e,t,o){return e[t]!==o&&(e[t]=o,!0)}function H(e){var t=!1;return function(){t||(t=!0,requestAnimationFrame(function(){t=!1,e()}))}}function G(e,t,o,n){e.addEventListener?(n===void 0&&(n=!1),\"mousewheel\"===t&&0<=navigator.userAgent.indexOf(\"Firefox\")&&(t=\"DOMMouseScroll\"),e.addEventListener(t,o,n)):e.attachEvent(\"on\"+t,o)}function F(e,t,o,n){e.removeEventListener?(n===void 0&&(n=!1),\"mousewheel\"===t&&0<=navigator.userAgent.indexOf(\"Firefox\")&&(t=\"DOMMouseScroll\"),e.removeEventListener(t,o,n)):e.detachEvent(\"on\"+t,o)}function j(e){if(e||(e=window.event),!e);else e.preventDefault?e.preventDefault():e.returnValue=!1}function W(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:window.event,t=null;if(!e);else e.target?t=e.target:e.srcElement&&(t=e.srcElement);return t instanceof Element?null!=t.nodeType&&3==t.nodeType&&(t=t.parentNode,!(t instanceof Element))?null:t:null}function U(e,t){for(var o=e;o;){if(o===t)return!0;if(o.parentNode)o=o.parentNode;else return!1}return!1}function z(e){var t;switch(e.length){case 3:case 4:return t=_o.exec(e),t?{r:parseInt(t[1]+t[1],16),g:parseInt(t[2]+t[2],16),b:parseInt(t[3]+t[3],16)}:null;case 6:case 7:return t=bo.exec(e),t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null;default:return null;}}function V(e,t){if(-1!==e.indexOf(\"rgba\"))return e;if(-1!==e.indexOf(\"rgb\")){var o=e.substr(e.indexOf(\"(\")+1).replace(\")\",\"\").split(\",\");return\"rgba(\"+o[0]+\",\"+o[1]+\",\"+o[2]+\",\"+t+\")\"}var n=z(e);return null==n?e:\"rgba(\"+n.r+\",\"+n.g+\",\"+n.b+\",\"+t+\")\"}function B(e,t,o){return\"#\"+(16777216+(e<<16)+(t<<8)+o).toString(16).slice(1)}function q(e,t){if(y(e)){var o=e;if(te(o)){var n=o.substr(4).substr(0,o.length-5).split(\",\").map(function(e){return parseInt(e)});o=B(n[0],n[1],n[2])}if(!0===ee(o)){var i=J(o),a={h:i.h,s:.8*i.s,v:Jt(1,1.02*i.v)},r={h:i.h,s:Jt(1,1.25*i.s),v:.8*i.v},s=$(r.h,r.s,r.v),d=$(a.h,a.s,a.v);return{background:o,border:s,highlight:{background:d,border:s},hover:{background:d,border:s}}}return{background:o,border:o,highlight:{background:o,border:o},hover:{background:o,border:o}}}if(t){var l={background:e.background||t.background,border:e.border||t.border,highlight:y(e.highlight)?{border:e.highlight,background:e.highlight}:{background:e.highlight&&e.highlight.background||t.highlight.background,border:e.highlight&&e.highlight.border||t.highlight.border},hover:y(e.hover)?{border:e.hover,background:e.hover}:{border:e.hover&&e.hover.border||t.hover.border,background:e.hover&&e.hover.background||t.hover.background}};return l}var p={background:e.background||void 0,border:e.border||void 0,highlight:y(e.highlight)?{border:e.highlight,background:e.highlight}:{background:e.highlight&&e.highlight.background||void 0,border:e.highlight&&e.highlight.border||void 0},hover:y(e.hover)?{border:e.hover,background:e.hover}:{border:e.hover&&e.hover.border||void 0,background:e.hover&&e.hover.background||void 0}};return p}function Z(e,t,o){e/=255,t/=255,o/=255;var n=Jt(e,Jt(t,o)),i=$t(e,$t(t,o));if(n===i)return{h:0,s:0,v:n};var a=e===n?t-o:o===n?e-t:o-e,r=e===n?3:o===n?1:5;return{h:60*(r-a/(i-n))/360,s:(i-n)/i,v:i}}function X(e,t){var o=xo.split(e.style.cssText),n=xo.split(t),i=c({},o,{},n);e.style.cssText=xo.join(i)}function K(e,t){var o=xo.split(e.style.cssText),n=xo.split(t);for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&delete o[i];e.style.cssText=xo.join(o)}function Q(e,o,n){var a=Qt(6*e),i=6*e-a,s=n*(1-o),d=n*(1-i*o),l=n*(1-(1-i)*o),t,p,m;switch(a%6){case 0:t=n,p=l,m=s;break;case 1:t=d,p=n,m=s;break;case 2:t=s,p=n,m=l;break;case 3:t=s,p=d,m=n;break;case 4:t=l,p=s,m=n;break;case 5:t=n,p=s,m=d;}return{r:Qt(255*t),g:Qt(255*p),b:Qt(255*m)}}function $(e,t,o){var n=Q(e,t,o);return B(n.r,n.g,n.b)}function J(e){var t=z(e);if(!t)throw new TypeError(\"'\".concat(e,\"' is not a valid color.\"));return Z(t.r,t.g,t.b)}function ee(e){var t=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(e);return t}function te(e){e=e.replace(\" \",\"\");var t=/rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)/i.test(e);return t}function oe(e){e=e.replace(\" \",\"\");var t=/rgba\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3}),(0?.{1,3})\\)/i.test(e);return t}function ne(e,t){if(null!==t&&\"object\"===ro(t)){for(var o=Object.create(t),n=0;n<e.length;n++)Object.prototype.hasOwnProperty.call(t,e[n])&&\"object\"==ro(t[e[n]])&&(o[e[n]]=ie(t[e[n]]));return o}return null}function ie(e){if(null===e||\"object\"!==ro(e))return null;if(e instanceof Element)return e;var t=Object.create(e);for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&\"object\"==ro(e[o])&&(t[o]=ie(e[o]));return t}function ae(e,t){for(var o=0;o<e.length;o++){var n=e[o],a=void 0;for(a=o;0<a&&0>t(n,e[a-1]);a--)e[a]=e[a-1];e[a]=n}return e}function re(e,t,o){var n=3<arguments.length&&arguments[3]!==void 0?arguments[3]:{},i=function(e){return null!==e&&e!==void 0},a=function(e){return null!==e&&\"object\"===ro(e)};if(!a(e))throw new Error(\"Parameter mergeTarget must be an object\");if(!a(t))throw new Error(\"Parameter options must be an object\");if(!i(o))throw new Error(\"Parameter option must have a value\");if(!a(n))throw new Error(\"Parameter globalOptions must be an object\");var r=function(e,t,o){a(e[o])||(e[o]={});var n=t[o],i=e[o];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(i[r]=n[r])},s=t[o],d=a(n)&&!function(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}(n),l=d?n[o]:void 0,p=l?l.enabled:void 0;if(void 0!==s){if(\"boolean\"==typeof s)return a(e[o])||(e[o]={}),void(e[o].enabled=s);if(null===s&&!a(e[o]))if(i(l))e[o]=Object.create(l);else return;if(a(s)){var m=!0;void 0===s.enabled?void 0!==p&&(m=l.enabled):m=s.enabled,r(e,t,o),e[o].enabled=m}}}function se(e,t,o,n){for(var i=0,a=0,r=e.length-1;a<=r&&i<1e4;){var s=Qt((a+r)/2),d=e[s],l=n===void 0?d[o]:d[o][n],p=t(l);if(0==p)return s;-1==p?a=s+1:r=s-1;i++}return-1}function de(e,t,o,n,i){var a=0,r=0,s=e.length-1,d,l,p,m;for(i=null==i?function(e,t){return e==t?0:e<t?-1:1}:i;r<=s&&10000>a;){if(m=Qt(.5*(s+r)),d=e[$t(0,m-1)][o],l=e[m][o],p=e[Jt(e.length-1,m+1)][o],0==i(l,t))return m;if(0>i(d,t)&&0<i(l,t))return\"before\"==n?$t(0,m-1):m;if(0>i(l,t)&&0<i(p,t))return\"before\"==n?m:Jt(e.length-1,m+1);0>i(l,t)?r=m+1:s=m-1,a++}return-1}function le(){var e=document.createElement(\"p\");e.style.width=\"100%\",e.style.height=\"200px\";var t=document.createElement(\"div\");t.style.position=\"absolute\",t.style.top=\"0px\",t.style.left=\"0px\",t.style.visibility=\"hidden\",t.style.width=\"200px\",t.style.height=\"150px\",t.style.overflow=\"hidden\",t.appendChild(e),document.body.appendChild(t);var o=e.offsetWidth;t.style.overflow=\"scroll\";var n=e.offsetWidth;return o==n&&(n=t.clientWidth),document.body.removeChild(t),o-n}function pe(e,t){var o;Array.isArray(t)||(t=[t]);var n=!0,a=!1,r=void 0;try{for(var s=e[Symbol.iterator](),d,l;!(n=(d=s.next()).done);n=!0)if(l=d.value,l){o=l[t[0]];for(var p=1;p<t.length;p++)o&&(o=o[t[p]]);if(\"undefined\"!=typeof o)break}}catch(e){a=!0,r=e}finally{try{n||null==s.return||s.return()}finally{if(a)throw r}}return o}function me(e){for(var t in e)e.hasOwnProperty(t)&&(e[t].redundant=e[t].used,e[t].used=[])}function ue(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t].redundant){for(var o=0;o<e[t].redundant.length;o++)e[t].redundant[o].parentNode.removeChild(e[t].redundant[o]);e[t].redundant=[]}}function ce(e){me(e),ue(e),me(e)}function ge(e,t,o){var n;return t.hasOwnProperty(e)?0<t[e].redundant.length?(n=t[e].redundant[0],t[e].redundant.shift()):(n=document.createElementNS(\"http://www.w3.org/2000/svg\",e),o.appendChild(n)):(n=document.createElementNS(\"http://www.w3.org/2000/svg\",e),t[e]={used:[],redundant:[]},o.appendChild(n)),t[e].used.push(n),n}function he(e,t,o,n){var i;return t.hasOwnProperty(e)?0<t[e].redundant.length?(i=t[e].redundant[0],t[e].redundant.shift()):(i=document.createElement(e),void 0===n?o.appendChild(i):o.insertBefore(i,n)):(i=document.createElement(e),t[e]={used:[],redundant:[]},void 0===n?o.appendChild(i):o.insertBefore(i,n)),t[e].used.push(i),i}function ye(e,t,o,n,i,a){var r;if(\"circle\"==o.style?(r=ge(\"circle\",n,i),r.setAttributeNS(null,\"cx\",e),r.setAttributeNS(null,\"cy\",t),r.setAttributeNS(null,\"r\",.5*o.size)):(r=ge(\"rect\",n,i),r.setAttributeNS(null,\"x\",e-.5*o.size),r.setAttributeNS(null,\"y\",t-.5*o.size),r.setAttributeNS(null,\"width\",o.size),r.setAttributeNS(null,\"height\",o.size)),void 0!==o.styles&&r.setAttributeNS(null,\"style\",o.styles),r.setAttributeNS(null,\"class\",o.className+\" vis-point\"),a){var s=ge(\"text\",n,i);a.xOffset&&(e+=a.xOffset),a.yOffset&&(t+=a.yOffset),a.content&&(s.textContent=a.content),a.className&&s.setAttributeNS(null,\"class\",a.className+\" vis-label\"),s.setAttributeNS(null,\"x\",e),s.setAttributeNS(null,\"y\",t)}return r}function fe(e,t,o,n,i,a,r,s){if(0!=n){0>n&&(n*=-1,t-=n);var d=ge(\"rect\",a,r);d.setAttributeNS(null,\"x\",e-.5*o),d.setAttributeNS(null,\"y\",t),d.setAttributeNS(null,\"width\",o),d.setAttributeNS(null,\"height\",n),d.setAttributeNS(null,\"class\",i),s&&d.setAttributeNS(null,\"style\",s)}}function be(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function _e(e,t){return t={exports:{}},e(t,t.exports),t.exports}function ve(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function ke(e,t){for(var o=0,n;o<t.length;o++)n=t[o],n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}function we(e,t,o){return t&&ke(e.prototype,t),o&&ke(e,o),e}function xe(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function De(e,t){return t&&(\"object\"===Oo(t)||\"function\"==typeof t)?t:Po(e)}function Se(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ro(e,t)}function Ce(e,t){var o=t||0,n=No;return n[e[o++]]+n[e[o++]]+n[e[o++]]+n[e[o++]]+\"-\"+n[e[o++]]+n[e[o++]]+\"-\"+n[e[o++]]+n[e[o++]]+\"-\"+n[e[o++]]+n[e[o++]]+\"-\"+n[e[o++]]+n[e[o++]]+n[e[o++]]+n[e[o++]]+n[e[o++]]+n[e[o++]]}function Te(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=1<arguments.length?arguments[1]:void 0,o=2<arguments.length?arguments[2]:void 0,n=t&&o||0;\"string\"==typeof e&&(t=\"binary\"===e?Array(16):void 0,e={});var i=e.random||(e.rng||Ho)();if(i[6]=64|15&i[6],i[8]=128|63&i[8],t)for(var a=0;16>a;a++)t[n+a]=i[a];return t||Ce(i)}function Oe(e){return Oe=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},Oe(e)}function Me(){throw new Error(\"Dynamic requires are not currently supported by rollup-plugin-commonjs\")}function Ie(e,t){return t={exports:{}},e(t,t.exports),t.exports}function Pe(e){return e instanceof Number||\"number\"==typeof e}function Ee(e){return e instanceof String||\"string\"==typeof e}function Ye(e){return Vo.isMoment(e)}function Re(e,t){var o;if(void 0!==e){if(null===e)return null;if(!t)return e;if(\"string\"!=typeof t&&!(t instanceof String))throw new Error(\"Type must be a string\");switch(t){case\"boolean\":case\"Boolean\":return!!e;case\"number\":case\"Number\":return Ee(e)&&!isNaN(Date.parse(e))?Vo(e).valueOf():+e.valueOf();case\"string\":case\"String\":return e+\"\";case\"Date\":if(Pe(e))return new Date(e);if(e instanceof Date)return new Date(e.valueOf());if(Ye(e))return new Date(e.valueOf());if(Ee(e))return o=en.exec(e),o?new Date(+o[1]):Vo(new Date(e)).toDate();throw new Error(\"Cannot convert object of type \"+Ae(e)+\" to type Date\");case\"Moment\":if(Pe(e))return Vo(e);if(e instanceof Date)return Vo(e.valueOf());if(Ye(e))return Vo(e);if(Ee(e))return o=en.exec(e),o?Vo(+o[1]):Vo(e);throw new Error(\"Cannot convert object of type \"+Ae(e)+\" to type Date\");case\"ISODate\":if(Pe(e))return new Date(e);if(e instanceof Date)return e.toISOString();if(Ye(e))return e.toDate().toISOString();if(Ee(e))return o=en.exec(e),o?new Date(+o[1]).toISOString():Vo(e).format();throw new Error(\"Cannot convert object of type \"+Ae(e)+\" to type ISODate\");case\"ASPDate\":if(Pe(e))return\"/Date(\"+e+\")/\";if(e instanceof Date)return\"/Date(\"+e.valueOf()+\")/\";if(Ee(e)){o=en.exec(e);var n;return n=o?new Date(+o[1]).valueOf():new Date(e).valueOf(),\"/Date(\"+n+\")/\"}throw new Error(\"Cannot convert object of type \"+Ae(e)+\" to type ASPDate\");default:throw new Error(\"Unknown type \".concat(t));}}}function Ae(e){var t=Oe(e);return\"object\"===t?null===e?\"null\":e instanceof Boolean?\"Boolean\":e instanceof Number?\"Number\":e instanceof String?\"String\":Array.isArray(e)?\"Array\":e instanceof Date?\"Date\":\"Object\":\"number\"===t?\"Number\":\"boolean\"===t?\"Boolean\":\"string\"===t?\"String\":void 0===t?\"undefined\":t}function Ne(e){return\"string\"==typeof e||\"number\"==typeof e}function Le(e){if(Array.isArray(e)){for(var t=0,o=Array(e.length);t<e.length;t++)o[t]=e[t];return o}}function He(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function Ge(e,t){var o=Object.keys(e);return Object.getOwnPropertySymbols&&o.push.apply(o,Object.getOwnPropertySymbols(e)),t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o}function Fe(e){for(var t=1,o;t<arguments.length;t++)o=null==arguments[t]?{}:arguments[t],t%2?Ge(o,!0).forEach(function(t){To(e,t,o[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):Ge(o).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))});return e}function je(e){return je=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},je(e)}function We(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function Ue(e,t){for(var o=0,n;o<t.length;o++)n=t[o],n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}function ze(e,t,o){return t&&Ue(e.prototype,t),o&&Ue(e,o),e}function Ve(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&qe(e,t)}function Be(e){return Be=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},Be(e)}function qe(e,t){return qe=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},qe(e,t)}function Ze(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function Xe(e,t){return t&&(\"object\"==typeof t||\"function\"==typeof t)?t:Ze(e)}function Ke(e){return Qe(e)||$e(e)||Je()}function Qe(e){if(Array.isArray(e)){for(var t=0,o=Array(e.length);t<e.length;t++)o[t]=e[t];return o}}function $e(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function Je(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function et(e,t,o){if(o&&!Array.isArray(o))return et(e,t,[o]);if(t.hiddenDates=[],o&&!0==Array.isArray(o)){for(var n=0;n<o.length;n++)if(void 0===o[n].repeat){var a={};a.start=e(o[n].start).toDate().valueOf(),a.end=e(o[n].end).toDate().valueOf(),t.hiddenDates.push(a)}t.hiddenDates.sort(function(e,t){return e.start-t.start})}}function tt(e,t,o){if(o&&!Array.isArray(o))return tt(e,t,[o]);if(o&&void 0!==t.domProps.centerContainer.width){et(e,t,o);for(var n=e(t.range.start),a=e(t.range.end),r=t.range.end-t.range.start,s=r/t.domProps.centerContainer.width,d=0;d<o.length;d++)if(void 0!==o[d].repeat){var l=e(o[d].start),p=e(o[d].end);if(\"Invalid Date\"==l._d)throw new Error(\"Supplied start date is not valid: \".concat(o[d].start));if(\"Invalid Date\"==p._d)throw new Error(\"Supplied end date is not valid: \".concat(o[d].end));var m=p-l;if(m>=4*s){var u=0,c=a.clone();switch(o[d].repeat){case\"daily\":l.day()!=p.day()&&(u=1),l.dayOfYear(n.dayOfYear()),l.year(n.year()),l.subtract(7,\"days\"),p.dayOfYear(n.dayOfYear()),p.year(n.year()),p.subtract(7-u,\"days\"),c.add(1,\"weeks\");break;case\"weekly\":{var g=p.diff(l,\"days\"),h=l.day();l.date(n.date()),l.month(n.month()),l.year(n.year()),p=l.clone(),l.day(h),p.day(h),p.add(g,\"days\"),l.subtract(1,\"weeks\"),p.subtract(1,\"weeks\"),c.add(1,\"weeks\");break}case\"monthly\":l.month()!=p.month()&&(u=1),l.month(n.month()),l.year(n.year()),l.subtract(1,\"months\"),p.month(n.month()),p.year(n.year()),p.subtract(1,\"months\"),p.add(u,\"months\"),c.add(1,\"months\");break;case\"yearly\":l.year()!=p.year()&&(u=1),l.year(n.year()),l.subtract(1,\"years\"),p.year(n.year()),p.subtract(1,\"years\"),p.add(u,\"years\"),c.add(1,\"years\");break;default:return void console.log(\"Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:\",o[d].repeat);}for(;l<c;)switch(t.hiddenDates.push({start:l.valueOf(),end:p.valueOf()}),o[d].repeat){case\"daily\":l.add(1,\"days\"),p.add(1,\"days\");break;case\"weekly\":l.add(1,\"weeks\"),p.add(1,\"weeks\");break;case\"monthly\":l.add(1,\"months\"),p.add(1,\"months\");break;case\"yearly\":l.add(1,\"y\"),p.add(1,\"y\");break;default:return void console.log(\"Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:\",o[d].repeat);}t.hiddenDates.push({start:l.valueOf(),end:p.valueOf()})}}ot(t);var y=ct(t.range.start,t.hiddenDates),f=ct(t.range.end,t.hiddenDates),b=t.range.start,_=t.range.end;!0==y.hidden&&(b=!0==t.range.startToFront?y.startDate-1:y.endDate+1),!0==f.hidden&&(_=!0==t.range.endToFront?f.startDate-1:f.endDate+1),(!0==y.hidden||!0==f.hidden)&&t.range._applyRange(b,_)}}function ot(e){for(var t=e.hiddenDates,o=[],n=0;n<t.length;n++)for(var a=0;a<t.length;a++)n!=a&&!0!=t[a].remove&&!0!=t[n].remove&&(t[a].start>=t[n].start&&t[a].end<=t[n].end?t[a].remove=!0:t[a].start>=t[n].start&&t[a].start<=t[n].end?(t[n].end=t[a].end,t[a].remove=!0):t[a].end>=t[n].start&&t[a].end<=t[n].end&&(t[n].start=t[a].start,t[a].remove=!0));for(n=0;n<t.length;n++)!0!==t[n].remove&&o.push(t[n]);e.hiddenDates=o,e.hiddenDates.sort(function(e,t){return e.start-t.start})}function nt(e){for(var t=0;t<e.length;t++)console.log(t,new Date(e[t].start),new Date(e[t].end),e[t].start,e[t].end,e[t].remove)}function it(e,t,o){for(var n=!1,a=t.current.valueOf(),r=0;r<t.hiddenDates.length;r++){var s=t.hiddenDates[r].start,d=t.hiddenDates[r].end;if(a>=s&&a<d){n=!0;break}}if(!0==n&&a<t._end.valueOf()&&a!=o){var l=e(o),p=e(d);l.year()==p.year()?l.month()==p.month()?l.dayOfYear()!=p.dayOfYear()&&(t.switchedDay=!0):t.switchedMonth=!0:t.switchedYear=!0,t.current=p}}function at(e,t,o){var n;if(0==e.body.hiddenDates.length)return n=e.range.conversion(o),(t.valueOf()-n.offset)*n.scale;var i=ct(t,e.body.hiddenDates);!0==i.hidden&&(t=i.startDate);var a=st(e.body.hiddenDates,e.range.start,e.range.end);if(t<e.range.start){n=e.range.conversion(o,a);var r=dt(e.body.hiddenDates,t,n.offset);return t=e.options.moment(t).toDate().valueOf(),t+=r,-(n.offset-t.valueOf())*n.scale}if(t>e.range.end){var s={start:e.range.start,end:t};return t=lt(e.options.moment,e.body.hiddenDates,s,t),n=e.range.conversion(o,a),(t.valueOf()-n.offset)*n.scale}return t=lt(e.options.moment,e.body.hiddenDates,e.range,t),n=e.range.conversion(o,a),(t.valueOf()-n.offset)*n.scale}function rt(e,t,o){if(0==e.body.hiddenDates.length){var n=e.range.conversion(o);return new Date(t/n.scale+n.offset)}var i=st(e.body.hiddenDates,e.range.start,e.range.end),a=e.range.end-e.range.start-i,r=a*t/o,s=mt(e.body.hiddenDates,e.range,r);return new Date(s+r+e.range.start)}function st(e,t,o){for(var n=0,a=0;a<e.length;a++){var r=e[a].start,s=e[a].end;r>=t&&s<o&&(n+=s-r)}return n}function dt(e,t,o){for(var n=0,a=0;a<e.length;a++){var r=e[a].start,s=e[a].end;r>=t&&s<=o&&(n+=s-r)}return n}function lt(e,t,o,n){return n=e(n).toDate().valueOf(),n-=pt(e,t,o,n),n}function pt(e,t,o,n){var a=0;n=e(n).toDate().valueOf();for(var r=0;r<t.length;r++){var s=t[r].start,d=t[r].end;s>=o.start&&d<o.end&&n>=d&&(a+=d-s)}return a}function mt(e,t,o){for(var n=0,a=0,r=t.start,s=0;s<e.length;s++){var d=e[s].start,l=e[s].end;if(d>=t.start&&l<t.end)if(a+=d-r,r=l,a>=o)break;else n+=l-d}return n}function ut(e,t,o,n){var i=ct(t,e);return!0==i.hidden?0>o?!0==n?i.startDate-(i.endDate-t)-1:i.startDate-1:!0==n?i.endDate+(t-i.startDate)+1:i.endDate+1:t}function ct(e,t){for(var o=0;o<t.length;o++){var n=t[o].start,a=t[o].end;if(e>=n&&e<a)return{hidden:!0,startDate:n,endDate:a}}return{hidden:!1,startDate:n,endDate:a}}function gt(e){if(\"horizontal\"!=e&&\"vertical\"!=e)throw new TypeError(\"Unknown direction \\\"\".concat(e,\"\\\". Choose \\\"horizontal\\\" or \\\"vertical\\\".\"))}function ht(e){if(e)return yt(e)}function yt(e){for(var t in ht.prototype)e[t]=ht.prototype[t];return e}function ft(e,t){return t={exports:{}},e(t,t.exports),t.exports}function bt(){var e=function(){};return{on:e,off:e,destroy:e,emit:e,get:function(){return{set:e}}}}function _t(e,t){t.inputHandler=function(e){e.isFirst&&t(e)},e.on(\"hammer.input\",t.inputHandler)}function vt(e,t){return t.inputHandler=function(e){e.isFinal&&t(e)},e.on(\"hammer.input\",t.inputHandler)}function kt(e){return e.getTouchAction=function(){return[\"pan-y\"]},e}function wt(e){this.active=!1,this.dom={container:e},this.dom.overlay=document.createElement(\"div\"),this.dom.overlay.className=\"vis-overlay\",this.dom.container.appendChild(this.dom.overlay),this.hammer=yn(this.dom.overlay),this.hammer.on(\"tap\",this._onTapOverlay.bind(this));var t=this;[\"tap\",\"doubletap\",\"press\",\"pinch\",\"pan\",\"panstart\",\"panmove\",\"panend\"].forEach(function(e){t.hammer.on(e,function(e){e.stopPropagation()})}),document&&document.body&&(this.onClick=function(o){xt(o.target,e)||t.deactivate()},document.body.addEventListener(\"click\",this.onClick)),this.keycharm!==void 0&&this.keycharm.destroy(),this.keycharm=vn(),this.escListener=this.deactivate.bind(this)}function xt(e,t){for(;e;){if(e===t)return!0;e=e.parentNode}return!1}function Dt(e){e.sort(function(e,t){return e.data.start-t.data.start})}function St(e){e.sort(function(e,t){var o=\"end\"in e.data?e.data.end:e.data.start,n=\"end\"in t.data?t.data.end:t.data.start;return o-n})}function Ct(e,t,o,n){if(o)for(var a=0;a<e.length;a++)e[a].top=null;for(var a=0,r;a<e.length;a++)if(r=e[a],r.stack&&null===r.top){r.top=t.axis;var s=!1;do{for(var d=null,l=0,p=e.length,m;l<p;l++){if(m=e[l],s=n()||!1,s)return!0;if(null!==m.top&&m!==r&&m.stack&&Pt(r,m,t.item,m.options.rtl)){d=m;break}}null!=d&&(r.top=d.top+d.height+t.item.vertical)}while(d)}return s}function Tt(e,t,o){for(var n=0;n<e.length;n++)e[n].top=null;var a=o.height;for(n=0;n<e.length;n++){var r=e[n];if(r.stack&&null===r.top){r.top=r.baseTop;do{for(var s=null,d=0,l=e.length,p;d<l;d++)if(p=e[d],null!==p.top&&p!==r&&Pt(r,p,t.item,p.options.rtl)){s=p;break}null!=s&&(r.top=s.top+s.height+t.item.vertical),r.top+r.height>a&&(a=r.top+r.height)}while(s)}}o.height=a-o.top+.5*t.item.vertical}function Ot(e,t,o,n){for(var a=0;a<e.length;a++)if(e[a].data.subgroup==null)e[a].top=t.item.vertical;else if(e[a].data.subgroup!==void 0&&n){var r=0;for(var s in o)o.hasOwnProperty(s)&&!0==o[s].visible&&o[s].index<o[e[a].data.subgroup].index&&(r+=o[s].height,o[e[a].data.subgroup].top=r);e[a].top=r+.5*t.item.vertical}n||Mt(e,t,o)}function Mt(e,t,o){for(var n in o)if(o.hasOwnProperty(n)){o[n].top=0;do{var a=null;for(var r in o)if(null!==o[r].top&&r!=n&&o[n].index>o[r].index&&Et(o[n],o[r])){a=o[r];break}null!=a&&(o[n].top=a.top+a.height)}while(a)}for(var s=0;s<e.length;s++)void 0!==e[s].data.subgroup&&(e[s].top=o[e[s].data.subgroup].top+.5*t.item.vertical)}function It(e,t,o){var n=!1,a=[];for(var r in o)o[r].hasOwnProperty(\"index\")?a[o[r].index]=r:a.push(r);for(var s=0;s<a.length;s++)if(r=a[s],o.hasOwnProperty(r)){for(var d in n=n||o[r].stack,o[r].top=0,o)o[d].visible&&o[r].index>o[d].index&&(o[r].top+=o[d].height);for(var l=e[r],p=0;p<l.length;p++)void 0!==l[p].data.subgroup&&(l[p].top=o[l[p].data.subgroup].top+.5*t.item.vertical,o[r].stack&&(l[p].baseTop=l[p].top));n&&o[r].stack&&Tt(e[r],t,o[r])}}function Pt(e,t,o,n){return n?e.right-o.horizontal+Sn<t.right+t.width&&e.right+e.width+o.horizontal-Sn>t.right&&e.top-o.vertical+Sn<t.top+t.height&&e.top+e.height+o.vertical-Sn>t.top:e.left-o.horizontal+Sn<t.left+t.width&&e.left+e.width+o.horizontal-Sn>t.left&&e.top-o.vertical+Sn<t.top+t.height&&e.top+e.height+o.vertical-Sn>t.top}function Et(e,t){return e.start<=t.start&&e.end>=t.start&&e.top<t.top+t.height&&e.top+e.height>t.top||t.start<=e.start&&t.end>=e.start&&t.top<e.top+e.height&&t.top+t.height>e.top}function Yt(e){return So.convert(e.data.start,\"Date\").valueOf()}function Rt(e){var t=e.data.end==null?e.data.start:e.data.end;return So.convert(t,\"Date\").valueOf()}function At(e,t){if(!t.parent)return!1;var o=e.options.rtl?e.props.rightContainer.height:e.props.leftContainer.height,n=e.props.center.height,i=t.parent,a=i.top,r=!0,s=e.timeAxis.options.orientation.axis,d=function(){return\"bottom\"==s?i.height-t.top-t.height:t.top},l=-1*e._getScrollTop(),p=a+d(),m=t.height;return p<l?a+o<=a+d()+m&&(a+=d()-e.itemSet.options.margin.item.vertical):p+m>l+o?a+=d()+m-o+e.itemSet.options.margin.item.vertical:r=!1,a=Jt(a,n-o),{shouldScroll:r,scrollOffset:a,itemTop:p}}function Nt(){}function Lt(e,t){return t=\"undefined\"==typeof t?{}:t,{style:t.style||e.options.drawPoints.style,styles:t.styles||e.options.drawPoints.styles,size:t.size||e.options.drawPoints.size,className:t.className||e.className}}function Ht(e,t){var o;return e.options&&e.options.drawPoints&&e.options.drawPoints.onRender&&\"function\"==typeof e.options.drawPoints.onRender&&(o=e.options.drawPoints.onRender),t.group.options&&t.group.options.drawPoints&&t.group.options.drawPoints.onRender&&\"function\"==typeof t.group.options.drawPoints.onRender&&(o=t.group.options.drawPoints.onRender),o}function Gt(){}function Ft(){}function jt(e,t,o,n){this.id=t;this.options=So.selectiveBridgeObject([\"sampling\",\"style\",\"sort\",\"yAxisOrientation\",\"barChart\",\"drawPoints\",\"shaded\",\"interpolation\",\"zIndex\",\"excludeFromStacking\",\"excludeFromLegend\"],o),this.usingDefaultStyle=e.className===void 0,this.groupsUsingDefaultStyles=n,this.zeroPosition=0,this.update(e),!0==this.usingDefaultStyle&&(this.groupsUsingDefaultStyles[0]+=1),this.itemsData=[],this.visible=!(e.visible!==void 0)||e.visible}function Wt(e,t,o,n){this.body=e,this.defaultOptions={enabled:!1,icons:!0,iconSize:20,iconSpacing:6,left:{visible:!0,position:\"top-left\"},right:{visible:!0,position:\"top-right\"}},this.side=o,this.options=So.extend({},this.defaultOptions),this.linegraphOptions=n,this.svgElements={},this.dom={},this.groups={},this.amountOfGroups=0,this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups},this.setOptions(t)}function Ut(e,t){this.id=So.randomUUID(),this.body=e,this.defaultOptions={yAxisOrientation:\"left\",defaultGroup:\"default\",sort:!0,sampling:!0,stack:!1,graphHeight:\"400px\",shaded:{enabled:!1,orientation:\"bottom\"},style:\"line\",barChart:{width:50,sideBySide:!1,align:\"center\"},interpolation:{enabled:!0,parametrization:\"centripetal\",alpha:.5},drawPoints:{enabled:!0,size:6,style:\"square\"},dataAxis:{},legend:{},groups:{visibility:{}}},this.options=So.extend({},this.defaultOptions),this.dom={},this.props={},this.hammer=null,this.groups={},this.abortedGraphUpdate=!1,this.updateSVGheight=!1,this.updateSVGheightOnResize=!1,this.forceGraphUpdate=!0;var o=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(e,t){o._onAdd(t.items)},update:function(e,t){o._onUpdate(t.items)},remove:function(e,t){o._onRemove(t.items)}},this.groupListeners={add:function(e,t){o._onAddGroups(t.items)},update:function(e,t){o._onUpdateGroups(t.items)},remove:function(e,t){o._onRemoveGroups(t.items)}},this.items={},this.selection=[],this.lastStart=this.body.range.start,this.touchParams={},this.svgElements={},this.setOptions(t),this.groupsUsingDefaultStyles=[0],this.body.emitter.on(\"rangechanged\",function(){o.lastStart=o.body.range.start,o.svg.style.left=So.option.asSize(-o.props.width),o.forceGraphUpdate=!0,o.redraw.call(o)}),this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups}}function zt(t,o,n,i){if(!(Array.isArray(n)||n instanceof rn||n instanceof sn)&&n instanceof Object){var a=i;i=n,n=a}i&&i.throttleRedraw&&console.warn(\"Graph2d option \\\"throttleRedraw\\\" is DEPRICATED and no longer supported. It will be removed in the next MAJOR release.\");var r=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:{axis:\"bottom\",item:\"bottom\"},moment:e,width:null,height:null,maxHeight:null,minHeight:null},this.options=So.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{toScreen:r._toScreen.bind(r),toGlobalScreen:r._toGlobalScreen.bind(r),toTime:r._toTime.bind(r),toGlobalTime:r._toGlobalTime.bind(r)}},this.range=new pn(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new bn(this.body),this.components.push(this.timeAxis),this.currentTime=new Dn(this.body),this.components.push(this.currentTime),this.linegraph=new Ut(this.body),this.components.push(this.linegraph),this.itemsData=null,this.groupsData=null,this.on(\"tap\",function(e){r.emit(\"click\",r.getEventProperties(e))}),this.on(\"doubletap\",function(e){r.emit(\"doubleClick\",r.getEventProperties(e))}),this.dom.root.oncontextmenu=function(e){r.emit(\"contextmenu\",r.getEventProperties(e))},this.initialFitDone=!1,this.on(\"changed\",function(){if(null!=r.itemsData){if(!r.initialFitDone&&!r.options.rollingMode)if(r.initialFitDone=!0,null!=r.options.start||null!=r.options.end){if(null==r.options.start||null==r.options.end)var e=r.getItemRange();var t=null==r.options.start?e.min:r.options.start,o=null==r.options.end?e.max:r.options.end;r.setWindow(t,o,{animation:!1})}else r.fit({animation:!1});r.initialDrawDone||!r.initialRangeChangeDone&&(r.options.start||r.options.end)&&!r.options.rollingMode||(r.initialDrawDone=!0,r.dom.root.style.visibility=\"visible\",r.dom.loadingScreen.parentNode.removeChild(r.dom.loadingScreen),r.options.onInitialDrawComplete&&setTimeout(function(){return r.options.onInitialDrawComplete()},0))}}),i&&this.setOptions(i),n&&this.setGroups(n),o&&this.setItems(o),this._redraw()}e=e&&e.hasOwnProperty(\"default\")?e[\"default\"]:e,t=t&&t.hasOwnProperty(\"default\")?t[\"default\"]:t;for(var eo=o,to=n,oo=a,no=r,io=s,ao=\"undefined\"==typeof globalThis?\"undefined\"==typeof window?\"undefined\"==typeof global?\"undefined\"==typeof self?{}:self:global:window:globalThis,ro=l(function(e){function t(e){return t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},t(e)}function o(n){return e.exports=\"function\"==typeof Symbol&&\"symbol\"===t(Symbol.iterator)?o=function(e){return t(e)}:o=function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":t(e)},o(n)}e.exports=o}),so=l(function(e){(function(t,o){e.exports=o()})(ao,function(){function t(){return Ft.apply(null,arguments)}function o(e){return e instanceof Array||\"[object Array]\"===Object.prototype.toString.call(e)}function n(e){return null!=e&&\"[object Object]\"===Object.prototype.toString.call(e)}function i(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}function a(e){return void 0===e}function r(e){return\"number\"==typeof e||\"[object Number]\"===Object.prototype.toString.call(e)}function s(e){return e instanceof Date||\"[object Date]\"===Object.prototype.toString.call(e)}function l(e,t){var o=[],n;for(n=0;n<e.length;++n)o.push(t(e[n],n));return o}function p(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function u(e,t){for(var o in t)p(t,o)&&(e[o]=t[o]);return p(t,\"toString\")&&(e.toString=t.toString),p(t,\"valueOf\")&&(e.valueOf=t.valueOf),e}function g(e,t,o,n){return Qe(e,t,o,n,!0).utc()}function h(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}}function y(e){return null==e._pf&&(e._pf=h()),e._pf}function f(e){if(null==e._isValid){var t=y(e),o=jt.call(t.parsedDateParts,function(e){return null!=e}),n=!isNaN(e._d.getTime())&&0>t.overflow&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&o);if(e._strict&&(n=n&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null==Object.isFrozen||!Object.isFrozen(e))e._isValid=n;else return n}return e._isValid}function b(e){var t=g(NaN);return null==e?y(t).userInvalidated=!0:u(y(t),e),t}function _(e,t){var o,n,r;if(a(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),a(t._i)||(e._i=t._i),a(t._f)||(e._f=t._f),a(t._l)||(e._l=t._l),a(t._strict)||(e._strict=t._strict),a(t._tzm)||(e._tzm=t._tzm),a(t._isUTC)||(e._isUTC=t._isUTC),a(t._offset)||(e._offset=t._offset),a(t._pf)||(e._pf=y(t)),a(t._locale)||(e._locale=t._locale),0<Wt.length)for(o=0;o<Wt.length;o++)n=Wt[o],r=t[n],a(r)||(e[n]=r);return e}function v(e){_(this,e),this._d=new Date(null==e._d?NaN:e._d.getTime()),this.isValid()||(this._d=new Date(NaN)),!1===Ut&&(Ut=!0,t.updateOffset(this),Ut=!1)}function k(e){return e instanceof v||null!=e&&null!=e._isAMomentObject}function w(e){return 0>e?Kt(e)||0:Qt(e)}function x(e){var t=+e,o=0;return 0!=t&&isFinite(t)&&(o=w(t)),o}function D(e,t,o){var n=Jt(e.length,t.length),a=Xt(e.length-t.length),r=0,s;for(s=0;s<n;s++)(o&&e[s]!==t[s]||!o&&x(e[s])!==x(t[s]))&&r++;return r+a}function S(e){!1===t.suppressDeprecationWarnings&&\"undefined\"!=typeof console&&console.warn&&console.warn(\"Deprecation warning: \"+e)}function C(e,o){var n=!0;return u(function(){if(null!=t.deprecationHandler&&t.deprecationHandler(null,e),n){for(var a=[],r=0,s;r<arguments.length;r++){if(s=\"\",\"object\"==typeof arguments[r]){for(var d in s+=\"\\n[\"+r+\"] \",arguments[0])s+=d+\": \"+arguments[0][d]+\", \";s=s.slice(0,-2)}else s=arguments[r];a.push(s)}S(e+\"\\nArguments: \"+Array.prototype.slice.call(a).join(\"\")+\"\\n\"+new Error().stack),n=!1}return o.apply(this,arguments)},o)}function T(e,o){null!=t.deprecationHandler&&t.deprecationHandler(e,o),zt[e]||(S(o),zt[e]=!0)}function O(e){return e instanceof Function||\"[object Function]\"===Object.prototype.toString.call(e)}function M(e){var t,o;for(o in e)t=e[o],O(t)?this[o]=t:this[\"_\"+o]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+\"|\"+/\\d{1,2}/.source)}function I(e,t){var o=u({},e),i;for(i in t)p(t,i)&&(n(e[i])&&n(t[i])?(o[i]={},u(o[i],e[i]),u(o[i],t[i])):null==t[i]?delete o[i]:o[i]=t[i]);for(i in e)p(e,i)&&!p(t,i)&&n(e[i])&&(o[i]=u({},o[i]));return o}function P(e){null!=e&&this.set(e)}function E(e,t){var o=e.toLowerCase();eo[o]=eo[o+\"s\"]=eo[t]=e}function Y(e){return\"string\"==typeof e?eo[e]||eo[e.toLowerCase()]:void 0}function R(e){var t={},o,n;for(n in e)p(e,n)&&(o=Y(n),o&&(t[o]=e[n]));return t}function A(e,t){to[e]=t}function N(e){var t=[];for(var o in e)t.push({unit:o,priority:to[o]});return t.sort(function(e,t){return e.priority-t.priority}),t}function L(e,t,o){var n=\"\"+Xt(e),i=t-n.length;return(0<=e?o?\"+\":\"\":\"-\")+Zt(10,$t(0,i)).toString().substr(1)+n}function H(e,t,o,n){var i=n;\"string\"==typeof n&&(i=function(){return this[n]()}),e&&(ao[e]=i),t&&(ao[t[0]]=function(){return L(i.apply(this,arguments),t[1],t[2])}),o&&(ao[o]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function G(e){return e.match(/\\[[\\s\\S]/)?e.replace(/^\\[|\\]$/g,\"\"):e.replace(/\\\\/g,\"\")}function F(e){var t=e.match(oo),o,n;for(o=0,n=t.length;o<n;o++)t[o]=ao[t[o]]?ao[t[o]]:G(t[o]);return function(o){var a=\"\",r;for(r=0;r<n;r++)a+=O(t[r])?t[r].call(o,e):t[r];return a}}function j(e,t){return e.isValid()?(t=W(t,e.localeData()),io[t]=io[t]||F(t),io[t](e)):e.localeData().invalidDate()}function W(e,t){function o(e){return t.longDateFormat(e)||e}var n=5;for(no.lastIndex=0;0<=n&&no.test(e);)e=e.replace(no,o),no.lastIndex=0,n-=1;return e}function U(e,t,o){Do[e]=O(t)?t:function(e){return e&&o?o:t}}function z(e,t){return p(Do,e)?Do[e](t._strict,t._locale):new RegExp(V(e))}function V(e){return B(e.replace(\"\\\\\",\"\").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,function(e,t,o,n,i){return t||o||n||i}))}function B(e){return e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}function q(e,t){var o=t,n;for(\"string\"==typeof e&&(e=[e]),r(t)&&(o=function(e,o){o[t]=x(e)}),n=0;n<e.length;n++)So[e[n]]=o}function Z(e,t){q(e,function(e,o,n,i){n._w=n._w||{},t(e,n._w,n,i)})}function X(e,t,o){null!=t&&p(So,e)&&So[e](t,o._a,o,e)}function K(e){return Q(e)?366:365}function Q(e){return 0==e%4&&0!=e%100||0==e%400}function $(e,o){return function(n){return null==n?J(this,e):(ee(this,e,n),t.updateOffset(this,o),this)}}function J(e,t){return e.isValid()?e._d[\"get\"+(e._isUTC?\"UTC\":\"\")+t]():NaN}function ee(e,t,o){e.isValid()&&!isNaN(o)&&(\"FullYear\"===t&&Q(e.year())&&1===e.month()&&29===e.date()?e._d[\"set\"+(e._isUTC?\"UTC\":\"\")+t](o,e.month(),ne(o,e.month())):e._d[\"set\"+(e._isUTC?\"UTC\":\"\")+t](o))}function te(e,t){if(\"object\"==typeof e){e=R(e);for(var o=N(e),n=0;n<o.length;n++)this[o[n].unit](e[o[n].unit])}else if(e=Y(e),O(this[e]))return this[e](t);return this}function oe(e,t){return(e%t+t)%t}function ne(e,t){if(isNaN(e)||isNaN(t))return NaN;var o=oe(t,12);return e+=(t-o)/12,1===o?Q(e)?29:28:31-o%7%2}function ie(e,t,o){var n=e.toLocaleLowerCase(),a,r,s;if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],a=0;12>a;++a)s=g([2e3,a]),this._shortMonthsParse[a]=this.monthsShort(s,\"\").toLocaleLowerCase(),this._longMonthsParse[a]=this.months(s,\"\").toLocaleLowerCase();return o?\"MMM\"===t?(r=Yo.call(this._shortMonthsParse,n),-1===r?null:r):(r=Yo.call(this._longMonthsParse,n),-1===r?null:r):\"MMM\"===t?(r=Yo.call(this._shortMonthsParse,n),-1!==r)?r:(r=Yo.call(this._longMonthsParse,n),-1===r?null:r):(r=Yo.call(this._longMonthsParse,n),-1!==r)?r:(r=Yo.call(this._shortMonthsParse,n),-1===r?null:r)}function ae(e,t,o){var n,a,r;if(this._monthsParseExact)return ie.call(this,e,t,o);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),n=0;12>n;n++){if(a=g([2e3,n]),o&&!this._longMonthsParse[n]&&(this._longMonthsParse[n]=new RegExp(\"^\"+this.months(a,\"\").replace(\".\",\"\")+\"$\",\"i\"),this._shortMonthsParse[n]=new RegExp(\"^\"+this.monthsShort(a,\"\").replace(\".\",\"\")+\"$\",\"i\")),o||this._monthsParse[n]||(r=\"^\"+this.months(a,\"\")+\"|^\"+this.monthsShort(a,\"\"),this._monthsParse[n]=new RegExp(r.replace(\".\",\"\"),\"i\")),o&&\"MMMM\"===t&&this._longMonthsParse[n].test(e))return n;if(o&&\"MMM\"===t&&this._shortMonthsParse[n].test(e))return n;if(!o&&this._monthsParse[n].test(e))return n}}function re(e,t){var o;if(!e.isValid())return e;if(\"string\"==typeof t)if(/^\\d+$/.test(t))t=x(t);else if(t=e.localeData().monthsParse(t),!r(t))return e;return o=Jt(e.date(),ne(e.year(),t)),e._d[\"set\"+(e._isUTC?\"UTC\":\"\")+\"Month\"](t,o),e}function se(e){return null==e?J(this,\"Month\"):(re(this,e),t.updateOffset(this,!0),this)}function de(){function e(e,t){return t.length-e.length}var t=[],o=[],n=[],a,r;for(a=0;12>a;a++)r=g([2e3,a]),t.push(this.monthsShort(r,\"\")),o.push(this.months(r,\"\")),n.push(this.months(r,\"\")),n.push(this.monthsShort(r,\"\"));for(t.sort(e),o.sort(e),n.sort(e),a=0;12>a;a++)t[a]=B(t[a]),o[a]=B(o[a]);for(a=0;24>a;a++)n[a]=B(n[a]);this._monthsRegex=new RegExp(\"^(\"+n.join(\"|\")+\")\",\"i\"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp(\"^(\"+o.join(\"|\")+\")\",\"i\"),this._monthsShortStrictRegex=new RegExp(\"^(\"+t.join(\"|\")+\")\",\"i\")}function le(e,t,o,n,i,a,r){var s;return 100>e&&0<=e?(s=new Date(e+400,t,o,n,i,a,r),isFinite(s.getFullYear())&&s.setFullYear(e)):s=new Date(e,t,o,n,i,a,r),s}function pe(e){var t;if(100>e&&0<=e){var o=Array.prototype.slice.call(arguments);o[0]=e+400,t=new Date(Date.UTC.apply(null,o)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)}else t=new Date(Date.UTC.apply(null,arguments));return t}function me(e,t,o){var n=7+t-o,i=(7+pe(e,0,n).getUTCDay()-t)%7;return-i+n-1}function ue(e,t,o,n,i){var a=me(e,n,i),r=1+7*(t-1)+(7+o-n)%7+a,s,d;return 0>=r?(s=e-1,d=K(s)+r):r>K(e)?(s=e+1,d=r-K(e)):(s=e,d=r),{year:s,dayOfYear:d}}function ce(e,t,o){var n=me(e.year(),t,o),i=Qt((e.dayOfYear()-n-1)/7)+1,a,r;return 1>i?(r=e.year()-1,a=i+ge(r,t,o)):i>ge(e.year(),t,o)?(a=i-ge(e.year(),t,o),r=e.year()+1):(r=e.year(),a=i),{week:a,year:r}}function ge(e,t,o){var n=me(e,t,o),i=me(e+1,t,o);return(K(e)-n+i)/7}function he(e,t){return\"string\"==typeof e?isNaN(e)?(e=t.weekdaysParse(e),\"number\"==typeof e?e:null):parseInt(e,10):e}function ye(e,t){return\"string\"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function fe(e,t){return e.slice(t,7).concat(e.slice(0,t))}function be(e,t,o){var n=e.toLocaleLowerCase(),a,r,s;if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],a=0;7>a;++a)s=g([2e3,1]).day(a),this._minWeekdaysParse[a]=this.weekdaysMin(s,\"\").toLocaleLowerCase(),this._shortWeekdaysParse[a]=this.weekdaysShort(s,\"\").toLocaleLowerCase(),this._weekdaysParse[a]=this.weekdays(s,\"\").toLocaleLowerCase();return o?\"dddd\"===t?(r=Yo.call(this._weekdaysParse,n),-1===r?null:r):\"ddd\"===t?(r=Yo.call(this._shortWeekdaysParse,n),-1===r?null:r):(r=Yo.call(this._minWeekdaysParse,n),-1===r?null:r):\"dddd\"===t?(r=Yo.call(this._weekdaysParse,n),-1!==r)?r:(r=Yo.call(this._shortWeekdaysParse,n),-1!==r)?r:(r=Yo.call(this._minWeekdaysParse,n),-1===r?null:r):\"ddd\"===t?(r=Yo.call(this._shortWeekdaysParse,n),-1!==r)?r:(r=Yo.call(this._weekdaysParse,n),-1!==r)?r:(r=Yo.call(this._minWeekdaysParse,n),-1===r?null:r):(r=Yo.call(this._minWeekdaysParse,n),-1!==r)?r:(r=Yo.call(this._weekdaysParse,n),-1!==r)?r:(r=Yo.call(this._shortWeekdaysParse,n),-1===r?null:r)}function _e(e,t,o){var n,a,r;if(this._weekdaysParseExact)return be.call(this,e,t,o);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),n=0;7>n;n++){if(a=g([2e3,1]).day(n),o&&!this._fullWeekdaysParse[n]&&(this._fullWeekdaysParse[n]=new RegExp(\"^\"+this.weekdays(a,\"\").replace(\".\",\"\\\\.?\")+\"$\",\"i\"),this._shortWeekdaysParse[n]=new RegExp(\"^\"+this.weekdaysShort(a,\"\").replace(\".\",\"\\\\.?\")+\"$\",\"i\"),this._minWeekdaysParse[n]=new RegExp(\"^\"+this.weekdaysMin(a,\"\").replace(\".\",\"\\\\.?\")+\"$\",\"i\")),this._weekdaysParse[n]||(r=\"^\"+this.weekdays(a,\"\")+\"|^\"+this.weekdaysShort(a,\"\")+\"|^\"+this.weekdaysMin(a,\"\"),this._weekdaysParse[n]=new RegExp(r.replace(\".\",\"\"),\"i\")),o&&\"dddd\"===t&&this._fullWeekdaysParse[n].test(e))return n;if(o&&\"ddd\"===t&&this._shortWeekdaysParse[n].test(e))return n;if(o&&\"dd\"===t&&this._minWeekdaysParse[n].test(e))return n;if(!o&&this._weekdaysParse[n].test(e))return n}}function ve(){function e(e,t){return t.length-e.length}var t=[],o=[],n=[],a=[],r,s,d,l,p;for(r=0;7>r;r++)s=g([2e3,1]).day(r),d=this.weekdaysMin(s,\"\"),l=this.weekdaysShort(s,\"\"),p=this.weekdays(s,\"\"),t.push(d),o.push(l),n.push(p),a.push(d),a.push(l),a.push(p);for(t.sort(e),o.sort(e),n.sort(e),a.sort(e),r=0;7>r;r++)o[r]=B(o[r]),n[r]=B(n[r]),a[r]=B(a[r]);this._weekdaysRegex=new RegExp(\"^(\"+a.join(\"|\")+\")\",\"i\"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp(\"^(\"+n.join(\"|\")+\")\",\"i\"),this._weekdaysShortStrictRegex=new RegExp(\"^(\"+o.join(\"|\")+\")\",\"i\"),this._weekdaysMinStrictRegex=new RegExp(\"^(\"+t.join(\"|\")+\")\",\"i\")}function ke(){return this.hours()%12||12}function we(e,t){H(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function xe(e,t){return t._meridiemParse}function De(e){return e?e.toLowerCase().replace(\"_\",\"-\"):e}function Se(e){for(var t=0,o,n,a,r;t<e.length;){for(r=De(e[t]).split(\"-\"),o=r.length,n=De(e[t+1]),n=n?n.split(\"-\"):null;0<o;){if(a=Ce(r.slice(0,o).join(\"-\")),a)return a;if(n&&n.length>=o&&D(r,n,!0)>=o-1)break;o--}t++}return Ko}function Ce(t){var o=null;if(!Fo[t]&&!0&&e&&e.exports)try{o=Ko._abbr;d(\"./locale/\"+t),Te(o)}catch(t){}return Fo[t]}function Te(e,t){var o;return e&&(o=a(t)?Me(e):Oe(e,t),o?Ko=o:\"undefined\"!=typeof console&&console.warn&&console.warn(\"Locale \"+e+\" not found. Did you forget to load it?\")),Ko._abbr}function Oe(e,t){if(null!==t){var o=Go,n;if(t.abbr=e,null!=Fo[e])T(\"defineLocaleOverride\",\"use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.\"),o=Fo[e]._config;else if(null!=t.parentLocale)if(null!=Fo[t.parentLocale])o=Fo[t.parentLocale]._config;else if(n=Ce(t.parentLocale),null!=n)o=n._config;else return jo[t.parentLocale]||(jo[t.parentLocale]=[]),jo[t.parentLocale].push({name:e,config:t}),null;return Fo[e]=new P(I(o,t)),jo[e]&&jo[e].forEach(function(e){Oe(e.name,e.config)}),Te(e),Fo[e]}return delete Fo[e],null}function Me(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Ko;if(!o(e)){if(t=Ce(e),t)return t;e=[e]}return Se(e)}function Ie(){return Vt(Fo)}function Pe(e){var t=e._a,o;return t&&-2===y(e).overflow&&(o=0>t[1]||11<t[1]?1:1>t[2]||t[2]>ne(t[0],t[1])?2:0>t[3]||24<t[3]||24===t[3]&&(0!==t[4]||0!==t[5]||0!==t[6])?3:0>t[4]||59<t[4]?4:0>t[5]||59<t[5]?5:0>t[6]||999<t[6]?6:-1,y(e)._overflowDayOfYear&&(0>o||2<o)&&(o=2),y(e)._overflowWeeks&&-1===o&&(o=7),y(e)._overflowWeekday&&-1===o&&(o=8),y(e).overflow=o),e}function Ee(e,t,o){return null==e?null==t?o:t:e}function Ye(e){var o=new Date(t.now());return e._useUTC?[o.getUTCFullYear(),o.getUTCMonth(),o.getUTCDate()]:[o.getFullYear(),o.getMonth(),o.getDate()]}function Re(e){var t=[],o,n,a,r,s;if(!e._d){for(a=Ye(e),e._w&&null==e._a[2]&&null==e._a[1]&&Ae(e),null!=e._dayOfYear&&(s=Ee(e._a[0],a[0]),(e._dayOfYear>K(s)||0===e._dayOfYear)&&(y(e)._overflowDayOfYear=!0),n=pe(s,0,e._dayOfYear),e._a[1]=n.getUTCMonth(),e._a[2]=n.getUTCDate()),o=0;3>o&&null==e._a[o];++o)e._a[o]=t[o]=a[o];for(;7>o;o++)e._a[o]=t[o]=null==e._a[o]?2===o?1:0:e._a[o];24===e._a[3]&&0===e._a[4]&&0===e._a[5]&&0===e._a[6]&&(e._nextDay=!0,e._a[3]=0),e._d=(e._useUTC?pe:le).apply(null,t),r=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[3]=24),e._w&&\"undefined\"!=typeof e._w.d&&e._w.d!==r&&(y(e).weekdayMismatch=!0)}}function Ae(e){var t,o,n,i,a,r,s,d;if(t=e._w,null!=t.GG||null!=t.W||null!=t.E)a=1,r=4,o=Ee(t.GG,e._a[0],ce($e(),1,4).year),n=Ee(t.W,1),i=Ee(t.E,1),(1>i||7<i)&&(d=!0);else{a=e._locale._week.dow,r=e._locale._week.doy;var l=ce($e(),a,r);o=Ee(t.gg,e._a[0],l.year),n=Ee(t.w,l.week),null==t.d?null==t.e?i=a:(i=t.e+a,(0>t.e||6<t.e)&&(d=!0)):(i=t.d,(0>i||6<i)&&(d=!0))}1>n||n>ge(o,a,r)?y(e)._overflowWeeks=!0:null==d?(s=ue(o,n,i,a,r),e._a[0]=s.year,e._dayOfYear=s.dayOfYear):y(e)._overflowWeekday=!0}function Ne(e){var t=e._i,o=Wo.exec(t)||Uo.exec(t),n,a,r,s,d,p;if(o){for(y(e).iso=!0,n=0,a=Vo.length;n<a;n++)if(Vo[n][1].exec(o[1])){s=Vo[n][0],r=!1!==Vo[n][2];break}if(null==s)return void(e._isValid=!1);if(o[3]){for(n=0,a=Bo.length;n<a;n++)if(Bo[n][1].exec(o[3])){d=(o[2]||\" \")+Bo[n][0];break}if(null==d)return void(e._isValid=!1)}if(!r&&null!=d)return void(e._isValid=!1);if(o[4])if(zo.exec(o[4]))p=\"Z\";else return void(e._isValid=!1);e._f=s+(d||\"\")+(p||\"\"),ze(e)}else e._isValid=!1}function Le(e,t,o,n,i,a){var r=[He(e),Ao.indexOf(t),parseInt(o,10),parseInt(n,10),parseInt(i,10)];return a&&r.push(parseInt(a,10)),r}function He(e){var t=parseInt(e,10);return 49>=t?2e3+t:999>=t?1900+t:t}function Ge(e){return e.replace(/\\([^)]*\\)|[\\n\\t]/g,\" \").replace(/(\\s\\s+)/g,\" \").replace(/^\\s\\s*/,\"\").replace(/\\s\\s*$/,\"\")}function Fe(e,t,o){if(e){var n=No.indexOf(e),i=new Date(t[0],t[1],t[2]).getDay();if(n!==i)return y(o).weekdayMismatch=!0,o._isValid=!1,!1}return!0}function je(e,t,o){if(e)return Xo[e];if(t)return 0;var n=parseInt(o,10),i=n%100;return 60*((n-i)/100)+i}function We(e){var t=Zo.exec(Ge(e._i));if(t){var o=Le(t[4],t[3],t[2],t[5],t[6],t[7]);if(!Fe(t[1],o,e))return;e._a=o,e._tzm=je(t[8],t[9],t[10]),e._d=pe.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),y(e).rfc2822=!0}else e._isValid=!1}function Ue(e){var o=qo.exec(e._i);if(null!==o)return void(e._d=new Date(+o[1]));if(Ne(e),!1===e._isValid)delete e._isValid;else return;if(We(e),!1===e._isValid)delete e._isValid;else return;t.createFromInputFallback(e)}function ze(e){if(e._f===t.ISO_8601)return void Ne(e);if(e._f===t.RFC_2822)return void We(e);e._a=[],y(e).empty=!0;var o=\"\"+e._i,n=o.length,a=0,r,s,d,l,p;for(d=W(e._f,e._locale).match(oo)||[],r=0;r<d.length;r++)l=d[r],s=(o.match(z(l,e))||[])[0],s&&(p=o.substr(0,o.indexOf(s)),0<p.length&&y(e).unusedInput.push(p),o=o.slice(o.indexOf(s)+s.length),a+=s.length),ao[l]?(s?y(e).empty=!1:y(e).unusedTokens.push(l),X(l,s,e)):e._strict&&!s&&y(e).unusedTokens.push(l);y(e).charsLeftOver=n-a,0<o.length&&y(e).unusedInput.push(o),12>=e._a[3]&&!0===y(e).bigHour&&0<e._a[3]&&(y(e).bigHour=void 0),y(e).parsedDateParts=e._a.slice(0),y(e).meridiem=e._meridiem,e._a[3]=Ve(e._locale,e._a[3],e._meridiem),Re(e),Pe(e)}function Ve(e,t,o){var n;return null==o?t:null==e.meridiemHour?null==e.isPM?t:(n=e.isPM(o),n&&12>t&&(t+=12),n||12!==t||(t=0),t):e.meridiemHour(t,o)}function Be(e){var t,o,n,a,r;if(0===e._f.length)return y(e).invalidFormat=!0,void(e._d=new Date(NaN));for(a=0;a<e._f.length;a++)(r=0,t=_({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[a],ze(t),!!f(t))&&(r+=y(t).charsLeftOver,r+=10*y(t).unusedTokens.length,y(t).score=r,(null==n||r<n)&&(n=r,o=t));u(e,o||t)}function qe(e){if(!e._d){var t=R(e._i);e._a=l([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],function(e){return e&&parseInt(e,10)}),Re(e)}}function Ze(e){var t=new v(Pe(Xe(e)));return t._nextDay&&(t.add(1,\"d\"),t._nextDay=void 0),t}function Xe(e){var t=e._i,n=e._f;return(e._locale=e._locale||Me(e._l),null===t||void 0===n&&\"\"===t)?b({nullInput:!0}):(\"string\"==typeof t&&(e._i=t=e._locale.preparse(t)),k(t))?new v(Pe(t)):(s(t)?e._d=t:o(n)?Be(e):n?ze(e):Ke(e),f(e)||(e._d=null),e)}function Ke(e){var i=e._i;a(i)?e._d=new Date(t.now()):s(i)?e._d=new Date(i.valueOf()):\"string\"==typeof i?Ue(e):o(i)?(e._a=l(i.slice(0),function(e){return parseInt(e,10)}),Re(e)):n(i)?qe(e):r(i)?e._d=new Date(i):t.createFromInputFallback(e)}function Qe(e,t,a,r,s){var d={};return(!0===a||!1===a)&&(r=a,a=void 0),(n(e)&&i(e)||o(e)&&0===e.length)&&(e=void 0),d._isAMomentObject=!0,d._useUTC=d._isUTC=s,d._l=a,d._i=e,d._f=t,d._strict=r,Ze(d)}function $e(e,t,o,n){return Qe(e,t,o,n,!1)}function Je(e,t){var n,a;if(1===t.length&&o(t[0])&&(t=t[0]),!t.length)return $e();for(n=t[0],a=1;a<t.length;++a)(!t[a].isValid()||t[a][e](n))&&(n=t[a]);return n}function et(e){for(var t in e)if(-1===Yo.call(Jo,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var o=!1,n=0;n<Jo.length;++n)if(e[Jo[n]]){if(o)return!1;parseFloat(e[Jo[n]])!==x(e[Jo[n]])&&(o=!0)}return!0}function tt(e){var t=R(e),o=t.year||0,n=t.quarter||0,i=t.month||0,a=t.week||t.isoWeek||0,r=t.day||0,s=t.hour||0,d=t.minute||0,l=t.second||0,p=t.millisecond||0;this._isValid=et(t),this._milliseconds=+p+1e3*l+6e4*d+60*(60*(1e3*s)),this._days=+r+7*a,this._months=+i+3*n+12*o,this._data={},this._locale=Me(),this._bubble()}function ot(e){return e instanceof tt}function nt(e){return 0>e?-1*qt(-1*e):qt(e)}function it(e,t){H(e,0,0,function(){var e=this.utcOffset(),o=\"+\";return 0>e&&(e=-e,o=\"-\"),o+L(~~(e/60),2)+t+L(~~e%60,2)})}function at(e,t){var o=(t||\"\").match(e);if(null===o)return null;var n=o[o.length-1]||[],i=(n+\"\").match(en)||[\"-\",0,0],a=+(60*i[1])+x(i[2]);return 0===a?0:\"+\"===i[0]?a:-a}function rt(e,o){var n,i;return o._isUTC?(n=o.clone(),i=(k(e)||s(e)?e.valueOf():$e(e).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+i),t.updateOffset(n,!1),n):$e(e).local()}function st(e){return 15*-qt(e._d.getTimezoneOffset()/15)}function dt(){return!!this.isValid()&&this._isUTC&&0===this._offset}function lt(e,t){var o=e,n=null,i,a,s;return ot(e)?o={ms:e._milliseconds,d:e._days,M:e._months}:r(e)?(o={},t?o[t]=e:o.milliseconds=e):(n=tn.exec(e))?(i=\"-\"===n[1]?-1:1,o={y:0,d:x(n[2])*i,h:x(n[3])*i,m:x(n[4])*i,s:x(n[5])*i,ms:x(nt(1e3*n[6]))*i}):(n=on.exec(e))?(i=\"-\"===n[1]?-1:1,o={y:pt(n[2],i),M:pt(n[3],i),w:pt(n[4],i),d:pt(n[5],i),h:pt(n[6],i),m:pt(n[7],i),s:pt(n[8],i)}):null==o?o={}:\"object\"==typeof o&&((\"from\"in o)||(\"to\"in o))&&(s=ut($e(o.from),$e(o.to)),o={},o.ms=s.milliseconds,o.M=s.months),a=new tt(o),ot(e)&&p(e,\"_locale\")&&(a._locale=e._locale),a}function pt(e,t){var o=e&&parseFloat(e.replace(\",\",\".\"));return(isNaN(o)?0:o)*t}function mt(e,t){var o={};return o.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(o.months,\"M\").isAfter(t)&&--o.months,o.milliseconds=+t-+e.clone().add(o.months,\"M\"),o}function ut(e,t){var o;return e.isValid()&&t.isValid()?(t=rt(t,e),e.isBefore(t)?o=mt(e,t):(o=mt(t,e),o.milliseconds=-o.milliseconds,o.months=-o.months),o):{milliseconds:0,months:0}}function ct(e,t){return function(o,n){var i,a;return null===n||isNaN(+n)||(T(t,\"moment().\"+t+\"(period, number) is deprecated. Please use moment().\"+t+\"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.\"),a=o,o=n,n=a),o=\"string\"==typeof o?+o:o,i=lt(o,n),gt(this,i,e),this}}function gt(e,o,n,i){var a=o._milliseconds,r=nt(o._days),s=nt(o._months);e.isValid()&&(i=null==i||i,s&&re(e,J(e,\"Month\")+s*n),r&&ee(e,\"Date\",J(e,\"Date\")+r*n),a&&e._d.setTime(e._d.valueOf()+a*n),i&&t.updateOffset(e,r||s))}function ht(e,t){var o=12*(t.year()-e.year())+(t.month()-e.month()),n=e.clone().add(o,\"months\"),i,a;return 0>t-n?(i=e.clone().add(o-1,\"months\"),a=(t-n)/(n-i)):(i=e.clone().add(o+1,\"months\"),a=(t-n)/(i-n)),-(o+a)||0}function yt(e){var t;return void 0===e?this._locale._abbr:(t=Me(e),null!=t&&(this._locale=t),this)}function ft(){return this._locale}function bt(e,t){return(e%t+t)%t}function _t(e,t,o){return 100>e&&0<=e?new Date(e+400,t,o)-12622780800000:new Date(e,t,o).valueOf()}function vt(e,t,o){return 100>e&&0<=e?Date.UTC(e+400,t,o)-12622780800000:Date.UTC(e,t,o)}function kt(e,t){H(0,[e,e.length],0,t)}function wt(e,t,o,n,i){var a;return null==e?ce(this,n,i).year:(a=ge(e,n,i),t>a&&(t=a),xt.call(this,e,t,o,n,i))}function xt(e,t,o,n,i){var a=ue(e,t,o,n,i),r=pe(a.year,0,a.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function Dt(e,t){t[6]=x(1e3*(\"0.\"+e))}function St(e){return e}function Ct(e,t,o,n){var i=Me(),a=g().set(n,t);return i[o](a,e)}function Tt(e,t,o){if(r(e)&&(t=e,e=void 0),e=e||\"\",null!=t)return Ct(e,t,o,\"month\");var n=[],a;for(a=0;12>a;a++)n[a]=Ct(e,a,o,\"month\");return n}function Ot(e,t,o,n){\"boolean\"==typeof e?(r(t)&&(o=t,t=void 0),t=t||\"\"):(t=e,o=t,e=!1,r(t)&&(o=t,t=void 0),t=t||\"\");var a=Me(),s=e?a._week.dow:0;if(null!=o)return Ct(t,(o+s)%7,n,\"day\");var d=[],l;for(l=0;7>l;l++)d[l]=Ct(t,(l+s)%7,n,\"day\");return d}function Mt(e,t,o,n){var i=lt(t,o);return e._milliseconds+=n*i._milliseconds,e._days+=n*i._days,e._months+=n*i._months,e._bubble()}function It(e){return 0>e?Qt(e):Kt(e)}function Pt(e){return 4800*e/146097}function Et(e){return 146097*e/4800}function Yt(e){return function(){return this.as(e)}}function Rt(e){return function(){return this.isValid()?this._data[e]:NaN}}function At(e,t,o,n,i){return i.relativeTime(t||1,!!o,e,n)}function Nt(e,t,o){var n=lt(e).abs(),i=Pn(n.as(\"s\")),r=Pn(n.as(\"m\")),s=Pn(n.as(\"h\")),d=Pn(n.as(\"d\")),l=Pn(n.as(\"M\")),p=Pn(n.as(\"y\")),m=i<=En.ss&&[\"s\",i]||i<En.s&&[\"ss\",i]||1>=r&&[\"m\"]||r<En.m&&[\"mm\",r]||1>=s&&[\"h\"]||s<En.h&&[\"hh\",s]||1>=d&&[\"d\"]||d<En.d&&[\"dd\",d]||1>=l&&[\"M\"]||l<En.M&&[\"MM\",l]||1>=p&&[\"y\"]||[\"yy\",p];return m[2]=t,m[3]=0<+e,m[4]=o,At.apply(null,m)}function Lt(e){return void 0===e?Pn:\"function\"==typeof e&&(Pn=e,!0)}function Ht(e){return(0<e)-(0>e)||+e}function Gt(){if(!this.isValid())return this.localeData().invalidDate();var e=Yn(this._milliseconds)/1e3,t=Yn(this._days),o=Yn(this._months),n,i,a;n=w(e/60),i=w(n/60),e%=60,n%=60,a=w(o/12),o%=12;var r=a,d=o,l=t,p=i,u=n,m=e?e.toFixed(3).replace(/\\.?0+$/,\"\"):\"\",s=this.asSeconds();if(!s)return\"P0D\";var c=0>s?\"-\":\"\",g=Ht(this._months)===Ht(s)?\"\":\"-\",h=Ht(this._days)===Ht(s)?\"\":\"-\",y=Ht(this._milliseconds)===Ht(s)?\"\":\"-\";return c+\"P\"+(r?g+r+\"Y\":\"\")+(d?g+d+\"M\":\"\")+(l?h+l+\"D\":\"\")+(p||u||m?\"T\":\"\")+(p?y+p+\"H\":\"\")+(u?y+u+\"M\":\"\")+(m?y+m+\"S\":\"\")}var Ft,jt;jt=Array.prototype.some?Array.prototype.some:function(e){for(var o=Object(this),t=o.length>>>0,n=0;n<t;n++)if((n in o)&&e.call(this,o[n],n,o))return!0;return!1};var Wt=t.momentProperties=[],Ut=!1,zt={};t.suppressDeprecationWarnings=!1,t.deprecationHandler=null;var Vt=Object.keys?Object.keys:function(e){var t=[],o;for(o in e)p(e,o)&&t.push(o);return t};var Bt=/\\d{1,2}/,eo={},to={},oo=/(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,no=/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,io={},ao={},ro=/\\d/,so=/\\d\\d/,lo=/\\d{3}/,po=/\\d{4}/,mo=/[+-]?\\d{6}/,uo=/\\d\\d?/,co=/\\d\\d\\d\\d?/,go=/\\d\\d\\d\\d\\d\\d?/,ho=/\\d{1,3}/,yo=/\\d{1,4}/,fo=/[+-]?\\d{1,6}/,bo=/\\d+/,_o=/[+-]?\\d+/,vo=/Z|[+-]\\d\\d:?\\d\\d/gi,ko=/Z|[+-]\\d\\d(?::?\\d\\d)?/gi,wo=/[+-]?\\d+(\\.\\d{1,3})?/,xo=/[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,Do={},So={},Co=0,To=1,Oo=2,Mo=3,Io=4,Po=5;H(\"Y\",0,0,function(){var e=this.year();return 9999>=e?\"\"+e:\"+\"+e}),H(0,[\"YY\",2],0,function(){return this.year()%100}),H(0,[\"YYYY\",4],0,\"year\"),H(0,[\"YYYYY\",5],0,\"year\"),H(0,[\"YYYYYY\",6,!0],0,\"year\"),E(\"year\",\"y\"),A(\"year\",1),U(\"Y\",_o),U(\"YY\",uo,so),U(\"YYYY\",yo,po),U(\"YYYYY\",fo,mo),U(\"YYYYYY\",fo,mo),q([\"YYYYY\",\"YYYYYY\"],Co),q(\"YYYY\",function(e,o){o[Co]=2===e.length?t.parseTwoDigitYear(e):x(e)}),q(\"YY\",function(e,o){o[Co]=t.parseTwoDigitYear(e)}),q(\"Y\",function(e,t){t[Co]=parseInt(e,10)}),t.parseTwoDigitYear=function(e){return x(e)+(68<x(e)?1900:2e3)};var Eo=$(\"FullYear\",!0),Yo;Yo=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},H(\"M\",[\"MM\",2],\"Mo\",function(){return this.month()+1}),H(\"MMM\",0,0,function(e){return this.localeData().monthsShort(this,e)}),H(\"MMMM\",0,0,function(e){return this.localeData().months(this,e)}),E(\"month\",\"M\"),A(\"month\",8),U(\"M\",uo),U(\"MM\",uo,so),U(\"MMM\",function(e,t){return t.monthsShortRegex(e)}),U(\"MMMM\",function(e,t){return t.monthsRegex(e)}),q([\"M\",\"MM\"],function(e,t){t[To]=x(e)-1}),q([\"MMM\",\"MMMM\"],function(e,t,o,n){var i=o._locale.monthsParse(e,n,o._strict);null==i?y(o).invalidMonth=e:t[To]=i});var Ro=/D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,Ao=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];H(\"w\",[\"ww\",2],\"wo\",\"week\"),H(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\"),E(\"week\",\"w\"),E(\"isoWeek\",\"W\"),A(\"week\",5),A(\"isoWeek\",5),U(\"w\",uo),U(\"ww\",uo,so),U(\"W\",uo),U(\"WW\",uo,so),Z([\"w\",\"ww\",\"W\",\"WW\"],function(e,t,o,n){t[n.substr(0,1)]=x(e)});H(\"d\",0,\"do\",\"day\"),H(\"dd\",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),H(\"ddd\",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),H(\"dddd\",0,0,function(e){return this.localeData().weekdays(this,e)}),H(\"e\",0,0,\"weekday\"),H(\"E\",0,0,\"isoWeekday\"),E(\"day\",\"d\"),E(\"weekday\",\"e\"),E(\"isoWeekday\",\"E\"),A(\"day\",11),A(\"weekday\",11),A(\"isoWeekday\",11),U(\"d\",uo),U(\"e\",uo),U(\"E\",uo),U(\"dd\",function(e,t){return t.weekdaysMinRegex(e)}),U(\"ddd\",function(e,t){return t.weekdaysShortRegex(e)}),U(\"dddd\",function(e,t){return t.weekdaysRegex(e)}),Z([\"dd\",\"ddd\",\"dddd\"],function(e,t,o,n){var i=o._locale.weekdaysParse(e,n,o._strict);null==i?y(o).invalidWeekday=e:t.d=i}),Z([\"d\",\"e\",\"E\"],function(e,t,o,n){t[n]=x(e)});var No=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"];H(\"H\",[\"HH\",2],0,\"hour\"),H(\"h\",[\"hh\",2],0,ke),H(\"k\",[\"kk\",2],0,function(){return this.hours()||24}),H(\"hmm\",0,0,function(){return\"\"+ke.apply(this)+L(this.minutes(),2)}),H(\"hmmss\",0,0,function(){return\"\"+ke.apply(this)+L(this.minutes(),2)+L(this.seconds(),2)}),H(\"Hmm\",0,0,function(){return\"\"+this.hours()+L(this.minutes(),2)}),H(\"Hmmss\",0,0,function(){return\"\"+this.hours()+L(this.minutes(),2)+L(this.seconds(),2)}),we(\"a\",!0),we(\"A\",!1),E(\"hour\",\"h\"),A(\"hour\",13),U(\"a\",xe),U(\"A\",xe),U(\"H\",uo),U(\"h\",uo),U(\"k\",uo),U(\"HH\",uo,so),U(\"hh\",uo,so),U(\"kk\",uo,so),U(\"hmm\",co),U(\"hmmss\",go),U(\"Hmm\",co),U(\"Hmmss\",go),q([\"H\",\"HH\"],Mo),q([\"k\",\"kk\"],function(e,t){var o=x(e);t[Mo]=24===o?0:o}),q([\"a\",\"A\"],function(e,t,o){o._isPm=o._locale.isPM(e),o._meridiem=e}),q([\"h\",\"hh\"],function(e,t,o){t[Mo]=x(e),y(o).bigHour=!0}),q(\"hmm\",function(e,t,o){var n=e.length-2;t[Mo]=x(e.substr(0,n)),t[Io]=x(e.substr(n)),y(o).bigHour=!0}),q(\"hmmss\",function(e,t,o){var n=e.length-4,i=e.length-2;t[Mo]=x(e.substr(0,n)),t[Io]=x(e.substr(n,2)),t[Po]=x(e.substr(i)),y(o).bigHour=!0}),q(\"Hmm\",function(e,t){var o=e.length-2;t[Mo]=x(e.substr(0,o)),t[Io]=x(e.substr(o))}),q(\"Hmmss\",function(e,t){var o=e.length-4,n=e.length-2;t[Mo]=x(e.substr(0,o)),t[Io]=x(e.substr(o,2)),t[Po]=x(e.substr(n))});var Lo=/[ap]\\.?m?\\.?/i,Ho=$(\"Hours\",!0),Go={calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},longDateFormat:{LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},invalidDate:\"Invalid date\",ordinal:\"%d\",dayOfMonthOrdinalParse:Bt,relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",ss:\"%d seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},months:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],monthsShort:Ao,week:{dow:0,doy:6},weekdays:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],weekdaysMin:[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"],weekdaysShort:No,meridiemParse:Lo},Fo={},jo={},Wo=/^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,Uo=/^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,zo=/Z|[+-]\\d\\d(?::?\\d\\d)?/,Vo=[[\"YYYYYY-MM-DD\",/[+-]\\d{6}-\\d\\d-\\d\\d/],[\"YYYY-MM-DD\",/\\d{4}-\\d\\d-\\d\\d/],[\"GGGG-[W]WW-E\",/\\d{4}-W\\d\\d-\\d/],[\"GGGG-[W]WW\",/\\d{4}-W\\d\\d/,!1],[\"YYYY-DDD\",/\\d{4}-\\d{3}/],[\"YYYY-MM\",/\\d{4}-\\d\\d/,!1],[\"YYYYYYMMDD\",/[+-]\\d{10}/],[\"YYYYMMDD\",/\\d{8}/],[\"GGGG[W]WWE\",/\\d{4}W\\d{3}/],[\"GGGG[W]WW\",/\\d{4}W\\d{2}/,!1],[\"YYYYDDD\",/\\d{7}/]],Bo=[[\"HH:mm:ss.SSSS\",/\\d\\d:\\d\\d:\\d\\d\\.\\d+/],[\"HH:mm:ss,SSSS\",/\\d\\d:\\d\\d:\\d\\d,\\d+/],[\"HH:mm:ss\",/\\d\\d:\\d\\d:\\d\\d/],[\"HH:mm\",/\\d\\d:\\d\\d/],[\"HHmmss.SSSS\",/\\d\\d\\d\\d\\d\\d\\.\\d+/],[\"HHmmss,SSSS\",/\\d\\d\\d\\d\\d\\d,\\d+/],[\"HHmmss\",/\\d\\d\\d\\d\\d\\d/],[\"HHmm\",/\\d\\d\\d\\d/],[\"HH\",/\\d\\d/]],qo=/^\\/?Date\\((\\-?\\d+)/i,Zo=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,Xo={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480},Ko;t.createFromInputFallback=C(\"value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.\",function(e){e._d=new Date(e._i+(e._useUTC?\" UTC\":\"\"))}),t.ISO_8601=function(){},t.RFC_2822=function(){};var Qo=C(\"moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var e=$e.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:b()}),$o=C(\"moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var e=$e.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:b()}),Jo=[\"year\",\"quarter\",\"month\",\"week\",\"day\",\"hour\",\"minute\",\"second\",\"millisecond\"];it(\"Z\",\":\"),it(\"ZZ\",\"\"),U(\"Z\",ko),U(\"ZZ\",ko),q([\"Z\",\"ZZ\"],function(e,t,o){o._useUTC=!0,o._tzm=at(ko,e)});var en=/([\\+\\-]|\\d\\d)/gi;t.updateOffset=function(){};var tn=/^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/,on=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;lt.fn=tt.prototype,lt.invalid=function(){return lt(NaN)};var nn=ct(1,\"add\"),an=ct(-1,\"subtract\");t.defaultFormat=\"YYYY-MM-DDTHH:mm:ssZ\",t.defaultFormatUtc=\"YYYY-MM-DDTHH:mm:ss[Z]\";var rn=C(\"moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.\",function(e){return void 0===e?this.localeData():this.locale(e)});H(0,[\"gg\",2],0,function(){return this.weekYear()%100}),H(0,[\"GG\",2],0,function(){return this.isoWeekYear()%100}),kt(\"gggg\",\"weekYear\"),kt(\"ggggg\",\"weekYear\"),kt(\"GGGG\",\"isoWeekYear\"),kt(\"GGGGG\",\"isoWeekYear\"),E(\"weekYear\",\"gg\"),E(\"isoWeekYear\",\"GG\"),A(\"weekYear\",1),A(\"isoWeekYear\",1),U(\"G\",_o),U(\"g\",_o),U(\"GG\",uo,so),U(\"gg\",uo,so),U(\"GGGG\",yo,po),U(\"gggg\",yo,po),U(\"GGGGG\",fo,mo),U(\"ggggg\",fo,mo),Z([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],function(e,t,o,n){t[n.substr(0,2)]=x(e)}),Z([\"gg\",\"GG\"],function(e,o,n,i){o[i]=t.parseTwoDigitYear(e)}),H(\"Q\",0,\"Qo\",\"quarter\"),E(\"quarter\",\"Q\"),A(\"quarter\",7),U(\"Q\",ro),q(\"Q\",function(e,t){t[To]=3*(x(e)-1)}),H(\"D\",[\"DD\",2],\"Do\",\"date\"),E(\"date\",\"D\"),A(\"date\",9),U(\"D\",uo),U(\"DD\",uo,so),U(\"Do\",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),q([\"D\",\"DD\"],Oo),q(\"Do\",function(e,t){t[Oo]=x(e.match(uo)[0])});var sn=$(\"Date\",!0);H(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\"),E(\"dayOfYear\",\"DDD\"),A(\"dayOfYear\",4),U(\"DDD\",ho),U(\"DDDD\",lo),q([\"DDD\",\"DDDD\"],function(e,t,o){o._dayOfYear=x(e)}),H(\"m\",[\"mm\",2],0,\"minute\"),E(\"minute\",\"m\"),A(\"minute\",14),U(\"m\",uo),U(\"mm\",uo,so),q([\"m\",\"mm\"],Io);var dn=$(\"Minutes\",!1);H(\"s\",[\"ss\",2],0,\"second\"),E(\"second\",\"s\"),A(\"second\",15),U(\"s\",uo),U(\"ss\",uo,so),q([\"s\",\"ss\"],Po);var ln=$(\"Seconds\",!1);H(\"S\",0,0,function(){return~~(this.millisecond()/100)}),H(0,[\"SS\",2],0,function(){return~~(this.millisecond()/10)}),H(0,[\"SSS\",3],0,\"millisecond\"),H(0,[\"SSSS\",4],0,function(){return 10*this.millisecond()}),H(0,[\"SSSSS\",5],0,function(){return 100*this.millisecond()}),H(0,[\"SSSSSS\",6],0,function(){return 1e3*this.millisecond()}),H(0,[\"SSSSSSS\",7],0,function(){return 1e4*this.millisecond()}),H(0,[\"SSSSSSSS\",8],0,function(){return 1e5*this.millisecond()}),H(0,[\"SSSSSSSSS\",9],0,function(){return 1e6*this.millisecond()}),E(\"millisecond\",\"ms\"),A(\"millisecond\",16),U(\"S\",ho,ro),U(\"SS\",ho,so),U(\"SSS\",ho,lo);var pn;for(pn=\"SSSS\";9>=pn.length;pn+=\"S\")U(pn,bo);for(pn=\"S\";9>=pn.length;pn+=\"S\")q(pn,Dt);var mn=$(\"Milliseconds\",!1);H(\"z\",0,0,\"zoneAbbr\"),H(\"zz\",0,0,\"zoneName\");var un=v.prototype;un.add=nn,un.calendar=function(e,o){var n=e||$e(),i=rt(n,this).startOf(\"day\"),a=t.calendarFormat(this,i)||\"sameElse\",r=o&&(O(o[a])?o[a].call(this,n):o[a]);return this.format(r||this.localeData().calendar(a,this,$e(n)))},un.clone=function(){return new v(this)},un.diff=function(e,t,o){var n,i,a;return this.isValid()?(n=rt(e,this),!n.isValid())?NaN:(i=6e4*(n.utcOffset()-this.utcOffset()),t=Y(t),(a=\"year\"===t?ht(this,n)/12:\"month\"===t?ht(this,n):\"quarter\"===t?ht(this,n)/3:\"second\"===t?(this-n)/1e3:\"minute\"===t?(this-n)/6e4:\"hour\"===t?(this-n)/36e5:\"day\"===t?(this-n-i)/864e5:\"week\"===t?(this-n-i)/6048e5:this-n,o?a:w(a))):NaN},un.endOf=function(e){var o;if(e=Y(e),void 0===e||\"millisecond\"===e||!this.isValid())return this;var n=this._isUTC?vt:_t;return\"year\"===e?o=n(this.year()+1,0,1)-1:\"quarter\"===e?o=n(this.year(),this.month()-this.month()%3+3,1)-1:\"month\"===e?o=n(this.year(),this.month()+1,1)-1:\"week\"===e?o=n(this.year(),this.month(),this.date()-this.weekday()+7)-1:\"isoWeek\"===e?o=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1:\"day\"===e||\"date\"===e?o=n(this.year(),this.month(),this.date()+1)-1:\"hour\"===e?(o=this._d.valueOf(),o+=3600000-bt(o+(this._isUTC?0:60000*this.utcOffset()),3600000)-1):\"minute\"===e?(o=this._d.valueOf(),o+=60000-bt(o,60000)-1):\"second\"===e?(o=this._d.valueOf(),o+=1000-bt(o,1000)-1):void 0,this._d.setTime(o),t.updateOffset(this,!0),this},un.format=function(e){e||(e=this.isUtc()?t.defaultFormatUtc:t.defaultFormat);var o=j(this,e);return this.localeData().postformat(o)},un.from=function(e,t){return this.isValid()&&(k(e)&&e.isValid()||$e(e).isValid())?lt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},un.fromNow=function(e){return this.from($e(),e)},un.to=function(e,t){return this.isValid()&&(k(e)&&e.isValid()||$e(e).isValid())?lt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},un.toNow=function(e){return this.to($e(),e)},un.get=function(e){return e=Y(e),O(this[e])?this[e]():this},un.invalidAt=function(){return y(this).overflow},un.isAfter=function(e,t){var o=k(e)?e:$e(e);return!!(this.isValid()&&o.isValid())&&(t=Y(t)||\"millisecond\",\"millisecond\"===t?this.valueOf()>o.valueOf():o.valueOf()<this.clone().startOf(t).valueOf())},un.isBefore=function(e,t){var o=k(e)?e:$e(e);return!!(this.isValid()&&o.isValid())&&(t=Y(t)||\"millisecond\",\"millisecond\"===t?this.valueOf()<o.valueOf():this.clone().endOf(t).valueOf()<o.valueOf())},un.isBetween=function(e,t,o,n){var i=k(e)?e:$e(e),a=k(t)?t:$e(t);return!!(this.isValid()&&i.isValid()&&a.isValid())&&(n=n||\"()\",(\"(\"===n[0]?this.isAfter(i,o):!this.isBefore(i,o))&&(\")\"===n[1]?this.isBefore(a,o):!this.isAfter(a,o)))},un.isSame=function(e,t){var o=k(e)?e:$e(e),n;return!!(this.isValid()&&o.isValid())&&(t=Y(t)||\"millisecond\",\"millisecond\"===t?this.valueOf()===o.valueOf():(n=o.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},un.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},un.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},un.isValid=function(){return f(this)},un.lang=rn,un.locale=yt,un.localeData=ft,un.max=$o,un.min=Qo,un.parsingFlags=function(){return u({},y(this))},un.set=te,un.startOf=function(e){var o;if(e=Y(e),void 0===e||\"millisecond\"===e||!this.isValid())return this;var n=this._isUTC?vt:_t;return\"year\"===e?o=n(this.year(),0,1):\"quarter\"===e?o=n(this.year(),this.month()-this.month()%3,1):\"month\"===e?o=n(this.year(),this.month(),1):\"week\"===e?o=n(this.year(),this.month(),this.date()-this.weekday()):\"isoWeek\"===e?o=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)):\"day\"===e||\"date\"===e?o=n(this.year(),this.month(),this.date()):\"hour\"===e?(o=this._d.valueOf(),o-=bt(o+(this._isUTC?0:60000*this.utcOffset()),3600000)):\"minute\"===e?(o=this._d.valueOf(),o-=bt(o,60000)):\"second\"===e?(o=this._d.valueOf(),o-=bt(o,1000)):void 0,this._d.setTime(o),t.updateOffset(this,!0),this},un.subtract=an,un.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},un.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},un.toDate=function(){return new Date(this.valueOf())},un.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,o=t?this.clone().utc():this;return 0>o.year()||9999<o.year()?j(o,t?\"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]\":\"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ\"):O(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+1e3*(60*this.utcOffset())).toISOString().replace(\"Z\",j(o,\"Z\")):j(o,t?\"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]\":\"YYYY-MM-DD[T]HH:mm:ss.SSSZ\")},un.inspect=function(){if(!this.isValid())return\"moment.invalid(/* \"+this._i+\" */)\";var e=\"moment\",t=\"\";this.isLocal()||(e=0===this.utcOffset()?\"moment.utc\":\"moment.parseZone\",t=\"Z\");var o=\"[\"+e+\"(\\\"]\",n=0<=this.year()&&9999>=this.year()?\"YYYY\":\"YYYYYY\",i=t+\"[\\\")]\";return this.format(o+n+\"-MM-DD[T]HH:mm:ss.SSS\"+i)},un.toJSON=function(){return this.isValid()?this.toISOString():null},un.toString=function(){return this.clone().locale(\"en\").format(\"ddd MMM DD YYYY HH:mm:ss [GMT]ZZ\")},un.unix=function(){return Qt(this.valueOf()/1e3)},un.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},un.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},un.year=Eo,un.isLeapYear=function(){return Q(this.year())},un.weekYear=function(e){return wt.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},un.isoWeekYear=function(e){return wt.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},un.quarter=un.quarters=function(e){return null==e?Kt((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},un.month=se,un.daysInMonth=function(){return ne(this.year(),this.month())},un.week=un.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),\"d\")},un.isoWeek=un.isoWeeks=function(e){var t=ce(this,1,4).week;return null==e?t:this.add(7*(e-t),\"d\")},un.weeksInYear=function(){var e=this.localeData()._week;return ge(this.year(),e.dow,e.doy)},un.isoWeeksInYear=function(){return ge(this.year(),1,4)},un.date=sn,un.day=un.days=function(e){if(!this.isValid())return null==e?NaN:this;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null==e?t:(e=he(e,this.localeData()),this.add(e-t,\"d\"))},un.weekday=function(e){if(!this.isValid())return null==e?NaN:this;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,\"d\")},un.isoWeekday=function(e){if(!this.isValid())return null==e?NaN:this;if(null!=e){var t=ye(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7},un.dayOfYear=function(e){var t=qt((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))/864e5)+1;return null==e?t:this.add(e-t,\"d\")},un.hour=un.hours=Ho,un.minute=un.minutes=dn,un.second=un.seconds=ln,un.millisecond=un.milliseconds=mn,un.utcOffset=function(e,o,n){var i=this._offset||0,a;if(!this.isValid())return null==e?NaN:this;if(null!=e){if(\"string\"!=typeof e)16>Xt(e)&&!n&&(e*=60);else if(e=at(ko,e),null===e)return this;return!this._isUTC&&o&&(a=st(this)),this._offset=e,this._isUTC=!0,null!=a&&this.add(a,\"m\"),i!==e&&(!o||this._changeInProgress?gt(this,lt(e-i,\"m\"),1,!1):!this._changeInProgress&&(this._changeInProgress=!0,t.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?i:st(this)},un.utc=function(e){return this.utcOffset(0,e)},un.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(st(this),\"m\")),this},un.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if(\"string\"==typeof this._i){var e=at(vo,this._i);null==e?this.utcOffset(0,!0):this.utcOffset(e)}return this},un.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?$e(e).utcOffset():0,0==(this.utcOffset()-e)%60)},un.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},un.isLocal=function(){return!!this.isValid()&&!this._isUTC},un.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},un.isUtc=dt,un.isUTC=dt,un.zoneAbbr=function(){return this._isUTC?\"UTC\":\"\"},un.zoneName=function(){return this._isUTC?\"Coordinated Universal Time\":\"\"},un.dates=C(\"dates accessor is deprecated. Use date instead.\",sn),un.months=C(\"months accessor is deprecated. Use month instead\",se),un.years=C(\"years accessor is deprecated. Use year instead\",Eo),un.zone=C(\"moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/\",function(e,t){return null==e?-this.utcOffset():(\"string\"!=typeof e&&(e=-e),this.utcOffset(e,t),this)}),un.isDSTShifted=C(\"isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information\",function(){if(!a(this._isDSTShifted))return this._isDSTShifted;var e={};if(_(e,this),e=Xe(e),e._a){var t=e._isUTC?g(e._a):$e(e._a);this._isDSTShifted=this.isValid()&&0<D(e._a,t.toArray())}else this._isDSTShifted=!1;return this._isDSTShifted});var cn=P.prototype;cn.calendar=function(e,t,o){var n=this._calendar[e]||this._calendar.sameElse;return O(n)?n.call(t,o):n},cn.longDateFormat=function(e){var t=this._longDateFormat[e],o=this._longDateFormat[e.toUpperCase()];return t||!o?t:(this._longDateFormat[e]=o.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])},cn.invalidDate=function(){return this._invalidDate},cn.ordinal=function(e){return this._ordinal.replace(\"%d\",e)},cn.preparse=St,cn.postformat=St,cn.relativeTime=function(e,t,o,n){var i=this._relativeTime[o];return O(i)?i(e,t,o,n):i.replace(/%d/i,e)},cn.pastFuture=function(e,t){var o=this._relativeTime[0<e?\"future\":\"past\"];return O(o)?o(t):o.replace(/%s/i,t)},cn.set=M,cn.months=function(e,t){return e?o(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Ro).test(t)?\"format\":\"standalone\"][e.month()]:o(this._months)?this._months:this._months.standalone},cn.monthsShort=function(e,t){return e?o(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Ro.test(t)?\"format\":\"standalone\"][e.month()]:o(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},cn.monthsParse=ae,cn.monthsRegex=function(e){return this._monthsParseExact?(p(this,\"_monthsRegex\")||de.call(this),e?this._monthsStrictRegex:this._monthsRegex):(p(this,\"_monthsRegex\")||(this._monthsRegex=xo),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},cn.monthsShortRegex=function(e){return this._monthsParseExact?(p(this,\"_monthsRegex\")||de.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(p(this,\"_monthsShortRegex\")||(this._monthsShortRegex=xo),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},cn.week=function(e){return ce(e,this._week.dow,this._week.doy).week},cn.firstDayOfYear=function(){return this._week.doy},cn.firstDayOfWeek=function(){return this._week.dow},cn.weekdays=function(e,t){var n=o(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?\"format\":\"standalone\"];return!0===e?fe(n,this._week.dow):e?n[e.day()]:n},cn.weekdaysMin=function(e){return!0===e?fe(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},cn.weekdaysShort=function(e){return!0===e?fe(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},cn.weekdaysParse=_e,cn.weekdaysRegex=function(e){return this._weekdaysParseExact?(p(this,\"_weekdaysRegex\")||ve.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(p(this,\"_weekdaysRegex\")||(this._weekdaysRegex=xo),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},cn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(p(this,\"_weekdaysRegex\")||ve.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(p(this,\"_weekdaysShortRegex\")||(this._weekdaysShortRegex=xo),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},cn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(p(this,\"_weekdaysRegex\")||ve.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(p(this,\"_weekdaysMinRegex\")||(this._weekdaysMinRegex=xo),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},cn.isPM=function(e){return\"p\"===(e+\"\").toLowerCase().charAt(0)},cn.meridiem=function(e,t,o){return 11<e?o?\"pm\":\"PM\":o?\"am\":\"AM\"},Te(\"en\",{dayOfMonthOrdinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,o=1===x(e%100/10)?\"th\":1==t?\"st\":2==t?\"nd\":3==t?\"rd\":\"th\";return e+o}}),t.lang=C(\"moment.lang is deprecated. Use moment.locale instead.\",Te),t.langData=C(\"moment.langData is deprecated. Use moment.localeData instead.\",Me);var gn=Xt,hn=Yt(\"ms\"),yn=Yt(\"s\"),fn=Yt(\"m\"),bn=Yt(\"h\"),_n=Yt(\"d\"),vn=Yt(\"w\"),kn=Yt(\"M\"),wn=Yt(\"Q\"),xn=Yt(\"y\"),Dn=Rt(\"milliseconds\"),Sn=Rt(\"seconds\"),Cn=Rt(\"minutes\"),Tn=Rt(\"hours\"),On=Rt(\"days\"),Mn=Rt(\"months\"),In=Rt(\"years\"),Pn=qt,En={ss:44,s:45,m:45,h:22,d:26,M:11},Yn=Xt,Rn=tt.prototype;return Rn.isValid=function(){return this._isValid},Rn.abs=function(){var e=this._data;return this._milliseconds=gn(this._milliseconds),this._days=gn(this._days),this._months=gn(this._months),e.milliseconds=gn(e.milliseconds),e.seconds=gn(e.seconds),e.minutes=gn(e.minutes),e.hours=gn(e.hours),e.months=gn(e.months),e.years=gn(e.years),this},Rn.add=function(e,t){return Mt(this,e,t,1)},Rn.subtract=function(e,t){return Mt(this,e,t,-1)},Rn.as=function(e){if(!this.isValid())return NaN;var t=this._milliseconds,o,n;if(e=Y(e),\"month\"===e||\"quarter\"===e||\"year\"===e)switch(o=this._days+t/864e5,n=this._months+Pt(o),e){case\"month\":return n;case\"quarter\":return n/3;case\"year\":return n/12;}else switch(o=this._days+qt(Et(this._months)),e){case\"week\":return o/7+t/6048e5;case\"day\":return o+t/864e5;case\"hour\":return 24*o+t/36e5;case\"minute\":return 1440*o+t/6e4;case\"second\":return 86400*o+t/1e3;case\"millisecond\":return Qt(864e5*o)+t;default:throw new Error(\"Unknown unit \"+e);}},Rn.asMilliseconds=hn,Rn.asSeconds=yn,Rn.asMinutes=fn,Rn.asHours=bn,Rn.asDays=_n,Rn.asWeeks=vn,Rn.asMonths=kn,Rn.asQuarters=wn,Rn.asYears=xn,Rn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+2592e6*(this._months%12)+31536e6*x(this._months/12):NaN},Rn._bubble=function(){var e=this._milliseconds,t=this._days,o=this._months,n=this._data,i,a,r,s,d;return 0<=e&&0<=t&&0<=o||0>=e&&0>=t&&0>=o||(e+=864e5*It(Et(o)+t),t=0,o=0),n.milliseconds=e%1e3,i=w(e/1e3),n.seconds=i%60,a=w(i/60),n.minutes=a%60,r=w(a/60),n.hours=r%24,t+=w(r/24),d=w(Pt(t)),o+=d,t-=It(Et(d)),s=w(o/12),o%=12,n.days=t,n.months=o,n.years=s,this},Rn.clone=function(){return lt(this)},Rn.get=function(e){return e=Y(e),this.isValid()?this[e+\"s\"]():NaN},Rn.milliseconds=Dn,Rn.seconds=Sn,Rn.minutes=Cn,Rn.hours=Tn,Rn.days=On,Rn.weeks=function(){return w(this.days()/7)},Rn.months=Mn,Rn.years=In,Rn.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),o=Nt(this,!e,t);return e&&(o=t.pastFuture(+this,o)),t.postformat(o)},Rn.toISOString=Gt,Rn.toString=Gt,Rn.toJSON=Gt,Rn.locale=yt,Rn.localeData=ft,Rn.toIsoString=C(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",Gt),Rn.lang=rn,H(\"X\",0,0,\"unix\"),H(\"x\",0,0,\"valueOf\"),U(\"x\",_o),U(\"X\",wo),q(\"X\",function(e,t,o){o._d=new Date(1e3*parseFloat(e,10))}),q(\"x\",function(e,t,o){o._d=new Date(x(e))}),t.version=\"2.24.0\",function(e){Ft=e}($e),t.fn=un,t.min=function(){var e=[].slice.call(arguments,0);return Je(\"isBefore\",e)},t.max=function(){var e=[].slice.call(arguments,0);return Je(\"isAfter\",e)},t.now=function(){return Date.now?Date.now():+new Date},t.utc=g,t.unix=function(e){return $e(1e3*e)},t.months=function(e,t){return Tt(e,t,\"months\")},t.isDate=s,t.locale=Te,t.invalid=b,t.duration=lt,t.isMoment=k,t.weekdays=function(e,t,o){return Ot(e,t,o,\"weekdays\")},t.parseZone=function(){return $e.apply(null,arguments).parseZone()},t.localeData=Me,t.isDuration=ot,t.monthsShort=function(e,t){return Tt(e,t,\"monthsShort\")},t.weekdaysMin=function(e,t,o){return Ot(e,t,o,\"weekdaysMin\")},t.defineLocale=Oe,t.updateLocale=function(e,t){if(null!=t){var o=Go,n,i;i=Ce(e),null!=i&&(o=i._config),t=I(o,t),n=new P(t),n.parentLocale=Fo[e],Fo[e]=n,Te(e)}else null!=Fo[e]&&(null==Fo[e].parentLocale?null!=Fo[e]&&delete Fo[e]:Fo[e]=Fo[e].parentLocale);return Fo[e]},t.locales=Ie,t.weekdaysShort=function(e,t,o){return Ot(e,t,o,\"weekdaysShort\")},t.normalizeUnits=Y,t.relativeTimeRounding=Lt,t.relativeTimeThreshold=function(e,t){return void 0!==En[e]&&(void 0===t?En[e]:(En[e]=t,\"s\"===e&&(En.ss=t-1),!0))},t.calendarFormat=function(e,t){var o=e.diff(t,\"days\",!0);return-6>o?\"sameElse\":-1>o?\"lastWeek\":0>o?\"lastDay\":1>o?\"sameDay\":2>o?\"nextDay\":7>o?\"nextWeek\":\"sameElse\"},t.prototype=un,t.HTML5_FMT={DATETIME_LOCAL:\"YYYY-MM-DDTHH:mm\",DATETIME_LOCAL_SECONDS:\"YYYY-MM-DDTHH:mm:ss\",DATETIME_LOCAL_MS:\"YYYY-MM-DDTHH:mm:ss.SSS\",DATE:\"YYYY-MM-DD\",TIME:\"HH:mm\",TIME_SECONDS:\"HH:mm:ss\",TIME_MS:\"HH:mm:ss.SSS\",WEEK:\"GGGG-[W]WW\",MONTH:\"YYYY-MM\"},t})}),lo=[],po=0;256>po;po++)lo[po]=(po+256).toString(16).substr(1);for(var mo=function(){if(\"undefined\"!=typeof crypto&&crypto.getRandomValues){var e=new Uint8Array(16);return function(){return crypto.getRandomValues(e),e}}var t=Array(16);return function(){for(var e=0,o;16>e;e++)0==(3&e)&&(o=4294967296*Math.random()),t[e]=255&o>>>((3&e)<<3);return t}}(),uo=[],co=0;256>co;co++)uo[co]=(co+256).toString(16).substr(1);for(var go=mo(),ho=[1|go[0],go[1],go[2],go[3],go[4],go[5]],yo=16383&(go[6]<<8|go[7]),fo=/^\\/?Date\\((-?\\d+)/i,bo=/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i,_o=/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i,vo=Object.assign,ko=Object.values,wo={asBoolean:function(e,t){return\"function\"==typeof e&&(e=e()),null==e?t||null:!1!=e},asNumber:function(e,t){return\"function\"==typeof e&&(e=e()),null==e?t||null:+e||t||null},asString:function(e,t){return\"function\"==typeof e&&(e=e()),null==e?t||null:e+\"\"},asSize:function(e,t){return\"function\"==typeof e&&(e=e()),y(e)?e:g(e)?e+\"px\":t||null},asElement:function(e,t){return\"function\"==typeof e&&(e=e()),e||t||null}},xo={split:function(e){var t={};return e.split(\";\").forEach(function(e){if(\"\"!=e.trim()){var o=e.split(\":\"),n=o[0].trim(),i=o[1].trim();t[n]=i}}),t},join:function(e){return Object.keys(e).map(function(t){return t+\": \"+e[t]}).join(\"; \")}},Do={linear:function(e){return e},easeInQuad:function(e){return e*e},easeOutQuad:function(e){return e*(2-e)},easeInOutQuad:function(e){return .5>e?2*e*e:-1+(4-2*e)*e},easeInCubic:function(e){return e*e*e},easeOutCubic:function(e){return--e*e*e+1},easeInOutCubic:function(e){return .5>e?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},easeInQuart:function(e){return e*e*e*e},easeOutQuart:function(e){return 1- --e*e*e*e},easeInOutQuart:function(e){return .5>e?8*e*e*e*e:1-8*--e*e*e*e},easeInQuint:function(e){return e*e*e*e*e},easeOutQuint:function(e){return 1+--e*e*e*e*e},easeInOutQuint:function(e){return .5>e?16*e*e*e*e*e:1+16*--e*e*e*e*e}},So=Object.freeze({isNumber:g,recursiveDOMDelete:h,isString:y,isObject:f,isDate:b,isMoment:_,fillIfDefined:k,extend:vo,selectiveExtend:w,selectiveDeepExtend:x,selectiveNotDeepExtend:D,deepExtend:S,equalArray:C,convert:T,getType:O,copyAndExtendArray:M,copyArray:I,getAbsoluteLeft:P,getAbsoluteRight:E,getAbsoluteTop:Y,addClassName:R,removeClassName:A,forEach:N,toArray:ko,updateProperty:L,throttle:H,addEventListener:G,removeEventListener:F,preventDefault:j,getTarget:W,hasParent:U,option:wo,hexToRGB:z,overrideOpacity:V,RGBToHex:B,parseColor:q,RGBToHSV:Z,addCssText:X,removeCssText:K,HSVToRGB:Q,HSVToHex:$,hexToHSV:J,isValidHex:ee,isValidRGB:te,isValidRGBA:oe,selectiveBridgeObject:ne,bridgeObject:ie,insertSort:ae,mergeOptions:re,binarySearchCustom:se,binarySearchValue:de,easingFunctions:Do,getScrollBarWidth:le,topMost:pe,randomUUID:m}),Co=Object.freeze({prepareElements:me,cleanupElements:ue,resetElements:ce,getSVGElement:ge,getDOMElement:he,drawPoint:ye,drawBar:fe}),To=be,Oo=_e(function(e){function t(e){return t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},t(e)}function o(n){return e.exports=\"function\"==typeof Symbol&&\"symbol\"===t(Symbol.iterator)?o=function(e){return t(e)}:o=function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":t(e)},o(n)}e.exports=o}),Mo=ve,Io=we,Po=xe,Eo=De,Yo=_e(function(e){function t(n){return e.exports=t=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},t(n)}e.exports=t}),Ro=_e(function(e){function t(n,o){return e.exports=t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},t(n,o)}e.exports=t}),Ao=Se,No=[],Lo=0;256>Lo;Lo++)No[Lo]=(Lo+256).toString(16).substr(1);for(var Ho=function(){if(\"undefined\"!=typeof crypto&&crypto.getRandomValues){var e=new Uint8Array(16);return function(){return crypto.getRandomValues(e),e}}var t=Array(16);return function(){for(var e=0,o;16>e;e++)0==(3&e)&&(o=4294967296*Math.random()),t[e]=255&o>>>((3&e)<<3);return t}}(),Go=[],Fo=0;256>Fo;Fo++)Go[Fo]=(Fo+256).toString(16).substr(1);for(var jo=Ho(),Wo=[1|jo[0],jo[1],jo[2],jo[3],jo[4],jo[5]],Uo=16383&(jo[6]<<8|jo[7]),zo=\"undefined\"==typeof globalThis?\"undefined\"==typeof window?\"undefined\"==typeof global?\"undefined\"==typeof self?{}:self:global:window:globalThis,Vo=Ie(function(e){(function(t,o){e.exports=o()})(zo,function(){function t(){return Gt.apply(null,arguments)}function o(e){return e instanceof Array||\"[object Array]\"===Object.prototype.toString.call(e)}function n(e){return null!=e&&\"[object Object]\"===Object.prototype.toString.call(e)}function i(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}function a(e){return void 0===e}function r(e){return\"number\"==typeof e||\"[object Number]\"===Object.prototype.toString.call(e)}function s(e){return e instanceof Date||\"[object Date]\"===Object.prototype.toString.call(e)}function d(e,t){var o=[],n;for(n=0;n<e.length;++n)o.push(t(e[n],n));return o}function l(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function p(e,t){for(var o in t)l(t,o)&&(e[o]=t[o]);return l(t,\"toString\")&&(e.toString=t.toString),l(t,\"valueOf\")&&(e.valueOf=t.valueOf),e}function u(e,t,o,n){return Ke(e,t,o,n,!0).utc()}function c(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}}function g(e){return null==e._pf&&(e._pf=c()),e._pf}function h(e){if(null==e._isValid){var t=g(e),o=Ft.call(t.parsedDateParts,function(e){return null!=e}),n=!isNaN(e._d.getTime())&&0>t.overflow&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&o);if(e._strict&&(n=n&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null==Object.isFrozen||!Object.isFrozen(e))e._isValid=n;else return n}return e._isValid}function y(e){var t=u(NaN);return null==e?g(t).userInvalidated=!0:p(g(t),e),t}function f(e,t){var o,n,r;if(a(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),a(t._i)||(e._i=t._i),a(t._f)||(e._f=t._f),a(t._l)||(e._l=t._l),a(t._strict)||(e._strict=t._strict),a(t._tzm)||(e._tzm=t._tzm),a(t._isUTC)||(e._isUTC=t._isUTC),a(t._offset)||(e._offset=t._offset),a(t._pf)||(e._pf=g(t)),a(t._locale)||(e._locale=t._locale),0<jt.length)for(o=0;o<jt.length;o++)n=jt[o],r=t[n],a(r)||(e[n]=r);return e}function b(e){f(this,e),this._d=new Date(null==e._d?NaN:e._d.getTime()),this.isValid()||(this._d=new Date(NaN)),!1===Wt&&(Wt=!0,t.updateOffset(this),Wt=!1)}function _(e){return e instanceof b||null!=e&&null!=e._isAMomentObject}function v(e){return 0>e?Kt(e)||0:Qt(e)}function k(e){var t=+e,o=0;return 0!=t&&isFinite(t)&&(o=v(t)),o}function w(e,t,o){var n=Jt(e.length,t.length),a=Xt(e.length-t.length),r=0,s;for(s=0;s<n;s++)(o&&e[s]!==t[s]||!o&&k(e[s])!==k(t[s]))&&r++;return r+a}function x(e){!1===t.suppressDeprecationWarnings&&\"undefined\"!=typeof console&&console.warn&&console.warn(\"Deprecation warning: \"+e)}function D(e,o){var n=!0;return p(function(){if(null!=t.deprecationHandler&&t.deprecationHandler(null,e),n){for(var a=[],r=0,s;r<arguments.length;r++){if(s=\"\",\"object\"==typeof arguments[r]){for(var d in s+=\"\\n[\"+r+\"] \",arguments[0])s+=d+\": \"+arguments[0][d]+\", \";s=s.slice(0,-2)}else s=arguments[r];a.push(s)}x(e+\"\\nArguments: \"+Array.prototype.slice.call(a).join(\"\")+\"\\n\"+new Error().stack),n=!1}return o.apply(this,arguments)},o)}function S(e,o){null!=t.deprecationHandler&&t.deprecationHandler(e,o),Ut[e]||(x(o),Ut[e]=!0)}function C(e){return e instanceof Function||\"[object Function]\"===Object.prototype.toString.call(e)}function T(e){var t,o;for(o in e)t=e[o],C(t)?this[o]=t:this[\"_\"+o]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+\"|\"+/\\d{1,2}/.source)}function O(e,t){var o=p({},e),i;for(i in t)l(t,i)&&(n(e[i])&&n(t[i])?(o[i]={},p(o[i],e[i]),p(o[i],t[i])):null==t[i]?delete o[i]:o[i]=t[i]);for(i in e)l(e,i)&&!l(t,i)&&n(e[i])&&(o[i]=p({},o[i]));return o}function M(e){null!=e&&this.set(e)}function I(e,t){var o=e.toLowerCase();Bt[o]=Bt[o+\"s\"]=Bt[t]=e}function P(e){return\"string\"==typeof e?Bt[e]||Bt[e.toLowerCase()]:void 0}function E(e){var t={},o,n;for(n in e)l(e,n)&&(o=P(n),o&&(t[o]=e[n]));return t}function Y(e,t){eo[e]=t}function R(e){var t=[];for(var o in e)t.push({unit:o,priority:eo[o]});return t.sort(function(e,t){return e.priority-t.priority}),t}function A(e,t,o){var n=\"\"+Xt(e),i=t-n.length;return(0<=e?o?\"+\":\"\":\"-\")+Zt(10,$t(0,i)).toString().substr(1)+n}function N(e,t,o,n){var i=n;\"string\"==typeof n&&(i=function(){return this[n]()}),e&&(io[e]=i),t&&(io[t[0]]=function(){return A(i.apply(this,arguments),t[1],t[2])}),o&&(io[o]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function L(e){return e.match(/\\[[\\s\\S]/)?e.replace(/^\\[|\\]$/g,\"\"):e.replace(/\\\\/g,\"\")}function H(e){var t=e.match(to),o,n;for(o=0,n=t.length;o<n;o++)t[o]=io[t[o]]?io[t[o]]:L(t[o]);return function(o){var a=\"\",r;for(r=0;r<n;r++)a+=C(t[r])?t[r].call(o,e):t[r];return a}}function G(e,t){return e.isValid()?(t=F(t,e.localeData()),no[t]=no[t]||H(t),no[t](e)):e.localeData().invalidDate()}function F(e,t){function o(e){return t.longDateFormat(e)||e}var n=5;for(oo.lastIndex=0;0<=n&&oo.test(e);)e=e.replace(oo,o),oo.lastIndex=0,n-=1;return e}function j(e,t,o){xo[e]=C(t)?t:function(e){return e&&o?o:t}}function W(e,t){return l(xo,e)?xo[e](t._strict,t._locale):new RegExp(U(e))}function U(e){return z(e.replace(\"\\\\\",\"\").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,function(e,t,o,n,i){return t||o||n||i}))}function z(e){return e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}function V(e,t){var o=t,n;for(\"string\"==typeof e&&(e=[e]),r(t)&&(o=function(e,o){o[t]=k(e)}),n=0;n<e.length;n++)Do[e[n]]=o}function B(e,t){V(e,function(e,o,n,i){n._w=n._w||{},t(e,n._w,n,i)})}function q(e,t,o){null!=t&&l(Do,e)&&Do[e](t,o._a,o,e)}function Z(e){return X(e)?366:365}function X(e){return 0==e%4&&0!=e%100||0==e%400}function K(e,o){return function(n){return null==n?Q(this,e):($(this,e,n),t.updateOffset(this,o),this)}}function Q(e,t){return e.isValid()?e._d[\"get\"+(e._isUTC?\"UTC\":\"\")+t]():NaN}function $(e,t,o){e.isValid()&&!isNaN(o)&&(\"FullYear\"===t&&X(e.year())&&1===e.month()&&29===e.date()?e._d[\"set\"+(e._isUTC?\"UTC\":\"\")+t](o,e.month(),te(o,e.month())):e._d[\"set\"+(e._isUTC?\"UTC\":\"\")+t](o))}function J(e,t){if(\"object\"==typeof e){e=E(e);for(var o=R(e),n=0;n<o.length;n++)this[o[n].unit](e[o[n].unit])}else if(e=P(e),C(this[e]))return this[e](t);return this}function ee(e,t){return(e%t+t)%t}function te(e,t){if(isNaN(e)||isNaN(t))return NaN;var o=ee(t,12);return e+=(t-o)/12,1===o?X(e)?29:28:31-o%7%2}function oe(e,t,o){var n=e.toLocaleLowerCase(),a,r,s;if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],a=0;12>a;++a)s=u([2e3,a]),this._shortMonthsParse[a]=this.monthsShort(s,\"\").toLocaleLowerCase(),this._longMonthsParse[a]=this.months(s,\"\").toLocaleLowerCase();return o?\"MMM\"===t?(r=Eo.call(this._shortMonthsParse,n),-1===r?null:r):(r=Eo.call(this._longMonthsParse,n),-1===r?null:r):\"MMM\"===t?(r=Eo.call(this._shortMonthsParse,n),-1!==r)?r:(r=Eo.call(this._longMonthsParse,n),-1===r?null:r):(r=Eo.call(this._longMonthsParse,n),-1!==r)?r:(r=Eo.call(this._shortMonthsParse,n),-1===r?null:r)}function ne(e,t,o){var n,a,r;if(this._monthsParseExact)return oe.call(this,e,t,o);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),n=0;12>n;n++){if(a=u([2e3,n]),o&&!this._longMonthsParse[n]&&(this._longMonthsParse[n]=new RegExp(\"^\"+this.months(a,\"\").replace(\".\",\"\")+\"$\",\"i\"),this._shortMonthsParse[n]=new RegExp(\"^\"+this.monthsShort(a,\"\").replace(\".\",\"\")+\"$\",\"i\")),o||this._monthsParse[n]||(r=\"^\"+this.months(a,\"\")+\"|^\"+this.monthsShort(a,\"\"),this._monthsParse[n]=new RegExp(r.replace(\".\",\"\"),\"i\")),o&&\"MMMM\"===t&&this._longMonthsParse[n].test(e))return n;if(o&&\"MMM\"===t&&this._shortMonthsParse[n].test(e))return n;if(!o&&this._monthsParse[n].test(e))return n}}function ie(e,t){var o;if(!e.isValid())return e;if(\"string\"==typeof t)if(/^\\d+$/.test(t))t=k(t);else if(t=e.localeData().monthsParse(t),!r(t))return e;return o=Jt(e.date(),te(e.year(),t)),e._d[\"set\"+(e._isUTC?\"UTC\":\"\")+\"Month\"](t,o),e}function ae(e){return null==e?Q(this,\"Month\"):(ie(this,e),t.updateOffset(this,!0),this)}function re(){function e(e,t){return t.length-e.length}var t=[],o=[],n=[],a,r;for(a=0;12>a;a++)r=u([2e3,a]),t.push(this.monthsShort(r,\"\")),o.push(this.months(r,\"\")),n.push(this.months(r,\"\")),n.push(this.monthsShort(r,\"\"));for(t.sort(e),o.sort(e),n.sort(e),a=0;12>a;a++)t[a]=z(t[a]),o[a]=z(o[a]);for(a=0;24>a;a++)n[a]=z(n[a]);this._monthsRegex=new RegExp(\"^(\"+n.join(\"|\")+\")\",\"i\"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp(\"^(\"+o.join(\"|\")+\")\",\"i\"),this._monthsShortStrictRegex=new RegExp(\"^(\"+t.join(\"|\")+\")\",\"i\")}function se(e,t,o,n,i,a,r){var s;return 100>e&&0<=e?(s=new Date(e+400,t,o,n,i,a,r),isFinite(s.getFullYear())&&s.setFullYear(e)):s=new Date(e,t,o,n,i,a,r),s}function de(e){var t;if(100>e&&0<=e){var o=Array.prototype.slice.call(arguments);o[0]=e+400,t=new Date(Date.UTC.apply(null,o)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)}else t=new Date(Date.UTC.apply(null,arguments));return t}function le(e,t,o){var n=7+t-o,i=(7+de(e,0,n).getUTCDay()-t)%7;return-i+n-1}function pe(e,t,o,n,i){var a=le(e,n,i),r=1+7*(t-1)+(7+o-n)%7+a,s,d;return 0>=r?(s=e-1,d=Z(s)+r):r>Z(e)?(s=e+1,d=r-Z(e)):(s=e,d=r),{year:s,dayOfYear:d}}function me(e,t,o){var n=le(e.year(),t,o),i=Qt((e.dayOfYear()-n-1)/7)+1,a,r;return 1>i?(r=e.year()-1,a=i+ue(r,t,o)):i>ue(e.year(),t,o)?(a=i-ue(e.year(),t,o),r=e.year()+1):(r=e.year(),a=i),{week:a,year:r}}function ue(e,t,o){var n=le(e,t,o),i=le(e+1,t,o);return(Z(e)-n+i)/7}function ce(e,t){return\"string\"==typeof e?isNaN(e)?(e=t.weekdaysParse(e),\"number\"==typeof e?e:null):parseInt(e,10):e}function ge(e,t){return\"string\"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function he(e,t){return e.slice(t,7).concat(e.slice(0,t))}function ye(e,t,o){var n=e.toLocaleLowerCase(),a,r,s;if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],a=0;7>a;++a)s=u([2e3,1]).day(a),this._minWeekdaysParse[a]=this.weekdaysMin(s,\"\").toLocaleLowerCase(),this._shortWeekdaysParse[a]=this.weekdaysShort(s,\"\").toLocaleLowerCase(),this._weekdaysParse[a]=this.weekdays(s,\"\").toLocaleLowerCase();return o?\"dddd\"===t?(r=Eo.call(this._weekdaysParse,n),-1===r?null:r):\"ddd\"===t?(r=Eo.call(this._shortWeekdaysParse,n),-1===r?null:r):(r=Eo.call(this._minWeekdaysParse,n),-1===r?null:r):\"dddd\"===t?(r=Eo.call(this._weekdaysParse,n),-1!==r)?r:(r=Eo.call(this._shortWeekdaysParse,n),-1!==r)?r:(r=Eo.call(this._minWeekdaysParse,n),-1===r?null:r):\"ddd\"===t?(r=Eo.call(this._shortWeekdaysParse,n),-1!==r)?r:(r=Eo.call(this._weekdaysParse,n),-1!==r)?r:(r=Eo.call(this._minWeekdaysParse,n),-1===r?null:r):(r=Eo.call(this._minWeekdaysParse,n),-1!==r)?r:(r=Eo.call(this._weekdaysParse,n),-1!==r)?r:(r=Eo.call(this._shortWeekdaysParse,n),-1===r?null:r)}function fe(e,t,o){var n,a,r;if(this._weekdaysParseExact)return ye.call(this,e,t,o);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),n=0;7>n;n++){if(a=u([2e3,1]).day(n),o&&!this._fullWeekdaysParse[n]&&(this._fullWeekdaysParse[n]=new RegExp(\"^\"+this.weekdays(a,\"\").replace(\".\",\"\\\\.?\")+\"$\",\"i\"),this._shortWeekdaysParse[n]=new RegExp(\"^\"+this.weekdaysShort(a,\"\").replace(\".\",\"\\\\.?\")+\"$\",\"i\"),this._minWeekdaysParse[n]=new RegExp(\"^\"+this.weekdaysMin(a,\"\").replace(\".\",\"\\\\.?\")+\"$\",\"i\")),this._weekdaysParse[n]||(r=\"^\"+this.weekdays(a,\"\")+\"|^\"+this.weekdaysShort(a,\"\")+\"|^\"+this.weekdaysMin(a,\"\"),this._weekdaysParse[n]=new RegExp(r.replace(\".\",\"\"),\"i\")),o&&\"dddd\"===t&&this._fullWeekdaysParse[n].test(e))return n;if(o&&\"ddd\"===t&&this._shortWeekdaysParse[n].test(e))return n;if(o&&\"dd\"===t&&this._minWeekdaysParse[n].test(e))return n;if(!o&&this._weekdaysParse[n].test(e))return n}}function be(){function e(e,t){return t.length-e.length}var t=[],o=[],n=[],a=[],r,s,d,l,p;for(r=0;7>r;r++)s=u([2e3,1]).day(r),d=this.weekdaysMin(s,\"\"),l=this.weekdaysShort(s,\"\"),p=this.weekdays(s,\"\"),t.push(d),o.push(l),n.push(p),a.push(d),a.push(l),a.push(p);for(t.sort(e),o.sort(e),n.sort(e),a.sort(e),r=0;7>r;r++)o[r]=z(o[r]),n[r]=z(n[r]),a[r]=z(a[r]);this._weekdaysRegex=new RegExp(\"^(\"+a.join(\"|\")+\")\",\"i\"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp(\"^(\"+n.join(\"|\")+\")\",\"i\"),this._weekdaysShortStrictRegex=new RegExp(\"^(\"+o.join(\"|\")+\")\",\"i\"),this._weekdaysMinStrictRegex=new RegExp(\"^(\"+t.join(\"|\")+\")\",\"i\")}function _e(){return this.hours()%12||12}function ve(e,t){N(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function ke(e,t){return t._meridiemParse}function we(e){return e?e.toLowerCase().replace(\"_\",\"-\"):e}function xe(e){for(var t=0,o,n,a,r;t<e.length;){for(r=we(e[t]).split(\"-\"),o=r.length,n=we(e[t+1]),n=n?n.split(\"-\"):null;0<o;){if(a=De(r.slice(0,o).join(\"-\")),a)return a;if(n&&n.length>=o&&w(r,n,!0)>=o-1)break;o--}t++}return Xo}function De(t){var o=null;if(!Go[t]&&!0&&e&&e.exports)try{o=Xo._abbr;Me(\"./locale/\"+t),Se(o)}catch(t){}return Go[t]}function Se(e,t){var o;return e&&(o=a(t)?Te(e):Ce(e,t),o?Xo=o:\"undefined\"!=typeof console&&console.warn&&console.warn(\"Locale \"+e+\" not found. Did you forget to load it?\")),Xo._abbr}function Ce(e,t){if(null!==t){var o=Ho,n;if(t.abbr=e,null!=Go[e])S(\"defineLocaleOverride\",\"use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.\"),o=Go[e]._config;else if(null!=t.parentLocale)if(null!=Go[t.parentLocale])o=Go[t.parentLocale]._config;else if(n=De(t.parentLocale),null!=n)o=n._config;else return Fo[t.parentLocale]||(Fo[t.parentLocale]=[]),Fo[t.parentLocale].push({name:e,config:t}),null;return Go[e]=new M(O(o,t)),Fo[e]&&Fo[e].forEach(function(e){Ce(e.name,e.config)}),Se(e),Go[e]}return delete Go[e],null}function Te(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Xo;if(!o(e)){if(t=De(e),t)return t;e=[e]}return xe(e)}function Oe(){return zt(Go)}function Ie(e){var t=e._a,o;return t&&-2===g(e).overflow&&(o=0>t[1]||11<t[1]?1:1>t[2]||t[2]>te(t[0],t[1])?2:0>t[3]||24<t[3]||24===t[3]&&(0!==t[4]||0!==t[5]||0!==t[6])?3:0>t[4]||59<t[4]?4:0>t[5]||59<t[5]?5:0>t[6]||999<t[6]?6:-1,g(e)._overflowDayOfYear&&(0>o||2<o)&&(o=2),g(e)._overflowWeeks&&-1===o&&(o=7),g(e)._overflowWeekday&&-1===o&&(o=8),g(e).overflow=o),e}function Pe(e,t,o){return null==e?null==t?o:t:e}function Ee(e){var o=new Date(t.now());return e._useUTC?[o.getUTCFullYear(),o.getUTCMonth(),o.getUTCDate()]:[o.getFullYear(),o.getMonth(),o.getDate()]}function Ye(e){var t=[],o,n,a,r,s;if(!e._d){for(a=Ee(e),e._w&&null==e._a[2]&&null==e._a[1]&&Re(e),null!=e._dayOfYear&&(s=Pe(e._a[0],a[0]),(e._dayOfYear>Z(s)||0===e._dayOfYear)&&(g(e)._overflowDayOfYear=!0),n=de(s,0,e._dayOfYear),e._a[1]=n.getUTCMonth(),e._a[2]=n.getUTCDate()),o=0;3>o&&null==e._a[o];++o)e._a[o]=t[o]=a[o];for(;7>o;o++)e._a[o]=t[o]=null==e._a[o]?2===o?1:0:e._a[o];24===e._a[3]&&0===e._a[4]&&0===e._a[5]&&0===e._a[6]&&(e._nextDay=!0,e._a[3]=0),e._d=(e._useUTC?de:se).apply(null,t),r=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[3]=24),e._w&&\"undefined\"!=typeof e._w.d&&e._w.d!==r&&(g(e).weekdayMismatch=!0)}}function Re(e){var t,o,n,i,a,r,s,d;if(t=e._w,null!=t.GG||null!=t.W||null!=t.E)a=1,r=4,o=Pe(t.GG,e._a[0],me(Qe(),1,4).year),n=Pe(t.W,1),i=Pe(t.E,1),(1>i||7<i)&&(d=!0);else{a=e._locale._week.dow,r=e._locale._week.doy;var l=me(Qe(),a,r);o=Pe(t.gg,e._a[0],l.year),n=Pe(t.w,l.week),null==t.d?null==t.e?i=a:(i=t.e+a,(0>t.e||6<t.e)&&(d=!0)):(i=t.d,(0>i||6<i)&&(d=!0))}1>n||n>ue(o,a,r)?g(e)._overflowWeeks=!0:null==d?(s=pe(o,n,i,a,r),e._a[0]=s.year,e._dayOfYear=s.dayOfYear):g(e)._overflowWeekday=!0}function Ae(e){var t=e._i,o=jo.exec(t)||Wo.exec(t),n,a,r,s,d,p;if(o){for(g(e).iso=!0,n=0,a=zo.length;n<a;n++)if(zo[n][1].exec(o[1])){s=zo[n][0],r=!1!==zo[n][2];break}if(null==s)return void(e._isValid=!1);if(o[3]){for(n=0,a=Vo.length;n<a;n++)if(Vo[n][1].exec(o[3])){d=(o[2]||\" \")+Vo[n][0];break}if(null==d)return void(e._isValid=!1)}if(!r&&null!=d)return void(e._isValid=!1);if(o[4])if(Uo.exec(o[4]))p=\"Z\";else return void(e._isValid=!1);e._f=s+(d||\"\")+(p||\"\"),Ue(e)}else e._isValid=!1}function Ne(e,t,o,n,i,a){var r=[Le(e),Ro.indexOf(t),parseInt(o,10),parseInt(n,10),parseInt(i,10)];return a&&r.push(parseInt(a,10)),r}function Le(e){var t=parseInt(e,10);return 49>=t?2e3+t:999>=t?1900+t:t}function He(e){return e.replace(/\\([^)]*\\)|[\\n\\t]/g,\" \").replace(/(\\s\\s+)/g,\" \").replace(/^\\s\\s*/,\"\").replace(/\\s\\s*$/,\"\")}function Ge(e,t,o){if(e){var n=Ao.indexOf(e),i=new Date(t[0],t[1],t[2]).getDay();if(n!==i)return g(o).weekdayMismatch=!0,o._isValid=!1,!1}return!0}function Fe(e,t,o){if(e)return Zo[e];if(t)return 0;var n=parseInt(o,10),i=n%100;return 60*((n-i)/100)+i}function je(e){var t=qo.exec(He(e._i));if(t){var o=Ne(t[4],t[3],t[2],t[5],t[6],t[7]);if(!Ge(t[1],o,e))return;e._a=o,e._tzm=Fe(t[8],t[9],t[10]),e._d=de.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),g(e).rfc2822=!0}else e._isValid=!1}function We(e){var o=Bo.exec(e._i);if(null!==o)return void(e._d=new Date(+o[1]));if(Ae(e),!1===e._isValid)delete e._isValid;else return;if(je(e),!1===e._isValid)delete e._isValid;else return;t.createFromInputFallback(e)}function Ue(e){if(e._f===t.ISO_8601)return void Ae(e);if(e._f===t.RFC_2822)return void je(e);e._a=[],g(e).empty=!0;var o=\"\"+e._i,n=o.length,a=0,r,s,d,l,p;for(d=F(e._f,e._locale).match(to)||[],r=0;r<d.length;r++)l=d[r],s=(o.match(W(l,e))||[])[0],s&&(p=o.substr(0,o.indexOf(s)),0<p.length&&g(e).unusedInput.push(p),o=o.slice(o.indexOf(s)+s.length),a+=s.length),io[l]?(s?g(e).empty=!1:g(e).unusedTokens.push(l),q(l,s,e)):e._strict&&!s&&g(e).unusedTokens.push(l);g(e).charsLeftOver=n-a,0<o.length&&g(e).unusedInput.push(o),12>=e._a[3]&&!0===g(e).bigHour&&0<e._a[3]&&(g(e).bigHour=void 0),g(e).parsedDateParts=e._a.slice(0),g(e).meridiem=e._meridiem,e._a[3]=ze(e._locale,e._a[3],e._meridiem),Ye(e),Ie(e)}function ze(e,t,o){var n;return null==o?t:null==e.meridiemHour?null==e.isPM?t:(n=e.isPM(o),n&&12>t&&(t+=12),n||12!==t||(t=0),t):e.meridiemHour(t,o)}function Ve(e){var t,o,n,a,r;if(0===e._f.length)return g(e).invalidFormat=!0,void(e._d=new Date(NaN));for(a=0;a<e._f.length;a++)(r=0,t=f({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[a],Ue(t),!!h(t))&&(r+=g(t).charsLeftOver,r+=10*g(t).unusedTokens.length,g(t).score=r,(null==n||r<n)&&(n=r,o=t));p(e,o||t)}function Be(e){if(!e._d){var t=E(e._i);e._a=d([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],function(e){return e&&parseInt(e,10)}),Ye(e)}}function qe(e){var t=new b(Ie(Ze(e)));return t._nextDay&&(t.add(1,\"d\"),t._nextDay=void 0),t}function Ze(e){var t=e._i,n=e._f;return(e._locale=e._locale||Te(e._l),null===t||void 0===n&&\"\"===t)?y({nullInput:!0}):(\"string\"==typeof t&&(e._i=t=e._locale.preparse(t)),_(t))?new b(Ie(t)):(s(t)?e._d=t:o(n)?Ve(e):n?Ue(e):Xe(e),h(e)||(e._d=null),e)}function Xe(e){var i=e._i;a(i)?e._d=new Date(t.now()):s(i)?e._d=new Date(i.valueOf()):\"string\"==typeof i?We(e):o(i)?(e._a=d(i.slice(0),function(e){return parseInt(e,10)}),Ye(e)):n(i)?Be(e):r(i)?e._d=new Date(i):t.createFromInputFallback(e)}function Ke(e,t,a,r,s){var d={};return(!0===a||!1===a)&&(r=a,a=void 0),(n(e)&&i(e)||o(e)&&0===e.length)&&(e=void 0),d._isAMomentObject=!0,d._useUTC=d._isUTC=s,d._l=a,d._i=e,d._f=t,d._strict=r,qe(d)}function Qe(e,t,o,n){return Ke(e,t,o,n,!1)}function $e(e,t){var n,a;if(1===t.length&&o(t[0])&&(t=t[0]),!t.length)return Qe();for(n=t[0],a=1;a<t.length;++a)(!t[a].isValid()||t[a][e](n))&&(n=t[a]);return n}function Je(e){for(var t in e)if(-1===Eo.call($o,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var o=!1,n=0;n<$o.length;++n)if(e[$o[n]]){if(o)return!1;parseFloat(e[$o[n]])!==k(e[$o[n]])&&(o=!0)}return!0}function et(e){var t=E(e),o=t.year||0,n=t.quarter||0,i=t.month||0,a=t.week||t.isoWeek||0,r=t.day||0,s=t.hour||0,d=t.minute||0,l=t.second||0,p=t.millisecond||0;this._isValid=Je(t),this._milliseconds=+p+1e3*l+6e4*d+60*(60*(1e3*s)),this._days=+r+7*a,this._months=+i+3*n+12*o,this._data={},this._locale=Te(),this._bubble()}function tt(e){return e instanceof et}function ot(e){return 0>e?-1*qt(-1*e):qt(e)}function nt(e,t){N(e,0,0,function(){var e=this.utcOffset(),o=\"+\";return 0>e&&(e=-e,o=\"-\"),o+A(~~(e/60),2)+t+A(~~e%60,2)})}function it(e,t){var o=(t||\"\").match(e);if(null===o)return null;var n=o[o.length-1]||[],i=(n+\"\").match(Jo)||[\"-\",0,0],a=+(60*i[1])+k(i[2]);return 0===a?0:\"+\"===i[0]?a:-a}function at(e,o){var n,i;return o._isUTC?(n=o.clone(),i=(_(e)||s(e)?e.valueOf():Qe(e).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+i),t.updateOffset(n,!1),n):Qe(e).local()}function rt(e){return 15*-qt(e._d.getTimezoneOffset()/15)}function st(){return!!this.isValid()&&this._isUTC&&0===this._offset}function dt(e,t){var o=e,n=null,i,a,s;return tt(e)?o={ms:e._milliseconds,d:e._days,M:e._months}:r(e)?(o={},t?o[t]=e:o.milliseconds=e):(n=en.exec(e))?(i=\"-\"===n[1]?-1:1,o={y:0,d:k(n[2])*i,h:k(n[3])*i,m:k(n[4])*i,s:k(n[5])*i,ms:k(ot(1e3*n[6]))*i}):(n=tn.exec(e))?(i=\"-\"===n[1]?-1:1,o={y:lt(n[2],i),M:lt(n[3],i),w:lt(n[4],i),d:lt(n[5],i),h:lt(n[6],i),m:lt(n[7],i),s:lt(n[8],i)}):null==o?o={}:\"object\"==typeof o&&((\"from\"in o)||(\"to\"in o))&&(s=mt(Qe(o.from),Qe(o.to)),o={},o.ms=s.milliseconds,o.M=s.months),a=new et(o),tt(e)&&l(e,\"_locale\")&&(a._locale=e._locale),a}function lt(e,t){var o=e&&parseFloat(e.replace(\",\",\".\"));return(isNaN(o)?0:o)*t}function pt(e,t){var o={};return o.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(o.months,\"M\").isAfter(t)&&--o.months,o.milliseconds=+t-+e.clone().add(o.months,\"M\"),o}function mt(e,t){var o;return e.isValid()&&t.isValid()?(t=at(t,e),e.isBefore(t)?o=pt(e,t):(o=pt(t,e),o.milliseconds=-o.milliseconds,o.months=-o.months),o):{milliseconds:0,months:0}}function ut(e,t){return function(o,n){var i,a;return null===n||isNaN(+n)||(S(t,\"moment().\"+t+\"(period, number) is deprecated. Please use moment().\"+t+\"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.\"),a=o,o=n,n=a),o=\"string\"==typeof o?+o:o,i=dt(o,n),ct(this,i,e),this}}function ct(e,o,n,i){var a=o._milliseconds,r=ot(o._days),s=ot(o._months);e.isValid()&&(i=null==i||i,s&&ie(e,Q(e,\"Month\")+s*n),r&&$(e,\"Date\",Q(e,\"Date\")+r*n),a&&e._d.setTime(e._d.valueOf()+a*n),i&&t.updateOffset(e,r||s))}function gt(e,t){var o=12*(t.year()-e.year())+(t.month()-e.month()),n=e.clone().add(o,\"months\"),i,a;return 0>t-n?(i=e.clone().add(o-1,\"months\"),a=(t-n)/(n-i)):(i=e.clone().add(o+1,\"months\"),a=(t-n)/(i-n)),-(o+a)||0}function ht(e){var t;return void 0===e?this._locale._abbr:(t=Te(e),null!=t&&(this._locale=t),this)}function yt(){return this._locale}function ft(e,t){return(e%t+t)%t}function bt(e,t,o){return 100>e&&0<=e?new Date(e+400,t,o)-12622780800000:new Date(e,t,o).valueOf()}function _t(e,t,o){return 100>e&&0<=e?Date.UTC(e+400,t,o)-12622780800000:Date.UTC(e,t,o)}function vt(e,t){N(0,[e,e.length],0,t)}function kt(e,t,o,n,i){var a;return null==e?me(this,n,i).year:(a=ue(e,n,i),t>a&&(t=a),wt.call(this,e,t,o,n,i))}function wt(e,t,o,n,i){var a=pe(e,t,o,n,i),r=de(a.year,0,a.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function xt(e,t){t[6]=k(1e3*(\"0.\"+e))}function Dt(e){return e}function St(e,t,o,n){var i=Te(),a=u().set(n,t);return i[o](a,e)}function Ct(e,t,o){if(r(e)&&(t=e,e=void 0),e=e||\"\",null!=t)return St(e,t,o,\"month\");var n=[],a;for(a=0;12>a;a++)n[a]=St(e,a,o,\"month\");return n}function Tt(e,t,o,n){\"boolean\"==typeof e?(r(t)&&(o=t,t=void 0),t=t||\"\"):(t=e,o=t,e=!1,r(t)&&(o=t,t=void 0),t=t||\"\");var a=Te(),s=e?a._week.dow:0;if(null!=o)return St(t,(o+s)%7,n,\"day\");var d=[],l;for(l=0;7>l;l++)d[l]=St(t,(l+s)%7,n,\"day\");return d}function Ot(e,t,o,n){var i=dt(t,o);return e._milliseconds+=n*i._milliseconds,e._days+=n*i._days,e._months+=n*i._months,e._bubble()}function Mt(e){return 0>e?Qt(e):Kt(e)}function It(e){return 4800*e/146097}function Pt(e){return 146097*e/4800}function Et(e){return function(){return this.as(e)}}function Yt(e){return function(){return this.isValid()?this._data[e]:NaN}}function Rt(e,t,o,n,i){return i.relativeTime(t||1,!!o,e,n)}function At(e,t,o){var n=dt(e).abs(),i=In(n.as(\"s\")),r=In(n.as(\"m\")),s=In(n.as(\"h\")),d=In(n.as(\"d\")),l=In(n.as(\"M\")),p=In(n.as(\"y\")),m=i<=Pn.ss&&[\"s\",i]||i<Pn.s&&[\"ss\",i]||1>=r&&[\"m\"]||r<Pn.m&&[\"mm\",r]||1>=s&&[\"h\"]||s<Pn.h&&[\"hh\",s]||1>=d&&[\"d\"]||d<Pn.d&&[\"dd\",d]||1>=l&&[\"M\"]||l<Pn.M&&[\"MM\",l]||1>=p&&[\"y\"]||[\"yy\",p];return m[2]=t,m[3]=0<+e,m[4]=o,Rt.apply(null,m)}function Nt(e){return void 0===e?In:\"function\"==typeof e&&(In=e,!0)}function Lt(e){return(0<e)-(0>e)||+e}function Ht(){if(!this.isValid())return this.localeData().invalidDate();var e=En(this._milliseconds)/1e3,t=En(this._days),o=En(this._months),n,i,a;n=v(e/60),i=v(n/60),e%=60,n%=60,a=v(o/12),o%=12;var r=a,d=o,l=t,p=i,u=n,m=e?e.toFixed(3).replace(/\\.?0+$/,\"\"):\"\",s=this.asSeconds();if(!s)return\"P0D\";var c=0>s?\"-\":\"\",g=Lt(this._months)===Lt(s)?\"\":\"-\",h=Lt(this._days)===Lt(s)?\"\":\"-\",y=Lt(this._milliseconds)===Lt(s)?\"\":\"-\";return c+\"P\"+(r?g+r+\"Y\":\"\")+(d?g+d+\"M\":\"\")+(l?h+l+\"D\":\"\")+(p||u||m?\"T\":\"\")+(p?y+p+\"H\":\"\")+(u?y+u+\"M\":\"\")+(m?y+m+\"S\":\"\")}var Gt,Ft;Ft=Array.prototype.some?Array.prototype.some:function(e){for(var o=Object(this),t=o.length>>>0,n=0;n<t;n++)if((n in o)&&e.call(this,o[n],n,o))return!0;return!1};var jt=t.momentProperties=[],Wt=!1,Ut={};t.suppressDeprecationWarnings=!1,t.deprecationHandler=null;var zt=Object.keys?Object.keys:function(e){var t=[],o;for(o in e)l(e,o)&&t.push(o);return t};var Vt=/\\d{1,2}/,Bt={},eo={},to=/(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,oo=/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,no={},io={},ao=/\\d/,ro=/\\d\\d/,so=/\\d{3}/,lo=/\\d{4}/,po=/[+-]?\\d{6}/,mo=/\\d\\d?/,uo=/\\d\\d\\d\\d?/,co=/\\d\\d\\d\\d\\d\\d?/,go=/\\d{1,3}/,ho=/\\d{1,4}/,yo=/[+-]?\\d{1,6}/,fo=/\\d+/,bo=/[+-]?\\d+/,_o=/Z|[+-]\\d\\d:?\\d\\d/gi,vo=/Z|[+-]\\d\\d(?::?\\d\\d)?/gi,ko=/[+-]?\\d+(\\.\\d{1,3})?/,wo=/[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,xo={},Do={},So=0,Co=1,To=2,Oo=3,Mo=4,Io=5;N(\"Y\",0,0,function(){var e=this.year();return 9999>=e?\"\"+e:\"+\"+e}),N(0,[\"YY\",2],0,function(){return this.year()%100}),N(0,[\"YYYY\",4],0,\"year\"),N(0,[\"YYYYY\",5],0,\"year\"),N(0,[\"YYYYYY\",6,!0],0,\"year\"),I(\"year\",\"y\"),Y(\"year\",1),j(\"Y\",bo),j(\"YY\",mo,ro),j(\"YYYY\",ho,lo),j(\"YYYYY\",yo,po),j(\"YYYYYY\",yo,po),V([\"YYYYY\",\"YYYYYY\"],So),V(\"YYYY\",function(e,o){o[So]=2===e.length?t.parseTwoDigitYear(e):k(e)}),V(\"YY\",function(e,o){o[So]=t.parseTwoDigitYear(e)}),V(\"Y\",function(e,t){t[So]=parseInt(e,10)}),t.parseTwoDigitYear=function(e){return k(e)+(68<k(e)?1900:2e3)};var Po=K(\"FullYear\",!0),Eo;Eo=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},N(\"M\",[\"MM\",2],\"Mo\",function(){return this.month()+1}),N(\"MMM\",0,0,function(e){return this.localeData().monthsShort(this,e)}),N(\"MMMM\",0,0,function(e){return this.localeData().months(this,e)}),I(\"month\",\"M\"),Y(\"month\",8),j(\"M\",mo),j(\"MM\",mo,ro),j(\"MMM\",function(e,t){return t.monthsShortRegex(e)}),j(\"MMMM\",function(e,t){return t.monthsRegex(e)}),V([\"M\",\"MM\"],function(e,t){t[Co]=k(e)-1}),V([\"MMM\",\"MMMM\"],function(e,t,o,n){var i=o._locale.monthsParse(e,n,o._strict);null==i?g(o).invalidMonth=e:t[Co]=i});var Yo=/D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,Ro=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];N(\"w\",[\"ww\",2],\"wo\",\"week\"),N(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\"),I(\"week\",\"w\"),I(\"isoWeek\",\"W\"),Y(\"week\",5),Y(\"isoWeek\",5),j(\"w\",mo),j(\"ww\",mo,ro),j(\"W\",mo),j(\"WW\",mo,ro),B([\"w\",\"ww\",\"W\",\"WW\"],function(e,t,o,n){t[n.substr(0,1)]=k(e)});N(\"d\",0,\"do\",\"day\"),N(\"dd\",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),N(\"ddd\",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),N(\"dddd\",0,0,function(e){return this.localeData().weekdays(this,e)}),N(\"e\",0,0,\"weekday\"),N(\"E\",0,0,\"isoWeekday\"),I(\"day\",\"d\"),I(\"weekday\",\"e\"),I(\"isoWeekday\",\"E\"),Y(\"day\",11),Y(\"weekday\",11),Y(\"isoWeekday\",11),j(\"d\",mo),j(\"e\",mo),j(\"E\",mo),j(\"dd\",function(e,t){return t.weekdaysMinRegex(e)}),j(\"ddd\",function(e,t){return t.weekdaysShortRegex(e)}),j(\"dddd\",function(e,t){return t.weekdaysRegex(e)}),B([\"dd\",\"ddd\",\"dddd\"],function(e,t,o,n){var i=o._locale.weekdaysParse(e,n,o._strict);null==i?g(o).invalidWeekday=e:t.d=i}),B([\"d\",\"e\",\"E\"],function(e,t,o,n){t[n]=k(e)});var Ao=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"];N(\"H\",[\"HH\",2],0,\"hour\"),N(\"h\",[\"hh\",2],0,_e),N(\"k\",[\"kk\",2],0,function(){return this.hours()||24}),N(\"hmm\",0,0,function(){return\"\"+_e.apply(this)+A(this.minutes(),2)}),N(\"hmmss\",0,0,function(){return\"\"+_e.apply(this)+A(this.minutes(),2)+A(this.seconds(),2)}),N(\"Hmm\",0,0,function(){return\"\"+this.hours()+A(this.minutes(),2)}),N(\"Hmmss\",0,0,function(){return\"\"+this.hours()+A(this.minutes(),2)+A(this.seconds(),2)}),ve(\"a\",!0),ve(\"A\",!1),I(\"hour\",\"h\"),Y(\"hour\",13),j(\"a\",ke),j(\"A\",ke),j(\"H\",mo),j(\"h\",mo),j(\"k\",mo),j(\"HH\",mo,ro),j(\"hh\",mo,ro),j(\"kk\",mo,ro),j(\"hmm\",uo),j(\"hmmss\",co),j(\"Hmm\",uo),j(\"Hmmss\",co),V([\"H\",\"HH\"],Oo),V([\"k\",\"kk\"],function(e,t){var o=k(e);t[Oo]=24===o?0:o}),V([\"a\",\"A\"],function(e,t,o){o._isPm=o._locale.isPM(e),o._meridiem=e}),V([\"h\",\"hh\"],function(e,t,o){t[Oo]=k(e),g(o).bigHour=!0}),V(\"hmm\",function(e,t,o){var n=e.length-2;t[Oo]=k(e.substr(0,n)),t[Mo]=k(e.substr(n)),g(o).bigHour=!0}),V(\"hmmss\",function(e,t,o){var n=e.length-4,i=e.length-2;t[Oo]=k(e.substr(0,n)),t[Mo]=k(e.substr(n,2)),t[Io]=k(e.substr(i)),g(o).bigHour=!0}),V(\"Hmm\",function(e,t){var o=e.length-2;t[Oo]=k(e.substr(0,o)),t[Mo]=k(e.substr(o))}),V(\"Hmmss\",function(e,t){var o=e.length-4,n=e.length-2;t[Oo]=k(e.substr(0,o)),t[Mo]=k(e.substr(o,2)),t[Io]=k(e.substr(n))});var No=/[ap]\\.?m?\\.?/i,Lo=K(\"Hours\",!0),Ho={calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},longDateFormat:{LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},invalidDate:\"Invalid date\",ordinal:\"%d\",dayOfMonthOrdinalParse:Vt,relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",ss:\"%d seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},months:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],monthsShort:Ro,week:{dow:0,doy:6},weekdays:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],weekdaysMin:[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"],weekdaysShort:Ao,meridiemParse:No},Go={},Fo={},jo=/^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,Wo=/^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,Uo=/Z|[+-]\\d\\d(?::?\\d\\d)?/,zo=[[\"YYYYYY-MM-DD\",/[+-]\\d{6}-\\d\\d-\\d\\d/],[\"YYYY-MM-DD\",/\\d{4}-\\d\\d-\\d\\d/],[\"GGGG-[W]WW-E\",/\\d{4}-W\\d\\d-\\d/],[\"GGGG-[W]WW\",/\\d{4}-W\\d\\d/,!1],[\"YYYY-DDD\",/\\d{4}-\\d{3}/],[\"YYYY-MM\",/\\d{4}-\\d\\d/,!1],[\"YYYYYYMMDD\",/[+-]\\d{10}/],[\"YYYYMMDD\",/\\d{8}/],[\"GGGG[W]WWE\",/\\d{4}W\\d{3}/],[\"GGGG[W]WW\",/\\d{4}W\\d{2}/,!1],[\"YYYYDDD\",/\\d{7}/]],Vo=[[\"HH:mm:ss.SSSS\",/\\d\\d:\\d\\d:\\d\\d\\.\\d+/],[\"HH:mm:ss,SSSS\",/\\d\\d:\\d\\d:\\d\\d,\\d+/],[\"HH:mm:ss\",/\\d\\d:\\d\\d:\\d\\d/],[\"HH:mm\",/\\d\\d:\\d\\d/],[\"HHmmss.SSSS\",/\\d\\d\\d\\d\\d\\d\\.\\d+/],[\"HHmmss,SSSS\",/\\d\\d\\d\\d\\d\\d,\\d+/],[\"HHmmss\",/\\d\\d\\d\\d\\d\\d/],[\"HHmm\",/\\d\\d\\d\\d/],[\"HH\",/\\d\\d/]],Bo=/^\\/?Date\\((\\-?\\d+)/i,qo=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,Zo={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480},Xo;t.createFromInputFallback=D(\"value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.\",function(e){e._d=new Date(e._i+(e._useUTC?\" UTC\":\"\"))}),t.ISO_8601=function(){},t.RFC_2822=function(){};var Ko=D(\"moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var e=Qe.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:y()}),Qo=D(\"moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var e=Qe.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:y()}),$o=[\"year\",\"quarter\",\"month\",\"week\",\"day\",\"hour\",\"minute\",\"second\",\"millisecond\"];nt(\"Z\",\":\"),nt(\"ZZ\",\"\"),j(\"Z\",vo),j(\"ZZ\",vo),V([\"Z\",\"ZZ\"],function(e,t,o){o._useUTC=!0,o._tzm=it(vo,e)});var Jo=/([\\+\\-]|\\d\\d)/gi;t.updateOffset=function(){};var en=/^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/,tn=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;dt.fn=et.prototype,dt.invalid=function(){return dt(NaN)};var on=ut(1,\"add\"),nn=ut(-1,\"subtract\");t.defaultFormat=\"YYYY-MM-DDTHH:mm:ssZ\",t.defaultFormatUtc=\"YYYY-MM-DDTHH:mm:ss[Z]\";var an=D(\"moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.\",function(e){return void 0===e?this.localeData():this.locale(e)});N(0,[\"gg\",2],0,function(){return this.weekYear()%100}),N(0,[\"GG\",2],0,function(){return this.isoWeekYear()%100}),vt(\"gggg\",\"weekYear\"),vt(\"ggggg\",\"weekYear\"),vt(\"GGGG\",\"isoWeekYear\"),vt(\"GGGGG\",\"isoWeekYear\"),I(\"weekYear\",\"gg\"),I(\"isoWeekYear\",\"GG\"),Y(\"weekYear\",1),Y(\"isoWeekYear\",1),j(\"G\",bo),j(\"g\",bo),j(\"GG\",mo,ro),j(\"gg\",mo,ro),j(\"GGGG\",ho,lo),j(\"gggg\",ho,lo),j(\"GGGGG\",yo,po),j(\"ggggg\",yo,po),B([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],function(e,t,o,n){t[n.substr(0,2)]=k(e)}),B([\"gg\",\"GG\"],function(e,o,n,i){o[i]=t.parseTwoDigitYear(e)}),N(\"Q\",0,\"Qo\",\"quarter\"),I(\"quarter\",\"Q\"),Y(\"quarter\",7),j(\"Q\",ao),V(\"Q\",function(e,t){t[Co]=3*(k(e)-1)}),N(\"D\",[\"DD\",2],\"Do\",\"date\"),I(\"date\",\"D\"),Y(\"date\",9),j(\"D\",mo),j(\"DD\",mo,ro),j(\"Do\",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),V([\"D\",\"DD\"],To),V(\"Do\",function(e,t){t[To]=k(e.match(mo)[0])});var rn=K(\"Date\",!0);N(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\"),I(\"dayOfYear\",\"DDD\"),Y(\"dayOfYear\",4),j(\"DDD\",go),j(\"DDDD\",so),V([\"DDD\",\"DDDD\"],function(e,t,o){o._dayOfYear=k(e)}),N(\"m\",[\"mm\",2],0,\"minute\"),I(\"minute\",\"m\"),Y(\"minute\",14),j(\"m\",mo),j(\"mm\",mo,ro),V([\"m\",\"mm\"],Mo);var sn=K(\"Minutes\",!1);N(\"s\",[\"ss\",2],0,\"second\"),I(\"second\",\"s\"),Y(\"second\",15),j(\"s\",mo),j(\"ss\",mo,ro),V([\"s\",\"ss\"],Io);var dn=K(\"Seconds\",!1);N(\"S\",0,0,function(){return~~(this.millisecond()/100)}),N(0,[\"SS\",2],0,function(){return~~(this.millisecond()/10)}),N(0,[\"SSS\",3],0,\"millisecond\"),N(0,[\"SSSS\",4],0,function(){return 10*this.millisecond()}),N(0,[\"SSSSS\",5],0,function(){return 100*this.millisecond()}),N(0,[\"SSSSSS\",6],0,function(){return 1e3*this.millisecond()}),N(0,[\"SSSSSSS\",7],0,function(){return 1e4*this.millisecond()}),N(0,[\"SSSSSSSS\",8],0,function(){return 1e5*this.millisecond()}),N(0,[\"SSSSSSSSS\",9],0,function(){return 1e6*this.millisecond()}),I(\"millisecond\",\"ms\"),Y(\"millisecond\",16),j(\"S\",go,ao),j(\"SS\",go,ro),j(\"SSS\",go,so);var ln;for(ln=\"SSSS\";9>=ln.length;ln+=\"S\")j(ln,fo);for(ln=\"S\";9>=ln.length;ln+=\"S\")V(ln,xt);var pn=K(\"Milliseconds\",!1);N(\"z\",0,0,\"zoneAbbr\"),N(\"zz\",0,0,\"zoneName\");var mn=b.prototype;mn.add=on,mn.calendar=function(e,o){var n=e||Qe(),i=at(n,this).startOf(\"day\"),a=t.calendarFormat(this,i)||\"sameElse\",r=o&&(C(o[a])?o[a].call(this,n):o[a]);return this.format(r||this.localeData().calendar(a,this,Qe(n)))},mn.clone=function(){return new b(this)},mn.diff=function(e,t,o){var n,i,a;return this.isValid()?(n=at(e,this),!n.isValid())?NaN:(i=6e4*(n.utcOffset()-this.utcOffset()),t=P(t),(a=\"year\"===t?gt(this,n)/12:\"month\"===t?gt(this,n):\"quarter\"===t?gt(this,n)/3:\"second\"===t?(this-n)/1e3:\"minute\"===t?(this-n)/6e4:\"hour\"===t?(this-n)/36e5:\"day\"===t?(this-n-i)/864e5:\"week\"===t?(this-n-i)/6048e5:this-n,o?a:v(a))):NaN},mn.endOf=function(e){var o;if(e=P(e),void 0===e||\"millisecond\"===e||!this.isValid())return this;var n=this._isUTC?_t:bt;return\"year\"===e?o=n(this.year()+1,0,1)-1:\"quarter\"===e?o=n(this.year(),this.month()-this.month()%3+3,1)-1:\"month\"===e?o=n(this.year(),this.month()+1,1)-1:\"week\"===e?o=n(this.year(),this.month(),this.date()-this.weekday()+7)-1:\"isoWeek\"===e?o=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1:\"day\"===e||\"date\"===e?o=n(this.year(),this.month(),this.date()+1)-1:\"hour\"===e?(o=this._d.valueOf(),o+=3600000-ft(o+(this._isUTC?0:60000*this.utcOffset()),3600000)-1):\"minute\"===e?(o=this._d.valueOf(),o+=60000-ft(o,60000)-1):\"second\"===e?(o=this._d.valueOf(),o+=1000-ft(o,1000)-1):void 0,this._d.setTime(o),t.updateOffset(this,!0),this},mn.format=function(e){e||(e=this.isUtc()?t.defaultFormatUtc:t.defaultFormat);var o=G(this,e);return this.localeData().postformat(o)},mn.from=function(e,t){return this.isValid()&&(_(e)&&e.isValid()||Qe(e).isValid())?dt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},mn.fromNow=function(e){return this.from(Qe(),e)},mn.to=function(e,t){return this.isValid()&&(_(e)&&e.isValid()||Qe(e).isValid())?dt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},mn.toNow=function(e){return this.to(Qe(),e)},mn.get=function(e){return e=P(e),C(this[e])?this[e]():this},mn.invalidAt=function(){return g(this).overflow},mn.isAfter=function(e,t){var o=_(e)?e:Qe(e);return!!(this.isValid()&&o.isValid())&&(t=P(t)||\"millisecond\",\"millisecond\"===t?this.valueOf()>o.valueOf():o.valueOf()<this.clone().startOf(t).valueOf())},mn.isBefore=function(e,t){var o=_(e)?e:Qe(e);return!!(this.isValid()&&o.isValid())&&(t=P(t)||\"millisecond\",\"millisecond\"===t?this.valueOf()<o.valueOf():this.clone().endOf(t).valueOf()<o.valueOf())},mn.isBetween=function(e,t,o,n){var i=_(e)?e:Qe(e),a=_(t)?t:Qe(t);return!!(this.isValid()&&i.isValid()&&a.isValid())&&(n=n||\"()\",(\"(\"===n[0]?this.isAfter(i,o):!this.isBefore(i,o))&&(\")\"===n[1]?this.isBefore(a,o):!this.isAfter(a,o)))},mn.isSame=function(e,t){var o=_(e)?e:Qe(e),n;return!!(this.isValid()&&o.isValid())&&(t=P(t)||\"millisecond\",\"millisecond\"===t?this.valueOf()===o.valueOf():(n=o.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},mn.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},mn.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},mn.isValid=function(){return h(this)},mn.lang=an,mn.locale=ht,mn.localeData=yt,mn.max=Qo,mn.min=Ko,mn.parsingFlags=function(){return p({},g(this))},mn.set=J,mn.startOf=function(e){var o;if(e=P(e),void 0===e||\"millisecond\"===e||!this.isValid())return this;var n=this._isUTC?_t:bt;return\"year\"===e?o=n(this.year(),0,1):\"quarter\"===e?o=n(this.year(),this.month()-this.month()%3,1):\"month\"===e?o=n(this.year(),this.month(),1):\"week\"===e?o=n(this.year(),this.month(),this.date()-this.weekday()):\"isoWeek\"===e?o=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)):\"day\"===e||\"date\"===e?o=n(this.year(),this.month(),this.date()):\"hour\"===e?(o=this._d.valueOf(),o-=ft(o+(this._isUTC?0:60000*this.utcOffset()),3600000)):\"minute\"===e?(o=this._d.valueOf(),o-=ft(o,60000)):\"second\"===e?(o=this._d.valueOf(),o-=ft(o,1000)):void 0,this._d.setTime(o),t.updateOffset(this,!0),this},mn.subtract=nn,mn.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},mn.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},mn.toDate=function(){return new Date(this.valueOf())},mn.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,o=t?this.clone().utc():this;return 0>o.year()||9999<o.year()?G(o,t?\"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]\":\"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ\"):C(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+1e3*(60*this.utcOffset())).toISOString().replace(\"Z\",G(o,\"Z\")):G(o,t?\"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]\":\"YYYY-MM-DD[T]HH:mm:ss.SSSZ\")},mn.inspect=function(){if(!this.isValid())return\"moment.invalid(/* \"+this._i+\" */)\";var e=\"moment\",t=\"\";this.isLocal()||(e=0===this.utcOffset()?\"moment.utc\":\"moment.parseZone\",t=\"Z\");var o=\"[\"+e+\"(\\\"]\",n=0<=this.year()&&9999>=this.year()?\"YYYY\":\"YYYYYY\",i=t+\"[\\\")]\";return this.format(o+n+\"-MM-DD[T]HH:mm:ss.SSS\"+i)},mn.toJSON=function(){return this.isValid()?this.toISOString():null},mn.toString=function(){return this.clone().locale(\"en\").format(\"ddd MMM DD YYYY HH:mm:ss [GMT]ZZ\")},mn.unix=function(){return Qt(this.valueOf()/1e3)},mn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},mn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},mn.year=Po,mn.isLeapYear=function(){return X(this.year())},mn.weekYear=function(e){return kt.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},mn.isoWeekYear=function(e){return kt.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},mn.quarter=mn.quarters=function(e){return null==e?Kt((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},mn.month=ae,mn.daysInMonth=function(){return te(this.year(),this.month())},mn.week=mn.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),\"d\")},mn.isoWeek=mn.isoWeeks=function(e){var t=me(this,1,4).week;return null==e?t:this.add(7*(e-t),\"d\")},mn.weeksInYear=function(){var e=this.localeData()._week;return ue(this.year(),e.dow,e.doy)},mn.isoWeeksInYear=function(){return ue(this.year(),1,4)},mn.date=rn,mn.day=mn.days=function(e){if(!this.isValid())return null==e?NaN:this;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null==e?t:(e=ce(e,this.localeData()),this.add(e-t,\"d\"))},mn.weekday=function(e){if(!this.isValid())return null==e?NaN:this;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,\"d\")},mn.isoWeekday=function(e){if(!this.isValid())return null==e?NaN:this;if(null!=e){var t=ge(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7},mn.dayOfYear=function(e){var t=qt((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))/864e5)+1;return null==e?t:this.add(e-t,\"d\")},mn.hour=mn.hours=Lo,mn.minute=mn.minutes=sn,mn.second=mn.seconds=dn,mn.millisecond=mn.milliseconds=pn,mn.utcOffset=function(e,o,n){var i=this._offset||0,a;if(!this.isValid())return null==e?NaN:this;if(null!=e){if(\"string\"!=typeof e)16>Xt(e)&&!n&&(e*=60);else if(e=it(vo,e),null===e)return this;return!this._isUTC&&o&&(a=rt(this)),this._offset=e,this._isUTC=!0,null!=a&&this.add(a,\"m\"),i!==e&&(!o||this._changeInProgress?ct(this,dt(e-i,\"m\"),1,!1):!this._changeInProgress&&(this._changeInProgress=!0,t.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?i:rt(this)},mn.utc=function(e){return this.utcOffset(0,e)},mn.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(rt(this),\"m\")),this},mn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if(\"string\"==typeof this._i){var e=it(_o,this._i);null==e?this.utcOffset(0,!0):this.utcOffset(e)}return this},mn.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Qe(e).utcOffset():0,0==(this.utcOffset()-e)%60)},mn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},mn.isLocal=function(){return!!this.isValid()&&!this._isUTC},mn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},mn.isUtc=st,mn.isUTC=st,mn.zoneAbbr=function(){return this._isUTC?\"UTC\":\"\"},mn.zoneName=function(){return this._isUTC?\"Coordinated Universal Time\":\"\"},mn.dates=D(\"dates accessor is deprecated. Use date instead.\",rn),mn.months=D(\"months accessor is deprecated. Use month instead\",ae),mn.years=D(\"years accessor is deprecated. Use year instead\",Po),mn.zone=D(\"moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/\",function(e,t){return null==e?-this.utcOffset():(\"string\"!=typeof e&&(e=-e),this.utcOffset(e,t),this)}),mn.isDSTShifted=D(\"isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information\",function(){if(!a(this._isDSTShifted))return this._isDSTShifted;var e={};if(f(e,this),e=Ze(e),e._a){var t=e._isUTC?u(e._a):Qe(e._a);this._isDSTShifted=this.isValid()&&0<w(e._a,t.toArray())}else this._isDSTShifted=!1;return this._isDSTShifted});var un=M.prototype;un.calendar=function(e,t,o){var n=this._calendar[e]||this._calendar.sameElse;return C(n)?n.call(t,o):n},un.longDateFormat=function(e){var t=this._longDateFormat[e],o=this._longDateFormat[e.toUpperCase()];return t||!o?t:(this._longDateFormat[e]=o.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])},un.invalidDate=function(){return this._invalidDate},un.ordinal=function(e){return this._ordinal.replace(\"%d\",e)},un.preparse=Dt,un.postformat=Dt,un.relativeTime=function(e,t,o,n){var i=this._relativeTime[o];return C(i)?i(e,t,o,n):i.replace(/%d/i,e)},un.pastFuture=function(e,t){var o=this._relativeTime[0<e?\"future\":\"past\"];return C(o)?o(t):o.replace(/%s/i,t)},un.set=T,un.months=function(e,t){return e?o(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Yo).test(t)?\"format\":\"standalone\"][e.month()]:o(this._months)?this._months:this._months.standalone},un.monthsShort=function(e,t){return e?o(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Yo.test(t)?\"format\":\"standalone\"][e.month()]:o(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},un.monthsParse=ne,un.monthsRegex=function(e){return this._monthsParseExact?(l(this,\"_monthsRegex\")||re.call(this),e?this._monthsStrictRegex:this._monthsRegex):(l(this,\"_monthsRegex\")||(this._monthsRegex=wo),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},un.monthsShortRegex=function(e){return this._monthsParseExact?(l(this,\"_monthsRegex\")||re.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(l(this,\"_monthsShortRegex\")||(this._monthsShortRegex=wo),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},un.week=function(e){return me(e,this._week.dow,this._week.doy).week},un.firstDayOfYear=function(){return this._week.doy},un.firstDayOfWeek=function(){return this._week.dow},un.weekdays=function(e,t){var n=o(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?\"format\":\"standalone\"];return!0===e?he(n,this._week.dow):e?n[e.day()]:n},un.weekdaysMin=function(e){return!0===e?he(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},un.weekdaysShort=function(e){return!0===e?he(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},un.weekdaysParse=fe,un.weekdaysRegex=function(e){return this._weekdaysParseExact?(l(this,\"_weekdaysRegex\")||be.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(l(this,\"_weekdaysRegex\")||(this._weekdaysRegex=wo),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},un.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(l(this,\"_weekdaysRegex\")||be.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(l(this,\"_weekdaysShortRegex\")||(this._weekdaysShortRegex=wo),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},un.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(l(this,\"_weekdaysRegex\")||be.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(l(this,\"_weekdaysMinRegex\")||(this._weekdaysMinRegex=wo),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},un.isPM=function(e){return\"p\"===(e+\"\").toLowerCase().charAt(0)},un.meridiem=function(e,t,o){return 11<e?o?\"pm\":\"PM\":o?\"am\":\"AM\"},Se(\"en\",{dayOfMonthOrdinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,o=1===k(e%100/10)?\"th\":1==t?\"st\":2==t?\"nd\":3==t?\"rd\":\"th\";return e+o}}),t.lang=D(\"moment.lang is deprecated. Use moment.locale instead.\",Se),t.langData=D(\"moment.langData is deprecated. Use moment.localeData instead.\",Te);var cn=Xt,gn=Et(\"ms\"),hn=Et(\"s\"),yn=Et(\"m\"),fn=Et(\"h\"),bn=Et(\"d\"),_n=Et(\"w\"),vn=Et(\"M\"),kn=Et(\"Q\"),wn=Et(\"y\"),xn=Yt(\"milliseconds\"),Dn=Yt(\"seconds\"),Sn=Yt(\"minutes\"),Cn=Yt(\"hours\"),Tn=Yt(\"days\"),On=Yt(\"months\"),Mn=Yt(\"years\"),In=qt,Pn={ss:44,s:45,m:45,h:22,d:26,M:11},En=Xt,Yn=et.prototype;return Yn.isValid=function(){return this._isValid},Yn.abs=function(){var e=this._data;return this._milliseconds=cn(this._milliseconds),this._days=cn(this._days),this._months=cn(this._months),e.milliseconds=cn(e.milliseconds),e.seconds=cn(e.seconds),e.minutes=cn(e.minutes),e.hours=cn(e.hours),e.months=cn(e.months),e.years=cn(e.years),this},Yn.add=function(e,t){return Ot(this,e,t,1)},Yn.subtract=function(e,t){return Ot(this,e,t,-1)},Yn.as=function(e){if(!this.isValid())return NaN;var t=this._milliseconds,o,n;if(e=P(e),\"month\"===e||\"quarter\"===e||\"year\"===e)switch(o=this._days+t/864e5,n=this._months+It(o),e){case\"month\":return n;case\"quarter\":return n/3;case\"year\":return n/12;}else switch(o=this._days+qt(Pt(this._months)),e){case\"week\":return o/7+t/6048e5;case\"day\":return o+t/864e5;case\"hour\":return 24*o+t/36e5;case\"minute\":return 1440*o+t/6e4;case\"second\":return 86400*o+t/1e3;case\"millisecond\":return Qt(864e5*o)+t;default:throw new Error(\"Unknown unit \"+e);}},Yn.asMilliseconds=gn,Yn.asSeconds=hn,Yn.asMinutes=yn,Yn.asHours=fn,Yn.asDays=bn,Yn.asWeeks=_n,Yn.asMonths=vn,Yn.asQuarters=kn,Yn.asYears=wn,Yn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+2592e6*(this._months%12)+31536e6*k(this._months/12):NaN},Yn._bubble=function(){var e=this._milliseconds,t=this._days,o=this._months,n=this._data,i,a,r,s,d;return 0<=e&&0<=t&&0<=o||0>=e&&0>=t&&0>=o||(e+=864e5*Mt(Pt(o)+t),t=0,o=0),n.milliseconds=e%1e3,i=v(e/1e3),n.seconds=i%60,a=v(i/60),n.minutes=a%60,r=v(a/60),n.hours=r%24,t+=v(r/24),d=v(It(t)),o+=d,t-=Mt(Pt(d)),s=v(o/12),o%=12,n.days=t,n.months=o,n.years=s,this},Yn.clone=function(){return dt(this)},Yn.get=function(e){return e=P(e),this.isValid()?this[e+\"s\"]():NaN},Yn.milliseconds=xn,Yn.seconds=Dn,Yn.minutes=Sn,Yn.hours=Cn,Yn.days=Tn,Yn.weeks=function(){return v(this.days()/7)},Yn.months=On,Yn.years=Mn,Yn.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),o=At(this,!e,t);return e&&(o=t.pastFuture(+this,o)),t.postformat(o)},Yn.toISOString=Ht,Yn.toString=Ht,Yn.toJSON=Ht,Yn.locale=ht,Yn.localeData=yt,Yn.toIsoString=D(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",Ht),Yn.lang=an,N(\"X\",0,0,\"unix\"),N(\"x\",0,0,\"valueOf\"),j(\"x\",bo),j(\"X\",ko),V(\"X\",function(e,t,o){o._d=new Date(1e3*parseFloat(e,10))}),V(\"x\",function(e,t,o){o._d=new Date(k(e))}),t.version=\"2.24.0\",function(e){Gt=e}(Qe),t.fn=mn,t.min=function(){var e=[].slice.call(arguments,0);return $e(\"isBefore\",e)},t.max=function(){var e=[].slice.call(arguments,0);return $e(\"isAfter\",e)},t.now=function(){return Date.now?Date.now():+new Date},t.utc=u,t.unix=function(e){return Qe(1e3*e)},t.months=function(e,t){return Ct(e,t,\"months\")},t.isDate=s,t.locale=Se,t.invalid=y,t.duration=dt,t.isMoment=_,t.weekdays=function(e,t,o){return Tt(e,t,o,\"weekdays\")},t.parseZone=function(){return Qe.apply(null,arguments).parseZone()},t.localeData=Te,t.isDuration=tt,t.monthsShort=function(e,t){return Ct(e,t,\"monthsShort\")},t.weekdaysMin=function(e,t,o){return Tt(e,t,o,\"weekdaysMin\")},t.defineLocale=Ce,t.updateLocale=function(e,t){if(null!=t){var o=Ho,n,i;i=De(e),null!=i&&(o=i._config),t=O(o,t),n=new M(t),n.parentLocale=Go[e],Go[e]=n,Se(e)}else null!=Go[e]&&(null==Go[e].parentLocale?null!=Go[e]&&delete Go[e]:Go[e]=Go[e].parentLocale);return Go[e]},t.locales=Oe,t.weekdaysShort=function(e,t,o){return Tt(e,t,o,\"weekdaysShort\")},t.normalizeUnits=P,t.relativeTimeRounding=Nt,t.relativeTimeThreshold=function(e,t){return void 0!==Pn[e]&&(void 0===t?Pn[e]:(Pn[e]=t,\"s\"===e&&(Pn.ss=t-1),!0))},t.calendarFormat=function(e,t){var o=e.diff(t,\"days\",!0);return-6>o?\"sameElse\":-1>o?\"lastWeek\":0>o?\"lastDay\":1>o?\"sameDay\":2>o?\"nextDay\":7>o?\"nextWeek\":\"sameElse\"},t.prototype=mn,t.HTML5_FMT={DATETIME_LOCAL:\"YYYY-MM-DDTHH:mm\",DATETIME_LOCAL_SECONDS:\"YYYY-MM-DDTHH:mm:ss\",DATETIME_LOCAL_MS:\"YYYY-MM-DDTHH:mm:ss.SSS\",DATE:\"YYYY-MM-DD\",TIME:\"HH:mm\",TIME_SECONDS:\"HH:mm:ss\",TIME_MS:\"HH:mm:ss.SSS\",WEEK:\"GGGG-[W]WW\",MONTH:\"YYYY-MM\"},t})}),Bo=[],qo=0;256>qo;qo++)Bo[qo]=(qo+256).toString(16).substr(1);for(var Zo=function(){if(\"undefined\"!=typeof crypto&&crypto.getRandomValues){var e=new Uint8Array(16);return function(){return crypto.getRandomValues(e),e}}var t=Array(16);return function(){for(var e=0,o;16>e;e++)0==(3&e)&&(o=4294967296*Math.random()),t[e]=255&o>>>((3&e)<<3);return t}}(),Xo=[],Ko=0;256>Ko;Ko++)Xo[Ko]=(Ko+256).toString(16).substr(1);var Qo=Zo(),$o=[1|Qo[0],Qo[1],Qo[2],Qo[3],Qo[4],Qo[5]],Jo=16383&(Qo[6]<<8|Qo[7]),en=/^\\/?Date\\((-?\\d+)/i,tn=function(){function e(t){Mo(this,e),this._queue=[],this._timeout=null,this._extended=null,this.delay=null,this.max=1/0,this.setOptions(t)}return Io(e,[{key:\"setOptions\",value:function(e){e&&\"undefined\"!=typeof e.delay&&(this.delay=e.delay),e&&\"undefined\"!=typeof e.max&&(this.max=e.max),this._flushIfNeeded()}},{key:\"destroy\",value:function(){if(this.flush(),this._extended){for(var e=this._extended.object,t=this._extended.methods,o=0,n;o<t.length;o++)n=t[o],n.original?e[n.name]=n.original:delete e[n.name];this._extended=null}}},{key:\"replace\",value:function(e,t){var o=this,n=e[t];if(!n)throw new Error(\"Method \"+t+\" undefined\");e[t]=function(){for(var e=arguments.length,t=Array(e),i=0;i<e;i++)t[i]=arguments[i];o.queue({args:t,fn:n,context:this})}}},{key:\"queue\",value:function(e){\"function\"==typeof e?this._queue.push({fn:e}):this._queue.push(e),this._flushIfNeeded()}},{key:\"_flushIfNeeded\",value:function(){var e=this;this._queue.length>this.max&&this.flush(),null!=this._timeout&&(clearTimeout(this._timeout),this._timeout=null),0<this.queue.length&&\"number\"==typeof this.delay&&(this._timeout=setTimeout(function(){e.flush()},this.delay))}},{key:\"flush\",value:function(){this._queue.splice(0).forEach(function(e){e.fn.apply(e.context||e.fn,e.args||[])})}}],[{key:\"extend\",value:function(t,o){var n=new e(o);if(void 0!==t.flush)throw new Error(\"Target object already has a property flush\");t.flush=function(){n.flush()};var a=[{name:\"flush\",original:void 0}];if(o&&o.replace)for(var r=0,s;r<o.replace.length;r++)s=o.replace[r],a.push({name:s,original:t[s]}),n.replace(t,s);return n._extended={object:t,methods:a},n}}]),e}(),on=function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")},nn=function(e){return Le(e)||He(e)||on()},an=function(){function e(){Mo(this,e),this._subscribers={\"*\":[],add:[],remove:[],update:[]},this.subscribe=e.prototype.on,this.unsubscribe=e.prototype.off}return Io(e,[{key:\"_trigger\",value:function(e,t,o){if(\"*\"===e)throw new Error(\"Cannot trigger event *\");for(var n=[].concat(nn(this._subscribers[e]),nn(this._subscribers[\"*\"])),a=0,r=n.length,s;a<r;a++)s=n[a],s.callback&&s.callback(e,t,null==o?null:o)}},{key:\"on\",value:function(e,t){this._subscribers[e].push({callback:t})}},{key:\"off\",value:function(e,t){this._subscribers[e]=this._subscribers[e].filter(function(e){return e.callback!==t})}}]),e}(),rn=function(e){function t(e,o){var n;if(Mo(this,t),n=Eo(this,Yo(t).call(this)),e&&!Array.isArray(e)&&(o=e,e=[]),n._options=o||{},n._data=Object.create({}),n.length=0,n._idProp=n._options.fieldId||\"id\",n._type={},n._options.type)for(var a=Object.keys(n._options.type),r=0,s=a.length;r<s;r++){var d=a[r],l=n._options.type[d];n._type[d]=\"Date\"==l||\"ISODate\"==l||\"ASPDate\"==l?\"Date\":l}return e&&e.length&&n.add(e),n.setOptions(o),n}return Ao(t,e),Io(t,[{key:\"setOptions\",value:function(e){e&&void 0!==e.queue&&(!1===e.queue?this._queue&&(this._queue.destroy(),delete this._queue):(!this._queue&&(this._queue=tn.extend(this,{replace:[\"add\",\"update\",\"remove\"]})),e.queue&&\"object\"===Oo(e.queue)&&this._queue.setOptions(e.queue)))}},{key:\"add\",value:function(e,t){var o=[],n;if(Array.isArray(e))for(var a=0,r=e.length;a<r;a++)n=this._addItem(e[a]),o.push(n);else if(e&&\"object\"===Oo(e))n=this._addItem(e),o.push(n);else throw new Error(\"Unknown dataType\");return o.length&&this._trigger(\"add\",{items:o},t),o}},{key:\"update\",value:function(e,t){var o=this,n=[],a=[],r=[],s=[],d=this._idProp,l=function(e){var t=e[d];if(null!=t&&o._data[t]){var i=e,l=Object.assign({},o._data[t]),p=o._updateItem(i);a.push(p),s.push(i),r.push(l)}else{var m=o._addItem(e);n.push(m)}};if(Array.isArray(e))for(var p=0,m=e.length;p<m;p++)e[p]&&\"object\"===Oo(e[p])?l(e[p]):console.warn(\"Ignoring input item, which is not an object at index \"+p);else if(e&&\"object\"===Oo(e))l(e);else throw new Error(\"Unknown dataType\");if(n.length&&this._trigger(\"add\",{items:n},t),a.length){this._trigger(\"update\",{items:a,oldData:r,data:s},t)}return n.concat(a)}},{key:\"get\",value:function(e,t){var o=void 0,n=void 0,a=void 0;Ne(e)?(o=e,a=t):Array.isArray(e)?(n=e,a=t):a=e;var r=a&&\"Object\"===a.returnType?\"Object\":\"Array\",s=a&&a.type||this._options.type,d=a&&a.filter,l=[],p=null,m=null,u=null;if(null!=o)p=this._getItem(o,s),p&&d&&!d(p)&&(p=null);else if(null!=n)for(var c=0,g=n.length;c<g;c++)p=this._getItem(n[c],s),null!=p&&(!d||d(p))&&l.push(p);else{m=Object.keys(this._data);for(var h=0,y=m.length;h<y;h++)u=m[h],p=this._getItem(u,s),null!=p&&(!d||d(p))&&l.push(p)}if(a&&a.order&&null==o&&this._sort(l,a.order),a&&a.fields){var f=a.fields;if(null!=o&&null!=p)p=this._filterFields(p,f);else for(var b=0,_=l.length;b<_;b++)l[b]=this._filterFields(l[b],f)}if(\"Object\"==r){for(var v={},k=0,w=l.length;k<w;k++){var x=l[k],D=x[this._idProp];v[D]=x}return v}return null==o?l:p}},{key:\"getIds\",value:function(e){var t=this._data,o=e&&e.filter,n=e&&e.order,a=e&&e.type||this._options.type,r=Object.keys(t),s=[],d,l;if(o){if(n){l=[];for(var p=0,m=r.length,u;p<m;p++)u=r[p],d=this._getItem(u,a),o(d)&&l.push(d);this._sort(l,n);for(var c=0,g=l.length;c<g;c++)s.push(l[c][this._idProp])}else for(var h=0,y=r.length,f;h<y;h++)f=r[h],d=this._getItem(f,a),o(d)&&s.push(d[this._idProp]);}else if(n){l=[];for(var b=0,_=r.length,v;b<_;b++)v=r[b],l.push(t[v]);this._sort(l,n);for(var k=0,w=l.length;k<w;k++)s.push(l[k][this._idProp])}else for(var x=0,D=r.length,S;x<D;x++)S=r[x],d=t[S],s.push(d[this._idProp]);return s}},{key:\"getDataSet\",value:function(){return this}},{key:\"forEach\",value:function(e,t){var o=t&&t.filter,n=t&&t.type||this._options.type,a=this._data,r=Object.keys(a);if(t&&t.order)for(var s=this.get(t),d=0,l=s.length;d<l;d++){var p=s[d],m=p[this._idProp];e(p,m)}else for(var u=0,c=r.length;u<c;u++){var g=r[u],h=this._getItem(g,n);(!o||o(h))&&e(h,g)}}},{key:\"map\",value:function(e,t){for(var o=t&&t.filter,n=t&&t.type||this._options.type,a=[],r=this._data,s=Object.keys(r),d=0,l=s.length;d<l;d++){var p=s[d],m=this._getItem(p,n);(!o||o(m))&&a.push(e(m,p))}return t&&t.order&&this._sort(a,t.order),a}},{key:\"_filterFields\",value:function(e,t){return e?(Array.isArray(t)?t:Object.keys(t)).reduce(function(t,o){return t[o]=e[o],t},{}):e}},{key:\"_sort\",value:function(e,t){if(\"string\"==typeof t){var o=t;e.sort(function(e,t){var n=e[o],i=t[o];return n>i?1:n<i?-1:0})}else if(\"function\"==typeof t)e.sort(t);else throw new TypeError(\"Order must be a function or a string\")}},{key:\"remove\",value:function(e,t){for(var o=[],n=[],a=Array.isArray(e)?e:[e],r=0,s=a.length,d;r<s;r++)if(d=this._remove(a[r]),d){var l=d[this._idProp];null!=l&&(o.push(l),n.push(d))}return o.length&&this._trigger(\"remove\",{items:o,oldData:n},t),o}},{key:\"_remove\",value:function(e){var t;if(Ne(e)?t=e:e&&\"object\"===Oo(e)&&(t=e[this._idProp]),null!=t&&this._data[t]){var o=this._data[t];return delete this._data[t],--this.length,o}return null}},{key:\"clear\",value:function(e){for(var t=Object.keys(this._data),o=[],n=0,a=t.length;n<a;n++)o.push(this._data[t[n]]);return this._data={},this.length=0,this._trigger(\"remove\",{items:t,oldData:o},e),t}},{key:\"max\",value:function e(t){for(var o=this._data,n=Object.keys(o),e=null,a=null,r=0,s=n.length;r<s;r++){var d=n[r],l=o[d],p=l[t];null!=p&&(null==a||p>a)&&(e=l,a=p)}return e}},{key:\"min\",value:function e(t){for(var o=this._data,n=Object.keys(o),e=null,a=null,r=0,s=n.length;r<s;r++){var d=n[r],l=o[d],p=l[t];null!=p&&(null==a||p<a)&&(e=l,a=p)}return e}},{key:\"distinct\",value:function(e){for(var t=this._data,o=Object.keys(t),n=[],a=this._options.type&&this._options.type[e]||null,r=0,s=0,d=o.length;s<d;s++){for(var l=o[s],p=t[l],m=p[e],u=!1,c=0;c<r;c++)if(n[c]==m){u=!0;break}u||void 0===m||(n[r]=m,r++)}if(a)for(var g=0,h=n.length;g<h;g++)n[g]=Re(n[g],a);return n}},{key:\"_addItem\",value:function(e){var t=e[this._idProp];if(null==t)t=Te(),e[this._idProp]=t;else if(this._data[t])throw new Error(\"Cannot add item: item with id \"+t+\" already exists\");for(var o={},n=Object.keys(e),a=0,r=n.length;a<r;a++){var s=n[a],d=this._type[s];o[s]=Re(e[s],d)}return this._data[t]=o,this.length++,t}},{key:\"_getItem\",value:function(e,t){var o=this._data[e];if(!o)return null;var n=Object.keys(o),a;if(t){a={};for(var r=0,s=n.length;r<s;r++){var d=n[r],l=o[d];a[d]=Re(l,t[d])}}else a=Fe({},o);return null==a[this._idProp]&&(a[this._idProp]=o.id),a}},{key:\"_updateItem\",value:function(e){var t=e[this._idProp];if(null==t)throw new Error(\"Cannot update item: item has no id (item: \"+JSON.stringify(e)+\")\");var o=this._data[t];if(!o)throw new Error(\"Cannot update item: no item with id \"+t+\" found\");for(var n=Object.keys(e),a=0,r=n.length;a<r;a++){var s=n[a],d=this._type[s];o[s]=Re(e[s],d)}return t}}]),t}(an),sn=function(e){function t(e,o){var n;return Mo(this,t),n=Eo(this,Yo(t).call(this)),n.length=0,n._ids={},n._options=o||{},n.listener=n._onEvent.bind(Po(n)),n.setData(e),n}return Ao(t,e),Io(t,[{key:\"setData\",value:function(e){if(this._data){this._data.off&&this._data.off(\"*\",this.listener);var t=this._data.getIds({filter:this._options.filter}),o=this._data.get(t);this._ids={},this.length=0,this._trigger(\"remove\",{items:t,oldData:o})}if(null!=e){this._data=e;for(var n=this._data.getIds({filter:this._options.filter}),a=0,r=n.length,s;a<r;a++)s=n[a],this._ids[s]=!0;this.length=n.length,this._trigger(\"add\",{items:n})}else this._data=new rn;this._data.on&&this._data.on(\"*\",this.listener)}},{key:\"refresh\",value:function(){for(var e=this._data.getIds({filter:this._options.filter}),t=Object.keys(this._ids),o={},n=[],a=[],r=[],s=0,d=e.length,l;s<d;s++)l=e[s],o[l]=!0,this._ids[l]||(n.push(l),this._ids[l]=!0);for(var p=0,m=t.length;p<m;p++){var u=t[p],c=this._data.get(u);null==c?console.error(\"If you see this, report it please.\"):!o[u]&&(a.push(u),r.push(c),delete this._ids[u])}this.length+=n.length-a.length,n.length&&this._trigger(\"add\",{items:n}),a.length&&this._trigger(\"remove\",{items:a,oldData:r})}},{key:\"get\",value:function(e,t){if(null==this._data)return null;var o=null,n;Ne(e)||Array.isArray(e)?(o=e,n=t):n=e;var i=Object.assign({},this._options,n),a=this._options.filter,r=n&&n.filter;return a&&r&&(i.filter=function(e){return a(e)&&r(e)}),null==o?this._data.get(i):this._data.get(o,i)}},{key:\"getIds\",value:function(e){if(this._data.length){var t=this._options.filter,o=null==e?null:e.filter,n;return n=o?t?function(e){return t(e)&&o(e)}:o:t,this._data.getIds({filter:n,order:e&&e.order})}return[]}},{key:\"forEach\",value:function(e,t){if(this._data){var o=this._options.filter,n=t&&t.filter,i;i=n?o?function(e){return o(e)&&n(e)}:n:o,this._data.forEach(e,{filter:i,order:t&&t.order})}}},{key:\"map\",value:function(e,t){if(this._data){var o=this._options.filter,n=t&&t.filter,i;return i=n?o?function(e){return o(e)&&n(e)}:n:o,this._data.map(e,{filter:i,order:t&&t.order})}return[]}},{key:\"getDataSet\",value:function(){return this._data.getDataSet()}},{key:\"_onEvent\",value:function(e,t,o){if(t&&t.items&&this._data){var n=t.items,a=[],r=[],s=[],d=[],l=[],p=[];switch(e){case\"add\":for(var m=0,u=n.length;m<u;m++){var c=n[m],g=this.get(c);g&&(this._ids[c]=!0,a.push(c))}break;case\"update\":for(var h=0,y=n.length;h<y;h++){var f=n[h],b=this.get(f);b?this._ids[f]?(r.push(f),l.push(t.data[h]),d.push(t.oldData[h])):(this._ids[f]=!0,a.push(f)):this._ids[f]&&(delete this._ids[f],s.push(f),p.push(t.oldData[h]))}break;case\"remove\":for(var _=0,v=n.length,k;_<v;_++)k=n[_],this._ids[k]&&(delete this._ids[k],s.push(k),p.push(t.oldData[_]));}this.length+=a.length-s.length,a.length&&this._trigger(\"add\",{items:a},o),r.length&&this._trigger(\"update\",{items:r,oldData:d,data:l},o),s.length&&this._trigger(\"remove\",{items:s,oldData:p},o)}}}]),t}(an),dn=function(){function e(){We(this,e),this.options=null,this.props=null}return ze(e,[{key:\"setOptions\",value:function(e){e&&So.extend(this.options,e)}},{key:\"redraw\",value:function(){return!1}},{key:\"destroy\",value:function(){}},{key:\"_isResized\",value:function(){var e=this.props._previousWidth!==this.props.width||this.props._previousHeight!==this.props.height;return this.props._previousWidth=this.props.width,this.props._previousHeight=this.props.height,e}}]),e}(),ln=Object.freeze({convertHiddenOptions:et,updateHiddenDates:tt,removeDuplicates:ot,printDates:nt,stepOverHiddenDates:it,toScreen:at,toTime:rt,getHiddenDurationBetween:st,getHiddenDurationBeforeStart:dt,correctTimeForHidden:lt,getHiddenDurationBefore:pt,getAccumulatedHiddenDuration:mt,snapAwayFromHidden:ut,getIsHidden:ct}),pn=function(t){function o(t,n){var i;We(this,o),i=Xe(this,Be(o).call(this));var a=e().hours(0).minutes(0).seconds(0).milliseconds(0),r=a.clone().add(-3,\"days\").valueOf(),s=a.clone().add(3,\"days\").valueOf();return i.millisecondsPerPixelCache=void 0,void 0===n?(i.start=r,i.end=s):(i.start=n.start||r,i.end=n.end||s),i.rolling=!1,i.body=t,i.deltaDifference=0,i.scaleOffset=0,i.startToFront=!1,i.endToFront=!0,i.defaultOptions={rtl:!1,start:null,end:null,moment:e,direction:\"horizontal\",moveable:!0,zoomable:!0,min:null,max:null,zoomMin:10,zoomMax:315360000000000,rollingMode:{follow:!1,offset:.5}},i.options=So.extend({},i.defaultOptions),i.props={touch:{}},i.animationTimer=null,i.body.emitter.on(\"panstart\",i._onDragStart.bind(Ze(i))),i.body.emitter.on(\"panmove\",i._onDrag.bind(Ze(i))),i.body.emitter.on(\"panend\",i._onDragEnd.bind(Ze(i))),i.body.emitter.on(\"mousewheel\",i._onMouseWheel.bind(Ze(i))),i.body.emitter.on(\"touch\",i._onTouch.bind(Ze(i))),i.body.emitter.on(\"pinch\",i._onPinch.bind(Ze(i))),i.body.dom.rollingModeBtn.addEventListener(\"click\",i.startRolling.bind(Ze(i))),i.setOptions(n),i}return Ve(o,t),ze(o,[{key:\"setOptions\",value:function(e){if(e){So.selectiveExtend([\"animation\",\"direction\",\"min\",\"max\",\"zoomMin\",\"zoomMax\",\"moveable\",\"zoomable\",\"moment\",\"activate\",\"hiddenDates\",\"zoomKey\",\"zoomFriction\",\"rtl\",\"showCurrentTime\",\"rollingMode\",\"horizontalScroll\"],this.options,e),e.rollingMode&&e.rollingMode.follow&&this.startRolling(),(\"start\"in e||\"end\"in e)&&this.setRange(e.start,e.end)}}},{key:\"startRolling\",value:function(){function e(){o.stopRolling(),o.rolling=!0;var n=o.end-o.start,i=So.convert(new Date,\"Date\").valueOf(),t=o.options.rollingMode&&o.options.rollingMode.offset||.5,a=i-n*t,r=i+n*(1-t);o.setRange(a,r,{animation:!1});var s=o.conversion(o.body.domProps.center.width).scale;n=1/s/10,30>n&&(n=30),1e3<n&&(n=1e3),o.body.dom.rollingModeBtn.style.visibility=\"hidden\",o.currentTimeTimer=setTimeout(e,n)}var o=this;e()}},{key:\"stopRolling\",value:function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),this.rolling=!1,this.body.dom.rollingModeBtn.style.visibility=\"visible\")}},{key:\"setRange\",value:function(e,t,o,n,i){o||(o={}),!0!==o.byUser&&(o.byUser=!1);var a=this,r=null==e?null:So.convert(e,\"Date\").valueOf(),d=null==t?null:So.convert(t,\"Date\").valueOf();if(this._cancelAnimation(),this.millisecondsPerPixelCache=void 0,o.animation){var l=this.start,p=this.end,m=\"object\"===je(o.animation)&&\"duration\"in o.animation?o.animation.duration:500,u=\"object\"===je(o.animation)&&\"easingFunction\"in o.animation?o.animation.easingFunction:\"easeInOutQuad\",c=So.easingFunctions[u];if(!c)throw new Error(\"Unknown easing function \".concat(JSON.stringify(u),\". Choose from: \").concat(Object.keys(So.easingFunctions).join(\", \")));var g=new Date().valueOf(),h=!1,y=function t(){if(!a.props.touch.dragging){var u=new Date().valueOf(),y=u-g,b=c(y/m),_=y>m,v=_||null===r?r:l+(r-l)*b,s=_||null===d?d:p+(d-p)*b;f=a._applyRange(v,s),tt(a.options.moment,a.body,a.options.hiddenDates),h=h||f;var e={start:new Date(a.start),end:new Date(a.end),byUser:o.byUser,event:o.event};if(i&&i(b,f,_),f&&a.body.emitter.emit(\"rangechange\",e),!_)a.animationTimer=setTimeout(t,20);else if(h&&(a.body.emitter.emit(\"rangechanged\",e),n))return n()}};return y()}var f=this._applyRange(r,d);if(tt(this.options.moment,this.body,this.options.hiddenDates),f){var b={start:new Date(this.start),end:new Date(this.end),byUser:o.byUser,event:o.event};if(this.body.emitter.emit(\"rangechange\",b),clearTimeout(a.timeoutID),a.timeoutID=setTimeout(function(){a.body.emitter.emit(\"rangechanged\",b)},200),n)return n()}}},{key:\"getMillisecondsPerPixel\",value:function(){return void 0===this.millisecondsPerPixelCache&&(this.millisecondsPerPixelCache=(this.end-this.start)/this.body.dom.center.clientWidth),this.millisecondsPerPixelCache}},{key:\"_cancelAnimation\",value:function(){this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=null)}},{key:\"_applyRange\",value:function(e,t){var o=null==e?this.start:So.convert(e,\"Date\").valueOf(),n=null==t?this.end:So.convert(t,\"Date\").valueOf(),i=null==this.options.max?null:So.convert(this.options.max,\"Date\").valueOf(),a=null==this.options.min?null:So.convert(this.options.min,\"Date\").valueOf(),r;if(isNaN(o)||null===o)throw new Error(\"Invalid start \\\"\".concat(e,\"\\\"\"));if(isNaN(n)||null===n)throw new Error(\"Invalid end \\\"\".concat(t,\"\\\"\"));if(n<o&&(n=o),null!==a&&o<a&&(r=a-o,o+=r,n+=r,null!=i&&n>i&&(n=i)),null!==i&&n>i&&(r=n-i,o-=r,n-=r,null!=a&&o<a&&(o=a)),null!==this.options.zoomMin){var s=parseFloat(this.options.zoomMin);if(0>s&&(s=0),n-o<s){this.end-this.start===s&&o>=this.start-.5&&n<=this.end?(o=this.start,n=this.end):(r=s-(n-o),o-=r/2,n+=r/2)}}if(null!==this.options.zoomMax){var d=parseFloat(this.options.zoomMax);0>d&&(d=0),n-o>d&&(this.end-this.start===d&&o<this.start&&n>this.end?(o=this.start,n=this.end):(r=n-o-d,o+=r/2,n-=r/2))}var l=this.start!=o||this.end!=n;return o>=this.start&&o<=this.end||n>=this.start&&n<=this.end||this.start>=o&&this.start<=n||this.end>=o&&this.end<=n||this.body.emitter.emit(\"checkRangedItems\"),this.start=o,this.end=n,l}},{key:\"getRange\",value:function(){return{start:this.start,end:this.end}}},{key:\"conversion\",value:function(e,t){return o.conversion(this.start,this.end,e,t)}},{key:\"_onDragStart\",value:function(e){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this._isInsideRange(e)&&this.props.touch.allowDragging&&(this.stopRolling(),this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor=\"move\"))}},{key:\"_onDrag\",value:function(e){if(e&&this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging){var t=this.options.direction;gt(t);var o=\"horizontal\"==t?e.deltaX:e.deltaY;o-=this.deltaDifference;var n=this.props.touch.end-this.props.touch.start,i=st(this.body.hiddenDates,this.start,this.end);n-=i;var a=\"horizontal\"==t?this.body.domProps.center.width:this.body.domProps.center.height,r;r=this.options.rtl?o/a*n:-o/a*n;var s=this.props.touch.start+r,d=this.props.touch.end+r,l=ut(this.body.hiddenDates,s,this.previousDelta-o,!0),p=ut(this.body.hiddenDates,d,this.previousDelta-o,!0);if(l!=s||p!=d)return this.deltaDifference+=o,this.props.touch.start=l,this.props.touch.end=p,void this._onDrag(e);this.previousDelta=o,this._applyRange(s,d);var m=new Date(this.start),u=new Date(this.end);this.body.emitter.emit(\"rangechange\",{start:m,end:u,byUser:!0,event:e}),this.body.emitter.emit(\"panmove\")}}},{key:\"_onDragEnd\",value:function(e){this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor=\"auto\"),this.body.emitter.emit(\"rangechanged\",{start:new Date(this.start),end:new Date(this.end),byUser:!0,event:e}))}},{key:\"_onMouseWheel\",value:function(e){var t=0;if((e.wheelDelta?t=e.wheelDelta/120:e.detail?t=-e.detail/3:e.deltaY&&(t=-e.deltaY/3),!(this.options.zoomKey&&!e[this.options.zoomKey]&&this.options.zoomable||!this.options.zoomable&&this.options.moveable))&&this.options.zoomable&&this.options.moveable&&this._isInsideRange(e)&&t){var o=this.options.zoomFriction||5,n;n=0>t?1-t/o:1/(1+t/o);var i;if(this.rolling){var a=this.options.rollingMode&&this.options.rollingMode.offset||.5;i=this.start+(this.end-this.start)*a}else{var r=this.getPointer({x:e.clientX,y:e.clientY},this.body.dom.center);i=this._pointerToDate(r)}this.zoom(n,i,t,e),e.preventDefault()}}},{key:\"_onTouch\",value:function(e){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0,So.preventDefault(e)}},{key:\"_onPinch\",value:function(e){if(this.options.zoomable&&this.options.moveable){So.preventDefault(e),this.props.touch.allowDragging=!1,this.props.touch.center||(this.props.touch.center=this.getPointer(e.center,this.body.dom.center)),this.stopRolling();var t=1/(e.scale+this.scaleOffset),o=this._pointerToDate(this.props.touch.center),n=st(this.body.hiddenDates,this.start,this.end),i=pt(this.options.moment,this.body.hiddenDates,this,o),a=n-i,r=o-i+(this.props.touch.start-(o-i))*t,s=o+a+(this.props.touch.end-(o+a))*t;this.startToFront=0>=1-t,this.endToFront=0>=t-1;var d=ut(this.body.hiddenDates,r,1-t,!0),l=ut(this.body.hiddenDates,s,t-1,!0);(d!=r||l!=s)&&(this.props.touch.start=d,this.props.touch.end=l,this.scaleOffset=1-e.scale,r=d,s=l);this.setRange(r,s,{animation:!1,byUser:!0,event:e}),this.startToFront=!1,this.endToFront=!0}}},{key:\"_isInsideRange\",value:function(e){var t=e.center?e.center.x:e.clientX,o;o=this.options.rtl?t-So.getAbsoluteLeft(this.body.dom.centerContainer):So.getAbsoluteRight(this.body.dom.centerContainer)-t;var n=this.body.util.toTime(o);return n>=this.start&&n<=this.end}},{key:\"_pointerToDate\",value:function(e){var t=this.options.direction,o;if(gt(t),\"horizontal\"==t)return this.body.util.toTime(e.x).valueOf();var n=this.body.domProps.center.height;return o=this.conversion(n),e.y/o.scale+o.offset}},{key:\"getPointer\",value:function(e,t){return this.options.rtl?{x:So.getAbsoluteRight(t)-e.x,y:e.y-So.getAbsoluteTop(t)}:{x:e.x-So.getAbsoluteLeft(t),y:e.y-So.getAbsoluteTop(t)}}},{key:\"zoom\",value:function(e,t,o,n){null==t&&(t=(this.start+this.end)/2);var i=st(this.body.hiddenDates,this.start,this.end),a=pt(this.options.moment,this.body.hiddenDates,this,t),r=i-a,s=t-a+(this.start-(t-a))*e,d=t+r+(this.end-(t+r))*e;this.startToFront=!(0<o),this.endToFront=!(0<-o);var l=ut(this.body.hiddenDates,s,o,!0),p=ut(this.body.hiddenDates,d,-o,!0);(l!=s||p!=d)&&(s=l,d=p);this.setRange(s,d,{animation:!1,byUser:!0,event:n}),this.startToFront=!1,this.endToFront=!0}},{key:\"move\",value:function(e){var t=this.end-this.start,o=this.start+t*e,n=this.end+t*e;this.start=o,this.end=n}},{key:\"moveTo\",value:function(e){var t=(this.start+this.end)/2,o=t-e,n=this.start-o,i=this.end-o;this.setRange(n,i,{animation:!1,byUser:!0,event:null})}}],[{key:\"conversion\",value:function(e,t,o,n){return void 0===n&&(n=0),0!=o&&0!=t-e?{offset:e,scale:o/(t-e-n)}:{offset:0,scale:1}}}]),o}(dn),mn=ht;ht.prototype.on=ht.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks[e]=this._callbacks[e]||[]).push(t),this},ht.prototype.once=function(e,t){function o(){n.off(e,o),t.apply(this,arguments)}var n=this;return this._callbacks=this._callbacks||{},o.fn=t,this.on(e,o),this},ht.prototype.off=ht.prototype.removeListener=ht.prototype.removeAllListeners=ht.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var o=this._callbacks[e];if(!o)return this;if(1==arguments.length)return delete this._callbacks[e],this;for(var n=0,a;n<o.length;n++)if(a=o[n],a===t||a.fn===t){o.splice(n,1);break}return this},ht.prototype.emit=function(e){this._callbacks=this._callbacks||{};var t=[].slice.call(arguments,1),o=this._callbacks[e];if(o){o=o.slice(0);for(var n=0,a=o.length;n<a;++n)o[n].apply(this,t)}return this},ht.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks[e]||[]},ht.prototype.hasListeners=function(e){return!!this.listeners(e).length};var un=\"undefined\"==typeof globalThis?\"undefined\"==typeof window?\"undefined\"==typeof global?\"undefined\"==typeof self?{}:self:global:window:globalThis,cn=ft(function(e){(function(t){e.exports=t()})(function(){var e=null;return function t(o,n){function i(e){return e.match(/[^ ]+/g)}function a(t){if(\"hammer.input\"!==t.type){if(t.srcEvent._handled||(t.srcEvent._handled={}),t.srcEvent._handled[t.type])return;t.srcEvent._handled[t.type]=!0}var o=!1;t.stopPropagation=function(){o=!0};var n=t.srcEvent.stopPropagation.bind(t.srcEvent);\"function\"==typeof n&&(t.srcEvent.stopPropagation=function(){n(),t.stopPropagation()}),t.firstTarget=e;for(var a=e,r;a&&!o;){if(r=a.hammer,r)for(var s=0,d;s<r.length;s++)if(d=r[s]._handlers[t.type],d)for(var l=0;l<d.length&&!o;l++)d[l](t);a=a.parentNode}}var r=n||{preventDefault:!1};if(o.Manager){var s=o,d=function(e,n){var i=Object.create(r);return n&&s.assign(i,n),t(new s(e,i),i)};return s.assign(d,s),d.Manager=function(e,n){var i=Object.create(r);return n&&s.assign(i,n),t(new s.Manager(e,i),i)},d}var l=Object.create(o),p=o.element;return p.hammer||(p.hammer=[]),p.hammer.push(l),o.on(\"hammer.input\",function(t){(!0===r.preventDefault||r.preventDefault===t.pointerType)&&t.preventDefault(),t.isFirst&&(e=t.target)}),l._handlers={},l.on=function(e,t){return i(e).forEach(function(e){var n=l._handlers[e];n||(l._handlers[e]=n=[],o.on(e,a)),n.push(t)}),l},l.off=function(e,t){return i(e).forEach(function(e){var n=l._handlers[e];n&&(n=t?n.filter(function(e){return e!==t}):[],0<n.length?l._handlers[e]=n:(o.off(e,a),delete l._handlers[e]))}),l},l.emit=function(t,n){e=n.target,o.emit(t,n)},l.destroy=function(){var e=o.element.hammer,t=e.indexOf(l);-1!==t&&e.splice(t,1),e.length||delete o.element.hammer,l._handlers={},o.destroy()},l}})}),gn;if(\"undefined\"!=typeof window){var hn=window.Hammer||t;gn=cn(hn,{preventDefault:\"mouse\"})}else gn=function(){return bt()};var yn=gn,fn=function(){function t(o,n,i,a,r){We(this,t),this.moment=e,this.current=this.moment(),this._start=this.moment(),this._end=this.moment(),this.autoScale=!0,this.scale=\"day\",this.step=1,this.setRange(o,n,i),this.switchedDay=!1,this.switchedMonth=!1,this.switchedYear=!1,this.hiddenDates=Array.isArray(a)?a:null==a?[]:[a],this.format=t.FORMAT,this.options=r?r:{}}return ze(t,[{key:\"setMoment\",value:function(e){this.moment=e,this.current=this.moment(this.current.valueOf()),this._start=this.moment(this._start.valueOf()),this._end=this.moment(this._end.valueOf())}},{key:\"setFormat\",value:function(e){var o=So.deepExtend({},t.FORMAT);this.format=So.deepExtend(o,e)}},{key:\"setRange\",value:function(e,t,o){if(!(e instanceof Date)||!(t instanceof Date))throw\"No legal start or end date in method setRange\";this._start=null==e?new Date:this.moment(e.valueOf()),this._end=null==t?new Date:this.moment(t.valueOf()),this.autoScale&&this.setMinimumStep(o)}},{key:\"start\",value:function(){this.current=this._start.clone(),this.roundToMinor()}},{key:\"roundToMinor\",value:function(){switch(\"week\"==this.scale&&this.current.weekday(0),this.scale){case\"year\":this.current.year(this.step*Qt(this.current.year()/this.step)),this.current.month(0);case\"month\":this.current.date(1);case\"week\":case\"day\":case\"weekday\":this.current.hours(0);case\"hour\":this.current.minutes(0);case\"minute\":this.current.seconds(0);case\"second\":this.current.milliseconds(0);}if(1!=this.step)switch(this.scale){case\"millisecond\":this.current.subtract(this.current.milliseconds()%this.step,\"milliseconds\");break;case\"second\":this.current.subtract(this.current.seconds()%this.step,\"seconds\");break;case\"minute\":this.current.subtract(this.current.minutes()%this.step,\"minutes\");break;case\"hour\":this.current.subtract(this.current.hours()%this.step,\"hours\");break;case\"weekday\":case\"day\":this.current.subtract((this.current.date()-1)%this.step,\"day\");break;case\"week\":this.current.subtract(this.current.week()%this.step,\"week\");break;case\"month\":this.current.subtract(this.current.month()%this.step,\"month\");break;case\"year\":this.current.subtract(this.current.year()%this.step,\"year\");break;default:}}},{key:\"hasNext\",value:function(){return this.current.valueOf()<=this._end.valueOf()}},{key:\"next\",value:function(){var e=this.current.valueOf();switch(this.scale){case\"millisecond\":this.current.add(this.step,\"millisecond\");break;case\"second\":this.current.add(this.step,\"second\");break;case\"minute\":this.current.add(this.step,\"minute\");break;case\"hour\":this.current.add(this.step,\"hour\"),6>this.current.month()?this.current.subtract(this.current.hours()%this.step,\"hour\"):0!=this.current.hours()%this.step&&this.current.add(this.step-this.current.hours()%this.step,\"hour\");break;case\"weekday\":case\"day\":this.current.add(this.step,\"day\");break;case\"week\":if(0!==this.current.weekday())this.current.weekday(0),this.current.add(this.step,\"week\");else if(!1===this.options.showMajorLabels)this.current.add(this.step,\"week\");else{var t=this.current.clone();t.add(1,\"week\"),t.isSame(this.current,\"month\")?this.current.add(this.step,\"week\"):(this.current.add(this.step,\"week\"),this.current.date(1))}break;case\"month\":this.current.add(this.step,\"month\");break;case\"year\":this.current.add(this.step,\"year\");break;default:}if(1!=this.step)switch(this.scale){case\"millisecond\":0<this.current.milliseconds()&&this.current.milliseconds()<this.step&&this.current.milliseconds(0);break;case\"second\":0<this.current.seconds()&&this.current.seconds()<this.step&&this.current.seconds(0);break;case\"minute\":0<this.current.minutes()&&this.current.minutes()<this.step&&this.current.minutes(0);break;case\"hour\":0<this.current.hours()&&this.current.hours()<this.step&&this.current.hours(0);break;case\"weekday\":case\"day\":this.current.date()<this.step+1&&this.current.date(1);break;case\"week\":this.current.week()<this.step&&this.current.week(1);break;case\"month\":this.current.month()<this.step&&this.current.month(0);break;case\"year\":break;default:}this.current.valueOf()==e&&(this.current=this._end.clone()),this.switchedDay=!1,this.switchedMonth=!1,this.switchedYear=!1,it(this.moment,this,e)}},{key:\"getCurrent\",value:function(){return this.current.clone()}},{key:\"setScale\",value:function(e){e&&\"string\"==typeof e.scale&&(this.scale=e.scale,this.step=0<e.step?e.step:1,this.autoScale=!1)}},{key:\"setAutoScale\",value:function(e){this.autoScale=e}},{key:\"setMinimumStep\",value:function(e){if(null!=e){var t=2592000000,o=86400000,n=3600000,i=60000,a=1e3,r=1;31104000000000>e&&(this.scale=\"year\",this.step=1e3),15552000000000>e&&(this.scale=\"year\",this.step=500),3110400000000>e&&(this.scale=\"year\",this.step=100),1555200000000>e&&(this.scale=\"year\",this.step=50),311040000000>e&&(this.scale=\"year\",this.step=10),155520000000>e&&(this.scale=\"year\",this.step=5),31104000000>e&&(this.scale=\"year\",this.step=1),3*t>e&&(this.scale=\"month\",this.step=3),t>e&&(this.scale=\"month\",this.step=1),7*o>e&&(this.scale=\"week\",this.step=1),2*o>e&&(this.scale=\"day\",this.step=2),o>e&&(this.scale=\"day\",this.step=1),o/2>e&&(this.scale=\"weekday\",this.step=1),4*n>e&&(this.scale=\"hour\",this.step=4),n>e&&(this.scale=\"hour\",this.step=1),15*i>e&&(this.scale=\"minute\",this.step=15),10*i>e&&(this.scale=\"minute\",this.step=10),5*i>e&&(this.scale=\"minute\",this.step=5),i>e&&(this.scale=\"minute\",this.step=1),15*a>e&&(this.scale=\"second\",this.step=15),10*a>e&&(this.scale=\"second\",this.step=10),5*a>e&&(this.scale=\"second\",this.step=5),a>e&&(this.scale=\"second\",this.step=1),200*r>e&&(this.scale=\"millisecond\",this.step=200),100*r>e&&(this.scale=\"millisecond\",this.step=100),50*r>e&&(this.scale=\"millisecond\",this.step=50),10*r>e&&(this.scale=\"millisecond\",this.step=10),5*r>e&&(this.scale=\"millisecond\",this.step=5),r>e&&(this.scale=\"millisecond\",this.step=1)}}},{key:\"isMajor\",value:function(){if(!0==this.switchedYear)switch(this.scale){case\"year\":case\"month\":case\"week\":case\"weekday\":case\"day\":case\"hour\":case\"minute\":case\"second\":case\"millisecond\":return!0;default:return!1;}else if(!0==this.switchedMonth)switch(this.scale){case\"week\":case\"weekday\":case\"day\":case\"hour\":case\"minute\":case\"second\":case\"millisecond\":return!0;default:return!1;}else if(!0==this.switchedDay)switch(this.scale){case\"millisecond\":case\"second\":case\"minute\":case\"hour\":return!0;default:return!1;}var e=this.moment(this.current);switch(this.scale){case\"millisecond\":return 0==e.milliseconds();case\"second\":return 0==e.seconds();case\"minute\":return 0==e.hours()&&0==e.minutes();case\"hour\":return 0==e.hours();case\"weekday\":case\"day\":return 1==e.date();case\"week\":return 1==e.date();case\"month\":return 0==e.month();case\"year\":return!1;default:return!1;}}},{key:\"getLabelMinor\",value:function(e){if(null==e&&(e=this.current),e instanceof Date&&(e=this.moment(e)),\"function\"==typeof this.format.minorLabels)return this.format.minorLabels(e,this.scale,this.step);var t=this.format.minorLabels[this.scale];switch(this.scale){case\"week\":if(1===e.date()&&0!==e.weekday())return\"\";default:return t&&0<t.length?this.moment(e).format(t):\"\";}}},{key:\"getLabelMajor\",value:function(e){if(null==e&&(e=this.current),e instanceof Date&&(e=this.moment(e)),\"function\"==typeof this.format.majorLabels)return this.format.majorLabels(e,this.scale,this.step);var t=this.format.majorLabels[this.scale];return t&&0<t.length?this.moment(e).format(t):\"\"}},{key:\"getClassName\",value:function(){function e(e){return 0==e/d%2?\" vis-even\":\" vis-odd\"}function t(e){return e.isSame(new Date,\"day\")?\" vis-today\":e.isSame(a().add(1,\"day\"),\"day\")?\" vis-tomorrow\":e.isSame(a().add(-1,\"day\"),\"day\")?\" vis-yesterday\":\"\"}function o(e){return e.isSame(new Date,\"week\")?\" vis-current-week\":\"\"}function n(e){return e.isSame(new Date,\"month\")?\" vis-current-month\":\"\"}function i(e){return e.isSame(new Date,\"year\")?\" vis-current-year\":\"\"}var a=this.moment,r=this.moment(this.current),s=r.locale?r.locale(\"en\"):r.lang(\"en\"),d=this.step,l=[];switch(this.scale){case\"millisecond\":l.push(t(s)),l.push(e(s.milliseconds()));break;case\"second\":l.push(t(s)),l.push(e(s.seconds()));break;case\"minute\":l.push(t(s)),l.push(e(s.minutes()));break;case\"hour\":l.push(\"vis-h\".concat(s.hours()).concat(4==this.step?\"-h\"+(s.hours()+4):\"\")),l.push(t(s)),l.push(e(s.hours()));break;case\"weekday\":l.push(\"vis-\".concat(s.format(\"dddd\").toLowerCase())),l.push(t(s)),l.push(o(s)),l.push(e(s.date()));break;case\"day\":l.push(\"vis-day\".concat(s.date())),l.push(\"vis-\".concat(s.format(\"MMMM\").toLowerCase())),l.push(t(s)),l.push(n(s)),l.push(2>=this.step?t(s):\"\"),l.push(2>=this.step?\"vis-\".concat(s.format(\"dddd\").toLowerCase()):\"\"),l.push(e(s.date()-1));break;case\"week\":l.push(\"vis-week\".concat(s.format(\"w\"))),l.push(o(s)),l.push(e(s.week()));break;case\"month\":l.push(\"vis-\".concat(s.format(\"MMMM\").toLowerCase())),l.push(n(s)),l.push(e(s.month()));break;case\"year\":l.push(\"vis-year\".concat(s.year())),l.push(i(s)),l.push(e(s.year()));}return l.filter(String).join(\" \")}}],[{key:\"snap\",value:function(t,o,n){var i=e(t);if(\"year\"==o){var a=i.year()+qt(i.month()/12);i.year(qt(a/n)*n),i.month(0),i.date(0),i.hours(0),i.minutes(0),i.seconds(0),i.milliseconds(0)}else if(\"month\"==o)15<i.date()?(i.date(1),i.add(1,\"month\")):i.date(1),i.hours(0),i.minutes(0),i.seconds(0),i.milliseconds(0);else if(\"week\"==o)2<i.weekday()?(i.weekday(0),i.add(1,\"week\")):i.weekday(0),i.hours(0),i.minutes(0),i.seconds(0),i.milliseconds(0);else if(\"day\"==o)5===n||2===n?i.hours(24*qt(i.hours()/24)):i.hours(12*qt(i.hours()/12)),i.minutes(0),i.seconds(0),i.milliseconds(0);else if(\"weekday\"==o)5===n||2===n?i.hours(12*qt(i.hours()/12)):i.hours(6*qt(i.hours()/6)),i.minutes(0),i.seconds(0),i.milliseconds(0);else if(\"hour\"==o)4===n?i.minutes(60*qt(i.minutes()/60)):i.minutes(30*qt(i.minutes()/30)),i.seconds(0),i.milliseconds(0);else if(\"minute\"==o)15===n||10===n?(i.minutes(5*qt(i.minutes()/5)),i.seconds(0)):5===n?i.seconds(60*qt(i.seconds()/60)):i.seconds(30*qt(i.seconds()/30)),i.milliseconds(0);else if(\"second\"==o)15===n||10===n?(i.seconds(5*qt(i.seconds()/5)),i.milliseconds(0)):5===n?i.milliseconds(1e3*qt(i.milliseconds()/1e3)):i.milliseconds(500*qt(i.milliseconds()/500));else if(\"millisecond\"==o){var r=5<n?n/2:1;i.milliseconds(qt(i.milliseconds()/r)*r)}return i}}]),t}();fn.FORMAT={minorLabels:{millisecond:\"SSS\",second:\"s\",minute:\"HH:mm\",hour:\"HH:mm\",weekday:\"ddd D\",day:\"D\",week:\"w\",month:\"MMM\",year:\"YYYY\"},majorLabels:{millisecond:\"HH:mm:ss\",second:\"D MMMM HH:mm\",minute:\"ddd D MMMM\",hour:\"ddd D MMMM\",weekday:\"MMMM YYYY\",day:\"MMMM YYYY\",week:\"MMMM YYYY\",month:\"YYYY\",year:\"\"}};var bn=function(t){function o(t,n){var i;return We(this,o),i=Xe(this,Be(o).call(this)),i.dom={foreground:null,lines:[],majorTexts:[],minorTexts:[],redundant:{lines:[],majorTexts:[],minorTexts:[]}},i.props={range:{start:0,end:0,minimumStep:0},lineTop:0},i.defaultOptions={orientation:{axis:\"bottom\"},showMinorLabels:!0,showMajorLabels:!0,maxMinorChars:7,format:fn.FORMAT,moment:e,timeAxis:null},i.options=So.extend({},i.defaultOptions),i.body=t,i._create(),i.setOptions(n),i}return Ve(o,t),ze(o,[{key:\"setOptions\",value:function(t){t&&(So.selectiveExtend([\"showMinorLabels\",\"showMajorLabels\",\"maxMinorChars\",\"hiddenDates\",\"timeAxis\",\"moment\",\"rtl\"],this.options,t),So.selectiveDeepExtend([\"format\"],this.options,t),\"orientation\"in t&&(\"string\"==typeof t.orientation?this.options.orientation.axis=t.orientation:\"object\"===je(t.orientation)&&\"axis\"in t.orientation&&(this.options.orientation.axis=t.orientation.axis)),\"locale\"in t&&(\"function\"==typeof e.locale?e.locale(t.locale):e.lang(t.locale)))}},{key:\"_create\",value:function(){this.dom.foreground=document.createElement(\"div\"),this.dom.background=document.createElement(\"div\"),this.dom.foreground.className=\"vis-time-axis vis-foreground\",this.dom.background.className=\"vis-time-axis vis-background\"}},{key:\"destroy\",value:function(){this.dom.foreground.parentNode&&this.dom.foreground.parentNode.removeChild(this.dom.foreground),this.dom.background.parentNode&&this.dom.background.parentNode.removeChild(this.dom.background),this.body=null}},{key:\"redraw\",value:function(){var e=this.props,t=this.dom.foreground,o=this.dom.background,n=\"top\"==this.options.orientation.axis?this.body.dom.top:this.body.dom.bottom,i=t.parentNode!==n;this._calculateCharSize();var a=this.options.showMinorLabels&&\"none\"!==this.options.orientation.axis,r=this.options.showMajorLabels&&\"none\"!==this.options.orientation.axis;e.minorLabelHeight=a?e.minorCharHeight:0,e.majorLabelHeight=r?e.majorCharHeight:0,e.height=e.minorLabelHeight+e.majorLabelHeight,e.width=t.offsetWidth,e.minorLineHeight=this.body.domProps.root.height-e.majorLabelHeight-(\"top\"==this.options.orientation.axis?this.body.domProps.bottom.height:this.body.domProps.top.height),e.minorLineWidth=1,e.majorLineHeight=e.minorLineHeight+e.majorLabelHeight,e.majorLineWidth=1;var s=t.nextSibling,d=o.nextSibling;return t.parentNode&&t.parentNode.removeChild(t),o.parentNode&&o.parentNode.removeChild(o),t.style.height=\"\".concat(this.props.height,\"px\"),this._repaintLabels(),s?n.insertBefore(t,s):n.appendChild(t),d?this.body.dom.backgroundVertical.insertBefore(o,d):this.body.dom.backgroundVertical.appendChild(o),this._isResized()||i}},{key:\"_repaintLabels\",value:function(){var e=this.options.orientation.axis,t=So.convert(this.body.range.start,\"Number\"),o=So.convert(this.body.range.end,\"Number\"),n=this.body.util.toTime((this.props.minorCharWidth||10)*this.options.maxMinorChars).valueOf(),i=n-pt(this.options.moment,this.body.hiddenDates,this.body.range,n);i-=this.body.util.toTime(0).valueOf();var a=new fn(new Date(t),new Date(o),i,this.body.hiddenDates,this.options);a.setMoment(this.options.moment),this.options.format&&a.setFormat(this.options.format),this.options.timeAxis&&a.setScale(this.options.timeAxis),this.step=a;var r=this.dom;r.redundant.lines=r.lines,r.redundant.majorTexts=r.majorTexts,r.redundant.minorTexts=r.minorTexts,r.lines=[],r.majorTexts=[],r.minorTexts=[];var s=0,d=void 0,l=0,p=1e3,m,u,c,g,h,y,f,b,_;for(a.start(),u=a.getCurrent(),g=this.body.util.toScreen(u);a.hasNext()&&l<p;){switch(l++,h=a.isMajor(),_=a.getClassName(),m=u,c=g,a.next(),u=a.getCurrent(),g=this.body.util.toScreen(u),f=s,s=g-c,a.scale){case\"week\":y=!0;break;default:y=s>=.4*f;}if(this.options.showMinorLabels&&y){var v=this._repaintMinorText(c,a.getLabelMinor(m),e,_);v.style.width=\"\".concat(s,\"px\")}h&&this.options.showMajorLabels?(0<c&&(null==d&&(d=c),v=this._repaintMajorText(c,a.getLabelMajor(m),e,_)),b=this._repaintMajorLine(c,s,e,_)):y?b=this._repaintMinorLine(c,s,e,_):b&&(b.style.width=\"\".concat(parseInt(b.style.width)+s,\"px\"))}if(l!==p||_n||(console.warn(\"Something is wrong with the Timeline scale. Limited drawing of grid lines to \".concat(p,\" lines.\")),_n=!0),this.options.showMajorLabels){var k=this.body.util.toTime(0),w=a.getLabelMajor(k),D=w.length*(this.props.majorCharWidth||10)+10;(null==d||D<d)&&this._repaintMajorText(0,w,e,_)}So.forEach(this.dom.redundant,function(e){for(;e.length;){var t=e.pop();t&&t.parentNode&&t.parentNode.removeChild(t)}})}},{key:\"_repaintMinorText\",value:function(e,t,o,n){var i=this.dom.redundant.minorTexts.shift();if(!i){var a=document.createTextNode(\"\");i=document.createElement(\"div\"),i.appendChild(a),this.dom.foreground.appendChild(i)}return this.dom.minorTexts.push(i),i.innerHTML=t,i.style.top=\"top\"==o?\"\".concat(this.props.majorLabelHeight,\"px\"):\"0\",this.options.rtl?(i.style.left=\"\",i.style.right=\"\".concat(e,\"px\")):i.style.left=\"\".concat(e,\"px\"),i.className=\"vis-text vis-minor \".concat(n),i}},{key:\"_repaintMajorText\",value:function(e,t,o,n){var i=this.dom.redundant.majorTexts.shift();if(!i){var a=document.createElement(\"div\");i=document.createElement(\"div\"),i.appendChild(a),this.dom.foreground.appendChild(i)}return i.childNodes[0].innerHTML=t,i.className=\"vis-text vis-major \".concat(n),i.style.top=\"top\"==o?\"0\":\"\".concat(this.props.minorLabelHeight,\"px\"),this.options.rtl?(i.style.left=\"\",i.style.right=\"\".concat(e,\"px\")):i.style.left=\"\".concat(e,\"px\"),this.dom.majorTexts.push(i),i}},{key:\"_repaintMinorLine\",value:function(e,t,o,n){var i=this.dom.redundant.lines.shift();i||(i=document.createElement(\"div\"),this.dom.background.appendChild(i)),this.dom.lines.push(i);var a=this.props;return i.style.top=\"top\"==o?\"\".concat(a.majorLabelHeight,\"px\"):\"\".concat(this.body.domProps.top.height,\"px\"),i.style.height=\"\".concat(a.minorLineHeight,\"px\"),this.options.rtl?(i.style.left=\"\",i.style.right=\"\".concat(e-a.minorLineWidth/2,\"px\"),i.className=\"vis-grid vis-vertical-rtl vis-minor \".concat(n)):(i.style.left=\"\".concat(e-a.minorLineWidth/2,\"px\"),i.className=\"vis-grid vis-vertical vis-minor \".concat(n)),i.style.width=\"\".concat(t,\"px\"),i}},{key:\"_repaintMajorLine\",value:function(e,t,o,n){var i=this.dom.redundant.lines.shift();i||(i=document.createElement(\"div\"),this.dom.background.appendChild(i)),this.dom.lines.push(i);var a=this.props;return i.style.top=\"top\"==o?\"0\":\"\".concat(this.body.domProps.top.height,\"px\"),this.options.rtl?(i.style.left=\"\",i.style.right=\"\".concat(e-a.majorLineWidth/2,\"px\"),i.className=\"vis-grid vis-vertical-rtl vis-major \".concat(n)):(i.style.left=\"\".concat(e-a.majorLineWidth/2,\"px\"),i.className=\"vis-grid vis-vertical vis-major \".concat(n)),i.style.height=\"\".concat(a.majorLineHeight,\"px\"),i.style.width=\"\".concat(t,\"px\"),i}},{key:\"_calculateCharSize\",value:function(){this.dom.measureCharMinor||(this.dom.measureCharMinor=document.createElement(\"DIV\"),this.dom.measureCharMinor.className=\"vis-text vis-minor vis-measure\",this.dom.measureCharMinor.style.position=\"absolute\",this.dom.measureCharMinor.appendChild(document.createTextNode(\"0\")),this.dom.foreground.appendChild(this.dom.measureCharMinor)),this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight,this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth,this.dom.measureCharMajor||(this.dom.measureCharMajor=document.createElement(\"DIV\"),this.dom.measureCharMajor.className=\"vis-text vis-major vis-measure\",this.dom.measureCharMajor.style.position=\"absolute\",this.dom.measureCharMajor.appendChild(document.createTextNode(\"0\")),this.dom.foreground.appendChild(this.dom.measureCharMajor)),this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight,this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth}}]),o}(dn),_n=!1,vn=ft(function(e){(function(t,o){e.exports=o()})(un,function(){function e(e){var t=String.fromCharCode,o=e&&e.preventDefault||!1,n=e&&e.container||window,a={},r={keydown:{},keyup:{}},s={},d;for(d=97;122>=d;d++)s[t(d)]={code:65+(d-97),shift:!1};for(d=65;90>=d;d++)s[t(d)]={code:d,shift:!0};for(d=0;9>=d;d++)s[\"\"+d]={code:48+d,shift:!1};for(d=1;12>=d;d++)s[\"F\"+d]={code:111+d,shift:!1};for(d=0;9>=d;d++)s[\"num\"+d]={code:96+d,shift:!1};s[\"num*\"]={code:106,shift:!1},s[\"num+\"]={code:107,shift:!1},s[\"num-\"]={code:109,shift:!1},s[\"num/\"]={code:111,shift:!1},s[\"num.\"]={code:110,shift:!1},s.left={code:37,shift:!1},s.up={code:38,shift:!1},s.right={code:39,shift:!1},s.down={code:40,shift:!1},s.space={code:32,shift:!1},s.enter={code:13,shift:!1},s.shift={code:16,shift:void 0},s.esc={code:27,shift:!1},s.backspace={code:8,shift:!1},s.tab={code:9,shift:!1},s.ctrl={code:17,shift:!1},s.alt={code:18,shift:!1},s[\"delete\"]={code:46,shift:!1},s.pageup={code:33,shift:!1},s.pagedown={code:34,shift:!1},s[\"=\"]={code:187,shift:!1},s[\"-\"]={code:189,shift:!1},s[\"]\"]={code:221,shift:!1},s[\"[\"]={code:219,shift:!1};var l=function(e){m(e,\"keydown\")},p=function(e){m(e,\"keyup\")},m=function(e,t){if(void 0!==r[t][e.keyCode]){for(var n=r[t][e.keyCode],a=0;a<n.length;a++)void 0===n[a].shift?n[a].fn(e):!0==n[a].shift&&!0==e.shiftKey?n[a].fn(e):!1==n[a].shift&&!1==e.shiftKey&&n[a].fn(e);!0==o&&e.preventDefault()}};return a.bind=function(e,t,o){if(void 0===o&&(o=\"keydown\"),void 0===s[e])throw new Error(\"unsupported key: \"+e);void 0===r[o][s[e].code]&&(r[o][s[e].code]=[]),r[o][s[e].code].push({fn:t,shift:s[e].shift})},a.bindAll=function(e,t){for(var o in void 0===t&&(t=\"keydown\"),s)s.hasOwnProperty(o)&&a.bind(o,e,t)},a.getKey=function(e){for(var t in s)if(s.hasOwnProperty(t)){if(!0==e.shiftKey&&!0==s[t].shift&&e.keyCode==s[t].code)return t;if(!1==e.shiftKey&&!1==s[t].shift&&e.keyCode==s[t].code)return t;if(e.keyCode==s[t].code&&\"shift\"==t)return t}return\"unknown key, currently not supported\"},a.unbind=function(e,t,o){if(void 0===o&&(o=\"keydown\"),void 0===s[e])throw new Error(\"unsupported key: \"+e);if(void 0!==t){var n=[],a=r[o][s[e].code];if(void 0!==a)for(var d=0;d<a.length;d++)(a[d].fn!=t||a[d].shift!=s[e].shift)&&n.push(r[o][s[e].code][d]);r[o][s[e].code]=n}else r[o][s[e].code]=[]},a.reset=function(){r={keydown:{},keyup:{}}},a.destroy=function(){r={keydown:{},keyup:{}},n.removeEventListener(\"keydown\",l,!0),n.removeEventListener(\"keyup\",p,!0)},n.addEventListener(\"keydown\",l,!0),n.addEventListener(\"keyup\",p,!0),a}return e})});mn(wt.prototype),wt.current=null,wt.prototype.destroy=function(){this.deactivate(),this.dom.overlay.parentNode.removeChild(this.dom.overlay),this.onClick&&document.body.removeEventListener(\"click\",this.onClick),this.keycharm!==void 0&&this.keycharm.destroy(),this.keycharm=null,this.hammer.destroy(),this.hammer=null},wt.prototype.activate=function(){wt.current&&wt.current.deactivate(),wt.current=this,this.active=!0,this.dom.overlay.style.display=\"none\",So.addClassName(this.dom.container,\"vis-active\"),this.emit(\"change\"),this.emit(\"activate\"),this.keycharm.bind(\"esc\",this.escListener)},wt.prototype.deactivate=function(){this.active=!1,this.dom.overlay.style.display=\"\",So.removeClassName(this.dom.container,\"vis-active\"),this.keycharm.unbind(\"esc\",this.escListener),this.emit(\"change\"),this.emit(\"deactivate\")},wt.prototype._onTapOverlay=function(e){this.activate(),e.stopPropagation()};var kn=ft(function(e,t){t.en={current:\"current\",time:\"time\"},t.en_EN=t.en,t.en_US=t.en,t.it={current:\"attuale\",time:\"tempo\"},t.it_IT=t.it,t.it_CH=t.it,t.nl={current:\"huidige\",time:\"tijd\"},t.nl_NL=t.nl,t.nl_BE=t.nl,t.de={current:\"Aktuelle\",time:\"Zeit\"},t.de_DE=t.de,t.fr={current:\"actuel\",time:\"heure\"},t.fr_FR=t.fr,t.fr_CA=t.fr,t.fr_BE=t.fr,t.es={current:\"corriente\",time:\"hora\"},t.es_ES=t.es,t.uk={current:\"\\u043F\\u043E\\u0442\\u043E\\u0447\\u043D\\u0438\\u0439\",time:\"\\u0447\\u0430\\u0441\"},t.uk_UA=t.uk,t.ru={current:\"\\u0442\\u0435\\u043A\\u0443\\u0449\\u0435\\u0435\",time:\"\\u0432\\u0440\\u0435\\u043C\\u044F\"},t.ru_RU=t.ru}),wn=function(t){function o(t,n){var i;return We(this,o),i=Xe(this,Be(o).call(this)),i.body=t,i.defaultOptions={moment:e,locales:kn,locale:\"en\",id:void 0,title:void 0},i.options=So.extend({},i.defaultOptions),i.customTime=n&&n.time?n.time:new Date,i.eventParams={},i.setOptions(n),i._create(),i}return Ve(o,t),ze(o,[{key:\"setOptions\",value:function(e){e&&So.selectiveExtend([\"moment\",\"locale\",\"locales\",\"id\",\"title\",\"rtl\"],this.options,e)}},{key:\"_create\",value:function(){function e(t){this.body.range._onMouseWheel(t)}var t=document.createElement(\"div\");t[\"custom-time\"]=this,t.className=\"vis-custom-time \".concat(this.options.id||\"\"),t.style.position=\"absolute\",t.style.top=\"0px\",t.style.height=\"100%\",this.bar=t;var o=document.createElement(\"div\");o.style.position=\"relative\",o.style.top=\"0px\",this.options.rtl?o.style.right=\"-10px\":o.style.left=\"-10px\",o.style.height=\"100%\",o.style.width=\"20px\",o.addEventListener?(o.addEventListener(\"mousewheel\",e.bind(this),!1),o.addEventListener(\"DOMMouseScroll\",e.bind(this),!1)):o.attachEvent(\"onmousewheel\",e.bind(this)),t.appendChild(o),this.hammer=new yn(o),this.hammer.on(\"panstart\",this._onDragStart.bind(this)),this.hammer.on(\"panmove\",this._onDrag.bind(this)),this.hammer.on(\"panend\",this._onDragEnd.bind(this)),this.hammer.get(\"pan\").set({threshold:5,direction:yn.DIRECTION_ALL})}},{key:\"destroy\",value:function(){this.hide(),this.hammer.destroy(),this.hammer=null,this.body=null}},{key:\"redraw\",value:function(){var e=this.body.dom.backgroundVertical;this.bar.parentNode!=e&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),e.appendChild(this.bar));var t=this.body.util.toScreen(this.customTime),o=this.options.locales[this.options.locale];o||(!this.warned&&(console.log(\"WARNING: options.locales['\".concat(this.options.locale,\"'] not found. See http://visjs.org/docs/timeline/#Localization\")),this.warned=!0),o=this.options.locales.en);var n=this.options.title;return void 0===n?(n=\"\".concat(o.time,\": \").concat(this.options.moment(this.customTime).format(\"dddd, MMMM Do YYYY, H:mm:ss\")),n=n.charAt(0).toUpperCase()+n.substring(1)):\"function\"==typeof n&&(n=n.call(this.customTime)),this.options.rtl?this.bar.style.right=\"\".concat(t,\"px\"):this.bar.style.left=\"\".concat(t,\"px\"),this.bar.title=n,!1}},{key:\"hide\",value:function(){this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar)}},{key:\"setCustomTime\",value:function(e){this.customTime=So.convert(e,\"Date\"),this.redraw()}},{key:\"getCustomTime\",value:function(){return new Date(this.customTime.valueOf())}},{key:\"setCustomTitle\",value:function(e){this.options.title=e}},{key:\"_onDragStart\",value:function(e){this.eventParams.dragging=!0,this.eventParams.customTime=this.customTime,e.stopPropagation()}},{key:\"_onDrag\",value:function(e){if(this.eventParams.dragging){var t=this.options.rtl?-1*e.deltaX:e.deltaX,o=this.body.util.toScreen(this.eventParams.customTime)+t,n=this.body.util.toTime(o);this.setCustomTime(n),this.body.emitter.emit(\"timechange\",{id:this.options.id,time:new Date(this.customTime.valueOf()),event:e}),e.stopPropagation()}}},{key:\"_onDragEnd\",value:function(e){this.eventParams.dragging&&(this.body.emitter.emit(\"timechanged\",{id:this.options.id,time:new Date(this.customTime.valueOf()),event:e}),e.stopPropagation())}}],[{key:\"customTimeFromTarget\",value:function(e){for(var t=e.target;t;){if(t.hasOwnProperty(\"custom-time\"))return t[\"custom-time\"];t=t.parentNode}return null}}]),o}(dn),xn=function(){function e(){We(this,e)}return ze(e,[{key:\"_create\",value:function(e){function t(e){this.isActive()&&this.emit(\"mousewheel\",e);var t=0,o=0;if(\"detail\"in e&&(o=-1*e.detail),\"wheelDelta\"in e&&(o=e.wheelDelta),\"wheelDeltaY\"in e&&(o=e.wheelDeltaY),\"wheelDeltaX\"in e&&(t=-1*e.wheelDeltaX),\"axis\"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=-1*o,o=0),\"deltaY\"in e&&(o=-1*e.deltaY),\"deltaX\"in e&&(t=e.deltaX),e.deltaMode&&(1===e.deltaMode?(t*=40,o*=40):(t*=40,o*=800)),this.options.preferZoom){if(!this.options.zoomKey||e[this.options.zoomKey])return;}else if(this.options.zoomKey&&e[this.options.zoomKey])return;if(this.options.verticalScroll||this.options.horizontalScroll)if(this.options.verticalScroll&&Xt(o)>=Xt(t)){var n=this.props.scrollTop,i=n+o;if(this.isActive()){var a=this._setScrollTop(i);a!==n&&(this._redraw(),this.emit(\"scroll\",e),e.preventDefault())}}else if(this.options.horizontalScroll){var r=Xt(t)>=Xt(o)?t:o,s=r/120*(this.range.end-this.range.start)/20,d=this.range.start+s,l=this.range.end+s;this.range.setRange(d,l,{animation:!1,byUser:!0,event:e}),e.preventDefault()}}function o(e){if(a.options.verticalScroll&&(e.preventDefault(),a.isActive())){var t=-e.target.scrollTop;a._setScrollTop(t),a._redraw(),a.emit(\"scrollSide\",e)}}function n(e){if(e.preventDefault&&e.preventDefault(),!!(-1<e.target.className.indexOf(\"timeline\")))return d?void 0:(e.dataTransfer.dropEffect=\"move\",d=!0,!1)}var i=this;this.dom={},this.dom.container=e,this.dom.container.style.position=\"relative\",this.dom.root=document.createElement(\"div\"),this.dom.background=document.createElement(\"div\"),this.dom.backgroundVertical=document.createElement(\"div\"),this.dom.backgroundHorizontal=document.createElement(\"div\"),this.dom.centerContainer=document.createElement(\"div\"),this.dom.leftContainer=document.createElement(\"div\"),this.dom.rightContainer=document.createElement(\"div\"),this.dom.center=document.createElement(\"div\"),this.dom.left=document.createElement(\"div\"),this.dom.right=document.createElement(\"div\"),this.dom.top=document.createElement(\"div\"),this.dom.bottom=document.createElement(\"div\"),this.dom.shadowTop=document.createElement(\"div\"),this.dom.shadowBottom=document.createElement(\"div\"),this.dom.shadowTopLeft=document.createElement(\"div\"),this.dom.shadowBottomLeft=document.createElement(\"div\"),this.dom.shadowTopRight=document.createElement(\"div\"),this.dom.shadowBottomRight=document.createElement(\"div\"),this.dom.rollingModeBtn=document.createElement(\"div\"),this.dom.loadingScreen=document.createElement(\"div\"),this.dom.root.className=\"vis-timeline\",this.dom.background.className=\"vis-panel vis-background\",this.dom.backgroundVertical.className=\"vis-panel vis-background vis-vertical\",this.dom.backgroundHorizontal.className=\"vis-panel vis-background vis-horizontal\",this.dom.centerContainer.className=\"vis-panel vis-center\",this.dom.leftContainer.className=\"vis-panel vis-left\",this.dom.rightContainer.className=\"vis-panel vis-right\",this.dom.top.className=\"vis-panel vis-top\",this.dom.bottom.className=\"vis-panel vis-bottom\",this.dom.left.className=\"vis-content\",this.dom.center.className=\"vis-content\",this.dom.right.className=\"vis-content\",this.dom.shadowTop.className=\"vis-shadow vis-top\",this.dom.shadowBottom.className=\"vis-shadow vis-bottom\",this.dom.shadowTopLeft.className=\"vis-shadow vis-top\",this.dom.shadowBottomLeft.className=\"vis-shadow vis-bottom\",this.dom.shadowTopRight.className=\"vis-shadow vis-top\",this.dom.shadowBottomRight.className=\"vis-shadow vis-bottom\",this.dom.rollingModeBtn.className=\"vis-rolling-mode-btn\",this.dom.loadingScreen.className=\"vis-loading-screen\",this.dom.root.appendChild(this.dom.background),this.dom.root.appendChild(this.dom.backgroundVertical),this.dom.root.appendChild(this.dom.backgroundHorizontal),this.dom.root.appendChild(this.dom.centerContainer),this.dom.root.appendChild(this.dom.leftContainer),this.dom.root.appendChild(this.dom.rightContainer),this.dom.root.appendChild(this.dom.top),this.dom.root.appendChild(this.dom.bottom),this.dom.root.appendChild(this.dom.rollingModeBtn),this.dom.centerContainer.appendChild(this.dom.center),this.dom.leftContainer.appendChild(this.dom.left),this.dom.rightContainer.appendChild(this.dom.right),this.dom.centerContainer.appendChild(this.dom.shadowTop),this.dom.centerContainer.appendChild(this.dom.shadowBottom),this.dom.leftContainer.appendChild(this.dom.shadowTopLeft),this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft),this.dom.rightContainer.appendChild(this.dom.shadowTopRight),this.dom.rightContainer.appendChild(this.dom.shadowBottomRight),this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0},this.on(\"rangechange\",function(){!0===i.initialDrawDone&&i._redraw()}),this.on(\"rangechanged\",function(){i.initialRangeChangeDone||(i.initialRangeChangeDone=!0)}),this.on(\"touch\",this._onTouch.bind(this)),this.on(\"panmove\",this._onDrag.bind(this));var a=this;this._origRedraw=this._redraw.bind(this),this._redraw=So.throttle(this._origRedraw),this.on(\"_change\",function(e){a.itemSet&&a.itemSet.initialItemSetDrawn&&e&&!0==e.queue?a._redraw():a._origRedraw()}),this.hammer=new yn(this.dom.root);var r=this.hammer.get(\"pinch\").set({enable:!0});r&&kt(r),this.hammer.get(\"pan\").set({threshold:5,direction:yn.DIRECTION_ALL}),this.listeners={};[\"tap\",\"doubletap\",\"press\",\"pinch\",\"pan\",\"panstart\",\"panmove\",\"panend\"].forEach(function(e){var t=function(t){a.isActive()&&a.emit(e,t)};a.hammer.on(e,t),a.listeners[e]=t}),_t(this.hammer,function(e){a.emit(\"touch\",e)}),vt(this.hammer,function(e){a.emit(\"release\",e)});var s=\"onwheel\"in document.createElement(\"div\")?\"wheel\":void 0===document.onmousewheel?this.dom.centerContainer.addEventListener?\"DOMMouseScroll\":\"onmousewheel\":\"mousewheel\";this.dom.centerContainer.addEventListener(s,t.bind(this),!1),this.dom.left.parentNode.addEventListener(\"scroll\",o.bind(this)),this.dom.right.parentNode.addEventListener(\"scroll\",o.bind(this));var d=!1;if(this.dom.center.addEventListener(\"dragover\",n.bind(this),!1),this.dom.center.addEventListener(\"drop\",function(e){e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation();try{var t=JSON.parse(e.dataTransfer.getData(\"text\"));if(!t||!t.content)return}catch(e){return!1}return d=!1,e.center={x:e.clientX,y:e.clientY},\"item\"===t.target?a.itemSet._onDropObjectOnItem(e):a.itemSet._onAddItem(e),a.emit(\"drop\",a.getEventProperties(e)),!1}.bind(this),!1),this.customTimes=[],this.touch={},this.redrawCount=0,this.initialDrawDone=!1,this.initialRangeChangeDone=!1,!e)throw new Error(\"No container provided\");e.appendChild(this.dom.root),e.appendChild(this.dom.loadingScreen)}},{key:\"setOptions\",value:function(e){if(e){if(So.selectiveExtend([\"width\",\"height\",\"minHeight\",\"maxHeight\",\"autoResize\",\"start\",\"end\",\"clickToUse\",\"dataAttributes\",\"hiddenDates\",\"locale\",\"locales\",\"moment\",\"preferZoom\",\"rtl\",\"zoomKey\",\"horizontalScroll\",\"verticalScroll\"],this.options,e),this.dom.rollingModeBtn.style.visibility=\"hidden\",this.options.rtl&&(this.dom.container.style.direction=\"rtl\",this.dom.backgroundVertical.className=\"vis-panel vis-background vis-vertical-rtl\"),this.options.verticalScroll&&(this.options.rtl?this.dom.rightContainer.className=\"vis-panel vis-right vis-vertical-scroll\":this.dom.leftContainer.className=\"vis-panel vis-left vis-vertical-scroll\"),\"object\"!==je(this.options.orientation)&&(this.options.orientation={item:void 0,axis:void 0}),\"orientation\"in e&&(\"string\"==typeof e.orientation?this.options.orientation={item:e.orientation,axis:e.orientation}:\"object\"===je(e.orientation)&&(\"item\"in e.orientation&&(this.options.orientation.item=e.orientation.item),\"axis\"in e.orientation&&(this.options.orientation.axis=e.orientation.axis))),\"both\"===this.options.orientation.axis){if(!this.timeAxis2){var t=this.timeAxis2=new bn(this.body);t.setOptions=function(e){var o=e?So.extend({},e):{};o.orientation=\"top\",bn.prototype.setOptions.call(t,o)},this.components.push(t)}}else if(this.timeAxis2){var o=this.components.indexOf(this.timeAxis2);-1!==o&&this.components.splice(o,1),this.timeAxis2.destroy(),this.timeAxis2=null}\"function\"==typeof e.drawPoints&&(e.drawPoints={onRender:e.drawPoints}),\"hiddenDates\"in this.options&&et(this.options.moment,this.body,this.options.hiddenDates),\"clickToUse\"in e&&(e.clickToUse?!this.activator&&(this.activator=new wt(this.dom.root)):this.activator&&(this.activator.destroy(),delete this.activator)),this._initAutoResize()}if(this.components.forEach(function(t){return t.setOptions(e)}),\"configure\"in e){this.configurator||(this.configurator=this._createConfigurator()),this.configurator.setOptions(e.configure);var n=So.deepExtend({},this.options);this.components.forEach(function(e){So.deepExtend(n,e.options)}),this.configurator.setModuleOptions({global:n})}this._redraw()}},{key:\"isActive\",value:function(){return!this.activator||this.activator.active}},{key:\"destroy\",value:function(){for(var e in this.setItems(null),this.setGroups(null),this.off(),this._stopAutoResize(),this.dom.root.parentNode&&this.dom.root.parentNode.removeChild(this.dom.root),this.dom=null,this.activator&&(this.activator.destroy(),delete this.activator),this.listeners)this.listeners.hasOwnProperty(e)&&delete this.listeners[e];this.listeners=null,this.hammer&&this.hammer.destroy(),this.hammer=null,this.components.forEach(function(e){return e.destroy()}),this.body=null}},{key:\"setCustomTime\",value:function(e,t){var o=this.customTimes.filter(function(e){return t===e.options.id});if(0===o.length)throw new Error(\"No custom time bar found with id \".concat(JSON.stringify(t)));0<o.length&&o[0].setCustomTime(e)}},{key:\"getCustomTime\",value:function(e){var t=this.customTimes.filter(function(t){return t.options.id===e});if(0===t.length)throw new Error(\"No custom time bar found with id \".concat(JSON.stringify(e)));return t[0].getCustomTime()}},{key:\"setCustomTimeTitle\",value:function(e,t){var o=this.customTimes.filter(function(e){return e.options.id===t});if(0===o.length)throw new Error(\"No custom time bar found with id \".concat(JSON.stringify(t)));return 0<o.length?o[0].setCustomTitle(e):void 0}},{key:\"getEventProperties\",value:function(e){return{event:e}}},{key:\"addCustomTime\",value:function(e,t){var o=void 0===e?new Date:So.convert(e,\"Date\").valueOf(),n=this.customTimes.some(function(e){return e.options.id===t});if(n)throw new Error(\"A custom time with id \".concat(JSON.stringify(t),\" already exists\"));var i=new wn(this.body,So.extend({},this.options,{time:o,id:t}));return this.customTimes.push(i),this.components.push(i),this._redraw(),t}},{key:\"removeCustomTime\",value:function(e){var t=this,o=this.customTimes.filter(function(t){return t.options.id===e});if(0===o.length)throw new Error(\"No custom time bar found with id \".concat(JSON.stringify(e)));o.forEach(function(e){t.customTimes.splice(t.customTimes.indexOf(e),1),t.components.splice(t.components.indexOf(e),1),e.destroy()})}},{key:\"getVisibleItems\",value:function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]}},{key:\"getVisibleGroups\",value:function(){return this.itemSet&&this.itemSet.getVisibleGroups()||[]}},{key:\"fit\",value:function(e,t){var o=this.getDataRange();if(null!==o.min||null!==o.max){var n=o.max-o.min,i=new Date(o.min.valueOf()-.01*n),a=new Date(o.max.valueOf()+.01*n),r=!(e&&void 0!==e.animation)||e.animation;this.range.setRange(i,a,{animation:r},t)}}},{key:\"getDataRange\",value:function(){throw new Error(\"Cannot invoke abstract method getDataRange\")}},{key:\"setWindow\",value:function(e,t,o,n){\"function\"==typeof arguments[2]&&(n=arguments[2],o={});var i,a;1==arguments.length?(a=arguments[0],i=void 0===a.animation||a.animation,this.range.setRange(a.start,a.end,{animation:i})):2==arguments.length&&\"function\"==typeof arguments[1]?(a=arguments[0],n=arguments[1],i=void 0===a.animation||a.animation,this.range.setRange(a.start,a.end,{animation:i},n)):(i=!(o&&void 0!==o.animation)||o.animation,this.range.setRange(e,t,{animation:i},n))}},{key:\"moveTo\",value:function(e,o,n){\"function\"==typeof arguments[1]&&(n=arguments[1],o={});var i=this.range.end-this.range.start,a=So.convert(e,\"Date\").valueOf(),t=!(o&&void 0!==o.animation)||o.animation;this.range.setRange(a-i/2,a+i/2,{animation:t},n)}},{key:\"getWindow\",value:function(){var e=this.range.getRange();return{start:new Date(e.start),end:new Date(e.end)}}},{key:\"zoomIn\",value:function(e,t,o){if(!(!e||0>e||1<e)){\"function\"==typeof arguments[1]&&(o=arguments[1],t={});var n=this.getWindow(),i=n.start.valueOf(),a=n.end.valueOf(),r=a-i,s=(r-r/(1+e))/2;this.setWindow(i+s,a-s,t,o)}}},{key:\"zoomOut\",value:function(e,t,o){if(!(!e||0>e||1<e)){\"function\"==typeof arguments[1]&&(o=arguments[1],t={});var n=this.getWindow(),i=n.start.valueOf(),a=n.end.valueOf(),r=a-i;this.setWindow(i-r*e/2,a+r*e/2,t,o)}}},{key:\"redraw\",value:function(){this._redraw()}},{key:\"_redraw\",value:function(){this.redrawCount++;var e=!1,t=this.options,o=this.props,n=this.dom;if(n&&n.container&&0!=n.root.offsetWidth){tt(this.options.moment,this.body,this.options.hiddenDates),\"top\"==t.orientation?(So.addClassName(n.root,\"vis-top\"),So.removeClassName(n.root,\"vis-bottom\")):(So.removeClassName(n.root,\"vis-top\"),So.addClassName(n.root,\"vis-bottom\")),t.rtl?(So.addClassName(n.root,\"vis-rtl\"),So.removeClassName(n.root,\"vis-ltr\")):(So.addClassName(n.root,\"vis-ltr\"),So.removeClassName(n.root,\"vis-rtl\")),n.root.style.maxHeight=So.option.asSize(t.maxHeight,\"\"),n.root.style.minHeight=So.option.asSize(t.minHeight,\"\"),n.root.style.width=So.option.asSize(t.width,\"\"),o.border.left=(n.centerContainer.offsetWidth-n.centerContainer.clientWidth)/2,o.border.right=o.border.left,o.border.top=(n.centerContainer.offsetHeight-n.centerContainer.clientHeight)/2,o.border.bottom=o.border.top,o.borderRootHeight=n.root.offsetHeight-n.root.clientHeight,o.borderRootWidth=n.root.offsetWidth-n.root.clientWidth,0===n.centerContainer.clientHeight&&(o.border.left=o.border.top,o.border.right=o.border.left),0===n.root.clientHeight&&(o.borderRootWidth=o.borderRootHeight),o.center.height=n.center.offsetHeight,o.left.height=n.left.offsetHeight,o.right.height=n.right.offsetHeight,o.top.height=n.top.clientHeight||-o.border.top,o.bottom.height=n.bottom.clientHeight||-o.border.bottom;var i=$t(o.left.height,o.center.height,o.right.height),a=o.top.height+i+o.bottom.height+o.borderRootHeight+o.border.top+o.border.bottom;n.root.style.height=So.option.asSize(t.height,\"\".concat(a,\"px\")),o.root.height=n.root.offsetHeight,o.background.height=o.root.height-o.borderRootHeight;var r=o.root.height-o.top.height-o.bottom.height-o.borderRootHeight;o.centerContainer.height=r,o.leftContainer.height=r,o.rightContainer.height=o.leftContainer.height,o.root.width=n.root.offsetWidth,o.background.width=o.root.width-o.borderRootWidth,this.initialDrawDone||(o.scrollbarWidth=So.getScrollBarWidth()),t.verticalScroll?t.rtl?(o.left.width=n.leftContainer.clientWidth||-o.border.left,o.right.width=n.rightContainer.clientWidth+o.scrollbarWidth||-o.border.right):(o.left.width=n.leftContainer.clientWidth+o.scrollbarWidth||-o.border.left,o.right.width=n.rightContainer.clientWidth||-o.border.right):(o.left.width=n.leftContainer.clientWidth||-o.border.left,o.right.width=n.rightContainer.clientWidth||-o.border.right),this._setDOM();var s=this._updateScrollTop();\"top\"!=t.orientation.item&&(s+=$t(o.centerContainer.height-o.center.height-o.border.top-o.border.bottom,0)),n.center.style.top=\"\".concat(s,\"px\");var d=0==o.scrollTop?\"hidden\":\"\",l=o.scrollTop==o.scrollTopMin?\"hidden\":\"\";n.shadowTop.style.visibility=d,n.shadowBottom.style.visibility=l,n.shadowTopLeft.style.visibility=d,n.shadowBottomLeft.style.visibility=l,n.shadowTopRight.style.visibility=d,n.shadowBottomRight.style.visibility=l,t.verticalScroll&&(n.rightContainer.className=\"vis-panel vis-right vis-vertical-scroll\",n.leftContainer.className=\"vis-panel vis-left vis-vertical-scroll\",n.shadowTopRight.style.visibility=\"hidden\",n.shadowBottomRight.style.visibility=\"hidden\",n.shadowTopLeft.style.visibility=\"hidden\",n.shadowBottomLeft.style.visibility=\"hidden\",n.left.style.top=\"0px\",n.right.style.top=\"0px\"),(!t.verticalScroll||o.center.height<o.centerContainer.height)&&(n.left.style.top=\"\".concat(s,\"px\"),n.right.style.top=\"\".concat(s,\"px\"),n.rightContainer.className=n.rightContainer.className.replace(/(?:^|\\s)vis-vertical-scroll(?:\\s|$)/,\" \"),n.leftContainer.className=n.leftContainer.className.replace(/(?:^|\\s)vis-vertical-scroll(?:\\s|$)/,\" \"),o.left.width=n.leftContainer.clientWidth||-o.border.left,o.right.width=n.rightContainer.clientWidth||-o.border.right,this._setDOM());var p=o.center.height>o.centerContainer.height;this.hammer.get(\"pan\").set({direction:p?yn.DIRECTION_ALL:yn.DIRECTION_HORIZONTAL}),this.components.forEach(function(t){e=t.redraw()||e});if(e){if(5>this.redrawCount)return void this.body.emitter.emit(\"_change\");console.log(\"WARNING: infinite loop in redraw?\")}else this.redrawCount=0;this.body.emitter.emit(\"changed\")}}},{key:\"_setDOM\",value:function(){var e=this.props,t=this.dom;e.leftContainer.width=e.left.width,e.rightContainer.width=e.right.width;var o=e.root.width-e.left.width-e.right.width-e.borderRootWidth;e.center.width=o,e.centerContainer.width=o,e.top.width=o,e.bottom.width=o,t.background.style.height=\"\".concat(e.background.height,\"px\"),t.backgroundVertical.style.height=\"\".concat(e.background.height,\"px\"),t.backgroundHorizontal.style.height=\"\".concat(e.centerContainer.height,\"px\"),t.centerContainer.style.height=\"\".concat(e.centerContainer.height,\"px\"),t.leftContainer.style.height=\"\".concat(e.leftContainer.height,\"px\"),t.rightContainer.style.height=\"\".concat(e.rightContainer.height,\"px\"),t.background.style.width=\"\".concat(e.background.width,\"px\"),t.backgroundVertical.style.width=\"\".concat(e.centerContainer.width,\"px\"),t.backgroundHorizontal.style.width=\"\".concat(e.background.width,\"px\"),t.centerContainer.style.width=\"\".concat(e.center.width,\"px\"),t.top.style.width=\"\".concat(e.top.width,\"px\"),t.bottom.style.width=\"\".concat(e.bottom.width,\"px\"),t.background.style.left=\"0\",t.background.style.top=\"0\",t.backgroundVertical.style.left=\"\".concat(e.left.width+e.border.left,\"px\"),t.backgroundVertical.style.top=\"0\",t.backgroundHorizontal.style.left=\"0\",t.backgroundHorizontal.style.top=\"\".concat(e.top.height,\"px\"),t.centerContainer.style.left=\"\".concat(e.left.width,\"px\"),t.centerContainer.style.top=\"\".concat(e.top.height,\"px\"),t.leftContainer.style.left=\"0\",t.leftContainer.style.top=\"\".concat(e.top.height,\"px\"),t.rightContainer.style.left=\"\".concat(e.left.width+e.center.width,\"px\"),t.rightContainer.style.top=\"\".concat(e.top.height,\"px\"),t.top.style.left=\"\".concat(e.left.width,\"px\"),t.top.style.top=\"0\",t.bottom.style.left=\"\".concat(e.left.width,\"px\"),t.bottom.style.top=\"\".concat(e.top.height+e.centerContainer.height,\"px\"),t.center.style.left=\"0\",t.left.style.left=\"0\",t.right.style.left=\"0\"}},{key:\"setCurrentTime\",value:function(e){if(!this.currentTime)throw new Error(\"Option showCurrentTime must be true\");this.currentTime.setCurrentTime(e)}},{key:\"getCurrentTime\",value:function(){if(!this.currentTime)throw new Error(\"Option showCurrentTime must be true\");return this.currentTime.getCurrentTime()}},{key:\"_toTime\",value:function(e){return rt(this,e,this.props.center.width)}},{key:\"_toGlobalTime\",value:function(e){return rt(this,e,this.props.root.width)}},{key:\"_toScreen\",value:function(e){return at(this,e,this.props.center.width)}},{key:\"_toGlobalScreen\",value:function(e){return at(this,e,this.props.root.width)}},{key:\"_initAutoResize\",value:function(){!0==this.options.autoResize?this._startAutoResize():this._stopAutoResize()}},{key:\"_startAutoResize\",value:function(){var e=this;this._stopAutoResize(),this._onResize=function(){return!0==e.options.autoResize?void(e.dom.root&&(e.dom.root.offsetWidth!=e.props.lastWidth||e.dom.root.offsetHeight!=e.props.lastHeight)&&(e.props.lastWidth=e.dom.root.offsetWidth,e.props.lastHeight=e.dom.root.offsetHeight,e.props.scrollbarWidth=So.getScrollBarWidth(),e.body.emitter.emit(\"_change\"))):void e._stopAutoResize()},So.addEventListener(window,\"resize\",this._onResize),e.dom.root&&(e.props.lastWidth=e.dom.root.offsetWidth,e.props.lastHeight=e.dom.root.offsetHeight),this.watchTimer=setInterval(this._onResize,1e3)}},{key:\"_stopAutoResize\",value:function(){this.watchTimer&&(clearInterval(this.watchTimer),this.watchTimer=void 0),this._onResize&&(So.removeEventListener(window,\"resize\",this._onResize),this._onResize=null)}},{key:\"_onTouch\",value:function(){this.touch.allowDragging=!0,this.touch.initialScrollTop=this.props.scrollTop}},{key:\"_onPinch\",value:function(){this.touch.allowDragging=!1}},{key:\"_onDrag\",value:function(e){if(e&&this.touch.allowDragging){var t=e.deltaY,o=this._getScrollTop(),n=this._setScrollTop(this.touch.initialScrollTop+t);this.options.verticalScroll&&(this.dom.left.parentNode.scrollTop=-this.props.scrollTop,this.dom.right.parentNode.scrollTop=-this.props.scrollTop),n!=o&&this.emit(\"verticalDrag\")}}},{key:\"_setScrollTop\",value:function(e){return this.props.scrollTop=e,this._updateScrollTop(),this.props.scrollTop}},{key:\"_updateScrollTop\",value:function(){var e=Jt(this.props.centerContainer.height-this.props.center.height,0);return e!=this.props.scrollTopMin&&(\"top\"!=this.options.orientation.item&&(this.props.scrollTop+=e-this.props.scrollTopMin),this.props.scrollTopMin=e),0<this.props.scrollTop&&(this.props.scrollTop=0),this.props.scrollTop<e&&(this.props.scrollTop=e),this.options.verticalScroll&&(this.dom.left.parentNode.scrollTop=-this.props.scrollTop,this.dom.right.parentNode.scrollTop=-this.props.scrollTop),this.props.scrollTop}},{key:\"_getScrollTop\",value:function(){return this.props.scrollTop}},{key:\"_createConfigurator\",value:function(){throw new Error(\"Cannot invoke abstract method _createConfigurator\")}}]),e}();mn(xn.prototype);var Dn=function(t){function o(t,n){var i;return We(this,o),i=Xe(this,Be(o).call(this)),i.body=t,i.defaultOptions={rtl:!1,showCurrentTime:!0,alignCurrentTime:void 0,moment:e,locales:kn,locale:\"en\"},i.options=So.extend({},i.defaultOptions),i.offset=0,i._create(),i.setOptions(n),i}return Ve(o,t),ze(o,[{key:\"_create\",value:function(){var e=document.createElement(\"div\");e.className=\"vis-current-time\",e.style.position=\"absolute\",e.style.top=\"0px\",e.style.height=\"100%\",this.bar=e}},{key:\"destroy\",value:function(){this.options.showCurrentTime=!1,this.redraw(),this.body=null}},{key:\"setOptions\",value:function(e){e&&So.selectiveExtend([\"rtl\",\"showCurrentTime\",\"alignCurrentTime\",\"moment\",\"locale\",\"locales\"],this.options,e)}},{key:\"redraw\",value:function(){if(this.options.showCurrentTime){var e=this.body.dom.backgroundVertical;this.bar.parentNode!=e&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),e.appendChild(this.bar),this.start());var t=this.options.moment(new Date().valueOf()+this.offset);this.options.alignCurrentTime&&(t=t.startOf(this.options.alignCurrentTime));var o=this.body.util.toScreen(t),n=this.options.locales[this.options.locale];n||(!this.warned&&(console.log(\"WARNING: options.locales['\".concat(this.options.locale,\"'] not found. See http://visjs.org/docs/timeline/#Localization\")),this.warned=!0),n=this.options.locales.en);var i=\"\".concat(n.current,\" \").concat(n.time,\": \").concat(t.format(\"dddd, MMMM Do YYYY, H:mm:ss\"));i=i.charAt(0).toUpperCase()+i.substring(1),this.options.rtl?this.bar.style.right=\"\".concat(o,\"px\"):this.bar.style.left=\"\".concat(o,\"px\"),this.bar.title=i}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),this.stop();return!1}},{key:\"start\",value:function(){function e(){t.stop();var o=t.body.range.conversion(t.body.domProps.center.width).scale,n=1/o/10;30>n&&(n=30),1e3<n&&(n=1e3),t.redraw(),t.body.emitter.emit(\"currentTimeTick\"),t.currentTimeTimer=setTimeout(e,n)}var t=this;e()}},{key:\"stop\",value:function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)}},{key:\"setCurrentTime\",value:function(e){var o=So.convert(e,\"Date\").valueOf(),t=new Date().valueOf();this.offset=o-t,this.redraw()}},{key:\"getCurrentTime\",value:function(){return new Date(new Date().valueOf()+this.offset)}}]),o}(dn),Sn=.001,Cn=Object.freeze({orderByStart:Dt,orderByEnd:St,stack:Ct,substack:Tt,nostack:Ot,stackSubgroups:Mt,stackSubgroupsWithInnerStack:It,collision:Pt,collisionByTimes:Et}),Tn={UNGROUPED:\"__ungrouped__\",BACKGROUND:\"__background__\"},On=function(){function e(t,o,n){if(We(this,e),this.groupId=t,this.subgroups={},this.subgroupStack={},this.subgroupStackAll=!1,this.doInnerStack=!1,this.shouldBailStackItems=!1,this.subgroupIndex=0,this.subgroupOrderer=o&&o.subgroupOrder,this.itemSet=n,this.isVisible=null,this.stackDirty=!0,o&&o.nestedGroups&&(this.nestedGroups=o.nestedGroups,this.showNested=!1!=o.showNested),o&&o.subgroupStack)if(\"boolean\"==typeof o.subgroupStack)this.doInnerStack=o.subgroupStack,this.subgroupStackAll=o.subgroupStack;else for(var i in o.subgroupStack)this.subgroupStack[i]=o.subgroupStack[i],this.doInnerStack=this.doInnerStack||o.subgroupStack[i];this.heightMode=o&&o.heightMode?o.heightMode:n.options.groupHeightMode,this.nestedInGroup=null,this.dom={},this.props={label:{width:0,height:0}},this.className=null,this.items={},this.visibleItems=[],this.itemsInRange=[],this.orderedItems={byStart:[],byEnd:[]},this.checkRangedItems=!1;var a=this;this.itemSet.body.emitter.on(\"checkRangedItems\",function(){a.checkRangedItems=!0}),this._create(),this.setData(o)}return ze(e,[{key:\"_create\",value:function(){var e=document.createElement(\"div\");e.className=this.itemSet.options.groupEditable.order?\"vis-label draggable\":\"vis-label\",this.dom.label=e;var t=document.createElement(\"div\");t.className=\"vis-inner\",e.appendChild(t),this.dom.inner=t;var o=document.createElement(\"div\");o.className=\"vis-group\",o[\"vis-group\"]=this,this.dom.foreground=o,this.dom.background=document.createElement(\"div\"),this.dom.background.className=\"vis-group\",this.dom.axis=document.createElement(\"div\"),this.dom.axis.className=\"vis-group\",this.dom.marker=document.createElement(\"div\"),this.dom.marker.style.visibility=\"hidden\",this.dom.marker.style.position=\"absolute\",this.dom.marker.innerHTML=\"\",this.dom.background.appendChild(this.dom.marker)}},{key:\"setData\",value:function(e){if(!this.itemSet.groupTouchParams.isDragging){var t,o;if(this.itemSet.options&&this.itemSet.options.groupTemplate?(o=this.itemSet.options.groupTemplate.bind(this),t=o(e,this.dom.inner)):t=e&&e.content,t instanceof Element){for(;this.dom.inner.firstChild;)this.dom.inner.removeChild(this.dom.inner.firstChild);this.dom.inner.appendChild(t)}else if(t instanceof Object&&t.isReactComponent);else t instanceof Object?o(e,this.dom.inner):this.dom.inner.innerHTML=void 0!==t&&null!==t?t:this.groupId||\"\";this.dom.label.title=e&&e.title||\"\",this.dom.inner.firstChild?So.removeClassName(this.dom.inner,\"vis-hidden\"):So.addClassName(this.dom.inner,\"vis-hidden\"),e&&e.nestedGroups?((!this.nestedGroups||this.nestedGroups!=e.nestedGroups)&&(this.nestedGroups=e.nestedGroups),(void 0!==e.showNested||void 0===this.showNested)&&(!1==e.showNested?this.showNested=!1:this.showNested=!0),So.addClassName(this.dom.label,\"vis-nesting-group\"),this.showNested?(So.removeClassName(this.dom.label,\"collapsed\"),So.addClassName(this.dom.label,\"expanded\")):(So.removeClassName(this.dom.label,\"expanded\"),So.addClassName(this.dom.label,\"collapsed\"))):this.nestedGroups&&(this.nestedGroups=null,So.removeClassName(this.dom.label,\"collapsed\"),So.removeClassName(this.dom.label,\"expanded\"),So.removeClassName(this.dom.label,\"vis-nesting-group\")),e&&(e.treeLevel||e.nestedInGroup)?(So.addClassName(this.dom.label,\"vis-nested-group\"),e.treeLevel?So.addClassName(this.dom.label,\"vis-group-level-\"+e.treeLevel):So.addClassName(this.dom.label,\"vis-group-level-unknown-but-gte1\")):So.addClassName(this.dom.label,\"vis-group-level-0\");var n=e&&e.className||null;n!=this.className&&(this.className&&(So.removeClassName(this.dom.label,this.className),So.removeClassName(this.dom.foreground,this.className),So.removeClassName(this.dom.background,this.className),So.removeClassName(this.dom.axis,this.className)),So.addClassName(this.dom.label,n),So.addClassName(this.dom.foreground,n),So.addClassName(this.dom.background,n),So.addClassName(this.dom.axis,n),this.className=n),this.style&&(So.removeCssText(this.dom.label,this.style),this.style=null),e&&e.style&&(So.addCssText(this.dom.label,e.style),this.style=e.style)}}},{key:\"getLabelWidth\",value:function(){return this.props.label.width}},{key:\"_didMarkerHeightChange\",value:function(){var e=this.dom.marker.clientHeight;if(e!=this.lastMarkerHeight){this.lastMarkerHeight=e;var t={},o=0;So.forEach(this.items,function(e,n){if(e.dirty=!0,e.displayed){t[n]=e.redraw(!0),o=t[n].length}});var n=0<o;if(n)for(var a=function(e){So.forEach(t,function(t){t[e]()})},r=0;r<o;r++)a(r);return!0}return!1}},{key:\"_calculateGroupSizeAndPosition\",value:function(){var e=this.dom.foreground.offsetTop,t=this.dom.foreground.offsetLeft,o=this.dom.foreground.offsetWidth;this.top=e,this.right=t,this.width=o}},{key:\"_shouldBailItemsRedraw\",value:function(){var e=this,t=this.itemSet.options.onTimeout,o={relativeBailingTime:this.itemSet.itemsSettingTime,bailTimeMs:t&&t.timeoutMs,userBailFunction:t&&t.callback,shouldBailStackItems:this.shouldBailStackItems},n=null;if(!this.itemSet.initialDrawDone){if(o.shouldBailStackItems)return!0;Xt(new Date-new Date(o.relativeBailingTime))>o.bailTimeMs&&(o.userBailFunction&&null==this.itemSet.userContinueNotBail?o.userBailFunction(function(t){e.itemSet.userContinueNotBail=t,n=!t}):!1==e.itemSet.userContinueNotBail?n=!0:n=!1)}return n}},{key:\"_redrawItems\",value:function(e,t,o,n){var a=this,r=e||this.stackDirty||this.isVisible&&!t;if(r){var s={},d={byEnd:this.orderedItems.byEnd.filter(function(e){return!e.isCluster}),byStart:this.orderedItems.byStart.filter(function(e){return!e.isCluster})},l={byEnd:Ke(new Set(this.orderedItems.byEnd.map(function(e){return e.cluster}).filter(function(e){return!!e}))),byStart:Ke(new Set(this.orderedItems.byStart.map(function(e){return e.cluster}).filter(function(e){return!!e})))},p=function(){var e=a._updateItemsInRange(d,a.visibleItems.filter(function(e){return!e.isCluster}),n),t=a._updateClustersInRange(l,a.visibleItems.filter(function(e){return e.isCluster}),n);return[].concat(Ke(e),Ke(t))};if(\"function\"==typeof this.itemSet.options.order)(function(){var e=a;if(a.doInnerStack&&a.itemSet.options.stackSubgroups){for(var t in a.subgroups)s[t]=a.subgroups[t].items.slice().sort(function(t,o){return e.itemSet.options.order(t.data,o.data)});It(s,o,a.subgroups),a.visibleItems=p()}else{a.visibleItems=p();var n=a.visibleItems.slice().filter(function(e){return e.isCluster||!e.isCluster&&!e.cluster}).sort(function(t,o){return e.itemSet.options.order(t.data,o.data)});a.shouldBailStackItems=Ct(n,o,!0,a._shouldBailItemsRedraw.bind(a))}})();else{var m=this._updateItemsInRange(d,this.visibleItems.filter(function(e){return!e.isCluster}),n),u=this._updateClustersInRange(l,this.visibleItems.filter(function(e){return e.isCluster}),n);if(this.visibleItems=[].concat(Ke(m),Ke(u)),!this.itemSet.options.stack)Ot(this.visibleItems,o,this.subgroups,this.itemSet.options.stackSubgroups);else if(this.doInnerStack&&this.itemSet.options.stackSubgroups){for(var c in this.subgroups)s[c]=this.subgroups[c].items;It(s,o,this.subgroups)}else this.shouldBailStackItems=Ct(this.visibleItems,o,!0,this._shouldBailItemsRedraw.bind(this))}for(var g=0;g<this.visibleItems.length;g++)this.visibleItems[g].repositionX();this.itemSet.options.cluster&&So.forEach(this.items,function(e){e.cluster&&e.displayed&&e.hide()}),this.shouldBailStackItems&&this.itemSet.body.emitter.emit(\"destroyTimeline\"),this.stackDirty=!1}}},{key:\"_didResize\",value:function(e,t){e=So.updateProperty(this,\"height\",t)||e;var o=this.dom.inner.clientWidth,n=this.dom.inner.clientHeight;return e=So.updateProperty(this.props.label,\"width\",o)||e,e=So.updateProperty(this.props.label,\"height\",n)||e,e}},{key:\"_applyGroupHeight\",value:function(e){this.dom.background.style.height=\"\".concat(e,\"px\"),this.dom.foreground.style.height=\"\".concat(e,\"px\"),this.dom.label.style.height=\"\".concat(e,\"px\")}},{key:\"_updateItemsVerticalPosition\",value:function(e){for(var t=0,o=this.visibleItems.length,n;t<o;t++)n=this.visibleItems[t],n.repositionY(e),!this.isVisible&&this.groupId!=Tn.BACKGROUND&&n.displayed&&n.hide()}},{key:\"redraw\",value:function(e,t,o,n){var i=this,a=!1,r=this.isVisible,s=[function(){o=i._didMarkerHeightChange.call(i)||o},this._updateSubGroupHeights.bind(this,t),this._calculateGroupSizeAndPosition.bind(this),function(){i.isVisible=i._isGroupVisible.bind(i)(e,t)},function(){i._redrawItems.bind(i)(o,r,t,e)},this._updateSubgroupsSizes.bind(this),function(){d=i._calculateHeight.bind(i)(t)},this._calculateGroupSizeAndPosition.bind(this),function(){a=i._didResize.bind(i)(a,d)},function(){i._applyGroupHeight.bind(i)(d)},function(){i._updateItemsVerticalPosition.bind(i)(t)},function(){return!i.isVisible&&i.height&&(a=!1),a}.bind(this)],d;if(n)return s;var l;return s.forEach(function(e){l=e()}),l}},{key:\"_updateSubGroupHeights\",value:function(e){if(0<Object.keys(this.subgroups).length){var t=this;this.resetSubgroups(),So.forEach(this.visibleItems,function(o){void 0!==o.data.subgroup&&(t.subgroups[o.data.subgroup].height=$t(t.subgroups[o.data.subgroup].height,o.height+e.item.vertical),t.subgroups[o.data.subgroup].visible=!0)})}}},{key:\"_isGroupVisible\",value:function(e,t){return this.top<=e.body.domProps.centerContainer.height-e.body.domProps.scrollTop+t.axis&&this.top+this.height+t.axis>=-e.body.domProps.scrollTop}},{key:\"_calculateHeight\",value:function(e){var t,o;if(o=\"fixed\"===this.heightMode?So.toArray(this.items):this.visibleItems,0<o.length){var n=o[0].top,i=o[0].top+o[0].height;if(So.forEach(o,function(e){n=Jt(n,e.top),i=$t(i,e.top+e.height)}),n>e.axis){var a=n-e.axis;i-=a,So.forEach(o,function(e){e.top-=a})}t=i+e.item.vertical/2,\"fitItems\"!==this.heightMode&&(t=$t(t,this.props.label.height))}else t=this.props.label.height;return t}},{key:\"show\",value:function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)}},{key:\"hide\",value:function(){var e=this.dom.label;e.parentNode&&e.parentNode.removeChild(e);var t=this.dom.foreground;t.parentNode&&t.parentNode.removeChild(t);var o=this.dom.background;o.parentNode&&o.parentNode.removeChild(o);var n=this.dom.axis;n.parentNode&&n.parentNode.removeChild(n)}},{key:\"add\",value:function(e,t){if(this.items[e.id]=e,e.setParent(this),this.stackDirty=!0,void 0!==e.data.subgroup&&(this._addToSubgroup(e),this.orderSubgroups()),!t&&!this.visibleItems.includes(e)){var o=this.itemSet.body.range;this._checkIfVisible(e,this.visibleItems,o)}}},{key:\"_addToSubgroup\",value:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:e.data.subgroup;null!=t&&void 0===this.subgroups[t]&&(this.subgroups[t]={height:0,top:0,start:e.data.start,end:e.data.end||e.data.start,visible:!1,index:this.subgroupIndex,items:[],stack:this.subgroupStackAll||this.subgroupStack[t]||!1},this.subgroupIndex++),new Date(e.data.start)<new Date(this.subgroups[t].start)&&(this.subgroups[t].start=e.data.start);var o=e.data.end||e.data.start;new Date(o)>new Date(this.subgroups[t].end)&&(this.subgroups[t].end=o),this.subgroups[t].items.push(e)}},{key:\"_updateSubgroupsSizes\",value:function(){var e=this;if(e.subgroups){var t=function(t){var o=e.subgroups[t].items[0].data.end||e.subgroups[t].items[0].data.start,n=e.subgroups[t].items[0].data.start,i=o-1;e.subgroups[t].items.forEach(function(e){new Date(e.data.start)<new Date(n)&&(n=e.data.start);var t=e.data.end||e.data.start;new Date(t)>new Date(i)&&(i=t)}),e.subgroups[t].start=n,e.subgroups[t].end=new Date(i-1)};for(var o in e.subgroups)t(o)}}},{key:\"orderSubgroups\",value:function(){if(void 0!==this.subgroupOrderer){var e=[];if(\"string\"==typeof this.subgroupOrderer){for(var t in this.subgroups)e.push({subgroup:t,sortField:this.subgroups[t].items[0].data[this.subgroupOrderer]});e.sort(function(e,t){return e.sortField-t.sortField})}else if(\"function\"==typeof this.subgroupOrderer){for(var o in this.subgroups)e.push(this.subgroups[o].items[0].data);e.sort(this.subgroupOrderer)}if(0<e.length)for(var n=0;n<e.length;n++)this.subgroups[e[n].subgroup].index=n}}},{key:\"resetSubgroups\",value:function(){for(var e in this.subgroups)this.subgroups.hasOwnProperty(e)&&(this.subgroups[e].visible=!1,this.subgroups[e].height=0)}},{key:\"remove\",value:function(e){delete this.items[e.id],e.setParent(null),this.stackDirty=!0;var t=this.visibleItems.indexOf(e);-1!=t&&this.visibleItems.splice(t,1),void 0!==e.data.subgroup&&(this._removeFromSubgroup(e),this.orderSubgroups())}},{key:\"_removeFromSubgroup\",value:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:e.data.subgroup;if(null!=t){var o=this.subgroups[t];if(o){var n=o.items.indexOf(e);0<=n&&(o.items.splice(n,1),o.items.length?this._updateSubgroupsSizes():delete this.subgroups[t])}}}},{key:\"removeFromDataSet\",value:function(e){this.itemSet.removeItem(e.id)}},{key:\"order\",value:function(){for(var e=So.toArray(this.items),t=[],o=[],n=0;n<e.length;n++)void 0!==e[n].data.end&&o.push(e[n]),t.push(e[n]);this.orderedItems={byStart:t,byEnd:o},Dt(this.orderedItems.byStart),St(this.orderedItems.byEnd)}},{key:\"_updateItemsInRange\",value:function(e,t,o){var n=[],a={};if(!this.isVisible&&this.groupId!=Tn.BACKGROUND){for(var r=0,s;r<t.length;r++)s=t[r],s.displayed&&s.hide();return n}var d=(o.end-o.start)/4,l=o.start-d,p=o.end+d,m=function(e){return e<l?-1:e<=p?0:1};if(0<t.length)for(var u=0;u<t.length;u++)this._checkIfVisibleWithReference(t[u],n,a,o);var c=So.binarySearchCustom(e.byStart,m,\"data\",\"start\");if(this._traceVisible(c,e.byStart,n,a,function(e){return e.data.start<l||e.data.start>p}),!0==this.checkRangedItems){this.checkRangedItems=!1;for(var g=0;g<e.byEnd.length;g++)this._checkIfVisibleWithReference(e.byEnd[g],n,a,o)}else{var h=So.binarySearchCustom(e.byEnd,m,\"data\",\"end\");this._traceVisible(h,e.byEnd,n,a,function(e){return e.data.end<l||e.data.end>p})}for(var y={},f=0,b=0,_;b<n.length;b++)if(_=n[b],!_.displayed){y[b]=_.redraw(!0),f=y[b].length}var v=0<f;if(v)for(var k=function(e){So.forEach(y,function(t){t[e]()})},w=0;w<f;w++)k(w);for(var x=0;x<n.length;x++)n[x].repositionX();return n}},{key:\"_traceVisible\",value:function(e,t,o,n,a){if(-1!=e){for(var r=e,s;0<=r&&(s=t[r],!a(s));r--)s.isCluster&&!s.hasItems()||s.cluster||void 0!==n[s.id]||(n[s.id]=!0,o.push(s));for(var d=e+1,l;d<t.length&&(l=t[d],!a(l));d++)l.isCluster&&!l.hasItems()||l.cluster||void 0!==n[l.id]||(n[l.id]=!0,o.push(l))}}},{key:\"_checkIfVisible\",value:function(e,t,o){e.isVisible(o)?(!e.displayed&&e.show(),e.repositionX(),t.push(e)):e.displayed&&e.hide()}},{key:\"_checkIfVisibleWithReference\",value:function(e,t,o,n){e.isVisible(n)?void 0===o[e.id]&&(o[e.id]=!0,t.push(e)):e.displayed&&e.hide()}},{key:\"_updateClustersInRange\",value:function(e,t,o){var n=[],a={};if(0<t.length)for(var r=0;r<t.length;r++)this._checkIfVisibleWithReference(t[r],n,a,o);for(var s=0;s<e.byStart.length;s++)this._checkIfVisibleWithReference(e.byStart[s],n,a,o);for(var d=0;d<e.byEnd.length;d++)this._checkIfVisibleWithReference(e.byEnd[d],n,a,o);for(var l={},p=0,m=0,u;m<n.length;m++)if(u=n[m],!u.displayed){l[m]=u.redraw(!0),p=l[m].length}var c=0<p;if(c)for(var g=0;g<p;g++)So.forEach(l,function(e){e[g]()});for(var h=0;h<n.length;h++)n[h].repositionX();return n}},{key:\"changeSubgroup\",value:function(e,t,o){this._removeFromSubgroup(e,t),this._addToSubgroup(e,o),this.orderSubgroups()}}]),e}(),Mn=function(e){function t(e,o,n){var i;return We(this,t),i=Xe(this,Be(t).call(this,e,o,n)),i.width=0,i.height=0,i.top=0,i.left=0,i}return Ve(t,e),ze(t,[{key:\"redraw\",value:function(e,t){this.visibleItems=this._updateItemsInRange(this.orderedItems,this.visibleItems,e),this.width=this.dom.background.offsetWidth,this.dom.background.style.height=\"0\";for(var o=0,n=this.visibleItems.length,a;o<n;o++)a=this.visibleItems[o],a.repositionY(t);return!1}},{key:\"show\",value:function(){this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background)}}]),t}(On),In=function(){function t(e,o,n){We(this,t),this.id=null,this.parent=null,this.data=e,this.dom=null,this.conversion=o||{},this.options=n||{},this.selected=!1,this.displayed=!1,this.groupShowing=!0,this.dirty=!0,this.top=null,this.right=null,this.left=null,this.width=null,this.height=null,this.editable=null,this._updateEditStatus()}return ze(t,[{key:\"select\",value:function(){this.selected=!0,this.dirty=!0,this.displayed&&this.redraw()}},{key:\"unselect\",value:function(){this.selected=!1,this.dirty=!0,this.displayed&&this.redraw()}},{key:\"setData\",value:function(e){var t=null!=e.group&&this.data.group!=e.group;t&&null!=this.parent&&this.parent.itemSet._moveToGroup(this,e.group),this.parent&&(this.parent.stackDirty=!0);var o=null!=e.subgroup&&this.data.subgroup!=e.subgroup;o&&null!=this.parent&&this.parent.changeSubgroup(this,this.data.subgroup,e.subgroup),this.data=e,this._updateEditStatus(),this.dirty=!0,this.displayed&&this.redraw()}},{key:\"setParent\",value:function(e){this.displayed?(this.hide(),this.parent=e,this.parent&&this.show()):this.parent=e}},{key:\"isVisible\",value:function(){return!1}},{key:\"show\",value:function(){return!1}},{key:\"hide\",value:function(){return!1}},{key:\"redraw\",value:function(){}},{key:\"repositionX\",value:function(){}},{key:\"repositionY\",value:function(){}},{key:\"_repaintDragCenter\",value:function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragCenter){var e=this,t=document.createElement(\"div\");t.className=\"vis-drag-center\",t.dragCenterItem=this,this.hammerDragCenter=new yn(t),this.hammerDragCenter.on(\"tap\",function(t){e.parent.itemSet.body.emitter.emit(\"click\",{event:t,item:e.id})}),this.hammerDragCenter.on(\"doubletap\",function(t){t.stopPropagation(),e.parent.itemSet._onUpdateItem(e),e.parent.itemSet.body.emitter.emit(\"doubleClick\",{event:t,item:e.id})}),this.hammerDragCenter.on(\"panstart\",e.parent.itemSet._onDragStart.bind(e.parent.itemSet)),this.hammerDragCenter.on(\"panmove\",e.parent.itemSet._onDrag.bind(e.parent.itemSet)),this.hammerDragCenter.on(\"panend\",e.parent.itemSet._onDragEnd.bind(e.parent.itemSet)),this.dom.box?this.dom.dragLeft?this.dom.box.insertBefore(t,this.dom.dragLeft):this.dom.box.appendChild(t):this.dom.point&&this.dom.point.appendChild(t),this.dom.dragCenter=t}else!this.selected&&this.dom.dragCenter&&(this.dom.dragCenter.parentNode&&this.dom.dragCenter.parentNode.removeChild(this.dom.dragCenter),this.dom.dragCenter=null,this.hammerDragCenter&&(this.hammerDragCenter.destroy(),this.hammerDragCenter=null))}},{key:\"_repaintDeleteButton\",value:function(e){var t=(this.options.editable.overrideItems||null==this.editable)&&this.options.editable.remove||!this.options.editable.overrideItems&&null!=this.editable&&this.editable.remove;if(this.selected&&t&&!this.dom.deleteButton){var o=this,n=document.createElement(\"div\");n.className=this.options.rtl?\"vis-delete-rtl\":\"vis-delete\",n.title=\"Delete this item\",this.hammerDeleteButton=new yn(n).on(\"tap\",function(e){e.stopPropagation(),o.parent.removeFromDataSet(o)}),e.appendChild(n),this.dom.deleteButton=n}else!this.selected&&this.dom.deleteButton&&(this.dom.deleteButton.parentNode&&this.dom.deleteButton.parentNode.removeChild(this.dom.deleteButton),this.dom.deleteButton=null,this.hammerDeleteButton&&(this.hammerDeleteButton.destroy(),this.hammerDeleteButton=null))}},{key:\"_repaintOnItemUpdateTimeTooltip\",value:function(t){if(this.options.tooltipOnItemUpdateTime){var o=(this.options.editable.updateTime||!0===this.data.editable)&&!1!==this.data.editable;if(this.selected&&o&&!this.dom.onItemUpdateTimeTooltip){var n=document.createElement(\"div\");n.className=\"vis-onUpdateTime-tooltip\",t.appendChild(n),this.dom.onItemUpdateTimeTooltip=n}else!this.selected&&this.dom.onItemUpdateTimeTooltip&&(this.dom.onItemUpdateTimeTooltip.parentNode&&this.dom.onItemUpdateTimeTooltip.parentNode.removeChild(this.dom.onItemUpdateTimeTooltip),this.dom.onItemUpdateTimeTooltip=null);if(this.dom.onItemUpdateTimeTooltip){this.dom.onItemUpdateTimeTooltip.style.visibility=this.parent.itemSet.touchParams.itemIsDragging?\"visible\":\"hidden\",this.options.rtl?this.dom.onItemUpdateTimeTooltip.style.right=this.dom.content.style.right:this.dom.onItemUpdateTimeTooltip.style.left=this.dom.content.style.left;var i=this.parent.itemSet.body.domProps.scrollTop,a;a=\"top\"==this.options.orientation.item?this.top:this.parent.height-this.top-this.height;var r=a+this.parent.top-50<-i;r?(this.dom.onItemUpdateTimeTooltip.style.bottom=\"\",this.dom.onItemUpdateTimeTooltip.style.top=\"\".concat(this.height+2,\"px\")):(this.dom.onItemUpdateTimeTooltip.style.top=\"\",this.dom.onItemUpdateTimeTooltip.style.bottom=\"\".concat(this.height+2,\"px\"));var s,d;this.options.tooltipOnItemUpdateTime&&this.options.tooltipOnItemUpdateTime.template?(d=this.options.tooltipOnItemUpdateTime.template.bind(this),s=d(this.data)):(s=\"start: \".concat(e(this.data.start).format(\"MM/DD/YYYY hh:mm\")),this.data.end&&(s+=\"<br> end: \".concat(e(this.data.end).format(\"MM/DD/YYYY hh:mm\")))),this.dom.onItemUpdateTimeTooltip.innerHTML=s}}}},{key:\"_getItemData\",value:function(){return this.parent.itemSet.itemsData.get(this.id)}},{key:\"_updateContents\",value:function(e){var t=this._getItemData(),o=this.dom.box||this.dom.point,n=o.getElementsByClassName(\"vis-item-visible-frame\")[0],i,a,r,s,d;if(this.options.visibleFrameTemplate?(d=this.options.visibleFrameTemplate.bind(this),s=d(t,n)):s=\"\",n)if(s instanceof Object&&!(s instanceof Element))d(t,n);else if(a=this._contentToString(this.itemVisibleFrameContent)!==this._contentToString(s),a){if(s instanceof Element)n.innerHTML=\"\",n.appendChild(s);else if(null!=s)n.innerHTML=s;else if(\"background\"!=this.data.type||void 0!==this.data.content)throw new Error(\"Property \\\"content\\\" missing in item \".concat(this.id));this.itemVisibleFrameContent=s}if(this.options.template?(r=this.options.template.bind(this),i=r(t,e,this.data)):i=this.data.content,i instanceof Object&&!(i instanceof Element))r(t,e);else if(a=this._contentToString(this.content)!==this._contentToString(i),a){if(i instanceof Element)e.innerHTML=\"\",e.appendChild(i);else if(null!=i)e.innerHTML=i;else if(\"background\"!=this.data.type||void 0!==this.data.content)throw new Error(\"Property \\\"content\\\" missing in item \".concat(this.id));this.content=i}}},{key:\"_updateDataAttributes\",value:function(e){if(this.options.dataAttributes&&0<this.options.dataAttributes.length){var t=[];if(Array.isArray(this.options.dataAttributes))t=this.options.dataAttributes;else if(\"all\"==this.options.dataAttributes)t=Object.keys(this.data);else return;var o=!0,n=!1,i=void 0;try{for(var a=t[Symbol.iterator](),r;!(o=(r=a.next()).done);o=!0){var s=r.value,d=this.data[s];null==d?e.removeAttribute(\"data-\".concat(s)):e.setAttribute(\"data-\".concat(s),d)}}catch(e){n=!0,i=e}finally{try{o||null==a.return||a.return()}finally{if(n)throw i}}}}},{key:\"_updateStyle\",value:function(e){this.style&&(So.removeCssText(e,this.style),this.style=null),this.data.style&&(So.addCssText(e,this.data.style),this.style=this.data.style)}},{key:\"_contentToString\",value:function(e){return\"string\"==typeof e?e:e&&\"outerHTML\"in e?e.outerHTML:e}},{key:\"_updateEditStatus\",value:function(){this.options&&(\"boolean\"==typeof this.options.editable?this.editable={updateTime:this.options.editable,updateGroup:this.options.editable,remove:this.options.editable}:\"object\"===je(this.options.editable)&&(this.editable={},So.selectiveExtend([\"updateTime\",\"updateGroup\",\"remove\"],this.editable,this.options.editable))),this.options&&this.options.editable&&!0===this.options.editable.overrideItems||!this.data||(\"boolean\"==typeof this.data.editable?this.editable={updateTime:this.data.editable,updateGroup:this.data.editable,remove:this.data.editable}:\"object\"===je(this.data.editable)&&(this.editable={},So.selectiveExtend([\"updateTime\",\"updateGroup\",\"remove\"],this.editable,this.data.editable)))}},{key:\"getWidthLeft\",value:function(){return 0}},{key:\"getWidthRight\",value:function(){return 0}},{key:\"getTitle\",value:function(){if(this.options.tooltip&&this.options.tooltip.template){var e=this.options.tooltip.template.bind(this);return e(this._getItemData(),this.data)}return this.data.title}}]),t}();In.prototype.stack=!0;var Pn=function(e){function t(e,o,n){var i;if(We(this,t),i=Xe(this,Be(t).call(this)),i.props={dot:{width:0,height:0},line:{width:0,height:0}},i.options=n,e&&null==e.start)throw new Error(\"Property \\\"start\\\" missing in item \".concat(e));return In.call(Ze(i),e,o,n),i}return Ve(t,e),ze(t,[{key:\"isVisible\",value:function e(t){if(this.cluster)return!1;var o=this.data.align||this.options.align,n=this.width*t.getMillisecondsPerPixel(),e;return e=\"right\"==o?this.data.start.getTime()>t.start&&this.data.start.getTime()-n<t.end:\"left\"==o?this.data.start.getTime()+n>t.start&&this.data.start.getTime()<t.end:this.data.start.getTime()+n/2>t.start&&this.data.start.getTime()-n/2<t.end,e}},{key:\"_createDomElement\",value:function(){this.dom||(this.dom={},this.dom.box=document.createElement(\"DIV\"),this.dom.content=document.createElement(\"DIV\"),this.dom.content.className=\"vis-item-content\",this.dom.box.appendChild(this.dom.content),this.dom.line=document.createElement(\"DIV\"),this.dom.line.className=\"vis-line\",this.dom.dot=document.createElement(\"DIV\"),this.dom.dot.className=\"vis-dot\",this.dom.box[\"vis-item\"]=this,this.dirty=!0)}},{key:\"_appendDomElement\",value:function(){if(!this.parent)throw new Error(\"Cannot redraw item: no parent attached\");if(!this.dom.box.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error(\"Cannot redraw item: parent has no foreground container element\");e.appendChild(this.dom.box)}if(!this.dom.line.parentNode){var t=this.parent.dom.background;if(!t)throw new Error(\"Cannot redraw item: parent has no background container element\");t.appendChild(this.dom.line)}if(!this.dom.dot.parentNode){var o=this.parent.dom.axis;if(!t)throw new Error(\"Cannot redraw item: parent has no axis container element\");o.appendChild(this.dom.dot)}this.displayed=!0}},{key:\"_updateDirtyDomComponents\",value:function(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var e=this.editable.updateTime||this.editable.updateGroup,t=(this.data.className?\" \"+this.data.className:\"\")+(this.selected?\" vis-selected\":\"\")+(e?\" vis-editable\":\" vis-readonly\");this.dom.box.className=\"vis-item vis-box\".concat(t),this.dom.line.className=\"vis-item vis-line\".concat(t),this.dom.dot.className=\"vis-item vis-dot\".concat(t)}}},{key:\"_getDomComponentsSizes\",value:function(){return{previous:{right:this.dom.box.style.right,left:this.dom.box.style.left},dot:{height:this.dom.dot.offsetHeight,width:this.dom.dot.offsetWidth},line:{width:this.dom.line.offsetWidth},box:{width:this.dom.box.offsetWidth,height:this.dom.box.offsetHeight}}}},{key:\"_updateDomComponentsSizes\",value:function(e){this.options.rtl?this.dom.box.style.right=\"0px\":this.dom.box.style.left=\"0px\",this.props.dot.height=e.dot.height,this.props.dot.width=e.dot.width,this.props.line.width=e.line.width,this.width=e.box.width,this.height=e.box.height,this.options.rtl?this.dom.box.style.right=e.previous.right:this.dom.box.style.left=e.previous.left,this.dirty=!1}},{key:\"_repaintDomAdditionals\",value:function(){this._repaintOnItemUpdateTimeTooltip(this.dom.box),this._repaintDragCenter(),this._repaintDeleteButton(this.dom.box)}},{key:\"redraw\",value:function(e){var t=this,o=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){t.dirty&&(n=t._getDomComponentsSizes())},function(){t.dirty&&t._updateDomComponentsSizes.bind(t)(n)},this._repaintDomAdditionals.bind(this)],n;if(e)return o;var i;return o.forEach(function(e){i=e()}),i}},{key:\"show\",value:function(e){if(!this.displayed)return this.redraw(e)}},{key:\"hide\",value:function(){if(this.displayed){var e=this.dom;e.box.parentNode&&e.box.parentNode.removeChild(e.box),e.line.parentNode&&e.line.parentNode.removeChild(e.line),e.dot.parentNode&&e.dot.parentNode.removeChild(e.dot),this.displayed=!1}}},{key:\"repositionX\",value:function(){var e=this.conversion.toScreen(this.data.start),t=this.options.align;\"right\"==t?this.options.rtl?(this.right=e-this.width,this.dom.box.style.right=\"\".concat(this.right,\"px\"),this.dom.line.style.right=\"\".concat(e-this.props.line.width,\"px\"),this.dom.dot.style.right=\"\".concat(e-this.props.line.width/2-this.props.dot.width/2,\"px\")):(this.left=e-this.width,this.dom.box.style.left=\"\".concat(this.left,\"px\"),this.dom.line.style.left=\"\".concat(e-this.props.line.width,\"px\"),this.dom.dot.style.left=\"\".concat(e-this.props.line.width/2-this.props.dot.width/2,\"px\")):\"left\"==t?this.options.rtl?(this.right=e,this.dom.box.style.right=\"\".concat(this.right,\"px\"),this.dom.line.style.right=\"\".concat(e,\"px\"),this.dom.dot.style.right=\"\".concat(e+this.props.line.width/2-this.props.dot.width/2,\"px\")):(this.left=e,this.dom.box.style.left=\"\".concat(this.left,\"px\"),this.dom.line.style.left=\"\".concat(e,\"px\"),this.dom.dot.style.left=\"\".concat(e+this.props.line.width/2-this.props.dot.width/2,\"px\")):this.options.rtl?(this.right=e-this.width/2,this.dom.box.style.right=\"\".concat(this.right,\"px\"),this.dom.line.style.right=\"\".concat(e-this.props.line.width,\"px\"),this.dom.dot.style.right=\"\".concat(e-this.props.dot.width/2,\"px\")):(this.left=e-this.width/2,this.dom.box.style.left=\"\".concat(this.left,\"px\"),this.dom.line.style.left=\"\".concat(e-this.props.line.width/2,\"px\"),this.dom.dot.style.left=\"\".concat(e-this.props.dot.width/2,\"px\"))}},{key:\"repositionY\",value:function(){var e=this.options.orientation.item,t=this.dom.box,o=this.dom.line,n=this.dom.dot;if(\"top\"==e)t.style.top=\"\".concat(this.top||0,\"px\"),o.style.top=\"0\",o.style.height=\"\".concat(this.parent.top+this.top+1,\"px\"),o.style.bottom=\"\";else{var i=this.parent.itemSet.props.height,a=i-this.parent.top-this.parent.height+this.top;t.style.top=\"\".concat(this.parent.height-this.top-this.height||0,\"px\"),o.style.top=\"\".concat(i-a,\"px\"),o.style.bottom=\"0\"}n.style.top=\"\".concat(-this.props.dot.height/2,\"px\")}},{key:\"getWidthLeft\",value:function(){return this.width/2}},{key:\"getWidthRight\",value:function(){return this.width/2}}]),t}(In),En=function(e){function t(e,o,n){var i;if(We(this,t),i=Xe(this,Be(t).call(this)),i.props={dot:{top:0,width:0,height:0},content:{height:0,marginLeft:0,marginRight:0}},i.options=n,e&&null==e.start)throw new Error(\"Property \\\"start\\\" missing in item \".concat(e));return In.call(Ze(i),e,o,n),i}return Ve(t,e),ze(t,[{key:\"isVisible\",value:function(e){if(this.cluster)return!1;var t=this.width*e.getMillisecondsPerPixel();return this.data.start.getTime()+t>e.start&&this.data.start<e.end}},{key:\"_createDomElement\",value:function(){this.dom||(this.dom={},this.dom.point=document.createElement(\"div\"),this.dom.content=document.createElement(\"div\"),this.dom.content.className=\"vis-item-content\",this.dom.point.appendChild(this.dom.content),this.dom.dot=document.createElement(\"div\"),this.dom.point.appendChild(this.dom.dot),this.dom.point[\"vis-item\"]=this,this.dirty=!0)}},{key:\"_appendDomElement\",value:function(){if(!this.parent)throw new Error(\"Cannot redraw item: no parent attached\");if(!this.dom.point.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error(\"Cannot redraw item: parent has no foreground container element\");e.appendChild(this.dom.point)}this.displayed=!0}},{key:\"_updateDirtyDomComponents\",value:function(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.point),this._updateStyle(this.dom.point);var e=this.editable.updateTime||this.editable.updateGroup,t=(this.data.className?\" \"+this.data.className:\"\")+(this.selected?\" vis-selected\":\"\")+(e?\" vis-editable\":\" vis-readonly\");this.dom.point.className=\"vis-item vis-point\".concat(t),this.dom.dot.className=\"vis-item vis-dot\".concat(t)}}},{key:\"_getDomComponentsSizes\",value:function(){return{dot:{width:this.dom.dot.offsetWidth,height:this.dom.dot.offsetHeight},content:{width:this.dom.content.offsetWidth,height:this.dom.content.offsetHeight},point:{width:this.dom.point.offsetWidth,height:this.dom.point.offsetHeight}}}},{key:\"_updateDomComponentsSizes\",value:function(e){this.props.dot.width=e.dot.width,this.props.dot.height=e.dot.height,this.props.content.height=e.content.height,this.options.rtl?this.dom.content.style.marginRight=\"\".concat(2*this.props.dot.width,\"px\"):this.dom.content.style.marginLeft=\"\".concat(2*this.props.dot.width,\"px\"),this.width=e.point.width,this.height=e.point.height,this.dom.dot.style.top=\"\".concat((this.height-this.props.dot.height)/2,\"px\"),this.options.rtl?this.dom.dot.style.right=\"\".concat(this.props.dot.width/2,\"px\"):this.dom.dot.style.left=\"\".concat(this.props.dot.width/2,\"px\"),this.dirty=!1}},{key:\"_repaintDomAdditionals\",value:function(){this._repaintOnItemUpdateTimeTooltip(this.dom.point),this._repaintDragCenter(),this._repaintDeleteButton(this.dom.point)}},{key:\"redraw\",value:function(e){var t=this,o=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){t.dirty&&(n=t._getDomComponentsSizes())},function(){t.dirty&&t._updateDomComponentsSizes.bind(t)(n)},this._repaintDomAdditionals.bind(this)],n;if(e)return o;var i;return o.forEach(function(e){i=e()}),i}},{key:\"show\",value:function(e){if(!this.displayed)return this.redraw(e)}},{key:\"hide\",value:function(){this.displayed&&(this.dom.point.parentNode&&this.dom.point.parentNode.removeChild(this.dom.point),this.displayed=!1)}},{key:\"repositionX\",value:function(){var e=this.conversion.toScreen(this.data.start);this.options.rtl?(this.right=e-this.props.dot.width,this.dom.point.style.right=\"\".concat(this.right,\"px\")):(this.left=e-this.props.dot.width,this.dom.point.style.left=\"\".concat(this.left,\"px\"))}},{key:\"repositionY\",value:function(){var e=this.options.orientation.item,t=this.dom.point;t.style.top=\"top\"==e?\"\".concat(this.top,\"px\"):\"\".concat(this.parent.height-this.top-this.height,\"px\")}},{key:\"getWidthLeft\",value:function(){return this.props.dot.width}},{key:\"getWidthRight\",value:function(){return this.props.dot.width}}]),t}(In),Yn=function(e){function t(e,o,n){var i;if(We(this,t),i=Xe(this,Be(t).call(this)),i.props={content:{width:0}},i.overflow=!1,i.options=n,e){if(null==e.start)throw new Error(\"Property \\\"start\\\" missing in item \".concat(e.id));if(null==e.end)throw new Error(\"Property \\\"end\\\" missing in item \".concat(e.id))}return In.call(Ze(i),e,o,n),i}return Ve(t,e),ze(t,[{key:\"isVisible\",value:function(e){return!this.cluster&&this.data.start<e.end&&this.data.end>e.start}},{key:\"_createDomElement\",value:function(){this.dom||(this.dom={},this.dom.box=document.createElement(\"div\"),this.dom.frame=document.createElement(\"div\"),this.dom.frame.className=\"vis-item-overflow\",this.dom.box.appendChild(this.dom.frame),this.dom.visibleFrame=document.createElement(\"div\"),this.dom.visibleFrame.className=\"vis-item-visible-frame\",this.dom.box.appendChild(this.dom.visibleFrame),this.dom.content=document.createElement(\"div\"),this.dom.content.className=\"vis-item-content\",this.dom.frame.appendChild(this.dom.content),this.dom.box[\"vis-item\"]=this,this.dirty=!0)}},{key:\"_appendDomElement\",value:function(){if(!this.parent)throw new Error(\"Cannot redraw item: no parent attached\");if(!this.dom.box.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error(\"Cannot redraw item: parent has no foreground container element\");e.appendChild(this.dom.box)}this.displayed=!0}},{key:\"_updateDirtyDomComponents\",value:function(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var e=this.editable.updateTime||this.editable.updateGroup,t=(this.data.className?\" \"+this.data.className:\"\")+(this.selected?\" vis-selected\":\"\")+(e?\" vis-editable\":\" vis-readonly\");this.dom.box.className=this.baseClassName+t,this.dom.content.style.maxWidth=\"none\"}}},{key:\"_getDomComponentsSizes\",value:function(){return this.overflow=\"hidden\"!==window.getComputedStyle(this.dom.frame).overflow,{content:{width:this.dom.content.offsetWidth},box:{height:this.dom.box.offsetHeight}}}},{key:\"_updateDomComponentsSizes\",value:function(e){this.props.content.width=e.content.width,this.height=e.box.height,this.dom.content.style.maxWidth=\"\",this.dirty=!1}},{key:\"_repaintDomAdditionals\",value:function(){this._repaintOnItemUpdateTimeTooltip(this.dom.box),this._repaintDeleteButton(this.dom.box),this._repaintDragCenter(),this._repaintDragLeft(),this._repaintDragRight()}},{key:\"redraw\",value:function(e){var t=this,o=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){t.dirty&&(n=t._getDomComponentsSizes.bind(t)())},function(){t.dirty&&t._updateDomComponentsSizes.bind(t)(n)},this._repaintDomAdditionals.bind(this)],n;if(e)return o;var i;return o.forEach(function(e){i=e()}),i}},{key:\"show\",value:function(e){if(!this.displayed)return this.redraw(e)}},{key:\"hide\",value:function(){if(this.displayed){var e=this.dom.box;e.parentNode&&e.parentNode.removeChild(e),this.displayed=!1}}},{key:\"repositionX\",value:function(e){var t=this.parent.width,o=this.conversion.toScreen(this.data.start),n=this.conversion.toScreen(this.data.end),i=void 0===this.data.align?this.options.align:this.data.align,a,r;!1!==this.data.limitSize&&(void 0===e||!0===e)&&(o<-t&&(o=-t),n>2*t&&(n=2*t));var s=$t(n-o+.5,1);this.overflow?(this.options.rtl?this.right=o:this.left=o,this.width=s+this.props.content.width,r=this.props.content.width):(this.options.rtl?this.right=o:this.left=o,this.width=s,r=Jt(n-o,this.props.content.width)),this.options.rtl?this.dom.box.style.right=\"\".concat(this.right,\"px\"):this.dom.box.style.left=\"\".concat(this.left,\"px\"),this.dom.box.style.width=\"\".concat(s,\"px\"),\"left\"===i?this.options.rtl?this.dom.content.style.right=\"0\":this.dom.content.style.left=\"0\":\"right\"===i?this.options.rtl?this.dom.content.style.right=\"\".concat($t(s-r,0),\"px\"):this.dom.content.style.left=\"\".concat($t(s-r,0),\"px\"):\"center\"===i?this.options.rtl?this.dom.content.style.right=\"\".concat($t((s-r)/2,0),\"px\"):this.dom.content.style.left=\"\".concat($t((s-r)/2,0),\"px\"):(a=this.overflow?0<n?$t(-o,0):-r:0>o?-o:0,this.options.rtl?this.dom.content.style.right=\"\".concat(a,\"px\"):this.dom.content.style.left=\"\".concat(a,\"px\"))}},{key:\"repositionY\",value:function(){var e=this.options.orientation.item,t=this.dom.box;t.style.top=\"top\"==e?\"\".concat(this.top,\"px\"):\"\".concat(this.parent.height-this.top-this.height,\"px\")}},{key:\"_repaintDragLeft\",value:function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragLeft){var e=document.createElement(\"div\");e.className=\"vis-drag-left\",e.dragLeftItem=this,this.dom.box.appendChild(e),this.dom.dragLeft=e}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragLeft||(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)}},{key:\"_repaintDragRight\",value:function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragRight){var e=document.createElement(\"div\");e.className=\"vis-drag-right\",e.dragRightItem=this,this.dom.box.appendChild(e),this.dom.dragRight=e}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragRight||(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)}}]),t}(In);Yn.prototype.baseClassName=\"vis-item vis-range\";var Rn=function(e){function t(e,o,n){var i;if(We(this,t),i=Xe(this,Be(t).call(this)),i.props={content:{width:0}},i.overflow=!1,e){if(null==e.start)throw new Error(\"Property \\\"start\\\" missing in item \".concat(e.id));if(null==e.end)throw new Error(\"Property \\\"end\\\" missing in item \".concat(e.id))}return In.call(Ze(i),e,o,n),i}return Ve(t,e),ze(t,[{key:\"isVisible\",value:function(e){return this.data.start<e.end&&this.data.end>e.start}},{key:\"_createDomElement\",value:function(){this.dom||(this.dom={},this.dom.box=document.createElement(\"div\"),this.dom.frame=document.createElement(\"div\"),this.dom.frame.className=\"vis-item-overflow\",this.dom.box.appendChild(this.dom.frame),this.dom.content=document.createElement(\"div\"),this.dom.content.className=\"vis-item-content\",this.dom.frame.appendChild(this.dom.content),this.dirty=!0)}},{key:\"_appendDomElement\",value:function(){if(!this.parent)throw new Error(\"Cannot redraw item: no parent attached\");if(!this.dom.box.parentNode){var e=this.parent.dom.background;if(!e)throw new Error(\"Cannot redraw item: parent has no background container element\");e.appendChild(this.dom.box)}this.displayed=!0}},{key:\"_updateDirtyDomComponents\",value:function(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var e=(this.data.className?\" \"+this.data.className:\"\")+(this.selected?\" vis-selected\":\"\");this.dom.box.className=this.baseClassName+e}}},{key:\"_getDomComponentsSizes\",value:function(){return this.overflow=\"hidden\"!==window.getComputedStyle(this.dom.content).overflow,{content:{width:this.dom.content.offsetWidth}}}},{key:\"_updateDomComponentsSizes\",value:function(e){this.props.content.width=e.content.width,this.height=0,this.dirty=!1}},{key:\"_repaintDomAdditionals\",value:function(){}},{key:\"redraw\",value:function(e){var t=this,o=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){t.dirty&&(n=t._getDomComponentsSizes.bind(t)())},function(){t.dirty&&t._updateDomComponentsSizes.bind(t)(n)},this._repaintDomAdditionals.bind(this)],n;if(e)return o;var i;return o.forEach(function(e){i=e()}),i}},{key:\"repositionY\",value:function(){var e=this.options.orientation.item,t;if(void 0!==this.data.subgroup){var o=this.data.subgroup;this.dom.box.style.height=\"\".concat(this.parent.subgroups[o].height,\"px\"),this.dom.box.style.top=\"top\"==e?\"\".concat(this.parent.top+this.parent.subgroups[o].top,\"px\"):\"\".concat(this.parent.top+this.parent.height-this.parent.subgroups[o].top-this.parent.subgroups[o].height,\"px\"),this.dom.box.style.bottom=\"\"}else this.parent instanceof Mn?(t=$t(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.bottom=\"bottom\"==e?\"0\":\"\",this.dom.box.style.top=\"top\"==e?\"0\":\"\"):(t=this.parent.height,this.dom.box.style.top=\"\".concat(this.parent.top,\"px\"),this.dom.box.style.bottom=\"\");this.dom.box.style.height=\"\".concat(t,\"px\")}}]),t}(In);Rn.prototype.baseClassName=\"vis-item vis-background\",Rn.prototype.stack=!1,Rn.prototype.show=Yn.prototype.show,Rn.prototype.hide=Yn.prototype.hide,Rn.prototype.repositionX=Yn.prototype.repositionX;var An=function(){function e(t,o){We(this,e),this.container=t,this.overflowMethod=o||\"cap\",this.x=0,this.y=0,this.padding=5,this.hidden=!1,this.frame=document.createElement(\"div\"),this.frame.className=\"vis-tooltip\",this.container.appendChild(this.frame)}return ze(e,[{key:\"setPosition\",value:function(e,t){this.x=parseInt(e),this.y=parseInt(t)}},{key:\"setText\",value:function(e){e instanceof Element?(this.frame.innerHTML=\"\",this.frame.appendChild(e)):this.frame.innerHTML=e}},{key:\"show\",value:function(e){if(void 0===e&&(e=!0),!0===e){var t=this.frame.clientHeight,o=this.frame.clientWidth,n=this.frame.parentNode.clientHeight,i=this.frame.parentNode.clientWidth,a=0,r=0;if(\"flip\"==this.overflowMethod||\"none\"==this.overflowMethod){var s=!1,d=!0;\"flip\"==this.overflowMethod&&(this.y-t<this.padding&&(d=!1),this.x+o>i-this.padding&&(s=!0)),a=s?this.x-o:this.x,r=d?this.y-t:this.y}else r=this.y-t,r+t+this.padding>n&&(r=n-t-this.padding),r<this.padding&&(r=this.padding),a=this.x,a+o+this.padding>i&&(a=i-o-this.padding),a<this.padding&&(a=this.padding);this.frame.style.left=a+\"px\",this.frame.style.top=r+\"px\",this.frame.style.visibility=\"visible\",this.hidden=!1}else this.hide()}},{key:\"hide\",value:function(){this.hidden=!0,this.frame.style.left=\"0\",this.frame.style.top=\"0\",this.frame.style.visibility=\"hidden\"}},{key:\"destroy\",value:function(){this.frame.parentNode.removeChild(this.frame)}}]),e}(),Nn=function(e){function t(e,o,n){var i;if(We(this,t),i=Xe(this,Be(t).call(this)),i.props={content:{width:0,height:0}},i.options=Object.assign({},{fitOnDoubleClick:!0},n,{editable:!1}),!e||null==e.uiItems)throw new Error(\"Property \\\"uiItems\\\" missing in item \"+e.id);return In.call(Ze(i),e,o,i.options),i.id=So.randomUUID(),i.group=e.group,i._setupRange(),i.emitter=i.data.eventEmitter,i.range=i.data.range,i.attached=!1,i.isCluster=!0,i.data.isCluster=!0,i}return Ve(t,e),ze(t,[{key:\"hasItems\",value:function(){return this.data.uiItems&&this.data.uiItems.length&&this.attached}},{key:\"setUiItems\",value:function(e){this.detach(),this.data.uiItems=e,this._setupRange(),this.attach()}},{key:\"isVisible\",value:function(e){var t=this.data.end?this.data.end-this.data.start:0,o=this.width*e.getMillisecondsPerPixel(),n=$t(t,this.data.start.getTime()+o);return this.data.start<e.end&&n>e.start&&this.hasItems()}},{key:\"getData\",value:function(){return{isCluster:!0,id:this.id,items:this.data.items||[],data:this.data}}},{key:\"redraw\",value:function(e){var t=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){this.dirty&&(o=this._getDomComponentsSizes())}.bind(this),function(){this.dirty&&this._updateDomComponentsSizes.bind(this)(o)}.bind(this),this._repaintDomAdditionals.bind(this)],o;if(e)return t;var n;return t.forEach(function(e){n=e()}),n}},{key:\"show\",value:function(){this.displayed||this.redraw()}},{key:\"hide\",value:function(){if(this.displayed){var e=this.dom;e.box.parentNode&&e.box.parentNode.removeChild(e.box),this.options.showStipes&&(e.line.parentNode&&e.line.parentNode.removeChild(e.line),e.dot.parentNode&&e.dot.parentNode.removeChild(e.dot)),this.displayed=!1}}},{key:\"repositionX\",value:function(){var e=this.conversion.toScreen(this.data.start),t=this.data.end?this.conversion.toScreen(this.data.end):0;if(t)this.repositionXWithRanges(e,t);else{var o=void 0===this.data.align?this.options.align:this.data.align;this.repositionXWithoutRanges(e,o)}this.options.showStipes&&(this.dom.line.style.display=this._isStipeVisible()?\"block\":\"none\",this.dom.dot.style.display=this._isStipeVisible()?\"block\":\"none\",this._isStipeVisible()&&this.repositionStype(e,t))}},{key:\"repositionStype\",value:function(e,t){this.dom.line.style.display=\"block\",this.dom.dot.style.display=\"block\",t?(this.dom.line.style.left=this.dom.line.offsetWidth+e+(t-e)/2+\"px\",this.dom.dot.style.left=this.dom.line.offsetWidth+e+(t-e)/2-this.dom.dot.offsetWidth/2+\"px\"):(this.dom.line.style.left=\"\".concat(e,\"px\"),this.dom.dot.style.left=\"\".concat(e-this.dom.dot.offsetWidth/2,\"px\"))}},{key:\"repositionXWithoutRanges\",value:function(e,t){\"right\"==t?this.options.rtl?(this.right=e-this.width,this.dom.box.style.right=this.right+\"px\"):(this.left=e-this.width,this.dom.box.style.left=this.left+\"px\"):\"left\"==t?this.options.rtl?(this.right=e,this.dom.box.style.right=this.right+\"px\"):(this.left=e,this.dom.box.style.left=this.left+\"px\"):this.options.rtl?(this.right=e-this.width/2,this.dom.box.style.right=this.right+\"px\"):(this.left=e-this.width/2,this.dom.box.style.left=this.left+\"px\")}},{key:\"repositionXWithRanges\",value:function(e,t){var o=qt($t(t-e+.5,1));this.options.rtl?this.right=e:this.left=e,this.width=$t(o,this.minWidth||0),this.options.rtl?this.dom.box.style.right=this.right+\"px\":this.dom.box.style.left=this.left+\"px\",this.dom.box.style.width=o+\"px\"}},{key:\"repositionY\",value:function(){var e=this.options.orientation.item,t=this.dom.box;if(t.style.top=\"top\"==e?(this.top||0)+\"px\":(this.parent.height-this.top-this.height||0)+\"px\",this.options.showStipes){if(\"top\"==e)this.dom.line.style.top=\"0\",this.dom.line.style.height=this.parent.top+this.top+1+\"px\",this.dom.line.style.bottom=\"\";else{var o=this.parent.itemSet.props.height,n=o-this.parent.top-this.parent.height+this.top;this.dom.line.style.top=o-n+\"px\",this.dom.line.style.bottom=\"0\"}this.dom.dot.style.top=-this.dom.dot.offsetHeight/2+\"px\"}}},{key:\"getWidthLeft\",value:function(){return this.width/2}},{key:\"getWidthRight\",value:function(){return this.width/2}},{key:\"move\",value:function(){this.repositionX(),this.repositionY()}},{key:\"attach\",value:function(){var e=!0,t=!1,o=void 0;try{for(var n=this.data.uiItems[Symbol.iterator](),i,a;!(e=(i=n.next()).done);e=!0)a=i.value,a.cluster=this}catch(e){t=!0,o=e}finally{try{e||null==n.return||n.return()}finally{if(t)throw o}}this.data.items=this.data.uiItems.map(function(e){return e.data}),this.attached=!0,this.dirty=!0}},{key:\"detach\",value:function(){var e=!!(0<arguments.length&&void 0!==arguments[0])&&arguments[0];if(this.hasItems()){var t=!0,o=!1,n=void 0;try{for(var i=this.data.uiItems[Symbol.iterator](),a,r;!(t=(a=i.next()).done);t=!0)r=a.value,delete r.cluster}catch(e){o=!0,n=e}finally{try{t||null==i.return||i.return()}finally{if(o)throw n}}this.attached=!1,e&&this.group&&(this.group.remove(this),this.group=null),this.data.items=[],this.dirty=!0}}},{key:\"_onDoubleClick\",value:function(){this._fit()}},{key:\"_setupRange\",value:function(){var e=this.data.uiItems.map(function(e){return{start:e.data.start.valueOf(),end:e.data.end?e.data.end.valueOf():e.data.start.valueOf()}});this.data.min=Jt.apply(Math,Ke(e.map(function(e){return Jt(e.start,e.end||e.start)}))),this.data.max=$t.apply(Math,Ke(e.map(function(e){return $t(e.start,e.end||e.start)})));var t=this.data.uiItems.map(function(e){return e.center}),o=t.reduce(function(e,t){return e+t},0)/this.data.uiItems.length;this.data.uiItems.some(function(e){return e.data.end})?(this.data.start=new Date(this.data.min),this.data.end=new Date(this.data.max)):(this.data.start=new Date(o),this.data.end=null)}},{key:\"_getUiItems\",value:function(){var e=this;return this.data.uiItems&&this.data.uiItems.length?this.data.uiItems.filter(function(t){return t.cluster===e}):[]}},{key:\"_createDomElement\",value:function(){this.dom||(this.dom={},this.dom.box=document.createElement(\"DIV\"),this.dom.content=document.createElement(\"DIV\"),this.dom.content.className=\"vis-item-content\",this.dom.box.appendChild(this.dom.content),this.options.showStipes&&(this.dom.line=document.createElement(\"DIV\"),this.dom.line.className=\"vis-cluster-line\",this.dom.line.style.display=\"none\",this.dom.dot=document.createElement(\"DIV\"),this.dom.dot.className=\"vis-cluster-dot\",this.dom.dot.style.display=\"none\"),this.options.fitOnDoubleClick&&(this.dom.box.ondblclick=t.prototype._onDoubleClick.bind(this)),this.dom.box[\"vis-item\"]=this,this.dirty=!0)}},{key:\"_appendDomElement\",value:function(){if(!this.parent)throw new Error(\"Cannot redraw item: no parent attached\");if(!this.dom.box.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error(\"Cannot redraw item: parent has no foreground container element\");e.appendChild(this.dom.box)}var t=this.parent.dom.background;if(this.options.showStipes){if(!this.dom.line.parentNode){if(!t)throw new Error(\"Cannot redraw item: parent has no background container element\");t.appendChild(this.dom.line)}if(!this.dom.dot.parentNode){var o=this.parent.dom.axis;if(!t)throw new Error(\"Cannot redraw item: parent has no axis container element\");o.appendChild(this.dom.dot)}}this.displayed=!0}},{key:\"_updateDirtyDomComponents\",value:function(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var e=this.baseClassName+\" \"+(this.data.className?\" \"+this.data.className:\"\")+(this.selected?\" vis-selected\":\"\")+\" vis-readonly\";this.dom.box.className=\"vis-item \"+e,this.options.showStipes&&(this.dom.line.className=\"vis-item vis-cluster-line \"+(this.selected?\" vis-selected\":\"\"),this.dom.dot.className=\"vis-item vis-cluster-dot \"+(this.selected?\" vis-selected\":\"\")),this.data.end&&(this.dom.content.style.maxWidth=\"none\")}}},{key:\"_getDomComponentsSizes\",value:function(){return{previous:{right:this.dom.box.style.right,left:this.dom.box.style.left},box:{width:this.dom.box.offsetWidth,height:this.dom.box.offsetHeight}}}},{key:\"_updateDomComponentsSizes\",value:function(e){this.options.rtl?this.dom.box.style.right=\"0px\":this.dom.box.style.left=\"0px\",this.data.end?this.minWidth=e.box.width:this.width=e.box.width,this.height=e.box.height,this.options.rtl?this.dom.box.style.right=e.previous.right:this.dom.box.style.left=e.previous.left,this.dirty=!1}},{key:\"_repaintDomAdditionals\",value:function(){this._repaintOnItemUpdateTimeTooltip(this.dom.box)}},{key:\"_isStipeVisible\",value:function(){return this.minWidth>=this.width||!this.data.end}},{key:\"_getFitRange\",value:function(){var e=.05*(this.data.max-this.data.min)/2;return{fitStart:this.data.min-e,fitEnd:this.data.max+e}}},{key:\"_fit\",value:function(){if(this.emitter){var e=this._getFitRange(),t=e.fitStart,o=e.fitEnd,n={start:new Date(t),end:new Date(o),animation:!0};this.emitter.emit(\"fit\",n)}}},{key:\"_getItemData\",value:function(){return this.data}}]),t}(In);Nn.prototype.baseClassName=\"vis-item vis-range vis-cluster\";var Ln={UNGROUPED:\"__ungrouped__\",BACKGROUND:\"__background__\"},Hn=function(){function e(t){We(this,e),this.itemSet=t,this.groups={},this.cache={},this.cache[-1]=[]}return ze(e,[{key:\"createClusterItem\",value:function(e,t,o){var n=new Nn(e,t,o);return n}},{key:\"setItems\",value:function(e,t){this.items=e||[],this.dataChanged=!0,this.applyOnChangedLevel=!1,t&&t.applyOnChangedLevel&&(this.applyOnChangedLevel=t.applyOnChangedLevel)}},{key:\"updateData\",value:function(){this.dataChanged=!0,this.applyOnChangedLevel=!1}},{key:\"getClusters\",value:function(e,t,o){var n=\"boolean\"==typeof o?{}:o,a=n.maxItems,r=n.clusterCriteria;r||(r=function(){return!0}),a=a||1;var s=-1,d=2,p=0;if(0<t){if(1<=t)return[];s=Xt(qt(Bt(100/t)/Bt(d))),p=Xt(Zt(d,s))}if(this.dataChanged){var u=s!=this.cacheLevel,c=!this.applyOnChangedLevel||u;c&&(this._dropLevelsCache(),this._filterData())}this.cacheLevel=s;var g=this.cache[s];if(!g){for(var h in g=[],this.groups)if(this.groups.hasOwnProperty(h))for(var y=this.groups[h],f=y.length,b=0;b<f;){for(var _=y[b],v=1,w=b-1;0<=w&&_.center-y[w].center<p/2;)!y[w].cluster&&r(_.data,y[w].data)&&v++,w--;for(var x=b+1;x<y.length&&y[x].center-_.center<p/2;)r(_.data,y[x].data)&&v++,x++;for(var D=g.length-1;0<=D&&_.center-g[D].center<p;)_.group==g[D].group&&r(_.data,g[D].data)&&v++,D--;if(v>a){for(var S=v-a+1,C=[],T=b;C.length<S&&T<y.length;)r(y[T].data,y[T].data)&&C.push(y[T]),T++;var O=this.itemSet.getGroupId(_.data),M=this.itemSet.groups[O]||this.itemSet.groups[Ln.UNGROUPED],I=this._getClusterForItems(C,M,e,o);g.push(I),b+=S}else delete _.cluster,b+=1}this.cache[s]=g}return g}},{key:\"_filterData\",value:function(){var e={};this.groups=e;for(var t=0,o=Object.values(this.items);t<o.length;t++){var n=o[t],i=n.parent?n.parent.groupId:\"\",a=e[i];a||(a=[],e[i]=a),a.push(n),n.data.start&&(n.data.end?n.center=(n.data.start.valueOf()+n.data.end.valueOf())/2:n.center=n.data.start.valueOf())}for(var r in e)e.hasOwnProperty(r)&&e[r].sort(function(e,t){return e.center-t.center});this.dataChanged=!1}},{key:\"_getClusterForItems\",value:function(e,t,o,n){var i=(o||[]).map(function(e){return{cluster:e,itemsIds:new Set(e.data.uiItems.map(function(e){return e.id}))}}),a;if(i.length){var r=!0,s=!1,d=void 0;try{for(var l=function(){var t=m.value;if(t.itemsIds.size===e.length&&e.every(function(e){return t.itemsIds.has(e.id)}))return a=t.cluster,\"break\"},p=i[Symbol.iterator](),m,u;!(r=(m=p.next()).done)&&(u=l(),\"break\"!==u);r=!0);}catch(e){s=!0,d=e}finally{try{r||null==p.return||p.return()}finally{if(s)throw d}}}if(a)return a.setUiItems(e),a.group!==t&&(a.group&&a.group.remove(a),t&&(t.add(a,!1),a.group=t)),a;var c=n.titleTemplate||\"\",g={toScreen:this.itemSet.body.util.toScreen,toTime:this.itemSet.body.util.toTime},h=\"<div title=\\\"\"+y+\"\\\">\"+e.length+\"</div>\",y=c.replace(/{count}/,e.length),f=Object.assign({},n,this.itemSet.options),b={content:h,title:y,group:t,uiItems:e,eventEmitter:this.itemSet.body.emitter,range:this.itemSet.body.range};return a=this.createClusterItem(b,g,f),t&&(t.add(a,!1),a.group=t),a.attach(),a}},{key:\"_dropLevelsCache\",value:function(){this.cache={},this.cacheLevel=-1,this.cache[this.cacheLevel]=[]}}]),e}(),Gn=\"__ungrouped__\",Fn=\"__background__\",jn=function(e){function t(e,o){var n;We(this,t),n=Xe(this,Be(t).call(this)),n.body=e,n.defaultOptions={type:null,orientation:{item:\"bottom\"},align:\"auto\",stack:!0,stackSubgroups:!0,groupOrderSwap:function(e,t){var o=t.order;t.order=e.order,e.order=o},groupOrder:\"order\",selectable:!0,multiselect:!1,itemsAlwaysDraggable:{item:!1,range:!1},editable:{updateTime:!1,updateGroup:!1,add:!1,remove:!1,overrideItems:!1},groupEditable:{order:!1,add:!1,remove:!1},snap:fn.snap,onDropObjectOnItem:function(e,t,o){o(t)},onAdd:function(e,t){t(e)},onUpdate:function(e,t){t(e)},onMove:function(e,t){t(e)},onRemove:function(e,t){t(e)},onMoving:function(e,t){t(e)},onAddGroup:function(e,t){t(e)},onMoveGroup:function(e,t){t(e)},onRemoveGroup:function(e,t){t(e)},margin:{item:{horizontal:10,vertical:10},axis:20},showTooltips:!0,tooltip:{followMouse:!1,overflowMethod:\"flip\",delay:500},tooltipOnItemUpdateTime:!1},n.options=So.extend({},n.defaultOptions),n.options.rtl=o.rtl,n.options.onTimeout=o.onTimeout,n.itemOptions={type:{start:\"Date\",end:\"Date\"}},n.conversion={toScreen:e.util.toScreen,toTime:e.util.toTime},n.dom={},n.props={},n.hammer=null;var i=Ze(n);return n.itemsData=null,n.groupsData=null,n.itemsSettingTime=null,n.initialItemSetDrawn=!1,n.userContinueNotBail=null,n.itemListeners={add:function(e,t){i._onAdd(t.items),i.options.cluster&&i.clusterGenerator.setItems(i.items,{applyOnChangedLevel:!1}),i.redraw()},update:function(e,t){i._onUpdate(t.items),i.options.cluster&&i.clusterGenerator.setItems(i.items,{applyOnChangedLevel:!1}),i.redraw()},remove:function(e,t){i._onRemove(t.items),i.options.cluster&&i.clusterGenerator.setItems(i.items,{applyOnChangedLevel:!1}),i.redraw()}},n.groupListeners={add:function(e,t,o){if(i._onAddGroups(t.items),i.groupsData&&0<i.groupsData.length){var n=i.groupsData.getDataSet();n.get().forEach(function(e){if(e.nestedGroups){!1!=e.showNested&&(e.showNested=!0);var t=[];e.nestedGroups.forEach(function(o){var i=n.get(o);i&&(i.nestedInGroup=e.id,!1==e.showNested&&(i.visible=!1),t=t.concat(i))}),n.update(t,o)}})}},update:function(e,t){i._onUpdateGroups(t.items)},remove:function(e,t){i._onRemoveGroups(t.items)}},n.items={},n.groups={},n.groupIds=[],n.selection=[],n.popup=null,n.popupTimer=null,n.touchParams={},n.groupTouchParams={group:null,isDragging:!1},n._create(),n.setOptions(o),n.clusters=[],n}return Ve(t,e),ze(t,[{key:\"_create\",value:function(){var e=this,t=document.createElement(\"div\");t.className=\"vis-itemset\",t[\"vis-itemset\"]=this,this.dom.frame=t;var o=document.createElement(\"div\");o.className=\"vis-background\",t.appendChild(o),this.dom.background=o;var n=document.createElement(\"div\");n.className=\"vis-foreground\",t.appendChild(n),this.dom.foreground=n;var i=document.createElement(\"div\");i.className=\"vis-axis\",this.dom.axis=i;var a=document.createElement(\"div\");a.className=\"vis-labelset\",this.dom.labelSet=a,this._updateUngrouped();var r=new Mn(Fn,null,this);r.show(),this.groups[Fn]=r,this.hammer=new yn(this.body.dom.centerContainer),this.hammer.on(\"hammer.input\",function(t){t.isFirst&&e._onTouch(t)}),this.hammer.on(\"panstart\",this._onDragStart.bind(this)),this.hammer.on(\"panmove\",this._onDrag.bind(this)),this.hammer.on(\"panend\",this._onDragEnd.bind(this)),this.hammer.get(\"pan\").set({threshold:5,direction:yn.ALL}),this.hammer.on(\"tap\",this._onSelectItem.bind(this)),this.hammer.on(\"press\",this._onMultiSelectItem.bind(this)),this.hammer.on(\"doubletap\",this._onAddItem.bind(this)),this.groupHammer=this.options.rtl?new yn(this.body.dom.rightContainer):new yn(this.body.dom.leftContainer),this.groupHammer.on(\"tap\",this._onGroupClick.bind(this)),this.groupHammer.on(\"panstart\",this._onGroupDragStart.bind(this)),this.groupHammer.on(\"panmove\",this._onGroupDrag.bind(this)),this.groupHammer.on(\"panend\",this._onGroupDragEnd.bind(this)),this.groupHammer.get(\"pan\").set({threshold:5,direction:yn.DIRECTION_VERTICAL}),this.body.dom.centerContainer.addEventListener(\"mouseover\",this._onMouseOver.bind(this)),this.body.dom.centerContainer.addEventListener(\"mouseout\",this._onMouseOut.bind(this)),this.body.dom.centerContainer.addEventListener(\"mousemove\",this._onMouseMove.bind(this)),this.body.dom.centerContainer.addEventListener(\"contextmenu\",this._onDragEnd.bind(this)),this.body.dom.centerContainer.addEventListener(\"mousewheel\",this._onMouseWheel.bind(this)),this.show()}},{key:\"setOptions\",value:function(e){var t=this;if(e){So.selectiveExtend([\"type\",\"rtl\",\"align\",\"order\",\"stack\",\"stackSubgroups\",\"selectable\",\"multiselect\",\"multiselectPerGroup\",\"groupOrder\",\"dataAttributes\",\"template\",\"groupTemplate\",\"visibleFrameTemplate\",\"hide\",\"snap\",\"groupOrderSwap\",\"showTooltips\",\"tooltip\",\"tooltipOnItemUpdateTime\",\"groupHeightMode\",\"onTimeout\"],this.options,e),\"itemsAlwaysDraggable\"in e&&(\"boolean\"==typeof e.itemsAlwaysDraggable?(this.options.itemsAlwaysDraggable.item=e.itemsAlwaysDraggable,this.options.itemsAlwaysDraggable.range=!1):\"object\"===je(e.itemsAlwaysDraggable)&&(So.selectiveExtend([\"item\",\"range\"],this.options.itemsAlwaysDraggable,e.itemsAlwaysDraggable),!this.options.itemsAlwaysDraggable.item&&(this.options.itemsAlwaysDraggable.range=!1))),\"orientation\"in e&&(\"string\"==typeof e.orientation?this.options.orientation.item=\"top\"===e.orientation?\"top\":\"bottom\":\"object\"===je(e.orientation)&&\"item\"in e.orientation&&(this.options.orientation.item=e.orientation.item)),\"margin\"in e&&(\"number\"==typeof e.margin?(this.options.margin.axis=e.margin,this.options.margin.item.horizontal=e.margin,this.options.margin.item.vertical=e.margin):\"object\"===je(e.margin)&&(So.selectiveExtend([\"axis\"],this.options.margin,e.margin),\"item\"in e.margin&&(\"number\"==typeof e.margin.item?(this.options.margin.item.horizontal=e.margin.item,this.options.margin.item.vertical=e.margin.item):\"object\"===je(e.margin.item)&&So.selectiveExtend([\"horizontal\",\"vertical\"],this.options.margin.item,e.margin.item)))),\"editable\"in e&&(\"boolean\"==typeof e.editable?(this.options.editable.updateTime=e.editable,this.options.editable.updateGroup=e.editable,this.options.editable.add=e.editable,this.options.editable.remove=e.editable,this.options.editable.overrideItems=!1):\"object\"===je(e.editable)&&So.selectiveExtend([\"updateTime\",\"updateGroup\",\"add\",\"remove\",\"overrideItems\"],this.options.editable,e.editable)),\"groupEditable\"in e&&(\"boolean\"==typeof e.groupEditable?(this.options.groupEditable.order=e.groupEditable,this.options.groupEditable.add=e.groupEditable,this.options.groupEditable.remove=e.groupEditable):\"object\"===je(e.groupEditable)&&So.selectiveExtend([\"order\",\"add\",\"remove\"],this.options.groupEditable,e.groupEditable));var o=function(o){var n=e[o];if(n){if(\"function\"!=typeof n)throw new Error(\"option \".concat(o,\" must be a function \").concat(o,\"(item, callback)\"));t.options[o]=n}};[\"onDropObjectOnItem\",\"onAdd\",\"onUpdate\",\"onRemove\",\"onMove\",\"onMoving\",\"onAddGroup\",\"onMoveGroup\",\"onRemoveGroup\"].forEach(o),e.cluster?(Object.assign(this.options,{cluster:e.cluster}),!this.clusterGenerator&&(this.clusterGenerator=new Hn(this)),this.clusterGenerator.setItems(this.items,{applyOnChangedLevel:!1}),this.markDirty({refreshItems:!0,restackGroups:!0}),this.redraw()):this.clusterGenerator?(this._detachAllClusters(),this.clusters=[],this.clusterGenerator=null,this.options.cluster=void 0,this.markDirty({refreshItems:!0,restackGroups:!0}),this.redraw()):this.markDirty()}}},{key:\"markDirty\",value:function(e){this.groupIds=[],e&&(e.refreshItems&&So.forEach(this.items,function(e){e.dirty=!0,e.displayed&&e.redraw()}),e.restackGroups&&So.forEach(this.groups,function(e,t){t===Fn||(e.stackDirty=!0)}))}},{key:\"destroy\",value:function(){this.clearPopupTimer(),this.hide(),this.setItems(null),this.setGroups(null),this.hammer&&this.hammer.destroy(),this.groupHammer&&this.groupHammer.destroy(),this.hammer=null,this.body=null,this.conversion=null}},{key:\"hide\",value:function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.axis.parentNode&&this.dom.axis.parentNode.removeChild(this.dom.axis),this.dom.labelSet.parentNode&&this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)}},{key:\"show\",value:function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame),this.dom.axis.parentNode||this.body.dom.backgroundVertical.appendChild(this.dom.axis),this.dom.labelSet.parentNode||(this.options.rtl?this.body.dom.right.appendChild(this.dom.labelSet):this.body.dom.left.appendChild(this.dom.labelSet))}},{key:\"setPopupTimer\",value:function(e){if(this.clearPopupTimer(),e){var t=this.options.tooltip.delay||\"number\"==typeof this.options.tooltip.delay?this.options.tooltip.delay:500;this.popupTimer=setTimeout(function(){e.show()},t)}}},{key:\"clearPopupTimer\",value:function(){null!=this.popupTimer&&(clearTimeout(this.popupTimer),this.popupTimer=null)}},{key:\"setSelection\",value:function(e){null==e&&(e=[]),Array.isArray(e)||(e=[e]);var t=this.selection.filter(function(t){return-1===e.indexOf(t)}),o=!0,n=!1,i=void 0;try{for(var a=t[Symbol.iterator](),r;!(o=(r=a.next()).done);o=!0){var s=r.value,d=this.getItemById(s);d&&d.unselect()}}catch(e){n=!0,i=e}finally{try{o||null==a.return||a.return()}finally{if(n)throw i}}this.selection=Ke(e);var l=!0,p=!1,m=void 0;try{for(var u=e[Symbol.iterator](),c;!(l=(c=u.next()).done);l=!0){var g=c.value,h=this.getItemById(g);h&&h.select()}}catch(e){p=!0,m=e}finally{try{l||null==u.return||u.return()}finally{if(p)throw m}}}},{key:\"getSelection\",value:function(){return this.selection.concat([])}},{key:\"getVisibleItems\",value:function(){var e=this.body.range.getRange(),t,o;this.options.rtl?(t=this.body.util.toScreen(e.start),o=this.body.util.toScreen(e.end)):(o=this.body.util.toScreen(e.start),t=this.body.util.toScreen(e.end));var n=[];for(var i in this.groups)if(this.groups.hasOwnProperty(i)){var a=this.groups[i],r=a.isVisible?a.visibleItems:[],s=!0,d=!1,l=void 0;try{for(var p=r[Symbol.iterator](),m,u;!(s=(m=p.next()).done);s=!0)u=m.value,this.options.rtl?u.right<o&&u.right+u.width>t&&n.push(u.id):u.left<t&&u.left+u.width>o&&n.push(u.id)}catch(e){d=!0,l=e}finally{try{s||null==p.return||p.return()}finally{if(d)throw l}}}return n}},{key:\"getVisibleGroups\",value:function(){var e=[];for(var t in this.groups)if(this.groups.hasOwnProperty(t)){var o=this.groups[t];o.isVisible&&e.push(t)}return e}},{key:\"getItemById\",value:function(e){return this.items[e]||this.clusters.find(function(t){return t.id===e})}},{key:\"_deselect\",value:function(e){for(var t=this.selection,o=0,n=t.length;o<n;o++)if(t[o]==e){t.splice(o,1);break}}},{key:\"redraw\",value:function(){var e=this,t=this.options.margin,o=this.body.range,n=So.option.asSize,i=this.options,a=i.orientation.item,r=!1,s=this.dom.frame;this.props.top=this.body.domProps.top.height+this.body.domProps.border.top,this.options.rtl?this.props.right=this.body.domProps.right.width+this.body.domProps.border.right:this.props.left=this.body.domProps.left.width+this.body.domProps.border.left,s.className=\"vis-itemset\",this.options.cluster&&this._clusterItems(),r=this._orderGroups()||r;var d=o.end-o.start,l=d!=this.lastVisibleInterval||this.props.width!=this.props.lastWidth,p=o.start!=this.lastRangeStart,m=i.stack!=this.lastStack,u=i.stackSubgroups!=this.lastStackSubgroups,c=l||p||m||u;this.lastVisibleInterval=d,this.lastRangeStart=o.start,this.lastStack=i.stack,this.lastStackSubgroups=i.stackSubgroups,this.props.lastWidth=this.props.width;var g=this._firstGroup(),h={item:t.item,axis:t.axis},y={item:t.item,axis:t.item.vertical/2},f=0,b=t.axis+t.item.vertical;this.groups[Fn].redraw(o,y,c);var _={},v=0;So.forEach(this.groups,function(e,t){if(t!==Fn){var n=e==g?h:y;_[t]=e.redraw(o,n,c,!0),v=_[t].length}});var k=0<v;return k&&function(){for(var t={},o=function(e){So.forEach(_,function(o,n){t[n]=o[e]()})},n=0;n<v;n++)o(n);So.forEach(e.groups,function(e,o){if(o!==Fn){var n=t[o];r=n||r,f+=e.height}}),f=$t(f,b)}(),f=$t(f,b),s.style.height=n(f),this.props.width=s.offsetWidth,this.props.height=f,this.dom.axis.style.top=n(\"top\"==a?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height),this.options.rtl?this.dom.axis.style.right=\"0\":this.dom.axis.style.left=\"0\",this.initialItemSetDrawn=!0,r=this._isResized()||r,r}},{key:\"_firstGroup\",value:function(){var e=\"top\"==this.options.orientation.item?0:this.groupIds.length-1,t=this.groupIds[e],o=this.groups[t]||this.groups[Gn];return o||null}},{key:\"_updateUngrouped\",value:function(){var e=this.groups[Gn],t,o;if(this.groupsData){if(e)for(o in e.hide(),delete this.groups[Gn],this.items)if(this.items.hasOwnProperty(o)){t=this.items[o],t.parent&&t.parent.remove(t);var n=this.getGroupId(t.data),i=this.groups[n];i&&i.add(t)||t.hide()}}else if(!e){for(o in e=new On(null,null,this),this.groups[Gn]=e,this.items)this.items.hasOwnProperty(o)&&(t=this.items[o],e.add(t));e.show()}}},{key:\"getLabelSet\",value:function(){return this.dom.labelSet}},{key:\"setItems\",value:function(e){this.itemsSettingTime=new Date;var t=this,o=this.itemsData,n;if(!e)this.itemsData=null;else if(e instanceof rn||e instanceof sn)this.itemsData=e;else throw new TypeError(\"Data must be an instance of DataSet or DataView\");if(o&&(So.forEach(this.itemListeners,function(e,t){o.off(t,e)}),n=o.getIds(),this._onRemove(n)),this.itemsData){var i=this.id;So.forEach(this.itemListeners,function(e,o){t.itemsData.on(o,e,i)}),n=this.itemsData.getIds(),this._onAdd(n),this._updateUngrouped()}this.body.emitter.emit(\"_change\",{queue:!0})}},{key:\"getItems\",value:function(){return this.itemsData}},{key:\"setGroups\",value:function(e){var t=this,o;if(this.groupsData&&(So.forEach(this.groupListeners,function(e,o){t.groupsData.off(o,e)}),o=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(o)),!e)this.groupsData=null;else if(e instanceof rn||e instanceof sn)this.groupsData=e;else throw new TypeError(\"Data must be an instance of DataSet or DataView\");if(this.groupsData){var n=this.groupsData;this.groupsData instanceof sn&&(n=this.groupsData.getDataSet()),n.get().forEach(function(e){e.nestedGroups&&e.nestedGroups.forEach(function(t){var o=n.get(t);o.nestedInGroup=e.id,!1==e.showNested&&(o.visible=!1),n.update(o)})});var i=this.id;So.forEach(this.groupListeners,function(e,o){t.groupsData.on(o,e,i)}),o=this.groupsData.getIds(),this._onAddGroups(o)}this._updateUngrouped(),this._order(),this.options.cluster&&(this.clusterGenerator.updateData(),this._clusterItems(),this.markDirty({refreshItems:!0,restackGroups:!0})),this.body.emitter.emit(\"_change\",{queue:!0})}},{key:\"getGroups\",value:function(){return this.groupsData}},{key:\"removeItem\",value:function(e){var t=this.itemsData.get(e),o=this.itemsData.getDataSet();t&&this.options.onRemove(t,function(t){t&&o.remove(e)})}},{key:\"_getType\",value:function(e){return e.type||this.options.type||(e.end?\"range\":\"box\")}},{key:\"getGroupId\",value:function(e){var t=this._getType(e);return\"background\"==t&&null==e.group?Fn:this.groupsData?e.group:Gn}},{key:\"_onUpdate\",value:function(e){var o=this,n=this;e.forEach(function(e){var i=n.itemsData.get(e,n.itemOptions),a=n.items[e],r=i?n._getType(i):null,s=t.types[r],d;if(a&&(s&&a instanceof s?n._updateItem(a,i):(d=a.selected,n._removeItem(a),a=null)),!a&&i)if(s)a=new s(i,n.conversion,n.options),a.id=e,n._addItem(a,!0),d&&(o.selection.push(e),a.select());else throw new TypeError(\"Unknown item type \\\"\".concat(r,\"\\\"\"))}),this._order(),this.options.cluster&&(this.clusterGenerator.setItems(this.items,{applyOnChangedLevel:!1}),this._clusterItems()),this.body.emitter.emit(\"_change\",{queue:!0})}},{key:\"_onRemove\",value:function(e){var t=0,o=this;e.forEach(function(e){var n=o.items[e];n&&(t++,o._removeItem(n))}),t&&(this._order(),this.body.emitter.emit(\"_change\",{queue:!0}))}},{key:\"_order\",value:function(){So.forEach(this.groups,function(e){e.order()})}},{key:\"_onUpdateGroups\",value:function(e){this._onAddGroups(e)}},{key:\"_onAddGroups\",value:function(e){var t=this;e.forEach(function(e){var o=t.groupsData.get(e),n=t.groups[e];if(!n){if(e==Gn||e==Fn)throw new Error(\"Illegal group id. \".concat(e,\" is a reserved id.\"));var i=Object.create(t.options);for(var a in So.extend(i,{height:null}),n=new On(e,o,t),t.groups[e]=n,t.items)if(t.items.hasOwnProperty(a)){var r=t.items[a];r.data.group==e&&n.add(r)}n.order(),n.show()}else n.setData(o)}),this.body.emitter.emit(\"_change\",{queue:!0})}},{key:\"_onRemoveGroups\",value:function(e){var t=this.groups;e.forEach(function(e){var o=t[e];o&&(o.hide(),delete t[e])}),this.options.cluster&&(this.clusterGenerator.updateData(),this._clusterItems()),this.markDirty({restackGroups:!!this.options.cluster}),this.body.emitter.emit(\"_change\",{queue:!0})}},{key:\"_orderGroups\",value:function(){if(this.groupsData){var e=this.groupsData.getIds({order:this.options.groupOrder});e=this._orderNestedGroups(e);var t=!So.equalArray(e,this.groupIds);if(t){var o=this.groups;e.forEach(function(e){o[e].hide()}),e.forEach(function(e){o[e].show()}),this.groupIds=e}return t}return!1}},{key:\"_orderNestedGroups\",value:function(e){function o(e,t){var n=[];return t.forEach(function(t){n.push(t);var i=e.groupsData.get(t);if(i.nestedGroups){var a=e.groupsData.get({filter:function(e){return e.nestedInGroup==t},order:e.options.groupOrder}).map(function(e){return e.id});n=n.concat(o(e,a))}}),n}var n=this,i=e.filter(function(e){return!n.groupsData.get(e).nestedInGroup});return o(this,i)}},{key:\"_addItem\",value:function(e){var t=!!(1<arguments.length&&void 0!==arguments[1])&&arguments[1];this.items[e.id]=e;var o=this.getGroupId(e.data),n=this.groups[o];n?n&&n.data&&n.data.showNested&&(e.groupShowing=!0):e.groupShowing=!1,n&&n.add(e,t)}},{key:\"_updateItem\",value:function(e,t){e.setData(t);var o=this.getGroupId(e.data),n=this.groups[o];n?n&&n.data&&n.data.showNested&&(e.groupShowing=!0):e.groupShowing=!1}},{key:\"_removeItem\",value:function(e){e.hide(),delete this.items[e.id];var t=this.selection.indexOf(e.id);-1!=t&&this.selection.splice(t,1),e.parent&&e.parent.remove(e),null!=this.popup&&this.popup.hide()}},{key:\"_constructByEndArray\",value:function(e){for(var t=[],o=0;o<e.length;o++)e[o]instanceof Yn&&t.push(e[o]);return t}},{key:\"_onTouch\",value:function(e){this.touchParams.item=this.itemFromTarget(e),this.touchParams.dragLeftItem=e.target.dragLeftItem||!1,this.touchParams.dragRightItem=e.target.dragRightItem||!1,this.touchParams.itemProps=null}},{key:\"_getGroupIndex\",value:function(e){for(var t=0;t<this.groupIds.length;t++)if(e==this.groupIds[t])return t}},{key:\"_onDragStart\",value:function(e){var t=this;if(!this.touchParams.itemIsDragging){var o=this.touchParams.item||null,n=this,i;if(o&&(o.selected||this.options.itemsAlwaysDraggable.item)){if(this.options.editable.overrideItems&&!this.options.editable.updateTime&&!this.options.editable.updateGroup)return;if(null!=o.editable&&!o.editable.updateTime&&!o.editable.updateGroup&&!this.options.editable.overrideItems)return;var a=this.touchParams.dragLeftItem,r=this.touchParams.dragRightItem;if(this.touchParams.itemIsDragging=!0,this.touchParams.selectedItem=o,a)i={item:a,initialX:e.center.x,dragLeft:!0,data:this._cloneItemData(o.data)},this.touchParams.itemProps=[i];else if(r)i={item:r,initialX:e.center.x,dragRight:!0,data:this._cloneItemData(o.data)},this.touchParams.itemProps=[i];else if(this.options.editable.add&&(e.srcEvent.ctrlKey||e.srcEvent.metaKey))this._onDragStartAddItem(e);else{1>this.groupIds.length&&this.redraw();var s=this._getGroupIndex(o.data.group),d=this.options.itemsAlwaysDraggable.item&&!o.selected?[o.id]:this.getSelection();this.touchParams.itemProps=d.map(function(o){var i=n.items[o],a=n._getGroupIndex(i.data.group);return{item:i,initialX:e.center.x,groupOffset:s-a,data:t._cloneItemData(i.data)}})}e.stopPropagation()}else this.options.editable.add&&(e.srcEvent.ctrlKey||e.srcEvent.metaKey)&&this._onDragStartAddItem(e)}}},{key:\"_onDragStartAddItem\",value:function(e){var t=this.options.snap||null,o,n;this.options.rtl?(o=So.getAbsoluteRight(this.dom.frame),n=o-e.center.x+10):(o=So.getAbsoluteLeft(this.dom.frame),n=e.center.x-o-10);var i=this.body.util.toTime(n),a=this.body.util.getScale(),r=this.body.util.getStep(),s=t?t(i,a,r):i,d={type:\"range\",start:s,end:s,content:\"new item\"},l=So.randomUUID();d[this.itemsData._fieldId]=l;var p=this.groupFromTarget(e);p&&(d.group=p.groupId);var m=new Yn(d,this.conversion,this.options);m.id=l,m.data=this._cloneItemData(d),this._addItem(m),this.touchParams.selectedItem=m;var u={item:m,initialX:e.center.x,data:m.data};this.options.rtl?u.dragLeft=!0:u.dragRight=!0,this.touchParams.itemProps=[u],e.stopPropagation()}},{key:\"_onDrag\",value:function(e){var t=this;if(this.clearPopupTimer(),null!=this.popup&&this.popup.hide(),this.touchParams.itemProps){e.stopPropagation();var o=this,n=this.options.snap||null,i;i=this.options.rtl?this.body.dom.root.offsetLeft+this.body.domProps.right.width:this.body.dom.root.offsetLeft+this.body.domProps.left.width;var a=this.body.util.getScale(),r=this.body.util.getStep(),s=this.touchParams.selectedItem,d=(this.options.editable.overrideItems||null==s.editable)&&this.options.editable.updateGroup||!this.options.editable.overrideItems&&null!=s.editable&&s.editable.updateGroup,l=null;if(d&&s&&null!=s.data.group){var p=o.groupFromTarget(e);p&&(l=this._getGroupIndex(p.groupId))}this.touchParams.itemProps.forEach(function(p){var m=o.body.util.toTime(e.center.x-i),u=o.body.util.toTime(p.initialX-i),c,g,h,y,f;c=t.options.rtl?-(m-u):m-u;var b=t._cloneItemData(p.item.data);if(null==p.item.editable||p.item.editable.updateTime||p.item.editable.updateGroup||o.options.editable.overrideItems){var _=(t.options.editable.overrideItems||null==s.editable)&&t.options.editable.updateTime||!t.options.editable.overrideItems&&null!=s.editable&&s.editable.updateTime;if(_)if(p.dragLeft)t.options.rtl?null!=b.end&&(h=So.convert(p.data.end,\"Date\"),f=new Date(h.valueOf()+c),b.end=n?n(f,a,r):f):null!=b.start&&(g=So.convert(p.data.start,\"Date\"),y=new Date(g.valueOf()+c),b.start=n?n(y,a,r):y);else if(p.dragRight)t.options.rtl?null!=b.start&&(g=So.convert(p.data.start,\"Date\"),y=new Date(g.valueOf()+c),b.start=n?n(y,a,r):y):null!=b.end&&(h=So.convert(p.data.end,\"Date\"),f=new Date(h.valueOf()+c),b.end=n?n(f,a,r):f);else if(null!=b.start)if(g=So.convert(p.data.start,\"Date\").valueOf(),y=new Date(g+c),null!=b.end){h=So.convert(p.data.end,\"Date\");var v=h.valueOf()-g.valueOf();b.start=n?n(y,a,r):y,b.end=new Date(b.start.valueOf()+v)}else b.start=n?n(y,a,r):y;if(d&&!p.dragLeft&&!p.dragRight&&null!=l&&null!=b.group){var k=l-p.groupOffset;k=$t(0,k),k=Jt(o.groupIds.length-1,k),b.group=o.groupIds[k]}b=t._cloneItemData(b),o.options.onMoving(b,function(e){e&&p.item.setData(t._cloneItemData(e,\"Date\"))})}}),this.body.emitter.emit(\"_change\")}}},{key:\"_moveToGroup\",value:function(e,t){var o=this.groups[t];if(o&&o.groupId!=e.data.group){var n=e.parent;n.remove(e),n.order(),e.data.group=o.groupId,o.add(e),o.order()}}},{key:\"_onDragEnd\",value:function(e){var t=this;if(this.touchParams.itemIsDragging=!1,this.touchParams.itemProps){e.stopPropagation();var o=this,n=this.itemsData.getDataSet(),i=this.touchParams.itemProps;this.touchParams.itemProps=null,i.forEach(function(e){var i=e.item.id,a=null!=o.itemsData.get(i,o.itemOptions);if(!a)o.options.onAdd(e.item.data,function(t){o._removeItem(e.item),t&&o.itemsData.getDataSet().add(t),o.body.emitter.emit(\"_change\")});else{var r=t._cloneItemData(e.item.data);o.options.onMove(r,function(t){t?(t[n._fieldId]=i,n.update(t)):(e.item.setData(e.data),o.body.emitter.emit(\"_change\"))})}})}}},{key:\"_onGroupClick\",value:function(e){var t=this,o=this.groupFromTarget(e);setTimeout(function(){t.toggleGroupShowNested(o)},1)}},{key:\"toggleGroupShowNested\",value:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:void 0;if(e&&e.nestedGroups){var o=this.groupsData.getDataSet();e.showNested=null==t?!e.showNested:!!t;var n=o.get(e.groupId);n.showNested=e.showNested;for(var a=e.nestedGroups,r=a,s;0<r.length;){s=r,r=[];for(var d=0,l;d<s.length;d++)l=o.get(s[d]),l.nestedGroups&&(r=r.concat(l.nestedGroups));0<r.length&&(a=a.concat(r))}var p=o.get(a).map(function(e){return null==e.visible&&(e.visible=!0),e.visible=!!n.showNested,e});o.update(p.concat(n)),n.showNested?(So.removeClassName(e.dom.label,\"collapsed\"),So.addClassName(e.dom.label,\"expanded\")):(So.removeClassName(e.dom.label,\"expanded\"),So.addClassName(e.dom.label,\"collapsed\"))}}},{key:\"toggleGroupDragClassName\",value:function(e){e.dom.label.classList.toggle(\"vis-group-is-dragging\"),e.dom.foreground.classList.toggle(\"vis-group-is-dragging\")}},{key:\"_onGroupDragStart\",value:function(e){this.groupTouchParams.isDragging||this.options.groupEditable.order&&(this.groupTouchParams.group=this.groupFromTarget(e),this.groupTouchParams.group&&(e.stopPropagation(),this.groupTouchParams.isDragging=!0,this.toggleGroupDragClassName(this.groupTouchParams.group),this.groupTouchParams.originalOrder=this.groupsData.getIds({order:this.options.groupOrder})))}},{key:\"_onGroupDrag\",value:function(e){if(this.options.groupEditable.order&&this.groupTouchParams.group){e.stopPropagation();var t=this.groupsData;this.groupsData instanceof sn&&(t=this.groupsData.getDataSet());var o=this.groupFromTarget(e);if(o&&o.height!=this.groupTouchParams.group.height){var n=o.top<this.groupTouchParams.group.top,i=e.center?e.center.y:e.clientY,a=So.getAbsoluteTop(o.dom.foreground),r=this.groupTouchParams.group.height;if(!n){var s=o.height;if(a+s-r>i)return}else if(a+r<i)return}if(o&&o!=this.groupTouchParams.group){var d=t.get(o.groupId),l=t.get(this.groupTouchParams.group.groupId);l&&d&&(this.options.groupOrderSwap(l,d,t),t.update(l),t.update(d));var p=t.getIds({order:this.options.groupOrder});if(!So.equalArray(p,this.groupTouchParams.originalOrder))for(var m=this.groupTouchParams.originalOrder,u=this.groupTouchParams.group.groupId,c=Jt(m.length,p.length),g=0,h=0,y=0;g<c;){for(;g+h<c&&g+y<c&&p[g+h]==m[g+y];)g++;if(g+h>=c)break;if(p[g+h]==u)h=1;else if(m[g+y]==u)y=1;else{var f=p.indexOf(m[g+y]),b=t.get(p[g+h]),_=t.get(m[g+y]);this.options.groupOrderSwap(b,_,t),t.update(b),t.update(_);var v=p[g+h];p[g+h]=m[g+y],p[f]=v,g++}}}}}},{key:\"_onGroupDragEnd\",value:function(e){if(this.groupTouchParams.isDragging=!1,this.options.groupEditable.order&&this.groupTouchParams.group){e.stopPropagation();var t=this,o=t.groupTouchParams.group.groupId,n=t.groupsData.getDataSet(),i=So.extend({},n.get(o));t.options.onMoveGroup(i,function(e){if(e)e[n._fieldId]=o,n.update(e);else{var i=n.getIds({order:t.options.groupOrder});if(!So.equalArray(i,t.groupTouchParams.originalOrder))for(var a=t.groupTouchParams.originalOrder,r=Jt(a.length,i.length),s=0;s<r;){for(;s<r&&i[s]==a[s];)s++;if(s>=r)break;var d=i.indexOf(a[s]),l=n.get(i[s]),p=n.get(a[s]);t.options.groupOrderSwap(l,p,n),n.update(l),n.update(p);var m=i[s];i[s]=a[s],i[d]=m,s++}}}),t.body.emitter.emit(\"groupDragged\",{groupId:o}),this.toggleGroupDragClassName(this.groupTouchParams.group),this.groupTouchParams.group=null}}},{key:\"_onSelectItem\",value:function(e){if(this.options.selectable){var t=e.srcEvent&&(e.srcEvent.ctrlKey||e.srcEvent.metaKey),o=e.srcEvent&&e.srcEvent.shiftKey;if(t||o)return void this._onMultiSelectItem(e);var n=this.getSelection(),i=this.itemFromTarget(e),a=i?[i.id]:[];this.setSelection(a);var r=this.getSelection();(0<r.length||0<n.length)&&this.body.emitter.emit(\"select\",{items:r,event:e})}}},{key:\"_onMouseOver\",value:function(e){var t=this.itemFromTarget(e);if(t){var o=this.itemFromRelatedTarget(e);if(t!==o){var n=t.getTitle();if(this.options.showTooltips&&n){null==this.popup&&(this.popup=new An(this.body.dom.root,this.options.tooltip.overflowMethod||\"flip\")),this.popup.setText(n);var i=this.body.dom.centerContainer;this.popup.setPosition(e.clientX-So.getAbsoluteLeft(i)+i.offsetLeft,e.clientY-So.getAbsoluteTop(i)+i.offsetTop),this.setPopupTimer(this.popup)}else this.clearPopupTimer(),null!=this.popup&&this.popup.hide();this.body.emitter.emit(\"itemover\",{item:t.id,event:e})}}}},{key:\"_onMouseOut\",value:function(e){var t=this.itemFromTarget(e);if(t){var o=this.itemFromRelatedTarget(e);t===o||(this.clearPopupTimer(),null!=this.popup&&this.popup.hide(),this.body.emitter.emit(\"itemout\",{item:t.id,event:e}))}}},{key:\"_onMouseMove\",value:function(e){var t=this.itemFromTarget(e);if(t&&(null!=this.popupTimer&&this.setPopupTimer(this.popup),this.options.showTooltips&&this.options.tooltip.followMouse&&this.popup&&!this.popup.hidden)){var o=this.body.dom.centerContainer;this.popup.setPosition(e.clientX-So.getAbsoluteLeft(o)+o.offsetLeft,e.clientY-So.getAbsoluteTop(o)+o.offsetTop),this.popup.show()}}},{key:\"_onMouseWheel\",value:function(e){this.touchParams.itemIsDragging&&this._onDragEnd(e)}},{key:\"_onUpdateItem\",value:function(e){if(this.options.selectable&&this.options.editable.updateTime&&this.options.editable.updateGroup){var t=this;if(e){var o=t.itemsData.get(e.id);this.options.onUpdate(o,function(e){e&&t.itemsData.getDataSet().update(e)})}}}},{key:\"_onDropObjectOnItem\",value:function(e){var t=this.itemFromTarget(e),o=JSON.parse(e.dataTransfer.getData(\"text\"));this.options.onDropObjectOnItem(o,t)}},{key:\"_onAddItem\",value:function(e){if(this.options.selectable&&this.options.editable.add){var t=this,o=this.options.snap||null,n,i;this.options.rtl?(n=So.getAbsoluteRight(this.dom.frame),i=n-e.center.x):(n=So.getAbsoluteLeft(this.dom.frame),i=e.center.x-n);var a=this.body.util.toTime(i),r=this.body.util.getScale(),s=this.body.util.getStep(),d,l;\"drop\"==e.type?(l=JSON.parse(e.dataTransfer.getData(\"text\")),l.content=l.content?l.content:\"new item\",l.start=l.start?l.start:o?o(a,r,s):a,l.type=l.type||\"box\",l[this.itemsData._fieldId]=l.id||So.randomUUID(),\"range\"==l.type&&!l.end&&(d=this.body.util.toTime(i+this.props.width/5),l.end=o?o(d,r,s):d)):(l={start:o?o(a,r,s):a,content:\"new item\"},l[this.itemsData._fieldId]=So.randomUUID(),\"range\"===this.options.type&&(d=this.body.util.toTime(i+this.props.width/5),l.end=o?o(d,r,s):d));var p=this.groupFromTarget(e);p&&(l.group=p.groupId),l=this._cloneItemData(l),this.options.onAdd(l,function(o){o&&(t.itemsData.getDataSet().add(o),\"drop\"==e.type&&t.setSelection([o.id]))})}}},{key:\"_onMultiSelectItem\",value:function(e){if(this.options.selectable){var o=this.itemFromTarget(e);if(o){var n=this.options.multiselect?this.getSelection():[],i=e.srcEvent&&e.srcEvent.shiftKey||!1;if(i&&this.options.multiselect){var a=this.itemsData.get(o.id).group,r=void 0;this.options.multiselectPerGroup&&0<n.length&&(r=this.itemsData.get(n[0]).group),this.options.multiselectPerGroup&&null!=r&&r!=a||n.push(o.id);var s=t._getItemRange(this.itemsData.get(n,this.itemOptions));if(!this.options.multiselectPerGroup||r==a)for(var d in n=[],this.items)if(this.items.hasOwnProperty(d)){var l=this.items[d],p=l.data.start,m=void 0===l.data.end?p:l.data.end;p>=s.min&&m<=s.max&&(!this.options.multiselectPerGroup||r==this.itemsData.get(l.id).group)&&!(l instanceof Rn)&&n.push(l.id)}}else{var u=n.indexOf(o.id);-1==u?n.push(o.id):n.splice(u,1)}this.setSelection(n),this.body.emitter.emit(\"select\",{items:this.getSelection(),event:e})}}}},{key:\"itemFromElement\",value:function(e){for(var t=e;t;){if(t.hasOwnProperty(\"vis-item\"))return t[\"vis-item\"];t=t.parentNode}return null}},{key:\"itemFromTarget\",value:function(e){return this.itemFromElement(e.target)}},{key:\"itemFromRelatedTarget\",value:function(e){return this.itemFromElement(e.relatedTarget)}},{key:\"groupFromTarget\",value:function(e){var t=e.center?e.center.y:e.clientY,o=this.groupIds;0>=o.length&&this.groupsData&&(o=this.groupsData.getIds({order:this.options.groupOrder}));for(var n=0;n<o.length;n++){var a=o[n],r=this.groups[a],s=r.dom.foreground,d=So.getAbsoluteTop(s);if(t>=d&&t<d+s.offsetHeight)return r;if(\"top\"===this.options.orientation.item){if(n==this.groupIds.length-1&&t>d)return r;}else if(0==n&&t<d+s.offset)return r}return null}},{key:\"_cloneItemData\",value:function(e,t){var o=So.extend({},e);return t||(t=this.itemsData.getDataSet()._options.type),null!=o.start&&(o.start=So.convert(o.start,t&&t.start||\"Date\")),null!=o.end&&(o.end=So.convert(o.end,t&&t.end||\"Date\")),o}},{key:\"_clusterItems\",value:function(){if(this.options.cluster){var e=this.body.range.conversion(this.body.domProps.center.width),t=e.scale,o=this.clusterGenerator.getClusters(this.clusters,t,this.options.cluster);if(this.clusters!=o){if(this._detachAllClusters(),o){var n=!0,i=!1,a=void 0;try{for(var r=o[Symbol.iterator](),s,d;!(n=(s=r.next()).done);n=!0)d=s.value,d.attach()}catch(e){i=!0,a=e}finally{try{n||null==r.return||r.return()}finally{if(i)throw a}}this.clusters=o}this._updateClusters(o)}}}},{key:\"_detachAllClusters\",value:function(){if(this.options.cluster&&this.clusters&&this.clusters.length){var e=!0,t=!1,o=void 0;try{for(var n=this.clusters[Symbol.iterator](),i,a;!(e=(i=n.next()).done);e=!0)a=i.value,a.detach()}catch(e){t=!0,o=e}finally{try{e||null==n.return||n.return()}finally{if(t)throw o}}}}},{key:\"_updateClusters\",value:function(e){if(this.clusters&&this.clusters.length){var t=new Set(e.map(function(e){return e.id})),o=this.clusters.filter(function(e){return!t.has(e.id)}),n=!1,i=!0,a=!1,r=void 0;try{for(var s=o[Symbol.iterator](),d;!(i=(d=s.next()).done);i=!0){var l=d.value,p=this.selection.indexOf(l.id);-1!==p&&(l.unselect(),this.selection.splice(p,1),n=!0)}}catch(e){a=!0,r=e}finally{try{i||null==s.return||s.return()}finally{if(a)throw r}}if(n){var m=this.getSelection();this.body.emitter.emit(\"select\",{items:m,event:event})}}this.clusters=e||[]}}],[{key:\"_getItemRange\",value:function(e){var t=null,o=null;return e.forEach(function(e){(null==o||e.start<o)&&(o=e.start),null==e.end?(null==t||e.start>t)&&(t=e.start):(null==t||e.end>t)&&(t=e.end)}),{min:o,max:t}}},{key:\"itemSetFromTarget\",value:function(e){for(var t=e.target;t;){if(t.hasOwnProperty(\"vis-itemset\"))return t[\"vis-itemset\"];t=t.parentNode}return null}}]),t}(dn);jn.types={background:Rn,box:Pn,range:Yn,point:En},jn.prototype._onAdd=jn.prototype._onUpdate;var Wn=!1,Un=\"background: #FFeeee; color: #dd0000\",zn=function(){function e(){We(this,e)}return ze(e,null,[{key:\"validate\",value:function(t,o,n){Wn=!1,ri=o;var i=o;return void 0!==n&&(i=o[n]),e.parse(t,i,[]),Wn}},{key:\"parse\",value:function(t,o,n){for(var i in t)t.hasOwnProperty(i)&&e.check(i,t,o,n)}},{key:\"check\",value:function(t,o,n,i){if(void 0===n[t]&&void 0===n.__any__)return void e.getSuggestion(t,n,i);var a=t,r=!0;void 0===n[t]&&void 0!==n.__any__&&(a=\"__any__\",r=\"object\"===e.getType(o[t]));var s=n[a];r&&void 0!==s.__type__&&(s=s.__type__),e.checkFields(t,o,n,a,s,i)}},{key:\"checkFields\",value:function(t,o,n,i,a,r){var s=function(o){console.log(\"%c\"+o+e.printLocation(r,t),Un)},d=e.getType(o[t]),l=a[d];void 0===l?void 0===a.any&&(s(\"Invalid type received for \\\"\"+t+\"\\\". Expected: \"+e.print(Object.keys(a))+\". Received [\"+d+\"] \\\"\"+o[t]+\"\\\"\"),Wn=!0):\"array\"===e.getType(l)&&-1===l.indexOf(o[t])?(s(\"Invalid option detected in \\\"\"+t+\"\\\". Allowed values are:\"+e.print(l)+\" not \\\"\"+o[t]+\"\\\". \"),Wn=!0):\"object\"===d&&\"__any__\"!==i&&(r=So.copyAndExtendArray(r,t),e.parse(o[t],n[i],r))}},{key:\"getType\",value:function(e){var t=je(e);return\"object\"===t?null===e?\"null\":e instanceof Boolean?\"boolean\":e instanceof Number?\"number\":e instanceof String?\"string\":Array.isArray(e)?\"array\":e instanceof Date?\"date\":void 0===e.nodeType?!0===e._isAMomentObject?\"moment\":\"object\":\"dom\":\"number\"===t?\"number\":\"boolean\"===t?\"boolean\":\"string\"===t?\"string\":void 0===t?\"undefined\":t}},{key:\"getSuggestion\",value:function(t,o,n){var i=e.findInOptions(t,o,n,!1),a=e.findInOptions(t,ri,[],!0),r;r=void 0===i.indexMatch?a.distance<=4&&i.distance>a.distance?\" in \"+e.printLocation(i.path,t,\"\")+\"Perhaps it was misplaced? Matching option found at: \"+e.printLocation(a.path,a.closestMatch,\"\"):i.distance<=8?\". Did you mean \\\"\"+i.closestMatch+\"\\\"?\"+e.printLocation(i.path,t):\". Did you mean one of these: \"+e.print(Object.keys(o))+e.printLocation(n,t):\" in \"+e.printLocation(i.path,t,\"\")+\"Perhaps it was incomplete? Did you mean: \\\"\"+i.indexMatch+\"\\\"?\\n\\n\",console.log(\"%cUnknown option detected: \\\"\"+t+\"\\\"\"+r,Un),Wn=!0}},{key:\"findInOptions\",value:function(t,o,n){var i=!!(3<arguments.length&&void 0!==arguments[3])&&arguments[3],a=1e9,r=\"\",s=[],d=t.toLowerCase(),l=void 0;for(var p in o){var m=void 0;if(void 0!==o[p].__type__&&!0===i){var u=e.findInOptions(t,o[p],So.copyAndExtendArray(n,p));a>u.distance&&(r=u.closestMatch,s=u.path,a=u.distance,l=u.indexMatch)}else-1!==p.toLowerCase().indexOf(d)&&(l=p),m=e.levenshteinDistance(t,p),a>m&&(r=p,s=So.copyArray(n),a=m)}return{closestMatch:r,path:s,distance:a,indexMatch:l}}},{key:\"printLocation\",value:function(e,t){for(var o=2<arguments.length&&void 0!==arguments[2]?arguments[2]:\"Problem value found at: \\n\",n=\"\\n\\n\"+o+\"options = {\\n\",a=0;a<e.length;a++){for(var r=0;r<a+1;r++)n+=\" \";n+=e[a]+\": {\\n\"}for(var s=0;s<e.length+1;s++)n+=\" \";n+=t+\"\\n\";for(var d=0;d<e.length+1;d++){for(var l=0;l<e.length-d;l++)n+=\" \";n+=\"}\\n\"}return n+\"\\n\\n\"}},{key:\"print\",value:function(e){return JSON.stringify(e).replace(/(\\\")|(\\[)|(\\])|(,\"__type__\")/g,\"\").replace(/(\\,)/g,\", \")}},{key:\"levenshteinDistance\",value:function(e,t){if(0===e.length)return t.length;if(0===t.length)return e.length;var o=[],n;for(n=0;n<=t.length;n++)o[n]=[n];var a;for(a=0;a<=e.length;a++)o[0][a]=a;for(n=1;n<=t.length;n++)for(a=1;a<=e.length;a++)o[n][a]=t.charAt(n-1)==e.charAt(a-1)?o[n-1][a-1]:Jt(o[n-1][a-1]+1,Jt(o[n][a-1]+1,o[n-1][a]+1));return o[t.length][e.length]}}]),e}(),Vn=\"string\",Bn=\"boolean\",qn=\"number\",Zn=\"array\",Xn=\"date\",Kn=\"object\",Qn=\"moment\",$n={configure:{enabled:{boolean:Bn},filter:{boolean:Bn,function:\"function\"},container:{dom:\"dom\"},__type__:{object:Kn,boolean:Bn,function:\"function\"}},align:{string:Vn},alignCurrentTime:{string:Vn,undefined:\"undefined\"},rtl:{boolean:Bn,undefined:\"undefined\"},rollingMode:{follow:{boolean:Bn},offset:{number:qn,undefined:\"undefined\"},__type__:{object:Kn}},onTimeout:{timeoutMs:{number:qn},callback:{function:\"function\"},__type__:{object:Kn}},verticalScroll:{boolean:Bn,undefined:\"undefined\"},horizontalScroll:{boolean:Bn,undefined:\"undefined\"},autoResize:{boolean:Bn},throttleRedraw:{number:qn},clickToUse:{boolean:Bn},dataAttributes:{string:Vn,array:Zn},editable:{add:{boolean:Bn,undefined:\"undefined\"},remove:{boolean:Bn,undefined:\"undefined\"},updateGroup:{boolean:Bn,undefined:\"undefined\"},updateTime:{boolean:Bn,undefined:\"undefined\"},overrideItems:{boolean:Bn,undefined:\"undefined\"},__type__:{boolean:Bn,object:Kn}},end:{number:qn,date:Xn,string:Vn,moment:Qn},format:{minorLabels:{millisecond:{string:Vn,undefined:\"undefined\"},second:{string:Vn,undefined:\"undefined\"},minute:{string:Vn,undefined:\"undefined\"},hour:{string:Vn,undefined:\"undefined\"},weekday:{string:Vn,undefined:\"undefined\"},day:{string:Vn,undefined:\"undefined\"},week:{string:Vn,undefined:\"undefined\"},month:{string:Vn,undefined:\"undefined\"},year:{string:Vn,undefined:\"undefined\"},__type__:{object:Kn,function:\"function\"}},majorLabels:{millisecond:{string:Vn,undefined:\"undefined\"},second:{string:Vn,undefined:\"undefined\"},minute:{string:Vn,undefined:\"undefined\"},hour:{string:Vn,undefined:\"undefined\"},weekday:{string:Vn,undefined:\"undefined\"},day:{string:Vn,undefined:\"undefined\"},week:{string:Vn,undefined:\"undefined\"},month:{string:Vn,undefined:\"undefined\"},year:{string:Vn,undefined:\"undefined\"},__type__:{object:Kn,function:\"function\"}},__type__:{object:Kn}},moment:{function:\"function\"},groupHeightMode:{string:Vn},groupOrder:{string:Vn,function:\"function\"},groupEditable:{add:{boolean:Bn,undefined:\"undefined\"},remove:{boolean:Bn,undefined:\"undefined\"},order:{boolean:Bn,undefined:\"undefined\"},__type__:{boolean:Bn,object:Kn}},groupOrderSwap:{function:\"function\"},height:{string:Vn,number:qn},hiddenDates:{start:{date:Xn,number:qn,string:Vn,moment:Qn},end:{date:Xn,number:qn,string:Vn,moment:Qn},repeat:{string:Vn},__type__:{object:Kn,array:Zn}},itemsAlwaysDraggable:{item:{boolean:Bn,undefined:\"undefined\"},range:{boolean:Bn,undefined:\"undefined\"},__type__:{boolean:Bn,object:Kn}},limitSize:{boolean:Bn},locale:{string:Vn},locales:{__any__:{any:\"any\"},__type__:{object:Kn}},margin:{axis:{number:qn},item:{horizontal:{number:qn,undefined:\"undefined\"},vertical:{number:qn,undefined:\"undefined\"},__type__:{object:Kn,number:qn}},__type__:{object:Kn,number:qn}},max:{date:Xn,number:qn,string:Vn,moment:Qn},maxHeight:{number:qn,string:Vn},maxMinorChars:{number:qn},min:{date:Xn,number:qn,string:Vn,moment:Qn},minHeight:{number:qn,string:Vn},moveable:{boolean:Bn},multiselect:{boolean:Bn},multiselectPerGroup:{boolean:Bn},onAdd:{function:\"function\"},onDropObjectOnItem:{function:\"function\"},onUpdate:{function:\"function\"},onMove:{function:\"function\"},onMoving:{function:\"function\"},onRemove:{function:\"function\"},onAddGroup:{function:\"function\"},onMoveGroup:{function:\"function\"},onRemoveGroup:{function:\"function\"},onInitialDrawComplete:{function:\"function\"},order:{function:\"function\"},orientation:{axis:{string:Vn,undefined:\"undefined\"},item:{string:Vn,undefined:\"undefined\"},__type__:{string:Vn,object:Kn}},selectable:{boolean:Bn},showCurrentTime:{boolean:Bn},showMajorLabels:{boolean:Bn},showMinorLabels:{boolean:Bn},stack:{boolean:Bn},stackSubgroups:{boolean:Bn},cluster:{maxItems:{number:qn,undefined:\"undefined\"},titleTemplate:{string:Vn,undefined:\"undefined\"},clusterCriteria:{function:\"function\",undefined:\"undefined\"},showStipes:{boolean:Bn,undefined:\"undefined\"},fitOnDoubleClick:{boolean:Bn,undefined:\"undefined\"},__type__:{boolean:Bn,object:Kn}},snap:{function:\"function\",null:\"null\"},start:{date:Xn,number:qn,string:Vn,moment:Qn},template:{function:\"function\"},loadingScreenTemplate:{function:\"function\"},groupTemplate:{function:\"function\"},visibleFrameTemplate:{string:Vn,function:\"function\"},showTooltips:{boolean:Bn},tooltip:{followMouse:{boolean:Bn},overflowMethod:{string:[\"cap\",\"flip\",\"none\"]},delay:{number:qn},template:{function:\"function\"},__type__:{object:Kn}},tooltipOnItemUpdateTime:{template:{function:\"function\"},__type__:{boolean:Bn,object:Kn}},timeAxis:{scale:{string:Vn,undefined:\"undefined\"},step:{number:qn,undefined:\"undefined\"},__type__:{object:Kn}},type:{string:Vn},width:{string:Vn,number:qn},preferZoom:{boolean:Bn},zoomable:{boolean:Bn},zoomKey:{string:[\"ctrlKey\",\"altKey\",\"shiftKey\",\"metaKey\",\"\"]},zoomFriction:{number:qn},zoomMax:{number:qn},zoomMin:{number:qn},__type__:{object:Kn}},Jn={global:{align:[\"center\",\"left\",\"right\"],alignCurrentTime:[\"none\",\"year\",\"month\",\"quarter\",\"week\",\"isoWeek\",\"day\",\"date\",\"hour\",\"minute\",\"second\"],direction:!1,autoResize:!0,clickToUse:!1,editable:{add:!1,remove:!1,updateGroup:!1,updateTime:!1},end:\"\",format:{minorLabels:{millisecond:\"SSS\",second:\"s\",minute:\"HH:mm\",hour:\"HH:mm\",weekday:\"ddd D\",day:\"D\",week:\"w\",month:\"MMM\",year:\"YYYY\"},majorLabels:{millisecond:\"HH:mm:ss\",second:\"D MMMM HH:mm\",minute:\"ddd D MMMM\",hour:\"ddd D MMMM\",weekday:\"MMMM YYYY\",day:\"MMMM YYYY\",week:\"MMMM YYYY\",month:\"YYYY\",year:\"\"}},groupHeightMode:[\"auto\",\"fixed\",\"fitItems\"],groupsDraggable:!1,height:\"\",locale:\"\",margin:{axis:[20,0,100,1],item:{horizontal:[10,0,100,1],vertical:[10,0,100,1]}},max:\"\",maxHeight:\"\",maxMinorChars:[7,0,20,1],min:\"\",minHeight:\"\",moveable:!1,multiselect:!1,multiselectPerGroup:!1,orientation:{axis:[\"both\",\"bottom\",\"top\"],item:[\"bottom\",\"top\"]},preferZoom:!1,selectable:!0,showCurrentTime:!1,showMajorLabels:!0,showMinorLabels:!0,stack:!0,stackSubgroups:!0,cluster:!1,start:\"\",showTooltips:!0,tooltip:{followMouse:!1,overflowMethod:\"flip\",delay:[500,0,99999,100]},tooltipOnItemUpdateTime:!1,type:[\"box\",\"point\",\"range\",\"background\"],width:\"100%\",zoomable:!0,zoomKey:[\"ctrlKey\",\"altKey\",\"shiftKey\",\"metaKey\",\"\"],zoomMax:[31536e10,10,31536e10,1],zoomMin:[10,10,31536e10,1]}},ei={black:\"#000000\",navy:\"#000080\",darkblue:\"#00008B\",mediumblue:\"#0000CD\",blue:\"#0000FF\",darkgreen:\"#006400\",green:\"#008000\",teal:\"#008080\",darkcyan:\"#008B8B\",deepskyblue:\"#00BFFF\",darkturquoise:\"#00CED1\",mediumspringgreen:\"#00FA9A\",lime:\"#00FF00\",springgreen:\"#00FF7F\",aqua:\"#00FFFF\",cyan:\"#00FFFF\",midnightblue:\"#191970\",dodgerblue:\"#1E90FF\",lightseagreen:\"#20B2AA\",forestgreen:\"#228B22\",seagreen:\"#2E8B57\",darkslategray:\"#2F4F4F\",limegreen:\"#32CD32\",mediumseagreen:\"#3CB371\",turquoise:\"#40E0D0\",royalblue:\"#4169E1\",steelblue:\"#4682B4\",darkslateblue:\"#483D8B\",mediumturquoise:\"#48D1CC\",indigo:\"#4B0082\",darkolivegreen:\"#556B2F\",cadetblue:\"#5F9EA0\",cornflowerblue:\"#6495ED\",mediumaquamarine:\"#66CDAA\",dimgray:\"#696969\",slateblue:\"#6A5ACD\",olivedrab:\"#6B8E23\",slategray:\"#708090\",lightslategray:\"#778899\",mediumslateblue:\"#7B68EE\",lawngreen:\"#7CFC00\",chartreuse:\"#7FFF00\",aquamarine:\"#7FFFD4\",maroon:\"#800000\",purple:\"#800080\",olive:\"#808000\",gray:\"#808080\",skyblue:\"#87CEEB\",lightskyblue:\"#87CEFA\",blueviolet:\"#8A2BE2\",darkred:\"#8B0000\",darkmagenta:\"#8B008B\",saddlebrown:\"#8B4513\",darkseagreen:\"#8FBC8F\",lightgreen:\"#90EE90\",mediumpurple:\"#9370D8\",darkviolet:\"#9400D3\",palegreen:\"#98FB98\",darkorchid:\"#9932CC\",yellowgreen:\"#9ACD32\",sienna:\"#A0522D\",brown:\"#A52A2A\",darkgray:\"#A9A9A9\",lightblue:\"#ADD8E6\",greenyellow:\"#ADFF2F\",paleturquoise:\"#AFEEEE\",lightsteelblue:\"#B0C4DE\",powderblue:\"#B0E0E6\",firebrick:\"#B22222\",darkgoldenrod:\"#B8860B\",mediumorchid:\"#BA55D3\",rosybrown:\"#BC8F8F\",darkkhaki:\"#BDB76B\",silver:\"#C0C0C0\",mediumvioletred:\"#C71585\",indianred:\"#CD5C5C\",peru:\"#CD853F\",chocolate:\"#D2691E\",tan:\"#D2B48C\",lightgrey:\"#D3D3D3\",palevioletred:\"#D87093\",thistle:\"#D8BFD8\",orchid:\"#DA70D6\",goldenrod:\"#DAA520\",crimson:\"#DC143C\",gainsboro:\"#DCDCDC\",plum:\"#DDA0DD\",burlywood:\"#DEB887\",lightcyan:\"#E0FFFF\",lavender:\"#E6E6FA\",darksalmon:\"#E9967A\",violet:\"#EE82EE\",palegoldenrod:\"#EEE8AA\",lightcoral:\"#F08080\",khaki:\"#F0E68C\",aliceblue:\"#F0F8FF\",honeydew:\"#F0FFF0\",azure:\"#F0FFFF\",sandybrown:\"#F4A460\",wheat:\"#F5DEB3\",beige:\"#F5F5DC\",whitesmoke:\"#F5F5F5\",mintcream:\"#F5FFFA\",ghostwhite:\"#F8F8FF\",salmon:\"#FA8072\",antiquewhite:\"#FAEBD7\",linen:\"#FAF0E6\",lightgoldenrodyellow:\"#FAFAD2\",oldlace:\"#FDF5E6\",red:\"#FF0000\",fuchsia:\"#FF00FF\",magenta:\"#FF00FF\",deeppink:\"#FF1493\",orangered:\"#FF4500\",tomato:\"#FF6347\",hotpink:\"#FF69B4\",coral:\"#FF7F50\",darkorange:\"#FF8C00\",lightsalmon:\"#FFA07A\",orange:\"#FFA500\",lightpink:\"#FFB6C1\",pink:\"#FFC0CB\",gold:\"#FFD700\",peachpuff:\"#FFDAB9\",navajowhite:\"#FFDEAD\",moccasin:\"#FFE4B5\",bisque:\"#FFE4C4\",mistyrose:\"#FFE4E1\",blanchedalmond:\"#FFEBCD\",papayawhip:\"#FFEFD5\",lavenderblush:\"#FFF0F5\",seashell:\"#FFF5EE\",cornsilk:\"#FFF8DC\",lemonchiffon:\"#FFFACD\",floralwhite:\"#FFFAF0\",snow:\"#FFFAFA\",yellow:\"#FFFF00\",lightyellow:\"#FFFFE0\",ivory:\"#FFFFF0\",white:\"#FFFFFF\"},ti=function(){var t=Math.cos,o=Math.sin,n=Math.PI;function e(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:1;We(this,e),this.pixelRatio=t,this.generated=!1,this.centerCoordinates={x:289/2,y:289/2},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=function(){},this.closeCallback=function(){},this._create()}return ze(e,[{key:\"insertTo\",value:function(e){void 0!==this.hammer&&(this.hammer.destroy(),this.hammer=void 0),this.container=e,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}},{key:\"setUpdateCallback\",value:function(e){if(\"function\"==typeof e)this.updateCallback=e;else throw new Error(\"Function attempted to set as colorPicker update callback is not a function.\")}},{key:\"setCloseCallback\",value:function(e){if(\"function\"==typeof e)this.closeCallback=e;else throw new Error(\"Function attempted to set as colorPicker closing callback is not a function.\")}},{key:\"_isColorString\",value:function(e){if(\"string\"==typeof e)return ei[e]}},{key:\"setColor\",value:function(e){var t=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];if(\"none\"!==e){var o=this._isColorString(e),n;if(void 0!==o&&(e=o),!0===So.isString(e)){if(!0===So.isValidRGB(e)){var i=e.substr(4).substr(0,e.length-5).split(\",\");n={r:i[0],g:i[1],b:i[2],a:1}}else if(!0===So.isValidRGBA(e)){var a=e.substr(5).substr(0,e.length-6).split(\",\");n={r:a[0],g:a[1],b:a[2],a:a[3]}}else if(!0===So.isValidHex(e)){var r=So.hexToRGB(e);n={r:r.r,g:r.g,b:r.b,a:1}}}else if(e instanceof Object&&void 0!==e.r&&void 0!==e.g&&void 0!==e.b){var s=void 0===e.a?\"1.0\":e.a;n={r:e.r,g:e.g,b:e.b,a:s}}if(void 0===n)throw new Error(\"Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: \"+JSON.stringify(e));else this._setColor(n,t)}}},{key:\"show\",value:function(){void 0!==this.closeCallback&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display=\"block\",this._generateHueCircle()}},{key:\"_hide\",value:function(){var e=this,t=!(0<arguments.length&&void 0!==arguments[0])||arguments[0];!0===t&&(this.previousColor=So.extend({},this.color)),!0===this.applied&&this.updateCallback(this.initialColor),this.frame.style.display=\"none\",setTimeout(function(){void 0!==e.closeCallback&&(e.closeCallback(),e.closeCallback=void 0)},0)}},{key:\"_save\",value:function(){this.updateCallback(this.color),this.applied=!1,this._hide()}},{key:\"_apply\",value:function(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}},{key:\"_loadLast\",value:function(){void 0===this.previousColor?alert(\"There is no last color to load...\"):this.setColor(this.previousColor,!1)}},{key:\"_setColor\",value:function(e){var i=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];!0===i&&(this.initialColor=So.extend({},e)),this.color=e;var a=So.RGBToHSV(e.r,e.g,e.b),r=2*n,s=this.r*a.s,d=this.centerCoordinates.x+s*o(r*a.h),l=this.centerCoordinates.y+s*t(r*a.h);this.colorPickerSelector.style.left=d-.5*this.colorPickerSelector.clientWidth+\"px\",this.colorPickerSelector.style.top=l-.5*this.colorPickerSelector.clientHeight+\"px\",this._updatePicker(e)}},{key:\"_setOpacity\",value:function(e){this.color.a=e/100,this._updatePicker(this.color)}},{key:\"_setBrightness\",value:function(e){var t=So.RGBToHSV(this.color.r,this.color.g,this.color.b);t.v=e/100;var o=So.HSVToRGB(t.h,t.s,t.v);o.a=this.color.a,this.color=o,this._updatePicker()}},{key:\"_updatePicker\",value:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:this.color,t=So.RGBToHSV(e.r,e.g,e.b),o=this.colorPickerCanvas.getContext(\"2d\");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(o.webkitBackingStorePixelRatio||o.mozBackingStorePixelRatio||o.msBackingStorePixelRatio||o.oBackingStorePixelRatio||o.backingStorePixelRatio||1)),o.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var n=this.colorPickerCanvas.clientWidth,i=this.colorPickerCanvas.clientHeight;o.clearRect(0,0,n,i),o.putImageData(this.hueCircle,0,0),o.fillStyle=\"rgba(0,0,0,\"+(1-t.v)+\")\",o.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),o.fill(),this.brightnessRange.value=100*t.v,this.opacityRange.value=100*e.a,this.initialColorDiv.style.backgroundColor=\"rgba(\"+this.initialColor.r+\",\"+this.initialColor.g+\",\"+this.initialColor.b+\",\"+this.initialColor.a+\")\",this.newColorDiv.style.backgroundColor=\"rgba(\"+this.color.r+\",\"+this.color.g+\",\"+this.color.b+\",\"+this.color.a+\")\"}},{key:\"_setSize\",value:function(){this.colorPickerCanvas.style.width=\"100%\",this.colorPickerCanvas.style.height=\"100%\",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}},{key:\"_create\",value:function(){if(this.frame=document.createElement(\"div\"),this.frame.className=\"vis-color-picker\",this.colorPickerDiv=document.createElement(\"div\"),this.colorPickerSelector=document.createElement(\"div\"),this.colorPickerSelector.className=\"vis-selector\",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement(\"canvas\"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),!this.colorPickerCanvas.getContext){var e=document.createElement(\"DIV\");e.style.color=\"red\",e.style.fontWeight=\"bold\",e.style.padding=\"10px\",e.innerHTML=\"Error: your browser does not support HTML canvas\",this.colorPickerCanvas.appendChild(e)}else{var t=this.colorPickerCanvas.getContext(\"2d\");this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),this.colorPickerCanvas.getContext(\"2d\").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}this.colorPickerDiv.className=\"vis-color\",this.opacityDiv=document.createElement(\"div\"),this.opacityDiv.className=\"vis-opacity\",this.brightnessDiv=document.createElement(\"div\"),this.brightnessDiv.className=\"vis-brightness\",this.arrowDiv=document.createElement(\"div\"),this.arrowDiv.className=\"vis-arrow\",this.opacityRange=document.createElement(\"input\");try{this.opacityRange.type=\"range\",this.opacityRange.min=\"0\",this.opacityRange.max=\"100\"}catch(e){}this.opacityRange.value=\"100\",this.opacityRange.className=\"vis-range\",this.brightnessRange=document.createElement(\"input\");try{this.brightnessRange.type=\"range\",this.brightnessRange.min=\"0\",this.brightnessRange.max=\"100\"}catch(e){}this.brightnessRange.value=\"100\",this.brightnessRange.className=\"vis-range\",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);var o=this;this.opacityRange.onchange=function(){o._setOpacity(this.value)},this.opacityRange.oninput=function(){o._setOpacity(this.value)},this.brightnessRange.onchange=function(){o._setBrightness(this.value)},this.brightnessRange.oninput=function(){o._setBrightness(this.value)},this.brightnessLabel=document.createElement(\"div\"),this.brightnessLabel.className=\"vis-label vis-brightness\",this.brightnessLabel.innerHTML=\"brightness:\",this.opacityLabel=document.createElement(\"div\"),this.opacityLabel.className=\"vis-label vis-opacity\",this.opacityLabel.innerHTML=\"opacity:\",this.newColorDiv=document.createElement(\"div\"),this.newColorDiv.className=\"vis-new-color\",this.newColorDiv.innerHTML=\"new\",this.initialColorDiv=document.createElement(\"div\"),this.initialColorDiv.className=\"vis-initial-color\",this.initialColorDiv.innerHTML=\"initial\",this.cancelButton=document.createElement(\"div\"),this.cancelButton.className=\"vis-button vis-cancel\",this.cancelButton.innerHTML=\"cancel\",this.cancelButton.onclick=this._hide.bind(this,!1),this.applyButton=document.createElement(\"div\"),this.applyButton.className=\"vis-button vis-apply\",this.applyButton.innerHTML=\"apply\",this.applyButton.onclick=this._apply.bind(this),this.saveButton=document.createElement(\"div\"),this.saveButton.className=\"vis-button vis-save\",this.saveButton.innerHTML=\"save\",this.saveButton.onclick=this._save.bind(this),this.loadButton=document.createElement(\"div\"),this.loadButton.className=\"vis-button vis-load\",this.loadButton.innerHTML=\"load last\",this.loadButton.onclick=this._loadLast.bind(this),this.frame.appendChild(this.colorPickerDiv),this.frame.appendChild(this.arrowDiv),this.frame.appendChild(this.brightnessLabel),this.frame.appendChild(this.brightnessDiv),this.frame.appendChild(this.opacityLabel),this.frame.appendChild(this.opacityDiv),this.frame.appendChild(this.newColorDiv),this.frame.appendChild(this.initialColorDiv),this.frame.appendChild(this.cancelButton),this.frame.appendChild(this.applyButton),this.frame.appendChild(this.saveButton),this.frame.appendChild(this.loadButton)}},{key:\"_bindHammer\",value:function(){var e=this;this.drag={},this.pinch={},this.hammer=new yn(this.colorPickerCanvas),this.hammer.get(\"pinch\").set({enable:!0}),_t(this.hammer,function(t){e._moveSelector(t)}),this.hammer.on(\"tap\",function(t){e._moveSelector(t)}),this.hammer.on(\"panstart\",function(t){e._moveSelector(t)}),this.hammer.on(\"panmove\",function(t){e._moveSelector(t)}),this.hammer.on(\"panend\",function(t){e._moveSelector(t)})}},{key:\"_generateHueCircle\",value:function(){if(!1===this.generated){var e=this.colorPickerCanvas.getContext(\"2d\");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1)),e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var i=this.colorPickerCanvas.clientWidth,a=this.colorPickerCanvas.clientHeight;e.clearRect(0,0,i,a);var r,s,d,l;this.centerCoordinates={x:.5*i,y:.5*a},this.r=.49*i;var p=2*n/360,m=1/this.r,u;for(d=0;360>d;d++)for(l=0;l<this.r;l++)r=this.centerCoordinates.x+l*o(p*d),s=this.centerCoordinates.y+l*t(p*d),u=So.HSVToRGB(d*(1/360),l*m,1),e.fillStyle=\"rgb(\"+u.r+\",\"+u.g+\",\"+u.b+\")\",e.fillRect(r-.5,s-.5,2,2);e.strokeStyle=\"rgba(0,0,0,1)\",e.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),e.stroke(),this.hueCircle=e.getImageData(0,0,i,a)}this.generated=!0}},{key:\"_moveSelector\",value:function(e){var i=Math.atan2,a=this.colorPickerDiv.getBoundingClientRect(),r=e.center.x-a.left,d=e.center.y-a.top,l=.5*this.colorPickerDiv.clientHeight,p=.5*this.colorPickerDiv.clientWidth,m=r-p,u=d-l,c=i(m,u),g=.98*Jt(Vt(m*m+u*u),p),y=t(c)*g+l,f=o(c)*g+p;this.colorPickerSelector.style.top=y-.5*this.colorPickerSelector.clientHeight+\"px\",this.colorPickerSelector.style.left=f-.5*this.colorPickerSelector.clientWidth+\"px\";var b=c/(2*n);b=0>b?b+1:b;var _=g/this.r,s=So.RGBToHSV(this.color.r,this.color.g,this.color.b);s.h=b,s.s=_;var v=So.HSVToRGB(s.h,s.s,s.v);v.a=this.color.a,this.color=v,this.initialColorDiv.style.backgroundColor=\"rgba(\"+this.initialColor.r+\",\"+this.initialColor.g+\",\"+this.initialColor.b+\",\"+this.initialColor.a+\")\",this.newColorDiv.style.backgroundColor=\"rgba(\"+this.color.r+\",\"+this.color.g+\",\"+this.color.b+\",\"+this.color.a+\")\"}}]),e}(),oi=function(){function e(t,o,n){var i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:1;We(this,e),this.parent=t,this.changedOptions=[],this.container=o,this.allowCreation=!1,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},So.extend(this.options,this.defaultOptions),this.configureOptions=n,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new ti(i),this.wrapper=void 0}return ze(e,[{key:\"setOptions\",value:function(e){if(void 0!==e){this.popupHistory={},this._removePopup();var t=!0;if(\"string\"==typeof e)this.options.filter=e;else if(e instanceof Array)this.options.filter=e.join();else if(\"object\"===je(e)){if(null==e)throw new TypeError(\"options cannot be null\");void 0!==e.container&&(this.options.container=e.container),void 0!==e.filter&&(this.options.filter=e.filter),void 0!==e.showButton&&(this.options.showButton=e.showButton),void 0!==e.enabled&&(t=e.enabled)}else\"boolean\"==typeof e?(this.options.filter=!0,t=e):\"function\"==typeof e&&(this.options.filter=e,t=!0);!1===this.options.filter&&(t=!1),this.options.enabled=t}this._clean()}},{key:\"setModuleOptions\",value:function(e){this.moduleOptions=e,!0===this.options.enabled&&(this._clean(),void 0!==this.options.container&&(this.container=this.options.container),this._create())}},{key:\"_create\",value:function(){this._clean(),this.changedOptions=[];var e=this.options.filter,t=0,o=!1;for(var n in this.configureOptions)this.configureOptions.hasOwnProperty(n)&&(this.allowCreation=!1,o=!1,\"function\"==typeof e?(o=e(n,[]),o=o||this._handleObject(this.configureOptions[n],[n],!0)):(!0===e||-1!==e.indexOf(n))&&(o=!0),!1!==o&&(this.allowCreation=!0,0<t&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),t++);this._makeButton(),this._push()}},{key:\"_push\",value:function(){this.wrapper=document.createElement(\"div\"),this.wrapper.className=\"vis-configuration-wrapper\",this.container.appendChild(this.wrapper);for(var e=0;e<this.domElements.length;e++)this.wrapper.appendChild(this.domElements[e]);this._showPopupIfNeeded()}},{key:\"_clean\",value:function(){for(var e=0;e<this.domElements.length;e++)this.wrapper.removeChild(this.domElements[e]);void 0!==this.wrapper&&(this.container.removeChild(this.wrapper),this.wrapper=void 0),this.domElements=[],this._removePopup()}},{key:\"_getValue\",value:function(e){for(var t=this.moduleOptions,o=0;o<e.length;o++)if(void 0!==t[e[o]])t=t[e[o]];else{t=void 0;break}return t}},{key:\"_makeItem\",value:function(e){if(!0===this.allowCreation){var t=document.createElement(\"div\");t.className=\"vis-configuration vis-config-item vis-config-s\"+e.length;for(var o=arguments.length,n=Array(1<o?o-1:0),i=1;i<o;i++)n[i-1]=arguments[i];return n.forEach(function(e){t.appendChild(e)}),this.domElements.push(t),this.domElements.length}return 0}},{key:\"_makeHeader\",value:function(e){var t=document.createElement(\"div\");t.className=\"vis-configuration vis-config-header\",t.innerHTML=e,this._makeItem([],t)}},{key:\"_makeLabel\",value:function(e,t){var o=!!(2<arguments.length&&void 0!==arguments[2])&&arguments[2],n=document.createElement(\"div\");return n.className=\"vis-configuration vis-config-label vis-config-s\"+t.length,n.innerHTML=!0===o?\"<i><b>\"+e+\":</b></i>\":e+\":\",n}},{key:\"_makeDropdown\",value:function(e,t,o){var n=document.createElement(\"select\");n.className=\"vis-configuration vis-config-select\";var a=0;void 0!==t&&-1!==e.indexOf(t)&&(a=e.indexOf(t));for(var r=0,s;r<e.length;r++)s=document.createElement(\"option\"),s.value=e[r],r==a&&(s.selected=\"selected\"),s.innerHTML=e[r],n.appendChild(s);var d=this;n.onchange=function(){d._update(this.value,o)};var l=this._makeLabel(o[o.length-1],o);this._makeItem(o,l,n)}},{key:\"_makeRange\",value:function(e,t,o){var n=e[0],i=e[1],a=e[2],r=e[3],s=document.createElement(\"input\");s.className=\"vis-configuration vis-config-range\";try{s.type=\"range\",s.min=i,s.max=a}catch(e){}s.step=r;var d=\"\",l=0;if(void 0!==t){var p=1.2;0>t&&t*p<i?(s.min=Kt(t*p),l=s.min,d=\"range increased\"):t/p<i&&(s.min=Kt(t/p),l=s.min,d=\"range increased\"),t*p>a&&1!==a&&(s.max=Kt(t*p),l=s.max,d=\"range increased\"),s.value=t}else s.value=n;var m=document.createElement(\"input\");m.className=\"vis-configuration vis-config-rangeinput\",m.value=s.value;var u=this;s.onchange=function(){m.value=this.value,u._update(+this.value,o)},s.oninput=function(){m.value=this.value};var c=this._makeLabel(o[o.length-1],o),g=this._makeItem(o,c,s,m);\"\"!=d&&this.popupHistory[g]!==l&&(this.popupHistory[g]=l,this._setupPopup(d,g))}},{key:\"_makeButton\",value:function(){var e=this;if(!0===this.options.showButton){var t=document.createElement(\"div\");t.className=\"vis-configuration vis-config-button\",t.innerHTML=\"generate options\",t.onclick=function(){e._printOptions()},t.onmouseover=function(){t.className=\"vis-configuration vis-config-button hover\"},t.onmouseout=function(){t.className=\"vis-configuration vis-config-button\"},this.optionsContainer=document.createElement(\"div\"),this.optionsContainer.className=\"vis-configuration vis-config-option-container\",this.domElements.push(this.optionsContainer),this.domElements.push(t)}}},{key:\"_setupPopup\",value:function(e,t){var o=this;if(!0===this.initialized&&!0===this.allowCreation&&this.popupCounter<this.popupLimit){var n=document.createElement(\"div\");n.id=\"vis-configuration-popup\",n.className=\"vis-configuration-popup\",n.innerHTML=e,n.onclick=function(){o._removePopup()},this.popupCounter+=1,this.popupDiv={html:n,index:t}}}},{key:\"_removePopup\",value:function(){void 0!==this.popupDiv.html&&(this.popupDiv.html.parentNode.removeChild(this.popupDiv.html),clearTimeout(this.popupDiv.hideTimeout),clearTimeout(this.popupDiv.deleteTimeout),this.popupDiv={})}},{key:\"_showPopupIfNeeded\",value:function(){var e=this;if(void 0!==this.popupDiv.html){var t=this.domElements[this.popupDiv.index],o=t.getBoundingClientRect();this.popupDiv.html.style.left=o.left+\"px\",this.popupDiv.html.style.top=o.top-30+\"px\",document.body.appendChild(this.popupDiv.html),this.popupDiv.hideTimeout=setTimeout(function(){e.popupDiv.html.style.opacity=0},1500),this.popupDiv.deleteTimeout=setTimeout(function(){e._removePopup()},1800)}}},{key:\"_makeCheckbox\",value:function(e,t,o){var n=document.createElement(\"input\");n.type=\"checkbox\",n.className=\"vis-configuration vis-config-checkbox\",n.checked=e,void 0!==t&&(n.checked=t,t!==e&&(\"object\"===je(e)?t!==e.enabled&&this.changedOptions.push({path:o,value:t}):this.changedOptions.push({path:o,value:t})));var i=this;n.onchange=function(){i._update(this.checked,o)};var a=this._makeLabel(o[o.length-1],o);this._makeItem(o,a,n)}},{key:\"_makeTextInput\",value:function(e,t,o){var n=document.createElement(\"input\");n.type=\"text\",n.className=\"vis-configuration vis-config-text\",n.value=t,t!==e&&this.changedOptions.push({path:o,value:t});var i=this;n.onchange=function(){i._update(this.value,o)};var a=this._makeLabel(o[o.length-1],o);this._makeItem(o,a,n)}},{key:\"_makeColorField\",value:function(e,t,o){var n=this,i=e[1],a=document.createElement(\"div\");t=void 0===t?i:t,\"none\"===t?a.className=\"vis-configuration vis-config-colorBlock none\":(a.className=\"vis-configuration vis-config-colorBlock\",a.style.backgroundColor=t),t=void 0===t?i:t,a.onclick=function(){n._showColorPicker(t,a,o)};var r=this._makeLabel(o[o.length-1],o);this._makeItem(o,r,a)}},{key:\"_showColorPicker\",value:function(e,t,o){var n=this;t.onclick=function(){},this.colorPicker.insertTo(t),this.colorPicker.show(),this.colorPicker.setColor(e),this.colorPicker.setUpdateCallback(function(e){var i=\"rgba(\"+e.r+\",\"+e.g+\",\"+e.b+\",\"+e.a+\")\";t.style.backgroundColor=i,n._update(i,o)}),this.colorPicker.setCloseCallback(function(){t.onclick=function(){n._showColorPicker(e,t,o)}})}},{key:\"_handleObject\",value:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:[],o=!!(2<arguments.length&&void 0!==arguments[2])&&arguments[2],n=!1,i=this.options.filter,a=!1;for(var r in e)if(e.hasOwnProperty(r)){n=!0;var s=e[r],d=So.copyAndExtendArray(t,r);if(\"function\"==typeof i&&(n=i(r,t),!1===n&&!(s instanceof Array)&&\"string\"!=typeof s&&\"boolean\"!=typeof s&&s instanceof Object&&(this.allowCreation=!1,n=this._handleObject(s,d,!0),this.allowCreation=!1===o)),!1!==n){a=!0;var l=this._getValue(d);if(s instanceof Array)this._handleArray(s,l,d);else if(\"string\"==typeof s)this._makeTextInput(s,l,d);else if(\"boolean\"==typeof s)this._makeCheckbox(s,l,d);else if(s instanceof Object){var p=!0;if(-1!==t.indexOf(\"physics\")&&this.moduleOptions.physics.solver!==r&&(p=!1),!0==p)if(void 0!==s.enabled){var m=So.copyAndExtendArray(d,\"enabled\"),u=this._getValue(m);if(!0===u){var c=this._makeLabel(r,d,!0);this._makeItem(d,c),a=this._handleObject(s,d)||a}else this._makeCheckbox(s,u,d)}else{var g=this._makeLabel(r,d,!0);this._makeItem(d,g),a=this._handleObject(s,d)||a}}else console.error(\"dont know how to handle\",s,r,d)}}return a}},{key:\"_handleArray\",value:function(e,t,o){\"string\"==typeof e[0]&&\"color\"===e[0]?(this._makeColorField(e,t,o),e[1]!==t&&this.changedOptions.push({path:o,value:t})):\"string\"==typeof e[0]?(this._makeDropdown(e,t,o),e[0]!==t&&this.changedOptions.push({path:o,value:t})):\"number\"==typeof e[0]&&(this._makeRange(e,t,o),e[0]!==t&&this.changedOptions.push({path:o,value:+t}))}},{key:\"_update\",value:function(e,t){var o=this._constructOptions(e,t);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit(\"configChange\",o),this.initialized=!0,this.parent.setOptions(o)}},{key:\"_constructOptions\",value:function(e,t){var o=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},n=o;e=\"true\"===e||e,e=\"false\"!==e&&e;for(var a=0;a<t.length;a++)\"global\"!==t[a]&&(void 0===n[t[a]]&&(n[t[a]]={}),a==t.length-1?n[t[a]]=e:n=n[t[a]]);return o}},{key:\"_printOptions\",value:function(){var e=this.getOptions();this.optionsContainer.innerHTML=\"<pre>var options = \"+JSON.stringify(e,null,2)+\"</pre>\"}},{key:\"getOptions\",value:function(){for(var e={},t=0;t<this.changedOptions.length;t++)this._constructOptions(this.changedOptions[t].value,this.changedOptions[t].path,e);return e}}]),e}(),ni=function(t){function o(t,n,i,a){var r;if(We(this,o),r=Xe(this,Be(o).call(this)),r.initTime=new Date,r.itemsDone=!1,!(Ze(r)instanceof o))throw new SyntaxError(\"Constructor must be called with the new operator\");if(!(Array.isArray(i)||i instanceof rn||i instanceof sn)&&i instanceof Object){var s=a;a=i,i=s}a&&a.throttleRedraw&&console.warn(\"Timeline option \\\"throttleRedraw\\\" is DEPRICATED and no longer supported. It will be removed in the next MAJOR release.\");var d=Ze(r);if(r.defaultOptions={autoResize:!0,orientation:{axis:\"bottom\",item:\"bottom\"},moment:e},r.options=So.deepExtend({},r.defaultOptions),r._create(t),!a||a&&\"undefined\"==typeof a.rtl){r.dom.root.style.visibility=\"hidden\";for(var l=r.dom.root,p;!p&&l;)p=window.getComputedStyle(l,null).direction,l=l.parentElement;r.options.rtl=p&&\"rtl\"==p.toLowerCase()}else r.options.rtl=a.rtl;a&&(a.rollingMode&&(r.options.rollingMode=a.rollingMode),a.onInitialDrawComplete&&(r.options.onInitialDrawComplete=a.onInitialDrawComplete),a.onTimeout&&(r.options.onTimeout=a.onTimeout),a.loadingScreenTemplate&&(r.options.loadingScreenTemplate=a.loadingScreenTemplate));var m=document.createElement(\"div\");if(r.options.loadingScreenTemplate){var u=r.options.loadingScreenTemplate.bind(Ze(r)),c=u(r.dom.loadingScreen);c instanceof Object&&!(c instanceof Element)?u(m):c instanceof Element?(m.innerHTML=\"\",m.appendChild(c)):null!=c&&(m.innerHTML=c)}return r.dom.loadingScreen.appendChild(m),r.components=[],r.body={dom:r.dom,domProps:r.props,emitter:{on:r.on.bind(Ze(r)),off:r.off.bind(Ze(r)),emit:r.emit.bind(Ze(r))},hiddenDates:[],util:{getScale:function(){return d.timeAxis.step.scale},getStep:function(){return d.timeAxis.step.step},toScreen:d._toScreen.bind(d),toGlobalScreen:d._toGlobalScreen.bind(d),toTime:d._toTime.bind(d),toGlobalTime:d._toGlobalTime.bind(d)}},r.range=new pn(r.body,r.options),r.components.push(r.range),r.body.range=r.range,r.timeAxis=new bn(r.body,r.options),r.timeAxis2=null,r.components.push(r.timeAxis),r.currentTime=new Dn(r.body,r.options),r.components.push(r.currentTime),r.itemSet=new jn(r.body,r.options),r.components.push(r.itemSet),r.itemsData=null,r.groupsData=null,r.dom.root.onclick=function(e){d.emit(\"click\",d.getEventProperties(e))},r.dom.root.ondblclick=function(e){d.emit(\"doubleClick\",d.getEventProperties(e))},r.dom.root.oncontextmenu=function(e){d.emit(\"contextmenu\",d.getEventProperties(e))},r.dom.root.onmouseover=function(e){d.emit(\"mouseOver\",d.getEventProperties(e))},window.PointerEvent?(r.dom.root.onpointerdown=function(e){d.emit(\"mouseDown\",d.getEventProperties(e))},r.dom.root.onpointermove=function(e){d.emit(\"mouseMove\",d.getEventProperties(e))},r.dom.root.onpointerup=function(e){d.emit(\"mouseUp\",d.getEventProperties(e))}):(r.dom.root.onmousemove=function(e){d.emit(\"mouseMove\",d.getEventProperties(e))},r.dom.root.onmousedown=function(e){d.emit(\"mouseDown\",d.getEventProperties(e))},r.dom.root.onmouseup=function(e){d.emit(\"mouseUp\",d.getEventProperties(e))}),r.initialFitDone=!1,r.on(\"changed\",function(){if(null!=d.itemsData){if(!d.initialFitDone&&!d.options.rollingMode)if(d.initialFitDone=!0,null!=d.options.start||null!=d.options.end){if(null==d.options.start||null==d.options.end)var e=d.getItemRange();var t=null==d.options.start?e.min:d.options.start,o=null==d.options.end?e.max:d.options.end;d.setWindow(t,o,{animation:!1})}else d.fit({animation:!1});d.initialDrawDone||!d.initialRangeChangeDone&&(d.options.start||d.options.end)&&!d.options.rollingMode||(d.initialDrawDone=!0,d.itemSet.initialDrawDone=!0,d.dom.root.style.visibility=\"visible\",d.dom.loadingScreen.parentNode.removeChild(d.dom.loadingScreen),d.options.onInitialDrawComplete&&setTimeout(function(){return d.options.onInitialDrawComplete()},0))}}),r.on(\"destroyTimeline\",function(){d.destroy()}),a&&r.setOptions(a),r.body.emitter.on(\"fit\",function(e){r._onFit(e),r.redraw()}),i&&r.setGroups(i),n&&r.setItems(n),r._redraw(),r}return Ve(o,t),ze(o,[{key:\"_createConfigurator\",value:function(){return new oi(this,this.dom.container,Jn)}},{key:\"redraw\",value:function(){this.itemSet&&this.itemSet.markDirty({refreshItems:!0}),this._redraw()}},{key:\"setOptions\",value:function(e){var t=zn.validate(e,$n);if(!0===t&&console.log(\"%cErrors have been found in the supplied options object.\",Un),xn.prototype.setOptions.call(this,e),\"type\"in e&&e.type!==this.options.type){this.options.type=e.type;var o=this.itemsData;if(o){var n=this.getSelection();this.setItems(null),this.setItems(o),this.setSelection(n)}}}},{key:\"setItems\",value:function(e){this.itemsDone=!1;var t;t=e?e instanceof rn||e instanceof sn?e:new rn(e,{type:{start:\"Date\",end:\"Date\"}}):null,this.itemsData=t,this.itemSet&&this.itemSet.setItems(t)}},{key:\"setGroups\",value:function(e){var t;if(!e)t=null;else{var o=function(e){return!1!==e.visible};t=e instanceof rn||e instanceof sn?new sn(e,{filter:o}):new rn(e.filter(o))}this.groupsData=t,this.itemSet.setGroups(t)}},{key:\"setData\",value:function(e){e&&e.groups&&this.setGroups(e.groups),e&&e.items&&this.setItems(e.items)}},{key:\"setSelection\",value:function(e,t){this.itemSet&&this.itemSet.setSelection(e),t&&t.focus&&this.focus(e,t)}},{key:\"getSelection\",value:function(){return this.itemSet&&this.itemSet.getSelection()||[]}},{key:\"focus\",value:function(e,t){if(this.itemsData&&null!=e){var o=Array.isArray(e)?e:[e],n=this.itemsData.getDataSet().get(o,{type:{start:\"Date\",end:\"Date\"}}),i=null,a=null;if(n.forEach(function(t){var o=t.start.valueOf(),n=\"end\"in t?t.end.valueOf():t.start.valueOf();(null===i||o<i)&&(i=o),(null===a||n>a)&&(a=n)}),null!==i&&null!==a){var r=this,s=this.itemSet.items[o[0]],d=-1*this._getScrollTop(),l=null,p=function(e,t,o){var n=At(r,s);if(!1!==n&&(l||(l=n),l.itemTop!=n.itemTop||l.shouldScroll)){l.itemTop!=n.itemTop&&n.shouldScroll&&(l=n,d=-1*r._getScrollTop());var i=d,a=l.scrollOffset,p=o?a:i+(a-i)*e;r._setScrollTop(-p),t||r._redraw()}},m=function(){var e=At(r,s);e.shouldScroll&&e.itemTop!=l.itemTop&&(r._setScrollTop(-e.scrollOffset),r._redraw())},u=function(){m(),setTimeout(m,100)},c=(i+a)/2,g=1.1*(a-i),h=!(t&&void 0!==t.animation)||t.animation;h||(l={shouldScroll:!1,scrollOffset:-1,itemTop:-1}),this.range.setRange(c-g/2,c+g/2,{animation:h},u,p)}}}},{key:\"fit\",value:function(e,t){var o=!(e&&void 0!==e.animation)||e.animation,n=this.itemsData&&this.itemsData.getDataSet(),i;1===n.length&&void 0===n.get()[0].end?(i=this.getDataRange(),this.moveTo(i.min.valueOf(),{animation:o},t)):(i=this.getItemRange(),this.range.setRange(i.min,i.max,{animation:o},t))}},{key:\"getItemRange\",value:function(){var e=this,t=this.getDataRange(),o=null===t.min?null:t.min.valueOf(),n=null===t.max?null:t.max.valueOf(),a=null,r=null;if(null!=o&&null!=n){var s=n-o;0>=s&&(s=10);var d=s/this.props.center.width,l={},p=0;So.forEach(this.itemSet.items,function(e,t){if(e.groupShowing){l[t]=e.redraw(!0),p=l[t].length}});var m=0<p;if(m)for(var u=function(e){So.forEach(l,function(t){t[e]()})},c=0;c<p;c++)u(c);if(So.forEach(this.itemSet.items,function(t){var i=Yt(t),s=Rt(t),l,p;e.options.rtl?(l=i-(t.getWidthRight()+10)*d,p=s+(t.getWidthLeft()+10)*d):(l=i-(t.getWidthLeft()+10)*d,p=s+(t.getWidthRight()+10)*d),l<o&&(o=l,a=t),p>n&&(n=p,r=t)}),a&&r){var g=a.getWidthLeft()+10,h=r.getWidthRight()+10,y=this.props.center.width-g-h;0<y&&(this.options.rtl?(o=Yt(a)-h*s/y,n=Rt(r)+g*s/y):(o=Yt(a)-g*s/y,n=Rt(r)+h*s/y))}}return{min:null==o?null:new Date(o),max:null==n?null:new Date(n)}}},{key:\"getDataRange\",value:function(){var e=null,t=null,o=this.itemsData&&this.itemsData.getDataSet();return o&&o.forEach(function(o){var n=So.convert(o.start,\"Date\").valueOf(),i=So.convert(null==o.end?o.start:o.end,\"Date\").valueOf();(null===e||n<e)&&(e=n),(null===t||i>t)&&(t=i)}),{min:null==e?null:new Date(e),max:null==t?null:new Date(t)}}},{key:\"getEventProperties\",value:function(e){var t=e.center?e.center.x:e.clientX,o=e.center?e.center.y:e.clientY,n;n=this.options.rtl?So.getAbsoluteRight(this.dom.centerContainer)-t:t-So.getAbsoluteLeft(this.dom.centerContainer);var i=o-So.getAbsoluteTop(this.dom.centerContainer),a=this.itemSet.itemFromTarget(e),r=this.itemSet.groupFromTarget(e),s=wn.customTimeFromTarget(e),d=this.itemSet.options.snap||null,l=this.body.util.getScale(),p=this.body.util.getStep(),m=this._toTime(n),u=d?d(m,l,p):m,c=So.getTarget(e),g=null;return null==a?null==s?So.hasParent(c,this.timeAxis.dom.foreground)?g=\"axis\":this.timeAxis2&&So.hasParent(c,this.timeAxis2.dom.foreground)?g=\"axis\":So.hasParent(c,this.itemSet.dom.labelSet)?g=\"group-label\":So.hasParent(c,this.currentTime.bar)?g=\"current-time\":So.hasParent(c,this.dom.center)&&(g=\"background\"):g=\"custom-time\":g=\"item\",{event:e,item:a?a.id:null,isCluster:!!a&&!!a.isCluster,items:a?a.items||[]:null,group:r?r.groupId:null,what:g,pageX:e.srcEvent?e.srcEvent.pageX:e.pageX,pageY:e.srcEvent?e.srcEvent.pageY:e.pageY,x:n,y:i,time:m,snappedTime:u}}},{key:\"toggleRollingMode\",value:function(){this.range.rolling?this.range.stopRolling():(null==this.options.rollingMode&&this.setOptions(this.options),this.range.startRolling())}},{key:\"_redraw\",value:function(){xn.prototype._redraw.call(this)}},{key:\"_onFit\",value:function(e){var t=e.start,o=e.end,n=e.animation;o?this.range.setRange(t,o,{animation:n}):this.moveTo(t.valueOf(),{animation:n})}}]),o}(xn),ii=function(){function e(t,o,n,i,a,r){var s=!!(6<arguments.length&&void 0!==arguments[6])&&arguments[6],d=!!(7<arguments.length&&void 0!==arguments[7])&&arguments[7];if(We(this,e),this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.customLines=null,this.containerHeight=a,this.majorCharHeight=r,this._start=t,this._end=o,this.scale=1,this.minorStepIdx=-1,this.magnitudefactor=1,this.determineScale(),this.zeroAlign=s,this.autoScaleStart=n,this.autoScaleEnd=i,this.formattingFunction=d,n||i){var l=this,p=function(e){var t=e-e%(l.magnitudefactor*l.minorSteps[l.minorStepIdx]);return e%(l.magnitudefactor*l.minorSteps[l.minorStepIdx])>.5*(l.magnitudefactor*l.minorSteps[l.minorStepIdx])?t+l.magnitudefactor*l.minorSteps[l.minorStepIdx]:t};n&&(this._start-=2*this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._start=p(this._start)),i&&(this._end+=this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._end=p(this._end)),this.determineScale()}}return ze(e,[{key:\"setCharHeight\",value:function(e){this.majorCharHeight=e}},{key:\"setHeight\",value:function(e){this.containerHeight=e}},{key:\"determineScale\",value:function(){var e=Math.LN10,t=this._end-this._start;this.scale=this.containerHeight/t;var o=this.majorCharHeight/this.scale,n=0<t?qt(Bt(t)/e):0;this.minorStepIdx=-1,this.magnitudefactor=Zt(10,n);var i=0;0>n&&(i=n);for(var a=!1,r=i;Xt(r)<=Xt(n);r++){this.magnitudefactor=Zt(10,r);for(var s=0,d;s<this.minorSteps.length;s++)if(d=this.magnitudefactor*this.minorSteps[s],d>=o){a=!0,this.minorStepIdx=s;break}if(!0===a)break}}},{key:\"is_major\",value:function(e){return 0==e%(this.magnitudefactor*this.majorSteps[this.minorStepIdx])}},{key:\"getStep\",value:function(){return this.magnitudefactor*this.minorSteps[this.minorStepIdx]}},{key:\"getFirstMajor\",value:function(){var e=this.magnitudefactor*this.majorSteps[this.minorStepIdx];return this.convertValue(this._start+(e-this._start%e)%e)}},{key:\"formatValue\",value:function(e){var t=e.toPrecision(5);return\"function\"==typeof this.formattingFunction&&(t=this.formattingFunction(e)),\"number\"==typeof t?\"\".concat(t):\"string\"==typeof t?t:e.toPrecision(5)}},{key:\"getLines\",value:function(){for(var e=[],t=this.getStep(),o=(t-this._start%t)%t,n=this._start+o;1e-5<this._end-n;n+=t)n!=this._start&&e.push({major:this.is_major(n),y:this.convertValue(n),val:this.formatValue(n)});return e}},{key:\"followScale\",value:function(e){var t=this.minorStepIdx,o=this._start,n=this._end,i=this,a=function(){i.magnitudefactor*=2},r=function(){i.magnitudefactor/=2};if(1>=e.minorStepIdx&&1>=this.minorStepIdx||1<e.minorStepIdx&&1<this.minorStepIdx);else e.minorStepIdx<this.minorStepIdx?(this.minorStepIdx=1,2==t?a():(a(),a())):(this.minorStepIdx=2,1==t?r():(r(),r()));for(var s=e.convertValue(0),d=e.getStep()*e.scale,l=!1,p=0;!l&&5>p++;){this.scale=d/(this.minorSteps[this.minorStepIdx]*this.magnitudefactor);var m=this.containerHeight/this.scale;this._start=o,this._end=this._start+m;var u=this._end*this.scale,c=this.magnitudefactor*this.majorSteps[this.minorStepIdx],g=this.getFirstMajor()-e.getFirstMajor();if(this.zeroAlign){this._end+=(s-u)/this.scale,this._start=this._end-m}else this.autoScaleStart?(this._start-=g/this.scale,this._end=this._start+m):(this._start+=c-g/this.scale,this._end=this._start+m);if(!this.autoScaleEnd&&this._end>n+1e-5){r(),l=!1;continue}if(!this.autoScaleStart&&this._start<o-1e-5)if(this.zeroAlign&&0<=o)console.warn(\"Can't adhere to given 'min' range, due to zeroalign\");else{r(),l=!1;continue}if(this.autoScaleStart&&this.autoScaleEnd&&m<n-o){a(),l=!1;continue}l=!0}}},{key:\"convertValue\",value:function(e){return this.containerHeight-(e-this._start)*this.scale}},{key:\"screenToValue\",value:function(e){return(this.containerHeight-e)/this.scale+this._start}}]),e}(),ai=function(e){function t(e,o,n,i){var a;We(this,t),a=Xe(this,Be(t).call(this)),a.id=So.randomUUID(),a.body=e,a.defaultOptions={orientation:\"left\",showMinorLabels:!0,showMajorLabels:!0,icons:!1,majorLinesOffset:7,minorLinesOffset:4,labelOffsetX:10,labelOffsetY:2,iconWidth:20,width:\"40px\",visible:!0,alignZeros:!0,left:{range:{min:void 0,max:void 0},format:function(e){return\"\".concat(parseFloat(e.toPrecision(3)))},title:{text:void 0,style:void 0}},right:{range:{min:void 0,max:void 0},format:function(e){return\"\".concat(parseFloat(e.toPrecision(3)))},title:{text:void 0,style:void 0}}},a.linegraphOptions=i,a.linegraphSVG=n,a.props={},a.DOMelements={lines:{},labels:{},title:{}},a.dom={},a.scale=void 0,a.range={start:0,end:0},a.options=So.extend({},a.defaultOptions),a.conversionFactor=1,a.setOptions(o),a.width=+\"\".concat(a.options.width).replace(\"px\",\"\"),a.minWidth=a.width,a.height=a.linegraphSVG.getBoundingClientRect().height,a.hidden=!1,a.stepPixels=25,a.zeroCrossing=-1,a.amountOfSteps=-1,a.lineOffset=0,a.master=!0,a.masterAxis=null,a.svgElements={},a.iconsRemoved=!1,a.groups={},a.amountOfGroups=0,a._create(),null==a.scale&&a._redrawLabels(),a.framework={svg:a.svg,svgElements:a.svgElements,options:a.options,groups:a.groups};var r=Ze(a);return a.body.emitter.on(\"verticalDrag\",function(){r.dom.lineContainer.style.top=\"\".concat(r.body.domProps.scrollTop,\"px\")}),a}return Ve(t,e),ze(t,[{key:\"addGroup\",value:function(e,t){this.groups.hasOwnProperty(e)||(this.groups[e]=t),this.amountOfGroups+=1}},{key:\"updateGroup\",value:function(e,t){this.groups.hasOwnProperty(e)||(this.amountOfGroups+=1),this.groups[e]=t}},{key:\"removeGroup\",value:function(e){this.groups.hasOwnProperty(e)&&(delete this.groups[e],this.amountOfGroups-=1)}},{key:\"setOptions\",value:function(e){if(e){var t=!1;this.options.orientation!=e.orientation&&void 0!==e.orientation&&(t=!0);So.selectiveDeepExtend([\"orientation\",\"showMinorLabels\",\"showMajorLabels\",\"icons\",\"majorLinesOffset\",\"minorLinesOffset\",\"labelOffsetX\",\"labelOffsetY\",\"iconWidth\",\"width\",\"visible\",\"left\",\"right\",\"alignZeros\"],this.options,e),this.minWidth=+\"\".concat(this.options.width).replace(\"px\",\"\"),!0==t&&this.dom.frame&&(this.hide(),this.show())}}},{key:\"_create\",value:function(){this.dom.frame=document.createElement(\"div\"),this.dom.frame.style.width=this.options.width,this.dom.frame.style.height=this.height,this.dom.lineContainer=document.createElement(\"div\"),this.dom.lineContainer.style.width=\"100%\",this.dom.lineContainer.style.height=this.height,this.dom.lineContainer.style.position=\"relative\",this.dom.lineContainer.style.visibility=\"visible\",this.dom.lineContainer.style.display=\"block\",this.svg=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\"),this.svg.style.position=\"absolute\",this.svg.style.top=\"0px\",this.svg.style.height=\"100%\",this.svg.style.width=\"100%\",this.svg.style.display=\"block\",this.dom.frame.appendChild(this.svg)}},{key:\"_redrawGroupIcons\",value:function(){me(this.svgElements);var e=this.options.iconWidth,t=15,o=4,n=o+.5*t,i;i=\"left\"===this.options.orientation?o:this.width-e-o;var a=Object.keys(this.groups);a.sort(function(e,t){return e<t?-1:1});for(var r=0,s=a,d;r<s.length;r++)d=s[r],!0===this.groups[d].visible&&(void 0===this.linegraphOptions.visibility[d]||!0===this.linegraphOptions.visibility[d])&&(this.groups[d].getLegend(e,t,this.framework,i,n),n+=t+o);ue(this.svgElements),this.iconsRemoved=!1}},{key:\"_cleanupIcons\",value:function(){!1===this.iconsRemoved&&(me(this.svgElements),ue(this.svgElements),this.iconsRemoved=!0)}},{key:\"show\",value:function(){this.hidden=!1,this.dom.frame.parentNode||(\"left\"===this.options.orientation?this.body.dom.left.appendChild(this.dom.frame):this.body.dom.right.appendChild(this.dom.frame)),this.dom.lineContainer.parentNode||this.body.dom.backgroundHorizontal.appendChild(this.dom.lineContainer),this.dom.lineContainer.style.display=\"block\"}},{key:\"hide\",value:function(){this.hidden=!0,this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.lineContainer.style.display=\"none\"}},{key:\"setRange\",value:function(e,t){this.range.start=e,this.range.end=t}},{key:\"redraw\",value:function(){var e=!1,t=0;for(var o in this.dom.lineContainer.style.top=\"\".concat(this.body.domProps.scrollTop,\"px\"),this.groups)this.groups.hasOwnProperty(o)&&!0===this.groups[o].visible&&(void 0===this.linegraphOptions.visibility[o]||!0===this.linegraphOptions.visibility[o])&&t++;if(0===this.amountOfGroups||0===t)this.hide();else{this.show(),this.height=+this.linegraphSVG.style.height.replace(\"px\",\"\"),this.dom.lineContainer.style.height=\"\".concat(this.height,\"px\"),this.width=!0===this.options.visible?+\"\".concat(this.options.width).replace(\"px\",\"\"):0;var n=this.props,i=this.dom.frame;i.className=\"vis-data-axis\",this._calculateCharSize();var a=this.options.orientation,r=this.options.showMinorLabels,s=this.options.showMajorLabels;n.minorLabelHeight=r?n.minorCharHeight:0,n.majorLabelHeight=s?n.majorCharHeight:0,n.minorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.minorLinesOffset,n.minorLineHeight=1,n.majorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.majorLinesOffset,n.majorLineHeight=1,\"left\"===a?(i.style.top=\"0\",i.style.left=\"0\",i.style.bottom=\"\",i.style.width=\"\".concat(this.width,\"px\"),i.style.height=\"\".concat(this.height,\"px\"),this.props.width=this.body.domProps.left.width,this.props.height=this.body.domProps.left.height):(i.style.top=\"\",i.style.bottom=\"0\",i.style.left=\"0\",i.style.width=\"\".concat(this.width,\"px\"),i.style.height=\"\".concat(this.height,\"px\"),this.props.width=this.body.domProps.right.width,this.props.height=this.body.domProps.right.height),e=this._redrawLabels(),e=this._isResized()||e,!0===this.options.icons?this._redrawGroupIcons():this._cleanupIcons(),this._redrawTitle(a)}return e}},{key:\"_redrawLabels\",value:function(){var e=this,t=!1;me(this.DOMelements.lines),me(this.DOMelements.labels);var o=this.options.orientation,n=null==this.options[o].range?{}:this.options[o].range,i=!0;null!=n.max&&(this.range.end=n.max,i=!1);var a=!0;null!=n.min&&(this.range.start=n.min,a=!1),this.scale=new ii(this.range.start,this.range.end,a,i,this.dom.frame.offsetHeight,this.props.majorCharHeight,this.options.alignZeros,this.options[o].format),!1===this.master&&null!=this.masterAxis?(this.scale.followScale(this.masterAxis.scale),this.dom.lineContainer.style.display=\"none\"):this.dom.lineContainer.style.display=\"block\",this.maxLabelSize=0;var r=this.scale.getLines();r.forEach(function(t){var n=t.y,i=t.major;e.options.showMinorLabels&&!1===i&&e._redrawLabel(n-2,t.val,o,\"vis-y-axis vis-minor\",e.props.minorCharHeight),i&&0<=n&&e._redrawLabel(n-2,t.val,o,\"vis-y-axis vis-major\",e.props.majorCharHeight),!0===e.master&&(i?e._redrawLine(n,o,\"vis-grid vis-horizontal vis-major\",e.options.majorLinesOffset,e.props.majorLineWidth):e._redrawLine(n,o,\"vis-grid vis-horizontal vis-minor\",e.options.minorLinesOffset,e.props.minorLineWidth))});var s=0;void 0!==this.options[o].title&&void 0!==this.options[o].title.text&&(s=this.props.titleCharHeight);var d=!0===this.options.icons?$t(this.options.iconWidth,s)+this.options.labelOffsetX+15:s+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-d&&!0===this.options.visible?(this.width=this.maxLabelSize+d,this.options.width=\"\".concat(this.width,\"px\"),ue(this.DOMelements.lines),ue(this.DOMelements.labels),this.redraw(),t=!0):this.maxLabelSize<this.width-d&&!0===this.options.visible&&this.width>this.minWidth?(this.width=$t(this.minWidth,this.maxLabelSize+d),this.options.width=\"\".concat(this.width,\"px\"),ue(this.DOMelements.lines),ue(this.DOMelements.labels),this.redraw(),t=!0):(ue(this.DOMelements.lines),ue(this.DOMelements.labels),t=!1),t}},{key:\"convertValue\",value:function(e){return this.scale.convertValue(e)}},{key:\"screenToValue\",value:function(e){return this.scale.screenToValue(e)}},{key:\"_redrawLabel\",value:function(e,t,o,n,i){var a=he(\"div\",this.DOMelements.labels,this.dom.frame);a.className=n,a.innerHTML=t,\"left\"===o?(a.style.left=\"-\".concat(this.options.labelOffsetX,\"px\"),a.style.textAlign=\"right\"):(a.style.right=\"-\".concat(this.options.labelOffsetX,\"px\"),a.style.textAlign=\"left\"),a.style.top=\"\".concat(e-.5*i+this.options.labelOffsetY,\"px\"),t+=\"\";var r=$t(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSize<t.length*r&&(this.maxLabelSize=t.length*r)}},{key:\"_redrawLine\",value:function(e,t,o,n,i){if(!0===this.master){var a=he(\"div\",this.DOMelements.lines,this.dom.lineContainer);a.className=o,a.innerHTML=\"\",\"left\"===t?a.style.left=\"\".concat(this.width-n,\"px\"):a.style.right=\"\".concat(this.width-n,\"px\"),a.style.width=\"\".concat(i,\"px\"),a.style.top=\"\".concat(e,\"px\")}}},{key:\"_redrawTitle\",value:function(e){if(me(this.DOMelements.title),void 0!==this.options[e].title&&void 0!==this.options[e].title.text){var t=he(\"div\",this.DOMelements.title,this.dom.frame);t.className=\"vis-y-axis vis-title vis-\".concat(e),t.innerHTML=this.options[e].title.text,void 0!==this.options[e].title.style&&So.addCssText(t,this.options[e].title.style),\"left\"===e?t.style.left=\"\".concat(this.props.titleCharHeight,\"px\"):t.style.right=\"\".concat(this.props.titleCharHeight,\"px\"),t.style.width=\"\".concat(this.height,\"px\")}ue(this.DOMelements.title)}},{key:\"_calculateCharSize\",value:function(){if(!(\"minorCharHeight\"in this.props)){var e=document.createTextNode(\"0\"),t=document.createElement(\"div\");t.className=\"vis-y-axis vis-minor vis-measure\",t.appendChild(e),this.dom.frame.appendChild(t),this.props.minorCharHeight=t.clientHeight,this.props.minorCharWidth=t.clientWidth,this.dom.frame.removeChild(t)}if(!(\"majorCharHeight\"in this.props)){var o=document.createTextNode(\"0\"),n=document.createElement(\"div\");n.className=\"vis-y-axis vis-major vis-measure\",n.appendChild(o),this.dom.frame.appendChild(n),this.props.majorCharHeight=n.clientHeight,this.props.majorCharWidth=n.clientWidth,this.dom.frame.removeChild(n)}if(!(\"titleCharHeight\"in this.props)){var i=document.createTextNode(\"0\"),a=document.createElement(\"div\");a.className=\"vis-y-axis vis-title vis-measure\",a.appendChild(i),this.dom.frame.appendChild(a),this.props.titleCharHeight=a.clientHeight,this.props.titleCharWidth=a.clientWidth,this.dom.frame.removeChild(a)}}}]),t}(dn),ri;Nt.draw=function(e,t,o,n){n=n||0;for(var a=Ht(o,t),r=0;r<e.length;r++)if(!a)ye(e[r].screen_x+n,e[r].screen_y,Lt(t),o.svgElements,o.svg,e[r].label);else{var s=a(e[r],t);(!0===s||\"object\"===je(s))&&ye(e[r].screen_x+n,e[r].screen_y,Lt(t,s),o.svgElements,o.svg,e[r].label)}},Nt.drawIcon=function(e,t,o,n,i,a){var r=.5*i,s=ge(\"rect\",a.svgElements,a.svg);s.setAttributeNS(null,\"x\",t),s.setAttributeNS(null,\"y\",o-r),s.setAttributeNS(null,\"width\",n),s.setAttributeNS(null,\"height\",2*r),s.setAttributeNS(null,\"class\",\"vis-outline\"),ye(t+.5*n,o,Lt(e),a.svgElements,a.svg)},Gt.drawIcon=function(e,t,o,n,i,a){var r=.5*i,s=ge(\"rect\",a.svgElements,a.svg);s.setAttributeNS(null,\"x\",t),s.setAttributeNS(null,\"y\",o-r),s.setAttributeNS(null,\"width\",n),s.setAttributeNS(null,\"height\",2*r),s.setAttributeNS(null,\"class\",\"vis-outline\");var d=qt(.3*n),l=e.options.barChart.width,p=qt(.4*i),m=qt(.75*i),u=qt((n-2*d)/3);if(fe(t+.5*d+u,o+r-p-1,d,p,e.className+\" vis-bar\",a.svgElements,a.svg,e.style),fe(t+1.5*d+u+2,o+r-m-1,d,m,e.className+\" vis-bar\",a.svgElements,a.svg,e.style),!0==e.options.drawPoints.enabled){var c={style:e.options.drawPoints.style,styles:e.options.drawPoints.styles,size:e.options.drawPoints.size/(l/d),className:e.className};ye(t+.5*d+u,o+r-p-1,c,a.svgElements,a.svg),ye(t+1.5*d+u+2,o+r-m-1,c,a.svgElements,a.svg)}},Gt.draw=function(e,t,o){var n=[],a={},r=0,s,d,l,p,m,u;for(m=0;m<e.length;m++)if(p=o.groups[e[m]],\"bar\"===p.options.style&&!0===p.visible&&(void 0===o.options.groups.visibility[e[m]]||!0===o.options.groups.visibility[e[m]]))for(u=0;u<t[e[m]].length;u++)n.push({screen_x:t[e[m]][u].screen_x,screen_end:t[e[m]][u].screen_end,screen_y:t[e[m]][u].screen_y,x:t[e[m]][u].x,end:t[e[m]][u].end,y:t[e[m]][u].y,groupId:e[m],label:t[e[m]][u].label}),r+=1;if(0!==r)for(n.sort(function(e,t){return e.screen_x===t.screen_x?e.groupId<t.groupId?-1:1:e.screen_x-t.screen_x}),Gt._getDataIntersections(a,n),m=0;m<n.length;m++){p=o.groups[n[m].groupId];var c=null==p.options.barChart.minWidth?.1*p.options.barChart.width:p.options.barChart.minWidth;d=n[m].screen_x;var g=0;if(void 0===a[d])m+1<n.length&&(s=Xt(n[m+1].screen_x-d)),l=Gt._getSafeDrawData(s,p,c);else{var h=m+(a[d].amount-a[d].resolved);h<n.length&&(s=Xt(n[h].screen_x-d)),l=Gt._getSafeDrawData(s,p,c),a[d].resolved+=1,!0===p.options.stack&&!0!==p.options.excludeFromStacking?n[m].screen_y<p.zeroPosition?(g=a[d].accumulatedNegative,a[d].accumulatedNegative+=p.zeroPosition-n[m].screen_y):(g=a[d].accumulatedPositive,a[d].accumulatedPositive+=p.zeroPosition-n[m].screen_y):!0===p.options.barChart.sideBySide&&(l.width/=a[d].amount,l.offset+=a[d].resolved*l.width-.5*l.width*(a[d].amount+1))}var y=l.width,f=n[m].screen_x;if(null==n[m].screen_end?f+=l.offset:(y=n[m].screen_end-n[m].screen_x,f+=.5*y),fe(f,n[m].screen_y-g,y,p.zeroPosition-n[m].screen_y,p.className+\" vis-bar\",o.svgElements,o.svg,p.style),!0===p.options.drawPoints.enabled){var b={screen_x:n[m].screen_x,screen_y:n[m].screen_y-g,x:n[m].x,y:n[m].y,groupId:n[m].groupId,label:n[m].label};Nt.draw([b],p,o,l.offset)}}},Gt._getDataIntersections=function(e,t){for(var o=0,n;o<t.length;o++)o+1<t.length&&(n=Xt(t[o+1].screen_x-t[o].screen_x)),0<o&&(n=Jt(n,Xt(t[o-1].screen_x-t[o].screen_x))),0===n&&(void 0===e[t[o].screen_x]&&(e[t[o].screen_x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}),e[t[o].screen_x].amount+=1)},Gt._getSafeDrawData=function(e,t,o){var n,i;return e<t.options.barChart.width&&0<e?(n=e<o?o:e,i=0,\"left\"===t.options.barChart.align?i-=.5*e:\"right\"===t.options.barChart.align&&(i+=.5*e)):(n=t.options.barChart.width,i=0,\"left\"===t.options.barChart.align?i-=.5*t.options.barChart.width:\"right\"===t.options.barChart.align&&(i+=.5*t.options.barChart.width)),{width:n,offset:i}},Gt.getStackedYRange=function(e,t,o,n,i){if(0<e.length){e.sort(function(e,t){return e.screen_x===t.screen_x?e.groupId<t.groupId?-1:1:e.screen_x-t.screen_x});var a={};Gt._getDataIntersections(a,e),t[n]=Gt._getStackedYRange(a,e),t[n].yAxisOrientation=i,o.push(n)}},Gt._getStackedYRange=function(e,t){for(var o=t[0].screen_y,n=t[0].screen_y,a=0,r;a<t.length;a++)r=t[a].screen_x,void 0===e[r]?(o=o>t[a].screen_y?t[a].screen_y:o,n=n<t[a].screen_y?t[a].screen_y:n):0>t[a].screen_y?e[r].accumulatedNegative+=t[a].screen_y:e[r].accumulatedPositive+=t[a].screen_y;for(var s in e)e.hasOwnProperty(s)&&(o=o>e[s].accumulatedNegative?e[s].accumulatedNegative:o,o=o>e[s].accumulatedPositive?e[s].accumulatedPositive:o,n=n<e[s].accumulatedNegative?e[s].accumulatedNegative:n,n=n<e[s].accumulatedPositive?e[s].accumulatedPositive:n);return{min:o,max:n}},Ft.calcPath=function(e,t){if(null!=e&&0<e.length){var o=[];return o=!0==t.options.interpolation.enabled?Ft._catmullRom(e,t):Ft._linear(e),o}},Ft.drawIcon=function(e,t,o,n,i,a){var r=.5*i,s=ge(\"rect\",a.svgElements,a.svg),d,l;if(s.setAttributeNS(null,\"x\",t),s.setAttributeNS(null,\"y\",o-r),s.setAttributeNS(null,\"width\",n),s.setAttributeNS(null,\"height\",2*r),s.setAttributeNS(null,\"class\",\"vis-outline\"),d=ge(\"path\",a.svgElements,a.svg),d.setAttributeNS(null,\"class\",e.className),void 0!==e.style&&d.setAttributeNS(null,\"style\",e.style),d.setAttributeNS(null,\"d\",\"M\"+t+\",\"+o+\" L\"+(t+n)+\",\"+o+\"\"),!0==e.options.shaded.enabled&&(l=ge(\"path\",a.svgElements,a.svg),\"top\"==e.options.shaded.orientation?l.setAttributeNS(null,\"d\",\"M\"+t+\", \"+(o-r)+\"L\"+t+\",\"+o+\" L\"+(t+n)+\",\"+o+\" L\"+(t+n)+\",\"+(o-r)):l.setAttributeNS(null,\"d\",\"M\"+t+\",\"+o+\" L\"+t+\",\"+(o+r)+\" L\"+(t+n)+\",\"+(o+r)+\"L\"+(t+n)+\",\"+o),l.setAttributeNS(null,\"class\",e.className+\" vis-icon-fill\"),void 0!==e.options.shaded.style&&\"\"!==e.options.shaded.style&&l.setAttributeNS(null,\"style\",e.options.shaded.style)),!0==e.options.drawPoints.enabled){var p={style:e.options.drawPoints.style,styles:e.options.drawPoints.styles,size:e.options.drawPoints.size,className:e.className};ye(t+.5*n,o,p,a.svgElements,a.svg)}},Ft.drawShading=function(e,t,o,n){if(!0==t.options.shaded.enabled){var i=+n.svg.style.height.replace(\"px\",\"\"),a=ge(\"path\",n.svgElements,n.svg),r=\"L\";!0==t.options.interpolation.enabled&&(r=\"C\");var s=0,d;s=\"top\"==t.options.shaded.orientation?0:\"bottom\"==t.options.shaded.orientation?i:Jt($t(0,t.zeroPosition),i),d=\"group\"==t.options.shaded.orientation&&null!=o&&null!=o?\"M\"+e[0][0]+\",\"+e[0][1]+\" \"+this.serializePath(e,r,!1)+\" L\"+o[o.length-1][0]+\",\"+o[o.length-1][1]+\" \"+this.serializePath(o,r,!0)+o[0][0]+\",\"+o[0][1]+\" Z\":\"M\"+e[0][0]+\",\"+e[0][1]+\" \"+this.serializePath(e,r,!1)+\" V\"+s+\" H\"+e[0][0]+\" Z\",a.setAttributeNS(null,\"class\",t.className+\" vis-fill\"),t.options.shaded.style!==void 0&&a.setAttributeNS(null,\"style\",t.options.shaded.style),a.setAttributeNS(null,\"d\",d)}},Ft.draw=function(e,t,o){if(null!=e&&e!=null){var n=ge(\"path\",o.svgElements,o.svg);n.setAttributeNS(null,\"class\",t.className),t.style!==void 0&&n.setAttributeNS(null,\"style\",t.style);var i=\"L\";!0==t.options.interpolation.enabled&&(i=\"C\"),n.setAttributeNS(null,\"d\",\"M\"+e[0][0]+\",\"+e[0][1]+\" \"+this.serializePath(e,i,!1))}},Ft.serializePath=function(e,t,o){if(2>e.length)return\"\";var n=t,a;if(o)for(a=e.length-2;0<a;a--)n+=e[a][0]+\",\"+e[a][1]+\" \";else for(a=1;a<e.length;a++)n+=e[a][0]+\",\"+e[a][1]+\" \";return n},Ft._catmullRomUniform=function(e){var t=[],o,n,a,r,s,d;t.push([qt(e[0].screen_x),qt(e[0].screen_y)]);for(var l=1/6,p=e.length,m=0;m<p-1;m++)o=0==m?e[0]:e[m-1],n=e[m],a=e[m+1],r=m+2<p?e[m+2]:a,s={screen_x:(-o.screen_x+6*n.screen_x+a.screen_x)*l,screen_y:(-o.screen_y+6*n.screen_y+a.screen_y)*l},d={screen_x:(n.screen_x+6*a.screen_x-r.screen_x)*l,screen_y:(n.screen_y+6*a.screen_y-r.screen_y)*l},t.push([s.screen_x,s.screen_y]),t.push([d.screen_x,d.screen_y]),t.push([a.screen_x,a.screen_y]);return t},Ft._catmullRom=function(e,t){var o=t.options.interpolation.alpha;if(0==o||o===void 0)return this._catmullRomUniform(e);var n=[],a,r,s,d,l,p,m,u,c,g,h,y,f,b,_,v,k,w,x;n.push([qt(e[0].screen_x),qt(e[0].screen_y)]);for(var D=e.length,S=0;S<D-1;S++)a=0==S?e[0]:e[S-1],r=e[S],s=e[S+1],d=S+2<D?e[S+2]:s,m=Vt(Zt(a.screen_x-r.screen_x,2)+Zt(a.screen_y-r.screen_y,2)),u=Vt(Zt(r.screen_x-s.screen_x,2)+Zt(r.screen_y-s.screen_y,2)),c=Vt(Zt(s.screen_x-d.screen_x,2)+Zt(s.screen_y-d.screen_y,2)),b=Zt(c,o),v=Zt(c,2*o),_=Zt(u,o),k=Zt(u,2*o),x=Zt(m,o),w=Zt(m,2*o),g=2*w+3*x*_+k,h=2*v+3*b*_+k,y=3*x*(x+_),0<y&&(y=1/y),f=3*b*(b+_),0<f&&(f=1/f),l={screen_x:(-k*a.screen_x+g*r.screen_x+w*s.screen_x)*y,screen_y:(-k*a.screen_y+g*r.screen_y+w*s.screen_y)*y},p={screen_x:(v*r.screen_x+h*s.screen_x-k*d.screen_x)*f,screen_y:(v*r.screen_y+h*s.screen_y-k*d.screen_y)*f},0==l.screen_x&&0==l.screen_y&&(l=r),0==p.screen_x&&0==p.screen_y&&(p=s),n.push([l.screen_x,l.screen_y]),n.push([p.screen_x,p.screen_y]),n.push([s.screen_x,s.screen_y]);return n},Ft._linear=function(e){for(var t=[],o=0;o<e.length;o++)t.push([e[o].screen_x,e[o].screen_y]);return t},jt.prototype.setItems=function(e){null==e?this.itemsData=[]:(this.itemsData=e,!0==this.options.sort&&So.insertSort(this.itemsData,function(e,t){return e.x>t.x?1:-1}))},jt.prototype.getItems=function(){return this.itemsData},jt.prototype.setZeroPosition=function(e){this.zeroPosition=e},jt.prototype.setOptions=function(e){if(e!==void 0){So.selectiveDeepExtend([\"sampling\",\"style\",\"sort\",\"yAxisOrientation\",\"barChart\",\"zIndex\",\"excludeFromStacking\",\"excludeFromLegend\"],this.options,e),\"function\"==typeof e.drawPoints&&(e.drawPoints={onRender:e.drawPoints}),So.mergeOptions(this.options,e,\"interpolation\"),So.mergeOptions(this.options,e,\"drawPoints\"),So.mergeOptions(this.options,e,\"shaded\"),e.interpolation&&\"object\"==je(e.interpolation)&&e.interpolation.parametrization&&(\"uniform\"==e.interpolation.parametrization?this.options.interpolation.alpha=0:\"chordal\"==e.interpolation.parametrization?this.options.interpolation.alpha=1:(this.options.interpolation.parametrization=\"centripetal\",this.options.interpolation.alpha=.5))}},jt.prototype.update=function(e){this.group=e,this.content=e.content||\"graph\",this.className=e.className||this.className||\"vis-graph-group\"+this.groupsUsingDefaultStyles[0]%10,this.visible=!(e.visible!==void 0)||e.visible,this.style=e.style,this.setOptions(e.options)},jt.prototype.getLegend=function(e,t,o,n,i){if(null==o||null==o){var a=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");o={svg:a,svgElements:{},options:this.options,groups:[this]}}switch((null==n||null==n)&&(n=0),(null==i||null==i)&&(i=.5*t),this.options.style){case\"line\":Ft.drawIcon(this,n,i,e,t,o);break;case\"points\":case\"point\":Nt.drawIcon(this,n,i,e,t,o);break;case\"bar\":Gt.drawIcon(this,n,i,e,t,o);}return{icon:o.svg,label:this.content,orientation:this.options.yAxisOrientation}},jt.prototype.getYRange=function(e){for(var t=e[0].y,o=e[0].y,n=0;n<e.length;n++)t=t>e[n].y?e[n].y:t,o=o<e[n].y?e[n].y:o;return{min:t,max:o,yAxisOrientation:this.options.yAxisOrientation}},Wt.prototype=new dn,Wt.prototype.clear=function(){this.groups={},this.amountOfGroups=0},Wt.prototype.addGroup=function(e,t){!0!=t.options.excludeFromLegend&&(!this.groups.hasOwnProperty(e)&&(this.groups[e]=t),this.amountOfGroups+=1)},Wt.prototype.updateGroup=function(e,t){this.groups[e]=t},Wt.prototype.removeGroup=function(e){this.groups.hasOwnProperty(e)&&(delete this.groups[e],this.amountOfGroups-=1)},Wt.prototype._create=function(){this.dom.frame=document.createElement(\"div\"),this.dom.frame.className=\"vis-legend\",this.dom.frame.style.position=\"absolute\",this.dom.frame.style.top=\"10px\",this.dom.frame.style.display=\"block\",this.dom.textArea=document.createElement(\"div\"),this.dom.textArea.className=\"vis-legend-text\",this.dom.textArea.style.position=\"relative\",this.dom.textArea.style.top=\"0px\",this.svg=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\"),this.svg.style.position=\"absolute\",this.svg.style.top=\"0px\",this.svg.style.width=this.options.iconSize+5+\"px\",this.svg.style.height=\"100%\",this.dom.frame.appendChild(this.svg),this.dom.frame.appendChild(this.dom.textArea)},Wt.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame)},Wt.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame)},Wt.prototype.setOptions=function(e){So.selectiveDeepExtend([\"enabled\",\"orientation\",\"icons\",\"left\",\"right\"],this.options,e)},Wt.prototype.redraw=function(){var e=0,t=Object.keys(this.groups);t.sort(function(e,t){return e<t?-1:1});for(var o=0,n;o<t.length;o++)n=t[o],!0==this.groups[n].visible&&(void 0===this.linegraphOptions.visibility[n]||!0==this.linegraphOptions.visibility[n])&&e++;if(!1==this.options[this.side].visible||0==this.amountOfGroups||!1==this.options.enabled||0==e)this.hide();else{if(this.show(),\"top-left\"==this.options[this.side].position||\"bottom-left\"==this.options[this.side].position?(this.dom.frame.style.left=\"4px\",this.dom.frame.style.textAlign=\"left\",this.dom.textArea.style.textAlign=\"left\",this.dom.textArea.style.left=this.options.iconSize+15+\"px\",this.dom.textArea.style.right=\"\",this.svg.style.left=\"0px\",this.svg.style.right=\"\"):(this.dom.frame.style.right=\"4px\",this.dom.frame.style.textAlign=\"right\",this.dom.textArea.style.textAlign=\"right\",this.dom.textArea.style.right=this.options.iconSize+15+\"px\",this.dom.textArea.style.left=\"\",this.svg.style.right=\"0px\",this.svg.style.left=\"\"),\"top-left\"==this.options[this.side].position||\"top-right\"==this.options[this.side].position)this.dom.frame.style.top=4-+this.body.dom.center.style.top.replace(\"px\",\"\")+\"px\",this.dom.frame.style.bottom=\"\";else{var a=this.body.domProps.center.height-this.body.domProps.centerContainer.height;this.dom.frame.style.bottom=4+a+ +this.body.dom.center.style.top.replace(\"px\",\"\")+\"px\",this.dom.frame.style.top=\"\"}!1==this.options.icons?(this.dom.frame.style.width=this.dom.textArea.offsetWidth+10+\"px\",this.dom.textArea.style.right=\"\",this.dom.textArea.style.left=\"\",this.svg.style.width=\"0px\"):(this.dom.frame.style.width=this.options.iconSize+15+this.dom.textArea.offsetWidth+10+\"px\",this.drawLegendIcons());var r=\"\";for(o=0;o<t.length;o++)n=t[o],!0==this.groups[n].visible&&(void 0===this.linegraphOptions.visibility[n]||!0==this.linegraphOptions.visibility[n])&&(r+=this.groups[n].content+\"<br />\");this.dom.textArea.innerHTML=r,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+\"px\"}},Wt.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var e=Object.keys(this.groups);e.sort(function(e,t){return e<t?-1:1}),ce(this.svgElements);var t=window.getComputedStyle(this.dom.frame).paddingTop,o=+t.replace(\"px\",\"\"),n=this.options.iconSize,a=.75*this.options.iconSize,r=o+.5*a+3;this.svg.style.width=n+5+o+\"px\";for(var s=0,d;s<e.length;s++)d=e[s],!0==this.groups[d].visible&&(void 0===this.linegraphOptions.visibility[d]||!0==this.linegraphOptions.visibility[d])&&(this.groups[d].getLegend(n,a,this.framework,o,r),r+=a+this.options.iconSpacing)}};Ut.prototype=new dn,Ut.prototype._create=function(){var e=document.createElement(\"div\");e.className=\"vis-line-graph\",this.dom.frame=e,this.svg=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\"),this.svg.style.position=\"relative\",this.svg.style.height=(\"\"+this.options.graphHeight).replace(\"px\",\"\")+\"px\",this.svg.style.display=\"block\",e.appendChild(this.svg),this.options.dataAxis.orientation=\"left\",this.yAxisLeft=new ai(this.body,this.options.dataAxis,this.svg,this.options.groups),this.options.dataAxis.orientation=\"right\",this.yAxisRight=new ai(this.body,this.options.dataAxis,this.svg,this.options.groups),delete this.options.dataAxis.orientation,this.legendLeft=new Wt(this.body,this.options.legend,\"left\",this.options.groups),this.legendRight=new Wt(this.body,this.options.legend,\"right\",this.options.groups),this.show()},Ut.prototype.setOptions=function(e){if(e){e.graphHeight===void 0&&e.height!==void 0?(this.updateSVGheight=!0,this.updateSVGheightOnResize=!0):this.body.domProps.centerContainer.height!==void 0&&e.graphHeight!==void 0&&parseInt((e.graphHeight+\"\").replace(\"px\",\"\"))<this.body.domProps.centerContainer.height&&(this.updateSVGheight=!0),So.selectiveDeepExtend([\"sampling\",\"defaultGroup\",\"stack\",\"height\",\"graphHeight\",\"yAxisOrientation\",\"style\",\"barChart\",\"dataAxis\",\"sort\",\"groups\"],this.options,e),So.mergeOptions(this.options,e,\"interpolation\"),So.mergeOptions(this.options,e,\"drawPoints\"),So.mergeOptions(this.options,e,\"shaded\"),So.mergeOptions(this.options,e,\"legend\"),e.interpolation&&\"object\"==je(e.interpolation)&&e.interpolation.parametrization&&(\"uniform\"==e.interpolation.parametrization?this.options.interpolation.alpha=0:\"chordal\"==e.interpolation.parametrization?this.options.interpolation.alpha=1:(this.options.interpolation.parametrization=\"centripetal\",this.options.interpolation.alpha=.5)),this.yAxisLeft&&e.dataAxis!==void 0&&(this.yAxisLeft.setOptions(this.options.dataAxis),this.yAxisRight.setOptions(this.options.dataAxis)),this.legendLeft&&e.legend!==void 0&&(this.legendLeft.setOptions(this.options.legend),this.legendRight.setOptions(this.options.legend)),this.groups.hasOwnProperty(\"__ungrouped__\")&&this.groups.__ungrouped__.setOptions(e)}this.dom.frame&&(this.forceGraphUpdate=!0,this.body.emitter.emit(\"_change\",{queue:!0}))},Ut.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame)},Ut.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame)},Ut.prototype.setItems=function(e){var t=this,o=this.itemsData,n;if(!e)this.itemsData=null;else if(e instanceof rn||e instanceof sn)this.itemsData=e;else throw new TypeError(\"Data must be an instance of DataSet or DataView\");if(o&&(So.forEach(this.itemListeners,function(e,t){o.off(t,e)}),n=o.getIds(),this._onRemove(n)),this.itemsData){var i=this.id;So.forEach(this.itemListeners,function(e,o){t.itemsData.on(o,e,i)}),n=this.itemsData.getIds(),this._onAdd(n)}},Ut.prototype.setGroups=function(e){var t=this,o;if(this.groupsData){So.forEach(this.groupListeners,function(e,o){t.groupsData.off(o,e)}),o=this.groupsData.getIds(),this.groupsData=null;for(var n=0;n<o.length;n++)this._removeGroup(o[n])}if(!e)this.groupsData=null;else if(e instanceof rn||e instanceof sn)this.groupsData=e;else throw new TypeError(\"Data must be an instance of DataSet or DataView\");if(this.groupsData){var a=this.id;So.forEach(this.groupListeners,function(e,o){t.groupsData.on(o,e,a)}),o=this.groupsData.getIds(),this._onAddGroups(o)}},Ut.prototype._onUpdate=function(e){this._updateAllGroupData(e)},Ut.prototype._onAdd=function(e){this._onUpdate(e)},Ut.prototype._onRemove=function(e){this._onUpdate(e)},Ut.prototype._onUpdateGroups=function(e){this._updateAllGroupData(null,e)},Ut.prototype._onAddGroups=function(e){this._onUpdateGroups(e)},Ut.prototype._onRemoveGroups=function(e){for(var t=0;t<e.length;t++)this._removeGroup(e[t]);this.forceGraphUpdate=!0,this.body.emitter.emit(\"_change\",{queue:!0})},Ut.prototype._removeGroup=function(e){this.groups.hasOwnProperty(e)&&(\"right\"==this.groups[e].options.yAxisOrientation?(this.yAxisRight.removeGroup(e),this.legendRight.removeGroup(e),this.legendRight.redraw()):(this.yAxisLeft.removeGroup(e),this.legendLeft.removeGroup(e),this.legendLeft.redraw()),delete this.groups[e])},Ut.prototype._updateGroup=function(e,t){this.groups.hasOwnProperty(t)?(this.groups[t].update(e),\"right\"==this.groups[t].options.yAxisOrientation?(this.yAxisRight.updateGroup(t,this.groups[t]),this.legendRight.updateGroup(t,this.groups[t]),this.yAxisLeft.removeGroup(t),this.legendLeft.removeGroup(t)):(this.yAxisLeft.updateGroup(t,this.groups[t]),this.legendLeft.updateGroup(t,this.groups[t]),this.yAxisRight.removeGroup(t),this.legendRight.removeGroup(t))):(this.groups[t]=new jt(e,t,this.options,this.groupsUsingDefaultStyles),\"right\"==this.groups[t].options.yAxisOrientation?(this.yAxisRight.addGroup(t,this.groups[t]),this.legendRight.addGroup(t,this.groups[t])):(this.yAxisLeft.addGroup(t,this.groups[t]),this.legendLeft.addGroup(t,this.groups[t]))),this.legendLeft.redraw(),this.legendRight.redraw()},Ut.prototype._updateAllGroupData=function(e,t){if(null!=this.itemsData){var o={},n=this.itemsData.get(),a=this.itemsData._fieldId,r={};e&&e.map(function(e){r[e]=e});for(var s={},d=0;d<n.length;d++){var l=n[d],p=l.group;(null===p||p===void 0)&&(p=\"__ungrouped__\"),s.hasOwnProperty(p)?s[p]++:s[p]=1}var m={};if(!t&&e)for(p in this.groups)if(this.groups.hasOwnProperty(p)){y=this.groups[p];var u=y.getItems();o[p]=u.filter(function(e){return m[e[a]]=e[a],e[a]!==r[e[a]]});var c=s[p];s[p]-=o[p].length,o[p].length<c&&(o[p][c-1]={})}for(d=0;d<n.length;d++)if(l=n[d],p=l.group,(null===p||void 0===p)&&(p=\"__ungrouped__\"),!(!t&&e&&l[a]!==r[l[a]]&&m.hasOwnProperty(l[a]))){o.hasOwnProperty(p)||(o[p]=Array(s[p]));var g=So.bridgeObject(l);g.x=So.convert(l.x,\"Date\"),g.end=So.convert(l.end,\"Date\"),g.orginalY=l.y,g.y=+l.y,g[a]=l[a];var h=o[p].length-s[p]--;o[p][h]=g}for(p in this.groups)this.groups.hasOwnProperty(p)&&(o.hasOwnProperty(p)||(o[p]=[]));for(p in o)if(o.hasOwnProperty(p))if(0==o[p].length)this.groups.hasOwnProperty(p)&&this._removeGroup(p);else{var y=void 0;null!=this.groupsData&&(y=this.groupsData.get(p)),null==y&&(y={id:p,content:this.options.defaultGroup+p}),this._updateGroup(y,p),this.groups[p].setItems(o[p])}this.forceGraphUpdate=!0,this.body.emitter.emit(\"_change\",{queue:!0})}},Ut.prototype.redraw=function(){var e=!1;this.props.width=this.dom.frame.offsetWidth,this.props.height=this.body.domProps.centerContainer.height-this.body.domProps.border.top-this.body.domProps.border.bottom,e=this._isResized()||e;var t=this.body.range.end-this.body.range.start,o=t!=this.lastVisibleInterval;if(this.lastVisibleInterval=t,!0==e&&(this.svg.style.width=So.option.asSize(3*this.props.width),this.svg.style.left=So.option.asSize(-this.props.width),(-1!=(this.options.height+\"\").indexOf(\"%\")||!0==this.updateSVGheightOnResize)&&(this.updateSVGheight=!0)),!0==this.updateSVGheight?(this.options.graphHeight!=this.props.height+\"px\"&&(this.options.graphHeight=this.props.height+\"px\",this.svg.style.height=this.props.height+\"px\"),this.updateSVGheight=!1):this.svg.style.height=(\"\"+this.options.graphHeight).replace(\"px\",\"\")+\"px\",!0==e||!0==o||!0==this.abortedGraphUpdate||!0==this.forceGraphUpdate)e=this._updateGraph()||e,this.forceGraphUpdate=!1;else if(0!=this.lastStart){var n=this.body.range.start-this.lastStart,i=this.body.range.end-this.body.range.start;if(0!=this.props.width){var a=this.props.width/i;this.svg.style.left=-this.props.width-n*a+\"px\"}}return this.legendLeft.redraw(),this.legendRight.redraw(),e},Ut.prototype._getSortedGroupIds=function(){var e=[];for(var t in this.groups)if(this.groups.hasOwnProperty(t)){var o=this.groups[t];!0==o.visible&&(this.options.groups.visibility[t]===void 0||!0==this.options.groups.visibility[t])&&e.push({id:t,zIndex:o.options.zIndex})}So.insertSort(e,function(e,t){var o=e.zIndex,n=t.zIndex;return void 0===o&&(o=0),void 0===n&&(n=0),o==n?0:o<n?-1:1});for(var n=Array(e.length),a=0;a<e.length;a++)n[a]=e[a].id;return n},Ut.prototype._updateGraph=function(){if(me(this.svgElements),0!=this.props.width&&null!=this.itemsData){var e={},t=!1,o=this.body.util.toGlobalTime(-this.body.domProps.root.width),n=this.body.util.toGlobalTime(2*this.body.domProps.root.width),a=this._getSortedGroupIds(),r,s;if(0<a.length){var d={};for(this._getRelevantData(a,d,o,n),this._applySampling(a,d),s=0;s<a.length;s++)this._convertXcoordinates(d[a[s]]);if(this._getYRanges(a,d,e),t=this._updateYAxis(a,e),!0==t)return ue(this.svgElements),this.abortedGraphUpdate=!0,!0;this.abortedGraphUpdate=!1;var l;for(s=0;s<a.length;s++)r=this.groups[a[s]],!0!==this.options.stack||\"line\"!==this.options.style||null!=r.options.excludeFromStacking&&r.options.excludeFromStacking||(null!=l&&(this._stack(d[r.id],d[l.id]),!0==r.options.shaded.enabled&&\"group\"!==r.options.shaded.orientation&&(\"top\"==r.options.shaded.orientation&&\"group\"!==l.options.shaded.orientation?(l.options.shaded.orientation=\"group\",l.options.shaded.groupId=r.id):(r.options.shaded.orientation=\"group\",r.options.shaded.groupId=l.id))),l=r),this._convertYcoordinates(d[a[s]],r);var p={};for(s=0;s<a.length;s++)if(r=this.groups[a[s]],\"line\"===r.options.style&&!0==r.options.shaded.enabled){var m=d[a[s]];if(null==m||0==m.length)continue;if(p.hasOwnProperty(a[s])||(p[a[s]]=Ft.calcPath(m,r)),\"group\"===r.options.shaded.orientation){var u=r.options.shaded.groupId;if(-1===a.indexOf(u)){console.log(r.id+\": Unknown shading group target given:\"+u);continue}p.hasOwnProperty(u)||(p[u]=Ft.calcPath(d[u],this.groups[u])),Ft.drawShading(p[a[s]],r,p[u],this.framework)}else Ft.drawShading(p[a[s]],r,void 0,this.framework)}for(Gt.draw(a,d,this.framework),s=0;s<a.length;s++)if(r=this.groups[a[s]],0<d[a[s]].length)switch(r.options.style){case\"line\":p.hasOwnProperty(a[s])||(p[a[s]]=Ft.calcPath(d[a[s]],r)),Ft.draw(p[a[s]],r,this.framework);case\"point\":case\"points\":(\"point\"==r.options.style||\"points\"==r.options.style||!0==r.options.drawPoints.enabled)&&Nt.draw(d[a[s]],r,this.framework);break;case\"bar\":default:}}}return ue(this.svgElements),!1},Ut.prototype._stack=function(e,t){var o,n,i,a,r;o=0;for(var s=0;s<e.length;s++){a=void 0,r=void 0;for(var d=o;d<t.length;d++)if(t[d].x===e[s].x){a=t[d],r=t[d],o=d;break}else if(t[d].x>e[s].x){r=t[d],a=0==d?r:t[d-1],o=d;break}r===void 0&&(a=t[t.length-1],r=t[t.length-1]),n=r.x-a.x,i=r.y-a.y,e[s].y=0==n?e[s].orginalY+r.y:e[s].orginalY+i/n*(e[s].x-a.x)+a.y}},Ut.prototype._getRelevantData=function(e,t,o,n){var a,r,s,d;if(0<e.length)for(r=0;r<e.length;r++){a=this.groups[e[r]];var l=a.getItems();if(!0==a.options.sort){var p=function(e,t){return e.getTime()==t.getTime()?0:e<t?-1:1},m=$t(0,So.binarySearchValue(l,o,\"x\",\"before\",p)),u=Jt(l.length,So.binarySearchValue(l,n,\"x\",\"after\",p)+1);0>=u&&(u=l.length);var c=Array(u-m);for(s=m;s<u;s++)d=a.itemsData[s],c[s-m]=d;t[e[r]]=c}else t[e[r]]=a.itemsData}},Ut.prototype._applySampling=function(e,t){var o;if(0<e.length)for(var n=0;n<e.length;n++)if(o=this.groups[e[n]],!0==o.options.sampling){var a=t[e[n]];if(0<a.length){var r=1,s=a.length,d=this.body.util.toGlobalScreen(a[a.length-1].x)-this.body.util.toGlobalScreen(a[0].x);r=Jt(Kt(.2*s),$t(1,qt(s/d)));for(var l=Array(s),p=0,m;p<s;p+=r)m=qt(p/r),l[m]=a[p];t[e[n]]=l.splice(0,qt(s/r))}}},Ut.prototype._getYRanges=function(e,t,o){var n=[],a=[],r,s,d,l;if(0<e.length){for(d=0;d<e.length;d++)r=t[e[d]],l=this.groups[e[d]].options,0<r.length&&(s=this.groups[e[d]],!0===l.stack&&\"bar\"===l.style?\"left\"===l.yAxisOrientation?n=n.concat(r):a=a.concat(r):o[e[d]]=s.getYRange(r,e[d]));Gt.getStackedYRange(n,o,e,\"__barStackLeft\",\"left\"),Gt.getStackedYRange(a,o,e,\"__barStackRight\",\"right\")}},Ut.prototype._updateYAxis=function(e,t){var o=!1,n=!1,a=!1,r=1e9,s=1e9,d=-1e9,l=-1e9,p,m;if(0<e.length){for(var u=0,c;u<e.length;u++)c=this.groups[e[u]],c&&\"right\"!=c.options.yAxisOrientation?(n=!0,r=1e9,d=-1e9):c&&c.options.yAxisOrientation&&(a=!0,s=1e9,l=-1e9);for(u=0;u<e.length;u++)t.hasOwnProperty(e[u])&&!0!==t[e[u]].ignore&&(p=t[e[u]].min,m=t[e[u]].max,\"right\"==t[e[u]].yAxisOrientation?(a=!0,s=s>p?p:s,l=l<m?m:l):(n=!0,r=r>p?p:r,d=d<m?m:d));!0==n&&this.yAxisLeft.setRange(r,d),!0==a&&this.yAxisRight.setRange(s,l)}o=this._toggleAxisVisiblity(n,this.yAxisLeft)||o,o=this._toggleAxisVisiblity(a,this.yAxisRight)||o,!0==a&&!0==n?(this.yAxisLeft.drawIcons=!0,this.yAxisRight.drawIcons=!0):(this.yAxisLeft.drawIcons=!1,this.yAxisRight.drawIcons=!1),this.yAxisRight.master=!n,this.yAxisRight.masterAxis=this.yAxisLeft,!1==this.yAxisRight.master?(this.yAxisLeft.lineOffset=!0==a?this.yAxisRight.width:0,o=this.yAxisLeft.redraw()||o,o=this.yAxisRight.redraw()||o):o=this.yAxisRight.redraw()||o;var g=[\"__barStackLeft\",\"__barStackRight\",\"__lineStackLeft\",\"__lineStackRight\"];for(u=0;u<g.length;u++)-1!=e.indexOf(g[u])&&e.splice(e.indexOf(g[u]),1);return o},Ut.prototype._toggleAxisVisiblity=function(e,t){var o=!1;return!1==e?t.dom.frame.parentNode&&!1==t.hidden&&(t.hide(),o=!0):!t.dom.frame.parentNode&&!0==t.hidden&&(t.show(),o=!0),o},Ut.prototype._convertXcoordinates=function(e){for(var t=this.body.util.toScreen,o=0;o<e.length;o++)e[o].screen_x=t(e[o].x)+this.props.width,e[o].screen_y=e[o].y,e[o].screen_end=null==e[o].end?void 0:t(e[o].end)+this.props.width},Ut.prototype._convertYcoordinates=function(e,t){var o=this.yAxisLeft,n=+this.svg.style.height.replace(\"px\",\"\");\"right\"==t.options.yAxisOrientation&&(o=this.yAxisRight);for(var a=0;a<e.length;a++)e[a].screen_y=qt(o.convertValue(e[a].y));t.setZeroPosition(Jt(n,o.convertValue(0)))};var si=\"boolean\",di=\"number\",li=\"date\",pi=\"object\",mi=\"moment\",ui=\"any\",ci={configure:{enabled:{boolean:si},filter:{boolean:si,function:\"function\"},container:{dom:\"dom\"},__type__:{object:pi,boolean:si,function:\"function\"}},alignCurrentTime:{string:\"string\",undefined:\"undefined\"},yAxisOrientation:{string:[\"left\",\"right\"]},defaultGroup:{string:\"string\"},sort:{boolean:si},sampling:{boolean:si},stack:{boolean:si},graphHeight:{string:\"string\",number:di},shaded:{enabled:{boolean:si},orientation:{string:[\"bottom\",\"top\",\"zero\",\"group\"]},groupId:{object:pi},__type__:{boolean:si,object:pi}},style:{string:[\"line\",\"bar\",\"points\"]},barChart:{width:{number:di},minWidth:{number:di},sideBySide:{boolean:si},align:{string:[\"left\",\"center\",\"right\"]},__type__:{object:pi}},interpolation:{enabled:{boolean:si},parametrization:{string:[\"centripetal\",\"chordal\",\"uniform\"]},alpha:{number:di},__type__:{object:pi,boolean:si}},drawPoints:{enabled:{boolean:si},onRender:{function:\"function\"},size:{number:di},style:{string:[\"square\",\"circle\"]},__type__:{object:pi,boolean:si,function:\"function\"}},dataAxis:{showMinorLabels:{boolean:si},showMajorLabels:{boolean:si},icons:{boolean:si},width:{string:\"string\",number:di},visible:{boolean:si},alignZeros:{boolean:si},left:{range:{min:{number:di,undefined:\"undefined\"},max:{number:di,undefined:\"undefined\"},__type__:{object:pi}},format:{function:\"function\"},title:{text:{string:\"string\",number:di,undefined:\"undefined\"},style:{string:\"string\",undefined:\"undefined\"},__type__:{object:pi}},__type__:{object:pi}},right:{range:{min:{number:di,undefined:\"undefined\"},max:{number:di,undefined:\"undefined\"},__type__:{object:pi}},format:{function:\"function\"},title:{text:{string:\"string\",number:di,undefined:\"undefined\"},style:{string:\"string\",undefined:\"undefined\"},__type__:{object:pi}},__type__:{object:pi}},__type__:{object:pi}},legend:{enabled:{boolean:si},icons:{boolean:si},left:{visible:{boolean:si},position:{string:[\"top-right\",\"bottom-right\",\"top-left\",\"bottom-left\"]},__type__:{object:pi}},right:{visible:{boolean:si},position:{string:[\"top-right\",\"bottom-right\",\"top-left\",\"bottom-left\"]},__type__:{object:pi}},__type__:{object:pi,boolean:si}},groups:{visibility:{any:ui},__type__:{object:pi}},autoResize:{boolean:si},throttleRedraw:{number:di},clickToUse:{boolean:si},end:{number:di,date:li,string:\"string\",moment:mi},format:{minorLabels:{millisecond:{string:\"string\",undefined:\"undefined\"},second:{string:\"string\",undefined:\"undefined\"},minute:{string:\"string\",undefined:\"undefined\"},hour:{string:\"string\",undefined:\"undefined\"},weekday:{string:\"string\",undefined:\"undefined\"},day:{string:\"string\",undefined:\"undefined\"},month:{string:\"string\",undefined:\"undefined\"},quarter:{string:\"string\",undefined:\"undefined\"},year:{string:\"string\",undefined:\"undefined\"},__type__:{object:pi}},majorLabels:{millisecond:{string:\"string\",undefined:\"undefined\"},second:{string:\"string\",undefined:\"undefined\"},minute:{string:\"string\",undefined:\"undefined\"},hour:{string:\"string\",undefined:\"undefined\"},weekday:{string:\"string\",undefined:\"undefined\"},day:{string:\"string\",undefined:\"undefined\"},month:{string:\"string\",undefined:\"undefined\"},quarter:{string:\"string\",undefined:\"undefined\"},year:{string:\"string\",undefined:\"undefined\"},__type__:{object:pi}},__type__:{object:pi}},moment:{function:\"function\"},height:{string:\"string\",number:di},hiddenDates:{start:{date:li,number:di,string:\"string\",moment:mi},end:{date:li,number:di,string:\"string\",moment:mi},repeat:{string:\"string\"},__type__:{object:pi,array:\"array\"}},locale:{string:\"string\"},locales:{__any__:{any:ui},__type__:{object:pi}},max:{date:li,number:di,string:\"string\",moment:mi},maxHeight:{number:di,string:\"string\"},maxMinorChars:{number:di},min:{date:li,number:di,string:\"string\",moment:mi},minHeight:{number:di,string:\"string\"},moveable:{boolean:si},multiselect:{boolean:si},orientation:{string:\"string\"},showCurrentTime:{boolean:si},showMajorLabels:{boolean:si},showMinorLabels:{boolean:si},start:{date:li,number:di,string:\"string\",moment:mi},timeAxis:{scale:{string:\"string\",undefined:\"undefined\"},step:{number:di,undefined:\"undefined\"},__type__:{object:pi}},width:{string:\"string\",number:di},zoomable:{boolean:si},zoomKey:{string:[\"ctrlKey\",\"altKey\",\"metaKey\",\"\"]},zoomMax:{number:di},zoomMin:{number:di},zIndex:{number:di},__type__:{object:pi}},gi={global:{alignCurrentTime:[\"none\",\"year\",\"month\",\"quarter\",\"week\",\"isoWeek\",\"day\",\"date\",\"hour\",\"minute\",\"second\"],sort:!0,sampling:!0,stack:!1,shaded:{enabled:!1,orientation:[\"zero\",\"top\",\"bottom\",\"group\"]},style:[\"line\",\"bar\",\"points\"],barChart:{width:[50,5,100,5],minWidth:[50,5,100,5],sideBySide:!1,align:[\"left\",\"center\",\"right\"]},interpolation:{enabled:!0,parametrization:[\"centripetal\",\"chordal\",\"uniform\"]},drawPoints:{enabled:!0,size:[6,2,30,1],style:[\"square\",\"circle\"]},dataAxis:{showMinorLabels:!0,showMajorLabels:!0,icons:!1,width:[40,0,200,1],visible:!0,alignZeros:!0,left:{title:{text:\"\",style:\"\"}},right:{title:{text:\"\",style:\"\"}}},legend:{enabled:!1,icons:!0,left:{visible:!0,position:[\"top-right\",\"bottom-right\",\"top-left\",\"bottom-left\"]},right:{visible:!0,position:[\"top-right\",\"bottom-right\",\"top-left\",\"bottom-left\"]}},autoResize:!0,clickToUse:!1,end:\"\",format:{minorLabels:{millisecond:\"SSS\",second:\"s\",minute:\"HH:mm\",hour:\"HH:mm\",weekday:\"ddd D\",day:\"D\",month:\"MMM\",quarter:\"[Q]Q\",year:\"YYYY\"},majorLabels:{millisecond:\"HH:mm:ss\",second:\"D MMMM HH:mm\",minute:\"ddd D MMMM\",hour:\"ddd D MMMM\",weekday:\"MMMM YYYY\",day:\"MMMM YYYY\",month:\"YYYY\",quarter:\"YYYY\",year:\"\"}},height:\"\",locale:\"\",max:\"\",maxHeight:\"\",maxMinorChars:[7,0,20,1],min:\"\",minHeight:\"\",moveable:!0,orientation:[\"both\",\"bottom\",\"top\"],showCurrentTime:!1,showMajorLabels:!0,showMinorLabels:!0,start:\"\",width:\"100%\",zoomable:!0,zoomKey:[\"ctrlKey\",\"altKey\",\"metaKey\",\"\"],zoomMax:[31536e10,10,31536e10,1],zoomMin:[10,10,31536e10,1],zIndex:0}};zt.prototype=new xn,zt.prototype.setOptions=function(e){var t=zn.validate(e,ci);!0===t&&console.log(\"%cErrors have been found in the supplied options object.\",Un),xn.prototype.setOptions.call(this,e)},zt.prototype.setItems=function(e){var t=null==this.itemsData,o;if(o=e?e instanceof rn||e instanceof sn?e:new rn(e,{type:{start:\"Date\",end:\"Date\"}}):null,this.itemsData=o,this.linegraph&&this.linegraph.setItems(o),t)if(null!=this.options.start||null!=this.options.end){var n=null==this.options.start?null:this.options.start,i=null==this.options.end?null:this.options.end;this.setWindow(n,i,{animation:!1})}else this.fit({animation:!1})},zt.prototype.setGroups=function(e){var t;t=e?e instanceof rn||e instanceof sn?e:new rn(e):null,this.groupsData=t,this.linegraph.setGroups(t)},zt.prototype.getLegend=function(e,t,o){return void 0===t&&(t=15),void 0===o&&(o=15),void 0===this.linegraph.groups[e]?\"cannot find group:'\"+e+\"'\":this.linegraph.groups[e].getLegend(t,o)},zt.prototype.isGroupVisible=function(e){return void 0!==this.linegraph.groups[e]&&this.linegraph.groups[e].visible&&(void 0===this.linegraph.options.groups.visibility[e]||!0==this.linegraph.options.groups.visibility[e])},zt.prototype.getDataRange=function(){var e=null,t=null;for(var o in this.linegraph.groups)if(this.linegraph.groups.hasOwnProperty(o)&&!0==this.linegraph.groups[o].visible)for(var n=0;n<this.linegraph.groups[o].itemsData.length;n++){var a=this.linegraph.groups[o].itemsData[n],r=So.convert(a.x,\"Date\").valueOf();e=null==e?r:e>r?r:e,t=null==t?r:t<r?r:t}return{min:null==e?null:new Date(e),max:null==t?null:new Date(t)}},zt.prototype.getEventProperties=function(e){var t=e.center?e.center.x:e.clientX,o=e.center?e.center.y:e.clientY,n=t-So.getAbsoluteLeft(this.dom.centerContainer),i=o-So.getAbsoluteTop(this.dom.centerContainer),a=this._toTime(n),r=wn.customTimeFromTarget(e),s=So.getTarget(e),d=null;So.hasParent(s,this.timeAxis.dom.foreground)?d=\"axis\":this.timeAxis2&&So.hasParent(s,this.timeAxis2.dom.foreground)?d=\"axis\":So.hasParent(s,this.linegraph.yAxisLeft.dom.frame)?d=\"data-axis\":So.hasParent(s,this.linegraph.yAxisRight.dom.frame)?d=\"data-axis\":So.hasParent(s,this.linegraph.legendLeft.dom.frame)?d=\"legend\":So.hasParent(s,this.linegraph.legendRight.dom.frame)?d=\"legend\":null==r?So.hasParent(s,this.currentTime.bar)?d=\"current-time\":So.hasParent(s,this.dom.center)&&(d=\"background\"):d=\"custom-time\";var l=[],p=this.linegraph.yAxisLeft,m=this.linegraph.yAxisRight;return!p.hidden&&0<this.itemsData.length&&l.push(p.screenToValue(i)),!m.hidden&&0<this.itemsData.length&&l.push(m.screenToValue(i)),{event:e,what:d,pageX:e.srcEvent?e.srcEvent.pageX:e.pageX,pageY:e.srcEvent?e.srcEvent.pageY:e.pageY,x:n,y:i,time:a,value:l}},zt.prototype._createConfigurator=function(){return new oi(this,this.dom.container,gi)};var hi={util:So,DOMutil:Co,DataSet:rn,DataView:sn,Queue:tn,Timeline:ni,Graph2d:zt,timeline:{Core:xn,DateUtil:ln,Range:pn,stack:Cn,TimeStep:fn,components:{items:{Item:In,BackgroundItem:Rn,BoxItem:Pn,PointItem:En,RangeItem:Yn},BackgroundGroup:Mn,Component:dn,CurrentTime:Dn,CustomTime:wn,DataAxis:ai,DataScale:ii,GraphGroup:jt,Group:On,ItemSet:jn,Legend:Wt,LineGraph:Ut,TimeAxis:bn}},moment:e,Hammer:yn,keycharm:vn};return hi});\n//# sourceMappingURL=vis-timeline-graph2d.min.js.map\n}exports.vis = vis;\n\n\n\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/kixam/timeline/widget.timeline.js": {
"title": "$:/plugins/kixam/timeline/widget.timeline.js",
"text": "/*\\\ntitle: $:/plugins/kixam/timeline/widget.timeline.js\ntype: application/javascript\nmodule-type: widget\n\n A widget for displaying timelines using Vis.js. http://visjs.org\n Continued from emkay's plugin at https://github.com/emkayonline/tw5visjs\n\n For full help see $:/plugins/kixam/timeline/help\n\n\\*/\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\n(function() {\n 'use strict';\n\n var Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n var moment = require(\"$:/plugins/kixam/moment/moment.js\");\n if(typeof window !== 'undefined' && typeof window.moment !== 'function') {\n window.moment = moment;\n }\n var utils = require(\"$:/plugins/kixam/timeline/lib.utils.js\");\n var vis = require(\"$:/plugins/kixam/timeline/vis-timeline.js\");\n if(typeof window !== 'undefined' && typeof window.vis !== 'function') {\n window.vis = vis;\n }\n\n var TimelineWidget = function(parseTreeNode,options) {\n Widget.call(this);\n this.initialise(parseTreeNode,options);\n };\n\n TimelineWidget.prototype = new Widget();\n\n TimelineWidget.prototype.render = function(parent,nextSibling) {\n this.parentDomNode = parent;\n this.computeAttributes();\n this.options = {orientation: \"bottom\"};\n this.tiddler = this.parentWidget;\n while(this.tiddler.parentWidget !== undefined && this.tiddler.tiddlerTitle === undefined && this.tiddler.transcludeTitle === undefined) {\n this.tiddler = this.tiddler.parentWidget;\n }\n this.tiddler = $tw.wiki.getTiddler(this.tiddler.tiddlerTitle || this.tiddler.transcludeTitle);\n this.warningTiddlerTitle = \"$:/temp/plugins/kixam/visjstimeline/warning/\" + this.tiddler.fields.title;\n this.persistentTiddlerTitle = \"$:/temp/plugins/kixam/visjstimeline/persistent/\" + this.tiddler.fields.title;\n this.hasCustomTime = false;\n this.twformat = \"YYYYMMDDHHmmssSSS\"\n\n var attrParseWorked = this.execute();\n if (attrParseWorked === undefined) {\n this.timelineHolder = $tw.utils.domMaker(\"div\",{attributes:{style: \"position: relative;\"}});\n parent.insertBefore(this.timelineHolder,nextSibling);\n this.domNodes.push(this.timelineHolder);\n\n if(this.attributes[\"boxing\"] !== \"auto\") {\n this.timelineHolder.style[\"height\"]=\"100%\";\n // -- adapted from felixhayashi's tiddlymap in widget.map.js\n this.sidebar = document.getElementsByClassName(\"tc-sidebar-scrollable\")[0];\n this.isContainedInSidebar = (this.sidebar && this.sidebar.contains(this.parentDomNode));\n if(this.isContainedInSidebar) {\n this.parentDomNode.style[\"margin-top\"]=\"-14px\";\n this.parentDomNode.style[\"padding-right\"]=\"2px\";\n } else {\n this.parentDomNode.style[\"height\"] = \"auto\";\n }\n parent.style[\"width\"] = this.getAttribute(\"width\", \"100%\");\n this.handleResizeEvent = this.handleResizeEvent.bind(this);\n window.addEventListener(\"resize\", this.handleResizeEvent, false);\n this.handleResizeEvent();\n // --\n this.options[\"height\"] = \"100%\";\n }\n\n this.createWarningButton();\n\n this.createTimeline();\n\n if(this.attributes[\"navpad\"] !== undefined) {\n this.options[\"orientation\"] = \"top\";\n }\n // default options must be set at this point, as we might add/change options from user through 'config'\n this.updateTimeline();\n\n if(this.attributes[\"navpad\"] !== undefined) {\n this.createNavpad(); // must be created only after all options were processed\n // e.g. for clickToUse, we observe vis-overlay, which will not exist if option is not processed\n }\n\n\n } else {\n utils.dispError(this.parseTreeNode.type+\": Unexpected attribute(s) \"+attrParseWorked.join(\", \"));\n this.refresh = function() {}; // disable refresh of this as it won't work with incorrrect attributes\n }\n };\n\n\n TimelineWidget.prototype.execute = function() {\n var attrParseWorked = utils.parseWidgetAttributes(this,{\n filter: { type: \"string\", defaultValue: \"[!is[system]]\"},\n groupField: { type: \"string\", defaultValue: undefined},\n startDateField: { type: \"string\", defaultValue: \"created\"},\n endDateField: { type: \"string\", defaultValue: undefined},\n format: { type: \"string\", defaultValue: undefined},\n tipFormat: { type: \"string\", defaultValue: undefined},\n customTime: { type: \"string\", defaultValue: undefined},\n groupTags: {type: \"string\", defaultValue: undefined},\n boxing: {type: \"string\", defaultValue: \"static\"},\n navpad: {type: \"string\", defaultValue: undefined},\n config: {type: \"string\", defaultValue: undefined},\n persistent: {type: \"string\", defaultValue: undefined},\n });\n\n if ((attrParseWorked === undefined) && (this.filter)) {\n this.compiledFilter = this.wiki.compileFilter(this.filter);\n }\n\n return attrParseWorked;\n };\n\n TimelineWidget.prototype.getTimepointList = function(changedTiddlers) {\n var tiddlerList = [];\n // process the filter into an array of tiddler titles\n tiddlerList = this.compiledFilter.call(null, changedTiddlers, null);\n // If filter is a list of tiddlers it will return tiddlers even if they are not in changed Tiddlers\n if (changedTiddlers !== undefined) {\n tiddlerList = tiddlerList.filter(function (e) { return changedTiddlers[e];});\n }\n var self = this;\n var withoutDraftsList = tiddlerList.filter(function(optionTitle) {\n var optionTiddler = self.wiki.getTiddler(optionTitle);\n if (optionTiddler === undefined) {\n // tiddler may not exist if list attribute provided to widget, so exclude\n return true;\n } else {\n var isDraft = optionTiddler && optionTiddler.hasField(\"draft.of\");\n return !isDraft;\n }\n });\n return withoutDraftsList;\n };\n /*\n Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n */\n TimelineWidget.prototype.refresh = function(changedTiddlers) {\n var changedAttributes = this.computeAttributes();\n if(changedAttributes.filter\n || changedAttributes.startDateField\n || changedAttributes.endDateField\n || changedAttributes.tipFormat\n || changedAttributes.groupField\n || changedAttributes.customTime\n || changedAttributes.groupTags\n || changedAttributes.boxing\n || changedAttributes.navpad\n || changedAttributes.config) {\n this.refreshSelf();\n this.updateTimeline();\n return true;\n }\n if (this.displayedTiddlers.some(function (e) { return changedTiddlers[e.id]; })) {\n this.updateTimeline();\n return true;\n }\n var anyRelevantChanges = this.getTimepointList(changedTiddlers);\n if (anyRelevantChanges.length !== 0) {\n this.updateTimeline();\n return true;\n }\n this.handleResizeEvent();\n };\n\n TimelineWidget.prototype.createTimeline = function() {\n var data = [];\n // create the timeline\n this.timeline = new vis.Timeline(this.timelineHolder, data, this.options);\n this.timeline.fit();\n\n if(this.attributes[\"persistent\"] !== undefined) {\n var persistentConfigTiddler = $tw.wiki.getTiddler(this.persistentTiddlerTitle);\n if(persistentConfigTiddler === undefined) {\n // duplicate initial settings to working tiddler if it does not exist\n var start = moment(this.timeline.getWindow().start),\n end = moment(this.timeline.getWindow().end),\n fields = {title: this.persistentTiddlerTitle,\n text: \"Timeline in [[\" + this.tiddler.fields.title + \"]] starts from {{!!timeline.start}} and ends at {{!!timeline.end}}\"};\n if(start.isValid() && end.isValid() && start.isBefore(end)) {\n fields[\"timeline.start\"] = start.format(this.format || this.twformat);\n fields[\"timeline.end\"] = end.format(this.format || this.twformat);\n }\n persistentConfigTiddler = $tw.wiki.addTiddler(new $tw.Tiddler(fields));\n } else {\n // apply saved x-axis range from the working tiddler\n var start = moment(dateFieldToDate(persistentConfigTiddler.fields[\"timeline.start\"], this.format || this.twformat)),\n end = moment(dateFieldToDate(persistentConfigTiddler.fields[\"timeline.end\"], this.format || this.twformat));\n if(start.isValid() && end.isValid() && start.isBefore(end)) {\n this.timeline.setWindow(start,end);\n }\n }\n // monitor and save changes in x-axis range\n this.writeRange = false;\n this.handleRangeChanged = this.handleRangeChanged.bind(this);\n this.timeline.on('rangechanged', this.handleRangeChanged);\n }\n\n var self = this;\n this.timeline.on('click', function(properties) {\n // Check if background or a tiddler is selected\n if (properties.item !== null) {\n var toTiddlerTitle = properties.item;\n utils.displayTiddler(self, toTiddlerTitle);\n }\n else if(properties.group !== null && properties.what === \"group-label\") {\n var toTiddlerTitle = properties.group;\n if($tw.wiki.getTiddler(toTiddlerTitle)) {\n utils.displayTiddler(self, toTiddlerTitle);\n }\n }\n });\n };\n\n TimelineWidget.prototype.handleRangeChanged = function(properties) {\n if(properties.byUser || this.writeRange) {\n var start = moment(properties.start);\n var end = moment(properties.end);\n if(start.isValid() && end.isValid()) {\n utils.setTiddlerField(this.persistentTiddlerTitle, \"timeline.start\", this.format ? start.format(this.format) : start.format(this.twformat));\n utils.setTiddlerField(this.persistentTiddlerTitle, \"timeline.end\", this.format ? end.format(this.format) : end.format(this.twformat));\n }\n }\n this.writeRange = false;\n };\n\n // -- adapted from felixhayashi's tiddlymap in widget.map.js\n TimelineWidget.prototype.handleResizeEvent = function(event) {\n if(this.isContainedInSidebar) {\n var windowHeight = window.innerHeight;\n var canvasOffset = this.parentDomNode.getBoundingClientRect().top;\n var distanceBottom = this.getAttribute(\"bottom-spacing\", \"0px\");\n var calculatedHeight = (windowHeight - canvasOffset - (this.isContainedInSidebar?3:0)) + \"px\";\n this.parentDomNode.style[\"height\"] = \"calc(\" + calculatedHeight + \" - \" + distanceBottom + \")\";\n } else if(this.attributes[\"boxing\"] === \"auto\") {\n this.parentDomNode.style[\"height\"] = \"auto\";\n } else {\n var height = this.getAttribute(\"height\");\n this.parentDomNode.style[\"height\"] = (height ? height : \"300px\");\n }\n if(this.timeline) {\n this.timeline.redraw(); // redraw timeline\n }\n };\n // --\n\n TimelineWidget.prototype.createWarningButton = function() {\n var button = $tw.utils.domMaker(\"div\", {innerHTML: $tw.wiki.getTiddlerText(\"$:/core/images/warning\",\"Warning\"), class: \"visjstimeline-warning\", attributes: {title: \"Not all tiddlers could be rendered\", style: \"visibility: hidden\"}});\n\n this.timelineHolder.appendChild(button);\n this.domNodes.push(button);\n\n this.handleWarningClick = this.handleWarningClick.bind(this);\n button.addEventListener(\"click\", this.handleWarningClick, false);\n }\n\n TimelineWidget.prototype.handleWarningClick = function(event) {\n utils.displayTiddler(this, this.warningTiddlerTitle);\n }\n\n TimelineWidget.prototype.appendWarning = function(message) {\n if($tw.wiki.getTiddler(this.warningTiddlerTitle) === undefined) {\n var format = \"Using \";\n if(this.format === undefined) {\n format += \"[[TW5 date format|http://tiddlywiki.com/#DateFormat]]\";\n } else {\n format += \"[[moment.js format|http://momentjs.com/docs/#/parsing/string-format/]]: `\" + this.format + \"`\";\n }\n var fields = {title: this.warningTiddlerTitle, text: \"!!!Problems found while rendering `<$visjstimeline/>` in [[\"+this.tiddler.fields.title+\"]]\\n\\n\" + format + \"\\n\\n|!Tiddler|!Problem|!Result|\\n\"};\n $tw.wiki.addTiddler(new $tw.Tiddler(fields));\n }\n utils.setTiddlerField(this.warningTiddlerTitle,\"text\", $tw.wiki.getTiddlerText(this.warningTiddlerTitle) + message + \"\\n\");\n var button = this.timelineHolder.getElementsByClassName(\"visjstimeline-warning\")[0];\n button.style[\"visibility\"] = \"visible\";\n }\n\n TimelineWidget.prototype.resetWarning = function() {\n $tw.wiki.deleteTiddler(this.warningTiddlerTitle);\n var button = this.timelineHolder.getElementsByClassName(\"visjstimeline-warning\")[0];\n button.style[\"visibility\"] = \"hidden\";\n }\n\n TimelineWidget.prototype.createNavpad = function() {\n var navpad = $tw.utils.domMaker(\"div\",{class: \"visjstimeline-navpad\"});\n\n this.timelineHolder.appendChild(navpad);\n this.domNodes.push(navpad);\n\n navpad.appendChild($tw.utils.domMaker(\"div\",{attributes:{id: \"up\", title: \"Browse up\", style: \"visibility: hidden\"}, innerHTML: \"▲\"}));\n navpad.appendChild($tw.utils.domMaker(\"div\",{attributes:{id: \"down\", title: \"Browse down\", style: \"visibility: hidden\"}, innerHTML: \"▼\"}));\n navpad.appendChild($tw.utils.domMaker(\"div\",{attributes:{id: \"left\", title: \"Browse to earlier\"}, innerHTML: \"◀\"}));\n navpad.appendChild($tw.utils.domMaker(\"div\",{attributes:{id: \"right\", title: \"Browse to later\"}, innerHTML: \"▶\"}));\n navpad.appendChild($tw.utils.domMaker(\"div\",{attributes:{id: \"zoomIn\", title: \"Zoom in\"}, innerHTML: \"⌼\"}));\n navpad.appendChild($tw.utils.domMaker(\"div\",{attributes:{id: \"zoomOut\", title: \"Zoom out\"}, innerHTML: \"⌻\"}));\n navpad.appendChild($tw.utils.domMaker(\"div\",{attributes:{id: \"zoomExtends\", title: \"Zoom to fit entries\"}, innerHTML: \"⛶\"}));\n\n this.handleNavpadClick = this.handleNavpadClick.bind(this);\n for(var i=0; i<navpad.childNodes.length; i++) {\n this.domNodes.push(navpad.childNodes[i]);\n navpad.childNodes[i].addEventListener(\"click\", this.handleNavpadClick, false);\n }\n\n var panel = this.timelineHolder.getElementsByClassName(\"vis-panel vis-center\")[0];\n var top = panel.getElementsByClassName(\"vis-shadow vis-top\")[0];\n var bottom = panel.getElementsByClassName(\"vis-shadow vis-bottom\")[0];\n var overlay = this.timelineHolder.getElementsByClassName(\"vis-overlay\")[0];\n\n this.handleItemsVisibilityChanged = this.handleItemsVisibilityChanged.bind(this);\n var self = this;\n var observer = new MutationObserver(function(mutations) {\n for(var i=0; i<mutations.length; i++) {\n self.handleItemsVisibilityChanged(mutations[i]);\n }});\n observer.observe(top, {attributes: true, subtree: false});\n observer.observe(bottom, {attributes: true, subtree: false});\n if(overlay !== undefined) { // clickToUse === true\n observer.observe(overlay, {attributes: true, subtree: false});\n navpad.style[\"visibility\"] = \"hidden\";\n }\n }\n\n TimelineWidget.prototype.handleItemsVisibilityChanged = function(mutation) {\n if(mutation.attributeName === \"style\") {\n if((' ' + mutation.target.className + ' ').indexOf(' vis-overlay ') > -1) {\n // whole navpad visibility\n var timeline = this.timelineHolder.getElementsByClassName(\"vis-timeline\")[0];\n var navpad = this.timelineHolder.getElementsByClassName(\"navpad\")[0];\n if(navpad !== undefined) {\n navpad.style[\"visibility\"] = (mutation.target.style[\"display\"] === \"none\" ? \"visible\":\"hidden\");\n }\n } else {\n // up and down buttons visibility\n var cls = \"vis-button \" + ( (' ' + mutation.target.className + ' ').indexOf(' vis-top ') > -1 ? \"vis-up\":\"vis-down\" );\n var button = this.timelineHolder.getElementsByClassName(cls)[0];\n if(button !== undefined) {\n button.style[\"visibility\"] = mutation.target.style[\"visibility\"];\n }\n }\n }\n }\n\n TimelineWidget.prototype.handleNavpadClick = function(event) {\n var range = this.timeline.getWindow();\n var interval = range.end - range.start;\n var ratio = 0.2; // horizontal movement\n var step = 10; // vertical movement\n\n var centerdiv = this.timelineHolder.getElementsByClassName(\"vis-panel vis-center\")[0];\n var contentdiv = centerdiv.getElementsByClassName(\"vis-content\")[0];\n this.writeRange = true; // handle persistence\n switch (event.target.id) {\n case \"up\":\n centerdiv.getElementsByClassName(\"vis-shadow vis-bottom\")[0].style[\"visibility\"] = \"visible\";\n contentdiv.style[\"top\"] = parseInt(contentdiv.style[\"top\"]) + step + \"px\";\n if(parseInt(contentdiv.style[\"top\"]) >= 0) {\n contentdiv.style[\"top\"] = \"0px\";\n centerdiv.getElementsByClassName(\"vis-shadow vis-top\")[0].style[\"visibility\"] = \"hidden\";\n }\n break;\n case \"down\":\n centerdiv.getElementsByClassName(\"vis-shadow vis-top\")[0].style[\"visibility\"] = \"visible\";\n contentdiv.style[\"top\"] = parseInt(contentdiv.style[\"top\"]) - step + \"px\";\n if( Math.abs(parseInt(contentdiv.style[\"top\"])) > contentdiv.getBoundingClientRect().height - centerdiv.getBoundingClientRect().height ) {\n contentdiv.style[\"top\"] = contentdiv.getBoundingClientRect().height - centerdiv.getBoundingClientRect().height;\n centerdiv.getElementsByClassName(\"vis-shadow vis-bottom\")[0].style[\"visibility\"] = \"hidden\";\n }\n break;\n case \"left\":\n this.timeline.setWindow({\n start: range.start.valueOf() - interval * ratio,\n end : range.end.valueOf() - interval * ratio,\n });\n break;\n case \"right\":\n this.timeline.setWindow({\n start: range.start.valueOf() + interval * ratio,\n end : range.end.valueOf() + interval * ratio,\n });\n break;\n case \"zoomIn\":\n this.timeline.setWindow({\n start: range.start.valueOf() + interval * ratio,\n end : range.end.valueOf() - interval * ratio,\n });\n break;\n case \"zoomOut\":\n this.timeline.setWindow({\n start: range.start.valueOf() - interval * ratio,\n end : range.end.valueOf() + interval * ratio,\n });\n break;\n case \"zoomExtends\":\n this.timeline.fit();\n break;\n default:\n this.dispError(\"No such navtab action: \" + action);\n }\n }\n\n function dateFieldToDate(dateField, dateFormat) {\n if(dateField === undefined) return;\n dateField = dateField.trim();\n var re = /moment\\([\"' ]*([^)\"']*)[\"' ]*\\)\\.(add|subtract)\\( *([^,]+) *,[\"' ]*([^)\"']+)[\"' ]*\\)/i;\n if (re.test(dateField)) {\n var res = re.exec(dateField),\n def = res[1],\n operation = res[2],\n qty = parseInt(res[3]),\n unit = res[4],\n m = (def.trim() === \"\" ? moment() : moment(def));\n if (operation === \"add\") {\n m.add(qty, unit);\n } else if(operation === \"subtract\"){\n m.subtract(qty, unit);\n }\n else m = moment.invalid();\n if (m.isValid()) {\n return m.toDate();\n }\n }\n else if (dateField === \"now\") {\n return new Date();\n }\n else if (dateField !== \"\") {\n if (dateFormat === undefined) {\n return $tw.utils.parseDate(dateField);\n } else {\n var m = moment(dateField, dateFormat, true);\n if (m.isValid()) {\n return m.toDate();\n }\n }\n }\n }\n\n function iconPrefix(icon, color, spanclass)\n {\n var text = \"\",\n iconTiddler = $tw.wiki.getTiddler(icon);\n if(iconTiddler !== undefined) {\n text = \"</span> \";\n var type = iconTiddler.fields.type || \"image/svg+xml\";\n if(type === \"image/svg+xml\") {\n text = iconTiddler.fields.text + text;\n } else {\n $tw.Wiki.parsers[type](type, iconTiddler.fields.text, iconTiddler.fields);\n var obj = $tw.Wiki.parsers.tree[0];\n text = \"></\" + obj.tag + \">\" + text;\n for(var k in obj.attributes) {\n text = \" \" + k + \" = '\" + obj.attributes[k].value + \"'\" + text;\n }\n text = \"<\" + obj.tag + text;\n }\n text = \"<span class='\" + spanclass + \"'\" + (color?\" style='fill:\"+color+\"';\":\"\") + \">\" + text;\n }\n return text;\n }\n\n function addTimeData(self) {\n return function(current, tiddlerName) {\n var currentData = current.data;\n var currentGroups = current.groups;\n var currentErrors = current.errors;\n var theTiddler = self.wiki.getTiddler(tiddlerName);\n // tiddler may not exist if list attribute provided to widget\n if (theTiddler !== undefined) {\n var tiddlerStartDate = theTiddler.getFieldString(self.startDateField);\n var startDate = dateFieldToDate(tiddlerStartDate, self.format);\n if (!isNaN(startDate)) {\n var caption = theTiddler.fields.caption || tiddlerName,\n description = theTiddler.fields.description || caption,\n color = theTiddler.fields.color || false,\n style = \"border-color: \" + color + \";\" || \"\",\n icon = theTiddler.fields.icon;\n caption = iconPrefix(icon, color, \"item-icon\") + caption;\n if(self.tipFormat !== undefined) {\n description += \"<br><br>\" + self.startDateField + \": \" + moment(startDate).format(self.tipFormat);\n }\n var newTimepoint = {id: tiddlerName, content: caption, title: description, style: style, start: startDate, type: 'point'};\n var tiddlerGroup = \"\";\n if (self.groupField !== undefined) {\n tiddlerGroup = theTiddler.getFieldString(self.groupField);\n } else if(self.groupTags !== undefined) {\n $tw.utils.each($tw.wiki.filterTiddlers(self.groupTags),\n function(tag) {if(theTiddler.hasTag(tag)) tiddlerGroup = tag;});\n }\n if(self.groupTags !== undefined || self.groupField !== undefined) {\n if (tiddlerGroup !== \"\") {\n newTimepoint.group = tiddlerGroup;\n currentGroups[tiddlerGroup] = true;\n } else {\n newTimepoint.group = \"Global\";\n currentGroups.Global = true;\n }\n }\n if (self.endDateField !== undefined ) {\n var tiddlerEndDate = theTiddler.getFieldString(self.endDateField);\n var endDate = dateFieldToDate(tiddlerEndDate, self.format);\n if(!isNaN(endDate) && endDate < startDate) {\n currentErrors.push(\"| [[\" + tiddlerName + \"]] |End date \\\"\" + tiddlerEndDate + \"\\\" (field `\" + self.endDateField + \"`) is before start date \\\"\" + tiddlerStartDate + \"\\\" (field `\" + self.startDateField + \"`)|Used start date as end date|\");\n endDate = startDate;\n }\n else if(isNaN(endDate)) {\n if(tiddlerEndDate === \"\") {\n currentErrors.push(\"| [[\" + tiddlerName + \"]] |End date field `\" + self.endDateField + \"` is empty or does not exist|Used start date as end date|\");\n } else {\n currentErrors.push(\"| [[\" + tiddlerName + \"]] |Could not parse end date \\\"\" + tiddlerEndDate + \"\\\" from field `\" + self.endDateField + \"`|Used start date as end date|\");\n }\n endDate = startDate;\n }\n else if(self.tipFormat !== undefined) {\n newTimepoint.title += \"<br>\" + self.endDateField + \": \" + moment(endDate).format(self.tipFormat);\n }\n\n newTimepoint.end = endDate;\n if (newTimepoint.end.getTime() != newTimepoint.start.getTime()) {\n newTimepoint.type = 'range';\n if(theTiddler.getFieldString(\"color\") !== \"\") {\n newTimepoint.style += \"border-width: 3px;\" + utils.enhancedColorStyle(theTiddler.getFieldString(\"color\"));\n }\n }\n }\n currentData.push(newTimepoint);\n } else {\n if(tiddlerStartDate === \"\") {\n currentErrors.push(\"| [[\" + tiddlerName + \"]] |Start date field `\" + self.startDateField + \"` is empty or does not exist|Not rendered|\");\n } else {\n currentErrors.push(\"| [[\" + tiddlerName + \"]] |Could not parse start date \\\"\" + tiddlerStartDate + \"\\\" from field `\" + self.startDateField + \"`|Not rendered|\");\n }\n }\n } else {\n currentErrors.push(\"| [[\" + tiddlerName + \"]] |Tiddler was not found|Not rendered|\");\n }\n return {data: currentData, groups: currentGroups, errors: currentErrors};\n };\n }\n\n TimelineWidget.prototype.updateTimeline = function() {\n this.resetWarning();\n\n var langprefix = \"$:/languages/\".length,\n lang = $tw.wiki.getTiddlerText(\"$:/language\").substring(langprefix, langprefix + 2);\n if(lang === \"zh\") {\n // TW5 does not use standard codes for Chinese\n var suffix = $tw.wiki.getTiddlerText(\"$:/language\");\n suffix = suffix.substring(suffix.length-1);\n if(suffix === \"s\") {\n lang = \"zh-cn\"; //simplified\n } else {\n lang = \"zh-tw\"; //traditional\n }\n }\n this.options[\"locale\"] = moment.locale([lang, \"en\"]);\n\n var timepointList = this.getTimepointList();\n var groups = {};\n if(this.groupTags !== undefined) {\n $tw.utils.each($tw.wiki.filterTiddlers(this.groupTags),\n function(tag) {groups[tag] = false;});\n }\n var result = timepointList.reduce(addTimeData(this), {data: [], groups: groups, errors: []});\n this.displayedTiddlers = result.data;\n this.timeline.setItems(result.data);\n if (this.customTime !== undefined) {\n if(this.hasCustomTime) {\n this.timeline.removeCustomTime();\n this.hasCustomTime = false;\n }\n var d = dateFieldToDate(this.customTime, this.format);\n if (d !== undefined) {\n this.timeline.addCustomTime(d);\n this.hasCustomTime = true;\n }\n }\n // override default options with these provided by the user, if any\n var config = $tw.wiki.getTiddlerData(this.attributes[\"config\"], {});\n var whitelist = $tw.wiki.getTiddlerData(\"$:/plugins/kixam/timeline/validOptions\", {\"whitelist\":[]}).whitelist;\n if(this.attributes[\"persistent\"] !== undefined) {\n whitelist.start = undefined;\n whitelist.end = undefined;\n }\n for(var opt in config) {\n if(whitelist.indexOf(opt) > -1) this.options[opt] = config[opt];\n }\n this.timeline.setOptions(this.options);\n if (Object.keys(result.groups).length !== 0) {\n var theGroups = [];\n for (var group in result.groups) {\n if(result.groups[group]) {\n if(group === \"Global\") {\n theGroups.splice(0,0,{id: group,\n content: \"— Global —\",\n title: \"(Global)\",\n style: \"background-color:rgba(0,0,0,0); font-style:italic;\"});\n } else {\n theGroups.push({id: group, content: group, title: group});\n var tiddler = $tw.wiki.getTiddler(group);\n if(tiddler !== undefined) {\n var icon = tiddler.fields.icon,\n color = tiddler.fields.color || false,\n caption = iconPrefix(icon, color, \"group-icon\") + \"<p>\" + (tiddler.fields.caption || group) + \"</p>\",\n description = tiddler.fields.description || tiddler.fields.caption || group;\n if(color) {\n theGroups[theGroups.length-1].style = \"border-width:3px; border-style:solid;\"\n + \"border-bottom-width:3px; border-bottom-style:solid;\"\n + utils.enhancedColorStyle(color);\n }\n theGroups[theGroups.length-1].content = caption;\n theGroups[theGroups.length-1].title = description;\n }\n }\n }\n }\n this.timeline.setGroups(theGroups);\n }\n for(var i=0; i<result.errors.length; i++) {\n this.appendWarning(result.errors[i]);\n }\n\n this.timeline.fit();\n if(this.attributes[\"persistent\"] !== undefined) {\n var persistentConfigTiddler = $tw.wiki.getTiddler(this.persistentTiddlerTitle);\n if(persistentConfigTiddler === undefined) {\n // create working tiddler if it does not exist\n var fields = {title: this.persistentTiddlerTitle,\n text: \"Timeline in [[\" + this.tiddler.fields.title + \"]] starts from {{!!timeline.start}} and ends at {{!!timeline.end}}\"};\n persistentConfigTiddler = $tw.wiki.addTiddler(new $tw.Tiddler(fields));\n }\n var start = moment(dateFieldToDate(config.start || persistentConfigTiddler.fields[\"timeline.start\"], this.format) || this.timeline.getWindow().start),\n end = moment(dateFieldToDate(config.end || persistentConfigTiddler.fields[\"timeline.end\"], this.format) || this.timeline.getWindow().end);\n if(start.isValid() && end.isValid() && start.isBefore(end)) {\n // copy config settings to working tiddler\n utils.setTiddlerField(this.persistentTiddlerTitle, \"timeline.start\", start.format(this.format || this.twformat));\n utils.setTiddlerField(this.persistentTiddlerTitle, \"timeline.end\", end.format(this.format || this.twformat));\n // apply saved x-axis range from the working tiddler\n this.timeline.setWindow(start, end);\n }\n }\n };\n\n exports.visjstimeline = TimelineWidget;\n\n }\n ());\n",
"type": "application/javascript",
"module-type": "widget"
}
}
}
{"tiddlers":{"$:/plugins/kookma/refnotes/history":{"title":"$:/plugins/kookma/refnotes/history","tags":"","type":"text/vnd.tiddlywiki","text":"Full change log https://kookma.github.io/TW-Refnotes/#ChangeLog\n\n* ''1.8.1'' -- 2022.06.03 -- many improvements to APA7 and BibTeX support in Refnotes\n* ''1.8.0'' -- 2022.05.27 -- many improvements, refrence manager has APA7 as default style\n* ''1.7.4'' -- 2022.05.18 -- stable release based on TW 5.2.2, minor bugs fixed\n* ''1.7.2'' -- 2021.09.19 -- stable release based on TW 5.2.0\n* ''1.6.0'' -- 2021.04.02 -- development (beta) of new release\n* ''1.0.3'' -- 2019.03.20 -- first stable release\n"},"$:/plugins/kookma/refnotes/license":{"title":"$:/plugins/kookma/refnotes/license","tags":"","type":"text/vnd.tiddlywiki","text":"Distributed under an MIT license.\n\nCopyright (c) 2019-2023 [[Mohammad Rahmani|https://github.com/kookma]]\n\n<<<\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n<<<"},"$:/plugins/kookma/refnotes/macros/abbr":{"title":"$:/plugins/kookma/refnotes/macros/abbr","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define abbr(term:\"\", dict:\"Glossary\")\n<$set name=\"abbreviation\" \n tiddler=<<__dict__>>\n index=<<__term__>>\n emptyValue=\"Term not found\">\n <span class=refnotes-abbr><abbr title=<<abbreviation>> ><$text text=<<__term__>> /></abbr></span>\n</$set>\n\\end\n"},"$:/plugins/kookma/refnotes/macros/apa/authors":{"title":"$:/plugins/kookma/refnotes/macros/apa/authors","code-body":"yes","tags":"","type":"text/vnd.tiddlywiki","text":"\\define show-authors-in-citation(conjunction:\"&\")\n<!-- used in ref macro APA7 -->\n<$let authorlist= {{{ [<__tid__>get[bibtex-author]] }}}\n number-authors= {{{ [<authorlist>split[ and ]!is[blank]count[]] }}}\n>\n<!-- single authors -->\n<$list filter=\"[<number-authors>compare:number:eq[1]]\" variable=null>\n<$list filter=\"[<authorlist>split[ and ]first[]]\" variable=author>\n<<authorName \"LastName\">>\n</$list>\n</$list>\n\n<!-- two authors -->\n<$list filter=\"[<number-authors>compare:number:eq[2]]\" variable=null>\n<$list filter=\"[<authorlist>split[ and ]first[]]\" variable=author><<authorName \"LastName\">> $conjunction$</$list>\n<$list filter=\"[<authorlist>split[ and ]last[]]\" variable=author><<authorName \"LastName\">></$list>\n</$list>\n\n<!-- multiple authors -->\n<$list filter=\"[<number-authors>compare:number:gt[2]]\" variable=null>\n<$list filter=\"[<authorlist>split[ and ]first[]]\" variable=author>\n<<authorName \"LastName\">> et al.\n</$list>\n</$list>\n\n<!-- no author, use three words of title -->\n<$list filter=\"[<number-authors>compare:number:eq[0]]\" variable=null>\n<$text text={{{ [<__tid__>get[bibtex-title]split[ ]!is[blank]first[3]join[ ]] :else[<__tid__>]}}}/>\n</$list>\n</$let>\n\\end\n\n\n\\define parse-fullname()\n<!-- parse author full name and returns: last_name, first_name middle_name \n it handles nobiliary particle like: Lugwig von Beethoven\n-->\n<!-- return the same name if it is stored in BibTeX method 2: https://www.bibtex.com/f/author-field/ -->\n<$list filter=\"[<author>!search[,]]\" emptyMessage=<<author>> variable=null>\n<$let \n pattern1=\"\\s+([a-z][a-zA-Z]*?)\\s+\"\n pname={{{\n [<author>search-replace:g:regexp<pattern1>,[ $1°]]\n +[splitregexp[\\s]trim[]]\n +[search-replace:g:regexp[°],[ ]]\n +[join[°_°]]\n }}}\n><$text text={{{ [<pname>split[°_°]!is[blank]last[]addsuffix[,]] [<pname>split[°_°]!is[blank]butlast[]] +[join[ ]] }}}/>\n</$let>\n</$list>\n\\end\n\n\n<!-- Macros for reference list -->\n\\define authorName(format:\"\")\n<!-- display a single author name in form of Family, F.N. \n it can also send the last name only (surname) used in show-authors-in-citation macro\n-->\n\\whitespace trim\n<$wikify name=pname text=<<parse-fullname>> >\n<$let last= {{{ [<pname>split[,]!is[blank]trim[]first[]]}}}\n initials={{{ [<pname>split[,]!is[blank]trim[]butfirst[]split[ ]!is[blank]] :map[split[]!is[blank]first[]addsuffix[.]] +[join[ ]]}}}\n dispname={{{ [<last>addsuffix[, ]addsuffix<initials>] }}}\n>\n<$list filter=\"[<__format__>!match[LastName]]\" variable=null emptyMessage=<<last>>><<dispname>></$list>\n</$let>\n</$wikify>\n\\end\n\n\\define show-authors-in-references()\n<!-- used in template -->\n<$let authorslist= {{!!bibtex-author}}\n number-authors= {{{ [<authorslist>split[ and ]!is[blank]count[]] }}}\n >\t\t\n<$set name=authors filter=\"[<authorslist>split[ and ]trim[]]\" >\t\n<!-- single author ---------->\n<$list filter=\"[<number-authors>compare:integer:eq[1]]\" variable=null>\n<$vars author={{{ [enlist<authors>last[]] }}}><<authorName>></$vars>\n</$list>\n<!-- multi authors ---------->\n<$list filter=\"[<number-authors>compare:integer:gt[1]]\" variable=null>\n<$list filter=\"[enlist<authors>butlast[]]\" variable=author>\n<<authorName>>,\n</$list>\n<$vars author={{{ [enlist<authors>last[]] }}}>& <<authorName>></$vars>\n</$list>\n<!-- no author, use three words of title -->\n<$list filter=\"[<number-authors>compare:number:eq[0]]\" variable=null>\n<$text text={{{ [{!!bibtex-title}split[ ]!is[blank]first[3]join[ ]] :else[[Unknown author]]}}}/>\n</$list>\n</$set>\n</$let>\t\t\t\n\\end\n\n\n"},"$:/plugins/kookma/refnotes/macros/apa/bibliography":{"title":"$:/plugins/kookma/refnotes/macros/apa/bibliography","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define bibliography(citedfilter:\"[<currentTiddler>]\", furtherfilter:\"\", class:\"ref-list\")\n\\import $:/plugins/kookma/refnotes/macros/apa/bibliography-helper\n<!-- populate all citations in given tiddler or list of tiddlers (given scope through citedfilter) -->\n<$wikify name=\"works-cited\" text=<<find-cited-works>> >\n<!-- generate the reference list/bibliograpgy -->\n<ol class=\"$class$\">\n<$list filter=\"[enlist<works-cited>][subfilter<__furtherfilter__>]:and[sort[]]\" variable=\"reference\">\n<<display-single-reference>>\n</$list>\n</ol>\n</$wikify>\n\\end\n\n<!-- see $:/plugins/kookma/refnotes/macros/apa/bibliography-helper for utility macros -->"},"$:/plugins/kookma/refnotes/macros/apa/bibliography-helper":{"title":"$:/plugins/kookma/refnotes/macros/apa/bibliography-helper","code-body":"yes","tags":"","type":"text/vnd.tiddlywiki","text":"\\define find-cited-works()\n\\import $:/plugins/kookma/refnotes/macros/bibtex/find-refs\n<$list filter=<<__citedfilter__>> >\n<$macrocall $name=\"find-refs\" thisTiddler=<<currentTiddler>> />\n</$list>\n\\end\n\n\\define display-single-reference()\n\\import $:/plugins/kookma/refnotes/macros/apa/authors\n<$let currentType={{{[<reference>get[bibtex-entry-type]lowercase[]] ~[[miscellaneous]]}}} >\n<$set name=\"bodyLookup\" \n filter=\"[all[tiddlers+shadows]tag[$:/tags/Refnotes/ReflistTemplate]contains:list<currentType>] +[limit[1]get[title]]\"\n value=<<bodyLookup>> \n emptyValue=\"$:/plugins/kookma/refnotes/templates/reflist/apa/default\">\n<$transclude tiddler=<<bodyLookup>> field=\"text\" mode=\"inline\"/>\n</$set>\n</$let>\n\\end"},"$:/plugins/kookma/refnotes/macros/apa/ref":{"title":"$:/plugins/kookma/refnotes/macros/apa/ref","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define ref(tid, type:\"p\", pages:\"\")\n\\import $:/plugins/kookma/refnotes/macros/apa/authors\n\\import $:/plugins/kookma/refnotes/macros/apa/ref-helper\n\\whitespace trim\n<$set name=\"ref-tid\" tiddler=<<__tid__>> field=\"title\" emptyValue=\"RefNotFound\">\n<div class=\"refnotes-tooltip refcls\">\n<$reveal type=\"match\" default=<<ref-tid>> text=\"RefNotFound\">\n<$link overrideClass=\"link-refcls\">[<$view tiddler=<<__tid__>> field=\"title\"/>]</$link>\n<div class=\"refnotes-tooltiptext ref-notfound\"><b>Warning</b>: Reference Not Found.<br>Click to create it:<<create-notexisted-ref \"$tid$\">></div>\n</$reveal>\n<$reveal type=\"nomatch\" default=<<ref-tid>> text=\"RefNotFound\">\n<$list filter=\"[[$type$]lowercase[]match[p]]\" variable=null><<parenthetical>></$list>\n<$list filter=\"[[$type$]lowercase[]match[n]]\" variable=null><<narrative>></$list>\n<$list filter=\"[[$type$]lowercase[]match[m]]\" variable=null><<multiwork-parenthetical>></$list>\n<div class=\"refnotes-tooltiptext\">\n<$macrocall $name=\"displayref-onhover\" refTid=<<ref-tid>> />\n</div>\n</$reveal>\n</div>\n</$set>\n\\end\n\n<!-- cite is a synonym for ref macro -->\n\\define cite(tid, type:\"p\", pages:\"\") <$macrocall $name=ref tid=<<__tid__>> type=<<__type__>> pages=<<__pages__>> />\n\n<!-- for helper macros see $:/plugins/kookma/refnotes/macros/apa/ref-helper -->"},"$:/plugins/kookma/refnotes/macros/apa/ref-helper":{"title":"$:/plugins/kookma/refnotes/macros/apa/ref-helper","code-body":"yes","tags":"","type":"text/vnd.tiddlywiki","text":"<!-- This tiddler contains helper macros used in $:/plugins/kookma/refnotes/macros/apa/ref -->\n\n<!-- parenthetical in text citation -->\n\\define parenthetical()\n<$wikify name=authors text=<<show-authors-in-citation>> >\n(<$text text={{{ [<authors>trim[]addsuffix[, ]] }}}/><$text text={{{ [<__tid__>get[bibtex-year]] :else[[n.d.]] }}}/><$text text={{{[<__pages__>!is[blank]then<__pages__>addprefix[, ]]}}}/>)\n</$wikify>\n\\end\n\n<!-- narrative in text citation -->\n\\define narrative()\n<$wikify name=authors text=<<show-authors-in-citation and>> >\n<$text text={{{ [<authors>trim[]addsuffix[ ]] }}}/>(<$text text={{{ [<__tid__>get[bibtex-year]] :else[[n.d.]] }}}/><$text text={{{[<__pages__>!is[blank]then<__pages__>addprefix[, ]]}}}/>)\n</$wikify>\n\\end\n\n<!-- multiwork parenthetical in text citation -->\n\\define multiwork-parenthetical()\n<$wikify name=authors text=<<show-authors-in-citation>> >\n<$text text={{{ [<authors>trim[]addsuffix[, ]] }}}/><$text text={{{ [<__tid__>get[bibtex-year]] :else[[n.d.]] }}}/><$text text={{{[<__pages__>!is[blank]then<__pages__>addprefix[, ]]}}}/>\n</$wikify>\n\\end"},"$:/plugins/kookma/refnotes/macros/apa/showrefs":{"title":"$:/plugins/kookma/refnotes/macros/apa/showrefs","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define showrefs(filter:[<currentTiddler>] title:Empty class:ref-list emptyMessage)\n\\import $:/plugins/kookma/refnotes/macros/apa/authors\n\\import $:/plugins/kookma/refnotes/macros/bibtex/find-refs\n<$let leftDelimiter1=\"<<ref \" leftDelimiter2=\"<<cite \">\n<$list filter=\"[subfilter<__filter__>search:text:literal<leftDelimiter1>][subfilter<__filter__>search:text:literal<leftDelimiter2>]:and[limit[1]]\" emptyMessage=<<__emptyMessage__>>variable=null>\n<$reveal tag=div type=nomatch text=<<__title__>>default=Empty>\n<h2>$title$</h2>\n</$reveal>\n<!---->\n<$wikify text=\"\n<$list filter=<<__filter__>>>\n<$macrocall thisTiddler={{!!title}}$name=find-refs/>\n</$list>\n\"name=mylist>\n<!---->\n<ol class=\"$class$\">\n<$list filter=\"[enlist<mylist>trim[]sort[]]\"variable=reference>\n\n<$let currentType={{{[<reference>get[bibtex-entry-type]lowercase[]]~miscellaneous}}}>\n<$set filter=\"[[$:/tags/Refnotes/ReflistTemplate]tagging[]contains:list<currentType>nth[]get[title]]\"value=<<bodyLookup>>emptyValue=\"$:/plugins/kookma/refnotes/templates/reflist/apa/default\"name=bodyLookup>\n<$transclude tiddler=<<bodyLookup>>field=text mode=inline/>\n</$set>\n</$let>\n\n</$list>\n</ol>\n</$wikify>\n</$list>\n\n\\end"},"$:/plugins/kookma/refnotes/macros/bibtex/find-refs":{"title":"$:/plugins/kookma/refnotes/macros/bibtex/find-refs","code-body":"yes","tags":"","type":"text/vnd.tiddlywiki","text":"<!-- find-refs looks into thisTiddler text and finds all forms of <<ref .>> and <<cite .>> -->\n\\define find-refs(thisTiddler)\n<$vars\nregexp=\"(?g)<<ref .+?>>\" regexpc =\"(?g)<<cite .+?>>\"\nregexp2='<<ref\\s+(.*?)>>' regexp2c='<<cite\\s+(.*?)>>'\nregexp3='^\"(.*?)\"'\nregexp4=\"^'(.*?)'\"\nregexp5=\"\\[\\[(.*?)\\]\\]\"\nregexp6=\"^(.*?)\\s\"\n>\n<$list filter=\"[<__thisTiddler__>regexprefs:text<regexp>][<__thisTiddler__>regexprefs:text<regexpc>]\">\n<$list filter=\"[all[current]regexprefs<regexp2>][all[current]regexprefs<regexp2c>]\">\n<$list filter=\"\"\"\n [all[current]regexprefs<regexp3>] \n:else[all[current]regexprefs<regexp4>]\n:else[all[current]regexprefs<regexp5>]\n:else[all[current]regexprefs<regexp6>]\n:else[all[current]]\n:and[format:titlelist[]]\n\"\"\" variable=p >\n<$text text=<<p>> />\n</$list>\n</$list>\n</$list>\n</$vars>\n\\end"},"$:/plugins/kookma/refnotes/macros/bibtex/process-entries":{"title":"$:/plugins/kookma/refnotes/macros/bibtex/process-entries","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define title-slugify()\n<$vars curTitle=<<currentTiddler>> newTitle={{{[<currentTiddler>slugify[]]}}}>\n<$list filter=\"[<curTitle>!match<newTitle>]\" variable=null>\n<$action-sendmessage $message=\"tm-rename-tiddler\" from=<<currentTiddler>> to=<<newTitle>> />\n</$list>\n</$vars>\n\\end\n\n\\define correct-doi()\n<$list filter=\"[<currentTiddler>has[bibtex-doi]get[bibtex-doi]!prefix[https://doi.org]]\" variable=null>\n<$action-setfield $field=\"bibtex-doi\" $value={{{ [{!!bibtex-doi}addprefix[https://doi.org/]] }}}/>\n</$list>\n\\end\n\n\\define tag-entries()\n<!-- change entry type to lower case -->\n<$action-setfield $tiddler=<<currentTiddler>> bibtex-entry-type={{{[<currentTiddler>get[bibtex-entry-type]lowercase[]]}}} />\n<!-- add bibtex-entry -->\n<$fieldmangler>\n<$action-sendmessage $message=\"tm-add-tag\" $param=\"bibtex-entry\" />\n</$fieldmangler>\n\\end\n\n\\define process-entries(title:\"Process New Bibtex Entries\")\n<$button> $title$\n<$wikify name=chkDuplicates text=<<check-duplicates>> >\n<$action-confirm $message=<<chkDuplicates>> >\n<$list filter=\"[has[bibtex-title]!tag[bibtex-entry]]\">\n<<tag-entries>>\n<<title-slugify>>\n<<correct-doi>>\n</$list>\n</$action-confirm>\n</$wikify>\n</$button>\n\\end\n\n<!-- check duplicate reference tiddlers before slugifying -->\n\\define check-duplicates()\n<$list filter=\"[has[bibtex-title]duplicateslugs[]limit[1]]\" emptyMessage=\"There are no duplicate entries, do you want to process new entries?\">\nThe following tiddlers have duplicate slugs, so they will overwrite eachother, do you want to continue?\n\n<$list filter=\"[has[bibtex-title]duplicateslugs[]] +[join[, ]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</$list>\n\\end"},"$:/plugins/kookma/refnotes/macros/bibtex/regexprefs.js":{"title":"$:/plugins/kookma/refnotes/macros/bibtex/regexprefs.js","text":"/*\\\ntitle: $:/plugins/kookma/macro/bibtex/regexprefs.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for regexp matching and returning result. All results are returned if global flag used. All sub-groups are returned if not global and sub-group hits are found.\n\nThis is a hacked version of core macro: $:/core/modules/filters/regexp.js\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.regexprefs = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"title\").toLowerCase(),\n\t\tregexpString, regexp, flags = \"\", match, global,\n\t\tgetFieldString = function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\treturn tiddler.getFieldString(fieldname);\n\t\t\t} else if(fieldname === \"title\") {\n\t\t\t\treturn title;\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\t// Process flags and construct regexp\n\tregexpString = operator.operand;\n\tmatch = /^\\(\\?([gim]+)\\)/.exec(regexpString);\n\tif(match) {\n\t\tflags = match[1];\n\t\tregexpString = regexpString.substr(match[0].length);\n\t} else {\n\t\tmatch = /\\(\\?([gim]+)\\)$/.exec(regexpString);\n\t\tif(match) {\n\t\t\tflags = match[1];\n\t\t\tregexpString = regexpString.substr(0,regexpString.length - match[0].length);\n\t\t}\n\t}\n\ttry {\n\t\tregexp = new RegExp(regexpString,flags);\n\t} catch(e) {\n\t\treturn [\"\" + e];\n\t}\n\n\tglobal = /g/.test(flags) ;\n\n\t// Process the incoming tiddlers\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title), ret=\"\";\n\t\t\tif(text !== null) {\n\t\t\t\tret = text.match(regexp) ;\n\t\t\t\tif(ret !==null) {\n\t\t\t\t\tif(global) {\n\t\t\t\t\t\tresults.push.apply(results,ret) ; //DEBUG\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// if there are sub groups return sub groups START\n\t\t\t\t\t\tif(ret.length > 1) { // return sub groups\n\t\t\t\t\t\t\tresults = results.concat(ret.slice(1)) ;\n\t\t\t\t\t\t} else { // if no sub-groups\n\t\t\t\t\t\t\tresults.push(ret[0]);\n\t\t\t\t\t\t} \n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();","type":"application/javascript","module-type":"filteroperator"},"$:/plugins/kookma/refnotes/macros/bibtex/utility":{"title":"$:/plugins/kookma/refnotes/macros/bibtex/utility","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define displayref-onhover(refTid)\n<$set name=\"ref-tid\" value=<<__refTid__>> >\n<$link overrideClass=\"link-refcls\" to=<<ref-tid>> >\n<$list filter=\"[<ref-tid>get[bibtex-entry-type]lowercase[]!match[website]]\" variable=null\nemptyMessage=\"\"\"<span class=\"ref-author\"><$view tiddler=<<ref-tid>> field=\"bibtex-url\"/>.</span>\"\"\">\n<span class=\"ref-author\"><$view tiddler=<<ref-tid>> field=\"bibtex-author\"/>.</span>\n</$list>\n</$link>\n<$view tiddler=<<ref-tid>> field=\"bibtex-title\"/>. (<$view tiddler=<<ref-tid>> field=\"bibtex-year\"/>)\n</$set>\n\\end\n\n\\define create-notexisted-ref(refTid)\n<$set name=\"myTid\" value=<<__refTid__>> >\n<$button class=\"tc-btn-invisible tc-tiddlylink\">\n<$action-sendmessage $message=\"tm-new-tiddler\"\n title=<<myTid>> \n bibtex-author=\"\" bibtex-year=\"\"\n bibtex-title=\"\" bibtex-abstract=\"\"\n bibtex-entry-type=\"\" bibtex-keywords=\"\"\n bibtex-doi=\"\" bibtex-url=\"\"\n tags=\"bibtex-entry\"\n /><<myTid>> \n</$button>\n</$set> \n\\end"},"$:/plugins/kookma/refnotes/macros/find":{"title":"$:/plugins/kookma/refnotes/macros/find","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define find(text, begin, end, output:\"simple\", mode:\"all\")\n<$vars \n fulltext=<<__text__>>\n start=<<__begin__>>\n stop=<<__end__>>\n output-macro=<<__output__>>\n>\n<$list variable=p1 filter=\"[<fulltext>splitbefore<start>]\">\n<$list variable=p2 filter=\"[<fulltext>removeprefix<p1>]\">\n<$list variable=p3 filter=\"[<p2>splitbefore<stop>removesuffix<stop>]\">\n<$macrocall $name=<<output-macro>> p=<<p3>> />\n<$reveal type=\"match\" text=\"all\" default=<<__mode__>> >\n<$macrocall $name=\"find\"\n text={{{[<p2>removeprefix<p3>removeprefix<stop>]}}}\n begin=<<start>>\n end=<<stop>>\n output=<<output-macro>>\n/>\n</$reveal>\n</$list>\n</$list>\n</$list>\n</$vars>\n\\end\n\n\\define simple(p)\n<$text text=<<__p__>> />\n\\end\n\n\\define simple-list(p)\n<li><$text text=<<__p__>>/></li>\n\\end\n"},"$:/plugins/kookma/refnotes/macros/footnote":{"title":"$:/plugins/kookma/refnotes/macros/footnote","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define fnote(note)\n<div class=\"refnotes-tooltip refnotes-footnote\"><div class=\"refnotes-tooltiptext\">$note$</div></div>\n\\end"},"$:/plugins/kookma/refnotes/macros/numbered/refnum":{"title":"$:/plugins/kookma/refnotes/macros/numbered/refnum","tags":"","type":"text/vnd.tiddlywiki","text":"\\define refnum(tid)\n<$set name=\"ref-tid\" tiddler=<<__tid__>> field=\"title\" emptyValue=\"RefNotFound\">\n<div class=\"refnotes-tooltip refcls\">\n<$reveal type=\"match\" default=<<ref-tid>> text=\"RefNotFound\">\n<$link overrideClass=\"link-refcls\">\n[<$view tiddler=<<__tid__>> field=\"title\"/>]\n</$link>\n<div class=\"refnotes-tooltiptext ref-notfound\"><b>Warning</b>: Reference Not Found.<br>Click to create it:<<create-notexisted-ref \"$tid$\">></div>\n</$reveal>\n<$reveal type=\"nomatch\" default=<<ref-tid>> text=\"RefNotFound\">\n[<$view tiddler=<<__tid__>> field=\"caption\"><$view tiddler=<<__tid__>> field=\"title\"/></$view>]\n<div class=\"refnotes-tooltiptext\">\n<$macrocall $name=\"displayref-onhover\" refTid=<<ref-tid>> />\n</div>\n</$reveal>\n</div>\n</$set>\n\\end\n"},"$:/plugins/kookma/refnotes/macros/search-ui":{"title":"$:/plugins/kookma/refnotes/macros/search-ui","tags":"","type":"text/vnd.tiddlywiki","text":"\\define searchTid() $:/temp/refnotes/search\n\\define bibtexFields() [!is[shadow]!is[system]has[bibtex-title]fields[]prefix[bibtex-]sort[]]\n\\define mainFields() bibtex-title bibtex-author bibtex-year\n\\define searchUi()\n<div class=\"tc-search\">\n<$edit-text tiddler=<<searchTid>> type=\"search\" tag=\"input\" placeholder=\"search terms\" default=\"\"/> <$select field=\"field\" tiddler=<<searchTid>> default=\"bibtex-author\">\n<$set name=allfields filter= \"[subfilter<bibtexFields>split[ ]join[,]]\" >\n<option value=<<allfields>> >all fields</option>\n</$set>\n<optgroup label=\"Main fields\">\n<$list filter=\"[enlist<mainFields>removeprefix[bibtex-]]\" variable=\"field\">\n<option value={{{[<field>addprefix[bibtex-]]}}} ><<field>></option>\n</$list>\n</optgroup>\n<optgroup label=\"Other fields\">\n<$list filter=\"[subfilter<bibtexFields>] -[enlist<mainFields>] +[removeprefix[bibtex-]]\" variable=\"field\">\n<option value={{{[<field>addprefix[bibtex-]]}}} ><<field>></option>\n</$list>\n</optgroup>\n</$select>\n\n<$reveal state=<<searchTid>> type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=<<searchTid>> text=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\\end"},"$:/plugins/kookma/refnotes/macros/showabbrs":{"title":"$:/plugins/kookma/refnotes/macros/showabbrs","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define showabbrs(filter:\"[<currentTiddler>]\", dtiddler:\"Glossary\", title:\"Empty\", emptyMessage:\"\")\n<$wikify name=\"indexes\" text=<<find-all-items>> > \n<$macrocall $name=\"abbr-list\" indexes=<<indexes>> dtiddler=<<__dtiddler__>> title=<<__title__>> emptyMessage=<<__emptyMessage__>> />\n</$wikify>\n\\end\n\n\\define patterndb() \\[\\[|\\]\\]\n\\define pattern() ('.*?'|\".*?\"|\\S+)\n\\define output-item(p)\n<$list filter=\"\"\"[<__p__>search-replace:g:regexp<patterndb>,[\"]]\"\"\" variable=pars>\n<$list filter=\"\"\"[<pars>trim[]!prefix[dict:]search-replace[term:],[]splitregexp<pattern>trim[]!is[blank]!prefix[dict:]first[]]\"\"\">\n<$text text=<<currentTiddler>>/>\n</$list>\n<$list filter=\"\"\"[<pars>trim[]prefix[dict:]search-replace[term:],[]splitregexp<pattern>trim[]!is[blank]!prefix[dict:]last[]]\"\"\">\n<$text text=<<currentTiddler>>/>\n</$list>\n</$list>\n\\end\n\n\\define find-all-items()\n<$list filter=<<__filter__>> >\n<$macrocall $name=\"find\" text={{!!text}} begin=\"<<abbr \" end=\">>\" output=\"output-item\"/>\n</$list>\n\\end\n\n\n\\define abbr-list(dtiddler, indexes, title:\"Empty\", emptyMessage:\"\")\n<$list filter=\"[<indexes>limit[1]]\" variable=null emptyMessage=<<__emptyMessage__>> ><!-- check to see if there is any abbreviations -->\n<$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__title__>> >\n<h2><$text text=<<__title__>> /></h2>\n</$reveal>\n<table class=\"refnotes-table-borderless\">\n<$list filter=\"\"\"[subfilter<__indexes__>]\"\"\" variable=\"item\">\n<tr>\n<td class=\"refnotes-abbr-term\"><$text text=<<item>> /></td>\n<td>\n <$set name=\"term\" tiddler=<<__dtiddler__>> index=<<item>> emptyValue=<<term-not-found>> >\n <<term>>\n </$set>\n</td>\n</tr>\n</$list>\n</table>\n</$list>\n\\end\n\n\n\\define term-not-found()\n<span class=\"refnotes-abbr-term-not-found\">Term not found</span>\n\\end\n\n\n"},"$:/plugins/kookma/refnotes/macros/showfnotes":{"title":"$:/plugins/kookma/refnotes/macros/showfnotes","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define showfnotes(filter:\"[<currentTiddler>]\", title:\"Empty\" class:\"fnote-list\", emptyMessage:\"\")\n<$vars leftDelimiter=\"<<fnote \">\n<$list filter=\"[subfilter<__filter__>search:text:literal<leftDelimiter>limit[1]]\" variable=null emptyMessage=<<__emptyMessage__>> ><!-- check to see if there is any footnote -->\n<$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__title__>> >\n<h2>$title$</h2>\n</$reveal>\n<ol class=\"$class$\">\n<$list filter=<<__filter__>> >\n<$macrocall $name=\"find\" \n text={{!!text}}\n begin=\"<<fnote \"\n end=\">>\"\n output=\"output-fnote\"\n/>\n</$list>\n</ol>\n</$list>\n</$vars>\n\\end\n\n\\define output-fnote(p)\n<$vars output=$p$>\n<li><<output>></li>\n</$vars>\n\\end\n\n"},"$:/plugins/kookma/refnotes/macros/stretch-text":{"title":"$:/plugins/kookma/refnotes/macros/stretch-text","tags":"","type":"text/vnd.tiddlywiki","text":"\\define tmpTidDetails() $:/temp/refnotes/library/$(currentTiddler)$\n\n\\define stretchText(text, title:\"...\")\n<$button class=\"tc-btn-invisible\">$title$\n<$action-listops $tiddler=<<tmpTidDetails>> $field=\"text\" $subfilter=\"+[toggle[show]]\" />\n</$button> <$reveal type=\"match\" stateTitle=<<tmpTidDetails>> sateField=text text=\"show\">$text$</$reveal>\n\\end\n"},"$:/plugins/kookma/refnotes/readme":{"title":"$:/plugins/kookma/refnotes/readme","tags":"","type":"text/vnd.tiddlywiki","text":"; Refnotes\nRefnotes is a Tiddlywiki plugin to create and manage footnotes, abbreviations, citations, and references. Refnotes can create bibliography, but for the best performance, and to use import bibtex entries, the use of the official ''bibtex importer'' plugin is required. APA7 style is used as default. Refnotes output is very close to APA7 standard.\n\n;Code and demo\nFor learning Refnotes features, syntax, tutorial and examples see the plugin demo and code pages\n\n* Demo: https://kookma.github.io/TW-Refnotes/\n* Code: https://github.com/kookma/TW-Refnotes\n"},"$:/plugins/kookma/refnotes/styles/abbr":{"title":"$:/plugins/kookma/refnotes/styles/abbr","text":"/* Ref: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS3 */ \n.refnotes-abbr abbr[title] {\n\tcolor: inherit;\n\tfont-style: normal;\n\ttext-decoration: none;\n\tborder-bottom: 1px dotted #aaa;\n\tcursor: help;\n}\n\n.refnotes-abbr-term-not-found{\n/*\tcolor:red;*/\n\tfont-style: oblique;\n}\n\n.refnotes-abbr-term{\n/*\tcolor:blue;*/\n}\n\n/* Ref:https://aarontgrogg.com/lab/\nShow the title for small screen\n*/ \n/* this works based on the max-width*/\n@media only screen and (max-width: 960px) {\n.refnotes-abbr abbr:hover:after { content: ' ('attr(title)')'; }\n}\n\n@media (hover: none) {\n/* Push the title attribute into generated content after the abbr. */\n.refnotes-abbr abbr[title]::after { \n content: ' ('attr(title)')'; }\n}\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/refnotes/styles/bibtex":{"title":"$:/plugins/kookma/refnotes/styles/bibtex","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":".ref-nonumber{\n/* color:blue;*/\n font-size:90%;\n list-style-type:none;\n}\n\n.ref-nonumber li{\n padding-bottom:8px;\n}\n\n.ref-list{\n/* color:blue;*/\n font-size:90%;\n}\n\n.link-refcls{\n font-weight:400;\n/* color:#00008B;*/ /*darkblue*/\n text-decoration:none;\n color: <<colour tiddler-link-foreground>>; \t\n}\n\n.refcls{\n/* color:#00008B;*/\n color: <<colour tiddler-link-foreground>>; \n/* text-transform: capitalize;*/\n}\n\n.ref-notfound{\n/* color: #856404 !important;*/\n/* background-color: #fff3cd !important;*/\n}\n\n.ref-author{\n/* color:#00008B;*/ /*color for author in tooltip*/\n}"},"$:/plugins/kookma/refnotes/styles/bibtex-details":{"title":"$:/plugins/kookma/refnotes/styles/bibtex-details","text":".refnotes-details > summary{\n\tpadding-left:0;\n\tpadding-top:15px;\n\tpadding-bottom:15px;\n\twidth: 160px;\n\tcursor: pointer;\n\tfont-weight:bold;\n}\n\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/refnotes/styles/bibtex-entryview":{"title":"$:/plugins/kookma/refnotes/styles/bibtex-entryview","text":"/* used for viewtemplate displaying the bibtex entry */\n.refnotes-bibtex-field{\n\tdisplay:table-row\n}\n.refnotes-bibtex-field > span{\n\tdisplay:table-cell\n}\n.refnotes-bibtex-field > span:first-of-type{\n\tfont-weight:bold;\n\tpadding-right:10px;\n\twhite-space: nowrap;\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/refnotes/styles/dropzone":{"title":"$:/plugins/kookma/refnotes/styles/dropzone","text":".bibtex-dropzone{\n\tmin-height:30px;\n\tmax-width:100%;\n\tmargin:4px auto;\n\tborder:2px dotted green;\n\ttext-align:center;\n}\n\n.bibtex-dropzone:focus {\n\tbackground: #fffedd;\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/refnotes/styles/footnote-counter":{"title":"$:/plugins/kookma/refnotes/styles/footnote-counter","text":"/*automatic counter for fnote macro. The counter resets at the begining of each tiddler*/\n.tc-tiddler-frame,\n.tc-single-tiddler-window { /* to cover tiddler when it is opened in a new window */ \n counter-reset: fnote-count;\n}\n.refnotes-footnote {\n counter-increment: fnote-count;\n}\n.refnotes-footnote:after {\n content: counter(fnote-count);\n font-size:small;\n vertical-align: super;\n line-height: 1.5;\n margin-left: -0.1em;\n /* color:#0000ee;*/\n}\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/refnotes/styles/library":{"title":"$:/plugins/kookma/refnotes/styles/library","text":"/* in folding-editor*/\n.refnotes-library button svg{\n\tfont-size:0.8em;\n\tvertical-align: middle;\n\tmargin-right:0;\n\tmargin-left:0;\n\n}\n\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/refnotes/styles/showfnotes":{"title":"$:/plugins/kookma/refnotes/styles/showfnotes","text":"/* Footnote class*/\n\n.fnote-list{\n/* color:blue;*/\n font-size:90%;\n}\n\n.fnote-pretty{\n display: block;\n margin: 0.5em;\n margin-right: auto;\n width: 100% !important;\n border-collapse: collapse;\n padding: 15px 15px 15px 25px; /*left padding=25px*/\n border-width: 0px;\n border-style: solid;\n border-left-width: 1px;\n background-color: rgb(255,248,220);\n color: rgb(91,49,7);\n line-height: 1.2em; \n font-size:0.9em;\n}\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/refnotes/styles/table-borderless":{"title":"$:/plugins/kookma/refnotes/styles/table-borderless","text":"/*Borderless table*/\n.refnotes-table-borderless, \n.refnotes-table-borderless th, \n.refnotes-table-borderless tr, \n.refnotes-table-borderless td{\n border:0;\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/refnotes/styles/tooltip":{"title":"$:/plugins/kookma/refnotes/styles/tooltip","text":"/* tooltip class used for ref, fnote and other macros */\n.refnotes-tooltip {\n\tposition: relative;\n\tdisplay: inline-block;\n\tcursor: pointer; \n}\n\n.refnotes-tooltip .refnotes-tooltiptext{\n\tfont-size: 0.90em; /* change if it is too small */\n}\n\n.refnotes-tooltip .refnotes-tooltiptext {\n\tvisibility: hidden;\n\tbackground-color: #fff;\n\tcolor: #222222; \n\ttext-align: left;\n\tborder-radius: 2px;\n\tpadding: 5px 10px;\n\tmax-width: 30vw;\n\tmax-height:20em;\n\toverflow-y: auto;\n\tcursor: auto;\n\twidth: max-content;\n\twidth: -moz-max-content;\n\twidth: -webkit-max-content;\n\twidth: -o-max-content;\n\n\t/* Position the tooltip */\n\tposition: absolute;\n\tz-index: 1;\n\tbottom: 100%;\n\tleft: 50%;\n\tmargin-left: -40px;\n\tbox-shadow:0 4px 10px 0 rgba(0,0,0,0.2),0 4px 20px 0 rgba(0,0,0,0.19);\n}\n\n.refnotes-tooltip:hover .refnotes-tooltiptext {\n\tvisibility: visible;\n\t/*opacity: 0.9;*/\n}\n\n/* for small screens */\n\n@media screen and (max-width: 960px) {\n.refnotes-tooltip .refnotes-tooltiptext {\n /* Position the tooltip */\n \tposition:fixed;\n top:0;\n left: 0;\n margin-left: 0px;\n bottom: unset;\n width:100%;\n max-width: 100vw;\n z-index: 9999;\n} \n\n.refnotes-tooltip:hover .refnotes-tooltiptext {\n opacity: 1;\n} \n \n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/refnotes/templates/reflist/apa/article":{"title":"$:/plugins/kookma/refnotes/templates/reflist/apa/article","code-body":"yes","list":"article","tags":"$:/tags/Refnotes/ReflistTemplate","type":"text/vnd.tiddlywiki","text":"<$wikify name=bibtexEntryTiddler text=<<reference>> >\n<$set name=currentTiddler tiddler=<<bibtexEntryTiddler>> field=title emptyValue=\"RefNotFound\">\n<$reveal type=\"nomatch\" default=\"RefNotFound\" text=<<currentTiddler>> >\n<li><$link to=<<bibtexEntryTiddler>>><<show-authors-in-references>></$link> (<$text text={{{ [{!!bibtex-year}!is[blank]] :else[[n.d.]] }}}/>). <$text text={{{ [{!!bibtex-title}lowercase[]sentencecase[]] }}} />. <span style=\"font-style:italic\"><$view field=\"bibtex-journal\"/></span>. <$view field=\"bibtex-volume\"/>. <$view field=\"bibtex-pages\"/>. <a href={{{[<currentTiddler>get[bibtex-doi]!prefix[https://doi.org/]addprefix[https://doi.org/]else{!!bibtex-doi}]}}} target=_blank><$view field=\"bibtex-doi\"/></a></li>\n</$reveal>\n<$reveal type=\"match\" default=\"RefNotFound\" text=<<currentTiddler>> >\n<li>Reference <b><$text text=<<reference>>/></b> NOT FOUND. Check your input.</li>\n</$reveal>\n</$set></$wikify>\n\n<!-- APA 7 \nAuthor. (Year). Title [Translated Title] [Type of Article] [Reviewed Item]|. Journal|, Volume|(Issue)|, Pages|, Article Number|.| `https://doi.org/`DOI (Reprint Edition) (Original Publication) (Errata)\n-->"},"$:/plugins/kookma/refnotes/templates/reflist/apa/book":{"title":"$:/plugins/kookma/refnotes/templates/reflist/apa/book","code-body":"yes","list":"book incollection","tags":"$:/tags/Refnotes/ReflistTemplate","type":"text/vnd.tiddlywiki","text":"\\define disp-bibtex-edition()\n<$list filter=\"[<currentTiddler>has[bibtex-edition]]\" variable=null>(<$view field=\"bibtex-edition\"/>).</$list>\n\\end\n\n\n<$wikify name=bibtexEntryTiddler text=<<reference>> >\n<$set name=currentTiddler tiddler=<<bibtexEntryTiddler>> field=title emptyValue=\"RefNotFound\">\n<$reveal type=\"nomatch\" default=\"RefNotFound\" text=<<currentTiddler>> >\n<li><$link to=<<bibtexEntryTiddler>>><<show-authors-in-references>></$link> (<$text text={{{ [{!!bibtex-year}!is[blank]] :else[[n.d.]] }}}/>). <span style=\"font-style:italic;\"><$text text={{{ [{!!bibtex-title}lowercase[]sentencecase[]] }}} /></span>. <<disp-bibtex-edition>> <$view field=\"bibtex-publisher\"/>.</li>\n</$reveal>\n<$reveal type=\"match\" default=\"RefNotFound\" text=<<currentTiddler>> >\n<li>Reference <b><$text text=<<reference>>/></b> NOT FOUND. Check your input.</li>\n</$reveal>\n</$set></$wikify>\n\n<!--\nAuthor. (Year). Title [Translated Title] (|Translator, Trans.;| Editor, Ed.^Eds.| Edition ed.,| Vol. Volume|)| [Type of Work]|. Publisher|. `https://doi.org/`DOI (Original Publication)\n-->"},"$:/plugins/kookma/refnotes/templates/reflist/apa/default":{"title":"$:/plugins/kookma/refnotes/templates/reflist/apa/default","code-body":"yes","tags":"$:/tags/Refnotes/ReflistTemplate","type":"text/vnd.tiddlywiki","text":"<$wikify name=bibtexEntryTiddler text=<<reference>> >\n<$set name=currentTiddler tiddler=<<bibtexEntryTiddler>> field=\"title\" emptyValue=\"RefNotFound\">\n<$reveal type=\"nomatch\" default=\"RefNotFound\" text=<<currentTiddler>> >\n<li><$link to=<<bibtexEntryTiddler>>><<show-authors-in-references>></$link> (<$text text={{{ [{!!bibtex-year}!is[blank]] :else[[n.d.]] }}}/>). <$text text={{{ [{!!bibtex-title}lowercase[]sentencecase[]] }}} />.</li>\n</$reveal>\n<$reveal type=\"match\" default=\"RefNotFound\" text=<<currentTiddler>> >\n<li>Reference <b><$text text=<<reference>>/></b> NOT FOUND. Check your input.</li>\n</$reveal>\n</$set></$wikify>"},"$:/plugins/kookma/refnotes/templates/reflist/apa/inproceedings":{"title":"$:/plugins/kookma/refnotes/templates/reflist/apa/inproceedings","code-body":"yes","list":"inproceedings","tags":"$:/tags/Refnotes/ReflistTemplate","type":"text/vnd.tiddlywiki","text":"<$wikify name=bibtexEntryTiddler text=<<reference>> >\n<$set name=currentTiddler tiddler=<<bibtexEntryTiddler>> field=title emptyValue=\"RefNotFound\">\n<$reveal type=\"nomatch\" default=\"RefNotFound\" text=<<currentTiddler>> >\n<li><$link to=<<bibtexEntryTiddler>>><<show-authors-in-references>></$link> (<$text text={{{ [{!!bibtex-year}!is[blank]] :else[[n.d.]] }}}/>). <$text text={{{ [{!!bibtex-title}lowercase[]sentencecase[]] }}} />. In <span style=\"font-style:italic\"><$view field=\"bibtex-booktitle\"/></span>. pp. <$view field=\"bibtex-pages\"/>. <a href={{{[<currentTiddler>get[bibtex-doi]]}}}><$view field=\"bibtex-doi\"/></a></li>\n</$reveal>\n<$reveal type=\"match\" default=\"RefNotFound\" text=<<currentTiddler>> >\n<li>Reference <b><$text text=<<reference>>/></b> NOT FOUND. Check your input.</li>\n</$reveal>\n</$set></$wikify>\n\n<!-- APA 7\nAuthor, A. A. (Date). Title of paper. In A. Editor & B. Editor (Eds.), Title of proceedings (page numbers). Publisher. DOI OR URL if relevant.\n-->"},"$:/plugins/kookma/refnotes/templates/reflist/apa/patent":{"title":"$:/plugins/kookma/refnotes/templates/reflist/apa/patent","code-body":"yes","list":"patent","tags":"$:/tags/Refnotes/ReflistTemplate","type":"text/vnd.tiddlywiki","text":"<$wikify name=bibtexEntryTiddler text=<<reference>> >\n<$set name=currentTiddler tiddler=<<bibtexEntryTiddler>> field=title emptyValue=\"RefNotFound\">\n<$reveal type=\"nomatch\" default=\"RefNotFound\" text=<<currentTiddler>> >\n<li><$link to=<<bibtexEntryTiddler>>><<show-authors-in-references>></$link> (<$text text={{{ [{!!bibtex-year}!is[blank]] :else[[n.d.]] }}}/>). <span style=\"font-style:italic;\"><$text text={{{ [{!!bibtex-title}lowercase[]sentencecase[]] }}} /></span>. (<$view field=\"bibtex-nationality\"/> Patent No. <$view field=\"bibtex-number\"/>). <a href={{!!bibtext-url}} target=_blank><$view field=\"bibtex-url\"/></a></li>\n</$reveal>\n<$reveal type=\"match\" default=\"RefNotFound\" text=<<currentTiddler>> >\n<li>Reference <b><$text text=<<reference>>/></b> NOT FOUND. Check your input.</li>\n</$reveal>\n</$set></$wikify>\n\n<!-- APA 7 ?? check this, it has issues\nAuthor. (Year). Patent Title (Country patent No. patent number). Institution. URL\n\n-->"},"$:/plugins/kookma/refnotes/templates/reflist/apa/thesis":{"title":"$:/plugins/kookma/refnotes/templates/reflist/apa/thesis","code-body":"yes","list":"thesis mastersthesis phdthesis","tags":"$:/tags/Refnotes/ReflistTemplate","type":"text/vnd.tiddlywiki","text":"\\define disp-thesis-type()\n\\whitespace trim\n<$list filter=\"[<currentTiddler>get[bibtex-entry-type]]\" variable=thesisType>\n<$text text={{{ \n [<thesisType>match[mastersthesis]then[Master's thesis]]\n [<thesisType>match[phdthesis]then[PhD thesis]]\n :else[[Thesis]] }}} />\n</$list>\n\\end\n\n\n<$wikify name=bibtexEntryTiddler text=<<reference>> >\n<$set name=currentTiddler tiddler=<<bibtexEntryTiddler>> field=title emptyValue=\"RefNotFound\">\n<$reveal type=\"nomatch\" default=\"RefNotFound\" text=<<currentTiddler>> >\n<li><$link to=<<bibtexEntryTiddler>>><<show-authors-in-references>></$link> (<$text text={{{ [{!!bibtex-year}!is[blank]] :else[[n.d.]] }}}/>). <span style=\"font-style:italic;\"><$text text={{{ [{!!bibtex-title}lowercase[]sentencecase[]] }}} /></span>. <<disp-thesis-type>>, <$view field=\"bibtex-school\"/>.</li>\n</$reveal>\n<$reveal type=\"match\" default=\"RefNotFound\" text=<<currentTiddler>> >\n<li>Reference <b><$text text=<<reference>>/></b> NOT FOUND. Check your input.</li>\n</$reveal>\n</$set></$wikify>\n\n<!-- Thesis, master and phd\nAuthor. (Year). //Title//. Phd Thesis, School. \nAuthor. (Year). //Title//. Master's Thesis, School. \n-->"},"$:/plugins/kookma/refnotes/templates/reflist/apa/website":{"title":"$:/plugins/kookma/refnotes/templates/reflist/apa/website","code-body":"yes","list":"website","tags":"$:/tags/Refnotes/ReflistTemplate","type":"text/vnd.tiddlywiki","text":"\\define retrieved-date()\n<$list filter=\"[<currentTiddler>has[bibtex-urldate]]\" variable=null>Retrieved <$text text={{{ [{!!bibtex-urldate}search-replace:g[.],[]search-replace:g[-],[]] :map[format:date[MMM 0DD, YYYY]] }}}/></$list><$list filter=\"[<currentTiddler>!has[bibtex-urldate]has[bibtex-note]]\" variable=null><$view field=\"bibtex-note\"/></$list><$list filter=\"[<currentTiddler>!has[bibtex-urldate]!has[bibtex-note]]\" variable=null>Retrieved n.d.</$list>\n\\end\n\n<$wikify name=bibtexEntryTiddler text=<<reference>> >\n<$set name=currentTiddler tiddler=<<bibtexEntryTiddler>> field=\"title\" emptyValue=\"RefNotFound\">\n<$reveal type=\"nomatch\" default=\"RefNotFound\" text=<<currentTiddler>> >\n<li><$link to=<<bibtexEntryTiddler>>><$text text={{{ [{!!bibtex-title}lowercase[]sentencecase[]] }}} /></$link>. <<retrieved-date>>, <a href={{!!bibtex-url}} target=\"_blank\"><$text text={{!!bibtex-url}} /></a>.</li>\n</$reveal>\n<$reveal type=\"match\" default=\"RefNotFound\" text=<<currentTiddler>> >\n<li>Reference <b><$text text=<<reference>>/></b> NOT FOUND. Check your input.</li>\n</$reveal>\n</$set></$wikify>"},"$:/plugins/kookma/refnotes/templates/reflist/numbered/article":{"title":"$:/plugins/kookma/refnotes/templates/reflist/numbered/article","code-body":"yes","list":"article","tags":"","type":"text/vnd.tiddlywiki","text":"<$wikify name=bibtexEntryTiddler text=<<reference>> >\n<$set name=currentTiddler tiddler=<<bibtexEntryTiddler>> field=title emptyValue=\"RefNotFound\">\n<$reveal type=\"nomatch\" default=\"RefNotFound\" text=<<currentTiddler>> >\n<li><$view field=\"bibtex-author\"/>, <i><span style=\"text-transform: capitalize;\"><$view field=\"bibtex-title\"/></span></i>, <$view field=\"bibtex-journal\"/>, <$view field=\"bibtex-year\"/>.</li>\n</$reveal>\n<$reveal type=\"match\" default=\"RefNotFound\" text=<<currentTiddler>> >\n<li>Reference <b>$p$</b> NOT FOUND. Check your input.</li>\n</$reveal>\n</$set></$wikify>"},"$:/plugins/kookma/refnotes/templates/reflist/numbered/book":{"title":"$:/plugins/kookma/refnotes/templates/reflist/numbered/book","code-body":"yes","list":"book","tags":"","type":"text/vnd.tiddlywiki","text":"<$wikify name=bibtexEntryTiddler text=<<reference>> >\n<$set name=currentTiddler tiddler=<<bibtexEntryTiddler>> field=title emptyValue=\"RefNotFound\">\n<$reveal type=\"nomatch\" default=\"RefNotFound\" text=<<currentTiddler>> >\n<li><<show-authors-in-references>>, <span style=\"text-transform: capitalize;font-style:italic;\"><$view field=\"bibtex-title\"/></span>, <$view field=\"bibtex-edition\"/>, <$view field=\"bibtex-year\"/>, <$view field=\"bibtex-address\"/>, <$view field=\"bibtex-publisher\"/>.</li>\n</$reveal>\n<$reveal type=\"match\" default=\"RefNotFound\" text=<<currentTiddler>> >\n<li>Reference <b>$p$</b> NOT FOUND. Check your input.</li>\n</$reveal>\n</$set></$wikify>"},"$:/plugins/kookma/refnotes/templates/reflist/numbered/default":{"title":"$:/plugins/kookma/refnotes/templates/reflist/numbered/default","code-body":"yes","tags":"","type":"text/vnd.tiddlywiki","text":"<$wikify name=bibtexEntryTiddler text=<<reference>> >\n<$set name=currentTiddler tiddler=<<bibtexEntryTiddler>> field=\"title\" emptyValue=\"RefNotFound\">\n<$reveal type=\"nomatch\" default=\"RefNotFound\" text=<<currentTiddler>> >\n<li><$view field=\"bibtex-author\"/>, <span style=\"text-transform: capitalize;\"><$view field=\"bibtex-title\"/></span>,<i><$view field=\"bibtex-journal\"/></i>, <$view field=\"bibtex-year\"/>.</li>\n</$reveal>\n<$reveal type=\"match\" default=\"RefNotFound\" text=<<currentTiddler>> >\n<li>Reference <b>$p$</b> NOT FOUND. Check your input.</li>\n</$reveal>\n</$set></$wikify>"},"$:/plugins/kookma/refnotes/templates/reflist/numbered/website":{"title":"$:/plugins/kookma/refnotes/templates/reflist/numbered/website","code-body":"yes","list":"website","tags":"","type":"text/vnd.tiddlywiki","text":"<$wikify name=bibtexEntryTiddler text=<<reference>> >\n<$set name=\"curtid\" tiddler=<<bibtexEntryTiddler>> field=\"title\" emptyValue=\"RefNotFound\">\n<$reveal type=\"nomatch\" default=\"RefNotFound\" text=<<curtid>> >\n<li><span style=\"text-transform: capitalize;\"><$view field=\"bibtex-title\" tiddler=<<curtid>>/></span>, <a href={{{[<curtid>get[bibtex-url]]}}} target=\"_blank\"><$text text={{{ [<curtid>get[bibtex-url]] }}}/></a>, <$view field=\"bibtex-year\" tiddler=<<curtid>>/>.</li>\n</$reveal>\n<$reveal type=\"match\" default=\"RefNotFound\" text=<<curtid>> >\n<li>Reference <b>$p$</b> NOT FOUND. Check your input.</li>\n</$reveal>\n</$set></$wikify>"},"$:/plugins/kookma/refnotes/ui/bibtexlibrary":{"title":"$:/plugins/kookma/refnotes/ui/bibtexlibrary","caption":"Bibliography","tags":"$:/tags/SideBar","type":"text/vnd.tiddlywiki","text":"\\import [[$:/plugins/kookma/refnotes/macros/search-ui]]\n\n\\define dispEntry()\n<$link/>\n<$macrocall $name=stretchText text=\"\"\"\n<$view field=\"bibtex-author\"/>. (<$view field=\"bibtex-year\"/>). <$view field=\"bibtex-title\"/>.\"\"\" />\n\\end\n\n\n\\define searchFilter() [has[bibtex-title]search:$(sField)$[$(sTerm)$]]\n\n\\define bibLibrary()\n\\import [[$:/plugins/kookma/refnotes/macros/stretch-text]]\n<$vars sField={{{[<searchTid>get[field]] ~[[bibtex-author]]}}} sTerm={{{[<searchTid>get[text]]}}}>\n\n<!-- show hide entry details -->\n<div class=\"tc-search refnotes-library\" style=\"margin:10px 0 0 20px;\">\nShow and Hide Details: \n<$button class=\"tc-btn-invisible\" tooltip=\"show item details\">{{$:/core/images/down-arrow}}\n<$list filter=\"[subfilter<searchFilter>]\">\n<$action-setfield $tiddler=<<tmpTidDetails>> text=show />\n</$list>\n</$button>\n<$button class=\"tc-btn-invisible\" tooltip=\"hide item details\">{{$:/core/images/up-arrow}}\n<$list filter=\"[subfilter<searchFilter>]\">\n<$action-deletetiddler $tiddler=<<tmpTidDetails>> />\n</$list>\n</$button>\n</div>\n\n<!-- show the library data -->\n<ol>\n<$list filter=\"[subfilter<searchFilter>]\">\n<li><<dispEntry>></li>\n</$list>\n</ol>\n</$vars>\n\\end\n\n<!-- interface -->\n<div style=\"margin-bottom:8px;\">\n<<process-entries \"Process New Entries\">>\n{{$:/plugins/kookma/refnotes/ui/dropzone}}\n</div>\n\n<!-- make this optional\n[[Bibliography Table]]\n-->\n\n<<searchUi>>\n\n<<bibLibrary>>\n\n\n\n"},"$:/plugins/kookma/refnotes/ui/dropzone":{"title":"$:/plugins/kookma/refnotes/ui/dropzone","caption":"Dropzone","tags":"","type":"text/vnd.tiddlywiki","text":"<$dropzone \n deserializer=\"application/x-bibtex\"\n filesOnly=no \n\timportTitle=\"Import Bibtex\">\n<div class=\"bibtex-dropzone\" tabindex=1>\nPaste your Bibtex Entry here\n</div>\n</$dropzone>"},"$:/plugins/kookma/refnotes/viewtemplates/article":{"title":"$:/plugins/kookma/refnotes/viewtemplates/article","list":"article","tags":"$:/tags/Refnotes/Template","type":"text/vnd.tiddlywiki","text":"\\define mainFields() bibtex-title bibtex-author bibtex-journal bibtex-year bibtex-pages bibtex-number bibtex-volume bibtex-doi bibtex-entry-type\n\n<!-- display fields -->\n<$transclude tiddler=\"$:/plugins/kookma/refnotes/viewtemplates/helper\" mode=block/>"},"$:/plugins/kookma/refnotes/viewtemplates/book":{"title":"$:/plugins/kookma/refnotes/viewtemplates/book","list":"book","tags":"$:/tags/Refnotes/Template","type":"text/vnd.tiddlywiki","text":"\\define mainFields() bibtex-title bibtex-author bibtex-year bibtex-publisher bibtex-entry-type\n\n<$transclude tiddler=\"$:/plugins/kookma/refnotes/viewtemplates/helper\" mode=block/>"},"$:/plugins/kookma/refnotes/viewtemplates/default":{"title":"$:/plugins/kookma/refnotes/viewtemplates/default","tags":"$:/tags/Refnotes/Template","type":"text/vnd.tiddlywiki","text":"\\define mainFields() bibtex-title bibtex-author bibtex-year bibtex-doi bibtex-entry-type\n\n<!-- display fields -->\n<$transclude tiddler=\"$:/plugins/kookma/refnotes/viewtemplates/helper\" mode=block/>"},"$:/plugins/kookma/refnotes/viewtemplates/helper":{"title":"$:/plugins/kookma/refnotes/viewtemplates/helper","tags":"$:/tags/Refnotes/Template","type":"text/vnd.tiddlywiki","text":"\\define citedIn(refname)\n <$let pattern-ref =\"\"\"<<ref[\\s\\['\"]*?$refname$['\"\\s\\]]*?.*>>\"\"\" \n pattern-cite=\"\"\"<<cite[\\s\\['\"]*?$refname$['\"\\s\\]]*?.*>>\"\"\" \t\n\t>\n <$list filter=\"[all[tiddlers]search:text:regexp<pattern-ref>sort[title]] [all[tiddlers]search:text:regexp<pattern-cite>sort[title]]\" \n template=\"$:/core/ui/ListItemTemplate\" \n emptyMessage=\"\"\"//No tiddler has cited this reference//\"\"\" />\n </$let>\n\\end\n\n\\define display-bibtex-field()\n<div class=\"refnotes-bibtex-field\">\n<span><$text text={{{ [<currentField>removeprefix[bibtex-]titlecase[]] }}} /></span>\n<span><$transclude tiddler=<<currentTiddler>> field=<<currentField>> mode=inline /></span>\n</div>\n\\end\n\n<$let tv-wikilinks=\"no\">\n<!-- display main bibtex fields -->\n<$list filter=\"[enlist<mainFields>]\" variable=currentField>\n<<display-bibtex-field>>\n</$list>\n\n<!-- display other bibtex fields -->\n<details class=\"refnotes-details\">\n <summary>More details</summary>\n<$list filter=\"[<currentTiddler>fields[]prefix[bibtex]sort[]] -[enlist<mainFields>]\" variable=currentField>\n<<display-bibtex-field>>\n</$list>\n</details>\n</$let>\n\n<!-- show the list of tiddlers cited this reference -->\n; Cited in\n: <$macrocall $name=citedIn refname=<<currentTiddler>> /> "},"$:/plugins/kookma/refnotes/viewtemplates/incollection":{"title":"$:/plugins/kookma/refnotes/viewtemplates/incollection","list":"incollection","tags":"$:/tags/Refnotes/Template","type":"text/vnd.tiddlywiki","text":"\\define mainFields() bibtex-title bibtex-author bibtex-year bibtex-booktitle bibtex-editor bibtex-publisher bibtex-doi bibtex-entry-type\n\n<$transclude tiddler=\"$:/plugins/kookma/refnotes/viewtemplates/helper\" mode=block/>"},"$:/plugins/kookma/refnotes/viewtemplates/inproceedings":{"title":"$:/plugins/kookma/refnotes/viewtemplates/inproceedings","list":"inproceedings","tags":"$:/tags/Refnotes/Template","type":"text/vnd.tiddlywiki","text":"\\define mainFields() bibtex-title bibtex-author bibtex-year bibtex-booktitle bibtex-editor bibtex-doi bibtex-entry-type\n\n<$transclude tiddler=\"$:/plugins/kookma/refnotes/viewtemplates/helper\" mode=block/>"},"$:/plugins/kookma/refnotes/viewtemplates/main":{"title":"$:/plugins/kookma/refnotes/viewtemplates/main","tags":"$:/tags/ViewTemplate","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[all[current]has[bibtex-title]]\">\n<$vars currentType={{{[<currentTiddler>get[bibtex-entry-type]lowercase[]] ~[[miscellaneous]]}}} >\n<$set name=\"bodyLookup\" \n filter=\"[all[tiddlers+shadows]tag[$:/tags/Refnotes/Template]contains:list<currentType>] +[limit[1]get[title]]\"\n\t\t\tvalue=<<bodyLookup>> \n emptyValue=\"$:/plugins/kookma/refnotes/viewtemplates/default\">\t\t\n<$transclude tiddler=<<bodyLookup>> field=\"text\" mode=\"inline\"/>\n</$set>\n</$vars>\n</$list>"},"$:/plugins/kookma/refnotes/viewtemplates/thesis":{"title":"$:/plugins/kookma/refnotes/viewtemplates/thesis","list":"phdthesis mastersthesis thesis","tags":"$:/tags/Refnotes/Template","type":"text/vnd.tiddlywiki","text":"\\define mainFields() bibtex-title bibtex-author bibtex-year bibtex-school bibtex-entry-type\n\n<$transclude tiddler=\"$:/plugins/kookma/refnotes/viewtemplates/helper\" mode=block/>"},"$:/plugins/kookma/refnotes/viewtemplates/unpublished":{"title":"$:/plugins/kookma/refnotes/viewtemplates/unpublished","list":"unpublished","tags":"$:/tags/Refnotes/Template","type":"text/vnd.tiddlywiki","text":"\\define mainFields() bibtex-title bibtex-author bibtex-year bibtex-note bibtex-entry-type\n\n<$transclude tiddler=\"$:/plugins/kookma/refnotes/viewtemplates/helper\" mode=block/>"},"$:/plugins/kookma/refnotes/viewtemplates/website":{"title":"$:/plugins/kookma/refnotes/viewtemplates/website","list":"website","tags":"$:/tags/Refnotes/Template","type":"text/vnd.tiddlywiki","text":"\\define mainFields() bibtex-title bibtex-url bibtex-urldate bibtex-note bibtex-entry-type\n\n<!-- display fields -->\n<$transclude tiddler=\"$:/plugins/kookma/refnotes/viewtemplates/helper\" mode=block/>"}}}
\define fnote(note)
<div class="refnotes-tooltip refnotes-footnote"><div class="refnotes-tooltiptext">$note$</div></div>
\end
\import [[$:/plugins/kookma/refnotes/macros/search-ui]]
\define dispEntry()
<$link/>
<$macrocall $name=stretchText text="""
<$view field="bibtex-author"/>. (<$view field="bibtex-year"/>). <$view field="bibtex-title"/>.""" />
\end
\define searchFilter() [has[bibtex-title]search:$(sField)$[$(sTerm)$]]
\define bibLibrary()
\import [[$:/plugins/kookma/refnotes/macros/stretch-text]]
<$vars sField={{{[<searchTid>get[field]] ~[[bibtex-author]]}}} sTerm={{{[<searchTid>get[text]]}}}>
<!-- show hide entry details -->
<div class="tc-search refnotes-library" style="margin:10px 0 0 20px;">
Show and Hide Details:
<$button class="tc-btn-invisible" tooltip="show item details">{{$:/core/images/down-arrow}}
<$list filter="[subfilter<searchFilter>]">
<$action-setfield $tiddler=<<tmpTidDetails>> text=show />
</$list>
</$button>
<$button class="tc-btn-invisible" tooltip="hide item details">{{$:/core/images/up-arrow}}
<$list filter="[subfilter<searchFilter>]">
<$action-deletetiddler $tiddler=<<tmpTidDetails>> />
</$list>
</$button>
</div>
<!-- show the library data -->
<ol>
<$list filter="[subfilter<searchFilter>]">
<li><<dispEntry>></li>
</$list>
</ol>
</$vars>
\end
<!-- interface -->
<div style="margin-bottom:8px;">
<<process-entries "Process New Entries">>
{{$:/plugins/kookma/refnotes/ui/dropzone}}
</div>
<!-- make this optional
[[Bibliography Table]]
-->
<<searchUi>>
<<bibLibrary>>
{"tiddlers":{"$:/plugins/kookma/shiraz/history":{"title":"$:/plugins/kookma/shiraz/history","tags":"","type":"text/vnd.tiddlywiki","text":"Full change log: [[https://kookma.github.io/TW-Shiraz/#ChangeLog]]\n\n* ''2.7.1'' -- 2022.12.17 -- update to Tiddlywiki 5.2.4, few bug fixes\n* ''2.6.9'' -- 2022.10.17 -- improved Node Explorer, and task Explorer\n* ''2.6.1'' -- 2022.09.27 -- new subplug Formatter, better task manager\n* ''2.5.0'' -- 2022.08.02 -- new data block, updated to Tiddlywiki 5.2.3\n* ''2.4.4'' -- 2021.09.19 -- added css class for tbl-expand customization\n* ''2.4.2'' -- 2021.09.10 -- quick table with bunch of column formatting\n* ''2.3.3'' -- 2021.05.20 -- small bug fixes in switch palette\n* ''2.3.1'' -- 2021.05.19 -- tbl-linktype template to be used for generating node-explorer\n* ''2.3.0'' -- 2021.05.10 -- switch palette for dim/dark and light palette selection\n* ''2.2.2'' -- 2021.04.22 -- several issues fixed for pagination, notebook and image classes\n* ''2.2.0'' -- 2021.02.26 -- updated to TW 5.1.23 and pagination added to dynamic tables\n* ''2.1.1'' -- 2020.03.25 -- slider macro with initial status\n* ''2.1.0'' -- 2020.03.23 -- stable release on TW-5.1.22pre\n* ''1.0.0'' -- 2018.10.05 -- first public release\n"},"$:/plugins/kookma/shiraz/images/palette-switch":{"title":"$:/plugins/kookma/shiraz/images/palette-switch","tags":"","type":"text/vnd.tiddlywiki","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-palette-button tc-image-button\" viewBox=\"0 0 16 16\"><path d=\"M8 15A7 7 0 1 0 8 1v14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z\"/></svg>"},"$:/plugins/kookma/shiraz/license":{"title":"$:/plugins/kookma/shiraz/license","tags":"","type":"text/vnd.tiddlywiki","text":"Distributed under an MIT license.\n\nCopyright (c) 2018-2022 [[Mohammad Rahmani|https://github.com/kookma]]\n\n<<<\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n<<<"},"$:/plugins/kookma/shiraz/macros/alerts":{"title":"$:/plugins/kookma/shiraz/macros/alerts","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define alert(type:\"primary\" src:\"\", width:\"100%\", class:\"\")\n<div class=\"alert alert-$type$ $class$\" style=\"width:$width$;\">\n$src$\n</div>\n\\end\n\n\\define alert-leftbar(type:\"primary\" src:\"\", width:\"100%\", class:\"\")\n<div class=\"alert alert-$type$ bg-transparent leftbar border-$type$ $class$\" style=\"width:$width$;\">\n$src$\n</div>\n\\end\n"},"$:/plugins/kookma/shiraz/macros/badge":{"title":"$:/plugins/kookma/shiraz/macros/badge","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define badge(type:\"primary\" src:\"\")\n<span class=\"badge badge-$type$\">$src$</span>\n\\end\n\n\\define badge-pill(type:\"primary\" src:\"\")\n<span class=\"badge badge-pill badge-$type$\">$src$</span>\n\\end\n"},"$:/plugins/kookma/shiraz/macros/card":{"title":"$:/plugins/kookma/shiraz/macros/card","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define card(header:\"Empty\", title:\"Empty\" subtitle:\"Empty\" text:\"Empty\",footer:\"Empty\", width:\"100%\" class:\"\")\n<div class=\"card mb-3 $class$\" style=\"width:$width$;\">\n<$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__header__>> >\n <div class=\"card-header\">$header$</div>\n</$reveal>\n<div class=\"card-body\">\n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__title__>> >\n <div class=\"h5 card-title\">$title$</div>\n </$reveal>\n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__subtitle__>> >\n <div class=\"h6 card-subtitle mb-2 text-muted\">$subtitle$</div>\n </$reveal>\n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__text__>> >\n <div class=\"card-text\"><<__text__>></div>\n </$reveal>\n</div>\n<$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__footer__>> >\n <div class=\"card-footer text-muted\">$footer$</div>\n</$reveal>\n</div>\n\\end"},"$:/plugins/kookma/shiraz/macros/csvtables/apps":{"title":"$:/plugins/kookma/shiraz/macros/csvtables/apps","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define nomenclature(id:nomenclature)\n<<table-csv id:\"$id$\" format:\"katex-inline transclude pu\" class:\"table-borderless\" header:no>>\n\\end\n\n\\define mathbox(id:\"\", format:\"\", delimiter:\",\")\n<<table-csv id:\"$id$\" format:\"transclude katex $format$\" class:\"table-borderless table-mathbox\" header:no delimiter:\"\"\"$delimiter$\"\"\">>\n\\end\n\n\n<!-- \n- these macros uses the table-csv to display nice looking outputs\n- apps means application\n-->"},"$:/plugins/kookma/shiraz/macros/csvtables/formats-basic":{"title":"$:/plugins/kookma/shiraz/macros/csvtables/formats-basic","tags":"","type":"text/vnd.tiddlywiki","text":"\\define text() <$text text=<<entry>> />\n\\define code() <code><<text>></code>\n\\define transclude() <$transclude tiddler=<<entry>> field=title/>\n\n\n<!-- these macro are used by table-csv to display entries -->"},"$:/plugins/kookma/shiraz/macros/csvtables/formats-date":{"title":"$:/plugins/kookma/shiraz/macros/csvtables/formats-date","tags":"","type":"text/vnd.tiddlywiki","text":"\\define date() <$view field=title tiddler={{{[<entry>splitregexp[\\D+]!is[blank]join[]]}}} format=date template=\"YYYY-0MM-0DD\"/>\n\\define shortdate() <$view field=title tiddler={{{[<entry>splitregexp[\\D+]!is[blank]join[]]}}} format=date template=\"mmm DDth, YYYY\"/>\n\\define longdate() <$view field=title tiddler={{{[<entry>splitregexp[\\D+]!is[blank]join[]]}}} format=date template=\"DDD, MMM 0DD, YYYY\"/>\n\n<!-- these macro are used by table-csv to display entries -->"},"$:/plugins/kookma/shiraz/macros/csvtables/formats-math":{"title":"$:/plugins/kookma/shiraz/macros/csvtables/formats-math","tags":"","type":"text/vnd.tiddlywiki","text":"\\define katex() <span class=\"falign\"><$latex text=<<entry>> displayMode=\"true\"></$latex></span>\n\\define katex-inline() <$latex text=<<entry>> displayMode=\"false\"></$latex>\n\\define pu() <$latex text={{{ [<entry>addprefix[\\pu{]addsuffix[}]] }}} displayMode=\"false\"></$latex>\n\\define equation() <$latex text={{{ [<entry>addprefix[\\begin{equation}]addsuffix[\\end{equation}]] }}} displayMode=\"true\"></$latex>\n\n<!-- \n- these macros are used by table-csv to display entries KaTeX\n- pu stands for physical uints\n- the math formating require the official KaTeX plugin is installed!\n- see $:/plugins/kookma/shiraz/styles/csvtable-katex\n-->"},"$:/plugins/kookma/shiraz/macros/csvtables/formats-misc":{"title":"$:/plugins/kookma/shiraz/macros/csvtables/formats-misc","tags":"","type":"text/vnd.tiddlywiki","text":"\\define email() <a class=\"tc-tiddlylink-external\" href=\"mailto:$(entry)$\" rel=\"noopener noreferrer\" target=\"_blank\"><<text>></a>\n\n\\define rate()\n<$list filter=\"[<entry>split[]match[*]]\" variable=ignore>\n<span class=\"shiraz-star\"><$transclude tiddler=\"$:/core/images/star-filled\" /></span>\n</$list>\n\\end\n\n<!-- these macro are used by table-csv to display entries -->"},"$:/plugins/kookma/shiraz/macros/csvtables/formats-task":{"title":"$:/plugins/kookma/shiraz/macros/csvtables/formats-task","tags":"","type":"text/vnd.tiddlywiki","text":"\\define checkbox()\n<!-- show done item -->\n<$list filter=\"[<entry>trim[]match[x]]\" variable=ignore><input type=checkbox checked disabled/></$list>\n<!-- show task item -->\n<$list filter=\"[<entry>trim[]match[-]]\" variable=ignore><input type=checkbox disabled/></$list>\n\\end\n\n\n\\define todo-action(param)\n<!-- toggle a line done (x) / undone (-) . the lbr is used to prevent replace \"x, Hi\" with \"x, Hi Jeremy\"-->\n<$vars lbr=\"\n\">\n <$vars in={{{ [<row>addsuffix<lbr>] }}} out={{{[<row>splitregexp<delimiter>rest[]join[,]addprefix[$param$,]addsuffix<lbr>]}}} >\n <$action-setfield $tiddler=<<src>> text={{{ [<src>get[text]search-replace:g:<in>,<out>] }}}/>\n </$vars>\n</$vars>\t\n\\end\n\n\\define todo()\n<!-- show task item -->\n<$list filter=\"[<entry>trim[]match[-]]\" variable=ignore>\n<$button class=\"tc-btn-invisible\" actions=<<todo-action \"x\">>><input type=checkbox/></$button>\n</$list>\n<!-- show done item -->\n<$list filter=\"[<entry>trim[]match[x]]\" variable=ignore>\n<$button class=\"tc-btn-invisible\" actions=<<todo-action \"-\">>><input type=checkbox checked/></$button>\n</$list>\n\n\\end\n\n<!-- these macro are used by table-csv to display entries -->"},"$:/plugins/kookma/shiraz/macros/csvtables/table-csv":{"title":"$:/plugins/kookma/shiraz/macros/csvtables/table-csv","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define table-csv(tiddler:\"\", delimiter:\",\", sortType:\"alphanumeric\", format:\"\", caption:\"\", class:\"\", header:\"yes\", stateTiddler:\"\", id:\"\", dclass:\"dblock\" )\n\\whitespace trim\n\\import [[$:/plugins/kookma/shiraz/macros/csvtables/table-csv-utility]]\n\\import [all[tiddlers+shadows]prefix[$:/plugins/kookma/shiraz/macros/csvtables/formats]]\n\n<$vars src = {{{ [<__tiddler__>is[tiddler]then<__tiddler__>else<currentTiddler>] }}} \n stateTiddler = {{{ [<__stateTiddler__>!is[blank]then<__stateTiddler__>else[01]] }}} >\n<$vars sortCol = {{{ [<tempTableSort>getindex[sortIndex]] }}} \n sortNegate = {{{ [<tempTableSort>getindex[negate]] }}} \n delimiter = {{{ [<__delimiter__>match[\\t]then[°≡°]else<__delimiter__>] }}}\n dataBlockStartDelimiter ={{{ [<__id__>is[blank]then[@@.$dclass$]] ~[[@.$dclass$.]addsuffix<__id__>] }}}\n dataBlockEndDelimiter = \"@@\" >\n\n<!-- extract the data block -->\n<$let dblock0 = {{{ [<src>get[text]splitregexp<dataBlockStartDelimiter>butfirst[1]] }}}\n dblock1 = {{{ [<dblock0>splitregexp<dataBlockEndDelimiter>butlast[1]] }}}\n dblock = {{{ [<delimiter>!match[°≡°]then<dblock1>] :else[<dblock1>search-replace:g:regexp[\\t],[°≡°]] }}} >\n\n<!-- create table -->\n<table class=\"$class$\">\n<$list filter=\"[<__caption__>!is[blank]]\" variable=ignorw><caption>$caption$</caption></$list>\n<!--check if there is a header row-->\n<$list filter=\"[<__header__>match[yes]then[1]else[0]]\" variable=header_row>\n<!-- process all extracted rows-->\n<$vars allRows=\"[<dblock>splitregexp[\\n]!is[blank]]\">\n<!--create table header-->\n<$list filter=\"[subfilter<allRows>first<header_row>]\" variable=row >\n<tr><$list filter=\"[<row>splitregexp<delimiter>!is[blank]trim[]]\" variable=currentColumn><<column-header-template>></$list></tr>\n</$list>\n<!--create table body-->\n<$vars sortPos = {{{ [subfilter<allRows>first<header_row>splitregexp<delimiter>!is[blank]trim[]] +[allbefore:include<sortCol>count[]] }}} >\n<$vars sortType = {{{ [enlist:raw<__sortType__>nth<sortPos>else[alphanumeric]] }}} >\n<$list filter=<<mainFilter>> variable=row><!-- parse all other rows -->\n<tr><$list filter=\"[<row>splitregexp<delimiter>!is[blank]trim[]]\" variable=entry counter=pos>\n<td><$macrocall $name={{{ [enlist:raw<__format__>nth<pos>else[text]] }}} /></td>\n</$list></tr>\n</$list><!-- end of parse all other rows -->\n</$vars>\n</$vars><!-- sorPs-->\n</$vars> <!-- end of process all extracted rows-->\n</$list><!-- end of check header -->\n</table>\n\n</$let><!-- dblock0-->\n</$vars><!-- sortCol-->\n</$vars>\n\\end\n\n<!--\n- the default format is text, if format is not set for any column\n- the default sort type is alphanumeric, if the sort type is not sent \n- tab delimited data cannot be processed as enlist list them as sparate title on tab and do not keep them as a single row, so befor processing the \\tab is replaced with a rarely used combination like `°≡°`\n- leading and trailing blanks (spaces) are always trimmed\n- when use column header, you cannot have two column with the same header, this causes problem with sort routine\n-->"},"$:/plugins/kookma/shiraz/macros/csvtables/table-csv-utility":{"title":"$:/plugins/kookma/shiraz/macros/csvtables/table-csv-utility","tags":"","type":"text/vnd.tiddlywiki","text":"\\whitespace trim\n\n\\define mainFilter() [subfilter<allRows>butfirst<header_row>] :sort:$(sortType)$:$(sortNegate)$[split<delimiter>!is[blank]trim[]nth<sortPos>]\n\\define tempTableSort() $:/state/tablecsv/$(currentTiddler)$/$(stateTiddler)$\n\n\n\\define column-header-template()\n<$reveal type=\"nomatch\" stateTitle=<<tempTableSort>> stateIndex=\"sortIndex\" text=<<currentColumn>> tag=\"th\">\n<$button setTitle=<<tempTableSort>> setIndex=\"sortIndex\" setTo=<<currentColumn>> class=\"tc-btn-invisible tc-tiddlylink\" >\n<$action-setfield $tiddler=<<tempTableSort>> $index=\"hasnegate\" $value=\"false\"/>\n<$action-setfield $tiddler=<<tempTableSort>> $index=\"negate\" $value=\"\"/>\n<span style=\"text-transform: capitalize;\"><$text text=<<currentColumn>>/></span>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tempTableSort>> stateIndex=\"sortIndex\" text=<<currentColumn>> tag=\"th\">\n<$list filter=\"[<tempTableSort>getindex[hasnegate]match[false]]\" variable=ignore><!--set negate for sort-->\n<$button setTitle=<<tempTableSort>> setIndex=\"hasnegate\" setTo=\"true\" class=\"tbl-sort-svg tc-btn-invisible tc-tiddlylink\" >\n<$action-setfield $tiddler=<<tempTableSort>> $index=\"negate\" $value=\"reverse\"/>\n<span style=\"text-transform: capitalize;\"><$text text=<<currentColumn>>/></span> {{$:/core/images/down-arrow}}\n</$button>\n</$list>\n<$list filter=\"[<tempTableSort>getindex[hasnegate]match[true]]\" variable=ignore><!--remove negate for sort-->\n<$button setTitle=<<tempTableSort>> setIndex=\"hasnegate\" setTo=\"false\" class=\"tbl-sort-svg tc-btn-invisible tc-tiddlylink\" >\n<$action-setfield $tiddler=<<tempTableSort>> $index=\"negate\" $value=\"\"/>\n<span style=\"text-transform: capitalize;\"><$text text=<<currentColumn>>/></span> {{$:/core/images/up-arrow}}\n</$button>\n</$list>\n</$reveal>\n\\end\n\n<!-- these macro are used by table-csv to display entries -->"},"$:/plugins/kookma/shiraz/macros/dbadge":{"title":"$:/plugins/kookma/shiraz/macros/dbadge","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define dbadge(subject,status, type:\"primary\")\n<div class=\"dbadge\"><span class=\"dbadge-subject\">$subject$</span><span class=\"dbadge-status dbadge-$type$ \">$status$</span></div>\n\\end\n"},"$:/plugins/kookma/shiraz/macros/details":{"title":"$:/plugins/kookma/shiraz/macros/details","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define details(label:\"\", src:\"source\", status:\"\", labelClass:\"\", srcClass:\"\")\n<$vars source = {{{ [<__src__>get[text]else<__src__>] }}} >\n<details class=\"kk-shiraz-details\" $status$>\n <$let tv-wikilinks=\"no\">\n <summary class=\"$labelClass$\">$label$</summary>\n </$let>\n <div class=\"$srcClass$\">\n <$transclude tiddler=<<source>> field=title mode=block/>\n </div>\n</details>\n</$vars>\n\\end"},"$:/plugins/kookma/shiraz/macros/dtables/confirm-delete":{"title":"$:/plugins/kookma/shiraz/macros/dtables/confirm-delete","tags":"$:/tags/Table/Macro","type":"text/vnd.tiddlywiki","text":"\\define confirm-delete()\n<!-- reveals deletion confirmation -->\n<$list filter=\"[subfilter<inputFilter>limit[1]]\" variable=ignore>\n<$reveal class=\"tbl-delete-confirm\" type=\"match\" stateTitle=\"$:/temp/tables/delete-all\" stateField=\"text\" text=<<currentTable>> tag=\"tr\">\n<th colspan=<<ncols>> >\n<$list filter=\"[[$:/temp/tables/delete-all]get[confirm]match[yes]]\" \n variable=ignore emptyMessage=<<ask-for-delete>> >\n <<perform-delete>>\n</$list>\n</th>\n</$reveal>\n</$list>\n\\end\n\n\\define ask-for-delete()\n<$set name=ntids filter=\"[subfilter<inputFilter>count[]]\">\n Delete all <<ntids>> records?\n\t<$button class=\"tc-btn-invisible\">\n <$action-setfield $tiddler=\"$:/temp/tables/delete-all\" $field=\"confirm\" $value=\"yes\"/>\n {{$:/core/images/delete-button}} yes\n </$button> or \n <$button class=\"tc-btn-invisible\">\n <$action-deletetiddler $tiddler=\"$:/temp/tables/delete-all\"/>\n {{$:/core/images/close-button}} no\n </$button>\n</$set>\t\t\t\t\n\\end\n\n\\define perform-delete()\n Warning! this action cannot be undone!\n\t<$button class=\"tc-btn-invisible\">\n <$action-deletetiddler $tiddler=\"$:/temp/tables/delete-all\"/>\n <$list filter=<<inputFilter>> variable=\"currentRecord\">\n <$action-deletetiddler $tiddler=<<currentRecord>>/>\n </$list>\n\t\t {{$:/core/images/delete-button}} delete\n </$button> or \n <$button class=\"tc-btn-invisible\">\n <$action-deletetiddler $tiddler=\"$:/temp/tables/delete-all\"/>\n\t\t\t{{$:/core/images/close-button}} cancel \n </$button>\n\\end"},"$:/plugins/kookma/shiraz/macros/dtables/helper":{"title":"$:/plugins/kookma/shiraz/macros/dtables/helper","tags":"$:/tags/Table/Macro","type":"text/vnd.tiddlywiki","text":"\\define columnFilter() $(columns)$ tbl-delete\n\n\\define tempTable() $:/state/dynamictables/$(currentTable)$\n\n\\define tempTableSort() $(tempTable)$/sortby\n\\define tempTagPopup() $(tempTable)$/$(currentRecord)$/$(currentTiddler)$\n\\define tempTableExpand() $(tempTable)$/expand\n\\define tempPathExpand() $(tempTableExpand)$##$(currentRecord)$\n\\define tempTableEdit() $(tempTable)$/edit-view-status\n\n\\define keepstate() $:/keepstate/dynamictables/$(currentTable)$\n\n\\define tempTableFooter() $(keepstate)$/footer\n\\define tempTableStyle() $(keepstate)$/style\n\\define tempWarningMsg() $(keepstate)$/warning\n\n\\define pageStateTiddler() $(keepstate)$/page-number\n\\define entryPerPageStateTiddler() $(keepstate)$/entry-per-page\n\n<!-- \n Those tiddlers based on keepstate are permanent.\n These are tiddlers hold the data and setting for footer, styles and warning (needs to be hold).\n These state and temporary tiddlers are independent of currentTiddler (host tiddler) and on changing\n the title of host tiddler will not disconnected to table\n-->"},"$:/plugins/kookma/shiraz/macros/dtables/maths":{"title":"$:/plugins/kookma/shiraz/macros/dtables/maths","tags":"$:/tags/Table/Macro","type":"text/vnd.tiddlywiki","text":"\\define average(pn:0) <$text text={{{ [subfilter<inputFilter>$(getFieldOrIndex)$<currentColumn>average[]] }}}/>\n\\define median(pn:0) <$text text={{{ [subfilter<inputFilter>$(getFieldOrIndex)$<currentColumn>median[]] }}}/>\n\n\\define count() <$text text={{{ [subfilter<inputFilter>$(getFieldOrIndex)$<currentColumn>count[]] }}}/>\n\\define sum() <$text text={{{ [subfilter<inputFilter>$(getFieldOrIndex)$<currentColumn>sum[]] }}}/>\n\\define product() <$text text={{{ [subfilter<inputFilter>$(getFieldOrIndex)$<currentColumn>product[]] }}}/>\n\n\\define minall() <$text text={{{ [subfilter<inputFilter>$(getFieldOrIndex)$<currentColumn>minall[]] }}}/>\n\\define maxall() <$text text={{{ [subfilter<inputFilter>$(getFieldOrIndex)$<currentColumn>maxall[]] }}}/>\n\n\n\n\n\n"},"$:/plugins/kookma/shiraz/macros/dtables/pagination":{"title":"$:/plugins/kookma/shiraz/macros/dtables/pagination","tags":"$:/tags/Table/Macro","type":"text/vnd.tiddlywiki","text":"\\define prev-button()\n<!-- create previous page button --->\n<$list filter=\"[<page-number>compare:number:lt[2]then[yes]else[no]]\" variable=state>\n<$button disabled=<<state>> class=\"shiraz-dtable-page-prev tc-btn-invisible\">\n{{$:/core/images/chevron-left}} <strong>Prev</strong>\n<$action-listops $tiddler=<<pageStateTiddler>> $field=text $subfilter=\"+[subtract[1]] ~[[1]]\"/>\n</$button>\n</$list>\n\\end\n\n\\define next-button()\n<!-- create next page button --->\n<$list filter=\"[<high>compare:number:gteq<total-entries>then[yes]else[no]]\" variable=state> \n<$button disabled=<<state>> class=\"shiraz-dtable-page-next tc-btn-invisible\">\n<strong>Next</strong> {{$:/core/images/chevron-right}} \n<$action-listops $tiddler=<<pageStateTiddler>> $field=text $subfilter=\"+[add[1]] ~[[2]]\"/>\n</$button>\n</$list>\n\\end\n\n\\define limit-entries()\n<!-- set number of entries per page -->\n<$select tiddler=<<entryPerPageStateTiddler>> default=25 actions=\"\"\"<$action-setfield $tiddler=<<pageStateTiddler>> text=1/>\"\"\">\n<$list filter='5 10 15 20 25 30 40 50' variable=num>\n<option value=<<num>>>Limit <$text text=<<num>>/></option>\n</$list>\n<option value=<<total-entries>> >Show all</option>\n</$select>\n\\end"},"$:/plugins/kookma/shiraz/macros/dtables/show-edit-cell":{"title":"$:/plugins/kookma/shiraz/macros/dtables/show-edit-cell","tags":"$:/tags/Table/Macro","type":"text/vnd.tiddlywiki","text":"\\define showCell()\n <$list filter=\"[<fieldOrIndex>]-index\">\n <$transclude tiddler=<<currentRecord>> field=<<currentColumn>> mode=\"inline\" />\n </$list>\n <$list filter=\"[<fieldOrIndex>]-field\">\n <$transclude tiddler=<<currentRecord>> index=<<currentColumn>> mode=\"inline\" />\n </$list>\n\\end\t\n\\define editCell()\n <$list filter=\"[<fieldOrIndex>]-index\">\n <$edit-text tiddler=<<currentRecord>> field=<<currentColumn>> tag=\"input\" class=\"shiraz-dtable-textbox\"/>\n </$list>\n <$list filter=\"[<fieldOrIndex>]-field\">\n <$edit-text tiddler=<<currentRecord>> index=<<currentColumn>> tag=\"input\" class=\"shiraz-dtable-textbox\"/>\n </$list>\n\\end\n\n\\define showCell_Locked()\n <span style=\"font-style:oblique;\"><<showCell>></span>\n\\end "},"$:/plugins/kookma/shiraz/macros/dtables/table-dynamic":{"title":"$:/plugins/kookma/shiraz/macros/dtables/table-dynamic","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define table-dynamic(filter, fields:\"\", indexes:\"\", sortOp:\"sort\", caption:\"\", class:\"\",\n footerRows:\"0\", stateTiddler:\"\", editButton:\"yes\", pagination:\"no\", emptyMessage:\"filter input is empty\")\n\n\\import [all[shadows+tiddlers]tag[$:/tags/Table/Macro]]\n\n<!--above commands import utility macros-->\n<$vars \n inputFilter=\"[subfilter<__filter__>!has[draft.of]]\"\n sortType=<<__sortOp__>>\n pagination=<<__pagination__>>\n> \n<$set name=currentTable value=<<__stateTiddler__>> emptyValue=<<currentTiddler>> >\n<!-- check what type of columns are sent, fileds or indexes (data tiddlers as records) -->\n<$set name=fieldOrIndex filter=\"[<__fields__>!is[blank]]\" value=\"field\" emptyValue=\"index\">\n<<check_tiddlers_type_for_table_from_indexes isEditable:\"$editButton$\">>\n<$set name=columns filter=\"[<fieldOrIndex>]-index\" value=<<__fields__>> emptyValue=<<__indexes__>> >\n<!--check input filter parameter-->\n<$list filter=\"[subfilter<inputFilter>limit[1]]\" emptyMessage=<<__emptyMessage__>> variable=ignore>\n<$set name=sortneg tiddler=<<tempTableSort>> index=\"negate\">\n<!--calculate the number of columns in edit and view mode -->\n<$set name=ncols filter=\"[<tempTableEdit>getindex[mode]match[edit]]\" value={{{ [subfilter<columnFilter>count[]] }}} emptyValue= {{{ [subfilter<columnFilter>count[]subtract[1]] }}}>\n<div class=\"tbl-container\" style=\"max-width:100%;\">\n<table class=<<__class__>> style=\"caption-side:top\">\n<!-- reveal caption and edit button -------------------->\n<caption style=\"text-align:left;\">\n<$list filter=\"[<__editButton__>match[yes]]\" variable=ignore>\n<span style=\"padding-right:5px;padding-left:3px;\"><<toggle-edit-view>></span></$list>\n$caption$</caption>\n\n<!-- create header -------------------->\n<thead>\n<<confirm-delete>>\n<tr>\n<$list filter=<<columnFilter>> variable=currentColumn>\n<$set name=\"headerLookup\" filter=\"[all[tiddlers+shadows]tag[$:/tags/Table/HeaderTemplate]contains:tbl-column-list<currentColumn>limit[1]get[title]]\" value=<<headerLookup>> emptyValue=\"$:/plugins/kookma/shiraz/templates/header/default\">\n <$transclude tiddler=<<headerLookup>> field=\"text\" mode=\"inline\"/>\n</$set>\n</$list>\n</tr>\n</thead>\n\n<!-- create footer -------------------->\n<$reveal type=\"gt\" default=<<__footerRows__>> text=\"0\" tag=\"tfoot\" class=\"shiraz-dtable-footer\">\n<tr><td colspan=<<ncols>> style=\"font-weight:bold;background-color:transparent;\">Numerical summary</td></tr>\n<$list filter=\"[range[1,$footerRows$]addprefix[footer-]]\" variable=footerRow>\n<tr>\n<$list filter=<<columnFilter>> variable=currentColumn>\n<$set name=\"footerLookup\" filter=\"[all[tiddlers+shadows]tag[$:/tags/Table/FooterTemplate]contains:tbl-column-list<currentColumn>limit[1]get[title]]\" value=<<footerLookup>> emptyValue=\"$:/plugins/kookma/shiraz/templates/footer/default\">\n<$transclude tiddler=<<footerLookup>> field=\"text\" mode=\"inline\"/>\n</$set>\n</$list>\n</tr>\n</$list>\n</$reveal>\n\n<!-- reveal main body of table (generate records) -------------------->\n<tbody>\n<$set name=tableBody filter=\"[<fieldOrIndex>]-index\" value=\"display_body_fields\" emptyValue=\"display_body_indexes\" >\n<!-- setup pagination variables -->\n<$vars total-entries={{{[subfilter<inputFilter>count[]] }}}\n\t\t\t page-number={{{[<pageStateTiddler>get[text]] ~[[1]]}}} \n\t\t\t entries-per-page={{{ [<entryPerPageStateTiddler>get[text]] ~[[25]] }}} >\n<$vars low={{{ [<page-number>subtract[1]multiply<entries-per-page>] }}} \n high={{{[<page-number>multiply<entries-per-page>] }}} >\t \n<$macrocall $name=<<tableBody>> />\n<!--on demand display the pagination row-->\n<$reveal type=\"match\" default=<<pagination>> text=\"yes\" tag=\"tr\" class=\"shiraz-dtable-page-footer\">\n<td colspan=<<ncols>> >\n<<prev-button>>\nDisplaying <$text text={{{[<low>add[1]]}}}/> through <$text text={{{ [<high>compare:number:lt<total-entries>then<high>else<total-entries>] }}}/> of <<total-entries>> Results | <<limit-entries>>\n<<next-button>>\n</td>\n</$reveal><!-- end of pagination ui -->\n</$vars>\n</$vars>\n</$set>\n</tbody>\n</table>\n</div><!-- container-->\n</$set>\n</$set>\n</$list><!--check input filter parameter-->\n</$set>\n</$set>\n</$set>\n</$vars>\n\\end\n\n"},"$:/plugins/kookma/shiraz/macros/dtables/table-utility":{"title":"$:/plugins/kookma/shiraz/macros/dtables/table-utility","tags":"$:/tags/Table/Macro","type":"text/vnd.tiddlywiki","text":"\\define tableFilter_fields() $(inputFilter)$+[$(sortneg)$$(sortType)${$(tempTableSort)$##sortIndex}]\n\\define tableFilter_indexes() [enlist<items>]+[$(sortneg)$$(sortType)$[]]\n\n\\define getitems()\n<$set name=Index tiddler=<<tempTableSort>> index=\"sortIndex\">\n<$list filter=\"[subfilter<inputFilter>!has[draft.of]]\" >\n<$text text=\"[[\"/>{{{ [<currentTiddler>getindex<Index>addsuffix[°≡°]] }}}<<currentTiddler>><$text text=\"]]\"/>\n</$list>\n</$set>\n\\end\n\n\\define display_one_record()\n<$wikify name=\"rowStyle\" text=\"\"\"<$transclude tiddler=<<tempTableStyle>> index=<<currentRecord>> />\"\"\" mode=\"inline\">\n<tr style=<<rowStyle>>>\n<$list filter=<<columnFilter>> variable=currentColumn>\n<$set name=\"bodyLookup\" \n filter=\"[all[tiddlers+shadows]tag[$:/tags/Table/BodyTemplate]contains:tbl-column-list<currentColumn>]\n +[limit[1]get[title]]\"\n value=<<bodyLookup>> \n emptyValue=\"$:/plugins/kookma/shiraz/templates/body/default\">\n<$transclude tiddler=<<bodyLookup>> field=\"text\" mode=\"inline\"/>\n</$set>\n</$list>\n</tr>\n<!-- reveal expanded record-->\n<$reveal type=\"match\" state=<<tempPathExpand>> text=\"show\" tag=\"tr\">\n<<display-expanded-record>>\n</$reveal>\n</$wikify>\n\\end\n\n\\define display_body_fields() \n<$set name=finalFilter filter=\"[<pagination>match[yes]]\" value=\"[subfilter<tableFilter_fields>first<high>] -[subfilter<tableFilter_fields>first<low>]\" emptyValue=\"[subfilter<tableFilter_fields>]\">\n<$list filter=\"[subfilter<finalFilter>]\" variable=\"currentRecord\">\n<<display_one_record>>\n</$list>\n</$set>\n\\end\n\n\\define display_body_indexes()\n<$wikify name=\"items\" text=<<getitems>> > \n<$set name=finalFilter filter=\"[<pagination>match[yes]]\" value=\"[subfilter<tableFilter_indexes>first<high>] -[subfilter<tableFilter_indexes>first<low>]\" emptyValue=\"[subfilter<tableFilter_indexes>]\">\n<$list filter=\"[subfilter<finalFilter>]\" variable=\"currentItem\">\n<$list filter=\"[<currentItem>split[°≡°]last[]]\" variable=\"currentRecord\">\n <<display_one_record>>\n</$list>\n</$list>\n</$set>\n</$wikify>\n\\end\n\n"},"$:/plugins/kookma/shiraz/macros/dtables/tbl-expand":{"title":"$:/plugins/kookma/shiraz/macros/dtables/tbl-expand","tags":"$:/tags/Table/Macro","type":"text/vnd.tiddlywiki","text":"\\define display-expanded-record()\n<td colspan=<<ncols>> class=\"shiraz-dtable-expanded-record\">\n<$tiddler tiddler=<<currentRecord>> >\n\n<!-- in edit mode select between two editors: simple textbox or TW main editor e.g. codemirror -->\n<$list filter=\"[<tempTableEdit>getindex[mode]match[edit]]\" variable=ignore\n emptyMessage=\"\"\"{{||$:/core/ui/ViewTemplate/body}}\"\"\" >\n<$reveal type=\"nomatch\" state=\"$:/config/shiraz/dynamictables/editor-type\" text=\"main-editor\" tag=\"div\">\n<$edit-text class=\"tbl-inpt-edit\" tiddler=<<currentRecord>> field=\"text\" tag=textarea/>\n</$reveal>\n<$reveal type=\"match\" state=\"$:/config/shiraz/dynamictables/editor-type\" text=\"main-editor\" tag=\"div\" class=\"shiraz-dtable-maineditor\">\n{{||$:/core/ui/EditTemplate/body}}\n</$reveal>\n</$list>\n\n</$tiddler>\n</td>\n\\end\n"},"$:/plugins/kookma/shiraz/macros/dtables/toggle-edit-view":{"title":"$:/plugins/kookma/shiraz/macros/dtables/toggle-edit-view","tags":"$:/tags/Table/Macro","type":"text/vnd.tiddlywiki","text":"\\define toggle-edit-view()\n<$reveal type=\"nomatch\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\">\n<$button class=\"tc-btn-invisible tc-tiddlylink\" setTitle=<<tempTableEdit>> setIndex=\"mode\" setTo=\"edit\">{{$:/core/images/edit-button}}</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\">\n<$button class=\"tc-btn-invisible tc-tiddlylink\" setTitle=<<tempTableEdit>> setIndex=\"mode\" setTo=\"view\">{{$:/core/images/done-button}}</$button>\n</$reveal>\n\\end"},"$:/plugins/kookma/shiraz/macros/dtables/warning_message":{"title":"$:/plugins/kookma/shiraz/macros/dtables/warning_message","tags":"$:/tags/Table/Macro","type":"text/vnd.tiddlywiki","text":"\\define show_tiddler_types()\n<details>\n <summary>List tiddlers with wrong type</summary>\n\t<dl>\n <$list filter=\"[subfilter<inputFilter>]\">\n\t<$list filter=\"[<currentTiddler>get[type]match[application/x-tiddler-dictionary]][<currentTiddler>get[type]match[application/json]]\" variable=ignore\n\temptyMessage=\"\"\"<dt><$link/></dt><dd><$view field=type/></dd>\"\"\">\n\t</$list>\n\t</$list>\n\t</dl>\n</details>\n\\end\n\n\n\\define show_warning_message()\nDynamic editable table from ''indexes'' expects all input tiddlers are of dataTiddler (json or dictionary) types. Using tiddlers of non //json// or //x-tiddler-dictionary// types as input can unintentionally overwrite the data in the text field of those tiddlers.<br>\n<br>\nCheck the tiddler types to find which tiddlers are not of dataTiddler types!<br>\n<<show_tiddler_types>>\n\\end\n\n\n\\define check_tiddlers_type_for_table_from_indexes(isEditable)\n <$list filter=\"[<fieldOrIndex>]-field\" variable=ignore><!-- only dataTiddler -->\n\t<$list filter=\"[<__isEditable__>match[yes]]\" variable=ignore> <!-- only editable table -->\n\t<$list filter=\"[<tempWarningMsg>is[missing]]\" variable=ignore><!-- dismiss if tempWarningMsg is set -->\n\t<$list filter=\"[subfilter<inputFilter>each[type]get[type]]-[[application/x-tiddler-dictionary]]-[[application/json]]\" variable=ignore>\n\t <div style=\"color: white;background-color:#ff0033;padding:8px;text-align:center;width:100%;\">\n\t Danger: Editable dynamic table from idexes with mixed types of tiddlers! \n\t <$button class=\"tc-btn-invisible tc-tiddlylink\" style=\"fill:white;\" tooltip=\"Dismiss alert and continue with the current selection!\">{{$:/core/images/close-button}}\n <$action-setfield $tiddler=<<tempWarningMsg>> text=\"dissmiss\"/>\n </$button>\n\t </div>\n\t <div style=\"border:1px solid #ff0033;padding:8px;\">\n\t <<show_warning_message>>\n\t </div>\n </$list>\n\t</$list>\n\t</$list>\n\t</$list>\n\\end\t\n"},"$:/plugins/kookma/shiraz/macros/image-basic":{"title":"$:/plugins/kookma/shiraz/macros/image-basic","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define image-basic(img, width:\"30%\", align:\"none\", caption:\"\", tooltip:\"\", alt:\"\")\n<figure class=\"image-basic image-align-$align$\" style=\"width:$width$;\">\n <$image source=<<__img__>> tooltip=<<__tooltip__>> alt=<<__alt__>> /> \n <figcaption>$caption$</figcaption>\n</figure> \n\\end"},"$:/plugins/kookma/shiraz/macros/image-card":{"title":"$:/plugins/kookma/shiraz/macros/image-card","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define image-card(img, width:\"30%\", align:\"none\", title:\"Empty\", text:\"Empty\", footer:\"Empty\", pos:\"top\", alt:\"\")\n\\import $:/plugins/kookma/shiraz/macros/image-card-utility\n<$reveal tag=\"div\" type=\"match\" default=\"top\" text=<<__pos__>> >\n<$macrocall $name=image-card-top img=<<__img__>> title=<<__title__>> text=<<__text__>>\n footer=<<__footer__>> width=<<__width__>> align=<<__align__>> alt=<<__alt__>> />\n</$reveal>\n<$reveal tag=\"div\" type=\"nomatch\" default=\"top\" text=<<__pos__>> >\n<$macrocall $name=image-card-bottom img=<<__img__>> title=<<__title__>> text=<<__text__>>\n footer=<<__footer__>> width=<<__width__>> align=<<__align__>> alt=<<__alt__>> />\n</$reveal>\n\\end\n\n\\define image-card-top(img, width:\"30%\", align:\"none\", title:\"Empty\", text:\"Empty\", footer:\"Empty\", alt:\"\")\n<div class=\"card image-align-$align$\" style=\"width:$width$;\">\n <$image class=\"card-img-top\" source=<<__img__>> alt=<<__alt__>> />\n <div class=\"card-body\">\n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__title__>> >\n <div class=\"h5 card-title\">$title$</div>\n </$reveal> \n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__text__>> >\n <div class=\"card-text\">$text$</div>\n </$reveal> \n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__footer__>> >\n <p class=\"card-text\"><small class=\"text-muted\">$footer$</small></p>\n </$reveal>\n </div> \n</div>\n\\end\n\n\\define image-card-bottom(img, width:\"30%\", align:\"none\", title:\"Empty\", text:\"Empty\", footer:\"Empty\", alt:\"\")\n<div class=\"card image-align-$align$\" style=\"width:$width$;\">\n <div class=\"card-body\">\n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__title__>> >\n <div class=\"h5 card-title\">$title$</div>\n </$reveal> \n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__text__>> >\n <div class=\"card-text\">$text$</div>\n </$reveal> \n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__footer__>> >\n <p class=\"card-text\"><small class=\"text-muted\">$footer$</small></p>\n </$reveal>\n </div> \n <$image class=\"card-img-bottom\" source=<<__img__>> alt=<<__alt__>> />\n</div>\n\\end"},"$:/plugins/kookma/shiraz/macros/image-card-utility":{"title":"$:/plugins/kookma/shiraz/macros/image-card-utility","type":"text/vnd.tiddlywiki","text":"\\define image-card-top(img, width:\"30%\", align:\"none\", title:\"Empty\", text:\"Empty\", footer:\"Empty\", alt:\"\")\n<div class=\"card image-align-$align$\" style=\"width:$width$;\">\n <$image class=\"card-img-top\" source=<<__img__>> alt=<<__alt__>> />\n <div class=\"card-body\">\n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__title__>> >\n <div class=\"h5 card-title\">$title$</div>\n </$reveal> \n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__text__>> >\n <div class=\"card-text\">$text$</div>\n </$reveal> \n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__footer__>> >\n <p class=\"card-text\"><small class=\"text-muted\">$footer$</small></p>\n </$reveal>\n </div> \n</div>\n\\end\n\n\\define image-card-bottom(img, width:\"30%\", align:\"none\", title:\"Empty\", text:\"Empty\", footer:\"Empty\", alt:\"\")\n<div class=\"card image-align-$align$\" style=\"width:$width$;\">\n <div class=\"card-body\">\n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__title__>> >\n <div class=\"h5 card-title\">$title$</div>\n </$reveal> \n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__text__>> >\n <div class=\"card-text\">$text$</div>\n </$reveal> \n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__footer__>> >\n <p class=\"card-text\"><small class=\"text-muted\">$footer$</small></p>\n </$reveal>\n </div> \n <$image class=\"card-img-bottom\" source=<<__img__>> alt=<<__alt__>> />\n</div>\n\\end"},"$:/plugins/kookma/shiraz/macros/image-overlay":{"title":"$:/plugins/kookma/shiraz/macros/image-overlay","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define image-overlay(img, width:\"30%\", align:\"none\", caption:\"\", title:\"\", text:\"\", fadein:\"left\", alt:\"\")\n\\import $:/plugins/kookma/shiraz/macros/image-overlay-utility\n<div class=\"image-overlay-container image-align-$align$\" style=\"width:$width$;\">\n <h3 class=\"image-overlay-title\">$caption$</h3>\n <div class=\"image-overlay-content\">\n <div class=\"image-overlay-content-overlay\"></div>\n <$image class=\"image-overlay-content-image\" source=<<__img__>> alt=<<__alt__>>/>\n <$set name=\"fdcls\" filter=\"$fadein$ +[splitbefore[ ]] +[addprefix[image-overlay-fadeIn-]]\">\n <div class=<<_cls-content-details>> >\n <h3 class=\"image-overlay-content-title\">$title$</h3>\n <p class=\"image-overlay-content-text\">$text$</p>\n </div>\n </$set>\n </div>\n</div>\n\\end"},"$:/plugins/kookma/shiraz/macros/image-overlay-utility":{"title":"$:/plugins/kookma/shiraz/macros/image-overlay-utility","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define _cls-content-details() image-overlay-content-details $(fdcls)$"},"$:/plugins/kookma/shiraz/macros/image-polaroid":{"title":"$:/plugins/kookma/shiraz/macros/image-polaroid","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define image-polaroid(img, width:\"30%\", align:\"none\", caption:\"\", tooltip:\"\", alt:\"\")\n<figure class=\"image-polaroid image-align-$align$\" style=\"width:$width$;\">\n <$image source=\"\"\"$img$\"\"\" tooltip=\"\"\"$tooltip$\"\"\"/>\n <figcaption class=\"image-polaroid-caption\">$caption$</figcaption>\n</figure> \n\\end"},"$:/plugins/kookma/shiraz/macros/image-pretty":{"title":"$:/plugins/kookma/shiraz/macros/image-pretty","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define image-pretty(img, width:\"30%\", align:\"none\", caption:\"\", tooltip:\"\", alt:\"\")\n<figure class=\"image-pretty image-align-$align$\" style=\"width:$width$;\">\n <$image source=<<__img__>> tooltip=<<__tooltip__>> alt=<<__alt__>> /> \n <figcaption class=\"image-pretty-caption\">$caption$</figcaption>\n</figure> \n\\end"},"$:/plugins/kookma/shiraz/macros/image-slidein":{"title":"$:/plugins/kookma/shiraz/macros/image-slidein","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define image-slidein(img, width:\"30%\", align:\"none\", caption:\"\", tooltip:\"\", slidein:\"left\", alt:\"\")\n<figure class=\"image-slidein mr-cap-$slidein$ image-align-$align$\" style=\"width:$width$;\">\n <$image source=<<__img__>> tooltip=<<__tooltip__>> alt=<<__alt__>>/>\n <figcaption>$caption$</figcaption>\n</figure> \n\\end"},"$:/plugins/kookma/shiraz/macros/list-search":{"title":"$:/plugins/kookma/shiraz/macros/list-search","author":"Jeremy Ruston","description":"creates few paragraphs of dumy text","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define list-search( filter:\"[!is[system]]\", search:\"search:title\", template:\"$:/core/ui/ListItemTemplate\",\n class:\"my-3\", stateTiddler:\"\", placeholder:\"keywords\")\n<$set name=\"state\" filter=\"[[$:/temp/list-search/]addsuffix<__stateTiddler__>addsuffix<qualify>]\">\n<div class=<<__class__>> >\n<$keyboard key=\"escape\" actions='<$action-deletetiddler $tiddler=<<state>>/>' >\n<$edit-text tiddler=<<state>> type=\"search\" tag=\"input\" default=\"\" placeholder=\"$placeholder$\" class=\"w-100\"/>\n</$keyboard>\n</div>\n<$reveal stateTitle=<<state>> stateField=text type=\"match\" text=\"\" class=<<__class__>> tag=div>\n<$list filter=<<__filter__>> template=<<__template__>>/>\n</$reveal>\n<$reveal stateTitle=<<state>> stateField=text type=\"nomatch\" text=\"\" class=<<__class__>> tag=div>\n<$let term={{{ [<state>get[text]] }}}\n sub= {{{ \"[\" [<__search__>] \"<term>]\" :and[join[]] }}} ><!-- this line creates a dynamic filter and stores in a string variable-->\n<$list filter=\"[subfilter<__filter__>]:and[subfilter<sub>]\" template=<<__template__>>/>\n</$let>\n</$reveal>\n</$set>\n\\end\n<!-- from Tobias Beer list-search with modification\nThe old style dynamic filters are:\n1. <$list filter=\"$filter$+[$search$<term>]\" template=<<__template__>>/>\n2. <$list filter=\"$filter$\" template=<<__template__>>/>\nThe new style is: not to use text substitution\n-->"},"$:/plugins/kookma/shiraz/macros/multicol":{"title":"$:/plugins/kookma/shiraz/macros/multicol","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define multicol(src, ncol:\"\", class:\"\")\n<div class=\"sh-multicol$ncol$ $class$\">\n\n$src$\n</div>\n\\end"},"$:/plugins/kookma/shiraz/macros/slider":{"title":"$:/plugins/kookma/shiraz/macros/slider","description":"Slider macro shows (hides) its content.","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define slider(label, src, labelClass, srcClass, status:\"closed\")\n<$let revealState = \"\"\"$:/state/shiraz/slider-macro/$(currentTiddler)$/$label$\"\"\"\n source = {{{ [<__src__>get[text]else<__src__>] }}} >\n<h3 class=\"$labelClass$\">\n <$reveal type=\"nomatch\" state=<<revealState>> text=\"open\" default=\"$status$\">\n <$button class=\"tc-btn-invisible tc-tiddlylink\" set=<<revealState>> setTo=\"open\">\n <span class=\"kk-sh-slider\"><$transclude tiddler=\"$:/core/images/right-arrow\" /></span>\n </$button>\n </$reveal>\n <$reveal type=\"match\" state=<<revealState>> text=\"open\" default=\"$status$\">\n <$button class=\"tc-btn-invisible tc-tiddlylink\" set=<<revealState>> setTo=\"closed\">\n <span class=\"kk-sh-slider\"><$transclude tiddler=\"$:/core/images/down-arrow\" /></span>\n </$button>\n </$reveal>\n <$let tv-wikilinks=\"no\">$label$</$let>\n</h3>\n<$reveal type=\"match\" state=<<revealState>> text=\"open\" default=\"$status$\" class=\"$srcClass$\" tag=div>\n<$transclude tiddler=<<source>> field=title mode=block/>\n</$reveal>\n\n</$let>\n\\end"},"$:/plugins/kookma/shiraz/macros/space":{"title":"$:/plugins/kookma/shiraz/macros/space","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define vspace(height:\"25px\")\n<p style=\"margin-bottom: $height$;\"></p>\n\\end\n\n\\define hspace(width:\"25px\")\n<span style=\"margin-left: $width$;\"></span>\n\\end\n"},"$:/plugins/kookma/shiraz/macros/text-utility":{"title":"$:/plugins/kookma/shiraz/macros/text-utility","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define tc(src:\"\", color:\"red\") <span style=\"color:$color$;\">$src$</span>\n\\define bc(src:\"\", color:\"yellow\") <span style=\"background-color:$color$;\">$src$</span>\n\\define mono(src:\"\", class:\"\") <code class=\"mono $class$\">$src$</code>\n\\define transform(case:\"\", src:\"\", class:\"\") <span class=\"text-$case$ $class$\">$src$</span>\n\n<!-- simple highlight -->\n\\define hl(src:\"\", color:\"yellow\") <mark class=\"kk-sh-highlight\" style=\"background-color:$color$;\">$src$</mark>\n\n<!-- drop shadow highlight -->\n\\define hls(src:\"\", color:\"yellow\") <mark class=\"kk-sh-highlight\" style=\"filter: drop-shadow(0 0 0.4rem $color$);\">$src$</mark>\n\n<!-- pen highlight -->\n\\define hlp(src:\"\", color:\"yellow\") <mark class=\"kk-sh-highlight-pen\" style=\"background-image: linear-gradient(to top, $color$ 50%, transparent 0);\">$src$</mark>\n"},"$:/plugins/kookma/shiraz/readme":{"title":"$:/plugins/kookma/shiraz/readme","tags":"","type":"text/vnd.tiddlywiki","text":"; Shiraz\nShiraz is a small framework of stylesheets, templates and macros to create stylish contents in Tiddlywiki. Shiraz has customized elements like alerts, cards, panels, images, static tables, dynamic tables, quick table, badges, texts, etc. Shiraz uses some modified CSS classes from [[Bootstrap|https://getbootstrap.com/]] 4.3.1.\n\n;Code and demo\nFor learning plugin features, syntax, tutorial and examples see the plugin demo and code pages\n\n* Demo: https://kookma.github.io/TW-Shiraz/\n* Code: https://github.com/kookma/TW-Shiraz\n"},"$:/plugins/kookma/shiraz/styles/alerts-leftbar":{"title":"$:/plugins/kookma/shiraz/styles/alerts-leftbar","text":".leftbar{\n border-width:0px !important;\n border-radius:0px !important;\n border-left-width: 5px !important;\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bglowtone-colors":{"title":"$:/plugins/kookma/shiraz/styles/bglowtone-colors","text":"/* Colors taked from [1] https://www.bg-w3schools.bg-com/colors/colors_names.bg-asp \n[2] http://www.bg-workwithcolor.bg-com/color-chart-full-01.bg-htm*/\n/*Low tone background colors*/\n.bg-mistyrose{background-color:#ffe4e1;}\n.bg-lemonchiffon{background-color:#fffacd;}\n.bg-lavenderblush{background-color:#fff0f5;}\n.bg-lavender{background-color:#e6e6fa;}\n.bg-honeydew{background-color:#f0fff0;}\n.bg-lightcyan{background-color:#e0ffff;}\n.bg-aliceblue{background-color:#f0f8ff;}\n.bg-cornsilk{background-color:#fff8dc;}\n.bg-gainsboro{background-color:#dcdcdc;}\n.bg-bisque{background-color:#ffe4c4;}\n.bg-snow{background-color:#fffafa;}","list":"mistyrose lemonchiffon lavenderblush lavender honeydew lightcyan aliceblue cornsilk gainsboro bisque snow","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/alerts":{"title":"$:/plugins/kookma/shiraz/styles/bs/alerts","text":"/*Was taken from bootstrap 4.1.3*/\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/background-colors":{"title":"$:/plugins/kookma/shiraz/styles/bs/background-colors","text":".bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/badge":{"title":"$:/plugins/kookma/shiraz/styles/bs/badge","text":"/* Extracted from bootstrap 4.1.3 */\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\n.badge-primary[href]:hover, .badge-primary[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #0062cc;\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\n.badge-secondary[href]:hover, .badge-secondary[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #545b62;\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\n.badge-success[href]:hover, .badge-success[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #1e7e34;\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\n.badge-info[href]:hover, .badge-info[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #117a8b;\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\n.badge-warning[href]:hover, .badge-warning[href]:focus {\n color: #212529;\n text-decoration: none;\n background-color: #d39e00;\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\n.badge-danger[href]:hover, .badge-danger[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #bd2130;\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\n.badge-light[href]:hover, .badge-light[href]:focus {\n color: #212529;\n text-decoration: none;\n background-color: #dae0e5;\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.badge-dark[href]:hover, .badge-dark[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #1d2124;\n}\n\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/borders":{"title":"$:/plugins/kookma/shiraz/styles/bs/borders","text":".border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/btn":{"title":"$:/plugins/kookma/shiraz/styles/bs/btn","text":"/* Button and btn classes Mohammad*/\n.btn {\n display: inline-block;\n font-weight: 400;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n\n.btn:hover, .btn:focus {\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n background-color: transparent;\n border-color: transparent;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n border-color: transparent;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n/* button size */\n\n.btn-lg{\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm{\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/card":{"title":"$:/plugins/kookma/shiraz/styles/bs/card","text":"/* Extracted from bootstrap 4.1.3 */\n.card {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/card-column":{"title":"$:/plugins/kookma/shiraz/styles/bs/card-column","text":"/* Extracted from bootstrap 4.3.1 */\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n -webkit-column-count: 3;\n -moz-column-count: 3;\n column-count: 3;\n -webkit-column-gap: 1.25rem;\n -moz-column-gap: 1.25rem;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/card-deck":{"title":"$:/plugins/kookma/shiraz/styles/bs/card-deck","text":"/* Extracted from bootstrap 4.1.3 */\n\n.card-deck {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n -ms-flex-direction: column;\n flex-direction: column;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/card-group":{"title":"$:/plugins/kookma/shiraz/styles/bs/card-group","text":"/* Extracted from bootstrap 4.1.3 */\n.card-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n }\n .card-group > .card {\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:first-child .card-img-top,\n .card-group > .card:first-child .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:first-child .card-img-bottom,\n .card-group > .card:first-child .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:last-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:last-child .card-img-top,\n .card-group > .card:last-child .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:last-child .card-img-bottom,\n .card-group > .card:last-child .card-footer {\n border-bottom-left-radius: 0;\n }\n .card-group > .card:only-child {\n border-radius: 0.25rem;\n }\n .card-group > .card:only-child .card-img-top,\n .card-group > .card:only-child .card-header {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n }\n .card-group > .card:only-child .card-img-bottom,\n .card-group > .card:only-child .card-footer {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n }\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) {\n border-radius: 0;\n }\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer {\n border-radius: 0;\n }\n}\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/clearfix":{"title":"$:/plugins/kookma/shiraz/styles/bs/clearfix","text":".clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/float":{"title":"$:/plugins/kookma/shiraz/styles/bs/float","text":".float-left {\n float: left;\n}\n\n.float-right {\n float: right;\n}\n\n.float-none {\n float: none;\n}\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/my-adjustment":{"title":"$:/plugins/kookma/shiraz/styles/bs/my-adjustment","text":"/* My adjustments to bootstrap 4.1.3 css classes */\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n -webkit-text-decoration-skip: objects;\n}\n/* Link is hacked to be compatible with bootstrap \nclasses remove it if the TW core objects break\n*/\n\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/shadow":{"title":"$:/plugins/kookma/shiraz/styles/bs/shadow","text":".shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/sizing-spacing":{"title":"$:/plugins/kookma/shiraz/styles/bs/sizing-spacing","text":"/* Extracted from bootstrap 4.3.1 */\n/*Defines margins, paddings, width and height*/\n.w-25 {\n width: 25% !important;\n}\n.w-50 {\n width: 50% !important;\n}\n.w-75 {\n width: 75% !important;\n}\n.w-100 {\n width: 100% !important;\n}\n.w-auto {\n width: auto !important;\n}\n.h-25 {\n height: 25% !important;\n}\n.h-50 {\n height: 50% !important;\n}\n.h-75 {\n height: 75% !important;\n}\n.h-100 {\n height: 100% !important;\n}\n.h-auto {\n height: auto !important;\n}\n.mw-100 {\n max-width: 100% !important;\n}\n.mh-100 {\n max-height: 100% !important;\n}\n.m-0 {\n margin: 0 !important;\n}\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n.m-1 {\n margin: 0.25rem !important;\n}\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n.m-2 {\n margin: 0.5rem !important;\n}\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/text-alignment":{"title":"$:/plugins/kookma/shiraz/styles/bs/text-alignment","text":".text-justify {\n text-align: justify !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/text-colors":{"title":"$:/plugins/kookma/shiraz/styles/bs/text-colors","text":"/* from bootstrap 4.1.3 */\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0062cc !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #545b62 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #1e7e34 !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #117a8b !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #d39e00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #bd2130 !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #dae0e5 !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #1d2124 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/text-utility":{"title":"$:/plugins/kookma/shiraz/styles/bs/text-utility","text":"/* Can be removed latter. This is used for illustration of bootstrap cards */\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-family: inherit;\n font-weight: 500;\n line-height: 1.2;\n color: inherit;\n}\n\n.h1 {\n font-size: 2.5rem;\n}\n\n.h2 {\n font-size: 2rem;\n}\n\n.h3 {\n font-size: 1.75rem;\n}\n\n.h4 {\n font-size: 1.5rem;\n}\n\n.h5 {\n font-size: 1.25rem;\n}\n\n.h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.hr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/clear-float":{"title":"$:/plugins/kookma/shiraz/styles/clear-float","text":"/* Resolve issue for floating objects which cross the tiddler frame!\nThe below code should force the tiddler to always wrap around floating elements, so that they are always inside\nRef: https://groups.google.com/d/msg/tiddlywiki/5bZwwj6cyac/2LzFeA7AAwAJ\n*/\n\n.tc-tiddler-body:before, .tc-tiddler-body:after {\n content: \"\";\n display: table;\n}\n.tc-tiddler-body:after {\n clear: both;\n}\n.tc-tiddler-body {\n zoom: 1;\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/colorful-sidebar-tab":{"title":"$:/plugins/kookma/shiraz/styles/colorful-sidebar-tab","text":".tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n background: none;\n border: none;\n border-bottom: solid 1px #737373;\n font-weight: bold;\n color: #DB4C3F;\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/csvtable":{"title":"$:/plugins/kookma/shiraz/styles/csvtable","text":"/* todo section ------------*/\n.tc-tiddler-body p.dblock,\n.tc-tiddler-preview-preview p.dblock {\n\tdisplay:none;\n}\n\n/*\nOnly used with csv table\nSee $:/plugins/kookma/shiraz/macros/csvtables/table-csv\nThe @@ produces a p tag.\n*/","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/csvtable-katex":{"title":"$:/plugins/kookma/shiraz/styles/csvtable-katex","text":".falign .katex-display > .katex {text-align:left;}\n.ralign .katex-display > .katex {text-align:right;}\n.table-mathbox tr td{vertical-align: baseline;} /* baseline aligned text and fomula in table cell*/\n\n/*\nOnly used with csv table + katex\nSee $:/plugins/kookma/shiraz/macros/csvtables/formats-math\n*/","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/csvtable-star":{"title":"$:/plugins/kookma/shiraz/styles/csvtable-star","text":"/* Styles for star rating used with table-csv macro */\n.shiraz-star svg{\nwidth: 1.2em;\nheight: 1.2em;\nvertical-align: middle;\nfill:#FF9529; /*Deep Saffron*/\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/dbadge":{"title":"$:/plugins/kookma/shiraz/styles/dbadge","text":"/*Credits: \nNishant Srivastava https://codepen.io/nisrulz/pen/bpQWLW\nMohammad Rahmani: https://github.com/kookma\n*/\n.dbadge {\n display: inline-block;\n margin: 0.0em;\n}\n.dbadge > span {\n color: #ffffff;\n font-size: 0.8em;\n font-weight: 400;\n line-height: 1;\n padding: .2em .6em;\n text-align: center;\n vertical-align: baseline;\n white-space: nowrap;}\n\n.dbadge-subject{\n background-color: #656565;\n border-bottom-left-radius: 0.25em;\n border-top-left-radius: 0.25em;}\n.dbadge-status {\n border-bottom-right-radius: 0.25em;\n border-top-right-radius: 0.25em;}\n\n.dbadge-primary {\n background-color: #337ab7;}\n.dbadge-success {\n background-color: #5cb85c;}\n.dbadge-info {\n background-color: #5bc0de;}\n.dbadge-warning {\n background-color: #f0ad4e;}\n.dbadge-danger {\n background-color: #d9534f;}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/details-slider":{"title":"$:/plugins/kookma/shiraz/styles/details-slider","text":"/*details html5 macro*/\ndetails.kk-shiraz-details > summary {\n padding: 2px 6px;\n font-weight:500;\n outline:none;\n}\ndetails.kk-shiraz-details > div {\n padding: 2px 6px;\n margin: 0;\n}\n\n\n/* Styles for summary cursor\nurl: https://css-tricks.com/two-issues-styling-the-details-element-and-how-to-solve-them/\n*/\n\ndetails.kk-shiraz-details summary {\n cursor: pointer;\n}\n\ndetails.kk-shiraz-details summary > * {\n display: inline;\n}\n\n\nbutton .kk-sh-slider svg{\nwidth: 0.8em;\nheight: 0.8em;\nvertical-align: middle;\n}\n\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/dynamic-tables":{"title":"$:/plugins/kookma/shiraz/styles/dynamic-tables","text":"/* main editor toolbar settings for dynamic table */\n.shiraz-dtable-maineditor .tc-editor-toolbar button svg{\n\theight:0.9em; /* make toolbar buttons smaller */\n\twidth:0.9em\n}\n/* make third party plugins like KaTeX button smaller */\n.shiraz-dtable-maineditor .tc-editor-toolbar button .katex{\n\tfont-size: 0.9em;\n\tline-height:1em;\n}\n\n/* edit-text box for dynamic table */\n.shiraz-dtable-textbox {\n\twidth:100%;\n\tpadding-left: 5px;\n\tborder: none;\n}\n\n.shiraz-dtable-textbox:focus {\n\toutline: none;\n\tborder: 1px solid #5778d8;\n\tbackground: transparent;\n}\n\n.tbl-inpt-edit { width: 100%; background-color: transparent; border: none; color: #000000;}\n\nbutton.tbl-sort-svg > svg { text-shadow: none; fill:#000000; height:10px; padding:0 0 2px 0; }\n\nth .tc-tiddlylink, th a { text-shadow: none; margin: 0 0 0 0; padding: 0 0 0 0; color:#000000; font-weight: bold; }\n\n\n/* DELETE CONFIRMATION */\ntable thead .tbl-delete-confirm > th {\n\tcolor: white;\n\tbackground-color:#ff0033;\n\tpadding: 8px;\n\tmargin: 0px;\n\ttext-align:center;\n\tfont-weight:normal;\n}\n\ntable thead .tbl-delete-confirm > th > button {\n\tcolor: white;\n\tfill: white;\n}\n\n/* -- pagination --*/\n.shiraz-dtable-page-footer td{\n\tmargin: 0 0 0 0;\n\tpadding: 4px 7px 4px 7px;\n}\n\n.shiraz-dtable-page-footer select{\n\tpadding:0;\n\tmargin:0;\n\tborder:none;\t\n}\n\n.shiraz-dtable-page-footer {\n\ttext-align:center;\n}\n\n.shiraz-dtable-page-prev{\n\tfloat:left;\n\tmargin-right:8px;\n}\n\n.shiraz-dtable-page-next{\n\tfloat:right;\n\tmargin-left:8px;\n}\n\n.shiraz-dtable-page-footer button svg {height:0.7em;}\n.shiraz-dtable-page-footer button {outline: none; line-height:normal;}\n.shiraz-dtable-page-footer button:disabled {display:none;}\n\n/* format the expanded record (tiddler body) - for local customization like KaTeX numbering */\n.shiraz-dtable-expanded-record{ }\n\n/* adjust the column width for date/due-date/status/linktype fields*/\n.shiraz-dtable-col-fixedsize{\n\twidth:5.5rem;\n\twhite-space: nowrap;\n}\n.shiraz-dtable-priority{\n\twidth:6.5rem;\n\twhite-space: nowrap;\n}\n/* adjust the size of column with svg icons like: tbl-expand, tbl-clone, tbl-delete, tbl-checkbox */\n.shiraz-dtable-svg{\n\twidth:28px;\n\tmax-width:28px;\n}\n\n\n/* this ensure short title in small width table */\n.shiraz-dtable-title{\n\tmax-width: 15rem;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/dynamic-tables-var":{"title":"$:/plugins/kookma/shiraz/styles/dynamic-tables-var","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":"/* these are dynamic or variable properties based on the tiddlywiki palette */\n\n.shiraz-dtable-page-footer select{\n\tbackground-color: <<color table-header-background>>;\n\tcolor:<<color foreground>>;\n}\n\n.shiraz-dtable-page-footer > td{\n\tbackground-color: <<color table-header-background>>;\n}\n\n/* customize the table footer used for numerical summary*/\n.shiraz-dtable-footer tr td{\n\tbackground-color: <<color table-footer-background>>;\n\tborder:none;\n}\n\n/* correct button color to support dark theme */\n.tbl-container table thead th button{\n\tcolor:<<colour button-foreground>>\n}\n.tbl-container table thead th button svg {\n\tfill:<<colour button-foreground>>;\n}"},"$:/plugins/kookma/shiraz/styles/highlight":{"title":"$:/plugins/kookma/shiraz/styles/highlight","text":"mark.kk-sh-highlight {\n\tbackground-color: unset;\n\tborder-radius:0.4em;\n\tpadding:0 0.25em 0.1em;\n}\n\nmark.kk-sh-highlight-pen {\n\tbackground-color: unset;\n\tbackground-position: top left;\n\tbackground-repeat: no-repeat;\n\tbackground-size: 100% auto;\n}\n\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/image-alignment":{"title":"$:/plugins/kookma/shiraz/styles/image-alignment","text":"/*Image aligning classes*/\n.image-align-right{\n float:right;\n margin:0.5em 0 1.3em 1.4em;\n}\n.image-align-left{\n float:left;\n margin: 0.5em 1.4em 1.3em 0;\n}\n.image-align-center{\n display:block;\n margin: 0.5em auto 1.3em; \n}\n\n.image-float-none {\n float: none !important;\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/image-basic":{"title":"$:/plugins/kookma/shiraz/styles/image-basic","text":".image-basic {\n text-align: center;\n font-style: italic;\n font-size: smaller;\n text-indent: 0;\n padding: 0.5em;\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/image-overlay":{"title":"$:/plugins/kookma/shiraz/styles/image-overlay","text":".image-overlay-container{\n width: 50%; \n box-sizing: border-box;\n}\n\n@media screen and (max-width: 640px){\n .image-overlay-container{\n display: block;\n width: 100%;\n }\n}\n\n@media screen and (min-width: 900px){\n .image-overlay-container{\n width: 33.33%;\n }\n}\n\n.image-overlay-container .image-overlay-title{\n color: #1a1a1a;\n text-align: center;\n margin-bottom:10px;\n}\n\n.image-overlay-content {\n position: relative;\n width: 90%;\n max-width: 400px;\n margin: auto;\n overflow: hidden;\n}\n\n.image-overlay-content .image-overlay-content-overlay {\n background: rgba(0,0,0,0.7);\n position: absolute;\n height: 99%;\n width: 100%;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n opacity: 0;\n -webkit-transition: all 0.4s ease-in-out 0s;\n -moz-transition: all 0.4s ease-in-out 0s;\n transition: all 0.4s ease-in-out 0s;\n}\n\n.image-overlay-content:hover .image-overlay-content-overlay{\n opacity: 1;\n}\n\n.image-overlay-content-image{\n width: 100%;\n}\n\n.image-overlay-content-details {\n position: absolute;\n text-align: center;\n padding-left: 1em;\n padding-right: 1em;\n width: 100%;\n top: 50%;\n left: 50%;\n opacity: 0;\n -webkit-transform: translate(-50%, -50%);\n -moz-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transition: all 0.3s ease-in-out 0s;\n -moz-transition: all 0.3s ease-in-out 0s;\n transition: all 0.3s ease-in-out 0s;\n}\n\n.image-overlay-content:hover .image-overlay-content-details{\n top: 50%;\n left: 50%;\n opacity: 1;\n}\n\n.image-overlay-content-details h3{\n color: #fff;\n font-weight: 500;\n letter-spacing: 0.15em;\n margin-bottom: 0.5em;\n text-transform: uppercase;\n}\n\n.image-overlay-content-details p{\n color: #fff;\n font-size: 0.8em;\n}\n\n.image-overlay-fadeIn-bottom{\n top: 80%;\n}\n\n.image-overlay-fadeIn-top{\n top: 20%;\n}\n\n.image-overlay-fadeIn-left{\n left: 20%;\n}\n\n.image-overlay-fadeIn-right{\n left: 80%;\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/image-polaroid":{"title":"$:/plugins/kookma/shiraz/styles/image-polaroid","text":".image-polaroid {\n min-width:64px;\n background-color: #f8f9fa;\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\n}\n.image-polaroid img {\n width: 100%;\n padding:10px;\n height: auto;\n}\n.image-polaroid .image-polaroid-caption {\n padding:10px 15px 10px;\n text-align: center; \n line-height: 1.4em;\n font-weight:300;\n font-size: 0.9em; \n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/image-pretty":{"title":"$:/plugins/kookma/shiraz/styles/image-pretty","text":".image-pretty {\n min-width:64px;\n border: 1px solid #c8ccd1;\n background-color:#f8f9fa;\n}\n.image-pretty:hover {\n border: 1px solid #777;\n}\n.image-pretty img {\n padding:2px;\n width: 100%;\n height: auto;\n}\n.image-pretty .image-pretty-caption {\n padding:10px 15px 10px;\n text-align: center; \n line-height: 1.4em;\n font-weight:300;\n font-size: 0.9em; \n}\n\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/image-slidein":{"title":"$:/plugins/kookma/shiraz/styles/image-slidein","text":".image-slidein { \n display: block; \n position: relative; \n /*float: left;*/\n overflow: hidden; \n /* margin: 0 20px 20px 0;*/\n}\n\n.image-slidein img {\n width: 100%;\n height: auto;\n}\n\n.image-slidein figcaption { \n position: absolute; \n background: rgba(0,0,0,0.75); \n color: white; \n padding: 10px 20px; \n opacity: 0;\n -webkit-transition: all 0.6s ease;\n -moz-transition: all 0.6s ease;\n -o-transition: all 0.6s ease;\n}\n.image-slidein:hover figcaption {\n opacity: 1;\n}\n.image-slidein:before { \n content: \"?\"; \n position: absolute; \n font-weight: 800; \n background: rgba(255,255,255,0.75); \n text-shadow: 0 0 5px white;\n color: black;\n width: 24px;\n height: 24px;\n -webkit-border-radius: 12px;\n -moz-border-radius: 12px;\n border-radius: 12px;\n text-align: center;\n font-size: 14px;\n line-height: 24px;\n -moz-transition: all 0.6s ease;\n opacity: 0.75;\t\n}\n.image-slidein:hover:before {\n opacity: 0;\n}\n\n.mr-cap-left:before { bottom: 10px; left: 10px; }\n.mr-cap-left figcaption { bottom: 0; left: -30%; }\n.mr-cap-left:hover figcaption { left: 0; }\n\n.mr-cap-right:before { bottom: 10px; right: 10px; }\n.mr-cap-right figcaption { bottom: 0; right: -30%; }\n.mr-cap-right:hover figcaption { right: 0; }\n\n.mr-cap-top:before { top: 10px; left: 10px; }\n.mr-cap-top figcaption { left: 0; top: -30%; }\n.mr-cap-top:hover figcaption { top: 0; }\n\n.mr-cap-bottom:before { bottom: 10px; left: 10px; }\n.mr-cap-bottom figcaption { left: 0; bottom: -30%;}\n.mr-cap-bottom:hover figcaption { bottom: 0; }\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/mono":{"title":"$:/plugins/kookma/shiraz/styles/mono","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":".mono {\n\tcolor:unset;\n\tbackground-color: <<colour \"code-background\">>;\n\tborder: 1px solid #e1e1e8;\n\twhite-space: pre-wrap;\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}}\n}"},"$:/plugins/kookma/shiraz/styles/multicols/column":{"title":"$:/plugins/kookma/shiraz/styles/multicols/column","text":"/* multicolumn layouts with fixed column number works on the whole tiddler */\n.multicol .tc-tiddler-body {\n column-width: 14em;\n column-rule: 1px solid #ccc;\n}\n/* two columns responsive*/\n.multicol2 .tc-tiddler-body {\n\tcolumn-count:2; \n\tcolumn-width:15em;\n}\n/* three columns responsive*/\n.multicol3 .tc-tiddler-body {\n\tcolumn-count:3; \n\tcolumn-width:10em;\n}\n\n\n/* remove the extra space from first paragraph */\n.multicol .tc-tiddler-body > :first-child, \n.multicol2 .tc-tiddler-body > :first-child, \n.multicol3 .tc-tiddler-body > :first-child { margin-top: 0;}\n\n/*-------------------------------------------------------------------------------*/\n/* Classes for using with macro and div elements */\n.sh-multicol {\n column-width: 14em;\n column-rule: 1px solid #ccc;\n}\n/* two columns responsive*/\n.sh-multicol2 {\n\tcolumn-count:2; \n\tcolumn-width:15em;\n}\n/* three columns responsive*/\n.sh-multicol3 {\n\tcolumn-count:3; \n\tcolumn-width:10em;\n}\n\n/* remove the extra space from first paragraph */\n.sh-multicol > :first-child,\n.sh-multicol2 > :first-child,\n.sh-multicol3 > :first-child { margin-top: 0;}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/multicols/flex":{"title":"$:/plugins/kookma/shiraz/styles/multicols/flex","text":"/* multicolumn layout using flexbox courtesy from Bootstrap 4.3.1*/\n.flex-row {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n/* margin-right: -15px;\n margin-left: -15px;*/\n}\n\n.flex-col,\n.flex-col-1, \n.flex-col-2, \n.flex-col-3,\n.flex-col-4 {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n/* for small screen width>=576px\nhttps://getbootstrap.com/docs/4.3/layout/grid/\n*/\n@media (min-width: 576px) {\n.flex-col {flex: 1 1 0; max-width: 100%;}\n.flex-col-1 {flex: 0 0 25%; max-width:25%}\n.flex-col-2 {flex: 0 0 50%; max-width:50%}\n.flex-col-3 {flex: 0 0 75%; max-width:75%}\n.flex-col-4 {flex: 0 0 100%; max-width:100%}\n}\n\n.flex-col > :first-child,\n.flex-col-1 > :first-child,\n.flex-col-2 > :first-child,\n.flex-col-3 > :first-child,\n.flex-col-4 > :first-child {\n margin-top: 0;}\n\n\n/* Alignment */\n.flex-align-items-center {\n align-items: center !important;\n}\n.flex-justify-content-center {\n justify-content: center !important;\n}\n\n.flex-no-gutters {\n margin-right: 0;\n margin-left: 0;\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/multicols/flex backup":{"title":"$:/plugins/kookma/shiraz/styles/multicols/flex backup","text":"/* multicolumn layout using flexbox courtesy from Bootstrap 4.3.1*/\n.flex-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n.flex-col-1, \n.flex-col-2, \n.flex-col-3 {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.flex-col-1{flex: 1 1 0;}\n.flex-col-2{flex: 2 1 0;}\n.flex-col-3{flex: 3 1 0;}\n\n.flex-col-1 > :first-child,\n.flex-col-2 > :first-child,\n.flex-col-3 > :first-child {\n\tmargin-top: 0;}","type":"text/css"},"$:/plugins/kookma/shiraz/styles/multicols/storyriver":{"title":"$:/plugins/kookma/shiraz/styles/multicols/storyriver","text":"/* create story river in two column layout */\n.tc-story-river {\n display: flex;\n flex-wrap: wrap;\n}\n\n.tc-tiddler-frame\n{\n max-width: 49%; margin-right: 1%;\n /*max-width: 32%; margin-right: 1%; */\n}\n","tags":"","type":"text/css"},"$:/plugins/kookma/shiraz/styles/notebook":{"title":"$:/plugins/kookma/shiraz/styles/notebook","text":"@media print{\n .notebook .tc-tiddler-body {\n padding-left:60px;\n margin-top:25px;\n }\n .notebook .tc-tiddler-title,\n .notebook .tc-subtitle,\n\t.notebook .tc-tags-wrapper {\n padding-left:60px;\n }\n}\n\n@media screen{\n .notebook .tc-tiddler-title,\n .notebook .tc-subtitle,\n\t.notebook .tc-tags-wrapper,\n\t.notebook .tc-tiddler-body {\n padding-left:30px;\n }\n\n}\t\n\n@media screen and (max-width:960px) {\n .notebook .tc-tiddler-title,\n .notebook .tc-subtitle,\n .notebook .tc-tags-wrapper,\n .notebook .tc-tiddler-body {\n padding-left:60px;\n }\n\n}\n/*prevent applying left border in edit mode */\n.notebook:not([data-tiddler-title^=\"Draft of\"]):before {\n content: '';\n position: absolute;\n top: 0; bottom: 0; left: 0;\n width: 50px;\n background: radial-gradient(#575450 6px, transparent 7px) repeat-y;\n background-size: 30px 30px;\n border-right: 3px solid #D44147;\n\t z-index:1;\n}\n\n.notebook .tc-tiddler-body {\n\t position: relative;\n background: linear-gradient(transparent, transparent 1.95em, #91D1D3 1.95em);\n background-size: 2em 2em;\n\t min-height:90px; \n}\n\n.notebook .tc-tiddler-body{\n\t padding-top:20px;\n font-family: \"Handlee\", cursive;\n font-weight:300;\n line-height:2em;\n color:#696969;\n}\n\n/* Setting font for other elements */\n.notebook .tc-tiddler-body pre,\n.notebook .tc-tiddler-body code,\n.notebook .tc-tiddler-body pre code\n{\n font-family: \"Handlee\", cursive;\n font-weight:300;\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/sticky-footer":{"title":"$:/plugins/kookma/shiraz/styles/sticky-footer","text":".sticky-footer {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 0.5rem;\n background-color: #efefef;\n text-align: center;\n margin-top: 5px;\n box-sizing: border-box;\n width: 100%;\n}\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/tables":{"title":"$:/plugins/kookma/shiraz/styles/tables","text":".table-tight{\n\tfont-size:0.8em;\n}\n\n\n/*\nThis tiddler defines the custom stylesheet for tables \nApril 13, 2018\n*/\n\n/*center aligned table*/\n.table-center {\n margin:0 auto;\n}\n\n/* Table caption at top */\n.table-caption-top caption {\n caption-side:top;\n margin-bottom:0.2rem;\n}\n\n/* Striped row table */\n.table-striped-row tr:nth-child(even) td{\n background-color:#F3F6F6; \n}\n\n/* Striped column table */\n.table-striped-col tbody tr td:nth-child(odd) {\n\tbackground-color: #F3F6F6;\n}\n\n/*Borderless table*/\n.table-borderless, \n.table-borderless thead td, \n.table-borderless th, \n.table-borderless tr, \n.table-borderless td{\n border:0;\n}\n\n/* Table lines should be used with table-borderless for abbreviations and two column layout */\n\n.table-lines thead td, .table-lines th{\n border-bottom: 2px solid #dddddd;\n\t background-color:unset;\n }\n.table-lines td{\n border-bottom: 1px solid #dddddd;\n background-color:unset;\n }\n\n/* Table hover (yellow background on mouse over) */\n.table-hover tbody tr:hover{\n color: #212529;\n background-color: #e6e6e6;\n}\n.table-hover-yellow tbody tr:hover{background-color: #ffffcc;}\n.table-hover-cyan tbody tr:hover{background-color: #e6ffff;}\n\n/* Table with colored header */\n.thead-primary thead td, .thead-primary th{background-color: #007bff; color: #fff;}\n.thead-secondary thead td, .thead-secondary th{background-color: #6c757d; color: #fff;}\n.thead-success thead td, .thead-success th{background-color: #28a745; color: #fff;}\n.thead-warning thead td, .thead-warning th{background-color: #ffc107; color: #fff;}\n.thead-danger thead td, .thead-danger th{background-color: #dc3545; color: #fff;}\n.thead-info thead td, .thead-info th{background-color: #17a2b8; color: #fff;}\n.thead-dark thead td, .thead-dark th{background-color: #343a40; color: #fff;}\n.thead-light thead td, .thead-light th{background-color: #f8f9fa; color: #212529;}\n\n/* Table with colored header correct to fill svgs with white color */\n.thead-primary > thead> tr > td svg, .thead-primary > thead> tr > th svg,\n.thead-secondary > thead> tr > td svg, .thead-secondary > thead> tr > th svg,\n.thead-success > thead> tr > td svg, .thead-success > thead> tr > th svg,\n.thead-warning > thead> tr > td svg, .thead-warning > thead> tr > th svg,\n.thead-danger > thead> tr > td svg, .thead-danger > thead> tr > th svg,\n.thead-info > thead> tr > td svg, .thead-info > thead> tr > th svg,\n.thead-dark > thead> tr > td svg, .thead-dark > thead> tr > th svg\n {fill:#ffffff; padding:0 0 3px 0; }\n\n\n.thead-primary th .tc-tiddlylink, .thead-primary th a,\n.thead-secondary th .tc-tiddlylink, .thead-primary th a,\n.thead-success th .tc-tiddlylink, .thead-primary th a,\n.thead-warning th .tc-tiddlylink, .thead-primary th a,\n.thead-danger th .tc-tiddlylink, .thead-primary th a,\n.thead-info th .tc-tiddlylink, .thead-primary th a,\n.thead-dark th .tc-tiddlylink, .thead-primary th a{color:#ffffff}\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/tiddler-title-class":{"title":"$:/plugins/kookma/shiraz/styles/tiddler-title-class","text":".title-primary .tc-title {\n color: #007bff;\n}\n.title-secondary .tc-title {\n color: #6c757d;\n}\n.title-success .tc-title {\n color: #28a745;\n}\n.title-info .tc-title {\n color: #17a2b8;\n}\n.title-warning .tc-title {\n color: #ffc107;\n}\n.title-danger .tc-title {\n color: #dc3545;\n}\n.title-light .tc-title {\n color: #f8f9fa;\n}\n.title-dark .tc-title {\n color: #343a40;\n}\n.title-white .tc-title {\n color: #fff;\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/ui/colorify-buttons":{"title":"$:/plugins/kookma/shiraz/styles/ui/colorify-buttons","text":"/* These css rules makes page control buttons in beatiful color */\n\n/*page control buttons*/\n.tc-page-controls .tc-image-new-button { fill: #5EB95E; } /*New tiddler button*/\n.tc-page-controls .tc-image-options-button { fill:#8058A5; } /*Open control pannel*/\n\n/* These css rules makes tiddler viewtoolbar buttons in beatiful color */\n\n.tc-tiddler-controls .tc-image-edit-button{fill:#f37b1d}\n.tc-tiddler-controls .tc-image-info-button{fill:#0e90d2}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/ui/edit-toolbar-buttons":{"title":"$:/plugins/kookma/shiraz/styles/ui/edit-toolbar-buttons","text":"/*Tiddler edit toolbar buttons as traffic lights*/\n.tc-tiddler-controls .tc-image-delete-button {fill:#ebb;}\n.tc-tiddler-controls .tc-image-cancel-button {fill:#ed9;}\n.tc-tiddler-controls .tc-image-done-button {fill:#beb;}","tags":"","type":"text/css"},"$:/plugins/kookma/shiraz/styles/ui/view-toolbar-button-visibility":{"title":"$:/plugins/kookma/shiraz/styles/ui/view-toolbar-button-visibility","text":"/* Mouseover toolbar visibility: courtesy from Tobias Beer*/\n.tc-tiddler-frame .tc-titlebar button {\n opacity: 0;\n transition: opacity .5s ease-in-out;\n}\n.tc-tiddler-frame:hover .tc-titlebar button {\n zoom: 1;\n filter: alpha(opacity=100);\n opacity: 1;\n}\n","tags":"","type":"text/css"},"$:/plugins/kookma/shiraz/templates/body/color":{"title":"$:/plugins/kookma/shiraz/templates/body/color","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"color","type":"text/vnd.tiddlywiki","text":"\\define showCell()\n<style>\n.dt:not(:disabled):dt(.disabled) {cursor: pointer;}\na.dt.disabled,fieldset:disabled a.dt {pointer-events: none;}\n</style>\n<$link overrideClass=\"dt disabled\" to=\"\">\n<$edit-text tag=input type=color tiddler=<<currentRecord>> field=color/>\n</$link>\n\\end\n\n\\define edit_color() <$edit-text tag=input type=color tiddler=<<currentRecord>> field=<<currentColumn>>/>\n<$reveal type=\"nomatch\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<<showCell>>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<!--check if the current column is not selected for sorting-->\n<$list filter=\"[<tempTableSort>getindex[sortIndex]match<currentColumn>]\" variable=ignore\nemptyMessage=<<edit_color>> >\n <<showCell_Locked>>\n</$list>\n</$reveal>"},"$:/plugins/kookma/shiraz/templates/body/date":{"title":"$:/plugins/kookma/shiraz/templates/body/date","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"created modified","type":"text/vnd.tiddlywiki","text":"<td class=\"shiraz-dtable-col-fixedsize\">\n<$view tiddler=<<currentRecord>> field=<<currentColumn>> format=\"date\" template=\"YYYY.0MM.0DD\"/>\n</td>"},"$:/plugins/kookma/shiraz/templates/body/default":{"title":"$:/plugins/kookma/shiraz/templates/body/default","tags":"$:/tags/Table/BodyTemplate","type":"text/vnd.tiddlywiki","text":"<$reveal type=\"nomatch\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<<showCell>>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<!--check if the current column is not selected for sorting-->\n<$list filter=\"[<tempTableSort>getindex[sortIndex]match<currentColumn>]\" variable=ignore\nemptyMessage=<<editCell>> >\n <<showCell_Locked>>\n</$list>\n</$reveal>"},"$:/plugins/kookma/shiraz/templates/body/due-date":{"title":"$:/plugins/kookma/shiraz/templates/body/due-date","code-body":"yes","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"due-date due","type":"text/vnd.tiddlywiki","text":"\\define showCell()\n<$let fmt=\"[UTC]YYYY.0MM.0DD\">\n<$set tiddler=<<currentRecord>> field=<<currentColumn>> name=due-date>\n<$text text={{{[<due-date>split[-]split[.]join[]format:date<fmt>]}}} />\n</$set>\n</$let>\n\\end\n\n\\define showCell_Locked() <span style=\"font-style:oblique;\"><<showCell>></span>\n\n\\define edit_date() \n<$list filter=\"[[$:/plugins/kookma/pikaday]!is[missing]] :filter[lookup:no[$:/config/Plugins/Disabled/]match[no]]\"\n emptyMessage='<$edit-text tag=input type=date tiddler=<<currentRecord>> field=<<currentColumn>>/>'\n\tvariable=null >\n <<editCell>>\n</$list>\n\\end\n\n<$reveal type=\"nomatch\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\" class=\"shiraz-dtable-col-fixedsize\">\n<<showCell>>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<!--check if the current column is not selected for sorting-->\n<$list filter=\"[<tempTableSort>getindex[sortIndex]match<currentColumn>]\" variable=ignore\nemptyMessage=<<edit_date>> >\n <<showCell_Locked>>\n</$list>\n</$reveal>\n\n<!-- Part of Task Manager\n this template ALWAYS works on fields -->"},"$:/plugins/kookma/shiraz/templates/body/email":{"title":"$:/plugins/kookma/shiraz/templates/body/email","code-body":"yes","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"email","type":"text/vnd.tiddlywiki","text":"\\define display-email-address()\n<$let href={{{[<currentRecord>get<currentColumn>addprefix[mailto:]]}}} >\n<a class=\"tc-tiddlylink-external\" href=<<href>> rel=\"noopener noreferrer\" target=\"_blank\">\n<<showCell>>\n</a>\n</$let>\n\\end\n\\define display-email-address_Locked()\n<$let href={{{[<currentRecord>get<currentColumn>addprefix[mailto:]]}}} >\n<a class=\"tc-tiddlylink-external\" href=<<href>> rel=\"noopener noreferrer\" target=\"_blank\">\n<<showCell_Locked>>\n</a>\n</$let>\n\\end\n\n<$reveal type=\"nomatch\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<<display-email-address>>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<!--check if the current column is not selected for sorting-->\n<$list filter=\"[<tempTableSort>getindex[sortIndex]match<currentColumn>]\" variable=ignore\nemptyMessage=<<editCell>> >\n<<display-email-address_Locked>>\n</$list>\n</$reveal>\n\n"},"$:/plugins/kookma/shiraz/templates/body/priority":{"title":"$:/plugins/kookma/shiraz/templates/body/priority","code-body":"yes","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"priority","type":"text/vnd.tiddlywiki","text":"\\define circle(color, fill)\n<svg width=\"12\" height=\"12\" >\n<circle cx=\"6\" cy=\"6\" r=\"5\" stroke=<<__color__>> fill=<<__fill__>> stroke-width=\"1\"/>\n</svg>\n\\end\n\n\\define showCell()\n<$list filter=\"[<currentRecord>get<currentColumn>match[5]]\" variable=ignore>\n<$macrocall $name=\"circle\" color=\"#dc3545\" fill=\"#f8d7da\"/> very high\n</$list>\n<$list filter=\"[<currentRecord>get<currentColumn>match[4]]\" variable=ignore>\n<$macrocall $name=\"circle\" color=\"#ff8c00\" fill=\"#fff3cd\"/> high\n</$list>\n<$list filter=\"[<currentRecord>get<currentColumn>match[3]]\" variable=ignore>\n<$macrocall $name=\"circle\" color=\"#17a2b8\" fill=\"#d1ecf1\"/> normal\n</$list>\n<$list filter=\"[<currentRecord>get<currentColumn>match[2]]\" variable=ignore>\n<$macrocall $name=\"circle\" color=\"#007bff\" fill=\"#cce5ff\"/> low\n</$list>\n<$list filter=\"[<currentRecord>get<currentColumn>match[1]]\" variable=ignore>\n<$macrocall $name=\"circle\" color=\"#6c757d\" fill=\"#e2e3e5\"/> very low\n</$list>\n\\end\n\n\\define showCell_Locked() <span style=\"font-style:oblique;\"><<showCell>></span>\n\n\\define select_priority()\n<$select tiddler=<<currentRecord>> field=<<currentColumn>> default=\"\"><option value=''>Select...</option><option value='5'>very high</option><option value='4'>high</option><option value='3'>normal</option><option value='2'>low</option><option value='1'>very low</option><option value=''>no priority</option></$select>\n\\end\n\n\n<$reveal type=\"nomatch\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\" class=\"shiraz-dtable-priority\">\n<<showCell>>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<!--check if the current column is not selected for sorting-->\n<$list filter=\"[<tempTableSort>getindex[sortIndex]match<currentColumn>]\" variable=ignore\nemptyMessage=<<select_priority>> >\n <<showCell_Locked>>\n</$list>\n<$reveal>\n\n<!-- Part of Task Manager\n this template ALWAYS works on fields\n -->"},"$:/plugins/kookma/shiraz/templates/body/status":{"title":"$:/plugins/kookma/shiraz/templates/body/status","code-body":"yes","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"status","type":"text/vnd.tiddlywiki","text":"\\define showCell() <$transclude tiddler=<<currentRecord>> field=<<currentColumn>> mode=\"inline\" />\n\\define showCell_Locked() <span style=\"font-style:oblique;\"><<showCell>></span>\n\\define select_status()\n<$select tiddler=<<currentRecord>> field=<<currentColumn>> default=\"\">\n<option value=''>Select...</option>\n<$list filter=\"open in-work on-hold complete rework closed\" variable=status><option><$text text=<<status>>/></option></$list>\n</$select>\n\\end\n\n<$reveal type=\"nomatch\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\" class=\"shiraz-dtable-col-fixedsize\">\n<<showCell>>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<!--check if the current column is not selected for sorting-->\n<$list filter=\"[<tempTableSort>getindex[sortIndex]match<currentColumn>]\" variable=ignore\nemptyMessage=<<select_status>> >\n <<showCell_Locked>>\n</$list>\n</$reveal>\n\n<!-- Part of Task Manager\n this template ALWAYS works on fields\n\tchange default staus values `open in-work on-hold complete rework closed` as you like-->"},"$:/plugins/kookma/shiraz/templates/body/tag-helper":{"title":"$:/plugins/kookma/shiraz/templates/body/tag-helper","code-body":"yes","tags":"","type":"text/vnd.tiddlywiki","text":"<!-- This is a copy of core tiddler: $:/core/ui/TagTemplate.\nThis is NOT a dynamic table body tempalte. This template itself used by $:/plugins/kookma/shiraz/templates/body/tags\nOn update Shiraz to a new release of TiddlyWiki, check the latest TiddlyWiki $:/core/ui/TagTemplate core tiddler\n-->\n\n\\whitespace trim\n<span class=\"tc-tag-list-item\" data-tag-title=<<currentTiddler>>>\n<$set name=\"transclusion\" value=<<currentRecord>>><!--Shiraz: this variable is overriden -->\n<$macrocall $name=\"tag-pill-body\" tag=<<currentTiddler>> icon={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerIconFilter]!is[draft]get[text]] }}} colour={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerColourFilter]!is[draft]get[text]] }}} palette={{$:/palette}} element-tag=\"\"\"$button\"\"\" element-attributes=\"\"\"popup=<<qualify \"$:/state/popup/tag\">> dragFilter='[all[current]tagging[]]' tag='span'\"\"\"/>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\" animate=\"yes\" class=\"tc-drop-down\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</$set>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]\" variable=\"listItem\"> \n<$transclude tiddler=<<listItem>>/> \n</$list>\n<hr>\n<$macrocall $name=\"list-tagged-draggable\" tag=<<currentTiddler>>/>\n</$reveal>\n</$set>\n</span>\n"},"$:/plugins/kookma/shiraz/templates/body/tags":{"title":"$:/plugins/kookma/shiraz/templates/body/tags","code-body":"yes","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"tags","type":"text/vnd.tiddlywiki","text":"<$reveal type=\"nomatch\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<$list filter=\"[<currentRecord>tags[]] :except[subfilter<sv-exclude-tags>]\">\n<$transclude tiddler=\"$:/plugins/kookma/shiraz/templates/body/tag-helper\"/>\n</$list>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<!--check if the current column is not selected for sorting-->\n<$list filter=\"[<tempTableSort>getindex[sortIndex]match<currentColumn>]\" variable=ignore\nemptyMessage=<<editCell>> >\n <<showCell_Locked>>\n</$list>\n</$reveal>"},"$:/plugins/kookma/shiraz/templates/body/tbl-checkbox":{"title":"$:/plugins/kookma/shiraz/templates/body/tbl-checkbox","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"tbl-checkbox","type":"text/vnd.tiddlywiki","text":"\\define rowStyle() color:<<colour foreground>>; background-color:<<colour table-header-background>>;\n<td style=\"width:28px;text-align:center;\">\n<$checkbox tiddler=<<currentRecord>> tag=\"Done\"\ncheckactions=\"\"\"<$action-setfield $tiddler=<<tempTableStyle>> $index=<<currentRecord>> $value=<<rowStyle>> /><$action-setfield $tiddler=<<currentRecord>> status=\"complete\"/>\"\"\"\nuncheckactions=\"\"\"<$action-setfield $tiddler=<<tempTableStyle>> $index=<<currentRecord>> /><$action-setfield $tiddler=<<currentRecord>> status=\"rework\"/>\"\"\" />\n</td>\n\n<!-- classic style\n\"color:#155724;background-color:#d4edda;\"\n<<colour tab-foreground>>; background-color:<<colour tab-background>>\n-->"},"$:/plugins/kookma/shiraz/templates/body/tbl-clone":{"title":"$:/plugins/kookma/shiraz/templates/body/tbl-clone","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"tbl-clone","type":"text/vnd.tiddlywiki","text":"\\define cloneTiddler() <$action-createtiddler $basetitle=<<currentRecord>> $template=<<currentRecord>> />\n\n<$list filter=\"[<tempTableEdit>getindex[mode]match[edit]]\" variable=ignore>\n<td style=\"width:28px;text-align:center;\">\n <$button actions=<<cloneTiddler>> class=\"tc-btn-invisible\">\n\t {{$:/core/images/clone-button}}\n\t</$button>\n</td>\n</$list>"},"$:/plugins/kookma/shiraz/templates/body/tbl-delete":{"title":"$:/plugins/kookma/shiraz/templates/body/tbl-delete","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"tbl-delete","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[<tempTableEdit>getindex[mode]match[edit]]\" variable=ignore>\n<td style=\"width:28px;text-align:center;\">\n <$button class=\"tc-btn-invisible\">\n <$action-sendmessage $message=\"tm-delete-tiddler\" $param=<<currentRecord>>/>\n {{$:/core/images/delete-button}}\n </$button>\n</td>\n</$list>"},"$:/plugins/kookma/shiraz/templates/body/tbl-expand":{"title":"$:/plugins/kookma/shiraz/templates/body/tbl-expand","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"tbl-expand","type":"text/vnd.tiddlywiki","text":"<$reveal type=\"nomatch\" state=<<tempPathExpand>> text=\"show\" tag=\"td\">\n <$button class=\"tc-btn-invisible tc-tiddlylink\">\n <$action-setfield $tiddler=<<tempTableExpand>> $index=<<currentRecord>> $value=\"show\" />\n {{$:/core/images/right-arrow}}\n </$button>\n</$reveal>\n<$reveal type=\"match\" state=<<tempPathExpand>> text=\"show\" tag=\"td\">\n <$button class=\"tc-btn-invisible tc-tiddlylink\">\n <$action-setfield $tiddler=<<tempTableExpand>> $index=<<currentRecord>>/>\n {{$:/core/images/down-arrow}}\n </$button>\n</$reveal>"},"$:/plugins/kookma/shiraz/templates/body/tbl-linktype":{"title":"$:/plugins/kookma/shiraz/templates/body/tbl-linktype","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"tbl-linktype","type":"text/vnd.tiddlywiki","text":"\\define subtiddler-pattern() (^$(currentTiddler)$\\s*/|^$(currentTiddler)$\\s*:)\n\n<td class=\"shiraz-dtable-col-fixedsize\">\n<$text text={{{ \n[all[current]links[]match<currentRecord>then[link]]\n[all[current]backlinks[]match<currentRecord>then[backlink]]\n[all[current]tagging[]match<currentRecord>then[tagging]]\n[<currentRecord>regexp<subtiddler-pattern>then[subtiddler]]\n~[<currentRecord>search:text<currentTiddler>then[backtransclusion]else[transclusion]] }}} />\n</td>\n<!-- \ntb-linktype is not sortable not editable. The priority is as below:\nlink, backlink, tagging, subtiddler, transclusion, and backtransclusion\n-->"},"$:/plugins/kookma/shiraz/templates/body/title":{"title":"$:/plugins/kookma/shiraz/templates/body/title","code-body":"yes","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"title","type":"text/vnd.tiddlywiki","text":"<td class=\"shiraz-dtable-title\">\n<$link to=<<currentRecord>>><$text text=<<currentRecord>> /></$link>\n</td>"},"$:/plugins/kookma/shiraz/templates/body/type":{"title":"$:/plugins/kookma/shiraz/templates/body/type","code-body":"yes","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"type","type":"text/vnd.tiddlywiki","text":"\\define showCell() <$transclude tiddler=<<currentRecord>> field=<<currentColumn>> mode=\"inline\" />\n<td>\n<<showCell>>\n</td>\n<!-- Note that the showCell here overrides the global showCell from table-dynamic macro -->"},"$:/plugins/kookma/shiraz/templates/footer/default":{"title":"$:/plugins/kookma/shiraz/templates/footer/default","tags":"$:/tags/Table/FooterTemplate","type":"text/vnd.tiddlywiki","text":"<$vars idx={{{ [<currentColumn>addsuffix[/]addsuffix<footerRow>] }}}>\n<$set name=getFieldOrIndex filter=\"[<fieldOrIndex>]-index\" value=\"get\" emptyValue=\"getindex\">\n<$reveal type=\"nomatch\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<$transclude tiddler=<<tempTableFooter>> index=<<idx>> mode=\"inline\" />\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<$edit-text tiddler=<<tempTableFooter>> index=<<idx>> tag=\"input\" class=\"shiraz-dtable-textbox\"/>\n</$reveal>\n</$set>\n</$vars>"},"$:/plugins/kookma/shiraz/templates/footer/tbl-clone":{"title":"$:/plugins/kookma/shiraz/templates/footer/tbl-clone","tags":"$:/tags/Table/FooterTemplate","tbl-column-list":"tbl-clone","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[<tempTableEdit>getindex[mode]match[edit]]\" variable=ignore>\n<td></td>\n</$list>"},"$:/plugins/kookma/shiraz/templates/footer/tbl-delete":{"title":"$:/plugins/kookma/shiraz/templates/footer/tbl-delete","tags":"$:/tags/Table/FooterTemplate","tbl-column-list":"tbl-delete","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[<tempTableEdit>getindex[mode]match[edit]]\" variable=ignore>\n<td></td>\n</$list>"},"$:/plugins/kookma/shiraz/templates/footer/tbl-expand":{"title":"$:/plugins/kookma/shiraz/templates/footer/tbl-expand","tags":"$:/tags/Table/FooterTemplate","tbl-column-list":"tbl-expand","type":"text/vnd.tiddlywiki","text":"<td style=\"width:28px;\"></td>"},"$:/plugins/kookma/shiraz/templates/header/default":{"title":"$:/plugins/kookma/shiraz/templates/header/default","tags":"$:/tags/Table/HeaderTemplate","type":"text/vnd.tiddlywiki","text":"<$reveal type=\"nomatch\" stateTitle=<<tempTableSort>> stateIndex=\"sortIndex\" text=<<currentColumn>> tag=\"th\">\n<$button setTitle=<<tempTableSort>> setIndex=\"sortIndex\" setTo=<<currentColumn>> class=\"tc-btn-invisible tc-tiddlylink\" >\n<$action-setfield $tiddler=<<tempTableSort>> $index=\"hasnegate\" $value=\"false\"/>\n<$action-setfield $tiddler=<<tempTableSort>> $index=\"negate\" $value=\"\"/>\n<span style=\"text-transform: capitalize;\"><$text text=<<currentColumn>>/></span>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tempTableSort>> stateIndex=\"sortIndex\" text=<<currentColumn>> tag=\"th\">\n<$list filter=\"[<tempTableSort>getindex[hasnegate]match[false]]\" variable=ignore><!--set negate for sort-->\n<$button setTitle=<<tempTableSort>> setIndex=\"hasnegate\" setTo=\"true\" class=\"tbl-sort-svg tc-btn-invisible tc-tiddlylink\" >\n<$action-setfield $tiddler=<<tempTableSort>> $index=\"negate\" $value=\"!\"/>\n<span style=\"text-transform: capitalize;\"><$text text=<<currentColumn>>/></span> {{$:/core/images/down-arrow}}\n</$button>\n</$list>\n<$list filter=\"[<tempTableSort>getindex[hasnegate]match[true]]\" variable=ignore><!--remove negate for sort-->\n<$button setTitle=<<tempTableSort>> setIndex=\"hasnegate\" setTo=\"false\" class=\"tbl-sort-svg tc-btn-invisible tc-tiddlylink\" >\n<$action-setfield $tiddler=<<tempTableSort>> $index=\"negate\" $value=\"\"/>\n<span style=\"text-transform: capitalize;\"><$text text=<<currentColumn>>/></span> {{$:/core/images/up-arrow}}\n</$button>\n</$list>\n</$reveal>\n"},"$:/plugins/kookma/shiraz/templates/header/tbl-checkbox":{"title":"$:/plugins/kookma/shiraz/templates/header/tbl-checkbox","tags":"$:/tags/Table/HeaderTemplate","tbl-column-list":"tbl-checkbox","type":"text/vnd.tiddlywiki","text":"\\define rowStyle() color:<<colour foreground>>; background-color:<<colour table-header-background>>;\n\n\\define chk-checkactions()\n<$list filter=\"[subfilter<inputFilter>]\" variable=\"currentRecord\">\n<$action-listops $tiddler=<<currentRecord>> $tags=\"+[append[Done]]\" />\n<$action-setfield $tiddler=<<currentRecord>> status=\"complete\"/>\n<$action-setfield $tiddler=<<tempTableStyle>> $index=<<currentRecord>> $value=<<rowStyle>> />\n</$list>\n\\end\n\\define chk-uncheckactions()\n<$list filter=\"[subfilter<inputFilter>]\" variable=\"currentRecord\">\n<$action-listops $tiddler=<<currentRecord>> $tags=\"+[remove[Done]]\" />\n<$action-setfield $tiddler=<<currentRecord>> status=\"rework\"/>\n<$action-setfield $tiddler=<<tempTableStyle>> $index=<<currentRecord>> />\n</$list>\n\\end\n\n<th class=\"shiraz-dtable-svg\">\n<$checkbox checkactions=<<chk-checkactions>> uncheckactions=<<chk-uncheckactions>> />\n</th>\n\n<!-- old style for checked row\n\"color:#155724;background-color:#d4edda;\"\n-->"},"$:/plugins/kookma/shiraz/templates/header/tbl-clone":{"title":"$:/plugins/kookma/shiraz/templates/header/tbl-clone","tags":"$:/tags/Table/HeaderTemplate","tbl-column-list":"tbl-clone","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[<tempTableEdit>getindex[mode]match[edit]]\" variable=ignore>\n<th class=\"shiraz-dtable-svg\">\n<span>\n<$button class=\"tc-btn-invisible\" disabled=yes tooltip=\"disabled button\" style=\"cursor:default\">\n{{$:/core/images/clone-button}}\n</$button>\n</span>\n</th>\n</$list>"},"$:/plugins/kookma/shiraz/templates/header/tbl-delete":{"title":"$:/plugins/kookma/shiraz/templates/header/tbl-delete","tags":"$:/tags/Table/HeaderTemplate","tbl-column-list":"tbl-delete","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[<tempTableEdit>getindex[mode]match[edit]]\" variable=ignore>\n<th class=\"shiraz-dtable-svg\">\n <span>\n <$button class=\"tc-btn-invisible\">\n <$action-setfield $tiddler=\"$:/temp/tables/delete-all\" text=<<currentTable>>/>\n {{$:/core/images/delete-button}}\n </$button>\n </span>\n</th>\n</$list>"},"$:/plugins/kookma/shiraz/templates/header/tbl-expand":{"title":"$:/plugins/kookma/shiraz/templates/header/tbl-expand","tags":"$:/tags/Table/HeaderTemplate","tbl-column-list":"tbl-expand","type":"text/vnd.tiddlywiki","text":"<th class=\"shiraz-dtable-svg\">\n <$list filter=\"[<tempTableExpand>indexes[]limit[1]]\">\n <$button class=\"tc-btn-invisible\">{{$:/core/images/fold-button}}\n <$action-setfield $tiddler=<<tempTableExpand>> text=\"\"/>\n </$button>\n </$list>\n</th>"},"$:/plugins/kookma/shiraz/templates/header/tbl-linktype":{"title":"$:/plugins/kookma/shiraz/templates/header/tbl-linktype","tags":"$:/tags/Table/HeaderTemplate","tbl-column-list":"tbl-linktype","type":"text/vnd.tiddlywiki","text":"<th style=\"cursor:default;\">Linktype</th>\n<!-- \ntb-linktype is not sortable not editable\n-->"},"$:/plugins/kookma/shiraz/ui/Buttons/SwitchPalette":{"title":"$:/plugins/kookma/shiraz/ui/Buttons/SwitchPalette","caption":"{{$:/plugins/kookma/shiraz/images/palette-switch}} {{$:/language/Buttons/Shiraz/Caption}}","dark-palette":"$:/palettes/SolarFlare","description":"Toggle between light/dark color palette","light-palette":"$:/palettes/Vanilla","list-after":"","tags":"$:/tags/PageControls","type":"text/vnd.tiddlywiki","text":"\\whitespace trim\n<$vars \ndarkPalette ={{$:/plugins/kookma/shiraz/ui/Buttons/SwitchPalette!!dark-palette}}\nlightPalette={{$:/plugins/kookma/shiraz/ui/Buttons/SwitchPalette!!light-palette}}\n> \n<$button \n tooltip={{$:/language/Buttons/Shiraz/Hint}} \n aria-label={{$:/language/Buttons/Shiraz/Caption}} \n class=<<tv-config-toolbar-class>>\n>\n <$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n {{$:/plugins/kookma/shiraz/images/palette-switch}}\n </$list>\n\n <$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n <span class=\"tc-btn-text\">switch palettes</span>\n </$list>\n\n <$reveal type=\"match\" state=\"$:/palette\" text=<<darkPalette>> > \n <$action-setfield $tiddler=\"$:/palette\" text=<<lightPalette>> />\n </$reveal>\n <$reveal type=\"nomatch\" state=\"$:/palette\" text=<<darkPalette>> >\n <$action-setfield $tiddler=\"$:/palette\" text=<<darkPalette>> >\n </$reveal>\n</$button>\n</$vars>"},"$:/plugins/kookma/shiraz/ui/ControlPanel/Settings":{"title":"$:/plugins/kookma/shiraz/ui/ControlPanel/Settings","caption":"Shiraz","tags":"$:/tags/ControlPanel/SettingsTab $:/tags/MoreSideBar","type":"text/vnd.tiddlywiki","text":"\\define dynamictables-editortype() $:/config/shiraz/dynamictables/editor-type\n\nThese settings let you customise the behaviour of Shiraz plugin.\n\n---\n\n;Show Shiraz setting in more sidebar\n:<$checkbox tiddler=\"$:/plugins/kookma/shiraz/ui/ControlPanel/Settings\" tag=\"$:/tags/MoreSideBar\"> Show setting in more sidebar</$checkbox>\n\n;Options\n:<$checkbox tiddler=\"$:/plugins/kookma/shiraz/styles/multicols/storyriver\" tag=\"$:/tags/Stylesheet\"> Multicolumn story river</$checkbox>\n:<$checkbox tiddler=\"$:/plugins/kookma/shiraz/styles/ui/colorify-buttons\" tag=\"$:/tags/Stylesheet\"> Colorful UI buttons</$checkbox>\n:<$checkbox tiddler=\"$:/plugins/kookma/shiraz/styles/ui/view-toolbar-button-visibility\" tag=\"$:/tags/Stylesheet\"> Hide tiddler's view toolbar and show on mouse hover</$checkbox>\n:<$checkbox tiddler=\"$:/plugins/kookma/shiraz/styles/ui/edit-toolbar-buttons\" tag=\"$:/tags/Stylesheet\"> Traffic lights for edit toolbar buttons</$checkbox>\n:<$checkbox tiddler=\"$:/plugins/kookma/shiraz/styles/colorful-sidebar-tab\" tag=\"$:/tags/Stylesheet\"> Colorify sidebar tabs</$checkbox>\n\n;Set dark and light palettes\n{{$:/plugins/kookma/shiraz/ui/set-dark-light-palette}}\n\n; Choose Local Editor for Dynamic Table\n:<$checkbox tiddler=<<dynamictables-editortype>> field=\"text\" checked=\"main-editor\" unchecked=\"simple-textarea\" default=\"simple-textarea\"> Use Tiddlywiki main editor </$checkbox>\n:<$checkbox tiddler=<<dynamictables-editortype>> field=\"text\" checked=\"simple-textarea\" unchecked=\"main-editor\" default=\"simple-textarea\"> Use simple text area </$checkbox>"},"$:/plugins/kookma/shiraz/ui/set-dark-light-palette":{"title":"$:/plugins/kookma/shiraz/ui/set-dark-light-palette","dark-palette":"$:/palettes/SolarFlare","light-palette":"$:/palettes/Vanilla","tags":"","type":"text/vnd.tiddlywiki","text":"\\define switchpaletteTid() $:/plugins/kookma/shiraz/ui/Buttons/SwitchPalette\n\n\\define selectPelette(title, default, tiddler, field)\n<label class=\"kk-switch-label\">$title$</label>\n<$select tiddler=<<__tiddler__>> field=<<__field__>> default=\"\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/Palette]]\" >\n<option value=<<currentTiddler>> >\n<$view field='name'>\n <$view field='title'/>\n</$view>\n</option>\n</$list>\n</$list>\n\\end\n\n<div style=\"margin-left:40px\">\n\n<$macrocall $name=selectPelette \n title=\"Dark palette\" filter=<<filterNight>> \n\tdefault=\"$:/palettes/SolarizedDark\" field=\"dark-palette\" \n\ttiddler=<<switchpaletteTid>> /><br>\n\n<$macrocall $name=selectPelette \n title=\"Light palette\" filter=<<filterDay>> \n\tdefault=\"$:/palettes/Vanilla\" field=\"light-palette\" \n\ttiddler=<<switchpaletteTid>> />\n\n<label class=\"kk-switch-label\">Reset to default</label>\n<$button> {{$:/core/images/erase}}\n<$action-setfield \n $tiddler=<<switchpaletteTid>> \n\t$field=dark-palette \n\t$value={{!!dark-palette}} />\n<$action-setfield \n $tiddler=<<switchpaletteTid>> \n\t$field=light-palette \n\t$value={{!!light-palette}} />\t\n\t\n<$action-setfield \n $tiddler=\"$:/palette\" \n\t$field=text\n\t$value={{!!light-palette}} />\t\t\n</$button>\n</div>\n<style>\n.kk-switch-label{\n width:105px;\n display: inline-block;\n}\n</style>\t"},"$:/plugins/kookma/shiraz/viewtemplates/sticky-footer":{"title":"$:/plugins/kookma/shiraz/viewtemplates/sticky-footer","list-after":"","tags":"$:/tags/ViewTemplate","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[all[current]has[sticky-footer]]\">\n<div class=\"sticky-footer\">\n{{!!sticky-footer}}\n</div>\n</$list>\n"},"$:/language/Buttons/Shiraz/Hint":{"title":"$:/language/Buttons/Shiraz/Hint","tags":"","type":"text/vnd.tiddlywiki","text":"Switch dark/light color palette"},"$:/language/Buttons/Shiraz/Caption":{"title":"$:/language/Buttons/Shiraz/Caption","tags":"","type":"text/vnd.tiddlywiki","text":"Switch dark/light color palette"}}}
.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {
background: none;
border: none;
border-bottom: solid 1px #737373;
font-weight: bold;
color: #DB4C3F;
}
/* These css rules makes page control buttons in beatiful color */
/*page control buttons*/
.tc-page-controls .tc-image-new-button { fill: #5EB95E; } /*New tiddler button*/
.tc-page-controls .tc-image-options-button { fill:#8058A5; } /*Open control pannel*/
/* These css rules makes tiddler viewtoolbar buttons in beatiful color */
.tc-tiddler-controls .tc-image-edit-button{fill:#f37b1d}
.tc-tiddler-controls .tc-image-info-button{fill:#0e90d2}
\define dynamictables-editortype() $:/config/shiraz/dynamictables/editor-type
These settings let you customise the behaviour of Shiraz plugin.
---
;Show Shiraz setting in more sidebar
:<$checkbox tiddler="$:/plugins/kookma/shiraz/ui/ControlPanel/Settings" tag="$:/tags/MoreSideBar"> Show setting in more sidebar</$checkbox>
;Options
:<$checkbox tiddler="$:/plugins/kookma/shiraz/styles/multicols/storyriver" tag="$:/tags/Stylesheet"> Multicolumn story river</$checkbox>
:<$checkbox tiddler="$:/plugins/kookma/shiraz/styles/ui/colorify-buttons" tag="$:/tags/Stylesheet"> Colorful UI buttons</$checkbox>
:<$checkbox tiddler="$:/plugins/kookma/shiraz/styles/ui/view-toolbar-button-visibility" tag="$:/tags/Stylesheet"> Hide tiddler's view toolbar and show on mouse hover</$checkbox>
:<$checkbox tiddler="$:/plugins/kookma/shiraz/styles/ui/edit-toolbar-buttons" tag="$:/tags/Stylesheet"> Traffic lights for edit toolbar buttons</$checkbox>
:<$checkbox tiddler="$:/plugins/kookma/shiraz/styles/colorful-sidebar-tab" tag="$:/tags/Stylesheet"> Colorify sidebar tabs</$checkbox>
;Set dark and light palettes
{{$:/plugins/kookma/shiraz/ui/set-dark-light-palette}}
; Choose Local Editor for Dynamic Table
:<$checkbox tiddler=<<dynamictables-editortype>> field="text" checked="main-editor" unchecked="simple-textarea" default="simple-textarea"> Use Tiddlywiki main editor </$checkbox>
:<$checkbox tiddler=<<dynamictables-editortype>> field="text" checked="simple-textarea" unchecked="main-editor" default="simple-textarea"> Use simple text area </$checkbox>
{"tiddlers":{"$:/plugins/orange/mermaid-tw5/example":{"title":"$:/plugins/orange/mermaid-tw5/example","text":"See full examples on the website http://mermaid-js.github.io/mermaid\n\nNotation\n\n```\n%%{init: {'theme': 'default'}}%%\ngraph LR\n A[a node with text]-->B(a node with rounded corners)\n A--no links---C((a circle))\n B-->D{a diamond}\n C==>|arrow and text|D\n C-. back to.->A\n```\n\nResults\n\n<$mermaid text=\"\n%%{init: {'theme': 'default'}}%%\n graph LR\n A[a node with text]-->B(a node with rounded corners)\n A--no links---C((a circle))\n B-->D{a diamond}\n C==>|arrow and text|D\n C-. back to.->A\n\"></$mermaid>\n\nMore advanced usage is possible if you use the mermaid parser rather than the ``<$mermaid>``. Below are two more examples from the [[mermaid.js website|http://mermaid-js.github.io/mermaid]]\n\nBuilt-in themes: 'default', 'base', 'forest', 'dark', 'neutral'\n"},"$:/plugins/orange/mermaid-tw5/license":{"title":"$:/plugins/orange/mermaid-tw5/license","text":"The MIT License (MIT)\n\nCopyright (c) 2022 E Furlan\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nDependencies:\n\n- mermaid.js. License can be found at https://github.com/mermaid-js/mermaid/blob/master/LICENSE\n- mermaid-tw5 by Nathaniel Jones. License can be found at https://github.com/gt6796c/mermaid-tw5/blob/master/license.tid\n","type":"text/plain"},"$:/plugins/orange/mermaid-tw5/mermaid.min.js":{"title":"$:/plugins/orange/mermaid-tw5/mermaid.min.js","text":"(function(ln,Wr){typeof exports==\"object\"&&typeof module<\"u\"?module.exports=Wr():typeof define==\"function\"&&define.amd?define(Wr):(ln=typeof globalThis<\"u\"?globalThis:ln||self,ln.mermaid=Wr())})(this,function(){\"use strict\";var XY=Object.defineProperty;var KY=(ln,Wr,Bi)=>Wr in ln?XY(ln,Wr,{enumerable:!0,configurable:!0,writable:!0,value:Bi}):ln[Wr]=Bi;var za=(ln,Wr,Bi)=>(KY(ln,typeof Wr!=\"symbol\"?Wr+\"\":Wr,Bi),Bi);var ln=typeof globalThis<\"u\"?globalThis:typeof window<\"u\"?window:typeof global<\"u\"?global:typeof self<\"u\"?self:{};function Wr(t){throw new Error('Could not dynamically require \"'+t+'\". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Bi={exports:{}};(function(t,e){(function(r,n){t.exports=n()})(ln,function(){var r;function n(){return r.apply(null,arguments)}function i(h){return h instanceof Array||Object.prototype.toString.call(h)===\"[object Array]\"}function s(h){return h!=null&&Object.prototype.toString.call(h)===\"[object Object]\"}function a(h,y){return Object.prototype.hasOwnProperty.call(h,y)}function o(h){if(Object.getOwnPropertyNames)return Object.getOwnPropertyNames(h).length===0;for(var y in h)if(a(h,y))return;return 1}function l(h){return h===void 0}function u(h){return typeof h==\"number\"||Object.prototype.toString.call(h)===\"[object Number]\"}function d(h){return h instanceof Date||Object.prototype.toString.call(h)===\"[object Date]\"}function f(h,y){for(var _=[],S=h.length,R=0;R<S;++R)_.push(y(h[R],R));return _}function p(h,y){for(var _ in y)a(y,_)&&(h[_]=y[_]);return a(y,\"toString\")&&(h.toString=y.toString),a(y,\"valueOf\")&&(h.valueOf=y.valueOf),h}function g(h,y,_,S){return xr(h,y,_,S,!0).utc()}function b(h){return h._pf==null&&(h._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidEra:null,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],era:null,meridiem:null,rfc2822:!1,weekdayMismatch:!1}),h._pf}function k(h){if(h._isValid==null){var y=b(h),_=L.call(y.parsedDateParts,function(S){return S!=null}),_=!isNaN(h._d.getTime())&&y.overflow<0&&!y.empty&&!y.invalidEra&&!y.invalidMonth&&!y.invalidWeekday&&!y.weekdayMismatch&&!y.nullInput&&!y.invalidFormat&&!y.userInvalidated&&(!y.meridiem||y.meridiem&&_);if(h._strict&&(_=_&&y.charsLeftOver===0&&y.unusedTokens.length===0&&y.bigHour===void 0),Object.isFrozen!=null&&Object.isFrozen(h))return _;h._isValid=_}return h._isValid}function T(h){var y=g(NaN);return h!=null?p(b(y),h):b(y).userInvalidated=!0,y}var L=Array.prototype.some||function(h){for(var y=Object(this),_=y.length>>>0,S=0;S<_;S++)if(S in y&&h.call(this,y[S],S,y))return!0;return!1},E=n.momentProperties=[],I=!1;function V(h,y){var _,S,R,it=E.length;if(l(y._isAMomentObject)||(h._isAMomentObject=y._isAMomentObject),l(y._i)||(h._i=y._i),l(y._f)||(h._f=y._f),l(y._l)||(h._l=y._l),l(y._strict)||(h._strict=y._strict),l(y._tzm)||(h._tzm=y._tzm),l(y._isUTC)||(h._isUTC=y._isUTC),l(y._offset)||(h._offset=y._offset),l(y._pf)||(h._pf=b(y)),l(y._locale)||(h._locale=y._locale),0<it)for(_=0;_<it;_++)l(R=y[S=E[_]])||(h[S]=R);return h}function H(h){V(this,h),this._d=new Date(h._d!=null?h._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),I===!1&&(I=!0,n.updateOffset(this),I=!1)}function G(h){return h instanceof H||h!=null&&h._isAMomentObject!=null}function Y(h){n.suppressDeprecationWarnings===!1&&typeof console<\"u\"&&console.warn&&console.warn(\"Deprecation warning: \"+h)}function W(h,y){var _=!0;return p(function(){if(n.deprecationHandler!=null&&n.deprecationHandler(null,h),_){for(var S,R,it=[],mt=arguments.length,Ct=0;Ct<mt;Ct++){if(S=\"\",typeof arguments[Ct]==\"object\"){for(R in S+=`\n[`+Ct+\"] \",arguments[0])a(arguments[0],R)&&(S+=R+\": \"+arguments[0][R]+\", \");S=S.slice(0,-2)}else S=arguments[Ct];it.push(S)}Y(h+`\nArguments: `+Array.prototype.slice.call(it).join(\"\")+`\n`+new Error().stack),_=!1}return y.apply(this,arguments)},y)}var N={};function D(h,y){n.deprecationHandler!=null&&n.deprecationHandler(h,y),N[h]||(Y(y),N[h]=!0)}function w(h){return typeof Function<\"u\"&&h instanceof Function||Object.prototype.toString.call(h)===\"[object Function]\"}function v(h,y){var _,S=p({},h);for(_ in y)a(y,_)&&(s(h[_])&&s(y[_])?(S[_]={},p(S[_],h[_]),p(S[_],y[_])):y[_]!=null?S[_]=y[_]:delete S[_]);for(_ in h)a(h,_)&&!a(y,_)&&s(h[_])&&(S[_]=p({},S[_]));return S}function M(h){h!=null&&this.set(h)}n.suppressDeprecationWarnings=!1,n.deprecationHandler=null;var m=Object.keys||function(h){var y,_=[];for(y in h)a(h,y)&&_.push(y);return _};function Q(h,y,_){var S=\"\"+Math.abs(h);return(0<=h?_?\"+\":\"\":\"-\")+Math.pow(10,Math.max(0,y-S.length)).toString().substr(1)+S}var x=/(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,ct=/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Dt={},kt={};function j(h,y,_,S){var R=typeof S==\"string\"?function(){return this[S]()}:S;h&&(kt[h]=R),y&&(kt[y[0]]=function(){return Q(R.apply(this,arguments),y[1],y[2])}),_&&(kt[_]=function(){return this.localeData().ordinal(R.apply(this,arguments),h)})}function ot(h,y){return h.isValid()?(y=rt(y,h.localeData()),Dt[y]=Dt[y]||function(_){for(var S,R=_.match(x),it=0,mt=R.length;it<mt;it++)kt[R[it]]?R[it]=kt[R[it]]:R[it]=(S=R[it]).match(/\\[[\\s\\S]/)?S.replace(/^\\[|\\]$/g,\"\"):S.replace(/\\\\/g,\"\");return function(Ct){for(var Pt=\"\",It=0;It<mt;It++)Pt+=w(R[It])?R[It].call(Ct,_):R[It];return Pt}}(y),Dt[y](h)):h.localeData().invalidDate()}function rt(h,y){var _=5;function S(R){return y.longDateFormat(R)||R}for(ct.lastIndex=0;0<=_&&ct.test(h);)h=h.replace(ct,S),ct.lastIndex=0,--_;return h}var nt={};function ut(h,y){var _=h.toLowerCase();nt[_]=nt[_+\"s\"]=nt[y]=h}function _t(h){return typeof h==\"string\"?nt[h]||nt[h.toLowerCase()]:void 0}function K(h){var y,_,S={};for(_ in h)a(h,_)&&(y=_t(_))&&(S[y]=h[_]);return S}var Ot={};function P(h,y){Ot[h]=y}function z(h){return h%4==0&&h%100!=0||h%400==0}function X(h){return h<0?Math.ceil(h)||0:Math.floor(h)}function F(y){var y=+y,_=0;return _=y!=0&&isFinite(y)?X(y):_}function O(h,y){return function(_){return _!=null?(J(this,h,_),n.updateOffset(this,y),this):A(this,h)}}function A(h,y){return h.isValid()?h._d[\"get\"+(h._isUTC?\"UTC\":\"\")+y]():NaN}function J(h,y,_){h.isValid()&&!isNaN(_)&&(y===\"FullYear\"&&z(h.year())&&h.month()===1&&h.date()===29?(_=F(_),h._d[\"set\"+(h._isUTC?\"UTC\":\"\")+y](_,h.month(),dt(_,h.month()))):h._d[\"set\"+(h._isUTC?\"UTC\":\"\")+y](_))}var C=/\\d/,ce=/\\d\\d/,ht=/\\d{3}/,Ps=/\\d{4}/,Ji=/[+-]?\\d{6}/,U=/\\d\\d?/,Yt=/\\d\\d\\d\\d?/,et=/\\d\\d\\d\\d\\d\\d?/,Mt=/\\d{1,3}/,ts=/\\d{1,4}/,Qi=/[+-]?\\d{1,6}/,Tt=/\\d+/,gt=/[+-]?\\d+/,Et=/Z|[+-]\\d\\d:?\\d\\d/gi,wt=/Z|[+-]\\d\\d(?::?\\d\\d)?/gi,pt=/[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i;function st(h,y,_){jt[h]=w(y)?y:function(S,R){return S&&_?_:y}}function le(h,y){return a(jt,h)?jt[h](y._strict,y._locale):new RegExp(Xt(h.replace(\"\\\\\",\"\").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,function(_,S,R,it,mt){return S||R||it||mt})))}function Xt(h){return h.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}var jt={},Kt={};function Gt(h,y){var _,S,R=y;for(typeof h==\"string\"&&(h=[h]),u(y)&&(R=function(it,mt){mt[y]=F(it)}),S=h.length,_=0;_<S;_++)Kt[h[_]]=R}function Ee(h,y){Gt(h,function(_,S,R,it){R._w=R._w||{},y(_,R._w,R,it)})}var Ht,Vt=0,Ft=1,xt=2,ft=3,Lt=4,bt=5,Ut=6,at=7,ie=8;function dt(h,y){if(isNaN(h)||isNaN(y))return NaN;var _=(y%(_=12)+_)%_;return h+=(y-_)/12,_==1?z(h)?29:28:31-_%7%2}Ht=Array.prototype.indexOf||function(h){for(var y=0;y<this.length;++y)if(this[y]===h)return y;return-1},j(\"M\",[\"MM\",2],\"Mo\",function(){return this.month()+1}),j(\"MMM\",0,0,function(h){return this.localeData().monthsShort(this,h)}),j(\"MMMM\",0,0,function(h){return this.localeData().months(this,h)}),ut(\"month\",\"M\"),P(\"month\",8),st(\"M\",U),st(\"MM\",U,ce),st(\"MMM\",function(h,y){return y.monthsShortRegex(h)}),st(\"MMMM\",function(h,y){return y.monthsRegex(h)}),Gt([\"M\",\"MM\"],function(h,y){y[Ft]=F(h)-1}),Gt([\"MMM\",\"MMMM\"],function(h,y,_,S){S=_._locale.monthsParse(h,S,_._strict),S!=null?y[Ft]=S:b(_).invalidMonth=h});var ee=\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),fe=\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),be=/D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,_e=pt,ke=pt;function $t(h,y){var _;if(h.isValid()){if(typeof y==\"string\"){if(/^\\d+$/.test(y))y=F(y);else if(!u(y=h.localeData().monthsParse(y)))return}_=Math.min(h.date(),dt(h.year(),y)),h._d[\"set\"+(h._isUTC?\"UTC\":\"\")+\"Month\"](y,_)}}function se(h){return h!=null?($t(this,h),n.updateOffset(this,!0),this):A(this,\"Month\")}function ye(){function h(mt,Ct){return Ct.length-mt.length}for(var y,_=[],S=[],R=[],it=0;it<12;it++)y=g([2e3,it]),_.push(this.monthsShort(y,\"\")),S.push(this.months(y,\"\")),R.push(this.months(y,\"\")),R.push(this.monthsShort(y,\"\"));for(_.sort(h),S.sort(h),R.sort(h),it=0;it<12;it++)_[it]=Xt(_[it]),S[it]=Xt(S[it]);for(it=0;it<24;it++)R[it]=Xt(R[it]);this._monthsRegex=new RegExp(\"^(\"+R.join(\"|\")+\")\",\"i\"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp(\"^(\"+S.join(\"|\")+\")\",\"i\"),this._monthsShortStrictRegex=new RegExp(\"^(\"+_.join(\"|\")+\")\",\"i\")}function Jt(h){return z(h)?366:365}j(\"Y\",0,0,function(){var h=this.year();return h<=9999?Q(h,4):\"+\"+h}),j(0,[\"YY\",2],0,function(){return this.year()%100}),j(0,[\"YYYY\",4],0,\"year\"),j(0,[\"YYYYY\",5],0,\"year\"),j(0,[\"YYYYYY\",6,!0],0,\"year\"),ut(\"year\",\"y\"),P(\"year\",1),st(\"Y\",gt),st(\"YY\",U,ce),st(\"YYYY\",ts,Ps),st(\"YYYYY\",Qi,Ji),st(\"YYYYYY\",Qi,Ji),Gt([\"YYYYY\",\"YYYYYY\"],Vt),Gt(\"YYYY\",function(h,y){y[Vt]=h.length===2?n.parseTwoDigitYear(h):F(h)}),Gt(\"YY\",function(h,y){y[Vt]=n.parseTwoDigitYear(h)}),Gt(\"Y\",function(h,y){y[Vt]=parseInt(h,10)}),n.parseTwoDigitYear=function(h){return F(h)+(68<F(h)?1900:2e3)};var Ku=O(\"FullYear\",!0);function Nn(h,y,_,S,R,it,mt){var Ct;return h<100&&0<=h?(Ct=new Date(h+400,y,_,S,R,it,mt),isFinite(Ct.getFullYear())&&Ct.setFullYear(h)):Ct=new Date(h,y,_,S,R,it,mt),Ct}function Xr(h){var y;return h<100&&0<=h?((y=Array.prototype.slice.call(arguments))[0]=h+400,y=new Date(Date.UTC.apply(null,y)),isFinite(y.getUTCFullYear())&&y.setUTCFullYear(h)):y=new Date(Date.UTC.apply(null,arguments)),y}function De(h,y,_){return _=7+y-_,_-(7+Xr(h,0,_).getUTCDay()-y)%7-1}function ae(h,mt,Ct,S,R){var it,mt=1+7*(mt-1)+(7+Ct-S)%7+De(h,S,R),Ct=mt<=0?Jt(it=h-1)+mt:mt>Jt(h)?(it=h+1,mt-Jt(h)):(it=h,mt);return{year:it,dayOfYear:Ct}}function Be(h,y,_){var S,R,it=De(h.year(),y,_),it=Math.floor((h.dayOfYear()-it-1)/7)+1;return it<1?S=it+Re(R=h.year()-1,y,_):it>Re(h.year(),y,_)?(S=it-Re(h.year(),y,_),R=h.year()+1):(R=h.year(),S=it),{week:S,year:R}}function Re(h,R,_){var S=De(h,R,_),R=De(h+1,R,_);return(Jt(h)-S+R)/7}j(\"w\",[\"ww\",2],\"wo\",\"week\"),j(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\"),ut(\"week\",\"w\"),ut(\"isoWeek\",\"W\"),P(\"week\",5),P(\"isoWeek\",5),st(\"w\",U),st(\"ww\",U,ce),st(\"W\",U),st(\"WW\",U,ce),Ee([\"w\",\"ww\",\"W\",\"WW\"],function(h,y,_,S){y[S.substr(0,1)]=F(h)});function Pe(h,y){return h.slice(y,7).concat(h.slice(0,y))}j(\"d\",0,\"do\",\"day\"),j(\"dd\",0,0,function(h){return this.localeData().weekdaysMin(this,h)}),j(\"ddd\",0,0,function(h){return this.localeData().weekdaysShort(this,h)}),j(\"dddd\",0,0,function(h){return this.localeData().weekdays(this,h)}),j(\"e\",0,0,\"weekday\"),j(\"E\",0,0,\"isoWeekday\"),ut(\"day\",\"d\"),ut(\"weekday\",\"e\"),ut(\"isoWeekday\",\"E\"),P(\"day\",11),P(\"weekday\",11),P(\"isoWeekday\",11),st(\"d\",U),st(\"e\",U),st(\"E\",U),st(\"dd\",function(h,y){return y.weekdaysMinRegex(h)}),st(\"ddd\",function(h,y){return y.weekdaysShortRegex(h)}),st(\"dddd\",function(h,y){return y.weekdaysRegex(h)}),Ee([\"dd\",\"ddd\",\"dddd\"],function(h,y,_,S){S=_._locale.weekdaysParse(h,S,_._strict),S!=null?y.d=S:b(_).invalidWeekday=h}),Ee([\"d\",\"e\",\"E\"],function(h,y,_,S){y[S]=F(h)});var Ye=\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),Ie=\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),$e=\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),ar=pt,zt=pt,Z=pt;function At(){function h(It,ue){return ue.length-It.length}for(var y,_,S,R=[],it=[],mt=[],Ct=[],Pt=0;Pt<7;Pt++)S=g([2e3,1]).day(Pt),y=Xt(this.weekdaysMin(S,\"\")),_=Xt(this.weekdaysShort(S,\"\")),S=Xt(this.weekdays(S,\"\")),R.push(y),it.push(_),mt.push(S),Ct.push(y),Ct.push(_),Ct.push(S);R.sort(h),it.sort(h),mt.sort(h),Ct.sort(h),this._weekdaysRegex=new RegExp(\"^(\"+Ct.join(\"|\")+\")\",\"i\"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp(\"^(\"+mt.join(\"|\")+\")\",\"i\"),this._weekdaysShortStrictRegex=new RegExp(\"^(\"+it.join(\"|\")+\")\",\"i\"),this._weekdaysMinStrictRegex=new RegExp(\"^(\"+R.join(\"|\")+\")\",\"i\")}function Nt(){return this.hours()%12||12}function pe(h,y){j(h,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),y)})}function Me(h,y){return y._meridiemParse}j(\"H\",[\"HH\",2],0,\"hour\"),j(\"h\",[\"hh\",2],0,Nt),j(\"k\",[\"kk\",2],0,function(){return this.hours()||24}),j(\"hmm\",0,0,function(){return\"\"+Nt.apply(this)+Q(this.minutes(),2)}),j(\"hmmss\",0,0,function(){return\"\"+Nt.apply(this)+Q(this.minutes(),2)+Q(this.seconds(),2)}),j(\"Hmm\",0,0,function(){return\"\"+this.hours()+Q(this.minutes(),2)}),j(\"Hmmss\",0,0,function(){return\"\"+this.hours()+Q(this.minutes(),2)+Q(this.seconds(),2)}),pe(\"a\",!0),pe(\"A\",!1),ut(\"hour\",\"h\"),P(\"hour\",13),st(\"a\",Me),st(\"A\",Me),st(\"H\",U),st(\"h\",U),st(\"k\",U),st(\"HH\",U,ce),st(\"hh\",U,ce),st(\"kk\",U,ce),st(\"hmm\",Yt),st(\"hmmss\",et),st(\"Hmm\",Yt),st(\"Hmmss\",et),Gt([\"H\",\"HH\"],ft),Gt([\"k\",\"kk\"],function(h,y,_){h=F(h),y[ft]=h===24?0:h}),Gt([\"a\",\"A\"],function(h,y,_){_._isPm=_._locale.isPM(h),_._meridiem=h}),Gt([\"h\",\"hh\"],function(h,y,_){y[ft]=F(h),b(_).bigHour=!0}),Gt(\"hmm\",function(h,y,_){var S=h.length-2;y[ft]=F(h.substr(0,S)),y[Lt]=F(h.substr(S)),b(_).bigHour=!0}),Gt(\"hmmss\",function(h,y,_){var S=h.length-4,R=h.length-2;y[ft]=F(h.substr(0,S)),y[Lt]=F(h.substr(S,2)),y[bt]=F(h.substr(R)),b(_).bigHour=!0}),Gt(\"Hmm\",function(h,y,_){var S=h.length-2;y[ft]=F(h.substr(0,S)),y[Lt]=F(h.substr(S))}),Gt(\"Hmmss\",function(h,y,_){var S=h.length-4,R=h.length-2;y[ft]=F(h.substr(0,S)),y[Lt]=F(h.substr(S,2)),y[bt]=F(h.substr(R))}),pt=O(\"Hours\",!0);var Le,We={calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},longDateFormat:{LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},invalidDate:\"Invalid date\",ordinal:\"%d\",dayOfMonthOrdinalParse:/\\d{1,2}/,relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",ss:\"%d seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",w:\"a week\",ww:\"%d weeks\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},months:ee,monthsShort:fe,week:{dow:0,doy:6},weekdays:Ye,weekdaysMin:$e,weekdaysShort:Ie,meridiemParse:/[ap]\\.?m?\\.?/i},ve={},Ne={};function Xi(h){return h&&h.toLowerCase().replace(\"_\",\"-\")}function Ki(h){for(var y,_,S,R,it=0;it<h.length;){for(y=(R=Xi(h[it]).split(\"-\")).length,_=(_=Xi(h[it+1]))?_.split(\"-\"):null;0<y;){if(S=zr(R.slice(0,y).join(\"-\")))return S;if(_&&_.length>=y&&function(mt,Ct){for(var Pt=Math.min(mt.length,Ct.length),It=0;It<Pt;It+=1)if(mt[It]!==Ct[It])return It;return Pt}(R,_)>=y-1)break;y--}it++}return Le}function zr(h){var y;if(ve[h]===void 0&&!0&&t&&t.exports&&h.match(\"^[^/\\\\\\\\]*$\")!=null)try{y=Le._abbr,Wr(\"./locale/\"+h),qt(y)}catch{ve[h]=null}return ve[h]}function qt(h,y){return h&&((y=l(y)?oe(h):te(h,y))?Le=y:typeof console<\"u\"&&console.warn&&console.warn(\"Locale \"+h+\" not found. Did you forget to load it?\")),Le._abbr}function te(h,y){if(y===null)return delete ve[h],null;var _,S=We;if(y.abbr=h,ve[h]!=null)D(\"defineLocaleOverride\",\"use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.\"),S=ve[h]._config;else if(y.parentLocale!=null)if(ve[y.parentLocale]!=null)S=ve[y.parentLocale]._config;else{if((_=zr(y.parentLocale))==null)return Ne[y.parentLocale]||(Ne[y.parentLocale]=[]),Ne[y.parentLocale].push({name:h,config:y}),null;S=_._config}return ve[h]=new M(v(S,y)),Ne[h]&&Ne[h].forEach(function(R){te(R.name,R.config)}),qt(h),ve[h]}function oe(h){var y;if(!(h=h&&h._locale&&h._locale._abbr?h._locale._abbr:h))return Le;if(!i(h)){if(y=zr(h))return y;h=[h]}return Ki(h)}function Rt(h){var y=h._a;return y&&b(h).overflow===-2&&(y=y[Ft]<0||11<y[Ft]?Ft:y[xt]<1||y[xt]>dt(y[Vt],y[Ft])?xt:y[ft]<0||24<y[ft]||y[ft]===24&&(y[Lt]!==0||y[bt]!==0||y[Ut]!==0)?ft:y[Lt]<0||59<y[Lt]?Lt:y[bt]<0||59<y[bt]?bt:y[Ut]<0||999<y[Ut]?Ut:-1,b(h)._overflowDayOfYear&&(y<Vt||xt<y)&&(y=xt),b(h)._overflowWeeks&&y===-1&&(y=at),b(h)._overflowWeekday&&y===-1&&(y=ie),b(h).overflow=y),h}var Ve=/^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,q=/^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,Is=/Z|[+-]\\d\\d(?::?\\d\\d)?/,tt=[[\"YYYYYY-MM-DD\",/[+-]\\d{6}-\\d\\d-\\d\\d/],[\"YYYY-MM-DD\",/\\d{4}-\\d\\d-\\d\\d/],[\"GGGG-[W]WW-E\",/\\d{4}-W\\d\\d-\\d/],[\"GGGG-[W]WW\",/\\d{4}-W\\d\\d/,!1],[\"YYYY-DDD\",/\\d{4}-\\d{3}/],[\"YYYY-MM\",/\\d{4}-\\d\\d/,!1],[\"YYYYYYMMDD\",/[+-]\\d{10}/],[\"YYYYMMDD\",/\\d{8}/],[\"GGGG[W]WWE\",/\\d{4}W\\d{3}/],[\"GGGG[W]WW\",/\\d{4}W\\d{2}/,!1],[\"YYYYDDD\",/\\d{7}/],[\"YYYYMM\",/\\d{6}/,!1],[\"YYYY\",/\\d{4}/,!1]],Sr=[[\"HH:mm:ss.SSSS\",/\\d\\d:\\d\\d:\\d\\d\\.\\d+/],[\"HH:mm:ss,SSSS\",/\\d\\d:\\d\\d:\\d\\d,\\d+/],[\"HH:mm:ss\",/\\d\\d:\\d\\d:\\d\\d/],[\"HH:mm\",/\\d\\d:\\d\\d/],[\"HHmmss.SSSS\",/\\d\\d\\d\\d\\d\\d\\.\\d+/],[\"HHmmss,SSSS\",/\\d\\d\\d\\d\\d\\d,\\d+/],[\"HHmmss\",/\\d\\d\\d\\d\\d\\d/],[\"HHmm\",/\\d\\d\\d\\d/],[\"HH\",/\\d\\d/]],Wu=/^\\/?Date\\((-?\\d+)/i,Rd=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,Hu={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Gu(h){var y,_,S,R,it,mt,Pt=h._i,Ct=Ve.exec(Pt)||q.exec(Pt),Pt=tt.length,It=Sr.length;if(Ct){for(b(h).iso=!0,y=0,_=Pt;y<_;y++)if(tt[y][1].exec(Ct[1])){R=tt[y][0],S=tt[y][2]!==!1;break}if(R==null)h._isValid=!1;else{if(Ct[3]){for(y=0,_=It;y<_;y++)if(Sr[y][1].exec(Ct[3])){it=(Ct[2]||\" \")+Sr[y][0];break}if(it==null)return void(h._isValid=!1)}if(S||it==null){if(Ct[4]){if(!Is.exec(Ct[4]))return void(h._isValid=!1);mt=\"Z\"}h._f=R+(it||\"\")+(mt||\"\"),ll(h)}else h._isValid=!1}}else h._isValid=!1}function or(h,y,_,S,R,it){return h=[function(mt){mt=parseInt(mt,10);{if(mt<=49)return 2e3+mt;if(mt<=999)return 1900+mt}return mt}(h),fe.indexOf(y),parseInt(_,10),parseInt(S,10),parseInt(R,10)],it&&h.push(parseInt(it,10)),h}function Zn(h){var y,_,S,R,it=Rd.exec(h._i.replace(/\\([^()]*\\)|[\\n\\t]/g,\" \").replace(/(\\s\\s+)/g,\" \").replace(/^\\s\\s*/,\"\").replace(/\\s\\s*$/,\"\"));it?(y=or(it[4],it[3],it[2],it[5],it[6],it[7]),_=it[1],S=y,R=h,_&&Ie.indexOf(_)!==new Date(S[0],S[1],S[2]).getDay()?(b(R).weekdayMismatch=!0,R._isValid=!1):(h._a=y,h._tzm=(_=it[8],S=it[9],R=it[10],_?Hu[_]:S?0:60*(((_=parseInt(R,10))-(S=_%100))/100)+S),h._d=Xr.apply(null,h._a),h._d.setUTCMinutes(h._d.getUTCMinutes()-h._tzm),b(h).rfc2822=!0)):h._isValid=!1}function Qn(h,y,_){return h!=null?h:y!=null?y:_}function Os(h){var y,_,S,R,it,mt,Ct,Pt,It,ue,re,He=[];if(!h._d){for(S=h,R=new Date(n.now()),_=S._useUTC?[R.getUTCFullYear(),R.getUTCMonth(),R.getUTCDate()]:[R.getFullYear(),R.getMonth(),R.getDate()],h._w&&h._a[xt]==null&&h._a[Ft]==null&&((R=(S=h)._w).GG!=null||R.W!=null||R.E!=null?(Pt=1,It=4,it=Qn(R.GG,S._a[Vt],Be(Se(),1,4).year),mt=Qn(R.W,1),((Ct=Qn(R.E,1))<1||7<Ct)&&(ue=!0)):(Pt=S._locale._week.dow,It=S._locale._week.doy,re=Be(Se(),Pt,It),it=Qn(R.gg,S._a[Vt],re.year),mt=Qn(R.w,re.week),R.d!=null?((Ct=R.d)<0||6<Ct)&&(ue=!0):R.e!=null?(Ct=R.e+Pt,(R.e<0||6<R.e)&&(ue=!0)):Ct=Pt),mt<1||mt>Re(it,Pt,It)?b(S)._overflowWeeks=!0:ue!=null?b(S)._overflowWeekday=!0:(re=ae(it,mt,Ct,Pt,It),S._a[Vt]=re.year,S._dayOfYear=re.dayOfYear)),h._dayOfYear!=null&&(R=Qn(h._a[Vt],_[Vt]),(h._dayOfYear>Jt(R)||h._dayOfYear===0)&&(b(h)._overflowDayOfYear=!0),ue=Xr(R,0,h._dayOfYear),h._a[Ft]=ue.getUTCMonth(),h._a[xt]=ue.getUTCDate()),y=0;y<3&&h._a[y]==null;++y)h._a[y]=He[y]=_[y];for(;y<7;y++)h._a[y]=He[y]=h._a[y]==null?y===2?1:0:h._a[y];h._a[ft]===24&&h._a[Lt]===0&&h._a[bt]===0&&h._a[Ut]===0&&(h._nextDay=!0,h._a[ft]=0),h._d=(h._useUTC?Xr:Nn).apply(null,He),it=h._useUTC?h._d.getUTCDay():h._d.getDay(),h._tzm!=null&&h._d.setUTCMinutes(h._d.getUTCMinutes()-h._tzm),h._nextDay&&(h._a[ft]=24),h._w&&h._w.d!==void 0&&h._w.d!==it&&(b(h).weekdayMismatch=!0)}}function ll(h){if(h._f===n.ISO_8601)Gu(h);else if(h._f===n.RFC_2822)Zn(h);else{h._a=[],b(h).empty=!0;for(var y,_,S,R,it,mt=\"\"+h._i,Ct=mt.length,Pt=0,It=rt(h._f,h._locale).match(x)||[],ue=It.length,re=0;re<ue;re++)_=It[re],(y=(mt.match(le(_,h))||[])[0])&&(0<(S=mt.substr(0,mt.indexOf(y))).length&&b(h).unusedInput.push(S),mt=mt.slice(mt.indexOf(y)+y.length),Pt+=y.length),kt[_]?(y?b(h).empty=!1:b(h).unusedTokens.push(_),S=_,it=h,(R=y)!=null&&a(Kt,S)&&Kt[S](R,it._a,it,S)):h._strict&&!y&&b(h).unusedTokens.push(_);b(h).charsLeftOver=Ct-Pt,0<mt.length&&b(h).unusedInput.push(mt),h._a[ft]<=12&&b(h).bigHour===!0&&0<h._a[ft]&&(b(h).bigHour=void 0),b(h).parsedDateParts=h._a.slice(0),b(h).meridiem=h._meridiem,h._a[ft]=function(He,lr,On){return On==null?lr:He.meridiemHour!=null?He.meridiemHour(lr,On):He.isPM!=null?((He=He.isPM(On))&&lr<12&&(lr+=12),lr=He||lr!==12?lr:0):lr}(h._locale,h._a[ft],h._meridiem),(Ct=b(h).era)!==null&&(h._a[Vt]=h._locale.erasConvertYear(Ct,h._a[Vt])),Os(h),Rt(h)}}function qu(h){var y,_,S,R=h._i,it=h._f;return h._locale=h._locale||oe(h._l),R===null||it===void 0&&R===\"\"?T({nullInput:!0}):(typeof R==\"string\"&&(h._i=R=h._locale.preparse(R)),G(R)?new H(Rt(R)):(d(R)?h._d=R:i(it)?function(mt){var Ct,Pt,It,ue,re,He,lr=!1,On=mt._f.length;if(On===0)return b(mt).invalidFormat=!0,mt._d=new Date(NaN);for(ue=0;ue<On;ue++)re=0,He=!1,Ct=V({},mt),mt._useUTC!=null&&(Ct._useUTC=mt._useUTC),Ct._f=mt._f[ue],ll(Ct),k(Ct)&&(He=!0),re=(re+=b(Ct).charsLeftOver)+10*b(Ct).unusedTokens.length,b(Ct).score=re,lr?re<It&&(It=re,Pt=Ct):(It==null||re<It||He)&&(It=re,Pt=Ct,He&&(lr=!0));p(mt,Pt||Ct)}(h):it?ll(h):l(it=(R=h)._i)?R._d=new Date(n.now()):d(it)?R._d=new Date(it.valueOf()):typeof it==\"string\"?(_=R,(y=Wu.exec(_._i))!==null?_._d=new Date(+y[1]):(Gu(_),_._isValid===!1&&(delete _._isValid,Zn(_),_._isValid===!1&&(delete _._isValid,_._strict?_._isValid=!1:n.createFromInputFallback(_))))):i(it)?(R._a=f(it.slice(0),function(mt){return parseInt(mt,10)}),Os(R)):s(it)?(y=R)._d||(S=(_=K(y._i)).day===void 0?_.date:_.day,y._a=f([_.year,_.month,S,_.hour,_.minute,_.second,_.millisecond],function(mt){return mt&&parseInt(mt,10)}),Os(y)):u(it)?R._d=new Date(it):n.createFromInputFallback(R),k(h)||(h._d=null),h))}function xr(h,y,_,S,R){var it={};return y!==!0&&y!==!1||(S=y,y=void 0),_!==!0&&_!==!1||(S=_,_=void 0),(s(h)&&o(h)||i(h)&&h.length===0)&&(h=void 0),it._isAMomentObject=!0,it._useUTC=it._isUTC=R,it._l=_,it._i=h,it._f=y,it._strict=S,(R=new H(Rt(qu(R=it))))._nextDay&&(R.add(1,\"d\"),R._nextDay=void 0),R}function Se(h,y,_,S){return xr(h,y,_,S,!1)}n.createFromInputFallback=W(\"value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.\",function(h){h._d=new Date(h._i+(h._useUTC?\" UTC\":\"\"))}),n.ISO_8601=function(){},n.RFC_2822=function(){},Yt=W(\"moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var h=Se.apply(null,arguments);return this.isValid()&&h.isValid()?h<this?this:h:T()}),et=W(\"moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var h=Se.apply(null,arguments);return this.isValid()&&h.isValid()?this<h?this:h:T()});function Or(h,y){var _,S;if(!(y=y.length===1&&i(y[0])?y[0]:y).length)return Se();for(_=y[0],S=1;S<y.length;++S)y[S].isValid()&&!y[S][h](_)||(_=y[S]);return _}var Ai=[\"year\",\"quarter\",\"month\",\"week\",\"day\",\"hour\",\"minute\",\"second\",\"millisecond\"];function Bn(y){var y=K(y),_=y.year||0,S=y.quarter||0,R=y.month||0,it=y.week||y.isoWeek||0,mt=y.day||0,Ct=y.hour||0,Pt=y.minute||0,It=y.second||0,ue=y.millisecond||0;this._isValid=function(re){var He,lr,On=!1,Wd=Ai.length;for(He in re)if(a(re,He)&&(Ht.call(Ai,He)===-1||re[He]!=null&&isNaN(re[He])))return!1;for(lr=0;lr<Wd;++lr)if(re[Ai[lr]]){if(On)return!1;parseFloat(re[Ai[lr]])!==F(re[Ai[lr]])&&(On=!0)}return!0}(y),this._milliseconds=+ue+1e3*It+6e4*Pt+1e3*Ct*60*60,this._days=+mt+7*it,this._months=+R+3*S+12*_,this._data={},this._locale=oe(),this._bubble()}function Li(h){return h instanceof Bn}function Kr(h){return h<0?-1*Math.round(-1*h):Math.round(h)}function cl(h,y){j(h,0,0,function(){var _=this.utcOffset(),S=\"+\";return _<0&&(_=-_,S=\"-\"),S+Q(~~(_/60),2)+y+Q(~~_%60,2)})}cl(\"Z\",\":\"),cl(\"ZZ\",\"\"),st(\"Z\",wt),st(\"ZZ\",wt),Gt([\"Z\",\"ZZ\"],function(h,y,_){_._useUTC=!0,_._tzm=Rs(wt,h)});var Pa=/([\\+\\-]|\\d\\d)/gi;function Rs(h,_){var _=(_||\"\").match(h);return _===null?null:(_=60*(h=((_[_.length-1]||[])+\"\").match(Pa)||[\"-\",0,0])[1]+F(h[2]))===0?0:h[0]===\"+\"?_:-_}function Zr(h,y){var _;return y._isUTC?(y=y.clone(),_=(G(h)||d(h)?h:Se(h)).valueOf()-y.valueOf(),y._d.setTime(y._d.valueOf()+_),n.updateOffset(y,!1),y):Se(h).local()}function Fd(h){return-Math.round(h._d.getTimezoneOffset())}function cb(){return!!this.isValid()&&this._isUTC&&this._offset===0}n.updateOffset=function(){};var UY=/^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,zY=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function In(h,y){var _,S=h,R=null;return Li(h)?S={ms:h._milliseconds,d:h._days,M:h._months}:u(h)||!isNaN(+h)?(S={},y?S[y]=+h:S.milliseconds=+h):(R=UY.exec(h))?(_=R[1]===\"-\"?-1:1,S={y:0,d:F(R[xt])*_,h:F(R[ft])*_,m:F(R[Lt])*_,s:F(R[bt])*_,ms:F(Kr(1e3*R[Ut]))*_}):(R=zY.exec(h))?(_=R[1]===\"-\"?-1:1,S={y:Fs(R[2],_),M:Fs(R[3],_),w:Fs(R[4],_),d:Fs(R[5],_),h:Fs(R[6],_),m:Fs(R[7],_),s:Fs(R[8],_)}):S==null?S={}:typeof S==\"object\"&&(\"from\"in S||\"to\"in S)&&(y=function(it,mt){var Ct;return!it.isValid()||!mt.isValid()?{milliseconds:0,months:0}:(mt=Zr(mt,it),it.isBefore(mt)?Ct=ub(it,mt):((Ct=ub(mt,it)).milliseconds=-Ct.milliseconds,Ct.months=-Ct.months),Ct)}(Se(S.from),Se(S.to)),(S={}).ms=y.milliseconds,S.M=y.months),R=new Bn(S),Li(h)&&a(h,\"_locale\")&&(R._locale=h._locale),Li(h)&&a(h,\"_isValid\")&&(R._isValid=h._isValid),R}function Fs(h,y){return h=h&&parseFloat(h.replace(\",\",\".\")),(isNaN(h)?0:h)*y}function ub(h,y){var _={};return _.months=y.month()-h.month()+12*(y.year()-h.year()),h.clone().add(_.months,\"M\").isAfter(y)&&--_.months,_.milliseconds=+y-+h.clone().add(_.months,\"M\"),_}function hb(h,y){return function(_,S){var R;return S===null||isNaN(+S)||(D(y,\"moment().\"+y+\"(period, number) is deprecated. Please use moment().\"+y+\"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.\"),R=_,_=S,S=R),db(this,In(_,S),h),this}}function db(h,mt,_,S){var R=mt._milliseconds,it=Kr(mt._days),mt=Kr(mt._months);h.isValid()&&(S=S==null||S,mt&&$t(h,A(h,\"Month\")+mt*_),it&&J(h,\"Date\",A(h,\"Date\")+it*_),R&&h._d.setTime(h._d.valueOf()+R*_),S&&n.updateOffset(h,it||mt))}In.fn=Bn.prototype,In.invalid=function(){return In(NaN)},ee=hb(1,\"add\"),Ye=hb(-1,\"subtract\");function fb(h){return typeof h==\"string\"||h instanceof String}function WY(h){return G(h)||d(h)||fb(h)||u(h)||function(y){var _=i(y),S=!1;return _&&(S=y.filter(function(R){return!u(R)&&fb(y)}).length===0),_&&S}(h)||function(y){var _,S,R=s(y)&&!o(y),it=!1,mt=[\"years\",\"year\",\"y\",\"months\",\"month\",\"M\",\"days\",\"day\",\"d\",\"dates\",\"date\",\"D\",\"hours\",\"hour\",\"h\",\"minutes\",\"minute\",\"m\",\"seconds\",\"second\",\"s\",\"milliseconds\",\"millisecond\",\"ms\"],Ct=mt.length;for(_=0;_<Ct;_+=1)S=mt[_],it=it||a(y,S);return R&&it}(h)||h==null}function ju(h,R){if(h.date()<R.date())return-ju(R,h);var _=12*(R.year()-h.year())+(R.month()-h.month()),S=h.clone().add(_,\"months\"),R=R-S<0?(R-S)/(S-h.clone().add(_-1,\"months\")):(R-S)/(h.clone().add(1+_,\"months\")-S);return-(_+R)||0}function pb(h){return h===void 0?this._locale._abbr:((h=oe(h))!=null&&(this._locale=h),this)}n.defaultFormat=\"YYYY-MM-DDTHH:mm:ssZ\",n.defaultFormatUtc=\"YYYY-MM-DDTHH:mm:ss[Z]\",$e=W(\"moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.\",function(h){return h===void 0?this.localeData():this.locale(h)});function gb(){return this._locale}var yb=126227808e5;function Ya(h,y){return(h%y+y)%y}function mb(h,y,_){return h<100&&0<=h?new Date(h+400,y,_)-yb:new Date(h,y,_).valueOf()}function bb(h,y,_){return h<100&&0<=h?Date.UTC(h+400,y,_)-yb:Date.UTC(h,y,_)}function Pd(h,y){return y.erasAbbrRegex(h)}function Yd(){for(var h=[],y=[],_=[],S=[],R=this.eras(),it=0,mt=R.length;it<mt;++it)y.push(Xt(R[it].name)),h.push(Xt(R[it].abbr)),_.push(Xt(R[it].narrow)),S.push(Xt(R[it].name)),S.push(Xt(R[it].abbr)),S.push(Xt(R[it].narrow));this._erasRegex=new RegExp(\"^(\"+S.join(\"|\")+\")\",\"i\"),this._erasNameRegex=new RegExp(\"^(\"+y.join(\"|\")+\")\",\"i\"),this._erasAbbrRegex=new RegExp(\"^(\"+h.join(\"|\")+\")\",\"i\"),this._erasNarrowRegex=new RegExp(\"^(\"+_.join(\"|\")+\")\",\"i\")}function $u(h,y){j(0,[h,h.length],0,y)}function _b(h,y,_,S,R){var it;return h==null?Be(this,S,R).year:(it=Re(h,S,R),function(mt,Ct,Pt,It,ue){return mt=ae(mt,Ct,Pt,It,ue),Ct=Xr(mt.year,0,mt.dayOfYear),this.year(Ct.getUTCFullYear()),this.month(Ct.getUTCMonth()),this.date(Ct.getUTCDate()),this}.call(this,h,y=it<y?it:y,_,S,R))}j(\"N\",0,0,\"eraAbbr\"),j(\"NN\",0,0,\"eraAbbr\"),j(\"NNN\",0,0,\"eraAbbr\"),j(\"NNNN\",0,0,\"eraName\"),j(\"NNNNN\",0,0,\"eraNarrow\"),j(\"y\",[\"y\",1],\"yo\",\"eraYear\"),j(\"y\",[\"yy\",2],0,\"eraYear\"),j(\"y\",[\"yyy\",3],0,\"eraYear\"),j(\"y\",[\"yyyy\",4],0,\"eraYear\"),st(\"N\",Pd),st(\"NN\",Pd),st(\"NNN\",Pd),st(\"NNNN\",function(h,y){return y.erasNameRegex(h)}),st(\"NNNNN\",function(h,y){return y.erasNarrowRegex(h)}),Gt([\"N\",\"NN\",\"NNN\",\"NNNN\",\"NNNNN\"],function(h,y,_,S){S=_._locale.erasParse(h,S,_._strict),S?b(_).era=S:b(_).invalidEra=h}),st(\"y\",Tt),st(\"yy\",Tt),st(\"yyy\",Tt),st(\"yyyy\",Tt),st(\"yo\",function(h,y){return y._eraYearOrdinalRegex||Tt}),Gt([\"y\",\"yy\",\"yyy\",\"yyyy\"],Vt),Gt([\"yo\"],function(h,y,_,S){var R;_._locale._eraYearOrdinalRegex&&(R=h.match(_._locale._eraYearOrdinalRegex)),_._locale.eraYearOrdinalParse?y[Vt]=_._locale.eraYearOrdinalParse(h,R):y[Vt]=parseInt(h,10)}),j(0,[\"gg\",2],0,function(){return this.weekYear()%100}),j(0,[\"GG\",2],0,function(){return this.isoWeekYear()%100}),$u(\"gggg\",\"weekYear\"),$u(\"ggggg\",\"weekYear\"),$u(\"GGGG\",\"isoWeekYear\"),$u(\"GGGGG\",\"isoWeekYear\"),ut(\"weekYear\",\"gg\"),ut(\"isoWeekYear\",\"GG\"),P(\"weekYear\",1),P(\"isoWeekYear\",1),st(\"G\",gt),st(\"g\",gt),st(\"GG\",U,ce),st(\"gg\",U,ce),st(\"GGGG\",ts,Ps),st(\"gggg\",ts,Ps),st(\"GGGGG\",Qi,Ji),st(\"ggggg\",Qi,Ji),Ee([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],function(h,y,_,S){y[S.substr(0,2)]=F(h)}),Ee([\"gg\",\"GG\"],function(h,y,_,S){y[S]=n.parseTwoDigitYear(h)}),j(\"Q\",0,\"Qo\",\"quarter\"),ut(\"quarter\",\"Q\"),P(\"quarter\",7),st(\"Q\",C),Gt(\"Q\",function(h,y){y[Ft]=3*(F(h)-1)}),j(\"D\",[\"DD\",2],\"Do\",\"date\"),ut(\"date\",\"D\"),P(\"date\",9),st(\"D\",U),st(\"DD\",U,ce),st(\"Do\",function(h,y){return h?y._dayOfMonthOrdinalParse||y._ordinalParse:y._dayOfMonthOrdinalParseLenient}),Gt([\"D\",\"DD\"],xt),Gt(\"Do\",function(h,y){y[xt]=F(h.match(U)[0])}),ts=O(\"Date\",!0),j(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\"),ut(\"dayOfYear\",\"DDD\"),P(\"dayOfYear\",4),st(\"DDD\",Mt),st(\"DDDD\",ht),Gt([\"DDD\",\"DDDD\"],function(h,y,_){_._dayOfYear=F(h)}),j(\"m\",[\"mm\",2],0,\"minute\"),ut(\"minute\",\"m\"),P(\"minute\",14),st(\"m\",U),st(\"mm\",U,ce),Gt([\"m\",\"mm\"],Lt);var Zi,Ps=O(\"Minutes\",!1),Qi=(j(\"s\",[\"ss\",2],0,\"second\"),ut(\"second\",\"s\"),P(\"second\",15),st(\"s\",U),st(\"ss\",U,ce),Gt([\"s\",\"ss\"],bt),O(\"Seconds\",!1));for(j(\"S\",0,0,function(){return~~(this.millisecond()/100)}),j(0,[\"SS\",2],0,function(){return~~(this.millisecond()/10)}),j(0,[\"SSS\",3],0,\"millisecond\"),j(0,[\"SSSS\",4],0,function(){return 10*this.millisecond()}),j(0,[\"SSSSS\",5],0,function(){return 100*this.millisecond()}),j(0,[\"SSSSSS\",6],0,function(){return 1e3*this.millisecond()}),j(0,[\"SSSSSSS\",7],0,function(){return 1e4*this.millisecond()}),j(0,[\"SSSSSSSS\",8],0,function(){return 1e5*this.millisecond()}),j(0,[\"SSSSSSSSS\",9],0,function(){return 1e6*this.millisecond()}),ut(\"millisecond\",\"ms\"),P(\"millisecond\",16),st(\"S\",Mt,C),st(\"SS\",Mt,ce),st(\"SSS\",Mt,ht),Zi=\"SSSS\";Zi.length<=9;Zi+=\"S\")st(Zi,Tt);function HY(h,y){y[Ut]=F(1e3*(\"0.\"+h))}for(Zi=\"S\";Zi.length<=9;Zi+=\"S\")Gt(Zi,HY);Ji=O(\"Milliseconds\",!1),j(\"z\",0,0,\"zoneAbbr\"),j(\"zz\",0,0,\"zoneName\"),C=H.prototype;function xb(h){return h}C.add=ee,C.calendar=function(_,R){arguments.length===1&&(arguments[0]?WY(arguments[0])?(_=arguments[0],R=void 0):function(it){for(var mt=s(it)&&!o(it),Ct=!1,Pt=[\"sameDay\",\"nextDay\",\"lastDay\",\"nextWeek\",\"lastWeek\",\"sameElse\"],It=0;It<Pt.length;It+=1)Ct=Ct||a(it,Pt[It]);return mt&&Ct}(arguments[0])&&(R=arguments[0],_=void 0):R=_=void 0);var _=_||Se(),S=Zr(_,this).startOf(\"day\"),S=n.calendarFormat(this,S)||\"sameElse\",R=R&&(w(R[S])?R[S].call(this,_):R[S]);return this.format(R||this.localeData().calendar(S,this,Se(_)))},C.clone=function(){return new H(this)},C.diff=function(h,y,_){var S,R,it;if(!this.isValid())return NaN;if(!(S=Zr(h,this)).isValid())return NaN;switch(R=6e4*(S.utcOffset()-this.utcOffset()),y=_t(y)){case\"year\":it=ju(this,S)/12;break;case\"month\":it=ju(this,S);break;case\"quarter\":it=ju(this,S)/3;break;case\"second\":it=(this-S)/1e3;break;case\"minute\":it=(this-S)/6e4;break;case\"hour\":it=(this-S)/36e5;break;case\"day\":it=(this-S-R)/864e5;break;case\"week\":it=(this-S-R)/6048e5;break;default:it=this-S}return _?it:X(it)},C.endOf=function(h){var y,_;if((h=_t(h))===void 0||h===\"millisecond\"||!this.isValid())return this;switch(_=this._isUTC?bb:mb,h){case\"year\":y=_(this.year()+1,0,1)-1;break;case\"quarter\":y=_(this.year(),this.month()-this.month()%3+3,1)-1;break;case\"month\":y=_(this.year(),this.month()+1,1)-1;break;case\"week\":y=_(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case\"isoWeek\":y=_(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case\"day\":case\"date\":y=_(this.year(),this.month(),this.date()+1)-1;break;case\"hour\":y=this._d.valueOf(),y+=36e5-Ya(y+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case\"minute\":y=this._d.valueOf(),y+=6e4-Ya(y,6e4)-1;break;case\"second\":y=this._d.valueOf(),y+=1e3-Ya(y,1e3)-1;break}return this._d.setTime(y),n.updateOffset(this,!0),this},C.format=function(h){return h=h||(this.isUtc()?n.defaultFormatUtc:n.defaultFormat),h=ot(this,h),this.localeData().postformat(h)},C.from=function(h,y){return this.isValid()&&(G(h)&&h.isValid()||Se(h).isValid())?In({to:this,from:h}).locale(this.locale()).humanize(!y):this.localeData().invalidDate()},C.fromNow=function(h){return this.from(Se(),h)},C.to=function(h,y){return this.isValid()&&(G(h)&&h.isValid()||Se(h).isValid())?In({from:this,to:h}).locale(this.locale()).humanize(!y):this.localeData().invalidDate()},C.toNow=function(h){return this.to(Se(),h)},C.get=function(h){return w(this[h=_t(h)])?this[h]():this},C.invalidAt=function(){return b(this).overflow},C.isAfter=function(h,y){return h=G(h)?h:Se(h),!(!this.isValid()||!h.isValid())&&((y=_t(y)||\"millisecond\")===\"millisecond\"?this.valueOf()>h.valueOf():h.valueOf()<this.clone().startOf(y).valueOf())},C.isBefore=function(h,y){return h=G(h)?h:Se(h),!(!this.isValid()||!h.isValid())&&((y=_t(y)||\"millisecond\")===\"millisecond\"?this.valueOf()<h.valueOf():this.clone().endOf(y).valueOf()<h.valueOf())},C.isBetween=function(h,y,_,S){return h=G(h)?h:Se(h),y=G(y)?y:Se(y),!!(this.isValid()&&h.isValid()&&y.isValid())&&((S=S||\"()\")[0]===\"(\"?this.isAfter(h,_):!this.isBefore(h,_))&&(S[1]===\")\"?this.isBefore(y,_):!this.isAfter(y,_))},C.isSame=function(_,y){var _=G(_)?_:Se(_);return!(!this.isValid()||!_.isValid())&&((y=_t(y)||\"millisecond\")===\"millisecond\"?this.valueOf()===_.valueOf():(_=_.valueOf(),this.clone().startOf(y).valueOf()<=_&&_<=this.clone().endOf(y).valueOf()))},C.isSameOrAfter=function(h,y){return this.isSame(h,y)||this.isAfter(h,y)},C.isSameOrBefore=function(h,y){return this.isSame(h,y)||this.isBefore(h,y)},C.isValid=function(){return k(this)},C.lang=$e,C.locale=pb,C.localeData=gb,C.max=et,C.min=Yt,C.parsingFlags=function(){return p({},b(this))},C.set=function(h,y){if(typeof h==\"object\")for(var _=function(it){var mt,Ct=[];for(mt in it)a(it,mt)&&Ct.push({unit:mt,priority:Ot[mt]});return Ct.sort(function(Pt,It){return Pt.priority-It.priority}),Ct}(h=K(h)),S=_.length,R=0;R<S;R++)this[_[R].unit](h[_[R].unit]);else if(w(this[h=_t(h)]))return this[h](y);return this},C.startOf=function(h){var y,_;if((h=_t(h))===void 0||h===\"millisecond\"||!this.isValid())return this;switch(_=this._isUTC?bb:mb,h){case\"year\":y=_(this.year(),0,1);break;case\"quarter\":y=_(this.year(),this.month()-this.month()%3,1);break;case\"month\":y=_(this.year(),this.month(),1);break;case\"week\":y=_(this.year(),this.month(),this.date()-this.weekday());break;case\"isoWeek\":y=_(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case\"day\":case\"date\":y=_(this.year(),this.month(),this.date());break;case\"hour\":y=this._d.valueOf(),y-=Ya(y+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case\"minute\":y=this._d.valueOf(),y-=Ya(y,6e4);break;case\"second\":y=this._d.valueOf(),y-=Ya(y,1e3);break}return this._d.setTime(y),n.updateOffset(this,!0),this},C.subtract=Ye,C.toArray=function(){var h=this;return[h.year(),h.month(),h.date(),h.hour(),h.minute(),h.second(),h.millisecond()]},C.toObject=function(){var h=this;return{years:h.year(),months:h.month(),date:h.date(),hours:h.hours(),minutes:h.minutes(),seconds:h.seconds(),milliseconds:h.milliseconds()}},C.toDate=function(){return new Date(this.valueOf())},C.toISOString=function(h){if(!this.isValid())return null;var y=(h=h!==!0)?this.clone().utc():this;return y.year()<0||9999<y.year()?ot(y,h?\"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]\":\"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ\"):w(Date.prototype.toISOString)?h?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace(\"Z\",ot(y,\"Z\")):ot(y,h?\"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]\":\"YYYY-MM-DD[T]HH:mm:ss.SSSZ\")},C.inspect=function(){if(!this.isValid())return\"moment.invalid(/* \"+this._i+\" */)\";var h,y=\"moment\",_=\"\";return this.isLocal()||(y=this.utcOffset()===0?\"moment.utc\":\"moment.parseZone\",_=\"Z\"),y=\"[\"+y+'(\"]',h=0<=this.year()&&this.year()<=9999?\"YYYY\":\"YYYYYY\",this.format(y+h+\"-MM-DD[T]HH:mm:ss.SSS\"+(_+'[\")]'))},typeof Symbol<\"u\"&&Symbol.for!=null&&(C[Symbol.for(\"nodejs.util.inspect.custom\")]=function(){return\"Moment<\"+this.format()+\">\"}),C.toJSON=function(){return this.isValid()?this.toISOString():null},C.toString=function(){return this.clone().locale(\"en\").format(\"ddd MMM DD YYYY HH:mm:ss [GMT]ZZ\")},C.unix=function(){return Math.floor(this.valueOf()/1e3)},C.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},C.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},C.eraName=function(){for(var h,y=this.localeData().eras(),_=0,S=y.length;_<S;++_)if(h=this.clone().startOf(\"day\").valueOf(),y[_].since<=h&&h<=y[_].until||y[_].until<=h&&h<=y[_].since)return y[_].name;return\"\"},C.eraNarrow=function(){for(var h,y=this.localeData().eras(),_=0,S=y.length;_<S;++_)if(h=this.clone().startOf(\"day\").valueOf(),y[_].since<=h&&h<=y[_].until||y[_].until<=h&&h<=y[_].since)return y[_].narrow;return\"\"},C.eraAbbr=function(){for(var h,y=this.localeData().eras(),_=0,S=y.length;_<S;++_)if(h=this.clone().startOf(\"day\").valueOf(),y[_].since<=h&&h<=y[_].until||y[_].until<=h&&h<=y[_].since)return y[_].abbr;return\"\"},C.eraYear=function(){for(var h,y,_=this.localeData().eras(),S=0,R=_.length;S<R;++S)if(h=_[S].since<=_[S].until?1:-1,y=this.clone().startOf(\"day\").valueOf(),_[S].since<=y&&y<=_[S].until||_[S].until<=y&&y<=_[S].since)return(this.year()-n(_[S].since).year())*h+_[S].offset;return this.year()},C.year=Ku,C.isLeapYear=function(){return z(this.year())},C.weekYear=function(h){return _b.call(this,h,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},C.isoWeekYear=function(h){return _b.call(this,h,this.isoWeek(),this.isoWeekday(),1,4)},C.quarter=C.quarters=function(h){return h==null?Math.ceil((this.month()+1)/3):this.month(3*(h-1)+this.month()%3)},C.month=se,C.daysInMonth=function(){return dt(this.year(),this.month())},C.week=C.weeks=function(h){var y=this.localeData().week(this);return h==null?y:this.add(7*(h-y),\"d\")},C.isoWeek=C.isoWeeks=function(h){var y=Be(this,1,4).week;return h==null?y:this.add(7*(h-y),\"d\")},C.weeksInYear=function(){var h=this.localeData()._week;return Re(this.year(),h.dow,h.doy)},C.weeksInWeekYear=function(){var h=this.localeData()._week;return Re(this.weekYear(),h.dow,h.doy)},C.isoWeeksInYear=function(){return Re(this.year(),1,4)},C.isoWeeksInISOWeekYear=function(){return Re(this.isoWeekYear(),1,4)},C.date=ts,C.day=C.days=function(h){if(!this.isValid())return h!=null?this:NaN;var y,_,S=this._isUTC?this._d.getUTCDay():this._d.getDay();return h!=null?(y=h,_=this.localeData(),h=typeof y!=\"string\"?y:isNaN(y)?typeof(y=_.weekdaysParse(y))==\"number\"?y:null:parseInt(y,10),this.add(h-S,\"d\")):S},C.weekday=function(h){if(!this.isValid())return h!=null?this:NaN;var y=(this.day()+7-this.localeData()._week.dow)%7;return h==null?y:this.add(h-y,\"d\")},C.isoWeekday=function(h){return this.isValid()?h!=null?(y=h,_=this.localeData(),_=typeof y==\"string\"?_.weekdaysParse(y)%7||7:isNaN(y)?null:y,this.day(this.day()%7?_:_-7)):this.day()||7:h!=null?this:NaN;var y,_},C.dayOfYear=function(h){var y=Math.round((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))/864e5)+1;return h==null?y:this.add(h-y,\"d\")},C.hour=C.hours=pt,C.minute=C.minutes=Ps,C.second=C.seconds=Qi,C.millisecond=C.milliseconds=Ji,C.utcOffset=function(h,y,_){var S,R=this._offset||0;if(!this.isValid())return h!=null?this:NaN;if(h==null)return this._isUTC?R:Fd(this);if(typeof h==\"string\"){if((h=Rs(wt,h))===null)return this}else Math.abs(h)<16&&!_&&(h*=60);return!this._isUTC&&y&&(S=Fd(this)),this._offset=h,this._isUTC=!0,S!=null&&this.add(S,\"m\"),R!==h&&(!y||this._changeInProgress?db(this,In(h-R,\"m\"),1,!1):this._changeInProgress||(this._changeInProgress=!0,n.updateOffset(this,!0),this._changeInProgress=null)),this},C.utc=function(h){return this.utcOffset(0,h)},C.local=function(h){return this._isUTC&&(this.utcOffset(0,h),this._isUTC=!1,h&&this.subtract(Fd(this),\"m\")),this},C.parseZone=function(){var h;return this._tzm!=null?this.utcOffset(this._tzm,!1,!0):typeof this._i==\"string\"&&((h=Rs(Et,this._i))!=null?this.utcOffset(h):this.utcOffset(0,!0)),this},C.hasAlignedHourOffset=function(h){return!!this.isValid()&&(h=h?Se(h).utcOffset():0,(this.utcOffset()-h)%60==0)},C.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},C.isLocal=function(){return!!this.isValid()&&!this._isUTC},C.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},C.isUtc=cb,C.isUTC=cb,C.zoneAbbr=function(){return this._isUTC?\"UTC\":\"\"},C.zoneName=function(){return this._isUTC?\"Coordinated Universal Time\":\"\"},C.dates=W(\"dates accessor is deprecated. Use date instead.\",ts),C.months=W(\"months accessor is deprecated. Use month instead\",se),C.years=W(\"years accessor is deprecated. Use year instead\",Ku),C.zone=W(\"moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/\",function(h,y){return h!=null?(this.utcOffset(h=typeof h!=\"string\"?-h:h,y),this):-this.utcOffset()}),C.isDSTShifted=W(\"isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information\",function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var h,y={};return V(y,this),(y=qu(y))._a?(h=(y._isUTC?g:Se)(y._a),this._isDSTShifted=this.isValid()&&0<function(_,S,R){for(var it=Math.min(_.length,S.length),mt=Math.abs(_.length-S.length),Ct=0,Pt=0;Pt<it;Pt++)(R&&_[Pt]!==S[Pt]||!R&&F(_[Pt])!==F(S[Pt]))&&Ct++;return Ct+mt}(y._a,h.toArray())):this._isDSTShifted=!1,this._isDSTShifted}),ce=M.prototype;function Xu(h,y,_,it){var R=oe(),it=g().set(it,y);return R[_](it,h)}function vb(h,y,_){if(u(h)&&(y=h,h=void 0),h=h||\"\",y!=null)return Xu(h,y,_,\"month\");for(var S=[],R=0;R<12;R++)S[R]=Xu(h,R,_,\"month\");return S}function Vd(h,y,_,S){y=(typeof h==\"boolean\"?u(y)&&(_=y,y=void 0):(y=h,h=!1,u(_=y)&&(_=y,y=void 0)),y||\"\");var R,it=oe(),mt=h?it._week.dow:0,Ct=[];if(_!=null)return Xu(y,(_+mt)%7,S,\"day\");for(R=0;R<7;R++)Ct[R]=Xu(y,(R+mt)%7,S,\"day\");return Ct}ce.calendar=function(h,y,_){return w(h=this._calendar[h]||this._calendar.sameElse)?h.call(y,_):h},ce.longDateFormat=function(h){var y=this._longDateFormat[h],_=this._longDateFormat[h.toUpperCase()];return y||!_?y:(this._longDateFormat[h]=_.match(x).map(function(S){return S===\"MMMM\"||S===\"MM\"||S===\"DD\"||S===\"dddd\"?S.slice(1):S}).join(\"\"),this._longDateFormat[h])},ce.invalidDate=function(){return this._invalidDate},ce.ordinal=function(h){return this._ordinal.replace(\"%d\",h)},ce.preparse=xb,ce.postformat=xb,ce.relativeTime=function(h,y,_,S){var R=this._relativeTime[_];return w(R)?R(h,y,_,S):R.replace(/%d/i,h)},ce.pastFuture=function(h,y){return w(h=this._relativeTime[0<h?\"future\":\"past\"])?h(y):h.replace(/%s/i,y)},ce.set=function(h){var y,_;for(_ in h)a(h,_)&&(w(y=h[_])?this[_]=y:this[\"_\"+_]=y);this._config=h,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+\"|\"+/\\d{1,2}/.source)},ce.eras=function(h,y){for(var _,S=this._eras||oe(\"en\")._eras,R=0,it=S.length;R<it;++R){switch(typeof S[R].since){case\"string\":_=n(S[R].since).startOf(\"day\"),S[R].since=_.valueOf();break}switch(typeof S[R].until){case\"undefined\":S[R].until=1/0;break;case\"string\":_=n(S[R].until).startOf(\"day\").valueOf(),S[R].until=_.valueOf();break}}return S},ce.erasParse=function(h,y,_){var S,R,it,mt,Ct,Pt=this.eras();for(h=h.toUpperCase(),S=0,R=Pt.length;S<R;++S)if(it=Pt[S].name.toUpperCase(),mt=Pt[S].abbr.toUpperCase(),Ct=Pt[S].narrow.toUpperCase(),_)switch(y){case\"N\":case\"NN\":case\"NNN\":if(mt===h)return Pt[S];break;case\"NNNN\":if(it===h)return Pt[S];break;case\"NNNNN\":if(Ct===h)return Pt[S];break}else if(0<=[it,mt,Ct].indexOf(h))return Pt[S]},ce.erasConvertYear=function(h,y){var _=h.since<=h.until?1:-1;return y===void 0?n(h.since).year():n(h.since).year()+(y-h.offset)*_},ce.erasAbbrRegex=function(h){return a(this,\"_erasAbbrRegex\")||Yd.call(this),h?this._erasAbbrRegex:this._erasRegex},ce.erasNameRegex=function(h){return a(this,\"_erasNameRegex\")||Yd.call(this),h?this._erasNameRegex:this._erasRegex},ce.erasNarrowRegex=function(h){return a(this,\"_erasNarrowRegex\")||Yd.call(this),h?this._erasNarrowRegex:this._erasRegex},ce.months=function(h,y){return h?(i(this._months)?this._months:this._months[(this._months.isFormat||be).test(y)?\"format\":\"standalone\"])[h.month()]:i(this._months)?this._months:this._months.standalone},ce.monthsShort=function(h,y){return h?(i(this._monthsShort)?this._monthsShort:this._monthsShort[be.test(y)?\"format\":\"standalone\"])[h.month()]:i(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},ce.monthsParse=function(h,y,_){var S,R;if(this._monthsParseExact)return function(re,mt,Ct){var Pt,It,ue,re=re.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],Pt=0;Pt<12;++Pt)ue=g([2e3,Pt]),this._shortMonthsParse[Pt]=this.monthsShort(ue,\"\").toLocaleLowerCase(),this._longMonthsParse[Pt]=this.months(ue,\"\").toLocaleLowerCase();return Ct?mt===\"MMM\"?(It=Ht.call(this._shortMonthsParse,re))!==-1?It:null:(It=Ht.call(this._longMonthsParse,re))!==-1?It:null:mt===\"MMM\"?(It=Ht.call(this._shortMonthsParse,re))!==-1||(It=Ht.call(this._longMonthsParse,re))!==-1?It:null:(It=Ht.call(this._longMonthsParse,re))!==-1||(It=Ht.call(this._shortMonthsParse,re))!==-1?It:null}.call(this,h,y,_);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),S=0;S<12;S++)if(R=g([2e3,S]),_&&!this._longMonthsParse[S]&&(this._longMonthsParse[S]=new RegExp(\"^\"+this.months(R,\"\").replace(\".\",\"\")+\"$\",\"i\"),this._shortMonthsParse[S]=new RegExp(\"^\"+this.monthsShort(R,\"\").replace(\".\",\"\")+\"$\",\"i\")),_||this._monthsParse[S]||(R=\"^\"+this.months(R,\"\")+\"|^\"+this.monthsShort(R,\"\"),this._monthsParse[S]=new RegExp(R.replace(\".\",\"\"),\"i\")),_&&y===\"MMMM\"&&this._longMonthsParse[S].test(h)||_&&y===\"MMM\"&&this._shortMonthsParse[S].test(h)||!_&&this._monthsParse[S].test(h))return S},ce.monthsRegex=function(h){return this._monthsParseExact?(a(this,\"_monthsRegex\")||ye.call(this),h?this._monthsStrictRegex:this._monthsRegex):(a(this,\"_monthsRegex\")||(this._monthsRegex=ke),this._monthsStrictRegex&&h?this._monthsStrictRegex:this._monthsRegex)},ce.monthsShortRegex=function(h){return this._monthsParseExact?(a(this,\"_monthsRegex\")||ye.call(this),h?this._monthsShortStrictRegex:this._monthsShortRegex):(a(this,\"_monthsShortRegex\")||(this._monthsShortRegex=_e),this._monthsShortStrictRegex&&h?this._monthsShortStrictRegex:this._monthsShortRegex)},ce.week=function(h){return Be(h,this._week.dow,this._week.doy).week},ce.firstDayOfYear=function(){return this._week.doy},ce.firstDayOfWeek=function(){return this._week.dow},ce.weekdays=function(h,y){return y=i(this._weekdays)?this._weekdays:this._weekdays[h&&h!==!0&&this._weekdays.isFormat.test(y)?\"format\":\"standalone\"],h===!0?Pe(y,this._week.dow):h?y[h.day()]:y},ce.weekdaysMin=function(h){return h===!0?Pe(this._weekdaysMin,this._week.dow):h?this._weekdaysMin[h.day()]:this._weekdaysMin},ce.weekdaysShort=function(h){return h===!0?Pe(this._weekdaysShort,this._week.dow):h?this._weekdaysShort[h.day()]:this._weekdaysShort},ce.weekdaysParse=function(h,y,_){var S,R;if(this._weekdaysParseExact)return function(re,mt,Ct){var Pt,It,ue,re=re.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],Pt=0;Pt<7;++Pt)ue=g([2e3,1]).day(Pt),this._minWeekdaysParse[Pt]=this.weekdaysMin(ue,\"\").toLocaleLowerCase(),this._shortWeekdaysParse[Pt]=this.weekdaysShort(ue,\"\").toLocaleLowerCase(),this._weekdaysParse[Pt]=this.weekdays(ue,\"\").toLocaleLowerCase();return Ct?mt===\"dddd\"?(It=Ht.call(this._weekdaysParse,re))!==-1?It:null:mt===\"ddd\"?(It=Ht.call(this._shortWeekdaysParse,re))!==-1?It:null:(It=Ht.call(this._minWeekdaysParse,re))!==-1?It:null:mt===\"dddd\"?(It=Ht.call(this._weekdaysParse,re))!==-1||(It=Ht.call(this._shortWeekdaysParse,re))!==-1||(It=Ht.call(this._minWeekdaysParse,re))!==-1?It:null:mt===\"ddd\"?(It=Ht.call(this._shortWeekdaysParse,re))!==-1||(It=Ht.call(this._weekdaysParse,re))!==-1||(It=Ht.call(this._minWeekdaysParse,re))!==-1?It:null:(It=Ht.call(this._minWeekdaysParse,re))!==-1||(It=Ht.call(this._weekdaysParse,re))!==-1||(It=Ht.call(this._shortWeekdaysParse,re))!==-1?It:null}.call(this,h,y,_);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),S=0;S<7;S++)if(R=g([2e3,1]).day(S),_&&!this._fullWeekdaysParse[S]&&(this._fullWeekdaysParse[S]=new RegExp(\"^\"+this.weekdays(R,\"\").replace(\".\",\"\\\\.?\")+\"$\",\"i\"),this._shortWeekdaysParse[S]=new RegExp(\"^\"+this.weekdaysShort(R,\"\").replace(\".\",\"\\\\.?\")+\"$\",\"i\"),this._minWeekdaysParse[S]=new RegExp(\"^\"+this.weekdaysMin(R,\"\").replace(\".\",\"\\\\.?\")+\"$\",\"i\")),this._weekdaysParse[S]||(R=\"^\"+this.weekdays(R,\"\")+\"|^\"+this.weekdaysShort(R,\"\")+\"|^\"+this.weekdaysMin(R,\"\"),this._weekdaysParse[S]=new RegExp(R.replace(\".\",\"\"),\"i\")),_&&y===\"dddd\"&&this._fullWeekdaysParse[S].test(h)||_&&y===\"ddd\"&&this._shortWeekdaysParse[S].test(h)||_&&y===\"dd\"&&this._minWeekdaysParse[S].test(h)||!_&&this._weekdaysParse[S].test(h))return S},ce.weekdaysRegex=function(h){return this._weekdaysParseExact?(a(this,\"_weekdaysRegex\")||At.call(this),h?this._weekdaysStrictRegex:this._weekdaysRegex):(a(this,\"_weekdaysRegex\")||(this._weekdaysRegex=ar),this._weekdaysStrictRegex&&h?this._weekdaysStrictRegex:this._weekdaysRegex)},ce.weekdaysShortRegex=function(h){return this._weekdaysParseExact?(a(this,\"_weekdaysRegex\")||At.call(this),h?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(a(this,\"_weekdaysShortRegex\")||(this._weekdaysShortRegex=zt),this._weekdaysShortStrictRegex&&h?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},ce.weekdaysMinRegex=function(h){return this._weekdaysParseExact?(a(this,\"_weekdaysRegex\")||At.call(this),h?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(a(this,\"_weekdaysMinRegex\")||(this._weekdaysMinRegex=Z),this._weekdaysMinStrictRegex&&h?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},ce.isPM=function(h){return(h+\"\").toLowerCase().charAt(0)===\"p\"},ce.meridiem=function(h,y,_){return 11<h?_?\"pm\":\"PM\":_?\"am\":\"AM\"},qt(\"en\",{eras:[{since:\"0001-01-01\",until:1/0,offset:1,name:\"Anno Domini\",narrow:\"AD\",abbr:\"AD\"},{since:\"0000-12-31\",until:-1/0,offset:1,name:\"Before Christ\",narrow:\"BC\",abbr:\"BC\"}],dayOfMonthOrdinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(h){var y=h%10;return h+(F(h%100/10)===1?\"th\":y==1?\"st\":y==2?\"nd\":y==3?\"rd\":\"th\")}}),n.lang=W(\"moment.lang is deprecated. Use moment.locale instead.\",qt),n.langData=W(\"moment.langData is deprecated. Use moment.localeData instead.\",oe);var Di=Math.abs;function kb(h,y,_,S){return y=In(y,_),h._milliseconds+=S*y._milliseconds,h._days+=S*y._days,h._months+=S*y._months,h._bubble()}function wb(h){return h<0?Math.floor(h):Math.ceil(h)}function Tb(h){return 4800*h/146097}function Ud(h){return 146097*h/4800}function Mi(h){return function(){return this.as(h)}}Mt=Mi(\"ms\"),ht=Mi(\"s\"),ee=Mi(\"m\"),et=Mi(\"h\"),Yt=Mi(\"d\"),Ye=Mi(\"w\"),pt=Mi(\"M\"),Ps=Mi(\"Q\"),Qi=Mi(\"y\");function Ys(h){return function(){return this.isValid()?this._data[h]:NaN}}var Ji=Ys(\"milliseconds\"),ts=Ys(\"seconds\"),Ku=Ys(\"minutes\"),ce=Ys(\"hours\"),GY=Ys(\"days\"),qY=Ys(\"months\"),jY=Ys(\"years\"),Ni=Math.round,Va={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function $Y(h,y,_,S){var It=In(h).abs(),ue=Ni(It.as(\"s\")),R=Ni(It.as(\"m\")),it=Ni(It.as(\"h\")),mt=Ni(It.as(\"d\")),Ct=Ni(It.as(\"M\")),Pt=Ni(It.as(\"w\")),It=Ni(It.as(\"y\")),ue=(ue<=_.ss?[\"s\",ue]:ue<_.s&&[\"ss\",ue])||R<=1&&[\"m\"]||R<_.m&&[\"mm\",R]||it<=1&&[\"h\"]||it<_.h&&[\"hh\",it]||mt<=1&&[\"d\"]||mt<_.d&&[\"dd\",mt];return(ue=(ue=_.w!=null?ue||Pt<=1&&[\"w\"]||Pt<_.w&&[\"ww\",Pt]:ue)||Ct<=1&&[\"M\"]||Ct<_.M&&[\"MM\",Ct]||It<=1&&[\"y\"]||[\"yy\",It])[2]=y,ue[3]=0<+h,ue[4]=S,function(re,He,lr,On,Wd){return Wd.relativeTime(He||1,!!lr,re,On)}.apply(null,ue)}var zd=Math.abs;function Ua(h){return(0<h)-(h<0)||+h}function Zu(){if(!this.isValid())return this.localeData().invalidDate();var h,y,_,S,R,it,mt,Ct=zd(this._milliseconds)/1e3,Pt=zd(this._days),It=zd(this._months),ue=this.asSeconds();return ue?(h=X(Ct/60),y=X(h/60),Ct%=60,h%=60,_=X(It/12),It%=12,S=Ct?Ct.toFixed(3).replace(/\\.?0+$/,\"\"):\"\",R=Ua(this._months)!==Ua(ue)?\"-\":\"\",it=Ua(this._days)!==Ua(ue)?\"-\":\"\",mt=Ua(this._milliseconds)!==Ua(ue)?\"-\":\"\",(ue<0?\"-\":\"\")+\"P\"+(_?R+_+\"Y\":\"\")+(It?R+It+\"M\":\"\")+(Pt?it+Pt+\"D\":\"\")+(y||h||Ct?\"T\":\"\")+(y?mt+y+\"H\":\"\")+(h?mt+h+\"M\":\"\")+(Ct?mt+S+\"S\":\"\")):\"P0D\"}var Ce=Bn.prototype;return Ce.isValid=function(){return this._isValid},Ce.abs=function(){var h=this._data;return this._milliseconds=Di(this._milliseconds),this._days=Di(this._days),this._months=Di(this._months),h.milliseconds=Di(h.milliseconds),h.seconds=Di(h.seconds),h.minutes=Di(h.minutes),h.hours=Di(h.hours),h.months=Di(h.months),h.years=Di(h.years),this},Ce.add=function(h,y){return kb(this,h,y,1)},Ce.subtract=function(h,y){return kb(this,h,y,-1)},Ce.as=function(h){if(!this.isValid())return NaN;var y,_,S=this._milliseconds;if((h=_t(h))===\"month\"||h===\"quarter\"||h===\"year\")switch(y=this._days+S/864e5,_=this._months+Tb(y),h){case\"month\":return _;case\"quarter\":return _/3;case\"year\":return _/12}else switch(y=this._days+Math.round(Ud(this._months)),h){case\"week\":return y/7+S/6048e5;case\"day\":return y+S/864e5;case\"hour\":return 24*y+S/36e5;case\"minute\":return 1440*y+S/6e4;case\"second\":return 86400*y+S/1e3;case\"millisecond\":return Math.floor(864e5*y)+S;default:throw new Error(\"Unknown unit \"+h)}},Ce.asMilliseconds=Mt,Ce.asSeconds=ht,Ce.asMinutes=ee,Ce.asHours=et,Ce.asDays=Yt,Ce.asWeeks=Ye,Ce.asMonths=pt,Ce.asQuarters=Ps,Ce.asYears=Qi,Ce.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*F(this._months/12):NaN},Ce._bubble=function(){var h=this._milliseconds,y=this._days,_=this._months,S=this._data;return 0<=h&&0<=y&&0<=_||h<=0&&y<=0&&_<=0||(h+=864e5*wb(Ud(_)+y),_=y=0),S.milliseconds=h%1e3,h=X(h/1e3),S.seconds=h%60,h=X(h/60),S.minutes=h%60,h=X(h/60),S.hours=h%24,y+=X(h/24),_+=h=X(Tb(y)),y-=wb(Ud(h)),h=X(_/12),_%=12,S.days=y,S.months=_,S.years=h,this},Ce.clone=function(){return In(this)},Ce.get=function(h){return h=_t(h),this.isValid()?this[h+\"s\"]():NaN},Ce.milliseconds=Ji,Ce.seconds=ts,Ce.minutes=Ku,Ce.hours=ce,Ce.days=GY,Ce.weeks=function(){return X(this.days()/7)},Ce.months=qY,Ce.years=jY,Ce.humanize=function(h,y){if(!this.isValid())return this.localeData().invalidDate();var _=!1,S=Va;return typeof h==\"object\"&&(y=h,h=!1),typeof h==\"boolean\"&&(_=h),typeof y==\"object\"&&(S=Object.assign({},Va,y),y.s!=null&&y.ss==null&&(S.ss=y.s-1)),h=this.localeData(),y=$Y(this,!_,S,h),_&&(y=h.pastFuture(+this,y)),h.postformat(y)},Ce.toISOString=Zu,Ce.toString=Zu,Ce.toJSON=Zu,Ce.locale=pb,Ce.localeData=gb,Ce.toIsoString=W(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",Zu),Ce.lang=$e,j(\"X\",0,0,\"unix\"),j(\"x\",0,0,\"valueOf\"),st(\"x\",gt),st(\"X\",/[+-]?\\d+(\\.\\d{1,3})?/),Gt(\"X\",function(h,y,_){_._d=new Date(1e3*parseFloat(h))}),Gt(\"x\",function(h,y,_){_._d=new Date(F(h))}),n.version=\"2.29.4\",r=Se,n.fn=C,n.min=function(){return Or(\"isBefore\",[].slice.call(arguments,0))},n.max=function(){return Or(\"isAfter\",[].slice.call(arguments,0))},n.now=function(){return Date.now?Date.now():+new Date},n.utc=g,n.unix=function(h){return Se(1e3*h)},n.months=function(h,y){return vb(h,y,\"months\")},n.isDate=d,n.locale=qt,n.invalid=T,n.duration=In,n.isMoment=G,n.weekdays=function(h,y,_){return Vd(h,y,_,\"weekdays\")},n.parseZone=function(){return Se.apply(null,arguments).parseZone()},n.localeData=oe,n.isDuration=Li,n.monthsShort=function(h,y){return vb(h,y,\"monthsShort\")},n.weekdaysMin=function(h,y,_){return Vd(h,y,_,\"weekdaysMin\")},n.defineLocale=te,n.updateLocale=function(h,y){var _,S;return y!=null?(S=We,ve[h]!=null&&ve[h].parentLocale!=null?ve[h].set(v(ve[h]._config,y)):(y=v(S=(_=zr(h))!=null?_._config:S,y),_==null&&(y.abbr=h),(S=new M(y)).parentLocale=ve[h],ve[h]=S),qt(h)):ve[h]!=null&&(ve[h].parentLocale!=null?(ve[h]=ve[h].parentLocale,h===qt()&&qt(h)):ve[h]!=null&&delete ve[h]),ve[h]},n.locales=function(){return m(ve)},n.weekdaysShort=function(h,y,_){return Vd(h,y,_,\"weekdaysShort\")},n.normalizeUnits=_t,n.relativeTimeRounding=function(h){return h===void 0?Ni:typeof h==\"function\"&&(Ni=h,!0)},n.relativeTimeThreshold=function(h,y){return Va[h]!==void 0&&(y===void 0?Va[h]:(Va[h]=y,h===\"s\"&&(Va.ss=y-1),!0))},n.calendarFormat=function(h,y){return(h=h.diff(y,\"days\",!0))<-6?\"sameElse\":h<-1?\"lastWeek\":h<0?\"lastDay\":h<1?\"sameDay\":h<2?\"nextDay\":h<7?\"nextWeek\":\"sameElse\"},n.prototype=C,n.HTML5_FMT={DATETIME_LOCAL:\"YYYY-MM-DDTHH:mm\",DATETIME_LOCAL_SECONDS:\"YYYY-MM-DDTHH:mm:ss\",DATETIME_LOCAL_MS:\"YYYY-MM-DDTHH:mm:ss.SSS\",DATE:\"YYYY-MM-DD\",TIME:\"HH:mm\",TIME_SECONDS:\"HH:mm:ss\",TIME_MS:\"HH:mm:ss.SSS\",WEEK:\"GGGG-[W]WW\",MONTH:\"YYYY-MM\"},n})})(Bi);const cn=Bi.exports,Jn={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},B={trace:(...t)=>{},debug:(...t)=>{},info:(...t)=>{},warn:(...t)=>{},error:(...t)=>{},fatal:(...t)=>{}},Qu=function(t=\"fatal\"){let e=Jn.fatal;typeof t==\"string\"?(t=t.toLowerCase(),t in Jn&&(e=Jn[t])):typeof t==\"number\"&&(e=t),B.trace=()=>{},B.debug=()=>{},B.info=()=>{},B.warn=()=>{},B.error=()=>{},B.fatal=()=>{},e<=Jn.fatal&&(B.fatal=console.error?console.error.bind(console,Qr(\"FATAL\"),\"color: orange\"):console.log.bind(console,\"\\x1B[35m\",Qr(\"FATAL\"))),e<=Jn.error&&(B.error=console.error?console.error.bind(console,Qr(\"ERROR\"),\"color: orange\"):console.log.bind(console,\"\\x1B[31m\",Qr(\"ERROR\"))),e<=Jn.warn&&(B.warn=console.warn?console.warn.bind(console,Qr(\"WARN\"),\"color: orange\"):console.log.bind(console,\"\\x1B[33m\",Qr(\"WARN\"))),e<=Jn.info&&(B.info=console.info?console.info.bind(console,Qr(\"INFO\"),\"color: lightblue\"):console.log.bind(console,\"\\x1B[34m\",Qr(\"INFO\"))),e<=Jn.debug&&(B.debug=console.debug?console.debug.bind(console,Qr(\"DEBUG\"),\"color: lightgreen\"):console.log.bind(console,\"\\x1B[32m\",Qr(\"DEBUG\"))),e<=Jn.trace&&(B.trace=console.debug?console.debug.bind(console,Qr(\"TRACE\"),\"color: lightgreen\"):console.log.bind(console,\"\\x1B[32m\",Qr(\"TRACE\")))},Qr=t=>`%c${cn().format(\"ss.SSS\")} : ${t} : `;var Ju={};Object.defineProperty(Ju,\"__esModule\",{value:!0});var ti=Ju.sanitizeUrl=void 0,Eb=/^([^\\w]*)(javascript|data|vbscript)/im,Cb=/&#(\\w+)(^\\w|;)?/g,Sb=/[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim,Ab=/^([^:]+):/gm,Lb=[\".\",\"/\"];function Db(t){return Lb.indexOf(t[0])>-1}function Mb(t){return t.replace(Cb,function(e,r){return String.fromCharCode(r)})}function Nb(t){var e=Mb(t||\"\").replace(Sb,\"\").trim();if(!e)return\"about:blank\";if(Db(e))return e;var r=e.match(Ab);if(!r)return e;var n=r[0];return Eb.test(n)?\"about:blank\":e}ti=Ju.sanitizeUrl=Nb;function ul(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Bb(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function th(t){let e,r,n;t.length!==2?(e=ul,r=(o,l)=>ul(t(o),l),n=(o,l)=>t(o)-l):(e=t===ul||t===Bb?t:Ib,r=t,n=t);function i(o,l,u=0,d=o.length){if(u<d){if(e(l,l)!==0)return d;do{const f=u+d>>>1;r(o[f],l)<0?u=f+1:d=f}while(u<d)}return u}function s(o,l,u=0,d=o.length){if(u<d){if(e(l,l)!==0)return d;do{const f=u+d>>>1;r(o[f],l)<=0?u=f+1:d=f}while(u<d)}return u}function a(o,l,u=0,d=o.length){const f=i(o,l,u,d-1);return f>u&&n(o[f-1],l)>-n(o[f],l)?f-1:f}return{left:i,center:a,right:s}}function Ib(){return 0}function Ob(t){return t===null?NaN:+t}const Rb=th(ul).right;th(Ob).center;const Fb=Rb;class Hd extends Map{constructor(e,r=Vb){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),e!=null)for(const[n,i]of e)this.set(n,i)}get(e){return super.get(Gd(this,e))}has(e){return super.has(Gd(this,e))}set(e,r){return super.set(Pb(this,e),r)}delete(e){return super.delete(Yb(this,e))}}function Gd({_intern:t,_key:e},r){const n=e(r);return t.has(n)?t.get(n):r}function Pb({_intern:t,_key:e},r){const n=e(r);return t.has(n)?t.get(n):(t.set(n,r),r)}function Yb({_intern:t,_key:e},r){const n=e(r);return t.has(n)&&(r=t.get(n),t.delete(n)),r}function Vb(t){return t!==null&&typeof t==\"object\"?t.valueOf():t}var eh=Math.sqrt(50),rh=Math.sqrt(10),nh=Math.sqrt(2);function Ub(t,e,r){var n,i=-1,s,a,o;if(e=+e,t=+t,r=+r,t===e&&r>0)return[t];if((n=e<t)&&(s=t,t=e,e=s),(o=qd(t,e,r))===0||!isFinite(o))return[];if(o>0){let l=Math.round(t/o),u=Math.round(e/o);for(l*o<t&&++l,u*o>e&&--u,a=new Array(s=u-l+1);++i<s;)a[i]=(l+i)*o}else{o=-o;let l=Math.round(t*o),u=Math.round(e*o);for(l/o<t&&++l,u/o>e&&--u,a=new Array(s=u-l+1);++i<s;)a[i]=(l+i)/o}return n&&a.reverse(),a}function qd(t,e,r){var n=(e-t)/Math.max(0,r),i=Math.floor(Math.log(n)/Math.LN10),s=n/Math.pow(10,i);return i>=0?(s>=eh?10:s>=rh?5:s>=nh?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(s>=eh?10:s>=rh?5:s>=nh?2:1)}function ih(t,e,r){var n=Math.abs(e-t)/Math.max(0,r),i=Math.pow(10,Math.floor(Math.log(n)/Math.LN10)),s=n/i;return s>=eh?i*=10:s>=rh?i*=5:s>=nh&&(i*=2),e<t?-i:i}function zb(t,e){let r;if(e===void 0)for(const n of t)n!=null&&(r<n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r<i||r===void 0&&i>=i)&&(r=i)}return r}function Wb(t,e){let r;if(e===void 0)for(const n of t)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}function Hb(t){return t}var hl=1,sh=2,ah=3,dl=4,jd=1e-6;function Gb(t){return\"translate(\"+t+\",0)\"}function qb(t){return\"translate(0,\"+t+\")\"}function jb(t){return e=>+t(e)}function $b(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),r=>+t(r)+e}function Xb(){return!this.__axis}function $d(t,e){var r=[],n=null,i=null,s=6,a=6,o=3,l=typeof window<\"u\"&&window.devicePixelRatio>1?0:.5,u=t===hl||t===dl?-1:1,d=t===dl||t===sh?\"x\":\"y\",f=t===hl||t===ah?Gb:qb;function p(g){var b=n==null?e.ticks?e.ticks.apply(e,r):e.domain():n,k=i==null?e.tickFormat?e.tickFormat.apply(e,r):Hb:i,T=Math.max(s,0)+o,L=e.range(),E=+L[0]+l,I=+L[L.length-1]+l,V=(e.bandwidth?$b:jb)(e.copy(),l),H=g.selection?g.selection():g,G=H.selectAll(\".domain\").data([null]),Y=H.selectAll(\".tick\").data(b,e).order(),W=Y.exit(),N=Y.enter().append(\"g\").attr(\"class\",\"tick\"),D=Y.select(\"line\"),w=Y.select(\"text\");G=G.merge(G.enter().insert(\"path\",\".tick\").attr(\"class\",\"domain\").attr(\"stroke\",\"currentColor\")),Y=Y.merge(N),D=D.merge(N.append(\"line\").attr(\"stroke\",\"currentColor\").attr(d+\"2\",u*s)),w=w.merge(N.append(\"text\").attr(\"fill\",\"currentColor\").attr(d,u*T).attr(\"dy\",t===hl?\"0em\":t===ah?\"0.71em\":\"0.32em\")),g!==H&&(G=G.transition(g),Y=Y.transition(g),D=D.transition(g),w=w.transition(g),W=W.transition(g).attr(\"opacity\",jd).attr(\"transform\",function(v){return isFinite(v=V(v))?f(v+l):this.getAttribute(\"transform\")}),N.attr(\"opacity\",jd).attr(\"transform\",function(v){var M=this.parentNode.__axis;return f((M&&isFinite(M=M(v))?M:V(v))+l)})),W.remove(),G.attr(\"d\",t===dl||t===sh?a?\"M\"+u*a+\",\"+E+\"H\"+l+\"V\"+I+\"H\"+u*a:\"M\"+l+\",\"+E+\"V\"+I:a?\"M\"+E+\",\"+u*a+\"V\"+l+\"H\"+I+\"V\"+u*a:\"M\"+E+\",\"+l+\"H\"+I),Y.attr(\"opacity\",1).attr(\"transform\",function(v){return f(V(v)+l)}),D.attr(d+\"2\",u*s),w.attr(d,u*T).text(k),H.filter(Xb).attr(\"fill\",\"none\").attr(\"font-size\",10).attr(\"font-family\",\"sans-serif\").attr(\"text-anchor\",t===sh?\"start\":t===dl?\"end\":\"middle\"),H.each(function(){this.__axis=V})}return p.scale=function(g){return arguments.length?(e=g,p):e},p.ticks=function(){return r=Array.from(arguments),p},p.tickArguments=function(g){return arguments.length?(r=g==null?[]:Array.from(g),p):r.slice()},p.tickValues=function(g){return arguments.length?(n=g==null?null:Array.from(g),p):n&&n.slice()},p.tickFormat=function(g){return arguments.length?(i=g,p):i},p.tickSize=function(g){return arguments.length?(s=a=+g,p):s},p.tickSizeInner=function(g){return arguments.length?(s=+g,p):s},p.tickSizeOuter=function(g){return arguments.length?(a=+g,p):a},p.tickPadding=function(g){return arguments.length?(o=+g,p):o},p.offset=function(g){return arguments.length?(l=+g,p):l},p}function Kb(t){return $d(hl,t)}function Zb(t){return $d(ah,t)}var Qb={value:()=>{}};function Xd(){for(var t=0,e=arguments.length,r={},n;t<e;++t){if(!(n=arguments[t]+\"\")||n in r||/[\\s.]/.test(n))throw new Error(\"illegal type: \"+n);r[n]=[]}return new fl(r)}function fl(t){this._=t}function Jb(t,e){return t.trim().split(/^|\\s+/).map(function(r){var n=\"\",i=r.indexOf(\".\");if(i>=0&&(n=r.slice(i+1),r=r.slice(0,i)),r&&!e.hasOwnProperty(r))throw new Error(\"unknown type: \"+r);return{type:r,name:n}})}fl.prototype=Xd.prototype={constructor:fl,on:function(t,e){var r=this._,n=Jb(t+\"\",r),i,s=-1,a=n.length;if(arguments.length<2){for(;++s<a;)if((i=(t=n[s]).type)&&(i=t5(r[i],t.name)))return i;return}if(e!=null&&typeof e!=\"function\")throw new Error(\"invalid callback: \"+e);for(;++s<a;)if(i=(t=n[s]).type)r[i]=Kd(r[i],t.name,e);else if(e==null)for(i in r)r[i]=Kd(r[i],t.name,null);return this},copy:function(){var t={},e=this._;for(var r in e)t[r]=e[r].slice();return new fl(t)},call:function(t,e){if((i=arguments.length-2)>0)for(var r=new Array(i),n=0,i,s;n<i;++n)r[n]=arguments[n+2];if(!this._.hasOwnProperty(t))throw new Error(\"unknown type: \"+t);for(s=this._[t],n=0,i=s.length;n<i;++n)s[n].value.apply(e,r)},apply:function(t,e,r){if(!this._.hasOwnProperty(t))throw new Error(\"unknown type: \"+t);for(var n=this._[t],i=0,s=n.length;i<s;++i)n[i].value.apply(e,r)}};function t5(t,e){for(var r=0,n=t.length,i;r<n;++r)if((i=t[r]).name===e)return i.value}function Kd(t,e,r){for(var n=0,i=t.length;n<i;++n)if(t[n].name===e){t[n]=Qb,t=t.slice(0,n).concat(t.slice(n+1));break}return r!=null&&t.push({name:e,value:r}),t}var oh=\"http://www.w3.org/1999/xhtml\";const Zd={svg:\"http://www.w3.org/2000/svg\",xhtml:oh,xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"};function pl(t){var e=t+=\"\",r=e.indexOf(\":\");return r>=0&&(e=t.slice(0,r))!==\"xmlns\"&&(t=t.slice(r+1)),Zd.hasOwnProperty(e)?{space:Zd[e],local:t}:t}function e5(t){return function(){var e=this.ownerDocument,r=this.namespaceURI;return r===oh&&e.documentElement.namespaceURI===oh?e.createElement(t):e.createElementNS(r,t)}}function r5(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Qd(t){var e=pl(t);return(e.local?r5:e5)(e)}function n5(){}function lh(t){return t==null?n5:function(){return this.querySelector(t)}}function i5(t){typeof t!=\"function\"&&(t=lh(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i<r;++i)for(var s=e[i],a=s.length,o=n[i]=new Array(a),l,u,d=0;d<a;++d)(l=s[d])&&(u=t.call(l,l.__data__,d,s))&&(\"__data__\"in l&&(u.__data__=l.__data__),o[d]=u);return new Ar(n,this._parents)}function Jd(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function s5(){return[]}function tf(t){return t==null?s5:function(){return this.querySelectorAll(t)}}function a5(t){return function(){return Jd(t.apply(this,arguments))}}function o5(t){typeof t==\"function\"?t=a5(t):t=tf(t);for(var e=this._groups,r=e.length,n=[],i=[],s=0;s<r;++s)for(var a=e[s],o=a.length,l,u=0;u<o;++u)(l=a[u])&&(n.push(t.call(l,l.__data__,u,a)),i.push(l));return new Ar(n,i)}function ef(t){return function(){return this.matches(t)}}function rf(t){return function(e){return e.matches(t)}}var l5=Array.prototype.find;function c5(t){return function(){return l5.call(this.children,t)}}function u5(){return this.firstElementChild}function h5(t){return this.select(t==null?u5:c5(typeof t==\"function\"?t:rf(t)))}var d5=Array.prototype.filter;function f5(){return Array.from(this.children)}function p5(t){return function(){return d5.call(this.children,t)}}function g5(t){return this.selectAll(t==null?f5:p5(typeof t==\"function\"?t:rf(t)))}function y5(t){typeof t!=\"function\"&&(t=ef(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i<r;++i)for(var s=e[i],a=s.length,o=n[i]=[],l,u=0;u<a;++u)(l=s[u])&&t.call(l,l.__data__,u,s)&&o.push(l);return new Ar(n,this._parents)}function nf(t){return new Array(t.length)}function m5(){return new Ar(this._enter||this._groups.map(nf),this._parents)}function gl(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}gl.prototype={constructor:gl,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function b5(t){return function(){return t}}function _5(t,e,r,n,i,s){for(var a=0,o,l=e.length,u=s.length;a<u;++a)(o=e[a])?(o.__data__=s[a],n[a]=o):r[a]=new gl(t,s[a]);for(;a<l;++a)(o=e[a])&&(i[a]=o)}function x5(t,e,r,n,i,s,a){var o,l,u=new Map,d=e.length,f=s.length,p=new Array(d),g;for(o=0;o<d;++o)(l=e[o])&&(p[o]=g=a.call(l,l.__data__,o,e)+\"\",u.has(g)?i[o]=l:u.set(g,l));for(o=0;o<f;++o)g=a.call(t,s[o],o,s)+\"\",(l=u.get(g))?(n[o]=l,l.__data__=s[o],u.delete(g)):r[o]=new gl(t,s[o]);for(o=0;o<d;++o)(l=e[o])&&u.get(p[o])===l&&(i[o]=l)}function v5(t){return t.__data__}function k5(t,e){if(!arguments.length)return Array.from(this,v5);var r=e?x5:_5,n=this._parents,i=this._groups;typeof t!=\"function\"&&(t=b5(t));for(var s=i.length,a=new Array(s),o=new Array(s),l=new Array(s),u=0;u<s;++u){var d=n[u],f=i[u],p=f.length,g=w5(t.call(d,d&&d.__data__,u,n)),b=g.length,k=o[u]=new Array(b),T=a[u]=new Array(b),L=l[u]=new Array(p);r(d,f,k,T,L,g,e);for(var E=0,I=0,V,H;E<b;++E)if(V=k[E]){for(E>=I&&(I=E+1);!(H=T[I])&&++I<b;);V._next=H||null}}return a=new Ar(a,n),a._enter=o,a._exit=l,a}function w5(t){return typeof t==\"object\"&&\"length\"in t?t:Array.from(t)}function T5(){return new Ar(this._exit||this._groups.map(nf),this._parents)}function E5(t,e,r){var n=this.enter(),i=this,s=this.exit();return typeof t==\"function\"?(n=t(n),n&&(n=n.selection())):n=n.append(t+\"\"),e!=null&&(i=e(i),i&&(i=i.selection())),r==null?s.remove():r(s),n&&i?n.merge(i).order():i}function C5(t){for(var e=t.selection?t.selection():t,r=this._groups,n=e._groups,i=r.length,s=n.length,a=Math.min(i,s),o=new Array(i),l=0;l<a;++l)for(var u=r[l],d=n[l],f=u.length,p=o[l]=new Array(f),g,b=0;b<f;++b)(g=u[b]||d[b])&&(p[b]=g);for(;l<i;++l)o[l]=r[l];return new Ar(o,this._parents)}function S5(){for(var t=this._groups,e=-1,r=t.length;++e<r;)for(var n=t[e],i=n.length-1,s=n[i],a;--i>=0;)(a=n[i])&&(s&&a.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(a,s),s=a);return this}function A5(t){t||(t=L5);function e(f,p){return f&&p?t(f.__data__,p.__data__):!f-!p}for(var r=this._groups,n=r.length,i=new Array(n),s=0;s<n;++s){for(var a=r[s],o=a.length,l=i[s]=new Array(o),u,d=0;d<o;++d)(u=a[d])&&(l[d]=u);l.sort(e)}return new Ar(i,this._parents).order()}function L5(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function D5(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function M5(){return Array.from(this)}function N5(){for(var t=this._groups,e=0,r=t.length;e<r;++e)for(var n=t[e],i=0,s=n.length;i<s;++i){var a=n[i];if(a)return a}return null}function B5(){let t=0;for(const e of this)++t;return t}function I5(){return!this.node()}function O5(t){for(var e=this._groups,r=0,n=e.length;r<n;++r)for(var i=e[r],s=0,a=i.length,o;s<a;++s)(o=i[s])&&t.call(o,o.__data__,s,i);return this}function R5(t){return function(){this.removeAttribute(t)}}function F5(t){return function(){this.removeAttributeNS(t.space,t.local)}}function P5(t,e){return function(){this.setAttribute(t,e)}}function Y5(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function V5(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttribute(t):this.setAttribute(t,r)}}function U5(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,r)}}function z5(t,e){var r=pl(t);if(arguments.length<2){var n=this.node();return r.local?n.getAttributeNS(r.space,r.local):n.getAttribute(r)}return this.each((e==null?r.local?F5:R5:typeof e==\"function\"?r.local?U5:V5:r.local?Y5:P5)(r,e))}function sf(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function W5(t){return function(){this.style.removeProperty(t)}}function H5(t,e,r){return function(){this.style.setProperty(t,e,r)}}function G5(t,e,r){return function(){var n=e.apply(this,arguments);n==null?this.style.removeProperty(t):this.style.setProperty(t,n,r)}}function q5(t,e,r){return arguments.length>1?this.each((e==null?W5:typeof e==\"function\"?G5:H5)(t,e,r==null?\"\":r)):Vs(this.node(),t)}function Vs(t,e){return t.style.getPropertyValue(e)||sf(t).getComputedStyle(t,null).getPropertyValue(e)}function j5(t){return function(){delete this[t]}}function $5(t,e){return function(){this[t]=e}}function X5(t,e){return function(){var r=e.apply(this,arguments);r==null?delete this[t]:this[t]=r}}function K5(t,e){return arguments.length>1?this.each((e==null?j5:typeof e==\"function\"?X5:$5)(t,e)):this.node()[t]}function af(t){return t.trim().split(/^|\\s+/)}function ch(t){return t.classList||new of(t)}function of(t){this._node=t,this._names=af(t.getAttribute(\"class\")||\"\")}of.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute(\"class\",this._names.join(\" \")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute(\"class\",this._names.join(\" \")))},contains:function(t){return this._names.indexOf(t)>=0}};function lf(t,e){for(var r=ch(t),n=-1,i=e.length;++n<i;)r.add(e[n])}function cf(t,e){for(var r=ch(t),n=-1,i=e.length;++n<i;)r.remove(e[n])}function Z5(t){return function(){lf(this,t)}}function Q5(t){return function(){cf(this,t)}}function J5(t,e){return function(){(e.apply(this,arguments)?lf:cf)(this,t)}}function t_(t,e){var r=af(t+\"\");if(arguments.length<2){for(var n=ch(this.node()),i=-1,s=r.length;++i<s;)if(!n.contains(r[i]))return!1;return!0}return this.each((typeof e==\"function\"?J5:e?Z5:Q5)(r,e))}function e_(){this.textContent=\"\"}function r_(t){return function(){this.textContent=t}}function n_(t){return function(){var e=t.apply(this,arguments);this.textContent=e==null?\"\":e}}function i_(t){return arguments.length?this.each(t==null?e_:(typeof t==\"function\"?n_:r_)(t)):this.node().textContent}function s_(){this.innerHTML=\"\"}function a_(t){return function(){this.innerHTML=t}}function o_(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e==null?\"\":e}}function l_(t){return arguments.length?this.each(t==null?s_:(typeof t==\"function\"?o_:a_)(t)):this.node().innerHTML}function c_(){this.nextSibling&&this.parentNode.appendChild(this)}function u_(){return this.each(c_)}function h_(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function d_(){return this.each(h_)}function f_(t){var e=typeof t==\"function\"?t:Qd(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}function p_(){return null}function g_(t,e){var r=typeof t==\"function\"?t:Qd(t),n=e==null?p_:typeof e==\"function\"?e:lh(e);return this.select(function(){return this.insertBefore(r.apply(this,arguments),n.apply(this,arguments)||null)})}function y_(){var t=this.parentNode;t&&t.removeChild(this)}function m_(){return this.each(y_)}function b_(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function __(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function x_(t){return this.select(t?__:b_)}function v_(t){return arguments.length?this.property(\"__data__\",t):this.node().__data__}function k_(t){return function(e){t.call(this,e,this.__data__)}}function w_(t){return t.trim().split(/^|\\s+/).map(function(e){var r=\"\",n=e.indexOf(\".\");return n>=0&&(r=e.slice(n+1),e=e.slice(0,n)),{type:e,name:r}})}function T_(t){return function(){var e=this.__on;if(!!e){for(var r=0,n=-1,i=e.length,s;r<i;++r)s=e[r],(!t.type||s.type===t.type)&&s.name===t.name?this.removeEventListener(s.type,s.listener,s.options):e[++n]=s;++n?e.length=n:delete this.__on}}}function E_(t,e,r){return function(){var n=this.__on,i,s=k_(e);if(n){for(var a=0,o=n.length;a<o;++a)if((i=n[a]).type===t.type&&i.name===t.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=s,i.options=r),i.value=e;return}}this.addEventListener(t.type,s,r),i={type:t.type,name:t.name,value:e,listener:s,options:r},n?n.push(i):this.__on=[i]}}function C_(t,e,r){var n=w_(t+\"\"),i,s=n.length,a;if(arguments.length<2){var o=this.node().__on;if(o){for(var l=0,u=o.length,d;l<u;++l)for(i=0,d=o[l];i<s;++i)if((a=n[i]).type===d.type&&a.name===d.name)return d.value}return}for(o=e?E_:T_,i=0;i<s;++i)this.each(o(n[i],e,r));return this}function uf(t,e,r){var n=sf(t),i=n.CustomEvent;typeof i==\"function\"?i=new i(e,r):(i=n.document.createEvent(\"Event\"),r?(i.initEvent(e,r.bubbles,r.cancelable),i.detail=r.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function S_(t,e){return function(){return uf(this,t,e)}}function A_(t,e){return function(){return uf(this,t,e.apply(this,arguments))}}function L_(t,e){return this.each((typeof e==\"function\"?A_:S_)(t,e))}function*D_(){for(var t=this._groups,e=0,r=t.length;e<r;++e)for(var n=t[e],i=0,s=n.length,a;i<s;++i)(a=n[i])&&(yield a)}var uh=[null];function Ar(t,e){this._groups=t,this._parents=e}function Wa(){return new Ar([[document.documentElement]],uh)}function M_(){return this}Ar.prototype=Wa.prototype={constructor:Ar,select:i5,selectAll:o5,selectChild:h5,selectChildren:g5,filter:y5,data:k5,enter:m5,exit:T5,join:E5,merge:C5,selection:M_,order:S5,sort:A5,call:D5,nodes:M5,node:N5,size:B5,empty:I5,each:O5,attr:z5,style:q5,property:K5,classed:t_,text:i_,html:l_,raise:u_,lower:d_,append:f_,insert:g_,remove:m_,clone:x_,datum:v_,on:C_,dispatch:L_,[Symbol.iterator]:D_};function St(t){return typeof t==\"string\"?new Ar([[document.querySelector(t)]],[document.documentElement]):new Ar([[t]],uh)}function hh(t){return typeof t==\"string\"?new Ar([document.querySelectorAll(t)],[document.documentElement]):new Ar([Jd(t)],uh)}function Ha(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function yl(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}function es(){}var Ga=.7,ml=1/Ga,Us=\"\\\\s*([+-]?\\\\d+)\\\\s*\",qa=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",Rn=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",N_=/^#([0-9a-f]{3,8})$/,B_=new RegExp(`^rgb\\\\(${Us},${Us},${Us}\\\\)$`),I_=new RegExp(`^rgb\\\\(${Rn},${Rn},${Rn}\\\\)$`),O_=new RegExp(`^rgba\\\\(${Us},${Us},${Us},${qa}\\\\)$`),R_=new RegExp(`^rgba\\\\(${Rn},${Rn},${Rn},${qa}\\\\)$`),F_=new RegExp(`^hsl\\\\(${qa},${Rn},${Rn}\\\\)$`),P_=new RegExp(`^hsla\\\\(${qa},${Rn},${Rn},${qa}\\\\)$`),hf={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Ha(es,rs,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:df,formatHex:df,formatHex8:Y_,formatHsl:V_,formatRgb:ff,toString:ff});function df(){return this.rgb().formatHex()}function Y_(){return this.rgb().formatHex8()}function V_(){return _f(this).formatHsl()}function ff(){return this.rgb().formatRgb()}function rs(t){var e,r;return t=(t+\"\").trim().toLowerCase(),(e=N_.exec(t))?(r=e[1].length,e=parseInt(e[1],16),r===6?pf(e):r===3?new vr(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):r===8?bl(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):r===4?bl(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=B_.exec(t))?new vr(e[1],e[2],e[3],1):(e=I_.exec(t))?new vr(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=O_.exec(t))?bl(e[1],e[2],e[3],e[4]):(e=R_.exec(t))?bl(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=F_.exec(t))?bf(e[1],e[2]/100,e[3]/100,1):(e=P_.exec(t))?bf(e[1],e[2]/100,e[3]/100,e[4]):hf.hasOwnProperty(t)?pf(hf[t]):t===\"transparent\"?new vr(NaN,NaN,NaN,0):null}function pf(t){return new vr(t>>16&255,t>>8&255,t&255,1)}function bl(t,e,r,n){return n<=0&&(t=e=r=NaN),new vr(t,e,r,n)}function gf(t){return t instanceof es||(t=rs(t)),t?(t=t.rgb(),new vr(t.r,t.g,t.b,t.opacity)):new vr}function dh(t,e,r,n){return arguments.length===1?gf(t):new vr(t,e,r,n==null?1:n)}function vr(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}Ha(vr,dh,yl(es,{brighter(t){return t=t==null?ml:Math.pow(ml,t),new vr(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Ga:Math.pow(Ga,t),new vr(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new vr(ns(this.r),ns(this.g),ns(this.b),_l(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:yf,formatHex:yf,formatHex8:U_,formatRgb:mf,toString:mf}));function yf(){return`#${is(this.r)}${is(this.g)}${is(this.b)}`}function U_(){return`#${is(this.r)}${is(this.g)}${is(this.b)}${is((isNaN(this.opacity)?1:this.opacity)*255)}`}function mf(){const t=_l(this.opacity);return`${t===1?\"rgb(\":\"rgba(\"}${ns(this.r)}, ${ns(this.g)}, ${ns(this.b)}${t===1?\")\":`, ${t})`}`}function _l(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function ns(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function is(t){return t=ns(t),(t<16?\"0\":\"\")+t.toString(16)}function bf(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new un(t,e,r,n)}function _f(t){if(t instanceof un)return new un(t.h,t.s,t.l,t.opacity);if(t instanceof es||(t=rs(t)),!t)return new un;if(t instanceof un)return t;t=t.rgb();var e=t.r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),s=Math.max(e,r,n),a=NaN,o=s-i,l=(s+i)/2;return o?(e===s?a=(r-n)/o+(r<n)*6:r===s?a=(n-e)/o+2:a=(e-r)/o+4,o/=l<.5?s+i:2-s-i,a*=60):o=l>0&&l<1?0:a,new un(a,o,l,t.opacity)}function z_(t,e,r,n){return arguments.length===1?_f(t):new un(t,e,r,n==null?1:n)}function un(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}Ha(un,z_,yl(es,{brighter(t){return t=t==null?ml:Math.pow(ml,t),new un(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Ga:Math.pow(Ga,t),new un(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new vr(fh(t>=240?t-240:t+120,i,n),fh(t,i,n),fh(t<120?t+240:t-120,i,n),this.opacity)},clamp(){return new un(xf(this.h),xl(this.s),xl(this.l),_l(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=_l(this.opacity);return`${t===1?\"hsl(\":\"hsla(\"}${xf(this.h)}, ${xl(this.s)*100}%, ${xl(this.l)*100}%${t===1?\")\":`, ${t})`}`}}));function xf(t){return t=(t||0)%360,t<0?t+360:t}function xl(t){return Math.max(0,Math.min(1,t||0))}function fh(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}const W_=Math.PI/180,H_=180/Math.PI,vl=18,vf=.96422,kf=1,wf=.82521,Tf=4/29,zs=6/29,Ef=3*zs*zs,G_=zs*zs*zs;function Cf(t){if(t instanceof Fn)return new Fn(t.l,t.a,t.b,t.opacity);if(t instanceof ei)return Sf(t);t instanceof vr||(t=gf(t));var e=mh(t.r),r=mh(t.g),n=mh(t.b),i=ph((.2225045*e+.7168786*r+.0606169*n)/kf),s,a;return e===r&&r===n?s=a=i:(s=ph((.4360747*e+.3850649*r+.1430804*n)/vf),a=ph((.0139322*e+.0971045*r+.7141733*n)/wf)),new Fn(116*i-16,500*(s-i),200*(i-a),t.opacity)}function q_(t,e,r,n){return arguments.length===1?Cf(t):new Fn(t,e,r,n==null?1:n)}function Fn(t,e,r,n){this.l=+t,this.a=+e,this.b=+r,this.opacity=+n}Ha(Fn,q_,yl(es,{brighter(t){return new Fn(this.l+vl*(t==null?1:t),this.a,this.b,this.opacity)},darker(t){return new Fn(this.l-vl*(t==null?1:t),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,r=isNaN(this.b)?t:t-this.b/200;return e=vf*gh(e),t=kf*gh(t),r=wf*gh(r),new vr(yh(3.1338561*e-1.6168667*t-.4906146*r),yh(-.9787684*e+1.9161415*t+.033454*r),yh(.0719453*e-.2289914*t+1.4052427*r),this.opacity)}}));function ph(t){return t>G_?Math.pow(t,1/3):t/Ef+Tf}function gh(t){return t>zs?t*t*t:Ef*(t-Tf)}function yh(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function mh(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function j_(t){if(t instanceof ei)return new ei(t.h,t.c,t.l,t.opacity);if(t instanceof Fn||(t=Cf(t)),t.a===0&&t.b===0)return new ei(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*H_;return new ei(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function bh(t,e,r,n){return arguments.length===1?j_(t):new ei(t,e,r,n==null?1:n)}function ei(t,e,r,n){this.h=+t,this.c=+e,this.l=+r,this.opacity=+n}function Sf(t){if(isNaN(t.h))return new Fn(t.l,0,0,t.opacity);var e=t.h*W_;return new Fn(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}Ha(ei,bh,yl(es,{brighter(t){return new ei(this.h,this.c,this.l+vl*(t==null?1:t),this.opacity)},darker(t){return new ei(this.h,this.c,this.l-vl*(t==null?1:t),this.opacity)},rgb(){return Sf(this).rgb()}}));const kl=t=>()=>t;function Af(t,e){return function(r){return t+r*e}}function $_(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}function X_(t,e){var r=e-t;return r?Af(t,r>180||r<-180?r-360*Math.round(r/360):r):kl(isNaN(t)?e:t)}function K_(t){return(t=+t)==1?ja:function(e,r){return r-e?$_(e,r,t):kl(isNaN(e)?r:e)}}function ja(t,e){var r=e-t;return r?Af(t,r):kl(isNaN(t)?e:t)}const wl=function t(e){var r=K_(e);function n(i,s){var a=r((i=dh(i)).r,(s=dh(s)).r),o=r(i.g,s.g),l=r(i.b,s.b),u=ja(i.opacity,s.opacity);return function(d){return i.r=a(d),i.g=o(d),i.b=l(d),i.opacity=u(d),i+\"\"}}return n.gamma=t,n}(1);function Z_(t,e){e||(e=[]);var r=t?Math.min(e.length,t.length):0,n=e.slice(),i;return function(s){for(i=0;i<r;++i)n[i]=t[i]*(1-s)+e[i]*s;return n}}function Q_(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function J_(t,e){var r=e?e.length:0,n=t?Math.min(r,t.length):0,i=new Array(n),s=new Array(r),a;for(a=0;a<n;++a)i[a]=vh(t[a],e[a]);for(;a<r;++a)s[a]=e[a];return function(o){for(a=0;a<n;++a)s[a]=i[a](o);return s}}function tx(t,e){var r=new Date;return t=+t,e=+e,function(n){return r.setTime(t*(1-n)+e*n),r}}function hn(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}function ex(t,e){var r={},n={},i;(t===null||typeof t!=\"object\")&&(t={}),(e===null||typeof e!=\"object\")&&(e={});for(i in e)i in t?r[i]=vh(t[i],e[i]):n[i]=e[i];return function(s){for(i in r)n[i]=r[i](s);return n}}var _h=/[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,xh=new RegExp(_h.source,\"g\");function rx(t){return function(){return t}}function nx(t){return function(e){return t(e)+\"\"}}function Lf(t,e){var r=_h.lastIndex=xh.lastIndex=0,n,i,s,a=-1,o=[],l=[];for(t=t+\"\",e=e+\"\";(n=_h.exec(t))&&(i=xh.exec(e));)(s=i.index)>r&&(s=e.slice(r,s),o[a]?o[a]+=s:o[++a]=s),(n=n[0])===(i=i[0])?o[a]?o[a]+=i:o[++a]=i:(o[++a]=null,l.push({i:a,x:hn(n,i)})),r=xh.lastIndex;return r<e.length&&(s=e.slice(r),o[a]?o[a]+=s:o[++a]=s),o.length<2?l[0]?nx(l[0].x):rx(e):(e=l.length,function(u){for(var d=0,f;d<e;++d)o[(f=l[d]).i]=f.x(u);return o.join(\"\")})}function vh(t,e){var r=typeof e,n;return e==null||r===\"boolean\"?kl(e):(r===\"number\"?hn:r===\"string\"?(n=rs(e))?(e=n,wl):Lf:e instanceof rs?wl:e instanceof Date?tx:Q_(e)?Z_:Array.isArray(e)?J_:typeof e.valueOf!=\"function\"&&typeof e.toString!=\"function\"||isNaN(e)?ex:hn)(t,e)}function ix(t,e){return t=+t,e=+e,function(r){return Math.round(t*(1-r)+e*r)}}var Df=180/Math.PI,kh={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Mf(t,e,r,n,i,s){var a,o,l;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(l=t*r+e*n)&&(r-=t*l,n-=e*l),(o=Math.sqrt(r*r+n*n))&&(r/=o,n/=o,l/=o),t*n<e*r&&(t=-t,e=-e,l=-l,a=-a),{translateX:i,translateY:s,rotate:Math.atan2(e,t)*Df,skewX:Math.atan(l)*Df,scaleX:a,scaleY:o}}var Tl;function sx(t){const e=new(typeof DOMMatrix==\"function\"?DOMMatrix:WebKitCSSMatrix)(t+\"\");return e.isIdentity?kh:Mf(e.a,e.b,e.c,e.d,e.e,e.f)}function ax(t){return t==null||(Tl||(Tl=document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\")),Tl.setAttribute(\"transform\",t),!(t=Tl.transform.baseVal.consolidate()))?kh:(t=t.matrix,Mf(t.a,t.b,t.c,t.d,t.e,t.f))}function Nf(t,e,r,n){function i(u){return u.length?u.pop()+\" \":\"\"}function s(u,d,f,p,g,b){if(u!==f||d!==p){var k=g.push(\"translate(\",null,e,null,r);b.push({i:k-4,x:hn(u,f)},{i:k-2,x:hn(d,p)})}else(f||p)&&g.push(\"translate(\"+f+e+p+r)}function a(u,d,f,p){u!==d?(u-d>180?d+=360:d-u>180&&(u+=360),p.push({i:f.push(i(f)+\"rotate(\",null,n)-2,x:hn(u,d)})):d&&f.push(i(f)+\"rotate(\"+d+n)}function o(u,d,f,p){u!==d?p.push({i:f.push(i(f)+\"skewX(\",null,n)-2,x:hn(u,d)}):d&&f.push(i(f)+\"skewX(\"+d+n)}function l(u,d,f,p,g,b){if(u!==f||d!==p){var k=g.push(i(g)+\"scale(\",null,\",\",null,\")\");b.push({i:k-4,x:hn(u,f)},{i:k-2,x:hn(d,p)})}else(f!==1||p!==1)&&g.push(i(g)+\"scale(\"+f+\",\"+p+\")\")}return function(u,d){var f=[],p=[];return u=t(u),d=t(d),s(u.translateX,u.translateY,d.translateX,d.translateY,f,p),a(u.rotate,d.rotate,f,p),o(u.skewX,d.skewX,f,p),l(u.scaleX,u.scaleY,d.scaleX,d.scaleY,f,p),u=d=null,function(g){for(var b=-1,k=p.length,T;++b<k;)f[(T=p[b]).i]=T.x(g);return f.join(\"\")}}}var ox=Nf(sx,\"px, \",\"px)\",\"deg)\"),lx=Nf(ax,\", \",\")\",\")\");function cx(t){return function(e,r){var n=t((e=bh(e)).h,(r=bh(r)).h),i=ja(e.c,r.c),s=ja(e.l,r.l),a=ja(e.opacity,r.opacity);return function(o){return e.h=n(o),e.c=i(o),e.l=s(o),e.opacity=a(o),e+\"\"}}}const ux=cx(X_);var Ws=0,$a=0,Xa=0,Bf=1e3,El,Ka,Cl=0,ss=0,Sl=0,Za=typeof performance==\"object\"&&performance.now?performance:Date,If=typeof window==\"object\"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function wh(){return ss||(If(hx),ss=Za.now()+Sl)}function hx(){ss=0}function Al(){this._call=this._time=this._next=null}Al.prototype=Of.prototype={constructor:Al,restart:function(t,e,r){if(typeof t!=\"function\")throw new TypeError(\"callback is not a function\");r=(r==null?wh():+r)+(e==null?0:+e),!this._next&&Ka!==this&&(Ka?Ka._next=this:El=this,Ka=this),this._call=t,this._time=r,Th()},stop:function(){this._call&&(this._call=null,this._time=1/0,Th())}};function Of(t,e,r){var n=new Al;return n.restart(t,e,r),n}function dx(){wh(),++Ws;for(var t=El,e;t;)(e=ss-t._time)>=0&&t._call.call(void 0,e),t=t._next;--Ws}function Rf(){ss=(Cl=Za.now())+Sl,Ws=$a=0;try{dx()}finally{Ws=0,px(),ss=0}}function fx(){var t=Za.now(),e=t-Cl;e>Bf&&(Sl-=e,Cl=t)}function px(){for(var t,e=El,r,n=1/0;e;)e._call?(n>e._time&&(n=e._time),t=e,e=e._next):(r=e._next,e._next=null,e=t?t._next=r:El=r);Ka=t,Th(n)}function Th(t){if(!Ws){$a&&($a=clearTimeout($a));var e=t-ss;e>24?(t<1/0&&($a=setTimeout(Rf,t-Za.now()-Sl)),Xa&&(Xa=clearInterval(Xa))):(Xa||(Cl=Za.now(),Xa=setInterval(fx,Bf)),Ws=1,If(Rf))}}function Ff(t,e,r){var n=new Al;return e=e==null?0:+e,n.restart(i=>{n.stop(),t(i+e)},e,r),n}var gx=Xd(\"start\",\"end\",\"cancel\",\"interrupt\"),yx=[],Pf=0,Yf=1,Eh=2,Ll=3,Vf=4,Ch=5,Dl=6;function Ml(t,e,r,n,i,s){var a=t.__transition;if(!a)t.__transition={};else if(r in a)return;mx(t,r,{name:e,index:n,group:i,on:gx,tween:yx,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:Pf})}function Sh(t,e){var r=dn(t,e);if(r.state>Pf)throw new Error(\"too late; already scheduled\");return r}function Pn(t,e){var r=dn(t,e);if(r.state>Ll)throw new Error(\"too late; already running\");return r}function dn(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw new Error(\"transition not found\");return r}function mx(t,e,r){var n=t.__transition,i;n[e]=r,r.timer=Of(s,0,r.time);function s(u){r.state=Yf,r.timer.restart(a,r.delay,r.time),r.delay<=u&&a(u-r.delay)}function a(u){var d,f,p,g;if(r.state!==Yf)return l();for(d in n)if(g=n[d],g.name===r.name){if(g.state===Ll)return Ff(a);g.state===Vf?(g.state=Dl,g.timer.stop(),g.on.call(\"interrupt\",t,t.__data__,g.index,g.group),delete n[d]):+d<e&&(g.state=Dl,g.timer.stop(),g.on.call(\"cancel\",t,t.__data__,g.index,g.group),delete n[d])}if(Ff(function(){r.state===Ll&&(r.state=Vf,r.timer.restart(o,r.delay,r.time),o(u))}),r.state=Eh,r.on.call(\"start\",t,t.__data__,r.index,r.group),r.state===Eh){for(r.state=Ll,i=new Array(p=r.tween.length),d=0,f=-1;d<p;++d)(g=r.tween[d].value.call(t,t.__data__,r.index,r.group))&&(i[++f]=g);i.length=f+1}}function o(u){for(var d=u<r.duration?r.ease.call(null,u/r.duration):(r.timer.restart(l),r.state=Ch,1),f=-1,p=i.length;++f<p;)i[f].call(t,d);r.state===Ch&&(r.on.call(\"end\",t,t.__data__,r.index,r.group),l())}function l(){r.state=Dl,r.timer.stop(),delete n[e];for(var u in n)return;delete t.__transition}}function bx(t,e){var r=t.__transition,n,i,s=!0,a;if(!!r){e=e==null?null:e+\"\";for(a in r){if((n=r[a]).name!==e){s=!1;continue}i=n.state>Eh&&n.state<Ch,n.state=Dl,n.timer.stop(),n.on.call(i?\"interrupt\":\"cancel\",t,t.__data__,n.index,n.group),delete r[a]}s&&delete t.__transition}}function _x(t){return this.each(function(){bx(this,t)})}function xx(t,e){var r,n;return function(){var i=Pn(this,t),s=i.tween;if(s!==r){n=r=s;for(var a=0,o=n.length;a<o;++a)if(n[a].name===e){n=n.slice(),n.splice(a,1);break}}i.tween=n}}function vx(t,e,r){var n,i;if(typeof r!=\"function\")throw new Error;return function(){var s=Pn(this,t),a=s.tween;if(a!==n){i=(n=a).slice();for(var o={name:e,value:r},l=0,u=i.length;l<u;++l)if(i[l].name===e){i[l]=o;break}l===u&&i.push(o)}s.tween=i}}function kx(t,e){var r=this._id;if(t+=\"\",arguments.length<2){for(var n=dn(this.node(),r).tween,i=0,s=n.length,a;i<s;++i)if((a=n[i]).name===t)return a.value;return null}return this.each((e==null?xx:vx)(r,t,e))}function Ah(t,e,r){var n=t._id;return t.each(function(){var i=Pn(this,n);(i.value||(i.value={}))[e]=r.apply(this,arguments)}),function(i){return dn(i,n).value[e]}}function Uf(t,e){var r;return(typeof e==\"number\"?hn:e instanceof rs?wl:(r=rs(e))?(e=r,wl):Lf)(t,e)}function wx(t){return function(){this.removeAttribute(t)}}function Tx(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Ex(t,e,r){var n,i=r+\"\",s;return function(){var a=this.getAttribute(t);return a===i?null:a===n?s:s=e(n=a,r)}}function Cx(t,e,r){var n,i=r+\"\",s;return function(){var a=this.getAttributeNS(t.space,t.local);return a===i?null:a===n?s:s=e(n=a,r)}}function Sx(t,e,r){var n,i,s;return function(){var a,o=r(this),l;return o==null?void this.removeAttribute(t):(a=this.getAttribute(t),l=o+\"\",a===l?null:a===n&&l===i?s:(i=l,s=e(n=a,o)))}}function Ax(t,e,r){var n,i,s;return function(){var a,o=r(this),l;return o==null?void this.removeAttributeNS(t.space,t.local):(a=this.getAttributeNS(t.space,t.local),l=o+\"\",a===l?null:a===n&&l===i?s:(i=l,s=e(n=a,o)))}}function Lx(t,e){var r=pl(t),n=r===\"transform\"?lx:Uf;return this.attrTween(t,typeof e==\"function\"?(r.local?Ax:Sx)(r,n,Ah(this,\"attr.\"+t,e)):e==null?(r.local?Tx:wx)(r):(r.local?Cx:Ex)(r,n,e))}function Dx(t,e){return function(r){this.setAttribute(t,e.call(this,r))}}function Mx(t,e){return function(r){this.setAttributeNS(t.space,t.local,e.call(this,r))}}function Nx(t,e){var r,n;function i(){var s=e.apply(this,arguments);return s!==n&&(r=(n=s)&&Mx(t,s)),r}return i._value=e,i}function Bx(t,e){var r,n;function i(){var s=e.apply(this,arguments);return s!==n&&(r=(n=s)&&Dx(t,s)),r}return i._value=e,i}function Ix(t,e){var r=\"attr.\"+t;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(e==null)return this.tween(r,null);if(typeof e!=\"function\")throw new Error;var n=pl(t);return this.tween(r,(n.local?Nx:Bx)(n,e))}function Ox(t,e){return function(){Sh(this,t).delay=+e.apply(this,arguments)}}function Rx(t,e){return e=+e,function(){Sh(this,t).delay=e}}function Fx(t){var e=this._id;return arguments.length?this.each((typeof t==\"function\"?Ox:Rx)(e,t)):dn(this.node(),e).delay}function Px(t,e){return function(){Pn(this,t).duration=+e.apply(this,arguments)}}function Yx(t,e){return e=+e,function(){Pn(this,t).duration=e}}function Vx(t){var e=this._id;return arguments.length?this.each((typeof t==\"function\"?Px:Yx)(e,t)):dn(this.node(),e).duration}function Ux(t,e){if(typeof e!=\"function\")throw new Error;return function(){Pn(this,t).ease=e}}function zx(t){var e=this._id;return arguments.length?this.each(Ux(e,t)):dn(this.node(),e).ease}function Wx(t,e){return function(){var r=e.apply(this,arguments);if(typeof r!=\"function\")throw new Error;Pn(this,t).ease=r}}function Hx(t){if(typeof t!=\"function\")throw new Error;return this.each(Wx(this._id,t))}function Gx(t){typeof t!=\"function\"&&(t=ef(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i<r;++i)for(var s=e[i],a=s.length,o=n[i]=[],l,u=0;u<a;++u)(l=s[u])&&t.call(l,l.__data__,u,s)&&o.push(l);return new ri(n,this._parents,this._name,this._id)}function qx(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,r=t._groups,n=e.length,i=r.length,s=Math.min(n,i),a=new Array(n),o=0;o<s;++o)for(var l=e[o],u=r[o],d=l.length,f=a[o]=new Array(d),p,g=0;g<d;++g)(p=l[g]||u[g])&&(f[g]=p);for(;o<n;++o)a[o]=e[o];return new ri(a,this._parents,this._name,this._id)}function jx(t){return(t+\"\").trim().split(/^|\\s+/).every(function(e){var r=e.indexOf(\".\");return r>=0&&(e=e.slice(0,r)),!e||e===\"start\"})}function $x(t,e,r){var n,i,s=jx(e)?Sh:Pn;return function(){var a=s(this,t),o=a.on;o!==n&&(i=(n=o).copy()).on(e,r),a.on=i}}function Xx(t,e){var r=this._id;return arguments.length<2?dn(this.node(),r).on.on(t):this.each($x(r,t,e))}function Kx(t){return function(){var e=this.parentNode;for(var r in this.__transition)if(+r!==t)return;e&&e.removeChild(this)}}function Zx(){return this.on(\"end.remove\",Kx(this._id))}function Qx(t){var e=this._name,r=this._id;typeof t!=\"function\"&&(t=lh(t));for(var n=this._groups,i=n.length,s=new Array(i),a=0;a<i;++a)for(var o=n[a],l=o.length,u=s[a]=new Array(l),d,f,p=0;p<l;++p)(d=o[p])&&(f=t.call(d,d.__data__,p,o))&&(\"__data__\"in d&&(f.__data__=d.__data__),u[p]=f,Ml(u[p],e,r,p,u,dn(d,r)));return new ri(s,this._parents,e,r)}function Jx(t){var e=this._name,r=this._id;typeof t!=\"function\"&&(t=tf(t));for(var n=this._groups,i=n.length,s=[],a=[],o=0;o<i;++o)for(var l=n[o],u=l.length,d,f=0;f<u;++f)if(d=l[f]){for(var p=t.call(d,d.__data__,f,l),g,b=dn(d,r),k=0,T=p.length;k<T;++k)(g=p[k])&&Ml(g,e,r,k,p,b);s.push(p),a.push(d)}return new ri(s,a,e,r)}var t6=Wa.prototype.constructor;function e6(){return new t6(this._groups,this._parents)}function r6(t,e){var r,n,i;return function(){var s=Vs(this,t),a=(this.style.removeProperty(t),Vs(this,t));return s===a?null:s===r&&a===n?i:i=e(r=s,n=a)}}function zf(t){return function(){this.style.removeProperty(t)}}function n6(t,e,r){var n,i=r+\"\",s;return function(){var a=Vs(this,t);return a===i?null:a===n?s:s=e(n=a,r)}}function i6(t,e,r){var n,i,s;return function(){var a=Vs(this,t),o=r(this),l=o+\"\";return o==null&&(l=o=(this.style.removeProperty(t),Vs(this,t))),a===l?null:a===n&&l===i?s:(i=l,s=e(n=a,o))}}function s6(t,e){var r,n,i,s=\"style.\"+e,a=\"end.\"+s,o;return function(){var l=Pn(this,t),u=l.on,d=l.value[s]==null?o||(o=zf(e)):void 0;(u!==r||i!==d)&&(n=(r=u).copy()).on(a,i=d),l.on=n}}function a6(t,e,r){var n=(t+=\"\")==\"transform\"?ox:Uf;return e==null?this.styleTween(t,r6(t,n)).on(\"end.style.\"+t,zf(t)):typeof e==\"function\"?this.styleTween(t,i6(t,n,Ah(this,\"style.\"+t,e))).each(s6(this._id,t)):this.styleTween(t,n6(t,n,e),r).on(\"end.style.\"+t,null)}function o6(t,e,r){return function(n){this.style.setProperty(t,e.call(this,n),r)}}function l6(t,e,r){var n,i;function s(){var a=e.apply(this,arguments);return a!==i&&(n=(i=a)&&o6(t,a,r)),n}return s._value=e,s}function c6(t,e,r){var n=\"style.\"+(t+=\"\");if(arguments.length<2)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!=\"function\")throw new Error;return this.tween(n,l6(t,e,r==null?\"\":r))}function u6(t){return function(){this.textContent=t}}function h6(t){return function(){var e=t(this);this.textContent=e==null?\"\":e}}function d6(t){return this.tween(\"text\",typeof t==\"function\"?h6(Ah(this,\"text\",t)):u6(t==null?\"\":t+\"\"))}function f6(t){return function(e){this.textContent=t.call(this,e)}}function p6(t){var e,r;function n(){var i=t.apply(this,arguments);return i!==r&&(e=(r=i)&&f6(i)),e}return n._value=t,n}function g6(t){var e=\"text\";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(t==null)return this.tween(e,null);if(typeof t!=\"function\")throw new Error;return this.tween(e,p6(t))}function y6(){for(var t=this._name,e=this._id,r=Wf(),n=this._groups,i=n.length,s=0;s<i;++s)for(var a=n[s],o=a.length,l,u=0;u<o;++u)if(l=a[u]){var d=dn(l,e);Ml(l,t,r,u,a,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new ri(n,this._parents,t,r)}function m6(){var t,e,r=this,n=r._id,i=r.size();return new Promise(function(s,a){var o={value:a},l={value:function(){--i===0&&s()}};r.each(function(){var u=Pn(this,n),d=u.on;d!==t&&(e=(t=d).copy(),e._.cancel.push(o),e._.interrupt.push(o),e._.end.push(l)),u.on=e}),i===0&&s()})}var b6=0;function ri(t,e,r,n){this._groups=t,this._parents=e,this._name=r,this._id=n}function Wf(){return++b6}var ni=Wa.prototype;ri.prototype={constructor:ri,select:Qx,selectAll:Jx,selectChild:ni.selectChild,selectChildren:ni.selectChildren,filter:Gx,merge:qx,selection:e6,transition:y6,call:ni.call,nodes:ni.nodes,node:ni.node,size:ni.size,empty:ni.empty,each:ni.each,on:Xx,attr:Lx,attrTween:Ix,style:a6,styleTween:c6,text:d6,textTween:g6,remove:Zx,tween:kx,delay:Fx,duration:Vx,ease:zx,easeVarying:Hx,end:m6,[Symbol.iterator]:ni[Symbol.iterator]};function _6(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var x6={time:null,delay:0,duration:250,ease:_6};function v6(t,e){for(var r;!(r=t.__transition)||!(r=r[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return r}function k6(t){var e,r;t instanceof ri?(e=t._id,t=t._name):(e=Wf(),(r=x6).time=wh(),t=t==null?null:t+\"\");for(var n=this._groups,i=n.length,s=0;s<i;++s)for(var a=n[s],o=a.length,l,u=0;u<o;++u)(l=a[u])&&Ml(l,t,e,u,a,r||v6(l,e));return new ri(n,this._parents,t,e)}Wa.prototype.interrupt=_x,Wa.prototype.transition=k6;const Lh=Math.PI,Dh=2*Lh,as=1e-6,w6=Dh-as;function Mh(){this._x0=this._y0=this._x1=this._y1=null,this._=\"\"}function Nh(){return new Mh}Mh.prototype=Nh.prototype={constructor:Mh,moveTo:function(t,e){this._+=\"M\"+(this._x0=this._x1=+t)+\",\"+(this._y0=this._y1=+e)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+=\"Z\")},lineTo:function(t,e){this._+=\"L\"+(this._x1=+t)+\",\"+(this._y1=+e)},quadraticCurveTo:function(t,e,r,n){this._+=\"Q\"+ +t+\",\"+ +e+\",\"+(this._x1=+r)+\",\"+(this._y1=+n)},bezierCurveTo:function(t,e,r,n,i,s){this._+=\"C\"+ +t+\",\"+ +e+\",\"+ +r+\",\"+ +n+\",\"+(this._x1=+i)+\",\"+(this._y1=+s)},arcTo:function(t,e,r,n,i){t=+t,e=+e,r=+r,n=+n,i=+i;var s=this._x1,a=this._y1,o=r-t,l=n-e,u=s-t,d=a-e,f=u*u+d*d;if(i<0)throw new Error(\"negative radius: \"+i);if(this._x1===null)this._+=\"M\"+(this._x1=t)+\",\"+(this._y1=e);else if(f>as)if(!(Math.abs(d*o-l*u)>as)||!i)this._+=\"L\"+(this._x1=t)+\",\"+(this._y1=e);else{var p=r-s,g=n-a,b=o*o+l*l,k=p*p+g*g,T=Math.sqrt(b),L=Math.sqrt(f),E=i*Math.tan((Lh-Math.acos((b+f-k)/(2*T*L)))/2),I=E/L,V=E/T;Math.abs(I-1)>as&&(this._+=\"L\"+(t+I*u)+\",\"+(e+I*d)),this._+=\"A\"+i+\",\"+i+\",0,0,\"+ +(d*p>u*g)+\",\"+(this._x1=t+V*o)+\",\"+(this._y1=e+V*l)}},arc:function(t,e,r,n,i,s){t=+t,e=+e,r=+r,s=!!s;var a=r*Math.cos(n),o=r*Math.sin(n),l=t+a,u=e+o,d=1^s,f=s?n-i:i-n;if(r<0)throw new Error(\"negative radius: \"+r);this._x1===null?this._+=\"M\"+l+\",\"+u:(Math.abs(this._x1-l)>as||Math.abs(this._y1-u)>as)&&(this._+=\"L\"+l+\",\"+u),r&&(f<0&&(f=f%Dh+Dh),f>w6?this._+=\"A\"+r+\",\"+r+\",0,1,\"+d+\",\"+(t-a)+\",\"+(e-o)+\"A\"+r+\",\"+r+\",0,1,\"+d+\",\"+(this._x1=l)+\",\"+(this._y1=u):f>as&&(this._+=\"A\"+r+\",\"+r+\",0,\"+ +(f>=Lh)+\",\"+d+\",\"+(this._x1=t+r*Math.cos(i))+\",\"+(this._y1=e+r*Math.sin(i))))},rect:function(t,e,r,n){this._+=\"M\"+(this._x0=this._x1=+t)+\",\"+(this._y0=this._y1=+e)+\"h\"+ +r+\"v\"+ +n+\"h\"+-r+\"Z\"},toString:function(){return this._}};function T6(t){if(!t.ok)throw new Error(t.status+\" \"+t.statusText);return t.text()}function E6(t,e){return fetch(t,e).then(T6)}function C6(t){return(e,r)=>E6(e,r).then(n=>new DOMParser().parseFromString(n,t))}var S6=C6(\"image/svg+xml\");function A6(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString(\"en\").replace(/,/g,\"\"):t.toString(10)}function Nl(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf(\"e\"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}function Hs(t){return t=Nl(Math.abs(t)),t?t[1]:NaN}function L6(t,e){return function(r,n){for(var i=r.length,s=[],a=0,o=t[0],l=0;i>0&&o>0&&(l+o+1>n&&(o=Math.max(1,n-l)),s.push(r.substring(i-=o,i+o)),!((l+=o+1)>n));)o=t[a=(a+1)%t.length];return s.reverse().join(e)}}function D6(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}var M6=/^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;function Bl(t){if(!(e=M6.exec(t)))throw new Error(\"invalid format: \"+t);var e;return new Bh({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}Bl.prototype=Bh.prototype;function Bh(t){this.fill=t.fill===void 0?\" \":t.fill+\"\",this.align=t.align===void 0?\">\":t.align+\"\",this.sign=t.sign===void 0?\"-\":t.sign+\"\",this.symbol=t.symbol===void 0?\"\":t.symbol+\"\",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?\"\":t.type+\"\"}Bh.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?\"0\":\"\")+(this.width===void 0?\"\":Math.max(1,this.width|0))+(this.comma?\",\":\"\")+(this.precision===void 0?\"\":\".\"+Math.max(0,this.precision|0))+(this.trim?\"~\":\"\")+this.type};function N6(t){t:for(var e=t.length,r=1,n=-1,i;r<e;++r)switch(t[r]){case\".\":n=i=r;break;case\"0\":n===0&&(n=r),i=r;break;default:if(!+t[r])break t;n>0&&(n=0);break}return n>0?t.slice(0,n)+t.slice(i+1):t}var Hf;function B6(t,e){var r=Nl(t,e);if(!r)return t+\"\";var n=r[0],i=r[1],s=i-(Hf=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=n.length;return s===a?n:s>a?n+new Array(s-a+1).join(\"0\"):s>0?n.slice(0,s)+\".\"+n.slice(s):\"0.\"+new Array(1-s).join(\"0\")+Nl(t,Math.max(0,e+s-1))[0]}function Gf(t,e){var r=Nl(t,e);if(!r)return t+\"\";var n=r[0],i=r[1];return i<0?\"0.\"+new Array(-i).join(\"0\")+n:n.length>i+1?n.slice(0,i+1)+\".\"+n.slice(i+1):n+new Array(i-n.length+2).join(\"0\")}const qf={\"%\":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+\"\",d:A6,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Gf(t*100,e),r:Gf,s:B6,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function jf(t){return t}var $f=Array.prototype.map,Xf=[\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"\\xB5\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];function I6(t){var e=t.grouping===void 0||t.thousands===void 0?jf:L6($f.call(t.grouping,Number),t.thousands+\"\"),r=t.currency===void 0?\"\":t.currency[0]+\"\",n=t.currency===void 0?\"\":t.currency[1]+\"\",i=t.decimal===void 0?\".\":t.decimal+\"\",s=t.numerals===void 0?jf:D6($f.call(t.numerals,String)),a=t.percent===void 0?\"%\":t.percent+\"\",o=t.minus===void 0?\"\\u2212\":t.minus+\"\",l=t.nan===void 0?\"NaN\":t.nan+\"\";function u(f){f=Bl(f);var p=f.fill,g=f.align,b=f.sign,k=f.symbol,T=f.zero,L=f.width,E=f.comma,I=f.precision,V=f.trim,H=f.type;H===\"n\"?(E=!0,H=\"g\"):qf[H]||(I===void 0&&(I=12),V=!0,H=\"g\"),(T||p===\"0\"&&g===\"=\")&&(T=!0,p=\"0\",g=\"=\");var G=k===\"$\"?r:k===\"#\"&&/[boxX]/.test(H)?\"0\"+H.toLowerCase():\"\",Y=k===\"$\"?n:/[%p]/.test(H)?a:\"\",W=qf[H],N=/[defgprs%]/.test(H);I=I===void 0?6:/[gprs]/.test(H)?Math.max(1,Math.min(21,I)):Math.max(0,Math.min(20,I));function D(w){var v=G,M=Y,m,Q,x;if(H===\"c\")M=W(w)+M,w=\"\";else{w=+w;var ct=w<0||1/w<0;if(w=isNaN(w)?l:W(Math.abs(w),I),V&&(w=N6(w)),ct&&+w==0&&b!==\"+\"&&(ct=!1),v=(ct?b===\"(\"?b:o:b===\"-\"||b===\"(\"?\"\":b)+v,M=(H===\"s\"?Xf[8+Hf/3]:\"\")+M+(ct&&b===\"(\"?\")\":\"\"),N){for(m=-1,Q=w.length;++m<Q;)if(x=w.charCodeAt(m),48>x||x>57){M=(x===46?i+w.slice(m+1):w.slice(m))+M,w=w.slice(0,m);break}}}E&&!T&&(w=e(w,1/0));var Dt=v.length+w.length+M.length,kt=Dt<L?new Array(L-Dt+1).join(p):\"\";switch(E&&T&&(w=e(kt+w,kt.length?L-M.length:1/0),kt=\"\"),g){case\"<\":w=v+w+M+kt;break;case\"=\":w=v+kt+w+M;break;case\"^\":w=kt.slice(0,Dt=kt.length>>1)+v+w+M+kt.slice(Dt);break;default:w=kt+v+w+M;break}return s(w)}return D.toString=function(){return f+\"\"},D}function d(f,p){var g=u((f=Bl(f),f.type=\"f\",f)),b=Math.max(-8,Math.min(8,Math.floor(Hs(p)/3)))*3,k=Math.pow(10,-b),T=Xf[8+b/3];return function(L){return g(k*L)+T}}return{format:u,formatPrefix:d}}var Il,Kf,Zf;O6({thousands:\",\",grouping:[3],currency:[\"$\",\"\"]});function O6(t){return Il=I6(t),Kf=Il.format,Zf=Il.formatPrefix,Il}function R6(t){return Math.max(0,-Hs(Math.abs(t)))}function F6(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Hs(e)/3)))*3-Hs(Math.abs(t)))}function P6(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Hs(e)-Hs(t))+1}function Ih(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}const Qf=Symbol(\"implicit\");function Jf(){var t=new Hd,e=[],r=[],n=Qf;function i(s){let a=t.get(s);if(a===void 0){if(n!==Qf)return n;t.set(s,a=e.push(s)-1)}return r[a%r.length]}return i.domain=function(s){if(!arguments.length)return e.slice();e=[],t=new Hd;for(const a of s)t.has(a)||t.set(a,e.push(a)-1);return i},i.range=function(s){return arguments.length?(r=Array.from(s),i):r.slice()},i.unknown=function(s){return arguments.length?(n=s,i):n},i.copy=function(){return Jf(e,r).unknown(n)},Ih.apply(i,arguments),i}function Y6(t){return function(){return t}}function V6(t){return+t}var t2=[0,1];function Gs(t){return t}function Oh(t,e){return(e-=t=+t)?function(r){return(r-t)/e}:Y6(isNaN(e)?NaN:.5)}function U6(t,e){var r;return t>e&&(r=t,t=e,e=r),function(n){return Math.max(t,Math.min(e,n))}}function z6(t,e,r){var n=t[0],i=t[1],s=e[0],a=e[1];return i<n?(n=Oh(i,n),s=r(a,s)):(n=Oh(n,i),s=r(s,a)),function(o){return s(n(o))}}function W6(t,e,r){var n=Math.min(t.length,e.length)-1,i=new Array(n),s=new Array(n),a=-1;for(t[n]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++a<n;)i[a]=Oh(t[a],t[a+1]),s[a]=r(e[a],e[a+1]);return function(o){var l=Fb(t,o,1,n)-1;return s[l](i[l](o))}}function e2(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function H6(){var t=t2,e=t2,r=vh,n,i,s,a=Gs,o,l,u;function d(){var p=Math.min(t.length,e.length);return a!==Gs&&(a=U6(t[0],t[p-1])),o=p>2?W6:z6,l=u=null,f}function f(p){return p==null||isNaN(p=+p)?s:(l||(l=o(t.map(n),e,r)))(n(a(p)))}return f.invert=function(p){return a(i((u||(u=o(e,t.map(n),hn)))(p)))},f.domain=function(p){return arguments.length?(t=Array.from(p,V6),d()):t.slice()},f.range=function(p){return arguments.length?(e=Array.from(p),d()):e.slice()},f.rangeRound=function(p){return e=Array.from(p),r=ix,d()},f.clamp=function(p){return arguments.length?(a=p?!0:Gs,d()):a!==Gs},f.interpolate=function(p){return arguments.length?(r=p,d()):r},f.unknown=function(p){return arguments.length?(s=p,f):s},function(p,g){return n=p,i=g,d()}}function r2(){return H6()(Gs,Gs)}function G6(t,e,r,n){var i=ih(t,e,r),s;switch(n=Bl(n==null?\",f\":n),n.type){case\"s\":{var a=Math.max(Math.abs(t),Math.abs(e));return n.precision==null&&!isNaN(s=F6(i,a))&&(n.precision=s),Zf(n,a)}case\"\":case\"e\":case\"g\":case\"p\":case\"r\":{n.precision==null&&!isNaN(s=P6(i,Math.max(Math.abs(t),Math.abs(e))))&&(n.precision=s-(n.type===\"e\"));break}case\"f\":case\"%\":{n.precision==null&&!isNaN(s=R6(i))&&(n.precision=s-(n.type===\"%\")*2);break}}return Kf(n)}function q6(t){var e=t.domain;return t.ticks=function(r){var n=e();return Ub(n[0],n[n.length-1],r==null?10:r)},t.tickFormat=function(r,n){var i=e();return G6(i[0],i[i.length-1],r==null?10:r,n)},t.nice=function(r){r==null&&(r=10);var n=e(),i=0,s=n.length-1,a=n[i],o=n[s],l,u,d=10;for(o<a&&(u=a,a=o,o=u,u=i,i=s,s=u);d-- >0;){if(u=qd(a,o,r),u===l)return n[i]=a,n[s]=o,e(n);if(u>0)a=Math.floor(a/u)*u,o=Math.ceil(o/u)*u;else if(u<0)a=Math.ceil(a*u)/u,o=Math.floor(o*u)/u;else break;l=u}return t},t}function n2(){var t=r2();return t.copy=function(){return e2(t,n2())},Ih.apply(t,arguments),q6(t)}function j6(t,e){t=t.slice();var r=0,n=t.length-1,i=t[r],s=t[n],a;return s<i&&(a=r,r=n,n=a,a=i,i=s,s=a),t[r]=e.floor(i),t[n]=e.ceil(s),t}var Rh=new Date,Fh=new Date;function dr(t,e,r,n){function i(s){return t(s=arguments.length===0?new Date:new Date(+s)),s}return i.floor=function(s){return t(s=new Date(+s)),s},i.ceil=function(s){return t(s=new Date(s-1)),e(s,1),t(s),s},i.round=function(s){var a=i(s),o=i.ceil(s);return s-a<o-s?a:o},i.offset=function(s,a){return e(s=new Date(+s),a==null?1:Math.floor(a)),s},i.range=function(s,a,o){var l=[],u;if(s=i.ceil(s),o=o==null?1:Math.floor(o),!(s<a)||!(o>0))return l;do l.push(u=new Date(+s)),e(s,o),t(s);while(u<s&&s<a);return l},i.filter=function(s){return dr(function(a){if(a>=a)for(;t(a),!s(a);)a.setTime(a-1)},function(a,o){if(a>=a)if(o<0)for(;++o<=0;)for(;e(a,-1),!s(a););else for(;--o>=0;)for(;e(a,1),!s(a););})},r&&(i.count=function(s,a){return Rh.setTime(+s),Fh.setTime(+a),t(Rh),t(Fh),Math.floor(r(Rh,Fh))},i.every=function(s){return s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?i.filter(n?function(a){return n(a)%s===0}:function(a){return i.count(0,a)%s===0}):i}),i}var Ol=dr(function(){},function(t,e){t.setTime(+t+e)},function(t,e){return e-t});Ol.every=function(t){return t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?dr(function(e){e.setTime(Math.floor(e/t)*t)},function(e,r){e.setTime(+e+r*t)},function(e,r){return(r-e)/t}):Ol};const $6=Ol;Ol.range;const ii=1e3,Jr=ii*60,si=Jr*60,os=si*24,Ph=os*7,i2=os*30,Yh=os*365;var s2=dr(function(t){t.setTime(t-t.getMilliseconds())},function(t,e){t.setTime(+t+e*ii)},function(t,e){return(e-t)/ii},function(t){return t.getUTCSeconds()});const Qa=s2;s2.range;var a2=dr(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*ii)},function(t,e){t.setTime(+t+e*Jr)},function(t,e){return(e-t)/Jr},function(t){return t.getMinutes()});const Rl=a2;a2.range;var o2=dr(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*ii-t.getMinutes()*Jr)},function(t,e){t.setTime(+t+e*si)},function(t,e){return(e-t)/si},function(t){return t.getHours()});const Fl=o2;o2.range;var l2=dr(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Jr)/os,t=>t.getDate()-1);const qs=l2;l2.range;function ls(t){return dr(function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},function(e,r){e.setDate(e.getDate()+r*7)},function(e,r){return(r-e-(r.getTimezoneOffset()-e.getTimezoneOffset())*Jr)/Ph})}var js=ls(0),Pl=ls(1),X6=ls(2),K6=ls(3),$s=ls(4),Z6=ls(5),Q6=ls(6);js.range,Pl.range,X6.range,K6.range,$s.range,Z6.range,Q6.range;var c2=dr(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,e){t.setMonth(t.getMonth()+e)},function(t,e){return e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12},function(t){return t.getMonth()});const Yl=c2;c2.range;var Vh=dr(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t,e){return e.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});Vh.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:dr(function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,r){e.setFullYear(e.getFullYear()+r*t)})};const cs=Vh;Vh.range;var u2=dr(function(t){t.setUTCSeconds(0,0)},function(t,e){t.setTime(+t+e*Jr)},function(t,e){return(e-t)/Jr},function(t){return t.getUTCMinutes()});const J6=u2;u2.range;var h2=dr(function(t){t.setUTCMinutes(0,0,0)},function(t,e){t.setTime(+t+e*si)},function(t,e){return(e-t)/si},function(t){return t.getUTCHours()});const tv=h2;h2.range;var d2=dr(function(t){t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+e)},function(t,e){return(e-t)/os},function(t){return t.getUTCDate()-1});const Uh=d2;d2.range;function us(t){return dr(function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},function(e,r){e.setUTCDate(e.getUTCDate()+r*7)},function(e,r){return(r-e)/Ph})}var zh=us(0),Vl=us(1),ev=us(2),rv=us(3),Xs=us(4),nv=us(5),iv=us(6);zh.range,Vl.range,ev.range,rv.range,Xs.range,nv.range,iv.range;var f2=dr(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCMonth(t.getUTCMonth()+e)},function(t,e){return e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12},function(t){return t.getUTCMonth()});const sv=f2;f2.range;var Wh=dr(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)},function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});Wh.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:dr(function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,r){e.setUTCFullYear(e.getUTCFullYear()+r*t)})};const Ks=Wh;Wh.range;function p2(t,e,r,n,i,s){const a=[[Qa,1,ii],[Qa,5,5*ii],[Qa,15,15*ii],[Qa,30,30*ii],[s,1,Jr],[s,5,5*Jr],[s,15,15*Jr],[s,30,30*Jr],[i,1,si],[i,3,3*si],[i,6,6*si],[i,12,12*si],[n,1,os],[n,2,2*os],[r,1,Ph],[e,1,i2],[e,3,3*i2],[t,1,Yh]];function o(u,d,f){const p=d<u;p&&([u,d]=[d,u]);const g=f&&typeof f.range==\"function\"?f:l(u,d,f),b=g?g.range(u,+d+1):[];return p?b.reverse():b}function l(u,d,f){const p=Math.abs(d-u)/f,g=th(([,,T])=>T).right(a,p);if(g===a.length)return t.every(ih(u/Yh,d/Yh,f));if(g===0)return $6.every(Math.max(ih(u,d,f),1));const[b,k]=a[p/a[g-1][2]<a[g][2]/p?g-1:g];return b.every(k)}return[o,l]}p2(Ks,sv,zh,Uh,tv,J6);const[av,ov]=p2(cs,Yl,js,qs,Fl,Rl);function Hh(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Gh(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Ja(t,e,r){return{y:t,m:e,d:r,H:0,M:0,S:0,L:0}}function lv(t){var e=t.dateTime,r=t.date,n=t.time,i=t.periods,s=t.days,a=t.shortDays,o=t.months,l=t.shortMonths,u=to(i),d=eo(i),f=to(s),p=eo(s),g=to(a),b=eo(a),k=to(o),T=eo(o),L=to(l),E=eo(l),I={a:ct,A:Dt,b:kt,B:j,c:null,d:x2,e:x2,f:Mv,g:Uv,G:Wv,H:Av,I:Lv,j:Dv,L:v2,m:Nv,M:Bv,p:ot,q:rt,Q:S2,s:A2,S:Iv,u:Ov,U:Rv,V:Fv,w:Pv,W:Yv,x:null,X:null,y:Vv,Y:zv,Z:Hv,\"%\":C2},V={a:nt,A:ut,b:_t,B:K,c:null,d:w2,e:w2,f:$v,g:ik,G:ak,H:Gv,I:qv,j:jv,L:T2,m:Xv,M:Kv,p:Ot,q:P,Q:S2,s:A2,S:Zv,u:Qv,U:Jv,V:tk,w:ek,W:rk,x:null,X:null,y:nk,Y:sk,Z:ok,\"%\":C2},H={a:D,A:w,b:v,B:M,c:m,d:b2,e:b2,f:Tv,g:m2,G:y2,H:_2,I:_2,j:xv,L:wv,m:_v,M:vv,p:N,q:bv,Q:Cv,s:Sv,S:kv,u:fv,U:pv,V:gv,w:dv,W:yv,x:Q,X:x,y:m2,Y:y2,Z:mv,\"%\":Ev};I.x=G(r,I),I.X=G(n,I),I.c=G(e,I),V.x=G(r,V),V.X=G(n,V),V.c=G(e,V);function G(z,X){return function(F){var O=[],A=-1,J=0,C=z.length,ht,U,Yt;for(F instanceof Date||(F=new Date(+F));++A<C;)z.charCodeAt(A)===37&&(O.push(z.slice(J,A)),(U=g2[ht=z.charAt(++A)])!=null?ht=z.charAt(++A):U=ht===\"e\"?\" \":\"0\",(Yt=X[ht])&&(ht=Yt(F,U)),O.push(ht),J=A+1);return O.push(z.slice(J,A)),O.join(\"\")}}function Y(z,X){return function(F){var O=Ja(1900,void 0,1),A=W(O,z,F+=\"\",0),J,C;if(A!=F.length)return null;if(\"Q\"in O)return new Date(O.Q);if(\"s\"in O)return new Date(O.s*1e3+(\"L\"in O?O.L:0));if(X&&!(\"Z\"in O)&&(O.Z=0),\"p\"in O&&(O.H=O.H%12+O.p*12),O.m===void 0&&(O.m=\"q\"in O?O.q:0),\"V\"in O){if(O.V<1||O.V>53)return null;\"w\"in O||(O.w=1),\"Z\"in O?(J=Gh(Ja(O.y,0,1)),C=J.getUTCDay(),J=C>4||C===0?Vl.ceil(J):Vl(J),J=Uh.offset(J,(O.V-1)*7),O.y=J.getUTCFullYear(),O.m=J.getUTCMonth(),O.d=J.getUTCDate()+(O.w+6)%7):(J=Hh(Ja(O.y,0,1)),C=J.getDay(),J=C>4||C===0?Pl.ceil(J):Pl(J),J=qs.offset(J,(O.V-1)*7),O.y=J.getFullYear(),O.m=J.getMonth(),O.d=J.getDate()+(O.w+6)%7)}else(\"W\"in O||\"U\"in O)&&(\"w\"in O||(O.w=\"u\"in O?O.u%7:\"W\"in O?1:0),C=\"Z\"in O?Gh(Ja(O.y,0,1)).getUTCDay():Hh(Ja(O.y,0,1)).getDay(),O.m=0,O.d=\"W\"in O?(O.w+6)%7+O.W*7-(C+5)%7:O.w+O.U*7-(C+6)%7);return\"Z\"in O?(O.H+=O.Z/100|0,O.M+=O.Z%100,Gh(O)):Hh(O)}}function W(z,X,F,O){for(var A=0,J=X.length,C=F.length,ht,U;A<J;){if(O>=C)return-1;if(ht=X.charCodeAt(A++),ht===37){if(ht=X.charAt(A++),U=H[ht in g2?X.charAt(A++):ht],!U||(O=U(z,F,O))<0)return-1}else if(ht!=F.charCodeAt(O++))return-1}return O}function N(z,X,F){var O=u.exec(X.slice(F));return O?(z.p=d.get(O[0].toLowerCase()),F+O[0].length):-1}function D(z,X,F){var O=g.exec(X.slice(F));return O?(z.w=b.get(O[0].toLowerCase()),F+O[0].length):-1}function w(z,X,F){var O=f.exec(X.slice(F));return O?(z.w=p.get(O[0].toLowerCase()),F+O[0].length):-1}function v(z,X,F){var O=L.exec(X.slice(F));return O?(z.m=E.get(O[0].toLowerCase()),F+O[0].length):-1}function M(z,X,F){var O=k.exec(X.slice(F));return O?(z.m=T.get(O[0].toLowerCase()),F+O[0].length):-1}function m(z,X,F){return W(z,e,X,F)}function Q(z,X,F){return W(z,r,X,F)}function x(z,X,F){return W(z,n,X,F)}function ct(z){return a[z.getDay()]}function Dt(z){return s[z.getDay()]}function kt(z){return l[z.getMonth()]}function j(z){return o[z.getMonth()]}function ot(z){return i[+(z.getHours()>=12)]}function rt(z){return 1+~~(z.getMonth()/3)}function nt(z){return a[z.getUTCDay()]}function ut(z){return s[z.getUTCDay()]}function _t(z){return l[z.getUTCMonth()]}function K(z){return o[z.getUTCMonth()]}function Ot(z){return i[+(z.getUTCHours()>=12)]}function P(z){return 1+~~(z.getUTCMonth()/3)}return{format:function(z){var X=G(z+=\"\",I);return X.toString=function(){return z},X},parse:function(z){var X=Y(z+=\"\",!1);return X.toString=function(){return z},X},utcFormat:function(z){var X=G(z+=\"\",V);return X.toString=function(){return z},X},utcParse:function(z){var X=Y(z+=\"\",!0);return X.toString=function(){return z},X}}}var g2={\"-\":\"\",_:\" \",0:\"0\"},fr=/^\\s*\\d+/,cv=/^%/,uv=/[\\\\^$*+?|[\\]().{}]/g;function Ae(t,e,r){var n=t<0?\"-\":\"\",i=(n?-t:t)+\"\",s=i.length;return n+(s<r?new Array(r-s+1).join(e)+i:i)}function hv(t){return t.replace(uv,\"\\\\$&\")}function to(t){return new RegExp(\"^(?:\"+t.map(hv).join(\"|\")+\")\",\"i\")}function eo(t){return new Map(t.map((e,r)=>[e.toLowerCase(),r]))}function dv(t,e,r){var n=fr.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function fv(t,e,r){var n=fr.exec(e.slice(r,r+1));return n?(t.u=+n[0],r+n[0].length):-1}function pv(t,e,r){var n=fr.exec(e.slice(r,r+2));return n?(t.U=+n[0],r+n[0].length):-1}function gv(t,e,r){var n=fr.exec(e.slice(r,r+2));return n?(t.V=+n[0],r+n[0].length):-1}function yv(t,e,r){var n=fr.exec(e.slice(r,r+2));return n?(t.W=+n[0],r+n[0].length):-1}function y2(t,e,r){var n=fr.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function m2(t,e,r){var n=fr.exec(e.slice(r,r+2));return n?(t.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function mv(t,e,r){var n=/^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||\"00\")),r+n[0].length):-1}function bv(t,e,r){var n=fr.exec(e.slice(r,r+1));return n?(t.q=n[0]*3-3,r+n[0].length):-1}function _v(t,e,r){var n=fr.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function b2(t,e,r){var n=fr.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function xv(t,e,r){var n=fr.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function _2(t,e,r){var n=fr.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function vv(t,e,r){var n=fr.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function kv(t,e,r){var n=fr.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function wv(t,e,r){var n=fr.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function Tv(t,e,r){var n=fr.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function Ev(t,e,r){var n=cv.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function Cv(t,e,r){var n=fr.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function Sv(t,e,r){var n=fr.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function x2(t,e){return Ae(t.getDate(),e,2)}function Av(t,e){return Ae(t.getHours(),e,2)}function Lv(t,e){return Ae(t.getHours()%12||12,e,2)}function Dv(t,e){return Ae(1+qs.count(cs(t),t),e,3)}function v2(t,e){return Ae(t.getMilliseconds(),e,3)}function Mv(t,e){return v2(t,e)+\"000\"}function Nv(t,e){return Ae(t.getMonth()+1,e,2)}function Bv(t,e){return Ae(t.getMinutes(),e,2)}function Iv(t,e){return Ae(t.getSeconds(),e,2)}function Ov(t){var e=t.getDay();return e===0?7:e}function Rv(t,e){return Ae(js.count(cs(t)-1,t),e,2)}function k2(t){var e=t.getDay();return e>=4||e===0?$s(t):$s.ceil(t)}function Fv(t,e){return t=k2(t),Ae($s.count(cs(t),t)+(cs(t).getDay()===4),e,2)}function Pv(t){return t.getDay()}function Yv(t,e){return Ae(Pl.count(cs(t)-1,t),e,2)}function Vv(t,e){return Ae(t.getFullYear()%100,e,2)}function Uv(t,e){return t=k2(t),Ae(t.getFullYear()%100,e,2)}function zv(t,e){return Ae(t.getFullYear()%1e4,e,4)}function Wv(t,e){var r=t.getDay();return t=r>=4||r===0?$s(t):$s.ceil(t),Ae(t.getFullYear()%1e4,e,4)}function Hv(t){var e=t.getTimezoneOffset();return(e>0?\"-\":(e*=-1,\"+\"))+Ae(e/60|0,\"0\",2)+Ae(e%60,\"0\",2)}function w2(t,e){return Ae(t.getUTCDate(),e,2)}function Gv(t,e){return Ae(t.getUTCHours(),e,2)}function qv(t,e){return Ae(t.getUTCHours()%12||12,e,2)}function jv(t,e){return Ae(1+Uh.count(Ks(t),t),e,3)}function T2(t,e){return Ae(t.getUTCMilliseconds(),e,3)}function $v(t,e){return T2(t,e)+\"000\"}function Xv(t,e){return Ae(t.getUTCMonth()+1,e,2)}function Kv(t,e){return Ae(t.getUTCMinutes(),e,2)}function Zv(t,e){return Ae(t.getUTCSeconds(),e,2)}function Qv(t){var e=t.getUTCDay();return e===0?7:e}function Jv(t,e){return Ae(zh.count(Ks(t)-1,t),e,2)}function E2(t){var e=t.getUTCDay();return e>=4||e===0?Xs(t):Xs.ceil(t)}function tk(t,e){return t=E2(t),Ae(Xs.count(Ks(t),t)+(Ks(t).getUTCDay()===4),e,2)}function ek(t){return t.getUTCDay()}function rk(t,e){return Ae(Vl.count(Ks(t)-1,t),e,2)}function nk(t,e){return Ae(t.getUTCFullYear()%100,e,2)}function ik(t,e){return t=E2(t),Ae(t.getUTCFullYear()%100,e,2)}function sk(t,e){return Ae(t.getUTCFullYear()%1e4,e,4)}function ak(t,e){var r=t.getUTCDay();return t=r>=4||r===0?Xs(t):Xs.ceil(t),Ae(t.getUTCFullYear()%1e4,e,4)}function ok(){return\"+0000\"}function C2(){return\"%\"}function S2(t){return+t}function A2(t){return Math.floor(+t/1e3)}var Zs,Ul;lk({dateTime:\"%x, %X\",date:\"%-m/%-d/%Y\",time:\"%-I:%M:%S %p\",periods:[\"AM\",\"PM\"],days:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],shortDays:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],months:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],shortMonths:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]});function lk(t){return Zs=lv(t),Ul=Zs.format,Zs.parse,Zs.utcFormat,Zs.utcParse,Zs}function ck(t){return new Date(t)}function uk(t){return t instanceof Date?+t:+new Date(+t)}function L2(t,e,r,n,i,s,a,o,l,u){var d=r2(),f=d.invert,p=d.domain,g=u(\".%L\"),b=u(\":%S\"),k=u(\"%I:%M\"),T=u(\"%I %p\"),L=u(\"%a %d\"),E=u(\"%b %d\"),I=u(\"%B\"),V=u(\"%Y\");function H(G){return(l(G)<G?g:o(G)<G?b:a(G)<G?k:s(G)<G?T:n(G)<G?i(G)<G?L:E:r(G)<G?I:V)(G)}return d.invert=function(G){return new Date(f(G))},d.domain=function(G){return arguments.length?p(Array.from(G,uk)):p().map(ck)},d.ticks=function(G){var Y=p();return t(Y[0],Y[Y.length-1],G==null?10:G)},d.tickFormat=function(G,Y){return Y==null?H:u(Y)},d.nice=function(G){var Y=p();return(!G||typeof G.range!=\"function\")&&(G=e(Y[0],Y[Y.length-1],G==null?10:G)),G?p(j6(Y,G)):d},d.copy=function(){return e2(d,L2(t,e,r,n,i,s,a,o,l,u))},d}function hk(){return Ih.apply(L2(av,ov,cs,Yl,js,qs,Fl,Rl,Qa,Ul).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function Xe(t){return function(){return t}}const D2=Math.abs,kr=Math.atan2,hs=Math.cos,dk=Math.max,qh=Math.min,Yn=Math.sin,Qs=Math.sqrt,Rr=1e-12,ro=Math.PI,zl=ro/2,Wl=2*ro;function fk(t){return t>1?0:t<-1?ro:Math.acos(t)}function M2(t){return t>=1?zl:t<=-1?-zl:Math.asin(t)}function pk(t){return t.innerRadius}function gk(t){return t.outerRadius}function yk(t){return t.startAngle}function mk(t){return t.endAngle}function bk(t){return t&&t.padAngle}function _k(t,e,r,n,i,s,a,o){var l=r-t,u=n-e,d=a-i,f=o-s,p=f*l-d*u;if(!(p*p<Rr))return p=(d*(e-s)-f*(t-i))/p,[t+p*l,e+p*u]}function Hl(t,e,r,n,i,s,a){var o=t-r,l=e-n,u=(a?s:-s)/Qs(o*o+l*l),d=u*l,f=-u*o,p=t+d,g=e+f,b=r+d,k=n+f,T=(p+b)/2,L=(g+k)/2,E=b-p,I=k-g,V=E*E+I*I,H=i-s,G=p*k-b*g,Y=(I<0?-1:1)*Qs(dk(0,H*H*V-G*G)),W=(G*I-E*Y)/V,N=(-G*E-I*Y)/V,D=(G*I+E*Y)/V,w=(-G*E+I*Y)/V,v=W-T,M=N-L,m=D-T,Q=w-L;return v*v+M*M>m*m+Q*Q&&(W=D,N=w),{cx:W,cy:N,x01:-d,y01:-f,x11:W*(i/H-1),y11:N*(i/H-1)}}function jh(){var t=pk,e=gk,r=Xe(0),n=null,i=yk,s=mk,a=bk,o=null;function l(){var u,d,f=+t.apply(this,arguments),p=+e.apply(this,arguments),g=i.apply(this,arguments)-zl,b=s.apply(this,arguments)-zl,k=D2(b-g),T=b>g;if(o||(o=u=Nh()),p<f&&(d=p,p=f,f=d),!(p>Rr))o.moveTo(0,0);else if(k>Wl-Rr)o.moveTo(p*hs(g),p*Yn(g)),o.arc(0,0,p,g,b,!T),f>Rr&&(o.moveTo(f*hs(b),f*Yn(b)),o.arc(0,0,f,b,g,T));else{var L=g,E=b,I=g,V=b,H=k,G=k,Y=a.apply(this,arguments)/2,W=Y>Rr&&(n?+n.apply(this,arguments):Qs(f*f+p*p)),N=qh(D2(p-f)/2,+r.apply(this,arguments)),D=N,w=N,v,M;if(W>Rr){var m=M2(W/f*Yn(Y)),Q=M2(W/p*Yn(Y));(H-=m*2)>Rr?(m*=T?1:-1,I+=m,V-=m):(H=0,I=V=(g+b)/2),(G-=Q*2)>Rr?(Q*=T?1:-1,L+=Q,E-=Q):(G=0,L=E=(g+b)/2)}var x=p*hs(L),ct=p*Yn(L),Dt=f*hs(V),kt=f*Yn(V);if(N>Rr){var j=p*hs(E),ot=p*Yn(E),rt=f*hs(I),nt=f*Yn(I),ut;if(k<ro&&(ut=_k(x,ct,rt,nt,j,ot,Dt,kt))){var _t=x-ut[0],K=ct-ut[1],Ot=j-ut[0],P=ot-ut[1],z=1/Yn(fk((_t*Ot+K*P)/(Qs(_t*_t+K*K)*Qs(Ot*Ot+P*P)))/2),X=Qs(ut[0]*ut[0]+ut[1]*ut[1]);D=qh(N,(f-X)/(z-1)),w=qh(N,(p-X)/(z+1))}}G>Rr?w>Rr?(v=Hl(rt,nt,x,ct,p,w,T),M=Hl(j,ot,Dt,kt,p,w,T),o.moveTo(v.cx+v.x01,v.cy+v.y01),w<N?o.arc(v.cx,v.cy,w,kr(v.y01,v.x01),kr(M.y01,M.x01),!T):(o.arc(v.cx,v.cy,w,kr(v.y01,v.x01),kr(v.y11,v.x11),!T),o.arc(0,0,p,kr(v.cy+v.y11,v.cx+v.x11),kr(M.cy+M.y11,M.cx+M.x11),!T),o.arc(M.cx,M.cy,w,kr(M.y11,M.x11),kr(M.y01,M.x01),!T))):(o.moveTo(x,ct),o.arc(0,0,p,L,E,!T)):o.moveTo(x,ct),!(f>Rr)||!(H>Rr)?o.lineTo(Dt,kt):D>Rr?(v=Hl(Dt,kt,j,ot,f,-D,T),M=Hl(x,ct,rt,nt,f,-D,T),o.lineTo(v.cx+v.x01,v.cy+v.y01),D<N?o.arc(v.cx,v.cy,D,kr(v.y01,v.x01),kr(M.y01,M.x01),!T):(o.arc(v.cx,v.cy,D,kr(v.y01,v.x01),kr(v.y11,v.x11),!T),o.arc(0,0,f,kr(v.cy+v.y11,v.cx+v.x11),kr(M.cy+M.y11,M.cx+M.x11),T),o.arc(M.cx,M.cy,D,kr(M.y11,M.x11),kr(M.y01,M.x01),!T))):o.arc(0,0,f,V,I,T)}if(o.closePath(),u)return o=null,u+\"\"||null}return l.centroid=function(){var u=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,d=(+i.apply(this,arguments)+ +s.apply(this,arguments))/2-ro/2;return[hs(d)*u,Yn(d)*u]},l.innerRadius=function(u){return arguments.length?(t=typeof u==\"function\"?u:Xe(+u),l):t},l.outerRadius=function(u){return arguments.length?(e=typeof u==\"function\"?u:Xe(+u),l):e},l.cornerRadius=function(u){return arguments.length?(r=typeof u==\"function\"?u:Xe(+u),l):r},l.padRadius=function(u){return arguments.length?(n=u==null?null:typeof u==\"function\"?u:Xe(+u),l):n},l.startAngle=function(u){return arguments.length?(i=typeof u==\"function\"?u:Xe(+u),l):i},l.endAngle=function(u){return arguments.length?(s=typeof u==\"function\"?u:Xe(+u),l):s},l.padAngle=function(u){return arguments.length?(a=typeof u==\"function\"?u:Xe(+u),l):a},l.context=function(u){return arguments.length?(o=u==null?null:u,l):o},l}function N2(t){return typeof t==\"object\"&&\"length\"in t?t:Array.from(t)}function B2(t){this._context=t}B2.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function Hr(t){return new B2(t)}function xk(t){return t[0]}function vk(t){return t[1]}function Js(t,e){var r=Xe(!0),n=null,i=Hr,s=null;t=typeof t==\"function\"?t:t===void 0?xk:Xe(t),e=typeof e==\"function\"?e:e===void 0?vk:Xe(e);function a(o){var l,u=(o=N2(o)).length,d,f=!1,p;for(n==null&&(s=i(p=Nh())),l=0;l<=u;++l)!(l<u&&r(d=o[l],l,o))===f&&((f=!f)?s.lineStart():s.lineEnd()),f&&s.point(+t(d,l,o),+e(d,l,o));if(p)return s=null,p+\"\"||null}return a.x=function(o){return arguments.length?(t=typeof o==\"function\"?o:Xe(+o),a):t},a.y=function(o){return arguments.length?(e=typeof o==\"function\"?o:Xe(+o),a):e},a.defined=function(o){return arguments.length?(r=typeof o==\"function\"?o:Xe(!!o),a):r},a.curve=function(o){return arguments.length?(i=o,n!=null&&(s=i(n)),a):i},a.context=function(o){return arguments.length?(o==null?n=s=null:s=i(n=o),a):n},a}function kk(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}function wk(t){return t}function Tk(){var t=wk,e=kk,r=null,n=Xe(0),i=Xe(Wl),s=Xe(0);function a(o){var l,u=(o=N2(o)).length,d,f,p=0,g=new Array(u),b=new Array(u),k=+n.apply(this,arguments),T=Math.min(Wl,Math.max(-Wl,i.apply(this,arguments)-k)),L,E=Math.min(Math.abs(T)/u,s.apply(this,arguments)),I=E*(T<0?-1:1),V;for(l=0;l<u;++l)(V=b[g[l]=l]=+t(o[l],l,o))>0&&(p+=V);for(e!=null?g.sort(function(H,G){return e(b[H],b[G])}):r!=null&&g.sort(function(H,G){return r(o[H],o[G])}),l=0,f=p?(T-u*I)/p:0;l<u;++l,k=L)d=g[l],V=b[d],L=k+(V>0?V*f:0)+I,b[d]={data:o[d],index:l,value:V,startAngle:k,endAngle:L,padAngle:E};return b}return a.value=function(o){return arguments.length?(t=typeof o==\"function\"?o:Xe(+o),a):t},a.sortValues=function(o){return arguments.length?(e=o,r=null,a):e},a.sort=function(o){return arguments.length?(r=o,e=null,a):r},a.startAngle=function(o){return arguments.length?(n=typeof o==\"function\"?o:Xe(+o),a):n},a.endAngle=function(o){return arguments.length?(i=typeof o==\"function\"?o:Xe(+o),a):i},a.padAngle=function(o){return arguments.length?(s=typeof o==\"function\"?o:Xe(+o),a):s},a}function Gl(){}function ql(t,e,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+r)/6)}function I2(t){this._context=t}I2.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:ql(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:ql(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function ta(t){return new I2(t)}function O2(t){this._context=t}O2.prototype={areaStart:Gl,areaEnd:Gl,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:ql(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Ek(t){return new O2(t)}function R2(t){this._context=t}R2.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,n=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:ql(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Ck(t){return new R2(t)}function F2(t){this._context=t}F2.prototype={areaStart:Gl,areaEnd:Gl,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function Sk(t){return new F2(t)}function P2(t){return t<0?-1:1}function Y2(t,e,r){var n=t._x1-t._x0,i=e-t._x1,s=(t._y1-t._y0)/(n||i<0&&-0),a=(r-t._y1)/(i||n<0&&-0),o=(s*i+a*n)/(n+i);return(P2(s)+P2(a))*Math.min(Math.abs(s),Math.abs(a),.5*Math.abs(o))||0}function V2(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function $h(t,e,r){var n=t._x0,i=t._y0,s=t._x1,a=t._y1,o=(s-n)/3;t._context.bezierCurveTo(n+o,i+o*e,s-o,a-o*r,s,a)}function jl(t){this._context=t}jl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:$h(this,this._t0,V2(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var r=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,$h(this,V2(this,r=Y2(this,t,e)),r);break;default:$h(this,this._t0,r=Y2(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=r}}};function U2(t){this._context=new z2(t)}(U2.prototype=Object.create(jl.prototype)).point=function(t,e){jl.prototype.point.call(this,e,t)};function z2(t){this._context=t}z2.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,r,n,i,s){this._context.bezierCurveTo(e,t,n,r,s,i)}};function Ak(t){return new jl(t)}function Lk(t){return new U2(t)}function W2(t){this._context=t}W2.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,r=t.length;if(r)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),r===2)this._context.lineTo(t[1],e[1]);else for(var n=H2(t),i=H2(e),s=0,a=1;a<r;++s,++a)this._context.bezierCurveTo(n[0][s],i[0][s],n[1][s],i[1][s],t[a],e[a]);(this._line||this._line!==0&&r===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}};function H2(t){var e,r=t.length-1,n,i=new Array(r),s=new Array(r),a=new Array(r);for(i[0]=0,s[0]=2,a[0]=t[0]+2*t[1],e=1;e<r-1;++e)i[e]=1,s[e]=4,a[e]=4*t[e]+2*t[e+1];for(i[r-1]=2,s[r-1]=7,a[r-1]=8*t[r-1]+t[r],e=1;e<r;++e)n=i[e]/s[e-1],s[e]-=n,a[e]-=n*a[e-1];for(i[r-1]=a[r-1]/s[r-1],e=r-2;e>=0;--e)i[e]=(a[e]-i[e+1])/s[e];for(s[r-1]=(t[r]+i[r-1])/2,e=0;e<r-1;++e)s[e]=2*t[e+1]-i[e+1];return[i,s]}function Dk(t){return new W2(t)}function $l(t,e){this._context=t,this._t=e}$l.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}break}}this._x=t,this._y=e}};function Mk(t){return new $l(t,.5)}function Nk(t){return new $l(t,0)}function Bk(t){return new $l(t,1)}function ea(t,e,r){this.k=t,this.x=e,this.y=r}ea.prototype={constructor:ea,scale:function(t){return t===1?this:new ea(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new ea(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return\"translate(\"+this.x+\",\"+this.y+\") scale(\"+this.k+\")\"}},new ea(1,0,0),ea.prototype;/*! @license DOMPurify 2.4.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.4.1/LICENSE */function Ii(t){return Ii=typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol==\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},Ii(t)}function Xh(t,e){return Xh=Object.setPrototypeOf||function(n,i){return n.__proto__=i,n},Xh(t,e)}function Ik(){if(typeof Reflect>\"u\"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==\"function\")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Xl(t,e,r){return Ik()?Xl=Reflect.construct:Xl=function(i,s,a){var o=[null];o.push.apply(o,s);var l=Function.bind.apply(i,o),u=new l;return a&&Xh(u,a.prototype),u},Xl.apply(null,arguments)}function fn(t){return Ok(t)||Rk(t)||Fk(t)||Pk()}function Ok(t){if(Array.isArray(t))return Kh(t)}function Rk(t){if(typeof Symbol<\"u\"&&t[Symbol.iterator]!=null||t[\"@@iterator\"]!=null)return Array.from(t)}function Fk(t,e){if(!!t){if(typeof t==\"string\")return Kh(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r===\"Object\"&&t.constructor&&(r=t.constructor.name),r===\"Map\"||r===\"Set\")return Array.from(t);if(r===\"Arguments\"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Kh(t,e)}}function Kh(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function Pk(){throw new TypeError(`Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Yk=Object.hasOwnProperty,G2=Object.setPrototypeOf,Vk=Object.isFrozen,Uk=Object.getPrototypeOf,zk=Object.getOwnPropertyDescriptor,Lr=Object.freeze,pn=Object.seal,Wk=Object.create,q2=typeof Reflect<\"u\"&&Reflect,Kl=q2.apply,Zh=q2.construct;Kl||(Kl=function(e,r,n){return e.apply(r,n)}),Lr||(Lr=function(e){return e}),pn||(pn=function(e){return e}),Zh||(Zh=function(e,r){return Xl(e,fn(r))});var Hk=tn(Array.prototype.forEach),j2=tn(Array.prototype.pop),no=tn(Array.prototype.push),Zl=tn(String.prototype.toLowerCase),Qh=tn(String.prototype.toString),Gk=tn(String.prototype.match),gn=tn(String.prototype.replace),qk=tn(String.prototype.indexOf),jk=tn(String.prototype.trim),Dr=tn(RegExp.prototype.test),Jh=$k(TypeError);function tn(t){return function(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];return Kl(t,e,n)}}function $k(t){return function(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];return Zh(t,r)}}function we(t,e,r){r=r||Zl,G2&&G2(t,null);for(var n=e.length;n--;){var i=e[n];if(typeof i==\"string\"){var s=r(i);s!==i&&(Vk(e)||(e[n]=s),i=s)}t[i]=!0}return t}function ds(t){var e=Wk(null),r;for(r in t)Kl(Yk,t,[r])&&(e[r]=t[r]);return e}function Ql(t,e){for(;t!==null;){var r=zk(t,e);if(r){if(r.get)return tn(r.get);if(typeof r.value==\"function\")return tn(r.value)}t=Uk(t)}function n(i){return console.warn(\"fallback value for\",i),null}return n}var $2=Lr([\"a\",\"abbr\",\"acronym\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"bdi\",\"bdo\",\"big\",\"blink\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"center\",\"cite\",\"code\",\"col\",\"colgroup\",\"content\",\"data\",\"datalist\",\"dd\",\"decorator\",\"del\",\"details\",\"dfn\",\"dialog\",\"dir\",\"div\",\"dl\",\"dt\",\"element\",\"em\",\"fieldset\",\"figcaption\",\"figure\",\"font\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"img\",\"input\",\"ins\",\"kbd\",\"label\",\"legend\",\"li\",\"main\",\"map\",\"mark\",\"marquee\",\"menu\",\"menuitem\",\"meter\",\"nav\",\"nobr\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"section\",\"select\",\"shadow\",\"small\",\"source\",\"spacer\",\"span\",\"strike\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"template\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"tr\",\"track\",\"tt\",\"u\",\"ul\",\"var\",\"video\",\"wbr\"]),t1=Lr([\"svg\",\"a\",\"altglyph\",\"altglyphdef\",\"altglyphitem\",\"animatecolor\",\"animatemotion\",\"animatetransform\",\"circle\",\"clippath\",\"defs\",\"desc\",\"ellipse\",\"filter\",\"font\",\"g\",\"glyph\",\"glyphref\",\"hkern\",\"image\",\"line\",\"lineargradient\",\"marker\",\"mask\",\"metadata\",\"mpath\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialgradient\",\"rect\",\"stop\",\"style\",\"switch\",\"symbol\",\"text\",\"textpath\",\"title\",\"tref\",\"tspan\",\"view\",\"vkern\"]),e1=Lr([\"feBlend\",\"feColorMatrix\",\"feComponentTransfer\",\"feComposite\",\"feConvolveMatrix\",\"feDiffuseLighting\",\"feDisplacementMap\",\"feDistantLight\",\"feFlood\",\"feFuncA\",\"feFuncB\",\"feFuncG\",\"feFuncR\",\"feGaussianBlur\",\"feImage\",\"feMerge\",\"feMergeNode\",\"feMorphology\",\"feOffset\",\"fePointLight\",\"feSpecularLighting\",\"feSpotLight\",\"feTile\",\"feTurbulence\"]),Xk=Lr([\"animate\",\"color-profile\",\"cursor\",\"discard\",\"fedropshadow\",\"font-face\",\"font-face-format\",\"font-face-name\",\"font-face-src\",\"font-face-uri\",\"foreignobject\",\"hatch\",\"hatchpath\",\"mesh\",\"meshgradient\",\"meshpatch\",\"meshrow\",\"missing-glyph\",\"script\",\"set\",\"solidcolor\",\"unknown\",\"use\"]),r1=Lr([\"math\",\"menclose\",\"merror\",\"mfenced\",\"mfrac\",\"mglyph\",\"mi\",\"mlabeledtr\",\"mmultiscripts\",\"mn\",\"mo\",\"mover\",\"mpadded\",\"mphantom\",\"mroot\",\"mrow\",\"ms\",\"mspace\",\"msqrt\",\"mstyle\",\"msub\",\"msup\",\"msubsup\",\"mtable\",\"mtd\",\"mtext\",\"mtr\",\"munder\",\"munderover\"]),Kk=Lr([\"maction\",\"maligngroup\",\"malignmark\",\"mlongdiv\",\"mscarries\",\"mscarry\",\"msgroup\",\"mstack\",\"msline\",\"msrow\",\"semantics\",\"annotation\",\"annotation-xml\",\"mprescripts\",\"none\"]),X2=Lr([\"#text\"]),K2=Lr([\"accept\",\"action\",\"align\",\"alt\",\"autocapitalize\",\"autocomplete\",\"autopictureinpicture\",\"autoplay\",\"background\",\"bgcolor\",\"border\",\"capture\",\"cellpadding\",\"cellspacing\",\"checked\",\"cite\",\"class\",\"clear\",\"color\",\"cols\",\"colspan\",\"controls\",\"controlslist\",\"coords\",\"crossorigin\",\"datetime\",\"decoding\",\"default\",\"dir\",\"disabled\",\"disablepictureinpicture\",\"disableremoteplayback\",\"download\",\"draggable\",\"enctype\",\"enterkeyhint\",\"face\",\"for\",\"headers\",\"height\",\"hidden\",\"high\",\"href\",\"hreflang\",\"id\",\"inputmode\",\"integrity\",\"ismap\",\"kind\",\"label\",\"lang\",\"list\",\"loading\",\"loop\",\"low\",\"max\",\"maxlength\",\"media\",\"method\",\"min\",\"minlength\",\"multiple\",\"muted\",\"name\",\"nonce\",\"noshade\",\"novalidate\",\"nowrap\",\"open\",\"optimum\",\"pattern\",\"placeholder\",\"playsinline\",\"poster\",\"preload\",\"pubdate\",\"radiogroup\",\"readonly\",\"rel\",\"required\",\"rev\",\"reversed\",\"role\",\"rows\",\"rowspan\",\"spellcheck\",\"scope\",\"selected\",\"shape\",\"size\",\"sizes\",\"span\",\"srclang\",\"start\",\"src\",\"srcset\",\"step\",\"style\",\"summary\",\"tabindex\",\"title\",\"translate\",\"type\",\"usemap\",\"valign\",\"value\",\"width\",\"xmlns\",\"slot\"]),n1=Lr([\"accent-height\",\"accumulate\",\"additive\",\"alignment-baseline\",\"ascent\",\"attributename\",\"attributetype\",\"azimuth\",\"basefrequency\",\"baseline-shift\",\"begin\",\"bias\",\"by\",\"class\",\"clip\",\"clippathunits\",\"clip-path\",\"clip-rule\",\"color\",\"color-interpolation\",\"color-interpolation-filters\",\"color-profile\",\"color-rendering\",\"cx\",\"cy\",\"d\",\"dx\",\"dy\",\"diffuseconstant\",\"direction\",\"display\",\"divisor\",\"dur\",\"edgemode\",\"elevation\",\"end\",\"fill\",\"fill-opacity\",\"fill-rule\",\"filter\",\"filterunits\",\"flood-color\",\"flood-opacity\",\"font-family\",\"font-size\",\"font-size-adjust\",\"font-stretch\",\"font-style\",\"font-variant\",\"font-weight\",\"fx\",\"fy\",\"g1\",\"g2\",\"glyph-name\",\"glyphref\",\"gradientunits\",\"gradienttransform\",\"height\",\"href\",\"id\",\"image-rendering\",\"in\",\"in2\",\"k\",\"k1\",\"k2\",\"k3\",\"k4\",\"kerning\",\"keypoints\",\"keysplines\",\"keytimes\",\"lang\",\"lengthadjust\",\"letter-spacing\",\"kernelmatrix\",\"kernelunitlength\",\"lighting-color\",\"local\",\"marker-end\",\"marker-mid\",\"marker-start\",\"markerheight\",\"markerunits\",\"markerwidth\",\"maskcontentunits\",\"maskunits\",\"max\",\"mask\",\"media\",\"method\",\"mode\",\"min\",\"name\",\"numoctaves\",\"offset\",\"operator\",\"opacity\",\"order\",\"orient\",\"orientation\",\"origin\",\"overflow\",\"paint-order\",\"path\",\"pathlength\",\"patterncontentunits\",\"patterntransform\",\"patternunits\",\"points\",\"preservealpha\",\"preserveaspectratio\",\"primitiveunits\",\"r\",\"rx\",\"ry\",\"radius\",\"refx\",\"refy\",\"repeatcount\",\"repeatdur\",\"restart\",\"result\",\"rotate\",\"scale\",\"seed\",\"shape-rendering\",\"specularconstant\",\"specularexponent\",\"spreadmethod\",\"startoffset\",\"stddeviation\",\"stitchtiles\",\"stop-color\",\"stop-opacity\",\"stroke-dasharray\",\"stroke-dashoffset\",\"stroke-linecap\",\"stroke-linejoin\",\"stroke-miterlimit\",\"stroke-opacity\",\"stroke\",\"stroke-width\",\"style\",\"surfacescale\",\"systemlanguage\",\"tabindex\",\"targetx\",\"targety\",\"transform\",\"transform-origin\",\"text-anchor\",\"text-decoration\",\"text-rendering\",\"textlength\",\"type\",\"u1\",\"u2\",\"unicode\",\"values\",\"viewbox\",\"visibility\",\"version\",\"vert-adv-y\",\"vert-origin-x\",\"vert-origin-y\",\"width\",\"word-spacing\",\"wrap\",\"writing-mode\",\"xchannelselector\",\"ychannelselector\",\"x\",\"x1\",\"x2\",\"xmlns\",\"y\",\"y1\",\"y2\",\"z\",\"zoomandpan\"]),Z2=Lr([\"accent\",\"accentunder\",\"align\",\"bevelled\",\"close\",\"columnsalign\",\"columnlines\",\"columnspan\",\"denomalign\",\"depth\",\"dir\",\"display\",\"displaystyle\",\"encoding\",\"fence\",\"frame\",\"height\",\"href\",\"id\",\"largeop\",\"length\",\"linethickness\",\"lspace\",\"lquote\",\"mathbackground\",\"mathcolor\",\"mathsize\",\"mathvariant\",\"maxsize\",\"minsize\",\"movablelimits\",\"notation\",\"numalign\",\"open\",\"rowalign\",\"rowlines\",\"rowspacing\",\"rowspan\",\"rspace\",\"rquote\",\"scriptlevel\",\"scriptminsize\",\"scriptsizemultiplier\",\"selection\",\"separator\",\"separators\",\"stretchy\",\"subscriptshift\",\"supscriptshift\",\"symmetric\",\"voffset\",\"width\",\"xmlns\"]),Jl=Lr([\"xlink:href\",\"xml:id\",\"xlink:title\",\"xml:space\",\"xmlns:xlink\"]),Zk=pn(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm),Qk=pn(/<%[\\w\\W]*|[\\w\\W]*%>/gm),Jk=pn(/\\${[\\w\\W]*}/gm),t8=pn(/^data-[\\-\\w.\\u00B7-\\uFFFF]/),e8=pn(/^aria-[\\-\\w]+$/),r8=pn(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i),n8=pn(/^(?:\\w+script|data):/i),i8=pn(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g),s8=pn(/^html$/i),a8=function(){return typeof window>\"u\"?null:window},o8=function(e,r){if(Ii(e)!==\"object\"||typeof e.createPolicy!=\"function\")return null;var n=null,i=\"data-tt-policy-suffix\";r.currentScript&&r.currentScript.hasAttribute(i)&&(n=r.currentScript.getAttribute(i));var s=\"dompurify\"+(n?\"#\"+n:\"\");try{return e.createPolicy(s,{createHTML:function(o){return o},createScriptURL:function(o){return o}})}catch{return console.warn(\"TrustedTypes policy \"+s+\" could not be created.\"),null}};function Q2(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:a8(),e=function(Z){return Q2(Z)};if(e.version=\"2.4.1\",e.removed=[],!t||!t.document||t.document.nodeType!==9)return e.isSupported=!1,e;var r=t.document,n=t.document,i=t.DocumentFragment,s=t.HTMLTemplateElement,a=t.Node,o=t.Element,l=t.NodeFilter,u=t.NamedNodeMap,d=u===void 0?t.NamedNodeMap||t.MozNamedAttrMap:u,f=t.HTMLFormElement,p=t.DOMParser,g=t.trustedTypes,b=o.prototype,k=Ql(b,\"cloneNode\"),T=Ql(b,\"nextSibling\"),L=Ql(b,\"childNodes\"),E=Ql(b,\"parentNode\");if(typeof s==\"function\"){var I=n.createElement(\"template\");I.content&&I.content.ownerDocument&&(n=I.content.ownerDocument)}var V=o8(g,r),H=V?V.createHTML(\"\"):\"\",G=n,Y=G.implementation,W=G.createNodeIterator,N=G.createDocumentFragment,D=G.getElementsByTagName,w=r.importNode,v={};try{v=ds(n).documentMode?n.documentMode:{}}catch{}var M={};e.isSupported=typeof E==\"function\"&&Y&&typeof Y.createHTMLDocument<\"u\"&&v!==9;var m=Zk,Q=Qk,x=Jk,ct=t8,Dt=e8,kt=n8,j=i8,ot=r8,rt=null,nt=we({},[].concat(fn($2),fn(t1),fn(e1),fn(r1),fn(X2))),ut=null,_t=we({},[].concat(fn(K2),fn(n1),fn(Z2),fn(Jl))),K=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ot=null,P=null,z=!0,X=!0,F=!1,O=!1,A=!1,J=!1,C=!1,ht=!1,U=!1,Yt=!1,et=!0,Mt=!1,Tt=\"user-content-\",gt=!0,Et=!1,wt={},pt=null,st=we({},[\"annotation-xml\",\"audio\",\"colgroup\",\"desc\",\"foreignobject\",\"head\",\"iframe\",\"math\",\"mi\",\"mn\",\"mo\",\"ms\",\"mtext\",\"noembed\",\"noframes\",\"noscript\",\"plaintext\",\"script\",\"style\",\"svg\",\"template\",\"thead\",\"title\",\"video\",\"xmp\"]),le=null,Xt=we({},[\"audio\",\"video\",\"img\",\"source\",\"image\",\"track\"]),jt=null,Kt=we({},[\"alt\",\"class\",\"for\",\"id\",\"label\",\"name\",\"pattern\",\"placeholder\",\"role\",\"summary\",\"title\",\"value\",\"style\",\"xmlns\"]),Gt=\"http://www.w3.org/1998/Math/MathML\",Ee=\"http://www.w3.org/2000/svg\",Ht=\"http://www.w3.org/1999/xhtml\",Vt=Ht,Ft=!1,xt=null,ft=we({},[Gt,Ee,Ht],Qh),Lt,bt=[\"application/xhtml+xml\",\"text/html\"],Ut=\"text/html\",at,ie=null,dt=n.createElement(\"form\"),ee=function(Z){return Z instanceof RegExp||Z instanceof Function},fe=function(Z){ie&&ie===Z||((!Z||Ii(Z)!==\"object\")&&(Z={}),Z=ds(Z),Lt=bt.indexOf(Z.PARSER_MEDIA_TYPE)===-1?Lt=Ut:Lt=Z.PARSER_MEDIA_TYPE,at=Lt===\"application/xhtml+xml\"?Qh:Zl,rt=\"ALLOWED_TAGS\"in Z?we({},Z.ALLOWED_TAGS,at):nt,ut=\"ALLOWED_ATTR\"in Z?we({},Z.ALLOWED_ATTR,at):_t,xt=\"ALLOWED_NAMESPACES\"in Z?we({},Z.ALLOWED_NAMESPACES,Qh):ft,jt=\"ADD_URI_SAFE_ATTR\"in Z?we(ds(Kt),Z.ADD_URI_SAFE_ATTR,at):Kt,le=\"ADD_DATA_URI_TAGS\"in Z?we(ds(Xt),Z.ADD_DATA_URI_TAGS,at):Xt,pt=\"FORBID_CONTENTS\"in Z?we({},Z.FORBID_CONTENTS,at):st,Ot=\"FORBID_TAGS\"in Z?we({},Z.FORBID_TAGS,at):{},P=\"FORBID_ATTR\"in Z?we({},Z.FORBID_ATTR,at):{},wt=\"USE_PROFILES\"in Z?Z.USE_PROFILES:!1,z=Z.ALLOW_ARIA_ATTR!==!1,X=Z.ALLOW_DATA_ATTR!==!1,F=Z.ALLOW_UNKNOWN_PROTOCOLS||!1,O=Z.SAFE_FOR_TEMPLATES||!1,A=Z.WHOLE_DOCUMENT||!1,ht=Z.RETURN_DOM||!1,U=Z.RETURN_DOM_FRAGMENT||!1,Yt=Z.RETURN_TRUSTED_TYPE||!1,C=Z.FORCE_BODY||!1,et=Z.SANITIZE_DOM!==!1,Mt=Z.SANITIZE_NAMED_PROPS||!1,gt=Z.KEEP_CONTENT!==!1,Et=Z.IN_PLACE||!1,ot=Z.ALLOWED_URI_REGEXP||ot,Vt=Z.NAMESPACE||Ht,Z.CUSTOM_ELEMENT_HANDLING&&ee(Z.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(K.tagNameCheck=Z.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Z.CUSTOM_ELEMENT_HANDLING&&ee(Z.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(K.attributeNameCheck=Z.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Z.CUSTOM_ELEMENT_HANDLING&&typeof Z.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements==\"boolean\"&&(K.allowCustomizedBuiltInElements=Z.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),O&&(X=!1),U&&(ht=!0),wt&&(rt=we({},fn(X2)),ut=[],wt.html===!0&&(we(rt,$2),we(ut,K2)),wt.svg===!0&&(we(rt,t1),we(ut,n1),we(ut,Jl)),wt.svgFilters===!0&&(we(rt,e1),we(ut,n1),we(ut,Jl)),wt.mathMl===!0&&(we(rt,r1),we(ut,Z2),we(ut,Jl))),Z.ADD_TAGS&&(rt===nt&&(rt=ds(rt)),we(rt,Z.ADD_TAGS,at)),Z.ADD_ATTR&&(ut===_t&&(ut=ds(ut)),we(ut,Z.ADD_ATTR,at)),Z.ADD_URI_SAFE_ATTR&&we(jt,Z.ADD_URI_SAFE_ATTR,at),Z.FORBID_CONTENTS&&(pt===st&&(pt=ds(pt)),we(pt,Z.FORBID_CONTENTS,at)),gt&&(rt[\"#text\"]=!0),A&&we(rt,[\"html\",\"head\",\"body\"]),rt.table&&(we(rt,[\"tbody\"]),delete Ot.tbody),Lr&&Lr(Z),ie=Z)},be=we({},[\"mi\",\"mo\",\"mn\",\"ms\",\"mtext\"]),_e=we({},[\"foreignobject\",\"desc\",\"title\",\"annotation-xml\"]),ke=we({},[\"title\",\"style\",\"font\",\"a\",\"script\"]),$t=we({},t1);we($t,e1),we($t,Xk);var se=we({},r1);we(se,Kk);var ye=function(Z){var At=E(Z);(!At||!At.tagName)&&(At={namespaceURI:Vt,tagName:\"template\"});var Nt=Zl(Z.tagName),pe=Zl(At.tagName);return xt[Z.namespaceURI]?Z.namespaceURI===Ee?At.namespaceURI===Ht?Nt===\"svg\":At.namespaceURI===Gt?Nt===\"svg\"&&(pe===\"annotation-xml\"||be[pe]):Boolean($t[Nt]):Z.namespaceURI===Gt?At.namespaceURI===Ht?Nt===\"math\":At.namespaceURI===Ee?Nt===\"math\"&&_e[pe]:Boolean(se[Nt]):Z.namespaceURI===Ht?At.namespaceURI===Ee&&!_e[pe]||At.namespaceURI===Gt&&!be[pe]?!1:!se[Nt]&&(ke[Nt]||!$t[Nt]):!!(Lt===\"application/xhtml+xml\"&&xt[Z.namespaceURI]):!1},Jt=function(Z){no(e.removed,{element:Z});try{Z.parentNode.removeChild(Z)}catch{try{Z.outerHTML=H}catch{Z.remove()}}},Nn=function(Z,At){try{no(e.removed,{attribute:At.getAttributeNode(Z),from:At})}catch{no(e.removed,{attribute:null,from:At})}if(At.removeAttribute(Z),Z===\"is\"&&!ut[Z])if(ht||U)try{Jt(At)}catch{}else try{At.setAttribute(Z,\"\")}catch{}},Xr=function(Z){var At,Nt;if(C)Z=\"<remove></remove>\"+Z;else{var pe=Gk(Z,/^[\\r\\n\\t ]+/);Nt=pe&&pe[0]}Lt===\"application/xhtml+xml\"&&Vt===Ht&&(Z='<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>'+Z+\"</body></html>\");var Me=V?V.createHTML(Z):Z;if(Vt===Ht)try{At=new p().parseFromString(Me,Lt)}catch{}if(!At||!At.documentElement){At=Y.createDocument(Vt,\"template\",null);try{At.documentElement.innerHTML=Ft?\"\":Me}catch{}}var Le=At.body||At.documentElement;return Z&&Nt&&Le.insertBefore(n.createTextNode(Nt),Le.childNodes[0]||null),Vt===Ht?D.call(At,A?\"html\":\"body\")[0]:A?At.documentElement:Le},De=function(Z){return W.call(Z.ownerDocument||Z,Z,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT,null,!1)},ae=function(Z){return Z instanceof f&&(typeof Z.nodeName!=\"string\"||typeof Z.textContent!=\"string\"||typeof Z.removeChild!=\"function\"||!(Z.attributes instanceof d)||typeof Z.removeAttribute!=\"function\"||typeof Z.setAttribute!=\"function\"||typeof Z.namespaceURI!=\"string\"||typeof Z.insertBefore!=\"function\"||typeof Z.hasChildNodes!=\"function\")},Be=function(Z){return Ii(a)===\"object\"?Z instanceof a:Z&&Ii(Z)===\"object\"&&typeof Z.nodeType==\"number\"&&typeof Z.nodeName==\"string\"},Re=function(Z,At,Nt){!M[Z]||Hk(M[Z],function(pe){pe.call(e,At,Nt,ie)})},Pe=function(Z){var At;if(Re(\"beforeSanitizeElements\",Z,null),ae(Z)||Dr(/[\\u0080-\\uFFFF]/,Z.nodeName))return Jt(Z),!0;var Nt=at(Z.nodeName);if(Re(\"uponSanitizeElement\",Z,{tagName:Nt,allowedTags:rt}),Z.hasChildNodes()&&!Be(Z.firstElementChild)&&(!Be(Z.content)||!Be(Z.content.firstElementChild))&&Dr(/<[/\\w]/g,Z.innerHTML)&&Dr(/<[/\\w]/g,Z.textContent)||Nt===\"select\"&&Dr(/<template/i,Z.innerHTML))return Jt(Z),!0;if(!rt[Nt]||Ot[Nt]){if(!Ot[Nt]&&Ie(Nt)&&(K.tagNameCheck instanceof RegExp&&Dr(K.tagNameCheck,Nt)||K.tagNameCheck instanceof Function&&K.tagNameCheck(Nt)))return!1;if(gt&&!pt[Nt]){var pe=E(Z)||Z.parentNode,Me=L(Z)||Z.childNodes;if(Me&&pe)for(var Le=Me.length,We=Le-1;We>=0;--We)pe.insertBefore(k(Me[We],!0),T(Z))}return Jt(Z),!0}return Z instanceof o&&!ye(Z)||(Nt===\"noscript\"||Nt===\"noembed\")&&Dr(/<\\/no(script|embed)/i,Z.innerHTML)?(Jt(Z),!0):(O&&Z.nodeType===3&&(At=Z.textContent,At=gn(At,m,\" \"),At=gn(At,Q,\" \"),At=gn(At,x,\" \"),Z.textContent!==At&&(no(e.removed,{element:Z.cloneNode()}),Z.textContent=At)),Re(\"afterSanitizeElements\",Z,null),!1)},Ye=function(Z,At,Nt){if(et&&(At===\"id\"||At===\"name\")&&(Nt in n||Nt in dt))return!1;if(!(X&&!P[At]&&Dr(ct,At))){if(!(z&&Dr(Dt,At))){if(!ut[At]||P[At]){if(!(Ie(Z)&&(K.tagNameCheck instanceof RegExp&&Dr(K.tagNameCheck,Z)||K.tagNameCheck instanceof Function&&K.tagNameCheck(Z))&&(K.attributeNameCheck instanceof RegExp&&Dr(K.attributeNameCheck,At)||K.attributeNameCheck instanceof Function&&K.attributeNameCheck(At))||At===\"is\"&&K.allowCustomizedBuiltInElements&&(K.tagNameCheck instanceof RegExp&&Dr(K.tagNameCheck,Nt)||K.tagNameCheck instanceof Function&&K.tagNameCheck(Nt))))return!1}else if(!jt[At]){if(!Dr(ot,gn(Nt,j,\"\"))){if(!((At===\"src\"||At===\"xlink:href\"||At===\"href\")&&Z!==\"script\"&&qk(Nt,\"data:\")===0&&le[Z])){if(!(F&&!Dr(kt,gn(Nt,j,\"\")))){if(Nt)return!1}}}}}}return!0},Ie=function(Z){return Z.indexOf(\"-\")>0},$e=function(Z){var At,Nt,pe,Me;Re(\"beforeSanitizeAttributes\",Z,null);var Le=Z.attributes;if(!!Le){var We={attrName:\"\",attrValue:\"\",keepAttr:!0,allowedAttributes:ut};for(Me=Le.length;Me--;){At=Le[Me];var ve=At,Ne=ve.name,Xi=ve.namespaceURI;if(Nt=Ne===\"value\"?At.value:jk(At.value),pe=at(Ne),We.attrName=pe,We.attrValue=Nt,We.keepAttr=!0,We.forceKeepAttr=void 0,Re(\"uponSanitizeAttribute\",Z,We),Nt=We.attrValue,!We.forceKeepAttr&&(Nn(Ne,Z),!!We.keepAttr)){if(Dr(/\\/>/i,Nt)){Nn(Ne,Z);continue}O&&(Nt=gn(Nt,m,\" \"),Nt=gn(Nt,Q,\" \"),Nt=gn(Nt,x,\" \"));var Ki=at(Z.nodeName);if(!!Ye(Ki,pe,Nt)){if(Mt&&(pe===\"id\"||pe===\"name\")&&(Nn(Ne,Z),Nt=Tt+Nt),V&&Ii(g)===\"object\"&&typeof g.getAttributeType==\"function\"&&!Xi)switch(g.getAttributeType(Ki,pe)){case\"TrustedHTML\":Nt=V.createHTML(Nt);break;case\"TrustedScriptURL\":Nt=V.createScriptURL(Nt);break}try{Xi?Z.setAttributeNS(Xi,Ne,Nt):Z.setAttribute(Ne,Nt),j2(e.removed)}catch{}}}}Re(\"afterSanitizeAttributes\",Z,null)}},ar=function zt(Z){var At,Nt=De(Z);for(Re(\"beforeSanitizeShadowDOM\",Z,null);At=Nt.nextNode();)Re(\"uponSanitizeShadowNode\",At,null),!Pe(At)&&(At.content instanceof i&&zt(At.content),$e(At));Re(\"afterSanitizeShadowDOM\",Z,null)};return e.sanitize=function(zt){var Z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},At,Nt,pe,Me,Le;if(Ft=!zt,Ft&&(zt=\"<!-->\"),typeof zt!=\"string\"&&!Be(zt)){if(typeof zt.toString!=\"function\")throw Jh(\"toString is not a function\");if(zt=zt.toString(),typeof zt!=\"string\")throw Jh(\"dirty is not a string, aborting\")}if(!e.isSupported){if(Ii(t.toStaticHTML)===\"object\"||typeof t.toStaticHTML==\"function\"){if(typeof zt==\"string\")return t.toStaticHTML(zt);if(Be(zt))return t.toStaticHTML(zt.outerHTML)}return zt}if(J||fe(Z),e.removed=[],typeof zt==\"string\"&&(Et=!1),Et){if(zt.nodeName){var We=at(zt.nodeName);if(!rt[We]||Ot[We])throw Jh(\"root node is forbidden and cannot be sanitized in-place\")}}else if(zt instanceof a)At=Xr(\"<!---->\"),Nt=At.ownerDocument.importNode(zt,!0),Nt.nodeType===1&&Nt.nodeName===\"BODY\"||Nt.nodeName===\"HTML\"?At=Nt:At.appendChild(Nt);else{if(!ht&&!O&&!A&&zt.indexOf(\"<\")===-1)return V&&Yt?V.createHTML(zt):zt;if(At=Xr(zt),!At)return ht?null:Yt?H:\"\"}At&&C&&Jt(At.firstChild);for(var ve=De(Et?zt:At);pe=ve.nextNode();)pe.nodeType===3&&pe===Me||Pe(pe)||(pe.content instanceof i&&ar(pe.content),$e(pe),Me=pe);if(Me=null,Et)return zt;if(ht){if(U)for(Le=N.call(At.ownerDocument);At.firstChild;)Le.appendChild(At.firstChild);else Le=At;return ut.shadowroot&&(Le=w.call(r,Le,!0)),Le}var Ne=A?At.outerHTML:At.innerHTML;return A&&rt[\"!doctype\"]&&At.ownerDocument&&At.ownerDocument.doctype&&At.ownerDocument.doctype.name&&Dr(s8,At.ownerDocument.doctype.name)&&(Ne=\"<!DOCTYPE \"+At.ownerDocument.doctype.name+`>\n`+Ne),O&&(Ne=gn(Ne,m,\" \"),Ne=gn(Ne,Q,\" \"),Ne=gn(Ne,x,\" \")),V&&Yt?V.createHTML(Ne):Ne},e.setConfig=function(zt){fe(zt),J=!0},e.clearConfig=function(){ie=null,J=!1},e.isValidAttribute=function(zt,Z,At){ie||fe({});var Nt=at(zt),pe=at(Z);return Ye(Nt,pe,At)},e.addHook=function(zt,Z){typeof Z==\"function\"&&(M[zt]=M[zt]||[],no(M[zt],Z))},e.removeHook=function(zt){if(M[zt])return j2(M[zt])},e.removeHooks=function(zt){M[zt]&&(M[zt]=[])},e.removeAllHooks=function(){M={}},e}var io=Q2();const l8=t=>t?ep(t).replace(/\\\\n/g,\"#br#\").split(\"#br#\"):[\"\"],J2=t=>io.sanitize(t),tp=(t,e)=>{var r;if(((r=e.flowchart)==null?void 0:r.htmlLabels)!==!1){const n=e.securityLevel;n===\"antiscript\"||n===\"strict\"?t=J2(t):n!==\"loose\"&&(t=ep(t),t=t.replace(/</g,\"<\").replace(/>/g,\">\"),t=t.replace(/=/g,\"=\"),t=d8(t))}return t},yn=(t,e)=>t&&(e.dompurifyConfig?t=io.sanitize(tp(t,e),e.dompurifyConfig).toString():t=io.sanitize(tp(t,e),{FORBID_TAGS:[\"style\"]}).toString(),t),c8=(t,e)=>typeof t==\"string\"?yn(t,e):t.flat().map(r=>yn(r,e)),tc=/<br\\s*\\/?>/gi,u8=t=>tc.test(t),h8=t=>t.split(tc),d8=t=>t.replace(/#br#/g,\"<br/>\"),ep=t=>t.replace(tc,\"#br#\"),f8=t=>{let e=\"\";return t&&(e=window.location.protocol+\"//\"+window.location.host+window.location.pathname+window.location.search,e=e.replaceAll(/\\(/g,\"\\\\(\"),e=e.replaceAll(/\\)/g,\"\\\\)\")),e},pr=t=>!(t===!1||[\"false\",\"null\",\"0\"].includes(String(t).trim().toLowerCase())),Oi=function(t){let e=t;return t.includes(\"~\")?(e=e.replace(/~([^~].*)/,\"<$1\"),e=e.replace(/~([^~]*)$/,\">$1\"),Oi(e)):e},he={getRows:l8,sanitizeText:yn,sanitizeTextOrArray:c8,hasBreaks:u8,splitBreaks:h8,lineBreakRegex:tc,removeScript:J2,getUrl:f8,evaluate:pr},ec={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:t=>t>=255?255:t<0?0:t,g:t=>t>=255?255:t<0?0:t,b:t=>t>=255?255:t<0?0:t,h:t=>t%360,s:t=>t>=100?100:t<0?0:t,l:t=>t>=100?100:t<0?0:t,a:t=>t>=1?1:t<0?0:t},toLinear:t=>{const e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},hue2rgb:(t,e,r)=>(r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+(e-t)*6*r:r<1/2?e:r<2/3?t+(e-t)*(2/3-r)*6:t),hsl2rgb:({h:t,s:e,l:r},n)=>{if(!e)return r*2.55;t/=360,e/=100,r/=100;const i=r<.5?r*(1+e):r+e-r*e,s=2*r-i;switch(n){case\"r\":return ec.hue2rgb(s,i,t+1/3)*255;case\"g\":return ec.hue2rgb(s,i,t)*255;case\"b\":return ec.hue2rgb(s,i,t-1/3)*255}},rgb2hsl:({r:t,g:e,b:r},n)=>{t/=255,e/=255,r/=255;const i=Math.max(t,e,r),s=Math.min(t,e,r),a=(i+s)/2;if(n===\"l\")return a*100;if(i===s)return 0;const o=i-s,l=a>.5?o/(2-i-s):o/(i+s);if(n===\"s\")return l*100;switch(i){case t:return((e-r)/o+(e<r?6:0))*60;case e:return((r-t)/o+2)*60;case r:return((t-e)/o+4)*60;default:return-1}}},xe={channel:ec,lang:{clamp:(t,e,r)=>e>r?Math.min(e,Math.max(r,t)):Math.min(r,Math.max(e,t)),round:t=>Math.round(t*1e10)/1e10},unit:{dec2hex:t=>{const e=Math.round(t).toString(16);return e.length>1?e:`0${e}`}}},Ri={};for(let t=0;t<=255;t++)Ri[t]=xe.unit.dec2hex(t);const wr={ALL:0,RGB:1,HSL:2};class p8{constructor(){this.type=wr.ALL}get(){return this.type}set(e){if(this.type&&this.type!==e)throw new Error(\"Cannot change both RGB and HSL channels at the same time\");this.type=e}reset(){this.type=wr.ALL}is(e){return this.type===e}}const g8=p8;class y8{constructor(e,r){this.color=r,this.changed=!1,this.data=e,this.type=new g8}set(e,r){return this.color=r,this.changed=!1,this.data=e,this.type.type=wr.ALL,this}_ensureHSL(){const e=this.data,{h:r,s:n,l:i}=e;r===void 0&&(e.h=xe.channel.rgb2hsl(e,\"h\")),n===void 0&&(e.s=xe.channel.rgb2hsl(e,\"s\")),i===void 0&&(e.l=xe.channel.rgb2hsl(e,\"l\"))}_ensureRGB(){const e=this.data,{r,g:n,b:i}=e;r===void 0&&(e.r=xe.channel.hsl2rgb(e,\"r\")),n===void 0&&(e.g=xe.channel.hsl2rgb(e,\"g\")),i===void 0&&(e.b=xe.channel.hsl2rgb(e,\"b\"))}get r(){const e=this.data,r=e.r;return!this.type.is(wr.HSL)&&r!==void 0?r:(this._ensureHSL(),xe.channel.hsl2rgb(e,\"r\"))}get g(){const e=this.data,r=e.g;return!this.type.is(wr.HSL)&&r!==void 0?r:(this._ensureHSL(),xe.channel.hsl2rgb(e,\"g\"))}get b(){const e=this.data,r=e.b;return!this.type.is(wr.HSL)&&r!==void 0?r:(this._ensureHSL(),xe.channel.hsl2rgb(e,\"b\"))}get h(){const e=this.data,r=e.h;return!this.type.is(wr.RGB)&&r!==void 0?r:(this._ensureRGB(),xe.channel.rgb2hsl(e,\"h\"))}get s(){const e=this.data,r=e.s;return!this.type.is(wr.RGB)&&r!==void 0?r:(this._ensureRGB(),xe.channel.rgb2hsl(e,\"s\"))}get l(){const e=this.data,r=e.l;return!this.type.is(wr.RGB)&&r!==void 0?r:(this._ensureRGB(),xe.channel.rgb2hsl(e,\"l\"))}get a(){return this.data.a}set r(e){this.type.set(wr.RGB),this.changed=!0,this.data.r=e}set g(e){this.type.set(wr.RGB),this.changed=!0,this.data.g=e}set b(e){this.type.set(wr.RGB),this.changed=!0,this.data.b=e}set h(e){this.type.set(wr.HSL),this.changed=!0,this.data.h=e}set s(e){this.type.set(wr.HSL),this.changed=!0,this.data.s=e}set l(e){this.type.set(wr.HSL),this.changed=!0,this.data.l=e}set a(e){this.changed=!0,this.data.a=e}}const m8=y8,rc=new m8({r:0,g:0,b:0,a:0},\"transparent\"),rp={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(t.charCodeAt(0)!==35)return;const e=t.match(rp.re);if(!e)return;const r=e[1],n=parseInt(r,16),i=r.length,s=i%4===0,a=i>4,o=a?1:17,l=a?8:4,u=s?0:-1,d=a?255:15;return rc.set({r:(n>>l*(u+3)&d)*o,g:(n>>l*(u+2)&d)*o,b:(n>>l*(u+1)&d)*o,a:s?(n&d)*o/255:1},t)},stringify:t=>{const{r:e,g:r,b:n,a:i}=t;return i<1?`#${Ri[Math.round(e)]}${Ri[Math.round(r)]}${Ri[Math.round(n)]}${Ri[Math.round(i*255)]}`:`#${Ri[Math.round(e)]}${Ri[Math.round(r)]}${Ri[Math.round(n)]}`}},so=rp,nc={re:/^hsla?\\(\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?(?:deg|grad|rad|turn)?)\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?%)\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?%)(?:\\s*?(?:,|\\/)\\s*?\\+?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?(%)?))?\\s*?\\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:t=>{const e=t.match(nc.hueRe);if(e){const[,r,n]=e;switch(n){case\"grad\":return xe.channel.clamp.h(parseFloat(r)*.9);case\"rad\":return xe.channel.clamp.h(parseFloat(r)*180/Math.PI);case\"turn\":return xe.channel.clamp.h(parseFloat(r)*360)}}return xe.channel.clamp.h(parseFloat(t))},parse:t=>{const e=t.charCodeAt(0);if(e!==104&&e!==72)return;const r=t.match(nc.re);if(!r)return;const[,n,i,s,a,o]=r;return rc.set({h:nc._hue2deg(n),s:xe.channel.clamp.s(parseFloat(i)),l:xe.channel.clamp.l(parseFloat(s)),a:a?xe.channel.clamp.a(o?parseFloat(a)/100:parseFloat(a)):1},t)},stringify:t=>{const{h:e,s:r,l:n,a:i}=t;return i<1?`hsla(${xe.lang.round(e)}, ${xe.lang.round(r)}%, ${xe.lang.round(n)}%, ${i})`:`hsl(${xe.lang.round(e)}, ${xe.lang.round(r)}%, ${xe.lang.round(n)}%)`}},ic=nc,sc={colors:{aliceblue:\"#f0f8ff\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",aquamarine:\"#7fffd4\",azure:\"#f0ffff\",beige:\"#f5f5dc\",bisque:\"#ffe4c4\",black:\"#000000\",blanchedalmond:\"#ffebcd\",blue:\"#0000ff\",blueviolet:\"#8a2be2\",brown:\"#a52a2a\",burlywood:\"#deb887\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff7f50\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cyanaqua:\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9a9a9\",darkgreen:\"#006400\",darkgrey:\"#a9a9a9\",darkkhaki:\"#bdb76b\",darkmagenta:\"#8b008b\",darkolivegreen:\"#556b2f\",darkorange:\"#ff8c00\",darkorchid:\"#9932cc\",darkred:\"#8b0000\",darksalmon:\"#e9967a\",darkseagreen:\"#8fbc8f\",darkslateblue:\"#483d8b\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\",darkturquoise:\"#00ced1\",darkviolet:\"#9400d3\",deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",dimgray:\"#696969\",dimgrey:\"#696969\",dodgerblue:\"#1e90ff\",firebrick:\"#b22222\",floralwhite:\"#fffaf0\",forestgreen:\"#228b22\",fuchsia:\"#ff00ff\",gainsboro:\"#dcdcdc\",ghostwhite:\"#f8f8ff\",gold:\"#ffd700\",goldenrod:\"#daa520\",gray:\"#808080\",green:\"#008000\",greenyellow:\"#adff2f\",grey:\"#808080\",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",ivory:\"#fffff0\",khaki:\"#f0e68c\",lavender:\"#e6e6fa\",lavenderblush:\"#fff0f5\",lawngreen:\"#7cfc00\",lemonchiffon:\"#fffacd\",lightblue:\"#add8e6\",lightcoral:\"#f08080\",lightcyan:\"#e0ffff\",lightgoldenrodyellow:\"#fafad2\",lightgray:\"#d3d3d3\",lightgreen:\"#90ee90\",lightgrey:\"#d3d3d3\",lightpink:\"#ffb6c1\",lightsalmon:\"#ffa07a\",lightseagreen:\"#20b2aa\",lightskyblue:\"#87cefa\",lightslategray:\"#778899\",lightslategrey:\"#778899\",lightsteelblue:\"#b0c4de\",lightyellow:\"#ffffe0\",lime:\"#00ff00\",limegreen:\"#32cd32\",linen:\"#faf0e6\",magenta:\"#ff00ff\",maroon:\"#800000\",mediumaquamarine:\"#66cdaa\",mediumblue:\"#0000cd\",mediumorchid:\"#ba55d3\",mediumpurple:\"#9370db\",mediumseagreen:\"#3cb371\",mediumslateblue:\"#7b68ee\",mediumspringgreen:\"#00fa9a\",mediumturquoise:\"#48d1cc\",mediumvioletred:\"#c71585\",midnightblue:\"#191970\",mintcream:\"#f5fffa\",mistyrose:\"#ffe4e1\",moccasin:\"#ffe4b5\",navajowhite:\"#ffdead\",navy:\"#000080\",oldlace:\"#fdf5e6\",olive:\"#808000\",olivedrab:\"#6b8e23\",orange:\"#ffa500\",orangered:\"#ff4500\",orchid:\"#da70d6\",palegoldenrod:\"#eee8aa\",palegreen:\"#98fb98\",paleturquoise:\"#afeeee\",palevioletred:\"#db7093\",papayawhip:\"#ffefd5\",peachpuff:\"#ffdab9\",peru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"#dda0dd\",powderblue:\"#b0e0e6\",purple:\"#800080\",rebeccapurple:\"#663399\",red:\"#ff0000\",rosybrown:\"#bc8f8f\",royalblue:\"#4169e1\",saddlebrown:\"#8b4513\",salmon:\"#fa8072\",sandybrown:\"#f4a460\",seagreen:\"#2e8b57\",seashell:\"#fff5ee\",sienna:\"#a0522d\",silver:\"#c0c0c0\",skyblue:\"#87ceeb\",slateblue:\"#6a5acd\",slategray:\"#708090\",slategrey:\"#708090\",snow:\"#fffafa\",springgreen:\"#00ff7f\",tan:\"#d2b48c\",teal:\"#008080\",thistle:\"#d8bfd8\",transparent:\"#00000000\",turquoise:\"#40e0d0\",violet:\"#ee82ee\",wheat:\"#f5deb3\",white:\"#ffffff\",whitesmoke:\"#f5f5f5\",yellow:\"#ffff00\",yellowgreen:\"#9acd32\"},parse:t=>{t=t.toLowerCase();const e=sc.colors[t];if(!!e)return so.parse(e)},stringify:t=>{const e=so.stringify(t);for(const r in sc.colors)if(sc.colors[r]===e)return r}},np=sc,ip={re:/^rgba?\\(\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?))\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?))\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?))(?:\\s*?(?:,|\\/)\\s*?\\+?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?)))?\\s*?\\)$/i,parse:t=>{const e=t.charCodeAt(0);if(e!==114&&e!==82)return;const r=t.match(ip.re);if(!r)return;const[,n,i,s,a,o,l,u,d]=r;return rc.set({r:xe.channel.clamp.r(i?parseFloat(n)*2.55:parseFloat(n)),g:xe.channel.clamp.g(a?parseFloat(s)*2.55:parseFloat(s)),b:xe.channel.clamp.b(l?parseFloat(o)*2.55:parseFloat(o)),a:u?xe.channel.clamp.a(d?parseFloat(u)/100:parseFloat(u)):1},t)},stringify:t=>{const{r:e,g:r,b:n,a:i}=t;return i<1?`rgba(${xe.lang.round(e)}, ${xe.lang.round(r)}, ${xe.lang.round(n)}, ${xe.lang.round(i)})`:`rgb(${xe.lang.round(e)}, ${xe.lang.round(r)}, ${xe.lang.round(n)})`}},ac=ip,ai={format:{keyword:np,hex:so,rgb:ac,rgba:ac,hsl:ic,hsla:ic},parse:t=>{if(typeof t!=\"string\")return t;const e=so.parse(t)||ac.parse(t)||ic.parse(t)||np.parse(t);if(e)return e;throw new Error(`Unsupported color format: \"${t}\"`)},stringify:t=>!t.changed&&t.color?t.color:t.type.is(wr.HSL)||t.data.r===void 0?ic.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?ac.stringify(t):so.stringify(t)},sp=(t,e)=>{const r=ai.parse(t);for(const n in e)r[n]=xe.channel.clamp[n](e[n]);return ai.stringify(r)},ao=(t,e,r=0,n=1)=>{if(typeof t!=\"number\")return sp(t,{a:e});const i=rc.set({r:xe.channel.clamp.r(t),g:xe.channel.clamp.g(e),b:xe.channel.clamp.b(r),a:xe.channel.clamp.a(n)});return ai.stringify(i)},ap=(t,e,r)=>{const n=ai.parse(t),i=n[e],s=xe.channel.clamp[e](i+r);return i!==s&&(n[e]=s),ai.stringify(n)},ne=(t,e)=>ap(t,\"l\",e),de=(t,e)=>ap(t,\"l\",-e),yt=(t,e)=>{const r=ai.parse(t),n={};for(const i in e)!e[i]||(n[i]=r[i]+e[i]);return sp(t,n)},b8=(t,e,r=50)=>{const{r:n,g:i,b:s,a}=ai.parse(t),{r:o,g:l,b:u,a:d}=ai.parse(e),f=r/100,p=f*2-1,g=a-d,k=((p*g===-1?p:(p+g)/(1+p*g))+1)/2,T=1-k,L=n*k+o*T,E=i*k+l*T,I=s*k+u*T,V=a*f+d*(1-f);return ao(L,E,I,V)},Wt=(t,e=100)=>{const r=ai.parse(t);return r.r=255-r.r,r.g=255-r.g,r.b=255-r.b,b8(r,t,e)},Mr=(t,e)=>e?yt(t,{s:-40,l:10}):yt(t,{s:-40,l:-10}),oc=\"#ffffff\",lc=\"#f2f2f2\";class _8{constructor(){this.background=\"#f4f4f4\",this.darkMode=!1,this.primaryColor=\"#fff4dd\",this.noteBkgColor=\"#fff5ad\",this.noteTextColor=\"#333\",this.THEME_COLOR_LIMIT=12,this.fontFamily='\"trebuchet ms\", verdana, arial, sans-serif',this.fontSize=\"16px\"}updateColors(){if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?\"#eee\":\"#333\"),this.secondaryColor=this.secondaryColor||yt(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||yt(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Mr(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Mr(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Mr(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Mr(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||\"#fff5ad\",this.noteTextColor=this.noteTextColor||\"#333\",this.secondaryTextColor=this.secondaryTextColor||Wt(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||Wt(this.tertiaryColor),this.lineColor=this.lineColor||Wt(this.background),this.textColor=this.textColor||this.primaryTextColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?de(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||\"grey\",this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||de(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||Wt(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||\"white\",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||\"#eeeeee\",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||ne(this.primaryColor,23),this.gridColor=this.gridColor||\"lightgrey\",this.doneTaskBkgColor=this.doneTaskBkgColor||\"lightgrey\",this.doneTaskBorderColor=this.doneTaskBorderColor||\"grey\",this.critBorderColor=this.critBorderColor||\"#ff8888\",this.critBkgColor=this.critBkgColor||\"red\",this.todayLineColor=this.todayLineColor||\"red\",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||\"#003163\",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||yt(this.primaryColor,{h:30}),this.cScale4=this.cScale4||yt(this.primaryColor,{h:60}),this.cScale5=this.cScale5||yt(this.primaryColor,{h:90}),this.cScale6=this.cScale6||yt(this.primaryColor,{h:120}),this.cScale7=this.cScale7||yt(this.primaryColor,{h:150}),this.cScale8=this.cScale8||yt(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||yt(this.primaryColor,{h:270}),this.cScale10=this.cScale10||yt(this.primaryColor,{h:300}),this.cScale11=this.cScale11||yt(this.primaryColor,{h:330}),this.darkMode)for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this[\"cScale\"+e]=de(this[\"cScale\"+e],75);else for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this[\"cScale\"+e]=de(this[\"cScale\"+e],25);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this[\"cScaleInv\"+e]=this[\"cScaleInv\"+e]||Wt(this[\"cScale\"+e]);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this.darkMode?this[\"cScalePeer\"+e]=this[\"cScalePeer\"+e]||ne(this[\"cScale\"+e],10):this[\"cScalePeer\"+e]=this[\"cScalePeer\"+e]||de(this[\"cScale\"+e],10);this.scaleLabelColor=this.scaleLabelColor||this.labelTextColor;for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this[\"cScaleLabel\"+e]=this[\"cScaleLabel\"+e]||this.scaleLabelColor;this.classText=this.classText||this.textColor,this.fillType0=this.fillType0||this.primaryColor,this.fillType1=this.fillType1||this.secondaryColor,this.fillType2=this.fillType2||yt(this.primaryColor,{h:64}),this.fillType3=this.fillType3||yt(this.secondaryColor,{h:64}),this.fillType4=this.fillType4||yt(this.primaryColor,{h:-64}),this.fillType5=this.fillType5||yt(this.secondaryColor,{h:-64}),this.fillType6=this.fillType6||yt(this.primaryColor,{h:128}),this.fillType7=this.fillType7||yt(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||this.tertiaryColor,this.pie4=this.pie4||yt(this.primaryColor,{l:-10}),this.pie5=this.pie5||yt(this.secondaryColor,{l:-10}),this.pie6=this.pie6||yt(this.tertiaryColor,{l:-10}),this.pie7=this.pie7||yt(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||yt(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||yt(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||yt(this.primaryColor,{h:60,l:-20}),this.pie11=this.pie11||yt(this.primaryColor,{h:-60,l:-20}),this.pie12=this.pie12||yt(this.primaryColor,{h:120,l:-10}),this.pieTitleTextSize=this.pieTitleTextSize||\"25px\",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||\"17px\",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||\"17px\",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||\"black\",this.pieStrokeWidth=this.pieStrokeWidth||\"2px\",this.pieOpacity=this.pieOpacity||\"0.7\",this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?de(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||yt(this.primaryColor,{h:-30}),this.git4=this.git4||yt(this.primaryColor,{h:-60}),this.git5=this.git5||yt(this.primaryColor,{h:-90}),this.git6=this.git6||yt(this.primaryColor,{h:60}),this.git7=this.git7||yt(this.primaryColor,{h:120}),this.darkMode?(this.git0=ne(this.git0,25),this.git1=ne(this.git1,25),this.git2=ne(this.git2,25),this.git3=ne(this.git3,25),this.git4=ne(this.git4,25),this.git5=ne(this.git5,25),this.git6=ne(this.git6,25),this.git7=ne(this.git7,25)):(this.git0=de(this.git0,25),this.git1=de(this.git1,25),this.git2=de(this.git2,25),this.git3=de(this.git3,25),this.git4=de(this.git4,25),this.git5=de(this.git5,25),this.git6=de(this.git6,25),this.git7=de(this.git7,25)),this.gitInv0=this.gitInv0||Wt(this.git0),this.gitInv1=this.gitInv1||Wt(this.git1),this.gitInv2=this.gitInv2||Wt(this.git2),this.gitInv3=this.gitInv3||Wt(this.git3),this.gitInv4=this.gitInv4||Wt(this.git4),this.gitInv5=this.gitInv5||Wt(this.git5),this.gitInv6=this.gitInv6||Wt(this.git6),this.gitInv7=this.gitInv7||Wt(this.git7),this.branchLabelColor=this.branchLabelColor||(this.darkMode?\"black\":this.labelTextColor),this.gitBranchLabel0=this.gitBranchLabel0||this.branchLabelColor,this.gitBranchLabel1=this.gitBranchLabel1||this.branchLabelColor,this.gitBranchLabel2=this.gitBranchLabel2||this.branchLabelColor,this.gitBranchLabel3=this.gitBranchLabel3||this.branchLabelColor,this.gitBranchLabel4=this.gitBranchLabel4||this.branchLabelColor,this.gitBranchLabel5=this.gitBranchLabel5||this.branchLabelColor,this.gitBranchLabel6=this.gitBranchLabel6||this.branchLabelColor,this.gitBranchLabel7=this.gitBranchLabel7||this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||\"10px\",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||\"10px\",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||oc,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||lc}calculate(e){if(typeof e!=\"object\"){this.updateColors();return}const r=Object.keys(e);r.forEach(n=>{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}}const x8=t=>{const e=new _8;return e.calculate(t),e};class v8{constructor(){this.background=\"#333\",this.primaryColor=\"#1f2020\",this.secondaryColor=ne(this.primaryColor,16),this.tertiaryColor=yt(this.primaryColor,{h:-160}),this.primaryBorderColor=Wt(this.background),this.secondaryBorderColor=Mr(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Mr(this.tertiaryColor,this.darkMode),this.primaryTextColor=Wt(this.primaryColor),this.secondaryTextColor=Wt(this.secondaryColor),this.tertiaryTextColor=Wt(this.tertiaryColor),this.lineColor=Wt(this.background),this.textColor=Wt(this.background),this.mainBkg=\"#1f2020\",this.secondBkg=\"calculated\",this.mainContrastColor=\"lightgrey\",this.darkTextColor=ne(Wt(\"#323D47\"),10),this.lineColor=\"calculated\",this.border1=\"#81B1DB\",this.border2=ao(255,255,255,.25),this.arrowheadColor=\"calculated\",this.fontFamily='\"trebuchet ms\", verdana, arial, sans-serif',this.fontSize=\"16px\",this.labelBackground=\"#181818\",this.textColor=\"#ccc\",this.THEME_COLOR_LIMIT=12,this.nodeBkg=\"calculated\",this.nodeBorder=\"calculated\",this.clusterBkg=\"calculated\",this.clusterBorder=\"calculated\",this.defaultLinkColor=\"calculated\",this.titleColor=\"#F9FFFE\",this.edgeLabelBackground=\"calculated\",this.actorBorder=\"calculated\",this.actorBkg=\"calculated\",this.actorTextColor=\"calculated\",this.actorLineColor=\"calculated\",this.signalColor=\"calculated\",this.signalTextColor=\"calculated\",this.labelBoxBkgColor=\"calculated\",this.labelBoxBorderColor=\"calculated\",this.labelTextColor=\"calculated\",this.loopTextColor=\"calculated\",this.noteBorderColor=\"calculated\",this.noteBkgColor=\"#fff5ad\",this.noteTextColor=\"calculated\",this.activationBorderColor=\"calculated\",this.activationBkgColor=\"calculated\",this.sequenceNumberColor=\"black\",this.sectionBkgColor=de(\"#EAE8D9\",30),this.altSectionBkgColor=\"calculated\",this.sectionBkgColor2=\"#EAE8D9\",this.taskBorderColor=ao(255,255,255,70),this.taskBkgColor=\"calculated\",this.taskTextColor=\"calculated\",this.taskTextLightColor=\"calculated\",this.taskTextOutsideColor=\"calculated\",this.taskTextClickableColor=\"#003163\",this.activeTaskBorderColor=ao(255,255,255,50),this.activeTaskBkgColor=\"#81B1DB\",this.gridColor=\"calculated\",this.doneTaskBkgColor=\"calculated\",this.doneTaskBorderColor=\"grey\",this.critBorderColor=\"#E83737\",this.critBkgColor=\"#E83737\",this.taskTextDarkColor=\"calculated\",this.todayLineColor=\"#DB5757\",this.personBorder=\"calculated\",this.personBkg=\"calculated\",this.labelColor=\"calculated\",this.errorBkgColor=\"#a44141\",this.errorTextColor=\"#ddd\"}updateColors(){this.secondBkg=ne(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=ne(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.mainContrastColor,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=ne(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||\"#555\",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor=\"#f4f4f4\",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=yt(this.primaryColor,{h:64}),this.fillType3=yt(this.secondaryColor,{h:64}),this.fillType4=yt(this.primaryColor,{h:-64}),this.fillType5=yt(this.secondaryColor,{h:-64}),this.fillType6=yt(this.primaryColor,{h:128}),this.fillType7=yt(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||\"#0b0000\",this.cScale2=this.cScale2||\"#4d1037\",this.cScale3=this.cScale3||\"#3f5258\",this.cScale4=this.cScale4||\"#4f2f1b\",this.cScale5=this.cScale5||\"#6e0a0a\",this.cScale6=this.cScale6||\"#3b0048\",this.cScale7=this.cScale7||\"#995a01\",this.cScale8=this.cScale8||\"#154706\",this.cScale9=this.cScale9||\"#161722\",this.cScale10=this.cScale10||\"#00296f\",this.cScale11=this.cScale11||\"#01629c\",this.cScale12=this.cScale12||\"#010029\",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||yt(this.primaryColor,{h:30}),this.cScale4=this.cScale4||yt(this.primaryColor,{h:60}),this.cScale5=this.cScale5||yt(this.primaryColor,{h:90}),this.cScale6=this.cScale6||yt(this.primaryColor,{h:120}),this.cScale7=this.cScale7||yt(this.primaryColor,{h:150}),this.cScale8=this.cScale8||yt(this.primaryColor,{h:210}),this.cScale9=this.cScale9||yt(this.primaryColor,{h:270}),this.cScale10=this.cScale10||yt(this.primaryColor,{h:300}),this.cScale11=this.cScale11||yt(this.primaryColor,{h:330});for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this[\"cScaleInv\"+e]=this[\"cScaleInv\"+e]||Wt(this[\"cScale\"+e]);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this[\"cScalePeer\"+e]=this[\"cScalePeer\"+e]||ne(this[\"cScale\"+e],10);this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?\"black\":this.labelTextColor);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this[\"cScaleLabel\"+e]=this[\"cScaleLabel\"+e]||this.scaleLabelColor;for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this[\"pie\"+e]=this[\"cScale\"+e];this.pieTitleTextSize=this.pieTitleTextSize||\"25px\",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||\"17px\",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||\"17px\",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||\"black\",this.pieStrokeWidth=this.pieStrokeWidth||\"2px\",this.pieOpacity=this.pieOpacity||\"0.7\",this.classText=this.primaryTextColor,this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?de(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=ne(this.secondaryColor,20),this.git1=ne(this.pie2||this.secondaryColor,20),this.git2=ne(this.pie3||this.tertiaryColor,20),this.git3=ne(this.pie4||yt(this.primaryColor,{h:-30}),20),this.git4=ne(this.pie5||yt(this.primaryColor,{h:-60}),20),this.git5=ne(this.pie6||yt(this.primaryColor,{h:-90}),10),this.git6=ne(this.pie7||yt(this.primaryColor,{h:60}),10),this.git7=ne(this.pie8||yt(this.primaryColor,{h:120}),20),this.gitInv0=this.gitInv0||Wt(this.git0),this.gitInv1=this.gitInv1||Wt(this.git1),this.gitInv2=this.gitInv2||Wt(this.git2),this.gitInv3=this.gitInv3||Wt(this.git3),this.gitInv4=this.gitInv4||Wt(this.git4),this.gitInv5=this.gitInv5||Wt(this.git5),this.gitInv6=this.gitInv6||Wt(this.git6),this.gitInv7=this.gitInv7||Wt(this.git7),this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||\"10px\",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||\"10px\",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||ne(this.background,12),this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||ne(this.background,2)}calculate(e){if(typeof e!=\"object\"){this.updateColors();return}const r=Object.keys(e);r.forEach(n=>{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}}const k8=t=>{const e=new v8;return e.calculate(t),e};class w8{constructor(){this.background=\"#f4f4f4\",this.primaryColor=\"#ECECFF\",this.secondaryColor=yt(this.primaryColor,{h:120}),this.secondaryColor=\"#ffffde\",this.tertiaryColor=yt(this.primaryColor,{h:-160}),this.primaryBorderColor=Mr(this.primaryColor,this.darkMode),this.secondaryBorderColor=Mr(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Mr(this.tertiaryColor,this.darkMode),this.primaryTextColor=Wt(this.primaryColor),this.secondaryTextColor=Wt(this.secondaryColor),this.tertiaryTextColor=Wt(this.tertiaryColor),this.lineColor=Wt(this.background),this.textColor=Wt(this.background),this.background=\"white\",this.mainBkg=\"#ECECFF\",this.secondBkg=\"#ffffde\",this.lineColor=\"#333333\",this.border1=\"#9370DB\",this.border2=\"#aaaa33\",this.arrowheadColor=\"#333333\",this.fontFamily='\"trebuchet ms\", verdana, arial, sans-serif',this.fontSize=\"16px\",this.labelBackground=\"#e8e8e8\",this.textColor=\"#333\",this.THEME_COLOR_LIMIT=12,this.nodeBkg=\"calculated\",this.nodeBorder=\"calculated\",this.clusterBkg=\"calculated\",this.clusterBorder=\"calculated\",this.defaultLinkColor=\"calculated\",this.titleColor=\"calculated\",this.edgeLabelBackground=\"calculated\",this.actorBorder=\"calculated\",this.actorBkg=\"calculated\",this.actorTextColor=\"black\",this.actorLineColor=\"grey\",this.signalColor=\"calculated\",this.signalTextColor=\"calculated\",this.labelBoxBkgColor=\"calculated\",this.labelBoxBorderColor=\"calculated\",this.labelTextColor=\"calculated\",this.loopTextColor=\"calculated\",this.noteBorderColor=\"calculated\",this.noteBkgColor=\"#fff5ad\",this.noteTextColor=\"calculated\",this.activationBorderColor=\"#666\",this.activationBkgColor=\"#f4f4f4\",this.sequenceNumberColor=\"white\",this.sectionBkgColor=\"calculated\",this.altSectionBkgColor=\"calculated\",this.sectionBkgColor2=\"calculated\",this.excludeBkgColor=\"#eeeeee\",this.taskBorderColor=\"calculated\",this.taskBkgColor=\"calculated\",this.taskTextLightColor=\"calculated\",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor=\"calculated\",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor=\"calculated\",this.activeTaskBorderColor=\"calculated\",this.activeTaskBkgColor=\"calculated\",this.gridColor=\"calculated\",this.doneTaskBkgColor=\"calculated\",this.doneTaskBorderColor=\"calculated\",this.critBorderColor=\"calculated\",this.critBkgColor=\"calculated\",this.todayLineColor=\"calculated\",this.sectionBkgColor=ao(102,102,255,.49),this.altSectionBkgColor=\"white\",this.sectionBkgColor2=\"#fff400\",this.taskBorderColor=\"#534fbc\",this.taskBkgColor=\"#8a90dd\",this.taskTextLightColor=\"white\",this.taskTextColor=\"calculated\",this.taskTextDarkColor=\"black\",this.taskTextOutsideColor=\"calculated\",this.taskTextClickableColor=\"#003163\",this.activeTaskBorderColor=\"#534fbc\",this.activeTaskBkgColor=\"#bfc7ff\",this.gridColor=\"lightgrey\",this.doneTaskBkgColor=\"lightgrey\",this.doneTaskBorderColor=\"grey\",this.critBorderColor=\"#ff8888\",this.critBkgColor=\"red\",this.todayLineColor=\"red\",this.personBorder=\"calculated\",this.personBkg=\"calculated\",this.labelColor=\"black\",this.errorBkgColor=\"#552222\",this.errorTextColor=\"#552222\",this.updateColors()}updateColors(){this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||yt(this.primaryColor,{h:30}),this.cScale4=this.cScale4||yt(this.primaryColor,{h:60}),this.cScale5=this.cScale5||yt(this.primaryColor,{h:90}),this.cScale6=this.cScale6||yt(this.primaryColor,{h:120}),this.cScale7=this.cScale7||yt(this.primaryColor,{h:150}),this.cScale8=this.cScale8||yt(this.primaryColor,{h:210}),this.cScale9=this.cScale9||yt(this.primaryColor,{h:270}),this.cScale10=this.cScale10||yt(this.primaryColor,{h:300}),this.cScale11=this.cScale11||yt(this.primaryColor,{h:330}),this[\"cScalePeer\"+1]=this[\"cScalePeer\"+1]||de(this.secondaryColor,45),this[\"cScalePeer\"+2]=this[\"cScalePeer\"+2]||de(this.tertiaryColor,40);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this[\"cScale\"+e]=de(this[\"cScale\"+e],10),this[\"cScalePeer\"+e]=this[\"cScalePeer\"+e]||de(this[\"cScale\"+e],25);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this[\"cScaleInv\"+e]=this[\"cScaleInv\"+e]||yt(this[\"cScale\"+e],{h:180});if(this.scaleLabelColor=this.scaleLabelColor!==\"calculated\"&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor,this.labelTextColor!==\"calculated\"){this.cScaleLabel0=this.cScaleLabel0||Wt(this.labelTextColor),this.cScaleLabel3=this.cScaleLabel3||Wt(this.labelTextColor);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this[\"cScaleLabel\"+e]=this[\"cScaleLabel\"+e]||this.labelTextColor}this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.titleColor=this.textColor,this.edgeLabelBackground=this.labelBackground,this.actorBorder=ne(this.border1,23),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.signalColor=this.textColor,this.signalTextColor=this.textColor,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.taskTextColor=this.taskTextLightColor,this.taskTextOutsideColor=this.taskTextDarkColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||\"#f0f0f0\",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.specialStateColor=this.lineColor,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=yt(this.primaryColor,{h:64}),this.fillType3=yt(this.secondaryColor,{h:64}),this.fillType4=yt(this.primaryColor,{h:-64}),this.fillType5=yt(this.secondaryColor,{h:-64}),this.fillType6=yt(this.primaryColor,{h:128}),this.fillType7=yt(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||yt(this.tertiaryColor,{l:-40}),this.pie4=this.pie4||yt(this.primaryColor,{l:-10}),this.pie5=this.pie5||yt(this.secondaryColor,{l:-30}),this.pie6=this.pie6||yt(this.tertiaryColor,{l:-20}),this.pie7=this.pie7||yt(this.primaryColor,{h:60,l:-20}),this.pie8=this.pie8||yt(this.primaryColor,{h:-60,l:-40}),this.pie9=this.pie9||yt(this.primaryColor,{h:120,l:-40}),this.pie10=this.pie10||yt(this.primaryColor,{h:60,l:-40}),this.pie11=this.pie11||yt(this.primaryColor,{h:-90,l:-40}),this.pie12=this.pie12||yt(this.primaryColor,{h:120,l:-30}),this.pieTitleTextSize=this.pieTitleTextSize||\"25px\",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||\"17px\",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||\"17px\",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||\"black\",this.pieStrokeWidth=this.pieStrokeWidth||\"2px\",this.pieOpacity=this.pieOpacity||\"0.7\",this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.labelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||yt(this.primaryColor,{h:-30}),this.git4=this.git4||yt(this.primaryColor,{h:-60}),this.git5=this.git5||yt(this.primaryColor,{h:-90}),this.git6=this.git6||yt(this.primaryColor,{h:60}),this.git7=this.git7||yt(this.primaryColor,{h:120}),this.darkMode?(this.git0=ne(this.git0,25),this.git1=ne(this.git1,25),this.git2=ne(this.git2,25),this.git3=ne(this.git3,25),this.git4=ne(this.git4,25),this.git5=ne(this.git5,25),this.git6=ne(this.git6,25),this.git7=ne(this.git7,25)):(this.git0=de(this.git0,25),this.git1=de(this.git1,25),this.git2=de(this.git2,25),this.git3=de(this.git3,25),this.git4=de(this.git4,25),this.git5=de(this.git5,25),this.git6=de(this.git6,25),this.git7=de(this.git7,25)),this.gitInv0=this.gitInv0||de(Wt(this.git0),25),this.gitInv1=this.gitInv1||Wt(this.git1),this.gitInv2=this.gitInv2||Wt(this.git2),this.gitInv3=this.gitInv3||Wt(this.git3),this.gitInv4=this.gitInv4||Wt(this.git4),this.gitInv5=this.gitInv5||Wt(this.git5),this.gitInv6=this.gitInv6||Wt(this.git6),this.gitInv7=this.gitInv7||Wt(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||Wt(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||Wt(this.labelTextColor),this.gitBranchLabel4=this.gitBranchLabel4||this.labelTextColor,this.gitBranchLabel5=this.gitBranchLabel5||this.labelTextColor,this.gitBranchLabel6=this.gitBranchLabel6||this.labelTextColor,this.gitBranchLabel7=this.gitBranchLabel7||this.labelTextColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||\"10px\",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||\"10px\",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||oc,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||lc}calculate(e){if(typeof e!=\"object\"){this.updateColors();return}const r=Object.keys(e);r.forEach(n=>{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}}const T8=t=>{const e=new w8;return e.calculate(t),e};class E8{constructor(){this.background=\"#f4f4f4\",this.primaryColor=\"#cde498\",this.secondaryColor=\"#cdffb2\",this.background=\"white\",this.mainBkg=\"#cde498\",this.secondBkg=\"#cdffb2\",this.lineColor=\"green\",this.border1=\"#13540c\",this.border2=\"#6eaa49\",this.arrowheadColor=\"green\",this.fontFamily='\"trebuchet ms\", verdana, arial, sans-serif',this.fontSize=\"16px\",this.tertiaryColor=ne(\"#cde498\",10),this.primaryBorderColor=Mr(this.primaryColor,this.darkMode),this.secondaryBorderColor=Mr(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Mr(this.tertiaryColor,this.darkMode),this.primaryTextColor=Wt(this.primaryColor),this.secondaryTextColor=Wt(this.secondaryColor),this.tertiaryTextColor=Wt(this.primaryColor),this.lineColor=Wt(this.background),this.textColor=Wt(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg=\"calculated\",this.nodeBorder=\"calculated\",this.clusterBkg=\"calculated\",this.clusterBorder=\"calculated\",this.defaultLinkColor=\"calculated\",this.titleColor=\"#333\",this.edgeLabelBackground=\"#e8e8e8\",this.actorBorder=\"calculated\",this.actorBkg=\"calculated\",this.actorTextColor=\"black\",this.actorLineColor=\"grey\",this.signalColor=\"#333\",this.signalTextColor=\"#333\",this.labelBoxBkgColor=\"calculated\",this.labelBoxBorderColor=\"#326932\",this.labelTextColor=\"calculated\",this.loopTextColor=\"calculated\",this.noteBorderColor=\"calculated\",this.noteBkgColor=\"#fff5ad\",this.noteTextColor=\"calculated\",this.activationBorderColor=\"#666\",this.activationBkgColor=\"#f4f4f4\",this.sequenceNumberColor=\"white\",this.sectionBkgColor=\"#6eaa49\",this.altSectionBkgColor=\"white\",this.sectionBkgColor2=\"#6eaa49\",this.excludeBkgColor=\"#eeeeee\",this.taskBorderColor=\"calculated\",this.taskBkgColor=\"#487e3a\",this.taskTextLightColor=\"white\",this.taskTextColor=\"calculated\",this.taskTextDarkColor=\"black\",this.taskTextOutsideColor=\"calculated\",this.taskTextClickableColor=\"#003163\",this.activeTaskBorderColor=\"calculated\",this.activeTaskBkgColor=\"calculated\",this.gridColor=\"lightgrey\",this.doneTaskBkgColor=\"lightgrey\",this.doneTaskBorderColor=\"grey\",this.critBorderColor=\"#ff8888\",this.critBkgColor=\"red\",this.todayLineColor=\"red\",this.personBorder=\"calculated\",this.personBkg=\"calculated\",this.labelColor=\"black\",this.errorBkgColor=\"#552222\",this.errorTextColor=\"#552222\"}updateColors(){this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||yt(this.primaryColor,{h:30}),this.cScale4=this.cScale4||yt(this.primaryColor,{h:60}),this.cScale5=this.cScale5||yt(this.primaryColor,{h:90}),this.cScale6=this.cScale6||yt(this.primaryColor,{h:120}),this.cScale7=this.cScale7||yt(this.primaryColor,{h:150}),this.cScale8=this.cScale8||yt(this.primaryColor,{h:210}),this.cScale9=this.cScale9||yt(this.primaryColor,{h:270}),this.cScale10=this.cScale10||yt(this.primaryColor,{h:300}),this.cScale11=this.cScale11||yt(this.primaryColor,{h:330}),this[\"cScalePeer\"+1]=this[\"cScalePeer\"+1]||de(this.secondaryColor,45),this[\"cScalePeer\"+2]=this[\"cScalePeer\"+2]||de(this.tertiaryColor,40);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this[\"cScale\"+e]=de(this[\"cScale\"+e],10),this[\"cScalePeer\"+e]=this[\"cScalePeer\"+e]||de(this[\"cScale\"+e],25);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this[\"cScaleInv\"+e]=this[\"cScaleInv\"+e]||yt(this[\"cScale\"+e],{h:180});this.scaleLabelColor=this.scaleLabelColor!==\"calculated\"&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor;for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this[\"cScaleLabel\"+e]=this[\"cScaleLabel\"+e]||this.scaleLabelColor;this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.actorBorder=de(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.taskBorderColor=this.border1,this.taskTextColor=this.taskTextLightColor,this.taskTextOutsideColor=this.taskTextDarkColor,this.activeTaskBorderColor=this.taskBorderColor,this.activeTaskBkgColor=this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||\"#f0f0f0\",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor=this.lineColor,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=yt(this.primaryColor,{h:64}),this.fillType3=yt(this.secondaryColor,{h:64}),this.fillType4=yt(this.primaryColor,{h:-64}),this.fillType5=yt(this.secondaryColor,{h:-64}),this.fillType6=yt(this.primaryColor,{h:128}),this.fillType7=yt(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||this.tertiaryColor,this.pie4=this.pie4||yt(this.primaryColor,{l:-30}),this.pie5=this.pie5||yt(this.secondaryColor,{l:-30}),this.pie6=this.pie6||yt(this.tertiaryColor,{h:40,l:-40}),this.pie7=this.pie7||yt(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||yt(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||yt(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||yt(this.primaryColor,{h:60,l:-50}),this.pie11=this.pie11||yt(this.primaryColor,{h:-60,l:-50}),this.pie12=this.pie12||yt(this.primaryColor,{h:120,l:-50}),this.pieTitleTextSize=this.pieTitleTextSize||\"25px\",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||\"17px\",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||\"17px\",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||\"black\",this.pieStrokeWidth=this.pieStrokeWidth||\"2px\",this.pieOpacity=this.pieOpacity||\"0.7\",this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.edgeLabelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||yt(this.primaryColor,{h:-30}),this.git4=this.git4||yt(this.primaryColor,{h:-60}),this.git5=this.git5||yt(this.primaryColor,{h:-90}),this.git6=this.git6||yt(this.primaryColor,{h:60}),this.git7=this.git7||yt(this.primaryColor,{h:120}),this.darkMode?(this.git0=ne(this.git0,25),this.git1=ne(this.git1,25),this.git2=ne(this.git2,25),this.git3=ne(this.git3,25),this.git4=ne(this.git4,25),this.git5=ne(this.git5,25),this.git6=ne(this.git6,25),this.git7=ne(this.git7,25)):(this.git0=de(this.git0,25),this.git1=de(this.git1,25),this.git2=de(this.git2,25),this.git3=de(this.git3,25),this.git4=de(this.git4,25),this.git5=de(this.git5,25),this.git6=de(this.git6,25),this.git7=de(this.git7,25)),this.gitInv0=this.gitInv0||Wt(this.git0),this.gitInv1=this.gitInv1||Wt(this.git1),this.gitInv2=this.gitInv2||Wt(this.git2),this.gitInv3=this.gitInv3||Wt(this.git3),this.gitInv4=this.gitInv4||Wt(this.git4),this.gitInv5=this.gitInv5||Wt(this.git5),this.gitInv6=this.gitInv6||Wt(this.git6),this.gitInv7=this.gitInv7||Wt(this.git7),this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||\"10px\",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||\"10px\",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||oc,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||lc}calculate(e){if(typeof e!=\"object\"){this.updateColors();return}const r=Object.keys(e);r.forEach(n=>{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}}const C8=t=>{const e=new E8;return e.calculate(t),e};class S8{constructor(){this.primaryColor=\"#eee\",this.contrast=\"#707070\",this.secondaryColor=ne(this.contrast,55),this.background=\"#ffffff\",this.tertiaryColor=yt(this.primaryColor,{h:-160}),this.primaryBorderColor=Mr(this.primaryColor,this.darkMode),this.secondaryBorderColor=Mr(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Mr(this.tertiaryColor,this.darkMode),this.primaryTextColor=Wt(this.primaryColor),this.secondaryTextColor=Wt(this.secondaryColor),this.tertiaryTextColor=Wt(this.tertiaryColor),this.lineColor=Wt(this.background),this.textColor=Wt(this.background),this.mainBkg=\"#eee\",this.secondBkg=\"calculated\",this.lineColor=\"#666\",this.border1=\"#999\",this.border2=\"calculated\",this.note=\"#ffa\",this.text=\"#333\",this.critical=\"#d42\",this.done=\"#bbb\",this.arrowheadColor=\"#333333\",this.fontFamily='\"trebuchet ms\", verdana, arial, sans-serif',this.fontSize=\"16px\",this.THEME_COLOR_LIMIT=12,this.nodeBkg=\"calculated\",this.nodeBorder=\"calculated\",this.clusterBkg=\"calculated\",this.clusterBorder=\"calculated\",this.defaultLinkColor=\"calculated\",this.titleColor=\"calculated\",this.edgeLabelBackground=\"white\",this.actorBorder=\"calculated\",this.actorBkg=\"calculated\",this.actorTextColor=\"calculated\",this.actorLineColor=\"calculated\",this.signalColor=\"calculated\",this.signalTextColor=\"calculated\",this.labelBoxBkgColor=\"calculated\",this.labelBoxBorderColor=\"calculated\",this.labelTextColor=\"calculated\",this.loopTextColor=\"calculated\",this.noteBorderColor=\"calculated\",this.noteBkgColor=\"calculated\",this.noteTextColor=\"calculated\",this.activationBorderColor=\"#666\",this.activationBkgColor=\"#f4f4f4\",this.sequenceNumberColor=\"white\",this.sectionBkgColor=\"calculated\",this.altSectionBkgColor=\"white\",this.sectionBkgColor2=\"calculated\",this.excludeBkgColor=\"#eeeeee\",this.taskBorderColor=\"calculated\",this.taskBkgColor=\"calculated\",this.taskTextLightColor=\"white\",this.taskTextColor=\"calculated\",this.taskTextDarkColor=\"calculated\",this.taskTextOutsideColor=\"calculated\",this.taskTextClickableColor=\"#003163\",this.activeTaskBorderColor=\"calculated\",this.activeTaskBkgColor=\"calculated\",this.gridColor=\"calculated\",this.doneTaskBkgColor=\"calculated\",this.doneTaskBorderColor=\"calculated\",this.critBkgColor=\"calculated\",this.critBorderColor=\"calculated\",this.todayLineColor=\"calculated\",this.personBorder=\"calculated\",this.personBkg=\"calculated\",this.labelColor=\"black\",this.errorBkgColor=\"#552222\",this.errorTextColor=\"#552222\"}updateColors(){this.secondBkg=ne(this.contrast,55),this.border2=this.contrast,this.cScale0=this.cScale0||\"#555\",this.cScale1=this.cScale1||\"#F4F4F4\",this.cScale2=this.cScale2||\"#555\",this.cScale3=this.cScale3||\"#BBB\",this.cScale4=this.cScale4||\"#777\",this.cScale5=this.cScale5||\"#999\",this.cScale6=this.cScale6||\"#DDD\",this.cScale7=this.cScale7||\"#FFF\",this.cScale8=this.cScale8||\"#DDD\",this.cScale9=this.cScale9||\"#BBB\",this.cScale10=this.cScale10||\"#999\",this.cScale11=this.cScale11||\"#777\";for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this[\"cScaleInv\"+e]=this[\"cScaleInv\"+e]||Wt(this[\"cScale\"+e]);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this.darkMode?this[\"cScalePeer\"+e]=this[\"cScalePeer\"+e]||ne(this[\"cScale\"+e],10):this[\"cScalePeer\"+e]=this[\"cScalePeer\"+e]||de(this[\"cScale\"+e],10);this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?\"black\":this.labelTextColor),this.cScaleLabel0=this.cScaleLabel0||this.cScale1,this.cScaleLabel2=this.cScaleLabel2||this.cScale1;for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this[\"cScaleLabel\"+e]=this[\"cScaleLabel\"+e]||this.scaleLabelColor;this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.titleColor=this.text,this.actorBorder=ne(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.lineColor,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor=\"#999\",this.noteBkgColor=\"#666\",this.noteTextColor=\"#fff\",this.sectionBkgColor=ne(this.contrast,30),this.sectionBkgColor2=ne(this.contrast,30),this.taskBorderColor=de(this.contrast,10),this.taskBkgColor=this.contrast,this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor=this.text,this.taskTextOutsideColor=this.taskTextDarkColor,this.activeTaskBorderColor=this.taskBorderColor,this.activeTaskBkgColor=this.mainBkg,this.gridColor=ne(this.border1,30),this.doneTaskBkgColor=this.done,this.doneTaskBorderColor=this.lineColor,this.critBkgColor=this.critical,this.critBorderColor=de(this.critBkgColor,10),this.todayLineColor=this.critBkgColor,this.transitionColor=this.transitionColor||\"#000\",this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||\"#f4f4f4\",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.stateBorder=this.stateBorder||\"#000\",this.innerEndBackground=this.primaryBorderColor,this.specialStateColor=\"#222\",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=yt(this.primaryColor,{h:64}),this.fillType3=yt(this.secondaryColor,{h:64}),this.fillType4=yt(this.primaryColor,{h:-64}),this.fillType5=yt(this.secondaryColor,{h:-64}),this.fillType6=yt(this.primaryColor,{h:128}),this.fillType7=yt(this.secondaryColor,{h:128});for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this[\"pie\"+e]=this[\"cScale\"+e];this.pie12=this.pie0,this.pieTitleTextSize=this.pieTitleTextSize||\"25px\",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||\"17px\",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||\"17px\",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||\"black\",this.pieStrokeWidth=this.pieStrokeWidth||\"2px\",this.pieOpacity=this.pieOpacity||\"0.7\",this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.edgeLabelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=de(this.pie1,25)||this.primaryColor,this.git1=this.pie2||this.secondaryColor,this.git2=this.pie3||this.tertiaryColor,this.git3=this.pie4||yt(this.primaryColor,{h:-30}),this.git4=this.pie5||yt(this.primaryColor,{h:-60}),this.git5=this.pie6||yt(this.primaryColor,{h:-90}),this.git6=this.pie7||yt(this.primaryColor,{h:60}),this.git7=this.pie8||yt(this.primaryColor,{h:120}),this.gitInv0=this.gitInv0||Wt(this.git0),this.gitInv1=this.gitInv1||Wt(this.git1),this.gitInv2=this.gitInv2||Wt(this.git2),this.gitInv3=this.gitInv3||Wt(this.git3),this.gitInv4=this.gitInv4||Wt(this.git4),this.gitInv5=this.gitInv5||Wt(this.git5),this.gitInv6=this.gitInv6||Wt(this.git6),this.gitInv7=this.gitInv7||Wt(this.git7),this.branchLabelColor=this.branchLabelColor||this.labelTextColor,this.gitBranchLabel0=this.branchLabelColor,this.gitBranchLabel1=\"white\",this.gitBranchLabel2=this.branchLabelColor,this.gitBranchLabel3=\"white\",this.gitBranchLabel4=this.branchLabelColor,this.gitBranchLabel5=this.branchLabelColor,this.gitBranchLabel6=this.branchLabelColor,this.gitBranchLabel7=this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||\"10px\",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||\"10px\",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||oc,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||lc}calculate(e){if(typeof e!=\"object\"){this.updateColors();return}const r=Object.keys(e);r.forEach(n=>{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}}const oi={base:{getThemeVariables:x8},dark:{getThemeVariables:k8},default:{getThemeVariables:T8},forest:{getThemeVariables:C8},neutral:{getThemeVariables:t=>{const e=new S8;return e.calculate(t),e}}},Fi={theme:\"default\",themeVariables:oi.default.getThemeVariables(),themeCSS:void 0,maxTextSize:5e4,darkMode:!1,fontFamily:'\"trebuchet ms\", verdana, arial, sans-serif;',logLevel:5,securityLevel:\"strict\",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:[\"secure\",\"securityLevel\",\"startOnLoad\",\"maxTextSize\"],deterministicIds:!1,deterministicIDSeed:void 0,flowchart:{titleTopMargin:25,diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:\"basis\",padding:15,useMaxWidth:!0,defaultRenderer:\"dagre-wrapper\"},sequence:{hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:\"center\",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'\"Open Sans\", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'\"trebuchet ms\", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:\"center\",messageFontSize:16,messageFontFamily:'\"trebuchet ms\", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20,messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},noteFont:function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},actorFont:function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:\"%Y-%m-%d\",tickInterval:void 0,useMaxWidth:!0,topAxis:!1,useWidth:void 0},journey:{diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:\"center\",bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,taskFontSize:14,taskFontFamily:'\"Open Sans\", sans-serif',taskMargin:50,activationWidth:10,textPlacement:\"fo\",actorColours:[\"#8FBC8F\",\"#7CFC00\",\"#00FFFF\",\"#20B2AA\",\"#B0E0E6\",\"#FFFFE0\"],sectionFills:[\"#191970\",\"#8B008B\",\"#4B0082\",\"#2F4F4F\",\"#800000\",\"#8B4513\",\"#00008B\"],sectionColours:[\"#fff\"]},class:{titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,useMaxWidth:!0,defaultRenderer:\"dagre-wrapper\"},state:{titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:\"20\",compositTitleSize:35,radius:5,useMaxWidth:!0,defaultRenderer:\"dagre-wrapper\"},er:{titleTopMargin:25,diagramPadding:20,layoutDirection:\"TB\",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:\"gray\",fill:\"honeydew\",fontSize:12,useMaxWidth:!0},pie:{useWidth:void 0,useMaxWidth:!0},requirement:{useWidth:void 0,useMaxWidth:!0,rect_fill:\"#f9f9f9\",text_color:\"#333\",rect_border_size:\"0.5px\",rect_border_color:\"#bbb\",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},gitGraph:{titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:\"main\",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0},c4:{useWidth:void 0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,useMaxWidth:!0,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'\"Open Sans\", sans-serif',personFontWeight:\"normal\",external_personFontSize:14,external_personFontFamily:'\"Open Sans\", sans-serif',external_personFontWeight:\"normal\",systemFontSize:14,systemFontFamily:'\"Open Sans\", sans-serif',systemFontWeight:\"normal\",external_systemFontSize:14,external_systemFontFamily:'\"Open Sans\", sans-serif',external_systemFontWeight:\"normal\",system_dbFontSize:14,system_dbFontFamily:'\"Open Sans\", sans-serif',system_dbFontWeight:\"normal\",external_system_dbFontSize:14,external_system_dbFontFamily:'\"Open Sans\", sans-serif',external_system_dbFontWeight:\"normal\",system_queueFontSize:14,system_queueFontFamily:'\"Open Sans\", sans-serif',system_queueFontWeight:\"normal\",external_system_queueFontSize:14,external_system_queueFontFamily:'\"Open Sans\", sans-serif',external_system_queueFontWeight:\"normal\",boundaryFontSize:14,boundaryFontFamily:'\"Open Sans\", sans-serif',boundaryFontWeight:\"normal\",messageFontSize:12,messageFontFamily:'\"Open Sans\", sans-serif',messageFontWeight:\"normal\",containerFontSize:14,containerFontFamily:'\"Open Sans\", sans-serif',containerFontWeight:\"normal\",external_containerFontSize:14,external_containerFontFamily:'\"Open Sans\", sans-serif',external_containerFontWeight:\"normal\",container_dbFontSize:14,container_dbFontFamily:'\"Open Sans\", sans-serif',container_dbFontWeight:\"normal\",external_container_dbFontSize:14,external_container_dbFontFamily:'\"Open Sans\", sans-serif',external_container_dbFontWeight:\"normal\",container_queueFontSize:14,container_queueFontFamily:'\"Open Sans\", sans-serif',container_queueFontWeight:\"normal\",external_container_queueFontSize:14,external_container_queueFontFamily:'\"Open Sans\", sans-serif',external_container_queueFontWeight:\"normal\",componentFontSize:14,componentFontFamily:'\"Open Sans\", sans-serif',componentFontWeight:\"normal\",external_componentFontSize:14,external_componentFontFamily:'\"Open Sans\", sans-serif',external_componentFontWeight:\"normal\",component_dbFontSize:14,component_dbFontFamily:'\"Open Sans\", sans-serif',component_dbFontWeight:\"normal\",external_component_dbFontSize:14,external_component_dbFontFamily:'\"Open Sans\", sans-serif',external_component_dbFontWeight:\"normal\",component_queueFontSize:14,component_queueFontFamily:'\"Open Sans\", sans-serif',component_queueFontWeight:\"normal\",external_component_queueFontSize:14,external_component_queueFontFamily:'\"Open Sans\", sans-serif',external_component_queueFontWeight:\"normal\",wrap:!0,wrapPadding:10,personFont:function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},external_personFont:function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},systemFont:function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},external_systemFont:function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},system_dbFont:function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},external_system_dbFont:function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},system_queueFont:function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},external_system_queueFont:function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},containerFont:function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},external_containerFont:function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},container_dbFont:function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},external_container_dbFont:function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},container_queueFont:function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},external_container_queueFont:function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},componentFont:function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},external_componentFont:function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},component_dbFont:function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},external_component_dbFont:function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},component_queueFont:function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},external_component_queueFont:function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},boundaryFont:function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},person_bg_color:\"#08427B\",person_border_color:\"#073B6F\",external_person_bg_color:\"#686868\",external_person_border_color:\"#8A8A8A\",system_bg_color:\"#1168BD\",system_border_color:\"#3C7FC0\",system_db_bg_color:\"#1168BD\",system_db_border_color:\"#3C7FC0\",system_queue_bg_color:\"#1168BD\",system_queue_border_color:\"#3C7FC0\",external_system_bg_color:\"#999999\",external_system_border_color:\"#8A8A8A\",external_system_db_bg_color:\"#999999\",external_system_db_border_color:\"#8A8A8A\",external_system_queue_bg_color:\"#999999\",external_system_queue_border_color:\"#8A8A8A\",container_bg_color:\"#438DD5\",container_border_color:\"#3C7FC0\",container_db_bg_color:\"#438DD5\",container_db_border_color:\"#3C7FC0\",container_queue_bg_color:\"#438DD5\",container_queue_border_color:\"#3C7FC0\",external_container_bg_color:\"#B3B3B3\",external_container_border_color:\"#A6A6A6\",external_container_db_bg_color:\"#B3B3B3\",external_container_db_border_color:\"#A6A6A6\",external_container_queue_bg_color:\"#B3B3B3\",external_container_queue_border_color:\"#A6A6A6\",component_bg_color:\"#85BBF0\",component_border_color:\"#78A8D8\",component_db_bg_color:\"#85BBF0\",component_db_border_color:\"#78A8D8\",component_queue_bg_color:\"#85BBF0\",component_queue_border_color:\"#78A8D8\",external_component_bg_color:\"#CCCCCC\",external_component_border_color:\"#BFBFBF\",external_component_db_bg_color:\"#CCCCCC\",external_component_db_border_color:\"#BFBFBF\",external_component_queue_bg_color:\"#CCCCCC\",external_component_queue_border_color:\"#BFBFBF\"},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},fontSize:16};Fi.class&&(Fi.class.arrowMarkerAbsolute=Fi.arrowMarkerAbsolute),Fi.gitGraph&&(Fi.gitGraph.arrowMarkerAbsolute=Fi.arrowMarkerAbsolute);const op=(t,e=\"\")=>Object.keys(t).reduce((r,n)=>Array.isArray(t[n])?r:typeof t[n]==\"object\"&&t[n]!==null?[...r,e+n,...op(t[n],\"\")]:[...r,e+n],[]),A8=op(Fi,\"\"),L8=Fi;/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function lp(t){return typeof t>\"u\"||t===null}function D8(t){return typeof t==\"object\"&&t!==null}function M8(t){return Array.isArray(t)?t:lp(t)?[]:[t]}function N8(t,e){var r,n,i,s;if(e)for(s=Object.keys(e),r=0,n=s.length;r<n;r+=1)i=s[r],t[i]=e[i];return t}function B8(t,e){var r=\"\",n;for(n=0;n<e;n+=1)r+=t;return r}function I8(t){return t===0&&Number.NEGATIVE_INFINITY===1/t}var O8=lp,R8=D8,F8=M8,P8=B8,Y8=I8,V8=N8,Nr={isNothing:O8,isObject:R8,toArray:F8,repeat:P8,isNegativeZero:Y8,extend:V8};function cp(t,e){var r=\"\",n=t.reason||\"(unknown reason)\";return t.mark?(t.mark.name&&(r+='in \"'+t.mark.name+'\" '),r+=\"(\"+(t.mark.line+1)+\":\"+(t.mark.column+1)+\")\",!e&&t.mark.snippet&&(r+=`\n\n`+t.mark.snippet),n+\" \"+r):n}function oo(t,e){Error.call(this),this.name=\"YAMLException\",this.reason=t,this.mark=e,this.message=cp(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||\"\"}oo.prototype=Object.create(Error.prototype),oo.prototype.constructor=oo,oo.prototype.toString=function(e){return this.name+\": \"+cp(this,e)};var li=oo;function i1(t,e,r,n,i){var s=\"\",a=\"\",o=Math.floor(i/2)-1;return n-e>o&&(s=\" ... \",e=n-o+s.length),r-n>o&&(a=\" ...\",r=n+o-a.length),{str:s+t.slice(e,r).replace(/\\t/g,\"\\u2192\")+a,pos:n-e+s.length}}function s1(t,e){return Nr.repeat(\" \",e-t.length)+t}function U8(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),typeof e.indent!=\"number\"&&(e.indent=1),typeof e.linesBefore!=\"number\"&&(e.linesBefore=3),typeof e.linesAfter!=\"number\"&&(e.linesAfter=2);for(var r=/\\r?\\n|\\r|\\0/g,n=[0],i=[],s,a=-1;s=r.exec(t.buffer);)i.push(s.index),n.push(s.index+s[0].length),t.position<=s.index&&a<0&&(a=n.length-2);a<0&&(a=n.length-1);var o=\"\",l,u,d=Math.min(t.line+e.linesAfter,i.length).toString().length,f=e.maxLength-(e.indent+d+3);for(l=1;l<=e.linesBefore&&!(a-l<0);l++)u=i1(t.buffer,n[a-l],i[a-l],t.position-(n[a]-n[a-l]),f),o=Nr.repeat(\" \",e.indent)+s1((t.line-l+1).toString(),d)+\" | \"+u.str+`\n`+o;for(u=i1(t.buffer,n[a],i[a],t.position,f),o+=Nr.repeat(\" \",e.indent)+s1((t.line+1).toString(),d)+\" | \"+u.str+`\n`,o+=Nr.repeat(\"-\",e.indent+d+3+u.pos)+`^\n`,l=1;l<=e.linesAfter&&!(a+l>=i.length);l++)u=i1(t.buffer,n[a+l],i[a+l],t.position-(n[a]-n[a+l]),f),o+=Nr.repeat(\" \",e.indent)+s1((t.line+l+1).toString(),d)+\" | \"+u.str+`\n`;return o.replace(/\\n$/,\"\")}var z8=U8,W8=[\"kind\",\"multi\",\"resolve\",\"construct\",\"instanceOf\",\"predicate\",\"represent\",\"representName\",\"defaultStyle\",\"styleAliases\"],H8=[\"scalar\",\"sequence\",\"mapping\"];function G8(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(n){e[String(n)]=r})}),e}function q8(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(W8.indexOf(r)===-1)throw new li('Unknown option \"'+r+'\" is met in definition of \"'+t+'\" YAML type.')}),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=G8(e.styleAliases||null),H8.indexOf(this.kind)===-1)throw new li('Unknown kind \"'+this.kind+'\" is specified for \"'+t+'\" YAML type.')}var Tr=q8;function up(t,e){var r=[];return t[e].forEach(function(n){var i=r.length;r.forEach(function(s,a){s.tag===n.tag&&s.kind===n.kind&&s.multi===n.multi&&(i=a)}),r[i]=n}),r}function j8(){var t={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},e,r;function n(i){i.multi?(t.multi[i.kind].push(i),t.multi.fallback.push(i)):t[i.kind][i.tag]=t.fallback[i.tag]=i}for(e=0,r=arguments.length;e<r;e+=1)arguments[e].forEach(n);return t}function a1(t){return this.extend(t)}a1.prototype.extend=function(e){var r=[],n=[];if(e instanceof Tr)n.push(e);else if(Array.isArray(e))n=n.concat(e);else if(e&&(Array.isArray(e.implicit)||Array.isArray(e.explicit)))e.implicit&&(r=r.concat(e.implicit)),e.explicit&&(n=n.concat(e.explicit));else throw new li(\"Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })\");r.forEach(function(s){if(!(s instanceof Tr))throw new li(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");if(s.loadKind&&s.loadKind!==\"scalar\")throw new li(\"There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.\");if(s.multi)throw new li(\"There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.\")}),n.forEach(function(s){if(!(s instanceof Tr))throw new li(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\")});var i=Object.create(a1.prototype);return i.implicit=(this.implicit||[]).concat(r),i.explicit=(this.explicit||[]).concat(n),i.compiledImplicit=up(i,\"implicit\"),i.compiledExplicit=up(i,\"explicit\"),i.compiledTypeMap=j8(i.compiledImplicit,i.compiledExplicit),i};var $8=a1,X8=new Tr(\"tag:yaml.org,2002:str\",{kind:\"scalar\",construct:function(t){return t!==null?t:\"\"}}),K8=new Tr(\"tag:yaml.org,2002:seq\",{kind:\"sequence\",construct:function(t){return t!==null?t:[]}}),Z8=new Tr(\"tag:yaml.org,2002:map\",{kind:\"mapping\",construct:function(t){return t!==null?t:{}}}),hp=new $8({explicit:[X8,K8,Z8]});function Q8(t){if(t===null)return!0;var e=t.length;return e===1&&t===\"~\"||e===4&&(t===\"null\"||t===\"Null\"||t===\"NULL\")}function J8(){return null}function tw(t){return t===null}var ew=new Tr(\"tag:yaml.org,2002:null\",{kind:\"scalar\",resolve:Q8,construct:J8,predicate:tw,represent:{canonical:function(){return\"~\"},lowercase:function(){return\"null\"},uppercase:function(){return\"NULL\"},camelcase:function(){return\"Null\"},empty:function(){return\"\"}},defaultStyle:\"lowercase\"});function rw(t){if(t===null)return!1;var e=t.length;return e===4&&(t===\"true\"||t===\"True\"||t===\"TRUE\")||e===5&&(t===\"false\"||t===\"False\"||t===\"FALSE\")}function nw(t){return t===\"true\"||t===\"True\"||t===\"TRUE\"}function iw(t){return Object.prototype.toString.call(t)===\"[object Boolean]\"}var sw=new Tr(\"tag:yaml.org,2002:bool\",{kind:\"scalar\",resolve:rw,construct:nw,predicate:iw,represent:{lowercase:function(t){return t?\"true\":\"false\"},uppercase:function(t){return t?\"TRUE\":\"FALSE\"},camelcase:function(t){return t?\"True\":\"False\"}},defaultStyle:\"lowercase\"});function aw(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function ow(t){return 48<=t&&t<=55}function lw(t){return 48<=t&&t<=57}function cw(t){if(t===null)return!1;var e=t.length,r=0,n=!1,i;if(!e)return!1;if(i=t[r],(i===\"-\"||i===\"+\")&&(i=t[++r]),i===\"0\"){if(r+1===e)return!0;if(i=t[++r],i===\"b\"){for(r++;r<e;r++)if(i=t[r],i!==\"_\"){if(i!==\"0\"&&i!==\"1\")return!1;n=!0}return n&&i!==\"_\"}if(i===\"x\"){for(r++;r<e;r++)if(i=t[r],i!==\"_\"){if(!aw(t.charCodeAt(r)))return!1;n=!0}return n&&i!==\"_\"}if(i===\"o\"){for(r++;r<e;r++)if(i=t[r],i!==\"_\"){if(!ow(t.charCodeAt(r)))return!1;n=!0}return n&&i!==\"_\"}}if(i===\"_\")return!1;for(;r<e;r++)if(i=t[r],i!==\"_\"){if(!lw(t.charCodeAt(r)))return!1;n=!0}return!(!n||i===\"_\")}function uw(t){var e=t,r=1,n;if(e.indexOf(\"_\")!==-1&&(e=e.replace(/_/g,\"\")),n=e[0],(n===\"-\"||n===\"+\")&&(n===\"-\"&&(r=-1),e=e.slice(1),n=e[0]),e===\"0\")return 0;if(n===\"0\"){if(e[1]===\"b\")return r*parseInt(e.slice(2),2);if(e[1]===\"x\")return r*parseInt(e.slice(2),16);if(e[1]===\"o\")return r*parseInt(e.slice(2),8)}return r*parseInt(e,10)}function hw(t){return Object.prototype.toString.call(t)===\"[object Number]\"&&t%1===0&&!Nr.isNegativeZero(t)}var dw=new Tr(\"tag:yaml.org,2002:int\",{kind:\"scalar\",resolve:cw,construct:uw,predicate:hw,represent:{binary:function(t){return t>=0?\"0b\"+t.toString(2):\"-0b\"+t.toString(2).slice(1)},octal:function(t){return t>=0?\"0o\"+t.toString(8):\"-0o\"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?\"0x\"+t.toString(16).toUpperCase():\"-0x\"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:\"decimal\",styleAliases:{binary:[2,\"bin\"],octal:[8,\"oct\"],decimal:[10,\"dec\"],hexadecimal:[16,\"hex\"]}}),fw=new RegExp(\"^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\");function pw(t){return!(t===null||!fw.test(t)||t[t.length-1]===\"_\")}function gw(t){var e,r;return e=t.replace(/_/g,\"\").toLowerCase(),r=e[0]===\"-\"?-1:1,\"+-\".indexOf(e[0])>=0&&(e=e.slice(1)),e===\".inf\"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===\".nan\"?NaN:r*parseFloat(e,10)}var yw=/^[-+]?[0-9]+e/;function mw(t,e){var r;if(isNaN(t))switch(e){case\"lowercase\":return\".nan\";case\"uppercase\":return\".NAN\";case\"camelcase\":return\".NaN\"}else if(Number.POSITIVE_INFINITY===t)switch(e){case\"lowercase\":return\".inf\";case\"uppercase\":return\".INF\";case\"camelcase\":return\".Inf\"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case\"lowercase\":return\"-.inf\";case\"uppercase\":return\"-.INF\";case\"camelcase\":return\"-.Inf\"}else if(Nr.isNegativeZero(t))return\"-0.0\";return r=t.toString(10),yw.test(r)?r.replace(\"e\",\".e\"):r}function bw(t){return Object.prototype.toString.call(t)===\"[object Number]\"&&(t%1!==0||Nr.isNegativeZero(t))}var _w=new Tr(\"tag:yaml.org,2002:float\",{kind:\"scalar\",resolve:pw,construct:gw,predicate:bw,represent:mw,defaultStyle:\"lowercase\"}),xw=hp.extend({implicit:[ew,sw,dw,_w]}),vw=xw,dp=new RegExp(\"^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$\"),fp=new RegExp(\"^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\\\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\\\.([0-9]*))?(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$\");function kw(t){return t===null?!1:dp.exec(t)!==null||fp.exec(t)!==null}function ww(t){var e,r,n,i,s,a,o,l=0,u=null,d,f,p;if(e=dp.exec(t),e===null&&(e=fp.exec(t)),e===null)throw new Error(\"Date resolve error\");if(r=+e[1],n=+e[2]-1,i=+e[3],!e[4])return new Date(Date.UTC(r,n,i));if(s=+e[4],a=+e[5],o=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+=\"0\";l=+l}return e[9]&&(d=+e[10],f=+(e[11]||0),u=(d*60+f)*6e4,e[9]===\"-\"&&(u=-u)),p=new Date(Date.UTC(r,n,i,s,a,o,l)),u&&p.setTime(p.getTime()-u),p}function Tw(t){return t.toISOString()}var Ew=new Tr(\"tag:yaml.org,2002:timestamp\",{kind:\"scalar\",resolve:kw,construct:ww,instanceOf:Date,represent:Tw});function Cw(t){return t===\"<<\"||t===null}var Sw=new Tr(\"tag:yaml.org,2002:merge\",{kind:\"scalar\",resolve:Cw}),o1=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\\r`;function Aw(t){if(t===null)return!1;var e,r,n=0,i=t.length,s=o1;for(r=0;r<i;r++)if(e=s.indexOf(t.charAt(r)),!(e>64)){if(e<0)return!1;n+=6}return n%8===0}function Lw(t){var e,r,n=t.replace(/[\\r\\n=]/g,\"\"),i=n.length,s=o1,a=0,o=[];for(e=0;e<i;e++)e%4===0&&e&&(o.push(a>>16&255),o.push(a>>8&255),o.push(a&255)),a=a<<6|s.indexOf(n.charAt(e));return r=i%4*6,r===0?(o.push(a>>16&255),o.push(a>>8&255),o.push(a&255)):r===18?(o.push(a>>10&255),o.push(a>>2&255)):r===12&&o.push(a>>4&255),new Uint8Array(o)}function Dw(t){var e=\"\",r=0,n,i,s=t.length,a=o1;for(n=0;n<s;n++)n%3===0&&n&&(e+=a[r>>18&63],e+=a[r>>12&63],e+=a[r>>6&63],e+=a[r&63]),r=(r<<8)+t[n];return i=s%3,i===0?(e+=a[r>>18&63],e+=a[r>>12&63],e+=a[r>>6&63],e+=a[r&63]):i===2?(e+=a[r>>10&63],e+=a[r>>4&63],e+=a[r<<2&63],e+=a[64]):i===1&&(e+=a[r>>2&63],e+=a[r<<4&63],e+=a[64],e+=a[64]),e}function Mw(t){return Object.prototype.toString.call(t)===\"[object Uint8Array]\"}var Nw=new Tr(\"tag:yaml.org,2002:binary\",{kind:\"scalar\",resolve:Aw,construct:Lw,predicate:Mw,represent:Dw}),Bw=Object.prototype.hasOwnProperty,Iw=Object.prototype.toString;function Ow(t){if(t===null)return!0;var e=[],r,n,i,s,a,o=t;for(r=0,n=o.length;r<n;r+=1){if(i=o[r],a=!1,Iw.call(i)!==\"[object Object]\")return!1;for(s in i)if(Bw.call(i,s))if(!a)a=!0;else return!1;if(!a)return!1;if(e.indexOf(s)===-1)e.push(s);else return!1}return!0}function Rw(t){return t!==null?t:[]}var Fw=new Tr(\"tag:yaml.org,2002:omap\",{kind:\"sequence\",resolve:Ow,construct:Rw}),Pw=Object.prototype.toString;function Yw(t){if(t===null)return!0;var e,r,n,i,s,a=t;for(s=new Array(a.length),e=0,r=a.length;e<r;e+=1){if(n=a[e],Pw.call(n)!==\"[object Object]\"||(i=Object.keys(n),i.length!==1))return!1;s[e]=[i[0],n[i[0]]]}return!0}function Vw(t){if(t===null)return[];var e,r,n,i,s,a=t;for(s=new Array(a.length),e=0,r=a.length;e<r;e+=1)n=a[e],i=Object.keys(n),s[e]=[i[0],n[i[0]]];return s}var Uw=new Tr(\"tag:yaml.org,2002:pairs\",{kind:\"sequence\",resolve:Yw,construct:Vw}),zw=Object.prototype.hasOwnProperty;function Ww(t){if(t===null)return!0;var e,r=t;for(e in r)if(zw.call(r,e)&&r[e]!==null)return!1;return!0}function Hw(t){return t!==null?t:{}}var Gw=new Tr(\"tag:yaml.org,2002:set\",{kind:\"mapping\",resolve:Ww,construct:Hw}),qw=vw.extend({implicit:[Ew,Sw],explicit:[Nw,Fw,Uw,Gw]}),Pi=Object.prototype.hasOwnProperty,cc=1,pp=2,gp=3,uc=4,l1=1,jw=2,yp=3,$w=/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/,Xw=/[\\x85\\u2028\\u2029]/,Kw=/[,\\[\\]\\{\\}]/,mp=/^(?:!|!!|![a-z\\-]+!)$/i,bp=/^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;function _p(t){return Object.prototype.toString.call(t)}function Vn(t){return t===10||t===13}function fs(t){return t===9||t===32}function Fr(t){return t===9||t===32||t===10||t===13}function ra(t){return t===44||t===91||t===93||t===123||t===125}function Zw(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function Qw(t){return t===120?2:t===117?4:t===85?8:0}function Jw(t){return 48<=t&&t<=57?t-48:-1}function xp(t){return t===48?\"\\0\":t===97?\"\\x07\":t===98?\"\\b\":t===116||t===9?\"\t\":t===110?`\n`:t===118?\"\\v\":t===102?\"\\f\":t===114?\"\\r\":t===101?\"\\x1B\":t===32?\" \":t===34?'\"':t===47?\"/\":t===92?\"\\\\\":t===78?\"\\x85\":t===95?\"\\xA0\":t===76?\"\\u2028\":t===80?\"\\u2029\":\"\"}function t7(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}for(var vp=new Array(256),kp=new Array(256),na=0;na<256;na++)vp[na]=xp(na)?1:0,kp[na]=xp(na);function e7(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||qw,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function wp(t,e){var r={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return r.snippet=z8(r),new li(e,r)}function Qt(t,e){throw wp(t,e)}function hc(t,e){t.onWarning&&t.onWarning.call(null,wp(t,e))}var Tp={YAML:function(e,r,n){var i,s,a;e.version!==null&&Qt(e,\"duplication of %YAML directive\"),n.length!==1&&Qt(e,\"YAML directive accepts exactly one argument\"),i=/^([0-9]+)\\.([0-9]+)$/.exec(n[0]),i===null&&Qt(e,\"ill-formed argument of the YAML directive\"),s=parseInt(i[1],10),a=parseInt(i[2],10),s!==1&&Qt(e,\"unacceptable YAML version of the document\"),e.version=n[0],e.checkLineBreaks=a<2,a!==1&&a!==2&&hc(e,\"unsupported YAML version of the document\")},TAG:function(e,r,n){var i,s;n.length!==2&&Qt(e,\"TAG directive accepts exactly two arguments\"),i=n[0],s=n[1],mp.test(i)||Qt(e,\"ill-formed tag handle (first argument) of the TAG directive\"),Pi.call(e.tagMap,i)&&Qt(e,'there is a previously declared suffix for \"'+i+'\" tag handle'),bp.test(s)||Qt(e,\"ill-formed tag prefix (second argument) of the TAG directive\");try{s=decodeURIComponent(s)}catch{Qt(e,\"tag prefix is malformed: \"+s)}e.tagMap[i]=s}};function Yi(t,e,r,n){var i,s,a,o;if(e<r){if(o=t.input.slice(e,r),n)for(i=0,s=o.length;i<s;i+=1)a=o.charCodeAt(i),a===9||32<=a&&a<=1114111||Qt(t,\"expected valid JSON character\");else $w.test(o)&&Qt(t,\"the stream contains non-printable characters\");t.result+=o}}function Ep(t,e,r,n){var i,s,a,o;for(Nr.isObject(r)||Qt(t,\"cannot merge mappings; the provided source object is unacceptable\"),i=Object.keys(r),a=0,o=i.length;a<o;a+=1)s=i[a],Pi.call(e,s)||(e[s]=r[s],n[s]=!0)}function ia(t,e,r,n,i,s,a,o,l){var u,d;if(Array.isArray(i))for(i=Array.prototype.slice.call(i),u=0,d=i.length;u<d;u+=1)Array.isArray(i[u])&&Qt(t,\"nested arrays are not supported inside keys\"),typeof i==\"object\"&&_p(i[u])===\"[object Object]\"&&(i[u]=\"[object Object]\");if(typeof i==\"object\"&&_p(i)===\"[object Object]\"&&(i=\"[object Object]\"),i=String(i),e===null&&(e={}),n===\"tag:yaml.org,2002:merge\")if(Array.isArray(s))for(u=0,d=s.length;u<d;u+=1)Ep(t,e,s[u],r);else Ep(t,e,s,r);else!t.json&&!Pi.call(r,i)&&Pi.call(e,i)&&(t.line=a||t.line,t.lineStart=o||t.lineStart,t.position=l||t.position,Qt(t,\"duplicated mapping key\")),i===\"__proto__\"?Object.defineProperty(e,i,{configurable:!0,enumerable:!0,writable:!0,value:s}):e[i]=s,delete r[i];return e}function c1(t){var e;e=t.input.charCodeAt(t.position),e===10?t.position++:e===13?(t.position++,t.input.charCodeAt(t.position)===10&&t.position++):Qt(t,\"a line break is expected\"),t.line+=1,t.lineStart=t.position,t.firstTabInLine=-1}function tr(t,e,r){for(var n=0,i=t.input.charCodeAt(t.position);i!==0;){for(;fs(i);)i===9&&t.firstTabInLine===-1&&(t.firstTabInLine=t.position),i=t.input.charCodeAt(++t.position);if(e&&i===35)do i=t.input.charCodeAt(++t.position);while(i!==10&&i!==13&&i!==0);if(Vn(i))for(c1(t),i=t.input.charCodeAt(t.position),n++,t.lineIndent=0;i===32;)t.lineIndent++,i=t.input.charCodeAt(++t.position);else break}return r!==-1&&n!==0&&t.lineIndent<r&&hc(t,\"deficient indentation\"),n}function dc(t){var e=t.position,r;return r=t.input.charCodeAt(e),!!((r===45||r===46)&&r===t.input.charCodeAt(e+1)&&r===t.input.charCodeAt(e+2)&&(e+=3,r=t.input.charCodeAt(e),r===0||Fr(r)))}function u1(t,e){e===1?t.result+=\" \":e>1&&(t.result+=Nr.repeat(`\n`,e-1))}function r7(t,e,r){var n,i,s,a,o,l,u,d,f=t.kind,p=t.result,g;if(g=t.input.charCodeAt(t.position),Fr(g)||ra(g)||g===35||g===38||g===42||g===33||g===124||g===62||g===39||g===34||g===37||g===64||g===96||(g===63||g===45)&&(i=t.input.charCodeAt(t.position+1),Fr(i)||r&&ra(i)))return!1;for(t.kind=\"scalar\",t.result=\"\",s=a=t.position,o=!1;g!==0;){if(g===58){if(i=t.input.charCodeAt(t.position+1),Fr(i)||r&&ra(i))break}else if(g===35){if(n=t.input.charCodeAt(t.position-1),Fr(n))break}else{if(t.position===t.lineStart&&dc(t)||r&&ra(g))break;if(Vn(g))if(l=t.line,u=t.lineStart,d=t.lineIndent,tr(t,!1,-1),t.lineIndent>=e){o=!0,g=t.input.charCodeAt(t.position);continue}else{t.position=a,t.line=l,t.lineStart=u,t.lineIndent=d;break}}o&&(Yi(t,s,a,!1),u1(t,t.line-l),s=a=t.position,o=!1),fs(g)||(a=t.position+1),g=t.input.charCodeAt(++t.position)}return Yi(t,s,a,!1),t.result?!0:(t.kind=f,t.result=p,!1)}function n7(t,e){var r,n,i;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind=\"scalar\",t.result=\"\",t.position++,n=i=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(Yi(t,n,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)n=t.position,t.position++,i=t.position;else return!0;else Vn(r)?(Yi(t,n,i,!0),u1(t,tr(t,!1,e)),n=i=t.position):t.position===t.lineStart&&dc(t)?Qt(t,\"unexpected end of the document within a single quoted scalar\"):(t.position++,i=t.position);Qt(t,\"unexpected end of the stream within a single quoted scalar\")}function i7(t,e){var r,n,i,s,a,o;if(o=t.input.charCodeAt(t.position),o!==34)return!1;for(t.kind=\"scalar\",t.result=\"\",t.position++,r=n=t.position;(o=t.input.charCodeAt(t.position))!==0;){if(o===34)return Yi(t,r,t.position,!0),t.position++,!0;if(o===92){if(Yi(t,r,t.position,!0),o=t.input.charCodeAt(++t.position),Vn(o))tr(t,!1,e);else if(o<256&&vp[o])t.result+=kp[o],t.position++;else if((a=Qw(o))>0){for(i=a,s=0;i>0;i--)o=t.input.charCodeAt(++t.position),(a=Zw(o))>=0?s=(s<<4)+a:Qt(t,\"expected hexadecimal character\");t.result+=t7(s),t.position++}else Qt(t,\"unknown escape sequence\");r=n=t.position}else Vn(o)?(Yi(t,r,n,!0),u1(t,tr(t,!1,e)),r=n=t.position):t.position===t.lineStart&&dc(t)?Qt(t,\"unexpected end of the document within a double quoted scalar\"):(t.position++,n=t.position)}Qt(t,\"unexpected end of the stream within a double quoted scalar\")}function s7(t,e){var r=!0,n,i,s,a=t.tag,o,l=t.anchor,u,d,f,p,g,b=Object.create(null),k,T,L,E;if(E=t.input.charCodeAt(t.position),E===91)d=93,g=!1,o=[];else if(E===123)d=125,g=!0,o={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=o),E=t.input.charCodeAt(++t.position);E!==0;){if(tr(t,!0,e),E=t.input.charCodeAt(t.position),E===d)return t.position++,t.tag=a,t.anchor=l,t.kind=g?\"mapping\":\"sequence\",t.result=o,!0;r?E===44&&Qt(t,\"expected the node content, but found ','\"):Qt(t,\"missed comma between flow collection entries\"),T=k=L=null,f=p=!1,E===63&&(u=t.input.charCodeAt(t.position+1),Fr(u)&&(f=p=!0,t.position++,tr(t,!0,e))),n=t.line,i=t.lineStart,s=t.position,sa(t,e,cc,!1,!0),T=t.tag,k=t.result,tr(t,!0,e),E=t.input.charCodeAt(t.position),(p||t.line===n)&&E===58&&(f=!0,E=t.input.charCodeAt(++t.position),tr(t,!0,e),sa(t,e,cc,!1,!0),L=t.result),g?ia(t,o,b,T,k,L,n,i,s):f?o.push(ia(t,null,b,T,k,L,n,i,s)):o.push(k),tr(t,!0,e),E=t.input.charCodeAt(t.position),E===44?(r=!0,E=t.input.charCodeAt(++t.position)):r=!1}Qt(t,\"unexpected end of the stream within a flow collection\")}function a7(t,e){var r,n,i=l1,s=!1,a=!1,o=e,l=0,u=!1,d,f;if(f=t.input.charCodeAt(t.position),f===124)n=!1;else if(f===62)n=!0;else return!1;for(t.kind=\"scalar\",t.result=\"\";f!==0;)if(f=t.input.charCodeAt(++t.position),f===43||f===45)l1===i?i=f===43?yp:jw:Qt(t,\"repeat of a chomping mode identifier\");else if((d=Jw(f))>=0)d===0?Qt(t,\"bad explicit indentation width of a block scalar; it cannot be less than one\"):a?Qt(t,\"repeat of an indentation width identifier\"):(o=e+d-1,a=!0);else break;if(fs(f)){do f=t.input.charCodeAt(++t.position);while(fs(f));if(f===35)do f=t.input.charCodeAt(++t.position);while(!Vn(f)&&f!==0)}for(;f!==0;){for(c1(t),t.lineIndent=0,f=t.input.charCodeAt(t.position);(!a||t.lineIndent<o)&&f===32;)t.lineIndent++,f=t.input.charCodeAt(++t.position);if(!a&&t.lineIndent>o&&(o=t.lineIndent),Vn(f)){l++;continue}if(t.lineIndent<o){i===yp?t.result+=Nr.repeat(`\n`,s?1+l:l):i===l1&&s&&(t.result+=`\n`);break}for(n?fs(f)?(u=!0,t.result+=Nr.repeat(`\n`,s?1+l:l)):u?(u=!1,t.result+=Nr.repeat(`\n`,l+1)):l===0?s&&(t.result+=\" \"):t.result+=Nr.repeat(`\n`,l):t.result+=Nr.repeat(`\n`,s?1+l:l),s=!0,a=!0,l=0,r=t.position;!Vn(f)&&f!==0;)f=t.input.charCodeAt(++t.position);Yi(t,r,t.position,!1)}return!0}function Cp(t,e){var r,n=t.tag,i=t.anchor,s=[],a,o=!1,l;if(t.firstTabInLine!==-1)return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=s),l=t.input.charCodeAt(t.position);l!==0&&(t.firstTabInLine!==-1&&(t.position=t.firstTabInLine,Qt(t,\"tab characters must not be used in indentation\")),!(l!==45||(a=t.input.charCodeAt(t.position+1),!Fr(a))));){if(o=!0,t.position++,tr(t,!0,-1)&&t.lineIndent<=e){s.push(null),l=t.input.charCodeAt(t.position);continue}if(r=t.line,sa(t,e,gp,!1,!0),s.push(t.result),tr(t,!0,-1),l=t.input.charCodeAt(t.position),(t.line===r||t.lineIndent>e)&&l!==0)Qt(t,\"bad indentation of a sequence entry\");else if(t.lineIndent<e)break}return o?(t.tag=n,t.anchor=i,t.kind=\"sequence\",t.result=s,!0):!1}function o7(t,e,r){var n,i,s,a,o,l,u=t.tag,d=t.anchor,f={},p=Object.create(null),g=null,b=null,k=null,T=!1,L=!1,E;if(t.firstTabInLine!==-1)return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=f),E=t.input.charCodeAt(t.position);E!==0;){if(!T&&t.firstTabInLine!==-1&&(t.position=t.firstTabInLine,Qt(t,\"tab characters must not be used in indentation\")),n=t.input.charCodeAt(t.position+1),s=t.line,(E===63||E===58)&&Fr(n))E===63?(T&&(ia(t,f,p,g,b,null,a,o,l),g=b=k=null),L=!0,T=!0,i=!0):T?(T=!1,i=!0):Qt(t,\"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line\"),t.position+=1,E=n;else{if(a=t.line,o=t.lineStart,l=t.position,!sa(t,r,pp,!1,!0))break;if(t.line===s){for(E=t.input.charCodeAt(t.position);fs(E);)E=t.input.charCodeAt(++t.position);if(E===58)E=t.input.charCodeAt(++t.position),Fr(E)||Qt(t,\"a whitespace character is expected after the key-value separator within a block mapping\"),T&&(ia(t,f,p,g,b,null,a,o,l),g=b=k=null),L=!0,T=!1,i=!1,g=t.tag,b=t.result;else if(L)Qt(t,\"can not read an implicit mapping pair; a colon is missed\");else return t.tag=u,t.anchor=d,!0}else if(L)Qt(t,\"can not read a block mapping entry; a multiline key may not be an implicit key\");else return t.tag=u,t.anchor=d,!0}if((t.line===s||t.lineIndent>e)&&(T&&(a=t.line,o=t.lineStart,l=t.position),sa(t,e,uc,!0,i)&&(T?b=t.result:k=t.result),T||(ia(t,f,p,g,b,k,a,o,l),g=b=k=null),tr(t,!0,-1),E=t.input.charCodeAt(t.position)),(t.line===s||t.lineIndent>e)&&E!==0)Qt(t,\"bad indentation of a mapping entry\");else if(t.lineIndent<e)break}return T&&ia(t,f,p,g,b,null,a,o,l),L&&(t.tag=u,t.anchor=d,t.kind=\"mapping\",t.result=f),L}function l7(t){var e,r=!1,n=!1,i,s,a;if(a=t.input.charCodeAt(t.position),a!==33)return!1;if(t.tag!==null&&Qt(t,\"duplication of a tag property\"),a=t.input.charCodeAt(++t.position),a===60?(r=!0,a=t.input.charCodeAt(++t.position)):a===33?(n=!0,i=\"!!\",a=t.input.charCodeAt(++t.position)):i=\"!\",e=t.position,r){do a=t.input.charCodeAt(++t.position);while(a!==0&&a!==62);t.position<t.length?(s=t.input.slice(e,t.position),a=t.input.charCodeAt(++t.position)):Qt(t,\"unexpected end of the stream within a verbatim tag\")}else{for(;a!==0&&!Fr(a);)a===33&&(n?Qt(t,\"tag suffix cannot contain exclamation marks\"):(i=t.input.slice(e-1,t.position+1),mp.test(i)||Qt(t,\"named tag handle cannot contain such characters\"),n=!0,e=t.position+1)),a=t.input.charCodeAt(++t.position);s=t.input.slice(e,t.position),Kw.test(s)&&Qt(t,\"tag suffix cannot contain flow indicator characters\")}s&&!bp.test(s)&&Qt(t,\"tag name cannot contain such characters: \"+s);try{s=decodeURIComponent(s)}catch{Qt(t,\"tag name is malformed: \"+s)}return r?t.tag=s:Pi.call(t.tagMap,i)?t.tag=t.tagMap[i]+s:i===\"!\"?t.tag=\"!\"+s:i===\"!!\"?t.tag=\"tag:yaml.org,2002:\"+s:Qt(t,'undeclared tag handle \"'+i+'\"'),!0}function c7(t){var e,r;if(r=t.input.charCodeAt(t.position),r!==38)return!1;for(t.anchor!==null&&Qt(t,\"duplication of an anchor property\"),r=t.input.charCodeAt(++t.position),e=t.position;r!==0&&!Fr(r)&&!ra(r);)r=t.input.charCodeAt(++t.position);return t.position===e&&Qt(t,\"name of an anchor node must contain at least one character\"),t.anchor=t.input.slice(e,t.position),!0}function u7(t){var e,r,n;if(n=t.input.charCodeAt(t.position),n!==42)return!1;for(n=t.input.charCodeAt(++t.position),e=t.position;n!==0&&!Fr(n)&&!ra(n);)n=t.input.charCodeAt(++t.position);return t.position===e&&Qt(t,\"name of an alias node must contain at least one character\"),r=t.input.slice(e,t.position),Pi.call(t.anchorMap,r)||Qt(t,'unidentified alias \"'+r+'\"'),t.result=t.anchorMap[r],tr(t,!0,-1),!0}function sa(t,e,r,n,i){var s,a,o,l=1,u=!1,d=!1,f,p,g,b,k,T;if(t.listener!==null&&t.listener(\"open\",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,s=a=o=uc===r||gp===r,n&&tr(t,!0,-1)&&(u=!0,t.lineIndent>e?l=1:t.lineIndent===e?l=0:t.lineIndent<e&&(l=-1)),l===1)for(;l7(t)||c7(t);)tr(t,!0,-1)?(u=!0,o=s,t.lineIndent>e?l=1:t.lineIndent===e?l=0:t.lineIndent<e&&(l=-1)):o=!1;if(o&&(o=u||i),(l===1||uc===r)&&(cc===r||pp===r?k=e:k=e+1,T=t.position-t.lineStart,l===1?o&&(Cp(t,T)||o7(t,T,k))||s7(t,k)?d=!0:(a&&a7(t,k)||n7(t,k)||i7(t,k)?d=!0:u7(t)?(d=!0,(t.tag!==null||t.anchor!==null)&&Qt(t,\"alias node should not have any properties\")):r7(t,k,cc===r)&&(d=!0,t.tag===null&&(t.tag=\"?\")),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):l===0&&(d=o&&Cp(t,T))),t.tag===null)t.anchor!==null&&(t.anchorMap[t.anchor]=t.result);else if(t.tag===\"?\"){for(t.result!==null&&t.kind!==\"scalar\"&&Qt(t,'unacceptable node kind for !<?> tag; it should be \"scalar\", not \"'+t.kind+'\"'),f=0,p=t.implicitTypes.length;f<p;f+=1)if(b=t.implicitTypes[f],b.resolve(t.result)){t.result=b.construct(t.result),t.tag=b.tag,t.anchor!==null&&(t.anchorMap[t.anchor]=t.result);break}}else if(t.tag!==\"!\"){if(Pi.call(t.typeMap[t.kind||\"fallback\"],t.tag))b=t.typeMap[t.kind||\"fallback\"][t.tag];else for(b=null,g=t.typeMap.multi[t.kind||\"fallback\"],f=0,p=g.length;f<p;f+=1)if(t.tag.slice(0,g[f].tag.length)===g[f].tag){b=g[f];break}b||Qt(t,\"unknown tag !<\"+t.tag+\">\"),t.result!==null&&b.kind!==t.kind&&Qt(t,\"unacceptable node kind for !<\"+t.tag+'> tag; it should be \"'+b.kind+'\", not \"'+t.kind+'\"'),b.resolve(t.result,t.tag)?(t.result=b.construct(t.result,t.tag),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):Qt(t,\"cannot resolve a node with !<\"+t.tag+\"> explicit tag\")}return t.listener!==null&&t.listener(\"close\",t),t.tag!==null||t.anchor!==null||d}function h7(t){var e=t.position,r,n,i,s=!1,a;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);(a=t.input.charCodeAt(t.position))!==0&&(tr(t,!0,-1),a=t.input.charCodeAt(t.position),!(t.lineIndent>0||a!==37));){for(s=!0,a=t.input.charCodeAt(++t.position),r=t.position;a!==0&&!Fr(a);)a=t.input.charCodeAt(++t.position);for(n=t.input.slice(r,t.position),i=[],n.length<1&&Qt(t,\"directive name must not be less than one character in length\");a!==0;){for(;fs(a);)a=t.input.charCodeAt(++t.position);if(a===35){do a=t.input.charCodeAt(++t.position);while(a!==0&&!Vn(a));break}if(Vn(a))break;for(r=t.position;a!==0&&!Fr(a);)a=t.input.charCodeAt(++t.position);i.push(t.input.slice(r,t.position))}a!==0&&c1(t),Pi.call(Tp,n)?Tp[n](t,n,i):hc(t,'unknown document directive \"'+n+'\"')}if(tr(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,tr(t,!0,-1)):s&&Qt(t,\"directives end mark is expected\"),sa(t,t.lineIndent-1,uc,!1,!0),tr(t,!0,-1),t.checkLineBreaks&&Xw.test(t.input.slice(e,t.position))&&hc(t,\"non-ASCII line breaks are interpreted as content\"),t.documents.push(t.result),t.position===t.lineStart&&dc(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,tr(t,!0,-1));return}if(t.position<t.length-1)Qt(t,\"end of the stream or a document separator is expected\");else return}function Sp(t,e){t=String(t),e=e||{},t.length!==0&&(t.charCodeAt(t.length-1)!==10&&t.charCodeAt(t.length-1)!==13&&(t+=`\n`),t.charCodeAt(0)===65279&&(t=t.slice(1)));var r=new e7(t,e),n=t.indexOf(\"\\0\");for(n!==-1&&(r.position=n,Qt(r,\"null byte is not allowed in input\")),r.input+=\"\\0\";r.input.charCodeAt(r.position)===32;)r.lineIndent+=1,r.position+=1;for(;r.position<r.length-1;)h7(r);return r.documents}function d7(t,e,r){e!==null&&typeof e==\"object\"&&typeof r>\"u\"&&(r=e,e=null);var n=Sp(t,r);if(typeof e!=\"function\")return n;for(var i=0,s=n.length;i<s;i+=1)e(n[i])}function f7(t,e){var r=Sp(t,e);if(r.length!==0){if(r.length===1)return r[0];throw new li(\"expected a single document in the stream, but found more\")}}var p7=d7,g7=f7,y7={loadAll:p7,load:g7},m7=hp,b7=y7.load;const Ap=/^-{3}\\s*[\\n\\r](.*?)[\\n\\r]-{3}\\s*[\\n\\r]+/s;function _7(t,e){var n;const r=t.match(Ap);if(r){const i=b7(r[1],{schema:m7});return i!=null&&i.title&&((n=e.setDiagramTitle)==null||n.call(e,i.title)),t.slice(r[0].length)}else return t}const x7=/%{2}{\\s*(?:(\\w+)\\s*:|(\\w+))\\s*(?:(\\w+)|((?:(?!}%{2}).|\\r?\\n)*))?\\s*(?:}%{2})?/gi,v7=/\\s*%%.*\\n/gm,fc={},h1=function(t,e){t=t.replace(Ap,\"\").replace(x7,\"\").replace(v7,`\n`);for(const[r,{detector:n}]of Object.entries(fc))if(n(t,e))return r;throw new Error(`No diagram type detected for text: ${t}`)},Lp=(t,e,r)=>{if(fc[t])throw new Error(`Detector with key ${t} already exists`);fc[t]={detector:e,loader:r},B.debug(`Detector with key ${t} added${r?\" with loader\":\"\"}`)},k7=t=>fc[t].loader,d1=function(t,e,r){const{depth:n,clobber:i}=Object.assign({depth:2,clobber:!1},r);return Array.isArray(e)&&!Array.isArray(t)?(e.forEach(s=>d1(t,s,r)),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach(s=>{t.includes(s)||t.push(s)}),t):t===void 0||n<=0?t!=null&&typeof t==\"object\"&&typeof e==\"object\"?Object.assign(t,e):e:(e!==void 0&&typeof t==\"object\"&&typeof e==\"object\"&&Object.keys(e).forEach(s=>{typeof e[s]==\"object\"&&(t[s]===void 0||typeof t[s]==\"object\")?(t[s]===void 0&&(t[s]=Array.isArray(e[s])?[]:{}),t[s]=d1(t[s],e[s],{depth:n-1,clobber:i})):(i||typeof t[s]!=\"object\"&&typeof e[s]!=\"object\")&&(t[s]=e[s])}),t)},gr=d1;var w7=typeof global==\"object\"&&global&&global.Object===Object&&global;const Dp=w7;var T7=typeof self==\"object\"&&self&&self.Object===Object&&self,E7=Dp||T7||Function(\"return this\")();const mn=E7;var C7=mn.Symbol;const en=C7;var Mp=Object.prototype,S7=Mp.hasOwnProperty,A7=Mp.toString,lo=en?en.toStringTag:void 0;function L7(t){var e=S7.call(t,lo),r=t[lo];try{t[lo]=void 0;var n=!0}catch{}var i=A7.call(t);return n&&(e?t[lo]=r:delete t[lo]),i}var D7=Object.prototype,M7=D7.toString;function N7(t){return M7.call(t)}var B7=\"[object Null]\",I7=\"[object Undefined]\",Np=en?en.toStringTag:void 0;function ps(t){return t==null?t===void 0?I7:B7:Np&&Np in Object(t)?L7(t):N7(t)}function Gr(t){var e=typeof t;return t!=null&&(e==\"object\"||e==\"function\")}var O7=\"[object AsyncFunction]\",R7=\"[object Function]\",F7=\"[object GeneratorFunction]\",P7=\"[object Proxy]\";function aa(t){if(!Gr(t))return!1;var e=ps(t);return e==R7||e==F7||e==O7||e==P7}var Y7=mn[\"__core-js_shared__\"];const f1=Y7;var Bp=function(){var t=/[^.]+$/.exec(f1&&f1.keys&&f1.keys.IE_PROTO||\"\");return t?\"Symbol(src)_1.\"+t:\"\"}();function V7(t){return!!Bp&&Bp in t}var U7=Function.prototype,z7=U7.toString;function gs(t){if(t!=null){try{return z7.call(t)}catch{}try{return t+\"\"}catch{}}return\"\"}var W7=/[\\\\^$.*+?()[\\]{}|]/g,H7=/^\\[object .+?Constructor\\]$/,G7=Function.prototype,q7=Object.prototype,j7=G7.toString,$7=q7.hasOwnProperty,X7=RegExp(\"^\"+j7.call($7).replace(W7,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\");function K7(t){if(!Gr(t)||V7(t))return!1;var e=aa(t)?X7:H7;return e.test(gs(t))}function Z7(t,e){return t==null?void 0:t[e]}function ys(t,e){var r=Z7(t,e);return K7(r)?r:void 0}var Q7=ys(Object,\"create\");const co=Q7;function J7(){this.__data__=co?co(null):{},this.size=0}function tT(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var eT=\"__lodash_hash_undefined__\",rT=Object.prototype,nT=rT.hasOwnProperty;function iT(t){var e=this.__data__;if(co){var r=e[t];return r===eT?void 0:r}return nT.call(e,t)?e[t]:void 0}var sT=Object.prototype,aT=sT.hasOwnProperty;function oT(t){var e=this.__data__;return co?e[t]!==void 0:aT.call(e,t)}var lT=\"__lodash_hash_undefined__\";function cT(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=co&&e===void 0?lT:e,this}function ms(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}ms.prototype.clear=J7,ms.prototype.delete=tT,ms.prototype.get=iT,ms.prototype.has=oT,ms.prototype.set=cT;function uT(){this.__data__=[],this.size=0}function oa(t,e){return t===e||t!==t&&e!==e}function pc(t,e){for(var r=t.length;r--;)if(oa(t[r][0],e))return r;return-1}var hT=Array.prototype,dT=hT.splice;function fT(t){var e=this.__data__,r=pc(e,t);if(r<0)return!1;var n=e.length-1;return r==n?e.pop():dT.call(e,r,1),--this.size,!0}function pT(t){var e=this.__data__,r=pc(e,t);return r<0?void 0:e[r][1]}function gT(t){return pc(this.__data__,t)>-1}function yT(t,e){var r=this.__data__,n=pc(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}function ci(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}ci.prototype.clear=uT,ci.prototype.delete=fT,ci.prototype.get=pT,ci.prototype.has=gT,ci.prototype.set=yT;var mT=ys(mn,\"Map\");const uo=mT;function bT(){this.size=0,this.__data__={hash:new ms,map:new(uo||ci),string:new ms}}function _T(t){var e=typeof t;return e==\"string\"||e==\"number\"||e==\"symbol\"||e==\"boolean\"?t!==\"__proto__\":t===null}function gc(t,e){var r=t.__data__;return _T(e)?r[typeof e==\"string\"?\"string\":\"hash\"]:r.map}function xT(t){var e=gc(this,t).delete(t);return this.size-=e?1:0,e}function vT(t){return gc(this,t).get(t)}function kT(t){return gc(this,t).has(t)}function wT(t,e){var r=gc(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this}function ui(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}ui.prototype.clear=bT,ui.prototype.delete=xT,ui.prototype.get=vT,ui.prototype.has=kT,ui.prototype.set=wT;var TT=\"Expected a function\";function la(t,e){if(typeof t!=\"function\"||e!=null&&typeof e!=\"function\")throw new TypeError(TT);var r=function(){var n=arguments,i=e?e.apply(this,n):n[0],s=r.cache;if(s.has(i))return s.get(i);var a=t.apply(this,n);return r.cache=s.set(i,a)||s,a};return r.cache=new(la.Cache||ui),r}la.Cache=ui;const ET={curveBasis:ta,curveBasisClosed:Ek,curveBasisOpen:Ck,curveLinear:Hr,curveLinearClosed:Sk,curveMonotoneX:Ak,curveMonotoneY:Lk,curveNatural:Dk,curveStep:Mk,curveStepAfter:Bk,curveStepBefore:Nk},p1=/%{2}{\\s*(?:(\\w+)\\s*:|(\\w+))\\s*(?:(\\w+)|((?:(?!}%{2}).|\\r?\\n)*))?\\s*(?:}%{2})?/gi,CT=/\\s*(?:(\\w+)(?=:):|(\\w+))\\s*(?:(\\w+)|((?:(?!}%{2}).|\\r?\\n)*))?\\s*(?:}%{2})?/gi,ST=function(t,e){const r=Ip(t,/(?:init\\b)|(?:initialize\\b)/);let n={};if(Array.isArray(r)){const i=r.map(s=>s.args);bs(i),n=gr(n,[...i])}else n=r.args;if(n){let i=h1(t,e);[\"config\"].forEach(s=>{n[s]!==void 0&&(i===\"flowchart-v2\"&&(i=\"flowchart\"),n[i]=n[s],delete n[s])})}return n},Ip=function(t,e=null){try{const r=new RegExp(`[%]{2}(?![{]${CT.source})(?=[}][%]{2}).*\n`,\"ig\");t=t.trim().replace(r,\"\").replace(/'/gm,'\"'),B.debug(`Detecting diagram directive${e!==null?\" type:\"+e:\"\"} based on the text:${t}`);let n;const i=[];for(;(n=p1.exec(t))!==null;)if(n.index===p1.lastIndex&&p1.lastIndex++,n&&!e||e&&n[1]&&n[1].match(e)||e&&n[2]&&n[2].match(e)){const s=n[1]?n[1]:n[2],a=n[3]?n[3].trim():n[4]?JSON.parse(n[4].trim()):null;i.push({type:s,args:a})}return i.length===0&&i.push({type:t,args:null}),i.length===1?i[0]:i}catch(r){return B.error(`ERROR: ${r.message} - Unable to parse directive\n ${e!==null?\" type:\"+e:\"\"} based on the text:${t}`),{type:null,args:null}}},AT=function(t,e){for(const[r,n]of e.entries())if(n.match(t))return r;return-1};function bn(t,e){if(!t)return e;const r=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return ET[r]||e}function LT(t,e){const r=t.trim();if(r)return e.securityLevel!==\"loose\"?ti(r):r}const DT=(t,...e)=>{const r=t.split(\".\"),n=r.length-1,i=r[n];let s=window;for(let a=0;a<n;a++)if(s=s[r[a]],!s)return;s[i](...e)};function yc(t,e){return t&&e?Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)):0}function MT(t){let e,r=0;t.forEach(s=>{r+=yc(s,e),e=s});let n=r/2,i;return e=void 0,t.forEach(s=>{if(e&&!i){const a=yc(s,e);if(a<n)n-=a;else{const o=n/a;o<=0&&(i=e),o>=1&&(i={x:s.x,y:s.y}),o>0&&o<1&&(i={x:(1-o)*e.x+o*s.x,y:(1-o)*e.y+o*s.y})}}e=s}),i}function NT(t){return t.length===1?t[0]:MT(t)}const BT=(t,e,r)=>{let n;B.info(`our points ${JSON.stringify(e)}`),e[0]!==r&&(e=e.reverse());let s=25,a;n=void 0,e.forEach(d=>{if(n&&!a){const f=yc(d,n);if(f<s)s-=f;else{const p=s/f;p<=0&&(a=n),p>=1&&(a={x:d.x,y:d.y}),p>0&&p<1&&(a={x:(1-p)*n.x+p*d.x,y:(1-p)*n.y+p*d.y})}}n=d});const o=t?10:5,l=Math.atan2(e[0].y-a.y,e[0].x-a.x),u={x:0,y:0};return u.x=Math.sin(l)*o+(e[0].x+a.x)/2,u.y=-Math.cos(l)*o+(e[0].y+a.y)/2,u};function IT(t,e,r){let n=JSON.parse(JSON.stringify(r)),i;B.info(\"our points\",n),e!==\"start_left\"&&e!==\"start_right\"&&(n=n.reverse()),n.forEach(f=>{i=f});let a=25+t,o;i=void 0,n.forEach(f=>{if(i&&!o){const p=yc(f,i);if(p<a)a-=p;else{const g=a/p;g<=0&&(o=i),g>=1&&(o={x:f.x,y:f.y}),g>0&&g<1&&(o={x:(1-g)*i.x+g*f.x,y:(1-g)*i.y+g*f.y})}}i=f});const l=10+t*.5,u=Math.atan2(n[0].y-o.y,n[0].x-o.x),d={x:0,y:0};return d.x=Math.sin(u)*l+(n[0].x+o.x)/2,d.y=-Math.cos(u)*l+(n[0].y+o.y)/2,e===\"start_left\"&&(d.x=Math.sin(u+Math.PI)*l+(n[0].x+o.x)/2,d.y=-Math.cos(u+Math.PI)*l+(n[0].y+o.y)/2),e===\"end_right\"&&(d.x=Math.sin(u-Math.PI)*l+(n[0].x+o.x)/2-5,d.y=-Math.cos(u-Math.PI)*l+(n[0].y+o.y)/2-5),e===\"end_left\"&&(d.x=Math.sin(u)*l+(n[0].x+o.x)/2-5,d.y=-Math.cos(u)*l+(n[0].y+o.y)/2-5),d}function Vi(t){let e=\"\",r=\"\";for(const n of t)n!==void 0&&(n.startsWith(\"color:\")||n.startsWith(\"text-align:\")?r=r+n+\";\":e=e+n+\";\");return{style:e,labelStyle:r}}let Op=0;const Rp=()=>(Op++,\"id-\"+Math.random().toString(36).substr(2,12)+\"-\"+Op);function OT(t){let e=\"\";const r=\"0123456789abcdef\",n=r.length;for(let i=0;i<t;i++)e+=r.charAt(Math.floor(Math.random()*n));return e}const Fp=t=>OT(t.length),RT=function(){return{x:0,y:0,fill:void 0,anchor:\"start\",style:\"#666\",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0}},FT=function(t,e){const r=e.text.replace(he.lineBreakRegex,\" \"),n=t.append(\"text\");n.attr(\"x\",e.x),n.attr(\"y\",e.y),n.style(\"text-anchor\",e.anchor),n.style(\"font-family\",e.fontFamily),n.style(\"font-size\",e.fontSize),n.style(\"font-weight\",e.fontWeight),n.attr(\"fill\",e.fill),e.class!==void 0&&n.attr(\"class\",e.class);const i=n.append(\"tspan\");return i.attr(\"x\",e.x+e.textMargin*2),i.attr(\"fill\",e.fill),i.text(r),n},Pp=la((t,e,r)=>{if(!t||(r=Object.assign({fontSize:12,fontWeight:400,fontFamily:\"Arial\",joinWith:\"<br/>\"},r),he.lineBreakRegex.test(t)))return t;const n=t.split(\" \"),i=[];let s=\"\";return n.forEach((a,o)=>{const l=Un(`${a} `,r),u=Un(s,r);if(l>e){const{hyphenatedStrings:p,remainingWord:g}=PT(a,e,\"-\",r);i.push(s,...p),s=g}else u+l>=e?(i.push(s),s=a):s=[s,a].filter(Boolean).join(\" \");o+1===n.length&&i.push(s)}),i.filter(a=>a!==\"\").join(r.joinWith)},(t,e,r)=>`${t}${e}${r.fontSize}${r.fontWeight}${r.fontFamily}${r.joinWith}`),PT=la((t,e,r=\"-\",n)=>{n=Object.assign({fontSize:12,fontWeight:400,fontFamily:\"Arial\",margin:0},n);const i=[...t],s=[];let a=\"\";return i.forEach((o,l)=>{const u=`${a}${o}`;if(Un(u,n)>=e){const f=l+1,p=i.length===f,g=`${u}${r}`;s.push(p?u:g),a=\"\"}else a=u}),{hyphenatedStrings:s,remainingWord:a}},(t,e,r=\"-\",n)=>`${t}${e}${r}${n.fontSize}${n.fontWeight}${n.fontFamily}`);function g1(t,e){return e=Object.assign({fontSize:12,fontWeight:400,fontFamily:\"Arial\",margin:15},e),y1(t,e).height}function Un(t,e){return e=Object.assign({fontSize:12,fontWeight:400,fontFamily:\"Arial\"},e),y1(t,e).width}const y1=la((t,e)=>{e=Object.assign({fontSize:12,fontWeight:400,fontFamily:\"Arial\"},e);const{fontSize:r,fontFamily:n,fontWeight:i}=e;if(!t)return{width:0,height:0};const s=[\"sans-serif\",n],a=t.split(he.lineBreakRegex),o=[],l=St(\"body\");if(!l.remove)return{width:0,height:0,lineHeight:0};const u=l.append(\"svg\");for(const f of s){let p=0;const g={width:0,height:0,lineHeight:0};for(const b of a){const k=RT();k.text=b;const T=FT(u,k).style(\"font-size\",r).style(\"font-weight\",i).style(\"font-family\",f),L=(T._groups||T)[0][0].getBBox();g.width=Math.round(Math.max(g.width,L.width)),p=Math.round(L.height),g.height+=p,g.lineHeight=Math.round(Math.max(g.lineHeight,p))}o.push(g)}u.remove();const d=isNaN(o[1].height)||isNaN(o[1].width)||isNaN(o[1].lineHeight)||o[0].height>o[1].height&&o[0].width>o[1].width&&o[0].lineHeight>o[1].lineHeight?0:1;return o[d]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`),YT=class{constructor(e,r){this.deterministic=e,this.seed=r,this.count=r?r.length:0}next(){return this.deterministic?this.count++:Date.now()}};let mc;const VT=function(t){return mc=mc||document.createElement(\"div\"),t=escape(t).replace(/%26/g,\"&\").replace(/%23/g,\"#\").replace(/%3B/g,\";\"),mc.innerHTML=t,unescape(mc.textContent)},bs=t=>{if(B.debug(\"directiveSanitizer called with\",t),typeof t==\"object\"&&(t.length?t.forEach(e=>bs(e)):Object.keys(t).forEach(e=>{B.debug(\"Checking key\",e),e.startsWith(\"__\")&&(B.debug(\"sanitize deleting __ option\",e),delete t[e]),e.includes(\"proto\")&&(B.debug(\"sanitize deleting proto option\",e),delete t[e]),e.includes(\"constr\")&&(B.debug(\"sanitize deleting constr option\",e),delete t[e]),e.includes(\"themeCSS\")&&(B.debug(\"sanitizing themeCss option\"),t[e]=bc(t[e])),e.includes(\"fontFamily\")&&(B.debug(\"sanitizing fontFamily option\"),t[e]=bc(t[e])),e.includes(\"altFontFamily\")&&(B.debug(\"sanitizing altFontFamily option\"),t[e]=bc(t[e])),A8.includes(e)?typeof t[e]==\"object\"&&(B.debug(\"sanitize deleting object\",e),bs(t[e])):(B.debug(\"sanitize deleting option\",e),delete t[e])})),t.themeVariables){const e=Object.keys(t.themeVariables);for(const r of e){const n=t.themeVariables[r];n&&n.match&&!n.match(/^[\\d \"#%(),.;A-Za-z]+$/)&&(t.themeVariables[r]=\"\")}}B.debug(\"After sanitization\",t)},bc=t=>{let e=0,r=0;for(const n of t){if(e<r)return\"{ /* ERROR: Unbalanced CSS */ }\";n===\"{\"?e++:n===\"}\"&&r++}return e!==r?\"{ /* ERROR: Unbalanced CSS */ }\":t};function m1(t){return\"str\"in t}function UT(t){return t instanceof Error?t.message:String(t)}const ge={assignWithDepth:gr,wrapLabel:Pp,calculateTextHeight:g1,calculateTextWidth:Un,calculateTextDimensions:y1,detectInit:ST,detectDirective:Ip,isSubstringInArray:AT,interpolateToCurve:bn,calcLabelPosition:NT,calcCardinalityPosition:BT,calcTerminalLabelPosition:IT,formatUrl:LT,getStylesFromArray:Vi,generateId:Rp,random:Fp,runFunc:DT,entityDecode:VT,initIdGenerator:YT,directiveSanitizer:bs,sanitizeCss:bc,insertTitle:(t,e,r,n)=>{if(!n)return;const i=t.node().getBBox();t.append(\"text\").text(n).attr(\"x\",i.x+i.width/2).attr(\"y\",-r).attr(\"class\",e)}};var Yp=\"comm\",Vp=\"rule\",Up=\"decl\",zT=\"@import\",WT=\"@keyframes\",HT=Math.abs,b1=String.fromCharCode;function zp(t){return t.trim()}function _1(t,e,r){return t.replace(e,r)}function GT(t,e){return t.indexOf(e)}function _c(t,e){return t.charCodeAt(e)|0}function ho(t,e,r){return t.slice(e,r)}function Ui(t){return t.length}function Wp(t){return t.length}function xc(t,e){return e.push(t),t}var vc=1,ca=1,Hp=0,rn=0,er=0,ua=\"\";function x1(t,e,r,n,i,s,a){return{value:t,root:e,parent:r,type:n,props:i,children:s,line:vc,column:ca,length:a,return:\"\"}}function qT(){return er}function jT(){return er=rn>0?_c(ua,--rn):0,ca--,er===10&&(ca=1,vc--),er}function _n(){return er=rn<Hp?_c(ua,rn++):0,ca++,er===10&&(ca=1,vc++),er}function _s(){return _c(ua,rn)}function kc(){return rn}function wc(t,e){return ho(ua,t,e)}function v1(t){switch(t){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function $T(t){return vc=ca=1,Hp=Ui(ua=t),rn=0,[]}function XT(t){return ua=\"\",t}function k1(t){return zp(wc(rn-1,w1(t===91?t+2:t===40?t+1:t)))}function KT(t){for(;(er=_s())&&er<33;)_n();return v1(t)>2||v1(er)>3?\"\":\" \"}function ZT(t,e){for(;--e&&_n()&&!(er<48||er>102||er>57&&er<65||er>70&&er<97););return wc(t,kc()+(e<6&&_s()==32&&_n()==32))}function w1(t){for(;_n();)switch(er){case t:return rn;case 34:case 39:t!==34&&t!==39&&w1(er);break;case 40:t===41&&w1(t);break;case 92:_n();break}return rn}function QT(t,e){for(;_n()&&t+er!==47+10;)if(t+er===42+42&&_s()===47)break;return\"/*\"+wc(e,rn-1)+\"*\"+b1(t===47?t:_n())}function JT(t){for(;!v1(_s());)_n();return wc(t,rn)}function tE(t){return XT(Tc(\"\",null,null,null,[\"\"],t=$T(t),0,[0],t))}function Tc(t,e,r,n,i,s,a,o,l){for(var u=0,d=0,f=a,p=0,g=0,b=0,k=1,T=1,L=1,E=0,I=\"\",V=i,H=s,G=n,Y=I;T;)switch(b=E,E=_n()){case 40:if(b!=108&&_c(Y,f-1)==58){GT(Y+=_1(k1(E),\"&\",\"&\\f\"),\"&\\f\")!=-1&&(L=-1);break}case 34:case 39:case 91:Y+=k1(E);break;case 9:case 10:case 13:case 32:Y+=KT(b);break;case 92:Y+=ZT(kc()-1,7);continue;case 47:switch(_s()){case 42:case 47:xc(eE(QT(_n(),kc()),e,r),l);break;default:Y+=\"/\"}break;case 123*k:o[u++]=Ui(Y)*L;case 125*k:case 59:case 0:switch(E){case 0:case 125:T=0;case 59+d:g>0&&Ui(Y)-f&&xc(g>32?qp(Y+\";\",n,r,f-1):qp(_1(Y,\" \",\"\")+\";\",n,r,f-2),l);break;case 59:Y+=\";\";default:if(xc(G=Gp(Y,e,r,u,d,i,o,I,V=[],H=[],f),s),E===123)if(d===0)Tc(Y,e,G,G,V,s,f,o,H);else switch(p){case 100:case 109:case 115:Tc(t,G,G,n&&xc(Gp(t,G,G,0,0,i,o,I,i,V=[],f),H),i,H,f,o,n?V:H);break;default:Tc(Y,G,G,G,[\"\"],H,0,o,H)}}u=d=g=0,k=L=1,I=Y=\"\",f=a;break;case 58:f=1+Ui(Y),g=b;default:if(k<1){if(E==123)--k;else if(E==125&&k++==0&&jT()==125)continue}switch(Y+=b1(E),E*k){case 38:L=d>0?1:(Y+=\"\\f\",-1);break;case 44:o[u++]=(Ui(Y)-1)*L,L=1;break;case 64:_s()===45&&(Y+=k1(_n())),p=_s(),d=f=Ui(I=Y+=JT(kc())),E++;break;case 45:b===45&&Ui(Y)==2&&(k=0)}}return s}function Gp(t,e,r,n,i,s,a,o,l,u,d){for(var f=i-1,p=i===0?s:[\"\"],g=Wp(p),b=0,k=0,T=0;b<n;++b)for(var L=0,E=ho(t,f+1,f=HT(k=a[b])),I=t;L<g;++L)(I=zp(k>0?p[L]+\" \"+E:_1(E,/&\\f/g,p[L])))&&(l[T++]=I);return x1(t,e,r,i===0?Vp:o,l,u,d)}function eE(t,e,r){return x1(t,e,r,Yp,b1(qT()),ho(t,2,-2),0)}function qp(t,e,r,n){return x1(t,e,r,Up,ho(t,0,n),ho(t,n+1,-1),n)}function T1(t,e){for(var r=\"\",n=Wp(t),i=0;i<n;i++)r+=e(t[i],i,t,e)||\"\";return r}function rE(t,e,r,n){switch(t.type){case zT:case Up:return t.return=t.return||t.value;case Yp:return\"\";case WT:return t.return=t.value+\"{\"+T1(t.children,n)+\"}\";case Vp:t.value=t.props.join(\",\")}return Ui(r=T1(t.children,n))?t.return=t.value+\"{\"+r+\"}\":\"\"}const Ec={name:\"mermaid\",version:\"9.3.0\",description:\"Markdown-ish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.\",main:\"./dist/mermaid.min.js\",module:\"./dist/mermaid.core.mjs\",types:\"./dist/mermaid.d.ts\",exports:{\".\":{require:\"./dist/mermaid.min.js\",import:\"./dist/mermaid.core.mjs\",types:\"./dist/mermaid.d.ts\"},\"./*\":\"./*\"},keywords:[\"diagram\",\"markdown\",\"flowchart\",\"sequence diagram\",\"gantt\",\"class diagram\",\"git graph\"],scripts:{clean:\"rimraf dist\",\"docs:code\":\"typedoc src/defaultConfig.ts src/config.ts src/mermaidAPI.ts && prettier --write ./src/docs/config/setup\",\"docs:build\":\"rimraf ../../docs && pnpm docs:spellcheck && pnpm docs:code && ts-node-esm src/docs.mts\",\"docs:verify\":\"pnpm docs:spellcheck && pnpm docs:code && ts-node-esm src/docs.mts --verify\",\"docs:pre:vitepress\":\"rimraf src/vitepress && pnpm docs:code && ts-node-esm src/docs.mts --vitepress\",\"docs:build:vitepress\":\"pnpm docs:pre:vitepress && vitepress build src/vitepress\",\"docs:dev\":'pnpm docs:pre:vitepress && concurrently \"vitepress dev src/vitepress\" \"ts-node-esm src/docs.mts --watch --vitepress\"',\"docs:serve\":\"pnpm docs:build:vitepress && vitepress serve src/vitepress\",\"docs:spellcheck\":'cspell --config ../../cSpell.json \"src/docs/**/*.md\"',release:\"pnpm build\",prepublishOnly:\"pnpm -w run build\"},repository:{type:\"git\",url:\"https://github.com/mermaid-js/mermaid\"},author:\"Knut Sveidqvist\",license:\"MIT\",standard:{ignore:[\"**/parser/*.js\",\"dist/**/*.js\",\"cypress/**/*.js\"],globals:[\"page\"]},dependencies:{\"@braintree/sanitize-url\":\"^6.0.0\",d3:\"^7.0.0\",\"dagre-d3-es\":\"7.0.6\",dompurify:\"2.4.1\",khroma:\"^2.0.0\",\"lodash-es\":\"^4.17.21\",\"moment-mini\":\"^2.24.0\",\"non-layered-tidy-tree-layout\":\"^2.0.2\",stylis:\"^4.1.2\",uuid:\"^9.0.0\"},devDependencies:{\"@types/d3\":\"^7.4.0\",\"@types/dompurify\":\"^2.4.0\",\"@types/jsdom\":\"^20.0.1\",\"@types/lodash-es\":\"^4.17.6\",\"@types/micromatch\":\"^4.0.2\",\"@types/prettier\":\"^2.7.1\",\"@types/stylis\":\"^4.0.2\",\"@types/uuid\":\"^8.3.4\",\"@typescript-eslint/eslint-plugin\":\"^5.42.1\",\"@typescript-eslint/parser\":\"^5.42.1\",chokidar:\"^3.5.3\",concurrently:\"^7.5.0\",coveralls:\"^3.1.1\",cspell:\"^6.14.3\",globby:\"^13.1.2\",jison:\"^0.4.18\",\"js-base64\":\"^3.7.2\",jsdom:\"^20.0.2\",micromatch:\"^4.0.5\",moment:\"^2.29.4\",\"path-browserify\":\"^1.0.1\",prettier:\"^2.7.1\",remark:\"^14.0.2\",rimraf:\"^3.0.2\",\"start-server-and-test\":\"^1.14.0\",typedoc:\"^0.23.18\",\"typedoc-plugin-markdown\":\"^3.13.6\",typescript:\"^4.8.4\",\"unist-util-flatmap\":\"^1.0.0\",vitepress:\"^1.0.0-alpha.28\",\"vitepress-plugin-search\":\"^1.0.4-alpha.15\"},files:[\"dist\",\"README.md\"],sideEffects:[\"**/*.css\",\"**/*.scss\"]},ha=Object.freeze(L8);let Pr=gr({},ha),jp,da=[],fo=gr({},ha);const Cc=(t,e)=>{let r=gr({},t),n={};for(const i of e)Kp(i),n=gr(n,i);if(r=gr(r,n),n.theme&&n.theme in oi){const i=gr({},jp),s=gr(i.themeVariables||{},n.themeVariables);r.theme&&r.theme in oi&&(r.themeVariables=oi[r.theme].getThemeVariables(s))}return fo=r,Jp(fo),fo},nE=t=>(Pr=gr({},ha),Pr=gr(Pr,t),t.theme&&oi[t.theme]&&(Pr.themeVariables=oi[t.theme].getThemeVariables(t.themeVariables)),Cc(Pr,da),Pr),iE=t=>{jp=gr({},t)},sE=t=>(Pr=gr(Pr,t),Cc(Pr,da),Pr),$p=()=>gr({},Pr),Xp=t=>(Jp(t),gr(fo,t),$()),$=()=>gr({},fo),Kp=t=>{var e;[\"secure\",...(e=Pr.secure)!=null?e:[]].forEach(r=>{t[r]!==void 0&&(B.debug(`Denied attempt to modify a secure key ${r}`,t[r]),delete t[r])}),Object.keys(t).forEach(r=>{r.indexOf(\"__\")===0&&delete t[r]}),Object.keys(t).forEach(r=>{typeof t[r]==\"string\"&&(t[r].includes(\"<\")||t[r].includes(\">\")||t[r].includes(\"url(data:\"))&&delete t[r],typeof t[r]==\"object\"&&Kp(t[r])})},E1=t=>{t.fontFamily&&(t.themeVariables?t.themeVariables.fontFamily||(t.themeVariables={fontFamily:t.fontFamily}):t.themeVariables={fontFamily:t.fontFamily}),da.push(t),Cc(Pr,da)},po=(t=Pr)=>{da=[],Cc(t,da)};var Zp=(t=>(t.LAZY_LOAD_DEPRECATED=\"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.\",t))(Zp||{});const Qp={},aE=t=>{Qp[t]||(B.warn(Zp[t]),Qp[t]=!0)},Jp=t=>{!t||(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&aE(\"LAZY_LOAD_DEPRECATED\")},oE=function(t,e){for(let r of e)t.attr(r[0],r[1])},lE=function(t,e,r){let n=new Map;return r?(n.set(\"width\",\"100%\"),n.set(\"style\",`max-width: ${e}px;`)):(n.set(\"height\",t),n.set(\"width\",e)),n},xn=function(t,e,r,n){const i=lE(e,r,n);oE(t,i)},Sc=function(t,e,r,n){const i=e.node().getBBox(),s=i.width,a=i.height;B.info(`SVG bounds: ${s}x${a}`,i);let o=0,l=0;B.info(`Graph bounds: ${o}x${l}`,t),o=s+r*2,l=a+r*2,B.info(`Calculated bounds: ${o}x${l}`),xn(e,l,o,n);const u=`${i.x-r} ${i.y-r} ${i.width+2*r} ${i.height+2*r}`;e.attr(\"viewBox\",u)},go=t=>`g.classGroup text {\n fill: ${t.nodeBorder};\n fill: ${t.classText};\n stroke: none;\n font-family: ${t.fontFamily};\n font-size: 10px;\n\n .title {\n font-weight: bolder;\n }\n\n}\n\n.nodeLabel, .edgeLabel {\n color: ${t.classText};\n}\n.edgeLabel .label rect {\n fill: ${t.mainBkg};\n}\n.label text {\n fill: ${t.classText};\n}\n.edgeLabel .label span {\n background: ${t.mainBkg};\n}\n\n.classTitle {\n font-weight: bolder;\n}\n.node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n\n\n.divider {\n stroke: ${t.nodeBorder};\n stroke: 1;\n}\n\ng.clickable {\n cursor: pointer;\n}\n\ng.classGroup rect {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n}\n\ng.classGroup line {\n stroke: ${t.nodeBorder};\n stroke-width: 1;\n}\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${t.mainBkg};\n opacity: 0.5;\n}\n\n.classLabel .label {\n fill: ${t.nodeBorder};\n font-size: 10px;\n}\n\n.relation {\n stroke: ${t.lineColor};\n stroke-width: 1;\n fill: none;\n}\n\n.dashed-line{\n stroke-dasharray: 3;\n}\n\n.dotted-line{\n stroke-dasharray: 1 2;\n}\n\n#compositionStart, .composition {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#compositionEnd, .composition {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionStart, .extension {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopStart, .lollipop {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopEnd, .lollipop {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n.edgeTerminals {\n font-size: 11px;\n}\n\n.classTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n}\n`,tg=t=>`\n .entityBox {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n }\n\n .attributeBoxOdd {\n fill: ${t.attributeBackgroundColorOdd};\n stroke: ${t.nodeBorder};\n }\n\n .attributeBoxEven {\n fill: ${t.attributeBackgroundColorEven};\n stroke: ${t.nodeBorder};\n }\n\n .relationshipLabelBox {\n fill: ${t.tertiaryColor};\n opacity: 0.7;\n background-color: ${t.tertiaryColor};\n rect {\n opacity: 0.5;\n }\n }\n\n .relationshipLine {\n stroke: ${t.lineColor};\n }\n\n .entityTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n } \n`,eg=()=>\"\",Ac=t=>`.label {\n font-family: ${t.fontFamily};\n color: ${t.nodeTextColor||t.textColor};\n }\n .cluster-label text {\n fill: ${t.titleColor};\n }\n .cluster-label span {\n color: ${t.titleColor};\n }\n\n .label text,span {\n fill: ${t.nodeTextColor||t.textColor};\n color: ${t.nodeTextColor||t.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${t.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${t.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${t.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${t.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${t.edgeLabelBackground};\n fill: ${t.edgeLabelBackground};\n }\n text-align: center;\n }\n\n .cluster rect {\n fill: ${t.clusterBkg};\n stroke: ${t.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${t.titleColor};\n }\n\n .cluster span {\n color: ${t.titleColor};\n }\n /* .cluster div {\n color: ${t.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${t.fontFamily};\n font-size: 12px;\n background: ${t.tertiaryColor};\n border: 1px solid ${t.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n }\n`,rg=t=>`\n .mermaid-main-font {\n font-family: \"trebuchet ms\", verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n .exclude-range {\n fill: ${t.excludeBkgColor};\n }\n\n .section {\n stroke: none;\n opacity: 0.2;\n }\n\n .section0 {\n fill: ${t.sectionBkgColor};\n }\n\n .section2 {\n fill: ${t.sectionBkgColor2};\n }\n\n .section1,\n .section3 {\n fill: ${t.altSectionBkgColor};\n opacity: 0.2;\n }\n\n .sectionTitle0 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle1 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle2 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle3 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle {\n text-anchor: start;\n // font-size: ${t.ganttFontSize};\n // text-height: 14px;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n\n }\n\n\n /* Grid and axis */\n\n .grid .tick {\n stroke: ${t.gridColor};\n opacity: 0.8;\n shape-rendering: crispEdges;\n text {\n font-family: ${t.fontFamily};\n fill: ${t.textColor};\n }\n }\n\n .grid path {\n stroke-width: 0;\n }\n\n\n /* Today line */\n\n .today {\n fill: none;\n stroke: ${t.todayLineColor};\n stroke-width: 2px;\n }\n\n\n /* Task styling */\n\n /* Default task */\n\n .task {\n stroke-width: 2;\n }\n\n .taskText {\n text-anchor: middle;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n\n // .taskText:not([font-size]) {\n // font-size: ${t.ganttFontSize};\n // }\n\n .taskTextOutsideRight {\n fill: ${t.taskTextDarkColor};\n text-anchor: start;\n // font-size: ${t.ganttFontSize};\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n\n }\n\n .taskTextOutsideLeft {\n fill: ${t.taskTextDarkColor};\n text-anchor: end;\n // font-size: ${t.ganttFontSize};\n }\n\n /* Special case clickable */\n .task.clickable {\n cursor: pointer;\n }\n .taskText.clickable {\n cursor: pointer;\n fill: ${t.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideLeft.clickable {\n cursor: pointer;\n fill: ${t.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideRight.clickable {\n cursor: pointer;\n fill: ${t.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n /* Specific task settings for the sections*/\n\n .taskText0,\n .taskText1,\n .taskText2,\n .taskText3 {\n fill: ${t.taskTextColor};\n }\n\n .task0,\n .task1,\n .task2,\n .task3 {\n fill: ${t.taskBkgColor};\n stroke: ${t.taskBorderColor};\n }\n\n .taskTextOutside0,\n .taskTextOutside2\n {\n fill: ${t.taskTextOutsideColor};\n }\n\n .taskTextOutside1,\n .taskTextOutside3 {\n fill: ${t.taskTextOutsideColor};\n }\n\n\n /* Active task */\n\n .active0,\n .active1,\n .active2,\n .active3 {\n fill: ${t.activeTaskBkgColor};\n stroke: ${t.activeTaskBorderColor};\n }\n\n .activeText0,\n .activeText1,\n .activeText2,\n .activeText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n\n /* Completed task */\n\n .done0,\n .done1,\n .done2,\n .done3 {\n stroke: ${t.doneTaskBorderColor};\n fill: ${t.doneTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneText0,\n .doneText1,\n .doneText2,\n .doneText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n\n /* Tasks on the critical line */\n\n .crit0,\n .crit1,\n .crit2,\n .crit3 {\n stroke: ${t.critBorderColor};\n fill: ${t.critBkgColor};\n stroke-width: 2;\n }\n\n .activeCrit0,\n .activeCrit1,\n .activeCrit2,\n .activeCrit3 {\n stroke: ${t.critBorderColor};\n fill: ${t.activeTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneCrit0,\n .doneCrit1,\n .doneCrit2,\n .doneCrit3 {\n stroke: ${t.critBorderColor};\n fill: ${t.doneTaskBkgColor};\n stroke-width: 2;\n cursor: pointer;\n shape-rendering: crispEdges;\n }\n\n .milestone {\n transform: rotate(45deg) scale(0.8,0.8);\n }\n\n .milestoneText {\n font-style: italic;\n }\n .doneCritText0,\n .doneCritText1,\n .doneCritText2,\n .doneCritText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n .activeCritText0,\n .activeCritText1,\n .activeCritText2,\n .activeCritText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n .titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor} ;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n`,ng=()=>\"\",ig=t=>`\n .pieCircle{\n stroke: ${t.pieStrokeColor};\n stroke-width : ${t.pieStrokeWidth};\n opacity : ${t.pieOpacity};\n }\n .pieTitleText {\n text-anchor: middle;\n font-size: ${t.pieTitleTextSize};\n fill: ${t.pieTitleTextColor};\n font-family: ${t.fontFamily};\n }\n .slice {\n font-family: ${t.fontFamily};\n fill: ${t.pieSectionTextColor};\n font-size:${t.pieSectionTextSize};\n // fill: white;\n }\n .legend text {\n fill: ${t.pieLegendTextColor};\n font-family: ${t.fontFamily};\n font-size: ${t.pieLegendTextSize};\n }\n`,sg=t=>`\n\n marker {\n fill: ${t.relationColor};\n stroke: ${t.relationColor};\n }\n\n marker.cross {\n stroke: ${t.lineColor};\n }\n\n svg {\n font-family: ${t.fontFamily};\n font-size: ${t.fontSize};\n }\n\n .reqBox {\n fill: ${t.requirementBackground};\n fill-opacity: 100%;\n stroke: ${t.requirementBorderColor};\n stroke-width: ${t.requirementBorderSize};\n }\n \n .reqTitle, .reqLabel{\n fill: ${t.requirementTextColor};\n }\n .reqLabelBox {\n fill: ${t.relationLabelBackground};\n fill-opacity: 100%;\n }\n\n .req-title-line {\n stroke: ${t.requirementBorderColor};\n stroke-width: ${t.requirementBorderSize};\n }\n .relationshipLine {\n stroke: ${t.relationColor};\n stroke-width: 1;\n }\n .relationshipLabel {\n fill: ${t.relationLabelColor};\n }\n\n`,ag=t=>`.actor {\n stroke: ${t.actorBorder};\n fill: ${t.actorBkg};\n }\n\n text.actor > tspan {\n fill: ${t.actorTextColor};\n stroke: none;\n }\n\n .actor-line {\n stroke: ${t.actorLineColor};\n }\n\n .messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: none;\n stroke: ${t.signalColor};\n }\n\n .messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: 2, 2;\n stroke: ${t.signalColor};\n }\n\n #arrowhead path {\n fill: ${t.signalColor};\n stroke: ${t.signalColor};\n }\n\n .sequenceNumber {\n fill: ${t.sequenceNumberColor};\n }\n\n #sequencenumber {\n fill: ${t.signalColor};\n }\n\n #crosshead path {\n fill: ${t.signalColor};\n stroke: ${t.signalColor};\n }\n\n .messageText {\n fill: ${t.signalTextColor};\n stroke: none;\n }\n\n .labelBox {\n stroke: ${t.labelBoxBorderColor};\n fill: ${t.labelBoxBkgColor};\n }\n\n .labelText, .labelText > tspan {\n fill: ${t.labelTextColor};\n stroke: none;\n }\n\n .loopText, .loopText > tspan {\n fill: ${t.loopTextColor};\n stroke: none;\n }\n\n .loopLine {\n stroke-width: 2px;\n stroke-dasharray: 2, 2;\n stroke: ${t.labelBoxBorderColor};\n fill: ${t.labelBoxBorderColor};\n }\n\n .note {\n //stroke: #decc93;\n stroke: ${t.noteBorderColor};\n fill: ${t.noteBkgColor};\n }\n\n .noteText, .noteText > tspan {\n fill: ${t.noteTextColor};\n stroke: none;\n }\n\n .activation0 {\n fill: ${t.activationBkgColor};\n stroke: ${t.activationBorderColor};\n }\n\n .activation1 {\n fill: ${t.activationBkgColor};\n stroke: ${t.activationBorderColor};\n }\n\n .activation2 {\n fill: ${t.activationBkgColor};\n stroke: ${t.activationBorderColor};\n }\n\n .actorPopupMenu {\n position: absolute;\n }\n\n .actorPopupMenuPanel {\n position: absolute;\n fill: ${t.actorBkg};\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));\n}\n .actor-man line {\n stroke: ${t.actorBorder};\n fill: ${t.actorBkg};\n }\n .actor-man circle, line {\n stroke: ${t.actorBorder};\n fill: ${t.actorBkg};\n stroke-width: 2px;\n }\n`,Lc=t=>`\ndefs #statediagram-barbEnd {\n fill: ${t.transitionColor};\n stroke: ${t.transitionColor};\n }\ng.stateGroup text {\n fill: ${t.nodeBorder};\n stroke: none;\n font-size: 10px;\n}\ng.stateGroup text {\n fill: ${t.textColor};\n stroke: none;\n font-size: 10px;\n\n}\ng.stateGroup .state-title {\n font-weight: bolder;\n fill: ${t.stateLabelColor};\n}\n\ng.stateGroup rect {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n}\n\ng.stateGroup line {\n stroke: ${t.lineColor};\n stroke-width: 1;\n}\n\n.transition {\n stroke: ${t.transitionColor};\n stroke-width: 1;\n fill: none;\n}\n\n.stateGroup .composit {\n fill: ${t.background};\n border-bottom: 1px\n}\n\n.stateGroup .alt-composit {\n fill: #e0e0e0;\n border-bottom: 1px\n}\n\n.state-note {\n stroke: ${t.noteBorderColor};\n fill: ${t.noteBkgColor};\n\n text {\n fill: ${t.noteTextColor};\n stroke: none;\n font-size: 10px;\n }\n}\n\n.stateLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${t.mainBkg};\n opacity: 0.5;\n}\n\n.edgeLabel .label rect {\n fill: ${t.labelBackgroundColor};\n opacity: 0.5;\n}\n.edgeLabel .label text {\n fill: ${t.transitionLabelColor||t.tertiaryTextColor};\n}\n.label div .edgeLabel {\n color: ${t.transitionLabelColor||t.tertiaryTextColor};\n}\n\n.stateLabel text {\n fill: ${t.stateLabelColor};\n font-size: 10px;\n font-weight: bold;\n}\n\n.node circle.state-start {\n fill: ${t.specialStateColor};\n stroke: ${t.specialStateColor};\n}\n\n.node .fork-join {\n fill: ${t.specialStateColor};\n stroke: ${t.specialStateColor};\n}\n\n.node circle.state-end {\n fill: ${t.innerEndBackground};\n stroke: ${t.background};\n stroke-width: 1.5\n}\n.end-state-inner {\n fill: ${t.compositeBackground||t.background};\n // stroke: ${t.background};\n stroke-width: 1.5\n}\n\n.node rect {\n fill: ${t.stateBkg||t.mainBkg};\n stroke: ${t.stateBorder||t.nodeBorder};\n stroke-width: 1px;\n}\n.node polygon {\n fill: ${t.mainBkg};\n stroke: ${t.stateBorder||t.nodeBorder};;\n stroke-width: 1px;\n}\n#statediagram-barbEnd {\n fill: ${t.lineColor};\n}\n\n.statediagram-cluster rect {\n fill: ${t.compositeTitleBackground};\n stroke: ${t.stateBorder||t.nodeBorder};\n stroke-width: 1px;\n}\n\n.cluster-label, .nodeLabel {\n color: ${t.stateLabelColor};\n}\n\n.statediagram-cluster rect.outer {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state .divider {\n stroke: ${t.stateBorder||t.nodeBorder};\n}\n\n.statediagram-state .title-state {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-cluster.statediagram-cluster .inner {\n fill: ${t.compositeBackground||t.background};\n}\n.statediagram-cluster.statediagram-cluster-alt .inner {\n fill: ${t.altBackground?t.altBackground:\"#efefef\"};\n}\n\n.statediagram-cluster .inner {\n rx:0;\n ry:0;\n}\n\n.statediagram-state rect.basic {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state rect.divider {\n stroke-dasharray: 10,10;\n fill: ${t.altBackground?t.altBackground:\"#efefef\"};\n}\n\n.note-edge {\n stroke-dasharray: 5;\n}\n\n.statediagram-note rect {\n fill: ${t.noteBkgColor};\n stroke: ${t.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n.statediagram-note rect {\n fill: ${t.noteBkgColor};\n stroke: ${t.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n\n.statediagram-note text {\n fill: ${t.noteTextColor};\n}\n\n.statediagram-note .nodeLabel {\n color: ${t.noteTextColor};\n}\n.statediagram .edgeLabel {\n color: red; // ${t.noteTextColor};\n}\n\n#dependencyStart, #dependencyEnd {\n fill: ${t.lineColor};\n stroke: ${t.lineColor};\n stroke-width: 1;\n}\n\n.statediagramTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n}\n`,og=t=>`.label {\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n color: ${t.textColor};\n }\n .mouth {\n stroke: #666;\n }\n\n line {\n stroke: ${t.textColor}\n }\n\n .legend {\n fill: ${t.textColor};\n }\n\n .label text {\n fill: #333;\n }\n .label {\n color: ${t.textColor}\n }\n\n .face {\n ${t.faceColor?`fill: ${t.faceColor}`:\"fill: #FFF8DC\"};\n stroke: #999;\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${t.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${t.lineColor};\n stroke-width: 1.5px;\n }\n\n .flowchart-link {\n stroke: ${t.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${t.edgeLabelBackground};\n rect {\n opacity: 0.5;\n }\n text-align: center;\n }\n\n .cluster rect {\n }\n\n .cluster text {\n fill: ${t.titleColor};\n }\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n font-size: 12px;\n background: ${t.tertiaryColor};\n border: 1px solid ${t.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .task-type-0, .section-type-0 {\n ${t.fillType0?`fill: ${t.fillType0}`:\"\"};\n }\n .task-type-1, .section-type-1 {\n ${t.fillType0?`fill: ${t.fillType1}`:\"\"};\n }\n .task-type-2, .section-type-2 {\n ${t.fillType0?`fill: ${t.fillType2}`:\"\"};\n }\n .task-type-3, .section-type-3 {\n ${t.fillType0?`fill: ${t.fillType3}`:\"\"};\n }\n .task-type-4, .section-type-4 {\n ${t.fillType0?`fill: ${t.fillType4}`:\"\"};\n }\n .task-type-5, .section-type-5 {\n ${t.fillType0?`fill: ${t.fillType5}`:\"\"};\n }\n .task-type-6, .section-type-6 {\n ${t.fillType0?`fill: ${t.fillType6}`:\"\"};\n }\n .task-type-7, .section-type-7 {\n ${t.fillType0?`fill: ${t.fillType7}`:\"\"};\n }\n\n .actor-0 {\n ${t.actor0?`fill: ${t.actor0}`:\"\"};\n }\n .actor-1 {\n ${t.actor1?`fill: ${t.actor1}`:\"\"};\n }\n .actor-2 {\n ${t.actor2?`fill: ${t.actor2}`:\"\"};\n }\n .actor-3 {\n ${t.actor3?`fill: ${t.actor3}`:\"\"};\n }\n .actor-4 {\n ${t.actor4?`fill: ${t.actor4}`:\"\"};\n }\n .actor-5 {\n ${t.actor5?`fill: ${t.actor5}`:\"\"};\n }\n`,lg=t=>`.person {\n stroke: ${t.personBorder};\n fill: ${t.personBkg};\n }\n`,Dc={flowchart:Ac,\"flowchart-v2\":Ac,sequence:ag,gantt:rg,classDiagram:go,\"classDiagram-v2\":go,class:go,stateDiagram:Lc,state:Lc,info:ng,pie:ig,er:tg,error:eg,journey:og,requirement:sg,c4:lg},cE=(t,e,r)=>{let n=\"\";return t in Dc&&Dc[t]?n=Dc[t](r):B.warn(`No theme found for ${t}`),` & {\n font-family: ${r.fontFamily};\n font-size: ${r.fontSize};\n fill: ${r.textColor}\n }\n\n /* Classes common for multiple diagrams */\n\n & .error-icon {\n fill: ${r.errorBkgColor};\n }\n & .error-text {\n fill: ${r.errorTextColor};\n stroke: ${r.errorTextColor};\n }\n\n & .edge-thickness-normal {\n stroke-width: 2px;\n }\n & .edge-thickness-thick {\n stroke-width: 3.5px\n }\n & .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n\n & .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n & .marker {\n fill: ${r.lineColor};\n stroke: ${r.lineColor};\n }\n & .marker.cross {\n stroke: ${r.lineColor};\n }\n\n & svg {\n font-family: ${r.fontFamily};\n font-size: ${r.fontSize};\n }\n\n ${n}\n\n ${e}\n`},uE=(t,e)=>{Dc[t]=e},hE=cE,dE=B,fE=Qu,yo=$,pE=t=>yn(t,yo()),cg=Sc,Mc={},yr=(t,e,r)=>{if(Mc[t])throw new Error(`Diagram ${t} already registered.`);Mc[t]=e,r&&Lp(t,r),uE(t,e.styles),e.injectUtils&&e.injectUtils(dE,fE,yo,pE,cg)},ug=t=>{if(t in Mc)return Mc[t];throw new Error(`Diagram ${t} not found.`)};var C1=function(){var t=function(W,N,D,w){for(D=D||{},w=W.length;w--;D[W[w]]=N);return D},e=[1,4],r=[1,7],n=[1,5],i=[1,9],s=[1,6],a=[2,6],o=[1,16],l=[6,8,14,20,22,24,25,27,29,32,37,40,50,55],u=[8,14,20,22,24,25,27,29,32,37,40],d=[8,13,14,20,22,24,25,27,29,32,37,40],f=[1,26],p=[6,8,14,50,55],g=[8,14,55],b=[1,53],k=[1,52],T=[8,14,30,33,35,38,55],L=[1,67],E=[1,68],I=[1,69],V=[8,14,33,35,42,55],H={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,GG:6,document:7,EOF:8,\":\":9,DIR:10,options:11,body:12,OPT:13,NL:14,line:15,statement:16,commitStatement:17,mergeStatement:18,cherryPickStatement:19,acc_title:20,acc_title_value:21,acc_descr:22,acc_descr_value:23,acc_descr_multiline_value:24,section:25,branchStatement:26,CHECKOUT:27,ref:28,BRANCH:29,ORDER:30,NUM:31,CHERRY_PICK:32,COMMIT_ID:33,STR:34,COMMIT_TAG:35,EMPTYSTR:36,MERGE:37,COMMIT_TYPE:38,commitType:39,COMMIT:40,commit_arg:41,COMMIT_MSG:42,NORMAL:43,REVERSE:44,HIGHLIGHT:45,openDirective:46,typeDirective:47,closeDirective:48,argDirective:49,open_directive:50,type_directive:51,arg_directive:52,close_directive:53,ID:54,\";\":55,$accept:0,$end:1},terminals_:{2:\"error\",6:\"GG\",8:\"EOF\",9:\":\",10:\"DIR\",13:\"OPT\",14:\"NL\",20:\"acc_title\",21:\"acc_title_value\",22:\"acc_descr\",23:\"acc_descr_value\",24:\"acc_descr_multiline_value\",25:\"section\",27:\"CHECKOUT\",29:\"BRANCH\",30:\"ORDER\",31:\"NUM\",32:\"CHERRY_PICK\",33:\"COMMIT_ID\",34:\"STR\",35:\"COMMIT_TAG\",36:\"EMPTYSTR\",37:\"MERGE\",38:\"COMMIT_TYPE\",40:\"COMMIT\",42:\"COMMIT_MSG\",43:\"NORMAL\",44:\"REVERSE\",45:\"HIGHLIGHT\",50:\"open_directive\",51:\"type_directive\",52:\"arg_directive\",53:\"close_directive\",54:\"ID\",55:\";\"},productions_:[0,[3,2],[3,2],[3,3],[3,4],[3,5],[7,0],[7,2],[11,2],[11,1],[12,0],[12,2],[15,2],[15,1],[16,1],[16,1],[16,1],[16,2],[16,2],[16,1],[16,1],[16,1],[16,2],[26,2],[26,4],[19,3],[19,5],[19,5],[19,5],[19,5],[18,2],[18,4],[18,4],[18,4],[18,6],[18,6],[18,6],[18,6],[18,6],[18,6],[18,8],[18,8],[18,8],[18,8],[18,8],[18,8],[17,2],[17,3],[17,3],[17,5],[17,5],[17,3],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,3],[17,5],[17,5],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[41,0],[41,1],[39,1],[39,1],[39,1],[5,3],[5,5],[46,1],[47,1],[49,1],[48,1],[28,1],[28,1],[4,1],[4,1],[4,1]],performAction:function(N,D,w,v,M,m,Q){var x=m.length-1;switch(M){case 3:return m[x];case 4:return m[x-1];case 5:return v.setDirection(m[x-3]),m[x-1];case 7:v.setOptions(m[x-1]),this.$=m[x];break;case 8:m[x-1]+=m[x],this.$=m[x-1];break;case 10:this.$=[];break;case 11:m[x-1].push(m[x]),this.$=m[x-1];break;case 12:this.$=m[x-1];break;case 17:this.$=m[x].trim(),v.setAccTitle(this.$);break;case 18:case 19:this.$=m[x].trim(),v.setAccDescription(this.$);break;case 20:v.addSection(m[x].substr(8)),this.$=m[x].substr(8);break;case 22:v.checkout(m[x]);break;case 23:v.branch(m[x]);break;case 24:v.branch(m[x-2],m[x]);break;case 25:v.cherryPick(m[x],\"\",void 0);break;case 26:v.cherryPick(m[x-2],\"\",m[x]);break;case 27:case 29:v.cherryPick(m[x-2],\"\",\"\");break;case 28:v.cherryPick(m[x],\"\",m[x-2]);break;case 30:v.merge(m[x],\"\",\"\",\"\");break;case 31:v.merge(m[x-2],m[x],\"\",\"\");break;case 32:v.merge(m[x-2],\"\",m[x],\"\");break;case 33:v.merge(m[x-2],\"\",\"\",m[x]);break;case 34:v.merge(m[x-4],m[x],\"\",m[x-2]);break;case 35:v.merge(m[x-4],\"\",m[x],m[x-2]);break;case 36:v.merge(m[x-4],\"\",m[x-2],m[x]);break;case 37:v.merge(m[x-4],m[x-2],m[x],\"\");break;case 38:v.merge(m[x-4],m[x-2],\"\",m[x]);break;case 39:v.merge(m[x-4],m[x],m[x-2],\"\");break;case 40:v.merge(m[x-6],m[x-4],m[x-2],m[x]);break;case 41:v.merge(m[x-6],m[x],m[x-4],m[x-2]);break;case 42:v.merge(m[x-6],m[x-4],m[x],m[x-2]);break;case 43:v.merge(m[x-6],m[x-2],m[x-4],m[x]);break;case 44:v.merge(m[x-6],m[x],m[x-2],m[x-4]);break;case 45:v.merge(m[x-6],m[x-2],m[x],m[x-4]);break;case 46:v.commit(m[x]);break;case 47:v.commit(\"\",\"\",v.commitType.NORMAL,m[x]);break;case 48:v.commit(\"\",\"\",m[x],\"\");break;case 49:v.commit(\"\",\"\",m[x],m[x-2]);break;case 50:v.commit(\"\",\"\",m[x-2],m[x]);break;case 51:v.commit(\"\",m[x],v.commitType.NORMAL,\"\");break;case 52:v.commit(\"\",m[x-2],v.commitType.NORMAL,m[x]);break;case 53:v.commit(\"\",m[x],v.commitType.NORMAL,m[x-2]);break;case 54:v.commit(\"\",m[x-2],m[x],\"\");break;case 55:v.commit(\"\",m[x],m[x-2],\"\");break;case 56:v.commit(\"\",m[x-4],m[x-2],m[x]);break;case 57:v.commit(\"\",m[x-4],m[x],m[x-2]);break;case 58:v.commit(\"\",m[x-2],m[x-4],m[x]);break;case 59:v.commit(\"\",m[x],m[x-4],m[x-2]);break;case 60:v.commit(\"\",m[x],m[x-2],m[x-4]);break;case 61:v.commit(\"\",m[x-2],m[x],m[x-4]);break;case 62:v.commit(m[x],\"\",v.commitType.NORMAL,\"\");break;case 63:v.commit(m[x],\"\",v.commitType.NORMAL,m[x-2]);break;case 64:v.commit(m[x-2],\"\",v.commitType.NORMAL,m[x]);break;case 65:v.commit(m[x-2],\"\",m[x],\"\");break;case 66:v.commit(m[x],\"\",m[x-2],\"\");break;case 67:v.commit(m[x],m[x-2],v.commitType.NORMAL,\"\");break;case 68:v.commit(m[x-2],m[x],v.commitType.NORMAL,\"\");break;case 69:v.commit(m[x-4],\"\",m[x-2],m[x]);break;case 70:v.commit(m[x-4],\"\",m[x],m[x-2]);break;case 71:v.commit(m[x-2],\"\",m[x-4],m[x]);break;case 72:v.commit(m[x],\"\",m[x-4],m[x-2]);break;case 73:v.commit(m[x],\"\",m[x-2],m[x-4]);break;case 74:v.commit(m[x-2],\"\",m[x],m[x-4]);break;case 75:v.commit(m[x-4],m[x],m[x-2],\"\");break;case 76:v.commit(m[x-4],m[x-2],m[x],\"\");break;case 77:v.commit(m[x-2],m[x],m[x-4],\"\");break;case 78:v.commit(m[x],m[x-2],m[x-4],\"\");break;case 79:v.commit(m[x],m[x-4],m[x-2],\"\");break;case 80:v.commit(m[x-2],m[x-4],m[x],\"\");break;case 81:v.commit(m[x-4],m[x],v.commitType.NORMAL,m[x-2]);break;case 82:v.commit(m[x-4],m[x-2],v.commitType.NORMAL,m[x]);break;case 83:v.commit(m[x-2],m[x],v.commitType.NORMAL,m[x-4]);break;case 84:v.commit(m[x],m[x-2],v.commitType.NORMAL,m[x-4]);break;case 85:v.commit(m[x],m[x-4],v.commitType.NORMAL,m[x-2]);break;case 86:v.commit(m[x-2],m[x-4],v.commitType.NORMAL,m[x]);break;case 87:v.commit(m[x-6],m[x-4],m[x-2],m[x]);break;case 88:v.commit(m[x-6],m[x-4],m[x],m[x-2]);break;case 89:v.commit(m[x-6],m[x-2],m[x-4],m[x]);break;case 90:v.commit(m[x-6],m[x],m[x-4],m[x-2]);break;case 91:v.commit(m[x-6],m[x-2],m[x],m[x-4]);break;case 92:v.commit(m[x-6],m[x],m[x-2],m[x-4]);break;case 93:v.commit(m[x-4],m[x-6],m[x-2],m[x]);break;case 94:v.commit(m[x-4],m[x-6],m[x],m[x-2]);break;case 95:v.commit(m[x-2],m[x-6],m[x-4],m[x]);break;case 96:v.commit(m[x],m[x-6],m[x-4],m[x-2]);break;case 97:v.commit(m[x-2],m[x-6],m[x],m[x-4]);break;case 98:v.commit(m[x],m[x-6],m[x-2],m[x-4]);break;case 99:v.commit(m[x],m[x-4],m[x-2],m[x-6]);break;case 100:v.commit(m[x-2],m[x-4],m[x],m[x-6]);break;case 101:v.commit(m[x],m[x-2],m[x-4],m[x-6]);break;case 102:v.commit(m[x-2],m[x],m[x-4],m[x-6]);break;case 103:v.commit(m[x-4],m[x-2],m[x],m[x-6]);break;case 104:v.commit(m[x-4],m[x],m[x-2],m[x-6]);break;case 105:v.commit(m[x-2],m[x-4],m[x-6],m[x]);break;case 106:v.commit(m[x],m[x-4],m[x-6],m[x-2]);break;case 107:v.commit(m[x-2],m[x],m[x-6],m[x-4]);break;case 108:v.commit(m[x],m[x-2],m[x-6],m[x-4]);break;case 109:v.commit(m[x-4],m[x-2],m[x-6],m[x]);break;case 110:v.commit(m[x-4],m[x],m[x-6],m[x-2]);break;case 111:this.$=\"\";break;case 112:this.$=m[x];break;case 113:this.$=v.commitType.NORMAL;break;case 114:this.$=v.commitType.REVERSE;break;case 115:this.$=v.commitType.HIGHLIGHT;break;case 118:v.parseDirective(\"%%{\",\"open_directive\");break;case 119:v.parseDirective(m[x],\"type_directive\");break;case 120:m[x]=m[x].trim().replace(/'/g,'\"'),v.parseDirective(m[x],\"arg_directive\");break;case 121:v.parseDirective(\"}%%\",\"close_directive\",\"gitGraph\");break}},table:[{3:1,4:2,5:3,6:e,8:r,14:n,46:8,50:i,55:s},{1:[3]},{3:10,4:2,5:3,6:e,8:r,14:n,46:8,50:i,55:s},{3:11,4:2,5:3,6:e,8:r,14:n,46:8,50:i,55:s},{7:12,8:a,9:[1,13],10:[1,14],11:15,14:o},t(l,[2,124]),t(l,[2,125]),t(l,[2,126]),{47:17,51:[1,18]},{51:[2,118]},{1:[2,1]},{1:[2,2]},{8:[1,19]},{7:20,8:a,11:15,14:o},{9:[1,21]},t(u,[2,10],{12:22,13:[1,23]}),t(d,[2,9]),{9:[1,25],48:24,53:f},t([9,53],[2,119]),{1:[2,3]},{8:[1,27]},{7:28,8:a,11:15,14:o},{8:[2,7],14:[1,31],15:29,16:30,17:32,18:33,19:34,20:[1,35],22:[1,36],24:[1,37],25:[1,38],26:39,27:[1,40],29:[1,44],32:[1,43],37:[1,42],40:[1,41]},t(d,[2,8]),t(p,[2,116]),{49:45,52:[1,46]},t(p,[2,121]),{1:[2,4]},{8:[1,47]},t(u,[2,11]),{4:48,8:r,14:n,55:s},t(u,[2,13]),t(g,[2,14]),t(g,[2,15]),t(g,[2,16]),{21:[1,49]},{23:[1,50]},t(g,[2,19]),t(g,[2,20]),t(g,[2,21]),{28:51,34:b,54:k},t(g,[2,111],{41:54,33:[1,57],34:[1,59],35:[1,55],38:[1,56],42:[1,58]}),{28:60,34:b,54:k},{33:[1,61],35:[1,62]},{28:63,34:b,54:k},{48:64,53:f},{53:[2,120]},{1:[2,5]},t(u,[2,12]),t(g,[2,17]),t(g,[2,18]),t(g,[2,22]),t(T,[2,122]),t(T,[2,123]),t(g,[2,46]),{34:[1,65]},{39:66,43:L,44:E,45:I},{34:[1,70]},{34:[1,71]},t(g,[2,112]),t(g,[2,30],{33:[1,72],35:[1,74],38:[1,73]}),{34:[1,75]},{34:[1,76],36:[1,77]},t(g,[2,23],{30:[1,78]}),t(p,[2,117]),t(g,[2,47],{33:[1,80],38:[1,79],42:[1,81]}),t(g,[2,48],{33:[1,83],35:[1,82],42:[1,84]}),t(V,[2,113]),t(V,[2,114]),t(V,[2,115]),t(g,[2,51],{35:[1,85],38:[1,86],42:[1,87]}),t(g,[2,62],{33:[1,90],35:[1,88],38:[1,89]}),{34:[1,91]},{39:92,43:L,44:E,45:I},{34:[1,93]},t(g,[2,25],{35:[1,94]}),{33:[1,95]},{33:[1,96]},{31:[1,97]},{39:98,43:L,44:E,45:I},{34:[1,99]},{34:[1,100]},{34:[1,101]},{34:[1,102]},{34:[1,103]},{34:[1,104]},{39:105,43:L,44:E,45:I},{34:[1,106]},{34:[1,107]},{39:108,43:L,44:E,45:I},{34:[1,109]},t(g,[2,31],{35:[1,111],38:[1,110]}),t(g,[2,32],{33:[1,113],35:[1,112]}),t(g,[2,33],{33:[1,114],38:[1,115]}),{34:[1,116],36:[1,117]},{34:[1,118]},{34:[1,119]},t(g,[2,24]),t(g,[2,49],{33:[1,120],42:[1,121]}),t(g,[2,53],{38:[1,122],42:[1,123]}),t(g,[2,63],{33:[1,125],38:[1,124]}),t(g,[2,50],{33:[1,126],42:[1,127]}),t(g,[2,55],{35:[1,128],42:[1,129]}),t(g,[2,66],{33:[1,131],35:[1,130]}),t(g,[2,52],{38:[1,132],42:[1,133]}),t(g,[2,54],{35:[1,134],42:[1,135]}),t(g,[2,67],{35:[1,137],38:[1,136]}),t(g,[2,64],{33:[1,139],38:[1,138]}),t(g,[2,65],{33:[1,141],35:[1,140]}),t(g,[2,68],{35:[1,143],38:[1,142]}),{39:144,43:L,44:E,45:I},{34:[1,145]},{34:[1,146]},{34:[1,147]},{34:[1,148]},{39:149,43:L,44:E,45:I},t(g,[2,26]),t(g,[2,27]),t(g,[2,28]),t(g,[2,29]),{34:[1,150]},{34:[1,151]},{39:152,43:L,44:E,45:I},{34:[1,153]},{39:154,43:L,44:E,45:I},{34:[1,155]},{34:[1,156]},{34:[1,157]},{34:[1,158]},{34:[1,159]},{34:[1,160]},{34:[1,161]},{39:162,43:L,44:E,45:I},{34:[1,163]},{34:[1,164]},{34:[1,165]},{39:166,43:L,44:E,45:I},{34:[1,167]},{39:168,43:L,44:E,45:I},{34:[1,169]},{34:[1,170]},{34:[1,171]},{39:172,43:L,44:E,45:I},{34:[1,173]},t(g,[2,37],{35:[1,174]}),t(g,[2,38],{38:[1,175]}),t(g,[2,36],{33:[1,176]}),t(g,[2,39],{35:[1,177]}),t(g,[2,34],{38:[1,178]}),t(g,[2,35],{33:[1,179]}),t(g,[2,60],{42:[1,180]}),t(g,[2,73],{33:[1,181]}),t(g,[2,61],{42:[1,182]}),t(g,[2,84],{38:[1,183]}),t(g,[2,74],{33:[1,184]}),t(g,[2,83],{38:[1,185]}),t(g,[2,59],{42:[1,186]}),t(g,[2,72],{33:[1,187]}),t(g,[2,58],{42:[1,188]}),t(g,[2,78],{35:[1,189]}),t(g,[2,71],{33:[1,190]}),t(g,[2,77],{35:[1,191]}),t(g,[2,57],{42:[1,192]}),t(g,[2,85],{38:[1,193]}),t(g,[2,56],{42:[1,194]}),t(g,[2,79],{35:[1,195]}),t(g,[2,80],{35:[1,196]}),t(g,[2,86],{38:[1,197]}),t(g,[2,70],{33:[1,198]}),t(g,[2,81],{38:[1,199]}),t(g,[2,69],{33:[1,200]}),t(g,[2,75],{35:[1,201]}),t(g,[2,76],{35:[1,202]}),t(g,[2,82],{38:[1,203]}),{34:[1,204]},{39:205,43:L,44:E,45:I},{34:[1,206]},{34:[1,207]},{39:208,43:L,44:E,45:I},{34:[1,209]},{34:[1,210]},{34:[1,211]},{34:[1,212]},{39:213,43:L,44:E,45:I},{34:[1,214]},{39:215,43:L,44:E,45:I},{34:[1,216]},{34:[1,217]},{34:[1,218]},{34:[1,219]},{34:[1,220]},{34:[1,221]},{34:[1,222]},{39:223,43:L,44:E,45:I},{34:[1,224]},{34:[1,225]},{34:[1,226]},{39:227,43:L,44:E,45:I},{34:[1,228]},{39:229,43:L,44:E,45:I},{34:[1,230]},{34:[1,231]},{34:[1,232]},{39:233,43:L,44:E,45:I},t(g,[2,40]),t(g,[2,42]),t(g,[2,41]),t(g,[2,43]),t(g,[2,45]),t(g,[2,44]),t(g,[2,101]),t(g,[2,102]),t(g,[2,99]),t(g,[2,100]),t(g,[2,104]),t(g,[2,103]),t(g,[2,108]),t(g,[2,107]),t(g,[2,106]),t(g,[2,105]),t(g,[2,110]),t(g,[2,109]),t(g,[2,98]),t(g,[2,97]),t(g,[2,96]),t(g,[2,95]),t(g,[2,93]),t(g,[2,94]),t(g,[2,92]),t(g,[2,91]),t(g,[2,90]),t(g,[2,89]),t(g,[2,87]),t(g,[2,88])],defaultActions:{9:[2,118],10:[2,1],11:[2,2],19:[2,3],27:[2,4],46:[2,120],47:[2,5]},parseError:function(N,D){if(D.recoverable)this.trace(N);else{var w=new Error(N);throw w.hash=D,w}},parse:function(N){var D=this,w=[0],v=[],M=[null],m=[],Q=this.table,x=\"\",ct=0,Dt=0,kt=2,j=1,ot=m.slice.call(arguments,1),rt=Object.create(this.lexer),nt={yy:{}};for(var ut in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ut)&&(nt.yy[ut]=this.yy[ut]);rt.setInput(N,nt.yy),nt.yy.lexer=rt,nt.yy.parser=this,typeof rt.yylloc>\"u\"&&(rt.yylloc={});var _t=rt.yylloc;m.push(_t);var K=rt.options&&rt.options.ranges;typeof nt.yy.parseError==\"function\"?this.parseError=nt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ot(){var Yt;return Yt=v.pop()||rt.lex()||j,typeof Yt!=\"number\"&&(Yt instanceof Array&&(v=Yt,Yt=v.pop()),Yt=D.symbols_[Yt]||Yt),Yt}for(var P,z,X,F,O={},A,J,C,ht;;){if(z=w[w.length-1],this.defaultActions[z]?X=this.defaultActions[z]:((P===null||typeof P>\"u\")&&(P=Ot()),X=Q[z]&&Q[z][P]),typeof X>\"u\"||!X.length||!X[0]){var U=\"\";ht=[];for(A in Q[z])this.terminals_[A]&&A>kt&&ht.push(\"'\"+this.terminals_[A]+\"'\");rt.showPosition?U=\"Parse error on line \"+(ct+1)+`:\n`+rt.showPosition()+`\nExpecting `+ht.join(\", \")+\", got '\"+(this.terminals_[P]||P)+\"'\":U=\"Parse error on line \"+(ct+1)+\": Unexpected \"+(P==j?\"end of input\":\"'\"+(this.terminals_[P]||P)+\"'\"),this.parseError(U,{text:rt.match,token:this.terminals_[P]||P,line:rt.yylineno,loc:_t,expected:ht})}if(X[0]instanceof Array&&X.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+z+\", token: \"+P);switch(X[0]){case 1:w.push(P),M.push(rt.yytext),m.push(rt.yylloc),w.push(X[1]),P=null,Dt=rt.yyleng,x=rt.yytext,ct=rt.yylineno,_t=rt.yylloc;break;case 2:if(J=this.productions_[X[1]][1],O.$=M[M.length-J],O._$={first_line:m[m.length-(J||1)].first_line,last_line:m[m.length-1].last_line,first_column:m[m.length-(J||1)].first_column,last_column:m[m.length-1].last_column},K&&(O._$.range=[m[m.length-(J||1)].range[0],m[m.length-1].range[1]]),F=this.performAction.apply(O,[x,Dt,ct,nt.yy,X[1],M,m].concat(ot)),typeof F<\"u\")return F;J&&(w=w.slice(0,-1*J*2),M=M.slice(0,-1*J),m=m.slice(0,-1*J)),w.push(this.productions_[X[1]][0]),M.push(O.$),m.push(O._$),C=Q[w[w.length-2]][w[w.length-1]],w.push(C);break;case 3:return!0}}return!0}},G=function(){var W={EOF:1,parseError:function(D,w){if(this.yy.parser)this.yy.parser.parseError(D,w);else throw new Error(D)},setInput:function(N,D){return this.yy=D||this.yy||{},this._input=N,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var N=this._input[0];this.yytext+=N,this.yyleng++,this.offset++,this.match+=N,this.matched+=N;var D=N.match(/(?:\\r\\n?|\\n).*/g);return D?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),N},unput:function(N){var D=N.length,w=N.split(/(?:\\r\\n?|\\n)/g);this._input=N+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-D),this.offset-=D;var v=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),w.length-1&&(this.yylineno-=w.length-1);var M=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:w?(w.length===v.length?this.yylloc.first_column:0)+v[v.length-w.length].length-w[0].length:this.yylloc.first_column-D},this.options.ranges&&(this.yylloc.range=[M[0],M[0]+this.yyleng-D]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno});return this},less:function(N){this.unput(this.match.slice(N))},pastInput:function(){var N=this.matched.substr(0,this.matched.length-this.match.length);return(N.length>20?\"...\":\"\")+N.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var N=this.match;return N.length<20&&(N+=this._input.substr(0,20-N.length)),(N.substr(0,20)+(N.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var N=this.pastInput(),D=new Array(N.length+1).join(\"-\");return N+this.upcomingInput()+`\n`+D+\"^\"},test_match:function(N,D){var w,v,M;if(this.options.backtrack_lexer&&(M={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(M.yylloc.range=this.yylloc.range.slice(0))),v=N[0].match(/(?:\\r\\n?|\\n).*/g),v&&(this.yylineno+=v.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:v?v[v.length-1].length-v[v.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+N[0].length},this.yytext+=N[0],this.match+=N[0],this.matches=N,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(N[0].length),this.matched+=N[0],w=this.performAction.call(this,this.yy,this,D,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),w)return w;if(this._backtrack){for(var m in M)this[m]=M[m];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var N,D,w,v;this._more||(this.yytext=\"\",this.match=\"\");for(var M=this._currentRules(),m=0;m<M.length;m++)if(w=this._input.match(this.rules[M[m]]),w&&(!D||w[0].length>D[0].length)){if(D=w,v=m,this.options.backtrack_lexer){if(N=this.test_match(w,M[m]),N!==!1)return N;if(this._backtrack){D=!1;continue}else return!1}else if(!this.options.flex)break}return D?(N=this.test_match(D,M[v]),N!==!1?N:!1):this._input===\"\"?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. Unrecognized text.\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var D=this.next();return D||this.lex()},begin:function(D){this.conditionStack.push(D)},popState:function(){var D=this.conditionStack.length-1;return D>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(D){return D=this.conditionStack.length-1-Math.abs(D||0),D>=0?this.conditionStack[D]:\"INITIAL\"},pushState:function(D){this.begin(D)},stateStackSize:function(){return this.conditionStack.length},options:{\"case-insensitive\":!0},performAction:function(D,w,v,M){switch(v){case 0:return this.begin(\"open_directive\"),50;case 1:return this.begin(\"type_directive\"),51;case 2:return this.popState(),this.begin(\"arg_directive\"),9;case 3:return this.popState(),this.popState(),53;case 4:return 52;case 5:return this.begin(\"acc_title\"),20;case 6:return this.popState(),\"acc_title_value\";case 7:return this.begin(\"acc_descr\"),22;case 8:return this.popState(),\"acc_descr_value\";case 9:this.begin(\"acc_descr_multiline\");break;case 10:this.popState();break;case 11:return\"acc_descr_multiline_value\";case 12:return 14;case 13:break;case 14:break;case 15:return 6;case 16:return 40;case 17:return 33;case 18:return 38;case 19:return 42;case 20:return 43;case 21:return 44;case 22:return 45;case 23:return 35;case 24:return 29;case 25:return 30;case 26:return 37;case 27:return 32;case 28:return 27;case 29:return 10;case 30:return 10;case 31:return 9;case 32:return\"CARET\";case 33:this.begin(\"options\");break;case 34:this.popState();break;case 35:return 13;case 36:return 36;case 37:this.begin(\"string\");break;case 38:this.popState();break;case 39:return 34;case 40:return 31;case 41:return 54;case 42:return 8}},rules:[/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:accTitle\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*\\{\\s*)/i,/^(?:[\\}])/i,/^(?:[^\\}]*)/i,/^(?:(\\r?\\n)+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:gitGraph\\b)/i,/^(?:commit(?=\\s|$))/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL\\b)/i,/^(?:REVERSE\\b)/i,/^(?:HIGHLIGHT\\b)/i,/^(?:tag:)/i,/^(?:branch(?=\\s|$))/i,/^(?:order:)/i,/^(?:merge(?=\\s|$))/i,/^(?:cherry-pick(?=\\s|$))/i,/^(?:checkout(?=\\s|$))/i,/^(?:LR\\b)/i,/^(?:BT\\b)/i,/^(?::)/i,/^(?:\\^)/i,/^(?:options\\r?\\n)/i,/^(?:[ \\r\\n\\t]+end\\b)/i,/^(?:[\\s\\S]+(?=[ \\r\\n\\t]+end))/i,/^(?:[\"][\"])/i,/^(?:[\"])/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:[0-9]+(?=\\s|$))/i,/^(?:\\w([-\\./\\w]*[-\\w])?)/i,/^(?:$)/i,/^(?:\\s+)/i],conditions:{acc_descr_multiline:{rules:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},options:{rules:[34,35],inclusive:!1},string:{rules:[38,39],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,36,37,40,41,42,43],inclusive:!0}}};return W}();H.lexer=G;function Y(){this.yy={}}return Y.prototype=H,H.Parser=Y,new Y}();C1.parser=C1;const gE=C1,yE=t=>t.match(/^\\s*gitGraph/)!==null;let S1=\"\",Nc=\"\",A1=\"\";const L1=t=>yn(t,$()),vn=function(){S1=\"\",A1=\"\",Nc=\"\"},nn=function(t){S1=L1(t).replace(/^\\s+/g,\"\")},kn=function(){return S1||Nc},wn=function(t){A1=L1(t).replace(/\\n\\s+/g,`\n`)},Tn=function(){return A1},hi=function(t){Nc=L1(t)},di=function(){return Nc};let Bc=$().gitGraph.mainBranchName,mE=$().gitGraph.mainBranchOrder,cr={},Br=null,mo={};mo[Bc]={name:Bc,order:mE};let rr={};rr[Bc]=Br;let mr=Bc,hg=\"LR\",xs=0;function D1(){return Fp({length:7})}const bE=function(t,e,r){ze.parseDirective(this,t,e,r)};function _E(t,e){const r=Object.create(null);return t.reduce((n,i)=>{const s=e(i);return r[s]||(r[s]=!0,n.push(i)),n},[])}const xE=function(t){hg=t};let dg={};const vE=function(t){B.debug(\"options str\",t),t=t&&t.trim(),t=t||\"{}\";try{dg=JSON.parse(t)}catch(e){B.error(\"error while parsing gitGraph options\",e.message)}},kE=function(){return dg},wE=function(t,e,r,n){B.debug(\"Entering commit:\",t,e,r,n),e=he.sanitizeText(e,$()),t=he.sanitizeText(t,$()),n=he.sanitizeText(n,$());const i={id:e||xs+\"-\"+D1(),message:t,seq:xs++,type:r||bo.NORMAL,tag:n||\"\",parents:Br==null?[]:[Br.id],branch:mr};Br=i,cr[i.id]=i,rr[mr]=i.id,B.debug(\"in pushCommit \"+i.id)},TE=function(t,e){if(t=he.sanitizeText(t,$()),rr[t]===void 0)rr[t]=Br!=null?Br.id:null,mo[t]={name:t,order:e?parseInt(e,10):null},fg(t),B.debug(\"in createBranch\");else{let r=new Error('Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using \"checkout '+t+'\")');throw r.hash={text:\"branch \"+t,token:\"branch \"+t,line:\"1\",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['\"checkout '+t+'\"']},r}},EE=function(t,e,r,n){t=he.sanitizeText(t,$()),e=he.sanitizeText(e,$());const i=cr[rr[mr]],s=cr[rr[t]];if(mr===t){let o=new Error('Incorrect usage of \"merge\". Cannot merge a branch to itself');throw o.hash={text:\"merge \"+t,token:\"merge \"+t,line:\"1\",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:[\"branch abc\"]},o}else if(i===void 0||!i){let o=new Error('Incorrect usage of \"merge\". Current branch ('+mr+\")has no commits\");throw o.hash={text:\"merge \"+t,token:\"merge \"+t,line:\"1\",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:[\"commit\"]},o}else if(rr[t]===void 0){let o=new Error('Incorrect usage of \"merge\". Branch to be merged ('+t+\") does not exist\");throw o.hash={text:\"merge \"+t,token:\"merge \"+t,line:\"1\",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:[\"branch \"+t]},o}else if(s===void 0||!s){let o=new Error('Incorrect usage of \"merge\". Branch to be merged ('+t+\") has no commits\");throw o.hash={text:\"merge \"+t,token:\"merge \"+t,line:\"1\",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['\"commit\"']},o}else if(i===s){let o=new Error('Incorrect usage of \"merge\". Both branches have same head');throw o.hash={text:\"merge \"+t,token:\"merge \"+t,line:\"1\",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:[\"branch abc\"]},o}else if(e&&cr[e]!==void 0){let o=new Error('Incorrect usage of \"merge\". Commit with id:'+e+\" already exists, use different custom Id\");throw o.hash={text:\"merge \"+t+e+r+n,token:\"merge \"+t+e+r+n,line:\"1\",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:[\"merge \"+t+\" \"+e+\"_UNIQUE \"+r+\" \"+n]},o}const a={id:e||xs+\"-\"+D1(),message:\"merged branch \"+t+\" into \"+mr,seq:xs++,parents:[Br==null?null:Br.id,rr[t]],branch:mr,type:bo.MERGE,customType:r,customId:!!e,tag:n||\"\"};Br=a,cr[a.id]=a,rr[mr]=a.id,B.debug(rr),B.debug(\"in mergeBranch\")},CE=function(t,e,r){if(B.debug(\"Entering cherryPick:\",t,e,r),t=he.sanitizeText(t,$()),e=he.sanitizeText(e,$()),r=he.sanitizeText(r,$()),!t||cr[t]===void 0){let s=new Error('Incorrect usage of \"cherryPick\". Source commit id should exist and provided');throw s.hash={text:\"cherryPick \"+t+\" \"+e,token:\"cherryPick \"+t+\" \"+e,line:\"1\",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:[\"cherry-pick abc\"]},s}let n=cr[t],i=n.branch;if(n.type===bo.MERGE){let s=new Error('Incorrect usage of \"cherryPick\". Source commit should not be a merge commit');throw s.hash={text:\"cherryPick \"+t+\" \"+e,token:\"cherryPick \"+t+\" \"+e,line:\"1\",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:[\"cherry-pick abc\"]},s}if(!e||cr[e]===void 0){if(i===mr){let o=new Error('Incorrect usage of \"cherryPick\". Source commit is already on current branch');throw o.hash={text:\"cherryPick \"+t+\" \"+e,token:\"cherryPick \"+t+\" \"+e,line:\"1\",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:[\"cherry-pick abc\"]},o}const s=cr[rr[mr]];if(s===void 0||!s){let o=new Error('Incorrect usage of \"cherry-pick\". Current branch ('+mr+\")has no commits\");throw o.hash={text:\"cherryPick \"+t+\" \"+e,token:\"cherryPick \"+t+\" \"+e,line:\"1\",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:[\"cherry-pick abc\"]},o}const a={id:xs+\"-\"+D1(),message:\"cherry-picked \"+n+\" into \"+mr,seq:xs++,parents:[Br==null?null:Br.id,n.id],branch:mr,type:bo.CHERRY_PICK,tag:r!=null?r:\"cherry-pick:\"+n.id};Br=a,cr[a.id]=a,rr[mr]=a.id,B.debug(rr),B.debug(\"in cherryPick\")}},fg=function(t){if(t=he.sanitizeText(t,$()),rr[t]===void 0){let e=new Error('Trying to checkout branch which is not yet created. (Help try using \"branch '+t+'\")');throw e.hash={text:\"checkout \"+t,token:\"checkout \"+t,line:\"1\",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['\"branch '+t+'\"']},e}else{mr=t;const e=rr[mr];Br=cr[e]}};function pg(t,e,r){const n=t.indexOf(e);n===-1?t.push(r):t.splice(n,1,r)}function gg(t){const e=t.reduce((i,s)=>i.seq>s.seq?i:s,t[0]);let r=\"\";t.forEach(function(i){i===e?r+=\"\t*\":r+=\"\t|\"});const n=[r,e.id,e.seq];for(let i in rr)rr[i]===e.id&&n.push(i);if(B.debug(n.join(\" \")),e.parents&&e.parents.length==2){const i=cr[e.parents[0]];pg(t,e,i),t.push(cr[e.parents[1]])}else{if(e.parents.length==0)return;{const i=cr[e.parents];pg(t,e,i)}}t=_E(t,i=>i.id),gg(t)}const SE=function(){B.debug(cr);const t=yg()[0];gg([t])},AE=function(){cr={},Br=null;let t=$().gitGraph.mainBranchName,e=$().gitGraph.mainBranchOrder;rr={},rr[t]=null,mo={},mo[t]={name:t,order:e},mr=t,xs=0,vn()},LE=function(){return Object.values(mo).map((e,r)=>e.order!==null?e:{...e,order:parseFloat(`0.${r}`,10)}).sort((e,r)=>e.order-r.order).map(({name:e})=>({name:e}))},DE=function(){return rr},ME=function(){return cr},yg=function(){const t=Object.keys(cr).map(function(e){return cr[e]});return t.forEach(function(e){B.debug(e.id)}),t.sort((e,r)=>e.seq-r.seq),t},NE=function(){return mr},BE=function(){return hg},IE=function(){return Br},bo={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},OE={parseDirective:bE,getConfig:()=>$().gitGraph,setDirection:xE,setOptions:vE,getOptions:kE,commit:wE,branch:TE,merge:EE,cherryPick:CE,checkout:fg,prettyPrint:SE,clear:AE,getBranchesAsObjArray:LE,getBranches:DE,getCommits:ME,getCommitsArray:yg,getCurrentBranch:NE,getDirection:BE,getHead:IE,setAccTitle:nn,getAccTitle:kn,getAccDescription:Tn,setAccDescription:wn,setDiagramTitle:hi,getDiagramTitle:di,commitType:bo};let _o={};const qr={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},vs=8;let Yr={},Ic={},Oc=[],Rc=0;const RE=()=>{Yr={},Ic={},_o={},Rc=0,Oc=[]},FE=t=>{const e=document.createElementNS(\"http://www.w3.org/2000/svg\",\"text\");let r=[];typeof t==\"string\"?r=t.split(/\\\\n|\\n|<br\\s*\\/?>/gi):Array.isArray(t)?r=t:r=[];for(const n of r){const i=document.createElementNS(\"http://www.w3.org/2000/svg\",\"tspan\");i.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\",\"xml:space\",\"preserve\"),i.setAttribute(\"dy\",\"1em\"),i.setAttribute(\"x\",\"0\"),i.setAttribute(\"class\",\"row\"),i.textContent=n.trim(),e.appendChild(i)}return e},mg=(t,e,r)=>{const n=yo().gitGraph,i=t.append(\"g\").attr(\"class\",\"commit-bullets\"),s=t.append(\"g\").attr(\"class\",\"commit-labels\");let a=0;Object.keys(e).sort((u,d)=>e[u].seq-e[d].seq).forEach(u=>{const d=e[u],f=Yr[d.branch].pos,p=a+10;if(r){let g,b=d.customType!==void 0&&d.customType!==\"\"?d.customType:d.type;switch(b){case qr.NORMAL:g=\"commit-normal\";break;case qr.REVERSE:g=\"commit-reverse\";break;case qr.HIGHLIGHT:g=\"commit-highlight\";break;case qr.MERGE:g=\"commit-merge\";break;case qr.CHERRY_PICK:g=\"commit-cherry-pick\";break;default:g=\"commit-normal\"}if(b===qr.HIGHLIGHT){const k=i.append(\"rect\");k.attr(\"x\",p-10),k.attr(\"y\",f-10),k.attr(\"height\",20),k.attr(\"width\",20),k.attr(\"class\",`commit ${d.id} commit-highlight${Yr[d.branch].index%vs} ${g}-outer`),i.append(\"rect\").attr(\"x\",p-6).attr(\"y\",f-6).attr(\"height\",12).attr(\"width\",12).attr(\"class\",`commit ${d.id} commit${Yr[d.branch].index%vs} ${g}-inner`)}else if(b===qr.CHERRY_PICK)i.append(\"circle\").attr(\"cx\",p).attr(\"cy\",f).attr(\"r\",10).attr(\"class\",`commit ${d.id} ${g}`),i.append(\"circle\").attr(\"cx\",p-3).attr(\"cy\",f+2).attr(\"r\",2.75).attr(\"fill\",\"#fff\").attr(\"class\",`commit ${d.id} ${g}`),i.append(\"circle\").attr(\"cx\",p+3).attr(\"cy\",f+2).attr(\"r\",2.75).attr(\"fill\",\"#fff\").attr(\"class\",`commit ${d.id} ${g}`),i.append(\"line\").attr(\"x1\",p+3).attr(\"y1\",f+1).attr(\"x2\",p).attr(\"y2\",f-5).attr(\"stroke\",\"#fff\").attr(\"class\",`commit ${d.id} ${g}`),i.append(\"line\").attr(\"x1\",p-3).attr(\"y1\",f+1).attr(\"x2\",p).attr(\"y2\",f-5).attr(\"stroke\",\"#fff\").attr(\"class\",`commit ${d.id} ${g}`);else{const k=i.append(\"circle\");if(k.attr(\"cx\",p),k.attr(\"cy\",f),k.attr(\"r\",d.type===qr.MERGE?9:10),k.attr(\"class\",`commit ${d.id} commit${Yr[d.branch].index%vs}`),b===qr.MERGE){const T=i.append(\"circle\");T.attr(\"cx\",p),T.attr(\"cy\",f),T.attr(\"r\",6),T.attr(\"class\",`commit ${g} ${d.id} commit${Yr[d.branch].index%vs}`)}b===qr.REVERSE&&i.append(\"path\").attr(\"d\",`M ${p-5},${f-5}L${p+5},${f+5}M${p-5},${f+5}L${p+5},${f-5}`).attr(\"class\",`commit ${g} ${d.id} commit${Yr[d.branch].index%vs}`)}}if(Ic[d.id]={x:a+10,y:f},r){if(d.type!==qr.CHERRY_PICK&&(d.customId&&d.type===qr.MERGE||d.type!==qr.MERGE)&&n.showCommitLabel){const k=s.append(\"g\"),T=k.insert(\"rect\").attr(\"class\",\"commit-label-bkg\"),L=k.append(\"text\").attr(\"x\",a).attr(\"y\",f+25).attr(\"class\",\"commit-label\").text(d.id);let E=L.node().getBBox();if(T.attr(\"x\",a+10-E.width/2-2).attr(\"y\",f+13.5).attr(\"width\",E.width+2*2).attr(\"height\",E.height+2*2),L.attr(\"x\",a+10-E.width/2),n.rotateCommitLabel){let I=-7.5-(E.width+10)/25*9.5,V=10+E.width/25*8.5;k.attr(\"transform\",\"translate(\"+I+\", \"+V+\") rotate(\"+-45+\", \"+a+\", \"+f+\")\")}}if(d.tag){const k=s.insert(\"polygon\"),T=s.append(\"circle\"),L=s.append(\"text\").attr(\"y\",f-16).attr(\"class\",\"tag-label\").text(d.tag);let E=L.node().getBBox();L.attr(\"x\",a+10-E.width/2);const I=E.height/2,V=f-19.2;k.attr(\"class\",\"tag-label-bkg\").attr(\"points\",`\n ${a-E.width/2-4/2},${V+2}\n ${a-E.width/2-4/2},${V-2}\n ${a+10-E.width/2-4},${V-I-2}\n ${a+10+E.width/2+4},${V-I-2}\n ${a+10+E.width/2+4},${V+I+2}\n ${a+10-E.width/2-4},${V+I+2}`),T.attr(\"cx\",a-E.width/2+4/2).attr(\"cy\",V).attr(\"r\",1.5).attr(\"class\",\"tag-hole\")}}a+=50,a>Rc&&(Rc=a)})},PE=(t,e,r)=>Object.keys(r).filter(s=>r[s].branch===e.branch&&r[s].seq>t.seq&&r[s].seq<e.seq).length>0,M1=(t,e,r=0)=>{const n=t+Math.abs(t-e)/2;if(r>5)return n;if(Oc.every(a=>Math.abs(a-n)>=10))return Oc.push(n),n;const s=Math.abs(t-e);return M1(t,e-s/5,r+1)},YE=(t,e,r,n)=>{const i=Ic[e.id],s=Ic[r.id],a=PE(e,r,n);let o=\"\",l=\"\",u=0,d=0,f=Yr[r.branch].index,p;if(a){o=\"A 10 10, 0, 0, 0,\",l=\"A 10 10, 0, 0, 1,\",u=10,d=10,f=Yr[r.branch].index;const g=i.y<s.y?M1(i.y,s.y):M1(s.y,i.y);i.y<s.y?p=`M ${i.x} ${i.y} L ${i.x} ${g-u} ${o} ${i.x+d} ${g} L ${s.x-u} ${g} ${l} ${s.x} ${g+d} L ${s.x} ${s.y}`:p=`M ${i.x} ${i.y} L ${i.x} ${g+u} ${l} ${i.x+d} ${g} L ${s.x-u} ${g} ${o} ${s.x} ${g-d} L ${s.x} ${s.y}`}else i.y<s.y&&(o=\"A 20 20, 0, 0, 0,\",u=20,d=20,f=Yr[r.branch].index,p=`M ${i.x} ${i.y} L ${i.x} ${s.y-u} ${o} ${i.x+d} ${s.y} L ${s.x} ${s.y}`),i.y>s.y&&(o=\"A 20 20, 0, 0, 0,\",u=20,d=20,f=Yr[e.branch].index,p=`M ${i.x} ${i.y} L ${s.x-u} ${i.y} ${o} ${s.x} ${i.y-d} L ${s.x} ${s.y}`),i.y===s.y&&(f=Yr[e.branch].index,p=`M ${i.x} ${i.y} L ${i.x} ${s.y-u} ${o} ${i.x+d} ${s.y} L ${s.x} ${s.y}`);t.append(\"path\").attr(\"d\",p).attr(\"class\",\"arrow arrow\"+f%vs)},VE=(t,e)=>{const r=t.append(\"g\").attr(\"class\",\"commit-arrows\");Object.keys(e).forEach(n=>{const i=e[n];i.parents&&i.parents.length>0&&i.parents.forEach(s=>{YE(r,e[s],i,e)})})},UE=(t,e)=>{const r=yo().gitGraph,n=t.append(\"g\");e.forEach((i,s)=>{const a=s%vs,o=Yr[i.name].pos,l=n.append(\"line\");l.attr(\"x1\",0),l.attr(\"y1\",o),l.attr(\"x2\",Rc),l.attr(\"y2\",o),l.attr(\"class\",\"branch branch\"+a),Oc.push(o);let u=i.name;const d=FE(u),f=n.insert(\"rect\"),g=n.insert(\"g\").attr(\"class\",\"branchLabel\").insert(\"g\").attr(\"class\",\"label branch-label\"+a);g.node().appendChild(d);let b=d.getBBox();f.attr(\"class\",\"branchLabelBkg label\"+a).attr(\"rx\",4).attr(\"ry\",4).attr(\"x\",-b.width-4-(r.rotateCommitLabel===!0?30:0)).attr(\"y\",-b.height/2+8).attr(\"width\",b.width+18).attr(\"height\",b.height+4),g.attr(\"transform\",\"translate(\"+(-b.width-14-(r.rotateCommitLabel===!0?30:0))+\", \"+(o-b.height/2-1)+\")\"),f.attr(\"transform\",\"translate(\"+-19+\", \"+(o-b.height/2)+\")\")})},zE={draw:function(t,e,r,n){var u;RE();const i=yo(),s=i.gitGraph;B.debug(\"in gitgraph renderer\",t+`\n`,\"id:\",e,r),_o=n.db.getCommits();const a=n.db.getBranchesAsObjArray();let o=0;a.forEach((d,f)=>{Yr[d.name]={pos:o,index:f},o+=50+(s.rotateCommitLabel?40:0)});const l=St(`[id=\"${e}\"]`);mg(l,_o,!1),s.showBranches&&UE(l,a),VE(l,_o),mg(l,_o,!0),ge.insertTitle(l,\"gitTitleText\",s.titleTopMargin,n.db.getDiagramTitle()),cg(void 0,l,s.diagramPadding,(u=s.useMaxWidth)!=null?u:i.useMaxWidth)}},WE=t=>`\n .commit-id,\n .commit-msg,\n .branch-label {\n fill: lightgrey;\n color: lightgrey;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n ${[0,1,2,3,4,5,6,7].map(e=>`\n .branch-label${e} { fill: ${t[\"gitBranchLabel\"+e]}; }\n .commit${e} { stroke: ${t[\"git\"+e]}; fill: ${t[\"git\"+e]}; }\n .commit-highlight${e} { stroke: ${t[\"gitInv\"+e]}; fill: ${t[\"gitInv\"+e]}; }\n .label${e} { fill: ${t[\"git\"+e]}; }\n .arrow${e} { stroke: ${t[\"git\"+e]}; }\n `).join(`\n`)}\n\n .branch {\n stroke-width: 1;\n stroke: ${t.lineColor};\n stroke-dasharray: 2;\n }\n .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelColor};}\n .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelBackground}; opacity: 0.5; }\n .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};}\n .tag-label-bkg { fill: ${t.tagLabelBackground}; stroke: ${t.tagLabelBorder}; }\n .tag-hole { fill: ${t.textColor}; }\n\n .commit-merge {\n stroke: ${t.primaryColor};\n fill: ${t.primaryColor};\n }\n .commit-reverse {\n stroke: ${t.primaryColor};\n fill: ${t.primaryColor};\n stroke-width: 3;\n }\n .commit-highlight-outer {\n }\n .commit-highlight-inner {\n stroke: ${t.primaryColor};\n fill: ${t.primaryColor};\n }\n\n .arrow { stroke-width: 8; stroke-linecap: round; fill: none}\n .gitTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n }\n }\n`;var Fc=function(){var t=function(Ft,xt,ft,Lt){for(ft=ft||{},Lt=Ft.length;Lt--;ft[Ft[Lt]]=xt);return ft},e=[1,6],r=[1,7],n=[1,8],i=[1,9],s=[1,16],a=[1,11],o=[1,12],l=[1,13],u=[1,14],d=[1,15],f=[1,27],p=[1,33],g=[1,34],b=[1,35],k=[1,36],T=[1,37],L=[1,72],E=[1,73],I=[1,74],V=[1,75],H=[1,76],G=[1,77],Y=[1,78],W=[1,38],N=[1,39],D=[1,40],w=[1,41],v=[1,42],M=[1,43],m=[1,44],Q=[1,45],x=[1,46],ct=[1,47],Dt=[1,48],kt=[1,49],j=[1,50],ot=[1,51],rt=[1,52],nt=[1,53],ut=[1,54],_t=[1,55],K=[1,56],Ot=[1,57],P=[1,59],z=[1,60],X=[1,61],F=[1,62],O=[1,63],A=[1,64],J=[1,65],C=[1,66],ht=[1,67],U=[1,68],Yt=[1,69],et=[24,52],Mt=[24,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],Tt=[15,24,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],gt=[1,94],Et=[1,95],wt=[1,96],pt=[1,97],st=[15,24,52],le=[7,8,9,10,18,22,25,26,27,28],Xt=[15,24,43,52],jt=[15,24,43,52,86,87,89,90],Kt=[15,43],Gt=[44,46,47,48,49,50,51,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],Ee={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,directive:6,direction_tb:7,direction_bt:8,direction_rl:9,direction_lr:10,graphConfig:11,openDirective:12,typeDirective:13,closeDirective:14,NEWLINE:15,\":\":16,argDirective:17,open_directive:18,type_directive:19,arg_directive:20,close_directive:21,C4_CONTEXT:22,statements:23,EOF:24,C4_CONTAINER:25,C4_COMPONENT:26,C4_DYNAMIC:27,C4_DEPLOYMENT:28,otherStatements:29,diagramStatements:30,otherStatement:31,title:32,accDescription:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,boundaryStatement:39,boundaryStartStatement:40,boundaryStopStatement:41,boundaryStart:42,LBRACE:43,ENTERPRISE_BOUNDARY:44,attributes:45,SYSTEM_BOUNDARY:46,BOUNDARY:47,CONTAINER_BOUNDARY:48,NODE:49,NODE_L:50,NODE_R:51,RBRACE:52,diagramStatement:53,PERSON:54,PERSON_EXT:55,SYSTEM:56,SYSTEM_DB:57,SYSTEM_QUEUE:58,SYSTEM_EXT:59,SYSTEM_EXT_DB:60,SYSTEM_EXT_QUEUE:61,CONTAINER:62,CONTAINER_DB:63,CONTAINER_QUEUE:64,CONTAINER_EXT:65,CONTAINER_EXT_DB:66,CONTAINER_EXT_QUEUE:67,COMPONENT:68,COMPONENT_DB:69,COMPONENT_QUEUE:70,COMPONENT_EXT:71,COMPONENT_EXT_DB:72,COMPONENT_EXT_QUEUE:73,REL:74,BIREL:75,REL_U:76,REL_D:77,REL_L:78,REL_R:79,REL_B:80,REL_INDEX:81,UPDATE_EL_STYLE:82,UPDATE_REL_STYLE:83,UPDATE_LAYOUT_CONFIG:84,attribute:85,STR:86,STR_KEY:87,STR_VALUE:88,ATTRIBUTE:89,ATTRIBUTE_EMPTY:90,$accept:0,$end:1},terminals_:{2:\"error\",7:\"direction_tb\",8:\"direction_bt\",9:\"direction_rl\",10:\"direction_lr\",15:\"NEWLINE\",16:\":\",18:\"open_directive\",19:\"type_directive\",20:\"arg_directive\",21:\"close_directive\",22:\"C4_CONTEXT\",24:\"EOF\",25:\"C4_CONTAINER\",26:\"C4_COMPONENT\",27:\"C4_DYNAMIC\",28:\"C4_DEPLOYMENT\",32:\"title\",33:\"accDescription\",34:\"acc_title\",35:\"acc_title_value\",36:\"acc_descr\",37:\"acc_descr_value\",38:\"acc_descr_multiline_value\",43:\"LBRACE\",44:\"ENTERPRISE_BOUNDARY\",46:\"SYSTEM_BOUNDARY\",47:\"BOUNDARY\",48:\"CONTAINER_BOUNDARY\",49:\"NODE\",50:\"NODE_L\",51:\"NODE_R\",52:\"RBRACE\",54:\"PERSON\",55:\"PERSON_EXT\",56:\"SYSTEM\",57:\"SYSTEM_DB\",58:\"SYSTEM_QUEUE\",59:\"SYSTEM_EXT\",60:\"SYSTEM_EXT_DB\",61:\"SYSTEM_EXT_QUEUE\",62:\"CONTAINER\",63:\"CONTAINER_DB\",64:\"CONTAINER_QUEUE\",65:\"CONTAINER_EXT\",66:\"CONTAINER_EXT_DB\",67:\"CONTAINER_EXT_QUEUE\",68:\"COMPONENT\",69:\"COMPONENT_DB\",70:\"COMPONENT_QUEUE\",71:\"COMPONENT_EXT\",72:\"COMPONENT_EXT_DB\",73:\"COMPONENT_EXT_QUEUE\",74:\"REL\",75:\"BIREL\",76:\"REL_U\",77:\"REL_D\",78:\"REL_L\",79:\"REL_R\",80:\"REL_B\",81:\"REL_INDEX\",82:\"UPDATE_EL_STYLE\",83:\"UPDATE_REL_STYLE\",84:\"UPDATE_LAYOUT_CONFIG\",86:\"STR\",87:\"STR_KEY\",88:\"STR_VALUE\",89:\"ATTRIBUTE\",90:\"ATTRIBUTE_EMPTY\"},productions_:[0,[3,1],[3,1],[3,2],[5,1],[5,1],[5,1],[5,1],[4,1],[6,4],[6,6],[12,1],[13,1],[17,1],[14,1],[11,4],[11,4],[11,4],[11,4],[11,4],[23,1],[23,1],[23,2],[29,1],[29,2],[29,3],[31,1],[31,1],[31,2],[31,2],[31,1],[39,3],[40,3],[40,3],[40,4],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[41,1],[30,1],[30,2],[30,3],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,1],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[45,1],[45,2],[85,1],[85,2],[85,1],[85,1]],performAction:function(xt,ft,Lt,bt,Ut,at,ie){var dt=at.length-1;switch(Ut){case 4:bt.setDirection(\"TB\");break;case 5:bt.setDirection(\"BT\");break;case 6:bt.setDirection(\"RL\");break;case 7:bt.setDirection(\"LR\");break;case 11:bt.parseDirective(\"%%{\",\"open_directive\");break;case 12:break;case 13:at[dt]=at[dt].trim().replace(/'/g,'\"'),bt.parseDirective(at[dt],\"arg_directive\");break;case 14:bt.parseDirective(\"}%%\",\"close_directive\",\"c4Context\");break;case 15:case 16:case 17:case 18:case 19:bt.setC4Type(at[dt-3]);break;case 26:bt.setTitle(at[dt].substring(6)),this.$=at[dt].substring(6);break;case 27:bt.setAccDescription(at[dt].substring(15)),this.$=at[dt].substring(15);break;case 28:this.$=at[dt].trim(),bt.setTitle(this.$);break;case 29:case 30:this.$=at[dt].trim(),bt.setAccDescription(this.$);break;case 35:case 36:at[dt].splice(2,0,\"ENTERPRISE\"),bt.addPersonOrSystemBoundary(...at[dt]),this.$=at[dt];break;case 37:bt.addPersonOrSystemBoundary(...at[dt]),this.$=at[dt];break;case 38:at[dt].splice(2,0,\"CONTAINER\"),bt.addContainerBoundary(...at[dt]),this.$=at[dt];break;case 39:bt.addDeploymentNode(\"node\",...at[dt]),this.$=at[dt];break;case 40:bt.addDeploymentNode(\"nodeL\",...at[dt]),this.$=at[dt];break;case 41:bt.addDeploymentNode(\"nodeR\",...at[dt]),this.$=at[dt];break;case 42:bt.popBoundaryParseStack();break;case 46:bt.addPersonOrSystem(\"person\",...at[dt]),this.$=at[dt];break;case 47:bt.addPersonOrSystem(\"external_person\",...at[dt]),this.$=at[dt];break;case 48:bt.addPersonOrSystem(\"system\",...at[dt]),this.$=at[dt];break;case 49:bt.addPersonOrSystem(\"system_db\",...at[dt]),this.$=at[dt];break;case 50:bt.addPersonOrSystem(\"system_queue\",...at[dt]),this.$=at[dt];break;case 51:bt.addPersonOrSystem(\"external_system\",...at[dt]),this.$=at[dt];break;case 52:bt.addPersonOrSystem(\"external_system_db\",...at[dt]),this.$=at[dt];break;case 53:bt.addPersonOrSystem(\"external_system_queue\",...at[dt]),this.$=at[dt];break;case 54:bt.addContainer(\"container\",...at[dt]),this.$=at[dt];break;case 55:bt.addContainer(\"container_db\",...at[dt]),this.$=at[dt];break;case 56:bt.addContainer(\"container_queue\",...at[dt]),this.$=at[dt];break;case 57:bt.addContainer(\"external_container\",...at[dt]),this.$=at[dt];break;case 58:bt.addContainer(\"external_container_db\",...at[dt]),this.$=at[dt];break;case 59:bt.addContainer(\"external_container_queue\",...at[dt]),this.$=at[dt];break;case 60:bt.addComponent(\"component\",...at[dt]),this.$=at[dt];break;case 61:bt.addComponent(\"component_db\",...at[dt]),this.$=at[dt];break;case 62:bt.addComponent(\"component_queue\",...at[dt]),this.$=at[dt];break;case 63:bt.addComponent(\"external_component\",...at[dt]),this.$=at[dt];break;case 64:bt.addComponent(\"external_component_db\",...at[dt]),this.$=at[dt];break;case 65:bt.addComponent(\"external_component_queue\",...at[dt]),this.$=at[dt];break;case 67:bt.addRel(\"rel\",...at[dt]),this.$=at[dt];break;case 68:bt.addRel(\"birel\",...at[dt]),this.$=at[dt];break;case 69:bt.addRel(\"rel_u\",...at[dt]),this.$=at[dt];break;case 70:bt.addRel(\"rel_d\",...at[dt]),this.$=at[dt];break;case 71:bt.addRel(\"rel_l\",...at[dt]),this.$=at[dt];break;case 72:bt.addRel(\"rel_r\",...at[dt]),this.$=at[dt];break;case 73:bt.addRel(\"rel_b\",...at[dt]),this.$=at[dt];break;case 74:at[dt].splice(0,1),bt.addRel(\"rel\",...at[dt]),this.$=at[dt];break;case 75:bt.updateElStyle(\"update_el_style\",...at[dt]),this.$=at[dt];break;case 76:bt.updateRelStyle(\"update_rel_style\",...at[dt]),this.$=at[dt];break;case 77:bt.updateLayoutConfig(\"update_layout_config\",...at[dt]),this.$=at[dt];break;case 78:this.$=[at[dt]];break;case 79:at[dt].unshift(at[dt-1]),this.$=at[dt];break;case 80:case 82:this.$=at[dt].trim();break;case 81:let ee={};ee[at[dt-1].trim()]=at[dt].trim(),this.$=ee;break;case 83:this.$=\"\";break}},table:[{3:1,4:2,5:3,6:4,7:e,8:r,9:n,10:i,11:5,12:10,18:s,22:a,25:o,26:l,27:u,28:d},{1:[3]},{1:[2,1]},{1:[2,2]},{3:17,4:2,5:3,6:4,7:e,8:r,9:n,10:i,11:5,12:10,18:s,22:a,25:o,26:l,27:u,28:d},{1:[2,8]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{1:[2,7]},{13:18,19:[1,19]},{15:[1,20]},{15:[1,21]},{15:[1,22]},{15:[1,23]},{15:[1,24]},{19:[2,11]},{1:[2,3]},{14:25,16:[1,26],21:f},t([16,21],[2,12]),{23:28,29:29,30:30,31:31,32:p,33:g,34:b,36:k,38:T,39:58,40:70,42:71,44:L,46:E,47:I,48:V,49:H,50:G,51:Y,53:32,54:W,55:N,56:D,57:w,58:v,59:M,60:m,61:Q,62:x,63:ct,64:Dt,65:kt,66:j,67:ot,68:rt,69:nt,70:ut,71:_t,72:K,73:Ot,74:P,75:z,76:X,77:F,78:O,79:A,80:J,81:C,82:ht,83:U,84:Yt},{23:79,29:29,30:30,31:31,32:p,33:g,34:b,36:k,38:T,39:58,40:70,42:71,44:L,46:E,47:I,48:V,49:H,50:G,51:Y,53:32,54:W,55:N,56:D,57:w,58:v,59:M,60:m,61:Q,62:x,63:ct,64:Dt,65:kt,66:j,67:ot,68:rt,69:nt,70:ut,71:_t,72:K,73:Ot,74:P,75:z,76:X,77:F,78:O,79:A,80:J,81:C,82:ht,83:U,84:Yt},{23:80,29:29,30:30,31:31,32:p,33:g,34:b,36:k,38:T,39:58,40:70,42:71,44:L,46:E,47:I,48:V,49:H,50:G,51:Y,53:32,54:W,55:N,56:D,57:w,58:v,59:M,60:m,61:Q,62:x,63:ct,64:Dt,65:kt,66:j,67:ot,68:rt,69:nt,70:ut,71:_t,72:K,73:Ot,74:P,75:z,76:X,77:F,78:O,79:A,80:J,81:C,82:ht,83:U,84:Yt},{23:81,29:29,30:30,31:31,32:p,33:g,34:b,36:k,38:T,39:58,40:70,42:71,44:L,46:E,47:I,48:V,49:H,50:G,51:Y,53:32,54:W,55:N,56:D,57:w,58:v,59:M,60:m,61:Q,62:x,63:ct,64:Dt,65:kt,66:j,67:ot,68:rt,69:nt,70:ut,71:_t,72:K,73:Ot,74:P,75:z,76:X,77:F,78:O,79:A,80:J,81:C,82:ht,83:U,84:Yt},{23:82,29:29,30:30,31:31,32:p,33:g,34:b,36:k,38:T,39:58,40:70,42:71,44:L,46:E,47:I,48:V,49:H,50:G,51:Y,53:32,54:W,55:N,56:D,57:w,58:v,59:M,60:m,61:Q,62:x,63:ct,64:Dt,65:kt,66:j,67:ot,68:rt,69:nt,70:ut,71:_t,72:K,73:Ot,74:P,75:z,76:X,77:F,78:O,79:A,80:J,81:C,82:ht,83:U,84:Yt},{15:[1,83]},{17:84,20:[1,85]},{15:[2,14]},{24:[1,86]},t(et,[2,20],{53:32,39:58,40:70,42:71,30:87,44:L,46:E,47:I,48:V,49:H,50:G,51:Y,54:W,55:N,56:D,57:w,58:v,59:M,60:m,61:Q,62:x,63:ct,64:Dt,65:kt,66:j,67:ot,68:rt,69:nt,70:ut,71:_t,72:K,73:Ot,74:P,75:z,76:X,77:F,78:O,79:A,80:J,81:C,82:ht,83:U,84:Yt}),t(et,[2,21]),t(Mt,[2,23],{15:[1,88]}),t(et,[2,43],{15:[1,89]}),t(Tt,[2,26]),t(Tt,[2,27]),{35:[1,90]},{37:[1,91]},t(Tt,[2,30]),{45:92,85:93,86:gt,87:Et,89:wt,90:pt},{45:98,85:93,86:gt,87:Et,89:wt,90:pt},{45:99,85:93,86:gt,87:Et,89:wt,90:pt},{45:100,85:93,86:gt,87:Et,89:wt,90:pt},{45:101,85:93,86:gt,87:Et,89:wt,90:pt},{45:102,85:93,86:gt,87:Et,89:wt,90:pt},{45:103,85:93,86:gt,87:Et,89:wt,90:pt},{45:104,85:93,86:gt,87:Et,89:wt,90:pt},{45:105,85:93,86:gt,87:Et,89:wt,90:pt},{45:106,85:93,86:gt,87:Et,89:wt,90:pt},{45:107,85:93,86:gt,87:Et,89:wt,90:pt},{45:108,85:93,86:gt,87:Et,89:wt,90:pt},{45:109,85:93,86:gt,87:Et,89:wt,90:pt},{45:110,85:93,86:gt,87:Et,89:wt,90:pt},{45:111,85:93,86:gt,87:Et,89:wt,90:pt},{45:112,85:93,86:gt,87:Et,89:wt,90:pt},{45:113,85:93,86:gt,87:Et,89:wt,90:pt},{45:114,85:93,86:gt,87:Et,89:wt,90:pt},{45:115,85:93,86:gt,87:Et,89:wt,90:pt},{45:116,85:93,86:gt,87:Et,89:wt,90:pt},t(st,[2,66]),{45:117,85:93,86:gt,87:Et,89:wt,90:pt},{45:118,85:93,86:gt,87:Et,89:wt,90:pt},{45:119,85:93,86:gt,87:Et,89:wt,90:pt},{45:120,85:93,86:gt,87:Et,89:wt,90:pt},{45:121,85:93,86:gt,87:Et,89:wt,90:pt},{45:122,85:93,86:gt,87:Et,89:wt,90:pt},{45:123,85:93,86:gt,87:Et,89:wt,90:pt},{45:124,85:93,86:gt,87:Et,89:wt,90:pt},{45:125,85:93,86:gt,87:Et,89:wt,90:pt},{45:126,85:93,86:gt,87:Et,89:wt,90:pt},{45:127,85:93,86:gt,87:Et,89:wt,90:pt},{30:128,39:58,40:70,42:71,44:L,46:E,47:I,48:V,49:H,50:G,51:Y,53:32,54:W,55:N,56:D,57:w,58:v,59:M,60:m,61:Q,62:x,63:ct,64:Dt,65:kt,66:j,67:ot,68:rt,69:nt,70:ut,71:_t,72:K,73:Ot,74:P,75:z,76:X,77:F,78:O,79:A,80:J,81:C,82:ht,83:U,84:Yt},{15:[1,130],43:[1,129]},{45:131,85:93,86:gt,87:Et,89:wt,90:pt},{45:132,85:93,86:gt,87:Et,89:wt,90:pt},{45:133,85:93,86:gt,87:Et,89:wt,90:pt},{45:134,85:93,86:gt,87:Et,89:wt,90:pt},{45:135,85:93,86:gt,87:Et,89:wt,90:pt},{45:136,85:93,86:gt,87:Et,89:wt,90:pt},{45:137,85:93,86:gt,87:Et,89:wt,90:pt},{24:[1,138]},{24:[1,139]},{24:[1,140]},{24:[1,141]},t(le,[2,9]),{14:142,21:f},{21:[2,13]},{1:[2,15]},t(et,[2,22]),t(Mt,[2,24],{31:31,29:143,32:p,33:g,34:b,36:k,38:T}),t(et,[2,44],{29:29,30:30,31:31,53:32,39:58,40:70,42:71,23:144,32:p,33:g,34:b,36:k,38:T,44:L,46:E,47:I,48:V,49:H,50:G,51:Y,54:W,55:N,56:D,57:w,58:v,59:M,60:m,61:Q,62:x,63:ct,64:Dt,65:kt,66:j,67:ot,68:rt,69:nt,70:ut,71:_t,72:K,73:Ot,74:P,75:z,76:X,77:F,78:O,79:A,80:J,81:C,82:ht,83:U,84:Yt}),t(Tt,[2,28]),t(Tt,[2,29]),t(st,[2,46]),t(Xt,[2,78],{85:93,45:145,86:gt,87:Et,89:wt,90:pt}),t(jt,[2,80]),{88:[1,146]},t(jt,[2,82]),t(jt,[2,83]),t(st,[2,47]),t(st,[2,48]),t(st,[2,49]),t(st,[2,50]),t(st,[2,51]),t(st,[2,52]),t(st,[2,53]),t(st,[2,54]),t(st,[2,55]),t(st,[2,56]),t(st,[2,57]),t(st,[2,58]),t(st,[2,59]),t(st,[2,60]),t(st,[2,61]),t(st,[2,62]),t(st,[2,63]),t(st,[2,64]),t(st,[2,65]),t(st,[2,67]),t(st,[2,68]),t(st,[2,69]),t(st,[2,70]),t(st,[2,71]),t(st,[2,72]),t(st,[2,73]),t(st,[2,74]),t(st,[2,75]),t(st,[2,76]),t(st,[2,77]),{41:147,52:[1,148]},{15:[1,149]},{43:[1,150]},t(Kt,[2,35]),t(Kt,[2,36]),t(Kt,[2,37]),t(Kt,[2,38]),t(Kt,[2,39]),t(Kt,[2,40]),t(Kt,[2,41]),{1:[2,16]},{1:[2,17]},{1:[2,18]},{1:[2,19]},{15:[1,151]},t(Mt,[2,25]),t(et,[2,45]),t(Xt,[2,79]),t(jt,[2,81]),t(st,[2,31]),t(st,[2,42]),t(Gt,[2,32]),t(Gt,[2,33],{15:[1,152]}),t(le,[2,10]),t(Gt,[2,34])],defaultActions:{2:[2,1],3:[2,2],5:[2,8],6:[2,4],7:[2,5],8:[2,6],9:[2,7],16:[2,11],17:[2,3],27:[2,14],85:[2,13],86:[2,15],138:[2,16],139:[2,17],140:[2,18],141:[2,19]},parseError:function(xt,ft){if(ft.recoverable)this.trace(xt);else{var Lt=new Error(xt);throw Lt.hash=ft,Lt}},parse:function(xt){var ft=this,Lt=[0],bt=[],Ut=[null],at=[],ie=this.table,dt=\"\",ee=0,fe=0,be=2,_e=1,ke=at.slice.call(arguments,1),$t=Object.create(this.lexer),se={yy:{}};for(var ye in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ye)&&(se.yy[ye]=this.yy[ye]);$t.setInput(xt,se.yy),se.yy.lexer=$t,se.yy.parser=this,typeof $t.yylloc>\"u\"&&($t.yylloc={});var Jt=$t.yylloc;at.push(Jt);var Nn=$t.options&&$t.options.ranges;typeof se.yy.parseError==\"function\"?this.parseError=se.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Xr(){var Z;return Z=bt.pop()||$t.lex()||_e,typeof Z!=\"number\"&&(Z instanceof Array&&(bt=Z,Z=bt.pop()),Z=ft.symbols_[Z]||Z),Z}for(var De,ae,Be,Re,Pe={},Ye,Ie,$e,ar;;){if(ae=Lt[Lt.length-1],this.defaultActions[ae]?Be=this.defaultActions[ae]:((De===null||typeof De>\"u\")&&(De=Xr()),Be=ie[ae]&&ie[ae][De]),typeof Be>\"u\"||!Be.length||!Be[0]){var zt=\"\";ar=[];for(Ye in ie[ae])this.terminals_[Ye]&&Ye>be&&ar.push(\"'\"+this.terminals_[Ye]+\"'\");$t.showPosition?zt=\"Parse error on line \"+(ee+1)+`:\n`+$t.showPosition()+`\nExpecting `+ar.join(\", \")+\", got '\"+(this.terminals_[De]||De)+\"'\":zt=\"Parse error on line \"+(ee+1)+\": Unexpected \"+(De==_e?\"end of input\":\"'\"+(this.terminals_[De]||De)+\"'\"),this.parseError(zt,{text:$t.match,token:this.terminals_[De]||De,line:$t.yylineno,loc:Jt,expected:ar})}if(Be[0]instanceof Array&&Be.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+ae+\", token: \"+De);switch(Be[0]){case 1:Lt.push(De),Ut.push($t.yytext),at.push($t.yylloc),Lt.push(Be[1]),De=null,fe=$t.yyleng,dt=$t.yytext,ee=$t.yylineno,Jt=$t.yylloc;break;case 2:if(Ie=this.productions_[Be[1]][1],Pe.$=Ut[Ut.length-Ie],Pe._$={first_line:at[at.length-(Ie||1)].first_line,last_line:at[at.length-1].last_line,first_column:at[at.length-(Ie||1)].first_column,last_column:at[at.length-1].last_column},Nn&&(Pe._$.range=[at[at.length-(Ie||1)].range[0],at[at.length-1].range[1]]),Re=this.performAction.apply(Pe,[dt,fe,ee,se.yy,Be[1],Ut,at].concat(ke)),typeof Re<\"u\")return Re;Ie&&(Lt=Lt.slice(0,-1*Ie*2),Ut=Ut.slice(0,-1*Ie),at=at.slice(0,-1*Ie)),Lt.push(this.productions_[Be[1]][0]),Ut.push(Pe.$),at.push(Pe._$),$e=ie[Lt[Lt.length-2]][Lt[Lt.length-1]],Lt.push($e);break;case 3:return!0}}return!0}},Ht=function(){var Ft={EOF:1,parseError:function(ft,Lt){if(this.yy.parser)this.yy.parser.parseError(ft,Lt);else throw new Error(ft)},setInput:function(xt,ft){return this.yy=ft||this.yy||{},this._input=xt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var xt=this._input[0];this.yytext+=xt,this.yyleng++,this.offset++,this.match+=xt,this.matched+=xt;var ft=xt.match(/(?:\\r\\n?|\\n).*/g);return ft?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),xt},unput:function(xt){var ft=xt.length,Lt=xt.split(/(?:\\r\\n?|\\n)/g);this._input=xt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ft),this.offset-=ft;var bt=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Lt.length-1&&(this.yylineno-=Lt.length-1);var Ut=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Lt?(Lt.length===bt.length?this.yylloc.first_column:0)+bt[bt.length-Lt.length].length-Lt[0].length:this.yylloc.first_column-ft},this.options.ranges&&(this.yylloc.range=[Ut[0],Ut[0]+this.yyleng-ft]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno});return this},less:function(xt){this.unput(this.match.slice(xt))},pastInput:function(){var xt=this.matched.substr(0,this.matched.length-this.match.length);return(xt.length>20?\"...\":\"\")+xt.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var xt=this.match;return xt.length<20&&(xt+=this._input.substr(0,20-xt.length)),(xt.substr(0,20)+(xt.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var xt=this.pastInput(),ft=new Array(xt.length+1).join(\"-\");return xt+this.upcomingInput()+`\n`+ft+\"^\"},test_match:function(xt,ft){var Lt,bt,Ut;if(this.options.backtrack_lexer&&(Ut={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Ut.yylloc.range=this.yylloc.range.slice(0))),bt=xt[0].match(/(?:\\r\\n?|\\n).*/g),bt&&(this.yylineno+=bt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:bt?bt[bt.length-1].length-bt[bt.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+xt[0].length},this.yytext+=xt[0],this.match+=xt[0],this.matches=xt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(xt[0].length),this.matched+=xt[0],Lt=this.performAction.call(this,this.yy,this,ft,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Lt)return Lt;if(this._backtrack){for(var at in Ut)this[at]=Ut[at];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var xt,ft,Lt,bt;this._more||(this.yytext=\"\",this.match=\"\");for(var Ut=this._currentRules(),at=0;at<Ut.length;at++)if(Lt=this._input.match(this.rules[Ut[at]]),Lt&&(!ft||Lt[0].length>ft[0].length)){if(ft=Lt,bt=at,this.options.backtrack_lexer){if(xt=this.test_match(Lt,Ut[at]),xt!==!1)return xt;if(this._backtrack){ft=!1;continue}else return!1}else if(!this.options.flex)break}return ft?(xt=this.test_match(ft,Ut[bt]),xt!==!1?xt:!1):this._input===\"\"?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. Unrecognized text.\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var ft=this.next();return ft||this.lex()},begin:function(ft){this.conditionStack.push(ft)},popState:function(){var ft=this.conditionStack.length-1;return ft>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(ft){return ft=this.conditionStack.length-1-Math.abs(ft||0),ft>=0?this.conditionStack[ft]:\"INITIAL\"},pushState:function(ft){this.begin(ft)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(ft,Lt,bt,Ut){switch(bt){case 0:return this.begin(\"open_directive\"),18;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 10;case 5:return this.begin(\"type_directive\"),19;case 6:return this.popState(),this.begin(\"arg_directive\"),16;case 7:return this.popState(),this.popState(),21;case 8:return 20;case 9:return 32;case 10:return 33;case 11:return this.begin(\"acc_title\"),34;case 12:return this.popState(),\"acc_title_value\";case 13:return this.begin(\"acc_descr\"),36;case 14:return this.popState(),\"acc_descr_value\";case 15:this.begin(\"acc_descr_multiline\");break;case 16:this.popState();break;case 17:return\"acc_descr_multiline_value\";case 18:break;case 19:c;break;case 20:return 15;case 21:break;case 22:return 22;case 23:return 25;case 24:return 26;case 25:return 27;case 26:return 28;case 27:return this.begin(\"person_ext\"),55;case 28:return this.begin(\"person\"),54;case 29:return this.begin(\"system_ext_queue\"),61;case 30:return this.begin(\"system_ext_db\"),60;case 31:return this.begin(\"system_ext\"),59;case 32:return this.begin(\"system_queue\"),58;case 33:return this.begin(\"system_db\"),57;case 34:return this.begin(\"system\"),56;case 35:return this.begin(\"boundary\"),47;case 36:return this.begin(\"enterprise_boundary\"),44;case 37:return this.begin(\"system_boundary\"),46;case 38:return this.begin(\"container_ext_queue\"),67;case 39:return this.begin(\"container_ext_db\"),66;case 40:return this.begin(\"container_ext\"),65;case 41:return this.begin(\"container_queue\"),64;case 42:return this.begin(\"container_db\"),63;case 43:return this.begin(\"container\"),62;case 44:return this.begin(\"container_boundary\"),48;case 45:return this.begin(\"component_ext_queue\"),73;case 46:return this.begin(\"component_ext_db\"),72;case 47:return this.begin(\"component_ext\"),71;case 48:return this.begin(\"component_queue\"),70;case 49:return this.begin(\"component_db\"),69;case 50:return this.begin(\"component\"),68;case 51:return this.begin(\"node\"),49;case 52:return this.begin(\"node\"),49;case 53:return this.begin(\"node_l\"),50;case 54:return this.begin(\"node_r\"),51;case 55:return this.begin(\"rel\"),74;case 56:return this.begin(\"birel\"),75;case 57:return this.begin(\"rel_u\"),76;case 58:return this.begin(\"rel_u\"),76;case 59:return this.begin(\"rel_d\"),77;case 60:return this.begin(\"rel_d\"),77;case 61:return this.begin(\"rel_l\"),78;case 62:return this.begin(\"rel_l\"),78;case 63:return this.begin(\"rel_r\"),79;case 64:return this.begin(\"rel_r\"),79;case 65:return this.begin(\"rel_b\"),80;case 66:return this.begin(\"rel_index\"),81;case 67:return this.begin(\"update_el_style\"),82;case 68:return this.begin(\"update_rel_style\"),83;case 69:return this.begin(\"update_layout_config\"),84;case 70:return\"EOF_IN_STRUCT\";case 71:return this.begin(\"attribute\"),\"ATTRIBUTE_EMPTY\";case 72:this.begin(\"attribute\");break;case 73:this.popState(),this.popState();break;case 74:return 90;case 75:break;case 76:return 90;case 77:this.begin(\"string\");break;case 78:this.popState();break;case 79:return\"STR\";case 80:this.begin(\"string_kv\");break;case 81:return this.begin(\"string_kv_key\"),\"STR_KEY\";case 82:this.popState(),this.begin(\"string_kv_value\");break;case 83:return\"STR_VALUE\";case 84:this.popState(),this.popState();break;case 85:return\"STR\";case 86:return\"LBRACE\";case 87:return\"RBRACE\";case 88:return\"SPACE\";case 89:return\"EOL\";case 90:return 24}},rules:[/^(?:%%\\{)/,/^(?:.*direction\\s+TB[^\\n]*)/,/^(?:.*direction\\s+BT[^\\n]*)/,/^(?:.*direction\\s+RL[^\\n]*)/,/^(?:.*direction\\s+LR[^\\n]*)/,/^(?:((?:(?!\\}%%)[^:.])*))/,/^(?::)/,/^(?:\\}%%)/,/^(?:((?:(?!\\}%%).|\\n)*))/,/^(?:title\\s[^#\\n;]+)/,/^(?:accDescription\\s[^#\\n;]+)/,/^(?:accTitle\\s*:\\s*)/,/^(?:(?!\\n||)*[^\\n]*)/,/^(?:accDescr\\s*:\\s*)/,/^(?:(?!\\n||)*[^\\n]*)/,/^(?:accDescr\\s*\\{\\s*)/,/^(?:[\\}])/,/^(?:[^\\}]*)/,/^(?:%%(?!\\{)*[^\\n]*(\\r?\\n?)+)/,/^(?:%%[^\\n]*(\\r?\\n)*)/,/^(?:\\s*(\\r?\\n)+)/,/^(?:\\s+)/,/^(?:C4Context\\b)/,/^(?:C4Container\\b)/,/^(?:C4Component\\b)/,/^(?:C4Dynamic\\b)/,/^(?:C4Deployment\\b)/,/^(?:Person_Ext\\b)/,/^(?:Person\\b)/,/^(?:SystemQueue_Ext\\b)/,/^(?:SystemDb_Ext\\b)/,/^(?:System_Ext\\b)/,/^(?:SystemQueue\\b)/,/^(?:SystemDb\\b)/,/^(?:System\\b)/,/^(?:Boundary\\b)/,/^(?:Enterprise_Boundary\\b)/,/^(?:System_Boundary\\b)/,/^(?:ContainerQueue_Ext\\b)/,/^(?:ContainerDb_Ext\\b)/,/^(?:Container_Ext\\b)/,/^(?:ContainerQueue\\b)/,/^(?:ContainerDb\\b)/,/^(?:Container\\b)/,/^(?:Container_Boundary\\b)/,/^(?:ComponentQueue_Ext\\b)/,/^(?:ComponentDb_Ext\\b)/,/^(?:Component_Ext\\b)/,/^(?:ComponentQueue\\b)/,/^(?:ComponentDb\\b)/,/^(?:Component\\b)/,/^(?:Deployment_Node\\b)/,/^(?:Node\\b)/,/^(?:Node_L\\b)/,/^(?:Node_R\\b)/,/^(?:Rel\\b)/,/^(?:BiRel\\b)/,/^(?:Rel_Up\\b)/,/^(?:Rel_U\\b)/,/^(?:Rel_Down\\b)/,/^(?:Rel_D\\b)/,/^(?:Rel_Left\\b)/,/^(?:Rel_L\\b)/,/^(?:Rel_Right\\b)/,/^(?:Rel_R\\b)/,/^(?:Rel_Back\\b)/,/^(?:RelIndex\\b)/,/^(?:UpdateElementStyle\\b)/,/^(?:UpdateRelStyle\\b)/,/^(?:UpdateLayoutConfig\\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*[\"][\"])/,/^(?:[ ]*[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:[ ]*[\\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*[\"])/,/^(?:[^\"]+)/,/^(?:[\"])/,/^(?:[^,]+)/,/^(?:\\{)/,/^(?:\\})/,/^(?:[\\s]+)/,/^(?:[\\n\\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[16,17],inclusive:!1},acc_descr:{rules:[14],inclusive:!1},acc_title:{rules:[12],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[7,8],inclusive:!1},type_directive:{rules:[6,7],inclusive:!1},open_directive:{rules:[5],inclusive:!1},string_kv_value:{rules:[83,84],inclusive:!1},string_kv_key:{rules:[82],inclusive:!1},string_kv:{rules:[81],inclusive:!1},string:{rules:[78,79],inclusive:!1},attribute:{rules:[73,74,75,76,77,80,85],inclusive:!1},update_layout_config:{rules:[70,71,72,73],inclusive:!1},update_rel_style:{rules:[70,71,72,73],inclusive:!1},update_el_style:{rules:[70,71,72,73],inclusive:!1},rel_b:{rules:[70,71,72,73],inclusive:!1},rel_r:{rules:[70,71,72,73],inclusive:!1},rel_l:{rules:[70,71,72,73],inclusive:!1},rel_d:{rules:[70,71,72,73],inclusive:!1},rel_u:{rules:[70,71,72,73],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[70,71,72,73],inclusive:!1},node_r:{rules:[70,71,72,73],inclusive:!1},node_l:{rules:[70,71,72,73],inclusive:!1},node:{rules:[70,71,72,73],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[70,71,72,73],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[70,71,72,73],inclusive:!1},component_ext:{rules:[70,71,72,73],inclusive:!1},component_queue:{rules:[70,71,72,73],inclusive:!1},component_db:{rules:[70,71,72,73],inclusive:!1},component:{rules:[70,71,72,73],inclusive:!1},container_boundary:{rules:[70,71,72,73],inclusive:!1},container_ext_queue:{rules:[],inclusive:!1},container_ext_db:{rules:[70,71,72,73],inclusive:!1},container_ext:{rules:[70,71,72,73],inclusive:!1},container_queue:{rules:[70,71,72,73],inclusive:!1},container_db:{rules:[70,71,72,73],inclusive:!1},container:{rules:[70,71,72,73],inclusive:!1},birel:{rules:[70,71,72,73],inclusive:!1},system_boundary:{rules:[70,71,72,73],inclusive:!1},enterprise_boundary:{rules:[70,71,72,73],inclusive:!1},boundary:{rules:[70,71,72,73],inclusive:!1},system_ext_queue:{rules:[70,71,72,73],inclusive:!1},system_ext_db:{rules:[70,71,72,73],inclusive:!1},system_ext:{rules:[70,71,72,73],inclusive:!1},system_queue:{rules:[70,71,72,73],inclusive:!1},system_db:{rules:[70,71,72,73],inclusive:!1},system:{rules:[70,71,72,73],inclusive:!1},person_ext:{rules:[70,71,72,73],inclusive:!1},person:{rules:[70,71,72,73],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,13,15,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,86,87,88,89,90],inclusive:!0}}};return Ft}();Ee.lexer=Ht;function Vt(){this.yy={}}return Vt.prototype=Ee,Ee.Parser=Vt,new Vt}();Fc.parser=Fc;const HE=Fc,GE=t=>t.match(/^\\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/)!==null;let En=[],zi=[\"\"],Ir=\"global\",Cn=\"\",zn=[{alias:\"global\",label:{text:\"global\"},type:{text:\"global\"},tags:null,link:null,parentBoundary:\"\"}],xo=[],N1=\"\",B1=!1,Pc=4,Yc=2;var bg;const qE=function(){return bg},jE=function(t){bg=yn(t,$())},$E=function(t,e,r){ze.parseDirective(this,t,e,r)},XE=function(t,e,r,n,i,s,a,o,l){if(t==null||e===void 0||e===null||r===void 0||r===null||n===void 0||n===null)return;let u={};const d=xo.find(f=>f.from===e&&f.to===r);if(d?u=d:xo.push(u),u.type=t,u.from=e,u.to=r,u.label={text:n},i==null)u.techn={text:\"\"};else if(typeof i==\"object\"){let[f,p]=Object.entries(i)[0];u[f]={text:p}}else u.techn={text:i};if(s==null)u.descr={text:\"\"};else if(typeof s==\"object\"){let[f,p]=Object.entries(s)[0];u[f]={text:p}}else u.descr={text:s};if(typeof a==\"object\"){let[f,p]=Object.entries(a)[0];u[f]=p}else u.sprite=a;if(typeof o==\"object\"){let[f,p]=Object.entries(o)[0];u[f]=p}else u.tags=o;if(typeof l==\"object\"){let[f,p]=Object.entries(l)[0];u[f]=p}else u.link=l;u.wrap=Wi()},KE=function(t,e,r,n,i,s,a){if(e===null||r===null)return;let o={};const l=En.find(u=>u.alias===e);if(l&&e===l.alias?o=l:(o.alias=e,En.push(o)),r==null?o.label={text:\"\"}:o.label={text:r},n==null)o.descr={text:\"\"};else if(typeof n==\"object\"){let[u,d]=Object.entries(n)[0];o[u]={text:d}}else o.descr={text:n};if(typeof i==\"object\"){let[u,d]=Object.entries(i)[0];o[u]=d}else o.sprite=i;if(typeof s==\"object\"){let[u,d]=Object.entries(s)[0];o[u]=d}else o.tags=s;if(typeof a==\"object\"){let[u,d]=Object.entries(a)[0];o[u]=d}else o.link=a;o.typeC4Shape={text:t},o.parentBoundary=Ir,o.wrap=Wi()},ZE=function(t,e,r,n,i,s,a,o){if(e===null||r===null)return;let l={};const u=En.find(d=>d.alias===e);if(u&&e===u.alias?l=u:(l.alias=e,En.push(l)),r==null?l.label={text:\"\"}:l.label={text:r},n==null)l.techn={text:\"\"};else if(typeof n==\"object\"){let[d,f]=Object.entries(n)[0];l[d]={text:f}}else l.techn={text:n};if(i==null)l.descr={text:\"\"};else if(typeof i==\"object\"){let[d,f]=Object.entries(i)[0];l[d]={text:f}}else l.descr={text:i};if(typeof s==\"object\"){let[d,f]=Object.entries(s)[0];l[d]=f}else l.sprite=s;if(typeof a==\"object\"){let[d,f]=Object.entries(a)[0];l[d]=f}else l.tags=a;if(typeof o==\"object\"){let[d,f]=Object.entries(o)[0];l[d]=f}else l.link=o;l.wrap=Wi(),l.typeC4Shape={text:t},l.parentBoundary=Ir},QE=function(t,e,r,n,i,s,a,o){if(e===null||r===null)return;let l={};const u=En.find(d=>d.alias===e);if(u&&e===u.alias?l=u:(l.alias=e,En.push(l)),r==null?l.label={text:\"\"}:l.label={text:r},n==null)l.techn={text:\"\"};else if(typeof n==\"object\"){let[d,f]=Object.entries(n)[0];l[d]={text:f}}else l.techn={text:n};if(i==null)l.descr={text:\"\"};else if(typeof i==\"object\"){let[d,f]=Object.entries(i)[0];l[d]={text:f}}else l.descr={text:i};if(typeof s==\"object\"){let[d,f]=Object.entries(s)[0];l[d]=f}else l.sprite=s;if(typeof a==\"object\"){let[d,f]=Object.entries(a)[0];l[d]=f}else l.tags=a;if(typeof o==\"object\"){let[d,f]=Object.entries(o)[0];l[d]=f}else l.link=o;l.wrap=Wi(),l.typeC4Shape={text:t},l.parentBoundary=Ir},JE=function(t,e,r,n,i){if(t===null||e===null)return;let s={};const a=zn.find(o=>o.alias===t);if(a&&t===a.alias?s=a:(s.alias=t,zn.push(s)),e==null?s.label={text:\"\"}:s.label={text:e},r==null)s.type={text:\"system\"};else if(typeof r==\"object\"){let[o,l]=Object.entries(r)[0];s[o]={text:l}}else s.type={text:r};if(typeof n==\"object\"){let[o,l]=Object.entries(n)[0];s[o]=l}else s.tags=n;if(typeof i==\"object\"){let[o,l]=Object.entries(i)[0];s[o]=l}else s.link=i;s.parentBoundary=Ir,s.wrap=Wi(),Cn=Ir,Ir=t,zi.push(Cn)},tC=function(t,e,r,n,i){if(t===null||e===null)return;let s={};const a=zn.find(o=>o.alias===t);if(a&&t===a.alias?s=a:(s.alias=t,zn.push(s)),e==null?s.label={text:\"\"}:s.label={text:e},r==null)s.type={text:\"container\"};else if(typeof r==\"object\"){let[o,l]=Object.entries(r)[0];s[o]={text:l}}else s.type={text:r};if(typeof n==\"object\"){let[o,l]=Object.entries(n)[0];s[o]=l}else s.tags=n;if(typeof i==\"object\"){let[o,l]=Object.entries(i)[0];s[o]=l}else s.link=i;s.parentBoundary=Ir,s.wrap=Wi(),Cn=Ir,Ir=t,zi.push(Cn)},eC=function(t,e,r,n,i,s,a,o){if(e===null||r===null)return;let l={};const u=zn.find(d=>d.alias===e);if(u&&e===u.alias?l=u:(l.alias=e,zn.push(l)),r==null?l.label={text:\"\"}:l.label={text:r},n==null)l.type={text:\"node\"};else if(typeof n==\"object\"){let[d,f]=Object.entries(n)[0];l[d]={text:f}}else l.type={text:n};if(i==null)l.descr={text:\"\"};else if(typeof i==\"object\"){let[d,f]=Object.entries(i)[0];l[d]={text:f}}else l.descr={text:i};if(typeof a==\"object\"){let[d,f]=Object.entries(a)[0];l[d]=f}else l.tags=a;if(typeof o==\"object\"){let[d,f]=Object.entries(o)[0];l[d]=f}else l.link=o;l.nodeType=t,l.parentBoundary=Ir,l.wrap=Wi(),Cn=Ir,Ir=e,zi.push(Cn)},rC=function(){Ir=Cn,zi.pop(),Cn=zi.pop(),zi.push(Cn)},nC=function(t,e,r,n,i,s,a,o,l,u,d){let f=En.find(p=>p.alias===e);if(!(f===void 0&&(f=zn.find(p=>p.alias===e),f===void 0))){if(r!=null)if(typeof r==\"object\"){let[p,g]=Object.entries(r)[0];f[p]=g}else f.bgColor=r;if(n!=null)if(typeof n==\"object\"){let[p,g]=Object.entries(n)[0];f[p]=g}else f.fontColor=n;if(i!=null)if(typeof i==\"object\"){let[p,g]=Object.entries(i)[0];f[p]=g}else f.borderColor=i;if(s!=null)if(typeof s==\"object\"){let[p,g]=Object.entries(s)[0];f[p]=g}else f.shadowing=s;if(a!=null)if(typeof a==\"object\"){let[p,g]=Object.entries(a)[0];f[p]=g}else f.shape=a;if(o!=null)if(typeof o==\"object\"){let[p,g]=Object.entries(o)[0];f[p]=g}else f.sprite=o;if(l!=null)if(typeof l==\"object\"){let[p,g]=Object.entries(l)[0];f[p]=g}else f.techn=l;if(u!=null)if(typeof u==\"object\"){let[p,g]=Object.entries(u)[0];f[p]=g}else f.legendText=u;if(d!=null)if(typeof d==\"object\"){let[p,g]=Object.entries(d)[0];f[p]=g}else f.legendSprite=d}},iC=function(t,e,r,n,i,s,a){const o=xo.find(l=>l.from===e&&l.to===r);if(o!==void 0){if(n!=null)if(typeof n==\"object\"){let[l,u]=Object.entries(n)[0];o[l]=u}else o.textColor=n;if(i!=null)if(typeof i==\"object\"){let[l,u]=Object.entries(i)[0];o[l]=u}else o.lineColor=i;if(s!=null)if(typeof s==\"object\"){let[l,u]=Object.entries(s)[0];o[l]=parseInt(u)}else o.offsetX=parseInt(s);if(a!=null)if(typeof a==\"object\"){let[l,u]=Object.entries(a)[0];o[l]=parseInt(u)}else o.offsetY=parseInt(a)}},sC=function(t,e,r){let n=Pc,i=Yc;if(typeof e==\"object\"){const s=Object.values(e)[0];n=parseInt(s)}else n=parseInt(e);if(typeof r==\"object\"){const s=Object.values(r)[0];i=parseInt(s)}else i=parseInt(r);n>=1&&(Pc=n),i>=1&&(Yc=i)},aC=function(){return Pc},oC=function(){return Yc},lC=function(){return Ir},cC=function(){return Cn},_g=function(t){return t==null?En:En.filter(e=>e.parentBoundary===t)},uC=function(t){return En.find(e=>e.alias===t)},hC=function(t){return Object.keys(_g(t))},dC=function(t){return t==null?zn:zn.filter(e=>e.parentBoundary===t)},fC=function(){return xo},pC=function(){return N1},gC=function(t){B1=t},Wi=function(){return B1},xg={addPersonOrSystem:KE,addPersonOrSystemBoundary:JE,addContainer:ZE,addContainerBoundary:tC,addComponent:QE,addDeploymentNode:eC,popBoundaryParseStack:rC,addRel:XE,updateElStyle:nC,updateRelStyle:iC,updateLayoutConfig:sC,autoWrap:Wi,setWrap:gC,getC4ShapeArray:_g,getC4Shape:uC,getC4ShapeKeys:hC,getBoundarys:dC,getCurrentBoundaryParse:lC,getParentBoundaryParse:cC,getRels:fC,getTitle:pC,getC4Type:qE,getC4ShapeInRow:aC,getC4BoundaryInRow:oC,setAccTitle:nn,getAccTitle:kn,getAccDescription:Tn,setAccDescription:wn,parseDirective:$E,getConfig:()=>$().c4,clear:function(){En=[],zn=[{alias:\"global\",label:{text:\"global\"},type:{text:\"global\"},tags:null,link:null,parentBoundary:\"\"}],Cn=\"\",Ir=\"global\",zi=[\"\"],xo=[],zi=[\"\"],N1=\"\",B1=!1,Pc=4,Yc=2},LINETYPE:{SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},setTitle:function(t){N1=yn(t,$())},setC4Type:jE},I1=function(t,e){const r=t.append(\"rect\");if(r.attr(\"x\",e.x),r.attr(\"y\",e.y),r.attr(\"fill\",e.fill),r.attr(\"stroke\",e.stroke),r.attr(\"width\",e.width),r.attr(\"height\",e.height),r.attr(\"rx\",e.rx),r.attr(\"ry\",e.ry),e.attrs!==\"undefined\"&&e.attrs!==null)for(let n in e.attrs)r.attr(n,e.attrs[n]);return e.class!==\"undefined\"&&r.attr(\"class\",e.class),r},vg=function(t,e,r,n,i,s){const a=t.append(\"image\");a.attr(\"width\",e),a.attr(\"height\",r),a.attr(\"x\",n),a.attr(\"y\",i);let o=s.startsWith(\"data:image/png;base64\")?s:ti(s);a.attr(\"xlink:href\",o)},yC=(t,e,r)=>{const n=t.append(\"g\");let i=0;for(let s of e){let a=s.textColor?s.textColor:\"#444444\",o=s.lineColor?s.lineColor:\"#444444\",l=s.offsetX?parseInt(s.offsetX):0,u=s.offsetY?parseInt(s.offsetY):0,d=\"\";if(i===0){let p=n.append(\"line\");p.attr(\"x1\",s.startPoint.x),p.attr(\"y1\",s.startPoint.y),p.attr(\"x2\",s.endPoint.x),p.attr(\"y2\",s.endPoint.y),p.attr(\"stroke-width\",\"1\"),p.attr(\"stroke\",o),p.style(\"fill\",\"none\"),s.type!==\"rel_b\"&&p.attr(\"marker-end\",\"url(\"+d+\"#arrowhead)\"),(s.type===\"birel\"||s.type===\"rel_b\")&&p.attr(\"marker-start\",\"url(\"+d+\"#arrowend)\"),i=-1}else{let p=n.append(\"path\");p.attr(\"fill\",\"none\").attr(\"stroke-width\",\"1\").attr(\"stroke\",o).attr(\"d\",\"Mstartx,starty Qcontrolx,controly stopx,stopy \".replaceAll(\"startx\",s.startPoint.x).replaceAll(\"starty\",s.startPoint.y).replaceAll(\"controlx\",s.startPoint.x+(s.endPoint.x-s.startPoint.x)/2-(s.endPoint.x-s.startPoint.x)/4).replaceAll(\"controly\",s.startPoint.y+(s.endPoint.y-s.startPoint.y)/2).replaceAll(\"stopx\",s.endPoint.x).replaceAll(\"stopy\",s.endPoint.y)),s.type!==\"rel_b\"&&p.attr(\"marker-end\",\"url(\"+d+\"#arrowhead)\"),(s.type===\"birel\"||s.type===\"rel_b\")&&p.attr(\"marker-start\",\"url(\"+d+\"#arrowend)\")}let f=r.messageFont();fi(r)(s.label.text,n,Math.min(s.startPoint.x,s.endPoint.x)+Math.abs(s.endPoint.x-s.startPoint.x)/2+l,Math.min(s.startPoint.y,s.endPoint.y)+Math.abs(s.endPoint.y-s.startPoint.y)/2+u,s.label.width,s.label.height,{fill:a},f),s.techn&&s.techn.text!==\"\"&&(f=r.messageFont(),fi(r)(\"[\"+s.techn.text+\"]\",n,Math.min(s.startPoint.x,s.endPoint.x)+Math.abs(s.endPoint.x-s.startPoint.x)/2+l,Math.min(s.startPoint.y,s.endPoint.y)+Math.abs(s.endPoint.y-s.startPoint.y)/2+r.messageFontSize+5+u,Math.max(s.label.width,s.techn.width),s.techn.height,{fill:a,\"font-style\":\"italic\"},f))}},mC=function(t,e,r){const n=t.append(\"g\");let i=e.bgColor?e.bgColor:\"none\",s=e.borderColor?e.borderColor:\"#444444\",a=e.fontColor?e.fontColor:\"black\",o={\"stroke-width\":1,\"stroke-dasharray\":\"7.0,7.0\"};e.nodeType&&(o={\"stroke-width\":1});let l={x:e.x,y:e.y,fill:i,stroke:s,width:e.width,height:e.height,rx:2.5,ry:2.5,attrs:o};I1(n,l);let u=r.boundaryFont();u.fontWeight=\"bold\",u.fontSize=u.fontSize+2,u.fontColor=a,fi(r)(e.label.text,n,e.x,e.y+e.label.Y,e.width,e.height,{fill:\"#444444\"},u),e.type&&e.type.text!==\"\"&&(u=r.boundaryFont(),u.fontColor=a,fi(r)(e.type.text,n,e.x,e.y+e.type.Y,e.width,e.height,{fill:\"#444444\"},u)),e.descr&&e.descr.text!==\"\"&&(u=r.boundaryFont(),u.fontSize=u.fontSize-2,u.fontColor=a,fi(r)(e.descr.text,n,e.x,e.y+e.descr.Y,e.width,e.height,{fill:\"#444444\"},u))},bC=function(t,e,r){let n=e.bgColor?e.bgColor:r[e.typeC4Shape.text+\"_bg_color\"],i=e.borderColor?e.borderColor:r[e.typeC4Shape.text+\"_border_color\"],s=e.fontColor?e.fontColor:\"#FFFFFF\",a=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=\";switch(e.typeC4Shape.text){case\"person\":a=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=\";break;case\"external_person\":a=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=\";break}const o=t.append(\"g\");o.attr(\"class\",\"person-man\");const l=kg();switch(e.typeC4Shape.text){case\"person\":case\"external_person\":case\"system\":case\"external_system\":case\"container\":case\"external_container\":case\"component\":case\"external_component\":l.x=e.x,l.y=e.y,l.fill=n,l.width=e.width,l.height=e.height,l.style=\"stroke:\"+i+\";stroke-width:0.5;\",l.rx=2.5,l.ry=2.5,I1(o,l);break;case\"system_db\":case\"external_system_db\":case\"container_db\":case\"external_container_db\":case\"component_db\":case\"external_component_db\":o.append(\"path\").attr(\"fill\",n).attr(\"stroke-width\",\"0.5\").attr(\"stroke\",i).attr(\"d\",\"Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height\".replaceAll(\"startx\",e.x).replaceAll(\"starty\",e.y).replaceAll(\"half\",e.width/2).replaceAll(\"height\",e.height)),o.append(\"path\").attr(\"fill\",\"none\").attr(\"stroke-width\",\"0.5\").attr(\"stroke\",i).attr(\"d\",\"Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10\".replaceAll(\"startx\",e.x).replaceAll(\"starty\",e.y).replaceAll(\"half\",e.width/2));break;case\"system_queue\":case\"external_system_queue\":case\"container_queue\":case\"external_container_queue\":case\"component_queue\":case\"external_component_queue\":o.append(\"path\").attr(\"fill\",n).attr(\"stroke-width\",\"0.5\").attr(\"stroke\",i).attr(\"d\",\"Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half\".replaceAll(\"startx\",e.x).replaceAll(\"starty\",e.y).replaceAll(\"width\",e.width).replaceAll(\"half\",e.height/2)),o.append(\"path\").attr(\"fill\",\"none\").attr(\"stroke-width\",\"0.5\").attr(\"stroke\",i).attr(\"d\",\"Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half\".replaceAll(\"startx\",e.x+e.width).replaceAll(\"starty\",e.y).replaceAll(\"half\",e.height/2));break}let u=SC(r,e.typeC4Shape.text);switch(o.append(\"text\").attr(\"fill\",s).attr(\"font-family\",u.fontFamily).attr(\"font-size\",u.fontSize-2).attr(\"font-style\",\"italic\").attr(\"lengthAdjust\",\"spacing\").attr(\"textLength\",e.typeC4Shape.width).attr(\"x\",e.x+e.width/2-e.typeC4Shape.width/2).attr(\"y\",e.y+e.typeC4Shape.Y).text(\"<<\"+e.typeC4Shape.text+\">>\"),e.typeC4Shape.text){case\"person\":case\"external_person\":vg(o,48,48,e.x+e.width/2-24,e.y+e.image.Y,a);break}let d=r[e.typeC4Shape.text+\"Font\"]();return d.fontWeight=\"bold\",d.fontSize=d.fontSize+2,d.fontColor=s,fi(r)(e.label.text,o,e.x,e.y+e.label.Y,e.width,e.height,{fill:s},d),d=r[e.typeC4Shape.text+\"Font\"](),d.fontColor=s,e.thchn&&e.thchn.text!==\"\"?fi(r)(e.thchn.text,o,e.x,e.y+e.thchn.Y,e.width,e.height,{fill:s,\"font-style\":\"italic\"},d):e.type&&e.type.text!==\"\"&&fi(r)(e.type.text,o,e.x,e.y+e.type.Y,e.width,e.height,{fill:s,\"font-style\":\"italic\"},d),e.descr&&e.descr.text!==\"\"&&(d=r.personFont(),d.fontColor=s,fi(r)(e.descr.text,o,e.x,e.y+e.descr.Y,e.width,e.height,{fill:s},d)),e.height},_C=function(t){t.append(\"defs\").append(\"symbol\").attr(\"id\",\"database\").attr(\"fill-rule\",\"evenodd\").attr(\"clip-rule\",\"evenodd\").append(\"path\").attr(\"transform\",\"scale(.5)\").attr(\"d\",\"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\")},xC=function(t){t.append(\"defs\").append(\"symbol\").attr(\"id\",\"computer\").attr(\"width\",\"24\").attr(\"height\",\"24\").append(\"path\").attr(\"transform\",\"scale(.5)\").attr(\"d\",\"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\")},vC=function(t){t.append(\"defs\").append(\"symbol\").attr(\"id\",\"clock\").attr(\"width\",\"24\").attr(\"height\",\"24\").append(\"path\").attr(\"transform\",\"scale(.5)\").attr(\"d\",\"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\")},kC=function(t){t.append(\"defs\").append(\"marker\").attr(\"id\",\"arrowhead\").attr(\"refX\",9).attr(\"refY\",5).attr(\"markerUnits\",\"userSpaceOnUse\").attr(\"markerWidth\",12).attr(\"markerHeight\",12).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 0 0 L 10 5 L 0 10 z\")},wC=function(t){t.append(\"defs\").append(\"marker\").attr(\"id\",\"arrowend\").attr(\"refX\",1).attr(\"refY\",5).attr(\"markerUnits\",\"userSpaceOnUse\").attr(\"markerWidth\",12).attr(\"markerHeight\",12).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 10 0 L 0 5 L 10 10 z\")},TC=function(t){t.append(\"defs\").append(\"marker\").attr(\"id\",\"filled-head\").attr(\"refX\",18).attr(\"refY\",7).attr(\"markerWidth\",20).attr(\"markerHeight\",28).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 18,7 L9,13 L14,7 L9,1 Z\")},EC=function(t){t.append(\"defs\").append(\"marker\").attr(\"id\",\"sequencenumber\").attr(\"refX\",15).attr(\"refY\",15).attr(\"markerWidth\",60).attr(\"markerHeight\",40).attr(\"orient\",\"auto\").append(\"circle\").attr(\"cx\",15).attr(\"cy\",15).attr(\"r\",6)},CC=function(t){const r=t.append(\"defs\").append(\"marker\").attr(\"id\",\"crosshead\").attr(\"markerWidth\",15).attr(\"markerHeight\",8).attr(\"orient\",\"auto\").attr(\"refX\",16).attr(\"refY\",4);r.append(\"path\").attr(\"fill\",\"black\").attr(\"stroke\",\"#000000\").style(\"stroke-dasharray\",\"0, 0\").attr(\"stroke-width\",\"1px\").attr(\"d\",\"M 9,2 V 6 L16,4 Z\"),r.append(\"path\").attr(\"fill\",\"none\").attr(\"stroke\",\"#000000\").style(\"stroke-dasharray\",\"0, 0\").attr(\"stroke-width\",\"1px\").attr(\"d\",\"M 0,1 L 6,7 M 6,1 L 0,7\")},kg=function(){return{x:0,y:0,fill:\"#EDF2AE\",stroke:\"#666\",width:100,anchor:\"start\",height:100,rx:0,ry:0}},SC=(t,e)=>({fontFamily:t[e+\"FontFamily\"],fontSize:t[e+\"FontSize\"],fontWeight:t[e+\"FontWeight\"]}),fi=function(){function t(i,s,a,o,l,u,d){const f=s.append(\"text\").attr(\"x\",a+l/2).attr(\"y\",o+u/2+5).style(\"text-anchor\",\"middle\").text(i);n(f,d)}function e(i,s,a,o,l,u,d,f){const{fontSize:p,fontFamily:g,fontWeight:b}=f,k=i.split(he.lineBreakRegex);for(let T=0;T<k.length;T++){const L=T*p-p*(k.length-1)/2,E=s.append(\"text\").attr(\"x\",a+l/2).attr(\"y\",o).style(\"text-anchor\",\"middle\").attr(\"dominant-baseline\",\"middle\").style(\"font-size\",p).style(\"font-weight\",b).style(\"font-family\",g);E.append(\"tspan\").attr(\"dy\",L).text(k[T]).attr(\"alignment-baseline\",\"mathematical\"),n(E,d)}}function r(i,s,a,o,l,u,d,f){const p=s.append(\"switch\"),b=p.append(\"foreignObject\").attr(\"x\",a).attr(\"y\",o).attr(\"width\",l).attr(\"height\",u).append(\"xhtml:div\").style(\"display\",\"table\").style(\"height\",\"100%\").style(\"width\",\"100%\");b.append(\"div\").style(\"display\",\"table-cell\").style(\"text-align\",\"center\").style(\"vertical-align\",\"middle\").text(i),e(i,p,a,o,l,u,d,f),n(b,d)}function n(i,s){for(const a in s)s.hasOwnProperty(a)&&i.attr(a,s[a])}return function(i){return i.textPlacement===\"fo\"?r:i.textPlacement===\"old\"?t:e}}(),Wn={drawRect:I1,drawBoundary:mC,drawC4Shape:bC,drawRels:yC,drawImage:vg,insertArrowHead:kC,insertArrowEnd:wC,insertArrowFilledHead:TC,insertDynamicNumber:EC,insertArrowCrossHead:CC,insertDatabaseIcon:_C,insertComputerIcon:xC,insertClockIcon:vC,getNoteRect:kg,sanitizeUrl:ti};let Vc=0,Uc=0,wg=4,O1=2;Fc.yy=xg;let Zt={};class Tg{constructor(e){this.name=\"\",this.data={},this.data.startx=void 0,this.data.stopx=void 0,this.data.starty=void 0,this.data.stopy=void 0,this.data.widthLimit=void 0,this.nextData={},this.nextData.startx=void 0,this.nextData.stopx=void 0,this.nextData.starty=void 0,this.nextData.stopy=void 0,this.nextData.cnt=0,R1(e.db.getConfig())}setData(e,r,n,i){this.nextData.startx=this.data.startx=e,this.nextData.stopx=this.data.stopx=r,this.nextData.starty=this.data.starty=n,this.nextData.stopy=this.data.stopy=i}updateVal(e,r,n,i){e[r]===void 0?e[r]=n:e[r]=i(n,e[r])}insert(e){this.nextData.cnt=this.nextData.cnt+1;let r=this.nextData.startx===this.nextData.stopx?this.nextData.stopx+e.margin:this.nextData.stopx+e.margin*2,n=r+e.width,i=this.nextData.starty+e.margin*2,s=i+e.height;(r>=this.data.widthLimit||n>=this.data.widthLimit||this.nextData.cnt>wg)&&(r=this.nextData.startx+e.margin+Zt.nextLinePaddingX,i=this.nextData.stopy+e.margin*2,this.nextData.stopx=n=r+e.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=s=i+e.height,this.nextData.cnt=1),e.x=r,e.y=i,this.updateVal(this.data,\"startx\",r,Math.min),this.updateVal(this.data,\"starty\",i,Math.min),this.updateVal(this.data,\"stopx\",n,Math.max),this.updateVal(this.data,\"stopy\",s,Math.max),this.updateVal(this.nextData,\"startx\",r,Math.min),this.updateVal(this.nextData,\"starty\",i,Math.min),this.updateVal(this.nextData,\"stopx\",n,Math.max),this.updateVal(this.nextData,\"stopy\",s,Math.max)}init(e){this.name=\"\",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},R1(e.db.getConfig())}bumpLastMargin(e){this.data.stopx+=e,this.data.stopy+=e}}const R1=function(t){gr(Zt,t),t.fontFamily&&(Zt.personFontFamily=Zt.systemFontFamily=Zt.messageFontFamily=t.fontFamily),t.fontSize&&(Zt.personFontSize=Zt.systemFontSize=Zt.messageFontSize=t.fontSize),t.fontWeight&&(Zt.personFontWeight=Zt.systemFontWeight=Zt.messageFontWeight=t.fontWeight)},vo=(t,e)=>({fontFamily:t[e+\"FontFamily\"],fontSize:t[e+\"FontSize\"],fontWeight:t[e+\"FontWeight\"]}),zc=t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight}),AC=t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight});function Sn(t,e,r,n,i){if(!e[t].width)if(r)e[t].text=Pp(e[t].text,i,n),e[t].textLines=e[t].text.split(he.lineBreakRegex).length,e[t].width=i,e[t].height=g1(e[t].text,n);else{let s=e[t].text.split(he.lineBreakRegex);e[t].textLines=s.length;let a=0;e[t].height=0,e[t].width=0;for(const o of s)e[t].width=Math.max(Un(o,n),e[t].width),a=g1(o,n),e[t].height=e[t].height+a}}const Eg=function(t,e,r){e.x=r.data.startx,e.y=r.data.starty,e.width=r.data.stopx-r.data.startx,e.height=r.data.stopy-r.data.starty,e.label.y=Zt.c4ShapeMargin-35;let n=e.wrap&&Zt.wrap,i=zc(Zt);i.fontSize=i.fontSize+2,i.fontWeight=\"bold\";let s=Un(e.label.text,i);Sn(\"label\",e,n,i,s),Wn.drawBoundary(t,e,Zt)},Cg=function(t,e,r,n){let i=0;for(const s of n){i=0;const a=r[s];let o=vo(Zt,a.typeC4Shape.text);switch(o.fontSize=o.fontSize-2,a.typeC4Shape.width=Un(\"<<\"+a.typeC4Shape.text+\">>\",o),a.typeC4Shape.height=o.fontSize+2,a.typeC4Shape.Y=Zt.c4ShapePadding,i=a.typeC4Shape.Y+a.typeC4Shape.height-4,a.image={width:0,height:0,Y:0},a.typeC4Shape.text){case\"person\":case\"external_person\":a.image.width=48,a.image.height=48,a.image.Y=i,i=a.image.Y+a.image.height;break}a.sprite&&(a.image.width=48,a.image.height=48,a.image.Y=i,i=a.image.Y+a.image.height);let l=a.wrap&&Zt.wrap,u=Zt.width-Zt.c4ShapePadding*2,d=vo(Zt,a.typeC4Shape.text);if(d.fontSize=d.fontSize+2,d.fontWeight=\"bold\",Sn(\"label\",a,l,d,u),a.label.Y=i+8,i=a.label.Y+a.label.height,a.type&&a.type.text!==\"\"){a.type.text=\"[\"+a.type.text+\"]\";let g=vo(Zt,a.typeC4Shape.text);Sn(\"type\",a,l,g,u),a.type.Y=i+5,i=a.type.Y+a.type.height}else if(a.techn&&a.techn.text!==\"\"){a.techn.text=\"[\"+a.techn.text+\"]\";let g=vo(Zt,a.techn.text);Sn(\"techn\",a,l,g,u),a.techn.Y=i+5,i=a.techn.Y+a.techn.height}let f=i,p=a.label.width;if(a.descr&&a.descr.text!==\"\"){let g=vo(Zt,a.typeC4Shape.text);Sn(\"descr\",a,l,g,u),a.descr.Y=i+20,i=a.descr.Y+a.descr.height,p=Math.max(a.label.width,a.descr.width),f=i-a.descr.textLines*5}p=p+Zt.c4ShapePadding,a.width=Math.max(a.width||Zt.width,p,Zt.width),a.height=Math.max(a.height||Zt.height,f,Zt.height),a.margin=a.margin||Zt.c4ShapeMargin,t.insert(a),Wn.drawC4Shape(e,a,Zt)}t.bumpLastMargin(Zt.c4ShapeMargin)};class sn{constructor(e,r){this.x=e,this.y=r}}let Sg=function(t,e){let r=t.x,n=t.y,i=e.x,s=e.y,a=r+t.width/2,o=n+t.height/2,l=Math.abs(r-i),u=Math.abs(n-s),d=u/l,f=t.height/t.width,p=null;return n==s&&r<i?p=new sn(r+t.width,o):n==s&&r>i?p=new sn(r,o):r==i&&n<s?p=new sn(a,n+t.height):r==i&&n>s&&(p=new sn(a,n)),r>i&&n<s?f>=d?p=new sn(r,o+d*t.width/2):p=new sn(a-l/u*t.height/2,n+t.height):r<i&&n<s?f>=d?p=new sn(r+t.width,o+d*t.width/2):p=new sn(a+l/u*t.height/2,n+t.height):r<i&&n>s?f>=d?p=new sn(r+t.width,o-d*t.width/2):p=new sn(a+t.height/2*l/u,n):r>i&&n>s&&(f>=d?p=new sn(r,o-t.width/2*d):p=new sn(a-t.height/2*l/u,n)),p},LC=function(t,e){let r={x:0,y:0};r.x=e.x+e.width/2,r.y=e.y+e.height/2;let n=Sg(t,r);r.x=t.x+t.width/2,r.y=t.y+t.height/2;let i=Sg(e,r);return{startPoint:n,endPoint:i}};const DC=function(t,e,r,n){let i=0;for(let s of e){i=i+1;let a=s.wrap&&Zt.wrap,o=AC(Zt);n.db.getC4Type()===\"C4Dynamic\"&&(s.label.text=i+\": \"+s.label.text);let u=Un(s.label.text,o);Sn(\"label\",s,a,o,u),s.techn&&s.techn.text!==\"\"&&(u=Un(s.techn.text,o),Sn(\"techn\",s,a,o,u)),s.descr&&s.descr.text!==\"\"&&(u=Un(s.descr.text,o),Sn(\"descr\",s,a,o,u));let d=r(s.from),f=r(s.to),p=LC(d,f);s.startPoint=p.startPoint,s.endPoint=p.endPoint}Wn.drawRels(t,e,Zt)};function Ag(t,e,r,n,i){let s=new Tg(i);s.data.widthLimit=r.data.widthLimit/Math.min(O1,n.length);for(let[a,o]of n.entries()){let l=0;o.image={width:0,height:0,Y:0},o.sprite&&(o.image.width=48,o.image.height=48,o.image.Y=l,l=o.image.Y+o.image.height);let u=o.wrap&&Zt.wrap,d=zc(Zt);if(d.fontSize=d.fontSize+2,d.fontWeight=\"bold\",Sn(\"label\",o,u,d,s.data.widthLimit),o.label.Y=l+8,l=o.label.Y+o.label.height,o.type&&o.type.text!==\"\"){o.type.text=\"[\"+o.type.text+\"]\";let b=zc(Zt);Sn(\"type\",o,u,b,s.data.widthLimit),o.type.Y=l+5,l=o.type.Y+o.type.height}if(o.descr&&o.descr.text!==\"\"){let b=zc(Zt);b.fontSize=b.fontSize-2,Sn(\"descr\",o,u,b,s.data.widthLimit),o.descr.Y=l+20,l=o.descr.Y+o.descr.height}if(a==0||a%O1===0){let b=r.data.startx+Zt.diagramMarginX,k=r.data.stopy+Zt.diagramMarginY+l;s.setData(b,b,k,k)}else{let b=s.data.stopx!==s.data.startx?s.data.stopx+Zt.diagramMarginX:s.data.startx,k=s.data.starty;s.setData(b,b,k,k)}s.name=o.alias;let f=i.db.getC4ShapeArray(o.alias),p=i.db.getC4ShapeKeys(o.alias);p.length>0&&Cg(s,t,f,p),e=o.alias;let g=i.db.getBoundarys(e);g.length>0&&Ag(t,e,s,g,i),o.alias!==\"global\"&&Eg(t,o,s),r.data.stopy=Math.max(s.data.stopy+Zt.c4ShapeMargin,r.data.stopy),r.data.stopx=Math.max(s.data.stopx+Zt.c4ShapeMargin,r.data.stopx),Vc=Math.max(Vc,r.data.stopx),Uc=Math.max(Uc,r.data.stopy)}}const Lg={drawPersonOrSystemArray:Cg,drawBoundary:Eg,setConf:R1,draw:function(t,e,r,n){Zt=$().c4;const i=$().securityLevel;let s;i===\"sandbox\"&&(s=St(\"#i\"+e));const a=St(i===\"sandbox\"?s.nodes()[0].contentDocument.body:\"body\");let o=n.db;n.db.setWrap(Zt.wrap),wg=o.getC4ShapeInRow(),O1=o.getC4BoundaryInRow(),B.debug(`C:${JSON.stringify(Zt,null,2)}`);const l=i===\"sandbox\"?a.select(`[id=\"${e}\"]`):St(`[id=\"${e}\"]`);Wn.insertComputerIcon(l),Wn.insertDatabaseIcon(l),Wn.insertClockIcon(l);let u=new Tg(n);u.setData(Zt.diagramMarginX,Zt.diagramMarginX,Zt.diagramMarginY,Zt.diagramMarginY),u.data.widthLimit=screen.availWidth,Vc=Zt.diagramMarginX,Uc=Zt.diagramMarginY;const d=n.db.getTitle();let f=n.db.getBoundarys(\"\");Ag(l,\"\",u,f,n),Wn.insertArrowHead(l),Wn.insertArrowEnd(l),Wn.insertArrowCrossHead(l),Wn.insertArrowFilledHead(l),DC(l,n.db.getRels(),n.db.getC4Shape,n),u.data.stopx=Vc,u.data.stopy=Uc;const p=u.data;let b=p.stopy-p.starty+2*Zt.diagramMarginY;const T=p.stopx-p.startx+2*Zt.diagramMarginX;d&&l.append(\"text\").text(d).attr(\"x\",(p.stopx-p.startx)/2-4*Zt.diagramMarginX).attr(\"y\",p.starty+Zt.diagramMarginY),xn(l,b,T,Zt.useMaxWidth);const L=d?60:0;l.attr(\"viewBox\",p.startx-Zt.diagramMarginX+\" -\"+(Zt.diagramMarginY+L)+\" \"+T+\" \"+(b+L)),B.debug(\"models:\",p)}};var F1=function(){var t=function(F,O,A,J){for(A=A||{},J=F.length;J--;A[F[J]]=O);return A},e=[1,3],r=[1,7],n=[1,8],i=[1,9],s=[1,10],a=[1,13],o=[1,12],l=[1,16,25],u=[1,20],d=[1,32],f=[1,33],p=[1,34],g=[1,36],b=[1,39],k=[1,37],T=[1,38],L=[1,44],E=[1,45],I=[1,40],V=[1,41],H=[1,42],G=[1,43],Y=[1,48],W=[1,49],N=[1,50],D=[1,51],w=[16,25],v=[1,65],M=[1,66],m=[1,67],Q=[1,68],x=[1,69],ct=[1,70],Dt=[1,71],kt=[1,80],j=[16,25,32,45,46,54,60,61,62,63,64,65,66,71,73],ot=[16,25,30,32,45,46,50,54,60,61,62,63,64,65,66,71,73,88,89,90,91],rt=[5,8,9,10,11,16,19,23,25],nt=[54,88,89,90,91],ut=[54,65,66,88,89,90,91],_t=[54,60,61,62,63,64,88,89,90,91],K=[16,25,32],Ot=[1,107],P={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statments:5,direction:6,directive:7,direction_tb:8,direction_bt:9,direction_rl:10,direction_lr:11,graphConfig:12,openDirective:13,typeDirective:14,closeDirective:15,NEWLINE:16,\":\":17,argDirective:18,open_directive:19,type_directive:20,arg_directive:21,close_directive:22,CLASS_DIAGRAM:23,statements:24,EOF:25,statement:26,className:27,alphaNumToken:28,classLiteralName:29,GENERICTYPE:30,relationStatement:31,LABEL:32,classStatement:33,methodStatement:34,annotationStatement:35,clickStatement:36,cssClassStatement:37,noteStatement:38,acc_title:39,acc_title_value:40,acc_descr:41,acc_descr_value:42,acc_descr_multiline_value:43,CLASS:44,STYLE_SEPARATOR:45,STRUCT_START:46,members:47,STRUCT_STOP:48,ANNOTATION_START:49,ANNOTATION_END:50,MEMBER:51,SEPARATOR:52,relation:53,STR:54,NOTE_FOR:55,noteText:56,NOTE:57,relationType:58,lineType:59,AGGREGATION:60,EXTENSION:61,COMPOSITION:62,DEPENDENCY:63,LOLLIPOP:64,LINE:65,DOTTED_LINE:66,CALLBACK:67,LINK:68,LINK_TARGET:69,CLICK:70,CALLBACK_NAME:71,CALLBACK_ARGS:72,HREF:73,CSSCLASS:74,commentToken:75,textToken:76,graphCodeTokens:77,textNoTagsToken:78,TAGSTART:79,TAGEND:80,\"==\":81,\"--\":82,PCT:83,DEFAULT:84,SPACE:85,MINUS:86,keywords:87,UNICODE_TEXT:88,NUM:89,ALPHA:90,BQUOTE_STR:91,$accept:0,$end:1},terminals_:{2:\"error\",5:\"statments\",8:\"direction_tb\",9:\"direction_bt\",10:\"direction_rl\",11:\"direction_lr\",16:\"NEWLINE\",17:\":\",19:\"open_directive\",20:\"type_directive\",21:\"arg_directive\",22:\"close_directive\",23:\"CLASS_DIAGRAM\",25:\"EOF\",30:\"GENERICTYPE\",32:\"LABEL\",39:\"acc_title\",40:\"acc_title_value\",41:\"acc_descr\",42:\"acc_descr_value\",43:\"acc_descr_multiline_value\",44:\"CLASS\",45:\"STYLE_SEPARATOR\",46:\"STRUCT_START\",48:\"STRUCT_STOP\",49:\"ANNOTATION_START\",50:\"ANNOTATION_END\",51:\"MEMBER\",52:\"SEPARATOR\",54:\"STR\",55:\"NOTE_FOR\",57:\"NOTE\",60:\"AGGREGATION\",61:\"EXTENSION\",62:\"COMPOSITION\",63:\"DEPENDENCY\",64:\"LOLLIPOP\",65:\"LINE\",66:\"DOTTED_LINE\",67:\"CALLBACK\",68:\"LINK\",69:\"LINK_TARGET\",70:\"CLICK\",71:\"CALLBACK_NAME\",72:\"CALLBACK_ARGS\",73:\"HREF\",74:\"CSSCLASS\",77:\"graphCodeTokens\",79:\"TAGSTART\",80:\"TAGEND\",81:\"==\",82:\"--\",83:\"PCT\",84:\"DEFAULT\",85:\"SPACE\",86:\"MINUS\",87:\"keywords\",88:\"UNICODE_TEXT\",89:\"NUM\",90:\"ALPHA\",91:\"BQUOTE_STR\"},productions_:[0,[3,1],[3,1],[3,1],[3,2],[6,1],[6,1],[6,1],[6,1],[4,1],[7,4],[7,6],[13,1],[14,1],[18,1],[15,1],[12,4],[24,1],[24,2],[24,3],[27,1],[27,1],[27,2],[27,2],[27,2],[26,1],[26,2],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,2],[26,2],[26,1],[33,2],[33,4],[33,5],[33,7],[35,4],[47,1],[47,2],[34,1],[34,2],[34,1],[34,1],[31,3],[31,4],[31,4],[31,5],[38,3],[38,2],[53,3],[53,2],[53,2],[53,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[36,3],[36,4],[36,3],[36,4],[36,4],[36,5],[36,3],[36,4],[36,4],[36,5],[36,3],[36,4],[36,4],[36,5],[37,3],[75,1],[75,1],[76,1],[76,1],[76,1],[76,1],[76,1],[76,1],[76,1],[78,1],[78,1],[78,1],[78,1],[28,1],[28,1],[28,1],[29,1],[56,1]],performAction:function(O,A,J,C,ht,U,Yt){var et=U.length-1;switch(ht){case 5:C.setDirection(\"TB\");break;case 6:C.setDirection(\"BT\");break;case 7:C.setDirection(\"RL\");break;case 8:C.setDirection(\"LR\");break;case 12:C.parseDirective(\"%%{\",\"open_directive\");break;case 13:C.parseDirective(U[et],\"type_directive\");break;case 14:U[et]=U[et].trim().replace(/'/g,'\"'),C.parseDirective(U[et],\"arg_directive\");break;case 15:C.parseDirective(\"}%%\",\"close_directive\",\"class\");break;case 20:case 21:this.$=U[et];break;case 22:this.$=U[et-1]+U[et];break;case 23:case 24:this.$=U[et-1]+\"~\"+U[et];break;case 25:C.addRelation(U[et]);break;case 26:U[et-1].title=C.cleanupLabel(U[et]),C.addRelation(U[et-1]);break;case 35:this.$=U[et].trim(),C.setAccTitle(this.$);break;case 36:case 37:this.$=U[et].trim(),C.setAccDescription(this.$);break;case 38:C.addClass(U[et]);break;case 39:C.addClass(U[et-2]),C.setCssClass(U[et-2],U[et]);break;case 40:C.addClass(U[et-3]),C.addMembers(U[et-3],U[et-1]);break;case 41:C.addClass(U[et-5]),C.setCssClass(U[et-5],U[et-3]),C.addMembers(U[et-5],U[et-1]);break;case 42:C.addAnnotation(U[et],U[et-2]);break;case 43:this.$=[U[et]];break;case 44:U[et].push(U[et-1]),this.$=U[et];break;case 45:break;case 46:C.addMember(U[et-1],C.cleanupLabel(U[et]));break;case 47:break;case 48:break;case 49:this.$={id1:U[et-2],id2:U[et],relation:U[et-1],relationTitle1:\"none\",relationTitle2:\"none\"};break;case 50:this.$={id1:U[et-3],id2:U[et],relation:U[et-1],relationTitle1:U[et-2],relationTitle2:\"none\"};break;case 51:this.$={id1:U[et-3],id2:U[et],relation:U[et-2],relationTitle1:\"none\",relationTitle2:U[et-1]};break;case 52:this.$={id1:U[et-4],id2:U[et],relation:U[et-2],relationTitle1:U[et-3],relationTitle2:U[et-1]};break;case 53:C.addNote(U[et],U[et-1]);break;case 54:C.addNote(U[et]);break;case 55:this.$={type1:U[et-2],type2:U[et],lineType:U[et-1]};break;case 56:this.$={type1:\"none\",type2:U[et],lineType:U[et-1]};break;case 57:this.$={type1:U[et-1],type2:\"none\",lineType:U[et]};break;case 58:this.$={type1:\"none\",type2:\"none\",lineType:U[et]};break;case 59:this.$=C.relationType.AGGREGATION;break;case 60:this.$=C.relationType.EXTENSION;break;case 61:this.$=C.relationType.COMPOSITION;break;case 62:this.$=C.relationType.DEPENDENCY;break;case 63:this.$=C.relationType.LOLLIPOP;break;case 64:this.$=C.lineType.LINE;break;case 65:this.$=C.lineType.DOTTED_LINE;break;case 66:case 72:this.$=U[et-2],C.setClickEvent(U[et-1],U[et]);break;case 67:case 73:this.$=U[et-3],C.setClickEvent(U[et-2],U[et-1]),C.setTooltip(U[et-2],U[et]);break;case 68:case 76:this.$=U[et-2],C.setLink(U[et-1],U[et]);break;case 69:this.$=U[et-3],C.setLink(U[et-2],U[et-1],U[et]);break;case 70:case 78:this.$=U[et-3],C.setLink(U[et-2],U[et-1]),C.setTooltip(U[et-2],U[et]);break;case 71:case 79:this.$=U[et-4],C.setLink(U[et-3],U[et-2],U[et]),C.setTooltip(U[et-3],U[et-1]);break;case 74:this.$=U[et-3],C.setClickEvent(U[et-2],U[et-1],U[et]);break;case 75:this.$=U[et-4],C.setClickEvent(U[et-3],U[et-2],U[et-1]),C.setTooltip(U[et-3],U[et]);break;case 77:this.$=U[et-3],C.setLink(U[et-2],U[et-1],U[et]);break;case 80:C.setCssClass(U[et-1],U[et]);break}},table:[{3:1,4:2,5:e,6:4,7:5,8:r,9:n,10:i,11:s,12:6,13:11,19:a,23:o},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{3:14,4:2,5:e,6:4,7:5,8:r,9:n,10:i,11:s,12:6,13:11,19:a,23:o},{1:[2,9]},t(l,[2,5]),t(l,[2,6]),t(l,[2,7]),t(l,[2,8]),{14:15,20:[1,16]},{16:[1,17]},{20:[2,12]},{1:[2,4]},{15:18,17:[1,19],22:u},t([17,22],[2,13]),{6:31,7:30,8:r,9:n,10:i,11:s,13:11,19:a,24:21,26:22,27:35,28:46,29:47,31:23,33:24,34:25,35:26,36:27,37:28,38:29,39:d,41:f,43:p,44:g,49:b,51:k,52:T,55:L,57:E,67:I,68:V,70:H,74:G,88:Y,89:W,90:N,91:D},{16:[1,52]},{18:53,21:[1,54]},{16:[2,15]},{25:[1,55]},{16:[1,56],25:[2,17]},t(w,[2,25],{32:[1,57]}),t(w,[2,27]),t(w,[2,28]),t(w,[2,29]),t(w,[2,30]),t(w,[2,31]),t(w,[2,32]),t(w,[2,33]),t(w,[2,34]),{40:[1,58]},{42:[1,59]},t(w,[2,37]),t(w,[2,45],{53:60,58:63,59:64,32:[1,62],54:[1,61],60:v,61:M,62:m,63:Q,64:x,65:ct,66:Dt}),{27:72,28:46,29:47,88:Y,89:W,90:N,91:D},t(w,[2,47]),t(w,[2,48]),{28:73,88:Y,89:W,90:N},{27:74,28:46,29:47,88:Y,89:W,90:N,91:D},{27:75,28:46,29:47,88:Y,89:W,90:N,91:D},{27:76,28:46,29:47,88:Y,89:W,90:N,91:D},{54:[1,77]},{27:78,28:46,29:47,88:Y,89:W,90:N,91:D},{54:kt,56:79},t(j,[2,20],{28:46,29:47,27:81,30:[1,82],88:Y,89:W,90:N,91:D}),t(j,[2,21],{30:[1,83]}),t(ot,[2,94]),t(ot,[2,95]),t(ot,[2,96]),t([16,25,30,32,45,46,54,60,61,62,63,64,65,66,71,73],[2,97]),t(rt,[2,10]),{15:84,22:u},{22:[2,14]},{1:[2,16]},{6:31,7:30,8:r,9:n,10:i,11:s,13:11,19:a,24:85,25:[2,18],26:22,27:35,28:46,29:47,31:23,33:24,34:25,35:26,36:27,37:28,38:29,39:d,41:f,43:p,44:g,49:b,51:k,52:T,55:L,57:E,67:I,68:V,70:H,74:G,88:Y,89:W,90:N,91:D},t(w,[2,26]),t(w,[2,35]),t(w,[2,36]),{27:86,28:46,29:47,54:[1,87],88:Y,89:W,90:N,91:D},{53:88,58:63,59:64,60:v,61:M,62:m,63:Q,64:x,65:ct,66:Dt},t(w,[2,46]),{59:89,65:ct,66:Dt},t(nt,[2,58],{58:90,60:v,61:M,62:m,63:Q,64:x}),t(ut,[2,59]),t(ut,[2,60]),t(ut,[2,61]),t(ut,[2,62]),t(ut,[2,63]),t(_t,[2,64]),t(_t,[2,65]),t(w,[2,38],{45:[1,91],46:[1,92]}),{50:[1,93]},{54:[1,94]},{54:[1,95]},{71:[1,96],73:[1,97]},{28:98,88:Y,89:W,90:N},{54:kt,56:99},t(w,[2,54]),t(w,[2,98]),t(j,[2,22]),t(j,[2,23]),t(j,[2,24]),{16:[1,100]},{25:[2,19]},t(K,[2,49]),{27:101,28:46,29:47,88:Y,89:W,90:N,91:D},{27:102,28:46,29:47,54:[1,103],88:Y,89:W,90:N,91:D},t(nt,[2,57],{58:104,60:v,61:M,62:m,63:Q,64:x}),t(nt,[2,56]),{28:105,88:Y,89:W,90:N},{47:106,51:Ot},{27:108,28:46,29:47,88:Y,89:W,90:N,91:D},t(w,[2,66],{54:[1,109]}),t(w,[2,68],{54:[1,111],69:[1,110]}),t(w,[2,72],{54:[1,112],72:[1,113]}),t(w,[2,76],{54:[1,115],69:[1,114]}),t(w,[2,80]),t(w,[2,53]),t(rt,[2,11]),t(K,[2,51]),t(K,[2,50]),{27:116,28:46,29:47,88:Y,89:W,90:N,91:D},t(nt,[2,55]),t(w,[2,39],{46:[1,117]}),{48:[1,118]},{47:119,48:[2,43],51:Ot},t(w,[2,42]),t(w,[2,67]),t(w,[2,69]),t(w,[2,70],{69:[1,120]}),t(w,[2,73]),t(w,[2,74],{54:[1,121]}),t(w,[2,77]),t(w,[2,78],{69:[1,122]}),t(K,[2,52]),{47:123,51:Ot},t(w,[2,40]),{48:[2,44]},t(w,[2,71]),t(w,[2,75]),t(w,[2,79]),{48:[1,124]},t(w,[2,41])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],6:[2,9],13:[2,12],14:[2,4],20:[2,15],54:[2,14],55:[2,16],85:[2,19],119:[2,44]},parseError:function(O,A){if(A.recoverable)this.trace(O);else{var J=new Error(O);throw J.hash=A,J}},parse:function(O){var A=this,J=[0],C=[],ht=[null],U=[],Yt=this.table,et=\"\",Mt=0,Tt=0,gt=2,Et=1,wt=U.slice.call(arguments,1),pt=Object.create(this.lexer),st={yy:{}};for(var le in this.yy)Object.prototype.hasOwnProperty.call(this.yy,le)&&(st.yy[le]=this.yy[le]);pt.setInput(O,st.yy),st.yy.lexer=pt,st.yy.parser=this,typeof pt.yylloc>\"u\"&&(pt.yylloc={});var Xt=pt.yylloc;U.push(Xt);var jt=pt.options&&pt.options.ranges;typeof st.yy.parseError==\"function\"?this.parseError=st.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Kt(){var at;return at=C.pop()||pt.lex()||Et,typeof at!=\"number\"&&(at instanceof Array&&(C=at,at=C.pop()),at=A.symbols_[at]||at),at}for(var Gt,Ee,Ht,Vt,Ft={},xt,ft,Lt,bt;;){if(Ee=J[J.length-1],this.defaultActions[Ee]?Ht=this.defaultActions[Ee]:((Gt===null||typeof Gt>\"u\")&&(Gt=Kt()),Ht=Yt[Ee]&&Yt[Ee][Gt]),typeof Ht>\"u\"||!Ht.length||!Ht[0]){var Ut=\"\";bt=[];for(xt in Yt[Ee])this.terminals_[xt]&&xt>gt&&bt.push(\"'\"+this.terminals_[xt]+\"'\");pt.showPosition?Ut=\"Parse error on line \"+(Mt+1)+`:\n`+pt.showPosition()+`\nExpecting `+bt.join(\", \")+\", got '\"+(this.terminals_[Gt]||Gt)+\"'\":Ut=\"Parse error on line \"+(Mt+1)+\": Unexpected \"+(Gt==Et?\"end of input\":\"'\"+(this.terminals_[Gt]||Gt)+\"'\"),this.parseError(Ut,{text:pt.match,token:this.terminals_[Gt]||Gt,line:pt.yylineno,loc:Xt,expected:bt})}if(Ht[0]instanceof Array&&Ht.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+Ee+\", token: \"+Gt);switch(Ht[0]){case 1:J.push(Gt),ht.push(pt.yytext),U.push(pt.yylloc),J.push(Ht[1]),Gt=null,Tt=pt.yyleng,et=pt.yytext,Mt=pt.yylineno,Xt=pt.yylloc;break;case 2:if(ft=this.productions_[Ht[1]][1],Ft.$=ht[ht.length-ft],Ft._$={first_line:U[U.length-(ft||1)].first_line,last_line:U[U.length-1].last_line,first_column:U[U.length-(ft||1)].first_column,last_column:U[U.length-1].last_column},jt&&(Ft._$.range=[U[U.length-(ft||1)].range[0],U[U.length-1].range[1]]),Vt=this.performAction.apply(Ft,[et,Tt,Mt,st.yy,Ht[1],ht,U].concat(wt)),typeof Vt<\"u\")return Vt;ft&&(J=J.slice(0,-1*ft*2),ht=ht.slice(0,-1*ft),U=U.slice(0,-1*ft)),J.push(this.productions_[Ht[1]][0]),ht.push(Ft.$),U.push(Ft._$),Lt=Yt[J[J.length-2]][J[J.length-1]],J.push(Lt);break;case 3:return!0}}return!0}},z=function(){var F={EOF:1,parseError:function(A,J){if(this.yy.parser)this.yy.parser.parseError(A,J);else throw new Error(A)},setInput:function(O,A){return this.yy=A||this.yy||{},this._input=O,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var O=this._input[0];this.yytext+=O,this.yyleng++,this.offset++,this.match+=O,this.matched+=O;var A=O.match(/(?:\\r\\n?|\\n).*/g);return A?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),O},unput:function(O){var A=O.length,J=O.split(/(?:\\r\\n?|\\n)/g);this._input=O+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-A),this.offset-=A;var C=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),J.length-1&&(this.yylineno-=J.length-1);var ht=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:J?(J.length===C.length?this.yylloc.first_column:0)+C[C.length-J.length].length-J[0].length:this.yylloc.first_column-A},this.options.ranges&&(this.yylloc.range=[ht[0],ht[0]+this.yyleng-A]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno});return this},less:function(O){this.unput(this.match.slice(O))},pastInput:function(){var O=this.matched.substr(0,this.matched.length-this.match.length);return(O.length>20?\"...\":\"\")+O.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var O=this.match;return O.length<20&&(O+=this._input.substr(0,20-O.length)),(O.substr(0,20)+(O.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var O=this.pastInput(),A=new Array(O.length+1).join(\"-\");return O+this.upcomingInput()+`\n`+A+\"^\"},test_match:function(O,A){var J,C,ht;if(this.options.backtrack_lexer&&(ht={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ht.yylloc.range=this.yylloc.range.slice(0))),C=O[0].match(/(?:\\r\\n?|\\n).*/g),C&&(this.yylineno+=C.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:C?C[C.length-1].length-C[C.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+O[0].length},this.yytext+=O[0],this.match+=O[0],this.matches=O,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(O[0].length),this.matched+=O[0],J=this.performAction.call(this,this.yy,this,A,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),J)return J;if(this._backtrack){for(var U in ht)this[U]=ht[U];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var O,A,J,C;this._more||(this.yytext=\"\",this.match=\"\");for(var ht=this._currentRules(),U=0;U<ht.length;U++)if(J=this._input.match(this.rules[ht[U]]),J&&(!A||J[0].length>A[0].length)){if(A=J,C=U,this.options.backtrack_lexer){if(O=this.test_match(J,ht[U]),O!==!1)return O;if(this._backtrack){A=!1;continue}else return!1}else if(!this.options.flex)break}return A?(O=this.test_match(A,ht[C]),O!==!1?O:!1):this._input===\"\"?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. Unrecognized text.\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var A=this.next();return A||this.lex()},begin:function(A){this.conditionStack.push(A)},popState:function(){var A=this.conditionStack.length-1;return A>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(A){return A=this.conditionStack.length-1-Math.abs(A||0),A>=0?this.conditionStack[A]:\"INITIAL\"},pushState:function(A){this.begin(A)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(A,J,C,ht){switch(C){case 0:return this.begin(\"open_directive\"),19;case 1:return 8;case 2:return 9;case 3:return 10;case 4:return 11;case 5:return this.begin(\"type_directive\"),20;case 6:return this.popState(),this.begin(\"arg_directive\"),17;case 7:return this.popState(),this.popState(),22;case 8:return 21;case 9:break;case 10:break;case 11:return this.begin(\"acc_title\"),39;case 12:return this.popState(),\"acc_title_value\";case 13:return this.begin(\"acc_descr\"),41;case 14:return this.popState(),\"acc_descr_value\";case 15:this.begin(\"acc_descr_multiline\");break;case 16:this.popState();break;case 17:return\"acc_descr_multiline_value\";case 18:return 16;case 19:break;case 20:return 23;case 21:return 23;case 22:return this.begin(\"struct\"),46;case 23:return\"EDGE_STATE\";case 24:return\"EOF_IN_STRUCT\";case 25:return\"OPEN_IN_STRUCT\";case 26:return this.popState(),48;case 27:break;case 28:return\"MEMBER\";case 29:return 44;case 30:return 74;case 31:return 67;case 32:return 68;case 33:return 70;case 34:return 55;case 35:return 57;case 36:return 49;case 37:return 50;case 38:this.begin(\"generic\");break;case 39:this.popState();break;case 40:return\"GENERICTYPE\";case 41:this.begin(\"string\");break;case 42:this.popState();break;case 43:return\"STR\";case 44:this.begin(\"bqstring\");break;case 45:this.popState();break;case 46:return\"BQUOTE_STR\";case 47:this.begin(\"href\");break;case 48:this.popState();break;case 49:return 73;case 50:this.begin(\"callback_name\");break;case 51:this.popState();break;case 52:this.popState(),this.begin(\"callback_args\");break;case 53:return 71;case 54:this.popState();break;case 55:return 72;case 56:return 69;case 57:return 69;case 58:return 69;case 59:return 69;case 60:return 61;case 61:return 61;case 62:return 63;case 63:return 63;case 64:return 62;case 65:return 60;case 66:return 64;case 67:return 65;case 68:return 66;case 69:return 32;case 70:return 45;case 71:return 86;case 72:return\"DOT\";case 73:return\"PLUS\";case 74:return 83;case 75:return\"EQUALS\";case 76:return\"EQUALS\";case 77:return 90;case 78:return\"PUNCTUATION\";case 79:return 89;case 80:return 88;case 81:return 85;case 82:return 25}},rules:[/^(?:%%\\{)/,/^(?:.*direction\\s+TB[^\\n]*)/,/^(?:.*direction\\s+BT[^\\n]*)/,/^(?:.*direction\\s+RL[^\\n]*)/,/^(?:.*direction\\s+LR[^\\n]*)/,/^(?:((?:(?!\\}%%)[^:.])*))/,/^(?::)/,/^(?:\\}%%)/,/^(?:((?:(?!\\}%%).|\\n)*))/,/^(?:%%(?!\\{)*[^\\n]*(\\r?\\n?)+)/,/^(?:%%[^\\n]*(\\r?\\n)*)/,/^(?:accTitle\\s*:\\s*)/,/^(?:(?!\\n||)*[^\\n]*)/,/^(?:accDescr\\s*:\\s*)/,/^(?:(?!\\n||)*[^\\n]*)/,/^(?:accDescr\\s*\\{\\s*)/,/^(?:[\\}])/,/^(?:[^\\}]*)/,/^(?:\\s*(\\r?\\n)+)/,/^(?:\\s+)/,/^(?:classDiagram-v2\\b)/,/^(?:classDiagram\\b)/,/^(?:[{])/,/^(?:\\[\\*\\])/,/^(?:$)/,/^(?:[{])/,/^(?:[}])/,/^(?:[\\n])/,/^(?:[^{}\\n]*)/,/^(?:class\\b)/,/^(?:cssClass\\b)/,/^(?:callback\\b)/,/^(?:link\\b)/,/^(?:click\\b)/,/^(?:note for\\b)/,/^(?:note\\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:[~])/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:[`])/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:href[\\s]+[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:call[\\s]+)/,/^(?:\\([\\s]*\\))/,/^(?:\\()/,/^(?:[^(]*)/,/^(?:\\))/,/^(?:[^)]*)/,/^(?:_self\\b)/,/^(?:_blank\\b)/,/^(?:_parent\\b)/,/^(?:_top\\b)/,/^(?:\\s*<\\|)/,/^(?:\\s*\\|>)/,/^(?:\\s*>)/,/^(?:\\s*<)/,/^(?:\\s*\\*)/,/^(?:\\s*o\\b)/,/^(?:\\s*\\(\\))/,/^(?:--)/,/^(?:\\.\\.)/,/^(?::{1}[^:\\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\\.)/,/^(?:\\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\\w+)/,/^(?:[!\"#$%&'*+,-.`?\\\\/])/,/^(?:[0-9]+)/,/^(?:[\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6]|[\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377]|[\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5]|[\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA]|[\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE]|[\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA]|[\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0]|[\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977]|[\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2]|[\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A]|[\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39]|[\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8]|[\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C]|[\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C]|[\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99]|[\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0]|[\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D]|[\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3]|[\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10]|[\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1]|[\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81]|[\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3]|[\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6]|[\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A]|[\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081]|[\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D]|[\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0]|[\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310]|[\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C]|[\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711]|[\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7]|[\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C]|[\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16]|[\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF]|[\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC]|[\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D]|[\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D]|[\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3]|[\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F]|[\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128]|[\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184]|[\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3]|[\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6]|[\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE]|[\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C]|[\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D]|[\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC]|[\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B]|[\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788]|[\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805]|[\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB]|[\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28]|[\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5]|[\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4]|[\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E]|[\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D]|[\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36]|[\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D]|[\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC]|[\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF]|[\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC])/,/^(?:\\s)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[16,17],inclusive:!1},acc_descr:{rules:[14],inclusive:!1},acc_title:{rules:[12],inclusive:!1},arg_directive:{rules:[7,8],inclusive:!1},type_directive:{rules:[6,7],inclusive:!1},open_directive:{rules:[5],inclusive:!1},callback_args:{rules:[54,55],inclusive:!1},callback_name:{rules:[51,52,53],inclusive:!1},href:{rules:[48,49],inclusive:!1},struct:{rules:[23,24,25,26,27,28],inclusive:!1},generic:{rules:[39,40],inclusive:!1},bqstring:{rules:[45,46],inclusive:!1},string:{rules:[42,43],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,13,15,18,19,20,21,22,23,29,30,31,32,33,34,35,36,37,38,41,44,47,50,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82],inclusive:!0}}};return F}();P.lexer=z;function X(){this.yy={}}return X.prototype=P,P.Parser=X,new X}();F1.parser=F1;const Dg=F1,MC=(t,e)=>{var r;return((r=e==null?void 0:e.class)==null?void 0:r.defaultRenderer)===\"dagre-wrapper\"?!1:t.match(/^\\s*classDiagram/)!==null},NC=(t,e)=>{var r;return t.match(/^\\s*classDiagram/)!==null&&((r=e==null?void 0:e.class)==null?void 0:r.defaultRenderer)===\"dagre-wrapper\"?!0:t.match(/^\\s*classDiagram-v2/)!==null},P1=\"classid-\";let Y1=[],Ke={},Wc=[],Mg=0,ko=[];const wo=t=>he.sanitizeText(t,$()),BC=function(t,e,r){ze.parseDirective(this,t,e,r)},To=function(t){let e=\"\",r=t;if(t.indexOf(\"~\")>0){let n=t.split(\"~\");r=n[0],e=he.sanitizeText(n[1],$())}return{className:r,type:e}},V1=function(t){let e=To(t);Ke[e.className]===void 0&&(Ke[e.className]={id:e.className,type:e.type,cssClasses:[],methods:[],members:[],annotations:[],domId:P1+e.className+\"-\"+Mg},Mg++)},Ng=function(t){const e=Object.keys(Ke);for(const r of e)if(Ke[r].id===t)return Ke[r].domId},IC=function(){Y1=[],Ke={},Wc=[],ko=[],ko.push(Ig),vn()},OC=function(t){return Ke[t]},RC=function(){return Ke},FC=function(){return Y1},PC=function(){return Wc},YC=function(t){B.debug(\"Adding relation: \"+JSON.stringify(t)),V1(t.id1),V1(t.id2),t.id1=To(t.id1).className,t.id2=To(t.id2).className,t.relationTitle1=he.sanitizeText(t.relationTitle1.trim(),$()),t.relationTitle2=he.sanitizeText(t.relationTitle2.trim(),$()),Y1.push(t)},VC=function(t,e){const r=To(t).className;Ke[r].annotations.push(e)},Bg=function(t,e){const r=To(t).className,n=Ke[r];if(typeof e==\"string\"){const i=e.trim();i.startsWith(\"<<\")&&i.endsWith(\">>\")?n.annotations.push(wo(i.substring(2,i.length-2))):i.indexOf(\")\")>0?n.methods.push(wo(i)):i&&n.members.push(wo(i))}},UC=function(t,e){Array.isArray(e)&&(e.reverse(),e.forEach(r=>Bg(t,r)))},zC=function(t,e){const r={id:`note${Wc.length}`,class:e,text:t};Wc.push(r)},WC=function(t){return t.substring(0,1)===\":\"?he.sanitizeText(t.substr(1).trim(),$()):wo(t.trim())},U1=function(t,e){t.split(\",\").forEach(function(r){let n=r;r[0].match(/\\d/)&&(n=P1+n),Ke[n]!==void 0&&Ke[n].cssClasses.push(e)})},HC=function(t,e){const r=$();t.split(\",\").forEach(function(n){e!==void 0&&(Ke[n].tooltip=he.sanitizeText(e,r))})},GC=function(t){return Ke[t].tooltip},qC=function(t,e,r){const n=$();t.split(\",\").forEach(function(i){let s=i;i[0].match(/\\d/)&&(s=P1+s),Ke[s]!==void 0&&(Ke[s].link=ge.formatUrl(e,n),n.securityLevel===\"sandbox\"?Ke[s].linkTarget=\"_top\":typeof r==\"string\"?Ke[s].linkTarget=wo(r):Ke[s].linkTarget=\"_blank\")}),U1(t,\"clickable\")},jC=function(t,e,r){t.split(\",\").forEach(function(n){$C(n,e,r),Ke[n].haveCallback=!0}),U1(t,\"clickable\")},$C=function(t,e,r){const n=$();let i=t,s=Ng(i);if(n.securityLevel===\"loose\"&&e!==void 0&&Ke[i]!==void 0){let a=[];if(typeof r==\"string\"){a=r.split(/,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/);for(let o=0;o<a.length;o++){let l=a[o].trim();l.charAt(0)==='\"'&&l.charAt(l.length-1)==='\"'&&(l=l.substr(1,l.length-2)),a[o]=l}}a.length===0&&a.push(s),ko.push(function(){const o=document.querySelector(`[id=\"${s}\"]`);o!==null&&o.addEventListener(\"click\",function(){ge.runFunc(e,...a)},!1)})}},XC=function(t){ko.forEach(function(e){e(t)})},KC={LINE:0,DOTTED_LINE:1},ZC={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3,LOLLIPOP:4},Ig=function(t){let e=St(\".mermaidTooltip\");(e._groups||e)[0][0]===null&&(e=St(\"body\").append(\"div\").attr(\"class\",\"mermaidTooltip\").style(\"opacity\",0)),St(t).select(\"svg\").selectAll(\"g.node\").on(\"mouseover\",function(){const i=St(this);if(i.attr(\"title\")===null)return;const a=this.getBoundingClientRect();e.transition().duration(200).style(\"opacity\",\".9\"),e.text(i.attr(\"title\")).style(\"left\",window.scrollX+a.left+(a.right-a.left)/2+\"px\").style(\"top\",window.scrollY+a.top-14+document.body.scrollTop+\"px\"),e.html(e.html().replace(/<br\\/>/g,\"<br/>\")),i.classed(\"hover\",!0)}).on(\"mouseout\",function(){e.transition().duration(500).style(\"opacity\",0),St(this).classed(\"hover\",!1)})};ko.push(Ig);let Og=\"TB\";const fa={parseDirective:BC,setAccTitle:nn,getAccTitle:kn,getAccDescription:Tn,setAccDescription:wn,getConfig:()=>$().class,addClass:V1,bindFunctions:XC,clear:IC,getClass:OC,getClasses:RC,getNotes:PC,addAnnotation:VC,addNote:zC,getRelations:FC,addRelation:YC,getDirection:()=>Og,setDirection:t=>{Og=t},addMember:Bg,addMembers:UC,cleanupLabel:WC,lineType:KC,relationType:ZC,setClickEvent:jC,setCssClass:U1,setLink:qC,getTooltip:GC,setTooltip:HC,lookUpDomId:Ng,setDiagramTitle:hi,getDiagramTitle:di};function Hn(t){return t!=null&&typeof t==\"object\"}var QC=\"[object Symbol]\";function ks(t){return typeof t==\"symbol\"||Hn(t)&&ps(t)==QC}function pa(t,e){for(var r=-1,n=t==null?0:t.length,i=Array(n);++r<n;)i[r]=e(t[r],r,t);return i}var JC=Array.isArray;const nr=JC;var t9=1/0,Rg=en?en.prototype:void 0,Fg=Rg?Rg.toString:void 0;function Pg(t){if(typeof t==\"string\")return t;if(nr(t))return pa(t,Pg)+\"\";if(ks(t))return Fg?Fg.call(t):\"\";var e=t+\"\";return e==\"0\"&&1/t==-t9?\"-0\":e}var e9=/\\s/;function r9(t){for(var e=t.length;e--&&e9.test(t.charAt(e)););return e}var n9=/^\\s+/;function i9(t){return t&&t.slice(0,r9(t)+1).replace(n9,\"\")}var Yg=0/0,s9=/^[-+]0x[0-9a-f]+$/i,a9=/^0b[01]+$/i,o9=/^0o[0-7]+$/i,l9=parseInt;function c9(t){if(typeof t==\"number\")return t;if(ks(t))return Yg;if(Gr(t)){var e=typeof t.valueOf==\"function\"?t.valueOf():t;t=Gr(e)?e+\"\":e}if(typeof t!=\"string\")return t===0?t:+t;t=i9(t);var r=a9.test(t);return r||o9.test(t)?l9(t.slice(2),r?2:8):s9.test(t)?Yg:+t}var Vg=1/0,u9=17976931348623157e292;function Hc(t){if(!t)return t===0?t:0;if(t=c9(t),t===Vg||t===-Vg){var e=t<0?-1:1;return e*u9}return t===t?t:0}function h9(t){var e=Hc(t),r=e%1;return e===e?r?e-r:e:0}function ws(t){return t}var d9=ys(mn,\"WeakMap\");const z1=d9;var Ug=Object.create,f9=function(){function t(){}return function(e){if(!Gr(e))return{};if(Ug)return Ug(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();const p9=f9;function g9(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}function y9(){}function zg(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r<n;)e[r]=t[r];return e}var m9=800,b9=16,_9=Date.now;function x9(t){var e=0,r=0;return function(){var n=_9(),i=b9-(n-r);if(r=n,i>0){if(++e>=m9)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function ga(t){return function(){return t}}var v9=function(){try{var t=ys(Object,\"defineProperty\");return t({},\"\",{}),t}catch{}}();const Gc=v9;var k9=Gc?function(t,e){return Gc(t,\"toString\",{configurable:!0,enumerable:!1,value:ga(e),writable:!0})}:ws,w9=x9(k9);const Wg=w9;function Hg(t,e){for(var r=-1,n=t==null?0:t.length;++r<n&&e(t[r],r,t)!==!1;);return t}function Gg(t,e,r,n){for(var i=t.length,s=r+(n?1:-1);n?s--:++s<i;)if(e(t[s],s,t))return s;return-1}function T9(t){return t!==t}function E9(t,e,r){for(var n=r-1,i=t.length;++n<i;)if(t[n]===e)return n;return-1}function C9(t,e,r){return e===e?E9(t,e,r):Gg(t,T9,r)}function S9(t,e){var r=t==null?0:t.length;return!!r&&C9(t,e,0)>-1}var A9=9007199254740991,L9=/^(?:0|[1-9]\\d*)$/;function qc(t,e){var r=typeof t;return e=e==null?A9:e,!!e&&(r==\"number\"||r!=\"symbol\"&&L9.test(t))&&t>-1&&t%1==0&&t<e}function jc(t,e,r){e==\"__proto__\"&&Gc?Gc(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}var D9=Object.prototype,M9=D9.hasOwnProperty;function $c(t,e,r){var n=t[e];(!(M9.call(t,e)&&oa(n,r))||r===void 0&&!(e in t))&&jc(t,e,r)}function Eo(t,e,r,n){var i=!r;r||(r={});for(var s=-1,a=e.length;++s<a;){var o=e[s],l=n?n(r[o],t[o],o,r,t):void 0;l===void 0&&(l=t[o]),i?jc(r,o,l):$c(r,o,l)}return r}var qg=Math.max;function jg(t,e,r){return e=qg(e===void 0?t.length-1:e,0),function(){for(var n=arguments,i=-1,s=qg(n.length-e,0),a=Array(s);++i<s;)a[i]=n[e+i];i=-1;for(var o=Array(e+1);++i<e;)o[i]=n[i];return o[e]=r(a),g9(t,this,o)}}function Xc(t,e){return Wg(jg(t,e,ws),t+\"\")}var N9=9007199254740991;function W1(t){return typeof t==\"number\"&&t>-1&&t%1==0&&t<=N9}function Hi(t){return t!=null&&W1(t.length)&&!aa(t)}function Co(t,e,r){if(!Gr(r))return!1;var n=typeof e;return(n==\"number\"?Hi(r)&&qc(e,r.length):n==\"string\"&&e in r)?oa(r[e],t):!1}function B9(t){return Xc(function(e,r){var n=-1,i=r.length,s=i>1?r[i-1]:void 0,a=i>2?r[2]:void 0;for(s=t.length>3&&typeof s==\"function\"?(i--,s):void 0,a&&Co(r[0],r[1],a)&&(s=i<3?void 0:s,i=1),e=Object(e);++n<i;){var o=r[n];o&&t(e,o,n,s)}return e})}var I9=Object.prototype;function Kc(t){var e=t&&t.constructor,r=typeof e==\"function\"&&e.prototype||I9;return t===r}function O9(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n}var R9=\"[object Arguments]\";function $g(t){return Hn(t)&&ps(t)==R9}var Xg=Object.prototype,F9=Xg.hasOwnProperty,P9=Xg.propertyIsEnumerable,Y9=$g(function(){return arguments}())?$g:function(t){return Hn(t)&&F9.call(t,\"callee\")&&!P9.call(t,\"callee\")};const ya=Y9;function V9(){return!1}var Kg=typeof exports==\"object\"&&exports&&!exports.nodeType&&exports,Zg=Kg&&typeof module==\"object\"&&module&&!module.nodeType&&module,U9=Zg&&Zg.exports===Kg,Qg=U9?mn.Buffer:void 0,z9=Qg?Qg.isBuffer:void 0,W9=z9||V9;const ma=W9;var H9=\"[object Arguments]\",G9=\"[object Array]\",q9=\"[object Boolean]\",j9=\"[object Date]\",$9=\"[object Error]\",X9=\"[object Function]\",K9=\"[object Map]\",Z9=\"[object Number]\",Q9=\"[object Object]\",J9=\"[object RegExp]\",tS=\"[object Set]\",eS=\"[object String]\",rS=\"[object WeakMap]\",nS=\"[object ArrayBuffer]\",iS=\"[object DataView]\",sS=\"[object Float32Array]\",aS=\"[object Float64Array]\",oS=\"[object Int8Array]\",lS=\"[object Int16Array]\",cS=\"[object Int32Array]\",uS=\"[object Uint8Array]\",hS=\"[object Uint8ClampedArray]\",dS=\"[object Uint16Array]\",fS=\"[object Uint32Array]\",Fe={};Fe[sS]=Fe[aS]=Fe[oS]=Fe[lS]=Fe[cS]=Fe[uS]=Fe[hS]=Fe[dS]=Fe[fS]=!0,Fe[H9]=Fe[G9]=Fe[nS]=Fe[q9]=Fe[iS]=Fe[j9]=Fe[$9]=Fe[X9]=Fe[K9]=Fe[Z9]=Fe[Q9]=Fe[J9]=Fe[tS]=Fe[eS]=Fe[rS]=!1;function pS(t){return Hn(t)&&W1(t.length)&&!!Fe[ps(t)]}function Zc(t){return function(e){return t(e)}}var Jg=typeof exports==\"object\"&&exports&&!exports.nodeType&&exports,So=Jg&&typeof module==\"object\"&&module&&!module.nodeType&&module,gS=So&&So.exports===Jg,H1=gS&&Dp.process,yS=function(){try{var t=So&&So.require&&So.require(\"util\").types;return t||H1&&H1.binding&&H1.binding(\"util\")}catch{}}();const ba=yS;var ty=ba&&ba.isTypedArray,mS=ty?Zc(ty):pS;const Qc=mS;var bS=Object.prototype,_S=bS.hasOwnProperty;function ey(t,e){var r=nr(t),n=!r&&ya(t),i=!r&&!n&&ma(t),s=!r&&!n&&!i&&Qc(t),a=r||n||i||s,o=a?O9(t.length,String):[],l=o.length;for(var u in t)(e||_S.call(t,u))&&!(a&&(u==\"length\"||i&&(u==\"offset\"||u==\"parent\")||s&&(u==\"buffer\"||u==\"byteLength\"||u==\"byteOffset\")||qc(u,l)))&&o.push(u);return o}function ry(t,e){return function(r){return t(e(r))}}var xS=ry(Object.keys,Object);const vS=xS;var kS=Object.prototype,wS=kS.hasOwnProperty;function ny(t){if(!Kc(t))return vS(t);var e=[];for(var r in Object(t))wS.call(t,r)&&r!=\"constructor\"&&e.push(r);return e}function jr(t){return Hi(t)?ey(t):ny(t)}function TS(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}var ES=Object.prototype,CS=ES.hasOwnProperty;function SS(t){if(!Gr(t))return TS(t);var e=Kc(t),r=[];for(var n in t)n==\"constructor\"&&(e||!CS.call(t,n))||r.push(n);return r}function Ts(t){return Hi(t)?ey(t,!0):SS(t)}var AS=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,LS=/^\\w*$/;function G1(t,e){if(nr(t))return!1;var r=typeof t;return r==\"number\"||r==\"symbol\"||r==\"boolean\"||t==null||ks(t)?!0:LS.test(t)||!AS.test(t)||e!=null&&t in Object(e)}var DS=500;function MS(t){var e=la(t,function(n){return r.size===DS&&r.clear(),n}),r=e.cache;return e}var NS=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,BS=/\\\\(\\\\)?/g,IS=MS(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(\"\"),t.replace(NS,function(r,n,i,s){e.push(i?s.replace(BS,\"$1\"):n||r)}),e});const OS=IS;function iy(t){return t==null?\"\":Pg(t)}function Jc(t,e){return nr(t)?t:G1(t,e)?[t]:OS(iy(t))}var RS=1/0;function Ao(t){if(typeof t==\"string\"||ks(t))return t;var e=t+\"\";return e==\"0\"&&1/t==-RS?\"-0\":e}function tu(t,e){e=Jc(e,t);for(var r=0,n=e.length;t!=null&&r<n;)t=t[Ao(e[r++])];return r&&r==n?t:void 0}function FS(t,e,r){var n=t==null?void 0:tu(t,e);return n===void 0?r:n}function q1(t,e){for(var r=-1,n=e.length,i=t.length;++r<n;)t[i+r]=e[r];return t}var sy=en?en.isConcatSpreadable:void 0;function PS(t){return nr(t)||ya(t)||!!(sy&&t&&t[sy])}function eu(t,e,r,n,i){var s=-1,a=t.length;for(r||(r=PS),i||(i=[]);++s<a;){var o=t[s];e>0&&r(o)?e>1?eu(o,e-1,r,n,i):q1(i,o):n||(i[i.length]=o)}return i}function _a(t){var e=t==null?0:t.length;return e?eu(t,1):[]}function YS(t){return Wg(jg(t,void 0,_a),t+\"\")}var VS=ry(Object.getPrototypeOf,Object);const j1=VS;var US=\"[object Object]\",zS=Function.prototype,WS=Object.prototype,ay=zS.toString,HS=WS.hasOwnProperty,GS=ay.call(Object);function oy(t){if(!Hn(t)||ps(t)!=US)return!1;var e=j1(t);if(e===null)return!0;var r=HS.call(e,\"constructor\")&&e.constructor;return typeof r==\"function\"&&r instanceof r&&ay.call(r)==GS}function qS(t,e,r,n){var i=-1,s=t==null?0:t.length;for(n&&s&&(r=t[++i]);++i<s;)r=e(r,t[i],i,t);return r}function jS(){this.__data__=new ci,this.size=0}function $S(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}function XS(t){return this.__data__.get(t)}function KS(t){return this.__data__.has(t)}var ZS=200;function QS(t,e){var r=this.__data__;if(r instanceof ci){var n=r.__data__;if(!uo||n.length<ZS-1)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new ui(n)}return r.set(t,e),this.size=r.size,this}function An(t){var e=this.__data__=new ci(t);this.size=e.size}An.prototype.clear=jS,An.prototype.delete=$S,An.prototype.get=XS,An.prototype.has=KS,An.prototype.set=QS;function JS(t,e){return t&&Eo(e,jr(e),t)}function tA(t,e){return t&&Eo(e,Ts(e),t)}var ly=typeof exports==\"object\"&&exports&&!exports.nodeType&&exports,cy=ly&&typeof module==\"object\"&&module&&!module.nodeType&&module,eA=cy&&cy.exports===ly,uy=eA?mn.Buffer:void 0,hy=uy?uy.allocUnsafe:void 0;function dy(t,e){if(e)return t.slice();var r=t.length,n=hy?hy(r):new t.constructor(r);return t.copy(n),n}function fy(t,e){for(var r=-1,n=t==null?0:t.length,i=0,s=[];++r<n;){var a=t[r];e(a,r,t)&&(s[i++]=a)}return s}function py(){return[]}var rA=Object.prototype,nA=rA.propertyIsEnumerable,gy=Object.getOwnPropertySymbols,iA=gy?function(t){return t==null?[]:(t=Object(t),fy(gy(t),function(e){return nA.call(t,e)}))}:py;const $1=iA;function sA(t,e){return Eo(t,$1(t),e)}var aA=Object.getOwnPropertySymbols,oA=aA?function(t){for(var e=[];t;)q1(e,$1(t)),t=j1(t);return e}:py;const yy=oA;function lA(t,e){return Eo(t,yy(t),e)}function my(t,e,r){var n=e(t);return nr(t)?n:q1(n,r(t))}function X1(t){return my(t,jr,$1)}function cA(t){return my(t,Ts,yy)}var uA=ys(mn,\"DataView\");const K1=uA;var hA=ys(mn,\"Promise\");const Z1=hA;var dA=ys(mn,\"Set\");const xa=dA;var by=\"[object Map]\",fA=\"[object Object]\",_y=\"[object Promise]\",xy=\"[object Set]\",vy=\"[object WeakMap]\",ky=\"[object DataView]\",pA=gs(K1),gA=gs(uo),yA=gs(Z1),mA=gs(xa),bA=gs(z1),Es=ps;(K1&&Es(new K1(new ArrayBuffer(1)))!=ky||uo&&Es(new uo)!=by||Z1&&Es(Z1.resolve())!=_y||xa&&Es(new xa)!=xy||z1&&Es(new z1)!=vy)&&(Es=function(t){var e=ps(t),r=e==fA?t.constructor:void 0,n=r?gs(r):\"\";if(n)switch(n){case pA:return ky;case gA:return by;case yA:return _y;case mA:return xy;case bA:return vy}return e});const va=Es;var _A=Object.prototype,xA=_A.hasOwnProperty;function vA(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]==\"string\"&&xA.call(t,\"index\")&&(r.index=t.index,r.input=t.input),r}var kA=mn.Uint8Array;const ru=kA;function Q1(t){var e=new t.constructor(t.byteLength);return new ru(e).set(new ru(t)),e}function wA(t,e){var r=e?Q1(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}var TA=/\\w*$/;function EA(t){var e=new t.constructor(t.source,TA.exec(t));return e.lastIndex=t.lastIndex,e}var wy=en?en.prototype:void 0,Ty=wy?wy.valueOf:void 0;function CA(t){return Ty?Object(Ty.call(t)):{}}function Ey(t,e){var r=e?Q1(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}var SA=\"[object Boolean]\",AA=\"[object Date]\",LA=\"[object Map]\",DA=\"[object Number]\",MA=\"[object RegExp]\",NA=\"[object Set]\",BA=\"[object String]\",IA=\"[object Symbol]\",OA=\"[object ArrayBuffer]\",RA=\"[object DataView]\",FA=\"[object Float32Array]\",PA=\"[object Float64Array]\",YA=\"[object Int8Array]\",VA=\"[object Int16Array]\",UA=\"[object Int32Array]\",zA=\"[object Uint8Array]\",WA=\"[object Uint8ClampedArray]\",HA=\"[object Uint16Array]\",GA=\"[object Uint32Array]\";function qA(t,e,r){var n=t.constructor;switch(e){case OA:return Q1(t);case SA:case AA:return new n(+t);case RA:return wA(t,r);case FA:case PA:case YA:case VA:case UA:case zA:case WA:case HA:case GA:return Ey(t,r);case LA:return new n;case DA:case BA:return new n(t);case MA:return EA(t);case NA:return new n;case IA:return CA(t)}}function Cy(t){return typeof t.constructor==\"function\"&&!Kc(t)?p9(j1(t)):{}}var jA=\"[object Map]\";function $A(t){return Hn(t)&&va(t)==jA}var Sy=ba&&ba.isMap,XA=Sy?Zc(Sy):$A;const KA=XA;var ZA=\"[object Set]\";function QA(t){return Hn(t)&&va(t)==ZA}var Ay=ba&&ba.isSet,JA=Ay?Zc(Ay):QA;const tL=JA;var eL=1,rL=2,nL=4,Ly=\"[object Arguments]\",iL=\"[object Array]\",sL=\"[object Boolean]\",aL=\"[object Date]\",oL=\"[object Error]\",Dy=\"[object Function]\",lL=\"[object GeneratorFunction]\",cL=\"[object Map]\",uL=\"[object Number]\",My=\"[object Object]\",hL=\"[object RegExp]\",dL=\"[object Set]\",fL=\"[object String]\",pL=\"[object Symbol]\",gL=\"[object WeakMap]\",yL=\"[object ArrayBuffer]\",mL=\"[object DataView]\",bL=\"[object Float32Array]\",_L=\"[object Float64Array]\",xL=\"[object Int8Array]\",vL=\"[object Int16Array]\",kL=\"[object Int32Array]\",wL=\"[object Uint8Array]\",TL=\"[object Uint8ClampedArray]\",EL=\"[object Uint16Array]\",CL=\"[object Uint32Array]\",Oe={};Oe[Ly]=Oe[iL]=Oe[yL]=Oe[mL]=Oe[sL]=Oe[aL]=Oe[bL]=Oe[_L]=Oe[xL]=Oe[vL]=Oe[kL]=Oe[cL]=Oe[uL]=Oe[My]=Oe[hL]=Oe[dL]=Oe[fL]=Oe[pL]=Oe[wL]=Oe[TL]=Oe[EL]=Oe[CL]=!0,Oe[oL]=Oe[Dy]=Oe[gL]=!1;function Lo(t,e,r,n,i,s){var a,o=e&eL,l=e&rL,u=e&nL;if(r&&(a=i?r(t,n,i,s):r(t)),a!==void 0)return a;if(!Gr(t))return t;var d=nr(t);if(d){if(a=vA(t),!o)return zg(t,a)}else{var f=va(t),p=f==Dy||f==lL;if(ma(t))return dy(t,o);if(f==My||f==Ly||p&&!i){if(a=l||p?{}:Cy(t),!o)return l?lA(t,tA(a,t)):sA(t,JS(a,t))}else{if(!Oe[f])return i?t:{};a=qA(t,f,o)}}s||(s=new An);var g=s.get(t);if(g)return g;s.set(t,a),tL(t)?t.forEach(function(T){a.add(Lo(T,e,r,T,t,s))}):KA(t)&&t.forEach(function(T,L){a.set(L,Lo(T,e,r,L,t,s))});var b=u?l?cA:X1:l?Ts:jr,k=d?void 0:b(t);return Hg(k||t,function(T,L){k&&(L=T,T=t[L]),$c(a,L,Lo(T,e,r,L,t,s))}),a}var SL=4;function AL(t){return Lo(t,SL)}var LL=1,DL=4;function ML(t){return Lo(t,LL|DL)}var NL=\"__lodash_hash_undefined__\";function BL(t){return this.__data__.set(t,NL),this}function IL(t){return this.__data__.has(t)}function Do(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new ui;++e<r;)this.add(t[e])}Do.prototype.add=Do.prototype.push=BL,Do.prototype.has=IL;function OL(t,e){for(var r=-1,n=t==null?0:t.length;++r<n;)if(e(t[r],r,t))return!0;return!1}function Ny(t,e){return t.has(e)}var RL=1,FL=2;function By(t,e,r,n,i,s){var a=r&RL,o=t.length,l=e.length;if(o!=l&&!(a&&l>o))return!1;var u=s.get(t),d=s.get(e);if(u&&d)return u==e&&d==t;var f=-1,p=!0,g=r&FL?new Do:void 0;for(s.set(t,e),s.set(e,t);++f<o;){var b=t[f],k=e[f];if(n)var T=a?n(k,b,f,e,t,s):n(b,k,f,t,e,s);if(T!==void 0){if(T)continue;p=!1;break}if(g){if(!OL(e,function(L,E){if(!Ny(g,E)&&(b===L||i(b,L,r,n,s)))return g.push(E)})){p=!1;break}}else if(!(b===k||i(b,k,r,n,s))){p=!1;break}}return s.delete(t),s.delete(e),p}function PL(t){var e=-1,r=Array(t.size);return t.forEach(function(n,i){r[++e]=[i,n]}),r}function J1(t){var e=-1,r=Array(t.size);return t.forEach(function(n){r[++e]=n}),r}var YL=1,VL=2,UL=\"[object Boolean]\",zL=\"[object Date]\",WL=\"[object Error]\",HL=\"[object Map]\",GL=\"[object Number]\",qL=\"[object RegExp]\",jL=\"[object Set]\",$L=\"[object String]\",XL=\"[object Symbol]\",KL=\"[object ArrayBuffer]\",ZL=\"[object DataView]\",Iy=en?en.prototype:void 0,t0=Iy?Iy.valueOf:void 0;function QL(t,e,r,n,i,s,a){switch(r){case ZL:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case KL:return!(t.byteLength!=e.byteLength||!s(new ru(t),new ru(e)));case UL:case zL:case GL:return oa(+t,+e);case WL:return t.name==e.name&&t.message==e.message;case qL:case $L:return t==e+\"\";case HL:var o=PL;case jL:var l=n&YL;if(o||(o=J1),t.size!=e.size&&!l)return!1;var u=a.get(t);if(u)return u==e;n|=VL,a.set(t,e);var d=By(o(t),o(e),n,i,s,a);return a.delete(t),d;case XL:if(t0)return t0.call(t)==t0.call(e)}return!1}var JL=1,tD=Object.prototype,eD=tD.hasOwnProperty;function rD(t,e,r,n,i,s){var a=r&JL,o=X1(t),l=o.length,u=X1(e),d=u.length;if(l!=d&&!a)return!1;for(var f=l;f--;){var p=o[f];if(!(a?p in e:eD.call(e,p)))return!1}var g=s.get(t),b=s.get(e);if(g&&b)return g==e&&b==t;var k=!0;s.set(t,e),s.set(e,t);for(var T=a;++f<l;){p=o[f];var L=t[p],E=e[p];if(n)var I=a?n(E,L,p,e,t,s):n(L,E,p,t,e,s);if(!(I===void 0?L===E||i(L,E,r,n,s):I)){k=!1;break}T||(T=p==\"constructor\")}if(k&&!T){var V=t.constructor,H=e.constructor;V!=H&&\"constructor\"in t&&\"constructor\"in e&&!(typeof V==\"function\"&&V instanceof V&&typeof H==\"function\"&&H instanceof H)&&(k=!1)}return s.delete(t),s.delete(e),k}var nD=1,Oy=\"[object Arguments]\",Ry=\"[object Array]\",nu=\"[object Object]\",iD=Object.prototype,Fy=iD.hasOwnProperty;function sD(t,e,r,n,i,s){var a=nr(t),o=nr(e),l=a?Ry:va(t),u=o?Ry:va(e);l=l==Oy?nu:l,u=u==Oy?nu:u;var d=l==nu,f=u==nu,p=l==u;if(p&&ma(t)){if(!ma(e))return!1;a=!0,d=!1}if(p&&!d)return s||(s=new An),a||Qc(t)?By(t,e,r,n,i,s):QL(t,e,l,r,n,i,s);if(!(r&nD)){var g=d&&Fy.call(t,\"__wrapped__\"),b=f&&Fy.call(e,\"__wrapped__\");if(g||b){var k=g?t.value():t,T=b?e.value():e;return s||(s=new An),i(k,T,r,n,s)}}return p?(s||(s=new An),rD(t,e,r,n,i,s)):!1}function e0(t,e,r,n,i){return t===e?!0:t==null||e==null||!Hn(t)&&!Hn(e)?t!==t&&e!==e:sD(t,e,r,n,e0,i)}var aD=1,oD=2;function lD(t,e,r,n){var i=r.length,s=i,a=!n;if(t==null)return!s;for(t=Object(t);i--;){var o=r[i];if(a&&o[2]?o[1]!==t[o[0]]:!(o[0]in t))return!1}for(;++i<s;){o=r[i];var l=o[0],u=t[l],d=o[1];if(a&&o[2]){if(u===void 0&&!(l in t))return!1}else{var f=new An;if(n)var p=n(u,d,l,t,e,f);if(!(p===void 0?e0(d,u,aD|oD,n,f):p))return!1}}return!0}function Py(t){return t===t&&!Gr(t)}function cD(t){for(var e=jr(t),r=e.length;r--;){var n=e[r],i=t[n];e[r]=[n,i,Py(i)]}return e}function Yy(t,e){return function(r){return r==null?!1:r[t]===e&&(e!==void 0||t in Object(r))}}function uD(t){var e=cD(t);return e.length==1&&e[0][2]?Yy(e[0][0],e[0][1]):function(r){return r===t||lD(r,t,e)}}function hD(t,e){return t!=null&&e in Object(t)}function Vy(t,e,r){e=Jc(e,t);for(var n=-1,i=e.length,s=!1;++n<i;){var a=Ao(e[n]);if(!(s=t!=null&&r(t,a)))break;t=t[a]}return s||++n!=i?s:(i=t==null?0:t.length,!!i&&W1(i)&&qc(a,i)&&(nr(t)||ya(t)))}function Uy(t,e){return t!=null&&Vy(t,e,hD)}var dD=1,fD=2;function pD(t,e){return G1(t)&&Py(e)?Yy(Ao(t),e):function(r){var n=FS(r,t);return n===void 0&&n===e?Uy(r,t):e0(e,n,dD|fD)}}function gD(t){return function(e){return e==null?void 0:e[t]}}function yD(t){return function(e){return tu(e,t)}}function mD(t){return G1(t)?gD(Ao(t)):yD(t)}function Gi(t){return typeof t==\"function\"?t:t==null?ws:typeof t==\"object\"?nr(t)?pD(t[0],t[1]):uD(t):mD(t)}function bD(t){return function(e,r,n){for(var i=-1,s=Object(e),a=n(e),o=a.length;o--;){var l=a[t?o:++i];if(r(s[l],l,s)===!1)break}return e}}var _D=bD();const r0=_D;function zy(t,e){return t&&r0(t,e,jr)}function xD(t,e){return function(r,n){if(r==null)return r;if(!Hi(r))return t(r,n);for(var i=r.length,s=e?i:-1,a=Object(r);(e?s--:++s<i)&&n(a[s],s,a)!==!1;);return r}}var vD=xD(zy);const iu=vD;var kD=function(){return mn.Date.now()};const Wy=kD;var Hy=Object.prototype,wD=Hy.hasOwnProperty,TD=Xc(function(t,e){t=Object(t);var r=-1,n=e.length,i=n>2?e[2]:void 0;for(i&&Co(e[0],e[1],i)&&(n=1);++r<n;)for(var s=e[r],a=Ts(s),o=-1,l=a.length;++o<l;){var u=a[o],d=t[u];(d===void 0||oa(d,Hy[u])&&!wD.call(t,u))&&(t[u]=s[u])}return t});const ka=TD;function n0(t,e,r){(r!==void 0&&!oa(t[e],r)||r===void 0&&!(e in t))&&jc(t,e,r)}function Gy(t){return Hn(t)&&Hi(t)}function i0(t,e){if(!(e===\"constructor\"&&typeof t[e]==\"function\")&&e!=\"__proto__\")return t[e]}function ED(t){return Eo(t,Ts(t))}function CD(t,e,r,n,i,s,a){var o=i0(t,r),l=i0(e,r),u=a.get(l);if(u){n0(t,r,u);return}var d=s?s(o,l,r+\"\",t,e,a):void 0,f=d===void 0;if(f){var p=nr(l),g=!p&&ma(l),b=!p&&!g&&Qc(l);d=l,p||g||b?nr(o)?d=o:Gy(o)?d=zg(o):g?(f=!1,d=dy(l,!0)):b?(f=!1,d=Ey(l,!0)):d=[]:oy(l)||ya(l)?(d=o,ya(o)?d=ED(o):(!Gr(o)||aa(o))&&(d=Cy(l))):f=!1}f&&(a.set(l,d),i(d,l,n,s,a),a.delete(l)),n0(t,r,d)}function qy(t,e,r,n,i){t!==e&&r0(e,function(s,a){if(i||(i=new An),Gr(s))CD(t,e,a,r,qy,n,i);else{var o=n?n(i0(t,a),s,a+\"\",t,e,i):void 0;o===void 0&&(o=s),n0(t,a,o)}},Ts)}function SD(t,e,r){for(var n=-1,i=t==null?0:t.length;++n<i;)if(r(e,t[n]))return!0;return!1}function su(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}function jy(t){return typeof t==\"function\"?t:ws}function vt(t,e){var r=nr(t)?Hg:iu;return r(t,jy(e))}function AD(t,e){var r=[];return iu(t,function(n,i,s){e(n,i,s)&&r.push(n)}),r}function pi(t,e){var r=nr(t)?fy:AD;return r(t,Gi(e))}function LD(t){return function(e,r,n){var i=Object(e);if(!Hi(e)){var s=Gi(r);e=jr(e),r=function(o){return s(i[o],o,i)}}var a=t(e,r,n);return a>-1?i[s?e[a]:a]:void 0}}var DD=Math.max;function MD(t,e,r){var n=t==null?0:t.length;if(!n)return-1;var i=r==null?0:h9(r);return i<0&&(i=DD(n+i,0)),Gg(t,Gi(e),i)}var ND=LD(MD);const s0=ND;function $y(t,e){var r=-1,n=Hi(t)?Array(t.length):[];return iu(t,function(i,s,a){n[++r]=e(i,s,a)}),n}function ir(t,e){var r=nr(t)?pa:$y;return r(t,Gi(e))}function BD(t,e){return t==null?t:r0(t,jy(e),Ts)}function ID(t,e){return t>e}var OD=Object.prototype,RD=OD.hasOwnProperty;function FD(t,e){return t!=null&&RD.call(t,e)}function me(t,e){return t!=null&&Vy(t,e,FD)}function PD(t,e){return pa(e,function(r){return t[r]})}function gi(t){return t==null?[]:PD(t,jr(t))}var YD=\"[object Map]\",VD=\"[object Set]\",UD=Object.prototype,zD=UD.hasOwnProperty;function wa(t){if(t==null)return!0;if(Hi(t)&&(nr(t)||typeof t==\"string\"||typeof t.splice==\"function\"||ma(t)||Qc(t)||ya(t)))return!t.length;var e=va(t);if(e==YD||e==VD)return!t.size;if(Kc(t))return!ny(t).length;for(var r in t)if(zD.call(t,r))return!1;return!0}function Ze(t){return t===void 0}function Xy(t,e){return t<e}function au(t,e){var r={};return e=Gi(e),zy(t,function(n,i,s){jc(r,i,e(n,i,s))}),r}function a0(t,e,r){for(var n=-1,i=t.length;++n<i;){var s=t[n],a=e(s);if(a!=null&&(o===void 0?a===a&&!ks(a):r(a,o)))var o=a,l=s}return l}function Cs(t){return t&&t.length?a0(t,ws,ID):void 0}var WD=B9(function(t,e,r){qy(t,e,r)});const o0=WD;function Mo(t){return t&&t.length?a0(t,ws,Xy):void 0}function l0(t,e){return t&&t.length?a0(t,Gi(e),Xy):void 0}function HD(t,e,r,n){if(!Gr(t))return t;e=Jc(e,t);for(var i=-1,s=e.length,a=s-1,o=t;o!=null&&++i<s;){var l=Ao(e[i]),u=r;if(l===\"__proto__\"||l===\"constructor\"||l===\"prototype\")return t;if(i!=a){var d=o[l];u=n?n(d,l,o):void 0,u===void 0&&(u=Gr(d)?d:qc(e[i+1])?[]:{})}$c(o,l,u),o=o[l]}return t}function GD(t,e,r){for(var n=-1,i=e.length,s={};++n<i;){var a=e[n],o=tu(t,a);r(o,a)&&HD(s,Jc(a,t),o)}return s}function qD(t,e){var r=t.length;for(t.sort(e);r--;)t[r]=t[r].value;return t}function jD(t,e){if(t!==e){var r=t!==void 0,n=t===null,i=t===t,s=ks(t),a=e!==void 0,o=e===null,l=e===e,u=ks(e);if(!o&&!u&&!s&&t>e||s&&a&&l&&!o&&!u||n&&a&&l||!r&&l||!i)return 1;if(!n&&!s&&!u&&t<e||u&&r&&i&&!n&&!s||o&&r&&i||!a&&i||!l)return-1}return 0}function $D(t,e,r){for(var n=-1,i=t.criteria,s=e.criteria,a=i.length,o=r.length;++n<a;){var l=jD(i[n],s[n]);if(l){if(n>=o)return l;var u=r[n];return l*(u==\"desc\"?-1:1)}}return t.index-e.index}function XD(t,e,r){e.length?e=pa(e,function(s){return nr(s)?function(a){return tu(a,s.length===1?s[0]:s)}:s}):e=[ws];var n=-1;e=pa(e,Zc(Gi));var i=$y(t,function(s,a,o){var l=pa(e,function(u){return u(s)});return{criteria:l,index:++n,value:s}});return qD(i,function(s,a){return $D(s,a,r)})}function KD(t,e){return GD(t,e,function(r,n){return Uy(t,n)})}var ZD=YS(function(t,e){return t==null?{}:KD(t,e)});const No=ZD;var QD=Math.ceil,JD=Math.max;function tM(t,e,r,n){for(var i=-1,s=JD(QD((e-t)/(r||1)),0),a=Array(s);s--;)a[n?s:++i]=t,t+=r;return a}function eM(t){return function(e,r,n){return n&&typeof n!=\"number\"&&Co(e,r,n)&&(r=n=void 0),e=Hc(e),r===void 0?(r=e,e=0):r=Hc(r),n=n===void 0?e<r?1:-1:Hc(n),tM(e,r,n,t)}}var rM=eM();const Ss=rM;function nM(t,e,r,n,i){return i(t,function(s,a,o){r=n?(n=!1,s):e(r,s,a,o)}),r}function Bo(t,e,r){var n=nr(t)?qS:nM,i=arguments.length<3;return n(t,Gi(e),r,i,iu)}var iM=Xc(function(t,e){if(t==null)return[];var r=e.length;return r>1&&Co(t,e[0],e[1])?e=[]:r>2&&Co(e[0],e[1],e[2])&&(e=[e[0]]),XD(t,eu(e,1),[])});const Io=iM;var sM=1/0,aM=xa&&1/J1(new xa([,-0]))[1]==sM?function(t){return new xa(t)}:y9;const oM=aM;var lM=200;function cM(t,e,r){var n=-1,i=S9,s=t.length,a=!0,o=[],l=o;if(r)a=!1,i=SD;else if(s>=lM){var u=e?null:oM(t);if(u)return J1(u);a=!1,i=Ny,l=new Do}else l=e?[]:o;t:for(;++n<s;){var d=t[n],f=e?e(d):d;if(d=r||d!==0?d:0,a&&f===f){for(var p=l.length;p--;)if(l[p]===f)continue t;e&&l.push(f),o.push(d)}else i(l,f,r)||(l!==o&&l.push(f),o.push(d))}return o}var uM=Xc(function(t){return cM(eu(t,1,Gy,!0))});const hM=uM;var dM=0;function ou(t){var e=++dM;return iy(t)+e}function fM(t,e,r){for(var n=-1,i=t.length,s=e.length,a={};++n<i;){var o=n<s?e[n]:void 0;r(a,t[n],o)}return a}function pM(t,e){return fM(t||[],e||[],$c)}var gM=\"\\0\",As=\"\\0\",Ky=\"\u0001\";class sr{constructor(e={}){this._isDirected=me(e,\"directed\")?e.directed:!0,this._isMultigraph=me(e,\"multigraph\")?e.multigraph:!1,this._isCompound=me(e,\"compound\")?e.compound:!1,this._label=void 0,this._defaultNodeLabelFn=ga(void 0),this._defaultEdgeLabelFn=ga(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[As]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return aa(e)||(e=ga(e)),this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return jr(this._nodes)}sources(){var e=this;return pi(this.nodes(),function(r){return wa(e._in[r])})}sinks(){var e=this;return pi(this.nodes(),function(r){return wa(e._out[r])})}setNodes(e,r){var n=arguments,i=this;return vt(e,function(s){n.length>1?i.setNode(s,r):i.setNode(s)}),this}setNode(e,r){return me(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=r),this):(this._nodes[e]=arguments.length>1?r:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=As,this._children[e]={},this._children[As][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return me(this._nodes,e)}removeNode(e){var r=this;if(me(this._nodes,e)){var n=function(i){r.removeEdge(r._edgeObjs[i])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],vt(this.children(e),function(i){r.setParent(i)}),delete this._children[e]),vt(jr(this._in[e]),n),delete this._in[e],delete this._preds[e],vt(jr(this._out[e]),n),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,r){if(!this._isCompound)throw new Error(\"Cannot set parent in a non-compound graph\");if(Ze(r))r=As;else{r+=\"\";for(var n=r;!Ze(n);n=this.parent(n))if(n===e)throw new Error(\"Setting \"+r+\" as parent of \"+e+\" would create a cycle\");this.setNode(r)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=r,this._children[r][e]=!0,this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var r=this._parent[e];if(r!==As)return r}}children(e){if(Ze(e)&&(e=As),this._isCompound){var r=this._children[e];if(r)return jr(r)}else{if(e===As)return this.nodes();if(this.hasNode(e))return[]}}predecessors(e){var r=this._preds[e];if(r)return jr(r)}successors(e){var r=this._sucs[e];if(r)return jr(r)}neighbors(e){var r=this.predecessors(e);if(r)return hM(r,this.successors(e))}isLeaf(e){var r;return this.isDirected()?r=this.successors(e):r=this.neighbors(e),r.length===0}filterNodes(e){var r=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});r.setGraph(this.graph());var n=this;vt(this._nodes,function(a,o){e(o)&&r.setNode(o,a)}),vt(this._edgeObjs,function(a){r.hasNode(a.v)&&r.hasNode(a.w)&&r.setEdge(a,n.edge(a))});var i={};function s(a){var o=n.parent(a);return o===void 0||r.hasNode(o)?(i[a]=o,o):o in i?i[o]:s(o)}return this._isCompound&&vt(r.nodes(),function(a){r.setParent(a,s(a))}),r}setDefaultEdgeLabel(e){return aa(e)||(e=ga(e)),this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return gi(this._edgeObjs)}setPath(e,r){var n=this,i=arguments;return Bo(e,function(s,a){return i.length>1?n.setEdge(s,a,r):n.setEdge(s,a),a}),this}setEdge(){var e,r,n,i,s=!1,a=arguments[0];typeof a==\"object\"&&a!==null&&\"v\"in a?(e=a.v,r=a.w,n=a.name,arguments.length===2&&(i=arguments[1],s=!0)):(e=a,r=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],s=!0)),e=\"\"+e,r=\"\"+r,Ze(n)||(n=\"\"+n);var o=Oo(this._isDirected,e,r,n);if(me(this._edgeLabels,o))return s&&(this._edgeLabels[o]=i),this;if(!Ze(n)&&!this._isMultigraph)throw new Error(\"Cannot set a named edge when isMultigraph = false\");this.setNode(e),this.setNode(r),this._edgeLabels[o]=s?i:this._defaultEdgeLabelFn(e,r,n);var l=yM(this._isDirected,e,r,n);return e=l.v,r=l.w,Object.freeze(l),this._edgeObjs[o]=l,Zy(this._preds[r],e),Zy(this._sucs[e],r),this._in[r][o]=l,this._out[e][o]=l,this._edgeCount++,this}edge(e,r,n){var i=arguments.length===1?c0(this._isDirected,arguments[0]):Oo(this._isDirected,e,r,n);return this._edgeLabels[i]}hasEdge(e,r,n){var i=arguments.length===1?c0(this._isDirected,arguments[0]):Oo(this._isDirected,e,r,n);return me(this._edgeLabels,i)}removeEdge(e,r,n){var i=arguments.length===1?c0(this._isDirected,arguments[0]):Oo(this._isDirected,e,r,n),s=this._edgeObjs[i];return s&&(e=s.v,r=s.w,delete this._edgeLabels[i],delete this._edgeObjs[i],Qy(this._preds[r],e),Qy(this._sucs[e],r),delete this._in[r][i],delete this._out[e][i],this._edgeCount--),this}inEdges(e,r){var n=this._in[e];if(n){var i=gi(n);return r?pi(i,function(s){return s.v===r}):i}}outEdges(e,r){var n=this._out[e];if(n){var i=gi(n);return r?pi(i,function(s){return s.w===r}):i}}nodeEdges(e,r){var n=this.inEdges(e,r);if(n)return n.concat(this.outEdges(e,r))}}sr.prototype._nodeCount=0,sr.prototype._edgeCount=0;function Zy(t,e){t[e]?t[e]++:t[e]=1}function Qy(t,e){--t[e]||delete t[e]}function Oo(t,e,r,n){var i=\"\"+e,s=\"\"+r;if(!t&&i>s){var a=i;i=s,s=a}return i+Ky+s+Ky+(Ze(n)?gM:n)}function yM(t,e,r,n){var i=\"\"+e,s=\"\"+r;if(!t&&i>s){var a=i;i=s,s=a}var o={v:i,w:s};return n&&(o.name=n),o}function c0(t,e){return Oo(t,e.v,e.w,e.name)}class mM{constructor(){var e={};e._next=e._prev=e,this._sentinel=e}dequeue(){var e=this._sentinel,r=e._prev;if(r!==e)return Jy(r),r}enqueue(e){var r=this._sentinel;e._prev&&e._next&&Jy(e),e._next=r._next,r._next._prev=e,r._next=e,e._prev=r}toString(){for(var e=[],r=this._sentinel,n=r._prev;n!==r;)e.push(JSON.stringify(n,bM)),n=n._prev;return\"[\"+e.join(\", \")+\"]\"}}function Jy(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function bM(t,e){if(t!==\"_next\"&&t!==\"_prev\")return e}var _M=ga(1);function xM(t,e){if(t.nodeCount()<=1)return[];var r=kM(t,e||_M),n=vM(r.graph,r.buckets,r.zeroIdx);return _a(ir(n,function(i){return t.outEdges(i.v,i.w)}))}function vM(t,e,r){for(var n=[],i=e[e.length-1],s=e[0],a;t.nodeCount();){for(;a=s.dequeue();)u0(t,e,r,a);for(;a=i.dequeue();)u0(t,e,r,a);if(t.nodeCount()){for(var o=e.length-2;o>0;--o)if(a=e[o].dequeue(),a){n=n.concat(u0(t,e,r,a,!0));break}}}return n}function u0(t,e,r,n,i){var s=i?[]:void 0;return vt(t.inEdges(n.v),function(a){var o=t.edge(a),l=t.node(a.v);i&&s.push({v:a.v,w:a.w}),l.out-=o,h0(e,r,l)}),vt(t.outEdges(n.v),function(a){var o=t.edge(a),l=a.w,u=t.node(l);u.in-=o,h0(e,r,u)}),t.removeNode(n.v),s}function kM(t,e){var r=new sr,n=0,i=0;vt(t.nodes(),function(o){r.setNode(o,{v:o,in:0,out:0})}),vt(t.edges(),function(o){var l=r.edge(o.v,o.w)||0,u=e(o),d=l+u;r.setEdge(o.v,o.w,d),i=Math.max(i,r.node(o.v).out+=u),n=Math.max(n,r.node(o.w).in+=u)});var s=Ss(i+n+3).map(function(){return new mM}),a=n+1;return vt(r.nodes(),function(o){h0(s,a,r.node(o))}),{graph:r,buckets:s,zeroIdx:a}}function h0(t,e,r){r.out?r.in?t[r.out-r.in+e].enqueue(r):t[t.length-1].enqueue(r):t[0].enqueue(r)}function wM(t){var e=t.graph().acyclicer===\"greedy\"?xM(t,r(t)):TM(t);vt(e,function(n){var i=t.edge(n);t.removeEdge(n),i.forwardName=n.name,i.reversed=!0,t.setEdge(n.w,n.v,i,ou(\"rev\"))});function r(n){return function(i){return n.edge(i).weight}}}function TM(t){var e=[],r={},n={};function i(s){me(n,s)||(n[s]=!0,r[s]=!0,vt(t.outEdges(s),function(a){me(r,a.w)?e.push(a):i(a.w)}),delete r[s])}return vt(t.nodes(),i),e}function EM(t){vt(t.edges(),function(e){var r=t.edge(e);if(r.reversed){t.removeEdge(e);var n=r.forwardName;delete r.reversed,delete r.forwardName,t.setEdge(e.w,e.v,r,n)}})}function Ta(t,e,r,n){var i;do i=ou(n);while(t.hasNode(i));return r.dummy=e,t.setNode(i,r),i}function CM(t){var e=new sr().setGraph(t.graph());return vt(t.nodes(),function(r){e.setNode(r,t.node(r))}),vt(t.edges(),function(r){var n=e.edge(r.v,r.w)||{weight:0,minlen:1},i=t.edge(r);e.setEdge(r.v,r.w,{weight:n.weight+i.weight,minlen:Math.max(n.minlen,i.minlen)})}),e}function tm(t){var e=new sr({multigraph:t.isMultigraph()}).setGraph(t.graph());return vt(t.nodes(),function(r){t.children(r).length||e.setNode(r,t.node(r))}),vt(t.edges(),function(r){e.setEdge(r,t.edge(r))}),e}function em(t,e){var r=t.x,n=t.y,i=e.x-r,s=e.y-n,a=t.width/2,o=t.height/2;if(!i&&!s)throw new Error(\"Not possible to find intersection inside of the rectangle\");var l,u;return Math.abs(s)*a>Math.abs(i)*o?(s<0&&(o=-o),l=o*i/s,u=o):(i<0&&(a=-a),l=a,u=a*s/i),{x:r+l,y:n+u}}function lu(t){var e=ir(Ss(nm(t)+1),function(){return[]});return vt(t.nodes(),function(r){var n=t.node(r),i=n.rank;Ze(i)||(e[i][n.order]=r)}),e}function SM(t){var e=Mo(ir(t.nodes(),function(r){return t.node(r).rank}));vt(t.nodes(),function(r){var n=t.node(r);me(n,\"rank\")&&(n.rank-=e)})}function AM(t){var e=Mo(ir(t.nodes(),function(s){return t.node(s).rank})),r=[];vt(t.nodes(),function(s){var a=t.node(s).rank-e;r[a]||(r[a]=[]),r[a].push(s)});var n=0,i=t.graph().nodeRankFactor;vt(r,function(s,a){Ze(s)&&a%i!==0?--n:n&&vt(s,function(o){t.node(o).rank+=n})})}function rm(t,e,r,n){var i={width:0,height:0};return arguments.length>=4&&(i.rank=r,i.order=n),Ta(t,\"border\",i,e)}function nm(t){return Cs(ir(t.nodes(),function(e){var r=t.node(e).rank;if(!Ze(r))return r}))}function LM(t,e){var r={lhs:[],rhs:[]};return vt(t,function(n){e(n)?r.lhs.push(n):r.rhs.push(n)}),r}function DM(t,e){var r=Wy();try{return e()}finally{console.log(t+\" time: \"+(Wy()-r)+\"ms\")}}function MM(t,e){return e()}function NM(t){function e(r){var n=t.children(r),i=t.node(r);if(n.length&&vt(n,e),me(i,\"minRank\")){i.borderLeft=[],i.borderRight=[];for(var s=i.minRank,a=i.maxRank+1;s<a;++s)im(t,\"borderLeft\",\"_bl\",r,i,s),im(t,\"borderRight\",\"_br\",r,i,s)}}vt(t.children(),e)}function im(t,e,r,n,i,s){var a={width:0,height:0,rank:s,borderType:e},o=i[e][s-1],l=Ta(t,\"border\",a,r);i[e][s]=l,t.setParent(l,n),o&&t.setEdge(o,l,{weight:1})}function BM(t){var e=t.graph().rankdir.toLowerCase();(e===\"lr\"||e===\"rl\")&&sm(t)}function IM(t){var e=t.graph().rankdir.toLowerCase();(e===\"bt\"||e===\"rl\")&&OM(t),(e===\"lr\"||e===\"rl\")&&(RM(t),sm(t))}function sm(t){vt(t.nodes(),function(e){am(t.node(e))}),vt(t.edges(),function(e){am(t.edge(e))})}function am(t){var e=t.width;t.width=t.height,t.height=e}function OM(t){vt(t.nodes(),function(e){d0(t.node(e))}),vt(t.edges(),function(e){var r=t.edge(e);vt(r.points,d0),me(r,\"y\")&&d0(r)})}function d0(t){t.y=-t.y}function RM(t){vt(t.nodes(),function(e){f0(t.node(e))}),vt(t.edges(),function(e){var r=t.edge(e);vt(r.points,f0),me(r,\"x\")&&f0(r)})}function f0(t){var e=t.x;t.x=t.y,t.y=e}function FM(t){var e=Ta(t,\"root\",{},\"_root\"),r=PM(t),n=Cs(gi(r))-1,i=2*n+1;t.graph().nestingRoot=e,vt(t.edges(),function(a){t.edge(a).minlen*=i});var s=YM(t)+1;vt(t.children(),function(a){om(t,e,i,s,n,r,a)}),t.graph().nodeRankFactor=i}function om(t,e,r,n,i,s,a){var o=t.children(a);if(!o.length){a!==e&&t.setEdge(e,a,{weight:0,minlen:r});return}var l=rm(t,\"_bt\"),u=rm(t,\"_bb\"),d=t.node(a);t.setParent(l,a),d.borderTop=l,t.setParent(u,a),d.borderBottom=u,vt(o,function(f){om(t,e,r,n,i,s,f);var p=t.node(f),g=p.borderTop?p.borderTop:f,b=p.borderBottom?p.borderBottom:f,k=p.borderTop?n:2*n,T=g!==b?1:i-s[a]+1;t.setEdge(l,g,{weight:k,minlen:T,nestingEdge:!0}),t.setEdge(b,u,{weight:k,minlen:T,nestingEdge:!0})}),t.parent(a)||t.setEdge(e,l,{weight:0,minlen:i+s[a]})}function PM(t){var e={};function r(n,i){var s=t.children(n);s&&s.length&&vt(s,function(a){r(a,i+1)}),e[n]=i}return vt(t.children(),function(n){r(n,1)}),e}function YM(t){return Bo(t.edges(),function(e,r){return e+t.edge(r).weight},0)}function VM(t){var e=t.graph();t.removeNode(e.nestingRoot),delete e.nestingRoot,vt(t.edges(),function(r){var n=t.edge(r);n.nestingEdge&&t.removeEdge(r)})}function UM(t,e,r){var n={},i;vt(r,function(s){for(var a=t.parent(s),o,l;a;){if(o=t.parent(a),o?(l=n[o],n[o]=a):(l=i,i=a),l&&l!==a){e.setEdge(l,a);return}a=o}})}function zM(t,e,r){var n=WM(t),i=new sr({compound:!0}).setGraph({root:n}).setDefaultNodeLabel(function(s){return t.node(s)});return vt(t.nodes(),function(s){var a=t.node(s),o=t.parent(s);(a.rank===e||a.minRank<=e&&e<=a.maxRank)&&(i.setNode(s),i.setParent(s,o||n),vt(t[r](s),function(l){var u=l.v===s?l.w:l.v,d=i.edge(u,s),f=Ze(d)?0:d.weight;i.setEdge(u,s,{weight:t.edge(l).weight+f})}),me(a,\"minRank\")&&i.setNode(s,{borderLeft:a.borderLeft[e],borderRight:a.borderRight[e]}))}),i}function WM(t){for(var e;t.hasNode(e=ou(\"_root\")););return e}function HM(t,e){for(var r=0,n=1;n<e.length;++n)r+=GM(t,e[n-1],e[n]);return r}function GM(t,e,r){for(var n=pM(r,ir(r,function(u,d){return d})),i=_a(ir(e,function(u){return Io(ir(t.outEdges(u),function(d){return{pos:n[d.w],weight:t.edge(d).weight}}),\"pos\")})),s=1;s<r.length;)s<<=1;var a=2*s-1;s-=1;var o=ir(new Array(a),function(){return 0}),l=0;return vt(i.forEach(function(u){var d=u.pos+s;o[d]+=u.weight;for(var f=0;d>0;)d%2&&(f+=o[d+1]),d=d-1>>1,o[d]+=u.weight;l+=u.weight*f})),l}function qM(t){var e={},r=pi(t.nodes(),function(o){return!t.children(o).length}),n=Cs(ir(r,function(o){return t.node(o).rank})),i=ir(Ss(n+1),function(){return[]});function s(o){if(!me(e,o)){e[o]=!0;var l=t.node(o);i[l.rank].push(o),vt(t.successors(o),s)}}var a=Io(r,function(o){return t.node(o).rank});return vt(a,s),i}function jM(t,e){return ir(e,function(r){var n=t.inEdges(r);if(n.length){var i=Bo(n,function(s,a){var o=t.edge(a),l=t.node(a.v);return{sum:s.sum+o.weight*l.order,weight:s.weight+o.weight}},{sum:0,weight:0});return{v:r,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:r}})}function $M(t,e){var r={};vt(t,function(i,s){var a=r[i.v]={indegree:0,in:[],out:[],vs:[i.v],i:s};Ze(i.barycenter)||(a.barycenter=i.barycenter,a.weight=i.weight)}),vt(e.edges(),function(i){var s=r[i.v],a=r[i.w];!Ze(s)&&!Ze(a)&&(a.indegree++,s.out.push(r[i.w]))});var n=pi(r,function(i){return!i.indegree});return XM(n)}function XM(t){var e=[];function r(s){return function(a){a.merged||(Ze(a.barycenter)||Ze(s.barycenter)||a.barycenter>=s.barycenter)&&KM(s,a)}}function n(s){return function(a){a.in.push(s),--a.indegree===0&&t.push(a)}}for(;t.length;){var i=t.pop();e.push(i),vt(i.in.reverse(),r(i)),vt(i.out,n(i))}return ir(pi(e,function(s){return!s.merged}),function(s){return No(s,[\"vs\",\"i\",\"barycenter\",\"weight\"])})}function KM(t,e){var r=0,n=0;t.weight&&(r+=t.barycenter*t.weight,n+=t.weight),e.weight&&(r+=e.barycenter*e.weight,n+=e.weight),t.vs=e.vs.concat(t.vs),t.barycenter=r/n,t.weight=n,t.i=Math.min(e.i,t.i),e.merged=!0}function ZM(t,e){var r=LM(t,function(d){return me(d,\"barycenter\")}),n=r.lhs,i=Io(r.rhs,function(d){return-d.i}),s=[],a=0,o=0,l=0;n.sort(QM(!!e)),l=lm(s,i,l),vt(n,function(d){l+=d.vs.length,s.push(d.vs),a+=d.barycenter*d.weight,o+=d.weight,l=lm(s,i,l)});var u={vs:_a(s)};return o&&(u.barycenter=a/o,u.weight=o),u}function lm(t,e,r){for(var n;e.length&&(n=su(e)).i<=r;)e.pop(),t.push(n.vs),r++;return r}function QM(t){return function(e,r){return e.barycenter<r.barycenter?-1:e.barycenter>r.barycenter?1:t?r.i-e.i:e.i-r.i}}function cm(t,e,r,n){var i=t.children(e),s=t.node(e),a=s?s.borderLeft:void 0,o=s?s.borderRight:void 0,l={};a&&(i=pi(i,function(b){return b!==a&&b!==o}));var u=jM(t,i);vt(u,function(b){if(t.children(b.v).length){var k=cm(t,b.v,r,n);l[b.v]=k,me(k,\"barycenter\")&&tN(b,k)}});var d=$M(u,r);JM(d,l);var f=ZM(d,n);if(a&&(f.vs=_a([a,f.vs,o]),t.predecessors(a).length)){var p=t.node(t.predecessors(a)[0]),g=t.node(t.predecessors(o)[0]);me(f,\"barycenter\")||(f.barycenter=0,f.weight=0),f.barycenter=(f.barycenter*f.weight+p.order+g.order)/(f.weight+2),f.weight+=2}return f}function JM(t,e){vt(t,function(r){r.vs=_a(r.vs.map(function(n){return e[n]?e[n].vs:n}))})}function tN(t,e){Ze(t.barycenter)?(t.barycenter=e.barycenter,t.weight=e.weight):(t.barycenter=(t.barycenter*t.weight+e.barycenter*e.weight)/(t.weight+e.weight),t.weight+=e.weight)}function eN(t){var e=nm(t),r=um(t,Ss(1,e+1),\"inEdges\"),n=um(t,Ss(e-1,-1,-1),\"outEdges\"),i=qM(t);hm(t,i);for(var s=Number.POSITIVE_INFINITY,a,o=0,l=0;l<4;++o,++l){rN(o%2?r:n,o%4>=2),i=lu(t);var u=HM(t,i);u<s&&(l=0,a=ML(i),s=u)}hm(t,a)}function um(t,e,r){return ir(e,function(n){return zM(t,n,r)})}function rN(t,e){var r=new sr;vt(t,function(n){var i=n.graph().root,s=cm(n,i,r,e);vt(s.vs,function(a,o){n.node(a).order=o}),UM(n,r,s.vs)})}function hm(t,e){vt(e,function(r){vt(r,function(n,i){t.node(n).order=i})})}function nN(t){var e=sN(t);vt(t.graph().dummyChains,function(r){for(var n=t.node(r),i=n.edgeObj,s=iN(t,e,i.v,i.w),a=s.path,o=s.lca,l=0,u=a[l],d=!0;r!==i.w;){if(n=t.node(r),d){for(;(u=a[l])!==o&&t.node(u).maxRank<n.rank;)l++;u===o&&(d=!1)}if(!d){for(;l<a.length-1&&t.node(u=a[l+1]).minRank<=n.rank;)l++;u=a[l]}t.setParent(r,u),r=t.successors(r)[0]}})}function iN(t,e,r,n){var i=[],s=[],a=Math.min(e[r].low,e[n].low),o=Math.max(e[r].lim,e[n].lim),l,u;l=r;do l=t.parent(l),i.push(l);while(l&&(e[l].low>a||o>e[l].lim));for(u=l,l=n;(l=t.parent(l))!==u;)s.push(l);return{path:i.concat(s.reverse()),lca:u}}function sN(t){var e={},r=0;function n(i){var s=r;vt(t.children(i),n),e[i]={low:s,lim:r++}}return vt(t.children(),n),e}function aN(t,e){var r={};function n(i,s){var a=0,o=0,l=i.length,u=su(s);return vt(s,function(d,f){var p=lN(t,d),g=p?t.node(p).order:l;(p||d===u)&&(vt(s.slice(o,f+1),function(b){vt(t.predecessors(b),function(k){var T=t.node(k),L=T.order;(L<a||g<L)&&!(T.dummy&&t.node(b).dummy)&&dm(r,k,b)})}),o=f+1,a=g)}),s}return Bo(e,n),r}function oN(t,e){var r={};function n(s,a,o,l,u){var d;vt(Ss(a,o),function(f){d=s[f],t.node(d).dummy&&vt(t.predecessors(d),function(p){var g=t.node(p);g.dummy&&(g.order<l||g.order>u)&&dm(r,p,d)})})}function i(s,a){var o=-1,l,u=0;return vt(a,function(d,f){if(t.node(d).dummy===\"border\"){var p=t.predecessors(d);p.length&&(l=t.node(p[0]).order,n(a,u,f,o,l),u=f,o=l)}n(a,u,a.length,l,s.length)}),a}return Bo(e,i),r}function lN(t,e){if(t.node(e).dummy)return s0(t.predecessors(e),function(r){return t.node(r).dummy})}function dm(t,e,r){if(e>r){var n=e;e=r,r=n}var i=t[e];i||(t[e]=i={}),i[r]=!0}function cN(t,e,r){if(e>r){var n=e;e=r,r=n}return me(t[e],r)}function uN(t,e,r,n){var i={},s={},a={};return vt(e,function(o){vt(o,function(l,u){i[l]=l,s[l]=l,a[l]=u})}),vt(e,function(o){var l=-1;vt(o,function(u){var d=n(u);if(d.length){d=Io(d,function(k){return a[k]});for(var f=(d.length-1)/2,p=Math.floor(f),g=Math.ceil(f);p<=g;++p){var b=d[p];s[u]===u&&l<a[b]&&!cN(r,u,b)&&(s[b]=u,s[u]=i[u]=i[b],l=a[b])}}})}),{root:i,align:s}}function hN(t,e,r,n,i){var s={},a=dN(t,e,r,i),o=i?\"borderLeft\":\"borderRight\";function l(f,p){for(var g=a.nodes(),b=g.pop(),k={};b;)k[b]?f(b):(k[b]=!0,g.push(b),g=g.concat(p(b))),b=g.pop()}function u(f){s[f]=a.inEdges(f).reduce(function(p,g){return Math.max(p,s[g.v]+a.edge(g))},0)}function d(f){var p=a.outEdges(f).reduce(function(b,k){return Math.min(b,s[k.w]-a.edge(k))},Number.POSITIVE_INFINITY),g=t.node(f);p!==Number.POSITIVE_INFINITY&&g.borderType!==o&&(s[f]=Math.max(s[f],p))}return l(u,a.predecessors.bind(a)),l(d,a.successors.bind(a)),vt(n,function(f){s[f]=s[r[f]]}),s}function dN(t,e,r,n){var i=new sr,s=t.graph(),a=mN(s.nodesep,s.edgesep,n);return vt(e,function(o){var l;vt(o,function(u){var d=r[u];if(i.setNode(d),l){var f=r[l],p=i.edge(f,d);i.setEdge(f,d,Math.max(a(t,u,l),p||0))}l=u})}),i}function fN(t,e){return l0(gi(e),function(r){var n=Number.NEGATIVE_INFINITY,i=Number.POSITIVE_INFINITY;return BD(r,function(s,a){var o=bN(t,a)/2;n=Math.max(s+o,n),i=Math.min(s-o,i)}),n-i})}function pN(t,e){var r=gi(e),n=Mo(r),i=Cs(r);vt([\"u\",\"d\"],function(s){vt([\"l\",\"r\"],function(a){var o=s+a,l=t[o],u;if(l!==e){var d=gi(l);u=a===\"l\"?n-Mo(d):i-Cs(d),u&&(t[o]=au(l,function(f){return f+u}))}})})}function gN(t,e){return au(t.ul,function(r,n){if(e)return t[e.toLowerCase()][n];var i=Io(ir(t,n));return(i[1]+i[2])/2})}function yN(t){var e=lu(t),r=o0(aN(t,e),oN(t,e)),n={},i;vt([\"u\",\"d\"],function(a){i=a===\"u\"?e:gi(e).reverse(),vt([\"l\",\"r\"],function(o){o===\"r\"&&(i=ir(i,function(f){return gi(f).reverse()}));var l=(a===\"u\"?t.predecessors:t.successors).bind(t),u=uN(t,i,r,l),d=hN(t,i,u.root,u.align,o===\"r\");o===\"r\"&&(d=au(d,function(f){return-f})),n[a+o]=d})});var s=fN(t,n);return pN(n,s),gN(n,t.graph().align)}function mN(t,e,r){return function(n,i,s){var a=n.node(i),o=n.node(s),l=0,u;if(l+=a.width/2,me(a,\"labelpos\"))switch(a.labelpos.toLowerCase()){case\"l\":u=-a.width/2;break;case\"r\":u=a.width/2;break}if(u&&(l+=r?u:-u),u=0,l+=(a.dummy?e:t)/2,l+=(o.dummy?e:t)/2,l+=o.width/2,me(o,\"labelpos\"))switch(o.labelpos.toLowerCase()){case\"l\":u=o.width/2;break;case\"r\":u=-o.width/2;break}return u&&(l+=r?u:-u),u=0,l}}function bN(t,e){return t.node(e).width}function _N(t){t=tm(t),xN(t),vt(yN(t),function(e,r){t.node(r).x=e})}function xN(t){var e=lu(t),r=t.graph().ranksep,n=0;vt(e,function(i){var s=Cs(ir(i,function(a){return t.node(a).height}));vt(i,function(a){t.node(a).y=n+s/2}),n+=s+r})}function Ea(t,e){var r=e&&e.debugTiming?DM:MM;r(\"layout\",function(){var n=r(\" buildLayoutGraph\",function(){return MN(t)});r(\" runLayout\",function(){vN(n,r)}),r(\" updateInputGraph\",function(){kN(t,n)})})}function vN(t,e){e(\" makeSpaceForEdgeLabels\",function(){NN(t)}),e(\" removeSelfEdges\",function(){UN(t)}),e(\" acyclic\",function(){wM(t)}),e(\" nestingGraph.run\",function(){FM(t)}),e(\" rank\",function(){rB(tm(t))}),e(\" injectEdgeLabelProxies\",function(){BN(t)}),e(\" removeEmptyRanks\",function(){AM(t)}),e(\" nestingGraph.cleanup\",function(){VM(t)}),e(\" normalizeRanks\",function(){SM(t)}),e(\" assignRankMinMax\",function(){IN(t)}),e(\" removeEdgeLabelProxies\",function(){ON(t)}),e(\" normalize.run\",function(){HN(t)}),e(\" parentDummyChains\",function(){nN(t)}),e(\" addBorderSegments\",function(){NM(t)}),e(\" order\",function(){eN(t)}),e(\" insertSelfEdges\",function(){zN(t)}),e(\" adjustCoordinateSystem\",function(){BM(t)}),e(\" position\",function(){_N(t)}),e(\" positionSelfEdges\",function(){WN(t)}),e(\" removeBorderNodes\",function(){VN(t)}),e(\" normalize.undo\",function(){qN(t)}),e(\" fixupEdgeLabelCoords\",function(){PN(t)}),e(\" undoCoordinateSystem\",function(){IM(t)}),e(\" translateGraph\",function(){RN(t)}),e(\" assignNodeIntersects\",function(){FN(t)}),e(\" reversePoints\",function(){YN(t)}),e(\" acyclic.undo\",function(){EM(t)})}function kN(t,e){vt(t.nodes(),function(r){var n=t.node(r),i=e.node(r);n&&(n.x=i.x,n.y=i.y,e.children(r).length&&(n.width=i.width,n.height=i.height))}),vt(t.edges(),function(r){var n=t.edge(r),i=e.edge(r);n.points=i.points,me(i,\"x\")&&(n.x=i.x,n.y=i.y)}),t.graph().width=e.graph().width,t.graph().height=e.graph().height}var wN=[\"nodesep\",\"edgesep\",\"ranksep\",\"marginx\",\"marginy\"],TN={ranksep:50,edgesep:20,nodesep:50,rankdir:\"tb\"},EN=[\"acyclicer\",\"ranker\",\"rankdir\",\"align\"],CN=[\"width\",\"height\"],SN={width:0,height:0},AN=[\"minlen\",\"weight\",\"width\",\"height\",\"labeloffset\"],LN={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:\"r\"},DN=[\"labelpos\"];function MN(t){var e=new sr({multigraph:!0,compound:!0}),r=g0(t.graph());return e.setGraph(o0({},TN,p0(r,wN),No(r,EN))),vt(t.nodes(),function(n){var i=g0(t.node(n));e.setNode(n,ka(p0(i,CN),SN)),e.setParent(n,t.parent(n))}),vt(t.edges(),function(n){var i=g0(t.edge(n));e.setEdge(n,o0({},LN,p0(i,AN),No(i,DN)))}),e}function NN(t){var e=t.graph();e.ranksep/=2,vt(t.edges(),function(r){var n=t.edge(r);n.minlen*=2,n.labelpos.toLowerCase()!==\"c\"&&(e.rankdir===\"TB\"||e.rankdir===\"BT\"?n.width+=n.labeloffset:n.height+=n.labeloffset)})}function BN(t){vt(t.edges(),function(e){var r=t.edge(e);if(r.width&&r.height){var n=t.node(e.v),i=t.node(e.w),s={rank:(i.rank-n.rank)/2+n.rank,e};Ta(t,\"edge-proxy\",s,\"_ep\")}})}function IN(t){var e=0;vt(t.nodes(),function(r){var n=t.node(r);n.borderTop&&(n.minRank=t.node(n.borderTop).rank,n.maxRank=t.node(n.borderBottom).rank,e=Cs(e,n.maxRank))}),t.graph().maxRank=e}function ON(t){vt(t.nodes(),function(e){var r=t.node(e);r.dummy===\"edge-proxy\"&&(t.edge(r.e).labelRank=r.rank,t.removeNode(e))})}function RN(t){var e=Number.POSITIVE_INFINITY,r=0,n=Number.POSITIVE_INFINITY,i=0,s=t.graph(),a=s.marginx||0,o=s.marginy||0;function l(u){var d=u.x,f=u.y,p=u.width,g=u.height;e=Math.min(e,d-p/2),r=Math.max(r,d+p/2),n=Math.min(n,f-g/2),i=Math.max(i,f+g/2)}vt(t.nodes(),function(u){l(t.node(u))}),vt(t.edges(),function(u){var d=t.edge(u);me(d,\"x\")&&l(d)}),e-=a,n-=o,vt(t.nodes(),function(u){var d=t.node(u);d.x-=e,d.y-=n}),vt(t.edges(),function(u){var d=t.edge(u);vt(d.points,function(f){f.x-=e,f.y-=n}),me(d,\"x\")&&(d.x-=e),me(d,\"y\")&&(d.y-=n)}),s.width=r-e+a,s.height=i-n+o}function FN(t){vt(t.edges(),function(e){var r=t.edge(e),n=t.node(e.v),i=t.node(e.w),s,a;r.points?(s=r.points[0],a=r.points[r.points.length-1]):(r.points=[],s=i,a=n),r.points.unshift(em(n,s)),r.points.push(em(i,a))})}function PN(t){vt(t.edges(),function(e){var r=t.edge(e);if(me(r,\"x\"))switch((r.labelpos===\"l\"||r.labelpos===\"r\")&&(r.width-=r.labeloffset),r.labelpos){case\"l\":r.x-=r.width/2+r.labeloffset;break;case\"r\":r.x+=r.width/2+r.labeloffset;break}})}function YN(t){vt(t.edges(),function(e){var r=t.edge(e);r.reversed&&r.points.reverse()})}function VN(t){vt(t.nodes(),function(e){if(t.children(e).length){var r=t.node(e),n=t.node(r.borderTop),i=t.node(r.borderBottom),s=t.node(su(r.borderLeft)),a=t.node(su(r.borderRight));r.width=Math.abs(a.x-s.x),r.height=Math.abs(i.y-n.y),r.x=s.x+r.width/2,r.y=n.y+r.height/2}}),vt(t.nodes(),function(e){t.node(e).dummy===\"border\"&&t.removeNode(e)})}function UN(t){vt(t.edges(),function(e){if(e.v===e.w){var r=t.node(e.v);r.selfEdges||(r.selfEdges=[]),r.selfEdges.push({e,label:t.edge(e)}),t.removeEdge(e)}})}function zN(t){var e=lu(t);vt(e,function(r){var n=0;vt(r,function(i,s){var a=t.node(i);a.order=s+n,vt(a.selfEdges,function(o){Ta(t,\"selfedge\",{width:o.label.width,height:o.label.height,rank:a.rank,order:s+ ++n,e:o.e,label:o.label},\"_se\")}),delete a.selfEdges})})}function WN(t){vt(t.nodes(),function(e){var r=t.node(e);if(r.dummy===\"selfedge\"){var n=t.node(r.e.v),i=n.x+n.width/2,s=n.y,a=r.x-i,o=n.height/2;t.setEdge(r.e,r.label),t.removeNode(e),r.label.points=[{x:i+2*a/3,y:s-o},{x:i+5*a/6,y:s-o},{x:i+a,y:s},{x:i+5*a/6,y:s+o},{x:i+2*a/3,y:s+o}],r.label.x=r.x,r.label.y=r.y}})}function p0(t,e){return au(No(t,e),Number)}function g0(t){var e={};return vt(t,function(r,n){e[n.toLowerCase()]=r}),e}function HN(t){t.graph().dummyChains=[],vt(t.edges(),function(e){GN(t,e)})}function GN(t,e){var r=e.v,n=t.node(r).rank,i=e.w,s=t.node(i).rank,a=e.name,o=t.edge(e),l=o.labelRank;if(s!==n+1){t.removeEdge(e);var u,d,f;for(f=0,++n;n<s;++f,++n)o.points=[],d={width:0,height:0,edgeLabel:o,edgeObj:e,rank:n},u=Ta(t,\"edge\",d,\"_d\"),n===l&&(d.width=o.width,d.height=o.height,d.dummy=\"edge-label\",d.labelpos=o.labelpos),t.setEdge(r,u,{weight:o.weight},a),f===0&&t.graph().dummyChains.push(u),r=u;t.setEdge(r,i,{weight:o.weight},a)}}function qN(t){vt(t.graph().dummyChains,function(e){var r=t.node(e),n=r.edgeLabel,i;for(t.setEdge(r.edgeObj,n);r.dummy;)i=t.successors(e)[0],t.removeNode(e),n.points.push({x:r.x,y:r.y}),r.dummy===\"edge-label\"&&(n.x=r.x,n.y=r.y,n.width=r.width,n.height=r.height),e=i,r=t.node(e)})}function y0(t){var e={};function r(n){var i=t.node(n);if(me(e,n))return i.rank;e[n]=!0;var s=Mo(ir(t.outEdges(n),function(a){return r(a.w)-t.edge(a).minlen}));return(s===Number.POSITIVE_INFINITY||s===void 0||s===null)&&(s=0),i.rank=s}vt(t.sources(),r)}function Ro(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}function fm(t){var e=new sr({directed:!1}),r=t.nodes()[0],n=t.nodeCount();e.setNode(r,{});for(var i,s;jN(e,t)<n;)i=$N(e,t),s=e.hasNode(i.v)?Ro(t,i):-Ro(t,i),XN(e,t,s);return e}function jN(t,e){function r(n){vt(e.nodeEdges(n),function(i){var s=i.v,a=n===s?i.w:s;!t.hasNode(a)&&!Ro(e,i)&&(t.setNode(a,{}),t.setEdge(n,a,{}),r(a))})}return vt(t.nodes(),r),t.nodeCount()}function $N(t,e){return l0(e.edges(),function(r){if(t.hasNode(r.v)!==t.hasNode(r.w))return Ro(e,r)})}function XN(t,e,r){vt(t.nodes(),function(n){e.node(n).rank+=r})}function KN(){}KN.prototype=new Error;function pm(t,e,r){nr(e)||(e=[e]);var n=(t.isDirected()?t.successors:t.neighbors).bind(t),i=[],s={};return vt(e,function(a){if(!t.hasNode(a))throw new Error(\"Graph does not have node: \"+a);gm(t,a,r===\"post\",s,n,i)}),i}function gm(t,e,r,n,i,s){me(n,e)||(n[e]=!0,r||s.push(e),vt(i(e),function(a){gm(t,a,r,n,i,s)}),r&&s.push(e))}function ZN(t,e){return pm(t,e,\"post\")}function QN(t,e){return pm(t,e,\"pre\")}Ls.initLowLimValues=b0,Ls.initCutValues=m0,Ls.calcCutValue=ym,Ls.leaveEdge=bm,Ls.enterEdge=_m,Ls.exchangeEdges=xm;function Ls(t){t=CM(t),y0(t);var e=fm(t);b0(e),m0(e,t);for(var r,n;r=bm(e);)n=_m(e,t,r),xm(e,t,r,n)}function m0(t,e){var r=ZN(t,t.nodes());r=r.slice(0,r.length-1),vt(r,function(n){JN(t,e,n)})}function JN(t,e,r){var n=t.node(r),i=n.parent;t.edge(r,i).cutvalue=ym(t,e,r)}function ym(t,e,r){var n=t.node(r),i=n.parent,s=!0,a=e.edge(r,i),o=0;return a||(s=!1,a=e.edge(i,r)),o=a.weight,vt(e.nodeEdges(r),function(l){var u=l.v===r,d=u?l.w:l.v;if(d!==i){var f=u===s,p=e.edge(l).weight;if(o+=f?p:-p,eB(t,r,d)){var g=t.edge(r,d).cutvalue;o+=f?-g:g}}}),o}function b0(t,e){arguments.length<2&&(e=t.nodes()[0]),mm(t,{},1,e)}function mm(t,e,r,n,i){var s=r,a=t.node(n);return e[n]=!0,vt(t.neighbors(n),function(o){me(e,o)||(r=mm(t,e,r,o,n))}),a.low=s,a.lim=r++,i?a.parent=i:delete a.parent,r}function bm(t){return s0(t.edges(),function(e){return t.edge(e).cutvalue<0})}function _m(t,e,r){var n=r.v,i=r.w;e.hasEdge(n,i)||(n=r.w,i=r.v);var s=t.node(n),a=t.node(i),o=s,l=!1;s.lim>a.lim&&(o=a,l=!0);var u=pi(e.edges(),function(d){return l===vm(t,t.node(d.v),o)&&l!==vm(t,t.node(d.w),o)});return l0(u,function(d){return Ro(e,d)})}function xm(t,e,r,n){var i=r.v,s=r.w;t.removeEdge(i,s),t.setEdge(n.v,n.w,{}),b0(t),m0(t,e),tB(t,e)}function tB(t,e){var r=s0(t.nodes(),function(i){return!e.node(i).parent}),n=QN(t,r);n=n.slice(1),vt(n,function(i){var s=t.node(i).parent,a=e.edge(i,s),o=!1;a||(a=e.edge(s,i),o=!0),e.node(i).rank=e.node(s).rank+(o?a.minlen:-a.minlen)})}function eB(t,e,r){return t.hasEdge(e,r)}function vm(t,e,r){return r.low<=e.lim&&e.lim<=r.lim}function rB(t){switch(t.graph().ranker){case\"network-simplex\":km(t);break;case\"tight-tree\":iB(t);break;case\"longest-path\":nB(t);break;default:km(t)}}var nB=y0;function iB(t){y0(t),fm(t)}function km(t){Ls(t)}let wm=0;const sB=function(t,e,r,n,i){const s=function(E){switch(E){case i.db.relationType.AGGREGATION:return\"aggregation\";case i.db.relationType.EXTENSION:return\"extension\";case i.db.relationType.COMPOSITION:return\"composition\";case i.db.relationType.DEPENDENCY:return\"dependency\";case i.db.relationType.LOLLIPOP:return\"lollipop\"}};e.points=e.points.filter(E=>!Number.isNaN(E.y));const a=e.points,o=Js().x(function(E){return E.x}).y(function(E){return E.y}).curve(ta),l=t.append(\"path\").attr(\"d\",o(a)).attr(\"id\",\"edge\"+wm).attr(\"class\",\"relation\");let u=\"\";n.arrowMarkerAbsolute&&(u=window.location.protocol+\"//\"+window.location.host+window.location.pathname+window.location.search,u=u.replace(/\\(/g,\"\\\\(\"),u=u.replace(/\\)/g,\"\\\\)\")),r.relation.lineType==1&&l.attr(\"class\",\"relation dashed-line\"),r.relation.lineType==10&&l.attr(\"class\",\"relation dotted-line\"),r.relation.type1!==\"none\"&&l.attr(\"marker-start\",\"url(\"+u+\"#\"+s(r.relation.type1)+\"Start)\"),r.relation.type2!==\"none\"&&l.attr(\"marker-end\",\"url(\"+u+\"#\"+s(r.relation.type2)+\"End)\");let d,f;const p=e.points.length;let g=ge.calcLabelPosition(e.points);d=g.x,f=g.y;let b,k,T,L;if(p%2!==0&&p>1){let E=ge.calcCardinalityPosition(r.relation.type1!==\"none\",e.points,e.points[0]),I=ge.calcCardinalityPosition(r.relation.type2!==\"none\",e.points,e.points[p-1]);B.debug(\"cardinality_1_point \"+JSON.stringify(E)),B.debug(\"cardinality_2_point \"+JSON.stringify(I)),b=E.x,k=E.y,T=I.x,L=I.y}if(r.title!==void 0){const E=t.append(\"g\").attr(\"class\",\"classLabel\"),I=E.append(\"text\").attr(\"class\",\"label\").attr(\"x\",d).attr(\"y\",f).attr(\"fill\",\"red\").attr(\"text-anchor\",\"middle\").text(r.title);window.label=I;const V=I.node().getBBox();E.insert(\"rect\",\":first-child\").attr(\"class\",\"box\").attr(\"x\",V.x-n.padding/2).attr(\"y\",V.y-n.padding/2).attr(\"width\",V.width+n.padding).attr(\"height\",V.height+n.padding)}B.info(\"Rendering relation \"+JSON.stringify(r)),r.relationTitle1!==void 0&&r.relationTitle1!==\"none\"&&t.append(\"g\").attr(\"class\",\"cardinality\").append(\"text\").attr(\"class\",\"type1\").attr(\"x\",b).attr(\"y\",k).attr(\"fill\",\"black\").attr(\"font-size\",\"6\").text(r.relationTitle1),r.relationTitle2!==void 0&&r.relationTitle2!==\"none\"&&t.append(\"g\").attr(\"class\",\"cardinality\").append(\"text\").attr(\"class\",\"type2\").attr(\"x\",T).attr(\"y\",L).attr(\"fill\",\"black\").attr(\"font-size\",\"6\").text(r.relationTitle2),wm++},aB=function(t,e,r,n){B.debug(\"Rendering class \",e,r);const i=e.id,s={id:i,label:e.id,width:0,height:0},a=t.append(\"g\").attr(\"id\",n.db.lookUpDomId(i)).attr(\"class\",\"classGroup\");let o;e.link?o=a.append(\"svg:a\").attr(\"xlink:href\",e.link).attr(\"target\",e.linkTarget).append(\"text\").attr(\"y\",r.textHeight+r.padding).attr(\"x\",0):o=a.append(\"text\").attr(\"y\",r.textHeight+r.padding).attr(\"x\",0);let l=!0;e.annotations.forEach(function(H){const G=o.append(\"tspan\").text(\"\\xAB\"+H+\"\\xBB\");l||G.attr(\"dy\",r.textHeight),l=!1});let u=e.id;e.type!==void 0&&e.type!==\"\"&&(u+=\"<\"+e.type+\">\");const d=o.append(\"tspan\").text(u).attr(\"class\",\"title\");l||d.attr(\"dy\",r.textHeight);const f=o.node().getBBox().height,p=a.append(\"line\").attr(\"x1\",0).attr(\"y1\",r.padding+f+r.dividerMargin/2).attr(\"y2\",r.padding+f+r.dividerMargin/2),g=a.append(\"text\").attr(\"x\",r.padding).attr(\"y\",f+r.dividerMargin+r.textHeight).attr(\"fill\",\"white\").attr(\"class\",\"classText\");l=!0,e.members.forEach(function(H){Tm(g,H,l,r),l=!1});const b=g.node().getBBox(),k=a.append(\"line\").attr(\"x1\",0).attr(\"y1\",r.padding+f+r.dividerMargin+b.height).attr(\"y2\",r.padding+f+r.dividerMargin+b.height),T=a.append(\"text\").attr(\"x\",r.padding).attr(\"y\",f+2*r.dividerMargin+b.height+r.textHeight).attr(\"fill\",\"white\").attr(\"class\",\"classText\");l=!0,e.methods.forEach(function(H){Tm(T,H,l,r),l=!1});const L=a.node().getBBox();var E=\" \";e.cssClasses.length>0&&(E=E+e.cssClasses.join(\" \"));const V=a.insert(\"rect\",\":first-child\").attr(\"x\",0).attr(\"y\",0).attr(\"width\",L.width+2*r.padding).attr(\"height\",L.height+r.padding+.5*r.dividerMargin).attr(\"class\",E).node().getBBox().width;return o.node().childNodes.forEach(function(H){H.setAttribute(\"x\",(V-H.getBBox().width)/2)}),e.tooltip&&o.insert(\"title\").text(e.tooltip),p.attr(\"x2\",V),k.attr(\"x2\",V),s.width=V,s.height=L.height+r.padding+.5*r.dividerMargin,s},oB=function(t,e,r,n){B.debug(\"Rendering note \",e,r);const i=e.id,s={id:i,text:e.text,width:0,height:0},a=t.append(\"g\").attr(\"id\",i).attr(\"class\",\"classGroup\");let o=a.append(\"text\").attr(\"y\",r.textHeight+r.padding).attr(\"x\",0);const l=JSON.parse(`\"${e.text}\"`).split(`\n`);l.forEach(function(p){B.debug(`Adding line: ${p}`),o.append(\"tspan\").text(p).attr(\"class\",\"title\").attr(\"dy\",r.textHeight)});const u=a.node().getBBox(),f=a.insert(\"rect\",\":first-child\").attr(\"x\",0).attr(\"y\",0).attr(\"width\",u.width+2*r.padding).attr(\"height\",u.height+l.length*r.textHeight+r.padding+.5*r.dividerMargin).node().getBBox().width;return o.node().childNodes.forEach(function(p){p.setAttribute(\"x\",(f-p.getBBox().width)/2)}),s.width=f,s.height=u.height+l.length*r.textHeight+r.padding+.5*r.dividerMargin,s},cu=function(t){const e=/^([#+~-])?(\\w+)(~\\w+~|\\[])?\\s+(\\w+) *([$*])?$/,r=/^([#+|~-])?(\\w+) *\\( *(.*)\\) *([$*])? *(\\w*[[\\]|~]*\\s*\\w*~?)$/;let n=t.match(e),i=t.match(r);return n&&!i?lB(n):i?cB(i):uB(t)},lB=function(t){let e=\"\",r=\"\";try{let n=t[1]?t[1].trim():\"\",i=t[2]?t[2].trim():\"\",s=t[3]?Oi(t[3].trim()):\"\",a=t[4]?t[4].trim():\"\",o=t[5]?t[5].trim():\"\";r=n+i+s+\" \"+a,e=_0(o)}catch{r=t}return{displayText:r,cssStyle:e}},cB=function(t){let e=\"\",r=\"\";try{let n=t[1]?t[1].trim():\"\",i=t[2]?t[2].trim():\"\",s=t[3]?Oi(t[3].trim()):\"\",a=t[4]?t[4].trim():\"\",o=t[5]?\" : \"+Oi(t[5]).trim():\"\";r=n+i+\"(\"+s+\")\"+o,e=_0(a)}catch{r=t}return{displayText:r,cssStyle:e}},uB=function(t){let e=\"\",r=\"\",n=\"\",i=t.indexOf(\"(\"),s=t.indexOf(\")\");if(i>1&&s>i&&s<=t.length){let a=\"\",o=\"\",l=t.substring(0,1);l.match(/\\w/)?o=t.substring(0,i).trim():(l.match(/[#+~-]/)&&(a=l),o=t.substring(1,i).trim());const u=t.substring(i+1,s);t.substring(s+1,1),r=_0(t.substring(s+1,s+2)),e=a+o+\"(\"+Oi(u.trim())+\")\",s<t.length&&(n=t.substring(s+2).trim(),n!==\"\"&&(n=\" : \"+Oi(n),e+=n))}else e=Oi(t);return{displayText:e,cssStyle:r}},Tm=function(t,e,r,n){let i=cu(e);const s=t.append(\"tspan\").attr(\"x\",n.padding).text(i.displayText);i.cssStyle!==\"\"&&s.attr(\"style\",i.cssStyle),r||s.attr(\"dy\",n.textHeight)},_0=function(t){switch(t){case\"*\":return\"font-style:italic;\";case\"$\":return\"text-decoration:underline;\";default:return\"\"}},x0={drawClass:aB,drawEdge:sB,drawNote:oB,parseMember:cu};let uu={};const hu=20,Fo=function(t){const e=Object.entries(uu).find(r=>r[1].label===t);if(e)return e[0]},hB=function(t){t.append(\"defs\").append(\"marker\").attr(\"id\",\"extensionStart\").attr(\"class\",\"extension\").attr(\"refX\",0).attr(\"refY\",7).attr(\"markerWidth\",190).attr(\"markerHeight\",240).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 1,7 L18,13 V 1 Z\"),t.append(\"defs\").append(\"marker\").attr(\"id\",\"extensionEnd\").attr(\"refX\",19).attr(\"refY\",7).attr(\"markerWidth\",20).attr(\"markerHeight\",28).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 1,1 V 13 L18,7 Z\"),t.append(\"defs\").append(\"marker\").attr(\"id\",\"compositionStart\").attr(\"class\",\"extension\").attr(\"refX\",0).attr(\"refY\",7).attr(\"markerWidth\",190).attr(\"markerHeight\",240).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 18,7 L9,13 L1,7 L9,1 Z\"),t.append(\"defs\").append(\"marker\").attr(\"id\",\"compositionEnd\").attr(\"refX\",19).attr(\"refY\",7).attr(\"markerWidth\",20).attr(\"markerHeight\",28).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 18,7 L9,13 L1,7 L9,1 Z\"),t.append(\"defs\").append(\"marker\").attr(\"id\",\"aggregationStart\").attr(\"class\",\"extension\").attr(\"refX\",0).attr(\"refY\",7).attr(\"markerWidth\",190).attr(\"markerHeight\",240).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 18,7 L9,13 L1,7 L9,1 Z\"),t.append(\"defs\").append(\"marker\").attr(\"id\",\"aggregationEnd\").attr(\"refX\",19).attr(\"refY\",7).attr(\"markerWidth\",20).attr(\"markerHeight\",28).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 18,7 L9,13 L1,7 L9,1 Z\"),t.append(\"defs\").append(\"marker\").attr(\"id\",\"dependencyStart\").attr(\"class\",\"extension\").attr(\"refX\",0).attr(\"refY\",7).attr(\"markerWidth\",190).attr(\"markerHeight\",240).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 5,7 L9,13 L1,7 L9,1 Z\"),t.append(\"defs\").append(\"marker\").attr(\"id\",\"dependencyEnd\").attr(\"refX\",19).attr(\"refY\",7).attr(\"markerWidth\",20).attr(\"markerHeight\",28).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 18,7 L9,13 L14,7 L9,1 Z\")},dB={draw:function(t,e,r,n){const i=$().class;uu={},B.info(\"Rendering diagram \"+t);const s=$().securityLevel;let a;s===\"sandbox\"&&(a=St(\"#i\"+e));const o=St(s===\"sandbox\"?a.nodes()[0].contentDocument.body:\"body\"),l=o.select(`[id='${e}']`);hB(l);const u=new sr({multigraph:!0});u.setGraph({isMultiGraph:!0}),u.setDefaultEdgeLabel(function(){return{}});const d=n.db.getClasses(),f=Object.keys(d);for(const E of f){const I=d[E],V=x0.drawClass(l,I,i,n);uu[V.id]=V,u.setNode(V.id,V),B.info(\"Org height: \"+V.height)}n.db.getRelations().forEach(function(E){B.info(\"tjoho\"+Fo(E.id1)+Fo(E.id2)+JSON.stringify(E)),u.setEdge(Fo(E.id1),Fo(E.id2),{relation:E},E.title||\"DEFAULT\")}),n.db.getNotes().forEach(function(E){B.debug(`Adding note: ${JSON.stringify(E)}`);const I=x0.drawNote(l,E,i,n);uu[I.id]=I,u.setNode(I.id,I),E.class&&E.class in d&&u.setEdge(E.id,Fo(E.class),{relation:{id1:E.id,id2:E.class,relation:{type1:\"none\",type2:\"none\",lineType:10}}},\"DEFAULT\")}),Ea(u),u.nodes().forEach(function(E){E!==void 0&&u.node(E)!==void 0&&(B.debug(\"Node \"+E+\": \"+JSON.stringify(u.node(E))),o.select(\"#\"+(n.db.lookUpDomId(E)||E)).attr(\"transform\",\"translate(\"+(u.node(E).x-u.node(E).width/2)+\",\"+(u.node(E).y-u.node(E).height/2)+\" )\"))}),u.edges().forEach(function(E){E!==void 0&&u.edge(E)!==void 0&&(B.debug(\"Edge \"+E.v+\" -> \"+E.w+\": \"+JSON.stringify(u.edge(E))),x0.drawEdge(l,u.edge(E),u.edge(E).relation,i,n))});const b=l.node().getBBox(),k=b.width+hu*2,T=b.height+hu*2;xn(l,T,k,i.useMaxWidth);const L=`${b.x-hu} ${b.y-hu} ${k} ${T}`;B.debug(`viewBox ${L}`),l.attr(\"viewBox\",L)}};function yi(t){var e={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:fB(t),edges:pB(t)};return Ze(t.graph())||(e.value=AL(t.graph())),e}function fB(t){return ir(t.nodes(),function(e){var r=t.node(e),n=t.parent(e),i={v:e};return Ze(r)||(i.value=r),Ze(n)||(i.parent=n),i})}function pB(t){return ir(t.edges(),function(e){var r=t.edge(e),n={v:e.v,w:e.w};return Ze(e.name)||(n.name=e.name),Ze(r)||(n.value=r),n})}const gB=(t,e,r,n)=>{e.forEach(i=>{yB[i](t,r,n)})},yB={extension:(t,e,r)=>{B.trace(\"Making markers for \",r),t.append(\"defs\").append(\"marker\").attr(\"id\",e+\"-extensionStart\").attr(\"class\",\"marker extension \"+e).attr(\"refX\",0).attr(\"refY\",7).attr(\"markerWidth\",190).attr(\"markerHeight\",240).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 1,7 L18,13 V 1 Z\"),t.append(\"defs\").append(\"marker\").attr(\"id\",e+\"-extensionEnd\").attr(\"class\",\"marker extension \"+e).attr(\"refX\",19).attr(\"refY\",7).attr(\"markerWidth\",20).attr(\"markerHeight\",28).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 1,1 V 13 L18,7 Z\")},composition:(t,e)=>{t.append(\"defs\").append(\"marker\").attr(\"id\",e+\"-compositionStart\").attr(\"class\",\"marker composition \"+e).attr(\"refX\",0).attr(\"refY\",7).attr(\"markerWidth\",190).attr(\"markerHeight\",240).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 18,7 L9,13 L1,7 L9,1 Z\"),t.append(\"defs\").append(\"marker\").attr(\"id\",e+\"-compositionEnd\").attr(\"class\",\"marker composition \"+e).attr(\"refX\",19).attr(\"refY\",7).attr(\"markerWidth\",20).attr(\"markerHeight\",28).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 18,7 L9,13 L1,7 L9,1 Z\")},aggregation:(t,e)=>{t.append(\"defs\").append(\"marker\").attr(\"id\",e+\"-aggregationStart\").attr(\"class\",\"marker aggregation \"+e).attr(\"refX\",0).attr(\"refY\",7).attr(\"markerWidth\",190).attr(\"markerHeight\",240).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 18,7 L9,13 L1,7 L9,1 Z\"),t.append(\"defs\").append(\"marker\").attr(\"id\",e+\"-aggregationEnd\").attr(\"class\",\"marker aggregation \"+e).attr(\"refX\",19).attr(\"refY\",7).attr(\"markerWidth\",20).attr(\"markerHeight\",28).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 18,7 L9,13 L1,7 L9,1 Z\")},dependency:(t,e)=>{t.append(\"defs\").append(\"marker\").attr(\"id\",e+\"-dependencyStart\").attr(\"class\",\"marker dependency \"+e).attr(\"refX\",0).attr(\"refY\",7).attr(\"markerWidth\",190).attr(\"markerHeight\",240).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 5,7 L9,13 L1,7 L9,1 Z\"),t.append(\"defs\").append(\"marker\").attr(\"id\",e+\"-dependencyEnd\").attr(\"class\",\"marker dependency \"+e).attr(\"refX\",19).attr(\"refY\",7).attr(\"markerWidth\",20).attr(\"markerHeight\",28).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 18,7 L9,13 L14,7 L9,1 Z\")},lollipop:(t,e)=>{t.append(\"defs\").append(\"marker\").attr(\"id\",e+\"-lollipopStart\").attr(\"class\",\"marker lollipop \"+e).attr(\"refX\",0).attr(\"refY\",7).attr(\"markerWidth\",190).attr(\"markerHeight\",240).attr(\"orient\",\"auto\").append(\"circle\").attr(\"stroke\",\"black\").attr(\"fill\",\"white\").attr(\"cx\",6).attr(\"cy\",7).attr(\"r\",6)},point:(t,e)=>{t.append(\"marker\").attr(\"id\",e+\"-pointEnd\").attr(\"class\",\"marker \"+e).attr(\"viewBox\",\"0 0 10 10\").attr(\"refX\",10).attr(\"refY\",5).attr(\"markerUnits\",\"userSpaceOnUse\").attr(\"markerWidth\",12).attr(\"markerHeight\",12).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 0 0 L 10 5 L 0 10 z\").attr(\"class\",\"arrowMarkerPath\").style(\"stroke-width\",1).style(\"stroke-dasharray\",\"1,0\"),t.append(\"marker\").attr(\"id\",e+\"-pointStart\").attr(\"class\",\"marker \"+e).attr(\"viewBox\",\"0 0 10 10\").attr(\"refX\",0).attr(\"refY\",5).attr(\"markerUnits\",\"userSpaceOnUse\").attr(\"markerWidth\",12).attr(\"markerHeight\",12).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 0 5 L 10 10 L 10 0 z\").attr(\"class\",\"arrowMarkerPath\").style(\"stroke-width\",1).style(\"stroke-dasharray\",\"1,0\")},circle:(t,e)=>{t.append(\"marker\").attr(\"id\",e+\"-circleEnd\").attr(\"class\",\"marker \"+e).attr(\"viewBox\",\"0 0 10 10\").attr(\"refX\",11).attr(\"refY\",5).attr(\"markerUnits\",\"userSpaceOnUse\").attr(\"markerWidth\",11).attr(\"markerHeight\",11).attr(\"orient\",\"auto\").append(\"circle\").attr(\"cx\",\"5\").attr(\"cy\",\"5\").attr(\"r\",\"5\").attr(\"class\",\"arrowMarkerPath\").style(\"stroke-width\",1).style(\"stroke-dasharray\",\"1,0\"),t.append(\"marker\").attr(\"id\",e+\"-circleStart\").attr(\"class\",\"marker \"+e).attr(\"viewBox\",\"0 0 10 10\").attr(\"refX\",-1).attr(\"refY\",5).attr(\"markerUnits\",\"userSpaceOnUse\").attr(\"markerWidth\",11).attr(\"markerHeight\",11).attr(\"orient\",\"auto\").append(\"circle\").attr(\"cx\",\"5\").attr(\"cy\",\"5\").attr(\"r\",\"5\").attr(\"class\",\"arrowMarkerPath\").style(\"stroke-width\",1).style(\"stroke-dasharray\",\"1,0\")},cross:(t,e)=>{t.append(\"marker\").attr(\"id\",e+\"-crossEnd\").attr(\"class\",\"marker cross \"+e).attr(\"viewBox\",\"0 0 11 11\").attr(\"refX\",12).attr(\"refY\",5.2).attr(\"markerUnits\",\"userSpaceOnUse\").attr(\"markerWidth\",11).attr(\"markerHeight\",11).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\",\"arrowMarkerPath\").style(\"stroke-width\",2).style(\"stroke-dasharray\",\"1,0\"),t.append(\"marker\").attr(\"id\",e+\"-crossStart\").attr(\"class\",\"marker cross \"+e).attr(\"viewBox\",\"0 0 11 11\").attr(\"refX\",-1).attr(\"refY\",5.2).attr(\"markerUnits\",\"userSpaceOnUse\").attr(\"markerWidth\",11).attr(\"markerHeight\",11).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\",\"arrowMarkerPath\").style(\"stroke-width\",2).style(\"stroke-dasharray\",\"1,0\")},barb:(t,e)=>{t.append(\"defs\").append(\"marker\").attr(\"id\",e+\"-barbEnd\").attr(\"refX\",19).attr(\"refY\",7).attr(\"markerWidth\",20).attr(\"markerHeight\",14).attr(\"markerUnits\",\"strokeWidth\").attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 19,7 L9,13 L14,7 L9,1 Z\")}},mB=gB;function bB(t,e){e&&t.attr(\"style\",e)}function _B(t){const e=St(document.createElementNS(\"http://www.w3.org/2000/svg\",\"foreignObject\")),r=e.append(\"xhtml:div\"),n=t.label,i=t.isNode?\"nodeLabel\":\"edgeLabel\";return r.html('<span class=\"'+i+'\" '+(t.labelStyle?'style=\"'+t.labelStyle+'\"':\"\")+\">\"+n+\"</span>\"),bB(r,t.labelStyle),r.style(\"display\",\"inline-block\"),r.style(\"white-space\",\"nowrap\"),r.attr(\"xmlns\",\"http://www.w3.org/1999/xhtml\"),e.node()}const Vr=(t,e,r,n)=>{let i=t||\"\";if(typeof i==\"object\"&&(i=i[0]),pr($().flowchart.htmlLabels)){i=i.replace(/\\\\n|\\n/g,\"<br />\"),B.info(\"vertexText\"+i);const s={isNode:n,label:Id(i).replace(/fa[blrs]?:fa-[\\w-]+/g,o=>`<i class='${o.replace(\":\",\" \")}'></i>`),labelStyle:e.replace(\"fill:\",\"color:\")};return _B(s)}else{const s=document.createElementNS(\"http://www.w3.org/2000/svg\",\"text\");s.setAttribute(\"style\",e.replace(\"color:\",\"fill:\"));let a=[];typeof i==\"string\"?a=i.split(/\\\\n|\\n|<br\\s*\\/?>/gi):Array.isArray(i)?a=i:a=[];for(const o of a){const l=document.createElementNS(\"http://www.w3.org/2000/svg\",\"tspan\");l.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\",\"xml:space\",\"preserve\"),l.setAttribute(\"dy\",\"1em\"),l.setAttribute(\"x\",\"0\"),r?l.setAttribute(\"class\",\"title-row\"):l.setAttribute(\"class\",\"row\"),l.textContent=o.trim(),s.appendChild(l)}return s}},Er=(t,e,r,n)=>{let i;r?i=r:i=\"node default\";const s=t.insert(\"g\").attr(\"class\",i).attr(\"id\",e.domId||e.id),a=s.insert(\"g\").attr(\"class\",\"label\").attr(\"style\",e.labelStyle);let o;e.labelText===void 0?o=\"\":o=typeof e.labelText==\"string\"?e.labelText:e.labelText[0];const l=a.node().appendChild(Vr(yn(Id(o),$()),e.labelStyle,!1,n));let u=l.getBBox();if(pr($().flowchart.htmlLabels)){const f=l.children[0],p=St(l);u=f.getBoundingClientRect(),p.attr(\"width\",u.width),p.attr(\"height\",u.height)}const d=e.padding/2;return a.attr(\"transform\",\"translate(\"+-u.width/2+\", \"+-u.height/2+\")\"),{shapeSvg:s,bbox:u,halfPadding:d,label:a}},Qe=(t,e)=>{const r=e.node().getBBox();t.width=r.width,t.height=r.height};function mi(t,e,r,n){return t.insert(\"polygon\",\":first-child\").attr(\"points\",n.map(function(i){return i.x+\",\"+i.y}).join(\" \")).attr(\"class\",\"label-container\").attr(\"transform\",\"translate(\"+-e/2+\",\"+r/2+\")\")}let Te={},Ln={},Em={};const xB=()=>{Ln={},Em={},Te={}},du=(t,e)=>(B.trace(\"In isDecendant\",e,\" \",t,\" = \",Ln[e].includes(t)),!!Ln[e].includes(t)),vB=(t,e)=>(B.info(\"Decendants of \",e,\" is \",Ln[e]),B.info(\"Edge is \",t),t.v===e||t.w===e?!1:Ln[e]?Ln[e].includes(t.v)||du(t.v,e)||du(t.w,e)||Ln[e].includes(t.w):(B.debug(\"Tilt, \",e,\",not in decendants\"),!1)),Cm=(t,e,r,n)=>{B.warn(\"Copying children of \",t,\"root\",n,\"data\",e.node(t),n);const i=e.children(t)||[];t!==n&&i.push(t),B.warn(\"Copying (nodes) clusterId\",t,\"nodes\",i),i.forEach(s=>{if(e.children(s).length>0)Cm(s,e,r,n);else{const a=e.node(s);B.info(\"cp \",s,\" to \",n,\" with parent \",t),r.setNode(s,a),n!==e.parent(s)&&(B.warn(\"Setting parent\",s,e.parent(s)),r.setParent(s,e.parent(s))),t!==n&&s!==t?(B.debug(\"Setting parent\",s,t),r.setParent(s,t)):(B.info(\"In copy \",t,\"root\",n,\"data\",e.node(t),n),B.debug(\"Not Setting parent for node=\",s,\"cluster!==rootId\",t!==n,\"node!==clusterId\",s!==t));const o=e.edges(s);B.debug(\"Copying Edges\",o),o.forEach(l=>{B.info(\"Edge\",l);const u=e.edge(l.v,l.w,l.name);B.info(\"Edge data\",u,n);try{vB(l,n)?(B.info(\"Copying as \",l.v,l.w,u,l.name),r.setEdge(l.v,l.w,u,l.name),B.info(\"newGraph edges \",r.edges(),r.edge(r.edges()[0]))):B.info(\"Skipping copy of edge \",l.v,\"-->\",l.w,\" rootId: \",n,\" clusterId:\",t)}catch(d){B.error(d)}})}B.debug(\"Removing node\",s),e.removeNode(s)})},Sm=(t,e)=>{const r=e.children(t);let n=[...r];for(const i of r)Em[i]=t,n=[...n,...Sm(i,e)];return n},Po=(t,e)=>{B.trace(\"Searching\",t);const r=e.children(t);if(B.trace(\"Searching children of id \",t,r),r.length<1)return B.trace(\"This is a valid node\",t),t;for(const n of r){const i=Po(n,e);if(i)return B.trace(\"Found replacement for\",t,\" => \",i),i}},fu=t=>!Te[t]||!Te[t].externalConnections?t:Te[t]?Te[t].id:t,kB=(t,e)=>{if(!t||e>10){B.debug(\"Opting out, no graph \");return}else B.debug(\"Opting in, graph \");t.nodes().forEach(function(r){t.children(r).length>0&&(B.warn(\"Cluster identified\",r,\" Replacement id in edges: \",Po(r,t)),Ln[r]=Sm(r,t),Te[r]={id:Po(r,t),clusterData:t.node(r)})}),t.nodes().forEach(function(r){const n=t.children(r),i=t.edges();n.length>0?(B.debug(\"Cluster identified\",r,Ln),i.forEach(s=>{if(s.v!==r&&s.w!==r){const a=du(s.v,r),o=du(s.w,r);a^o&&(B.warn(\"Edge: \",s,\" leaves cluster \",r),B.warn(\"Decendants of XXX \",r,\": \",Ln[r]),Te[r].externalConnections=!0)}})):B.debug(\"Not a cluster \",r,Ln)}),t.edges().forEach(function(r){const n=t.edge(r);B.warn(\"Edge \"+r.v+\" -> \"+r.w+\": \"+JSON.stringify(r)),B.warn(\"Edge \"+r.v+\" -> \"+r.w+\": \"+JSON.stringify(t.edge(r)));let i=r.v,s=r.w;if(B.warn(\"Fix XXX\",Te,\"ids:\",r.v,r.w,\"Translating: \",Te[r.v],\" --- \",Te[r.w]),Te[r.v]&&Te[r.w]&&Te[r.v]===Te[r.w]){B.warn(\"Fixing and trixing link to self - removing XXX\",r.v,r.w,r.name),B.warn(\"Fixing and trixing - removing XXX\",r.v,r.w,r.name),i=fu(r.v),s=fu(r.w),t.removeEdge(r.v,r.w,r.name);const a=r.w+\"---\"+r.v;t.setNode(a,{domId:a,id:a,labelStyle:\"\",labelText:n.label,padding:0,shape:\"labelRect\",style:\"\"});const o=JSON.parse(JSON.stringify(n)),l=JSON.parse(JSON.stringify(n));o.label=\"\",o.arrowTypeEnd=\"none\",l.label=\"\",o.fromCluster=r.v,l.toCluster=r.v,t.setEdge(i,a,o,r.name+\"-cyclic-special\"),t.setEdge(a,s,l,r.name+\"-cyclic-special\")}else(Te[r.v]||Te[r.w])&&(B.warn(\"Fixing and trixing - removing XXX\",r.v,r.w,r.name),i=fu(r.v),s=fu(r.w),t.removeEdge(r.v,r.w,r.name),i!==r.v&&(n.fromCluster=r.v),s!==r.w&&(n.toCluster=r.w),B.warn(\"Fix Replacing with XXX\",i,s,r.name),t.setEdge(i,s,n,r.name))}),B.warn(\"Adjusted Graph\",yi(t)),Am(t,0),B.trace(Te)},Am=(t,e)=>{if(B.warn(\"extractor - \",e,yi(t),t.children(\"D\")),e>10){B.error(\"Bailing out\");return}let r=t.nodes(),n=!1;for(const i of r){const s=t.children(i);n=n||s.length>0}if(!n){B.debug(\"Done, no node has children\",t.nodes());return}B.debug(\"Nodes = \",r,e);for(const i of r)if(B.debug(\"Extracting node\",i,Te,Te[i]&&!Te[i].externalConnections,!t.parent(i),t.node(i),t.children(\"D\"),\" Depth \",e),!Te[i])B.debug(\"Not a cluster\",i,e);else if(!Te[i].externalConnections&&t.children(i)&&t.children(i).length>0){B.warn(\"Cluster without external connections, without a parent and with children\",i,e);let a=t.graph().rankdir===\"TB\"?\"LR\":\"TB\";Te[i]&&Te[i].clusterData&&Te[i].clusterData.dir&&(a=Te[i].clusterData.dir,B.warn(\"Fixing dir\",Te[i].clusterData.dir,a));const o=new sr({multigraph:!0,compound:!0}).setGraph({rankdir:a,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});B.warn(\"Old graph before copy\",yi(t)),Cm(i,t,o,i),t.setNode(i,{clusterNode:!0,id:i,clusterData:Te[i].clusterData,labelText:Te[i].labelText,graph:o}),B.warn(\"New graph after copy node: (\",i,\")\",yi(o)),B.debug(\"Old graph after copy\",yi(t))}else B.warn(\"Cluster ** \",i,\" **not meeting the criteria !externalConnections:\",!Te[i].externalConnections,\" no parent: \",!t.parent(i),\" children \",t.children(i)&&t.children(i).length>0,t.children(\"D\"),e),B.debug(Te);r=t.nodes(),B.warn(\"New list of nodes\",r);for(const i of r){const s=t.node(i);B.warn(\" Now next level\",i,s),s.clusterNode&&Am(s.graph,e+1)}},Lm=(t,e)=>{if(e.length===0)return[];let r=Object.assign(e);return e.forEach(n=>{const i=t.children(n),s=Lm(t,i);r=[...r,...s]}),r},wB=t=>Lm(t,t.children());function TB(t,e){return t.intersect(e)}function Dm(t,e,r,n){var i=t.x,s=t.y,a=i-n.x,o=s-n.y,l=Math.sqrt(e*e*o*o+r*r*a*a),u=Math.abs(e*r*a/l);n.x<i&&(u=-u);var d=Math.abs(e*r*o/l);return n.y<s&&(d=-d),{x:i+u,y:s+d}}function EB(t,e,r){return Dm(t,e,e,r)}function CB(t,e,r,n){var i,s,a,o,l,u,d,f,p,g,b,k,T,L,E;if(i=e.y-t.y,a=t.x-e.x,l=e.x*t.y-t.x*e.y,p=i*r.x+a*r.y+l,g=i*n.x+a*n.y+l,!(p!==0&&g!==0&&Mm(p,g))&&(s=n.y-r.y,o=r.x-n.x,u=n.x*r.y-r.x*n.y,d=s*t.x+o*t.y+u,f=s*e.x+o*e.y+u,!(d!==0&&f!==0&&Mm(d,f))&&(b=i*o-s*a,b!==0)))return k=Math.abs(b/2),T=a*u-o*l,L=T<0?(T-k)/b:(T+k)/b,T=s*l-i*u,E=T<0?(T-k)/b:(T+k)/b,{x:L,y:E}}function Mm(t,e){return t*e>0}function SB(t,e,r){var n=t.x,i=t.y,s=[],a=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;typeof e.forEach==\"function\"?e.forEach(function(b){a=Math.min(a,b.x),o=Math.min(o,b.y)}):(a=Math.min(a,e.x),o=Math.min(o,e.y));for(var l=n-t.width/2-a,u=i-t.height/2-o,d=0;d<e.length;d++){var f=e[d],p=e[d<e.length-1?d+1:0],g=CB(t,r,{x:l+f.x,y:u+f.y},{x:l+p.x,y:u+p.y});g&&s.push(g)}return s.length?(s.length>1&&s.sort(function(b,k){var T=b.x-r.x,L=b.y-r.y,E=Math.sqrt(T*T+L*L),I=k.x-r.x,V=k.y-r.y,H=Math.sqrt(I*I+V*V);return E<H?-1:E===H?0:1}),s[0]):t}const Yo=(t,e)=>{var r=t.x,n=t.y,i=e.x-r,s=e.y-n,a=t.width/2,o=t.height/2,l,u;return Math.abs(s)*a>Math.abs(i)*o?(s<0&&(o=-o),l=s===0?0:o*i/s,u=o):(i<0&&(a=-a),l=a,u=i===0?0:a*s/i),{x:r+l,y:n+u}},Ge={node:TB,circle:EB,ellipse:Dm,polygon:SB,rect:Yo},AB=(t,e)=>{const{shapeSvg:r,bbox:n,halfPadding:i}=Er(t,e,\"node \"+e.classes,!0);B.info(\"Classes = \",e.classes);const s=r.insert(\"rect\",\":first-child\");return s.attr(\"rx\",e.rx).attr(\"ry\",e.ry).attr(\"x\",-n.width/2-i).attr(\"y\",-n.height/2-i).attr(\"width\",n.width+e.padding).attr(\"height\",n.height+e.padding),Qe(e,s),e.intersect=function(a){return Ge.rect(e,a)},r},LB=(t,e)=>{const{shapeSvg:r,bbox:n}=Er(t,e,void 0,!0),i=n.width+e.padding,s=n.height+e.padding,a=i+s,o=[{x:a/2,y:0},{x:a,y:-a/2},{x:a/2,y:-a},{x:0,y:-a/2}];B.info(\"Question main (Circle)\");const l=mi(r,a,a,o);return l.attr(\"style\",e.style),Qe(e,l),e.intersect=function(u){return B.warn(\"Intersect called\"),Ge.polygon(e,o,u)},r},DB=(t,e)=>{const r=t.insert(\"g\").attr(\"class\",\"node default\").attr(\"id\",e.domId||e.id),n=28,i=[{x:0,y:n/2},{x:n/2,y:0},{x:0,y:-n/2},{x:-n/2,y:0}];return r.insert(\"polygon\",\":first-child\").attr(\"points\",i.map(function(a){return a.x+\",\"+a.y}).join(\" \")).attr(\"class\",\"state-start\").attr(\"r\",7).attr(\"width\",28).attr(\"height\",28),e.width=28,e.height=28,e.intersect=function(a){return Ge.circle(e,14,a)},r},MB=(t,e)=>{const{shapeSvg:r,bbox:n}=Er(t,e,void 0,!0),i=4,s=n.height+e.padding,a=s/i,o=n.width+2*a+e.padding,l=[{x:a,y:0},{x:o-a,y:0},{x:o,y:-s/2},{x:o-a,y:-s},{x:a,y:-s},{x:0,y:-s/2}],u=mi(r,o,s,l);return u.attr(\"style\",e.style),Qe(e,u),e.intersect=function(d){return Ge.polygon(e,l,d)},r},NB=(t,e)=>{const{shapeSvg:r,bbox:n}=Er(t,e,void 0,!0),i=n.width+e.padding,s=n.height+e.padding,a=[{x:-s/2,y:0},{x:i,y:0},{x:i,y:-s},{x:-s/2,y:-s},{x:0,y:-s/2}];return mi(r,i,s,a).attr(\"style\",e.style),e.width=i+s,e.height=s,e.intersect=function(l){return Ge.polygon(e,a,l)},r},BB=(t,e)=>{const{shapeSvg:r,bbox:n}=Er(t,e,void 0,!0),i=n.width+e.padding,s=n.height+e.padding,a=[{x:-2*s/6,y:0},{x:i-s/6,y:0},{x:i+2*s/6,y:-s},{x:s/6,y:-s}],o=mi(r,i,s,a);return o.attr(\"style\",e.style),Qe(e,o),e.intersect=function(l){return Ge.polygon(e,a,l)},r},IB=(t,e)=>{const{shapeSvg:r,bbox:n}=Er(t,e,void 0,!0),i=n.width+e.padding,s=n.height+e.padding,a=[{x:2*s/6,y:0},{x:i+s/6,y:0},{x:i-2*s/6,y:-s},{x:-s/6,y:-s}],o=mi(r,i,s,a);return o.attr(\"style\",e.style),Qe(e,o),e.intersect=function(l){return Ge.polygon(e,a,l)},r},OB=(t,e)=>{const{shapeSvg:r,bbox:n}=Er(t,e,void 0,!0),i=n.width+e.padding,s=n.height+e.padding,a=[{x:-2*s/6,y:0},{x:i+2*s/6,y:0},{x:i-s/6,y:-s},{x:s/6,y:-s}],o=mi(r,i,s,a);return o.attr(\"style\",e.style),Qe(e,o),e.intersect=function(l){return Ge.polygon(e,a,l)},r},RB=(t,e)=>{const{shapeSvg:r,bbox:n}=Er(t,e,void 0,!0),i=n.width+e.padding,s=n.height+e.padding,a=[{x:s/6,y:0},{x:i-s/6,y:0},{x:i+2*s/6,y:-s},{x:-2*s/6,y:-s}],o=mi(r,i,s,a);return o.attr(\"style\",e.style),Qe(e,o),e.intersect=function(l){return Ge.polygon(e,a,l)},r},FB=(t,e)=>{const{shapeSvg:r,bbox:n}=Er(t,e,void 0,!0),i=n.width+e.padding,s=n.height+e.padding,a=[{x:0,y:0},{x:i+s/2,y:0},{x:i,y:-s/2},{x:i+s/2,y:-s},{x:0,y:-s}],o=mi(r,i,s,a);return o.attr(\"style\",e.style),Qe(e,o),e.intersect=function(l){return Ge.polygon(e,a,l)},r},PB=(t,e)=>{const{shapeSvg:r,bbox:n}=Er(t,e,void 0,!0),i=n.width+e.padding,s=i/2,a=s/(2.5+i/50),o=n.height+a+e.padding,l=\"M 0,\"+a+\" a \"+s+\",\"+a+\" 0,0,0 \"+i+\" 0 a \"+s+\",\"+a+\" 0,0,0 \"+-i+\" 0 l 0,\"+o+\" a \"+s+\",\"+a+\" 0,0,0 \"+i+\" 0 l 0,\"+-o,u=r.attr(\"label-offset-y\",a).insert(\"path\",\":first-child\").attr(\"style\",e.style).attr(\"d\",l).attr(\"transform\",\"translate(\"+-i/2+\",\"+-(o/2+a)+\")\");return Qe(e,u),e.intersect=function(d){const f=Ge.rect(e,d),p=f.x-e.x;if(s!=0&&(Math.abs(p)<e.width/2||Math.abs(p)==e.width/2&&Math.abs(f.y-e.y)>e.height/2-a)){let g=a*a*(1-p*p/(s*s));g!=0&&(g=Math.sqrt(g)),g=a-g,d.y-e.y>0&&(g=-g),f.y+=g}return f},r},YB=(t,e)=>{const{shapeSvg:r,bbox:n,halfPadding:i}=Er(t,e,\"node \"+e.classes,!0);B.trace(\"Classes = \",e.classes);const s=r.insert(\"rect\",\":first-child\"),a=n.width+e.padding,o=n.height+e.padding;if(s.attr(\"class\",\"basic label-container\").attr(\"style\",e.style).attr(\"rx\",e.rx).attr(\"ry\",e.ry).attr(\"x\",-n.width/2-i).attr(\"y\",-n.height/2-i).attr(\"width\",a).attr(\"height\",o),e.props){const l=new Set(Object.keys(e.props));e.props.borders&&(Nm(s,e.props.borders,a,o),l.delete(\"borders\")),l.forEach(u=>{B.warn(`Unknown node property ${u}`)})}return Qe(e,s),e.intersect=function(l){return Ge.rect(e,l)},r},VB=(t,e)=>{const{shapeSvg:r}=Er(t,e,\"label\",!0);B.trace(\"Classes = \",e.classes);const n=r.insert(\"rect\",\":first-child\"),i=0,s=0;if(n.attr(\"width\",i).attr(\"height\",s),r.attr(\"class\",\"label edgeLabel\"),e.props){const a=new Set(Object.keys(e.props));e.props.borders&&(Nm(n,e.props.borders,i,s),a.delete(\"borders\")),a.forEach(o=>{B.warn(`Unknown node property ${o}`)})}return Qe(e,n),e.intersect=function(a){return Ge.rect(e,a)},r};function Nm(t,e,r,n){const i=[],s=o=>{i.push(o,0)},a=o=>{i.push(0,o)};e.includes(\"t\")?(B.debug(\"add top border\"),s(r)):a(r),e.includes(\"r\")?(B.debug(\"add right border\"),s(n)):a(n),e.includes(\"b\")?(B.debug(\"add bottom border\"),s(r)):a(r),e.includes(\"l\")?(B.debug(\"add left border\"),s(n)):a(n),t.attr(\"stroke-dasharray\",i.join(\" \"))}const UB=(t,e)=>{let r;e.classes?r=\"node \"+e.classes:r=\"node default\";const n=t.insert(\"g\").attr(\"class\",r).attr(\"id\",e.domId||e.id),i=n.insert(\"rect\",\":first-child\"),s=n.insert(\"line\"),a=n.insert(\"g\").attr(\"class\",\"label\"),o=e.labelText.flat?e.labelText.flat():e.labelText;let l=\"\";typeof o==\"object\"?l=o[0]:l=o,B.info(\"Label text abc79\",l,o,typeof o==\"object\");const u=a.node().appendChild(Vr(l,e.labelStyle,!0,!0));let d={width:0,height:0};if(pr($().flowchart.htmlLabels)){const k=u.children[0],T=St(u);d=k.getBoundingClientRect(),T.attr(\"width\",d.width),T.attr(\"height\",d.height)}B.info(\"Text 2\",o);const f=o.slice(1,o.length);let p=u.getBBox();const g=a.node().appendChild(Vr(f.join?f.join(\"<br/>\"):f,e.labelStyle,!0,!0));if(pr($().flowchart.htmlLabels)){const k=g.children[0],T=St(g);d=k.getBoundingClientRect(),T.attr(\"width\",d.width),T.attr(\"height\",d.height)}const b=e.padding/2;return St(g).attr(\"transform\",\"translate( \"+(d.width>p.width?0:(p.width-d.width)/2)+\", \"+(p.height+b+5)+\")\"),St(u).attr(\"transform\",\"translate( \"+(d.width<p.width?0:-(p.width-d.width)/2)+\", \"+0+\")\"),d=a.node().getBBox(),a.attr(\"transform\",\"translate(\"+-d.width/2+\", \"+(-d.height/2-b+3)+\")\"),i.attr(\"class\",\"outer title-state\").attr(\"x\",-d.width/2-b).attr(\"y\",-d.height/2-b).attr(\"width\",d.width+e.padding).attr(\"height\",d.height+e.padding),s.attr(\"class\",\"divider\").attr(\"x1\",-d.width/2-b).attr(\"x2\",d.width/2+b).attr(\"y1\",-d.height/2-b+p.height+b).attr(\"y2\",-d.height/2-b+p.height+b),Qe(e,i),e.intersect=function(k){return Ge.rect(e,k)},n},zB=(t,e)=>{const{shapeSvg:r,bbox:n}=Er(t,e,void 0,!0),i=n.height+e.padding,s=n.width+i/4+e.padding,a=r.insert(\"rect\",\":first-child\").attr(\"style\",e.style).attr(\"rx\",i/2).attr(\"ry\",i/2).attr(\"x\",-s/2).attr(\"y\",-i/2).attr(\"width\",s).attr(\"height\",i);return Qe(e,a),e.intersect=function(o){return Ge.rect(e,o)},r},WB=(t,e)=>{const{shapeSvg:r,bbox:n,halfPadding:i}=Er(t,e,void 0,!0),s=r.insert(\"circle\",\":first-child\");return s.attr(\"style\",e.style).attr(\"rx\",e.rx).attr(\"ry\",e.ry).attr(\"r\",n.width/2+i).attr(\"width\",n.width+e.padding).attr(\"height\",n.height+e.padding),B.info(\"Circle main\"),Qe(e,s),e.intersect=function(a){return B.info(\"Circle intersect\",e,n.width/2+i,a),Ge.circle(e,n.width/2+i,a)},r},HB=(t,e)=>{const{shapeSvg:r,bbox:n,halfPadding:i}=Er(t,e,void 0,!0),s=5,a=r.insert(\"g\",\":first-child\"),o=a.insert(\"circle\"),l=a.insert(\"circle\");return o.attr(\"style\",e.style).attr(\"rx\",e.rx).attr(\"ry\",e.ry).attr(\"r\",n.width/2+i+s).attr(\"width\",n.width+e.padding+s*2).attr(\"height\",n.height+e.padding+s*2),l.attr(\"style\",e.style).attr(\"rx\",e.rx).attr(\"ry\",e.ry).attr(\"r\",n.width/2+i).attr(\"width\",n.width+e.padding).attr(\"height\",n.height+e.padding),B.info(\"DoubleCircle main\"),Qe(e,o),e.intersect=function(u){return B.info(\"DoubleCircle intersect\",e,n.width/2+i+s,u),Ge.circle(e,n.width/2+i+s,u)},r},GB=(t,e)=>{const{shapeSvg:r,bbox:n}=Er(t,e,void 0,!0),i=n.width+e.padding,s=n.height+e.padding,a=[{x:0,y:0},{x:i,y:0},{x:i,y:-s},{x:0,y:-s},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-s},{x:-8,y:-s},{x:-8,y:0}],o=mi(r,i,s,a);return o.attr(\"style\",e.style),Qe(e,o),e.intersect=function(l){return Ge.polygon(e,a,l)},r},qB=(t,e)=>{const r=t.insert(\"g\").attr(\"class\",\"node default\").attr(\"id\",e.domId||e.id),n=r.insert(\"circle\",\":first-child\");return n.attr(\"class\",\"state-start\").attr(\"r\",7).attr(\"width\",14).attr(\"height\",14),Qe(e,n),e.intersect=function(i){return Ge.circle(e,7,i)},r},Bm=(t,e,r)=>{const n=t.insert(\"g\").attr(\"class\",\"node default\").attr(\"id\",e.domId||e.id);let i=70,s=10;r===\"LR\"&&(i=10,s=70);const a=n.append(\"rect\").attr(\"x\",-1*i/2).attr(\"y\",-1*s/2).attr(\"width\",i).attr(\"height\",s).attr(\"class\",\"fork-join\");return Qe(e,a),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(o){return Ge.rect(e,o)},n},Im={question:LB,rect:YB,labelRect:VB,rectWithTitle:UB,choice:DB,circle:WB,doublecircle:HB,stadium:zB,hexagon:MB,rect_left_inv_arrow:NB,lean_right:BB,lean_left:IB,trapezoid:OB,inv_trapezoid:RB,rect_right_inv_arrow:FB,cylinder:PB,start:qB,end:(t,e)=>{const r=t.insert(\"g\").attr(\"class\",\"node default\").attr(\"id\",e.domId||e.id),n=r.insert(\"circle\",\":first-child\"),i=r.insert(\"circle\",\":first-child\");return i.attr(\"class\",\"state-start\").attr(\"r\",7).attr(\"width\",14).attr(\"height\",14),n.attr(\"class\",\"state-end\").attr(\"r\",5).attr(\"width\",10).attr(\"height\",10),Qe(e,i),e.intersect=function(s){return Ge.circle(e,7,s)},r},note:AB,subroutine:GB,fork:Bm,join:Bm,class_box:(t,e)=>{const r=e.padding/2,n=4,i=8;let s;e.classes?s=\"node \"+e.classes:s=\"node default\";const a=t.insert(\"g\").attr(\"class\",s).attr(\"id\",e.domId||e.id),o=a.insert(\"rect\",\":first-child\"),l=a.insert(\"line\"),u=a.insert(\"line\");let d=0,f=n;const p=a.insert(\"g\").attr(\"class\",\"label\");let g=0;const b=e.classData.annotations&&e.classData.annotations[0],k=e.classData.annotations[0]?\"\\xAB\"+e.classData.annotations[0]+\"\\xBB\":\"\",T=p.node().appendChild(Vr(k,e.labelStyle,!0,!0));let L=T.getBBox();if(pr($().flowchart.htmlLabels)){const W=T.children[0],N=St(T);L=W.getBoundingClientRect(),N.attr(\"width\",L.width),N.attr(\"height\",L.height)}e.classData.annotations[0]&&(f+=L.height+n,d+=L.width);let E=e.classData.id;e.classData.type!==void 0&&e.classData.type!==\"\"&&($().flowchart.htmlLabels?E+=\"<\"+e.classData.type+\">\":E+=\"<\"+e.classData.type+\">\");const I=p.node().appendChild(Vr(E,e.labelStyle,!0,!0));St(I).attr(\"class\",\"classTitle\");let V=I.getBBox();if(pr($().flowchart.htmlLabels)){const W=I.children[0],N=St(I);V=W.getBoundingClientRect(),N.attr(\"width\",V.width),N.attr(\"height\",V.height)}f+=V.height+n,V.width>d&&(d=V.width);const H=[];e.classData.members.forEach(W=>{const N=cu(W);let D=N.displayText;$().flowchart.htmlLabels&&(D=D.replace(/</g,\"<\").replace(/>/g,\">\"));const w=p.node().appendChild(Vr(D,N.cssStyle?N.cssStyle:e.labelStyle,!0,!0));let v=w.getBBox();if(pr($().flowchart.htmlLabels)){const M=w.children[0],m=St(w);v=M.getBoundingClientRect(),m.attr(\"width\",v.width),m.attr(\"height\",v.height)}v.width>d&&(d=v.width),f+=v.height+n,H.push(w)}),f+=i;const G=[];if(e.classData.methods.forEach(W=>{const N=cu(W);let D=N.displayText;$().flowchart.htmlLabels&&(D=D.replace(/</g,\"<\").replace(/>/g,\">\"));const w=p.node().appendChild(Vr(D,N.cssStyle?N.cssStyle:e.labelStyle,!0,!0));let v=w.getBBox();if(pr($().flowchart.htmlLabels)){const M=w.children[0],m=St(w);v=M.getBoundingClientRect(),m.attr(\"width\",v.width),m.attr(\"height\",v.height)}v.width>d&&(d=v.width),f+=v.height+n,G.push(w)}),f+=i,b){let W=(d-L.width)/2;St(T).attr(\"transform\",\"translate( \"+(-1*d/2+W)+\", \"+-1*f/2+\")\"),g=L.height+n}let Y=(d-V.width)/2;return St(I).attr(\"transform\",\"translate( \"+(-1*d/2+Y)+\", \"+(-1*f/2+g)+\")\"),g+=V.height+n,l.attr(\"class\",\"divider\").attr(\"x1\",-d/2-r).attr(\"x2\",d/2+r).attr(\"y1\",-f/2-r+i+g).attr(\"y2\",-f/2-r+i+g),g+=i,H.forEach(W=>{St(W).attr(\"transform\",\"translate( \"+-d/2+\", \"+(-1*f/2+g+i/2)+\")\"),g+=V.height+n}),g+=i,u.attr(\"class\",\"divider\").attr(\"x1\",-d/2-r).attr(\"x2\",d/2+r).attr(\"y1\",-f/2-r+i+g).attr(\"y2\",-f/2-r+i+g),g+=i,G.forEach(W=>{St(W).attr(\"transform\",\"translate( \"+-d/2+\", \"+(-1*f/2+g)+\")\"),g+=V.height+n}),o.attr(\"class\",\"outer title-state\").attr(\"x\",-d/2-r).attr(\"y\",-(f/2)-r).attr(\"width\",d+e.padding).attr(\"height\",f+e.padding),Qe(e,o),e.intersect=function(W){return Ge.rect(e,W)},a}};let Ca={};const jB=(t,e,r)=>{let n,i;if(e.link){let s;$().securityLevel===\"sandbox\"?s=\"_top\":e.linkTarget&&(s=e.linkTarget||\"_blank\"),n=t.insert(\"svg:a\").attr(\"xlink:href\",e.link).attr(\"target\",s),i=Im[e.shape](n,e,r)}else i=Im[e.shape](t,e,r),n=i;e.tooltip&&i.attr(\"title\",e.tooltip),e.class&&i.attr(\"class\",\"node default \"+e.class),Ca[e.id]=n,e.haveCallback&&Ca[e.id].attr(\"class\",Ca[e.id].attr(\"class\")+\" clickable\")},$B=(t,e)=>{Ca[e.id]=t},XB=()=>{Ca={}},Om=t=>{const e=Ca[t.id];B.trace(\"Transforming node\",t.diff,t,\"translate(\"+(t.x-t.width/2-5)+\", \"+t.width/2+\")\");const r=8,n=t.diff||0;return t.clusterNode?e.attr(\"transform\",\"translate(\"+(t.x+n-t.width/2)+\", \"+(t.y-t.height/2-r)+\")\"):e.attr(\"transform\",\"translate(\"+t.x+\", \"+t.y+\")\"),n},KB={rect:(t,e)=>{B.trace(\"Creating subgraph rect for \",e.id,e);const r=t.insert(\"g\").attr(\"class\",\"cluster\"+(e.class?\" \"+e.class:\"\")).attr(\"id\",e.id),n=r.insert(\"rect\",\":first-child\"),i=r.insert(\"g\").attr(\"class\",\"cluster-label\"),s=i.node().appendChild(Vr(e.labelText,e.labelStyle,void 0,!0));let a=s.getBBox();if(pr($().flowchart.htmlLabels)){const f=s.children[0],p=St(s);a=f.getBoundingClientRect(),p.attr(\"width\",a.width),p.attr(\"height\",a.height)}const o=0*e.padding,l=o/2,u=e.width<=a.width+o?a.width+o:e.width;e.width<=a.width+o?e.diff=(a.width-e.width)/2-e.padding/2:e.diff=-e.padding/2,B.trace(\"Data \",e,JSON.stringify(e)),n.attr(\"style\",e.style).attr(\"rx\",e.rx).attr(\"ry\",e.ry).attr(\"x\",e.x-u/2).attr(\"y\",e.y-e.height/2-l).attr(\"width\",u).attr(\"height\",e.height+o),i.attr(\"transform\",\"translate(\"+(e.x-a.width/2)+\", \"+(e.y-e.height/2)+\")\");const d=n.node().getBBox();return e.width=d.width,e.height=d.height,e.intersect=function(f){return Yo(e,f)},r},roundedWithTitle:(t,e)=>{const r=t.insert(\"g\").attr(\"class\",e.classes).attr(\"id\",e.id),n=r.insert(\"rect\",\":first-child\"),i=r.insert(\"g\").attr(\"class\",\"cluster-label\"),s=r.append(\"rect\"),a=i.node().appendChild(Vr(e.labelText,e.labelStyle,void 0,!0));let o=a.getBBox();if(pr($().flowchart.htmlLabels)){const p=a.children[0],g=St(a);o=p.getBoundingClientRect(),g.attr(\"width\",o.width),g.attr(\"height\",o.height)}o=a.getBBox();const l=0*e.padding,u=l/2,d=e.width<=o.width+e.padding?o.width+e.padding:e.width;e.width<=o.width+e.padding?e.diff=(o.width+e.padding*0-e.width)/2:e.diff=-e.padding/2,n.attr(\"class\",\"outer\").attr(\"x\",e.x-d/2-u).attr(\"y\",e.y-e.height/2-u).attr(\"width\",d+l).attr(\"height\",e.height+l),s.attr(\"class\",\"inner\").attr(\"x\",e.x-d/2-u).attr(\"y\",e.y-e.height/2-u+o.height-1).attr(\"width\",d+l).attr(\"height\",e.height+l-o.height-3),i.attr(\"transform\",\"translate(\"+(e.x-o.width/2)+\", \"+(e.y-e.height/2-e.padding/3+(pr($().flowchart.htmlLabels)?5:3))+\")\");const f=n.node().getBBox();return e.height=f.height,e.intersect=function(p){return Yo(e,p)},r},noteGroup:(t,e)=>{const r=t.insert(\"g\").attr(\"class\",\"note-cluster\").attr(\"id\",e.id),n=r.insert(\"rect\",\":first-child\"),i=0*e.padding,s=i/2;n.attr(\"rx\",e.rx).attr(\"ry\",e.ry).attr(\"x\",e.x-e.width/2-s).attr(\"y\",e.y-e.height/2-s).attr(\"width\",e.width+i).attr(\"height\",e.height+i).attr(\"fill\",\"none\");const a=n.node().getBBox();return e.width=a.width,e.height=a.height,e.intersect=function(o){return Yo(e,o)},r},divider:(t,e)=>{const r=t.insert(\"g\").attr(\"class\",e.classes).attr(\"id\",e.id),n=r.insert(\"rect\",\":first-child\"),i=0*e.padding,s=i/2;n.attr(\"class\",\"divider\").attr(\"x\",e.x-e.width/2-s).attr(\"y\",e.y-e.height/2).attr(\"width\",e.width+i).attr(\"height\",e.height+i);const a=n.node().getBBox();return e.width=a.width,e.height=a.height,e.diff=-e.padding/2,e.intersect=function(o){return Yo(e,o)},r}};let Rm={};const ZB=(t,e)=>{B.trace(\"Inserting cluster\");const r=e.shape||\"rect\";Rm[e.id]=KB[r](t,e)},QB=()=>{Rm={}};let pu={},br={};const JB=()=>{pu={},br={}},tI=(t,e)=>{const r=Vr(e.label,e.labelStyle),n=t.insert(\"g\").attr(\"class\",\"edgeLabel\"),i=n.insert(\"g\").attr(\"class\",\"label\");i.node().appendChild(r);let s=r.getBBox();if(pr($().flowchart.htmlLabels)){const o=r.children[0],l=St(r);s=o.getBoundingClientRect(),l.attr(\"width\",s.width),l.attr(\"height\",s.height)}i.attr(\"transform\",\"translate(\"+-s.width/2+\", \"+-s.height/2+\")\"),pu[e.id]=n,e.width=s.width,e.height=s.height;let a;if(e.startLabelLeft){const o=Vr(e.startLabelLeft,e.labelStyle),l=t.insert(\"g\").attr(\"class\",\"edgeTerminals\"),u=l.insert(\"g\").attr(\"class\",\"inner\");a=u.node().appendChild(o);const d=o.getBBox();u.attr(\"transform\",\"translate(\"+-d.width/2+\", \"+-d.height/2+\")\"),br[e.id]||(br[e.id]={}),br[e.id].startLeft=l,gu(a,e.startLabelLeft)}if(e.startLabelRight){const o=Vr(e.startLabelRight,e.labelStyle),l=t.insert(\"g\").attr(\"class\",\"edgeTerminals\"),u=l.insert(\"g\").attr(\"class\",\"inner\");a=l.node().appendChild(o),u.node().appendChild(o);const d=o.getBBox();u.attr(\"transform\",\"translate(\"+-d.width/2+\", \"+-d.height/2+\")\"),br[e.id]||(br[e.id]={}),br[e.id].startRight=l,gu(a,e.startLabelRight)}if(e.endLabelLeft){const o=Vr(e.endLabelLeft,e.labelStyle),l=t.insert(\"g\").attr(\"class\",\"edgeTerminals\"),u=l.insert(\"g\").attr(\"class\",\"inner\");a=u.node().appendChild(o);const d=o.getBBox();u.attr(\"transform\",\"translate(\"+-d.width/2+\", \"+-d.height/2+\")\"),l.node().appendChild(o),br[e.id]||(br[e.id]={}),br[e.id].endLeft=l,gu(a,e.endLabelLeft)}if(e.endLabelRight){const o=Vr(e.endLabelRight,e.labelStyle),l=t.insert(\"g\").attr(\"class\",\"edgeTerminals\"),u=l.insert(\"g\").attr(\"class\",\"inner\");a=u.node().appendChild(o);const d=o.getBBox();u.attr(\"transform\",\"translate(\"+-d.width/2+\", \"+-d.height/2+\")\"),l.node().appendChild(o),br[e.id]||(br[e.id]={}),br[e.id].endRight=l,gu(a,e.endLabelRight)}};function gu(t,e){$().flowchart.htmlLabels&&t&&(t.style.width=e.length*9+\"px\",t.style.height=\"12px\")}const eI=(t,e)=>{B.info(\"Moving label abc78 \",t.id,t.label,pu[t.id]);let r=e.updatedPath?e.updatedPath:e.originalPath;if(t.label){const n=pu[t.id];let i=t.x,s=t.y;if(r){const a=ge.calcLabelPosition(r);B.info(\"Moving label \"+t.label+\" from (\",i,\",\",s,\") to (\",a.x,\",\",a.y,\") abc78\"),e.updatedPath&&(i=a.x,s=a.y)}n.attr(\"transform\",\"translate(\"+i+\", \"+s+\")\")}if(t.startLabelLeft){const n=br[t.id].startLeft;let i=t.x,s=t.y;if(r){const a=ge.calcTerminalLabelPosition(t.arrowTypeStart?10:0,\"start_left\",r);i=a.x,s=a.y}n.attr(\"transform\",\"translate(\"+i+\", \"+s+\")\")}if(t.startLabelRight){const n=br[t.id].startRight;let i=t.x,s=t.y;if(r){const a=ge.calcTerminalLabelPosition(t.arrowTypeStart?10:0,\"start_right\",r);i=a.x,s=a.y}n.attr(\"transform\",\"translate(\"+i+\", \"+s+\")\")}if(t.endLabelLeft){const n=br[t.id].endLeft;let i=t.x,s=t.y;if(r){const a=ge.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,\"end_left\",r);i=a.x,s=a.y}n.attr(\"transform\",\"translate(\"+i+\", \"+s+\")\")}if(t.endLabelRight){const n=br[t.id].endRight;let i=t.x,s=t.y;if(r){const a=ge.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,\"end_right\",r);i=a.x,s=a.y}n.attr(\"transform\",\"translate(\"+i+\", \"+s+\")\")}},rI=(t,e)=>{const r=t.x,n=t.y,i=Math.abs(e.x-r),s=Math.abs(e.y-n),a=t.width/2,o=t.height/2;return i>=a||s>=o},nI=(t,e,r)=>{B.warn(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(e)}\n insidePoint : ${JSON.stringify(r)}\n node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);const n=t.x,i=t.y,s=Math.abs(n-r.x),a=t.width/2;let o=r.x<e.x?a-s:a+s;const l=t.height/2,u=Math.abs(e.y-r.y),d=Math.abs(e.x-r.x);if(Math.abs(i-e.y)*a>Math.abs(n-e.x)*l){let f=r.y<e.y?e.y-l-i:i-l-e.y;o=d*f/u;const p={x:r.x<e.x?r.x+o:r.x-d+o,y:r.y<e.y?r.y+u-f:r.y-u+f};return o===0&&(p.x=e.x,p.y=e.y),d===0&&(p.x=e.x),u===0&&(p.y=e.y),B.warn(`abc89 topp/bott calc, Q ${u}, q ${f}, R ${d}, r ${o}`,p),p}else{r.x<e.x?o=e.x-a-n:o=n-a-e.x;let f=u*o/d,p=r.x<e.x?r.x+d-o:r.x-d+o,g=r.y<e.y?r.y+f:r.y-f;return B.warn(`sides calc abc89, Q ${u}, q ${f}, R ${d}, r ${o}`,{_x:p,_y:g}),o===0&&(p=e.x,g=e.y),d===0&&(p=e.x),u===0&&(g=e.y),{x:p,y:g}}},Fm=(t,e)=>{B.warn(\"abc88 cutPathAtIntersect\",t,e);let r=[],n=t[0],i=!1;return t.forEach(s=>{if(B.info(\"abc88 checking point\",s,e),!rI(e,s)&&!i){const a=nI(e,n,s);B.warn(\"abc88 inside\",s,n,a),B.warn(\"abc88 intersection\",a);let o=!1;r.forEach(l=>{o=o||l.x===a.x&&l.y===a.y}),r.some(l=>l.x===a.x&&l.y===a.y)?B.warn(\"abc88 no intersect\",a,r):r.push(a),i=!0}else B.warn(\"abc88 outside\",s,n),n=s,i||r.push(s)}),B.warn(\"abc88 returning points\",r),r},iI=function(t,e,r,n,i,s){let a=r.points,o=!1;const l=s.node(e.v);var u=s.node(e.w);B.info(\"abc88 InsertEdge: \",r),u.intersect&&l.intersect&&(a=a.slice(1,r.points.length-1),a.unshift(l.intersect(a[0])),B.info(\"Last point\",a[a.length-1],u,u.intersect(a[a.length-1])),a.push(u.intersect(a[a.length-1]))),r.toCluster&&(B.info(\"to cluster abc88\",n[r.toCluster]),a=Fm(r.points,n[r.toCluster].node),o=!0),r.fromCluster&&(B.info(\"from cluster abc88\",n[r.fromCluster]),a=Fm(a.reverse(),n[r.fromCluster].node).reverse(),o=!0);const d=a.filter(L=>!Number.isNaN(L.y));let f;i===\"graph\"||i===\"flowchart\"?f=r.curve||ta:f=ta;const p=Js().x(function(L){return L.x}).y(function(L){return L.y}).curve(f);let g;switch(r.thickness){case\"normal\":g=\"edge-thickness-normal\";break;case\"thick\":g=\"edge-thickness-thick\";break;default:g=\"\"}switch(r.pattern){case\"solid\":g+=\" edge-pattern-solid\";break;case\"dotted\":g+=\" edge-pattern-dotted\";break;case\"dashed\":g+=\" edge-pattern-dashed\";break}const b=t.append(\"path\").attr(\"d\",p(d)).attr(\"id\",r.id).attr(\"class\",\" \"+g+(r.classes?\" \"+r.classes:\"\")).attr(\"style\",r.style);let k=\"\";switch(($().flowchart.arrowMarkerAbsolute||$().state.arrowMarkerAbsolute)&&(k=window.location.protocol+\"//\"+window.location.host+window.location.pathname+window.location.search,k=k.replace(/\\(/g,\"\\\\(\"),k=k.replace(/\\)/g,\"\\\\)\")),B.info(\"arrowTypeStart\",r.arrowTypeStart),B.info(\"arrowTypeEnd\",r.arrowTypeEnd),r.arrowTypeStart){case\"arrow_cross\":b.attr(\"marker-start\",\"url(\"+k+\"#\"+i+\"-crossStart)\");break;case\"arrow_point\":b.attr(\"marker-start\",\"url(\"+k+\"#\"+i+\"-pointStart)\");break;case\"arrow_barb\":b.attr(\"marker-start\",\"url(\"+k+\"#\"+i+\"-barbStart)\");break;case\"arrow_circle\":b.attr(\"marker-start\",\"url(\"+k+\"#\"+i+\"-circleStart)\");break;case\"aggregation\":b.attr(\"marker-start\",\"url(\"+k+\"#\"+i+\"-aggregationStart)\");break;case\"extension\":b.attr(\"marker-start\",\"url(\"+k+\"#\"+i+\"-extensionStart)\");break;case\"composition\":b.attr(\"marker-start\",\"url(\"+k+\"#\"+i+\"-compositionStart)\");break;case\"dependency\":b.attr(\"marker-start\",\"url(\"+k+\"#\"+i+\"-dependencyStart)\");break;case\"lollipop\":b.attr(\"marker-start\",\"url(\"+k+\"#\"+i+\"-lollipopStart)\");break}switch(r.arrowTypeEnd){case\"arrow_cross\":b.attr(\"marker-end\",\"url(\"+k+\"#\"+i+\"-crossEnd)\");break;case\"arrow_point\":b.attr(\"marker-end\",\"url(\"+k+\"#\"+i+\"-pointEnd)\");break;case\"arrow_barb\":b.attr(\"marker-end\",\"url(\"+k+\"#\"+i+\"-barbEnd)\");break;case\"arrow_circle\":b.attr(\"marker-end\",\"url(\"+k+\"#\"+i+\"-circleEnd)\");break;case\"aggregation\":b.attr(\"marker-end\",\"url(\"+k+\"#\"+i+\"-aggregationEnd)\");break;case\"extension\":b.attr(\"marker-end\",\"url(\"+k+\"#\"+i+\"-extensionEnd)\");break;case\"composition\":b.attr(\"marker-end\",\"url(\"+k+\"#\"+i+\"-compositionEnd)\");break;case\"dependency\":b.attr(\"marker-end\",\"url(\"+k+\"#\"+i+\"-dependencyEnd)\");break;case\"lollipop\":b.attr(\"marker-end\",\"url(\"+k+\"#\"+i+\"-lollipopEnd)\");break}let T={};return o&&(T.updatedPath=a),T.originalPath=r.points,T},Pm=(t,e,r,n)=>{B.info(\"Graph in recursive render: XXX\",yi(e),n);const i=e.graph().rankdir;B.trace(\"Dir in recursive render - dir:\",i);const s=t.insert(\"g\").attr(\"class\",\"root\");e.nodes()?B.info(\"Recursive render XXX\",e.nodes()):B.info(\"No nodes found for\",e),e.edges().length>0&&B.trace(\"Recursive edges\",e.edge(e.edges()[0]));const a=s.insert(\"g\").attr(\"class\",\"clusters\"),o=s.insert(\"g\").attr(\"class\",\"edgePaths\"),l=s.insert(\"g\").attr(\"class\",\"edgeLabels\"),u=s.insert(\"g\").attr(\"class\",\"nodes\");e.nodes().forEach(function(f){const p=e.node(f);if(n!==void 0){const g=JSON.parse(JSON.stringify(n.clusterData));B.info(\"Setting data for cluster XXX (\",f,\") \",g,n),e.setNode(n.id,g),e.parent(f)||(B.trace(\"Setting parent\",f,n.id),e.setParent(f,n.id,g))}if(B.info(\"(Insert) Node XXX\"+f+\": \"+JSON.stringify(e.node(f))),p&&p.clusterNode){B.info(\"Cluster identified\",f,p.width,e.node(f));const g=Pm(u,p.graph,r,e.node(f)),b=g.elem;Qe(p,b),p.diff=g.diff||0,B.info(\"Node bounds (abc123)\",f,p,p.width,p.x,p.y),$B(b,p),B.warn(\"Recursive render complete \",b,p)}else e.children(f).length>0?(B.info(\"Cluster - the non recursive path XXX\",f,p.id,p,e),B.info(Po(p.id,e)),Te[p.id]={id:Po(p.id,e),node:p}):(B.info(\"Node - the non recursive path\",f,p.id,p),jB(u,e.node(f),i))}),e.edges().forEach(function(f){const p=e.edge(f.v,f.w,f.name);B.info(\"Edge \"+f.v+\" -> \"+f.w+\": \"+JSON.stringify(f)),B.info(\"Edge \"+f.v+\" -> \"+f.w+\": \",f,\" \",JSON.stringify(e.edge(f))),B.info(\"Fix\",Te,\"ids:\",f.v,f.w,\"Translateing: \",Te[f.v],Te[f.w]),tI(l,p)}),e.edges().forEach(function(f){B.info(\"Edge \"+f.v+\" -> \"+f.w+\": \"+JSON.stringify(f))}),B.info(\"#############################################\"),B.info(\"### Layout ###\"),B.info(\"#############################################\"),B.info(e),Ea(e),B.info(\"Graph after layout:\",yi(e));let d=0;return wB(e).forEach(function(f){const p=e.node(f);B.info(\"Position \"+f+\": \"+JSON.stringify(e.node(f))),B.info(\"Position \"+f+\": (\"+p.x,\",\"+p.y,\") width: \",p.width,\" height: \",p.height),p&&p.clusterNode?Om(p):e.children(f).length>0?(ZB(a,p),Te[p.id].node=p):Om(p)}),e.edges().forEach(function(f){const p=e.edge(f);B.info(\"Edge \"+f.v+\" -> \"+f.w+\": \"+JSON.stringify(p),p);const g=iI(o,f,p,Te,r,e);eI(p,g)}),e.nodes().forEach(function(f){const p=e.node(f);B.info(f,p.type,p.diff),p.type===\"group\"&&(d=p.diff)}),{elem:s,diff:d}},v0=(t,e,r,n,i)=>{mB(t,r,n,i),XB(),JB(),QB(),xB(),B.warn(\"Graph at first:\",yi(e)),kB(e),B.warn(\"Graph after:\",yi(e)),Pm(t,e,n)},Ym=t=>he.sanitizeText(t,$());let Vm={dividerMargin:10,padding:5,textHeight:10};const sI=function(t,e,r,n){const i=Object.keys(t);B.info(\"keys:\",i),B.info(t),i.forEach(function(s){const a=t[s];let o=\"\";a.cssClasses.length>0&&(o=o+\" \"+a.cssClasses.join(\" \"));const l={labelStyle:\"\"};let u=a.text!==void 0?a.text:a.id,d=0,f=\"\";switch(a.type){case\"class\":f=\"class_box\";break;default:f=\"class_box\"}e.setNode(a.id,{labelStyle:l.labelStyle,shape:f,labelText:Ym(u),classData:a,rx:d,ry:d,class:o,style:l.style,id:a.id,domId:a.domId,tooltip:n.db.getTooltip(a.id)||\"\",haveCallback:a.haveCallback,link:a.link,width:a.type===\"group\"?500:void 0,type:a.type,padding:$().flowchart.padding}),B.info(\"setNode\",{labelStyle:l.labelStyle,shape:f,labelText:u,rx:d,ry:d,class:o,style:l.style,id:a.id,width:a.type===\"group\"?500:void 0,type:a.type,padding:$().flowchart.padding})})},aI=function(t,e,r,n){B.info(t),t.forEach(function(i,s){const a=i;let o=\"\";const l={labelStyle:\"\",style:\"\"};let u=a.text,d=0,f=\"note\";if(e.setNode(a.id,{labelStyle:l.labelStyle,shape:f,labelText:Ym(u),noteData:a,rx:d,ry:d,class:o,style:l.style,id:a.id,domId:a.id,tooltip:\"\",type:\"note\",padding:$().flowchart.padding}),B.info(\"setNode\",{labelStyle:l.labelStyle,shape:f,labelText:u,rx:d,ry:d,style:l.style,id:a.id,type:\"note\",padding:$().flowchart.padding}),!a.class||!(a.class in n))return;const p=r+s,g={};g.classes=\"relation\",g.pattern=\"dotted\",g.id=`edgeNote${p}`,g.arrowhead=\"none\",B.info(`Note edge: ${JSON.stringify(g)}, ${JSON.stringify(a)}`),g.startLabelRight=\"\",g.endLabelLeft=\"\",g.arrowTypeStart=\"none\",g.arrowTypeEnd=\"none\";let b=\"fill:none\",k=\"\";g.style=b,g.labelStyle=k,g.curve=bn(Vm.curve,Hr),e.setEdge(a.id,a.class,g,p)})},oI=function(t,e){const r=$().flowchart;let n=0;t.forEach(function(i){n++;const s={};s.classes=\"relation\",s.pattern=i.relation.lineType==1?\"dashed\":\"solid\",s.id=\"id\"+n,i.type===\"arrow_open\"?s.arrowhead=\"none\":s.arrowhead=\"normal\",B.info(s,i),s.startLabelRight=i.relationTitle1===\"none\"?\"\":i.relationTitle1,s.endLabelLeft=i.relationTitle2===\"none\"?\"\":i.relationTitle2,s.arrowTypeStart=Um(i.relation.type1),s.arrowTypeEnd=Um(i.relation.type2);let a=\"\",o=\"\";if(i.style!==void 0){const l=Vi(i.style);a=l.style,o=l.labelStyle}else a=\"fill:none\";s.style=a,s.labelStyle=o,i.interpolate!==void 0?s.curve=bn(i.interpolate,Hr):t.defaultInterpolate!==void 0?s.curve=bn(t.defaultInterpolate,Hr):s.curve=bn(r.curve,Hr),i.text=i.title,i.text===void 0?i.style!==void 0&&(s.arrowheadStyle=\"fill: #333\"):(s.arrowheadStyle=\"fill: #333\",s.labelpos=\"c\",$().flowchart.htmlLabels?(s.labelType=\"html\",s.label='<span class=\"edgeLabel\">'+i.text+\"</span>\"):(s.labelType=\"text\",s.label=i.text.replace(he.lineBreakRegex,`\n`),i.style===void 0&&(s.style=s.style||\"stroke: #333; stroke-width: 1.5px;fill:none\"),s.labelStyle=s.labelStyle.replace(\"color:\",\"fill:\"))),e.setEdge(i.id1,i.id2,s,n)})},lI=function(t){Object.keys(t).forEach(function(r){Vm[r]=t[r]})},cI=function(t,e,r,n){B.info(\"Drawing class - \",e);const i=$().flowchart,s=$().securityLevel;B.info(\"config:\",i);const a=i.nodeSpacing||50,o=i.rankSpacing||50,l=new sr({multigraph:!0,compound:!0}).setGraph({rankdir:n.db.getDirection(),nodesep:a,ranksep:o,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),u=n.db.getClasses(),d=n.db.getRelations(),f=n.db.getNotes();B.info(d),sI(u,l,e,n),oI(d,l),aI(f,l,d.length+1,u);let p;s===\"sandbox\"&&(p=St(\"#i\"+e));const g=St(s===\"sandbox\"?p.nodes()[0].contentDocument.body:\"body\"),b=g.select(`[id=\"${e}\"]`),k=g.select(\"#\"+e+\" g\");if(v0(k,l,[\"aggregation\",\"extension\",\"composition\",\"dependency\",\"lollipop\"],\"classDiagram\",e),ge.insertTitle(b,\"classTitleText\",i.titleTopMargin,n.db.getDiagramTitle()),Sc(l,b,i.diagramPadding,i.useMaxWidth),!i.htmlLabels){const T=s===\"sandbox\"?p.nodes()[0].contentDocument:document,L=T.querySelectorAll('[id=\"'+e+'\"] .edgeLabel .label');for(const E of L){const I=E.getBBox(),V=T.createElementNS(\"http://www.w3.org/2000/svg\",\"rect\");V.setAttribute(\"rx\",0),V.setAttribute(\"ry\",0),V.setAttribute(\"width\",I.width),V.setAttribute(\"height\",I.height),E.insertBefore(V,E.firstChild)}}};function Um(t){let e;switch(t){case 0:e=\"aggregation\";break;case 1:e=\"extension\";break;case 2:e=\"composition\";break;case 3:e=\"dependency\";break;case 4:e=\"lollipop\";break;default:e=\"none\"}return e}const uI={setConf:lI,draw:cI};var k0=function(){var t=function(N,D,w,v){for(w=w||{},v=N.length;v--;w[N[v]]=D);return w},e=[1,2],r=[1,5],n=[6,9,11,23,25,27,29,30,31,49],i=[1,17],s=[1,18],a=[1,19],o=[1,20],l=[1,21],u=[1,22],d=[1,25],f=[1,30],p=[1,31],g=[1,32],b=[1,33],k=[6,9,11,15,20,23,25,27,29,30,31,42,43,44,45,49],T=[1,45],L=[30,31,46,47],E=[4,6,9,11,23,25,27,29,30,31,49],I=[42,43,44,45],V=[22,37],H=[1,64],G={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,\":\":15,argDirective:16,entityName:17,relSpec:18,role:19,BLOCK_START:20,attributes:21,BLOCK_STOP:22,title:23,title_value:24,acc_title:25,acc_title_value:26,acc_descr:27,acc_descr_value:28,acc_descr_multiline_value:29,ALPHANUM:30,ENTITY_NAME:31,attribute:32,attributeType:33,attributeName:34,attributeKeyType:35,attributeComment:36,ATTRIBUTE_WORD:37,ATTRIBUTE_KEY:38,COMMENT:39,cardinality:40,relType:41,ZERO_OR_ONE:42,ZERO_OR_MORE:43,ONE_OR_MORE:44,ONLY_ONE:45,NON_IDENTIFYING:46,IDENTIFYING:47,WORD:48,open_directive:49,type_directive:50,arg_directive:51,close_directive:52,$accept:0,$end:1},terminals_:{2:\"error\",4:\"ER_DIAGRAM\",6:\"EOF\",9:\"SPACE\",11:\"NEWLINE\",15:\":\",20:\"BLOCK_START\",22:\"BLOCK_STOP\",23:\"title\",24:\"title_value\",25:\"acc_title\",26:\"acc_title_value\",27:\"acc_descr\",28:\"acc_descr_value\",29:\"acc_descr_multiline_value\",30:\"ALPHANUM\",31:\"ENTITY_NAME\",37:\"ATTRIBUTE_WORD\",38:\"ATTRIBUTE_KEY\",39:\"COMMENT\",42:\"ZERO_OR_ONE\",43:\"ZERO_OR_MORE\",44:\"ONE_OR_MORE\",45:\"ONLY_ONE\",46:\"NON_IDENTIFYING\",47:\"IDENTIFYING\",48:\"WORD\",49:\"open_directive\",50:\"type_directive\",51:\"arg_directive\",52:\"close_directive\"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,5],[10,4],[10,3],[10,1],[10,2],[10,2],[10,2],[10,1],[17,1],[17,1],[21,1],[21,2],[32,2],[32,3],[32,3],[32,4],[33,1],[34,1],[35,1],[36,1],[18,3],[40,1],[40,1],[40,1],[40,1],[41,1],[41,1],[19,1],[19,1],[19,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(D,w,v,M,m,Q,x){var ct=Q.length-1;switch(m){case 1:break;case 3:this.$=[];break;case 4:Q[ct-1].push(Q[ct]),this.$=Q[ct-1];break;case 5:case 6:this.$=Q[ct];break;case 7:case 8:this.$=[];break;case 12:M.addEntity(Q[ct-4]),M.addEntity(Q[ct-2]),M.addRelationship(Q[ct-4],Q[ct],Q[ct-2],Q[ct-3]);break;case 13:M.addEntity(Q[ct-3]),M.addAttributes(Q[ct-3],Q[ct-1]);break;case 14:M.addEntity(Q[ct-2]);break;case 15:M.addEntity(Q[ct]);break;case 16:case 17:this.$=Q[ct].trim(),M.setAccTitle(this.$);break;case 18:case 19:this.$=Q[ct].trim(),M.setAccDescription(this.$);break;case 20:case 41:this.$=Q[ct];break;case 21:case 39:case 40:this.$=Q[ct].replace(/\"/g,\"\");break;case 22:this.$=[Q[ct]];break;case 23:Q[ct].push(Q[ct-1]),this.$=Q[ct];break;case 24:this.$={attributeType:Q[ct-1],attributeName:Q[ct]};break;case 25:this.$={attributeType:Q[ct-2],attributeName:Q[ct-1],attributeKeyType:Q[ct]};break;case 26:this.$={attributeType:Q[ct-2],attributeName:Q[ct-1],attributeComment:Q[ct]};break;case 27:this.$={attributeType:Q[ct-3],attributeName:Q[ct-2],attributeKeyType:Q[ct-1],attributeComment:Q[ct]};break;case 28:case 29:case 30:this.$=Q[ct];break;case 31:this.$=Q[ct].replace(/\"/g,\"\");break;case 32:this.$={cardA:Q[ct],relType:Q[ct-1],cardB:Q[ct-2]};break;case 33:this.$=M.Cardinality.ZERO_OR_ONE;break;case 34:this.$=M.Cardinality.ZERO_OR_MORE;break;case 35:this.$=M.Cardinality.ONE_OR_MORE;break;case 36:this.$=M.Cardinality.ONLY_ONE;break;case 37:this.$=M.Identification.NON_IDENTIFYING;break;case 38:this.$=M.Identification.IDENTIFYING;break;case 42:M.parseDirective(\"%%{\",\"open_directive\");break;case 43:M.parseDirective(Q[ct],\"type_directive\");break;case 44:Q[ct]=Q[ct].trim().replace(/'/g,'\"'),M.parseDirective(Q[ct],\"arg_directive\");break;case 45:M.parseDirective(\"}%%\",\"close_directive\",\"er\");break}},table:[{3:1,4:e,7:3,12:4,49:r},{1:[3]},t(n,[2,3],{5:6}),{3:7,4:e,7:3,12:4,49:r},{13:8,50:[1,9]},{50:[2,42]},{6:[1,10],7:15,8:11,9:[1,12],10:13,11:[1,14],12:4,17:16,23:i,25:s,27:a,29:o,30:l,31:u,49:r},{1:[2,2]},{14:23,15:[1,24],52:d},t([15,52],[2,43]),t(n,[2,8],{1:[2,1]}),t(n,[2,4]),{7:15,10:26,12:4,17:16,23:i,25:s,27:a,29:o,30:l,31:u,49:r},t(n,[2,6]),t(n,[2,7]),t(n,[2,11]),t(n,[2,15],{18:27,40:29,20:[1,28],42:f,43:p,44:g,45:b}),{24:[1,34]},{26:[1,35]},{28:[1,36]},t(n,[2,19]),t(k,[2,20]),t(k,[2,21]),{11:[1,37]},{16:38,51:[1,39]},{11:[2,45]},t(n,[2,5]),{17:40,30:l,31:u},{21:41,22:[1,42],32:43,33:44,37:T},{41:46,46:[1,47],47:[1,48]},t(L,[2,33]),t(L,[2,34]),t(L,[2,35]),t(L,[2,36]),t(n,[2,16]),t(n,[2,17]),t(n,[2,18]),t(E,[2,9]),{14:49,52:d},{52:[2,44]},{15:[1,50]},{22:[1,51]},t(n,[2,14]),{21:52,22:[2,22],32:43,33:44,37:T},{34:53,37:[1,54]},{37:[2,28]},{40:55,42:f,43:p,44:g,45:b},t(I,[2,37]),t(I,[2,38]),{11:[1,56]},{19:57,30:[1,60],31:[1,59],48:[1,58]},t(n,[2,13]),{22:[2,23]},t(V,[2,24],{35:61,36:62,38:[1,63],39:H}),t([22,37,38,39],[2,29]),t([30,31],[2,32]),t(E,[2,10]),t(n,[2,12]),t(n,[2,39]),t(n,[2,40]),t(n,[2,41]),t(V,[2,25],{36:65,39:H}),t(V,[2,26]),t([22,37,39],[2,30]),t(V,[2,31]),t(V,[2,27])],defaultActions:{5:[2,42],7:[2,2],25:[2,45],39:[2,44],45:[2,28],52:[2,23]},parseError:function(D,w){if(w.recoverable)this.trace(D);else{var v=new Error(D);throw v.hash=w,v}},parse:function(D){var w=this,v=[0],M=[],m=[null],Q=[],x=this.table,ct=\"\",Dt=0,kt=0,j=2,ot=1,rt=Q.slice.call(arguments,1),nt=Object.create(this.lexer),ut={yy:{}};for(var _t in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_t)&&(ut.yy[_t]=this.yy[_t]);nt.setInput(D,ut.yy),ut.yy.lexer=nt,ut.yy.parser=this,typeof nt.yylloc>\"u\"&&(nt.yylloc={});var K=nt.yylloc;Q.push(K);var Ot=nt.options&&nt.options.ranges;typeof ut.yy.parseError==\"function\"?this.parseError=ut.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function P(){var et;return et=M.pop()||nt.lex()||ot,typeof et!=\"number\"&&(et instanceof Array&&(M=et,et=M.pop()),et=w.symbols_[et]||et),et}for(var z,X,F,O,A={},J,C,ht,U;;){if(X=v[v.length-1],this.defaultActions[X]?F=this.defaultActions[X]:((z===null||typeof z>\"u\")&&(z=P()),F=x[X]&&x[X][z]),typeof F>\"u\"||!F.length||!F[0]){var Yt=\"\";U=[];for(J in x[X])this.terminals_[J]&&J>j&&U.push(\"'\"+this.terminals_[J]+\"'\");nt.showPosition?Yt=\"Parse error on line \"+(Dt+1)+`:\n`+nt.showPosition()+`\nExpecting `+U.join(\", \")+\", got '\"+(this.terminals_[z]||z)+\"'\":Yt=\"Parse error on line \"+(Dt+1)+\": Unexpected \"+(z==ot?\"end of input\":\"'\"+(this.terminals_[z]||z)+\"'\"),this.parseError(Yt,{text:nt.match,token:this.terminals_[z]||z,line:nt.yylineno,loc:K,expected:U})}if(F[0]instanceof Array&&F.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+X+\", token: \"+z);switch(F[0]){case 1:v.push(z),m.push(nt.yytext),Q.push(nt.yylloc),v.push(F[1]),z=null,kt=nt.yyleng,ct=nt.yytext,Dt=nt.yylineno,K=nt.yylloc;break;case 2:if(C=this.productions_[F[1]][1],A.$=m[m.length-C],A._$={first_line:Q[Q.length-(C||1)].first_line,last_line:Q[Q.length-1].last_line,first_column:Q[Q.length-(C||1)].first_column,last_column:Q[Q.length-1].last_column},Ot&&(A._$.range=[Q[Q.length-(C||1)].range[0],Q[Q.length-1].range[1]]),O=this.performAction.apply(A,[ct,kt,Dt,ut.yy,F[1],m,Q].concat(rt)),typeof O<\"u\")return O;C&&(v=v.slice(0,-1*C*2),m=m.slice(0,-1*C),Q=Q.slice(0,-1*C)),v.push(this.productions_[F[1]][0]),m.push(A.$),Q.push(A._$),ht=x[v[v.length-2]][v[v.length-1]],v.push(ht);break;case 3:return!0}}return!0}},Y=function(){var N={EOF:1,parseError:function(w,v){if(this.yy.parser)this.yy.parser.parseError(w,v);else throw new Error(w)},setInput:function(D,w){return this.yy=w||this.yy||{},this._input=D,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var D=this._input[0];this.yytext+=D,this.yyleng++,this.offset++,this.match+=D,this.matched+=D;var w=D.match(/(?:\\r\\n?|\\n).*/g);return w?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),D},unput:function(D){var w=D.length,v=D.split(/(?:\\r\\n?|\\n)/g);this._input=D+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-w),this.offset-=w;var M=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),v.length-1&&(this.yylineno-=v.length-1);var m=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:v?(v.length===M.length?this.yylloc.first_column:0)+M[M.length-v.length].length-v[0].length:this.yylloc.first_column-w},this.options.ranges&&(this.yylloc.range=[m[0],m[0]+this.yyleng-w]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno});return this},less:function(D){this.unput(this.match.slice(D))},pastInput:function(){var D=this.matched.substr(0,this.matched.length-this.match.length);return(D.length>20?\"...\":\"\")+D.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var D=this.match;return D.length<20&&(D+=this._input.substr(0,20-D.length)),(D.substr(0,20)+(D.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var D=this.pastInput(),w=new Array(D.length+1).join(\"-\");return D+this.upcomingInput()+`\n`+w+\"^\"},test_match:function(D,w){var v,M,m;if(this.options.backtrack_lexer&&(m={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(m.yylloc.range=this.yylloc.range.slice(0))),M=D[0].match(/(?:\\r\\n?|\\n).*/g),M&&(this.yylineno+=M.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:M?M[M.length-1].length-M[M.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+D[0].length},this.yytext+=D[0],this.match+=D[0],this.matches=D,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(D[0].length),this.matched+=D[0],v=this.performAction.call(this,this.yy,this,w,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),v)return v;if(this._backtrack){for(var Q in m)this[Q]=m[Q];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var D,w,v,M;this._more||(this.yytext=\"\",this.match=\"\");for(var m=this._currentRules(),Q=0;Q<m.length;Q++)if(v=this._input.match(this.rules[m[Q]]),v&&(!w||v[0].length>w[0].length)){if(w=v,M=Q,this.options.backtrack_lexer){if(D=this.test_match(v,m[Q]),D!==!1)return D;if(this._backtrack){w=!1;continue}else return!1}else if(!this.options.flex)break}return w?(D=this.test_match(w,m[M]),D!==!1?D:!1):this._input===\"\"?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. Unrecognized text.\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var w=this.next();return w||this.lex()},begin:function(w){this.conditionStack.push(w)},popState:function(){var w=this.conditionStack.length-1;return w>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(w){return w=this.conditionStack.length-1-Math.abs(w||0),w>=0?this.conditionStack[w]:\"INITIAL\"},pushState:function(w){this.begin(w)},stateStackSize:function(){return this.conditionStack.length},options:{\"case-insensitive\":!0},performAction:function(w,v,M,m){switch(M){case 0:return this.begin(\"acc_title\"),25;case 1:return this.popState(),\"acc_title_value\";case 2:return this.begin(\"acc_descr\"),27;case 3:return this.popState(),\"acc_descr_value\";case 4:this.begin(\"acc_descr_multiline\");break;case 5:this.popState();break;case 6:return\"acc_descr_multiline_value\";case 7:return this.begin(\"open_directive\"),49;case 8:return this.begin(\"type_directive\"),50;case 9:return this.popState(),this.begin(\"arg_directive\"),15;case 10:return this.popState(),this.popState(),52;case 11:return 51;case 12:break;case 13:break;case 14:return 11;case 15:break;case 16:return 9;case 17:return 31;case 18:return 48;case 19:return 4;case 20:return this.begin(\"block\"),20;case 21:break;case 22:return 38;case 23:return 37;case 24:return 37;case 25:return 39;case 26:break;case 27:return this.popState(),22;case 28:return v.yytext[0];case 29:return 42;case 30:return 44;case 31:return 44;case 32:return 44;case 33:return 42;case 34:return 42;case 35:return 43;case 36:return 43;case 37:return 43;case 38:return 43;case 39:return 43;case 40:return 44;case 41:return 43;case 42:return 44;case 43:return 45;case 44:return 45;case 45:return 45;case 46:return 45;case 47:return 42;case 48:return 43;case 49:return 44;case 50:return 46;case 51:return 47;case 52:return 47;case 53:return 46;case 54:return 46;case 55:return 46;case 56:return 30;case 57:return v.yytext[0];case 58:return 6}},rules:[/^(?:accTitle\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*\\{\\s*)/i,/^(?:[\\}])/i,/^(?:[^\\}]*)/i,/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[\\n]+)/i,/^(?:\\s+)/i,/^(?:[\\s]+)/i,/^(?:\"[^\"%\\r\\n\\v\\b\\\\]+\")/i,/^(?:\"[^\"]*\")/i,/^(?:erDiagram\\b)/i,/^(?:\\{)/i,/^(?:\\s+)/i,/^(?:\\b((?:PK)|(?:FK))\\b)/i,/^(?:(.*?)[~](.*?)*[~])/i,/^(?:[A-Za-z][A-Za-z0-9\\-_\\[\\]]*)/i,/^(?:\"[^\"]*\")/i,/^(?:[\\n]+)/i,/^(?:\\})/i,/^(?:.)/i,/^(?:one or zero\\b)/i,/^(?:one or more\\b)/i,/^(?:one or many\\b)/i,/^(?:1\\+)/i,/^(?:\\|o\\b)/i,/^(?:zero or one\\b)/i,/^(?:zero or more\\b)/i,/^(?:zero or many\\b)/i,/^(?:0\\+)/i,/^(?:\\}o\\b)/i,/^(?:many\\(0\\))/i,/^(?:many\\(1\\))/i,/^(?:many\\b)/i,/^(?:\\}\\|)/i,/^(?:one\\b)/i,/^(?:only one\\b)/i,/^(?:1\\b)/i,/^(?:\\|\\|)/i,/^(?:o\\|)/i,/^(?:o\\{)/i,/^(?:\\|\\{)/i,/^(?:\\.\\.)/i,/^(?:--)/i,/^(?:to\\b)/i,/^(?:optionally to\\b)/i,/^(?:\\.-)/i,/^(?:-\\.)/i,/^(?:[A-Za-z][A-Za-z0-9\\-_]*)/i,/^(?:.)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},open_directive:{rules:[8],inclusive:!1},type_directive:{rules:[9,10],inclusive:!1},arg_directive:{rules:[10,11],inclusive:!1},block:{rules:[21,22,23,24,25,26,27,28],inclusive:!1},INITIAL:{rules:[0,2,4,7,12,13,14,15,16,17,18,19,20,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58],inclusive:!0}}};return N}();G.lexer=Y;function W(){this.yy={}}return W.prototype=G,G.Parser=W,new W}();k0.parser=k0;const hI=k0,dI=t=>t.match(/^\\s*erDiagram/)!==null;let Vo={},w0=[];const fI={ZERO_OR_ONE:\"ZERO_OR_ONE\",ZERO_OR_MORE:\"ZERO_OR_MORE\",ONE_OR_MORE:\"ONE_OR_MORE\",ONLY_ONE:\"ONLY_ONE\"},pI={NON_IDENTIFYING:\"NON_IDENTIFYING\",IDENTIFYING:\"IDENTIFYING\"},gI=function(t,e,r){ze.parseDirective(this,t,e,r)},zm=function(t){return Vo[t]===void 0&&(Vo[t]={attributes:[]},B.info(\"Added new entity :\",t)),Vo[t]},yI={Cardinality:fI,Identification:pI,parseDirective:gI,getConfig:()=>$().er,addEntity:zm,addAttributes:function(t,e){let r=zm(t),n;for(n=e.length-1;n>=0;n--)r.attributes.push(e[n]),B.debug(\"Added attribute \",e[n].attributeName)},getEntities:()=>Vo,addRelationship:function(t,e,r,n){let i={entityA:t,roleA:e,entityB:r,relSpec:n};w0.push(i),B.debug(\"Added new relationship :\",i)},getRelationships:()=>w0,clear:function(){Vo={},w0=[],vn()},setAccTitle:nn,getAccTitle:kn,setAccDescription:wn,getAccDescription:Tn,setDiagramTitle:hi,getDiagramTitle:di},bi={ONLY_ONE_START:\"ONLY_ONE_START\",ONLY_ONE_END:\"ONLY_ONE_END\",ZERO_OR_ONE_START:\"ZERO_OR_ONE_START\",ZERO_OR_ONE_END:\"ZERO_OR_ONE_END\",ONE_OR_MORE_START:\"ONE_OR_MORE_START\",ONE_OR_MORE_END:\"ONE_OR_MORE_END\",ZERO_OR_MORE_START:\"ZERO_OR_MORE_START\",ZERO_OR_MORE_END:\"ZERO_OR_MORE_END\"},_i={ERMarkers:bi,insertMarkers:function(t,e){let r;t.append(\"defs\").append(\"marker\").attr(\"id\",bi.ONLY_ONE_START).attr(\"refX\",0).attr(\"refY\",9).attr(\"markerWidth\",18).attr(\"markerHeight\",18).attr(\"orient\",\"auto\").append(\"path\").attr(\"stroke\",e.stroke).attr(\"fill\",\"none\").attr(\"d\",\"M9,0 L9,18 M15,0 L15,18\"),t.append(\"defs\").append(\"marker\").attr(\"id\",bi.ONLY_ONE_END).attr(\"refX\",18).attr(\"refY\",9).attr(\"markerWidth\",18).attr(\"markerHeight\",18).attr(\"orient\",\"auto\").append(\"path\").attr(\"stroke\",e.stroke).attr(\"fill\",\"none\").attr(\"d\",\"M3,0 L3,18 M9,0 L9,18\"),r=t.append(\"defs\").append(\"marker\").attr(\"id\",bi.ZERO_OR_ONE_START).attr(\"refX\",0).attr(\"refY\",9).attr(\"markerWidth\",30).attr(\"markerHeight\",18).attr(\"orient\",\"auto\"),r.append(\"circle\").attr(\"stroke\",e.stroke).attr(\"fill\",\"white\").attr(\"cx\",21).attr(\"cy\",9).attr(\"r\",6),r.append(\"path\").attr(\"stroke\",e.stroke).attr(\"fill\",\"none\").attr(\"d\",\"M9,0 L9,18\"),r=t.append(\"defs\").append(\"marker\").attr(\"id\",bi.ZERO_OR_ONE_END).attr(\"refX\",30).attr(\"refY\",9).attr(\"markerWidth\",30).attr(\"markerHeight\",18).attr(\"orient\",\"auto\"),r.append(\"circle\").attr(\"stroke\",e.stroke).attr(\"fill\",\"white\").attr(\"cx\",9).attr(\"cy\",9).attr(\"r\",6),r.append(\"path\").attr(\"stroke\",e.stroke).attr(\"fill\",\"none\").attr(\"d\",\"M21,0 L21,18\"),t.append(\"defs\").append(\"marker\").attr(\"id\",bi.ONE_OR_MORE_START).attr(\"refX\",18).attr(\"refY\",18).attr(\"markerWidth\",45).attr(\"markerHeight\",36).attr(\"orient\",\"auto\").append(\"path\").attr(\"stroke\",e.stroke).attr(\"fill\",\"none\").attr(\"d\",\"M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27\"),t.append(\"defs\").append(\"marker\").attr(\"id\",bi.ONE_OR_MORE_END).attr(\"refX\",27).attr(\"refY\",18).attr(\"markerWidth\",45).attr(\"markerHeight\",36).attr(\"orient\",\"auto\").append(\"path\").attr(\"stroke\",e.stroke).attr(\"fill\",\"none\").attr(\"d\",\"M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18\"),r=t.append(\"defs\").append(\"marker\").attr(\"id\",bi.ZERO_OR_MORE_START).attr(\"refX\",18).attr(\"refY\",18).attr(\"markerWidth\",57).attr(\"markerHeight\",36).attr(\"orient\",\"auto\"),r.append(\"circle\").attr(\"stroke\",e.stroke).attr(\"fill\",\"white\").attr(\"cx\",48).attr(\"cy\",18).attr(\"r\",6),r.append(\"path\").attr(\"stroke\",e.stroke).attr(\"fill\",\"none\").attr(\"d\",\"M0,18 Q18,0 36,18 Q18,36 0,18\"),r=t.append(\"defs\").append(\"marker\").attr(\"id\",bi.ZERO_OR_MORE_END).attr(\"refX\",39).attr(\"refY\",18).attr(\"markerWidth\",57).attr(\"markerHeight\",36).attr(\"orient\",\"auto\"),r.append(\"circle\").attr(\"stroke\",e.stroke).attr(\"fill\",\"white\").attr(\"cx\",9).attr(\"cy\",18).attr(\"r\",6),r.append(\"path\").attr(\"stroke\",e.stroke).attr(\"fill\",\"none\").attr(\"d\",\"M21,18 Q39,0 57,18 Q39,36 21,18\")}};let yu;const mI=new Uint8Array(16);function bI(){if(!yu&&(yu=typeof crypto<\"u\"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!yu))throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");return yu(mI)}const _r=[];for(let t=0;t<256;++t)_r.push((t+256).toString(16).slice(1));function _I(t,e=0){return(_r[t[e+0]]+_r[t[e+1]]+_r[t[e+2]]+_r[t[e+3]]+\"-\"+_r[t[e+4]]+_r[t[e+5]]+\"-\"+_r[t[e+6]]+_r[t[e+7]]+\"-\"+_r[t[e+8]]+_r[t[e+9]]+\"-\"+_r[t[e+10]]+_r[t[e+11]]+_r[t[e+12]]+_r[t[e+13]]+_r[t[e+14]]+_r[t[e+15]]).toLowerCase()}const Wm={randomUUID:typeof crypto<\"u\"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function xI(t,e,r){if(Wm.randomUUID&&!e&&!t)return Wm.randomUUID();t=t||{};const n=t.random||(t.rng||bI)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,e){r=r||0;for(let i=0;i<16;++i)e[r+i]=n[i];return e}return _I(n)}const vI=/[^\\dA-Za-z](\\W)*/g;let ur={},Uo=new Map;const kI=function(t){const e=Object.keys(t);for(const r of e)ur[r]=t[r]},wI=(t,e,r)=>{const n=ur.entityPadding/3,i=ur.entityPadding/3,s=ur.fontSize*.85,a=e.node().getBBox(),o=[];let l=!1,u=!1,d=0,f=0,p=0,g=0,b=a.height+n*2,k=1;r.forEach(I=>{I.attributeKeyType!==void 0&&(l=!0),I.attributeComment!==void 0&&(u=!0)}),r.forEach(I=>{const V=`${e.node().id}-attr-${k}`;let H=0;const G=Oi(I.attributeType),Y=t.append(\"text\").classed(\"er entityLabel\",!0).attr(\"id\",`${V}-type`).attr(\"x\",0).attr(\"y\",0).style(\"dominant-baseline\",\"middle\").style(\"text-anchor\",\"left\").style(\"font-family\",$().fontFamily).style(\"font-size\",s+\"px\").text(G),W=t.append(\"text\").classed(\"er entityLabel\",!0).attr(\"id\",`${V}-name`).attr(\"x\",0).attr(\"y\",0).style(\"dominant-baseline\",\"middle\").style(\"text-anchor\",\"left\").style(\"font-family\",$().fontFamily).style(\"font-size\",s+\"px\").text(I.attributeName),N={};N.tn=Y,N.nn=W;const D=Y.node().getBBox(),w=W.node().getBBox();if(d=Math.max(d,D.width),f=Math.max(f,w.width),H=Math.max(D.height,w.height),l){const v=t.append(\"text\").classed(\"er entityLabel\",!0).attr(\"id\",`${V}-key`).attr(\"x\",0).attr(\"y\",0).style(\"dominant-baseline\",\"middle\").style(\"text-anchor\",\"left\").style(\"font-family\",$().fontFamily).style(\"font-size\",s+\"px\").text(I.attributeKeyType||\"\");N.kn=v;const M=v.node().getBBox();p=Math.max(p,M.width),H=Math.max(H,M.height)}if(u){const v=t.append(\"text\").classed(\"er entityLabel\",!0).attr(\"id\",`${V}-comment`).attr(\"x\",0).attr(\"y\",0).style(\"dominant-baseline\",\"middle\").style(\"text-anchor\",\"left\").style(\"font-family\",$().fontFamily).style(\"font-size\",s+\"px\").text(I.attributeComment||\"\");N.cn=v;const M=v.node().getBBox();g=Math.max(g,M.width),H=Math.max(H,M.height)}N.height=H,o.push(N),b+=H+n*2,k+=1});let T=4;l&&(T+=2),u&&(T+=2);const L=d+f+p+g,E={width:Math.max(ur.minEntityWidth,Math.max(a.width+ur.entityPadding*2,L+i*T)),height:r.length>0?b:Math.max(ur.minEntityHeight,a.height+ur.entityPadding*2)};if(r.length>0){const I=Math.max(0,(E.width-L-i*T)/(T/2));e.attr(\"transform\",\"translate(\"+E.width/2+\",\"+(n+a.height/2)+\")\");let V=a.height+n*2,H=\"attributeBoxOdd\";o.forEach(G=>{const Y=V+n+G.height/2;G.tn.attr(\"transform\",\"translate(\"+i+\",\"+Y+\")\");const W=t.insert(\"rect\",\"#\"+G.tn.node().id).classed(`er ${H}`,!0).attr(\"x\",0).attr(\"y\",V).attr(\"width\",d+i*2+I).attr(\"height\",G.height+n*2),N=parseFloat(W.attr(\"x\"))+parseFloat(W.attr(\"width\"));G.nn.attr(\"transform\",\"translate(\"+(N+i)+\",\"+Y+\")\");const D=t.insert(\"rect\",\"#\"+G.nn.node().id).classed(`er ${H}`,!0).attr(\"x\",N).attr(\"y\",V).attr(\"width\",f+i*2+I).attr(\"height\",G.height+n*2);let w=parseFloat(D.attr(\"x\"))+parseFloat(D.attr(\"width\"));if(l){G.kn.attr(\"transform\",\"translate(\"+(w+i)+\",\"+Y+\")\");const v=t.insert(\"rect\",\"#\"+G.kn.node().id).classed(`er ${H}`,!0).attr(\"x\",w).attr(\"y\",V).attr(\"width\",p+i*2+I).attr(\"height\",G.height+n*2);w=parseFloat(v.attr(\"x\"))+parseFloat(v.attr(\"width\"))}u&&(G.cn.attr(\"transform\",\"translate(\"+(w+i)+\",\"+Y+\")\"),t.insert(\"rect\",\"#\"+G.cn.node().id).classed(`er ${H}`,\"true\").attr(\"x\",w).attr(\"y\",V).attr(\"width\",g+i*2+I).attr(\"height\",G.height+n*2)),V+=G.height+n*2,H=H===\"attributeBoxOdd\"?\"attributeBoxEven\":\"attributeBoxOdd\"})}else E.height=Math.max(ur.minEntityHeight,b),e.attr(\"transform\",\"translate(\"+E.width/2+\",\"+E.height/2+\")\");return E},TI=function(t,e,r){const n=Object.keys(e);let i;return n.forEach(function(s){const a=LI(s,\"entity\");Uo.set(s,a);const o=t.append(\"g\").attr(\"id\",a);i=i===void 0?a:i;const l=\"text-\"+a,u=o.append(\"text\").classed(\"er entityLabel\",!0).attr(\"id\",l).attr(\"x\",0).attr(\"y\",0).style(\"dominant-baseline\",\"middle\").style(\"text-anchor\",\"middle\").style(\"font-family\",$().fontFamily).style(\"font-size\",ur.fontSize+\"px\").text(s),{width:d,height:f}=wI(o,u,e[s].attributes),g=o.insert(\"rect\",\"#\"+l).classed(\"er entityBox\",!0).attr(\"x\",0).attr(\"y\",0).attr(\"width\",d).attr(\"height\",f).node().getBBox();r.setNode(a,{width:g.width,height:g.height,shape:\"rect\",id:a})}),i},EI=function(t,e){e.nodes().forEach(function(r){r!==void 0&&e.node(r)!==void 0&&t.select(\"#\"+r).attr(\"transform\",\"translate(\"+(e.node(r).x-e.node(r).width/2)+\",\"+(e.node(r).y-e.node(r).height/2)+\" )\")})},Hm=function(t){return(t.entityA+t.roleA+t.entityB).replace(/\\s/g,\"\")},CI=function(t,e){return t.forEach(function(r){e.setEdge(Uo.get(r.entityA),Uo.get(r.entityB),{relationship:r},Hm(r))}),t};let Gm=0;const SI=function(t,e,r,n,i){Gm++;const s=r.edge(Uo.get(e.entityA),Uo.get(e.entityB),Hm(e)),a=Js().x(function(b){return b.x}).y(function(b){return b.y}).curve(ta),o=t.insert(\"path\",\"#\"+n).classed(\"er relationshipLine\",!0).attr(\"d\",a(s.points)).style(\"stroke\",ur.stroke).style(\"fill\",\"none\");e.relSpec.relType===i.db.Identification.NON_IDENTIFYING&&o.attr(\"stroke-dasharray\",\"8,8\");let l=\"\";switch(ur.arrowMarkerAbsolute&&(l=window.location.protocol+\"//\"+window.location.host+window.location.pathname+window.location.search,l=l.replace(/\\(/g,\"\\\\(\"),l=l.replace(/\\)/g,\"\\\\)\")),e.relSpec.cardA){case i.db.Cardinality.ZERO_OR_ONE:o.attr(\"marker-end\",\"url(\"+l+\"#\"+_i.ERMarkers.ZERO_OR_ONE_END+\")\");break;case i.db.Cardinality.ZERO_OR_MORE:o.attr(\"marker-end\",\"url(\"+l+\"#\"+_i.ERMarkers.ZERO_OR_MORE_END+\")\");break;case i.db.Cardinality.ONE_OR_MORE:o.attr(\"marker-end\",\"url(\"+l+\"#\"+_i.ERMarkers.ONE_OR_MORE_END+\")\");break;case i.db.Cardinality.ONLY_ONE:o.attr(\"marker-end\",\"url(\"+l+\"#\"+_i.ERMarkers.ONLY_ONE_END+\")\");break}switch(e.relSpec.cardB){case i.db.Cardinality.ZERO_OR_ONE:o.attr(\"marker-start\",\"url(\"+l+\"#\"+_i.ERMarkers.ZERO_OR_ONE_START+\")\");break;case i.db.Cardinality.ZERO_OR_MORE:o.attr(\"marker-start\",\"url(\"+l+\"#\"+_i.ERMarkers.ZERO_OR_MORE_START+\")\");break;case i.db.Cardinality.ONE_OR_MORE:o.attr(\"marker-start\",\"url(\"+l+\"#\"+_i.ERMarkers.ONE_OR_MORE_START+\")\");break;case i.db.Cardinality.ONLY_ONE:o.attr(\"marker-start\",\"url(\"+l+\"#\"+_i.ERMarkers.ONLY_ONE_START+\")\");break}const u=o.node().getTotalLength(),d=o.node().getPointAtLength(u*.5),f=\"rel\"+Gm,g=t.append(\"text\").classed(\"er relationshipLabel\",!0).attr(\"id\",f).attr(\"x\",d.x).attr(\"y\",d.y).style(\"text-anchor\",\"middle\").style(\"dominant-baseline\",\"middle\").style(\"font-family\",$().fontFamily).style(\"font-size\",ur.fontSize+\"px\").text(e.roleA).node().getBBox();t.insert(\"rect\",\"#\"+f).classed(\"er relationshipLabelBox\",!0).attr(\"x\",d.x-g.width/2).attr(\"y\",d.y-g.height/2).attr(\"width\",g.width).attr(\"height\",g.height)},AI=function(t,e,r,n){ur=$().er,B.info(\"Drawing ER diagram\");const i=$().securityLevel;let s;i===\"sandbox\"&&(s=St(\"#i\"+e));const o=St(i===\"sandbox\"?s.nodes()[0].contentDocument.body:\"body\").select(`[id='${e}']`);_i.insertMarkers(o,ur);let l;l=new sr({multigraph:!0,directed:!0,compound:!1}).setGraph({rankdir:ur.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});const u=TI(o,n.db.getEntities(),l),d=CI(n.db.getRelationships(),l);Ea(l),EI(o,l),d.forEach(function(k){SI(o,k,l,u,n)});const f=ur.diagramPadding;ge.insertTitle(o,\"entityTitleText\",ur.titleTopMargin,n.db.getDiagramTitle());const p=o.node().getBBox(),g=p.width+f*2,b=p.height+f*2;xn(o,b,g,ur.useMaxWidth),o.attr(\"viewBox\",`${p.x-f} ${p.y-f} ${g} ${b}`)};function LI(t=\"\",e=\"\"){const r=t.replace(vI,\"\");return`${qm(e)}${qm(r)}${xI()}`}function qm(t=\"\"){return t.length>0?`${t}-`:\"\"}const DI={setConf:kI,draw:AI};var T0=function(){var t=function(zr,qt,te,oe){for(te=te||{},oe=zr.length;oe--;te[zr[oe]]=qt);return te},e=[1,9],r=[1,7],n=[1,6],i=[1,8],s=[1,20,21,22,23,38,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],a=[2,10],o=[1,20],l=[1,21],u=[1,22],d=[1,23],f=[1,30],p=[1,32],g=[1,33],b=[1,34],k=[1,62],T=[1,48],L=[1,52],E=[1,36],I=[1,37],V=[1,38],H=[1,39],G=[1,40],Y=[1,56],W=[1,63],N=[1,51],D=[1,53],w=[1,55],v=[1,59],M=[1,60],m=[1,41],Q=[1,42],x=[1,43],ct=[1,44],Dt=[1,61],kt=[1,50],j=[1,54],ot=[1,57],rt=[1,58],nt=[1,49],ut=[1,66],_t=[1,71],K=[1,20,21,22,23,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],Ot=[1,75],P=[1,74],z=[1,76],X=[20,21,23,81,82],F=[1,99],O=[1,104],A=[1,107],J=[1,108],C=[1,101],ht=[1,106],U=[1,109],Yt=[1,102],et=[1,114],Mt=[1,113],Tt=[1,103],gt=[1,105],Et=[1,110],wt=[1,111],pt=[1,112],st=[1,115],le=[20,21,22,23,81,82],Xt=[20,21,22,23,53,81,82],jt=[20,21,22,23,40,52,53,55,57,59,61,63,65,66,67,69,71,73,74,76,81,82,91,95,105,106,109,111,112,122,123,124,125,126,127],Kt=[20,21,23],Gt=[20,21,23,52,66,67,81,82,91,95,105,106,109,111,112,122,123,124,125,126,127],Ee=[1,12,20,21,22,23,24,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],Ht=[52,66,67,91,95,105,106,109,111,112,122,123,124,125,126,127],Vt=[1,149],Ft=[1,157],xt=[1,158],ft=[1,159],Lt=[1,160],bt=[1,144],Ut=[1,145],at=[1,141],ie=[1,152],dt=[1,153],ee=[1,154],fe=[1,155],be=[1,156],_e=[1,161],ke=[1,162],$t=[1,147],se=[1,150],ye=[1,146],Jt=[1,143],Nn=[20,21,22,23,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],Xr=[1,165],De=[20,21,22,23,26,52,66,67,91,105,106,109,111,112,122,123,124,125,126,127],ae=[20,21,22,23,24,26,38,40,41,42,52,56,58,60,62,64,66,67,68,70,72,73,75,77,81,82,86,87,88,89,90,91,92,95,105,106,109,111,112,113,114,122,123,124,125,126,127],Be=[12,21,22,24],Re=[22,106],Pe=[1,250],Ye=[1,245],Ie=[1,246],$e=[1,254],ar=[1,251],zt=[1,248],Z=[1,247],At=[1,249],Nt=[1,252],pe=[1,253],Me=[1,255],Le=[1,273],We=[20,21,23,106],ve=[20,21,22,23,66,67,86,102,105,106,109,110,111,112,113],Ne={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,directive:5,openDirective:6,typeDirective:7,closeDirective:8,separator:9,\":\":10,argDirective:11,open_directive:12,type_directive:13,arg_directive:14,close_directive:15,graphConfig:16,document:17,line:18,statement:19,SEMI:20,NEWLINE:21,SPACE:22,EOF:23,GRAPH:24,NODIR:25,DIR:26,FirstStmtSeperator:27,ending:28,endToken:29,spaceList:30,spaceListNewline:31,verticeStatement:32,styleStatement:33,linkStyleStatement:34,classDefStatement:35,classStatement:36,clickStatement:37,subgraph:38,text:39,SQS:40,SQE:41,end:42,direction:43,acc_title:44,acc_title_value:45,acc_descr:46,acc_descr_value:47,acc_descr_multiline_value:48,link:49,node:50,vertex:51,AMP:52,STYLE_SEPARATOR:53,idString:54,DOUBLECIRCLESTART:55,DOUBLECIRCLEEND:56,PS:57,PE:58,\"(-\":59,\"-)\":60,STADIUMSTART:61,STADIUMEND:62,SUBROUTINESTART:63,SUBROUTINEEND:64,VERTEX_WITH_PROPS_START:65,ALPHA:66,COLON:67,PIPE:68,CYLINDERSTART:69,CYLINDEREND:70,DIAMOND_START:71,DIAMOND_STOP:72,TAGEND:73,TRAPSTART:74,TRAPEND:75,INVTRAPSTART:76,INVTRAPEND:77,linkStatement:78,arrowText:79,TESTSTR:80,START_LINK:81,LINK:82,textToken:83,STR:84,keywords:85,STYLE:86,LINKSTYLE:87,CLASSDEF:88,CLASS:89,CLICK:90,DOWN:91,UP:92,textNoTags:93,textNoTagsToken:94,DEFAULT:95,stylesOpt:96,alphaNum:97,CALLBACKNAME:98,CALLBACKARGS:99,HREF:100,LINK_TARGET:101,HEX:102,numList:103,INTERPOLATE:104,NUM:105,COMMA:106,style:107,styleComponent:108,MINUS:109,UNIT:110,BRKT:111,DOT:112,PCT:113,TAGSTART:114,alphaNumToken:115,idStringToken:116,alphaNumStatement:117,direction_tb:118,direction_bt:119,direction_rl:120,direction_lr:121,PUNCTUATION:122,UNICODE_TEXT:123,PLUS:124,EQUALS:125,MULT:126,UNDERSCORE:127,graphCodeTokens:128,ARROW_CROSS:129,ARROW_POINT:130,ARROW_CIRCLE:131,ARROW_OPEN:132,QUOTE:133,$accept:0,$end:1},terminals_:{2:\"error\",10:\":\",12:\"open_directive\",13:\"type_directive\",14:\"arg_directive\",15:\"close_directive\",20:\"SEMI\",21:\"NEWLINE\",22:\"SPACE\",23:\"EOF\",24:\"GRAPH\",25:\"NODIR\",26:\"DIR\",38:\"subgraph\",40:\"SQS\",41:\"SQE\",42:\"end\",44:\"acc_title\",45:\"acc_title_value\",46:\"acc_descr\",47:\"acc_descr_value\",48:\"acc_descr_multiline_value\",52:\"AMP\",53:\"STYLE_SEPARATOR\",55:\"DOUBLECIRCLESTART\",56:\"DOUBLECIRCLEEND\",57:\"PS\",58:\"PE\",59:\"(-\",60:\"-)\",61:\"STADIUMSTART\",62:\"STADIUMEND\",63:\"SUBROUTINESTART\",64:\"SUBROUTINEEND\",65:\"VERTEX_WITH_PROPS_START\",66:\"ALPHA\",67:\"COLON\",68:\"PIPE\",69:\"CYLINDERSTART\",70:\"CYLINDEREND\",71:\"DIAMOND_START\",72:\"DIAMOND_STOP\",73:\"TAGEND\",74:\"TRAPSTART\",75:\"TRAPEND\",76:\"INVTRAPSTART\",77:\"INVTRAPEND\",80:\"TESTSTR\",81:\"START_LINK\",82:\"LINK\",84:\"STR\",86:\"STYLE\",87:\"LINKSTYLE\",88:\"CLASSDEF\",89:\"CLASS\",90:\"CLICK\",91:\"DOWN\",92:\"UP\",95:\"DEFAULT\",98:\"CALLBACKNAME\",99:\"CALLBACKARGS\",100:\"HREF\",101:\"LINK_TARGET\",102:\"HEX\",104:\"INTERPOLATE\",105:\"NUM\",106:\"COMMA\",109:\"MINUS\",110:\"UNIT\",111:\"BRKT\",112:\"DOT\",113:\"PCT\",114:\"TAGSTART\",118:\"direction_tb\",119:\"direction_bt\",120:\"direction_rl\",121:\"direction_lr\",122:\"PUNCTUATION\",123:\"UNICODE_TEXT\",124:\"PLUS\",125:\"EQUALS\",126:\"MULT\",127:\"UNDERSCORE\",129:\"ARROW_CROSS\",130:\"ARROW_POINT\",131:\"ARROW_CIRCLE\",132:\"ARROW_OPEN\",133:\"QUOTE\"},productions_:[0,[3,1],[3,2],[5,4],[5,6],[6,1],[7,1],[11,1],[8,1],[4,2],[17,0],[17,2],[18,1],[18,1],[18,1],[18,1],[18,1],[16,2],[16,2],[16,2],[16,3],[28,2],[28,1],[29,1],[29,1],[29,1],[27,1],[27,1],[27,2],[31,2],[31,2],[31,1],[31,1],[30,2],[30,1],[19,2],[19,2],[19,2],[19,2],[19,2],[19,2],[19,9],[19,6],[19,4],[19,1],[19,2],[19,2],[19,1],[9,1],[9,1],[9,1],[32,3],[32,4],[32,2],[32,1],[50,1],[50,5],[50,3],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,8],[51,4],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,4],[51,4],[51,1],[49,2],[49,3],[49,3],[49,1],[49,3],[78,1],[79,3],[39,1],[39,2],[39,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[93,1],[93,2],[35,5],[35,5],[36,5],[37,2],[37,4],[37,3],[37,5],[37,2],[37,4],[37,4],[37,6],[37,2],[37,4],[37,2],[37,4],[37,4],[37,6],[33,5],[33,5],[34,5],[34,5],[34,9],[34,9],[34,7],[34,7],[103,1],[103,3],[96,1],[96,3],[107,1],[107,2],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[94,1],[94,1],[94,1],[94,1],[54,1],[54,2],[97,1],[97,2],[117,1],[117,1],[117,1],[117,1],[43,1],[43,1],[43,1],[43,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1]],performAction:function(qt,te,oe,Rt,Ve,q,Is){var tt=q.length-1;switch(Ve){case 5:Rt.parseDirective(\"%%{\",\"open_directive\");break;case 6:Rt.parseDirective(q[tt],\"type_directive\");break;case 7:q[tt]=q[tt].trim().replace(/'/g,'\"'),Rt.parseDirective(q[tt],\"arg_directive\");break;case 8:Rt.parseDirective(\"}%%\",\"close_directive\",\"flowchart\");break;case 10:this.$=[];break;case 11:(!Array.isArray(q[tt])||q[tt].length>0)&&q[tt-1].push(q[tt]),this.$=q[tt-1];break;case 12:case 82:case 84:case 96:case 152:case 154:case 155:this.$=q[tt];break;case 19:Rt.setDirection(\"TB\"),this.$=\"TB\";break;case 20:Rt.setDirection(q[tt-1]),this.$=q[tt-1];break;case 35:this.$=q[tt-1].nodes;break;case 36:case 37:case 38:case 39:case 40:this.$=[];break;case 41:this.$=Rt.addSubGraph(q[tt-6],q[tt-1],q[tt-4]);break;case 42:this.$=Rt.addSubGraph(q[tt-3],q[tt-1],q[tt-3]);break;case 43:this.$=Rt.addSubGraph(void 0,q[tt-1],void 0);break;case 45:this.$=q[tt].trim(),Rt.setAccTitle(this.$);break;case 46:case 47:this.$=q[tt].trim(),Rt.setAccDescription(this.$);break;case 51:Rt.addLink(q[tt-2].stmt,q[tt],q[tt-1]),this.$={stmt:q[tt],nodes:q[tt].concat(q[tt-2].nodes)};break;case 52:Rt.addLink(q[tt-3].stmt,q[tt-1],q[tt-2]),this.$={stmt:q[tt-1],nodes:q[tt-1].concat(q[tt-3].nodes)};break;case 53:this.$={stmt:q[tt-1],nodes:q[tt-1]};break;case 54:this.$={stmt:q[tt],nodes:q[tt]};break;case 55:this.$=[q[tt]];break;case 56:this.$=q[tt-4].concat(q[tt]);break;case 57:this.$=[q[tt-2]],Rt.setClass(q[tt-2],q[tt]);break;case 58:this.$=q[tt-3],Rt.addVertex(q[tt-3],q[tt-1],\"square\");break;case 59:this.$=q[tt-3],Rt.addVertex(q[tt-3],q[tt-1],\"doublecircle\");break;case 60:this.$=q[tt-5],Rt.addVertex(q[tt-5],q[tt-2],\"circle\");break;case 61:this.$=q[tt-3],Rt.addVertex(q[tt-3],q[tt-1],\"ellipse\");break;case 62:this.$=q[tt-3],Rt.addVertex(q[tt-3],q[tt-1],\"stadium\");break;case 63:this.$=q[tt-3],Rt.addVertex(q[tt-3],q[tt-1],\"subroutine\");break;case 64:this.$=q[tt-7],Rt.addVertex(q[tt-7],q[tt-1],\"rect\",void 0,void 0,void 0,Object.fromEntries([[q[tt-5],q[tt-3]]]));break;case 65:this.$=q[tt-3],Rt.addVertex(q[tt-3],q[tt-1],\"cylinder\");break;case 66:this.$=q[tt-3],Rt.addVertex(q[tt-3],q[tt-1],\"round\");break;case 67:this.$=q[tt-3],Rt.addVertex(q[tt-3],q[tt-1],\"diamond\");break;case 68:this.$=q[tt-5],Rt.addVertex(q[tt-5],q[tt-2],\"hexagon\");break;case 69:this.$=q[tt-3],Rt.addVertex(q[tt-3],q[tt-1],\"odd\");break;case 70:this.$=q[tt-3],Rt.addVertex(q[tt-3],q[tt-1],\"trapezoid\");break;case 71:this.$=q[tt-3],Rt.addVertex(q[tt-3],q[tt-1],\"inv_trapezoid\");break;case 72:this.$=q[tt-3],Rt.addVertex(q[tt-3],q[tt-1],\"lean_right\");break;case 73:this.$=q[tt-3],Rt.addVertex(q[tt-3],q[tt-1],\"lean_left\");break;case 74:this.$=q[tt],Rt.addVertex(q[tt]);break;case 75:q[tt-1].text=q[tt],this.$=q[tt-1];break;case 76:case 77:q[tt-2].text=q[tt-1],this.$=q[tt-2];break;case 78:this.$=q[tt];break;case 79:var Sr=Rt.destructLink(q[tt],q[tt-2]);this.$={type:Sr.type,stroke:Sr.stroke,length:Sr.length,text:q[tt-1]};break;case 80:var Sr=Rt.destructLink(q[tt]);this.$={type:Sr.type,stroke:Sr.stroke,length:Sr.length};break;case 81:this.$=q[tt-1];break;case 83:case 97:case 153:this.$=q[tt-1]+\"\"+q[tt];break;case 98:case 99:this.$=q[tt-4],Rt.addClass(q[tt-2],q[tt]);break;case 100:this.$=q[tt-4],Rt.setClass(q[tt-2],q[tt]);break;case 101:case 109:this.$=q[tt-1],Rt.setClickEvent(q[tt-1],q[tt]);break;case 102:case 110:this.$=q[tt-3],Rt.setClickEvent(q[tt-3],q[tt-2]),Rt.setTooltip(q[tt-3],q[tt]);break;case 103:this.$=q[tt-2],Rt.setClickEvent(q[tt-2],q[tt-1],q[tt]);break;case 104:this.$=q[tt-4],Rt.setClickEvent(q[tt-4],q[tt-3],q[tt-2]),Rt.setTooltip(q[tt-4],q[tt]);break;case 105:case 111:this.$=q[tt-1],Rt.setLink(q[tt-1],q[tt]);break;case 106:case 112:this.$=q[tt-3],Rt.setLink(q[tt-3],q[tt-2]),Rt.setTooltip(q[tt-3],q[tt]);break;case 107:case 113:this.$=q[tt-3],Rt.setLink(q[tt-3],q[tt-2],q[tt]);break;case 108:case 114:this.$=q[tt-5],Rt.setLink(q[tt-5],q[tt-4],q[tt]),Rt.setTooltip(q[tt-5],q[tt-2]);break;case 115:this.$=q[tt-4],Rt.addVertex(q[tt-2],void 0,void 0,q[tt]);break;case 116:case 118:this.$=q[tt-4],Rt.updateLink(q[tt-2],q[tt]);break;case 117:this.$=q[tt-4],Rt.updateLink([q[tt-2]],q[tt]);break;case 119:this.$=q[tt-8],Rt.updateLinkInterpolate([q[tt-6]],q[tt-2]),Rt.updateLink([q[tt-6]],q[tt]);break;case 120:this.$=q[tt-8],Rt.updateLinkInterpolate(q[tt-6],q[tt-2]),Rt.updateLink(q[tt-6],q[tt]);break;case 121:this.$=q[tt-6],Rt.updateLinkInterpolate([q[tt-4]],q[tt]);break;case 122:this.$=q[tt-6],Rt.updateLinkInterpolate(q[tt-4],q[tt]);break;case 123:case 125:this.$=[q[tt]];break;case 124:case 126:q[tt-2].push(q[tt]),this.$=q[tt-2];break;case 128:this.$=q[tt-1]+q[tt];break;case 150:this.$=q[tt];break;case 151:this.$=q[tt-1]+\"\"+q[tt];break;case 156:this.$=\"v\";break;case 157:this.$=\"-\";break;case 158:this.$={stmt:\"dir\",value:\"TB\"};break;case 159:this.$={stmt:\"dir\",value:\"BT\"};break;case 160:this.$={stmt:\"dir\",value:\"RL\"};break;case 161:this.$={stmt:\"dir\",value:\"LR\"};break}},table:[{3:1,4:2,5:3,6:5,12:e,16:4,21:r,22:n,24:i},{1:[3]},{1:[2,1]},{3:10,4:2,5:3,6:5,12:e,16:4,21:r,22:n,24:i},t(s,a,{17:11}),{7:12,13:[1,13]},{16:14,21:r,22:n,24:i},{16:15,21:r,22:n,24:i},{25:[1,16],26:[1,17]},{13:[2,5]},{1:[2,2]},{1:[2,9],18:18,19:19,20:o,21:l,22:u,23:d,32:24,33:25,34:26,35:27,36:28,37:29,38:f,43:31,44:p,46:g,48:b,50:35,51:45,52:k,54:46,66:T,67:L,86:E,87:I,88:V,89:H,90:G,91:Y,95:W,105:N,106:D,109:w,111:v,112:M,116:47,118:m,119:Q,120:x,121:ct,122:Dt,123:kt,124:j,125:ot,126:rt,127:nt},{8:64,10:[1,65],15:ut},t([10,15],[2,6]),t(s,[2,17]),t(s,[2,18]),t(s,[2,19]),{20:[1,68],21:[1,69],22:_t,27:67,30:70},t(K,[2,11]),t(K,[2,12]),t(K,[2,13]),t(K,[2,14]),t(K,[2,15]),t(K,[2,16]),{9:72,20:Ot,21:P,23:z,49:73,78:77,81:[1,78],82:[1,79]},{9:80,20:Ot,21:P,23:z},{9:81,20:Ot,21:P,23:z},{9:82,20:Ot,21:P,23:z},{9:83,20:Ot,21:P,23:z},{9:84,20:Ot,21:P,23:z},{9:86,20:Ot,21:P,22:[1,85],23:z},t(K,[2,44]),{45:[1,87]},{47:[1,88]},t(K,[2,47]),t(X,[2,54],{30:89,22:_t}),{22:[1,90]},{22:[1,91]},{22:[1,92]},{22:[1,93]},{26:F,52:O,66:A,67:J,84:[1,97],91:C,97:96,98:[1,94],100:[1,95],105:ht,106:U,109:Yt,111:et,112:Mt,115:100,117:98,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},t(K,[2,158]),t(K,[2,159]),t(K,[2,160]),t(K,[2,161]),t(le,[2,55],{53:[1,116]}),t(Xt,[2,74],{116:129,40:[1,117],52:k,55:[1,118],57:[1,119],59:[1,120],61:[1,121],63:[1,122],65:[1,123],66:T,67:L,69:[1,124],71:[1,125],73:[1,126],74:[1,127],76:[1,128],91:Y,95:W,105:N,106:D,109:w,111:v,112:M,122:Dt,123:kt,124:j,125:ot,126:rt,127:nt}),t(jt,[2,150]),t(jt,[2,175]),t(jt,[2,176]),t(jt,[2,177]),t(jt,[2,178]),t(jt,[2,179]),t(jt,[2,180]),t(jt,[2,181]),t(jt,[2,182]),t(jt,[2,183]),t(jt,[2,184]),t(jt,[2,185]),t(jt,[2,186]),t(jt,[2,187]),t(jt,[2,188]),t(jt,[2,189]),t(jt,[2,190]),{9:130,20:Ot,21:P,23:z},{11:131,14:[1,132]},t(Kt,[2,8]),t(s,[2,20]),t(s,[2,26]),t(s,[2,27]),{21:[1,133]},t(Gt,[2,34],{30:134,22:_t}),t(K,[2,35]),{50:135,51:45,52:k,54:46,66:T,67:L,91:Y,95:W,105:N,106:D,109:w,111:v,112:M,116:47,122:Dt,123:kt,124:j,125:ot,126:rt,127:nt},t(Ee,[2,48]),t(Ee,[2,49]),t(Ee,[2,50]),t(Ht,[2,78],{79:136,68:[1,138],80:[1,137]}),{22:Vt,24:Ft,26:xt,38:ft,39:139,42:Lt,52:O,66:A,67:J,73:bt,81:Ut,83:140,84:at,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},t([52,66,67,68,80,91,95,105,106,109,111,112,122,123,124,125,126,127],[2,80]),t(K,[2,36]),t(K,[2,37]),t(K,[2,38]),t(K,[2,39]),t(K,[2,40]),{22:Vt,24:Ft,26:xt,38:ft,39:163,42:Lt,52:O,66:A,67:J,73:bt,81:Ut,83:140,84:at,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},t(Nn,a,{17:164}),t(K,[2,45]),t(K,[2,46]),t(X,[2,53],{52:Xr}),{26:F,52:O,66:A,67:J,91:C,97:166,102:[1,167],105:ht,106:U,109:Yt,111:et,112:Mt,115:100,117:98,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{95:[1,168],103:169,105:[1,170]},{26:F,52:O,66:A,67:J,91:C,95:[1,171],97:172,105:ht,106:U,109:Yt,111:et,112:Mt,115:100,117:98,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{26:F,52:O,66:A,67:J,91:C,97:173,105:ht,106:U,109:Yt,111:et,112:Mt,115:100,117:98,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},t(Kt,[2,101],{22:[1,174],99:[1,175]}),t(Kt,[2,105],{22:[1,176]}),t(Kt,[2,109],{115:100,117:178,22:[1,177],26:F,52:O,66:A,67:J,91:C,105:ht,106:U,109:Yt,111:et,112:Mt,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st}),t(Kt,[2,111],{22:[1,179]}),t(De,[2,152]),t(De,[2,154]),t(De,[2,155]),t(De,[2,156]),t(De,[2,157]),t(ae,[2,162]),t(ae,[2,163]),t(ae,[2,164]),t(ae,[2,165]),t(ae,[2,166]),t(ae,[2,167]),t(ae,[2,168]),t(ae,[2,169]),t(ae,[2,170]),t(ae,[2,171]),t(ae,[2,172]),t(ae,[2,173]),t(ae,[2,174]),{52:k,54:180,66:T,67:L,91:Y,95:W,105:N,106:D,109:w,111:v,112:M,116:47,122:Dt,123:kt,124:j,125:ot,126:rt,127:nt},{22:Vt,24:Ft,26:xt,38:ft,39:181,42:Lt,52:O,66:A,67:J,73:bt,81:Ut,83:140,84:at,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:Vt,24:Ft,26:xt,38:ft,39:182,42:Lt,52:O,66:A,67:J,73:bt,81:Ut,83:140,84:at,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:Vt,24:Ft,26:xt,38:ft,39:184,42:Lt,52:O,57:[1,183],66:A,67:J,73:bt,81:Ut,83:140,84:at,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:Vt,24:Ft,26:xt,38:ft,39:185,42:Lt,52:O,66:A,67:J,73:bt,81:Ut,83:140,84:at,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:Vt,24:Ft,26:xt,38:ft,39:186,42:Lt,52:O,66:A,67:J,73:bt,81:Ut,83:140,84:at,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:Vt,24:Ft,26:xt,38:ft,39:187,42:Lt,52:O,66:A,67:J,73:bt,81:Ut,83:140,84:at,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{66:[1,188]},{22:Vt,24:Ft,26:xt,38:ft,39:189,42:Lt,52:O,66:A,67:J,73:bt,81:Ut,83:140,84:at,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:Vt,24:Ft,26:xt,38:ft,39:190,42:Lt,52:O,66:A,67:J,71:[1,191],73:bt,81:Ut,83:140,84:at,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:Vt,24:Ft,26:xt,38:ft,39:192,42:Lt,52:O,66:A,67:J,73:bt,81:Ut,83:140,84:at,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:Vt,24:Ft,26:xt,38:ft,39:193,42:Lt,52:O,66:A,67:J,73:bt,81:Ut,83:140,84:at,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:Vt,24:Ft,26:xt,38:ft,39:194,42:Lt,52:O,66:A,67:J,73:bt,81:Ut,83:140,84:at,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},t(jt,[2,151]),t(Be,[2,3]),{8:195,15:ut},{15:[2,7]},t(s,[2,28]),t(Gt,[2,33]),t(X,[2,51],{30:196,22:_t}),t(Ht,[2,75],{22:[1,197]}),{22:[1,198]},{22:Vt,24:Ft,26:xt,38:ft,39:199,42:Lt,52:O,66:A,67:J,73:bt,81:Ut,83:140,84:at,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:Vt,24:Ft,26:xt,38:ft,42:Lt,52:O,66:A,67:J,73:bt,81:Ut,82:[1,200],83:201,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},t(ae,[2,82]),t(ae,[2,84]),t(ae,[2,140]),t(ae,[2,141]),t(ae,[2,142]),t(ae,[2,143]),t(ae,[2,144]),t(ae,[2,145]),t(ae,[2,146]),t(ae,[2,147]),t(ae,[2,148]),t(ae,[2,149]),t(ae,[2,85]),t(ae,[2,86]),t(ae,[2,87]),t(ae,[2,88]),t(ae,[2,89]),t(ae,[2,90]),t(ae,[2,91]),t(ae,[2,92]),t(ae,[2,93]),t(ae,[2,94]),t(ae,[2,95]),{9:203,20:Ot,21:P,22:Vt,23:z,24:Ft,26:xt,38:ft,40:[1,202],42:Lt,52:O,66:A,67:J,73:bt,81:Ut,83:201,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{18:18,19:19,20:o,21:l,22:u,23:d,32:24,33:25,34:26,35:27,36:28,37:29,38:f,42:[1,204],43:31,44:p,46:g,48:b,50:35,51:45,52:k,54:46,66:T,67:L,86:E,87:I,88:V,89:H,90:G,91:Y,95:W,105:N,106:D,109:w,111:v,112:M,116:47,118:m,119:Q,120:x,121:ct,122:Dt,123:kt,124:j,125:ot,126:rt,127:nt},{22:_t,30:205},{22:[1,206],26:F,52:O,66:A,67:J,91:C,105:ht,106:U,109:Yt,111:et,112:Mt,115:100,117:178,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:[1,207]},{22:[1,208]},{22:[1,209],106:[1,210]},t(Re,[2,123]),{22:[1,211]},{22:[1,212],26:F,52:O,66:A,67:J,91:C,105:ht,106:U,109:Yt,111:et,112:Mt,115:100,117:178,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:[1,213],26:F,52:O,66:A,67:J,91:C,105:ht,106:U,109:Yt,111:et,112:Mt,115:100,117:178,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{84:[1,214]},t(Kt,[2,103],{22:[1,215]}),{84:[1,216],101:[1,217]},{84:[1,218]},t(De,[2,153]),{84:[1,219],101:[1,220]},t(le,[2,57],{116:129,52:k,66:T,67:L,91:Y,95:W,105:N,106:D,109:w,111:v,112:M,122:Dt,123:kt,124:j,125:ot,126:rt,127:nt}),{22:Vt,24:Ft,26:xt,38:ft,41:[1,221],42:Lt,52:O,66:A,67:J,73:bt,81:Ut,83:201,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:Vt,24:Ft,26:xt,38:ft,42:Lt,52:O,56:[1,222],66:A,67:J,73:bt,81:Ut,83:201,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:Vt,24:Ft,26:xt,38:ft,39:223,42:Lt,52:O,66:A,67:J,73:bt,81:Ut,83:140,84:at,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:Vt,24:Ft,26:xt,38:ft,42:Lt,52:O,58:[1,224],66:A,67:J,73:bt,81:Ut,83:201,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:Vt,24:Ft,26:xt,38:ft,42:Lt,52:O,60:[1,225],66:A,67:J,73:bt,81:Ut,83:201,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:Vt,24:Ft,26:xt,38:ft,42:Lt,52:O,62:[1,226],66:A,67:J,73:bt,81:Ut,83:201,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:Vt,24:Ft,26:xt,38:ft,42:Lt,52:O,64:[1,227],66:A,67:J,73:bt,81:Ut,83:201,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{67:[1,228]},{22:Vt,24:Ft,26:xt,38:ft,42:Lt,52:O,66:A,67:J,70:[1,229],73:bt,81:Ut,83:201,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:Vt,24:Ft,26:xt,38:ft,42:Lt,52:O,66:A,67:J,72:[1,230],73:bt,81:Ut,83:201,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:Vt,24:Ft,26:xt,38:ft,39:231,42:Lt,52:O,66:A,67:J,73:bt,81:Ut,83:140,84:at,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:Vt,24:Ft,26:xt,38:ft,41:[1,232],42:Lt,52:O,66:A,67:J,73:bt,81:Ut,83:201,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:Vt,24:Ft,26:xt,38:ft,42:Lt,52:O,66:A,67:J,73:bt,75:[1,233],77:[1,234],81:Ut,83:201,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{22:Vt,24:Ft,26:xt,38:ft,42:Lt,52:O,66:A,67:J,73:bt,75:[1,236],77:[1,235],81:Ut,83:201,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{9:237,20:Ot,21:P,23:z},t(X,[2,52],{52:Xr}),t(Ht,[2,77]),t(Ht,[2,76]),{22:Vt,24:Ft,26:xt,38:ft,42:Lt,52:O,66:A,67:J,68:[1,238],73:bt,81:Ut,83:201,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},t(Ht,[2,79]),t(ae,[2,83]),{22:Vt,24:Ft,26:xt,38:ft,39:239,42:Lt,52:O,66:A,67:J,73:bt,81:Ut,83:140,84:at,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},t(Nn,a,{17:240}),t(K,[2,43]),{51:241,52:k,54:46,66:T,67:L,91:Y,95:W,105:N,106:D,109:w,111:v,112:M,116:47,122:Dt,123:kt,124:j,125:ot,126:rt,127:nt},{22:Pe,66:Ye,67:Ie,86:$e,96:242,102:ar,105:zt,107:243,108:244,109:Z,110:At,111:Nt,112:pe,113:Me},{22:Pe,66:Ye,67:Ie,86:$e,96:256,102:ar,105:zt,107:243,108:244,109:Z,110:At,111:Nt,112:pe,113:Me},{22:Pe,66:Ye,67:Ie,86:$e,96:257,102:ar,104:[1,258],105:zt,107:243,108:244,109:Z,110:At,111:Nt,112:pe,113:Me},{22:Pe,66:Ye,67:Ie,86:$e,96:259,102:ar,104:[1,260],105:zt,107:243,108:244,109:Z,110:At,111:Nt,112:pe,113:Me},{105:[1,261]},{22:Pe,66:Ye,67:Ie,86:$e,96:262,102:ar,105:zt,107:243,108:244,109:Z,110:At,111:Nt,112:pe,113:Me},{22:Pe,66:Ye,67:Ie,86:$e,96:263,102:ar,105:zt,107:243,108:244,109:Z,110:At,111:Nt,112:pe,113:Me},{26:F,52:O,66:A,67:J,91:C,97:264,105:ht,106:U,109:Yt,111:et,112:Mt,115:100,117:98,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},t(Kt,[2,102]),{84:[1,265]},t(Kt,[2,106],{22:[1,266]}),t(Kt,[2,107]),t(Kt,[2,110]),t(Kt,[2,112],{22:[1,267]}),t(Kt,[2,113]),t(Xt,[2,58]),t(Xt,[2,59]),{22:Vt,24:Ft,26:xt,38:ft,42:Lt,52:O,58:[1,268],66:A,67:J,73:bt,81:Ut,83:201,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},t(Xt,[2,66]),t(Xt,[2,61]),t(Xt,[2,62]),t(Xt,[2,63]),{66:[1,269]},t(Xt,[2,65]),t(Xt,[2,67]),{22:Vt,24:Ft,26:xt,38:ft,42:Lt,52:O,66:A,67:J,72:[1,270],73:bt,81:Ut,83:201,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},t(Xt,[2,69]),t(Xt,[2,70]),t(Xt,[2,72]),t(Xt,[2,71]),t(Xt,[2,73]),t(Be,[2,4]),t([22,52,66,67,91,95,105,106,109,111,112,122,123,124,125,126,127],[2,81]),{22:Vt,24:Ft,26:xt,38:ft,41:[1,271],42:Lt,52:O,66:A,67:J,73:bt,81:Ut,83:201,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{18:18,19:19,20:o,21:l,22:u,23:d,32:24,33:25,34:26,35:27,36:28,37:29,38:f,42:[1,272],43:31,44:p,46:g,48:b,50:35,51:45,52:k,54:46,66:T,67:L,86:E,87:I,88:V,89:H,90:G,91:Y,95:W,105:N,106:D,109:w,111:v,112:M,116:47,118:m,119:Q,120:x,121:ct,122:Dt,123:kt,124:j,125:ot,126:rt,127:nt},t(le,[2,56]),t(Kt,[2,115],{106:Le}),t(We,[2,125],{108:274,22:Pe,66:Ye,67:Ie,86:$e,102:ar,105:zt,109:Z,110:At,111:Nt,112:pe,113:Me}),t(ve,[2,127]),t(ve,[2,129]),t(ve,[2,130]),t(ve,[2,131]),t(ve,[2,132]),t(ve,[2,133]),t(ve,[2,134]),t(ve,[2,135]),t(ve,[2,136]),t(ve,[2,137]),t(ve,[2,138]),t(ve,[2,139]),t(Kt,[2,116],{106:Le}),t(Kt,[2,117],{106:Le}),{22:[1,275]},t(Kt,[2,118],{106:Le}),{22:[1,276]},t(Re,[2,124]),t(Kt,[2,98],{106:Le}),t(Kt,[2,99],{106:Le}),t(Kt,[2,100],{115:100,117:178,26:F,52:O,66:A,67:J,91:C,105:ht,106:U,109:Yt,111:et,112:Mt,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st}),t(Kt,[2,104]),{101:[1,277]},{101:[1,278]},{58:[1,279]},{68:[1,280]},{72:[1,281]},{9:282,20:Ot,21:P,23:z},t(K,[2,42]),{22:Pe,66:Ye,67:Ie,86:$e,102:ar,105:zt,107:283,108:244,109:Z,110:At,111:Nt,112:pe,113:Me},t(ve,[2,128]),{26:F,52:O,66:A,67:J,91:C,97:284,105:ht,106:U,109:Yt,111:et,112:Mt,115:100,117:98,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{26:F,52:O,66:A,67:J,91:C,97:285,105:ht,106:U,109:Yt,111:et,112:Mt,115:100,117:98,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},t(Kt,[2,108]),t(Kt,[2,114]),t(Xt,[2,60]),{22:Vt,24:Ft,26:xt,38:ft,39:286,42:Lt,52:O,66:A,67:J,73:bt,81:Ut,83:140,84:at,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},t(Xt,[2,68]),t(Nn,a,{17:287}),t(We,[2,126],{108:274,22:Pe,66:Ye,67:Ie,86:$e,102:ar,105:zt,109:Z,110:At,111:Nt,112:pe,113:Me}),t(Kt,[2,121],{115:100,117:178,22:[1,288],26:F,52:O,66:A,67:J,91:C,105:ht,106:U,109:Yt,111:et,112:Mt,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st}),t(Kt,[2,122],{115:100,117:178,22:[1,289],26:F,52:O,66:A,67:J,91:C,105:ht,106:U,109:Yt,111:et,112:Mt,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st}),{22:Vt,24:Ft,26:xt,38:ft,41:[1,290],42:Lt,52:O,66:A,67:J,73:bt,81:Ut,83:201,85:151,86:ie,87:dt,88:ee,89:fe,90:be,91:_e,92:ke,94:142,95:$t,105:ht,106:U,109:se,111:et,112:Mt,113:ye,114:Jt,115:148,122:Tt,123:gt,124:Et,125:wt,126:pt,127:st},{18:18,19:19,20:o,21:l,22:u,23:d,32:24,33:25,34:26,35:27,36:28,37:29,38:f,42:[1,291],43:31,44:p,46:g,48:b,50:35,51:45,52:k,54:46,66:T,67:L,86:E,87:I,88:V,89:H,90:G,91:Y,95:W,105:N,106:D,109:w,111:v,112:M,116:47,118:m,119:Q,120:x,121:ct,122:Dt,123:kt,124:j,125:ot,126:rt,127:nt},{22:Pe,66:Ye,67:Ie,86:$e,96:292,102:ar,105:zt,107:243,108:244,109:Z,110:At,111:Nt,112:pe,113:Me},{22:Pe,66:Ye,67:Ie,86:$e,96:293,102:ar,105:zt,107:243,108:244,109:Z,110:At,111:Nt,112:pe,113:Me},t(Xt,[2,64]),t(K,[2,41]),t(Kt,[2,119],{106:Le}),t(Kt,[2,120],{106:Le})],defaultActions:{2:[2,1],9:[2,5],10:[2,2],132:[2,7]},parseError:function(qt,te){if(te.recoverable)this.trace(qt);else{var oe=new Error(qt);throw oe.hash=te,oe}},parse:function(qt){var te=this,oe=[0],Rt=[],Ve=[null],q=[],Is=this.table,tt=\"\",Sr=0,Wu=0,Rd=2,Hu=1,Gu=q.slice.call(arguments,1),or=Object.create(this.lexer),Zn={yy:{}};for(var Qn in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Qn)&&(Zn.yy[Qn]=this.yy[Qn]);or.setInput(qt,Zn.yy),Zn.yy.lexer=or,Zn.yy.parser=this,typeof or.yylloc>\"u\"&&(or.yylloc={});var Os=or.yylloc;q.push(Os);var ll=or.options&&or.options.ranges;typeof Zn.yy.parseError==\"function\"?this.parseError=Zn.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function qu(){var Zr;return Zr=Rt.pop()||or.lex()||Hu,typeof Zr!=\"number\"&&(Zr instanceof Array&&(Rt=Zr,Zr=Rt.pop()),Zr=te.symbols_[Zr]||Zr),Zr}for(var xr,Se,Or,Ai,Bn={},Li,Kr,cl,Pa;;){if(Se=oe[oe.length-1],this.defaultActions[Se]?Or=this.defaultActions[Se]:((xr===null||typeof xr>\"u\")&&(xr=qu()),Or=Is[Se]&&Is[Se][xr]),typeof Or>\"u\"||!Or.length||!Or[0]){var Rs=\"\";Pa=[];for(Li in Is[Se])this.terminals_[Li]&&Li>Rd&&Pa.push(\"'\"+this.terminals_[Li]+\"'\");or.showPosition?Rs=\"Parse error on line \"+(Sr+1)+`:\n`+or.showPosition()+`\nExpecting `+Pa.join(\", \")+\", got '\"+(this.terminals_[xr]||xr)+\"'\":Rs=\"Parse error on line \"+(Sr+1)+\": Unexpected \"+(xr==Hu?\"end of input\":\"'\"+(this.terminals_[xr]||xr)+\"'\"),this.parseError(Rs,{text:or.match,token:this.terminals_[xr]||xr,line:or.yylineno,loc:Os,expected:Pa})}if(Or[0]instanceof Array&&Or.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+Se+\", token: \"+xr);switch(Or[0]){case 1:oe.push(xr),Ve.push(or.yytext),q.push(or.yylloc),oe.push(Or[1]),xr=null,Wu=or.yyleng,tt=or.yytext,Sr=or.yylineno,Os=or.yylloc;break;case 2:if(Kr=this.productions_[Or[1]][1],Bn.$=Ve[Ve.length-Kr],Bn._$={first_line:q[q.length-(Kr||1)].first_line,last_line:q[q.length-1].last_line,first_column:q[q.length-(Kr||1)].first_column,last_column:q[q.length-1].last_column},ll&&(Bn._$.range=[q[q.length-(Kr||1)].range[0],q[q.length-1].range[1]]),Ai=this.performAction.apply(Bn,[tt,Wu,Sr,Zn.yy,Or[1],Ve,q].concat(Gu)),typeof Ai<\"u\")return Ai;Kr&&(oe=oe.slice(0,-1*Kr*2),Ve=Ve.slice(0,-1*Kr),q=q.slice(0,-1*Kr)),oe.push(this.productions_[Or[1]][0]),Ve.push(Bn.$),q.push(Bn._$),cl=Is[oe[oe.length-2]][oe[oe.length-1]],oe.push(cl);break;case 3:return!0}}return!0}},Xi=function(){var zr={EOF:1,parseError:function(te,oe){if(this.yy.parser)this.yy.parser.parseError(te,oe);else throw new Error(te)},setInput:function(qt,te){return this.yy=te||this.yy||{},this._input=qt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var qt=this._input[0];this.yytext+=qt,this.yyleng++,this.offset++,this.match+=qt,this.matched+=qt;var te=qt.match(/(?:\\r\\n?|\\n).*/g);return te?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),qt},unput:function(qt){var te=qt.length,oe=qt.split(/(?:\\r\\n?|\\n)/g);this._input=qt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-te),this.offset-=te;var Rt=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),oe.length-1&&(this.yylineno-=oe.length-1);var Ve=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:oe?(oe.length===Rt.length?this.yylloc.first_column:0)+Rt[Rt.length-oe.length].length-oe[0].length:this.yylloc.first_column-te},this.options.ranges&&(this.yylloc.range=[Ve[0],Ve[0]+this.yyleng-te]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno});return this},less:function(qt){this.unput(this.match.slice(qt))},pastInput:function(){var qt=this.matched.substr(0,this.matched.length-this.match.length);return(qt.length>20?\"...\":\"\")+qt.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var qt=this.match;return qt.length<20&&(qt+=this._input.substr(0,20-qt.length)),(qt.substr(0,20)+(qt.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var qt=this.pastInput(),te=new Array(qt.length+1).join(\"-\");return qt+this.upcomingInput()+`\n`+te+\"^\"},test_match:function(qt,te){var oe,Rt,Ve;if(this.options.backtrack_lexer&&(Ve={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Ve.yylloc.range=this.yylloc.range.slice(0))),Rt=qt[0].match(/(?:\\r\\n?|\\n).*/g),Rt&&(this.yylineno+=Rt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Rt?Rt[Rt.length-1].length-Rt[Rt.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+qt[0].length},this.yytext+=qt[0],this.match+=qt[0],this.matches=qt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(qt[0].length),this.matched+=qt[0],oe=this.performAction.call(this,this.yy,this,te,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),oe)return oe;if(this._backtrack){for(var q in Ve)this[q]=Ve[q];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var qt,te,oe,Rt;this._more||(this.yytext=\"\",this.match=\"\");for(var Ve=this._currentRules(),q=0;q<Ve.length;q++)if(oe=this._input.match(this.rules[Ve[q]]),oe&&(!te||oe[0].length>te[0].length)){if(te=oe,Rt=q,this.options.backtrack_lexer){if(qt=this.test_match(oe,Ve[q]),qt!==!1)return qt;if(this._backtrack){te=!1;continue}else return!1}else if(!this.options.flex)break}return te?(qt=this.test_match(te,Ve[Rt]),qt!==!1?qt:!1):this._input===\"\"?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. Unrecognized text.\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var te=this.next();return te||this.lex()},begin:function(te){this.conditionStack.push(te)},popState:function(){var te=this.conditionStack.length-1;return te>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(te){return te=this.conditionStack.length-1-Math.abs(te||0),te>=0?this.conditionStack[te]:\"INITIAL\"},pushState:function(te){this.begin(te)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(te,oe,Rt,Ve){switch(Rt){case 0:return this.begin(\"open_directive\"),12;case 1:return this.begin(\"type_directive\"),13;case 2:return this.popState(),this.begin(\"arg_directive\"),10;case 3:return this.popState(),this.popState(),15;case 4:return 14;case 5:break;case 6:break;case 7:return this.begin(\"acc_title\"),44;case 8:return this.popState(),\"acc_title_value\";case 9:return this.begin(\"acc_descr\"),46;case 10:return this.popState(),\"acc_descr_value\";case 11:this.begin(\"acc_descr_multiline\");break;case 12:this.popState();break;case 13:return\"acc_descr_multiline_value\";case 14:this.begin(\"string\");break;case 15:this.popState();break;case 16:return\"STR\";case 17:return 86;case 18:return 95;case 19:return 87;case 20:return 104;case 21:return 88;case 22:return 89;case 23:this.begin(\"href\");break;case 24:this.popState();break;case 25:return 100;case 26:this.begin(\"callbackname\");break;case 27:this.popState();break;case 28:this.popState(),this.begin(\"callbackargs\");break;case 29:return 98;case 30:this.popState();break;case 31:return 99;case 32:this.begin(\"click\");break;case 33:this.popState();break;case 34:return 90;case 35:return te.lex.firstGraph()&&this.begin(\"dir\"),24;case 36:return te.lex.firstGraph()&&this.begin(\"dir\"),24;case 37:return 38;case 38:return 42;case 39:return 101;case 40:return 101;case 41:return 101;case 42:return 101;case 43:return this.popState(),25;case 44:return this.popState(),26;case 45:return this.popState(),26;case 46:return this.popState(),26;case 47:return this.popState(),26;case 48:return this.popState(),26;case 49:return this.popState(),26;case 50:return this.popState(),26;case 51:return this.popState(),26;case 52:return this.popState(),26;case 53:return this.popState(),26;case 54:return 118;case 55:return 119;case 56:return 120;case 57:return 121;case 58:return 105;case 59:return 111;case 60:return 53;case 61:return 67;case 62:return 52;case 63:return 20;case 64:return 106;case 65:return 126;case 66:return 82;case 67:return 82;case 68:return 82;case 69:return 81;case 70:return 81;case 71:return 81;case 72:return 59;case 73:return 60;case 74:return 61;case 75:return 62;case 76:return 63;case 77:return 64;case 78:return 65;case 79:return 69;case 80:return 70;case 81:return 55;case 82:return 56;case 83:return 109;case 84:return 112;case 85:return 127;case 86:return 124;case 87:return 113;case 88:return 125;case 89:return 125;case 90:return 114;case 91:return 73;case 92:return 92;case 93:return\"SEP\";case 94:return 91;case 95:return 66;case 96:return 75;case 97:return 74;case 98:return 77;case 99:return 76;case 100:return 122;case 101:return 123;case 102:return 68;case 103:return 57;case 104:return 58;case 105:return 40;case 106:return 41;case 107:return 71;case 108:return 72;case 109:return 133;case 110:return 21;case 111:return 22;case 112:return 23}},rules:[/^(?:%%\\{)/,/^(?:((?:(?!\\}%%)[^:.])*))/,/^(?::)/,/^(?:\\}%%)/,/^(?:((?:(?!\\}%%).|\\n)*))/,/^(?:%%(?!\\{)[^\\n]*)/,/^(?:[^\\}]%%[^\\n]*)/,/^(?:accTitle\\s*:\\s*)/,/^(?:(?!\\n||)*[^\\n]*)/,/^(?:accDescr\\s*:\\s*)/,/^(?:(?!\\n||)*[^\\n]*)/,/^(?:accDescr\\s*\\{\\s*)/,/^(?:[\\}])/,/^(?:[^\\}]*)/,/^(?:[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:style\\b)/,/^(?:default\\b)/,/^(?:linkStyle\\b)/,/^(?:interpolate\\b)/,/^(?:classDef\\b)/,/^(?:class\\b)/,/^(?:href[\\s]+[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:call[\\s]+)/,/^(?:\\([\\s]*\\))/,/^(?:\\()/,/^(?:[^(]*)/,/^(?:\\))/,/^(?:[^)]*)/,/^(?:click[\\s]+)/,/^(?:[\\s\\n])/,/^(?:[^\\s\\n]*)/,/^(?:graph\\b)/,/^(?:flowchart\\b)/,/^(?:subgraph\\b)/,/^(?:end\\b\\s*)/,/^(?:_self\\b)/,/^(?:_blank\\b)/,/^(?:_parent\\b)/,/^(?:_top\\b)/,/^(?:(\\r?\\n)*\\s*\\n)/,/^(?:\\s*LR\\b)/,/^(?:\\s*RL\\b)/,/^(?:\\s*TB\\b)/,/^(?:\\s*BT\\b)/,/^(?:\\s*TD\\b)/,/^(?:\\s*BR\\b)/,/^(?:\\s*<)/,/^(?:\\s*>)/,/^(?:\\s*\\^)/,/^(?:\\s*v\\b)/,/^(?:.*direction\\s+TB[^\\n]*)/,/^(?:.*direction\\s+BT[^\\n]*)/,/^(?:.*direction\\s+RL[^\\n]*)/,/^(?:.*direction\\s+LR[^\\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\\*)/,/^(?:\\s*[xo<]?--+[-xo>]\\s*)/,/^(?:\\s*[xo<]?==+[=xo>]\\s*)/,/^(?:\\s*[xo<]?-?\\.+-[xo>]?\\s*)/,/^(?:\\s*[xo<]?--\\s*)/,/^(?:\\s*[xo<]?==\\s*)/,/^(?:\\s*[xo<]?-\\.\\s*)/,/^(?:\\(-)/,/^(?:-\\))/,/^(?:\\(\\[)/,/^(?:\\]\\))/,/^(?:\\[\\[)/,/^(?:\\]\\])/,/^(?:\\[\\|)/,/^(?:\\[\\()/,/^(?:\\)\\])/,/^(?:\\(\\(\\()/,/^(?:\\)\\)\\))/,/^(?:-)/,/^(?:\\.)/,/^(?:[\\_])/,/^(?:\\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:<)/,/^(?:>)/,/^(?:\\^)/,/^(?:\\\\\\|)/,/^(?:v\\b)/,/^(?:[A-Za-z]+)/,/^(?:\\\\\\])/,/^(?:\\[\\/)/,/^(?:\\/\\])/,/^(?:\\[\\\\)/,/^(?:[!\"#$%&'*+,-.`?\\\\_/])/,/^(?:[\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6]|[\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377]|[\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5]|[\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA]|[\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE]|[\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA]|[\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0]|[\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977]|[\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2]|[\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A]|[\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39]|[\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8]|[\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C]|[\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C]|[\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99]|[\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0]|[\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D]|[\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3]|[\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10]|[\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1]|[\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81]|[\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3]|[\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6]|[\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A]|[\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081]|[\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D]|[\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0]|[\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310]|[\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C]|[\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711]|[\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7]|[\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C]|[\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16]|[\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF]|[\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC]|[\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D]|[\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D]|[\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3]|[\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F]|[\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128]|[\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184]|[\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3]|[\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6]|[\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE]|[\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C]|[\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D]|[\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC]|[\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B]|[\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788]|[\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805]|[\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB]|[\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28]|[\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5]|[\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4]|[\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E]|[\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D]|[\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36]|[\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D]|[\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC]|[\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF]|[\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC])/,/^(?:\\|)/,/^(?:\\()/,/^(?:\\))/,/^(?:\\[)/,/^(?:\\])/,/^(?:\\{)/,/^(?:\\})/,/^(?:\")/,/^(?:(\\r?\\n)+)/,/^(?:\\s)/,/^(?:$)/],conditions:{close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[30,31],inclusive:!1},callbackname:{rules:[27,28,29],inclusive:!1},href:{rules:[24,25],inclusive:!1},click:{rules:[33,34],inclusive:!1},vertex:{rules:[],inclusive:!1},dir:{rules:[43,44,45,46,47,48,49,50,51,52,53],inclusive:!1},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},string:{rules:[15,16],inclusive:!1},INITIAL:{rules:[0,5,6,7,9,11,14,17,18,19,20,21,22,23,26,32,35,36,37,38,39,40,41,42,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112],inclusive:!0}}};return zr}();Ne.lexer=Xi;function Ki(){this.yy={}}return Ki.prototype=Ne,Ne.Parser=Ki,new Ki}();T0.parser=T0;const jm=T0,MI=(t,e)=>{var r;return((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)===\"dagre-wrapper\"?!1:t.match(/^\\s*graph/)!==null},NI=(t,e)=>{var r;return((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)===\"dagre-wrapper\"&&t.match(/^\\s*graph/)!==null?!0:t.match(/^\\s*flowchart/)!==null},BI=\"flowchart-\";let $m=0,E0=$(),Ue={},Ds=[],Sa={},xi=[],mu={},C0={},bu=0,S0=!0,Gn,_u,xu=[];const vu=t=>he.sanitizeText(t,E0),II=function(t,e,r){ze.parseDirective(this,t,e,r)},ku=function(t){const e=Object.keys(Ue);for(const r of e)if(Ue[r].id===t)return Ue[r].domId;return t},OI=function(t,e,r,n,i,s,a={}){let o,l=t;l!==void 0&&l.trim().length!==0&&(Ue[l]===void 0&&(Ue[l]={id:l,domId:BI+l+\"-\"+$m,styles:[],classes:[]}),$m++,e!==void 0?(E0=$(),o=vu(e.trim()),o[0]==='\"'&&o[o.length-1]==='\"'&&(o=o.substring(1,o.length-1)),Ue[l].text=o):Ue[l].text===void 0&&(Ue[l].text=t),r!==void 0&&(Ue[l].type=r),n!=null&&n.forEach(function(u){Ue[l].styles.push(u)}),i!=null&&i.forEach(function(u){Ue[l].classes.push(u)}),s!==void 0&&(Ue[l].dir=s),Ue[l].props===void 0?Ue[l].props=a:a!==void 0&&Object.assign(Ue[l].props,a))},RI=function(t,e,r,n){const a={start:t,end:e,type:void 0,text:\"\"};n=r.text,n!==void 0&&(a.text=vu(n.trim()),a.text[0]==='\"'&&a.text[a.text.length-1]==='\"'&&(a.text=a.text.substring(1,a.text.length-1))),r!==void 0&&(a.type=r.type,a.stroke=r.stroke,a.length=r.length),Ds.push(a)},FI=function(t,e,r,n){let i,s;for(i=0;i<t.length;i++)for(s=0;s<e.length;s++)RI(t[i],e[s],r,n)},PI=function(t,e){t.forEach(function(r){r===\"default\"?Ds.defaultInterpolate=e:Ds[r].interpolate=e})},YI=function(t,e){t.forEach(function(r){r===\"default\"?Ds.defaultStyle=e:(ge.isSubstringInArray(\"fill\",e)===-1&&e.push(\"fill:none\"),Ds[r].style=e)})},VI=function(t,e){Sa[t]===void 0&&(Sa[t]={id:t,styles:[],textStyles:[]}),e!=null&&e.forEach(function(r){if(r.match(\"color\")){const i=r.replace(\"fill\",\"bgFill\").replace(\"color\",\"fill\");Sa[t].textStyles.push(i)}Sa[t].styles.push(r)})},UI=function(t){Gn=t,Gn.match(/.*</)&&(Gn=\"RL\"),Gn.match(/.*\\^/)&&(Gn=\"BT\"),Gn.match(/.*>/)&&(Gn=\"LR\"),Gn.match(/.*v/)&&(Gn=\"TB\")},A0=function(t,e){t.split(\",\").forEach(function(r){let n=r;Ue[n]!==void 0&&Ue[n].classes.push(e),mu[n]!==void 0&&mu[n].classes.push(e)})},zI=function(t,e){t.split(\",\").forEach(function(r){e!==void 0&&(C0[_u===\"gen-1\"?ku(r):r]=vu(e))})},WI=function(t,e,r){let n=ku(t);if($().securityLevel!==\"loose\"||e===void 0)return;let i=[];if(typeof r==\"string\"){i=r.split(/,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/);for(let s=0;s<i.length;s++){let a=i[s].trim();a.charAt(0)==='\"'&&a.charAt(a.length-1)==='\"'&&(a=a.substr(1,a.length-2)),i[s]=a}}i.length===0&&i.push(t),Ue[t]!==void 0&&(Ue[t].haveCallback=!0,xu.push(function(){const s=document.querySelector(`[id=\"${n}\"]`);s!==null&&s.addEventListener(\"click\",function(){ge.runFunc(e,...i)},!1)}))},HI=function(t,e,r){t.split(\",\").forEach(function(n){Ue[n]!==void 0&&(Ue[n].link=ge.formatUrl(e,E0),Ue[n].linkTarget=r)}),A0(t,\"clickable\")},GI=function(t){return C0[t]},qI=function(t,e,r){t.split(\",\").forEach(function(n){WI(n,e,r)}),A0(t,\"clickable\")},jI=function(t){xu.forEach(function(e){e(t)})},$I=function(){return Gn.trim()},XI=function(){return Ue},KI=function(){return Ds},ZI=function(){return Sa},Xm=function(t){let e=St(\".mermaidTooltip\");(e._groups||e)[0][0]===null&&(e=St(\"body\").append(\"div\").attr(\"class\",\"mermaidTooltip\").style(\"opacity\",0)),St(t).select(\"svg\").selectAll(\"g.node\").on(\"mouseover\",function(){const i=St(this);if(i.attr(\"title\")===null)return;const a=this.getBoundingClientRect();e.transition().duration(200).style(\"opacity\",\".9\"),e.text(i.attr(\"title\")).style(\"left\",window.scrollX+a.left+(a.right-a.left)/2+\"px\").style(\"top\",window.scrollY+a.top-14+document.body.scrollTop+\"px\"),e.html(e.html().replace(/<br\\/>/g,\"<br/>\")),i.classed(\"hover\",!0)}).on(\"mouseout\",function(){e.transition().duration(500).style(\"opacity\",0),St(this).classed(\"hover\",!1)})};xu.push(Xm);const QI=function(t=\"gen-1\"){Ue={},Sa={},Ds=[],xu=[Xm],xi=[],mu={},bu=0,C0=[],S0=!0,_u=t,vn()},JI=t=>{_u=t||\"gen-1\"},tO=function(){return\"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;\"},eO=function(t,e,r){let n=t.trim(),i=r;t===r&&r.match(/\\s/)&&(n=void 0);function s(d){const f={boolean:{},number:{},string:{}},p=[];let g;return{nodeList:d.filter(function(k){const T=typeof k;return k.stmt&&k.stmt===\"dir\"?(g=k.value,!1):k.trim()===\"\"?!1:T in f?f[T].hasOwnProperty(k)?!1:f[T][k]=!0:p.includes(k)?!1:p.push(k)}),dir:g}}let a=[];const{nodeList:o,dir:l}=s(a.concat.apply(a,e));if(a=o,_u===\"gen-1\")for(let d=0;d<a.length;d++)a[d]=ku(a[d]);n=n||\"subGraph\"+bu,i=i||\"\",i=vu(i),bu=bu+1;const u={id:n,nodes:a,title:i.trim(),classes:[],dir:l};return B.info(\"Adding\",u.id,u.nodes,u.dir),u.nodes=Jm(u,xi).nodes,xi.push(u),mu[n]=u,n},rO=function(t){for(const[e,r]of xi.entries())if(r.id===t)return e;return-1};let zo=-1;const Km=[],Zm=function(t,e){const r=xi[e].nodes;if(zo=zo+1,zo>2e3)return;if(Km[zo]=e,xi[e].id===t)return{result:!0,count:0};let n=0,i=1;for(;n<r.length;){const s=rO(r[n]);if(s>=0){const a=Zm(t,s);if(a.result)return{result:!0,count:i+a.count};i=i+a.count}n=n+1}return{result:!1,count:i}},nO=function(t){return Km[t]},iO=function(){zo=-1,xi.length>0&&Zm(\"none\",xi.length-1)},sO=function(){return xi},aO=()=>S0?(S0=!1,!0):!1,oO=t=>{let e=t.trim(),r=\"arrow_open\";switch(e[0]){case\"<\":r=\"arrow_point\",e=e.slice(1);break;case\"x\":r=\"arrow_cross\",e=e.slice(1);break;case\"o\":r=\"arrow_circle\",e=e.slice(1);break}let n=\"normal\";return e.includes(\"=\")&&(n=\"thick\"),e.includes(\".\")&&(n=\"dotted\"),{type:r,stroke:n}},lO=(t,e)=>{const r=e.length;let n=0;for(let i=0;i<r;++i)e[i]===t&&++n;return n},cO=t=>{const e=t.trim();let r=e.slice(0,-1),n=\"arrow_open\";switch(e.slice(-1)){case\"x\":n=\"arrow_cross\",e[0]===\"x\"&&(n=\"double_\"+n,r=r.slice(1));break;case\">\":n=\"arrow_point\",e[0]===\"<\"&&(n=\"double_\"+n,r=r.slice(1));break;case\"o\":n=\"arrow_circle\",e[0]===\"o\"&&(n=\"double_\"+n,r=r.slice(1));break}let i=\"normal\",s=r.length-1;r[0]===\"=\"&&(i=\"thick\");let a=lO(\".\",r);return a&&(i=\"dotted\",s=a),{type:n,stroke:i,length:s}},uO=(t,e)=>{const r=cO(t);let n;if(e){if(n=oO(e),n.stroke!==r.stroke)return{type:\"INVALID\",stroke:\"INVALID\"};if(n.type===\"arrow_open\")n.type=r.type;else{if(n.type!==r.type)return{type:\"INVALID\",stroke:\"INVALID\"};n.type=\"double_\"+n.type}return n.type===\"double_arrow\"&&(n.type=\"double_arrow_point\"),n.length=r.length,n}return r},Qm=(t,e)=>{let r=!1;return t.forEach(n=>{n.nodes.indexOf(e)>=0&&(r=!0)}),r},Jm=(t,e)=>{const r=[];return t.nodes.forEach((n,i)=>{Qm(e,n)||r.push(t.nodes[i])}),{nodes:r}},vi={parseDirective:II,defaultConfig:()=>ha.flowchart,setAccTitle:nn,getAccTitle:kn,getAccDescription:Tn,setAccDescription:wn,addVertex:OI,lookUpDomId:ku,addLink:FI,updateLinkInterpolate:PI,updateLink:YI,addClass:VI,setDirection:UI,setClass:A0,setTooltip:zI,getTooltip:GI,setClickEvent:qI,setLink:HI,bindFunctions:jI,getDirection:$I,getVertices:XI,getEdges:KI,getClasses:ZI,clear:QI,setGen:JI,defaultStyle:tO,addSubGraph:eO,getDepthFirstPos:nO,indexNodes:iO,getSubGraphs:sO,destructLink:uO,lex:{firstGraph:aO},exists:Qm,makeUniq:Jm,setDiagramTitle:hi,getDiagramTitle:di};function t3(t,e){return!!t.children(e).length}function e3(t){return L0(t.v)+\":\"+L0(t.w)+\":\"+L0(t.name)}var hO=/:/g;function L0(t){return t?String(t).replace(hO,\"\\\\:\"):\"\"}function qn(t,e){e&&t.attr(\"style\",e)}function r3(t,e,r){e&&t.attr(\"class\",e).attr(\"class\",r+\" \"+t.attr(\"class\"))}function Dn(t,e){var r=e.graph();if(oy(r)){var n=r.transition;if(aa(n))return n(t)}return t}var D0={normal:fO,vee:pO,undirected:gO};function dO(t){D0=t}function fO(t,e,r,n){var i=t.append(\"marker\").attr(\"id\",e).attr(\"viewBox\",\"0 0 10 10\").attr(\"refX\",9).attr(\"refY\",5).attr(\"markerUnits\",\"strokeWidth\").attr(\"markerWidth\",8).attr(\"markerHeight\",6).attr(\"orient\",\"auto\"),s=i.append(\"path\").attr(\"d\",\"M 0 0 L 10 5 L 0 10 z\").style(\"stroke-width\",1).style(\"stroke-dasharray\",\"1,0\");qn(s,r[n+\"Style\"]),r[n+\"Class\"]&&s.attr(\"class\",r[n+\"Class\"])}function pO(t,e,r,n){var i=t.append(\"marker\").attr(\"id\",e).attr(\"viewBox\",\"0 0 10 10\").attr(\"refX\",9).attr(\"refY\",5).attr(\"markerUnits\",\"strokeWidth\").attr(\"markerWidth\",8).attr(\"markerHeight\",6).attr(\"orient\",\"auto\"),s=i.append(\"path\").attr(\"d\",\"M 0 0 L 10 5 L 0 10 L 4 5 z\").style(\"stroke-width\",1).style(\"stroke-dasharray\",\"1,0\");qn(s,r[n+\"Style\"]),r[n+\"Class\"]&&s.attr(\"class\",r[n+\"Class\"])}function gO(t,e,r,n){var i=t.append(\"marker\").attr(\"id\",e).attr(\"viewBox\",\"0 0 10 10\").attr(\"refX\",9).attr(\"refY\",5).attr(\"markerUnits\",\"strokeWidth\").attr(\"markerWidth\",8).attr(\"markerHeight\",6).attr(\"orient\",\"auto\"),s=i.append(\"path\").attr(\"d\",\"M 0 5 L 10 5\").style(\"stroke-width\",1).style(\"stroke-dasharray\",\"1,0\");qn(s,r[n+\"Style\"]),r[n+\"Class\"]&&s.attr(\"class\",r[n+\"Class\"])}function M0(t,e){var r=t.append(\"foreignObject\").attr(\"width\",\"100000\"),n=r.append(\"xhtml:div\");n.attr(\"xmlns\",\"http://www.w3.org/1999/xhtml\");var i=e.label;switch(typeof i){case\"function\":n.insert(i);break;case\"object\":n.insert(function(){return i});break;default:n.html(i)}qn(n,e.labelStyle),n.style(\"display\",\"inline-block\"),n.style(\"white-space\",\"nowrap\");var s=n.node().getBoundingClientRect();return r.attr(\"width\",s.width).attr(\"height\",s.height),r}function yO(t,e){var r=t;return r.node().appendChild(e.label),qn(r,e.labelStyle),r}function mO(t,e){for(var r=t.append(\"text\"),n=bO(e.label).split(`\n`),i=0;i<n.length;i++)r.append(\"tspan\").attr(\"xml:space\",\"preserve\").attr(\"dy\",\"1em\").attr(\"x\",\"1\").text(n[i]);return qn(r,e.labelStyle),r}function bO(t){for(var e=\"\",r=!1,n,i=0;i<t.length;++i)if(n=t[i],r){switch(n){case\"n\":e+=`\n`;break;default:e+=n}r=!1}else n===\"\\\\\"?r=!0:e+=n;return e}function N0(t,e,r){var n=e.label,i=t.append(\"g\");e.labelType===\"svg\"?yO(i,e):typeof n!=\"string\"||e.labelType===\"html\"?M0(i,e):mO(i,e);var s=i.node().getBBox(),a;switch(r){case\"top\":a=-e.height/2;break;case\"bottom\":a=e.height/2-s.height;break;default:a=-s.height/2}return i.attr(\"transform\",\"translate(\"+-s.width/2+\",\"+a+\")\"),i}var B0=function(t,e){var r=e.nodes().filter(function(s){return t3(e,s)}),n=t.selectAll(\"g.cluster\").data(r,function(s){return s});Dn(n.exit(),e).style(\"opacity\",0).remove();var i=n.enter().append(\"g\").attr(\"class\",\"cluster\").attr(\"id\",function(s){var a=e.node(s);return a.id}).style(\"opacity\",0).each(function(s){var a=e.node(s),o=St(this);St(this).append(\"rect\");var l=o.append(\"g\").attr(\"class\",\"label\");N0(l,a,a.clusterLabelPos)});return n=n.merge(i),n=Dn(n,e).style(\"opacity\",1),n.selectAll(\"rect\").each(function(s){var a=e.node(s),o=St(this);qn(o,a.style)}),n};function _O(t){B0=t}let I0=function(t,e){var r=t.selectAll(\"g.edgeLabel\").data(e.edges(),function(i){return e3(i)}).classed(\"update\",!0);r.exit().remove(),r.enter().append(\"g\").classed(\"edgeLabel\",!0).style(\"opacity\",0),r=t.selectAll(\"g.edgeLabel\"),r.each(function(i){var s=St(this);s.select(\".label\").remove();var a=e.edge(i),o=N0(s,e.edge(i),0).classed(\"label\",!0),l=o.node().getBBox();a.labelId&&o.attr(\"id\",a.labelId),me(a,\"width\")||(a.width=l.width),me(a,\"height\")||(a.height=l.height)});var n;return r.exit?n=r.exit():n=r.selectAll(null),Dn(n,e).style(\"opacity\",0).remove(),r};function xO(t){I0=t}function n3(t,e){return t.intersect(e)}var O0=function(t,e,r){var n=t.selectAll(\"g.edgePath\").data(e.edges(),function(a){return e3(a)}).classed(\"update\",!0),i=EO(n,e);CO(n,e);var s=n.merge!==void 0?n.merge(i):n;return Dn(s,e).style(\"opacity\",1),s.each(function(a){var o=St(this),l=e.edge(a);l.elem=this,l.id&&o.attr(\"id\",l.id),r3(o,l.class,(o.classed(\"update\")?\"update \":\"\")+\"edgePath\")}),s.selectAll(\"path.path\").each(function(a){var o=e.edge(a);o.arrowheadId=ou(\"arrowhead\");var l=St(this).attr(\"marker-end\",function(){return\"url(\"+kO(location.href,o.arrowheadId)+\")\"}).style(\"fill\",\"none\");Dn(l,e).attr(\"d\",function(u){return wO(e,u)}),qn(l,o.style)}),s.selectAll(\"defs *\").remove(),s.selectAll(\"defs\").each(function(a){var o=e.edge(a),l=r[o.arrowhead];l(St(this),o.arrowheadId,o,\"arrowhead\")}),s};function vO(t){O0=t}function kO(t,e){var r=t.split(\"#\")[0];return r+\"#\"+e}function wO(t,e){var r=t.edge(e),n=t.node(e.v),i=t.node(e.w),s=r.points.slice(1,r.points.length-1);return s.unshift(n3(n,s[0])),s.push(n3(i,s[s.length-1])),i3(r,s)}function i3(t,e){var r=(Js||S6.line)().x(function(n){return n.x}).y(function(n){return n.y});return(r.curve||r.interpolate)(t.curve),r(e)}function TO(t){var e=t.getBBox(),r=t.ownerSVGElement.getScreenCTM().inverse().multiply(t.getScreenCTM()).translate(e.width/2,e.height/2);return{x:r.e,y:r.f}}function EO(t,e){var r=t.enter().append(\"g\").attr(\"class\",\"edgePath\").style(\"opacity\",0);return r.append(\"path\").attr(\"class\",\"path\").attr(\"d\",function(n){var i=e.edge(n),s=e.node(n.v).elem,a=Ss(i.points.length).map(function(){return TO(s)});return i3(i,a)}),r.append(\"defs\"),r}function CO(t,e){var r=t.exit();Dn(r,e).style(\"opacity\",0).remove()}var R0=function(t,e,r){var n=e.nodes().filter(function(a){return!t3(e,a)}),i=t.selectAll(\"g.node\").data(n,function(a){return a}).classed(\"update\",!0);i.exit().remove(),i.enter().append(\"g\").attr(\"class\",\"node\").style(\"opacity\",0),i=t.selectAll(\"g.node\"),i.each(function(a){var o=e.node(a),l=St(this);r3(l,o.class,(l.classed(\"update\")?\"update \":\"\")+\"node\"),l.select(\"g.label\").remove();var u=l.append(\"g\").attr(\"class\",\"label\"),d=N0(u,o),f=r[o.shape],p=No(d.node().getBBox(),\"width\",\"height\");o.elem=this,o.id&&l.attr(\"id\",o.id),o.labelId&&u.attr(\"id\",o.labelId),me(o,\"width\")&&(p.width=o.width),me(o,\"height\")&&(p.height=o.height),p.width+=o.paddingLeft+o.paddingRight,p.height+=o.paddingTop+o.paddingBottom,u.attr(\"transform\",\"translate(\"+(o.paddingLeft-o.paddingRight)/2+\",\"+(o.paddingTop-o.paddingBottom)/2+\")\");var g=St(this);g.select(\".label-container\").remove();var b=f(g,p,o).classed(\"label-container\",!0);qn(b,o.style);var k=b.node().getBBox();o.width=k.width,o.height=k.height});var s;return i.exit?s=i.exit():s=i.selectAll(null),Dn(s,e).style(\"opacity\",0).remove(),i};function SO(t){R0=t}function AO(t,e){var r=t.filter(function(){return!St(this).classed(\"update\")});function n(i){var s=e.node(i);return\"translate(\"+s.x+\",\"+s.y+\")\"}r.attr(\"transform\",n),Dn(t,e).style(\"opacity\",1).attr(\"transform\",n),Dn(r.selectAll(\"rect\"),e).attr(\"width\",function(i){return e.node(i).width}).attr(\"height\",function(i){return e.node(i).height}).attr(\"x\",function(i){var s=e.node(i);return-s.width/2}).attr(\"y\",function(i){var s=e.node(i);return-s.height/2})}function LO(t,e){var r=t.filter(function(){return!St(this).classed(\"update\")});function n(i){var s=e.edge(i);return me(s,\"x\")?\"translate(\"+s.x+\",\"+s.y+\")\":\"\"}r.attr(\"transform\",n),Dn(t,e).style(\"opacity\",1).attr(\"transform\",n)}function DO(t,e){var r=t.filter(function(){return!St(this).classed(\"update\")});function n(i){var s=e.node(i);return\"translate(\"+s.x+\",\"+s.y+\")\"}r.attr(\"transform\",n),Dn(t,e).style(\"opacity\",1).attr(\"transform\",n)}function s3(t,e,r,n){var i=t.x,s=t.y,a=i-n.x,o=s-n.y,l=Math.sqrt(e*e*o*o+r*r*a*a),u=Math.abs(e*r*a/l);n.x<i&&(u=-u);var d=Math.abs(e*r*o/l);return n.y<s&&(d=-d),{x:i+u,y:s+d}}function MO(t,e,r){return s3(t,e,e,r)}function NO(t,e,r,n){var i,s,a,o,l,u,d,f,p,g,b,k,T,L,E;if(i=e.y-t.y,a=t.x-e.x,l=e.x*t.y-t.x*e.y,p=i*r.x+a*r.y+l,g=i*n.x+a*n.y+l,!(p!==0&&g!==0&&a3(p,g))&&(s=n.y-r.y,o=r.x-n.x,u=n.x*r.y-r.x*n.y,d=s*t.x+o*t.y+u,f=s*e.x+o*e.y+u,!(d!==0&&f!==0&&a3(d,f))&&(b=i*o-s*a,b!==0)))return k=Math.abs(b/2),T=a*u-o*l,L=T<0?(T-k)/b:(T+k)/b,T=s*l-i*u,E=T<0?(T-k)/b:(T+k)/b,{x:L,y:E}}function a3(t,e){return t*e>0}function jn(t,e,r){var n=t.x,i=t.y,s=[],a=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;e.forEach(function(b){a=Math.min(a,b.x),o=Math.min(o,b.y)});for(var l=n-t.width/2-a,u=i-t.height/2-o,d=0;d<e.length;d++){var f=e[d],p=e[d<e.length-1?d+1:0],g=NO(t,r,{x:l+f.x,y:u+f.y},{x:l+p.x,y:u+p.y});g&&s.push(g)}return s.length?(s.length>1&&s.sort(function(b,k){var T=b.x-r.x,L=b.y-r.y,E=Math.sqrt(T*T+L*L),I=k.x-r.x,V=k.y-r.y,H=Math.sqrt(I*I+V*V);return E<H?-1:E===H?0:1}),s[0]):(console.log(\"NO INTERSECTION FOUND, RETURN NODE CENTER\",t),t)}function F0(t,e){var r=t.x,n=t.y,i=e.x-r,s=e.y-n,a=t.width/2,o=t.height/2,l,u;return Math.abs(s)*a>Math.abs(i)*o?(s<0&&(o=-o),l=s===0?0:o*i/s,u=o):(i<0&&(a=-a),l=a,u=i===0?0:a*s/i),{x:r+l,y:n+u}}var P0={rect:IO,ellipse:OO,circle:RO,diamond:FO};function BO(t){P0=t}function IO(t,e,r){var n=t.insert(\"rect\",\":first-child\").attr(\"rx\",r.rx).attr(\"ry\",r.ry).attr(\"x\",-e.width/2).attr(\"y\",-e.height/2).attr(\"width\",e.width).attr(\"height\",e.height);return r.intersect=function(i){return F0(r,i)},n}function OO(t,e,r){var n=e.width/2,i=e.height/2,s=t.insert(\"ellipse\",\":first-child\").attr(\"x\",-e.width/2).attr(\"y\",-e.height/2).attr(\"rx\",n).attr(\"ry\",i);return r.intersect=function(a){return s3(r,n,i,a)},s}function RO(t,e,r){var n=Math.max(e.width,e.height)/2,i=t.insert(\"circle\",\":first-child\").attr(\"x\",-e.width/2).attr(\"y\",-e.height/2).attr(\"r\",n);return r.intersect=function(s){return MO(r,n,s)},i}function FO(t,e,r){var n=e.width*Math.SQRT2/2,i=e.height*Math.SQRT2/2,s=[{x:0,y:-i},{x:-n,y:0},{x:0,y:i},{x:n,y:0}],a=t.insert(\"polygon\",\":first-child\").attr(\"points\",s.map(function(o){return o.x+\",\"+o.y}).join(\" \"));return r.intersect=function(o){return jn(r,s,o)},a}function PO(){var t=function(e,r){UO(r);var n=Wo(e,\"output\"),i=Wo(n,\"clusters\"),s=Wo(n,\"edgePaths\"),a=I0(Wo(n,\"edgeLabels\"),r),o=R0(Wo(n,\"nodes\"),r,P0);Ea(r),DO(o,r),LO(a,r),O0(s,r,D0);var l=B0(i,r);AO(l,r),zO(r)};return t.createNodes=function(e){return arguments.length?(SO(e),t):R0},t.createClusters=function(e){return arguments.length?(_O(e),t):B0},t.createEdgeLabels=function(e){return arguments.length?(xO(e),t):I0},t.createEdgePaths=function(e){return arguments.length?(vO(e),t):O0},t.shapes=function(e){return arguments.length?(BO(e),t):P0},t.arrows=function(e){return arguments.length?(dO(e),t):D0},t}var YO={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:\"rect\"},VO={arrowhead:\"normal\",curve:Hr};function UO(t){t.nodes().forEach(function(e){var r=t.node(e);!me(r,\"label\")&&!t.children(e).length&&(r.label=e),me(r,\"paddingX\")&&ka(r,{paddingLeft:r.paddingX,paddingRight:r.paddingX}),me(r,\"paddingY\")&&ka(r,{paddingTop:r.paddingY,paddingBottom:r.paddingY}),me(r,\"padding\")&&ka(r,{paddingLeft:r.padding,paddingRight:r.padding,paddingTop:r.padding,paddingBottom:r.padding}),ka(r,YO),vt([\"paddingLeft\",\"paddingRight\",\"paddingTop\",\"paddingBottom\"],function(n){r[n]=Number(r[n])}),me(r,\"width\")&&(r._prevWidth=r.width),me(r,\"height\")&&(r._prevHeight=r.height)}),t.edges().forEach(function(e){var r=t.edge(e);me(r,\"label\")||(r.label=\"\"),ka(r,VO)})}function zO(t){vt(t.nodes(),function(e){var r=t.node(e);me(r,\"_prevWidth\")?r.width=r._prevWidth:delete r.width,me(r,\"_prevHeight\")?r.height=r._prevHeight:delete r.height,delete r._prevWidth,delete r._prevHeight})}function Wo(t,e){var r=t.select(\"g.\"+e);return r.empty()&&(r=t.append(\"g\").attr(\"class\",e)),r}function o3(t,e,r){const n=e.width,i=e.height,s=(n+i)*.9,a=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}],o=ki(t,s,s,a);return r.intersect=function(l){return jn(r,a,l)},o}function l3(t,e,r){const i=e.height,s=i/4,a=e.width+2*s,o=[{x:s,y:0},{x:a-s,y:0},{x:a,y:-i/2},{x:a-s,y:-i},{x:s,y:-i},{x:0,y:-i/2}],l=ki(t,a,i,o);return r.intersect=function(u){return jn(r,o,u)},l}function c3(t,e,r){const n=e.width,i=e.height,s=[{x:-i/2,y:0},{x:n,y:0},{x:n,y:-i},{x:-i/2,y:-i},{x:0,y:-i/2}],a=ki(t,n,i,s);return r.intersect=function(o){return jn(r,s,o)},a}function u3(t,e,r){const n=e.width,i=e.height,s=[{x:-2*i/6,y:0},{x:n-i/6,y:0},{x:n+2*i/6,y:-i},{x:i/6,y:-i}],a=ki(t,n,i,s);return r.intersect=function(o){return jn(r,s,o)},a}function h3(t,e,r){const n=e.width,i=e.height,s=[{x:2*i/6,y:0},{x:n+i/6,y:0},{x:n-2*i/6,y:-i},{x:-i/6,y:-i}],a=ki(t,n,i,s);return r.intersect=function(o){return jn(r,s,o)},a}function d3(t,e,r){const n=e.width,i=e.height,s=[{x:-2*i/6,y:0},{x:n+2*i/6,y:0},{x:n-i/6,y:-i},{x:i/6,y:-i}],a=ki(t,n,i,s);return r.intersect=function(o){return jn(r,s,o)},a}function f3(t,e,r){const n=e.width,i=e.height,s=[{x:i/6,y:0},{x:n-i/6,y:0},{x:n+2*i/6,y:-i},{x:-2*i/6,y:-i}],a=ki(t,n,i,s);return r.intersect=function(o){return jn(r,s,o)},a}function p3(t,e,r){const n=e.width,i=e.height,s=[{x:0,y:0},{x:n+i/2,y:0},{x:n,y:-i/2},{x:n+i/2,y:-i},{x:0,y:-i}],a=ki(t,n,i,s);return r.intersect=function(o){return jn(r,s,o)},a}function g3(t,e,r){const n=e.height,i=e.width+n/4,s=t.insert(\"rect\",\":first-child\").attr(\"rx\",n/2).attr(\"ry\",n/2).attr(\"x\",-i/2).attr(\"y\",-n/2).attr(\"width\",i).attr(\"height\",n);return r.intersect=function(a){return F0(r,a)},s}function y3(t,e,r){const n=e.width,i=e.height,s=[{x:0,y:0},{x:n,y:0},{x:n,y:-i},{x:0,y:-i},{x:0,y:0},{x:-8,y:0},{x:n+8,y:0},{x:n+8,y:-i},{x:-8,y:-i},{x:-8,y:0}],a=ki(t,n,i,s);return r.intersect=function(o){return jn(r,s,o)},a}function m3(t,e,r){const n=e.width,i=n/2,s=i/(2.5+n/50),a=e.height+s,o=\"M 0,\"+s+\" a \"+i+\",\"+s+\" 0,0,0 \"+n+\" 0 a \"+i+\",\"+s+\" 0,0,0 \"+-n+\" 0 l 0,\"+a+\" a \"+i+\",\"+s+\" 0,0,0 \"+n+\" 0 l 0,\"+-a,l=t.attr(\"label-offset-y\",s).insert(\"path\",\":first-child\").attr(\"d\",o).attr(\"transform\",\"translate(\"+-n/2+\",\"+-(a/2+s)+\")\");return r.intersect=function(u){const d=F0(r,u),f=d.x-r.x;if(i!=0&&(Math.abs(f)<r.width/2||Math.abs(f)==r.width/2&&Math.abs(d.y-r.y)>r.height/2-s)){let p=s*s*(1-f*f/(i*i));p!=0&&(p=Math.sqrt(p)),p=s-p,u.y-r.y>0&&(p=-p),d.y+=p}return d},l}function WO(t){t.shapes().question=o3,t.shapes().hexagon=l3,t.shapes().stadium=g3,t.shapes().subroutine=y3,t.shapes().cylinder=m3,t.shapes().rect_left_inv_arrow=c3,t.shapes().lean_right=u3,t.shapes().lean_left=h3,t.shapes().trapezoid=d3,t.shapes().inv_trapezoid=f3,t.shapes().rect_right_inv_arrow=p3}function HO(t){t({question:o3}),t({hexagon:l3}),t({stadium:g3}),t({subroutine:y3}),t({cylinder:m3}),t({rect_left_inv_arrow:c3}),t({lean_right:u3}),t({lean_left:h3}),t({trapezoid:d3}),t({inv_trapezoid:f3}),t({rect_right_inv_arrow:p3})}function ki(t,e,r,n){return t.insert(\"polygon\",\":first-child\").attr(\"points\",n.map(function(i){return i.x+\",\"+i.y}).join(\" \")).attr(\"transform\",\"translate(\"+-e/2+\",\"+r/2+\")\")}const GO={addToRender:WO,addToRenderV2:HO},b3={},qO=function(t){const e=Object.keys(t);for(const r of e)b3[r]=t[r]},_3=function(t,e,r,n,i,s){const a=n?n.select(`[id=\"${r}\"]`):St(`[id=\"${r}\"]`),o=i||document;Object.keys(t).forEach(function(u){const d=t[u];let f=\"default\";d.classes.length>0&&(f=d.classes.join(\" \"));const p=Vi(d.styles);let g=d.text!==void 0?d.text:d.id,b;if(pr($().flowchart.htmlLabels)){const L={label:g.replace(/fa[blrs]?:fa-[\\w-]+/g,E=>`<i class='${E.replace(\":\",\" \")}'></i>`)};b=M0(a,L).node(),b.parentNode.removeChild(b)}else{const L=o.createElementNS(\"http://www.w3.org/2000/svg\",\"text\");L.setAttribute(\"style\",p.labelStyle.replace(\"color:\",\"fill:\"));const E=g.split(he.lineBreakRegex);for(const I of E){const V=o.createElementNS(\"http://www.w3.org/2000/svg\",\"tspan\");V.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\",\"xml:space\",\"preserve\"),V.setAttribute(\"dy\",\"1em\"),V.setAttribute(\"x\",\"1\"),V.textContent=I,L.appendChild(V)}b=L}let k=0,T=\"\";switch(d.type){case\"round\":k=5,T=\"rect\";break;case\"square\":T=\"rect\";break;case\"diamond\":T=\"question\";break;case\"hexagon\":T=\"hexagon\";break;case\"odd\":T=\"rect_left_inv_arrow\";break;case\"lean_right\":T=\"lean_right\";break;case\"lean_left\":T=\"lean_left\";break;case\"trapezoid\":T=\"trapezoid\";break;case\"inv_trapezoid\":T=\"inv_trapezoid\";break;case\"odd_right\":T=\"rect_left_inv_arrow\";break;case\"circle\":T=\"circle\";break;case\"ellipse\":T=\"ellipse\";break;case\"stadium\":T=\"stadium\";break;case\"subroutine\":T=\"subroutine\";break;case\"cylinder\":T=\"cylinder\";break;case\"group\":T=\"rect\";break;default:T=\"rect\"}B.warn(\"Adding node\",d.id,d.domId),e.setNode(s.db.lookUpDomId(d.id),{labelType:\"svg\",labelStyle:p.labelStyle,shape:T,label:b,rx:k,ry:k,class:f,style:p.style,id:s.db.lookUpDomId(d.id)})})},x3=function(t,e,r){let n=0,i,s;if(t.defaultStyle!==void 0){const a=Vi(t.defaultStyle);i=a.style,s=a.labelStyle}t.forEach(function(a){n++;var o=\"L-\"+a.start+\"-\"+a.end,l=\"LS-\"+a.start,u=\"LE-\"+a.end;const d={};a.type===\"arrow_open\"?d.arrowhead=\"none\":d.arrowhead=\"normal\";let f=\"\",p=\"\";if(a.style!==void 0){const g=Vi(a.style);f=g.style,p=g.labelStyle}else switch(a.stroke){case\"normal\":f=\"fill:none\",i!==void 0&&(f=i),s!==void 0&&(p=s);break;case\"dotted\":f=\"fill:none;stroke-width:2px;stroke-dasharray:3;\";break;case\"thick\":f=\" stroke-width: 3.5px;fill:none\";break}d.style=f,d.labelStyle=p,a.interpolate!==void 0?d.curve=bn(a.interpolate,Hr):t.defaultInterpolate!==void 0?d.curve=bn(t.defaultInterpolate,Hr):d.curve=bn(b3.curve,Hr),a.text===void 0?a.style!==void 0&&(d.arrowheadStyle=\"fill: #333\"):(d.arrowheadStyle=\"fill: #333\",d.labelpos=\"c\",pr($().flowchart.htmlLabels)?(d.labelType=\"html\",d.label=`<span id=\"L-${o}\" class=\"edgeLabel L-${l}' L-${u}\" style=\"${d.labelStyle}\">${a.text.replace(/fa[blrs]?:fa-[\\w-]+/g,g=>`<i class='${g.replace(\":\",\" \")}'></i>`)}</span>`):(d.labelType=\"text\",d.label=a.text.replace(he.lineBreakRegex,`\n`),a.style===void 0&&(d.style=d.style||\"stroke: #333; stroke-width: 1.5px;fill:none\"),d.labelStyle=d.labelStyle.replace(\"color:\",\"fill:\"))),d.id=o,d.class=l+\" \"+u,d.minlen=a.length||1,e.setEdge(r.db.lookUpDomId(a.start),r.db.lookUpDomId(a.end),d,n)})},jO={setConf:qO,addVertices:_3,addEdges:x3,getClasses:function(t,e){B.info(\"Extracting classes\"),e.db.clear();try{return e.parse(t),e.db.getClasses()}catch(r){return B.error(r),{}}},draw:function(t,e,r,n){B.info(\"Drawing flowchart\"),n.db.clear();const{securityLevel:i,flowchart:s}=$();let a;i===\"sandbox\"&&(a=St(\"#i\"+e));const o=St(i===\"sandbox\"?a.nodes()[0].contentDocument.body:\"body\"),l=i===\"sandbox\"?a.nodes()[0].contentDocument:document;try{n.parser.parse(t)}catch{B.debug(\"Parsing failed\")}let u=n.db.getDirection();u===void 0&&(u=\"TD\");const d=s.nodeSpacing||50,f=s.rankSpacing||50,p=new sr({multigraph:!0,compound:!0}).setGraph({rankdir:u,nodesep:d,ranksep:f,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});let g;const b=n.db.getSubGraphs();for(let G=b.length-1;G>=0;G--)g=b[G],n.db.addVertex(g.id,g.title,\"group\",void 0,g.classes);const k=n.db.getVertices();B.warn(\"Get vertices\",k);const T=n.db.getEdges();let L=0;for(L=b.length-1;L>=0;L--){g=b[L],hh(\"cluster\").append(\"text\");for(let G=0;G<g.nodes.length;G++)B.warn(\"Setting subgraph\",g.nodes[G],n.db.lookUpDomId(g.nodes[G]),n.db.lookUpDomId(g.id)),p.setParent(n.db.lookUpDomId(g.nodes[G]),n.db.lookUpDomId(g.id))}_3(k,p,e,o,l,n),x3(T,p,n);const E=new PO;GO.addToRender(E),E.arrows().none=function(Y,W,N,D){const v=Y.append(\"marker\").attr(\"id\",W).attr(\"viewBox\",\"0 0 10 10\").attr(\"refX\",9).attr(\"refY\",5).attr(\"markerUnits\",\"strokeWidth\").attr(\"markerWidth\",8).attr(\"markerHeight\",6).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 0 0 L 0 0 L 0 0 z\");qn(v,N[D+\"Style\"])},E.arrows().normal=function(Y,W){Y.append(\"marker\").attr(\"id\",W).attr(\"viewBox\",\"0 0 10 10\").attr(\"refX\",9).attr(\"refY\",5).attr(\"markerUnits\",\"strokeWidth\").attr(\"markerWidth\",8).attr(\"markerHeight\",6).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 0 0 L 10 5 L 0 10 z\").attr(\"class\",\"arrowheadPath\").style(\"stroke-width\",1).style(\"stroke-dasharray\",\"1,0\")};const I=o.select(`[id=\"${e}\"]`),V=o.select(\"#\"+e+\" g\");for(E(V,p),V.selectAll(\"g.node\").attr(\"title\",function(){return n.db.getTooltip(this.id)}),n.db.indexNodes(\"subGraph\"+L),L=0;L<b.length;L++)if(g=b[L],g.title!==\"undefined\"){const G=l.querySelectorAll(\"#\"+e+' [id=\"'+n.db.lookUpDomId(g.id)+'\"] rect'),Y=l.querySelectorAll(\"#\"+e+' [id=\"'+n.db.lookUpDomId(g.id)+'\"]'),W=G[0].x.baseVal.value,N=G[0].y.baseVal.value,D=G[0].width.baseVal.value,v=St(Y[0]).select(\".label\");v.attr(\"transform\",`translate(${W+D/2}, ${N+14})`),v.attr(\"id\",e+\"Text\");for(let M=0;M<g.classes.length;M++)Y[0].classList.add(g.classes[M])}if(!s.htmlLabels){const G=l.querySelectorAll('[id=\"'+e+'\"] .edgeLabel .label');for(const Y of G){const W=Y.getBBox(),N=l.createElementNS(\"http://www.w3.org/2000/svg\",\"rect\");N.setAttribute(\"rx\",0),N.setAttribute(\"ry\",0),N.setAttribute(\"width\",W.width),N.setAttribute(\"height\",W.height),Y.insertBefore(N,Y.firstChild)}}Sc(p,I,s.diagramPadding,s.useMaxWidth),Object.keys(k).forEach(function(G){const Y=k[G];if(Y.link){const W=o.select(\"#\"+e+' [id=\"'+n.db.lookUpDomId(G)+'\"]');if(W){const N=l.createElementNS(\"http://www.w3.org/2000/svg\",\"a\");N.setAttributeNS(\"http://www.w3.org/2000/svg\",\"class\",Y.classes.join(\" \")),N.setAttributeNS(\"http://www.w3.org/2000/svg\",\"href\",Y.link),N.setAttributeNS(\"http://www.w3.org/2000/svg\",\"rel\",\"noopener\"),i===\"sandbox\"?N.setAttributeNS(\"http://www.w3.org/2000/svg\",\"target\",\"_top\"):Y.linkTarget&&N.setAttributeNS(\"http://www.w3.org/2000/svg\",\"target\",Y.linkTarget);const D=W.insert(function(){return N},\":first-child\"),w=W.select(\".label-container\");w&&D.append(function(){return w.node()});const v=W.select(\".label\");v&&D.append(function(){return v.node()})}}})}},v3={},$O=function(t){const e=Object.keys(t);for(const r of e)v3[r]=t[r]},k3=function(t,e,r,n,i,s){const a=n.select(`[id=\"${r}\"]`);Object.keys(t).forEach(function(l){const u=t[l];let d=\"default\";u.classes.length>0&&(d=u.classes.join(\" \"));const f=Vi(u.styles);let p=u.text!==void 0?u.text:u.id,g;if(pr($().flowchart.htmlLabels)){const T={label:p.replace(/fa[blrs]?:fa-[\\w-]+/g,L=>`<i class='${L.replace(\":\",\" \")}'></i>`)};g=M0(a,T).node(),g.parentNode.removeChild(g)}else{const T=i.createElementNS(\"http://www.w3.org/2000/svg\",\"text\");T.setAttribute(\"style\",f.labelStyle.replace(\"color:\",\"fill:\"));const L=p.split(he.lineBreakRegex);for(const E of L){const I=i.createElementNS(\"http://www.w3.org/2000/svg\",\"tspan\");I.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\",\"xml:space\",\"preserve\"),I.setAttribute(\"dy\",\"1em\"),I.setAttribute(\"x\",\"1\"),I.textContent=E,T.appendChild(I)}g=T}let b=0,k=\"\";switch(u.type){case\"round\":b=5,k=\"rect\";break;case\"square\":k=\"rect\";break;case\"diamond\":k=\"question\";break;case\"hexagon\":k=\"hexagon\";break;case\"odd\":k=\"rect_left_inv_arrow\";break;case\"lean_right\":k=\"lean_right\";break;case\"lean_left\":k=\"lean_left\";break;case\"trapezoid\":k=\"trapezoid\";break;case\"inv_trapezoid\":k=\"inv_trapezoid\";break;case\"odd_right\":k=\"rect_left_inv_arrow\";break;case\"circle\":k=\"circle\";break;case\"ellipse\":k=\"ellipse\";break;case\"stadium\":k=\"stadium\";break;case\"subroutine\":k=\"subroutine\";break;case\"cylinder\":k=\"cylinder\";break;case\"group\":k=\"rect\";break;case\"doublecircle\":k=\"doublecircle\";break;default:k=\"rect\"}e.setNode(u.id,{labelStyle:f.labelStyle,shape:k,labelText:p,rx:b,ry:b,class:d,style:f.style,id:u.id,link:u.link,linkTarget:u.linkTarget,tooltip:s.db.getTooltip(u.id)||\"\",domId:s.db.lookUpDomId(u.id),haveCallback:u.haveCallback,width:u.type===\"group\"?500:void 0,dir:u.dir,type:u.type,props:u.props,padding:$().flowchart.padding}),B.info(\"setNode\",{labelStyle:f.labelStyle,shape:k,labelText:p,rx:b,ry:b,class:d,style:f.style,id:u.id,domId:s.db.lookUpDomId(u.id),width:u.type===\"group\"?500:void 0,type:u.type,dir:u.dir,props:u.props,padding:$().flowchart.padding})})},w3=function(t,e,r){B.info(\"abc78 edges = \",t);let n=0,i={},s,a;if(t.defaultStyle!==void 0){const o=Vi(t.defaultStyle);s=o.style,a=o.labelStyle}t.forEach(function(o){n++;var l=\"L-\"+o.start+\"-\"+o.end;i[l]===void 0?(i[l]=0,B.info(\"abc78 new entry\",l,i[l])):(i[l]++,B.info(\"abc78 new entry\",l,i[l]));let u=l+\"-\"+i[l];B.info(\"abc78 new link id to be used is\",l,u,i[l]);var d=\"LS-\"+o.start,f=\"LE-\"+o.end;const p={style:\"\",labelStyle:\"\"};switch(p.minlen=o.length||1,o.type===\"arrow_open\"?p.arrowhead=\"none\":p.arrowhead=\"normal\",p.arrowTypeStart=\"arrow_open\",p.arrowTypeEnd=\"arrow_open\",o.type){case\"double_arrow_cross\":p.arrowTypeStart=\"arrow_cross\";case\"arrow_cross\":p.arrowTypeEnd=\"arrow_cross\";break;case\"double_arrow_point\":p.arrowTypeStart=\"arrow_point\";case\"arrow_point\":p.arrowTypeEnd=\"arrow_point\";break;case\"double_arrow_circle\":p.arrowTypeStart=\"arrow_circle\";case\"arrow_circle\":p.arrowTypeEnd=\"arrow_circle\";break}let g=\"\",b=\"\";switch(o.stroke){case\"normal\":g=\"fill:none;\",s!==void 0&&(g=s),a!==void 0&&(b=a),p.thickness=\"normal\",p.pattern=\"solid\";break;case\"dotted\":p.thickness=\"normal\",p.pattern=\"dotted\",p.style=\"fill:none;stroke-width:2px;stroke-dasharray:3;\";break;case\"thick\":p.thickness=\"thick\",p.pattern=\"solid\",p.style=\"stroke-width: 3.5px;fill:none;\";break}if(o.style!==void 0){const k=Vi(o.style);g=k.style,b=k.labelStyle}p.style=p.style+=g,p.labelStyle=p.labelStyle+=b,o.interpolate!==void 0?p.curve=bn(o.interpolate,Hr):t.defaultInterpolate!==void 0?p.curve=bn(t.defaultInterpolate,Hr):p.curve=bn(v3.curve,Hr),o.text===void 0?o.style!==void 0&&(p.arrowheadStyle=\"fill: #333\"):(p.arrowheadStyle=\"fill: #333\",p.labelpos=\"c\"),p.labelType=\"text\",p.label=o.text.replace(he.lineBreakRegex,`\n`),o.style===void 0&&(p.style=p.style||\"stroke: #333; stroke-width: 1.5px;fill:none;\"),p.labelStyle=p.labelStyle.replace(\"color:\",\"fill:\"),p.id=u,p.classes=\"flowchart-link \"+d+\" \"+f,e.setEdge(o.start,o.end,p,n)})},Y0={setConf:$O,addVertices:k3,addEdges:w3,getClasses:function(t,e){B.info(\"Extracting classes\"),e.db.clear();try{return e.parse(t),e.db.getClasses()}catch{return}},draw:function(t,e,r,n){B.info(\"Drawing flowchart\"),n.db.clear(),vi.setGen(\"gen-2\"),n.parser.parse(t);let i=n.db.getDirection();i===void 0&&(i=\"TD\");const{securityLevel:s,flowchart:a}=$(),o=a.nodeSpacing||50,l=a.rankSpacing||50;let u;s===\"sandbox\"&&(u=St(\"#i\"+e));const d=St(s===\"sandbox\"?u.nodes()[0].contentDocument.body:\"body\"),f=s===\"sandbox\"?u.nodes()[0].contentDocument:document,p=new sr({multigraph:!0,compound:!0}).setGraph({rankdir:i,nodesep:o,ranksep:l,marginx:0,marginy:0}).setDefaultEdgeLabel(function(){return{}});let g;const b=n.db.getSubGraphs();B.info(\"Subgraphs - \",b);for(let H=b.length-1;H>=0;H--)g=b[H],B.info(\"Subgraph - \",g),n.db.addVertex(g.id,g.title,\"group\",void 0,g.classes,g.dir);const k=n.db.getVertices(),T=n.db.getEdges();B.info(T);let L=0;for(L=b.length-1;L>=0;L--){g=b[L],hh(\"cluster\").append(\"text\");for(let H=0;H<g.nodes.length;H++)B.info(\"Setting up subgraphs\",g.nodes[H],g.id),p.setParent(g.nodes[H],g.id)}k3(k,p,e,d,f,n),w3(T,p);const E=d.select(`[id=\"${e}\"]`),I=d.select(\"#\"+e+\" g\");if(v0(I,p,[\"point\",\"circle\",\"cross\"],\"flowchart\",e),ge.insertTitle(E,\"flowchartTitleText\",a.titleTopMargin,n.db.getDiagramTitle()),Sc(p,E,a.diagramPadding,a.useMaxWidth),n.db.indexNodes(\"subGraph\"+L),!a.htmlLabels){const H=f.querySelectorAll('[id=\"'+e+'\"] .edgeLabel .label');for(const G of H){const Y=G.getBBox(),W=f.createElementNS(\"http://www.w3.org/2000/svg\",\"rect\");W.setAttribute(\"rx\",0),W.setAttribute(\"ry\",0),W.setAttribute(\"width\",Y.width),W.setAttribute(\"height\",Y.height),G.insertBefore(W,G.firstChild)}}Object.keys(k).forEach(function(H){const G=k[H];if(G.link){const Y=St(\"#\"+e+' [id=\"'+H+'\"]');if(Y){const W=f.createElementNS(\"http://www.w3.org/2000/svg\",\"a\");W.setAttributeNS(\"http://www.w3.org/2000/svg\",\"class\",G.classes.join(\" \")),W.setAttributeNS(\"http://www.w3.org/2000/svg\",\"href\",G.link),W.setAttributeNS(\"http://www.w3.org/2000/svg\",\"rel\",\"noopener\"),s===\"sandbox\"?W.setAttributeNS(\"http://www.w3.org/2000/svg\",\"target\",\"_top\"):G.linkTarget&&W.setAttributeNS(\"http://www.w3.org/2000/svg\",\"target\",G.linkTarget);const N=Y.insert(function(){return W},\":first-child\"),D=Y.select(\".label-container\");D&&N.append(function(){return D.node()});const w=Y.select(\".label\");w&&N.append(function(){return w.node()})}}})}};var V0=function(){var t=function(W,N,D,w){for(D=D||{},w=W.length;w--;D[W[w]]=N);return D},e=[1,3],r=[1,5],n=[7,9,11,12,13,14,15,16,17,18,19,20,21,23,25,26,28,35,40],i=[1,15],s=[1,16],a=[1,17],o=[1,18],l=[1,19],u=[1,20],d=[1,21],f=[1,22],p=[1,23],g=[1,24],b=[1,25],k=[1,26],T=[1,27],L=[1,29],E=[1,31],I=[1,34],V=[5,7,9,11,12,13,14,15,16,17,18,19,20,21,23,25,26,28,35,40],H={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,gantt:5,document:6,EOF:7,line:8,SPACE:9,statement:10,NL:11,dateFormat:12,inclusiveEndDates:13,topAxis:14,axisFormat:15,tickInterval:16,excludes:17,includes:18,todayMarker:19,title:20,acc_title:21,acc_title_value:22,acc_descr:23,acc_descr_value:24,acc_descr_multiline_value:25,section:26,clickStatement:27,taskTxt:28,taskData:29,openDirective:30,typeDirective:31,closeDirective:32,\":\":33,argDirective:34,click:35,callbackname:36,callbackargs:37,href:38,clickStatementDebug:39,open_directive:40,type_directive:41,arg_directive:42,close_directive:43,$accept:0,$end:1},terminals_:{2:\"error\",5:\"gantt\",7:\"EOF\",9:\"SPACE\",11:\"NL\",12:\"dateFormat\",13:\"inclusiveEndDates\",14:\"topAxis\",15:\"axisFormat\",16:\"tickInterval\",17:\"excludes\",18:\"includes\",19:\"todayMarker\",20:\"title\",21:\"acc_title\",22:\"acc_title_value\",23:\"acc_descr\",24:\"acc_descr_value\",25:\"acc_descr_multiline_value\",26:\"section\",28:\"taskTxt\",29:\"taskData\",33:\":\",35:\"click\",36:\"callbackname\",37:\"callbackargs\",38:\"href\",40:\"open_directive\",41:\"type_directive\",42:\"arg_directive\",43:\"close_directive\"},productions_:[0,[3,2],[3,3],[6,0],[6,2],[8,2],[8,1],[8,1],[8,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[10,1],[10,1],[10,2],[10,1],[4,4],[4,6],[27,2],[27,3],[27,3],[27,4],[27,3],[27,4],[27,2],[39,2],[39,3],[39,3],[39,4],[39,3],[39,4],[39,2],[30,1],[31,1],[34,1],[32,1]],performAction:function(N,D,w,v,M,m,Q){var x=m.length-1;switch(M){case 2:return m[x-1];case 3:this.$=[];break;case 4:m[x-1].push(m[x]),this.$=m[x-1];break;case 5:case 6:this.$=m[x];break;case 7:case 8:this.$=[];break;case 9:v.setDateFormat(m[x].substr(11)),this.$=m[x].substr(11);break;case 10:v.enableInclusiveEndDates(),this.$=m[x].substr(18);break;case 11:v.TopAxis(),this.$=m[x].substr(8);break;case 12:v.setAxisFormat(m[x].substr(11)),this.$=m[x].substr(11);break;case 13:v.setTickInterval(m[x].substr(13)),this.$=m[x].substr(13);break;case 14:v.setExcludes(m[x].substr(9)),this.$=m[x].substr(9);break;case 15:v.setIncludes(m[x].substr(9)),this.$=m[x].substr(9);break;case 16:v.setTodayMarker(m[x].substr(12)),this.$=m[x].substr(12);break;case 17:v.setDiagramTitle(m[x].substr(6)),this.$=m[x].substr(6);break;case 18:this.$=m[x].trim(),v.setAccTitle(this.$);break;case 19:case 20:this.$=m[x].trim(),v.setAccDescription(this.$);break;case 21:v.addSection(m[x].substr(8)),this.$=m[x].substr(8);break;case 23:v.addTask(m[x-1],m[x]),this.$=\"task\";break;case 27:this.$=m[x-1],v.setClickEvent(m[x-1],m[x],null);break;case 28:this.$=m[x-2],v.setClickEvent(m[x-2],m[x-1],m[x]);break;case 29:this.$=m[x-2],v.setClickEvent(m[x-2],m[x-1],null),v.setLink(m[x-2],m[x]);break;case 30:this.$=m[x-3],v.setClickEvent(m[x-3],m[x-2],m[x-1]),v.setLink(m[x-3],m[x]);break;case 31:this.$=m[x-2],v.setClickEvent(m[x-2],m[x],null),v.setLink(m[x-2],m[x-1]);break;case 32:this.$=m[x-3],v.setClickEvent(m[x-3],m[x-1],m[x]),v.setLink(m[x-3],m[x-2]);break;case 33:this.$=m[x-1],v.setLink(m[x-1],m[x]);break;case 34:case 40:this.$=m[x-1]+\" \"+m[x];break;case 35:case 36:case 38:this.$=m[x-2]+\" \"+m[x-1]+\" \"+m[x];break;case 37:case 39:this.$=m[x-3]+\" \"+m[x-2]+\" \"+m[x-1]+\" \"+m[x];break;case 41:v.parseDirective(\"%%{\",\"open_directive\");break;case 42:v.parseDirective(m[x],\"type_directive\");break;case 43:m[x]=m[x].trim().replace(/'/g,'\"'),v.parseDirective(m[x],\"arg_directive\");break;case 44:v.parseDirective(\"}%%\",\"close_directive\",\"gantt\");break}},table:[{3:1,4:2,5:e,30:4,40:r},{1:[3]},{3:6,4:2,5:e,30:4,40:r},t(n,[2,3],{6:7}),{31:8,41:[1,9]},{41:[2,41]},{1:[2,1]},{4:30,7:[1,10],8:11,9:[1,12],10:13,11:[1,14],12:i,13:s,14:a,15:o,16:l,17:u,18:d,19:f,20:p,21:g,23:b,25:k,26:T,27:28,28:L,30:4,35:E,40:r},{32:32,33:[1,33],43:I},t([33,43],[2,42]),t(n,[2,8],{1:[2,2]}),t(n,[2,4]),{4:30,10:35,12:i,13:s,14:a,15:o,16:l,17:u,18:d,19:f,20:p,21:g,23:b,25:k,26:T,27:28,28:L,30:4,35:E,40:r},t(n,[2,6]),t(n,[2,7]),t(n,[2,9]),t(n,[2,10]),t(n,[2,11]),t(n,[2,12]),t(n,[2,13]),t(n,[2,14]),t(n,[2,15]),t(n,[2,16]),t(n,[2,17]),{22:[1,36]},{24:[1,37]},t(n,[2,20]),t(n,[2,21]),t(n,[2,22]),{29:[1,38]},t(n,[2,24]),{36:[1,39],38:[1,40]},{11:[1,41]},{34:42,42:[1,43]},{11:[2,44]},t(n,[2,5]),t(n,[2,18]),t(n,[2,19]),t(n,[2,23]),t(n,[2,27],{37:[1,44],38:[1,45]}),t(n,[2,33],{36:[1,46]}),t(V,[2,25]),{32:47,43:I},{43:[2,43]},t(n,[2,28],{38:[1,48]}),t(n,[2,29]),t(n,[2,31],{37:[1,49]}),{11:[1,50]},t(n,[2,30]),t(n,[2,32]),t(V,[2,26])],defaultActions:{5:[2,41],6:[2,1],34:[2,44],43:[2,43]},parseError:function(N,D){if(D.recoverable)this.trace(N);else{var w=new Error(N);throw w.hash=D,w}},parse:function(N){var D=this,w=[0],v=[],M=[null],m=[],Q=this.table,x=\"\",ct=0,Dt=0,kt=2,j=1,ot=m.slice.call(arguments,1),rt=Object.create(this.lexer),nt={yy:{}};for(var ut in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ut)&&(nt.yy[ut]=this.yy[ut]);rt.setInput(N,nt.yy),nt.yy.lexer=rt,nt.yy.parser=this,typeof rt.yylloc>\"u\"&&(rt.yylloc={});var _t=rt.yylloc;m.push(_t);var K=rt.options&&rt.options.ranges;typeof nt.yy.parseError==\"function\"?this.parseError=nt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ot(){var Yt;return Yt=v.pop()||rt.lex()||j,typeof Yt!=\"number\"&&(Yt instanceof Array&&(v=Yt,Yt=v.pop()),Yt=D.symbols_[Yt]||Yt),Yt}for(var P,z,X,F,O={},A,J,C,ht;;){if(z=w[w.length-1],this.defaultActions[z]?X=this.defaultActions[z]:((P===null||typeof P>\"u\")&&(P=Ot()),X=Q[z]&&Q[z][P]),typeof X>\"u\"||!X.length||!X[0]){var U=\"\";ht=[];for(A in Q[z])this.terminals_[A]&&A>kt&&ht.push(\"'\"+this.terminals_[A]+\"'\");rt.showPosition?U=\"Parse error on line \"+(ct+1)+`:\n`+rt.showPosition()+`\nExpecting `+ht.join(\", \")+\", got '\"+(this.terminals_[P]||P)+\"'\":U=\"Parse error on line \"+(ct+1)+\": Unexpected \"+(P==j?\"end of input\":\"'\"+(this.terminals_[P]||P)+\"'\"),this.parseError(U,{text:rt.match,token:this.terminals_[P]||P,line:rt.yylineno,loc:_t,expected:ht})}if(X[0]instanceof Array&&X.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+z+\", token: \"+P);switch(X[0]){case 1:w.push(P),M.push(rt.yytext),m.push(rt.yylloc),w.push(X[1]),P=null,Dt=rt.yyleng,x=rt.yytext,ct=rt.yylineno,_t=rt.yylloc;break;case 2:if(J=this.productions_[X[1]][1],O.$=M[M.length-J],O._$={first_line:m[m.length-(J||1)].first_line,last_line:m[m.length-1].last_line,first_column:m[m.length-(J||1)].first_column,last_column:m[m.length-1].last_column},K&&(O._$.range=[m[m.length-(J||1)].range[0],m[m.length-1].range[1]]),F=this.performAction.apply(O,[x,Dt,ct,nt.yy,X[1],M,m].concat(ot)),typeof F<\"u\")return F;J&&(w=w.slice(0,-1*J*2),M=M.slice(0,-1*J),m=m.slice(0,-1*J)),w.push(this.productions_[X[1]][0]),M.push(O.$),m.push(O._$),C=Q[w[w.length-2]][w[w.length-1]],w.push(C);break;case 3:return!0}}return!0}},G=function(){var W={EOF:1,parseError:function(D,w){if(this.yy.parser)this.yy.parser.parseError(D,w);else throw new Error(D)},setInput:function(N,D){return this.yy=D||this.yy||{},this._input=N,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var N=this._input[0];this.yytext+=N,this.yyleng++,this.offset++,this.match+=N,this.matched+=N;var D=N.match(/(?:\\r\\n?|\\n).*/g);return D?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),N},unput:function(N){var D=N.length,w=N.split(/(?:\\r\\n?|\\n)/g);this._input=N+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-D),this.offset-=D;var v=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),w.length-1&&(this.yylineno-=w.length-1);var M=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:w?(w.length===v.length?this.yylloc.first_column:0)+v[v.length-w.length].length-w[0].length:this.yylloc.first_column-D},this.options.ranges&&(this.yylloc.range=[M[0],M[0]+this.yyleng-D]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno});return this},less:function(N){this.unput(this.match.slice(N))},pastInput:function(){var N=this.matched.substr(0,this.matched.length-this.match.length);return(N.length>20?\"...\":\"\")+N.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var N=this.match;return N.length<20&&(N+=this._input.substr(0,20-N.length)),(N.substr(0,20)+(N.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var N=this.pastInput(),D=new Array(N.length+1).join(\"-\");return N+this.upcomingInput()+`\n`+D+\"^\"},test_match:function(N,D){var w,v,M;if(this.options.backtrack_lexer&&(M={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(M.yylloc.range=this.yylloc.range.slice(0))),v=N[0].match(/(?:\\r\\n?|\\n).*/g),v&&(this.yylineno+=v.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:v?v[v.length-1].length-v[v.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+N[0].length},this.yytext+=N[0],this.match+=N[0],this.matches=N,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(N[0].length),this.matched+=N[0],w=this.performAction.call(this,this.yy,this,D,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),w)return w;if(this._backtrack){for(var m in M)this[m]=M[m];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var N,D,w,v;this._more||(this.yytext=\"\",this.match=\"\");for(var M=this._currentRules(),m=0;m<M.length;m++)if(w=this._input.match(this.rules[M[m]]),w&&(!D||w[0].length>D[0].length)){if(D=w,v=m,this.options.backtrack_lexer){if(N=this.test_match(w,M[m]),N!==!1)return N;if(this._backtrack){D=!1;continue}else return!1}else if(!this.options.flex)break}return D?(N=this.test_match(D,M[v]),N!==!1?N:!1):this._input===\"\"?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. Unrecognized text.\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var D=this.next();return D||this.lex()},begin:function(D){this.conditionStack.push(D)},popState:function(){var D=this.conditionStack.length-1;return D>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(D){return D=this.conditionStack.length-1-Math.abs(D||0),D>=0?this.conditionStack[D]:\"INITIAL\"},pushState:function(D){this.begin(D)},stateStackSize:function(){return this.conditionStack.length},options:{\"case-insensitive\":!0},performAction:function(D,w,v,M){switch(v){case 0:return this.begin(\"open_directive\"),40;case 1:return this.begin(\"type_directive\"),41;case 2:return this.popState(),this.begin(\"arg_directive\"),33;case 3:return this.popState(),this.popState(),43;case 4:return 42;case 5:return this.begin(\"acc_title\"),21;case 6:return this.popState(),\"acc_title_value\";case 7:return this.begin(\"acc_descr\"),23;case 8:return this.popState(),\"acc_descr_value\";case 9:this.begin(\"acc_descr_multiline\");break;case 10:this.popState();break;case 11:return\"acc_descr_multiline_value\";case 12:break;case 13:break;case 14:break;case 15:return 11;case 16:break;case 17:break;case 18:break;case 19:this.begin(\"href\");break;case 20:this.popState();break;case 21:return 38;case 22:this.begin(\"callbackname\");break;case 23:this.popState();break;case 24:this.popState(),this.begin(\"callbackargs\");break;case 25:return 36;case 26:this.popState();break;case 27:return 37;case 28:this.begin(\"click\");break;case 29:this.popState();break;case 30:return 35;case 31:return 5;case 32:return 12;case 33:return 13;case 34:return 14;case 35:return 15;case 36:return 16;case 37:return 18;case 38:return 17;case 39:return 19;case 40:return\"date\";case 41:return 20;case 42:return\"accDescription\";case 43:return 26;case 44:return 28;case 45:return 29;case 46:return 33;case 47:return 7;case 48:return\"INVALID\"}},rules:[/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:accTitle\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*\\{\\s*)/i,/^(?:[\\}])/i,/^(?:[^\\}]*)/i,/^(?:%%(?!\\{)*[^\\n]*)/i,/^(?:[^\\}]%%*[^\\n]*)/i,/^(?:%%*[^\\n]*[\\n]*)/i,/^(?:[\\n]+)/i,/^(?:\\s+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:href[\\s]+[\"])/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:call[\\s]+)/i,/^(?:\\([\\s]*\\))/i,/^(?:\\()/i,/^(?:[^(]*)/i,/^(?:\\))/i,/^(?:[^)]*)/i,/^(?:click[\\s]+)/i,/^(?:[\\s\\n])/i,/^(?:[^\\s\\n]*)/i,/^(?:gantt\\b)/i,/^(?:dateFormat\\s[^#\\n;]+)/i,/^(?:inclusiveEndDates\\b)/i,/^(?:topAxis\\b)/i,/^(?:axisFormat\\s[^#\\n;]+)/i,/^(?:tickInterval\\s[^#\\n;]+)/i,/^(?:includes\\s[^#\\n;]+)/i,/^(?:excludes\\s[^#\\n;]+)/i,/^(?:todayMarker\\s[^\\n;]+)/i,/^(?:\\d\\d\\d\\d-\\d\\d-\\d\\d\\b)/i,/^(?:title\\s[^#\\n;]+)/i,/^(?:accDescription\\s[^#\\n;]+)/i,/^(?:section\\s[^#:\\n;]+)/i,/^(?:[^#:\\n;]+)/i,/^(?::[^#\\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[26,27],inclusive:!1},callbackname:{rules:[23,24,25],inclusive:!1},href:{rules:[20,21],inclusive:!1},click:{rules:[29,30],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,22,28,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],inclusive:!0}}};return W}();H.lexer=G;function Y(){this.yy={}}return Y.prototype=H,H.Parser=Y,new Y}();V0.parser=V0;const XO=V0,KO=t=>t.match(/^\\s*gantt/)!==null;let $n=\"\",U0=\"\",z0,W0=\"\",Ho=[],Go=[],H0={},G0=[],wu=[],Aa=\"\";const T3=[\"active\",\"done\",\"crit\",\"milestone\"];let q0=[],qo=!1,j0=!1,$0=0;const ZO=function(t,e,r){ze.parseDirective(this,t,e,r)},QO=function(){G0=[],wu=[],Aa=\"\",q0=[],Tu=0,K0=void 0,Eu=void 0,hr=[],$n=\"\",U0=\"\",z0=void 0,W0=\"\",Ho=[],Go=[],qo=!1,j0=!1,$0=0,H0={},vn()},JO=function(t){U0=t},tR=function(){return U0},eR=function(t){z0=t},rR=function(){return z0},nR=function(t){W0=t},iR=function(){return W0},sR=function(t){$n=t},aR=function(){qo=!0},oR=function(){return qo},lR=function(){j0=!0},cR=function(){return j0},uR=function(){return $n},hR=function(t){Ho=t.toLowerCase().split(/[\\s,]+/)},dR=function(){return Ho},fR=function(t){Go=t.toLowerCase().split(/[\\s,]+/)},pR=function(){return Go},gR=function(){return H0},yR=function(t){Aa=t,G0.push(t)},mR=function(){return G0},bR=function(){let t=D3();const e=10;let r=0;for(;!t&&r<e;)t=D3(),r++;return wu=hr,wu},E3=function(t,e,r,n){return n.includes(t.format(e.trim()))?!1:t.isoWeekday()>=6&&r.includes(\"weekends\")||r.includes(t.format(\"dddd\").toLowerCase())?!0:r.includes(t.format(e.trim()))},C3=function(t,e,r,n){if(!r.length||t.manualEndTime)return;let i=cn(t.startTime,e,!0);i.add(1,\"d\");let s=cn(t.endTime,e,!0),a=_R(i,s,e,r,n);t.endTime=s.toDate(),t.renderEndTime=a},_R=function(t,e,r,n,i){let s=!1,a=null;for(;t<=e;)s||(a=e.toDate()),s=E3(t,r,n,i),s&&e.add(1,\"d\"),t.add(1,\"d\");return a},X0=function(t,e,r){r=r.trim();const i=/^after\\s+([\\d\\w- ]+)/.exec(r.trim());if(i!==null){let a=null;if(i[1].split(\" \").forEach(function(o){let l=Da(o);l!==void 0&&(a?l.endTime>a.endTime&&(a=l):a=l)}),a)return a.endTime;{const o=new Date;return o.setHours(0,0,0,0),o}}let s=cn(r,e.trim(),!0);if(s.isValid())return s.toDate();{B.debug(\"Invalid date:\"+r),B.debug(\"With date format:\"+e.trim());const a=new Date(r);if(a===void 0||isNaN(a.getTime()))throw new Error(\"Invalid date:\"+r);return a}},S3=function(t){const e=/^(\\d+(?:\\.\\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return e!==null?cn.duration(Number.parseFloat(e[1]),e[2]):cn.duration.invalid()},A3=function(t,e,r,n=!1){r=r.trim();let i=cn(r,e.trim(),!0);if(i.isValid())return n&&i.add(1,\"d\"),i.toDate();const s=cn(t),a=S3(r);return a.isValid()&&s.add(a),s.toDate()};let Tu=0;const La=function(t){return t===void 0?(Tu=Tu+1,\"task\"+Tu):t},xR=function(t,e){let r;e.substr(0,1)===\":\"?r=e.substr(1,e.length):r=e;const n=r.split(\",\"),i={};B3(n,i,T3);for(let a=0;a<n.length;a++)n[a]=n[a].trim();let s=\"\";switch(n.length){case 1:i.id=La(),i.startTime=t.endTime,s=n[0];break;case 2:i.id=La(),i.startTime=X0(void 0,$n,n[0]),s=n[1];break;case 3:i.id=La(n[0]),i.startTime=X0(void 0,$n,n[1]),s=n[2];break}return s&&(i.endTime=A3(i.startTime,$n,s,qo),i.manualEndTime=cn(s,\"YYYY-MM-DD\",!0).isValid(),C3(i,$n,Go,Ho)),i},vR=function(t,e){let r;e.substr(0,1)===\":\"?r=e.substr(1,e.length):r=e;const n=r.split(\",\"),i={};B3(n,i,T3);for(let s=0;s<n.length;s++)n[s]=n[s].trim();switch(n.length){case 1:i.id=La(),i.startTime={type:\"prevTaskEnd\",id:t},i.endTime={data:n[0]};break;case 2:i.id=La(),i.startTime={type:\"getStartDate\",startData:n[0]},i.endTime={data:n[1]};break;case 3:i.id=La(n[0]),i.startTime={type:\"getStartDate\",startData:n[1]},i.endTime={data:n[2]};break}return i};let K0,Eu,hr=[];const L3={},kR=function(t,e){const r={section:Aa,type:Aa,processed:!1,manualEndTime:!1,renderEndTime:null,raw:{data:e},task:t,classes:[]},n=vR(Eu,e);r.raw.startTime=n.startTime,r.raw.endTime=n.endTime,r.id=n.id,r.prevTaskId=Eu,r.active=n.active,r.done=n.done,r.crit=n.crit,r.milestone=n.milestone,r.order=$0,$0++;const i=hr.push(r);Eu=r.id,L3[r.id]=i-1},Da=function(t){const e=L3[t];return hr[e]},wR=function(t,e){const r={section:Aa,type:Aa,description:t,task:t,classes:[]},n=xR(K0,e);r.startTime=n.startTime,r.endTime=n.endTime,r.id=n.id,r.active=n.active,r.done=n.done,r.crit=n.crit,r.milestone=n.milestone,K0=r,wu.push(r)},D3=function(){const t=function(r){const n=hr[r];let i=\"\";switch(hr[r].raw.startTime.type){case\"prevTaskEnd\":{const s=Da(n.prevTaskId);n.startTime=s.endTime;break}case\"getStartDate\":i=X0(void 0,$n,hr[r].raw.startTime.startData),i&&(hr[r].startTime=i);break}return hr[r].startTime&&(hr[r].endTime=A3(hr[r].startTime,$n,hr[r].raw.endTime.data,qo),hr[r].endTime&&(hr[r].processed=!0,hr[r].manualEndTime=cn(hr[r].raw.endTime.data,\"YYYY-MM-DD\",!0).isValid(),C3(hr[r],$n,Go,Ho))),hr[r].processed};let e=!0;for(const[r,n]of hr.entries())t(r),e=e&&n.processed;return e},TR=function(t,e){let r=e;$().securityLevel!==\"loose\"&&(r=ti(e)),t.split(\",\").forEach(function(n){Da(n)!==void 0&&(N3(n,()=>{window.open(r,\"_self\")}),H0[n]=r)}),M3(t,\"clickable\")},M3=function(t,e){t.split(\",\").forEach(function(r){let n=Da(r);n!==void 0&&n.classes.push(e)})},ER=function(t,e,r){if($().securityLevel!==\"loose\"||e===void 0)return;let n=[];if(typeof r==\"string\"){n=r.split(/,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/);for(let s=0;s<n.length;s++){let a=n[s].trim();a.charAt(0)==='\"'&&a.charAt(a.length-1)==='\"'&&(a=a.substr(1,a.length-2)),n[s]=a}}n.length===0&&n.push(t),Da(t)!==void 0&&N3(t,()=>{ge.runFunc(e,...n)})},N3=function(t,e){q0.push(function(){const r=document.querySelector(`[id=\"${t}\"]`);r!==null&&r.addEventListener(\"click\",function(){e()})},function(){const r=document.querySelector(`[id=\"${t}-text\"]`);r!==null&&r.addEventListener(\"click\",function(){e()})})},Z0={parseDirective:ZO,getConfig:()=>$().gantt,clear:QO,setDateFormat:sR,getDateFormat:uR,enableInclusiveEndDates:aR,endDatesAreInclusive:oR,enableTopAxis:lR,topAxisEnabled:cR,setAxisFormat:JO,getAxisFormat:tR,setTickInterval:eR,getTickInterval:rR,setTodayMarker:nR,getTodayMarker:iR,setAccTitle:nn,getAccTitle:kn,setDiagramTitle:hi,getDiagramTitle:di,setAccDescription:wn,getAccDescription:Tn,addSection:yR,getSections:mR,getTasks:bR,addTask:kR,findTaskById:Da,addTaskOrg:wR,setIncludes:hR,getIncludes:dR,setExcludes:fR,getExcludes:pR,setClickEvent:function(t,e,r){t.split(\",\").forEach(function(n){ER(n,e,r)}),M3(t,\"clickable\")},setLink:TR,getLinks:gR,bindFunctions:function(t){q0.forEach(function(e){e(t)})},parseDuration:S3,isInvalidDate:E3};function B3(t,e,r){let n=!0;for(;n;)n=!1,r.forEach(function(i){const s=\"^\\\\s*\"+i+\"\\\\s*$\",a=new RegExp(s);t[0].match(a)&&(e[i]=!0,t.shift(1),n=!0)})}const CR=function(){B.debug(\"Something is calling, setConf, remove the call\")};let wi;const SR={setConf:CR,draw:function(t,e,r,n){const i=$().gantt,s=$().securityLevel;let a;s===\"sandbox\"&&(a=St(\"#i\"+e));const o=St(s===\"sandbox\"?a.nodes()[0].contentDocument.body:\"body\"),l=s===\"sandbox\"?a.nodes()[0].contentDocument:document,u=l.getElementById(e);wi=u.parentElement.offsetWidth,wi===void 0&&(wi=1200),i.useWidth!==void 0&&(wi=i.useWidth);const d=n.db.getTasks(),f=d.length*(i.barHeight+i.barGap)+2*i.topPadding;u.setAttribute(\"viewBox\",\"0 0 \"+wi+\" \"+f);const p=o.select(`[id=\"${e}\"]`),g=hk().domain([Wb(d,function(D){return D.startTime}),zb(d,function(D){return D.endTime})]).rangeRound([0,wi-i.leftPadding-i.rightPadding]);let b=[];for(const D of d)b.push(D.type);const k=b;b=Y(b);function T(D,w){const v=D.startTime,M=w.startTime;let m=0;return v>M?m=1:v<M&&(m=-1),m}d.sort(T),L(d,wi,f),xn(p,f,wi,i.useMaxWidth),p.append(\"text\").text(n.db.getDiagramTitle()).attr(\"x\",wi/2).attr(\"y\",i.titleTopMargin).attr(\"class\",\"titleText\");function L(D,w,v){const M=i.barHeight,m=M+i.barGap,Q=i.topPadding,x=i.leftPadding,ct=n2().domain([0,b.length]).range([\"#00B9FA\",\"#F95002\"]).interpolate(ux);I(m,Q,x,w,v,D,n.db.getExcludes(),n.db.getIncludes()),V(x,Q,w,v),E(D,m,Q,x,M,ct,w),H(m,Q),G(x,Q,w,v)}function E(D,w,v,M,m,Q,x){p.append(\"g\").selectAll(\"rect\").data(D).enter().append(\"rect\").attr(\"x\",0).attr(\"y\",function(j,ot){return ot=j.order,ot*w+v-2}).attr(\"width\",function(){return x-i.rightPadding/2}).attr(\"height\",w).attr(\"class\",function(j){for(const[ot,rt]of b.entries())if(j.type===rt)return\"section section\"+ot%i.numberSectionStyles;return\"section section0\"});const ct=p.append(\"g\").selectAll(\"rect\").data(D).enter(),Dt=n.db.getLinks();if(ct.append(\"rect\").attr(\"id\",function(j){return j.id}).attr(\"rx\",3).attr(\"ry\",3).attr(\"x\",function(j){return j.milestone?g(j.startTime)+M+.5*(g(j.endTime)-g(j.startTime))-.5*m:g(j.startTime)+M}).attr(\"y\",function(j,ot){return ot=j.order,ot*w+v}).attr(\"width\",function(j){return j.milestone?m:g(j.renderEndTime||j.endTime)-g(j.startTime)}).attr(\"height\",m).attr(\"transform-origin\",function(j,ot){return ot=j.order,(g(j.startTime)+M+.5*(g(j.endTime)-g(j.startTime))).toString()+\"px \"+(ot*w+v+.5*m).toString()+\"px\"}).attr(\"class\",function(j){const ot=\"task\";let rt=\"\";j.classes.length>0&&(rt=j.classes.join(\" \"));let nt=0;for(const[_t,K]of b.entries())j.type===K&&(nt=_t%i.numberSectionStyles);let ut=\"\";return j.active?j.crit?ut+=\" activeCrit\":ut=\" active\":j.done?j.crit?ut=\" doneCrit\":ut=\" done\":j.crit&&(ut+=\" crit\"),ut.length===0&&(ut=\" task\"),j.milestone&&(ut=\" milestone \"+ut),ut+=nt,ut+=\" \"+rt,ot+ut}),ct.append(\"text\").attr(\"id\",function(j){return j.id+\"-text\"}).text(function(j){return j.task}).attr(\"font-size\",i.fontSize).attr(\"x\",function(j){let ot=g(j.startTime),rt=g(j.renderEndTime||j.endTime);j.milestone&&(ot+=.5*(g(j.endTime)-g(j.startTime))-.5*m),j.milestone&&(rt=ot+m);const nt=this.getBBox().width;return nt>rt-ot?rt+nt+1.5*i.leftPadding>x?ot+M-5:rt+M+5:(rt-ot)/2+ot+M}).attr(\"y\",function(j,ot){return ot=j.order,ot*w+i.barHeight/2+(i.fontSize/2-2)+v}).attr(\"text-height\",m).attr(\"class\",function(j){const ot=g(j.startTime);let rt=g(j.endTime);j.milestone&&(rt=ot+m);const nt=this.getBBox().width;let ut=\"\";j.classes.length>0&&(ut=j.classes.join(\" \"));let _t=0;for(const[Ot,P]of b.entries())j.type===P&&(_t=Ot%i.numberSectionStyles);let K=\"\";return j.active&&(j.crit?K=\"activeCritText\"+_t:K=\"activeText\"+_t),j.done?j.crit?K=K+\" doneCritText\"+_t:K=K+\" doneText\"+_t:j.crit&&(K=K+\" critText\"+_t),j.milestone&&(K+=\" milestoneText\"),nt>rt-ot?rt+nt+1.5*i.leftPadding>x?ut+\" taskTextOutsideLeft taskTextOutside\"+_t+\" \"+K:ut+\" taskTextOutsideRight taskTextOutside\"+_t+\" \"+K+\" width-\"+nt:ut+\" taskText taskText\"+_t+\" \"+K+\" width-\"+nt}),$().securityLevel===\"sandbox\"){let j;j=St(\"#i\"+e);const ot=j.nodes()[0].contentDocument;ct.filter(function(rt){return Dt[rt.id]!==void 0}).each(function(rt){var nt=ot.querySelector(\"#\"+rt.id),ut=ot.querySelector(\"#\"+rt.id+\"-text\");const _t=nt.parentNode;var K=ot.createElement(\"a\");K.setAttribute(\"xlink:href\",Dt[rt.id]),K.setAttribute(\"target\",\"_top\"),_t.appendChild(K),K.appendChild(nt),K.appendChild(ut)})}}function I(D,w,v,M,m,Q,x,ct){const Dt=Q.reduce((_t,{startTime:K})=>_t?Math.min(_t,K):K,0),kt=Q.reduce((_t,{endTime:K})=>_t?Math.max(_t,K):K,0),j=n.db.getDateFormat();if(!Dt||!kt)return;const ot=[];let rt=null,nt=cn(Dt);for(;nt.valueOf()<=kt;)n.db.isInvalidDate(nt,j,x,ct)?rt?rt.end=nt.clone():rt={start:nt.clone(),end:nt.clone()}:rt&&(ot.push(rt),rt=null),nt.add(1,\"d\");p.append(\"g\").selectAll(\"rect\").data(ot).enter().append(\"rect\").attr(\"id\",function(_t){return\"exclude-\"+_t.start.format(\"YYYY-MM-DD\")}).attr(\"x\",function(_t){return g(_t.start)+v}).attr(\"y\",i.gridLineStartPadding).attr(\"width\",function(_t){const K=_t.end.clone().add(1,\"day\");return g(K)-g(_t.start)}).attr(\"height\",m-w-i.gridLineStartPadding).attr(\"transform-origin\",function(_t,K){return(g(_t.start)+v+.5*(g(_t.end)-g(_t.start))).toString()+\"px \"+(K*D+.5*m).toString()+\"px\"}).attr(\"class\",\"exclude-range\")}function V(D,w,v,M){let m=Zb(g).tickSize(-M+w+i.gridLineStartPadding).tickFormat(Ul(n.db.getAxisFormat()||i.axisFormat||\"%Y-%m-%d\"));const x=/^([1-9]\\d*)(minute|hour|day|week|month)$/.exec(n.db.getTickInterval()||i.tickInterval);if(x!==null){const ct=x[1];switch(x[2]){case\"minute\":m.ticks(Rl.every(ct));break;case\"hour\":m.ticks(Fl.every(ct));break;case\"day\":m.ticks(qs.every(ct));break;case\"week\":m.ticks(js.every(ct));break;case\"month\":m.ticks(Yl.every(ct));break}}if(p.append(\"g\").attr(\"class\",\"grid\").attr(\"transform\",\"translate(\"+D+\", \"+(M-50)+\")\").call(m).selectAll(\"text\").style(\"text-anchor\",\"middle\").attr(\"fill\",\"#000\").attr(\"stroke\",\"none\").attr(\"font-size\",10).attr(\"dy\",\"1em\"),n.db.topAxisEnabled()||i.topAxis){let ct=Kb(g).tickSize(-M+w+i.gridLineStartPadding).tickFormat(Ul(n.db.getAxisFormat()||i.axisFormat||\"%Y-%m-%d\"));if(x!==null){const Dt=x[1];switch(x[2]){case\"minute\":ct.ticks(Rl.every(Dt));break;case\"hour\":ct.ticks(Fl.every(Dt));break;case\"day\":ct.ticks(qs.every(Dt));break;case\"week\":ct.ticks(js.every(Dt));break;case\"month\":ct.ticks(Yl.every(Dt));break}}p.append(\"g\").attr(\"class\",\"grid\").attr(\"transform\",\"translate(\"+D+\", \"+w+\")\").call(ct).selectAll(\"text\").style(\"text-anchor\",\"middle\").attr(\"fill\",\"#000\").attr(\"stroke\",\"none\").attr(\"font-size\",10)}}function H(D,w){const v=[];let M=0;for(const[m,Q]of b.entries())v[m]=[Q,N(Q,k)];p.append(\"g\").selectAll(\"text\").data(v).enter().append(function(m){const Q=m[0].split(he.lineBreakRegex),x=-(Q.length-1)/2,ct=l.createElementNS(\"http://www.w3.org/2000/svg\",\"text\");ct.setAttribute(\"dy\",x+\"em\");for(const[Dt,kt]of Q.entries()){const j=l.createElementNS(\"http://www.w3.org/2000/svg\",\"tspan\");j.setAttribute(\"alignment-baseline\",\"central\"),j.setAttribute(\"x\",\"10\"),Dt>0&&j.setAttribute(\"dy\",\"1em\"),j.textContent=kt,ct.appendChild(j)}return ct}).attr(\"x\",10).attr(\"y\",function(m,Q){if(Q>0)for(let x=0;x<Q;x++)return M+=v[Q-1][1],m[1]*D/2+M*D+w;else return m[1]*D/2+w}).attr(\"font-size\",i.sectionFontSize).attr(\"font-size\",i.sectionFontSize).attr(\"class\",function(m){for(const[Q,x]of b.entries())if(m[0]===x)return\"sectionTitle sectionTitle\"+Q%i.numberSectionStyles;return\"sectionTitle\"})}function G(D,w,v,M){const m=n.db.getTodayMarker();if(m===\"off\")return;const Q=p.append(\"g\").attr(\"class\",\"today\"),x=new Date,ct=Q.append(\"line\");ct.attr(\"x1\",g(x)+D).attr(\"x2\",g(x)+D).attr(\"y1\",i.titleTopMargin).attr(\"y2\",M-i.titleTopMargin).attr(\"class\",\"today\"),m!==\"\"&&ct.attr(\"style\",m.replace(/,/g,\";\"))}function Y(D){const w={},v=[];for(let M=0,m=D.length;M<m;++M)Object.prototype.hasOwnProperty.call(w,D[M])||(w[D[M]]=!0,v.push(D[M]));return v}function W(D){let w=D.length;const v={};for(;w;)v[D[--w]]=(v[D[w]]||0)+1;return v}function N(D,w){return W(w)[D]||0}}};var Q0=function(){var t=function(s,a,o,l){for(o=o||{},l=s.length;l--;o[s[l]]=a);return o},e=[6,9,10],r={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,$accept:0,$end:1},terminals_:{2:\"error\",4:\"info\",6:\"EOF\",9:\"NL\",10:\"showInfo\"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],performAction:function(a,o,l,u,d,f,p){switch(f.length-1,d){case 1:return u;case 4:break;case 6:u.setInfo(!0);break}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},t(e,[2,3]),t(e,[2,4]),t(e,[2,5]),t(e,[2,6])],defaultActions:{4:[2,1]},parseError:function(a,o){if(o.recoverable)this.trace(a);else{var l=new Error(a);throw l.hash=o,l}},parse:function(a){var o=this,l=[0],u=[],d=[null],f=[],p=this.table,g=\"\",b=0,k=0,T=2,L=1,E=f.slice.call(arguments,1),I=Object.create(this.lexer),V={yy:{}};for(var H in this.yy)Object.prototype.hasOwnProperty.call(this.yy,H)&&(V.yy[H]=this.yy[H]);I.setInput(a,V.yy),V.yy.lexer=I,V.yy.parser=this,typeof I.yylloc>\"u\"&&(I.yylloc={});var G=I.yylloc;f.push(G);var Y=I.options&&I.options.ranges;typeof V.yy.parseError==\"function\"?this.parseError=V.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function W(){var kt;return kt=u.pop()||I.lex()||L,typeof kt!=\"number\"&&(kt instanceof Array&&(u=kt,kt=u.pop()),kt=o.symbols_[kt]||kt),kt}for(var N,D,w,v,M={},m,Q,x,ct;;){if(D=l[l.length-1],this.defaultActions[D]?w=this.defaultActions[D]:((N===null||typeof N>\"u\")&&(N=W()),w=p[D]&&p[D][N]),typeof w>\"u\"||!w.length||!w[0]){var Dt=\"\";ct=[];for(m in p[D])this.terminals_[m]&&m>T&&ct.push(\"'\"+this.terminals_[m]+\"'\");I.showPosition?Dt=\"Parse error on line \"+(b+1)+`:\n`+I.showPosition()+`\nExpecting `+ct.join(\", \")+\", got '\"+(this.terminals_[N]||N)+\"'\":Dt=\"Parse error on line \"+(b+1)+\": Unexpected \"+(N==L?\"end of input\":\"'\"+(this.terminals_[N]||N)+\"'\"),this.parseError(Dt,{text:I.match,token:this.terminals_[N]||N,line:I.yylineno,loc:G,expected:ct})}if(w[0]instanceof Array&&w.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+D+\", token: \"+N);switch(w[0]){case 1:l.push(N),d.push(I.yytext),f.push(I.yylloc),l.push(w[1]),N=null,k=I.yyleng,g=I.yytext,b=I.yylineno,G=I.yylloc;break;case 2:if(Q=this.productions_[w[1]][1],M.$=d[d.length-Q],M._$={first_line:f[f.length-(Q||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(Q||1)].first_column,last_column:f[f.length-1].last_column},Y&&(M._$.range=[f[f.length-(Q||1)].range[0],f[f.length-1].range[1]]),v=this.performAction.apply(M,[g,k,b,V.yy,w[1],d,f].concat(E)),typeof v<\"u\")return v;Q&&(l=l.slice(0,-1*Q*2),d=d.slice(0,-1*Q),f=f.slice(0,-1*Q)),l.push(this.productions_[w[1]][0]),d.push(M.$),f.push(M._$),x=p[l[l.length-2]][l[l.length-1]],l.push(x);break;case 3:return!0}}return!0}},n=function(){var s={EOF:1,parseError:function(o,l){if(this.yy.parser)this.yy.parser.parseError(o,l);else throw new Error(o)},setInput:function(a,o){return this.yy=o||this.yy||{},this._input=a,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var o=a.match(/(?:\\r\\n?|\\n).*/g);return o?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var o=a.length,l=a.split(/(?:\\r\\n?|\\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-o),this.offset-=o;var u=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),l.length-1&&(this.yylineno-=l.length-1);var d=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:l?(l.length===u.length?this.yylloc.first_column:0)+u[u.length-l.length].length-l[0].length:this.yylloc.first_column-o},this.options.ranges&&(this.yylloc.range=[d[0],d[0]+this.yyleng-o]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno});return this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?\"...\":\"\")+a.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var a=this.pastInput(),o=new Array(a.length+1).join(\"-\");return a+this.upcomingInput()+`\n`+o+\"^\"},test_match:function(a,o){var l,u,d;if(this.options.backtrack_lexer&&(d={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(d.yylloc.range=this.yylloc.range.slice(0))),u=a[0].match(/(?:\\r\\n?|\\n).*/g),u&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+a[0].length},this.yytext+=a[0],this.match+=a[0],this.matches=a,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(a[0].length),this.matched+=a[0],l=this.performAction.call(this,this.yy,this,o,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),l)return l;if(this._backtrack){for(var f in d)this[f]=d[f];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,o,l,u;this._more||(this.yytext=\"\",this.match=\"\");for(var d=this._currentRules(),f=0;f<d.length;f++)if(l=this._input.match(this.rules[d[f]]),l&&(!o||l[0].length>o[0].length)){if(o=l,u=f,this.options.backtrack_lexer){if(a=this.test_match(l,d[f]),a!==!1)return a;if(this._backtrack){o=!1;continue}else return!1}else if(!this.options.flex)break}return o?(a=this.test_match(o,d[u]),a!==!1?a:!1):this._input===\"\"?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. Unrecognized text.\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var o=this.next();return o||this.lex()},begin:function(o){this.conditionStack.push(o)},popState:function(){var o=this.conditionStack.length-1;return o>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(o){return o=this.conditionStack.length-1-Math.abs(o||0),o>=0?this.conditionStack[o]:\"INITIAL\"},pushState:function(o){this.begin(o)},stateStackSize:function(){return this.conditionStack.length},options:{\"case-insensitive\":!0},performAction:function(o,l,u,d){switch(u){case 0:return 4;case 1:return 9;case 2:return\"space\";case 3:return 10;case 4:return 6;case 5:return\"TXT\"}},rules:[/^(?:info\\b)/i,/^(?:[\\s\\n\\r]+)/i,/^(?:[\\s]+)/i,/^(?:showInfo\\b)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5],inclusive:!0}}};return s}();r.lexer=n;function i(){this.yy={}}return i.prototype=r,r.Parser=i,new i}();Q0.parser=Q0;const AR=Q0;var I3=\"\",O3=!1;const LR={setMessage:t=>{B.debug(\"Setting message to: \"+t),I3=t},getMessage:()=>I3,setInfo:t=>{O3=t},getInfo:()=>O3,clear:vn},DR={draw:(t,e,r)=>{try{B.debug(`Rendering info diagram\n`+t);const n=$().securityLevel;let i;n===\"sandbox\"&&(i=St(\"#i\"+e));const a=St(n===\"sandbox\"?i.nodes()[0].contentDocument.body:\"body\").select(\"#\"+e);a.append(\"g\").append(\"text\").attr(\"x\",100).attr(\"y\",40).attr(\"class\",\"version\").attr(\"font-size\",\"32px\").style(\"text-anchor\",\"middle\").text(\"v \"+r),a.attr(\"height\",100),a.attr(\"width\",400)}catch(n){B.error(\"Error while rendering info diagram\"),B.error(n.message)}}},MR=t=>t.match(/^\\s*info/)!==null;var J0=function(){var t=function(G,Y,W,N){for(W=W||{},N=G.length;N--;W[G[N]]=Y);return W},e=[1,4],r=[1,5],n=[1,6],i=[1,7],s=[1,9],a=[1,11,13,15,17,19,20,26,27,28,29],o=[2,5],l=[1,6,11,13,15,17,19,20,26,27,28,29],u=[26,27,28],d=[2,8],f=[1,18],p=[1,19],g=[1,20],b=[1,21],k=[1,22],T=[1,23],L=[1,28],E=[6,26,27,28,29],I={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,PIE:6,document:7,showData:8,line:9,statement:10,txt:11,value:12,title:13,title_value:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,openDirective:21,typeDirective:22,closeDirective:23,\":\":24,argDirective:25,NEWLINE:26,\";\":27,EOF:28,open_directive:29,type_directive:30,arg_directive:31,close_directive:32,$accept:0,$end:1},terminals_:{2:\"error\",6:\"PIE\",8:\"showData\",11:\"txt\",12:\"value\",13:\"title\",14:\"title_value\",15:\"acc_title\",16:\"acc_title_value\",17:\"acc_descr\",18:\"acc_descr_value\",19:\"acc_descr_multiline_value\",20:\"section\",24:\":\",26:\"NEWLINE\",27:\";\",28:\"EOF\",29:\"open_directive\",30:\"type_directive\",31:\"arg_directive\",32:\"close_directive\"},productions_:[0,[3,2],[3,2],[3,2],[3,3],[7,0],[7,2],[9,2],[10,0],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,1],[5,3],[5,5],[4,1],[4,1],[4,1],[21,1],[22,1],[25,1],[23,1]],performAction:function(Y,W,N,D,w,v,M){var m=v.length-1;switch(w){case 4:D.setShowData(!0);break;case 7:this.$=v[m-1];break;case 9:D.addSection(v[m-1],D.cleanupValue(v[m]));break;case 10:this.$=v[m].trim(),D.setDiagramTitle(this.$);break;case 11:this.$=v[m].trim(),D.setAccTitle(this.$);break;case 12:case 13:this.$=v[m].trim(),D.setAccDescription(this.$);break;case 14:D.addSection(v[m].substr(8)),this.$=v[m].substr(8);break;case 21:D.parseDirective(\"%%{\",\"open_directive\");break;case 22:D.parseDirective(v[m],\"type_directive\");break;case 23:v[m]=v[m].trim().replace(/'/g,'\"'),D.parseDirective(v[m],\"arg_directive\");break;case 24:D.parseDirective(\"}%%\",\"close_directive\",\"pie\");break}},table:[{3:1,4:2,5:3,6:e,21:8,26:r,27:n,28:i,29:s},{1:[3]},{3:10,4:2,5:3,6:e,21:8,26:r,27:n,28:i,29:s},{3:11,4:2,5:3,6:e,21:8,26:r,27:n,28:i,29:s},t(a,o,{7:12,8:[1,13]}),t(l,[2,18]),t(l,[2,19]),t(l,[2,20]),{22:14,30:[1,15]},{30:[2,21]},{1:[2,1]},{1:[2,2]},t(u,d,{21:8,9:16,10:17,5:24,1:[2,3],11:f,13:p,15:g,17:b,19:k,20:T,29:s}),t(a,o,{7:25}),{23:26,24:[1,27],32:L},t([24,32],[2,22]),t(a,[2,6]),{4:29,26:r,27:n,28:i},{12:[1,30]},{14:[1,31]},{16:[1,32]},{18:[1,33]},t(u,[2,13]),t(u,[2,14]),t(u,[2,15]),t(u,d,{21:8,9:16,10:17,5:24,1:[2,4],11:f,13:p,15:g,17:b,19:k,20:T,29:s}),t(E,[2,16]),{25:34,31:[1,35]},t(E,[2,24]),t(a,[2,7]),t(u,[2,9]),t(u,[2,10]),t(u,[2,11]),t(u,[2,12]),{23:36,32:L},{32:[2,23]},t(E,[2,17])],defaultActions:{9:[2,21],10:[2,1],11:[2,2],35:[2,23]},parseError:function(Y,W){if(W.recoverable)this.trace(Y);else{var N=new Error(Y);throw N.hash=W,N}},parse:function(Y){var W=this,N=[0],D=[],w=[null],v=[],M=this.table,m=\"\",Q=0,x=0,ct=2,Dt=1,kt=v.slice.call(arguments,1),j=Object.create(this.lexer),ot={yy:{}};for(var rt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,rt)&&(ot.yy[rt]=this.yy[rt]);j.setInput(Y,ot.yy),ot.yy.lexer=j,ot.yy.parser=this,typeof j.yylloc>\"u\"&&(j.yylloc={});var nt=j.yylloc;v.push(nt);var ut=j.options&&j.options.ranges;typeof ot.yy.parseError==\"function\"?this.parseError=ot.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function _t(){var ht;return ht=D.pop()||j.lex()||Dt,typeof ht!=\"number\"&&(ht instanceof Array&&(D=ht,ht=D.pop()),ht=W.symbols_[ht]||ht),ht}for(var K,Ot,P,z,X={},F,O,A,J;;){if(Ot=N[N.length-1],this.defaultActions[Ot]?P=this.defaultActions[Ot]:((K===null||typeof K>\"u\")&&(K=_t()),P=M[Ot]&&M[Ot][K]),typeof P>\"u\"||!P.length||!P[0]){var C=\"\";J=[];for(F in M[Ot])this.terminals_[F]&&F>ct&&J.push(\"'\"+this.terminals_[F]+\"'\");j.showPosition?C=\"Parse error on line \"+(Q+1)+`:\n`+j.showPosition()+`\nExpecting `+J.join(\", \")+\", got '\"+(this.terminals_[K]||K)+\"'\":C=\"Parse error on line \"+(Q+1)+\": Unexpected \"+(K==Dt?\"end of input\":\"'\"+(this.terminals_[K]||K)+\"'\"),this.parseError(C,{text:j.match,token:this.terminals_[K]||K,line:j.yylineno,loc:nt,expected:J})}if(P[0]instanceof Array&&P.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+Ot+\", token: \"+K);switch(P[0]){case 1:N.push(K),w.push(j.yytext),v.push(j.yylloc),N.push(P[1]),K=null,x=j.yyleng,m=j.yytext,Q=j.yylineno,nt=j.yylloc;break;case 2:if(O=this.productions_[P[1]][1],X.$=w[w.length-O],X._$={first_line:v[v.length-(O||1)].first_line,last_line:v[v.length-1].last_line,first_column:v[v.length-(O||1)].first_column,last_column:v[v.length-1].last_column},ut&&(X._$.range=[v[v.length-(O||1)].range[0],v[v.length-1].range[1]]),z=this.performAction.apply(X,[m,x,Q,ot.yy,P[1],w,v].concat(kt)),typeof z<\"u\")return z;O&&(N=N.slice(0,-1*O*2),w=w.slice(0,-1*O),v=v.slice(0,-1*O)),N.push(this.productions_[P[1]][0]),w.push(X.$),v.push(X._$),A=M[N[N.length-2]][N[N.length-1]],N.push(A);break;case 3:return!0}}return!0}},V=function(){var G={EOF:1,parseError:function(W,N){if(this.yy.parser)this.yy.parser.parseError(W,N);else throw new Error(W)},setInput:function(Y,W){return this.yy=W||this.yy||{},this._input=Y,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Y=this._input[0];this.yytext+=Y,this.yyleng++,this.offset++,this.match+=Y,this.matched+=Y;var W=Y.match(/(?:\\r\\n?|\\n).*/g);return W?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Y},unput:function(Y){var W=Y.length,N=Y.split(/(?:\\r\\n?|\\n)/g);this._input=Y+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-W),this.offset-=W;var D=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),N.length-1&&(this.yylineno-=N.length-1);var w=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:N?(N.length===D.length?this.yylloc.first_column:0)+D[D.length-N.length].length-N[0].length:this.yylloc.first_column-W},this.options.ranges&&(this.yylloc.range=[w[0],w[0]+this.yyleng-W]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno});return this},less:function(Y){this.unput(this.match.slice(Y))},pastInput:function(){var Y=this.matched.substr(0,this.matched.length-this.match.length);return(Y.length>20?\"...\":\"\")+Y.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var Y=this.match;return Y.length<20&&(Y+=this._input.substr(0,20-Y.length)),(Y.substr(0,20)+(Y.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var Y=this.pastInput(),W=new Array(Y.length+1).join(\"-\");return Y+this.upcomingInput()+`\n`+W+\"^\"},test_match:function(Y,W){var N,D,w;if(this.options.backtrack_lexer&&(w={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(w.yylloc.range=this.yylloc.range.slice(0))),D=Y[0].match(/(?:\\r\\n?|\\n).*/g),D&&(this.yylineno+=D.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:D?D[D.length-1].length-D[D.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+Y[0].length},this.yytext+=Y[0],this.match+=Y[0],this.matches=Y,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Y[0].length),this.matched+=Y[0],N=this.performAction.call(this,this.yy,this,W,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),N)return N;if(this._backtrack){for(var v in w)this[v]=w[v];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Y,W,N,D;this._more||(this.yytext=\"\",this.match=\"\");for(var w=this._currentRules(),v=0;v<w.length;v++)if(N=this._input.match(this.rules[w[v]]),N&&(!W||N[0].length>W[0].length)){if(W=N,D=v,this.options.backtrack_lexer){if(Y=this.test_match(N,w[v]),Y!==!1)return Y;if(this._backtrack){W=!1;continue}else return!1}else if(!this.options.flex)break}return W?(Y=this.test_match(W,w[D]),Y!==!1?Y:!1):this._input===\"\"?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. Unrecognized text.\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var W=this.next();return W||this.lex()},begin:function(W){this.conditionStack.push(W)},popState:function(){var W=this.conditionStack.length-1;return W>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(W){return W=this.conditionStack.length-1-Math.abs(W||0),W>=0?this.conditionStack[W]:\"INITIAL\"},pushState:function(W){this.begin(W)},stateStackSize:function(){return this.conditionStack.length},options:{\"case-insensitive\":!0},performAction:function(W,N,D,w){switch(D){case 0:return this.begin(\"open_directive\"),29;case 1:return this.begin(\"type_directive\"),30;case 2:return this.popState(),this.begin(\"arg_directive\"),24;case 3:return this.popState(),this.popState(),32;case 4:return 31;case 5:break;case 6:break;case 7:return 26;case 8:break;case 9:break;case 10:return this.begin(\"title\"),13;case 11:return this.popState(),\"title_value\";case 12:return this.begin(\"acc_title\"),15;case 13:return this.popState(),\"acc_title_value\";case 14:return this.begin(\"acc_descr\"),17;case 15:return this.popState(),\"acc_descr_value\";case 16:this.begin(\"acc_descr_multiline\");break;case 17:this.popState();break;case 18:return\"acc_descr_multiline_value\";case 19:this.begin(\"string\");break;case 20:this.popState();break;case 21:return\"txt\";case 22:return 6;case 23:return 8;case 24:return\"value\";case 25:return 28}},rules:[/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:%%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[\\n\\r]+)/i,/^(?:%%[^\\n]*)/i,/^(?:[\\s]+)/i,/^(?:title\\b)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accTitle\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*\\{\\s*)/i,/^(?:[\\}])/i,/^(?:[^\\}]*)/i,/^(?:[\"])/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:pie\\b)/i,/^(?:showData\\b)/i,/^(?::[\\s]*[\\d]+(?:\\.[\\d]+)?)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},title:{rules:[11],inclusive:!1},string:{rules:[20,21],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,12,14,16,19,22,23,24,25],inclusive:!0}}};return G}();I.lexer=V;function H(){this.yy={}}return H.prototype=I,I.Parser=H,new H}();J0.parser=J0;const NR=J0,BR=t=>t.match(/^\\s*pie/)!==null||t.match(/^\\s*bar/)!==null;let Cu={},td=!1;const IR={parseDirective:function(t,e,r){ze.parseDirective(this,t,e,r)},getConfig:()=>$().pie,addSection:function(t,e){t=he.sanitizeText(t,$()),Cu[t]===void 0&&(Cu[t]=e,B.debug(\"Added new section :\",t))},getSections:()=>Cu,cleanupValue:function(t){return t.substring(0,1)===\":\"&&(t=t.substring(1).trim()),Number(t.trim())},clear:function(){Cu={},td=!1,vn()},setAccTitle:nn,getAccTitle:kn,setDiagramTitle:hi,getDiagramTitle:di,setShowData:function(t){td=t},getShowData:function(){return td},getAccDescription:Tn,setAccDescription:wn};let Ti=$(),Ei;const jo=450,OR={draw:(t,e,r,n)=>{try{Ti=$(),B.debug(`Rendering info diagram\n`+t);const E=$().securityLevel;let I;E===\"sandbox\"&&(I=St(\"#i\"+e));const V=St(E===\"sandbox\"?I.nodes()[0].contentDocument.body:\"body\"),H=E===\"sandbox\"?I.nodes()[0].contentDocument:document;n.db.clear(),n.parser.parse(t),B.debug(\"Parsed info diagram\");const G=H.getElementById(e);Ei=G.parentElement.offsetWidth,Ei===void 0&&(Ei=1200),Ti.useWidth!==void 0&&(Ei=Ti.useWidth),Ti.pie.useWidth!==void 0&&(Ei=Ti.pie.useWidth);const Y=V.select(\"#\"+e);xn(Y,jo,Ei,Ti.pie.useMaxWidth),G.setAttribute(\"viewBox\",\"0 0 \"+Ei+\" \"+jo);var i=40,s=18,a=4,o=Math.min(Ei,jo)/2-i,l=Y.append(\"g\").attr(\"transform\",\"translate(\"+Ei/2+\",\"+jo/2+\")\"),u=n.db.getSections(),d=0;Object.keys(u).forEach(function(N){d+=u[N]});const W=Ti.themeVariables;var f=[W.pie1,W.pie2,W.pie3,W.pie4,W.pie5,W.pie6,W.pie7,W.pie8,W.pie9,W.pie10,W.pie11,W.pie12],p=Jf().range(f),g=Object.entries(u).map(function(N,D){return{order:D,name:N[0],value:N[1]}}),b=Tk().value(function(N){return N.value}).sort(function(N,D){return N.order-D.order}),k=b(g),T=jh().innerRadius(0).outerRadius(o);l.selectAll(\"mySlices\").data(k).enter().append(\"path\").attr(\"d\",T).attr(\"fill\",function(N){return p(N.data.name)}).attr(\"class\",\"pieCircle\"),l.selectAll(\"mySlices\").data(k).enter().append(\"text\").text(function(N){return(N.data.value/d*100).toFixed(0)+\"%\"}).attr(\"transform\",function(N){return\"translate(\"+T.centroid(N)+\")\"}).style(\"text-anchor\",\"middle\").attr(\"class\",\"slice\"),l.append(\"text\").text(n.db.getDiagramTitle()).attr(\"x\",0).attr(\"y\",-(jo-50)/2).attr(\"class\",\"pieTitleText\");var L=l.selectAll(\".legend\").data(p.domain()).enter().append(\"g\").attr(\"class\",\"legend\").attr(\"transform\",function(N,D){const w=s+a,v=w*p.domain().length/2,M=12*s,m=D*w-v;return\"translate(\"+M+\",\"+m+\")\"});L.append(\"rect\").attr(\"width\",s).attr(\"height\",s).style(\"fill\",p).style(\"stroke\",p),L.data(k).append(\"text\").attr(\"x\",s+a).attr(\"y\",s-a).text(function(N){return n.db.getShowData()||Ti.showData||Ti.pie.showData?N.data.name+\" [\"+N.data.value+\"]\":N.data.name})}catch(E){B.error(\"Error while rendering info diagram\"),B.error(E)}}};var ed=function(){var t=function(Ot,P,z,X){for(z=z||{},X=Ot.length;X--;z[Ot[X]]=P);return z},e=[1,3],r=[1,5],n=[1,6],i=[1,7],s=[1,8],a=[5,6,8,14,16,18,19,40,41,42,43,44,45,53,71,72],o=[1,22],l=[2,13],u=[1,26],d=[1,27],f=[1,28],p=[1,29],g=[1,30],b=[1,31],k=[1,24],T=[1,32],L=[1,33],E=[1,36],I=[71,72],V=[5,8,14,16,18,19,40,41,42,43,44,45,53,60,62,71,72],H=[1,56],G=[1,57],Y=[1,58],W=[1,59],N=[1,60],D=[1,61],w=[1,62],v=[62,63],M=[1,74],m=[1,70],Q=[1,71],x=[1,72],ct=[1,73],Dt=[1,75],kt=[1,79],j=[1,80],ot=[1,77],rt=[1,78],nt=[5,8,14,16,18,19,40,41,42,43,44,45,53,71,72],ut={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,openDirective:9,typeDirective:10,closeDirective:11,\":\":12,argDirective:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,open_directive:19,type_directive:20,arg_directive:21,close_directive:22,requirementDef:23,elementDef:24,relationshipDef:25,requirementType:26,requirementName:27,STRUCT_START:28,requirementBody:29,ID:30,COLONSEP:31,id:32,TEXT:33,text:34,RISK:35,riskLevel:36,VERIFYMTHD:37,verifyType:38,STRUCT_STOP:39,REQUIREMENT:40,FUNCTIONAL_REQUIREMENT:41,INTERFACE_REQUIREMENT:42,PERFORMANCE_REQUIREMENT:43,PHYSICAL_REQUIREMENT:44,DESIGN_CONSTRAINT:45,LOW_RISK:46,MED_RISK:47,HIGH_RISK:48,VERIFY_ANALYSIS:49,VERIFY_DEMONSTRATION:50,VERIFY_INSPECTION:51,VERIFY_TEST:52,ELEMENT:53,elementName:54,elementBody:55,TYPE:56,type:57,DOCREF:58,ref:59,END_ARROW_L:60,relationship:61,LINE:62,END_ARROW_R:63,CONTAINS:64,COPIES:65,DERIVES:66,SATISFIES:67,VERIFIES:68,REFINES:69,TRACES:70,unqString:71,qString:72,$accept:0,$end:1},terminals_:{2:\"error\",5:\"NEWLINE\",6:\"RD\",8:\"EOF\",12:\":\",14:\"acc_title\",15:\"acc_title_value\",16:\"acc_descr\",17:\"acc_descr_value\",18:\"acc_descr_multiline_value\",19:\"open_directive\",20:\"type_directive\",21:\"arg_directive\",22:\"close_directive\",28:\"STRUCT_START\",30:\"ID\",31:\"COLONSEP\",33:\"TEXT\",35:\"RISK\",37:\"VERIFYMTHD\",39:\"STRUCT_STOP\",40:\"REQUIREMENT\",41:\"FUNCTIONAL_REQUIREMENT\",42:\"INTERFACE_REQUIREMENT\",43:\"PERFORMANCE_REQUIREMENT\",44:\"PHYSICAL_REQUIREMENT\",45:\"DESIGN_CONSTRAINT\",46:\"LOW_RISK\",47:\"MED_RISK\",48:\"HIGH_RISK\",49:\"VERIFY_ANALYSIS\",50:\"VERIFY_DEMONSTRATION\",51:\"VERIFY_INSPECTION\",52:\"VERIFY_TEST\",53:\"ELEMENT\",56:\"TYPE\",58:\"DOCREF\",60:\"END_ARROW_L\",62:\"LINE\",63:\"END_ARROW_R\",64:\"CONTAINS\",65:\"COPIES\",66:\"DERIVES\",67:\"SATISFIES\",68:\"VERIFIES\",69:\"REFINES\",70:\"TRACES\",71:\"unqString\",72:\"qString\"},productions_:[0,[3,3],[3,2],[3,4],[4,3],[4,5],[4,2],[4,2],[4,1],[9,1],[10,1],[13,1],[11,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[23,5],[29,5],[29,5],[29,5],[29,5],[29,2],[29,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[36,1],[36,1],[36,1],[38,1],[38,1],[38,1],[38,1],[24,5],[55,5],[55,5],[55,2],[55,1],[25,5],[25,5],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[27,1],[27,1],[32,1],[32,1],[34,1],[34,1],[54,1],[54,1],[57,1],[57,1],[59,1],[59,1]],performAction:function(P,z,X,F,O,A,J){var C=A.length-1;switch(O){case 6:this.$=A[C].trim(),F.setAccTitle(this.$);break;case 7:case 8:this.$=A[C].trim(),F.setAccDescription(this.$);break;case 9:F.parseDirective(\"%%{\",\"open_directive\");break;case 10:F.parseDirective(A[C],\"type_directive\");break;case 11:A[C]=A[C].trim().replace(/'/g,'\"'),F.parseDirective(A[C],\"arg_directive\");break;case 12:F.parseDirective(\"}%%\",\"close_directive\",\"pie\");break;case 13:this.$=[];break;case 19:F.addRequirement(A[C-3],A[C-4]);break;case 20:F.setNewReqId(A[C-2]);break;case 21:F.setNewReqText(A[C-2]);break;case 22:F.setNewReqRisk(A[C-2]);break;case 23:F.setNewReqVerifyMethod(A[C-2]);break;case 26:this.$=F.RequirementType.REQUIREMENT;break;case 27:this.$=F.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 28:this.$=F.RequirementType.INTERFACE_REQUIREMENT;break;case 29:this.$=F.RequirementType.PERFORMANCE_REQUIREMENT;break;case 30:this.$=F.RequirementType.PHYSICAL_REQUIREMENT;break;case 31:this.$=F.RequirementType.DESIGN_CONSTRAINT;break;case 32:this.$=F.RiskLevel.LOW_RISK;break;case 33:this.$=F.RiskLevel.MED_RISK;break;case 34:this.$=F.RiskLevel.HIGH_RISK;break;case 35:this.$=F.VerifyType.VERIFY_ANALYSIS;break;case 36:this.$=F.VerifyType.VERIFY_DEMONSTRATION;break;case 37:this.$=F.VerifyType.VERIFY_INSPECTION;break;case 38:this.$=F.VerifyType.VERIFY_TEST;break;case 39:F.addElement(A[C-3]);break;case 40:F.setNewElementType(A[C-2]);break;case 41:F.setNewElementDocRef(A[C-2]);break;case 44:F.addRelationship(A[C-2],A[C],A[C-4]);break;case 45:F.addRelationship(A[C-2],A[C-4],A[C]);break;case 46:this.$=F.Relationships.CONTAINS;break;case 47:this.$=F.Relationships.COPIES;break;case 48:this.$=F.Relationships.DERIVES;break;case 49:this.$=F.Relationships.SATISFIES;break;case 50:this.$=F.Relationships.VERIFIES;break;case 51:this.$=F.Relationships.REFINES;break;case 52:this.$=F.Relationships.TRACES;break}},table:[{3:1,4:2,6:e,9:4,14:r,16:n,18:i,19:s},{1:[3]},{3:10,4:2,5:[1,9],6:e,9:4,14:r,16:n,18:i,19:s},{5:[1,11]},{10:12,20:[1,13]},{15:[1,14]},{17:[1,15]},t(a,[2,8]),{20:[2,9]},{3:16,4:2,6:e,9:4,14:r,16:n,18:i,19:s},{1:[2,2]},{4:21,5:o,7:17,8:l,9:4,14:r,16:n,18:i,19:s,23:18,24:19,25:20,26:23,32:25,40:u,41:d,42:f,43:p,44:g,45:b,53:k,71:T,72:L},{11:34,12:[1,35],22:E},t([12,22],[2,10]),t(a,[2,6]),t(a,[2,7]),{1:[2,1]},{8:[1,37]},{4:21,5:o,7:38,8:l,9:4,14:r,16:n,18:i,19:s,23:18,24:19,25:20,26:23,32:25,40:u,41:d,42:f,43:p,44:g,45:b,53:k,71:T,72:L},{4:21,5:o,7:39,8:l,9:4,14:r,16:n,18:i,19:s,23:18,24:19,25:20,26:23,32:25,40:u,41:d,42:f,43:p,44:g,45:b,53:k,71:T,72:L},{4:21,5:o,7:40,8:l,9:4,14:r,16:n,18:i,19:s,23:18,24:19,25:20,26:23,32:25,40:u,41:d,42:f,43:p,44:g,45:b,53:k,71:T,72:L},{4:21,5:o,7:41,8:l,9:4,14:r,16:n,18:i,19:s,23:18,24:19,25:20,26:23,32:25,40:u,41:d,42:f,43:p,44:g,45:b,53:k,71:T,72:L},{4:21,5:o,7:42,8:l,9:4,14:r,16:n,18:i,19:s,23:18,24:19,25:20,26:23,32:25,40:u,41:d,42:f,43:p,44:g,45:b,53:k,71:T,72:L},{27:43,71:[1,44],72:[1,45]},{54:46,71:[1,47],72:[1,48]},{60:[1,49],62:[1,50]},t(I,[2,26]),t(I,[2,27]),t(I,[2,28]),t(I,[2,29]),t(I,[2,30]),t(I,[2,31]),t(V,[2,55]),t(V,[2,56]),t(a,[2,4]),{13:51,21:[1,52]},t(a,[2,12]),{1:[2,3]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{8:[2,17]},{8:[2,18]},{28:[1,53]},{28:[2,53]},{28:[2,54]},{28:[1,54]},{28:[2,59]},{28:[2,60]},{61:55,64:H,65:G,66:Y,67:W,68:N,69:D,70:w},{61:63,64:H,65:G,66:Y,67:W,68:N,69:D,70:w},{11:64,22:E},{22:[2,11]},{5:[1,65]},{5:[1,66]},{62:[1,67]},t(v,[2,46]),t(v,[2,47]),t(v,[2,48]),t(v,[2,49]),t(v,[2,50]),t(v,[2,51]),t(v,[2,52]),{63:[1,68]},t(a,[2,5]),{5:M,29:69,30:m,33:Q,35:x,37:ct,39:Dt},{5:kt,39:j,55:76,56:ot,58:rt},{32:81,71:T,72:L},{32:82,71:T,72:L},t(nt,[2,19]),{31:[1,83]},{31:[1,84]},{31:[1,85]},{31:[1,86]},{5:M,29:87,30:m,33:Q,35:x,37:ct,39:Dt},t(nt,[2,25]),t(nt,[2,39]),{31:[1,88]},{31:[1,89]},{5:kt,39:j,55:90,56:ot,58:rt},t(nt,[2,43]),t(nt,[2,44]),t(nt,[2,45]),{32:91,71:T,72:L},{34:92,71:[1,93],72:[1,94]},{36:95,46:[1,96],47:[1,97],48:[1,98]},{38:99,49:[1,100],50:[1,101],51:[1,102],52:[1,103]},t(nt,[2,24]),{57:104,71:[1,105],72:[1,106]},{59:107,71:[1,108],72:[1,109]},t(nt,[2,42]),{5:[1,110]},{5:[1,111]},{5:[2,57]},{5:[2,58]},{5:[1,112]},{5:[2,32]},{5:[2,33]},{5:[2,34]},{5:[1,113]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[2,38]},{5:[1,114]},{5:[2,61]},{5:[2,62]},{5:[1,115]},{5:[2,63]},{5:[2,64]},{5:M,29:116,30:m,33:Q,35:x,37:ct,39:Dt},{5:M,29:117,30:m,33:Q,35:x,37:ct,39:Dt},{5:M,29:118,30:m,33:Q,35:x,37:ct,39:Dt},{5:M,29:119,30:m,33:Q,35:x,37:ct,39:Dt},{5:kt,39:j,55:120,56:ot,58:rt},{5:kt,39:j,55:121,56:ot,58:rt},t(nt,[2,20]),t(nt,[2,21]),t(nt,[2,22]),t(nt,[2,23]),t(nt,[2,40]),t(nt,[2,41])],defaultActions:{8:[2,9],10:[2,2],16:[2,1],37:[2,3],38:[2,14],39:[2,15],40:[2,16],41:[2,17],42:[2,18],44:[2,53],45:[2,54],47:[2,59],48:[2,60],52:[2,11],93:[2,57],94:[2,58],96:[2,32],97:[2,33],98:[2,34],100:[2,35],101:[2,36],102:[2,37],103:[2,38],105:[2,61],106:[2,62],108:[2,63],109:[2,64]},parseError:function(P,z){if(z.recoverable)this.trace(P);else{var X=new Error(P);throw X.hash=z,X}},parse:function(P){var z=this,X=[0],F=[],O=[null],A=[],J=this.table,C=\"\",ht=0,U=0,Yt=2,et=1,Mt=A.slice.call(arguments,1),Tt=Object.create(this.lexer),gt={yy:{}};for(var Et in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Et)&&(gt.yy[Et]=this.yy[Et]);Tt.setInput(P,gt.yy),gt.yy.lexer=Tt,gt.yy.parser=this,typeof Tt.yylloc>\"u\"&&(Tt.yylloc={});var wt=Tt.yylloc;A.push(wt);var pt=Tt.options&&Tt.options.ranges;typeof gt.yy.parseError==\"function\"?this.parseError=gt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function st(){var ft;return ft=F.pop()||Tt.lex()||et,typeof ft!=\"number\"&&(ft instanceof Array&&(F=ft,ft=F.pop()),ft=z.symbols_[ft]||ft),ft}for(var le,Xt,jt,Kt,Gt={},Ee,Ht,Vt,Ft;;){if(Xt=X[X.length-1],this.defaultActions[Xt]?jt=this.defaultActions[Xt]:((le===null||typeof le>\"u\")&&(le=st()),jt=J[Xt]&&J[Xt][le]),typeof jt>\"u\"||!jt.length||!jt[0]){var xt=\"\";Ft=[];for(Ee in J[Xt])this.terminals_[Ee]&&Ee>Yt&&Ft.push(\"'\"+this.terminals_[Ee]+\"'\");Tt.showPosition?xt=\"Parse error on line \"+(ht+1)+`:\n`+Tt.showPosition()+`\nExpecting `+Ft.join(\", \")+\", got '\"+(this.terminals_[le]||le)+\"'\":xt=\"Parse error on line \"+(ht+1)+\": Unexpected \"+(le==et?\"end of input\":\"'\"+(this.terminals_[le]||le)+\"'\"),this.parseError(xt,{text:Tt.match,token:this.terminals_[le]||le,line:Tt.yylineno,loc:wt,expected:Ft})}if(jt[0]instanceof Array&&jt.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+Xt+\", token: \"+le);switch(jt[0]){case 1:X.push(le),O.push(Tt.yytext),A.push(Tt.yylloc),X.push(jt[1]),le=null,U=Tt.yyleng,C=Tt.yytext,ht=Tt.yylineno,wt=Tt.yylloc;break;case 2:if(Ht=this.productions_[jt[1]][1],Gt.$=O[O.length-Ht],Gt._$={first_line:A[A.length-(Ht||1)].first_line,last_line:A[A.length-1].last_line,first_column:A[A.length-(Ht||1)].first_column,last_column:A[A.length-1].last_column},pt&&(Gt._$.range=[A[A.length-(Ht||1)].range[0],A[A.length-1].range[1]]),Kt=this.performAction.apply(Gt,[C,U,ht,gt.yy,jt[1],O,A].concat(Mt)),typeof Kt<\"u\")return Kt;Ht&&(X=X.slice(0,-1*Ht*2),O=O.slice(0,-1*Ht),A=A.slice(0,-1*Ht)),X.push(this.productions_[jt[1]][0]),O.push(Gt.$),A.push(Gt._$),Vt=J[X[X.length-2]][X[X.length-1]],X.push(Vt);break;case 3:return!0}}return!0}},_t=function(){var Ot={EOF:1,parseError:function(z,X){if(this.yy.parser)this.yy.parser.parseError(z,X);else throw new Error(z)},setInput:function(P,z){return this.yy=z||this.yy||{},this._input=P,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var P=this._input[0];this.yytext+=P,this.yyleng++,this.offset++,this.match+=P,this.matched+=P;var z=P.match(/(?:\\r\\n?|\\n).*/g);return z?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),P},unput:function(P){var z=P.length,X=P.split(/(?:\\r\\n?|\\n)/g);this._input=P+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-z),this.offset-=z;var F=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),X.length-1&&(this.yylineno-=X.length-1);var O=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:X?(X.length===F.length?this.yylloc.first_column:0)+F[F.length-X.length].length-X[0].length:this.yylloc.first_column-z},this.options.ranges&&(this.yylloc.range=[O[0],O[0]+this.yyleng-z]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno});return this},less:function(P){this.unput(this.match.slice(P))},pastInput:function(){var P=this.matched.substr(0,this.matched.length-this.match.length);return(P.length>20?\"...\":\"\")+P.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var P=this.match;return P.length<20&&(P+=this._input.substr(0,20-P.length)),(P.substr(0,20)+(P.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var P=this.pastInput(),z=new Array(P.length+1).join(\"-\");return P+this.upcomingInput()+`\n`+z+\"^\"},test_match:function(P,z){var X,F,O;if(this.options.backtrack_lexer&&(O={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(O.yylloc.range=this.yylloc.range.slice(0))),F=P[0].match(/(?:\\r\\n?|\\n).*/g),F&&(this.yylineno+=F.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:F?F[F.length-1].length-F[F.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+P[0].length},this.yytext+=P[0],this.match+=P[0],this.matches=P,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(P[0].length),this.matched+=P[0],X=this.performAction.call(this,this.yy,this,z,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),X)return X;if(this._backtrack){for(var A in O)this[A]=O[A];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var P,z,X,F;this._more||(this.yytext=\"\",this.match=\"\");for(var O=this._currentRules(),A=0;A<O.length;A++)if(X=this._input.match(this.rules[O[A]]),X&&(!z||X[0].length>z[0].length)){if(z=X,F=A,this.options.backtrack_lexer){if(P=this.test_match(X,O[A]),P!==!1)return P;if(this._backtrack){z=!1;continue}else return!1}else if(!this.options.flex)break}return z?(P=this.test_match(z,O[F]),P!==!1?P:!1):this._input===\"\"?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. Unrecognized text.\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var z=this.next();return z||this.lex()},begin:function(z){this.conditionStack.push(z)},popState:function(){var z=this.conditionStack.length-1;return z>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(z){return z=this.conditionStack.length-1-Math.abs(z||0),z>=0?this.conditionStack[z]:\"INITIAL\"},pushState:function(z){this.begin(z)},stateStackSize:function(){return this.conditionStack.length},options:{\"case-insensitive\":!0},performAction:function(z,X,F,O){switch(F){case 0:return this.begin(\"open_directive\"),19;case 1:return this.begin(\"type_directive\"),20;case 2:return this.popState(),this.begin(\"arg_directive\"),12;case 3:return this.popState(),this.popState(),22;case 4:return 21;case 5:return\"title\";case 6:return this.begin(\"acc_title\"),14;case 7:return this.popState(),\"acc_title_value\";case 8:return this.begin(\"acc_descr\"),16;case 9:return this.popState(),\"acc_descr_value\";case 10:this.begin(\"acc_descr_multiline\");break;case 11:this.popState();break;case 12:return\"acc_descr_multiline_value\";case 13:return 5;case 14:break;case 15:break;case 16:break;case 17:return 8;case 18:return 6;case 19:return 28;case 20:return 39;case 21:return 31;case 22:return 30;case 23:return 33;case 24:return 35;case 25:return 37;case 26:return 40;case 27:return 41;case 28:return 42;case 29:return 43;case 30:return 44;case 31:return 45;case 32:return 46;case 33:return 47;case 34:return 48;case 35:return 49;case 36:return 50;case 37:return 51;case 38:return 52;case 39:return 53;case 40:return 64;case 41:return 65;case 42:return 66;case 43:return 67;case 44:return 68;case 45:return 69;case 46:return 70;case 47:return 56;case 48:return 58;case 49:return 60;case 50:return 63;case 51:return 62;case 52:this.begin(\"string\");break;case 53:this.popState();break;case 54:return\"qString\";case 55:return X.yytext=X.yytext.trim(),71}},rules:[/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:title\\s[^#\\n;]+)/i,/^(?:accTitle\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*\\{\\s*)/i,/^(?:[\\}])/i,/^(?:[^\\}]*)/i,/^(?:(\\r?\\n)+)/i,/^(?:\\s+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\\b)/i,/^(?:\\{)/i,/^(?:\\})/i,/^(?::)/i,/^(?:id\\b)/i,/^(?:text\\b)/i,/^(?:risk\\b)/i,/^(?:verifyMethod\\b)/i,/^(?:requirement\\b)/i,/^(?:functionalRequirement\\b)/i,/^(?:interfaceRequirement\\b)/i,/^(?:performanceRequirement\\b)/i,/^(?:physicalRequirement\\b)/i,/^(?:designConstraint\\b)/i,/^(?:low\\b)/i,/^(?:medium\\b)/i,/^(?:high\\b)/i,/^(?:analysis\\b)/i,/^(?:demonstration\\b)/i,/^(?:inspection\\b)/i,/^(?:test\\b)/i,/^(?:element\\b)/i,/^(?:contains\\b)/i,/^(?:copies\\b)/i,/^(?:derives\\b)/i,/^(?:satisfies\\b)/i,/^(?:verifies\\b)/i,/^(?:refines\\b)/i,/^(?:traces\\b)/i,/^(?:type\\b)/i,/^(?:docref\\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:[\"])/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:[\\w][^\\r\\n\\{\\<\\>\\-\\=]*)/i],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[53,54],inclusive:!1},INITIAL:{rules:[0,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55],inclusive:!0}}};return Ot}();ut.lexer=_t;function K(){this.yy={}}return K.prototype=ut,ut.Parser=K,new K}();ed.parser=ed;const RR=ed,FR=t=>t.match(/^\\s*requirement(Diagram)?/)!==null;let rd=[],Ur={},$o={},qi={},Xo={};const PR={RequirementType:{REQUIREMENT:\"Requirement\",FUNCTIONAL_REQUIREMENT:\"Functional Requirement\",INTERFACE_REQUIREMENT:\"Interface Requirement\",PERFORMANCE_REQUIREMENT:\"Performance Requirement\",PHYSICAL_REQUIREMENT:\"Physical Requirement\",DESIGN_CONSTRAINT:\"Design Constraint\"},RiskLevel:{LOW_RISK:\"Low\",MED_RISK:\"Medium\",HIGH_RISK:\"High\"},VerifyType:{VERIFY_ANALYSIS:\"Analysis\",VERIFY_DEMONSTRATION:\"Demonstration\",VERIFY_INSPECTION:\"Inspection\",VERIFY_TEST:\"Test\"},Relationships:{CONTAINS:\"contains\",COPIES:\"copies\",DERIVES:\"derives\",SATISFIES:\"satisfies\",VERIFIES:\"verifies\",REFINES:\"refines\",TRACES:\"traces\"},parseDirective:function(t,e,r){ze.parseDirective(this,t,e,r)},getConfig:()=>$().req,addRequirement:(t,e)=>($o[t]===void 0&&($o[t]={name:t,type:e,id:Ur.id,text:Ur.text,risk:Ur.risk,verifyMethod:Ur.verifyMethod}),Ur={},$o[t]),getRequirements:()=>$o,setNewReqId:t=>{Ur!==void 0&&(Ur.id=t)},setNewReqText:t=>{Ur!==void 0&&(Ur.text=t)},setNewReqRisk:t=>{Ur!==void 0&&(Ur.risk=t)},setNewReqVerifyMethod:t=>{Ur!==void 0&&(Ur.verifyMethod=t)},setAccTitle:nn,getAccTitle:kn,setAccDescription:wn,getAccDescription:Tn,addElement:t=>(Xo[t]===void 0&&(Xo[t]={name:t,type:qi.type,docRef:qi.docRef},B.info(\"Added new requirement: \",t)),qi={},Xo[t]),getElements:()=>Xo,setNewElementType:t=>{qi!==void 0&&(qi.type=t)},setNewElementDocRef:t=>{qi!==void 0&&(qi.docRef=t)},addRelationship:(t,e,r)=>{rd.push({type:t,src:e,dst:r})},getRelationships:()=>rd,clear:()=>{rd=[],Ur={},$o={},qi={},Xo={},vn()}},nd={CONTAINS:\"contains\",ARROW:\"arrow\"},R3={ReqMarkers:nd,insertLineEndings:(t,e)=>{let r=t.append(\"defs\").append(\"marker\").attr(\"id\",nd.CONTAINS+\"_line_ending\").attr(\"refX\",0).attr(\"refY\",e.line_height/2).attr(\"markerWidth\",e.line_height).attr(\"markerHeight\",e.line_height).attr(\"orient\",\"auto\").append(\"g\");r.append(\"circle\").attr(\"cx\",e.line_height/2).attr(\"cy\",e.line_height/2).attr(\"r\",e.line_height/2).attr(\"fill\",\"none\"),r.append(\"line\").attr(\"x1\",0).attr(\"x2\",e.line_height).attr(\"y1\",e.line_height/2).attr(\"y2\",e.line_height/2).attr(\"stroke-width\",1),r.append(\"line\").attr(\"y1\",0).attr(\"y2\",e.line_height).attr(\"x1\",e.line_height/2).attr(\"x2\",e.line_height/2).attr(\"stroke-width\",1),t.append(\"defs\").append(\"marker\").attr(\"id\",nd.ARROW+\"_line_ending\").attr(\"refX\",e.line_height).attr(\"refY\",.5*e.line_height).attr(\"markerWidth\",e.line_height).attr(\"markerHeight\",e.line_height).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",`M0,0\n L${e.line_height},${e.line_height/2}\n M${e.line_height},${e.line_height/2}\n L0,${e.line_height}`).attr(\"stroke-width\",1)}};let qe={},F3=0;const P3=(t,e)=>t.insert(\"rect\",\"#\"+e).attr(\"class\",\"req reqBox\").attr(\"x\",0).attr(\"y\",0).attr(\"width\",qe.rect_min_width+\"px\").attr(\"height\",qe.rect_min_height+\"px\"),Y3=(t,e,r)=>{let n=qe.rect_min_width/2,i=t.append(\"text\").attr(\"class\",\"req reqLabel reqTitle\").attr(\"id\",e).attr(\"x\",n).attr(\"y\",qe.rect_padding).attr(\"dominant-baseline\",\"hanging\"),s=0;r.forEach(u=>{s==0?i.append(\"tspan\").attr(\"text-anchor\",\"middle\").attr(\"x\",qe.rect_min_width/2).attr(\"dy\",0).text(u):i.append(\"tspan\").attr(\"text-anchor\",\"middle\").attr(\"x\",qe.rect_min_width/2).attr(\"dy\",qe.line_height*.75).text(u),s++});let a=1.5*qe.rect_padding,o=s*qe.line_height*.75,l=a+o;return t.append(\"line\").attr(\"class\",\"req-title-line\").attr(\"x1\",\"0\").attr(\"x2\",qe.rect_min_width).attr(\"y1\",l).attr(\"y2\",l),{titleNode:i,y:l}},V3=(t,e,r,n)=>{let i=t.append(\"text\").attr(\"class\",\"req reqLabel\").attr(\"id\",e).attr(\"x\",qe.rect_padding).attr(\"y\",n).attr(\"dominant-baseline\",\"hanging\"),s=0;const a=30;let o=[];return r.forEach(l=>{let u=l.length;for(;u>a&&s<3;){let d=l.substring(0,a);l=l.substring(a,l.length),u=l.length,o[o.length]=d,s++}if(s==3){let d=o[o.length-1];o[o.length-1]=d.substring(0,d.length-4)+\"...\"}else o[o.length]=l;s=0}),o.forEach(l=>{i.append(\"tspan\").attr(\"x\",qe.rect_padding).attr(\"dy\",qe.line_height).text(l)}),i},YR=(t,e,r,n)=>{const i=e.node().getTotalLength(),s=e.node().getPointAtLength(i*.5),a=\"rel\"+F3;F3++;const l=t.append(\"text\").attr(\"class\",\"req relationshipLabel\").attr(\"id\",a).attr(\"x\",s.x).attr(\"y\",s.y).attr(\"text-anchor\",\"middle\").attr(\"dominant-baseline\",\"middle\").text(n).node().getBBox();t.insert(\"rect\",\"#\"+a).attr(\"class\",\"req reqLabelBox\").attr(\"x\",s.x-l.width/2).attr(\"y\",s.y-l.height/2).attr(\"width\",l.width).attr(\"height\",l.height).attr(\"fill\",\"white\").attr(\"fill-opacity\",\"85%\")},VR=function(t,e,r,n,i){const s=r.edge(Ma(e.src),Ma(e.dst)),a=Js().x(function(l){return l.x}).y(function(l){return l.y}),o=t.insert(\"path\",\"#\"+n).attr(\"class\",\"er relationshipLine\").attr(\"d\",a(s.points)).attr(\"fill\",\"none\");e.type==i.db.Relationships.CONTAINS?o.attr(\"marker-start\",\"url(\"+he.getUrl(qe.arrowMarkerAbsolute)+\"#\"+e.type+\"_line_ending)\"):(o.attr(\"stroke-dasharray\",\"10,7\"),o.attr(\"marker-end\",\"url(\"+he.getUrl(qe.arrowMarkerAbsolute)+\"#\"+R3.ReqMarkers.ARROW+\"_line_ending)\")),YR(t,o,qe,`<<${e.type}>>`)},UR=(t,e,r)=>{Object.keys(t).forEach(n=>{let i=t[n];n=Ma(n),B.info(\"Added new requirement: \",n);const s=r.append(\"g\").attr(\"id\",n),a=\"req-\"+n,o=P3(s,a);let l=Y3(s,n+\"_title\",[`<<${i.type}>>`,`${i.name}`]);V3(s,n+\"_body\",[`Id: ${i.id}`,`Text: ${i.text}`,`Risk: ${i.risk}`,`Verification: ${i.verifyMethod}`],l.y);const u=o.node().getBBox();e.setNode(n,{width:u.width,height:u.height,shape:\"rect\",id:n})})},zR=(t,e,r)=>{Object.keys(t).forEach(n=>{let i=t[n];const s=Ma(n),a=r.append(\"g\").attr(\"id\",s),o=\"element-\"+s,l=P3(a,o);let u=Y3(a,o+\"_title\",[\"<<Element>>\",`${n}`]);V3(a,o+\"_body\",[`Type: ${i.type||\"Not Specified\"}`,`Doc Ref: ${i.docRef||\"None\"}`],u.y);const d=l.node().getBBox();e.setNode(s,{width:d.width,height:d.height,shape:\"rect\",id:s})})},WR=(t,e)=>(t.forEach(function(r){let n=Ma(r.src),i=Ma(r.dst);e.setEdge(n,i,{relationship:r})}),t),HR=function(t,e){e.nodes().forEach(function(r){r!==void 0&&e.node(r)!==void 0&&(t.select(\"#\"+r),t.select(\"#\"+r).attr(\"transform\",\"translate(\"+(e.node(r).x-e.node(r).width/2)+\",\"+(e.node(r).y-e.node(r).height/2)+\" )\"))})},Ma=t=>t.replace(/\\s/g,\"\").replace(/\\./g,\"_\"),GR={draw:(t,e,r,n)=>{qe=$().requirement,n.db.clear(),n.parser.parse(t);const i=qe.securityLevel;let s;i===\"sandbox\"&&(s=St(\"#i\"+e));const o=St(i===\"sandbox\"?s.nodes()[0].contentDocument.body:\"body\").select(`[id='${e}']`);R3.insertLineEndings(o,qe);const l=new sr({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:qe.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});let u=n.db.getRequirements(),d=n.db.getElements(),f=n.db.getRelationships();UR(u,l,o),zR(d,l,o),WR(f,l),Ea(l),HR(o,l),f.forEach(function(T){VR(o,T,l,e,n)});const p=qe.rect_padding,g=o.node().getBBox(),b=g.width+p*2,k=g.height+p*2;xn(o,k,b,qe.useMaxWidth),o.attr(\"viewBox\",`${g.x-p} ${g.y-p} ${b} ${k}`)}};var id=function(){var t=function(Ot,P,z,X){for(z=z||{},X=Ot.length;X--;z[Ot[X]]=P);return z},e=[1,2],r=[1,3],n=[1,5],i=[1,7],s=[2,5],a=[1,15],o=[1,17],l=[1,18],u=[1,19],d=[1,21],f=[1,22],p=[1,23],g=[1,29],b=[1,30],k=[1,31],T=[1,32],L=[1,33],E=[1,34],I=[1,35],V=[1,36],H=[1,37],G=[1,38],Y=[1,39],W=[1,40],N=[1,43],D=[1,44],w=[1,45],v=[1,46],M=[1,47],m=[1,48],Q=[1,51],x=[1,4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,50,51,52,53,58,59,60,61,69,79],ct=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,53,58,59,60,61,69,79],Dt=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,52,53,58,59,60,61,69,79],kt=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,51,53,58,59,60,61,69,79],j=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,50,53,58,59,60,61,69,79],ot=[67,68,69],rt=[1,121],nt=[1,4,5,7,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,50,51,52,53,58,59,60,61,69,79],ut={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,directive:6,SD:7,document:8,line:9,statement:10,openDirective:11,typeDirective:12,closeDirective:13,\":\":14,argDirective:15,participant:16,actor:17,AS:18,restOfLine:19,participant_actor:20,signal:21,autonumber:22,NUM:23,off:24,activate:25,deactivate:26,note_statement:27,links_statement:28,link_statement:29,properties_statement:30,details_statement:31,title:32,legacy_title:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,loop:39,end:40,rect:41,opt:42,alt:43,else_sections:44,par:45,par_sections:46,critical:47,option_sections:48,break:49,option:50,and:51,else:52,note:53,placement:54,text2:55,over:56,actor_pair:57,links:58,link:59,properties:60,details:61,spaceList:62,\",\":63,left_of:64,right_of:65,signaltype:66,\"+\":67,\"-\":68,ACTOR:69,SOLID_OPEN_ARROW:70,DOTTED_OPEN_ARROW:71,SOLID_ARROW:72,DOTTED_ARROW:73,SOLID_CROSS:74,DOTTED_CROSS:75,SOLID_POINT:76,DOTTED_POINT:77,TXT:78,open_directive:79,type_directive:80,arg_directive:81,close_directive:82,$accept:0,$end:1},terminals_:{2:\"error\",4:\"SPACE\",5:\"NEWLINE\",7:\"SD\",14:\":\",16:\"participant\",18:\"AS\",19:\"restOfLine\",20:\"participant_actor\",22:\"autonumber\",23:\"NUM\",24:\"off\",25:\"activate\",26:\"deactivate\",32:\"title\",33:\"legacy_title\",34:\"acc_title\",35:\"acc_title_value\",36:\"acc_descr\",37:\"acc_descr_value\",38:\"acc_descr_multiline_value\",39:\"loop\",40:\"end\",41:\"rect\",42:\"opt\",43:\"alt\",45:\"par\",47:\"critical\",49:\"break\",50:\"option\",51:\"and\",52:\"else\",53:\"note\",56:\"over\",58:\"links\",59:\"link\",60:\"properties\",61:\"details\",63:\",\",64:\"left_of\",65:\"right_of\",67:\"+\",68:\"-\",69:\"ACTOR\",70:\"SOLID_OPEN_ARROW\",71:\"DOTTED_OPEN_ARROW\",72:\"SOLID_ARROW\",73:\"DOTTED_ARROW\",74:\"SOLID_CROSS\",75:\"DOTTED_CROSS\",76:\"SOLID_POINT\",77:\"DOTTED_POINT\",78:\"TXT\",79:\"open_directive\",80:\"type_directive\",81:\"arg_directive\",82:\"close_directive\"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[6,4],[6,6],[10,5],[10,3],[10,5],[10,3],[10,2],[10,4],[10,3],[10,3],[10,2],[10,3],[10,3],[10,2],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,2],[10,2],[10,1],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,1],[48,1],[48,4],[46,1],[46,4],[44,1],[44,4],[27,4],[27,4],[28,3],[29,3],[30,3],[31,3],[62,2],[62,1],[57,3],[57,1],[54,1],[54,1],[21,5],[21,5],[21,4],[17,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[55,1],[11,1],[12,1],[15,1],[13,1]],performAction:function(P,z,X,F,O,A,J){var C=A.length-1;switch(O){case 4:return F.apply(A[C]),A[C];case 5:this.$=[];break;case 6:A[C-1].push(A[C]),this.$=A[C-1];break;case 7:case 8:this.$=A[C];break;case 9:this.$=[];break;case 12:A[C-3].type=\"addParticipant\",A[C-3].description=F.parseMessage(A[C-1]),this.$=A[C-3];break;case 13:A[C-1].type=\"addParticipant\",this.$=A[C-1];break;case 14:A[C-3].type=\"addActor\",A[C-3].description=F.parseMessage(A[C-1]),this.$=A[C-3];break;case 15:A[C-1].type=\"addActor\",this.$=A[C-1];break;case 17:this.$={type:\"sequenceIndex\",sequenceIndex:Number(A[C-2]),sequenceIndexStep:Number(A[C-1]),sequenceVisible:!0,signalType:F.LINETYPE.AUTONUMBER};break;case 18:this.$={type:\"sequenceIndex\",sequenceIndex:Number(A[C-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:F.LINETYPE.AUTONUMBER};break;case 19:this.$={type:\"sequenceIndex\",sequenceVisible:!1,signalType:F.LINETYPE.AUTONUMBER};break;case 20:this.$={type:\"sequenceIndex\",sequenceVisible:!0,signalType:F.LINETYPE.AUTONUMBER};break;case 21:this.$={type:\"activeStart\",signalType:F.LINETYPE.ACTIVE_START,actor:A[C-1]};break;case 22:this.$={type:\"activeEnd\",signalType:F.LINETYPE.ACTIVE_END,actor:A[C-1]};break;case 28:F.setDiagramTitle(A[C].substring(6)),this.$=A[C].substring(6);break;case 29:F.setDiagramTitle(A[C].substring(7)),this.$=A[C].substring(7);break;case 30:this.$=A[C].trim(),F.setAccTitle(this.$);break;case 31:case 32:this.$=A[C].trim(),F.setAccDescription(this.$);break;case 33:A[C-1].unshift({type:\"loopStart\",loopText:F.parseMessage(A[C-2]),signalType:F.LINETYPE.LOOP_START}),A[C-1].push({type:\"loopEnd\",loopText:A[C-2],signalType:F.LINETYPE.LOOP_END}),this.$=A[C-1];break;case 34:A[C-1].unshift({type:\"rectStart\",color:F.parseMessage(A[C-2]),signalType:F.LINETYPE.RECT_START}),A[C-1].push({type:\"rectEnd\",color:F.parseMessage(A[C-2]),signalType:F.LINETYPE.RECT_END}),this.$=A[C-1];break;case 35:A[C-1].unshift({type:\"optStart\",optText:F.parseMessage(A[C-2]),signalType:F.LINETYPE.OPT_START}),A[C-1].push({type:\"optEnd\",optText:F.parseMessage(A[C-2]),signalType:F.LINETYPE.OPT_END}),this.$=A[C-1];break;case 36:A[C-1].unshift({type:\"altStart\",altText:F.parseMessage(A[C-2]),signalType:F.LINETYPE.ALT_START}),A[C-1].push({type:\"altEnd\",signalType:F.LINETYPE.ALT_END}),this.$=A[C-1];break;case 37:A[C-1].unshift({type:\"parStart\",parText:F.parseMessage(A[C-2]),signalType:F.LINETYPE.PAR_START}),A[C-1].push({type:\"parEnd\",signalType:F.LINETYPE.PAR_END}),this.$=A[C-1];break;case 38:A[C-1].unshift({type:\"criticalStart\",criticalText:F.parseMessage(A[C-2]),signalType:F.LINETYPE.CRITICAL_START}),A[C-1].push({type:\"criticalEnd\",signalType:F.LINETYPE.CRITICAL_END}),this.$=A[C-1];break;case 39:A[C-1].unshift({type:\"breakStart\",breakText:F.parseMessage(A[C-2]),signalType:F.LINETYPE.BREAK_START}),A[C-1].push({type:\"breakEnd\",optText:F.parseMessage(A[C-2]),signalType:F.LINETYPE.BREAK_END}),this.$=A[C-1];break;case 42:this.$=A[C-3].concat([{type:\"option\",optionText:F.parseMessage(A[C-1]),signalType:F.LINETYPE.CRITICAL_OPTION},A[C]]);break;case 44:this.$=A[C-3].concat([{type:\"and\",parText:F.parseMessage(A[C-1]),signalType:F.LINETYPE.PAR_AND},A[C]]);break;case 46:this.$=A[C-3].concat([{type:\"else\",altText:F.parseMessage(A[C-1]),signalType:F.LINETYPE.ALT_ELSE},A[C]]);break;case 47:this.$=[A[C-1],{type:\"addNote\",placement:A[C-2],actor:A[C-1].actor,text:A[C]}];break;case 48:A[C-2]=[].concat(A[C-1],A[C-1]).slice(0,2),A[C-2][0]=A[C-2][0].actor,A[C-2][1]=A[C-2][1].actor,this.$=[A[C-1],{type:\"addNote\",placement:F.PLACEMENT.OVER,actor:A[C-2].slice(0,2),text:A[C]}];break;case 49:this.$=[A[C-1],{type:\"addLinks\",actor:A[C-1].actor,text:A[C]}];break;case 50:this.$=[A[C-1],{type:\"addALink\",actor:A[C-1].actor,text:A[C]}];break;case 51:this.$=[A[C-1],{type:\"addProperties\",actor:A[C-1].actor,text:A[C]}];break;case 52:this.$=[A[C-1],{type:\"addDetails\",actor:A[C-1].actor,text:A[C]}];break;case 55:this.$=[A[C-2],A[C]];break;case 56:this.$=A[C];break;case 57:this.$=F.PLACEMENT.LEFTOF;break;case 58:this.$=F.PLACEMENT.RIGHTOF;break;case 59:this.$=[A[C-4],A[C-1],{type:\"addMessage\",from:A[C-4].actor,to:A[C-1].actor,signalType:A[C-3],msg:A[C]},{type:\"activeStart\",signalType:F.LINETYPE.ACTIVE_START,actor:A[C-1]}];break;case 60:this.$=[A[C-4],A[C-1],{type:\"addMessage\",from:A[C-4].actor,to:A[C-1].actor,signalType:A[C-3],msg:A[C]},{type:\"activeEnd\",signalType:F.LINETYPE.ACTIVE_END,actor:A[C-4]}];break;case 61:this.$=[A[C-3],A[C-1],{type:\"addMessage\",from:A[C-3].actor,to:A[C-1].actor,signalType:A[C-2],msg:A[C]}];break;case 62:this.$={type:\"addParticipant\",actor:A[C]};break;case 63:this.$=F.LINETYPE.SOLID_OPEN;break;case 64:this.$=F.LINETYPE.DOTTED_OPEN;break;case 65:this.$=F.LINETYPE.SOLID;break;case 66:this.$=F.LINETYPE.DOTTED;break;case 67:this.$=F.LINETYPE.SOLID_CROSS;break;case 68:this.$=F.LINETYPE.DOTTED_CROSS;break;case 69:this.$=F.LINETYPE.SOLID_POINT;break;case 70:this.$=F.LINETYPE.DOTTED_POINT;break;case 71:this.$=F.parseMessage(A[C].trim().substring(1));break;case 72:F.parseDirective(\"%%{\",\"open_directive\");break;case 73:F.parseDirective(A[C],\"type_directive\");break;case 74:A[C]=A[C].trim().replace(/'/g,'\"'),F.parseDirective(A[C],\"arg_directive\");break;case 75:F.parseDirective(\"}%%\",\"close_directive\",\"sequence\");break}},table:[{3:1,4:e,5:r,6:4,7:n,11:6,79:i},{1:[3]},{3:8,4:e,5:r,6:4,7:n,11:6,79:i},{3:9,4:e,5:r,6:4,7:n,11:6,79:i},{3:10,4:e,5:r,6:4,7:n,11:6,79:i},t([1,4,5,16,20,22,25,26,32,33,34,36,38,39,41,42,43,45,47,49,53,58,59,60,61,69,79],s,{8:11}),{12:12,80:[1,13]},{80:[2,72]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:a,5:o,6:41,9:14,10:16,11:6,16:l,17:42,20:u,21:20,22:d,25:f,26:p,27:24,28:25,29:26,30:27,31:28,32:g,33:b,34:k,36:T,38:L,39:E,41:I,42:V,43:H,45:G,47:Y,49:W,53:N,58:D,59:w,60:v,61:M,69:m,79:i},{13:49,14:[1,50],82:Q},t([14,82],[2,73]),t(x,[2,6]),{6:41,10:52,11:6,16:l,17:42,20:u,21:20,22:d,25:f,26:p,27:24,28:25,29:26,30:27,31:28,32:g,33:b,34:k,36:T,38:L,39:E,41:I,42:V,43:H,45:G,47:Y,49:W,53:N,58:D,59:w,60:v,61:M,69:m,79:i},t(x,[2,8]),t(x,[2,9]),{17:53,69:m},{17:54,69:m},{5:[1,55]},{5:[1,58],23:[1,56],24:[1,57]},{17:59,69:m},{17:60,69:m},{5:[1,61]},{5:[1,62]},{5:[1,63]},{5:[1,64]},{5:[1,65]},t(x,[2,28]),t(x,[2,29]),{35:[1,66]},{37:[1,67]},t(x,[2,32]),{19:[1,68]},{19:[1,69]},{19:[1,70]},{19:[1,71]},{19:[1,72]},{19:[1,73]},{19:[1,74]},t(x,[2,40]),{66:75,70:[1,76],71:[1,77],72:[1,78],73:[1,79],74:[1,80],75:[1,81],76:[1,82],77:[1,83]},{54:84,56:[1,85],64:[1,86],65:[1,87]},{17:88,69:m},{17:89,69:m},{17:90,69:m},{17:91,69:m},t([5,18,63,70,71,72,73,74,75,76,77,78],[2,62]),{5:[1,92]},{15:93,81:[1,94]},{5:[2,75]},t(x,[2,7]),{5:[1,96],18:[1,95]},{5:[1,98],18:[1,97]},t(x,[2,16]),{5:[1,100],23:[1,99]},{5:[1,101]},t(x,[2,20]),{5:[1,102]},{5:[1,103]},t(x,[2,23]),t(x,[2,24]),t(x,[2,25]),t(x,[2,26]),t(x,[2,27]),t(x,[2,30]),t(x,[2,31]),t(ct,s,{8:104}),t(ct,s,{8:105}),t(ct,s,{8:106}),t(Dt,s,{44:107,8:108}),t(kt,s,{46:109,8:110}),t(j,s,{48:111,8:112}),t(ct,s,{8:113}),{17:116,67:[1,114],68:[1,115],69:m},t(ot,[2,63]),t(ot,[2,64]),t(ot,[2,65]),t(ot,[2,66]),t(ot,[2,67]),t(ot,[2,68]),t(ot,[2,69]),t(ot,[2,70]),{17:117,69:m},{17:119,57:118,69:m},{69:[2,57]},{69:[2,58]},{55:120,78:rt},{55:122,78:rt},{55:123,78:rt},{55:124,78:rt},t(nt,[2,10]),{13:125,82:Q},{82:[2,74]},{19:[1,126]},t(x,[2,13]),{19:[1,127]},t(x,[2,15]),{5:[1,128]},t(x,[2,18]),t(x,[2,19]),t(x,[2,21]),t(x,[2,22]),{4:a,5:o,6:41,9:14,10:16,11:6,16:l,17:42,20:u,21:20,22:d,25:f,26:p,27:24,28:25,29:26,30:27,31:28,32:g,33:b,34:k,36:T,38:L,39:E,40:[1,129],41:I,42:V,43:H,45:G,47:Y,49:W,53:N,58:D,59:w,60:v,61:M,69:m,79:i},{4:a,5:o,6:41,9:14,10:16,11:6,16:l,17:42,20:u,21:20,22:d,25:f,26:p,27:24,28:25,29:26,30:27,31:28,32:g,33:b,34:k,36:T,38:L,39:E,40:[1,130],41:I,42:V,43:H,45:G,47:Y,49:W,53:N,58:D,59:w,60:v,61:M,69:m,79:i},{4:a,5:o,6:41,9:14,10:16,11:6,16:l,17:42,20:u,21:20,22:d,25:f,26:p,27:24,28:25,29:26,30:27,31:28,32:g,33:b,34:k,36:T,38:L,39:E,40:[1,131],41:I,42:V,43:H,45:G,47:Y,49:W,53:N,58:D,59:w,60:v,61:M,69:m,79:i},{40:[1,132]},{4:a,5:o,6:41,9:14,10:16,11:6,16:l,17:42,20:u,21:20,22:d,25:f,26:p,27:24,28:25,29:26,30:27,31:28,32:g,33:b,34:k,36:T,38:L,39:E,40:[2,45],41:I,42:V,43:H,45:G,47:Y,49:W,52:[1,133],53:N,58:D,59:w,60:v,61:M,69:m,79:i},{40:[1,134]},{4:a,5:o,6:41,9:14,10:16,11:6,16:l,17:42,20:u,21:20,22:d,25:f,26:p,27:24,28:25,29:26,30:27,31:28,32:g,33:b,34:k,36:T,38:L,39:E,40:[2,43],41:I,42:V,43:H,45:G,47:Y,49:W,51:[1,135],53:N,58:D,59:w,60:v,61:M,69:m,79:i},{40:[1,136]},{4:a,5:o,6:41,9:14,10:16,11:6,16:l,17:42,20:u,21:20,22:d,25:f,26:p,27:24,28:25,29:26,30:27,31:28,32:g,33:b,34:k,36:T,38:L,39:E,40:[2,41],41:I,42:V,43:H,45:G,47:Y,49:W,50:[1,137],53:N,58:D,59:w,60:v,61:M,69:m,79:i},{4:a,5:o,6:41,9:14,10:16,11:6,16:l,17:42,20:u,21:20,22:d,25:f,26:p,27:24,28:25,29:26,30:27,31:28,32:g,33:b,34:k,36:T,38:L,39:E,40:[1,138],41:I,42:V,43:H,45:G,47:Y,49:W,53:N,58:D,59:w,60:v,61:M,69:m,79:i},{17:139,69:m},{17:140,69:m},{55:141,78:rt},{55:142,78:rt},{55:143,78:rt},{63:[1,144],78:[2,56]},{5:[2,49]},{5:[2,71]},{5:[2,50]},{5:[2,51]},{5:[2,52]},{5:[1,145]},{5:[1,146]},{5:[1,147]},t(x,[2,17]),t(x,[2,33]),t(x,[2,34]),t(x,[2,35]),t(x,[2,36]),{19:[1,148]},t(x,[2,37]),{19:[1,149]},t(x,[2,38]),{19:[1,150]},t(x,[2,39]),{55:151,78:rt},{55:152,78:rt},{5:[2,61]},{5:[2,47]},{5:[2,48]},{17:153,69:m},t(nt,[2,11]),t(x,[2,12]),t(x,[2,14]),t(Dt,s,{8:108,44:154}),t(kt,s,{8:110,46:155}),t(j,s,{8:112,48:156}),{5:[2,59]},{5:[2,60]},{78:[2,55]},{40:[2,46]},{40:[2,44]},{40:[2,42]}],defaultActions:{7:[2,72],8:[2,1],9:[2,2],10:[2,3],51:[2,75],86:[2,57],87:[2,58],94:[2,74],120:[2,49],121:[2,71],122:[2,50],123:[2,51],124:[2,52],141:[2,61],142:[2,47],143:[2,48],151:[2,59],152:[2,60],153:[2,55],154:[2,46],155:[2,44],156:[2,42]},parseError:function(P,z){if(z.recoverable)this.trace(P);else{var X=new Error(P);throw X.hash=z,X}},parse:function(P){var z=this,X=[0],F=[],O=[null],A=[],J=this.table,C=\"\",ht=0,U=0,Yt=2,et=1,Mt=A.slice.call(arguments,1),Tt=Object.create(this.lexer),gt={yy:{}};for(var Et in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Et)&&(gt.yy[Et]=this.yy[Et]);Tt.setInput(P,gt.yy),gt.yy.lexer=Tt,gt.yy.parser=this,typeof Tt.yylloc>\"u\"&&(Tt.yylloc={});var wt=Tt.yylloc;A.push(wt);var pt=Tt.options&&Tt.options.ranges;typeof gt.yy.parseError==\"function\"?this.parseError=gt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function st(){var ft;return ft=F.pop()||Tt.lex()||et,typeof ft!=\"number\"&&(ft instanceof Array&&(F=ft,ft=F.pop()),ft=z.symbols_[ft]||ft),ft}for(var le,Xt,jt,Kt,Gt={},Ee,Ht,Vt,Ft;;){if(Xt=X[X.length-1],this.defaultActions[Xt]?jt=this.defaultActions[Xt]:((le===null||typeof le>\"u\")&&(le=st()),jt=J[Xt]&&J[Xt][le]),typeof jt>\"u\"||!jt.length||!jt[0]){var xt=\"\";Ft=[];for(Ee in J[Xt])this.terminals_[Ee]&&Ee>Yt&&Ft.push(\"'\"+this.terminals_[Ee]+\"'\");Tt.showPosition?xt=\"Parse error on line \"+(ht+1)+`:\n`+Tt.showPosition()+`\nExpecting `+Ft.join(\", \")+\", got '\"+(this.terminals_[le]||le)+\"'\":xt=\"Parse error on line \"+(ht+1)+\": Unexpected \"+(le==et?\"end of input\":\"'\"+(this.terminals_[le]||le)+\"'\"),this.parseError(xt,{text:Tt.match,token:this.terminals_[le]||le,line:Tt.yylineno,loc:wt,expected:Ft})}if(jt[0]instanceof Array&&jt.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+Xt+\", token: \"+le);switch(jt[0]){case 1:X.push(le),O.push(Tt.yytext),A.push(Tt.yylloc),X.push(jt[1]),le=null,U=Tt.yyleng,C=Tt.yytext,ht=Tt.yylineno,wt=Tt.yylloc;break;case 2:if(Ht=this.productions_[jt[1]][1],Gt.$=O[O.length-Ht],Gt._$={first_line:A[A.length-(Ht||1)].first_line,last_line:A[A.length-1].last_line,first_column:A[A.length-(Ht||1)].first_column,last_column:A[A.length-1].last_column},pt&&(Gt._$.range=[A[A.length-(Ht||1)].range[0],A[A.length-1].range[1]]),Kt=this.performAction.apply(Gt,[C,U,ht,gt.yy,jt[1],O,A].concat(Mt)),typeof Kt<\"u\")return Kt;Ht&&(X=X.slice(0,-1*Ht*2),O=O.slice(0,-1*Ht),A=A.slice(0,-1*Ht)),X.push(this.productions_[jt[1]][0]),O.push(Gt.$),A.push(Gt._$),Vt=J[X[X.length-2]][X[X.length-1]],X.push(Vt);break;case 3:return!0}}return!0}},_t=function(){var Ot={EOF:1,parseError:function(z,X){if(this.yy.parser)this.yy.parser.parseError(z,X);else throw new Error(z)},setInput:function(P,z){return this.yy=z||this.yy||{},this._input=P,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var P=this._input[0];this.yytext+=P,this.yyleng++,this.offset++,this.match+=P,this.matched+=P;var z=P.match(/(?:\\r\\n?|\\n).*/g);return z?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),P},unput:function(P){var z=P.length,X=P.split(/(?:\\r\\n?|\\n)/g);this._input=P+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-z),this.offset-=z;var F=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),X.length-1&&(this.yylineno-=X.length-1);var O=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:X?(X.length===F.length?this.yylloc.first_column:0)+F[F.length-X.length].length-X[0].length:this.yylloc.first_column-z},this.options.ranges&&(this.yylloc.range=[O[0],O[0]+this.yyleng-z]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno});return this},less:function(P){this.unput(this.match.slice(P))},pastInput:function(){var P=this.matched.substr(0,this.matched.length-this.match.length);return(P.length>20?\"...\":\"\")+P.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var P=this.match;return P.length<20&&(P+=this._input.substr(0,20-P.length)),(P.substr(0,20)+(P.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var P=this.pastInput(),z=new Array(P.length+1).join(\"-\");return P+this.upcomingInput()+`\n`+z+\"^\"},test_match:function(P,z){var X,F,O;if(this.options.backtrack_lexer&&(O={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(O.yylloc.range=this.yylloc.range.slice(0))),F=P[0].match(/(?:\\r\\n?|\\n).*/g),F&&(this.yylineno+=F.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:F?F[F.length-1].length-F[F.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+P[0].length},this.yytext+=P[0],this.match+=P[0],this.matches=P,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(P[0].length),this.matched+=P[0],X=this.performAction.call(this,this.yy,this,z,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),X)return X;if(this._backtrack){for(var A in O)this[A]=O[A];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var P,z,X,F;this._more||(this.yytext=\"\",this.match=\"\");for(var O=this._currentRules(),A=0;A<O.length;A++)if(X=this._input.match(this.rules[O[A]]),X&&(!z||X[0].length>z[0].length)){if(z=X,F=A,this.options.backtrack_lexer){if(P=this.test_match(X,O[A]),P!==!1)return P;if(this._backtrack){z=!1;continue}else return!1}else if(!this.options.flex)break}return z?(P=this.test_match(z,O[F]),P!==!1?P:!1):this._input===\"\"?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. Unrecognized text.\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var z=this.next();return z||this.lex()},begin:function(z){this.conditionStack.push(z)},popState:function(){var z=this.conditionStack.length-1;return z>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(z){return z=this.conditionStack.length-1-Math.abs(z||0),z>=0?this.conditionStack[z]:\"INITIAL\"},pushState:function(z){this.begin(z)},stateStackSize:function(){return this.conditionStack.length},options:{\"case-insensitive\":!0},performAction:function(z,X,F,O){switch(F){case 0:return this.begin(\"open_directive\"),79;case 1:return this.begin(\"type_directive\"),80;case 2:return this.popState(),this.begin(\"arg_directive\"),14;case 3:return this.popState(),this.popState(),82;case 4:return 81;case 5:return 5;case 6:break;case 7:break;case 8:break;case 9:break;case 10:break;case 11:return 23;case 12:return this.begin(\"ID\"),16;case 13:return this.begin(\"ID\"),20;case 14:return X.yytext=X.yytext.trim(),this.begin(\"ALIAS\"),69;case 15:return this.popState(),this.popState(),this.begin(\"LINE\"),18;case 16:return this.popState(),this.popState(),5;case 17:return this.begin(\"LINE\"),39;case 18:return this.begin(\"LINE\"),41;case 19:return this.begin(\"LINE\"),42;case 20:return this.begin(\"LINE\"),43;case 21:return this.begin(\"LINE\"),52;case 22:return this.begin(\"LINE\"),45;case 23:return this.begin(\"LINE\"),51;case 24:return this.begin(\"LINE\"),47;case 25:return this.begin(\"LINE\"),50;case 26:return this.begin(\"LINE\"),49;case 27:return this.popState(),19;case 28:return 40;case 29:return 64;case 30:return 65;case 31:return 58;case 32:return 59;case 33:return 60;case 34:return 61;case 35:return 56;case 36:return 53;case 37:return this.begin(\"ID\"),25;case 38:return this.begin(\"ID\"),26;case 39:return 32;case 40:return 33;case 41:return this.begin(\"acc_title\"),34;case 42:return this.popState(),\"acc_title_value\";case 43:return this.begin(\"acc_descr\"),36;case 44:return this.popState(),\"acc_descr_value\";case 45:this.begin(\"acc_descr_multiline\");break;case 46:this.popState();break;case 47:return\"acc_descr_multiline_value\";case 48:return 7;case 49:return 22;case 50:return 24;case 51:return 63;case 52:return 5;case 53:return X.yytext=X.yytext.trim(),69;case 54:return 72;case 55:return 73;case 56:return 70;case 57:return 71;case 58:return 74;case 59:return 75;case 60:return 76;case 61:return 77;case 62:return 78;case 63:return 67;case 64:return 68;case 65:return 5;case 66:return\"INVALID\"}},rules:[/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:[\\n]+)/i,/^(?:\\s+)/i,/^(?:((?!\\n)\\s)+)/i,/^(?:#[^\\n]*)/i,/^(?:%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[0-9]+(?=[ \\n]+))/i,/^(?:participant\\b)/i,/^(?:actor\\b)/i,/^(?:[^\\->:\\n,;]+?([\\-]*[^\\->:\\n,;]+?)*?(?=((?!\\n)\\s)+as(?!\\n)\\s|[#\\n;]|$))/i,/^(?:as\\b)/i,/^(?:(?:))/i,/^(?:loop\\b)/i,/^(?:rect\\b)/i,/^(?:opt\\b)/i,/^(?:alt\\b)/i,/^(?:else\\b)/i,/^(?:par\\b)/i,/^(?:and\\b)/i,/^(?:critical\\b)/i,/^(?:option\\b)/i,/^(?:break\\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\\n;]*)/i,/^(?:end\\b)/i,/^(?:left of\\b)/i,/^(?:right of\\b)/i,/^(?:links\\b)/i,/^(?:link\\b)/i,/^(?:properties\\b)/i,/^(?:details\\b)/i,/^(?:over\\b)/i,/^(?:note\\b)/i,/^(?:activate\\b)/i,/^(?:deactivate\\b)/i,/^(?:title\\s[^#\\n;]+)/i,/^(?:title:\\s[^#\\n;]+)/i,/^(?:accTitle\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*\\{\\s*)/i,/^(?:[\\}])/i,/^(?:[^\\}]*)/i,/^(?:sequenceDiagram\\b)/i,/^(?:autonumber\\b)/i,/^(?:off\\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\\+\\->:\\n,;]+((?!(-x|--x|-\\)|--\\)))[\\-]*[^\\+\\->:\\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\\)])/i,/^(?:--[\\)])/i,/^(?::(?:(?:no)?wrap)?[^#\\n;]+)/i,/^(?:\\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[46,47],inclusive:!1},acc_descr:{rules:[44],inclusive:!1},acc_title:{rules:[42],inclusive:!1},open_directive:{rules:[1,8],inclusive:!1},type_directive:{rules:[2,3,8],inclusive:!1},arg_directive:{rules:[3,4,8],inclusive:!1},ID:{rules:[7,8,14],inclusive:!1},ALIAS:{rules:[7,8,15,16],inclusive:!1},LINE:{rules:[7,8,27],inclusive:!1},INITIAL:{rules:[0,5,6,8,9,10,11,12,13,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,36,37,38,39,40,41,43,45,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66],inclusive:!0}}};return Ot}();ut.lexer=_t;function K(){this.yy={}}return K.prototype=ut,ut.Parser=K,new K}();id.parser=id;const qR=id,jR=t=>t.match(/^\\s*sequenceDiagram/)!==null;let Ko,ji={},Mn=[],Su=!1,sd;const $R=function(t,e,r){ze.parseDirective(this,t,e,r)},ad=function(t,e,r,n){const i=ji[t];i&&e===i.name&&r==null||((r==null||r.text==null)&&(r={text:e,wrap:null,type:n}),(n==null||r.text==null)&&(r={text:e,wrap:null,type:n}),ji[t]={name:e,description:r.text,wrap:r.wrap===void 0&&Na()||!!r.wrap,prevActor:Ko,links:{},properties:{},actorCnt:null,rectData:null,type:n||\"participant\"},Ko&&ji[Ko]&&(ji[Ko].nextActor=t),Ko=t)},XR=t=>{let e,r=0;for(e=0;e<Mn.length;e++)Mn[e].type===Qo.ACTIVE_START&&Mn[e].from.actor===t&&r++,Mn[e].type===Qo.ACTIVE_END&&Mn[e].from.actor===t&&r--;return r},KR=function(t,e,r,n){Mn.push({from:t,to:e,message:r.text,wrap:r.wrap===void 0&&Na()||!!r.wrap,answer:n})},Je=function(t,e,r={text:void 0,wrap:void 0},n){if(n===Qo.ACTIVE_END&&XR(t.actor)<1){let s=new Error(\"Trying to inactivate an inactive participant (\"+t.actor+\")\");throw s.hash={text:\"->>-\",token:\"->>-\",line:\"1\",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:[\"'ACTIVE_PARTICIPANT'\"]},s}return Mn.push({from:t,to:e,message:r.text,wrap:r.wrap===void 0&&Na()||!!r.wrap,type:n}),!0},ZR=function(){return Mn},QR=function(){return ji},Zo=function(t){return ji[t]},JR=function(){return Object.keys(ji)},tF=function(){Su=!0},eF=function(){Su=!1},rF=()=>Su,nF=function(t){sd=t},Na=()=>sd!==void 0?sd:$().sequence.wrap,iF=function(){ji={},Mn=[],Su=!1,vn()},sF=function(t){const e=t.trim(),r={text:e.replace(/^:?(?:no)?wrap:/,\"\").trim(),wrap:e.match(/^:?wrap:/)!==null?!0:e.match(/^:?nowrap:/)!==null?!1:void 0};return B.debug(\"parseMessage:\",r),r},Qo={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31},aF={FILLED:0,OPEN:1},oF={LEFTOF:0,RIGHTOF:1,OVER:2},U3=function(t,e,r){r.text,r.wrap===void 0&&Na()||r.wrap;const n=[].concat(t,t);Mn.push({from:n[0],to:n[1],message:r.text,wrap:r.wrap===void 0&&Na()||!!r.wrap,type:Qo.NOTE,placement:e})},z3=function(t,e){const r=Zo(t);try{let n=yn(e.text,$());n=n.replace(/&/g,\"&\"),n=n.replace(/=/g,\"=\");const i=JSON.parse(n);od(r,i)}catch(n){B.error(\"error while parsing actor link text\",n)}},lF=function(t,e){const r=Zo(t);try{const a={};let o=yn(e.text,$());var n=o.indexOf(\"@\");o=o.replace(/&/g,\"&\"),o=o.replace(/=/g,\"=\");var i=o.slice(0,n-1).trim(),s=o.slice(n+1).trim();a[i]=s,od(r,a)}catch(a){B.error(\"error while parsing actor link text\",a)}};function od(t,e){if(t.links==null)t.links=e;else for(let r in e)t.links[r]=e[r]}const W3=function(t,e){const r=Zo(t);try{let n=yn(e.text,$());const i=JSON.parse(n);H3(r,i)}catch(n){B.error(\"error while parsing actor properties text\",n)}};function H3(t,e){if(t.properties==null)t.properties=e;else for(let r in e)t.properties[r]=e[r]}const G3=function(t,e){const r=Zo(t),n=document.getElementById(e.text);try{const i=n.innerHTML,s=JSON.parse(i);s.properties&&H3(r,s.properties),s.links&&od(r,s.links)}catch(i){B.error(\"error while parsing actor details text\",i)}},cF=function(t,e){if(t!==void 0&&t.properties!==void 0)return t.properties[e]},q3=function(t){if(Array.isArray(t))t.forEach(function(e){q3(e)});else switch(t.type){case\"sequenceIndex\":Mn.push({from:void 0,to:void 0,message:{start:t.sequenceIndex,step:t.sequenceIndexStep,visible:t.sequenceVisible},wrap:!1,type:t.signalType});break;case\"addParticipant\":ad(t.actor,t.actor,t.description,\"participant\");break;case\"addActor\":ad(t.actor,t.actor,t.description,\"actor\");break;case\"activeStart\":Je(t.actor,void 0,void 0,t.signalType);break;case\"activeEnd\":Je(t.actor,void 0,void 0,t.signalType);break;case\"addNote\":U3(t.actor,t.placement,t.text);break;case\"addLinks\":z3(t.actor,t.text);break;case\"addALink\":lF(t.actor,t.text);break;case\"addProperties\":W3(t.actor,t.text);break;case\"addDetails\":G3(t.actor,t.text);break;case\"addMessage\":Je(t.from,t.to,t.msg,t.signalType);break;case\"loopStart\":Je(void 0,void 0,t.loopText,t.signalType);break;case\"loopEnd\":Je(void 0,void 0,void 0,t.signalType);break;case\"rectStart\":Je(void 0,void 0,t.color,t.signalType);break;case\"rectEnd\":Je(void 0,void 0,void 0,t.signalType);break;case\"optStart\":Je(void 0,void 0,t.optText,t.signalType);break;case\"optEnd\":Je(void 0,void 0,void 0,t.signalType);break;case\"altStart\":Je(void 0,void 0,t.altText,t.signalType);break;case\"else\":Je(void 0,void 0,t.altText,t.signalType);break;case\"altEnd\":Je(void 0,void 0,void 0,t.signalType);break;case\"setAccTitle\":nn(t.text);break;case\"parStart\":Je(void 0,void 0,t.parText,t.signalType);break;case\"and\":Je(void 0,void 0,t.parText,t.signalType);break;case\"parEnd\":Je(void 0,void 0,void 0,t.signalType);break;case\"criticalStart\":Je(void 0,void 0,t.criticalText,t.signalType);break;case\"option\":Je(void 0,void 0,t.optionText,t.signalType);break;case\"criticalEnd\":Je(void 0,void 0,void 0,t.signalType);break;case\"breakStart\":Je(void 0,void 0,t.breakText,t.signalType);break;case\"breakEnd\":Je(void 0,void 0,void 0,t.signalType);break}},j3={addActor:ad,addMessage:KR,addSignal:Je,addLinks:z3,addDetails:G3,addProperties:W3,autoWrap:Na,setWrap:nF,enableSequenceNumbers:tF,disableSequenceNumbers:eF,showSequenceNumbers:rF,getMessages:ZR,getActors:QR,getActor:Zo,getActorKeys:JR,getActorProperty:cF,getAccTitle:kn,getDiagramTitle:di,setDiagramTitle:hi,parseDirective:$R,getConfig:()=>$().sequence,clear:iF,parseMessage:sF,LINETYPE:Qo,ARROWTYPE:aF,PLACEMENT:oF,addNote:U3,setAccTitle:nn,apply:q3,setAccDescription:wn,getAccDescription:Tn};let ld=[];const uF=t=>{ld.push(t)},$3=()=>{ld.forEach(t=>{t()}),ld=[]},Au=function(t,e){const r=t.append(\"rect\");return r.attr(\"x\",e.x),r.attr(\"y\",e.y),r.attr(\"fill\",e.fill),r.attr(\"stroke\",e.stroke),r.attr(\"width\",e.width),r.attr(\"height\",e.height),r.attr(\"rx\",e.rx),r.attr(\"ry\",e.ry),e.class!==void 0&&r.attr(\"class\",e.class),r},X3=(t,e)=>{uF(()=>{const r=document.querySelectorAll(t);r.length!==0&&(r[0].addEventListener(\"mouseover\",function(){pF(\"actor\"+e+\"_popup\")}),r[0].addEventListener(\"mouseout\",function(){gF(\"actor\"+e+\"_popup\")}))})},hF=function(t,e,r,n,i){if(e.links===void 0||e.links===null||Object.keys(e.links).length===0)return{height:0,width:0};const s=e.links,a=e.actorCnt,o=e.rectData;var l=\"none\";i&&(l=\"block !important\");const u=t.append(\"g\");u.attr(\"id\",\"actor\"+a+\"_popup\"),u.attr(\"class\",\"actorPopupMenu\"),u.attr(\"display\",l),X3(\"#actor\"+a+\"_popup\",a);var d=\"\";o.class!==void 0&&(d=\" \"+o.class);let f=o.width>r?o.width:r;const p=u.append(\"rect\");if(p.attr(\"class\",\"actorPopupMenuPanel\"+d),p.attr(\"x\",o.x),p.attr(\"y\",o.height),p.attr(\"fill\",o.fill),p.attr(\"stroke\",o.stroke),p.attr(\"width\",f),p.attr(\"height\",o.height),p.attr(\"rx\",o.rx),p.attr(\"ry\",o.ry),s!=null){var g=20;for(let T in s){var b=u.append(\"a\"),k=ti(s[T]);b.attr(\"xlink:href\",k),b.attr(\"target\",\"_blank\"),DF(n)(T,b,o.x+10,o.height+g,f,20,{class:\"actor\"},n),g+=30}}return p.attr(\"height\",g),{height:o.height+g,width:f}},K3=function(t,e,r,n){const i=t.append(\"image\");i.attr(\"x\",e),i.attr(\"y\",r);var s=ti(n);i.attr(\"xlink:href\",s)},Z3=function(t,e,r,n){const i=t.append(\"use\");i.attr(\"x\",e),i.attr(\"y\",r);var s=ti(n);i.attr(\"xlink:href\",\"#\"+s)},dF=function(t){return\"var pu = document.getElementById('\"+t+\"'); if (pu != null) { pu.style.display = 'block'; }\"},fF=function(t){return\"var pu = document.getElementById('\"+t+\"'); if (pu != null) { pu.style.display = 'none'; }\"},pF=function(t){var e=document.getElementById(t);e!=null&&(e.style.display=\"block\")},gF=function(t){var e=document.getElementById(t);e!=null&&(e.style.display=\"none\")},Ba=function(t,e){let r=0,n=0;const i=e.text.split(he.lineBreakRegex);let s=[],a=0,o=()=>e.y;if(e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0)switch(e.valign){case\"top\":case\"start\":o=()=>Math.round(e.y+e.textMargin);break;case\"middle\":case\"center\":o=()=>Math.round(e.y+(r+n+e.textMargin)/2);break;case\"bottom\":case\"end\":o=()=>Math.round(e.y+(r+n+2*e.textMargin)-e.textMargin);break}if(e.anchor!==void 0&&e.textMargin!==void 0&&e.width!==void 0)switch(e.anchor){case\"left\":case\"start\":e.x=Math.round(e.x+e.textMargin),e.anchor=\"start\",e.dominantBaseline=\"middle\",e.alignmentBaseline=\"middle\";break;case\"middle\":case\"center\":e.x=Math.round(e.x+e.width/2),e.anchor=\"middle\",e.dominantBaseline=\"middle\",e.alignmentBaseline=\"middle\";break;case\"right\":case\"end\":e.x=Math.round(e.x+e.width-e.textMargin),e.anchor=\"end\",e.dominantBaseline=\"middle\",e.alignmentBaseline=\"middle\";break}for(let[l,u]of i.entries()){e.textMargin!==void 0&&e.textMargin===0&&e.fontSize!==void 0&&(a=l*e.fontSize);const d=t.append(\"text\");if(d.attr(\"x\",e.x),d.attr(\"y\",o()),e.anchor!==void 0&&d.attr(\"text-anchor\",e.anchor).attr(\"dominant-baseline\",e.dominantBaseline).attr(\"alignment-baseline\",e.alignmentBaseline),e.fontFamily!==void 0&&d.style(\"font-family\",e.fontFamily),e.fontSize!==void 0&&d.style(\"font-size\",e.fontSize),e.fontWeight!==void 0&&d.style(\"font-weight\",e.fontWeight),e.fill!==void 0&&d.attr(\"fill\",e.fill),e.class!==void 0&&d.attr(\"class\",e.class),e.dy!==void 0?d.attr(\"dy\",e.dy):a!==0&&d.attr(\"dy\",a),e.tspan){const f=d.append(\"tspan\");f.attr(\"x\",e.x),e.fill!==void 0&&f.attr(\"fill\",e.fill),f.text(u)}else d.text(u);e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0&&(n+=(d._groups||d)[0][0].getBBox().height,r=n),s.push(d)}return s},Q3=function(t,e){function r(i,s,a,o,l){return i+\",\"+s+\" \"+(i+a)+\",\"+s+\" \"+(i+a)+\",\"+(s+o-l)+\" \"+(i+a-l*1.2)+\",\"+(s+o)+\" \"+i+\",\"+(s+o)}const n=t.append(\"polygon\");return n.attr(\"points\",r(e.x,e.y,e.width,e.height,7)),n.attr(\"class\",\"labelBox\"),e.y=e.y+e.height/2,Ba(t,e),n};let Xn=-1;const J3=(t,e)=>{!t.selectAll||t.selectAll(\".actor-line\").attr(\"class\",\"200\").attr(\"y2\",e-55)},yF=function(t,e,r){const n=e.x+e.width/2,i=t.append(\"g\");var s=i;e.y===0&&(Xn++,s.append(\"line\").attr(\"id\",\"actor\"+Xn).attr(\"x1\",n).attr(\"y1\",5).attr(\"x2\",n).attr(\"y2\",2e3).attr(\"class\",\"actor-line\").attr(\"stroke-width\",\"0.5px\").attr(\"stroke\",\"#999\"),s=i.append(\"g\"),e.actorCnt=Xn,e.links!=null&&(s.attr(\"id\",\"root-\"+Xn),X3(\"#root-\"+Xn,Xn)));const a=Lu();var o=\"actor\";e.properties!=null&&e.properties.class?o=e.properties.class:a.fill=\"#eaeaea\",a.x=e.x,a.y=e.y,a.width=e.width,a.height=e.height,a.class=o,a.rx=3,a.ry=3;const l=Au(s,a);if(e.rectData=a,e.properties!=null&&e.properties.icon){const d=e.properties.icon.trim();d.charAt(0)===\"@\"?Z3(s,a.x+a.width-20,a.y+10,d.substr(1)):K3(s,a.x+a.width-20,a.y+10,d)}t4(r)(e.description,s,a.x,a.y,a.width,a.height,{class:\"actor\"},r);let u=e.height;if(l.node){const d=l.node().getBBox();e.height=d.height,u=d.height}return u},mF=function(t,e,r){const n=e.x+e.width/2;e.y===0&&(Xn++,t.append(\"line\").attr(\"id\",\"actor\"+Xn).attr(\"x1\",n).attr(\"y1\",80).attr(\"x2\",n).attr(\"y2\",2e3).attr(\"class\",\"actor-line\").attr(\"stroke-width\",\"0.5px\").attr(\"stroke\",\"#999\"));const i=t.append(\"g\");i.attr(\"class\",\"actor-man\");const s=Lu();s.x=e.x,s.y=e.y,s.fill=\"#eaeaea\",s.width=e.width,s.height=e.height,s.class=\"actor\",s.rx=3,s.ry=3,i.append(\"line\").attr(\"id\",\"actor-man-torso\"+Xn).attr(\"x1\",n).attr(\"y1\",e.y+25).attr(\"x2\",n).attr(\"y2\",e.y+45),i.append(\"line\").attr(\"id\",\"actor-man-arms\"+Xn).attr(\"x1\",n-18).attr(\"y1\",e.y+33).attr(\"x2\",n+18).attr(\"y2\",e.y+33),i.append(\"line\").attr(\"x1\",n-18).attr(\"y1\",e.y+60).attr(\"x2\",n).attr(\"y2\",e.y+45),i.append(\"line\").attr(\"x1\",n).attr(\"y1\",e.y+45).attr(\"x2\",n+16).attr(\"y2\",e.y+60);const a=i.append(\"circle\");a.attr(\"cx\",e.x+e.width/2),a.attr(\"cy\",e.y+10),a.attr(\"r\",15),a.attr(\"width\",e.width),a.attr(\"height\",e.height);const o=i.node().getBBox();return e.height=o.height,t4(r)(e.description,i,s.x,s.y+35,s.width,s.height,{class:\"actor\"},r),e.height},bF=function(t,e,r){switch(e.type){case\"actor\":return mF(t,e,r);case\"participant\":return yF(t,e,r)}},_F=function(t){return t.append(\"g\")},xF=function(t,e,r,n,i){const s=Lu(),a=e.anchored;s.x=e.startx,s.y=e.starty,s.class=\"activation\"+i%3,s.width=e.stopx-e.startx,s.height=r-e.starty,Au(a,s)},vF=function(t,e,r,n){const{boxMargin:i,boxTextMargin:s,labelBoxHeight:a,labelBoxWidth:o,messageFontFamily:l,messageFontSize:u,messageFontWeight:d}=n,f=t.append(\"g\"),p=function(k,T,L,E){return f.append(\"line\").attr(\"x1\",k).attr(\"y1\",T).attr(\"x2\",L).attr(\"y2\",E).attr(\"class\",\"loopLine\")};p(e.startx,e.starty,e.stopx,e.starty),p(e.stopx,e.starty,e.stopx,e.stopy),p(e.startx,e.stopy,e.stopx,e.stopy),p(e.startx,e.starty,e.startx,e.stopy),e.sections!==void 0&&e.sections.forEach(function(k){p(e.startx,k.y,e.stopx,k.y).style(\"stroke-dasharray\",\"3, 3\")});let g=cd();g.text=r,g.x=e.startx,g.y=e.starty,g.fontFamily=l,g.fontSize=u,g.fontWeight=d,g.anchor=\"middle\",g.valign=\"middle\",g.tspan=!1,g.width=o||50,g.height=a||20,g.textMargin=s,g.class=\"labelText\",Q3(f,g),g=cd(),g.text=e.title,g.x=e.startx+o/2+(e.stopx-e.startx)/2,g.y=e.starty+i+s,g.anchor=\"middle\",g.valign=\"middle\",g.textMargin=s,g.class=\"loopText\",g.fontFamily=l,g.fontSize=u,g.fontWeight=d,g.wrap=!0;let b=Ba(f,g);return e.sectionTitles!==void 0&&e.sectionTitles.forEach(function(k,T){if(k.message){g.text=k.message,g.x=e.startx+(e.stopx-e.startx)/2,g.y=e.sections[T].y+i+s,g.class=\"loopText\",g.anchor=\"middle\",g.valign=\"middle\",g.tspan=!1,g.fontFamily=l,g.fontSize=u,g.fontWeight=d,g.wrap=e.wrap,b=Ba(f,g);let L=Math.round(b.map(E=>(E._groups||E)[0][0].getBBox().height).reduce((E,I)=>E+I));e.sections[T].height+=L-(i+s)}}),e.height=Math.round(e.stopy-e.starty),f},kF=function(t,e){Au(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,class:\"rect\"}).lower()},wF=function(t){t.append(\"defs\").append(\"symbol\").attr(\"id\",\"database\").attr(\"fill-rule\",\"evenodd\").attr(\"clip-rule\",\"evenodd\").append(\"path\").attr(\"transform\",\"scale(.5)\").attr(\"d\",\"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\")},TF=function(t){t.append(\"defs\").append(\"symbol\").attr(\"id\",\"computer\").attr(\"width\",\"24\").attr(\"height\",\"24\").append(\"path\").attr(\"transform\",\"scale(.5)\").attr(\"d\",\"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\")},EF=function(t){t.append(\"defs\").append(\"symbol\").attr(\"id\",\"clock\").attr(\"width\",\"24\").attr(\"height\",\"24\").append(\"path\").attr(\"transform\",\"scale(.5)\").attr(\"d\",\"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\")},CF=function(t){t.append(\"defs\").append(\"marker\").attr(\"id\",\"arrowhead\").attr(\"refX\",9).attr(\"refY\",5).attr(\"markerUnits\",\"userSpaceOnUse\").attr(\"markerWidth\",12).attr(\"markerHeight\",12).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 0 0 L 10 5 L 0 10 z\")},SF=function(t){t.append(\"defs\").append(\"marker\").attr(\"id\",\"filled-head\").attr(\"refX\",18).attr(\"refY\",7).attr(\"markerWidth\",20).attr(\"markerHeight\",28).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 18,7 L9,13 L14,7 L9,1 Z\")},AF=function(t){t.append(\"defs\").append(\"marker\").attr(\"id\",\"sequencenumber\").attr(\"refX\",15).attr(\"refY\",15).attr(\"markerWidth\",60).attr(\"markerHeight\",40).attr(\"orient\",\"auto\").append(\"circle\").attr(\"cx\",15).attr(\"cy\",15).attr(\"r\",6)},LF=function(t){t.append(\"defs\").append(\"marker\").attr(\"id\",\"crosshead\").attr(\"markerWidth\",15).attr(\"markerHeight\",8).attr(\"orient\",\"auto\").attr(\"refX\",4).attr(\"refY\",5).append(\"path\").attr(\"fill\",\"none\").attr(\"stroke\",\"#000000\").style(\"stroke-dasharray\",\"0, 0\").attr(\"stroke-width\",\"1pt\").attr(\"d\",\"M 1,2 L 6,7 M 6,2 L 1,7\")},cd=function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:\"#666\",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},Lu=function(){return{x:0,y:0,fill:\"#EDF2AE\",stroke:\"#666\",width:100,anchor:\"start\",height:100,rx:0,ry:0}},t4=function(){function t(i,s,a,o,l,u,d){const f=s.append(\"text\").attr(\"x\",a+l/2).attr(\"y\",o+u/2+5).style(\"text-anchor\",\"middle\").text(i);n(f,d)}function e(i,s,a,o,l,u,d,f){const{actorFontSize:p,actorFontFamily:g,actorFontWeight:b}=f;let k=p&&p.replace?p.replace(\"px\",\"\"):p;const T=i.split(he.lineBreakRegex);for(let L=0;L<T.length;L++){const E=L*k-k*(T.length-1)/2,I=s.append(\"text\").attr(\"x\",a+l/2).attr(\"y\",o).style(\"text-anchor\",\"middle\").style(\"font-size\",p).style(\"font-weight\",b).style(\"font-family\",g);I.append(\"tspan\").attr(\"x\",a+l/2).attr(\"dy\",E).text(T[L]),I.attr(\"y\",o+u/2).attr(\"dominant-baseline\",\"central\").attr(\"alignment-baseline\",\"central\"),n(I,d)}}function r(i,s,a,o,l,u,d,f){const p=s.append(\"switch\"),b=p.append(\"foreignObject\").attr(\"x\",a).attr(\"y\",o).attr(\"width\",l).attr(\"height\",u).append(\"xhtml:div\").style(\"display\",\"table\").style(\"height\",\"100%\").style(\"width\",\"100%\");b.append(\"div\").style(\"display\",\"table-cell\").style(\"text-align\",\"center\").style(\"vertical-align\",\"middle\").text(i),e(i,p,a,o,l,u,d,f),n(b,d)}function n(i,s){for(const a in s)s.hasOwnProperty(a)&&i.attr(a,s[a])}return function(i){return i.textPlacement===\"fo\"?r:i.textPlacement===\"old\"?t:e}}(),DF=function(){function t(i,s,a,o,l,u,d){const f=s.append(\"text\").attr(\"x\",a).attr(\"y\",o).style(\"text-anchor\",\"start\").text(i);n(f,d)}function e(i,s,a,o,l,u,d,f){const{actorFontSize:p,actorFontFamily:g,actorFontWeight:b}=f,k=i.split(he.lineBreakRegex);for(let T=0;T<k.length;T++){const L=T*p-p*(k.length-1)/2,E=s.append(\"text\").attr(\"x\",a).attr(\"y\",o).style(\"text-anchor\",\"start\").style(\"font-size\",p).style(\"font-weight\",b).style(\"font-family\",g);E.append(\"tspan\").attr(\"x\",a).attr(\"dy\",L).text(k[T]),E.attr(\"y\",o+u/2).attr(\"dominant-baseline\",\"central\").attr(\"alignment-baseline\",\"central\"),n(E,d)}}function r(i,s,a,o,l,u,d,f){const p=s.append(\"switch\"),b=p.append(\"foreignObject\").attr(\"x\",a).attr(\"y\",o).attr(\"width\",l).attr(\"height\",u).append(\"xhtml:div\").style(\"display\",\"table\").style(\"height\",\"100%\").style(\"width\",\"100%\");b.append(\"div\").style(\"display\",\"table-cell\").style(\"text-align\",\"center\").style(\"vertical-align\",\"middle\").text(i),e(i,p,a,o,l,u,d,f),n(b,d)}function n(i,s){for(const a in s)s.hasOwnProperty(a)&&i.attr(a,s[a])}return function(i){return i.textPlacement===\"fo\"?r:i.textPlacement===\"old\"?t:e}}(),je={drawRect:Au,drawText:Ba,drawLabel:Q3,drawActor:bF,drawPopup:hF,drawImage:K3,drawEmbeddedImage:Z3,anchorElement:_F,drawActivation:xF,drawLoop:vF,drawBackgroundRect:kF,insertArrowHead:CF,insertArrowFilledHead:SF,insertSequenceNumber:AF,insertArrowCrossHead:LF,insertDatabaseIcon:wF,insertComputerIcon:TF,insertClockIcon:EF,getTextObj:cd,getNoteRect:Lu,popupMenu:dF,popdownMenu:fF,fixLifeLineHeights:J3,sanitizeUrl:ti};let lt={};const Bt={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],models:{getHeight:function(){return Math.max.apply(null,this.actors.length===0?[0]:this.actors.map(t=>t.height||0))+(this.loops.length===0?0:this.loops.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.messages.length===0?0:this.messages.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.notes.length===0?0:this.notes.map(t=>t.height||0).reduce((t,e)=>t+e))},clear:function(){this.actors=[],this.loops=[],this.messages=[],this.notes=[]},addActor:function(t){this.actors.push(t)},addLoop:function(t){this.loops.push(t)},addMessage:function(t){this.messages.push(t)},addNote:function(t){this.notes.push(t)},lastActor:function(){return this.actors[this.actors.length-1]},lastLoop:function(){return this.loops[this.loops.length-1]},lastMessage:function(){return this.messages[this.messages.length-1]},lastNote:function(){return this.notes[this.notes.length-1]},actors:[],loops:[],messages:[],notes:[]},init:function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,r4($())},updateVal:function(t,e,r,n){t[e]===void 0?t[e]=r:t[e]=n(r,t[e])},updateBounds:function(t,e,r,n){const i=this;let s=0;function a(o){return function(u){s++;const d=i.sequenceItems.length-s+1;i.updateVal(u,\"starty\",e-d*lt.boxMargin,Math.min),i.updateVal(u,\"stopy\",n+d*lt.boxMargin,Math.max),i.updateVal(Bt.data,\"startx\",t-d*lt.boxMargin,Math.min),i.updateVal(Bt.data,\"stopx\",r+d*lt.boxMargin,Math.max),o!==\"activation\"&&(i.updateVal(u,\"startx\",t-d*lt.boxMargin,Math.min),i.updateVal(u,\"stopx\",r+d*lt.boxMargin,Math.max),i.updateVal(Bt.data,\"starty\",e-d*lt.boxMargin,Math.min),i.updateVal(Bt.data,\"stopy\",n+d*lt.boxMargin,Math.max))}}this.sequenceItems.forEach(a()),this.activations.forEach(a(\"activation\"))},insert:function(t,e,r,n){const i=Math.min(t,r),s=Math.max(t,r),a=Math.min(e,n),o=Math.max(e,n);this.updateVal(Bt.data,\"startx\",i,Math.min),this.updateVal(Bt.data,\"starty\",a,Math.min),this.updateVal(Bt.data,\"stopx\",s,Math.max),this.updateVal(Bt.data,\"stopy\",o,Math.max),this.updateBounds(i,a,s,o)},newActivation:function(t,e,r){const n=r[t.from.actor],i=Du(t.from.actor).length||0,s=n.x+n.width/2+(i-1)*lt.activationWidth/2;this.activations.push({startx:s,starty:this.verticalPos+2,stopx:s+lt.activationWidth,stopy:void 0,actor:t.from.actor,anchored:je.anchorElement(e)})},endActivation:function(t){const e=this.activations.map(function(r){return r.actor}).lastIndexOf(t.from.actor);return this.activations.splice(e,1)[0]},createLoop:function(t={message:void 0,wrap:!1,width:void 0},e){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:t.message,wrap:t.wrap,width:t.width,height:0,fill:e}},newLoop:function(t={message:void 0,wrap:!1,width:void 0},e){this.sequenceItems.push(this.createLoop(t,e))},endLoop:function(){return this.sequenceItems.pop()},addSectionToLoop:function(t){const e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:Bt.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return{bounds:this.data,models:this.models}}},MF=function(t,e){Bt.bumpVerticalPos(lt.boxMargin),e.height=lt.boxMargin,e.starty=Bt.getVerticalPos();const r=je.getNoteRect();r.x=e.startx,r.y=e.starty,r.width=e.width||lt.width,r.class=\"note\";const n=t.append(\"g\"),i=je.drawRect(n,r),s=je.getTextObj();s.x=e.startx,s.y=e.starty,s.width=r.width,s.dy=\"1em\",s.text=e.message,s.class=\"noteText\",s.fontFamily=lt.noteFontFamily,s.fontSize=lt.noteFontSize,s.fontWeight=lt.noteFontWeight,s.anchor=lt.noteAlign,s.textMargin=lt.noteMargin,s.valign=\"center\";const a=Ba(n,s),o=Math.round(a.map(l=>(l._groups||l)[0][0].getBBox().height).reduce((l,u)=>l+u));i.attr(\"height\",o+2*lt.noteMargin),e.height+=o+2*lt.noteMargin,Bt.bumpVerticalPos(o+2*lt.noteMargin),e.stopy=e.starty+o+2*lt.noteMargin,e.stopx=e.startx+r.width,Bt.insert(e.startx,e.starty,e.stopx,e.stopy),Bt.models.addNote(e)},Ia=t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),Oa=t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),ud=t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight});function NF(t,e){Bt.bumpVerticalPos(10);const{startx:r,stopx:n,message:i}=e,s=he.splitBreaks(i).length,a=ge.calculateTextDimensions(i,Ia(lt)),o=a.height/s;e.height+=o,Bt.bumpVerticalPos(o);let l,u=a.height-10;const d=a.width;if(r===n){l=Bt.getVerticalPos()+u,lt.rightAngles||(u+=lt.boxMargin,l=Bt.getVerticalPos()+u),u+=30;const f=Math.max(d/2,lt.width/2);Bt.insert(r-f,Bt.getVerticalPos()-10+u,n+f,Bt.getVerticalPos()+30+u)}else u+=lt.boxMargin,l=Bt.getVerticalPos()+u,Bt.insert(r,l-10,n,l);return Bt.bumpVerticalPos(u),e.height+=u,e.stopy=e.starty+e.height,Bt.insert(e.fromBounds,e.starty,e.toBounds,e.stopy),l}const BF=function(t,e,r,n){const{startx:i,stopx:s,starty:a,message:o,type:l,sequenceIndex:u,sequenceVisible:d}=e,f=ge.calculateTextDimensions(o,Ia(lt)),p=je.getTextObj();p.x=i,p.y=a+10,p.width=s-i,p.class=\"messageText\",p.dy=\"1em\",p.text=o,p.fontFamily=lt.messageFontFamily,p.fontSize=lt.messageFontSize,p.fontWeight=lt.messageFontWeight,p.anchor=lt.messageAlign,p.valign=\"center\",p.textMargin=lt.wrapPadding,p.tspan=!1,Ba(t,p);const g=f.width;let b;i===s?lt.rightAngles?b=t.append(\"path\").attr(\"d\",`M ${i},${r} H ${i+Math.max(lt.width/2,g/2)} V ${r+25} H ${i}`):b=t.append(\"path\").attr(\"d\",\"M \"+i+\",\"+r+\" C \"+(i+60)+\",\"+(r-10)+\" \"+(i+60)+\",\"+(r+30)+\" \"+i+\",\"+(r+20)):(b=t.append(\"line\"),b.attr(\"x1\",i),b.attr(\"y1\",r),b.attr(\"x2\",s),b.attr(\"y2\",r)),l===n.db.LINETYPE.DOTTED||l===n.db.LINETYPE.DOTTED_CROSS||l===n.db.LINETYPE.DOTTED_POINT||l===n.db.LINETYPE.DOTTED_OPEN?(b.style(\"stroke-dasharray\",\"3, 3\"),b.attr(\"class\",\"messageLine1\")):b.attr(\"class\",\"messageLine0\");let k=\"\";lt.arrowMarkerAbsolute&&(k=window.location.protocol+\"//\"+window.location.host+window.location.pathname+window.location.search,k=k.replace(/\\(/g,\"\\\\(\"),k=k.replace(/\\)/g,\"\\\\)\")),b.attr(\"stroke-width\",2),b.attr(\"stroke\",\"none\"),b.style(\"fill\",\"none\"),(l===n.db.LINETYPE.SOLID||l===n.db.LINETYPE.DOTTED)&&b.attr(\"marker-end\",\"url(\"+k+\"#arrowhead)\"),(l===n.db.LINETYPE.SOLID_POINT||l===n.db.LINETYPE.DOTTED_POINT)&&b.attr(\"marker-end\",\"url(\"+k+\"#filled-head)\"),(l===n.db.LINETYPE.SOLID_CROSS||l===n.db.LINETYPE.DOTTED_CROSS)&&b.attr(\"marker-end\",\"url(\"+k+\"#crosshead)\"),(d||lt.showSequenceNumbers)&&(b.attr(\"marker-start\",\"url(\"+k+\"#sequencenumber)\"),t.append(\"text\").attr(\"x\",i).attr(\"y\",r+4).attr(\"font-family\",\"sans-serif\").attr(\"font-size\",\"12px\").attr(\"text-anchor\",\"middle\").attr(\"class\",\"sequenceNumber\").text(u))},hd=function(t,e,r,n,i,s){if(i.hideUnusedParticipants===!0){const u=new Set;s.forEach(d=>{u.add(d.from),u.add(d.to)}),r=r.filter(d=>u.has(d))}let a=0,o=0,l=0;for(const u of r){const d=e[u];d.width=d.width||lt.width,d.height=Math.max(d.height||lt.height,lt.height),d.margin=d.margin||lt.actorMargin,d.x=a+o,d.y=n;const f=je.drawActor(t,d,lt);l=Math.max(l,f),Bt.insert(d.x,n,d.x+d.width,d.height),a+=d.width,o+=d.margin,Bt.models.addActor(d)}Bt.bumpVerticalPos(l)},e4=function(t,e,r,n){let i=0,s=0;for(const a of r){const o=e[a],l=RF(o),u=je.drawPopup(t,o,l,lt,lt.forceMenus,n);u.height>i&&(i=u.height),u.width+o.x>s&&(s=u.width+o.x)}return{maxHeight:i,maxWidth:s}},r4=function(t){gr(lt,t),t.fontFamily&&(lt.actorFontFamily=lt.noteFontFamily=lt.messageFontFamily=t.fontFamily),t.fontSize&&(lt.actorFontSize=lt.noteFontSize=lt.messageFontSize=t.fontSize),t.fontWeight&&(lt.actorFontWeight=lt.noteFontWeight=lt.messageFontWeight=t.fontWeight)},Du=function(t){return Bt.activations.filter(function(e){return e.actor===t})},n4=function(t,e){const r=e[t],n=Du(t),i=n.reduce(function(a,o){return Math.min(a,o.startx)},r.x+r.width/2),s=n.reduce(function(a,o){return Math.max(a,o.stopx)},r.x+r.width/2);return[i,s]};function Kn(t,e,r,n,i){Bt.bumpVerticalPos(r);let s=n;if(e.id&&e.message&&t[e.id]){const a=t[e.id].width,o=Ia(lt);e.message=ge.wrapLabel(`[${e.message}]`,a-2*lt.wrapPadding,o),e.width=a,e.wrap=!0;const l=ge.calculateTextDimensions(e.message,o),u=Math.max(l.height,lt.labelBoxHeight);s=n+u,B.debug(`${u} - ${e.message}`)}i(e),Bt.bumpVerticalPos(s)}const IF=function(t,e,r,n){const{securityLevel:i,sequence:s}=$();lt=s;let a;i===\"sandbox\"&&(a=St(\"#i\"+e));const o=St(i===\"sandbox\"?a.nodes()[0].contentDocument.body:\"body\"),l=i===\"sandbox\"?a.nodes()[0].contentDocument:document;Bt.init(),B.debug(n.db);const u=i===\"sandbox\"?o.select(`[id=\"${e}\"]`):St(`[id=\"${e}\"]`),d=n.db.getActors(),f=n.db.getActorKeys(),p=n.db.getMessages(),g=n.db.getDiagramTitle(),b=OF(d,p,n);lt.height=FF(d,b),je.insertComputerIcon(u),je.insertDatabaseIcon(u),je.insertClockIcon(u),hd(u,d,f,0,lt,p);const k=VF(p,d,b,n);je.insertArrowHead(u),je.insertArrowCrossHead(u),je.insertArrowFilledHead(u),je.insertSequenceNumber(u);function T(v,M){const m=Bt.endActivation(v);m.starty+18>M&&(m.starty=M-6,M+=12),je.drawActivation(u,m,M,lt,Du(v.from.actor).length),Bt.insert(m.startx,M-10,m.stopx,M)}let L=1,E=1;const I=[];p.forEach(function(v){let M,m,Q;switch(v.type){case n.db.LINETYPE.NOTE:m=v.noteModel,MF(u,m);break;case n.db.LINETYPE.ACTIVE_START:Bt.newActivation(v,u,d);break;case n.db.LINETYPE.ACTIVE_END:T(v,Bt.getVerticalPos());break;case n.db.LINETYPE.LOOP_START:Kn(k,v,lt.boxMargin,lt.boxMargin+lt.boxTextMargin,x=>Bt.newLoop(x));break;case n.db.LINETYPE.LOOP_END:M=Bt.endLoop(),je.drawLoop(u,M,\"loop\",lt),Bt.bumpVerticalPos(M.stopy-Bt.getVerticalPos()),Bt.models.addLoop(M);break;case n.db.LINETYPE.RECT_START:Kn(k,v,lt.boxMargin,lt.boxMargin,x=>Bt.newLoop(void 0,x.message));break;case n.db.LINETYPE.RECT_END:M=Bt.endLoop(),je.drawBackgroundRect(u,M),Bt.models.addLoop(M),Bt.bumpVerticalPos(M.stopy-Bt.getVerticalPos());break;case n.db.LINETYPE.OPT_START:Kn(k,v,lt.boxMargin,lt.boxMargin+lt.boxTextMargin,x=>Bt.newLoop(x));break;case n.db.LINETYPE.OPT_END:M=Bt.endLoop(),je.drawLoop(u,M,\"opt\",lt),Bt.bumpVerticalPos(M.stopy-Bt.getVerticalPos()),Bt.models.addLoop(M);break;case n.db.LINETYPE.ALT_START:Kn(k,v,lt.boxMargin,lt.boxMargin+lt.boxTextMargin,x=>Bt.newLoop(x));break;case n.db.LINETYPE.ALT_ELSE:Kn(k,v,lt.boxMargin+lt.boxTextMargin,lt.boxMargin,x=>Bt.addSectionToLoop(x));break;case n.db.LINETYPE.ALT_END:M=Bt.endLoop(),je.drawLoop(u,M,\"alt\",lt),Bt.bumpVerticalPos(M.stopy-Bt.getVerticalPos()),Bt.models.addLoop(M);break;case n.db.LINETYPE.PAR_START:Kn(k,v,lt.boxMargin,lt.boxMargin+lt.boxTextMargin,x=>Bt.newLoop(x));break;case n.db.LINETYPE.PAR_AND:Kn(k,v,lt.boxMargin+lt.boxTextMargin,lt.boxMargin,x=>Bt.addSectionToLoop(x));break;case n.db.LINETYPE.PAR_END:M=Bt.endLoop(),je.drawLoop(u,M,\"par\",lt),Bt.bumpVerticalPos(M.stopy-Bt.getVerticalPos()),Bt.models.addLoop(M);break;case n.db.LINETYPE.AUTONUMBER:L=v.message.start||L,E=v.message.step||E,v.message.visible?n.db.enableSequenceNumbers():n.db.disableSequenceNumbers();break;case n.db.LINETYPE.CRITICAL_START:Kn(k,v,lt.boxMargin,lt.boxMargin+lt.boxTextMargin,x=>Bt.newLoop(x));break;case n.db.LINETYPE.CRITICAL_OPTION:Kn(k,v,lt.boxMargin+lt.boxTextMargin,lt.boxMargin,x=>Bt.addSectionToLoop(x));break;case n.db.LINETYPE.CRITICAL_END:M=Bt.endLoop(),je.drawLoop(u,M,\"critical\",lt),Bt.bumpVerticalPos(M.stopy-Bt.getVerticalPos()),Bt.models.addLoop(M);break;case n.db.LINETYPE.BREAK_START:Kn(k,v,lt.boxMargin,lt.boxMargin+lt.boxTextMargin,x=>Bt.newLoop(x));break;case n.db.LINETYPE.BREAK_END:M=Bt.endLoop(),je.drawLoop(u,M,\"break\",lt),Bt.bumpVerticalPos(M.stopy-Bt.getVerticalPos()),Bt.models.addLoop(M);break;default:try{Q=v.msgModel,Q.starty=Bt.getVerticalPos(),Q.sequenceIndex=L,Q.sequenceVisible=n.db.showSequenceNumbers();const x=NF(u,Q);I.push({messageModel:Q,lineStartY:x}),Bt.models.addMessage(Q)}catch(x){B.error(\"error while drawing message\",x)}}[n.db.LINETYPE.SOLID_OPEN,n.db.LINETYPE.DOTTED_OPEN,n.db.LINETYPE.SOLID,n.db.LINETYPE.DOTTED,n.db.LINETYPE.SOLID_CROSS,n.db.LINETYPE.DOTTED_CROSS,n.db.LINETYPE.SOLID_POINT,n.db.LINETYPE.DOTTED_POINT].includes(v.type)&&(L=L+E)}),I.forEach(v=>BF(u,v.messageModel,v.lineStartY,n)),lt.mirrorActors&&(Bt.bumpVerticalPos(lt.boxMargin*2),hd(u,d,f,Bt.getVerticalPos(),lt,p),Bt.bumpVerticalPos(lt.boxMargin),J3(u,Bt.getVerticalPos()));const V=e4(u,d,f,l),{bounds:H}=Bt.getBounds();B.debug(\"For line height fix Querying: #\"+e+\" .actor-line\"),hh(\"#\"+e+\" .actor-line\").attr(\"y2\",H.stopy);let Y=H.stopy-H.starty;Y<V.maxHeight&&(Y=V.maxHeight);let W=Y+2*lt.diagramMarginY;lt.mirrorActors&&(W=W-lt.boxMargin+lt.bottomMarginAdj);let N=H.stopx-H.startx;N<V.maxWidth&&(N=V.maxWidth);const D=N+2*lt.diagramMarginX;g&&u.append(\"text\").text(g).attr(\"x\",(H.stopx-H.startx)/2-2*lt.diagramMarginX).attr(\"y\",-25),xn(u,W,D,lt.useMaxWidth);const w=g?40:0;u.attr(\"viewBox\",H.startx-lt.diagramMarginX+\" -\"+(lt.diagramMarginY+w)+\" \"+D+\" \"+(W+w)),B.debug(\"models:\",Bt.models)};function OF(t,e,r){const n={};return e.forEach(function(i){if(t[i.to]&&t[i.from]){const s=t[i.to];if(i.placement===r.db.PLACEMENT.LEFTOF&&!s.prevActor||i.placement===r.db.PLACEMENT.RIGHTOF&&!s.nextActor)return;const a=i.placement!==void 0,o=!a,l=a?Oa(lt):Ia(lt),u=i.wrap?ge.wrapLabel(i.message,lt.width-2*lt.wrapPadding,l):i.message,f=ge.calculateTextDimensions(u,l).width+2*lt.wrapPadding;o&&i.from===s.nextActor?n[i.to]=Math.max(n[i.to]||0,f):o&&i.from===s.prevActor?n[i.from]=Math.max(n[i.from]||0,f):o&&i.from===i.to?(n[i.from]=Math.max(n[i.from]||0,f/2),n[i.to]=Math.max(n[i.to]||0,f/2)):i.placement===r.db.PLACEMENT.RIGHTOF?n[i.from]=Math.max(n[i.from]||0,f):i.placement===r.db.PLACEMENT.LEFTOF?n[s.prevActor]=Math.max(n[s.prevActor]||0,f):i.placement===r.db.PLACEMENT.OVER&&(s.prevActor&&(n[s.prevActor]=Math.max(n[s.prevActor]||0,f/2)),s.nextActor&&(n[i.from]=Math.max(n[i.from]||0,f/2)))}}),B.debug(\"maxMessageWidthPerActor:\",n),n}const RF=function(t){let e=0;const r=ud(lt);for(const n in t.links){const s=ge.calculateTextDimensions(n,r).width+2*lt.wrapPadding+2*lt.boxMargin;e<s&&(e=s)}return e};function FF(t,e){let r=0;Object.keys(t).forEach(n=>{const i=t[n];i.wrap&&(i.description=ge.wrapLabel(i.description,lt.width-2*lt.wrapPadding,ud(lt)));const s=ge.calculateTextDimensions(i.description,ud(lt));i.width=i.wrap?lt.width:Math.max(lt.width,s.width+2*lt.wrapPadding),i.height=i.wrap?Math.max(s.height,lt.height):lt.height,r=Math.max(r,i.height)});for(const n in e){const i=t[n];if(!i)continue;const s=t[i.nextActor];if(!s)continue;const o=e[n]+lt.actorMargin-i.width/2-s.width/2;i.margin=Math.max(o,lt.actorMargin)}return Math.max(r,lt.height)}const PF=function(t,e,r){const n=e[t.from].x,i=e[t.to].x,s=t.wrap&&t.message;let a=ge.calculateTextDimensions(s?ge.wrapLabel(t.message,lt.width,Oa(lt)):t.message,Oa(lt));const o={width:s?lt.width:Math.max(lt.width,a.width+2*lt.noteMargin),height:0,startx:e[t.from].x,stopx:0,starty:0,stopy:0,message:t.message};return t.placement===r.db.PLACEMENT.RIGHTOF?(o.width=s?Math.max(lt.width,a.width):Math.max(e[t.from].width/2+e[t.to].width/2,a.width+2*lt.noteMargin),o.startx=n+(e[t.from].width+lt.actorMargin)/2):t.placement===r.db.PLACEMENT.LEFTOF?(o.width=Math.max(s?lt.width:e[t.from].width/2+e[t.to].width/2,a.width+2*lt.noteMargin),o.startx=n-o.width+(e[t.from].width-lt.actorMargin)/2):t.to===t.from?(a=ge.calculateTextDimensions(s?ge.wrapLabel(t.message,Math.max(lt.width,e[t.from].width),Oa(lt)):t.message,Oa(lt)),o.width=s?Math.max(lt.width,e[t.from].width):Math.max(e[t.from].width,lt.width,a.width+2*lt.noteMargin),o.startx=n+(e[t.from].width-o.width)/2):(o.width=Math.abs(n+e[t.from].width/2-(i+e[t.to].width/2))+lt.actorMargin,o.startx=n<i?n+e[t.from].width/2-lt.actorMargin/2:i+e[t.to].width/2-lt.actorMargin/2),s&&(o.message=ge.wrapLabel(t.message,o.width-2*lt.wrapPadding,Oa(lt))),B.debug(`NM:[${o.startx},${o.stopx},${o.starty},${o.stopy}:${o.width},${o.height}=${t.message}]`),o},YF=function(t,e,r){let n=!1;if([r.db.LINETYPE.SOLID_OPEN,r.db.LINETYPE.DOTTED_OPEN,r.db.LINETYPE.SOLID,r.db.LINETYPE.DOTTED,r.db.LINETYPE.SOLID_CROSS,r.db.LINETYPE.DOTTED_CROSS,r.db.LINETYPE.SOLID_POINT,r.db.LINETYPE.DOTTED_POINT].includes(t.type)&&(n=!0),!n)return{};const i=n4(t.from,e),s=n4(t.to,e),a=i[0]<=s[0]?1:0,o=i[0]<s[0]?0:1,l=[...i,...s],u=Math.abs(s[o]-i[a]);t.wrap&&t.message&&(t.message=ge.wrapLabel(t.message,Math.max(u+2*lt.wrapPadding,lt.width),Ia(lt)));const d=ge.calculateTextDimensions(t.message,Ia(lt));return{width:Math.max(t.wrap?0:d.width+2*lt.wrapPadding,u+2*lt.wrapPadding,lt.width),height:0,startx:i[a],stopx:s[o],starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,l),toBounds:Math.max.apply(null,l)}},VF=function(t,e,r,n){const i={},s=[];let a,o,l;return t.forEach(function(u){switch(u.id=ge.random({length:10}),u.type){case n.db.LINETYPE.LOOP_START:case n.db.LINETYPE.ALT_START:case n.db.LINETYPE.OPT_START:case n.db.LINETYPE.PAR_START:case n.db.LINETYPE.CRITICAL_START:case n.db.LINETYPE.BREAK_START:s.push({id:u.id,msg:u.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case n.db.LINETYPE.ALT_ELSE:case n.db.LINETYPE.PAR_AND:case n.db.LINETYPE.CRITICAL_OPTION:u.message&&(a=s.pop(),i[a.id]=a,i[u.id]=a,s.push(a));break;case n.db.LINETYPE.LOOP_END:case n.db.LINETYPE.ALT_END:case n.db.LINETYPE.OPT_END:case n.db.LINETYPE.PAR_END:case n.db.LINETYPE.CRITICAL_END:case n.db.LINETYPE.BREAK_END:a=s.pop(),i[a.id]=a;break;case n.db.LINETYPE.ACTIVE_START:{const f=e[u.from?u.from.actor:u.to.actor],p=Du(u.from?u.from.actor:u.to.actor).length,g=f.x+f.width/2+(p-1)*lt.activationWidth/2,b={startx:g,stopx:g+lt.activationWidth,actor:u.from.actor,enabled:!0};Bt.activations.push(b)}break;case n.db.LINETYPE.ACTIVE_END:{const f=Bt.activations.map(p=>p.actor).lastIndexOf(u.from.actor);delete Bt.activations.splice(f,1)[0]}break}u.placement!==void 0?(o=PF(u,e,n),u.noteModel=o,s.forEach(f=>{a=f,a.from=Math.min(a.from,o.startx),a.to=Math.max(a.to,o.startx+o.width),a.width=Math.max(a.width,Math.abs(a.from-a.to))-lt.labelBoxWidth})):(l=YF(u,e,n),u.msgModel=l,l.startx&&l.stopx&&s.length>0&&s.forEach(f=>{if(a=f,l.startx===l.stopx){const p=e[u.from],g=e[u.to];a.from=Math.min(p.x-l.width/2,p.x-p.width/2,a.from),a.to=Math.max(g.x+l.width/2,g.x+p.width/2,a.to),a.width=Math.max(a.width,Math.abs(a.to-a.from))-lt.labelBoxWidth}else a.from=Math.min(l.startx,a.from),a.to=Math.max(l.stopx,a.to),a.width=Math.max(a.width,l.width)-lt.labelBoxWidth}))}),Bt.activations=[],B.debug(\"Loop type widths:\",i),i},i4={bounds:Bt,drawActors:hd,drawActorsPopup:e4,setConf:r4,draw:IF};var dd=function(){var t=function(j,ot,rt,nt){for(rt=rt||{},nt=j.length;nt--;rt[j[nt]]=ot);return rt},e=[1,2],r=[1,3],n=[1,5],i=[1,7],s=[2,5],a=[1,15],o=[1,17],l=[1,21],u=[1,22],d=[1,23],f=[1,24],p=[1,37],g=[1,25],b=[1,26],k=[1,27],T=[1,28],L=[1,29],E=[1,32],I=[1,33],V=[1,34],H=[1,35],G=[1,36],Y=[1,39],W=[1,40],N=[1,41],D=[1,42],w=[1,38],v=[1,45],M=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],m=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],Q=[1,4,5,7,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],x=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],ct={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,directive:6,SD:7,document:8,line:9,statement:10,classDefStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,\"-->\":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,classDef:38,CLASSDEF_ID:39,CLASSDEF_STYLEOPTS:40,DEFAULT:41,class:42,CLASSENTITY_IDS:43,STYLECLASS:44,openDirective:45,typeDirective:46,closeDirective:47,\":\":48,argDirective:49,direction_tb:50,direction_bt:51,direction_rl:52,direction_lr:53,eol:54,\";\":55,EDGE_STATE:56,STYLE_SEPARATOR:57,left_of:58,right_of:59,open_directive:60,type_directive:61,arg_directive:62,close_directive:63,$accept:0,$end:1},terminals_:{2:\"error\",4:\"SPACE\",5:\"NL\",7:\"SD\",14:\"DESCR\",15:\"-->\",16:\"HIDE_EMPTY\",17:\"scale\",18:\"WIDTH\",19:\"COMPOSIT_STATE\",20:\"STRUCT_START\",21:\"STRUCT_STOP\",22:\"STATE_DESCR\",23:\"AS\",24:\"ID\",25:\"FORK\",26:\"JOIN\",27:\"CHOICE\",28:\"CONCURRENT\",29:\"note\",31:\"NOTE_TEXT\",33:\"acc_title\",34:\"acc_title_value\",35:\"acc_descr\",36:\"acc_descr_value\",37:\"acc_descr_multiline_value\",38:\"classDef\",39:\"CLASSDEF_ID\",40:\"CLASSDEF_STYLEOPTS\",41:\"DEFAULT\",42:\"class\",43:\"CLASSENTITY_IDS\",44:\"STYLECLASS\",48:\":\",50:\"direction_tb\",51:\"direction_bt\",52:\"direction_rl\",53:\"direction_lr\",55:\";\",56:\"EDGE_STATE\",57:\"STYLE_SEPARATOR\",58:\"left_of\",59:\"right_of\",60:\"open_directive\",61:\"type_directive\",62:\"arg_directive\",63:\"close_directive\"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[10,1],[10,1],[10,1],[10,2],[10,3],[10,4],[10,1],[10,2],[10,1],[10,4],[10,3],[10,6],[10,1],[10,1],[10,1],[10,1],[10,4],[10,4],[10,1],[10,1],[10,2],[10,2],[10,1],[11,3],[11,3],[12,3],[6,3],[6,5],[32,1],[32,1],[32,1],[32,1],[54,1],[54,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1],[45,1],[46,1],[49,1],[47,1]],performAction:function(ot,rt,nt,ut,_t,K,Ot){var P=K.length-1;switch(_t){case 4:return ut.setRootDoc(K[P]),K[P];case 5:this.$=[];break;case 6:K[P]!=\"nl\"&&(K[P-1].push(K[P]),this.$=K[P-1]);break;case 7:case 8:this.$=K[P];break;case 9:this.$=\"nl\";break;case 12:this.$=K[P];break;case 13:const O=K[P-1];O.description=ut.trimColon(K[P]),this.$=O;break;case 14:this.$={stmt:\"relation\",state1:K[P-2],state2:K[P]};break;case 15:const A=ut.trimColon(K[P]);this.$={stmt:\"relation\",state1:K[P-3],state2:K[P-1],description:A};break;case 19:this.$={stmt:\"state\",id:K[P-3],type:\"default\",description:\"\",doc:K[P-1]};break;case 20:var z=K[P],X=K[P-2].trim();if(K[P].match(\":\")){var F=K[P].split(\":\");z=F[0],X=[X,F[1]]}this.$={stmt:\"state\",id:z,type:\"default\",description:X};break;case 21:this.$={stmt:\"state\",id:K[P-3],type:\"default\",description:K[P-5],doc:K[P-1]};break;case 22:this.$={stmt:\"state\",id:K[P],type:\"fork\"};break;case 23:this.$={stmt:\"state\",id:K[P],type:\"join\"};break;case 24:this.$={stmt:\"state\",id:K[P],type:\"choice\"};break;case 25:this.$={stmt:\"state\",id:ut.getDividerId(),type:\"divider\"};break;case 26:this.$={stmt:\"state\",id:K[P-1].trim(),note:{position:K[P-2].trim(),text:K[P].trim()}};break;case 30:this.$=K[P].trim(),ut.setAccTitle(this.$);break;case 31:case 32:this.$=K[P].trim(),ut.setAccDescription(this.$);break;case 33:case 34:this.$={stmt:\"classDef\",id:K[P-1].trim(),classes:K[P].trim()};break;case 35:this.$={stmt:\"applyClass\",id:K[P-1].trim(),styleClass:K[P].trim()};break;case 38:ut.setDirection(\"TB\"),this.$={stmt:\"dir\",value:\"TB\"};break;case 39:ut.setDirection(\"BT\"),this.$={stmt:\"dir\",value:\"BT\"};break;case 40:ut.setDirection(\"RL\"),this.$={stmt:\"dir\",value:\"RL\"};break;case 41:ut.setDirection(\"LR\"),this.$={stmt:\"dir\",value:\"LR\"};break;case 44:case 45:this.$={stmt:\"state\",id:K[P].trim(),type:\"default\",description:\"\"};break;case 46:this.$={stmt:\"state\",id:K[P-2].trim(),classes:[K[P].trim()],type:\"default\",description:\"\"};break;case 47:this.$={stmt:\"state\",id:K[P-2].trim(),classes:[K[P].trim()],type:\"default\",description:\"\"};break;case 50:ut.parseDirective(\"%%{\",\"open_directive\");break;case 51:ut.parseDirective(K[P],\"type_directive\");break;case 52:K[P]=K[P].trim().replace(/'/g,'\"'),ut.parseDirective(K[P],\"arg_directive\");break;case 53:ut.parseDirective(\"}%%\",\"close_directive\",\"state\");break}},table:[{3:1,4:e,5:r,6:4,7:n,45:6,60:i},{1:[3]},{3:8,4:e,5:r,6:4,7:n,45:6,60:i},{3:9,4:e,5:r,6:4,7:n,45:6,60:i},{3:10,4:e,5:r,6:4,7:n,45:6,60:i},t([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],s,{8:11}),{46:12,61:[1,13]},{61:[2,50]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:a,5:o,6:30,9:14,10:16,11:18,12:19,13:20,16:l,17:u,19:d,22:f,24:p,25:g,26:b,27:k,28:T,29:L,32:31,33:E,35:I,37:V,38:H,42:G,45:6,50:Y,51:W,52:N,53:D,56:w,60:i},{47:43,48:[1,44],63:v},t([48,63],[2,51]),t(M,[2,6]),{6:30,10:46,11:18,12:19,13:20,16:l,17:u,19:d,22:f,24:p,25:g,26:b,27:k,28:T,29:L,32:31,33:E,35:I,37:V,38:H,42:G,45:6,50:Y,51:W,52:N,53:D,56:w,60:i},t(M,[2,8]),t(M,[2,9]),t(M,[2,10]),t(M,[2,11]),t(M,[2,12],{14:[1,47],15:[1,48]}),t(M,[2,16]),{18:[1,49]},t(M,[2,18],{20:[1,50]}),{23:[1,51]},t(M,[2,22]),t(M,[2,23]),t(M,[2,24]),t(M,[2,25]),{30:52,31:[1,53],58:[1,54],59:[1,55]},t(M,[2,28]),t(M,[2,29]),{34:[1,56]},{36:[1,57]},t(M,[2,32]),{39:[1,58],41:[1,59]},{43:[1,60]},t(m,[2,44],{57:[1,61]}),t(m,[2,45],{57:[1,62]}),t(M,[2,38]),t(M,[2,39]),t(M,[2,40]),t(M,[2,41]),t(Q,[2,36]),{49:63,62:[1,64]},t(Q,[2,53]),t(M,[2,7]),t(M,[2,13]),{13:65,24:p,56:w},t(M,[2,17]),t(x,s,{8:66}),{24:[1,67]},{24:[1,68]},{23:[1,69]},{24:[2,48]},{24:[2,49]},t(M,[2,30]),t(M,[2,31]),{40:[1,70]},{40:[1,71]},{44:[1,72]},{24:[1,73]},{24:[1,74]},{47:75,63:v},{63:[2,52]},t(M,[2,14],{14:[1,76]}),{4:a,5:o,6:30,9:14,10:16,11:18,12:19,13:20,16:l,17:u,19:d,21:[1,77],22:f,24:p,25:g,26:b,27:k,28:T,29:L,32:31,33:E,35:I,37:V,38:H,42:G,45:6,50:Y,51:W,52:N,53:D,56:w,60:i},t(M,[2,20],{20:[1,78]}),{31:[1,79]},{24:[1,80]},t(M,[2,33]),t(M,[2,34]),t(M,[2,35]),t(m,[2,46]),t(m,[2,47]),t(Q,[2,37]),t(M,[2,15]),t(M,[2,19]),t(x,s,{8:81}),t(M,[2,26]),t(M,[2,27]),{4:a,5:o,6:30,9:14,10:16,11:18,12:19,13:20,16:l,17:u,19:d,21:[1,82],22:f,24:p,25:g,26:b,27:k,28:T,29:L,32:31,33:E,35:I,37:V,38:H,42:G,45:6,50:Y,51:W,52:N,53:D,56:w,60:i},t(M,[2,21])],defaultActions:{7:[2,50],8:[2,1],9:[2,2],10:[2,3],54:[2,48],55:[2,49],64:[2,52]},parseError:function(ot,rt){if(rt.recoverable)this.trace(ot);else{var nt=new Error(ot);throw nt.hash=rt,nt}},parse:function(ot){var rt=this,nt=[0],ut=[],_t=[null],K=[],Ot=this.table,P=\"\",z=0,X=0,F=2,O=1,A=K.slice.call(arguments,1),J=Object.create(this.lexer),C={yy:{}};for(var ht in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ht)&&(C.yy[ht]=this.yy[ht]);J.setInput(ot,C.yy),C.yy.lexer=J,C.yy.parser=this,typeof J.yylloc>\"u\"&&(J.yylloc={});var U=J.yylloc;K.push(U);var Yt=J.options&&J.options.ranges;typeof C.yy.parseError==\"function\"?this.parseError=C.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function et(){var Kt;return Kt=ut.pop()||J.lex()||O,typeof Kt!=\"number\"&&(Kt instanceof Array&&(ut=Kt,Kt=ut.pop()),Kt=rt.symbols_[Kt]||Kt),Kt}for(var Mt,Tt,gt,Et,wt={},pt,st,le,Xt;;){if(Tt=nt[nt.length-1],this.defaultActions[Tt]?gt=this.defaultActions[Tt]:((Mt===null||typeof Mt>\"u\")&&(Mt=et()),gt=Ot[Tt]&&Ot[Tt][Mt]),typeof gt>\"u\"||!gt.length||!gt[0]){var jt=\"\";Xt=[];for(pt in Ot[Tt])this.terminals_[pt]&&pt>F&&Xt.push(\"'\"+this.terminals_[pt]+\"'\");J.showPosition?jt=\"Parse error on line \"+(z+1)+`:\n`+J.showPosition()+`\nExpecting `+Xt.join(\", \")+\", got '\"+(this.terminals_[Mt]||Mt)+\"'\":jt=\"Parse error on line \"+(z+1)+\": Unexpected \"+(Mt==O?\"end of input\":\"'\"+(this.terminals_[Mt]||Mt)+\"'\"),this.parseError(jt,{text:J.match,token:this.terminals_[Mt]||Mt,line:J.yylineno,loc:U,expected:Xt})}if(gt[0]instanceof Array&>.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+Tt+\", token: \"+Mt);switch(gt[0]){case 1:nt.push(Mt),_t.push(J.yytext),K.push(J.yylloc),nt.push(gt[1]),Mt=null,X=J.yyleng,P=J.yytext,z=J.yylineno,U=J.yylloc;break;case 2:if(st=this.productions_[gt[1]][1],wt.$=_t[_t.length-st],wt._$={first_line:K[K.length-(st||1)].first_line,last_line:K[K.length-1].last_line,first_column:K[K.length-(st||1)].first_column,last_column:K[K.length-1].last_column},Yt&&(wt._$.range=[K[K.length-(st||1)].range[0],K[K.length-1].range[1]]),Et=this.performAction.apply(wt,[P,X,z,C.yy,gt[1],_t,K].concat(A)),typeof Et<\"u\")return Et;st&&(nt=nt.slice(0,-1*st*2),_t=_t.slice(0,-1*st),K=K.slice(0,-1*st)),nt.push(this.productions_[gt[1]][0]),_t.push(wt.$),K.push(wt._$),le=Ot[nt[nt.length-2]][nt[nt.length-1]],nt.push(le);break;case 3:return!0}}return!0}},Dt=function(){var j={EOF:1,parseError:function(rt,nt){if(this.yy.parser)this.yy.parser.parseError(rt,nt);else throw new Error(rt)},setInput:function(ot,rt){return this.yy=rt||this.yy||{},this._input=ot,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ot=this._input[0];this.yytext+=ot,this.yyleng++,this.offset++,this.match+=ot,this.matched+=ot;var rt=ot.match(/(?:\\r\\n?|\\n).*/g);return rt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ot},unput:function(ot){var rt=ot.length,nt=ot.split(/(?:\\r\\n?|\\n)/g);this._input=ot+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-rt),this.offset-=rt;var ut=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),nt.length-1&&(this.yylineno-=nt.length-1);var _t=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:nt?(nt.length===ut.length?this.yylloc.first_column:0)+ut[ut.length-nt.length].length-nt[0].length:this.yylloc.first_column-rt},this.options.ranges&&(this.yylloc.range=[_t[0],_t[0]+this.yyleng-rt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno});return this},less:function(ot){this.unput(this.match.slice(ot))},pastInput:function(){var ot=this.matched.substr(0,this.matched.length-this.match.length);return(ot.length>20?\"...\":\"\")+ot.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var ot=this.match;return ot.length<20&&(ot+=this._input.substr(0,20-ot.length)),(ot.substr(0,20)+(ot.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var ot=this.pastInput(),rt=new Array(ot.length+1).join(\"-\");return ot+this.upcomingInput()+`\n`+rt+\"^\"},test_match:function(ot,rt){var nt,ut,_t;if(this.options.backtrack_lexer&&(_t={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(_t.yylloc.range=this.yylloc.range.slice(0))),ut=ot[0].match(/(?:\\r\\n?|\\n).*/g),ut&&(this.yylineno+=ut.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ut?ut[ut.length-1].length-ut[ut.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+ot[0].length},this.yytext+=ot[0],this.match+=ot[0],this.matches=ot,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ot[0].length),this.matched+=ot[0],nt=this.performAction.call(this,this.yy,this,rt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),nt)return nt;if(this._backtrack){for(var K in _t)this[K]=_t[K];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ot,rt,nt,ut;this._more||(this.yytext=\"\",this.match=\"\");for(var _t=this._currentRules(),K=0;K<_t.length;K++)if(nt=this._input.match(this.rules[_t[K]]),nt&&(!rt||nt[0].length>rt[0].length)){if(rt=nt,ut=K,this.options.backtrack_lexer){if(ot=this.test_match(nt,_t[K]),ot!==!1)return ot;if(this._backtrack){rt=!1;continue}else return!1}else if(!this.options.flex)break}return rt?(ot=this.test_match(rt,_t[ut]),ot!==!1?ot:!1):this._input===\"\"?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. Unrecognized text.\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var rt=this.next();return rt||this.lex()},begin:function(rt){this.conditionStack.push(rt)},popState:function(){var rt=this.conditionStack.length-1;return rt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(rt){return rt=this.conditionStack.length-1-Math.abs(rt||0),rt>=0?this.conditionStack[rt]:\"INITIAL\"},pushState:function(rt){this.begin(rt)},stateStackSize:function(){return this.conditionStack.length},options:{\"case-insensitive\":!0},performAction:function(rt,nt,ut,_t){switch(ut){case 0:return 41;case 1:return 50;case 2:return 51;case 3:return 52;case 4:return 53;case 5:return this.begin(\"open_directive\"),60;case 6:return this.begin(\"type_directive\"),61;case 7:return this.popState(),this.begin(\"arg_directive\"),48;case 8:return this.popState(),this.popState(),63;case 9:return 62;case 10:break;case 11:break;case 12:return 5;case 13:break;case 14:break;case 15:break;case 16:break;case 17:return this.pushState(\"SCALE\"),17;case 18:return 18;case 19:this.popState();break;case 20:return this.begin(\"acc_title\"),33;case 21:return this.popState(),\"acc_title_value\";case 22:return this.begin(\"acc_descr\"),35;case 23:return this.popState(),\"acc_descr_value\";case 24:this.begin(\"acc_descr_multiline\");break;case 25:this.popState();break;case 26:return\"acc_descr_multiline_value\";case 27:return this.pushState(\"CLASSDEF\"),38;case 28:return this.popState(),this.pushState(\"CLASSDEFID\"),\"DEFAULT_CLASSDEF_ID\";case 29:return this.popState(),this.pushState(\"CLASSDEFID\"),39;case 30:return this.popState(),40;case 31:return this.pushState(\"CLASS\"),42;case 32:return this.popState(),this.pushState(\"CLASS_STYLE\"),43;case 33:return this.popState(),44;case 34:return this.pushState(\"SCALE\"),17;case 35:return 18;case 36:this.popState();break;case 37:this.pushState(\"STATE\");break;case 38:return this.popState(),nt.yytext=nt.yytext.slice(0,-8).trim(),25;case 39:return this.popState(),nt.yytext=nt.yytext.slice(0,-8).trim(),26;case 40:return this.popState(),nt.yytext=nt.yytext.slice(0,-10).trim(),27;case 41:return this.popState(),nt.yytext=nt.yytext.slice(0,-8).trim(),25;case 42:return this.popState(),nt.yytext=nt.yytext.slice(0,-8).trim(),26;case 43:return this.popState(),nt.yytext=nt.yytext.slice(0,-10).trim(),27;case 44:return 50;case 45:return 51;case 46:return 52;case 47:return 53;case 48:this.begin(\"STATE_STRING\");break;case 49:return this.popState(),this.pushState(\"STATE_ID\"),\"AS\";case 50:return this.popState(),\"ID\";case 51:this.popState();break;case 52:return\"STATE_DESCR\";case 53:return 19;case 54:this.popState();break;case 55:return this.popState(),this.pushState(\"struct\"),20;case 56:break;case 57:return this.popState(),21;case 58:break;case 59:return this.begin(\"NOTE\"),29;case 60:return this.popState(),this.pushState(\"NOTE_ID\"),58;case 61:return this.popState(),this.pushState(\"NOTE_ID\"),59;case 62:this.popState(),this.pushState(\"FLOATING_NOTE\");break;case 63:return this.popState(),this.pushState(\"FLOATING_NOTE_ID\"),\"AS\";case 64:break;case 65:return\"NOTE_TEXT\";case 66:return this.popState(),\"ID\";case 67:return this.popState(),this.pushState(\"NOTE_TEXT\"),24;case 68:return this.popState(),nt.yytext=nt.yytext.substr(2).trim(),31;case 69:return this.popState(),nt.yytext=nt.yytext.slice(0,-8).trim(),31;case 70:return 7;case 71:return 7;case 72:return 16;case 73:return 56;case 74:return 24;case 75:return nt.yytext=nt.yytext.trim(),14;case 76:return 15;case 77:return 28;case 78:return 57;case 79:return 5;case 80:return\"INVALID\"}},rules:[/^(?:default\\b)/i,/^(?:.*direction\\s+TB[^\\n]*)/i,/^(?:.*direction\\s+BT[^\\n]*)/i,/^(?:.*direction\\s+RL[^\\n]*)/i,/^(?:.*direction\\s+LR[^\\n]*)/i,/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:%%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[\\n]+)/i,/^(?:[\\s]+)/i,/^(?:((?!\\n)\\s)+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:scale\\s+)/i,/^(?:\\d+)/i,/^(?:\\s+width\\b)/i,/^(?:accTitle\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*\\{\\s*)/i,/^(?:[\\}])/i,/^(?:[^\\}]*)/i,/^(?:classDef\\s+)/i,/^(?:DEFAULT\\s+)/i,/^(?:\\w+\\s+)/i,/^(?:[^\\n]*)/i,/^(?:class\\s+)/i,/^(?:(\\w+)+((,\\s*\\w+)*))/i,/^(?:[^\\n]*)/i,/^(?:scale\\s+)/i,/^(?:\\d+)/i,/^(?:\\s+width\\b)/i,/^(?:state\\s+)/i,/^(?:.*<<fork>>)/i,/^(?:.*<<join>>)/i,/^(?:.*<<choice>>)/i,/^(?:.*\\[\\[fork\\]\\])/i,/^(?:.*\\[\\[join\\]\\])/i,/^(?:.*\\[\\[choice\\]\\])/i,/^(?:.*direction\\s+TB[^\\n]*)/i,/^(?:.*direction\\s+BT[^\\n]*)/i,/^(?:.*direction\\s+RL[^\\n]*)/i,/^(?:.*direction\\s+LR[^\\n]*)/i,/^(?:[\"])/i,/^(?:\\s*as\\s+)/i,/^(?:[^\\n\\{]*)/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:[^\\n\\s\\{]+)/i,/^(?:\\n)/i,/^(?:\\{)/i,/^(?:%%(?!\\{)[^\\n]*)/i,/^(?:\\})/i,/^(?:[\\n])/i,/^(?:note\\s+)/i,/^(?:left of\\b)/i,/^(?:right of\\b)/i,/^(?:\")/i,/^(?:\\s*as\\s*)/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:[^\\n]*)/i,/^(?:\\s*[^:\\n\\s\\-]+)/i,/^(?:\\s*:[^:\\n;]+)/i,/^(?:[\\s\\S]*?end note\\b)/i,/^(?:stateDiagram\\s+)/i,/^(?:stateDiagram-v2\\s+)/i,/^(?:hide empty description\\b)/i,/^(?:\\[\\*\\])/i,/^(?:[^:\\n\\s\\-\\{]+)/i,/^(?:\\s*:[^:\\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[14,15],inclusive:!1},close_directive:{rules:[14,15],inclusive:!1},arg_directive:{rules:[8,9,14,15],inclusive:!1},type_directive:{rules:[7,8,14,15],inclusive:!1},open_directive:{rules:[6,14,15],inclusive:!1},struct:{rules:[14,15,27,31,37,44,45,46,47,56,57,58,59,73,74,75,76,77],inclusive:!1},FLOATING_NOTE_ID:{rules:[66],inclusive:!1},FLOATING_NOTE:{rules:[63,64,65],inclusive:!1},NOTE_TEXT:{rules:[68,69],inclusive:!1},NOTE_ID:{rules:[67],inclusive:!1},NOTE:{rules:[60,61,62],inclusive:!1},CLASS_STYLE:{rules:[33],inclusive:!1},CLASS:{rules:[32],inclusive:!1},CLASSDEFID:{rules:[30],inclusive:!1},CLASSDEF:{rules:[28,29],inclusive:!1},acc_descr_multiline:{rules:[25,26],inclusive:!1},acc_descr:{rules:[23],inclusive:!1},acc_title:{rules:[21],inclusive:!1},SCALE:{rules:[18,19,35,36],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[50],inclusive:!1},STATE_STRING:{rules:[51,52],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[14,15,38,39,40,41,42,43,48,49,53,54,55],inclusive:!1},ID:{rules:[14,15],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,10,11,12,13,15,16,17,20,22,24,27,31,34,37,55,59,70,71,72,73,74,75,76,78,79,80],inclusive:!0}}};return j}();ct.lexer=Dt;function kt(){this.yy={}}return kt.prototype=ct,ct.Parser=kt,new kt}();dd.parser=dd;const s4=dd,UF=(t,e)=>{var r;return((r=e==null?void 0:e.state)==null?void 0:r.defaultRenderer)===\"dagre-wrapper\"?!1:t.match(/^\\s*stateDiagram/)!==null},zF=(t,e)=>{var r;return!!(t.match(/^\\s*stateDiagram-v2/)!==null||t.match(/^\\s*stateDiagram/)&&((r=e==null?void 0:e.state)==null?void 0:r.defaultRenderer)===\"dagre-wrapper\")},a4=\"LR\",WF=\"TB\",Mu=\"state\",fd=\"relation\",HF=\"classDef\",GF=\"applyClass\",Jo=\"default\",o4=\"divider\",pd=\"[*]\",l4=\"start\",c4=pd,u4=\"end\",h4=\"color\",d4=\"fill\",qF=\"bgFill\",jF=\",\";function f4(){return{}}let p4=a4,Nu=[],tl=f4();const g4=()=>({relations:[],states:{},documents:{}});let Bu={root:g4()},Cr=Bu.root,el=0,y4=0;const $F={LINE:0,DOTTED_LINE:1},XF={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},Iu=t=>JSON.parse(JSON.stringify(t)),KF=function(t,e,r){ze.parseDirective(this,t,e,r)},ZF=t=>{B.info(\"Setting root doc\",t),Nu=t},QF=()=>Nu,Ou=(t,e,r)=>{if(e.stmt===fd)Ou(t,e.state1,!0),Ou(t,e.state2,!1);else if(e.stmt===Mu&&e.id===\"[*]\"&&(e.id=r?t.id+\"_start\":t.id+\"_end\",e.start=r),e.doc){const n=[];let i=[],s;for(s=0;s<e.doc.length;s++)if(e.doc[s].type===o4){const a=Iu(e.doc[s]);a.doc=Iu(i),n.push(a),i=[]}else i.push(e.doc[s]);if(n.length>0&&i.length>0){const a={stmt:Mu,id:Rp(),type:\"divider\",doc:Iu(i)};n.push(Iu(a)),e.doc=n}e.doc.forEach(a=>Ou(e,a,!0))}},JF=()=>(Ou({id:\"root\"},{id:\"root\",doc:Nu},!0),{id:\"root\",doc:Nu}),tP=t=>{let e;t.doc?e=t.doc:e=t,B.info(e),m4(!0),B.info(\"Extract\",e),e.forEach(r=>{switch(r.stmt){case Mu:Ms(r.id,r.type,r.doc,r.description,r.note,r.classes,r.styles,r.textStyles);break;case fd:b4(r.state1,r.state2,r.description);break;case HF:_4(r.id,r.classes);break;case GF:bd(r.id,r.styleClass);break}})},Ms=function(t,e=Jo,r=null,n=null,i=null,s=null,a=null,o=null){Cr.states[t]===void 0?(B.info(\"Adding state \",t,n),Cr.states[t]={id:t,descriptions:[],type:e,doc:r,note:i,classes:[],styles:[],textStyles:[]}):(Cr.states[t].doc||(Cr.states[t].doc=r),Cr.states[t].type||(Cr.states[t].type=e)),n&&(B.info(\"Setting state description\",t,n),typeof n==\"string\"&&md(t,n.trim()),typeof n==\"object\"&&n.forEach(l=>md(t,l.trim()))),i&&(Cr.states[t].note=i,Cr.states[t].note.text=he.sanitizeText(Cr.states[t].note.text,$())),s&&(B.info(\"Setting state classes\",t,s),(typeof s==\"string\"?[s]:s).forEach(u=>bd(t,u.trim()))),a&&(B.info(\"Setting state styles\",t,a),(typeof a==\"string\"?[a]:a).forEach(u=>uP(t,u.trim()))),o&&(B.info(\"Setting state styles\",t,a),(typeof o==\"string\"?[o]:o).forEach(u=>hP(t,u.trim())))},m4=function(t){Bu={root:g4()},Cr=Bu.root,el=0,tl=f4(),t||vn()},rl=function(t){return Cr.states[t]},eP=function(){return Cr.states},rP=function(){B.info(\"Documents = \",Bu)},nP=function(){return Cr.relations};function gd(t=\"\"){let e=t;return t===pd&&(el++,e=`${l4}${el}`),e}function yd(t=\"\",e=Jo){return t===pd?l4:e}function iP(t=\"\"){let e=t;return t===c4&&(el++,e=`${u4}${el}`),e}function sP(t=\"\",e=Jo){return t===c4?u4:e}function aP(t,e,r){let n=gd(t.id),i=yd(t.id,t.type),s=gd(e.id),a=yd(e.id,e.type);Ms(n,i,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),Ms(s,a,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),Cr.relations.push({id1:n,id2:s,relationTitle:he.sanitizeText(r,$())})}const b4=function(t,e,r){if(typeof t==\"object\")aP(t,e,r);else{const n=gd(t),i=yd(t),s=iP(e),a=sP(e);Ms(n,i),Ms(s,a),Cr.relations.push({id1:n,id2:s,title:he.sanitizeText(r,$())})}},md=function(t,e){const r=Cr.states[t],n=e.startsWith(\":\")?e.replace(\":\",\"\").trim():e;r.descriptions.push(he.sanitizeText(n,$()))},oP=function(t){return t.substring(0,1)===\":\"?t.substr(2).trim():t.trim()},lP=()=>(y4++,\"divider-id-\"+y4),_4=function(t,e=\"\"){tl[t]===void 0&&(tl[t]={id:t,styles:[],textStyles:[]});const r=tl[t];e!=null&&e.split(jF).forEach(n=>{const i=n.replace(/([^;]*);/,\"$1\").trim();if(n.match(h4)){const a=i.replace(d4,qF).replace(h4,d4);r.textStyles.push(a)}r.styles.push(i)})},cP=function(){return tl},bd=function(t,e){t.split(\",\").forEach(function(r){let n=rl(r);if(n===void 0){const i=r.trim();Ms(i),n=rl(i)}n.classes.push(e)})},uP=function(t,e){const r=rl(t);r!==void 0&&r.textStyles.push(e)},hP=function(t,e){const r=rl(t);r!==void 0&&r.textStyles.push(e)},Ci={parseDirective:KF,getConfig:()=>$().state,addState:Ms,clear:m4,getState:rl,getStates:eP,getRelations:nP,getClasses:cP,getDirection:()=>p4,addRelation:b4,getDividerId:lP,setDirection:t=>{p4=t},cleanupLabel:oP,lineType:$F,relationType:XF,logDocuments:rP,getRootDoc:QF,setRootDoc:ZF,getRootDocV2:JF,extract:tP,trimColon:t=>t&&t[0]===\":\"?t.substr(1).trim():t.trim(),getAccTitle:kn,setAccTitle:nn,getAccDescription:Tn,setAccDescription:wn,addStyleClass:_4,setCssClass:bd,addDescription:md,setDiagramTitle:hi,getDiagramTitle:di},_d={},dP=(t,e)=>{_d[t]=e},fP=t=>_d[t],x4=()=>Object.keys(_d),pP={get:fP,set:dP,keys:x4,size:()=>x4().length},gP=t=>t.append(\"circle\").attr(\"class\",\"start-state\").attr(\"r\",$().state.sizeUnit).attr(\"cx\",$().state.padding+$().state.sizeUnit).attr(\"cy\",$().state.padding+$().state.sizeUnit),yP=t=>t.append(\"line\").style(\"stroke\",\"grey\").style(\"stroke-dasharray\",\"3\").attr(\"x1\",$().state.textHeight).attr(\"class\",\"divider\").attr(\"x2\",$().state.textHeight*2).attr(\"y1\",0).attr(\"y2\",0),mP=(t,e)=>{const r=t.append(\"text\").attr(\"x\",2*$().state.padding).attr(\"y\",$().state.textHeight+2*$().state.padding).attr(\"font-size\",$().state.fontSize).attr(\"class\",\"state-title\").text(e.id),n=r.node().getBBox();return t.insert(\"rect\",\":first-child\").attr(\"x\",$().state.padding).attr(\"y\",$().state.padding).attr(\"width\",n.width+2*$().state.padding).attr(\"height\",n.height+2*$().state.padding).attr(\"rx\",$().state.radius),r},bP=(t,e)=>{const r=function(p,g,b){const k=p.append(\"tspan\").attr(\"x\",2*$().state.padding).text(g);b||k.attr(\"dy\",$().state.textHeight)},i=t.append(\"text\").attr(\"x\",2*$().state.padding).attr(\"y\",$().state.textHeight+1.3*$().state.padding).attr(\"font-size\",$().state.fontSize).attr(\"class\",\"state-title\").text(e.descriptions[0]).node().getBBox(),s=i.height,a=t.append(\"text\").attr(\"x\",$().state.padding).attr(\"y\",s+$().state.padding*.4+$().state.dividerMargin+$().state.textHeight).attr(\"class\",\"state-description\");let o=!0,l=!0;e.descriptions.forEach(function(p){o||(r(a,p,l),l=!1),o=!1});const u=t.append(\"line\").attr(\"x1\",$().state.padding).attr(\"y1\",$().state.padding+s+$().state.dividerMargin/2).attr(\"y2\",$().state.padding+s+$().state.dividerMargin/2).attr(\"class\",\"descr-divider\"),d=a.node().getBBox(),f=Math.max(d.width,i.width);return u.attr(\"x2\",f+3*$().state.padding),t.insert(\"rect\",\":first-child\").attr(\"x\",$().state.padding).attr(\"y\",$().state.padding).attr(\"width\",f+2*$().state.padding).attr(\"height\",d.height+s+2*$().state.padding).attr(\"rx\",$().state.radius),t},_P=(t,e,r)=>{const n=$().state.padding,i=2*$().state.padding,s=t.node().getBBox(),a=s.width,o=s.x,l=t.append(\"text\").attr(\"x\",0).attr(\"y\",$().state.titleShift).attr(\"font-size\",$().state.fontSize).attr(\"class\",\"state-title\").text(e.id),d=l.node().getBBox().width+i;let f=Math.max(d,a);f===a&&(f=f+i);let p;const g=t.node().getBBox();e.doc,p=o-n,d>a&&(p=(a-f)/2+n),Math.abs(o-g.x)<n&&d>a&&(p=o-(d-a)/2);const b=1-$().state.textHeight;return t.insert(\"rect\",\":first-child\").attr(\"x\",p).attr(\"y\",b).attr(\"class\",r?\"alt-composit\":\"composit\").attr(\"width\",f).attr(\"height\",g.height+$().state.textHeight+$().state.titleShift+1).attr(\"rx\",\"0\"),l.attr(\"x\",p+n),d<=a&&l.attr(\"x\",o+(f-i)/2-d/2+n),t.insert(\"rect\",\":first-child\").attr(\"x\",p).attr(\"y\",$().state.titleShift-$().state.textHeight-$().state.padding).attr(\"width\",f).attr(\"height\",$().state.textHeight*3).attr(\"rx\",$().state.radius),t.insert(\"rect\",\":first-child\").attr(\"x\",p).attr(\"y\",$().state.titleShift-$().state.textHeight-$().state.padding).attr(\"width\",f).attr(\"height\",g.height+3+2*$().state.textHeight).attr(\"rx\",$().state.radius),t},xP=t=>(t.append(\"circle\").attr(\"class\",\"end-state-outer\").attr(\"r\",$().state.sizeUnit+$().state.miniPadding).attr(\"cx\",$().state.padding+$().state.sizeUnit+$().state.miniPadding).attr(\"cy\",$().state.padding+$().state.sizeUnit+$().state.miniPadding),t.append(\"circle\").attr(\"class\",\"end-state-inner\").attr(\"r\",$().state.sizeUnit).attr(\"cx\",$().state.padding+$().state.sizeUnit+2).attr(\"cy\",$().state.padding+$().state.sizeUnit+2)),vP=(t,e)=>{let r=$().state.forkWidth,n=$().state.forkHeight;if(e.parentId){let i=r;r=n,n=i}return t.append(\"rect\").style(\"stroke\",\"black\").style(\"fill\",\"black\").attr(\"width\",r).attr(\"height\",n).attr(\"x\",$().state.padding).attr(\"y\",$().state.padding)},kP=(t,e,r,n)=>{let i=0;const s=n.append(\"text\");s.style(\"text-anchor\",\"start\"),s.attr(\"class\",\"noteText\");let a=t.replace(/\\r\\n/g,\"<br/>\");a=a.replace(/\\n/g,\"<br/>\");const o=a.split(he.lineBreakRegex);let l=1.25*$().state.noteMargin;for(const u of o){const d=u.trim();if(d.length>0){const f=s.append(\"tspan\");if(f.text(d),l===0){const p=f.node().getBBox();l+=p.height}i+=l,f.attr(\"x\",e+$().state.noteMargin),f.attr(\"y\",r+i+1.25*$().state.noteMargin)}}return{textWidth:s.node().getBBox().width,textHeight:i}},wP=(t,e)=>{e.attr(\"class\",\"state-note\");const r=e.append(\"rect\").attr(\"x\",0).attr(\"y\",$().state.padding),n=e.append(\"g\"),{textWidth:i,textHeight:s}=kP(t,0,0,n);return r.attr(\"height\",s+2*$().state.noteMargin),r.attr(\"width\",i+$().state.noteMargin*2),r},v4=function(t,e){const r=e.id,n={id:r,label:e.id,width:0,height:0},i=t.append(\"g\").attr(\"id\",r).attr(\"class\",\"stateGroup\");e.type===\"start\"&&gP(i),e.type===\"end\"&&xP(i),(e.type===\"fork\"||e.type===\"join\")&&vP(i,e),e.type===\"note\"&&wP(e.note.text,i),e.type===\"divider\"&&yP(i),e.type===\"default\"&&e.descriptions.length===0&&mP(i,e),e.type===\"default\"&&e.descriptions.length>0&&bP(i,e);const s=i.node().getBBox();return n.width=s.width+2*$().state.padding,n.height=s.height+2*$().state.padding,pP.set(r,n),n};let k4=0;const TP=function(t,e,r){const n=function(l){switch(l){case Ci.relationType.AGGREGATION:return\"aggregation\";case Ci.relationType.EXTENSION:return\"extension\";case Ci.relationType.COMPOSITION:return\"composition\";case Ci.relationType.DEPENDENCY:return\"dependency\"}};e.points=e.points.filter(l=>!Number.isNaN(l.y));const i=e.points,s=Js().x(function(l){return l.x}).y(function(l){return l.y}).curve(ta),a=t.append(\"path\").attr(\"d\",s(i)).attr(\"id\",\"edge\"+k4).attr(\"class\",\"transition\");let o=\"\";if($().state.arrowMarkerAbsolute&&(o=window.location.protocol+\"//\"+window.location.host+window.location.pathname+window.location.search,o=o.replace(/\\(/g,\"\\\\(\"),o=o.replace(/\\)/g,\"\\\\)\")),a.attr(\"marker-end\",\"url(\"+o+\"#\"+n(Ci.relationType.DEPENDENCY)+\"End)\"),r.title!==void 0){const l=t.append(\"g\").attr(\"class\",\"stateLabel\"),{x:u,y:d}=ge.calcLabelPosition(e.points),f=he.getRows(r.title);let p=0;const g=[];let b=0,k=0;for(let E=0;E<=f.length;E++){const I=l.append(\"text\").attr(\"text-anchor\",\"middle\").text(f[E]).attr(\"x\",u).attr(\"y\",d+p),V=I.node().getBBox();b=Math.max(b,V.width),k=Math.min(k,V.x),B.info(V.x,u,d+p),p===0&&(p=I.node().getBBox().height,B.info(\"Title height\",p,d)),g.push(I)}let T=p*f.length;if(f.length>1){const E=(f.length-1)*p*.5;g.forEach((I,V)=>I.attr(\"y\",d+V*p-E)),T=p*f.length}const L=l.node().getBBox();l.insert(\"rect\",\":first-child\").attr(\"class\",\"box\").attr(\"x\",u-b/2-$().state.padding/2).attr(\"y\",d-T/2-$().state.padding/2-3.5).attr(\"width\",b+$().state.padding).attr(\"height\",T+$().state.padding),B.info(L)}k4++};let $r;const xd={},EP=function(){},CP=function(t){t.append(\"defs\").append(\"marker\").attr(\"id\",\"dependencyEnd\").attr(\"refX\",19).attr(\"refY\",7).attr(\"markerWidth\",20).attr(\"markerHeight\",28).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 19,7 L9,13 L14,7 L9,1 Z\")},SP=function(t,e,r,n){$r=$().state;const i=$().securityLevel;let s;i===\"sandbox\"&&(s=St(\"#i\"+e));const a=St(i===\"sandbox\"?s.nodes()[0].contentDocument.body:\"body\"),o=i===\"sandbox\"?s.nodes()[0].contentDocument:document;B.debug(\"Rendering diagram \"+t);const l=a.select(`[id='${e}']`);CP(l),new sr({multigraph:!0,compound:!0,rankdir:\"RL\"}).setDefaultEdgeLabel(function(){return{}});const d=n.db.getRootDoc();w4(d,l,void 0,!1,a,o,n);const f=$r.padding,p=l.node().getBBox(),g=p.width+f*2,b=p.height+f*2,k=g*1.75;xn(l,b,k,$r.useMaxWidth),l.attr(\"viewBox\",`${p.x-$r.padding} ${p.y-$r.padding} `+g+\" \"+b)},AP=t=>t?t.length*$r.fontSizeFactor:1,w4=(t,e,r,n,i,s,a)=>{const o=new sr({compound:!0,multigraph:!0});let l,u=!0;for(l=0;l<t.length;l++)if(t[l].stmt===\"relation\"){u=!1;break}r?o.setGraph({rankdir:\"LR\",multigraph:!0,compound:!0,ranker:\"tight-tree\",ranksep:u?1:$r.edgeLengthFactor,nodeSep:u?1:50,isMultiGraph:!0}):o.setGraph({rankdir:\"TB\",multigraph:!0,compound:!0,ranksep:u?1:$r.edgeLengthFactor,nodeSep:u?1:50,ranker:\"tight-tree\",isMultiGraph:!0}),o.setDefaultEdgeLabel(function(){return{}}),a.db.extract(t);const d=a.db.getStates(),f=a.db.getRelations(),p=Object.keys(d);for(const L of p){const E=d[L];r&&(E.parentId=r);let I;if(E.doc){let V=e.append(\"g\").attr(\"id\",E.id).attr(\"class\",\"stateGroup\");I=w4(E.doc,V,E.id,!n,i,s,a);{V=_P(V,E,n);let H=V.node().getBBox();I.width=H.width,I.height=H.height+$r.padding/2,xd[E.id]={y:$r.compositTitleSize}}}else I=v4(e,E);if(E.note){const V={descriptions:[],id:E.id+\"-note\",note:E.note,type:\"note\"},H=v4(e,V);E.note.position===\"left of\"?(o.setNode(I.id+\"-note\",H),o.setNode(I.id,I)):(o.setNode(I.id,I),o.setNode(I.id+\"-note\",H)),o.setParent(I.id,I.id+\"-group\"),o.setParent(I.id+\"-note\",I.id+\"-group\")}else o.setNode(I.id,I)}B.debug(\"Count=\",o.nodeCount(),o);let g=0;f.forEach(function(L){g++,B.debug(\"Setting edge\",L),o.setEdge(L.id1,L.id2,{relation:L,width:AP(L.title),height:$r.labelHeight*he.getRows(L.title).length,labelpos:\"c\"},\"id\"+g)}),Ea(o),B.debug(\"Graph after layout\",o.nodes());const b=e.node();o.nodes().forEach(function(L){L!==void 0&&o.node(L)!==void 0?(B.warn(\"Node \"+L+\": \"+JSON.stringify(o.node(L))),i.select(\"#\"+b.id+\" #\"+L).attr(\"transform\",\"translate(\"+(o.node(L).x-o.node(L).width/2)+\",\"+(o.node(L).y+(xd[L]?xd[L].y:0)-o.node(L).height/2)+\" )\"),i.select(\"#\"+b.id+\" #\"+L).attr(\"data-x-shift\",o.node(L).x-o.node(L).width/2),s.querySelectorAll(\"#\"+b.id+\" #\"+L+\" .divider\").forEach(I=>{const V=I.parentElement;let H=0,G=0;V&&(V.parentElement&&(H=V.parentElement.getBBox().width),G=parseInt(V.getAttribute(\"data-x-shift\"),10),Number.isNaN(G)&&(G=0)),I.setAttribute(\"x1\",0-G+8),I.setAttribute(\"x2\",H-G-8)})):B.debug(\"No Node \"+L+\": \"+JSON.stringify(o.node(L)))});let k=b.getBBox();o.edges().forEach(function(L){L!==void 0&&o.edge(L)!==void 0&&(B.debug(\"Edge \"+L.v+\" -> \"+L.w+\": \"+JSON.stringify(o.edge(L))),TP(e,o.edge(L),o.edge(L).relation))}),k=b.getBBox();const T={id:r||\"root\",label:r||\"root\",width:0,height:0};return T.width=k.width+2*$r.padding,T.height=k.height+2*$r.padding,B.debug(\"Doc rendered\",T,o),T},LP={setConf:EP,draw:SP},Ru=\"rect\",vd=\"rectWithTitle\",DP=\"start\",MP=\"end\",NP=\"divider\",BP=\"roundedWithTitle\",IP=\"note\",OP=\"noteGroup\",Ra=\"statediagram\",RP=`${Ra}-state`,T4=\"transition\",FP=\"note\",PP=`${T4} note-edge`,YP=`${Ra}-${FP}`,VP=`${Ra}-cluster`,UP=`${Ra}-cluster-alt`,E4=\"parent\",C4=\"note\",zP=\"state\",kd=\"----\",WP=`${kd}${C4}`,S4=`${kd}${E4}`,A4=\"fill:none\",L4=\"fill: #333\",D4=\"c\",M4=\"text\",N4=\"normal\";let Fu={},$i=0;const HP=function(t){const e=Object.keys(t);for(const r of e)t[r]},GP=function(t,e){B.trace(\"Extracting classes\"),e.db.clear();try{return e.parser.parse(t),e.db.extract(e.db.getRootDocV2()),e.db.getClasses()}catch(r){return r}};function qP(t){return t==null?\"\":t.classes?t.classes.join(\" \"):\"\"}function wd(t=\"\",e=0,r=\"\",n=kd){const i=r!==null&&r.length>0?`${n}${r}`:\"\";return`${zP}-${t}${i}-${e}`}const nl=(t,e,r,n,i,s)=>{const a=r.id,o=qP(n[a]);if(a!==\"root\"){let l=Ru;r.start===!0&&(l=DP),r.start===!1&&(l=MP),r.type!==Jo&&(l=r.type),Fu[a]||(Fu[a]={id:a,shape:l,description:he.sanitizeText(a,$()),classes:`${o} ${RP}`});const u=Fu[a];r.description&&(Array.isArray(u.description)?(u.shape=vd,u.description.push(r.description)):u.description.length>0?(u.shape=vd,u.description===a?u.description=[r.description]:u.description=[u.description,r.description]):(u.shape=Ru,u.description=r.description),u.description=he.sanitizeTextOrArray(u.description,$())),u.description.length===1&&u.shape===vd&&(u.shape=Ru),!u.type&&r.doc&&(B.info(\"Setting cluster for \",a,Td(r)),u.type=\"group\",u.dir=Td(r),u.shape=r.type===o4?NP:BP,u.classes=u.classes+\" \"+VP+\" \"+(s?UP:\"\"));const d={labelStyle:\"\",shape:u.shape,labelText:u.description,classes:u.classes,style:\"\",id:a,dir:u.dir,domId:wd(a,$i),type:u.type,padding:15};if(r.note){const f={labelStyle:\"\",shape:IP,labelText:r.note.text,classes:YP,style:\"\",id:a+WP+\"-\"+$i,domId:wd(a,$i,C4),type:u.type,padding:15},p={labelStyle:\"\",shape:OP,labelText:r.note.text,classes:u.classes,style:\"\",id:a+S4,domId:wd(a,$i,E4),type:\"group\",padding:0};$i++;const g=a+S4;t.setNode(g,p),t.setNode(f.id,f),t.setNode(a,d),t.setParent(a,g),t.setParent(f.id,g);let b=a,k=f.id;r.note.position===\"left of\"&&(b=f.id,k=a),t.setEdge(b,k,{arrowhead:\"none\",arrowType:\"\",style:A4,labelStyle:\"\",classes:PP,arrowheadStyle:L4,labelpos:D4,labelType:M4,thickness:N4})}else t.setNode(a,d)}e&&e.id!==\"root\"&&(B.trace(\"Setting node \",a,\" to be child of its parent \",e.id),t.setParent(a,e.id)),r.doc&&(B.trace(\"Adding nodes children \"),jP(t,r,r.doc,n,i,!s))},jP=(t,e,r,n,i,s)=>{B.trace(\"items\",r),r.forEach(a=>{switch(a.stmt){case Mu:nl(t,e,a,n,i,s);break;case Jo:nl(t,e,a,n,i,s);break;case fd:{nl(t,e,a.state1,n,i,s),nl(t,e,a.state2,n,i,s);const o={id:\"edge\"+$i,arrowhead:\"normal\",arrowTypeEnd:\"arrow_barb\",style:A4,labelStyle:\"\",label:he.sanitizeText(a.description,$()),arrowheadStyle:L4,labelpos:D4,labelType:M4,thickness:N4,classes:T4};t.setEdge(a.state1.id,a.state2.id,o,$i),$i++}break}})},Td=(t,e=WF)=>{let r=e;if(t.doc)for(let n=0;n<t.doc.length;n++){const i=t.doc[n];i.stmt===\"dir\"&&(r=i.value)}return r},$P={setConf:HP,getClasses:GP,draw:function(t,e,r,n){B.info(\"Drawing state diagram (v2)\",e),Fu={};let i=n.db.getDirection();i===void 0&&(i=a4);const{securityLevel:s,state:a}=$(),o=a.nodeSpacing||50,l=a.rankSpacing||50;B.info(n.db.getRootDocV2()),n.db.extract(n.db.getRootDocV2()),B.info(n.db.getRootDocV2());const u=n.db.getStates(),d=new sr({multigraph:!0,compound:!0}).setGraph({rankdir:Td(n.db.getRootDocV2()),nodesep:o,ranksep:l,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});nl(d,void 0,n.db.getRootDocV2(),u,n.db,!0);let f;s===\"sandbox\"&&(f=St(\"#i\"+e));const p=St(s===\"sandbox\"?f.nodes()[0].contentDocument.body:\"body\"),g=p.select(`[id=\"${e}\"]`),b=p.select(\"#\"+e+\" g\");v0(b,d,[\"barb\"],Ra,e);const k=8;ge.insertTitle(g,\"statediagramTitleText\",a.titleTopMargin,n.db.getDiagramTitle());const T=g.node().getBBox(),L=T.width+k*2,E=T.height+k*2;g.attr(\"class\",Ra);const I=g.node().getBBox();xn(g,E,L,a.useMaxWidth);const V=`${I.x-k} ${I.y-k} ${L} ${E}`;B.debug(`viewBox ${V}`),g.attr(\"viewBox\",V);const H=document.querySelectorAll('[id=\"'+e+'\"] .edgeLabel .label');for(const G of H){const Y=G.getBBox(),W=document.createElementNS(\"http://www.w3.org/2000/svg\",Ru);W.setAttribute(\"rx\",0),W.setAttribute(\"ry\",0),W.setAttribute(\"width\",Y.width),W.setAttribute(\"height\",Y.height),G.insertBefore(W,G.firstChild)}}};var Ed=function(){var t=function(k,T,L,E){for(L=L||{},E=k.length;E--;L[k[E]]=T);return L},e=[1,2],r=[1,5],n=[6,9,11,17,18,20,22,23,24,26],i=[1,15],s=[1,16],a=[1,17],o=[1,18],l=[1,19],u=[1,20],d=[1,24],f=[4,6,9,11,17,18,20,22,23,24,26],p={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,\":\":15,argDirective:16,title:17,acc_title:18,acc_title_value:19,acc_descr:20,acc_descr_value:21,acc_descr_multiline_value:22,section:23,taskName:24,taskData:25,open_directive:26,type_directive:27,arg_directive:28,close_directive:29,$accept:0,$end:1},terminals_:{2:\"error\",4:\"journey\",6:\"EOF\",9:\"SPACE\",11:\"NEWLINE\",15:\":\",17:\"title\",18:\"acc_title\",19:\"acc_title_value\",20:\"acc_descr\",21:\"acc_descr_value\",22:\"acc_descr_multiline_value\",23:\"section\",24:\"taskName\",25:\"taskData\",26:\"open_directive\",27:\"type_directive\",28:\"arg_directive\",29:\"close_directive\"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,2],[10,2],[10,1],[10,1],[10,2],[10,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(T,L,E,I,V,H,G){var Y=H.length-1;switch(V){case 1:return H[Y-1];case 3:this.$=[];break;case 4:H[Y-1].push(H[Y]),this.$=H[Y-1];break;case 5:case 6:this.$=H[Y];break;case 7:case 8:this.$=[];break;case 11:I.setDiagramTitle(H[Y].substr(6)),this.$=H[Y].substr(6);break;case 12:this.$=H[Y].trim(),I.setAccTitle(this.$);break;case 13:case 14:this.$=H[Y].trim(),I.setAccDescription(this.$);break;case 15:I.addSection(H[Y].substr(8)),this.$=H[Y].substr(8);break;case 16:I.addTask(H[Y-1],H[Y]),this.$=\"task\";break;case 18:I.parseDirective(\"%%{\",\"open_directive\");break;case 19:I.parseDirective(H[Y],\"type_directive\");break;case 20:H[Y]=H[Y].trim().replace(/'/g,'\"'),I.parseDirective(H[Y],\"arg_directive\");break;case 21:I.parseDirective(\"}%%\",\"close_directive\",\"journey\");break}},table:[{3:1,4:e,7:3,12:4,26:r},{1:[3]},t(n,[2,3],{5:6}),{3:7,4:e,7:3,12:4,26:r},{13:8,27:[1,9]},{27:[2,18]},{6:[1,10],7:21,8:11,9:[1,12],10:13,11:[1,14],12:4,17:i,18:s,20:a,22:o,23:l,24:u,26:r},{1:[2,2]},{14:22,15:[1,23],29:d},t([15,29],[2,19]),t(n,[2,8],{1:[2,1]}),t(n,[2,4]),{7:21,10:25,12:4,17:i,18:s,20:a,22:o,23:l,24:u,26:r},t(n,[2,6]),t(n,[2,7]),t(n,[2,11]),{19:[1,26]},{21:[1,27]},t(n,[2,14]),t(n,[2,15]),{25:[1,28]},t(n,[2,17]),{11:[1,29]},{16:30,28:[1,31]},{11:[2,21]},t(n,[2,5]),t(n,[2,12]),t(n,[2,13]),t(n,[2,16]),t(f,[2,9]),{14:32,29:d},{29:[2,20]},{11:[1,33]},t(f,[2,10])],defaultActions:{5:[2,18],7:[2,2],24:[2,21],31:[2,20]},parseError:function(T,L){if(L.recoverable)this.trace(T);else{var E=new Error(T);throw E.hash=L,E}},parse:function(T){var L=this,E=[0],I=[],V=[null],H=[],G=this.table,Y=\"\",W=0,N=0,D=2,w=1,v=H.slice.call(arguments,1),M=Object.create(this.lexer),m={yy:{}};for(var Q in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Q)&&(m.yy[Q]=this.yy[Q]);M.setInput(T,m.yy),m.yy.lexer=M,m.yy.parser=this,typeof M.yylloc>\"u\"&&(M.yylloc={});var x=M.yylloc;H.push(x);var ct=M.options&&M.options.ranges;typeof m.yy.parseError==\"function\"?this.parseError=m.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Dt(){var z;return z=I.pop()||M.lex()||w,typeof z!=\"number\"&&(z instanceof Array&&(I=z,z=I.pop()),z=L.symbols_[z]||z),z}for(var kt,j,ot,rt,nt={},ut,_t,K,Ot;;){if(j=E[E.length-1],this.defaultActions[j]?ot=this.defaultActions[j]:((kt===null||typeof kt>\"u\")&&(kt=Dt()),ot=G[j]&&G[j][kt]),typeof ot>\"u\"||!ot.length||!ot[0]){var P=\"\";Ot=[];for(ut in G[j])this.terminals_[ut]&&ut>D&&Ot.push(\"'\"+this.terminals_[ut]+\"'\");M.showPosition?P=\"Parse error on line \"+(W+1)+`:\n`+M.showPosition()+`\nExpecting `+Ot.join(\", \")+\", got '\"+(this.terminals_[kt]||kt)+\"'\":P=\"Parse error on line \"+(W+1)+\": Unexpected \"+(kt==w?\"end of input\":\"'\"+(this.terminals_[kt]||kt)+\"'\"),this.parseError(P,{text:M.match,token:this.terminals_[kt]||kt,line:M.yylineno,loc:x,expected:Ot})}if(ot[0]instanceof Array&&ot.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+j+\", token: \"+kt);switch(ot[0]){case 1:E.push(kt),V.push(M.yytext),H.push(M.yylloc),E.push(ot[1]),kt=null,N=M.yyleng,Y=M.yytext,W=M.yylineno,x=M.yylloc;break;case 2:if(_t=this.productions_[ot[1]][1],nt.$=V[V.length-_t],nt._$={first_line:H[H.length-(_t||1)].first_line,last_line:H[H.length-1].last_line,first_column:H[H.length-(_t||1)].first_column,last_column:H[H.length-1].last_column},ct&&(nt._$.range=[H[H.length-(_t||1)].range[0],H[H.length-1].range[1]]),rt=this.performAction.apply(nt,[Y,N,W,m.yy,ot[1],V,H].concat(v)),typeof rt<\"u\")return rt;_t&&(E=E.slice(0,-1*_t*2),V=V.slice(0,-1*_t),H=H.slice(0,-1*_t)),E.push(this.productions_[ot[1]][0]),V.push(nt.$),H.push(nt._$),K=G[E[E.length-2]][E[E.length-1]],E.push(K);break;case 3:return!0}}return!0}},g=function(){var k={EOF:1,parseError:function(L,E){if(this.yy.parser)this.yy.parser.parseError(L,E);else throw new Error(L)},setInput:function(T,L){return this.yy=L||this.yy||{},this._input=T,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var T=this._input[0];this.yytext+=T,this.yyleng++,this.offset++,this.match+=T,this.matched+=T;var L=T.match(/(?:\\r\\n?|\\n).*/g);return L?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),T},unput:function(T){var L=T.length,E=T.split(/(?:\\r\\n?|\\n)/g);this._input=T+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-L),this.offset-=L;var I=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),E.length-1&&(this.yylineno-=E.length-1);var V=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:E?(E.length===I.length?this.yylloc.first_column:0)+I[I.length-E.length].length-E[0].length:this.yylloc.first_column-L},this.options.ranges&&(this.yylloc.range=[V[0],V[0]+this.yyleng-L]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno});return this},less:function(T){this.unput(this.match.slice(T))},pastInput:function(){var T=this.matched.substr(0,this.matched.length-this.match.length);return(T.length>20?\"...\":\"\")+T.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var T=this.match;return T.length<20&&(T+=this._input.substr(0,20-T.length)),(T.substr(0,20)+(T.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var T=this.pastInput(),L=new Array(T.length+1).join(\"-\");return T+this.upcomingInput()+`\n`+L+\"^\"},test_match:function(T,L){var E,I,V;if(this.options.backtrack_lexer&&(V={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(V.yylloc.range=this.yylloc.range.slice(0))),I=T[0].match(/(?:\\r\\n?|\\n).*/g),I&&(this.yylineno+=I.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:I?I[I.length-1].length-I[I.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+T[0].length},this.yytext+=T[0],this.match+=T[0],this.matches=T,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(T[0].length),this.matched+=T[0],E=this.performAction.call(this,this.yy,this,L,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),E)return E;if(this._backtrack){for(var H in V)this[H]=V[H];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var T,L,E,I;this._more||(this.yytext=\"\",this.match=\"\");for(var V=this._currentRules(),H=0;H<V.length;H++)if(E=this._input.match(this.rules[V[H]]),E&&(!L||E[0].length>L[0].length)){if(L=E,I=H,this.options.backtrack_lexer){if(T=this.test_match(E,V[H]),T!==!1)return T;if(this._backtrack){L=!1;continue}else return!1}else if(!this.options.flex)break}return L?(T=this.test_match(L,V[I]),T!==!1?T:!1):this._input===\"\"?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. Unrecognized text.\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var L=this.next();return L||this.lex()},begin:function(L){this.conditionStack.push(L)},popState:function(){var L=this.conditionStack.length-1;return L>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(L){return L=this.conditionStack.length-1-Math.abs(L||0),L>=0?this.conditionStack[L]:\"INITIAL\"},pushState:function(L){this.begin(L)},stateStackSize:function(){return this.conditionStack.length},options:{\"case-insensitive\":!0},performAction:function(L,E,I,V){switch(I){case 0:return this.begin(\"open_directive\"),26;case 1:return this.begin(\"type_directive\"),27;case 2:return this.popState(),this.begin(\"arg_directive\"),15;case 3:return this.popState(),this.popState(),29;case 4:return 28;case 5:break;case 6:break;case 7:return 11;case 8:break;case 9:break;case 10:return 4;case 11:return 17;case 12:return this.begin(\"acc_title\"),18;case 13:return this.popState(),\"acc_title_value\";case 14:return this.begin(\"acc_descr\"),20;case 15:return this.popState(),\"acc_descr_value\";case 16:this.begin(\"acc_descr_multiline\");break;case 17:this.popState();break;case 18:return\"acc_descr_multiline_value\";case 19:return 23;case 20:return 24;case 21:return 25;case 22:return 15;case 23:return 6;case 24:return\"INVALID\"}},rules:[/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[\\n]+)/i,/^(?:\\s+)/i,/^(?:#[^\\n]*)/i,/^(?:journey\\b)/i,/^(?:title\\s[^#\\n;]+)/i,/^(?:accTitle\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*\\{\\s*)/i,/^(?:[\\}])/i,/^(?:[^\\}]*)/i,/^(?:section\\s[^#:\\n;]+)/i,/^(?:[^#:\\n;]+)/i,/^(?::[^#\\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23,24],inclusive:!0}}};return k}();p.lexer=g;function b(){this.yy={}}return b.prototype=p,p.Parser=b,new b}();Ed.parser=Ed;const XP=Ed,KP=t=>t.match(/^\\s*journey/)!==null;let Fa=\"\";const Cd=[],il=[],sl=[],ZP=function(t,e,r){ze.parseDirective(this,t,e,r)},QP=function(){Cd.length=0,il.length=0,Fa=\"\",sl.length=0,vn()},JP=function(t){Fa=t,Cd.push(t)},tY=function(){return Cd},eY=function(){let t=B4();const e=100;let r=0;for(;!t&&r<e;)t=B4(),r++;return il.push(...sl),il},rY=function(){const t=[];return il.forEach(r=>{r.people&&t.push(...r.people)}),[...new Set(t)].sort()},nY=function(t,e){const r=e.substr(1).split(\":\");let n=0,i=[];r.length===1?(n=Number(r[0]),i=[]):(n=Number(r[0]),i=r[1].split(\",\"));const s=i.map(o=>o.trim()),a={section:Fa,type:Fa,people:s,task:t,score:n};sl.push(a)},iY=function(t){const e={section:Fa,type:Fa,description:t,task:t,classes:[]};il.push(e)},B4=function(){const t=function(r){return sl[r].processed};let e=!0;for(const[r,n]of sl.entries())t(r),e=e&&n.processed;return e},I4={parseDirective:ZP,getConfig:()=>$().journey,clear:QP,setDiagramTitle:hi,getDiagramTitle:di,setAccTitle:nn,getAccTitle:kn,setAccDescription:wn,getAccDescription:Tn,addSection:JP,getSections:tY,getTasks:eY,addTask:nY,addTaskOrg:iY,getActors:function(){return rY()}},Pu=function(t,e){const r=t.append(\"rect\");return r.attr(\"x\",e.x),r.attr(\"y\",e.y),r.attr(\"fill\",e.fill),r.attr(\"stroke\",e.stroke),r.attr(\"width\",e.width),r.attr(\"height\",e.height),r.attr(\"rx\",e.rx),r.attr(\"ry\",e.ry),e.class!==void 0&&r.attr(\"class\",e.class),r},sY=function(t,e){const n=t.append(\"circle\").attr(\"cx\",e.cx).attr(\"cy\",e.cy).attr(\"class\",\"face\").attr(\"r\",15).attr(\"stroke-width\",2).attr(\"overflow\",\"visible\"),i=t.append(\"g\");i.append(\"circle\").attr(\"cx\",e.cx-15/3).attr(\"cy\",e.cy-15/3).attr(\"r\",1.5).attr(\"stroke-width\",2).attr(\"fill\",\"#666\").attr(\"stroke\",\"#666\"),i.append(\"circle\").attr(\"cx\",e.cx+15/3).attr(\"cy\",e.cy-15/3).attr(\"r\",1.5).attr(\"stroke-width\",2).attr(\"fill\",\"#666\").attr(\"stroke\",\"#666\");function s(l){const u=jh().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);l.append(\"path\").attr(\"class\",\"mouth\").attr(\"d\",u).attr(\"transform\",\"translate(\"+e.cx+\",\"+(e.cy+2)+\")\")}function a(l){const u=jh().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);l.append(\"path\").attr(\"class\",\"mouth\").attr(\"d\",u).attr(\"transform\",\"translate(\"+e.cx+\",\"+(e.cy+7)+\")\")}function o(l){l.append(\"line\").attr(\"class\",\"mouth\").attr(\"stroke\",2).attr(\"x1\",e.cx-5).attr(\"y1\",e.cy+7).attr(\"x2\",e.cx+5).attr(\"y2\",e.cy+7).attr(\"class\",\"mouth\").attr(\"stroke-width\",\"1px\").attr(\"stroke\",\"#666\")}return e.score>3?s(i):e.score<3?a(i):o(i),n},O4=function(t,e){const r=t.append(\"circle\");return r.attr(\"cx\",e.cx),r.attr(\"cy\",e.cy),r.attr(\"class\",\"actor-\"+e.pos),r.attr(\"fill\",e.fill),r.attr(\"stroke\",e.stroke),r.attr(\"r\",e.r),r.class!==void 0&&r.attr(\"class\",r.class),e.title!==void 0&&r.append(\"title\").text(e.title),r},R4=function(t,e){const r=e.text.replace(/<br\\s*\\/?>/gi,\" \"),n=t.append(\"text\");n.attr(\"x\",e.x),n.attr(\"y\",e.y),n.attr(\"class\",\"legend\"),n.style(\"text-anchor\",e.anchor),e.class!==void 0&&n.attr(\"class\",e.class);const i=n.append(\"tspan\");return i.attr(\"x\",e.x+e.textMargin*2),i.text(r),n},aY=function(t,e){function r(i,s,a,o,l){return i+\",\"+s+\" \"+(i+a)+\",\"+s+\" \"+(i+a)+\",\"+(s+o-l)+\" \"+(i+a-l*1.2)+\",\"+(s+o)+\" \"+i+\",\"+(s+o)}const n=t.append(\"polygon\");n.attr(\"points\",r(e.x,e.y,50,20,7)),n.attr(\"class\",\"labelBox\"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,R4(t,e)},oY=function(t,e,r){const n=t.append(\"g\"),i=Sd();i.x=e.x,i.y=e.y,i.fill=e.fill,i.width=r.width,i.height=r.height,i.class=\"journey-section section-type-\"+e.num,i.rx=3,i.ry=3,Pu(n,i),P4(r)(e.text,n,i.x,i.y,i.width,i.height,{class:\"journey-section section-type-\"+e.num},r,e.colour)};let F4=-1;const lY=function(t,e,r){const n=e.x+r.width/2,i=t.append(\"g\");F4++;const s=300+5*30;i.append(\"line\").attr(\"id\",\"task\"+F4).attr(\"x1\",n).attr(\"y1\",e.y).attr(\"x2\",n).attr(\"y2\",s).attr(\"class\",\"task-line\").attr(\"stroke-width\",\"1px\").attr(\"stroke-dasharray\",\"4 2\").attr(\"stroke\",\"#666\"),sY(i,{cx:n,cy:300+(5-e.score)*30,score:e.score});const a=Sd();a.x=e.x,a.y=e.y,a.fill=e.fill,a.width=r.width,a.height=r.height,a.class=\"task task-type-\"+e.num,a.rx=3,a.ry=3,Pu(i,a);let o=e.x+14;e.people.forEach(l=>{const u=e.actors[l].color,d={cx:o,cy:e.y,r:7,fill:u,stroke:\"#000\",title:l,pos:e.actors[l].position};O4(i,d),o+=10}),P4(r)(e.task,i,a.x,a.y,a.width,a.height,{class:\"task\"},r,e.colour)},cY=function(t,e){Pu(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,class:\"rect\"}).lower()},uY=function(){return{x:0,y:0,fill:void 0,\"text-anchor\":\"start\",width:100,height:100,textMargin:0,rx:0,ry:0}},Sd=function(){return{x:0,y:0,width:100,anchor:\"start\",height:100,rx:0,ry:0}},P4=function(){function t(i,s,a,o,l,u,d,f){const p=s.append(\"text\").attr(\"x\",a+l/2).attr(\"y\",o+u/2+5).style(\"font-color\",f).style(\"text-anchor\",\"middle\").text(i);n(p,d)}function e(i,s,a,o,l,u,d,f,p){const{taskFontSize:g,taskFontFamily:b}=f,k=i.split(/<br\\s*\\/?>/gi);for(let T=0;T<k.length;T++){const L=T*g-g*(k.length-1)/2,E=s.append(\"text\").attr(\"x\",a+l/2).attr(\"y\",o).attr(\"fill\",p).style(\"text-anchor\",\"middle\").style(\"font-size\",g).style(\"font-family\",b);E.append(\"tspan\").attr(\"x\",a+l/2).attr(\"dy\",L).text(k[T]),E.attr(\"y\",o+u/2).attr(\"dominant-baseline\",\"central\").attr(\"alignment-baseline\",\"central\"),n(E,d)}}function r(i,s,a,o,l,u,d,f){const p=s.append(\"switch\"),b=p.append(\"foreignObject\").attr(\"x\",a).attr(\"y\",o).attr(\"width\",l).attr(\"height\",u).attr(\"position\",\"fixed\").append(\"xhtml:div\").style(\"display\",\"table\").style(\"height\",\"100%\").style(\"width\",\"100%\");b.append(\"div\").attr(\"class\",\"label\").style(\"display\",\"table-cell\").style(\"text-align\",\"center\").style(\"vertical-align\",\"middle\").text(i),e(i,p,a,o,l,u,d,f),n(b,d)}function n(i,s){for(const a in s)a in s&&i.attr(a,s[a])}return function(i){return i.textPlacement===\"fo\"?r:i.textPlacement===\"old\"?t:e}}(),al={drawRect:Pu,drawCircle:O4,drawSection:oY,drawText:R4,drawLabel:aY,drawTask:lY,drawBackgroundRect:cY,getTextObj:uY,getNoteRect:Sd,initGraphics:function(t){t.append(\"defs\").append(\"marker\").attr(\"id\",\"arrowhead\").attr(\"refX\",5).attr(\"refY\",2).attr(\"markerWidth\",6).attr(\"markerHeight\",4).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 0,0 V 4 L6,2 Z\")}},hY=function(t){Object.keys(t).forEach(function(r){Yu[r]=t[r]})},Si={};function dY(t){const e=$().journey;let r=60;Object.keys(Si).forEach(n=>{const i=Si[n].color,s={cx:20,cy:r,r:7,fill:i,stroke:\"#000\",pos:Si[n].position};al.drawCircle(t,s);const a={x:40,y:r+7,fill:\"#666\",text:n,textMargin:e.boxTextMargin|5};al.drawText(t,a),r+=20})}const Yu=$().journey,Ns=Yu.leftMargin,fY=function(t,e,r,n){const i=$().journey;n.db.clear(),n.parser.parse(t+`\n`);const s=$().securityLevel;let a;s===\"sandbox\"&&(a=St(\"#i\"+e));const o=St(s===\"sandbox\"?a.nodes()[0].contentDocument.body:\"body\");an.init();const l=o.select(\"#\"+e);al.initGraphics(l);const u=n.db.getTasks(),d=n.db.getDiagramTitle(),f=n.db.getActors();for(const L in Si)delete Si[L];let p=0;f.forEach(L=>{Si[L]={color:i.actorColours[p%i.actorColours.length],position:p},p++}),dY(l),an.insert(0,0,Ns,Object.keys(Si).length*50),pY(l,u,0);const g=an.getBounds();d&&l.append(\"text\").text(d).attr(\"x\",Ns).attr(\"font-size\",\"4ex\").attr(\"font-weight\",\"bold\").attr(\"y\",25);const b=g.stopy-g.starty+2*i.diagramMarginY,k=Ns+g.stopx+2*i.diagramMarginX;xn(l,b,k,i.useMaxWidth),l.append(\"line\").attr(\"x1\",Ns).attr(\"y1\",i.height*4).attr(\"x2\",k-Ns-4).attr(\"y2\",i.height*4).attr(\"stroke-width\",4).attr(\"stroke\",\"black\").attr(\"marker-end\",\"url(#arrowhead)\");const T=d?70:0;l.attr(\"viewBox\",`${g.startx} -25 ${k} ${b+T}`),l.attr(\"preserveAspectRatio\",\"xMinYMin meet\"),l.attr(\"height\",b+T+25)},an={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},updateVal:function(t,e,r,n){t[e]===void 0?t[e]=r:t[e]=n(r,t[e])},updateBounds:function(t,e,r,n){const i=$().journey,s=this;let a=0;function o(l){return function(d){a++;const f=s.sequenceItems.length-a+1;s.updateVal(d,\"starty\",e-f*i.boxMargin,Math.min),s.updateVal(d,\"stopy\",n+f*i.boxMargin,Math.max),s.updateVal(an.data,\"startx\",t-f*i.boxMargin,Math.min),s.updateVal(an.data,\"stopx\",r+f*i.boxMargin,Math.max),l!==\"activation\"&&(s.updateVal(d,\"startx\",t-f*i.boxMargin,Math.min),s.updateVal(d,\"stopx\",r+f*i.boxMargin,Math.max),s.updateVal(an.data,\"starty\",e-f*i.boxMargin,Math.min),s.updateVal(an.data,\"stopy\",n+f*i.boxMargin,Math.max))}}this.sequenceItems.forEach(o())},insert:function(t,e,r,n){const i=Math.min(t,r),s=Math.max(t,r),a=Math.min(e,n),o=Math.max(e,n);this.updateVal(an.data,\"startx\",i,Math.min),this.updateVal(an.data,\"starty\",a,Math.min),this.updateVal(an.data,\"stopx\",s,Math.max),this.updateVal(an.data,\"stopy\",o,Math.max),this.updateBounds(i,a,s,o)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}},Ad=Yu.sectionFills,Y4=Yu.sectionColours,pY=function(t,e,r){const n=$().journey;let i=\"\";const s=n.height*2+n.diagramMarginY,a=r+s;let o=0,l=\"#CCC\",u=\"black\",d=0;for(const[f,p]of e.entries()){if(i!==p.section){l=Ad[o%Ad.length],d=o%Ad.length,u=Y4[o%Y4.length];const b={x:f*n.taskMargin+f*n.width+Ns,y:50,text:p.section,fill:l,num:d,colour:u};al.drawSection(t,b,n),i=p.section,o++}const g=p.people.reduce((b,k)=>(Si[k]&&(b[k]=Si[k]),b),{});p.x=f*n.taskMargin+f*n.width+Ns,p.y=a,p.width=n.diagramMarginX,p.height=n.diagramMarginY,p.colour=u,p.fill=l,p.num=d,p.actors=g,al.drawTask(t,p,n),an.insert(p.x,p.y,p.x+p.width+n.taskMargin,300+5*30)}},V4={setConf:hY,draw:fY};let U4={};const Ld={setConf:function(t){U4={...U4,...t}},draw:(t,e,r)=>{try{B.debug(`Renering svg for syntax error\n`);const n=St(\"#\"+e),i=n.append(\"g\");i.append(\"path\").attr(\"class\",\"error-icon\").attr(\"d\",\"m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z\"),i.append(\"path\").attr(\"class\",\"error-icon\").attr(\"d\",\"m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z\"),i.append(\"path\").attr(\"class\",\"error-icon\").attr(\"d\",\"m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z\"),i.append(\"path\").attr(\"class\",\"error-icon\").attr(\"d\",\"m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z\"),i.append(\"path\").attr(\"class\",\"error-icon\").attr(\"d\",\"m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z\"),i.append(\"path\").attr(\"class\",\"error-icon\").attr(\"d\",\"m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z\"),i.append(\"text\").attr(\"class\",\"error-text\").attr(\"x\",1440).attr(\"y\",250).attr(\"font-size\",\"150px\").style(\"text-anchor\",\"middle\").text(\"Syntax error in graph\"),i.append(\"text\").attr(\"class\",\"error-text\").attr(\"x\",1250).attr(\"y\",400).attr(\"font-size\",\"100px\").style(\"text-anchor\",\"middle\").text(\"mermaid version \"+r),n.attr(\"height\",100),n.attr(\"width\",500),n.attr(\"viewBox\",\"768 0 912 512\")}catch(n){B.error(\"Error while rendering info diagram\"),B.error(UT(n))}}};let z4=!1;const ol=()=>{z4||(z4=!0,yr(\"error\",{db:{clear:()=>{}},styles:eg,renderer:Ld,parser:{parser:{yy:{}},parse:()=>{}},init:()=>{}},t=>t.toLowerCase().trim()===\"error\"),yr(\"c4\",{parser:HE,db:xg,renderer:Lg,styles:lg,init:t=>{Lg.setConf(t.c4)}},GE),yr(\"class\",{parser:Dg,db:fa,renderer:dB,styles:go,init:t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,fa.clear()}},MC),yr(\"classDiagram\",{parser:Dg,db:fa,renderer:uI,styles:go,init:t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,fa.clear()}},NC),yr(\"er\",{parser:hI,db:yI,renderer:DI,styles:tg},dI),yr(\"gantt\",{parser:XO,db:Z0,renderer:SR,styles:rg},KO),yr(\"info\",{parser:AR,db:LR,renderer:DR,styles:ng},MR),yr(\"pie\",{parser:NR,db:IR,renderer:OR,styles:ig},BR),yr(\"requirement\",{parser:RR,db:PR,renderer:GR,styles:sg},FR),yr(\"sequence\",{parser:qR,db:j3,renderer:i4,styles:ag,init:t=>{if(t.sequence||(t.sequence={}),t.sequence.arrowMarkerAbsolute=t.arrowMarkerAbsolute,\"sequenceDiagram\"in t)throw new Error(\"`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.\");j3.setWrap(t.wrap),i4.setConf(t.sequence)}},jR),yr(\"state\",{parser:s4,db:Ci,renderer:LP,styles:Lc,init:t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,Ci.clear()}},UF),yr(\"stateDiagram\",{parser:s4,db:Ci,renderer:$P,styles:Lc,init:t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,Ci.clear()}},zF),yr(\"journey\",{parser:XP,db:I4,renderer:V4,styles:og,init:t=>{V4.setConf(t.journey),I4.clear()}},KP),yr(\"flowchart\",{parser:jm,db:vi,renderer:Y0,styles:Ac,init:t=>{t.flowchart||(t.flowchart={}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,jO.setConf(t.flowchart),vi.clear(),vi.setGen(\"gen-1\")}},MI),yr(\"flowchart-v2\",{parser:jm,db:vi,renderer:Y0,styles:Ac,init:t=>{t.flowchart||(t.flowchart={}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,Xp({flowchart:{arrowMarkerAbsolute:t.arrowMarkerAbsolute}}),Y0.setConf(t.flowchart),vi.clear(),vi.setGen(\"gen-2\")}},NI),yr(\"gitGraph\",{parser:gE,db:OE,renderer:zE,styles:WE},yE))};class Dd{constructor(e,r){za(this,\"type\",\"graph\");za(this,\"parser\");za(this,\"renderer\");za(this,\"db\");za(this,\"detectTypeFailed\",!1);var a,o;this.txt=e;const n=$();this.txt=e;try{this.type=h1(e,n)}catch(l){this.handleError(l,r),this.type=\"error\",this.detectTypeFailed=!0}const i=ug(this.type);B.debug(\"Type \"+this.type),this.db=i.db,(o=(a=this.db).clear)==null||o.call(a),this.renderer=i.renderer,this.parser=i.parser;const s=this.parser.parse.bind(this.parser);this.parser.parse=l=>s(_7(l,this.db)),this.parser.parser.yy=this.db,i.init&&(i.init(n),B.debug(\"Initialized diagram \"+this.type,n)),this.txt+=`\n`,this.parse(this.txt,r)}parse(e,r){var n,i;if(this.detectTypeFailed)return!1;try{return e=e+`\n`,(i=(n=this.db).clear)==null||i.call(n),this.parser.parse(e),!0}catch(s){this.handleError(s,r)}return!1}handleError(e,r){if(r===void 0)throw e;if(m1(e)){r(e.str,e.hash);return}r(e)}getParser(){return this.parser}getType(){return this.type}}const Md=(t,e)=>{const r=h1(t,$());try{ug(r)}catch{const i=k7(r);if(!i)throw new Error(`Diagram ${r} not found.`);return i().then(({diagram:s})=>(yr(r,s,void 0),new Dd(t,e)))}return new Dd(t,e)},Nd=Dd;function gY(t,e){wa(e)||t.attr(\"aria-roledescription\",e)}function yY(t,e,r,n){if(t.insert!==void 0)if(e||r){if(r){const i=\"chart-desc-\"+n;t.attr(\"aria-describedby\",i),t.insert(\"desc\",\":first-child\").attr(\"id\",i).text(r)}if(e){const i=\"chart-title-\"+n;t.attr(\"aria-labelledby\",i),t.insert(\"title\",\":first-child\").attr(\"id\",i).text(e)}}else return}const Bd=[\"graph\",\"flowchart\",\"flowchart-v2\",\"stateDiagram\",\"stateDiagram-v2\"],W4=\"graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa\",H4=\"sandbox\",G4=\"loose\",mY=\"http://www.w3.org/2000/svg\",q4=\"http://www.w3.org/1999/xlink\",j4=\"http://www.w3.org/1999/xhtml\",bY=\"100%\",_Y=\"100%\",xY=\"border:0;margin:0;\",vY=\"margin:0\",kY=\"allow-top-navigation-by-user-activation allow-popups\",wY='The \"iframe\" tag is not supported by your browser.',$4=[\"foreignobject\"],X4=[\"dominant-baseline\"];function TY(t,e){return ol(),new Nd(t,e).parse(t,e)}async function EY(t,e){return ol(),(await Md(t,e)).parse(t,e)}const K4=function(t){let e=t;return e=e.replace(/style.*:\\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),e=e.replace(/classDef.*:\\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),e=e.replace(/#\\w+;/g,function(r){const n=r.substring(1,r.length-1);return/^\\+?\\d+$/.test(n)?\"\\uFB02\\xB0\\xB0\"+n+\"\\xB6\\xDF\":\"\\uFB02\\xB0\"+n+\"\\xB6\\xDF\"}),e},Id=function(t){let e=t;return e=e.replace(/fl°°/g,\"&#\"),e=e.replace(/fl°/g,\"&\"),e=e.replace(/¶ß/g,\";\"),e},Z4=(t,e,r=[])=>`\n.${t} ${e} { ${r.join(\" !important; \")} !important; }`,CY=(t,e,r={})=>{var i;let n=\"\";if(t.themeCSS!==void 0&&(n+=`\n${t.themeCSS}`),t.fontFamily!==void 0&&(n+=`\n:root { --mermaid-font-family: ${t.fontFamily}}`),t.altFontFamily!==void 0&&(n+=`\n:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),!wa(r)&&Bd.includes(e)){const l=t.htmlLabels||((i=t.flowchart)==null?void 0:i.htmlLabels)?[\"> *\",\"span\"]:[\"rect\",\"polygon\",\"ellipse\",\"circle\",\"path\"];for(const u in r){const d=r[u];wa(d.styles)||l.forEach(f=>{n+=Z4(d.id,f,d.styles)}),wa(d.textStyles)||(n+=Z4(d.id,\"tspan\",d.textStyles))}}return n},Q4=(t,e,r,n)=>{const i=CY(t,e,r),s=hE(e,i,t.themeVariables);return T1(tE(`${n}{${s}}`),rE)},J4=(t=\"\",e,r)=>{let n=t;return!r&&!e&&(n=n.replace(/marker-end=\"url\\(.*?#/g,'marker-end=\"url(#')),n=Id(n),n=n.replace(/<br>/g,\"<br/>\"),n},tb=(t=\"\",e)=>{const r=e?e.viewBox.baseVal.height+\"px\":_Y,n=btoa('<body style=\"'+vY+'\">'+t+\"</body>\");return`<iframe style=\"width:${bY};height:${r};${xY}\" src=\"data:text/html;base64,${n}\" sandbox=\"${kY}\">\n ${wY}\n</iframe>`},Vu=(t,e,r,n,i)=>{const s=t.append(\"div\");s.attr(\"id\",r),n&&s.attr(\"style\",n);const a=s.append(\"svg\").attr(\"id\",e).attr(\"width\",\"100%\").attr(\"xmlns\",mY);return i&&a.attr(\"xmlns:xlink\",i),a.append(\"g\"),t};function Uu(t,e){return t.append(\"iframe\").attr(\"id\",e).attr(\"style\",\"width: 100%; height: 100%;\").attr(\"sandbox\",\"\")}const eb=(t,e,r,n)=>{var i,s,a;(i=t.getElementById(e))==null||i.remove(),(s=t.getElementById(r))==null||s.remove(),(a=t.getElementById(n))==null||a.remove()},SY=function(t,e,r,n){var m,Q,x,ct,Dt;ol(),po();const i=ge.detectInit(e);i&&(bs(i),E1(i));const s=$();B.debug(s),e.length>((m=s==null?void 0:s.maxTextSize)!=null?m:5e4)&&(e=W4),e=e.replace(/\\r\\n?/g,`\n`);const a=\"#\"+t,o=\"i\"+t,l=\"#\"+o,u=\"d\"+t,d=\"#\"+u;let f=St(\"body\");const p=s.securityLevel===H4,g=s.securityLevel===G4,b=s.fontFamily;if(n!==void 0){if(n&&(n.innerHTML=\"\"),p){const kt=Uu(St(n),o);f=St(kt.nodes()[0].contentDocument.body),f.node().style.margin=0}else f=St(n);Vu(f,t,u,`font-family: ${b}`,q4)}else{if(eb(document,t,u,o),p){const kt=Uu(St(\"body\"),o);f=St(kt.nodes()[0].contentDocument.body),f.node().style.margin=0}else f=St(\"body\");Vu(f,t,u)}e=K4(e);let k,T;try{if(k=Md(e),\"then\"in k)throw new Error(\"Diagram is a promise. Use renderAsync.\")}catch(kt){k=new Nd(\"error\"),T=kt}const L=f.select(d).node(),E=k.type,I=L.firstChild,V=I.firstChild,H=Bd.includes(E)?k.renderer.getClasses(e,k):{},G=Q4(s,E,H,a),Y=document.createElement(\"style\");Y.innerHTML=G,I.insertBefore(Y,V);try{k.renderer.draw(e,t,Ec.version,k)}catch(kt){throw Ld.draw(e,t,Ec.version),kt}const W=f.select(`${d} svg`),N=(x=(Q=k.db).getAccTitle)==null?void 0:x.call(Q),D=(Dt=(ct=k.db).getAccDescription)==null?void 0:Dt.call(ct);rb(E,W,N,D),f.select(`[id=\"${t}\"]`).selectAll(\"foreignobject > *\").attr(\"xmlns\",j4);let w=f.select(d).node().innerHTML;if(B.debug(\"config.arrowMarkerAbsolute\",s.arrowMarkerAbsolute),w=J4(w,p,pr(s.arrowMarkerAbsolute)),p){const kt=f.select(d+\" svg\").node();w=tb(w,kt)}else g||(w=io.sanitize(w,{ADD_TAGS:$4,ADD_ATTR:X4}));if(r!==void 0)switch(E){case\"flowchart\":case\"flowchart-v2\":r(w,vi.bindFunctions);break;case\"gantt\":r(w,Z0.bindFunctions);break;case\"class\":case\"classDiagram\":r(w,fa.bindFunctions);break;default:r(w)}else B.debug(\"CB = undefined!\");$3();const M=St(p?l:d).node();if(M&&\"remove\"in M&&M.remove(),T)throw T;return w},AY=async function(t,e,r,n){var m,Q,x,ct,Dt;ol(),po();const i=ge.detectInit(e);i&&(bs(i),E1(i));const s=$();B.debug(s),e.length>((m=s==null?void 0:s.maxTextSize)!=null?m:5e4)&&(e=W4),e=e.replace(/\\r\\n?/g,`\n`);const a=\"#\"+t,o=\"i\"+t,l=\"#\"+o,u=\"d\"+t,d=\"#\"+u;let f=St(\"body\");const p=s.securityLevel===H4,g=s.securityLevel===G4,b=s.fontFamily;if(n!==void 0){if(n&&(n.innerHTML=\"\"),p){const kt=Uu(St(n),o);f=St(kt.nodes()[0].contentDocument.body),f.node().style.margin=0}else f=St(n);Vu(f,t,u,`font-family: ${b}`,q4)}else{if(eb(document,t,u,o),p){const kt=Uu(St(\"body\"),o);f=St(kt.nodes()[0].contentDocument.body),f.node().style.margin=0}else f=St(\"body\");Vu(f,t,u)}e=K4(e);let k,T;try{k=await Md(e)}catch(kt){k=new Nd(\"error\"),T=kt}const L=f.select(d).node(),E=k.type,I=L.firstChild,V=I.firstChild,H=Bd.includes(E)?k.renderer.getClasses(e,k):{},G=Q4(s,E,H,a),Y=document.createElement(\"style\");Y.innerHTML=G,I.insertBefore(Y,V);try{await k.renderer.draw(e,t,Ec.version,k)}catch(kt){throw Ld.draw(e,t,Ec.version),kt}const W=f.select(`${d} svg`),N=(x=(Q=k.db).getAccTitle)==null?void 0:x.call(Q),D=(Dt=(ct=k.db).getAccDescription)==null?void 0:Dt.call(ct);rb(E,W,N,D),f.select(`[id=\"${t}\"]`).selectAll(\"foreignobject > *\").attr(\"xmlns\",j4);let w=f.select(d).node().innerHTML;if(B.debug(\"config.arrowMarkerAbsolute\",s.arrowMarkerAbsolute),w=J4(w,p,pr(s.arrowMarkerAbsolute)),p){const kt=f.select(d+\" svg\").node();w=tb(w,kt)}else g||(w=io.sanitize(w,{ADD_TAGS:$4,ADD_ATTR:X4}));if(r!==void 0)switch(E){case\"flowchart\":case\"flowchart-v2\":r(w,vi.bindFunctions);break;case\"gantt\":r(w,Z0.bindFunctions);break;case\"class\":case\"classDiagram\":r(w,fa.bindFunctions);break;default:r(w)}else B.debug(\"CB = undefined!\");$3();const M=St(p?l:d).node();if(M&&\"remove\"in M&&M.remove(),T)throw T;return w};let Bs={};const LY=function(t,e,r,n){try{if(e!==void 0)switch(e=e.trim(),r){case\"open_directive\":Bs={};break;case\"type_directive\":if(!Bs)throw new Error(\"currentDirective is undefined\");Bs.type=e.toLowerCase();break;case\"arg_directive\":if(!Bs)throw new Error(\"currentDirective is undefined\");Bs.args=JSON.parse(e);break;case\"close_directive\":DY(t,Bs,n),Bs=void 0;break}}catch(i){B.error(`Error while rendering sequenceDiagram directive: ${e} jison context: ${r}`),B.error(i.message)}},DY=function(t,e,r){switch(B.debug(`Directive type=${e.type} with args:`,e.args),e.type){case\"init\":case\"initialize\":{[\"config\"].forEach(n=>{e.args[n]!==void 0&&(r===\"flowchart-v2\"&&(r=\"flowchart\"),e.args[r]=e.args[n],delete e.args[n])}),B.debug(\"sanitize in handleDirective\",e.args),bs(e.args),B.debug(\"sanitize in handleDirective (done)\",e.args),E1(e.args);break}case\"wrap\":case\"nowrap\":t&&t.setWrap&&t.setWrap(e.type===\"wrap\");break;case\"themeCss\":B.warn(\"themeCss encountered\");break;default:B.warn(`Unhandled directive: source: '%%{${e.type}: ${JSON.stringify(e.args?e.args:{})}}%%`,e);break}};function MY(t={}){var r;(t==null?void 0:t.fontFamily)&&!((r=t.themeVariables)!=null&&r.fontFamily)&&(t.themeVariables={fontFamily:t.fontFamily}),iE(t),(t==null?void 0:t.theme)&&t.theme in oi?t.themeVariables=oi[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=oi.default.getThemeVariables(t.themeVariables));const e=typeof t==\"object\"?nE(t):$p();Qu(e.logLevel),ol()}function rb(t,e,r,n){gY(e,t),yY(e,r,n,e.attr(\"id\"))}const ze=Object.freeze({render:SY,renderAsync:AY,parse:TY,parseAsync:EY,parseDirective:LY,initialize:MY,getConfig:$,setConfig:Xp,getSiteConfig:$p,updateSiteConfig:sE,reset:()=>{po()},globalReset:()=>{po(ha)},defaultConfig:ha});Qu($().logLevel),po($());let nb=!1;const NY=async function(t,e,r){try{nb?await ab(t,e,r):sb(t,e,r)}catch(n){B.warn(\"Syntax Error rendering\"),m1(n)&&B.warn(n.str),on.parseError&&on.parseError(n)}},ib=(t,e,r)=>{B.warn(t),m1(t)?(r&&r(t.str,t.hash),e.push({...t,message:t.str,error:t})):(r&&r(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},sb=function(t,e,r){const n=ze.getConfig();t&&(on.sequenceConfig=t),B.debug(`${r?\"\":\"No \"}Callback function found`);let i;if(e===void 0)i=document.querySelectorAll(\".mermaid\");else if(typeof e==\"string\")i=document.querySelectorAll(e);else if(e instanceof HTMLElement)i=[e];else if(e instanceof NodeList)i=e;else throw new Error(\"Invalid argument nodes for mermaid.init\");B.debug(`Found ${i.length} diagrams`),(t==null?void 0:t.startOnLoad)!==void 0&&(B.debug(\"Start On Load: \"+(t==null?void 0:t.startOnLoad)),ze.updateSiteConfig({startOnLoad:t==null?void 0:t.startOnLoad}));const s=new ge.initIdGenerator(n.deterministicIds,n.deterministicIDSeed);let a;const o=[];for(const l of Array.from(i)){B.info(\"Rendering diagram: \"+l.id);/*! Check if previously processed */if(l.getAttribute(\"data-processed\"))continue;l.setAttribute(\"data-processed\",\"true\");const u=`mermaid-${s.next()}`;a=l.innerHTML,a=ge.entityDecode(a).trim().replace(/<br\\s*\\/?>/gi,\"<br/>\");const d=ge.detectInit(a);d&&B.debug(\"Detected early reinit: \",d);try{ze.render(u,a,(f,p)=>{l.innerHTML=f,r!==void 0&&r(u),p&&p(l)},l)}catch(f){ib(f,o,on.parseError)}}if(o.length>0)throw o[0]},BY=t=>{for(const{id:e,detector:r,loader:n}of t)Lp(e,r,n)},IY=async t=>{B.debug(`Loading ${t.length} external diagrams`);const r=(await Promise.allSettled(t.map(async({id:n,detector:i,loader:s})=>{const{diagram:a}=await s();yr(n,a,i)}))).filter(n=>n.status===\"rejected\");if(r.length>0){B.error(`Failed to load ${r.length} external diagrams`);for(const n of r)B.error(n);throw new Error(`Failed to load ${r.length} external diagrams`)}},ab=async function(t,e,r){const n=ze.getConfig();t&&(on.sequenceConfig=t),B.debug(`${r?\"\":\"No \"}Callback function found`);let i;if(e===void 0)i=document.querySelectorAll(\".mermaid\");else if(typeof e==\"string\")i=document.querySelectorAll(e);else if(e instanceof HTMLElement)i=[e];else if(e instanceof NodeList)i=e;else throw new Error(\"Invalid argument nodes for mermaid.init\");B.debug(`Found ${i.length} diagrams`),(t==null?void 0:t.startOnLoad)!==void 0&&(B.debug(\"Start On Load: \"+(t==null?void 0:t.startOnLoad)),ze.updateSiteConfig({startOnLoad:t==null?void 0:t.startOnLoad}));const s=new ge.initIdGenerator(n.deterministicIds,n.deterministicIDSeed);let a;const o=[];for(const l of Array.from(i)){B.info(\"Rendering diagram: \"+l.id);/*! Check if previously processed */if(l.getAttribute(\"data-processed\"))continue;l.setAttribute(\"data-processed\",\"true\");const u=`mermaid-${s.next()}`;a=l.innerHTML,a=ge.entityDecode(a).trim().replace(/<br\\s*\\/?>/gi,\"<br/>\");const d=ge.detectInit(a);d&&B.debug(\"Detected early reinit: \",d);try{await ze.renderAsync(u,a,(f,p)=>{l.innerHTML=f,r!==void 0&&r(u),p&&p(l)},l)}catch(f){ib(f,o,on.parseError)}}if(o.length>0)throw o[0]},OY=function(t){ze.initialize(t)},RY=async(t,{lazyLoad:e=!0}={})=>{e?BY(t):await IY(t),nb=!0},ob=function(){if(on.startOnLoad){const{startOnLoad:t}=ze.getConfig();t&&on.init()}};if(typeof document<\"u\"){/*!\n * Wait for document loaded before starting the execution\n */window.addEventListener(\"load\",ob,!1)}const FY=function(t){on.parseError=t},PY=t=>ze.parse(t,on.parseError),zu=[];let Od=!1;const lb=async()=>{if(!Od){for(Od=!0;zu.length>0;){const t=zu.shift();if(t)try{await t()}catch(e){B.error(\"Error executing queue\",e)}}Od=!1}},YY=t=>new Promise((e,r)=>{const n=()=>new Promise((i,s)=>{ze.parseAsync(t,on.parseError).then(a=>{i(a),e(a)},a=>{B.error(\"Error parsing\",a),s(a),r(a)})});zu.push(n),lb()}),VY=(t,e,r,n)=>new Promise((i,s)=>{const a=()=>new Promise((o,l)=>{ze.renderAsync(t,e,r,n).then(u=>{o(u),i(u)},u=>{B.error(\"Error parsing\",u),l(u),s(u)})});zu.push(a),lb()}),on={startOnLoad:!0,diagrams:{},mermaidAPI:ze,parse:PY,parseAsync:YY,render:ze.render,renderAsync:VY,init:NY,initThrowsErrors:sb,initThrowsErrorsAsync:ab,registerExternalDiagrams:RY,initialize:OY,parseError:void 0,contentLoaded:ob,setParseErrorHandler:FY};return on});\n//# sourceMappingURL=mermaid.min.js.map","module-type":"library","type":"application/javascript"},"$:/plugins/orange/mermaid-tw5/readme":{"title":"$:/plugins/orange/mermaid-tw5/readme","text":"This is a TiddlyWiki plugin for using [[mermaid.js|https://github.com/mermaid-js/mermaid]]. It is completely self-contained, and doesn't need an Internet connection in order to work. It works both in the browser and under Node.js. It is currently based on [[mermaid.js 9.3.0|https://github.com/mermaid-js/mermaid/releases/tag/v9.3.0]]\n\n\n!Installation\n\nYou can drag the plugin link into your TiddlyWiki to install, from http://efurlanm.github.io/mermaid-tw5\n\n\n!Info\n\nThe Mermaid TW5 Plugin is based on:\n\n* http://github.com/gt6796c/mermaid-tw5\n* http://github.com/jasonmhoule/tw5-mermaid\n* http://github.com/cedarvera/mermaid-tw5\n* http://github.com/jceb/mermaid-tw5\n* https://github.com/mermaid-js/mermaid\n* and others\n\nThere is a [[post|https://talk.tiddlywiki.org/t/mermaid-tw5-plugin-update-to-mermaid-8-13-2/1117]] on the TiddlyWiki 5 Discourse discussion group for end users, regarding this plugin.\n"},"$:/plugins/orange/mermaid-tw5/typed-parser.js":{"title":"$:/plugins/orange/mermaid-tw5/typed-parser.js","text":"/*\ntitle: $:/plugins/orange/mermaid-tw5/typed-parser.js\ntype: application/javascript\nmodule-type: parser\nauthor: Nathaniel Jones 2017-05-26\nmodified: E Furlan 2022-05-08\n\nThis parser wraps unadorned railroad syntax into a railroad widget\n\n*/\n(function() {\n // jslint node: true, browser: true\n // global $tw: false\n 'use strict';\n let MermaidParser = function(type, text, options) {\n let element = {\n type: \"mermaid\",\n tag: \"$mermaid\",\n text: text\n };\n this.tree = [element];\n };\n exports[\"text/vnd.tiddlywiki.mermaid\"] = MermaidParser;\n})();\n","module-type":"parser","type":"application/javascript"},"$:/plugins/orange/mermaid-tw5/usage":{"title":"$:/plugins/orange/mermaid-tw5/usage","text":"!mermaid\n\nUse the ``<$mermaid>`` widget and place the mermaid commands within it. Any of the options that can be specified\nin the ``.render()`` options variable can be specified as JSON-encoded values in attributes of the same name on the widgets.\nThe values of the attributes can also be the title of Data Tiddlers and the values will be used from the referenced Tiddler.\nYou can set the type of a Tiddler to text/vnd.tiddlywiki.mermaid and use the native commands directly in the Tiddler body. You can\nadd fields that are the names below prefixed with 'mermaid'. So \"theme\" becomes \"mermaid-theme\"\n\n!Troubleshooting\n\n*When in doubt, please create a test case by creating a tiddler that has ``type=text/vnd.tiddlywiki.mermaid`` and contains ''only'' mermaid commands, (no TW markup or other contents)\n*TW treats any text inside of a Tiddler designated as a \"normal Twiddler\" (meaning type=text/vnd.tiddlywiki) as Tiddler Markup. Full stop. I've put into place some \"unparsing\" but it is twitchy difficult to maintain and buggy. So if you have cool, advanced uses of mermaid that fail in the ``<$mermaid>`` tag but work on with the type setup as mermaid, then that is probably the best you're going to get\n*As much as I'd like to make this not be this way, it just isn't possible with my skills/understanding\n*JSON encoding only allows double-quotes ``\"`` as string delimiters\n*JSON encoding requires double-quotes around single string values\n"},"$:/plugins/orange/mermaid-tw5/widget-tools.js":{"title":"$:/plugins/orange/mermaid-tw5/widget-tools.js","text":"/*\ntitle: $:/plugins/orange/mermaid-tw5/widget-tools.js\ntype: application/javascript\nauthor: Nathaniel Jones 2017-05-26\nmodified: E Furlan 2022-05-08\n*/\n(function() {\n \"use strict\";\n\n function Rocklib() {\n this.uniqueID = 1;\n this.hue = .2;\n };\n // tries to un-parse the wikitext. of dubious value\n Rocklib.prototype.getScriptBody = function(src, attr) {\n var scriptBody = src.getAttribute(attr, src\n .parseTreeNode.text || \"\");\n if (src.parseTreeNode.text) {\n scriptBody = src.parseTreeNode.text;\n } else if (src.parseTreeNode.children) {\n var kids = src.parseTreeNode.children;\n for (var k in kids) {\n var kk = kids[k];\n switch (kk.type) {\n // no wikiparsing found\n case \"text\":\n scriptBody += kk.text;\n break;\n // internal link, make it a permalink reference\n case \"link\":\n scriptBody += \"#\" + kk.children[0].text;\n break;\n // -- gets interpreted as an HTML element, we\n // don't want that\n case \"entity\":\n switch (kk.entity) {\n case \"–\":\n scriptBody += \"--\";\n break;\n };\n break;\n // just re-write it back out\n case \"element\":\n switch (kk.tag) {\n case \"a\":\n scriptBody += kk.children[0]\n .text;\n }\n };\n }\n }\n return scriptBody;\n };\n /*\n Runs through lots of ways to get options. It can pull them from a\n named data Tiddler, from the fields of the Tiddler, and from the\n attributes of the widget specified by 'tag'. Any value pulled is\n treated as JSON first and then as straight text.\n @param src\n @param tag\n @param options\n @returns {*}\n */\n Rocklib.prototype.getOptions = function(src, tag, options) {\n try {\n // try to set options from fields on tiddler first\n // [tag-xxx]\n var tt = src.getVariable('currentTiddler');\n if (tt) {\n var t = src.wiki.getTiddler(tt);\n if (t) {\n // this looks for fields that start with our tag\n // and then maps a.x to aX since something is\n // unCamelCasing the vars\n for (var f in t.fields) {\n var fi = f.indexOf(tag);\n if (fi != 0) continue;\n var k = f.substring(tag.length + 1);\n var cap = k.indexOf(\".\");\n while (cap > -1) {\n if (k.length < cap + 2) break;\n k = k.substring(0, cap) + k.charAt(\n cap + 1)\n .toUpperCase() + k.substring(\n cap + 2);\n cap = k.indexOf(\".\");\n }\n var v = t.fields[f];\n // try as JSON\n try {\n options[k] = JSON.parse(v);\n }\n // last attempt is just a string\n catch (ex) {\n options[k] = v;\n }\n }\n }\n }\n // treat any attributes as JSON representations of options\n // for the object\n for (var att in src.attributes) {\n var attval = src.getAttribute(att);\n // allow for data from named tiddlers\n if ($tw.wiki.tiddlerExists(attval)) {\n var data = $tw.wiki.getTiddlerData(attval);\n options[att] = data;\n } else {\n // try as JSON\n try {\n options[att] = JSON.parse(attval);\n }\n // last attempt is just a string\n catch (ex) {\n options[att] = attval;\n }\n }\n }\n } catch (ex) {\n console.error(ex);\n }\n return options;\n };\n /*\n Retrieves a canvas to work with based on the calling functions\n need of a \"div\" or \"canvas\" element\n @param src\n @param tag\n @param type\n @returns {Element}\n */\n Rocklib.prototype.getCanvas = function(src, tag, type) {\n type = typeof(type) === \"undefined\" ? \"div\" : type;\n var height = src.getAttribute(\"height\");\n var width = src.getAttribute(\"width\");\n var canvas = src.document.createElement(type);\n var style = \"\";\n if (type === \"canvas\") {\n if (width) canvas.width = width;\n if (height) canvas.height = height;\n } else {\n if (height) style += \" height:\" + height;\n if (width) style += \" width:\" + width;\n if (style) canvas.setAttribute(\"style\", style);\n }\n canvas.setAttribute(\"id\", tag + \"_\" + this.uniqueID);\n this.uniqueID++;\n return canvas;\n };\n /*\n Based on <http://martin.ankerl.com/2009/12/09/how-to-create-\n random-colors-programmatically/>\n @param s\n @param v\n @returns {string}\n */\n Rocklib.prototype.nextColor = function(s, v) {\n var golden_ratio_conjugate = 0.618033988749895\n this.hue += golden_ratio_conjugate;\n this.hue %= 1;\n var rgb = this.hsv_to_rgb(this.hue, s, v);\n return \"#\" + rgb.r.toString(16) + rgb.g.toString(16) +\n rgb.b.toString(16);\n };\n /*\n Taken from <http://stackoverflow.com/questions/17242144/\n javascript-convert-hsb-hsv-color-to-rgb-accurately>\n accepts parameters\n r Object = {r:x, g:y, b:z}\n OR\n r, g, b\n */\n Rocklib.prototype.rgb_to_hsv = function(r, g, b) {\n if (arguments.length === 1) {\n g = r.g, b = r.b, r = r.r;\n }\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b),\n d = max - min,\n h,\n s = (max === 0 ? 0 : d / max),\n v = max / 255;\n switch (max) {\n case min:\n h = 0;\n break;\n case r:\n h = (g - b) + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n case g:\n h = (b - r) + d * 2;\n h /= 6 * d;\n break;\n case b:\n h = (r - g) + d * 4;\n h /= 6 * d;\n break;\n }\n return {\n h: h,\n s: s,\n v: v\n };\n };\n /*\n Taken from <http://stackoverflow.com/questions/17242144/\n javascript-convert-hsb-hsv-color-to-rgb-accurately>\n accepts parameters\n h Object = {h:x, s:y, v:z}\n OR\n h, s, v\n */\n Rocklib.prototype.hsv_to_rgb = function(h, s, v) {\n var r, g, b, i, f, p, q, t;\n if (arguments.length === 1) {\n s = h.s, v = h.v, h = h.h;\n }\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n switch (i % 6) {\n case 0:\n r = v, g = t, b = p;\n break;\n case 1:\n r = q, g = v, b = p;\n break;\n case 2:\n r = p, g = v, b = t;\n break;\n case 3:\n r = p, g = q, b = v;\n break;\n case 4:\n r = t, g = p, b = v;\n break;\n case 5:\n r = v, g = p, b = q;\n break;\n }\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(b * 255)\n };\n };\n exports.rocklib = Rocklib;\n})();\n","module-type":"library","type":"application/javascript"},"$:/plugins/orange/mermaid-tw5/wrapper.js":{"title":"$:/plugins/orange/mermaid-tw5/wrapper.js","text":"/*\ntitle: $:/plugins/orange/mermaid-tw5/wrapper.js\ntype: application/javascript\nmodule-type: widget\nauthor: Nathaniel Jones 2017-05-26\nmodified: E Furlan 2022-05-08\n*/\n(function() {\n // jslint node: true, browser: true\n // global $tw: false\n 'use strict';\n\n var uniqueID = 1,\n Rocklib = require(\"$:/plugins/orange/mermaid-tw5/widget-tools.js\").rocklib,\n Widget = require(\"$:/core/modules/widgets/widget.js\").widget,\n rocklib = new Rocklib(),\n mermaidAPI = require(\"$:/plugins/orange/mermaid-tw5/mermaid.min.js\")\n .mermaidAPI;\n\n // Changes to run on TiddlyWiki for Node.js - 2022-12-28\n // if($tw.browser && !window.mermaidAPI) {\n // window.rocklib = new Rocklib();\n // window.mermaidAPI = require(\"$:/plugins/orange/mermaid-tw5/mermaid.min.js\")\n // .mermaidAPI;\n // }\n\n let MermaidWidget = function(parseTreeNode, options) {\n this.initialise(parseTreeNode, options);\n };\n MermaidWidget.prototype = new Widget();\n // Render this widget into the DOM\n MermaidWidget.prototype.render = function(parent, nextSibling) {\n this.parentDomNode = parent;\n this.computeAttributes();\n this.execute();\n var tag = \"mermaid\",\n scriptBody = rocklib.getScriptBody(this, \"text\"),\n divNode = rocklib.getCanvas(this, tag),\n _insertSVG = function(svgCode, bindFunctions) {\n divNode.innerHTML = svgCode;\n };\n try {\n let options = {\n theme: \"\"\n };\n rocklib.getOptions(this, tag, options);\n\n mermaidAPI.render(divNode.id, scriptBody, _insertSVG);\n // window.mermaidAPI.render(divNode.id, scriptBody, _insertSVG);\n\n } catch (ex) {\n divNode.innerText = ex;\n }\n parent.insertBefore(divNode, nextSibling);\n this.domNodes.push(divNode);\n };\n MermaidWidget.prototype.execute = function() {\n // Nothing to do\n };\n /*\n Selectively refreshes the widget if needed. Returns true if the\n widget or any of its children needed re-rendering\n */\n MermaidWidget.prototype.refresh = function(changedTiddlers) {\n return false;\n };\n exports.mermaid = MermaidWidget;\n})();\n","module-type":"widget","type":"application/javascript"}}}
{
"tiddlers": {
"GeoTiddler": {
"title": "GeoTiddler",
"created": "20151130173416239",
"modified": "20170115153450584",
"type": "text/vnd.tiddlywiki",
"text": "[[GeoTiddler]]s are tiddlers containing geographical data. [[geoSyntax|$:/plugins/sycom/leaflet/geoSyntax]] lists the available objects. [[geoJson|https://en.wikipedia.org/wiki/GeoJSON]] data are also accepted. You may specify a color for all objects displayed through `color` field.\n\n!! tiddler with geo TiddlerFields\nYou can upgrade your tiddler by putting some geo metadata ([[wgs 84 coordinates|https://en.wikipedia.org/wiki/World_Geodetic_System#WGS84]]) in it's TiddlerFields. See [[geoSyntax|$:/plugins/sycom/leaflet/geoSyntax]] for the list of object types you can draw. Popup will show the first part of the tiddler. If the tiddler contains a leafmap widget, it will be rendered as `text/plain` in order to avoid crash...\n\n!! geoJSON tiddler\nYou can define a geoJson tiddler like [[tiddlyWikiFrCommunity|$:/plugins/sycom/leaflet/example/tiddlyWikiFrCommunity]] and then display the data by calling it. Just put your geoJson data in the body and declare the tiddler as application/json. Any `application/json` tiddler called will be considered as geoJson. The popups will show\n\n* a title\n** the `name` or the `title` attribute in properties if exists,\n** if not, the firsts attributes of properties until they are 8 characters long\n* a description\n** the `description` attribute in properties if exists,\n** if not, the data stored in each feature as a bulleted list.\n\n!! tiddler grouping [[GeoTiddler]]s\nYou can use `tiddlers` or `filter` as TiddlerFields to make a group of tiddlers. You can apply some styling options to all the group using `style`, `color` or `marker` TiddlerFields and then call the tiddler in your map to render all those tiddler at the same time. This will be a good way to make thematic maps indeed...\n"
},
"$:/plugins/sycom/leaflet/devDiary": {
"title": "$:/plugins/sycom/leaflet/devDiary",
"created": "20151110173416000",
"modified": "20180531171500000",
"type": "text/vnd.tiddlywiki",
"text": "Some notes about coding this plugin. Might be useful to others...\n\n* 20180602\n** added a template that will display a map of embeded object for tiddlers containing one of the geoTiddlers fiels.\n** updtated leaflet and marker-cluster to 1.3.1 - the easy way. Just replaced with new version and no deprecation at all \\o/ !\n* 20180531\n** converting all `.svg.tid` files to `.svg` + `.svg.meta` pairs. Will allow git client to make svg viewable in web interface. Also compressed SVG as much as possible with great https://jakearchibald.github.io/svgomg/ tool.\n** tweak : for svg embedding local TiddlyWiki colors (eg `$primary$`), forced type to `text/vnd.tiddlywiki` to preserve them.\n* 20170317\n** lot of work around cluster size, cluster color when using filter. Cluster size depends on point % for the cluster, clusterRadius and zoom.\n* 20170311\n** added styling options and also the grouping tiddler capabilities. Discovered that direct styling in SVG ''does not always'' [[overwrite css styling|http://stackoverflow.com/questions/24293880/svg-why-does-external-css-override-inline-style-for-text]].\n* 20170129\n** adding some markers. And it's possible to create yours.\n* 20170115\n** darling birthday edit. Clustering by tiddler is on track. Will have to look for clustering direct passing object through widget.\n* 20161111\n** armistice edit! can now disable clustering or set clustering distance. Bug #9 fixed. may be cluster size will be too big for big databases\n* 20161106\n** color parameter is partially implemented. Note that direct styling like `fill` in svg element wont take on class styling through css...\n* 20161104\n** after many attemps, managed to include tiddler excerpt in popups for mapping geoTiddler. Had to include an escape rule for tiddler containing a leafmap widget. No larsen, but a big bug (map number probably).\n** also managed to give the marker the color of the primary color. Note for later there is probably a bug if primary color is defined with `<<colour>>` macro.\n* 20161102\n** ok, when importing some library, don't forget to use `require()` in order to conclude. Silly guy. Still some polishing needed, but clustering know works...\n* 20161101\n** fighting with markercluster capabilities. At this point seems I can add the script but the MarkerClusterGroup class is not recognized when called...\n* 20161031\n** gave up inserting external layers.svg in stylesheet. Issues with `<$text />` and `{{ }}`... Created svg in a separate tiddler for the record but inserting directly an \"escaped\" version in [[mapCss.css|$:/plugins/sycom/leaflet/mapCssTweaks.css.tid]]\n* 20161030\n** working on different markers. Not so good at designing them though ;-) Putted default leaflet svg marker. Using Inkscape to edit svg easily and SVGO extension in atom to compress them. First attempt to put layers icon as svg. Issues...\n* 20161029\n** trying to put svg marker instead of png ones. Will be better for changing colors, content... using data:image/svg+xml. Svg has to bring xmlns ~~and xmlns:xlink~~ with it in order to work...\n* 20161025\n** after big fight, managed to call images as embeded through css without writing full base64 code. Had to add `html` to the \"rules only\" list at the beginning of the css code\n* 20161024\n** geojson implemented. Will need to add cluster soon. Some question about geojson attributes to create the popup...\n* 20161021\n** updated leaflet.js to 1.0.1 moved base64 image to mapCss.css in order to avoid problems when updating leaflet.\n** Updated tileLayer list. min/max checked for this time. Detect if tile id is wrong to alert user and display osm instead.\n* 20160314\n** corrected caption errors for example and roadmap. Have to write an install process in demo site (gh-page) since writing this in plugin is nonsense.\n* 20151124\n** wondering the best way to release plugin code in gitlab (or github). Can't be a fork of TiddlyWiki. Don't want to lose .git history.\n** ok I'm dumb. All is written in the dev TiddlyWiki : http://tiddlywiki.com/dev/#Developing%20p lugins%20using%20Node.js%20and%20GitHub . Lost .git history since cuting tree is bad. But history was still short...\n* 20151123\n** not able to use directly tiddler stored images as css background.\n** decided to use base64 form in css. Not so elegant as I wished, but works.\n* 20151121\n** fighting with parameters : not imported from widget with `this.getAttribute()`\n** solved by adding the parameter computation before : `this.computeAttributes();`\n* 20151115\n** some problems to declare leaflet.js library : fail during build since there is no window, no document.\n** solved by creating the tiddlywiki.files importer.\n* 20151110\n** starting some tests. Inspiration from d3plugin (also creating widget and importing library)\n"
},
"$:/plugins/sycom/leaflet/geoSyntax": {
"title": "$:/plugins/sycom/leaflet/geoSyntax",
"created": "20151119173416239",
"modified": "20151211173250584",
"type": "text/vnd.tiddlywiki",
"caption": "geoSyntax",
"text": "Geographical objects can be stored\n\n* in a GeoTiddler by creating a ''//type// : // pattern//'' metadata field pair in any tiddler or by storing geoJson data in it and setting your tiddler to `application/JSON` type. Call it in the widget with ''places'' attribute : `places='{\"tiddler\":\"title of your tiddler\"}'`\n* in several [[GeoTiddlers|GeoTiddler]]. Call them in the widget with ''places'' attribute\n** via a space separated list of [[GeoTiddlers|GeoTiddler]] : `places='{\"tiddlers\":\"tiddler1 tiddler2 tiddler3\"}'`\n** via a [[filter|http://tiddlywiki.com/#Filters]] selection of [[GeoTiddlers|GeoTiddler]] : `places='{\"filter\":\"[[your filter]]\"}'`\n* straight in the widget with ''places'' attribute : `places='{\"object type\":\"coordinates pattern\"}'`\n\n!! Everything might be a GeoTiddler\n\nIn a very much tiddlywiki way, a tiddler may also refer to a list or a selection of tiddlers using `tiddlers` or `filter` metadata fields. You may add styling informations to all refered tiddler with `style`, `color` or `marker` metadata fields. Calling this tiddler with `<$leafmap />` will render all refered tiddlers.\n\n!! Tool for creating shapes\nAs not everyone has a GIS in his head, And the plugin does not implement yet any tool for creating geo shapes, there is (very basic) tool for that : [ext[Draw for TiddlyWiki leaflet plugin|http://sycom.github.io/TiddlyWiki-Plugins/leafletDraw.html]]\n\n!! Geographical objects you can display on your map\n\n| !type | !description | !pattern |\n|''point'' |a unique point defined by a comma separated latitude,longitude pair |`y,x` |\n|''points''|a points collection defined by a space separated ''point'' definition list |`y1,x1 y2,x2 y3,x3 ...` |\n|''polygon''|a closed surfacic place defined like an //ordered// ''points'' collection just above |`y1,x1 y2,x2 y3,x3 ...` |\n|''polygons''|a polygons collection defined by a pipe (`|`) separated list of ''polygon'' definitions |`y1,x1 y2,x2 y3,x3|y4,x4 y5...` |\n|''polyline''|an open path place defined like the ''polygon'' just above |`y1,x1 y2,x2 y3,x3 ...` |\n|''polylines''|a polylines collection defined by a pipe (`|`) separated list of ''polyline'' definitions |`y1,x1 y2,x2 y3,x3|y4,x4 y5...` |\n|''geojson''|a [[geojson|http://geojson.org/]] object. If set through a tiddler field, please crunch it to one single line|see [[rfc7946|https://tools.ietf.org/html/rfc7946]]|\n"
},
"$:/plugins/sycom/leaflet/markers": {
"title": "$:/plugins/sycom/leaflet/markers",
"created": "20170129172401910",
"modified": "20170129172401910",
"type": "text/vnd.tiddlywiki",
"caption": "Markers",
"text": "markers are used to display point(s) related informations. Default marker is [[marker|$:/plugins/sycom/leaflet/images/marker.svg]].\n\n!! Available markers\n\nfor now, available markers are those\n\n<$list filter='[all[shadows]has[marker_dim]has[caption]]'><span style=\"display:inline-block;text-align:center;margin:0 .5em;padding:.5em;border:.5px dotted\"><$tiddler tiddler={{!!title}}><$transclude/></$tiddler><br/><$link to={{!!title}}>{{!!caption}}</$link></span></$list>\n\n!! Create your own markers\n\nHave a look at existing ones above for inspiration and hack. Markers are svg pieces with some mandatory tweaks :\n\n* a marker is based upon ''two'' tiddlers, one for the marker and one for the shadow\n* add a `caption` field to the marker tiddler (not for the shadow svg).\n* the `title` of your marker tiddler will be `$:/plugins/sycom/leaflet/images/`''caption''`.svg`\n* and the `title` of the marker shadow tiddler will be `$:/plugins/sycom/leaflet/images/`''caption''`shadow.svg`\n* a `marker_dim` field wich defines //width// //height// //x-anchor// //y-anchors//. Please check that your //width// and //height// value are the same as in `<svg (...) width=\"15\" height=\"15\">`\n* don't forget to add `xmlns` attribute : `<svg xmlns=\"http://www.w3.org/2000/svg\" (...)`\n* if you want your marker to change color upon tiddlywiki or widget parameters, use `$primary$` for the color attribute of your svg\n"
},
"$:/plugins/sycom/leaflet/roadmap": {
"title": "$:/plugins/sycom/leaflet/roadmap",
"created": "20151209173416000",
"modified": "20180531171500000",
"type": "text/vnd.tiddlywiki",
"caption": "Roadmap",
"text": "Not really a roadmap just a list for future development ideas. You'd better take a look at [[issues|https://framagit.org/sycom/TiddlyWiki-Plugins/boards]] on the repo. And add yours if you dare ;-)\n\n* add a tool to draw shapes, lines and collect coordinates. Until this, You may use [[Draw for TiddlyWiki leaflet plugin|http://sycom.github.io/TiddlyWiki-Plugins/leafletDraw.html]]\n* add categories options\n* add text, title capabilities\n* try a tiddler template based upon field presence to render data for all geoTiddler\n* ...\n\n* ~~try to put other types of pins (svg? icons?)~~ ''0.8.0'' : you may change markers via the //marker// option and design your own markers\n* ~~add color(s) options~~ ''0.7.2'' : color can be set via //color// tiddler field or forced through //color// option\n* ~~add a clustering functionality (at least for points)~~ ''0.7.0'' : each data group is know clustering points\n* ~~add geoJSON tiddlers~~ ''0.6.0'' : added geojsontiddler rendering\n* ~~map tiddlers with the same tag(s)~~ ''0.5.0'' : added filter places request\n"
},
"$:/plugins/sycom/leaflet/tileLayers": {
"title": "$:/plugins/sycom/leaflet/tileLayers",
"created": "20151119173416239",
"modified": "20161020222250584",
"type": "text/vnd.tiddlywiki",
"caption": "tileLayers",
"text": "tileLayers are the //background// of the leaflet map. They will not be available offline and will not display at every zoom level.\n\n!! Available tile layers\n\nedit [[tileLayers.json|$:/plugins/sycom/leaflet/lib/tileLayers.json]] if you want to add / remove tile layers.\n\n| !id | !description | !zoom min/max |\n|''osm'' |[[OpenStreetMap|http://openstreetmap.org]] classic tile layer | 1/20 |\n|''osmfr'' |[[OpenStreetMap|http://openstreetmap.org]] with //baguette// smell | 1/20 |\n|''osmbw'' |Black and White version of [[OpenStreetMap|http://openstreetmap.org]] tiles by Wikimedia labs | 1/20 |\n|''sat'' |Satellite photographic layer provided by Esri | 1/18 |\n|''natgeo'' |National Geographic style layer provided by Esri| 1/12 |\n|''toner'' |Black and white styled OpenStreetMap data provided by [[Stamen|http://stamen.com]] | 1/20 |\n|''water'' |Watercolor styled OpenStreetMap data provided by [[Stamen|http://stamen.com]] | 1/20 |\n|''thunder'' |Pale styled OpenStreetMap data provided by [[Thunderforest|http://thunderforest.com]] | 1/20 |\n|''dark'' |\"Dark Matter\" styled OpenStreetMap data provided by [[CartoDB|https://cartodb.com/basemaps]] | 1/20 |\n|''positron'' |\"Positron\" styled OpenStreetMap data provided by [[CartoDB|https://cartodb.com/basemaps]] | 1/20 |\n"
},
"$:/plugins/sycom/leaflet/usage": {
"title": "$:/plugins/sycom/leaflet/usage",
"created": "20151119173416239",
"modified": "20170129153650584",
"type": "text/vnd.tiddlywiki",
"caption": "Usage",
"text": "The widget is called by using `<$leafmap />`. You may specify some options :\n\n!!! widget attributes\n|!Attribute |!Description |!Default |\n|''width'' |the width of the map (px or tiddler %)| `100%`|\n|''height''|the height of the map (px only)| `420px`|\n\n!!! leaflet map attributes\n|!Attribute |!Description |!Default |\n|''places'' |a json object with the geographical data you want to display. Can be stored in tiddlers as metadata fields. See [[geoSyntax|$:/plugins/sycom/leaflet/geoSyntax]] for more informations ||\n|''style'' |a json object containing styling information for your polygons and polylines objects in the map. Will overwrite GeoTiddler style if exists. Refer to [[leaflet documentation|http://leafletjs.com/reference-1.0.3.html#path]] for all options| `{ }`|\n|''color'' |a color for drawing that will apply to all objects in the map. Will also overwrite GeoTiddler color attributes and //style// (if defined) colors| `<<colour primary>>`|\n|''marker''|the name of the marker you want for points. See [[markers|$:/plugins/sycom/leaflet/markers]] for more informations| `marker`|\n|''tile'' |the //id// or the //number// of the tile layer you want to use. See [[tileLayers|$:/plugins/sycom/leaflet/tileLayers]] for more informations | `osm`|\n|''cluster''|set the clustering distance between points. also can disable clustering with no value or `0` or `\"\"`| `80`|\n|''clusterType''|set if points are clustered for whole map (`map`) or for each tiddler (`tiddler`) displayed.| `map`|\n|''tileControl'' |''if present'' add a control to select the tile layer you want ||\n|''lat'' |map center latitude. Will overwrite places auto-centering | `52.8`|\n|''long'' |map center longitude. Will overwrite places auto-centering | `-2.6`|\n|''zoom'' |zoom level as defined by leaflet : int value between `0` (world map) and `20` (ant view) | |\n"
},
"$:/plugins/sycom/leaflet/example": {
"title": "$:/plugins/sycom/leaflet/example",
"type": "text/vnd.tiddlywiki",
"caption": "Example",
"text": "Different ways to use the [[leaflet plugin|$:/plugins/sycom/leaflet]]\n\n{{$:/plugins/sycom/leaflet/example/leaflet_with_geotiddler}}\n\n{{$:/plugins/sycom/leaflet/example/leaflet_with_geojsontiddler}}\n\n{{$:/plugins/sycom/leaflet/example/leaflet_with_non-tiddler_geo_data}}\n\n{{$:/plugins/sycom/leaflet/example/leaflet_with_filter}}\n"
},
"$:/plugins/sycom/leaflet/example/leaflet_with_filter": {
"title": "$:/plugins/sycom/leaflet/example/leaflet_with_filter",
"created": "20151211173500000",
"modified": "20170317163500000",
"text": "!! a map of a filter\nthis one displays all tiddlers tagged with <<tag example>> (there's a //all shadow// tweak, since they are shadowed). There is also one cluster per tiddler. Some colors are set from within each tiddler with `color` field.\n\n```\n<$leafmap tile='toner'\n\tplaces='{\"filter\":\"[all[shadows]tag[example]]\"}' clusterType='tiddler'/>\n```\n<$leafmap tile='toner'\n\tplaces='{\"filter\":\"[all[shadows]tag[example]]\"}' clusterType='tiddler'/>\n"
},
"$:/plugins/sycom/leaflet/example/leaflet_with_geojsontiddler": {
"title": "$:/plugins/sycom/leaflet/example/leaflet_with_geojsontiddler",
"created": "20161025150936935",
"modified": "20170318235936935",
"tags": "example leaflet",
"text": "!! a map of a geoJson tiddler\nThis one displays [[tiddlyWikiFrCommunity|$:/plugins/sycom/leaflet/example/tiddlyWikiFrCommunity]] (that has a color field set to red), which is an almost direct geojson data extraction from the umap [[Utilisateurs du forum TiddlyWiki FR|https://umap.openstreetmap.fr/fr/map/tiddlywikifr_65983#6/46.995/2.549]]. `color` is set to orange, `marker` to pin. Cluster distance is default (80) on the first, set to 30 on the second.\n\n```\n<$leafmap tileControl\n places='{\"tiddler\":\"$:/plugins/sycom/leaflet/example/tiddlyWikiFrCommunity\"}'\n style='{\"color\":\"orange\"}'\n marker='pin'/>\n<$leafmap tileControl cluster=\"30\"\n places='{\"tiddler\":\"$:/plugins/sycom/leaflet/example/tiddlyWikiFrCommunity\"}'\n marker='pin'/>\n```\n<$leafmap tileControl\n places='{\"tiddler\":\"$:/plugins/sycom/leaflet/example/tiddlyWikiFrCommunity\"}'\n style='{\"color\":\"orange\"}'\n marker='pin'/>\n<$leafmap tileControl cluster=\"30\"\n places='{\"tiddler\":\"$:/plugins/sycom/leaflet/example/tiddlyWikiFrCommunity\"}'\n marker='pin'/>\n"
},
"$:/plugins/sycom/leaflet/example/leaflet_with_geotiddler": {
"title": "$:/plugins/sycom/leaflet/example/leaflet_with_geotiddler",
"created": "20151207090936935",
"modified": "20161025222038568",
"tags": "example leaflet",
"text": "!! a map of a GeoTiddler\nthis one displays the tiddler [[placeTiddler|$:/plugins/sycom/leaflet/example/placeTiddler]]. Note the tileControl attribute that enables map background selection. As the tiddler has its `color` field set to pink, objects are rendered pink. The cat is know a panther ;-). The tiddler also have a `style` field to define dash and thickness of the stroke...\n\n```\n<$leafmap\n tileControl\n places='{\"tiddler\":\"$:/plugins/sycom/leaflet/example/placeTiddler\"}'/>\n```\n<$leafmap\n tileControl\n places='{\"tiddler\":\"$:/plugins/sycom/leaflet/example/placeTiddler\"}'/>\n"
},
"$:/plugins/sycom/leaflet/example/leaflet_with_non-tiddler_geo_data": {
"title": "$:/plugins/sycom/leaflet/example/leaflet_with_non-tiddler_geo_data",
"point": "6.5,19.72",
"created": "20151207090936935",
"modified": "20151211172038568",
"tags": "example leaflet",
"text": "!! a map with data on the go\nvery useful for fast mapping. All objects that might be embedded in GeoTiddler can be used here. Let's display a map with satellite imagery and\n\n* a ''point'' at `6.5,19.72`\n* a ''polyline'' at `6.4,19.7 6.6,19.74`\n\nnote this tiddler is also a geoTiddler with one point at `6.5,19.72`\n\n```\n<$leafmap tile='sat'\n\tplaces='{\"point\":\"6.5,19.72\",\"polyline\":\"6.4,19.7 6.6,19.74\"}'/>\n```\n\n<$leafmap tile='sat'\n\tplaces='{\"point\":\"6.5,19.72\",\"polyline\":\"6.4,19.7 6.6,19.74\"}'/>\n"
},
"$:/plugins/sycom/leaflet/example/placeTiddler": {
"title": "$:/plugins/sycom/leaflet/example/placeTiddler",
"points": "52.799933,-2.589812 52.799959,-2.590939",
"polygon": "52.800608,-2.591668 52.800225,-2.591829 52.799849,-2.591937 52.799603,-2.591990 52.799427,-2.591990 52.799187,-2.591894 52.798863,-2.591550 52.798727,-2.591357 52.798662,-2.591121 52.798636,-2.590853 52.798655,-2.590542 52.798668,-2.590467 52.798701,-2.590359 52.798649,-2.590113 52.798623,-2.589920 52.798610,-2.589716 52.798636,-2.589437 52.798694,-2.589136 52.798850,-2.588975 52.799051,-2.588793 52.799311,-2.588707 52.799525,-2.588707 52.799726,-2.588772 52.800018,-2.588857 52.800290,-2.588911 52.800511,-2.589040 52.800731,-2.589126 52.800816,-2.589211 52.800413,-2.589812 52.800446,-2.590166 52.800452,-2.590520 52.800433,-2.590810 52.800426,-2.591068 52.800751,-2.591550 52.800621,-2.591679",
"polylines": "52.799382,-2.590059 52.799641,-2.588321|52.799330,-2.590048 52.799447,-2.588342|52.799265,-2.590059 52.799181,-2.588342|52.799486,-2.590724 52.799706,-2.592301|52.799414,-2.590767 52.799525,-2.592366|52.799356,-2.590714 52.799278,-2.592355",
"created": "20151119173416000",
"modified": "20151211173153114",
"color": "#ff80c0",
"style": "{\"dashArray\":\"6, 10\",\"weight\":\"8\"}",
"type": "text/vnd.tiddlywiki",
"tags": "example leaflet geometry",
"text": "This tiddler contains\n\n* a two `points` list : 52.799933,-2.589812 52.799959,-2.590939\n* a `polygon` : 52.800608,-2.591668 52.800225,-2.591829 52.799849 (...)\n* a `polyline`s list : 52.799382,-2.590059 52.799641,-2.588321|52.799330,-2.590048 52.799447,-2.588342|52.799265,(...)\n\nIt has also some styling informations\n\n* `color` is set to pink\n* `style` defines a dashed 8px thick line\n\ngo to edit mode to see the full data fields\n"
},
"/usr/local/lib/node_modules/tiddlywiki/plugins/sycom/leaflet/example/tiddlyWikiFrCommunity.old": {
"title": "/usr/local/lib/node_modules/tiddlywiki/plugins/sycom/leaflet/example/tiddlyWikiFrCommunity.old",
"text": "created: 20161025143416000\nmodified: 20170317143416000\ntitle: $:/plugins/sycom/leaflet/example/tiddlyWikiFrCommunity\ntype: application/json\ntags: example leaflet geojson\ncolor: #dd0000\n\n{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"properties\":{\"name\":\"Aknar\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[1.4442090000000007,43.604652]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"CdriC\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[-0.563166,47.478419]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Disanv Parean\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[-0.4072784,49.1846226]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Fab13n\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[5.5867,45.1184]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Fabio\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[1.916515000000004,47.8664401]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Florent V.\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[0.156237,45.648377]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Joël\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[4.740042686462402,46.10446454226022]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Johanne\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[-74.09016960000002,45.65189590000001]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Lakemp\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[2.19249,48.59338]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"LauDai\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[1.4750973000000158,43.5664556]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Lucivam\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[4.390278,45.434722]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Mikabi\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[1.44,43.604652]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Nico\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[2.2569674000000077,48.9899655]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Nicolas Friedli\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[6.8411643,46.9425711]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Phil\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[3.98337,50.36155]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Piwig\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[-1.677793,48.117266]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Sylvain Comte\",\"description\":\"Créateur du leaflet map plugin\",\"url\":\"http://sylvain.comte.online.fr\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[1.08954,49.43584]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Sylvain Naudin\",\"description\":\"Admin du forum\",\"url\":\"http://sylvain.naud.in\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[-0.155689,45.471894]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Thierry Pasquier\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[0.3333,46.5833]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Vincent Delcros\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[5.2788245000000416,50.5500944]}}]}\n",
"type": ".old"
},
"$:/plugins/sycom/leaflet/example/tiddlyWikiFrCommunity": {
"title": "$:/plugins/sycom/leaflet/example/tiddlyWikiFrCommunity",
"text": "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"properties\":{\"name\":\"Aknar\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[1.4442090000000007,43.604652]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"CdriC\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[-0.563166,47.478419]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Disanv Parean\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[-0.4072784,49.1846226]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Emmanuel\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[2.3522219000000177,48.85661400000001]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Escrivant\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[2.3868,48.871958]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Fab13n\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[5.5867,45.1184]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Fabio\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[1.916515000000004,47.8664401]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Florent\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[0.156237,45.648377]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"François\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[1.478413899999964,43.543794]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Gub\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[1.4442090000000007,43.604652]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"jargenty\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[1.321621999999934,43.514707]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Jérôme\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[-2.429759,47.328003]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Joël\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[4.740042686462402,46.10446454226022]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Johanne\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[-74.09016960000002,45.65189590000001]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Lakemp\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[2.19249,48.59338]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"LauDai\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[1.4750973000000158,43.5664556]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"LongSlowBakery\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[-2.4834849999999733,52.903552]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Lucivam\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[4.390278,45.434722]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"m4dz\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[2.3522219000000177,48.85661400000001]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Matthias\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[-0.560016,47.470006]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Michel\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[7.261953199999994,43.7101728]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Mikabi\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[1.44,43.604652]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Nico\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[2.2569674000000077,48.9899655]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Nicolas\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[6.8411643,46.9425711]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"pariswiki\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[2.29,48.8]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Phil\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[3.98337,50.36155]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Piwig\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[-1.677793,48.117266]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Ploum\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[0.1995560000000296,48.00611000000001]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Scapharnaum\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[7.74553,48.58392]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Solaine\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[8.227512,46.818188]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Sylvain Comte\",\"description\":\"Créateur du leaflet map plugin\",\"url\":\"http://sylvain.comte.online.fr\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[1.08954,49.43584]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Sylvain Naudin\",\"description\":\"Admin du forum\",\"url\":\"http://sylvain.naud.in\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[-0.155689,45.471894]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Thierry\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[0.3333,46.5833]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Thomas Elmiger\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[8.541694,47.376887]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Vincent\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[5.2788245000000416,50.5500944]}},{\"type\":\"Feature\",\"properties\":{\"name\":\"Yan\",\"description\":\"\",\"url\":\"\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[2.0517,46.22475]}}]}\n",
"type": "application/json",
"created": "20161025143416000",
"modified": "20180602193416000",
"source": "https://umap.openstreetmap.fr/fr/map/tiddlywikifr_65983",
"tags": "example leaflet geojson",
"color": "#dd0000"
},
"$:/ext/modules/widgets/geolocation-widget.js": {
"text": "/*\\\ntitle: $:/ext/modules/wigets/geolocation-widget.js\ntype: application/javascript\nmodule-type: widget\n\nGeolocation widget\n\n\\*/\n(function() {\n /*jslint node: true, browser: true */\n /*global $tw: false */\n \"use strict\";\n var Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n var GeolocationWidget = function(parseTreeNode, options) {\n this.initialise(parseTreeNode, options);\n };\n\n /* Inherit from the base widget class */\n GeolocationWidget.prototype = new Widget();\n\n /* Compute the internal state of the widget */\n GeolocationWidget.prototype.execute = function() {\n // Get attributes\n this.target = this.getAttribute(\"target\") || this.getVariable(\"currentTiddler\");\n this.icon = this.getAttribute(\"icon\") || \"$:/core/images/globe\";\n this.text = this.getAttribute(\"text\") || undefined;\n this.accuracy = this.getAttribute(\"accuracy\");\n this.type = this.getAttribute(\"type\") || \"point\";\n // Make child widgets\n this.makeChildWidgets();\n };\n\n /* Render this widget into the DOM */\n GeolocationWidget.prototype.render = function(parent, nextSibling) {\n var self = this;\n // Remember parent\n this.parentDomNode = parent;\n // Compute attributes and execute state\n this.computeAttributes();\n this.execute();\n // Create element\n var tag = \"button\";\n if (this.buttonTag && $tw.config.htmlUnsafeElements.indexOf(this.buttonTag) === -1) {\n tag = this.buttonTag;\n }\n var domNode = this.document.createElement(tag);\n // Add a click event handler\n domNode.addEventListener(\"click\", function(event) {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(\n // success callback\n function(position) {\n /* to replace by field populating (point(s) polyline(s) or polygon(s)) */\n /* default : if tiddler has point field, will create a points field to store new data;\n if tiddler has points field, will add a new point to the tiddler field;\t*/\n var target = self.target;\n var accuracy = self.accuracy;\n var type = self.type;\n var newPoint = position.coords.latitude + \",\" + position.coords.longitude;\n /* check if tiddler has a geofield */\n var track = \"\";\n if (!$tw.wiki.getTiddler(target)) $tw.wiki.setText(target, \"text\", null, \"\", null);\n var flds = $tw.wiki.getTiddler(target).fields\n if (flds.points) {\n track = flds.points;\n $tw.wiki.setText(target, \"points\", null, track + \" \" + newPoint, null);\n infoLocation(\"new point \" + newPoint + \" added to \" + target);\n\n } else {\n if (flds.point && flds.point !== null) {\n track = flds.point;\n $tw.wiki.setText(target, \"points\", null, track + \" \" + newPoint, null);\n $tw.wiki.setText(target, \"point\", null, null, null);\n infoLocation(\"new point \" + newPoint + \" added to \" + target);\n } else {\n $tw.wiki.setText(target, \"point\", null, newPoint, null);\n infoLocation(\"new point \" + newPoint + \" added to \" + target);\n }\n }\n },\n // error callback\n function(error) {\n noLocation(error.message + \". You may not are connected via httpS://\")\n }\n );\n } else {\n noLocation(\"position disabled or not supported by your browser\");\n }\n }, false);\n /* dress up button */\n var buttonContent;\n // if text parameter, will use it for the button\n if (self.text) {\n buttonContent = self.text;\n } else {\n // if not, looking for an icon\n /* !todo: ?question: should the icon depend on \"type\" parameter? */\n buttonContent = $tw.wiki.getTiddler(self.icon).fields.text;\n }\n domNode.innerHTML = buttonContent;\n // Insert element\n parent.insertBefore(domNode, nextSibling);\n this.renderChildren(domNode, null);\n this.domNodes.push(domNode);\n };\n\n function noLocation(message) {\n /* !todo: ?question: replace by \"modal\" alert? */\n // create or update a temporary message tiddler \n $tw.wiki.setText(\"$:/temp/noLocationMessage\", \"text\", null, \"geolocation access denied: \" + message, null);\n // displays it in modal\n $tw.modal.display(\"$:/temp/noLocationMessage\");\n }\n\n function infoLocation(message) {\n // create or update a temporary message tiddler \n $tw.wiki.setText(\"$:/temp/viewLocationMessage\", \"text\", null, message, null);\n // displays it in modal\n $tw.notifier.display(\"$:/temp/viewLocationMessage\");\n }\n /*\n We don't allow actions to propagate because we trigger actions ourselves\n */\n GeolocationWidget.prototype.allowActionPropagation = function() {\n return false;\n };\n\n exports.geoloc = GeolocationWidget;\n\n})();",
"title": "$:/ext/modules/widgets/geolocation-widget.js",
"type": "application/javascript",
"module-type": "widget"
},
"geoLocationWidget": {
"caption": "action-createtiddler",
"created": "20180906130958091",
"modified": "20180906132645752",
"author": "Sylvain Comte",
"tags": "Widgets",
"title": "geoLocationWidget",
"type": "text/vnd.tiddlywiki",
"text": "! Introduction\nThe ''geolocation'' widget is used to collect geographic position of the browser running the wiki. For now position will be added the //point// (or //points// if there is more than one point) field of the target tiddler. Those fields may then be used with the [[Leaflet Map Plugin|https://sycom.github.io/TiddlyWiki-Plugins/#Leaflet%20plugin]], or whatever tool using geographic coordinates.\n\n* The widget is not dependant from Leaflet Map Plugin (but is bundled in it). You may install it alone\n* The widget will only work on //https// website, due to security limitation of the geolocation implemented in browsers\n\n! Content and Attributes\nThe [[geolocation widget|$:/ext/modules/widgets/geolocation-widget.js]] will create a button to collect your browser's position. Any content within it is ignored.\n\n| !Attribute | !Description | !Default |\n|target |The tiddler (title) in which data will be stored |//current tiddler// |\n|icon |The title of the icon used to dress up the button|$:/core/images/globe |\n|text |The text displayed in the button (will overwrite the icon)|`undefined` |\n\nMore options will come later (//accuracy//, //object type//...).\n\n! Examples\n\n```\n<$geoloc target=\"Geolocation Store\" />\n```\n\n<$geoloc target=\"Geolocation Store\" />\n\n! Source\nThe ''geolocation widget'' is developped aside Leaflet Map Plugin. Source code can be found on the same repository : https://framagit.org/sycom/TiddlyWiki-Plugins/tree/master/ext/modules/widget/geolocation\n\n"
},
"$:/plugins/sycom/leaflet/icon": {
"title": "$:/plugins/sycom/leaflet/icon",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-leaflet-map tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M64 0L9.4 32v64L64 128l54.6-32V32zM48.8 32.4l30.8 7.8V95l-30.8-7.8zm57.2 2.4v54.7L82 95V40.2zm-59.8-2.2v54.7L21 92.8V38zm-10.4 5.9a5.2 5.2 0 0 0-5.1 5c0 1.1.6 2.6 1.1 3.6l4 7.6 3.9-7.6c.4-1 1.1-2.4 1.1-3.6 0-2.6-2.3-5-5-5zm-.2 3h.2c1 0 2 .9 2 2a2 2 0 0 1-2 2 2 2 0 0 1-2-2c0-1 .8-2 1.8-2zM64.2 44c-7 0-13 6.1-13 12.7 0 3 1.7 6.8 3 9.4l10 19.3L74 66c1.2-2.6 3-6.2 3-9.4C77 50.1 71.2 44 64 44zm0 7.7a5 5 0 0 1 5 5 5 5 0 0 1-10 0 5 5 0 0 1 5-5zM25.6 59a3.5 3.5 0 0 0-3.4 3.3c0 .8.5 1.8.8 2.5l2.6 5 2.6-5c.3-.7.8-1.7.8-2.5 0-1.7-1.5-3.3-3.4-3.3zm0 2a1.3 1.3 0 1 1 0 2.6 1.3 1.3 0 0 1-1.3-1.3 1.3 1.3 0 0 1 1.3-1.3zM92 66.8c-2.7 0-5 2.4-5 5 0 1.2.6 2.7 1.1 3.7l4 7.5 3.8-7.5c.5-1 1.2-2.4 1.2-3.7 0-2.6-2.3-5-5-5zm0 3c1.1 0 2 1 2 2a2 2 0 0 1-2 2 2 2 0 0 1-2-2c0-1 .9-1.9 2-2z\"/>\n <path d=\"M69-158h58v67H69z\" fill=\"#fff\"/>\n </g>\n</svg>\n"
},
"$:/plugins/sycom/leaflet/images/layers.svg": {
"title": "$:/plugins/sycom/leaflet/images/layers.svg",
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"26\" width=\"26\"><path d=\"M0 17l13-8 13 8-13 8-13-8\" fill=\"#b9b9b9\"/><path d=\"M0 17v1l13 8 13-8v-1l-13 8z\" fill=\"#737373\"/><path d=\"M0 13l13-8 13 8-13 8-13-8\" fill=\"#cdcdcd\"/>\n <path d=\"M0 13v1l13 8 13-8v-1l-13 8z\" fill=\"#737373\"/><path d=\"M0 9l13-8 13 8-13 8L0 9\" fill-opacity=\".6\" fill=\"#e9e9e9\"/><path d=\"M0 9v1l13 8 13-8V9l-13 8z\" fill=\"#737373\"/></svg>\n",
"type": "image/svg+xml",
"created": "20161028202401905",
"modified": "20180531154011600",
"tags": "$:/tags/Image"
},
"$:/plugins/sycom/leaflet/images/marker.svg": {
"title": "$:/plugins/sycom/leaflet/images/marker.svg",
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"25\" height=\"40\" fill-rule=\"evenodd\"><path fill=\"none\" d=\"M6.279 4.463h12.625v14.5H6.279z\"/><path fill=\"$primary$\" fill-opacity=\".8\" stroke=\"#fff\" stroke-linecap=\"round\" d=\"M12.544.5C5.971.5.5 6.191.5 12.366c0 2.778 1.564 6.308 2.694 8.746L12.5 38.984l9.262-17.872c1.13-2.438 2.738-5.791 2.738-8.746C24.5 6.191 19.117.5 12.544.5zm0 7.155a4.714 4.714 0 0 1 4.679 4.71c0 2.588-2.095 4.663-4.679 4.679-2.584-.017-4.679-2.09-4.679-4.679a4.714 4.714 0 0 1 4.679-4.71z\" class=\"leaflet-marker-colored\"/><path fill=\"none\" stroke=\"#fff\" stroke-linecap=\"round\" stroke-opacity=\".9\" d=\"M12.531 1.607c-5.944 0-10.938 5.219-10.938 10.75 0 2.359 1.443 5.832 2.563 8.25l.031.031L12.5 36.607l8.25-15.969.031-.031c1.135-2.448 2.625-5.706 2.625-8.25 0-5.538-4.931-10.75-10.875-10.75zm0 4.969c3.168.021 5.781 2.601 5.781 5.781 0 3.18-2.613 5.761-5.781 5.781-3.168-.02-5.75-2.61-5.75-5.781 0-3.172 2.582-5.761 5.75-5.781z\"/></svg>\n",
"type": "text/vnd.tiddlywiki",
"created": "20161028202401905",
"modified": "20180531124011600",
"tags": "$:/tags/Image",
"marker_dim": "25 40 12.5 40",
"caption": "marker"
},
"$:/plugins/sycom/leaflet/images/markershadow.svg": {
"title": "$:/plugins/sycom/leaflet/images/markershadow.svg",
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"50\" height=\"40\"><filter id=\"a\" width=\"200\" height=\"200\" x=\"-50\" y=\"-50\"><feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"1.5\"/></filter><path fill=\"none\" d=\"M47 0a52 52 0 0 0-34 21L0 40l30-19 13-9c7-6 9-12 4-12zm-9 7a3 8 58 0 1-2 5c-3 3-7 5-9 5-3 0-2-2 1-5a3 8 58 0 1 10-5z\" filter=\"url(#a)\"/></svg>\n",
"type": "image/svg+xml",
"created": "20161028202401905",
"modified": "20180531155500000",
"tags": "$:/tags/Image",
"marker_dim": "50 40 0 40"
},
"$:/plugins/sycom/leaflet/images/pin.svg": {
"title": "$:/plugins/sycom/leaflet/images/pin.svg",
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"35\"><defs><linearGradient id=\"a\"><stop offset=\"0\" stop-color=\"#fff\"/><stop offset=\"1\" stop-color=\"#fff\" stop-opacity=\"0\"/></linearGradient><radialGradient id=\"b\" cx=\"7\" cy=\"7\" r=\"8\" fx=\"5\" fy=\"5\" gradientTransform=\"scale(1.12)\" gradientUnits=\"userSpaceOnUse\" href=\"#a\"/></defs><g fill-rule=\"evenodd\"><path d=\"M9 20h2v15H9z\"/><circle cx=\"10\" cy=\"10\" r=\"10\" class=\"leaflet-marker-colored\" fill-opacity=\".8\" fill=\"$primary$\"/><circle cx=\"10\" cy=\"10\" r=\"10\" fill=\"url(#b)\"/></g></svg>\n",
"type": "text/vnd.tiddlywiki",
"created": "20161028202401905",
"modified": "20180531154500000",
"tags": "$:/tags/Image",
"marker_dim": "20 35 10 35",
"caption": "pin"
},
"$:/plugins/sycom/leaflet/images/pinshadow.svg": {
"title": "$:/plugins/sycom/leaflet/images/pinshadow.svg",
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"15\" height=\"15\"><filter id=\"a\" width=\"200\" height=\"200\" x=\"-50\" y=\"-50\"><feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"1.5\"/></filter><ellipse cx=\"8\" cy=\"8\" style=\"stroke:none; fill-opacity:.3; filter: url(#a)\" rx=\"7\" ry=\"7\"/></svg>\n",
"type": "image/svg+xml",
"created": "20170129162401910",
"modified": "20180531155000000",
"tags": "$:/tags/Image",
"marker_dim": "15 15 5 7"
},
"$:/plugins/sycom/leaflet/images/point.svg": {
"title": "$:/plugins/sycom/leaflet/images/point.svg",
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"15\" height=\"15\" fill-rule=\"evenodd\"><ellipse cx=\"7.5\" cy=\"7.5\" fill=\"none\" stroke=\"#fff\" stroke-opacity=\".8\" rx=\"7.5\" ry=\"7.5\"/><ellipse cx=\"7.5\" cy=\"7.5\" fill=\"$primary$\" fill-opacity=\".8\" stroke=\"#000\" stroke-opacity=\".8\" stroke-width=\".5\" class=\"leaflet-marker-colored\" rx=\"7\" ry=\"7\"/></svg>\n",
"type": "text/vnd.tiddlywiki",
"created": "20170129162401905",
"modified": "20180531165500000",
"tags": "$:/tags/Image",
"marker_dim": "15 15 7.5 7.5",
"caption": "point"
},
"$:/plugins/sycom/leaflet/images/pointshadow.svg": {
"title": "$:/plugins/sycom/leaflet/images/pointshadow.svg",
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"15\" height=\"15\"><filter id=\"a\" width=\"200\" height=\"200\" x=\"-50\" y=\"-50\"><feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"1.5\"/></filter><ellipse cx=\"7.5\" cy=\"7.5\" fill-opacity=\".3\" filter=\"url(#a)\" rx=\"7.2\" ry=\"7.2\"/></svg>\n",
"type": "image/svg+xml",
"created": "20170129162401910",
"modified": "20180531165600000",
"tags": "$:/tags/Image",
"marker_dim": "15 15 0 12"
},
"$:/plugins/sycom/leaflet/lib/tileLayers.json": {
"text": "[\n {\n \"id\": \"osmfr\",\n \"nom\": \"OSM France\",\n \"url\": \"http://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png\",\n \"attrib\": \"fond par <a href='http://osm.org/copyright'>OSM</a>, licence <a href='http://creativecommons.org/licenses/by-sa/3.0'>CC BY SA</a>. Données ©Contributeurs <a href='http://openstreetmap.org'>OSM</a>, licence <a href='http://opendatacommons.org/licenses/odbl/'>ODbL</a>.\",\n \"zMin\": 1,\n \"zMax\": 20\n },\n {\n \"id\": \"osm\",\n \"nom\": \"OpenStreetMap\",\n \"url\": \"http://{s}.tile.osm.org/{z}/{x}/{y}.png\",\n \"attrib\": \"Map tiles by ©<a href='http://osm.org/copyright'>OSM</a>, licence <a href='http://creativecommons.org/licenses/by-sa/3.0'>CC BY SA</a>. Data by ©<a href='http://openstreetmap.org'>OSM</a> contributors, licence <a href='http://opendatacommons.org/licenses/odbl/'>ODbL</a>.\",\n \"zMin\": 1,\n \"zMax\": 20\n },\n {\n \"id\": \"osmbw\",\n \"nom\": \"OSM N&B\",\n \"url\": \"http://www.toolserver.org/tiles/bw-mapnik/{z}/{x}/{y}.png\",\n \"attrib\": \"Tiles hosted by wikimedia labs. Data by ©<a href='http://openstreetmap.org'>OSM</a> contributors, licence <a href='http://opendatacommons.org/licenses/odbl/'>ODbL</a>.\",\n \"zMin\": 1,\n \"zMax\": 20\n },\n {\n \"id\": \"sat\",\n \"nom\": \"Satellite Esri\",\n \"url\": \"http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}\",\n \"attrib\": \"©Map tiles by Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community\",\n \"zMin\": 1,\n \"zMax\": 20\n },\n {\n \"id\": \"natgeo\",\n \"nom\": \"National Geog.\",\n \"url\": \"http://server.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/tile/{z}/{y}/{x}\",\n \"attrib\": \"©Map tiles by Esri — National Geographic, Esri, DeLorme, NAVTEQ, UNEP-WCMC, USGS, NASA, ESA, METI, NRCAN, GEBCO, NOAA, iPC\",\n \"zMin\": 1,\n \"zMax\": 12\n },\n {\n \"id\": \"toner\",\n \"nom\": \"Black Ink\",\n \"url\": \"http://{s}.tile.stamen.com/toner/{z}/{x}/{y}.png\",\n \"attrib\": \"Map tiles by <a href='http://stamen.com'>Stamen Design</a>, licence <a href='http://creativecommons.org/licenses/by/3.0'>CC BY 3.0</a>. Data by ©<a href='http://openstreetmap.org'>OSM</a> contributors, licence <a href='http://opendatacommons.org/licenses/odbl/'>ODbL</a>.\",\n \"zMin\": 1,\n \"zMax\": 20\n },\n {\n \"id\": \"water\",\n \"nom\": \"Water painting\",\n \"url\": \"http://{s}.tile.stamen.com/watercolor/{z}/{x}/{y}.png\",\n \"attrib\": \"Map tiles by <a href='http://stamen.com'>Stamen Design</a>, licence <a href='http://creativecommons.org/licenses/by/3.0'>CC BY 3.0</a>. Data by ©<a href='http://openstreetmap.org'>OSM</a> contributors, licence <a href='http://opendatacommons.org/licenses/odbl/'>ODbL</a>.\",\n \"zMin\": 1,\n \"zMax\": 20\n },\n {\n \"id\": \"thunder\",\n \"nom\": \"Thunderforest\",\n \"url\": \"http://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png\",\n \"attrib\": \"Map tiles by <a href='http://thunderforest.com/'>Thunderforest</a>. Data by ©<a href='http://openstreetmap.org'>OSM</a> contributors, licence <a href='http://opendatacommons.org/licenses/odbl/'>ODbL</a>.\",\n \"zMin\": 1,\n \"zMax\": 20\n },\n {\n \"id\": \"dark\",\n \"nom\": \"Dark Matter\",\n \"url\": \"http://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png\",\n \"attrib\": \"©Map tiles by <a href='https://cartodb.com/basemaps/' target='_blank'>CartoDB</a>, under <a href='https://creativecommons.org/licenses/by/3.0/' target='_blank'>CC BY 3.0</a>. Data by ©<a href='http://openstreetmap.org'>OSM</a> contributors, licence <a href='http://opendatacommons.org/licenses/odbl/'>ODbL</a>.\",\n \"zMin\": 1,\n \"zMax\": 20\n },\n {\n \"id\": \"positron\",\n \"nom\": \"Positron\",\n \"url\": \"http://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png\",\n \"attrib\": \"©Map tiles by <a href='https://cartodb.com/basemaps/' target='_blank'>CartoDB</a>, under <a href='https://creativecommons.org/licenses/by/3.0/' target='_blank'>CC BY 3.0</a>. Data by ©<a href='http://openstreetmap.org'>OSM</a> contributors, licence <a href='http://opendatacommons.org/licenses/odbl/'>ODbL</a>.\",\n \"zMin\": 1,\n \"zMax\": 20\n }\n]\n",
"type": "application/json",
"title": "$:/plugins/sycom/leaflet/lib/tileLayers.json"
},
"$:/plugins/sycom/leaflet/lib/leaflet.css": {
"text": "/* required styles */\n\n.leaflet-pane,\n.leaflet-tile,\n.leaflet-marker-icon,\n.leaflet-marker-shadow,\n.leaflet-tile-container,\n.leaflet-pane > svg,\n.leaflet-pane > canvas,\n.leaflet-zoom-box,\n.leaflet-image-layer,\n.leaflet-layer {\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\t}\n.leaflet-container {\n\toverflow: hidden;\n\t}\n.leaflet-tile,\n.leaflet-marker-icon,\n.leaflet-marker-shadow {\n\t-webkit-user-select: none;\n\t -moz-user-select: none;\n\t user-select: none;\n\t -webkit-user-drag: none;\n\t}\n/* Safari renders non-retina tile on retina better with this, but Chrome is worse */\n.leaflet-safari .leaflet-tile {\n\timage-rendering: -webkit-optimize-contrast;\n\t}\n/* hack that prevents hw layers \"stretching\" when loading new tiles */\n.leaflet-safari .leaflet-tile-container {\n\twidth: 1600px;\n\theight: 1600px;\n\t-webkit-transform-origin: 0 0;\n\t}\n.leaflet-marker-icon,\n.leaflet-marker-shadow {\n\tdisplay: block;\n\t}\n/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */\n/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */\n.leaflet-container .leaflet-overlay-pane svg,\n.leaflet-container .leaflet-marker-pane img,\n.leaflet-container .leaflet-shadow-pane img,\n.leaflet-container .leaflet-tile-pane img,\n.leaflet-container img.leaflet-image-layer {\n\tmax-width: none !important;\n\tmax-height: none !important;\n\t}\n\n.leaflet-container.leaflet-touch-zoom {\n\t-ms-touch-action: pan-x pan-y;\n\ttouch-action: pan-x pan-y;\n\t}\n.leaflet-container.leaflet-touch-drag {\n\t-ms-touch-action: pinch-zoom;\n\t/* Fallback for FF which doesn't support pinch-zoom */\n\ttouch-action: none;\n\ttouch-action: pinch-zoom;\n}\n.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.leaflet-container {\n\t-webkit-tap-highlight-color: transparent;\n}\n.leaflet-container a {\n\t-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);\n}\n.leaflet-tile {\n\tfilter: inherit;\n\tvisibility: hidden;\n\t}\n.leaflet-tile-loaded {\n\tvisibility: inherit;\n\t}\n.leaflet-zoom-box {\n\twidth: 0;\n\theight: 0;\n\t-moz-box-sizing: border-box;\n\t box-sizing: border-box;\n\tz-index: 800;\n\t}\n/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */\n.leaflet-overlay-pane svg {\n\t-moz-user-select: none;\n\t}\n\n.leaflet-pane { z-index: 400; }\n\n.leaflet-tile-pane { z-index: 200; }\n.leaflet-overlay-pane { z-index: 400; }\n.leaflet-shadow-pane { z-index: 500; }\n.leaflet-marker-pane { z-index: 600; }\n.leaflet-tooltip-pane { z-index: 650; }\n.leaflet-popup-pane { z-index: 700; }\n\n.leaflet-map-pane canvas { z-index: 100; }\n.leaflet-map-pane svg { z-index: 200; }\n\n.leaflet-vml-shape {\n\twidth: 1px;\n\theight: 1px;\n\t}\n.lvml {\n\tbehavior: url(#default#VML);\n\tdisplay: inline-block;\n\tposition: absolute;\n\t}\n\n\n/* control positioning */\n\n.leaflet-control {\n\tposition: relative;\n\tz-index: 800;\n\tpointer-events: visiblePainted; /* IE 9-10 doesn't have auto */\n\tpointer-events: auto;\n\t}\n.leaflet-top,\n.leaflet-bottom {\n\tposition: absolute;\n\tz-index: 1000;\n\tpointer-events: none;\n\t}\n.leaflet-top {\n\ttop: 0;\n\t}\n.leaflet-right {\n\tright: 0;\n\t}\n.leaflet-bottom {\n\tbottom: 0;\n\t}\n.leaflet-left {\n\tleft: 0;\n\t}\n.leaflet-control {\n\tfloat: left;\n\tclear: both;\n\t}\n.leaflet-right .leaflet-control {\n\tfloat: right;\n\t}\n.leaflet-top .leaflet-control {\n\tmargin-top: 10px;\n\t}\n.leaflet-bottom .leaflet-control {\n\tmargin-bottom: 10px;\n\t}\n.leaflet-left .leaflet-control {\n\tmargin-left: 10px;\n\t}\n.leaflet-right .leaflet-control {\n\tmargin-right: 10px;\n\t}\n\n\n/* zoom and fade animations */\n\n.leaflet-fade-anim .leaflet-tile {\n\twill-change: opacity;\n\t}\n.leaflet-fade-anim .leaflet-popup {\n\topacity: 0;\n\t-webkit-transition: opacity 0.2s linear;\n\t -moz-transition: opacity 0.2s linear;\n\t -o-transition: opacity 0.2s linear;\n\t transition: opacity 0.2s linear;\n\t}\n.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {\n\topacity: 1;\n\t}\n.leaflet-zoom-animated {\n\t-webkit-transform-origin: 0 0;\n\t -ms-transform-origin: 0 0;\n\t transform-origin: 0 0;\n\t}\n.leaflet-zoom-anim .leaflet-zoom-animated {\n\twill-change: transform;\n\t}\n.leaflet-zoom-anim .leaflet-zoom-animated {\n\t-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);\n\t -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);\n\t -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1);\n\t transition: transform 0.25s cubic-bezier(0,0,0.25,1);\n\t}\n.leaflet-zoom-anim .leaflet-tile,\n.leaflet-pan-anim .leaflet-tile {\n\t-webkit-transition: none;\n\t -moz-transition: none;\n\t -o-transition: none;\n\t transition: none;\n\t}\n\n.leaflet-zoom-anim .leaflet-zoom-hide {\n\tvisibility: hidden;\n\t}\n\n\n/* cursors */\n\n.leaflet-interactive {\n\tcursor: pointer;\n\t}\n.leaflet-grab {\n\tcursor: -webkit-grab;\n\tcursor: -moz-grab;\n\t}\n.leaflet-crosshair,\n.leaflet-crosshair .leaflet-interactive {\n\tcursor: crosshair;\n\t}\n.leaflet-popup-pane,\n.leaflet-control {\n\tcursor: auto;\n\t}\n.leaflet-dragging .leaflet-grab,\n.leaflet-dragging .leaflet-grab .leaflet-interactive,\n.leaflet-dragging .leaflet-marker-draggable {\n\tcursor: move;\n\tcursor: -webkit-grabbing;\n\tcursor: -moz-grabbing;\n\t}\n\n/* marker & overlays interactivity */\n.leaflet-marker-icon,\n.leaflet-marker-shadow,\n.leaflet-image-layer,\n.leaflet-pane > svg path,\n.leaflet-tile-container {\n\tpointer-events: none;\n\t}\n\n.leaflet-marker-icon.leaflet-interactive,\n.leaflet-image-layer.leaflet-interactive,\n.leaflet-pane > svg path.leaflet-interactive {\n\tpointer-events: visiblePainted; /* IE 9-10 doesn't have auto */\n\tpointer-events: auto;\n\t}\n\n/* visual tweaks */\n\n.leaflet-container {\n\tbackground: #ddd;\n\toutline: 0;\n\t}\n.leaflet-container a {\n\tcolor: #0078A8;\n\t}\n.leaflet-container a.leaflet-active {\n\toutline: 2px solid orange;\n\t}\n.leaflet-zoom-box {\n\tborder: 2px dotted #38f;\n\tbackground: rgba(255,255,255,0.5);\n\t}\n\n\n/* general typography */\n.leaflet-container {\n\tfont: 12px/1.5 \"Helvetica Neue\", Arial, Helvetica, sans-serif;\n\t}\n\n\n/* general toolbar styles */\n\n.leaflet-bar {\n\tbox-shadow: 0 1px 5px rgba(0,0,0,0.65);\n\tborder-radius: 4px;\n\t}\n.leaflet-bar a,\n.leaflet-bar a:hover {\n\tbackground-color: #fff;\n\tborder-bottom: 1px solid #ccc;\n\twidth: 26px;\n\theight: 26px;\n\tline-height: 26px;\n\tdisplay: block;\n\ttext-align: center;\n\ttext-decoration: none;\n\tcolor: black;\n\t}\n.leaflet-bar a,\n.leaflet-control-layers-toggle {\n\tbackground-position: 50% 50%;\n\tbackground-repeat: no-repeat;\n\tdisplay: block;\n\t}\n.leaflet-bar a:hover {\n\tbackground-color: #f4f4f4;\n\t}\n.leaflet-bar a:first-child {\n\tborder-top-left-radius: 4px;\n\tborder-top-right-radius: 4px;\n\t}\n.leaflet-bar a:last-child {\n\tborder-bottom-left-radius: 4px;\n\tborder-bottom-right-radius: 4px;\n\tborder-bottom: none;\n\t}\n.leaflet-bar a.leaflet-disabled {\n\tcursor: default;\n\tbackground-color: #f4f4f4;\n\tcolor: #bbb;\n\t}\n\n.leaflet-touch .leaflet-bar a {\n\twidth: 30px;\n\theight: 30px;\n\tline-height: 30px;\n\t}\n.leaflet-touch .leaflet-bar a:first-child {\n\tborder-top-left-radius: 2px;\n\tborder-top-right-radius: 2px;\n\t}\n.leaflet-touch .leaflet-bar a:last-child {\n\tborder-bottom-left-radius: 2px;\n\tborder-bottom-right-radius: 2px;\n\t}\n\n/* zoom control */\n\n.leaflet-control-zoom-in,\n.leaflet-control-zoom-out {\n\tfont: bold 18px 'Lucida Console', Monaco, monospace;\n\ttext-indent: 1px;\n\t}\n\n.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out {\n\tfont-size: 22px;\n\t}\n\n\n/* layers control */\n\n.leaflet-control-layers {\n\tbox-shadow: 0 1px 5px rgba(0,0,0,0.4);\n\tbackground: #fff;\n\tborder-radius: 5px;\n\t}\n.leaflet-control-layers-toggle {\n\tbackground-image: url(images/layers.png);\n\twidth: 36px;\n\theight: 36px;\n\t}\n.leaflet-retina .leaflet-control-layers-toggle {\n\tbackground-image: url(images/layers-2x.png);\n\tbackground-size: 26px 26px;\n\t}\n.leaflet-touch .leaflet-control-layers-toggle {\n\twidth: 44px;\n\theight: 44px;\n\t}\n.leaflet-control-layers .leaflet-control-layers-list,\n.leaflet-control-layers-expanded .leaflet-control-layers-toggle {\n\tdisplay: none;\n\t}\n.leaflet-control-layers-expanded .leaflet-control-layers-list {\n\tdisplay: block;\n\tposition: relative;\n\t}\n.leaflet-control-layers-expanded {\n\tpadding: 6px 10px 6px 6px;\n\tcolor: #333;\n\tbackground: #fff;\n\t}\n.leaflet-control-layers-scrollbar {\n\toverflow-y: scroll;\n\toverflow-x: hidden;\n\tpadding-right: 5px;\n\t}\n.leaflet-control-layers-selector {\n\tmargin-top: 2px;\n\tposition: relative;\n\ttop: 1px;\n\t}\n.leaflet-control-layers label {\n\tdisplay: block;\n\t}\n.leaflet-control-layers-separator {\n\theight: 0;\n\tborder-top: 1px solid #ddd;\n\tmargin: 5px -10px 5px -6px;\n\t}\n\n/* Default icon URLs */\n.leaflet-default-icon-path {\n\tbackground-image: url(images/marker-icon.png);\n\t}\n\n\n/* attribution and scale controls */\n\n.leaflet-container .leaflet-control-attribution {\n\tbackground: #fff;\n\tbackground: rgba(255, 255, 255, 0.7);\n\tmargin: 0;\n\t}\n.leaflet-control-attribution,\n.leaflet-control-scale-line {\n\tpadding: 0 5px;\n\tcolor: #333;\n\t}\n.leaflet-control-attribution a {\n\ttext-decoration: none;\n\t}\n.leaflet-control-attribution a:hover {\n\ttext-decoration: underline;\n\t}\n.leaflet-container .leaflet-control-attribution,\n.leaflet-container .leaflet-control-scale {\n\tfont-size: 11px;\n\t}\n.leaflet-left .leaflet-control-scale {\n\tmargin-left: 5px;\n\t}\n.leaflet-bottom .leaflet-control-scale {\n\tmargin-bottom: 5px;\n\t}\n.leaflet-control-scale-line {\n\tborder: 2px solid #777;\n\tborder-top: none;\n\tline-height: 1.1;\n\tpadding: 2px 5px 1px;\n\tfont-size: 11px;\n\twhite-space: nowrap;\n\toverflow: hidden;\n\t-moz-box-sizing: border-box;\n\t box-sizing: border-box;\n\n\tbackground: #fff;\n\tbackground: rgba(255, 255, 255, 0.5);\n\t}\n.leaflet-control-scale-line:not(:first-child) {\n\tborder-top: 2px solid #777;\n\tborder-bottom: none;\n\tmargin-top: -2px;\n\t}\n.leaflet-control-scale-line:not(:first-child):not(:last-child) {\n\tborder-bottom: 2px solid #777;\n\t}\n\n.leaflet-touch .leaflet-control-attribution,\n.leaflet-touch .leaflet-control-layers,\n.leaflet-touch .leaflet-bar {\n\tbox-shadow: none;\n\t}\n.leaflet-touch .leaflet-control-layers,\n.leaflet-touch .leaflet-bar {\n\tborder: 2px solid rgba(0,0,0,0.2);\n\tbackground-clip: padding-box;\n\t}\n\n\n/* popup */\n\n.leaflet-popup {\n\tposition: absolute;\n\ttext-align: center;\n\tmargin-bottom: 20px;\n\t}\n.leaflet-popup-content-wrapper {\n\tpadding: 1px;\n\ttext-align: left;\n\tborder-radius: 12px;\n\t}\n.leaflet-popup-content {\n\tmargin: 13px 19px;\n\tline-height: 1.4;\n\t}\n.leaflet-popup-content p {\n\tmargin: 18px 0;\n\t}\n.leaflet-popup-tip-container {\n\twidth: 40px;\n\theight: 20px;\n\tposition: absolute;\n\tleft: 50%;\n\tmargin-left: -20px;\n\toverflow: hidden;\n\tpointer-events: none;\n\t}\n.leaflet-popup-tip {\n\twidth: 17px;\n\theight: 17px;\n\tpadding: 1px;\n\n\tmargin: -10px auto 0;\n\n\t-webkit-transform: rotate(45deg);\n\t -moz-transform: rotate(45deg);\n\t -ms-transform: rotate(45deg);\n\t -o-transform: rotate(45deg);\n\t transform: rotate(45deg);\n\t}\n.leaflet-popup-content-wrapper,\n.leaflet-popup-tip {\n\tbackground: white;\n\tcolor: #333;\n\tbox-shadow: 0 3px 14px rgba(0,0,0,0.4);\n\t}\n.leaflet-container a.leaflet-popup-close-button {\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\tpadding: 4px 4px 0 0;\n\tborder: none;\n\ttext-align: center;\n\twidth: 18px;\n\theight: 14px;\n\tfont: 16px/14px Tahoma, Verdana, sans-serif;\n\tcolor: #c3c3c3;\n\ttext-decoration: none;\n\tfont-weight: bold;\n\tbackground: transparent;\n\t}\n.leaflet-container a.leaflet-popup-close-button:hover {\n\tcolor: #999;\n\t}\n.leaflet-popup-scrolled {\n\toverflow: auto;\n\tborder-bottom: 1px solid #ddd;\n\tborder-top: 1px solid #ddd;\n\t}\n\n.leaflet-oldie .leaflet-popup-content-wrapper {\n\tzoom: 1;\n\t}\n.leaflet-oldie .leaflet-popup-tip {\n\twidth: 24px;\n\tmargin: 0 auto;\n\n\t-ms-filter: \"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)\";\n\tfilter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);\n\t}\n.leaflet-oldie .leaflet-popup-tip-container {\n\tmargin-top: -1px;\n\t}\n\n.leaflet-oldie .leaflet-control-zoom,\n.leaflet-oldie .leaflet-control-layers,\n.leaflet-oldie .leaflet-popup-content-wrapper,\n.leaflet-oldie .leaflet-popup-tip {\n\tborder: 1px solid #999;\n\t}\n\n\n/* div icon */\n\n.leaflet-div-icon {\n\tbackground: #fff;\n\tborder: 1px solid #666;\n\t}\n\n\n/* Tooltip */\n/* Base styles for the element that has a tooltip */\n.leaflet-tooltip {\n\tposition: absolute;\n\tpadding: 6px;\n\tbackground-color: #fff;\n\tborder: 1px solid #fff;\n\tborder-radius: 3px;\n\tcolor: #222;\n\twhite-space: nowrap;\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\tpointer-events: none;\n\tbox-shadow: 0 1px 3px rgba(0,0,0,0.4);\n\t}\n.leaflet-tooltip.leaflet-clickable {\n\tcursor: pointer;\n\tpointer-events: auto;\n\t}\n.leaflet-tooltip-top:before,\n.leaflet-tooltip-bottom:before,\n.leaflet-tooltip-left:before,\n.leaflet-tooltip-right:before {\n\tposition: absolute;\n\tpointer-events: none;\n\tborder: 6px solid transparent;\n\tbackground: transparent;\n\tcontent: \"\";\n\t}\n\n/* Directions */\n\n.leaflet-tooltip-bottom {\n\tmargin-top: 6px;\n}\n.leaflet-tooltip-top {\n\tmargin-top: -6px;\n}\n.leaflet-tooltip-bottom:before,\n.leaflet-tooltip-top:before {\n\tleft: 50%;\n\tmargin-left: -6px;\n\t}\n.leaflet-tooltip-top:before {\n\tbottom: 0;\n\tmargin-bottom: -12px;\n\tborder-top-color: #fff;\n\t}\n.leaflet-tooltip-bottom:before {\n\ttop: 0;\n\tmargin-top: -12px;\n\tmargin-left: -6px;\n\tborder-bottom-color: #fff;\n\t}\n.leaflet-tooltip-left {\n\tmargin-left: -6px;\n}\n.leaflet-tooltip-right {\n\tmargin-left: 6px;\n}\n.leaflet-tooltip-left:before,\n.leaflet-tooltip-right:before {\n\ttop: 50%;\n\tmargin-top: -6px;\n\t}\n.leaflet-tooltip-left:before {\n\tright: 0;\n\tmargin-right: -12px;\n\tborder-left-color: #fff;\n\t}\n.leaflet-tooltip-right:before {\n\tleft: 0;\n\tmargin-left: -12px;\n\tborder-right-color: #fff;\n\t}\n",
"type": "text/css",
"title": "$:/plugins/sycom/leaflet/lib/leaflet.css",
"tags": "$:/tags/Stylesheet"
},
"$:/plugins/sycom/leaflet/lib/leaflet-markercluster.css": {
"text": ".leaflet-cluster-anim .leaflet-marker-icon, .leaflet-cluster-anim .leaflet-marker-shadow {\n\t-webkit-transition: -webkit-transform 0.3s ease-out, opacity 0.3s ease-in;\n\t-moz-transition: -moz-transform 0.3s ease-out, opacity 0.3s ease-in;\n\t-o-transition: -o-transform 0.3s ease-out, opacity 0.3s ease-in;\n\ttransition: transform 0.3s ease-out, opacity 0.3s ease-in;\n}\n\n.leaflet-cluster-spider-leg {\n\t/* stroke-dashoffset (duration and function) should match with leaflet-marker-icon transform in order to track it exactly */\n\t-webkit-transition: -webkit-stroke-dashoffset 0.3s ease-out, -webkit-stroke-opacity 0.3s ease-in;\n\t-moz-transition: -moz-stroke-dashoffset 0.3s ease-out, -moz-stroke-opacity 0.3s ease-in;\n\t-o-transition: -o-stroke-dashoffset 0.3s ease-out, -o-stroke-opacity 0.3s ease-in;\n\ttransition: stroke-dashoffset 0.3s ease-out, stroke-opacity 0.3s ease-in;\n}\n",
"type": "text/css",
"title": "$:/plugins/sycom/leaflet/lib/leaflet-markercluster.css",
"tags": "$:/tags/Stylesheet"
},
"$:/plugins/sycom/leaflet/lib/leaflet.js": {
"text": "var L;if($tw.browser){\n/* @preserve\n * Leaflet 1.3.1, a JS library for interactive maps. http://leafletjs.com\n * (c) 2010-2017 Vladimir Agafonkin, (c) 2010-2011 CloudMade\n */\n!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?i(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],i):i(t.L={})}(this,function(t){\"use strict\";function i(t){var i,e,n,o;for(e=1,n=arguments.length;e<n;e++){o=arguments[e];for(i in o)t[i]=o[i]}return t}function e(t,i){var e=Array.prototype.slice;if(t.bind)return t.bind.apply(t,e.call(arguments,1));var n=e.call(arguments,2);return function(){return t.apply(i,n.length?n.concat(e.call(arguments)):arguments)}}function n(t){return t._leaflet_id=t._leaflet_id||++ti,t._leaflet_id}function o(t,i,e){var n,o,s,r;return r=function(){n=!1,o&&(s.apply(e,o),o=!1)},s=function(){n?o=arguments:(t.apply(e,arguments),setTimeout(r,i),n=!0)}}function s(t,i,e){var n=i[1],o=i[0],s=n-o;return t===n&&e?t:((t-o)%s+s)%s+o}function r(){return!1}function a(t,i){var e=Math.pow(10,void 0===i?6:i);return Math.round(t*e)/e}function h(t){return t.trim?t.trim():t.replace(/^\\s+|\\s+$/g,\"\")}function u(t){return h(t).split(/\\s+/)}function l(t,i){t.hasOwnProperty(\"options\")||(t.options=t.options?Qt(t.options):{});for(var e in i)t.options[e]=i[e];return t.options}function c(t,i,e){var n=[];for(var o in t)n.push(encodeURIComponent(e?o.toUpperCase():o)+\"=\"+encodeURIComponent(t[o]));return(i&&-1!==i.indexOf(\"?\")?\"&\":\"?\")+n.join(\"&\")}function _(t,i){return t.replace(ii,function(t,e){var n=i[e];if(void 0===n)throw new Error(\"No value provided for variable \"+t);return\"function\"==typeof n&&(n=n(i)),n})}function d(t,i){for(var e=0;e<t.length;e++)if(t[e]===i)return e;return-1}function p(t){return window[\"webkit\"+t]||window[\"moz\"+t]||window[\"ms\"+t]}function m(t){var i=+new Date,e=Math.max(0,16-(i-oi));return oi=i+e,window.setTimeout(t,e)}function f(t,i,n){if(!n||si!==m)return si.call(window,e(t,i));t.call(i)}function g(t){t&&ri.call(window,t)}function v(){}function y(t){if(\"undefined\"!=typeof L&&L&&L.Mixin){t=ei(t)?t:[t];for(var i=0;i<t.length;i++)t[i]===L.Mixin.Events&&console.warn(\"Deprecated include of L.Mixin.Events: this property will be removed in future releases, please inherit from L.Evented instead.\",(new Error).stack)}}function x(t,i,e){this.x=e?Math.round(t):t,this.y=e?Math.round(i):i}function w(t,i,e){return t instanceof x?t:ei(t)?new x(t[0],t[1]):void 0===t||null===t?t:\"object\"==typeof t&&\"x\"in t&&\"y\"in t?new x(t.x,t.y):new x(t,i,e)}function P(t,i){if(t)for(var e=i?[t,i]:t,n=0,o=e.length;n<o;n++)this.extend(e[n])}function b(t,i){return!t||t instanceof P?t:new P(t,i)}function T(t,i){if(t)for(var e=i?[t,i]:t,n=0,o=e.length;n<o;n++)this.extend(e[n])}function z(t,i){return t instanceof T?t:new T(t,i)}function M(t,i,e){if(isNaN(t)||isNaN(i))throw new Error(\"Invalid LatLng object: (\"+t+\", \"+i+\")\");this.lat=+t,this.lng=+i,void 0!==e&&(this.alt=+e)}function C(t,i,e){return t instanceof M?t:ei(t)&&\"object\"!=typeof t[0]?3===t.length?new M(t[0],t[1],t[2]):2===t.length?new M(t[0],t[1]):null:void 0===t||null===t?t:\"object\"==typeof t&&\"lat\"in t?new M(t.lat,\"lng\"in t?t.lng:t.lon,t.alt):void 0===i?null:new M(t,i,e)}function Z(t,i,e,n){if(ei(t))return this._a=t[0],this._b=t[1],this._c=t[2],void(this._d=t[3]);this._a=t,this._b=i,this._c=e,this._d=n}function S(t,i,e,n){return new Z(t,i,e,n)}function E(t){return document.createElementNS(\"http://www.w3.org/2000/svg\",t)}function k(t,i){var e,n,o,s,r,a,h=\"\";for(e=0,o=t.length;e<o;e++){for(n=0,s=(r=t[e]).length;n<s;n++)a=r[n],h+=(n?\"L\":\"M\")+a.x+\" \"+a.y;h+=i?Xi?\"z\":\"x\":\"\"}return h||\"M0 0\"}function I(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}function A(t,i,e,n){return\"touchstart\"===i?O(t,e,n):\"touchmove\"===i?W(t,e,n):\"touchend\"===i&&H(t,e,n),this}function B(t,i,e){var n=t[\"_leaflet_\"+i+e];return\"touchstart\"===i?t.removeEventListener(Qi,n,!1):\"touchmove\"===i?t.removeEventListener(te,n,!1):\"touchend\"===i&&(t.removeEventListener(ie,n,!1),t.removeEventListener(ee,n,!1)),this}function O(t,i,n){var o=e(function(t){if(\"mouse\"!==t.pointerType&&t.MSPOINTER_TYPE_MOUSE&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE){if(!(ne.indexOf(t.target.tagName)<0))return;$(t)}j(t,i)});t[\"_leaflet_touchstart\"+n]=o,t.addEventListener(Qi,o,!1),se||(document.documentElement.addEventListener(Qi,R,!0),document.documentElement.addEventListener(te,D,!0),document.documentElement.addEventListener(ie,N,!0),document.documentElement.addEventListener(ee,N,!0),se=!0)}function R(t){oe[t.pointerId]=t,re++}function D(t){oe[t.pointerId]&&(oe[t.pointerId]=t)}function N(t){delete oe[t.pointerId],re--}function j(t,i){t.touches=[];for(var e in oe)t.touches.push(oe[e]);t.changedTouches=[t],i(t)}function W(t,i,e){var n=function(t){(t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&\"mouse\"!==t.pointerType||0!==t.buttons)&&j(t,i)};t[\"_leaflet_touchmove\"+e]=n,t.addEventListener(te,n,!1)}function H(t,i,e){var n=function(t){j(t,i)};t[\"_leaflet_touchend\"+e]=n,t.addEventListener(ie,n,!1),t.addEventListener(ee,n,!1)}function F(t,i,e){function n(t){var i;if(Ui){if(!Pi||\"mouse\"===t.pointerType)return;i=re}else i=t.touches.length;if(!(i>1)){var e=Date.now(),n=e-(s||e);r=t.touches?t.touches[0]:t,a=n>0&&n<=h,s=e}}function o(t){if(a&&!r.cancelBubble){if(Ui){if(!Pi||\"mouse\"===t.pointerType)return;var e,n,o={};for(n in r)e=r[n],o[n]=e&&e.bind?e.bind(r):e;r=o}r.type=\"dblclick\",i(r),s=null}}var s,r,a=!1,h=250;return t[ue+ae+e]=n,t[ue+he+e]=o,t[ue+\"dblclick\"+e]=i,t.addEventListener(ae,n,!1),t.addEventListener(he,o,!1),t.addEventListener(\"dblclick\",i,!1),this}function U(t,i){var e=t[ue+ae+i],n=t[ue+he+i],o=t[ue+\"dblclick\"+i];return t.removeEventListener(ae,e,!1),t.removeEventListener(he,n,!1),Pi||t.removeEventListener(\"dblclick\",o,!1),this}function V(t,i,e,n){if(\"object\"==typeof i)for(var o in i)G(t,o,i[o],e);else for(var s=0,r=(i=u(i)).length;s<r;s++)G(t,i[s],e,n);return this}function q(t,i,e,n){if(\"object\"==typeof i)for(var o in i)K(t,o,i[o],e);else if(i)for(var s=0,r=(i=u(i)).length;s<r;s++)K(t,i[s],e,n);else{for(var a in t[le])K(t,a,t[le][a]);delete t[le]}return this}function G(t,i,e,o){var s=i+n(e)+(o?\"_\"+n(o):\"\");if(t[le]&&t[le][s])return this;var r=function(i){return e.call(o||t,i||window.event)},a=r;Ui&&0===i.indexOf(\"touch\")?A(t,i,r,s):!Vi||\"dblclick\"!==i||!F||Ui&&Si?\"addEventListener\"in t?\"mousewheel\"===i?t.addEventListener(\"onwheel\"in t?\"wheel\":\"mousewheel\",r,!1):\"mouseenter\"===i||\"mouseleave\"===i?(r=function(i){i=i||window.event,ot(t,i)&&a(i)},t.addEventListener(\"mouseenter\"===i?\"mouseover\":\"mouseout\",r,!1)):(\"click\"===i&&Ti&&(r=function(t){st(t,a)}),t.addEventListener(i,r,!1)):\"attachEvent\"in t&&t.attachEvent(\"on\"+i,r):F(t,r,s),t[le]=t[le]||{},t[le][s]=r}function K(t,i,e,o){var s=i+n(e)+(o?\"_\"+n(o):\"\"),r=t[le]&&t[le][s];if(!r)return this;Ui&&0===i.indexOf(\"touch\")?B(t,i,s):!Vi||\"dblclick\"!==i||!U||Ui&&Si?\"removeEventListener\"in t?\"mousewheel\"===i?t.removeEventListener(\"onwheel\"in t?\"wheel\":\"mousewheel\",r,!1):t.removeEventListener(\"mouseenter\"===i?\"mouseover\":\"mouseleave\"===i?\"mouseout\":i,r,!1):\"detachEvent\"in t&&t.detachEvent(\"on\"+i,r):U(t,s),t[le][s]=null}function Y(t){return t.stopPropagation?t.stopPropagation():t.originalEvent?t.originalEvent._stopped=!0:t.cancelBubble=!0,nt(t),this}function X(t){return G(t,\"mousewheel\",Y),this}function J(t){return V(t,\"mousedown touchstart dblclick\",Y),G(t,\"click\",et),this}function $(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this}function Q(t){return $(t),Y(t),this}function tt(t,i){if(!i)return new x(t.clientX,t.clientY);var e=i.getBoundingClientRect(),n=e.width/i.offsetWidth||1,o=e.height/i.offsetHeight||1;return new x(t.clientX/n-e.left-i.clientLeft,t.clientY/o-e.top-i.clientTop)}function it(t){return Pi?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/ce:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}function et(t){_e[t.type]=!0}function nt(t){var i=_e[t.type];return _e[t.type]=!1,i}function ot(t,i){var e=i.relatedTarget;if(!e)return!0;try{for(;e&&e!==t;)e=e.parentNode}catch(t){return!1}return e!==t}function st(t,i){var e=t.timeStamp||t.originalEvent&&t.originalEvent.timeStamp,n=pi&&e-pi;n&&n>100&&n<500||t.target._simulatedClick&&!t._simulated?Q(t):(pi=e,i(t))}function rt(t){return\"string\"==typeof t?document.getElementById(t):t}function at(t,i){var e=t.style[i]||t.currentStyle&&t.currentStyle[i];if((!e||\"auto\"===e)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);e=n?n[i]:null}return\"auto\"===e?null:e}function ht(t,i,e){var n=document.createElement(t);return n.className=i||\"\",e&&e.appendChild(n),n}function ut(t){var i=t.parentNode;i&&i.removeChild(t)}function lt(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function ct(t){var i=t.parentNode;i.lastChild!==t&&i.appendChild(t)}function _t(t){var i=t.parentNode;i.firstChild!==t&&i.insertBefore(t,i.firstChild)}function dt(t,i){if(void 0!==t.classList)return t.classList.contains(i);var e=gt(t);return e.length>0&&new RegExp(\"(^|\\\\s)\"+i+\"(\\\\s|$)\").test(e)}function pt(t,i){if(void 0!==t.classList)for(var e=u(i),n=0,o=e.length;n<o;n++)t.classList.add(e[n]);else if(!dt(t,i)){var s=gt(t);ft(t,(s?s+\" \":\"\")+i)}}function mt(t,i){void 0!==t.classList?t.classList.remove(i):ft(t,h((\" \"+gt(t)+\" \").replace(\" \"+i+\" \",\" \")))}function ft(t,i){void 0===t.className.baseVal?t.className=i:t.className.baseVal=i}function gt(t){return void 0===t.className.baseVal?t.className:t.className.baseVal}function vt(t,i){\"opacity\"in t.style?t.style.opacity=i:\"filter\"in t.style&&yt(t,i)}function yt(t,i){var e=!1,n=\"DXImageTransform.Microsoft.Alpha\";try{e=t.filters.item(n)}catch(t){if(1===i)return}i=Math.round(100*i),e?(e.Enabled=100!==i,e.Opacity=i):t.style.filter+=\" progid:\"+n+\"(opacity=\"+i+\")\"}function xt(t){for(var i=document.documentElement.style,e=0;e<t.length;e++)if(t[e]in i)return t[e];return!1}function wt(t,i,e){var n=i||new x(0,0);t.style[pe]=(Oi?\"translate(\"+n.x+\"px,\"+n.y+\"px)\":\"translate3d(\"+n.x+\"px,\"+n.y+\"px,0)\")+(e?\" scale(\"+e+\")\":\"\")}function Lt(t,i){t._leaflet_pos=i,Ni?wt(t,i):(t.style.left=i.x+\"px\",t.style.top=i.y+\"px\")}function Pt(t){return t._leaflet_pos||new x(0,0)}function bt(){V(window,\"dragstart\",$)}function Tt(){q(window,\"dragstart\",$)}function zt(t){for(;-1===t.tabIndex;)t=t.parentNode;t.style&&(Mt(),ve=t,ye=t.style.outline,t.style.outline=\"none\",V(window,\"keydown\",Mt))}function Mt(){ve&&(ve.style.outline=ye,ve=void 0,ye=void 0,q(window,\"keydown\",Mt))}function Ct(t,i){if(!i||!t.length)return t.slice();var e=i*i;return t=kt(t,e),t=St(t,e)}function Zt(t,i,e){return Math.sqrt(Rt(t,i,e,!0))}function St(t,i){var e=t.length,n=new(typeof Uint8Array!=void 0+\"\"?Uint8Array:Array)(e);n[0]=n[e-1]=1,Et(t,n,i,0,e-1);var o,s=[];for(o=0;o<e;o++)n[o]&&s.push(t[o]);return s}function Et(t,i,e,n,o){var s,r,a,h=0;for(r=n+1;r<=o-1;r++)(a=Rt(t[r],t[n],t[o],!0))>h&&(s=r,h=a);h>e&&(i[s]=1,Et(t,i,e,n,s),Et(t,i,e,s,o))}function kt(t,i){for(var e=[t[0]],n=1,o=0,s=t.length;n<s;n++)Ot(t[n],t[o])>i&&(e.push(t[n]),o=n);return o<s-1&&e.push(t[s-1]),e}function It(t,i,e,n,o){var s,r,a,h=n?Se:Bt(t,e),u=Bt(i,e);for(Se=u;;){if(!(h|u))return[t,i];if(h&u)return!1;a=Bt(r=At(t,i,s=h||u,e,o),e),s===h?(t=r,h=a):(i=r,u=a)}}function At(t,i,e,n,o){var s,r,a=i.x-t.x,h=i.y-t.y,u=n.min,l=n.max;return 8&e?(s=t.x+a*(l.y-t.y)/h,r=l.y):4&e?(s=t.x+a*(u.y-t.y)/h,r=u.y):2&e?(s=l.x,r=t.y+h*(l.x-t.x)/a):1&e&&(s=u.x,r=t.y+h*(u.x-t.x)/a),new x(s,r,o)}function Bt(t,i){var e=0;return t.x<i.min.x?e|=1:t.x>i.max.x&&(e|=2),t.y<i.min.y?e|=4:t.y>i.max.y&&(e|=8),e}function Ot(t,i){var e=i.x-t.x,n=i.y-t.y;return e*e+n*n}function Rt(t,i,e,n){var o,s=i.x,r=i.y,a=e.x-s,h=e.y-r,u=a*a+h*h;return u>0&&((o=((t.x-s)*a+(t.y-r)*h)/u)>1?(s=e.x,r=e.y):o>0&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new x(s,r)}function Dt(t){return!ei(t[0])||\"object\"!=typeof t[0][0]&&void 0!==t[0][0]}function Nt(t){return console.warn(\"Deprecated use of _flat, please use L.LineUtil.isFlat instead.\"),Dt(t)}function jt(t,i,e){var n,o,s,r,a,h,u,l,c,_=[1,4,2,8];for(o=0,u=t.length;o<u;o++)t[o]._code=Bt(t[o],i);for(r=0;r<4;r++){for(l=_[r],n=[],o=0,s=(u=t.length)-1;o<u;s=o++)a=t[o],h=t[s],a._code&l?h._code&l||((c=At(h,a,l,i,e))._code=Bt(c,i),n.push(c)):(h._code&l&&((c=At(h,a,l,i,e))._code=Bt(c,i),n.push(c)),n.push(a));t=n}return t}function Wt(t,i){var e,n,o,s,r=\"Feature\"===t.type?t.geometry:t,a=r?r.coordinates:null,h=[],u=i&&i.pointToLayer,l=i&&i.coordsToLatLng||Ht;if(!a&&!r)return null;switch(r.type){case\"Point\":return e=l(a),u?u(t,e):new Xe(e);case\"MultiPoint\":for(o=0,s=a.length;o<s;o++)e=l(a[o]),h.push(u?u(t,e):new Xe(e));return new qe(h);case\"LineString\":case\"MultiLineString\":return n=Ft(a,\"LineString\"===r.type?0:1,l),new tn(n,i);case\"Polygon\":case\"MultiPolygon\":return n=Ft(a,\"Polygon\"===r.type?1:2,l),new en(n,i);case\"GeometryCollection\":for(o=0,s=r.geometries.length;o<s;o++){var c=Wt({geometry:r.geometries[o],type:\"Feature\",properties:t.properties},i);c&&h.push(c)}return new qe(h);default:throw new Error(\"Invalid GeoJSON object.\")}}function Ht(t){return new M(t[1],t[0],t[2])}function Ft(t,i,e){for(var n,o=[],s=0,r=t.length;s<r;s++)n=i?Ft(t[s],i-1,e):(e||Ht)(t[s]),o.push(n);return o}function Ut(t,i){return i=\"number\"==typeof i?i:6,void 0!==t.alt?[a(t.lng,i),a(t.lat,i),a(t.alt,i)]:[a(t.lng,i),a(t.lat,i)]}function Vt(t,i,e,n){for(var o=[],s=0,r=t.length;s<r;s++)o.push(i?Vt(t[s],i-1,e,n):Ut(t[s],n));return!i&&e&&o.push(o[0]),o}function qt(t,e){return t.feature?i({},t.feature,{geometry:e}):Gt(e)}function Gt(t){return\"Feature\"===t.type||\"FeatureCollection\"===t.type?t:{type:\"Feature\",properties:{},geometry:t}}function Kt(t,i){return new nn(t,i)}function Yt(t,i){return new dn(t,i)}function Xt(t){return Yi?new fn(t):null}function Jt(t){return Xi||Ji?new xn(t):null}var $t=Object.freeze;Object.freeze=function(t){return t};var Qt=Object.create||function(){function t(){}return function(i){return t.prototype=i,new t}}(),ti=0,ii=/\\{ *([\\w_-]+) *\\}/g,ei=Array.isArray||function(t){return\"[object Array]\"===Object.prototype.toString.call(t)},ni=\"data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=\",oi=0,si=window.requestAnimationFrame||p(\"RequestAnimationFrame\")||m,ri=window.cancelAnimationFrame||p(\"CancelAnimationFrame\")||p(\"CancelRequestAnimationFrame\")||function(t){window.clearTimeout(t)},ai=(Object.freeze||Object)({freeze:$t,extend:i,create:Qt,bind:e,lastId:ti,stamp:n,throttle:o,wrapNum:s,falseFn:r,formatNum:a,trim:h,splitWords:u,setOptions:l,getParamString:c,template:_,isArray:ei,indexOf:d,emptyImageUrl:ni,requestFn:si,cancelFn:ri,requestAnimFrame:f,cancelAnimFrame:g});v.extend=function(t){var e=function(){this.initialize&&this.initialize.apply(this,arguments),this.callInitHooks()},n=e.__super__=this.prototype,o=Qt(n);o.constructor=e,e.prototype=o;for(var s in this)this.hasOwnProperty(s)&&\"prototype\"!==s&&\"__super__\"!==s&&(e[s]=this[s]);return t.statics&&(i(e,t.statics),delete t.statics),t.includes&&(y(t.includes),i.apply(null,[o].concat(t.includes)),delete t.includes),o.options&&(t.options=i(Qt(o.options),t.options)),i(o,t),o._initHooks=[],o.callInitHooks=function(){if(!this._initHooksCalled){n.callInitHooks&&n.callInitHooks.call(this),this._initHooksCalled=!0;for(var t=0,i=o._initHooks.length;t<i;t++)o._initHooks[t].call(this)}},e},v.include=function(t){return i(this.prototype,t),this},v.mergeOptions=function(t){return i(this.prototype.options,t),this},v.addInitHook=function(t){var i=Array.prototype.slice.call(arguments,1),e=\"function\"==typeof t?t:function(){this[t].apply(this,i)};return this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(e),this};var hi={on:function(t,i,e){if(\"object\"==typeof t)for(var n in t)this._on(n,t[n],i);else for(var o=0,s=(t=u(t)).length;o<s;o++)this._on(t[o],i,e);return this},off:function(t,i,e){if(t)if(\"object\"==typeof t)for(var n in t)this._off(n,t[n],i);else for(var o=0,s=(t=u(t)).length;o<s;o++)this._off(t[o],i,e);else delete this._events;return this},_on:function(t,i,e){this._events=this._events||{};var n=this._events[t];n||(n=[],this._events[t]=n),e===this&&(e=void 0);for(var o={fn:i,ctx:e},s=n,r=0,a=s.length;r<a;r++)if(s[r].fn===i&&s[r].ctx===e)return;s.push(o)},_off:function(t,i,e){var n,o,s;if(this._events&&(n=this._events[t]))if(i){if(e===this&&(e=void 0),n)for(o=0,s=n.length;o<s;o++){var a=n[o];if(a.ctx===e&&a.fn===i)return a.fn=r,this._firingCount&&(this._events[t]=n=n.slice()),void n.splice(o,1)}}else{for(o=0,s=n.length;o<s;o++)n[o].fn=r;delete this._events[t]}},fire:function(t,e,n){if(!this.listens(t,n))return this;var o=i({},e,{type:t,target:this,sourceTarget:e&&e.sourceTarget||this});if(this._events){var s=this._events[t];if(s){this._firingCount=this._firingCount+1||1;for(var r=0,a=s.length;r<a;r++){var h=s[r];h.fn.call(h.ctx||this,o)}this._firingCount--}}return n&&this._propagateEvent(o),this},listens:function(t,i){var e=this._events&&this._events[t];if(e&&e.length)return!0;if(i)for(var n in this._eventParents)if(this._eventParents[n].listens(t,i))return!0;return!1},once:function(t,i,n){if(\"object\"==typeof t){for(var o in t)this.once(o,t[o],i);return this}var s=e(function(){this.off(t,i,n).off(t,s,n)},this);return this.on(t,i,n).on(t,s,n)},addEventParent:function(t){return this._eventParents=this._eventParents||{},this._eventParents[n(t)]=t,this},removeEventParent:function(t){return this._eventParents&&delete this._eventParents[n(t)],this},_propagateEvent:function(t){for(var e in this._eventParents)this._eventParents[e].fire(t.type,i({layer:t.target,propagatedFrom:t.target},t),!0)}};hi.addEventListener=hi.on,hi.removeEventListener=hi.clearAllEventListeners=hi.off,hi.addOneTimeEventListener=hi.once,hi.fireEvent=hi.fire,hi.hasEventListeners=hi.listens;var ui=v.extend(hi),li=Math.trunc||function(t){return t>0?Math.floor(t):Math.ceil(t)};x.prototype={clone:function(){return new x(this.x,this.y)},add:function(t){return this.clone()._add(w(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(w(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},scaleBy:function(t){return new x(this.x*t.x,this.y*t.y)},unscaleBy:function(t){return new x(this.x/t.x,this.y/t.y)},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},trunc:function(){return this.clone()._trunc()},_trunc:function(){return this.x=li(this.x),this.y=li(this.y),this},distanceTo:function(t){var i=(t=w(t)).x-this.x,e=t.y-this.y;return Math.sqrt(i*i+e*e)},equals:function(t){return(t=w(t)).x===this.x&&t.y===this.y},contains:function(t){return t=w(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return\"Point(\"+a(this.x)+\", \"+a(this.y)+\")\"}},P.prototype={extend:function(t){return t=w(t),this.min||this.max?(this.min.x=Math.min(t.x,this.min.x),this.max.x=Math.max(t.x,this.max.x),this.min.y=Math.min(t.y,this.min.y),this.max.y=Math.max(t.y,this.max.y)):(this.min=t.clone(),this.max=t.clone()),this},getCenter:function(t){return new x((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,t)},getBottomLeft:function(){return new x(this.min.x,this.max.y)},getTopRight:function(){return new x(this.max.x,this.min.y)},getTopLeft:function(){return this.min},getBottomRight:function(){return this.max},getSize:function(){return this.max.subtract(this.min)},contains:function(t){var i,e;return(t=\"number\"==typeof t[0]||t instanceof x?w(t):b(t))instanceof P?(i=t.min,e=t.max):i=e=t,i.x>=this.min.x&&e.x<=this.max.x&&i.y>=this.min.y&&e.y<=this.max.y},intersects:function(t){t=b(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>=i.x&&n.x<=e.x,r=o.y>=i.y&&n.y<=e.y;return s&&r},overlaps:function(t){t=b(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>i.x&&n.x<e.x,r=o.y>i.y&&n.y<e.y;return s&&r},isValid:function(){return!(!this.min||!this.max)}},T.prototype={extend:function(t){var i,e,n=this._southWest,o=this._northEast;if(t instanceof M)i=t,e=t;else{if(!(t instanceof T))return t?this.extend(C(t)||z(t)):this;if(i=t._southWest,e=t._northEast,!i||!e)return this}return n||o?(n.lat=Math.min(i.lat,n.lat),n.lng=Math.min(i.lng,n.lng),o.lat=Math.max(e.lat,o.lat),o.lng=Math.max(e.lng,o.lng)):(this._southWest=new M(i.lat,i.lng),this._northEast=new M(e.lat,e.lng)),this},pad:function(t){var i=this._southWest,e=this._northEast,n=Math.abs(i.lat-e.lat)*t,o=Math.abs(i.lng-e.lng)*t;return new T(new M(i.lat-n,i.lng-o),new M(e.lat+n,e.lng+o))},getCenter:function(){return new M((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new M(this.getNorth(),this.getWest())},getSouthEast:function(){return new M(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(t){t=\"number\"==typeof t[0]||t instanceof M||\"lat\"in t?C(t):z(t);var i,e,n=this._southWest,o=this._northEast;return t instanceof T?(i=t.getSouthWest(),e=t.getNorthEast()):i=e=t,i.lat>=n.lat&&e.lat<=o.lat&&i.lng>=n.lng&&e.lng<=o.lng},intersects:function(t){t=z(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=i.lat&&n.lat<=e.lat,r=o.lng>=i.lng&&n.lng<=e.lng;return s&&r},overlaps:function(t){t=z(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>i.lat&&n.lat<e.lat,r=o.lng>i.lng&&n.lng<e.lng;return s&&r},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(\",\")},equals:function(t,i){return!!t&&(t=z(t),this._southWest.equals(t.getSouthWest(),i)&&this._northEast.equals(t.getNorthEast(),i))},isValid:function(){return!(!this._southWest||!this._northEast)}},M.prototype={equals:function(t,i){return!!t&&(t=C(t),Math.max(Math.abs(this.lat-t.lat),Math.abs(this.lng-t.lng))<=(void 0===i?1e-9:i))},toString:function(t){return\"LatLng(\"+a(this.lat,t)+\", \"+a(this.lng,t)+\")\"},distanceTo:function(t){return _i.distance(this,C(t))},wrap:function(){return _i.wrapLatLng(this)},toBounds:function(t){var i=180*t/40075017,e=i/Math.cos(Math.PI/180*this.lat);return z([this.lat-i,this.lng-e],[this.lat+i,this.lng+e])},clone:function(){return new M(this.lat,this.lng,this.alt)}};var ci={latLngToPoint:function(t,i){var e=this.projection.project(t),n=this.scale(i);return this.transformation._transform(e,n)},pointToLatLng:function(t,i){var e=this.scale(i),n=this.transformation.untransform(t,e);return this.projection.unproject(n)},project:function(t){return this.projection.project(t)},unproject:function(t){return this.projection.unproject(t)},scale:function(t){return 256*Math.pow(2,t)},zoom:function(t){return Math.log(t/256)/Math.LN2},getProjectedBounds:function(t){if(this.infinite)return null;var i=this.projection.bounds,e=this.scale(t);return new P(this.transformation.transform(i.min,e),this.transformation.transform(i.max,e))},infinite:!1,wrapLatLng:function(t){var i=this.wrapLng?s(t.lng,this.wrapLng,!0):t.lng;return new M(this.wrapLat?s(t.lat,this.wrapLat,!0):t.lat,i,t.alt)},wrapLatLngBounds:function(t){var i=t.getCenter(),e=this.wrapLatLng(i),n=i.lat-e.lat,o=i.lng-e.lng;if(0===n&&0===o)return t;var s=t.getSouthWest(),r=t.getNorthEast();return new T(new M(s.lat-n,s.lng-o),new M(r.lat-n,r.lng-o))}},_i=i({},ci,{wrapLng:[-180,180],R:6371e3,distance:function(t,i){var e=Math.PI/180,n=t.lat*e,o=i.lat*e,s=Math.sin((i.lat-t.lat)*e/2),r=Math.sin((i.lng-t.lng)*e/2),a=s*s+Math.cos(n)*Math.cos(o)*r*r,h=2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a));return this.R*h}}),di={R:6378137,MAX_LATITUDE:85.0511287798,project:function(t){var i=Math.PI/180,e=this.MAX_LATITUDE,n=Math.max(Math.min(e,t.lat),-e),o=Math.sin(n*i);return new x(this.R*t.lng*i,this.R*Math.log((1+o)/(1-o))/2)},unproject:function(t){var i=180/Math.PI;return new M((2*Math.atan(Math.exp(t.y/this.R))-Math.PI/2)*i,t.x*i/this.R)},bounds:function(){var t=6378137*Math.PI;return new P([-t,-t],[t,t])}()};Z.prototype={transform:function(t,i){return this._transform(t.clone(),i)},_transform:function(t,i){return i=i||1,t.x=i*(this._a*t.x+this._b),t.y=i*(this._c*t.y+this._d),t},untransform:function(t,i){return i=i||1,new x((t.x/i-this._b)/this._a,(t.y/i-this._d)/this._c)}};var pi,mi,fi,gi,vi=i({},_i,{code:\"EPSG:3857\",projection:di,transformation:function(){var t=.5/(Math.PI*di.R);return S(t,.5,-t,.5)}()}),yi=i({},vi,{code:\"EPSG:900913\"}),xi=document.documentElement.style,wi=\"ActiveXObject\"in window,Li=wi&&!document.addEventListener,Pi=\"msLaunchUri\"in navigator&&!(\"documentMode\"in document),bi=I(\"webkit\"),Ti=I(\"android\"),zi=I(\"android 2\")||I(\"android 3\"),Mi=parseInt(/WebKit\\/([0-9]+)|$/.exec(navigator.userAgent)[1],10),Ci=Ti&&I(\"Google\")&&Mi<537&&!(\"AudioNode\"in window),Zi=!!window.opera,Si=I(\"chrome\"),Ei=I(\"gecko\")&&!bi&&!Zi&&!wi,ki=!Si&&I(\"safari\"),Ii=I(\"phantom\"),Ai=\"OTransition\"in xi,Bi=0===navigator.platform.indexOf(\"Win\"),Oi=wi&&\"transition\"in xi,Ri=\"WebKitCSSMatrix\"in window&&\"m11\"in new window.WebKitCSSMatrix&&!zi,Di=\"MozPerspective\"in xi,Ni=!window.L_DISABLE_3D&&(Oi||Ri||Di)&&!Ai&&!Ii,ji=\"undefined\"!=typeof orientation||I(\"mobile\"),Wi=ji&&bi,Hi=ji&&Ri,Fi=!window.PointerEvent&&window.MSPointerEvent,Ui=!(!window.PointerEvent&&!Fi),Vi=!window.L_NO_TOUCH&&(Ui||\"ontouchstart\"in window||window.DocumentTouch&&document instanceof window.DocumentTouch),qi=ji&&Zi,Gi=ji&&Ei,Ki=(window.devicePixelRatio||window.screen.deviceXDPI/window.screen.logicalXDPI)>1,Yi=!!document.createElement(\"canvas\").getContext,Xi=!(!document.createElementNS||!E(\"svg\").createSVGRect),Ji=!Xi&&function(){try{var t=document.createElement(\"div\");t.innerHTML='<v:shape adj=\"1\"/>';var i=t.firstChild;return i.style.behavior=\"url(#default#VML)\",i&&\"object\"==typeof i.adj}catch(t){return!1}}(),$i=(Object.freeze||Object)({ie:wi,ielt9:Li,edge:Pi,webkit:bi,android:Ti,android23:zi,androidStock:Ci,opera:Zi,chrome:Si,gecko:Ei,safari:ki,phantom:Ii,opera12:Ai,win:Bi,ie3d:Oi,webkit3d:Ri,gecko3d:Di,any3d:Ni,mobile:ji,mobileWebkit:Wi,mobileWebkit3d:Hi,msPointer:Fi,pointer:Ui,touch:Vi,mobileOpera:qi,mobileGecko:Gi,retina:Ki,canvas:Yi,svg:Xi,vml:Ji}),Qi=Fi?\"MSPointerDown\":\"pointerdown\",te=Fi?\"MSPointerMove\":\"pointermove\",ie=Fi?\"MSPointerUp\":\"pointerup\",ee=Fi?\"MSPointerCancel\":\"pointercancel\",ne=[\"INPUT\",\"SELECT\",\"OPTION\"],oe={},se=!1,re=0,ae=Fi?\"MSPointerDown\":Ui?\"pointerdown\":\"touchstart\",he=Fi?\"MSPointerUp\":Ui?\"pointerup\":\"touchend\",ue=\"_leaflet_\",le=\"_leaflet_events\",ce=Bi&&Si?2*window.devicePixelRatio:Ei?window.devicePixelRatio:1,_e={},de=(Object.freeze||Object)({on:V,off:q,stopPropagation:Y,disableScrollPropagation:X,disableClickPropagation:J,preventDefault:$,stop:Q,getMousePosition:tt,getWheelDelta:it,fakeStop:et,skipped:nt,isExternalTarget:ot,addListener:V,removeListener:q}),pe=xt([\"transform\",\"WebkitTransform\",\"OTransform\",\"MozTransform\",\"msTransform\"]),me=xt([\"webkitTransition\",\"transition\",\"OTransition\",\"MozTransition\",\"msTransition\"]),fe=\"webkitTransition\"===me||\"OTransition\"===me?me+\"End\":\"transitionend\";if(\"onselectstart\"in document)mi=function(){V(window,\"selectstart\",$)},fi=function(){q(window,\"selectstart\",$)};else{var ge=xt([\"userSelect\",\"WebkitUserSelect\",\"OUserSelect\",\"MozUserSelect\",\"msUserSelect\"]);mi=function(){if(ge){var t=document.documentElement.style;gi=t[ge],t[ge]=\"none\"}},fi=function(){ge&&(document.documentElement.style[ge]=gi,gi=void 0)}}var ve,ye,xe=(Object.freeze||Object)({TRANSFORM:pe,TRANSITION:me,TRANSITION_END:fe,get:rt,getStyle:at,create:ht,remove:ut,empty:lt,toFront:ct,toBack:_t,hasClass:dt,addClass:pt,removeClass:mt,setClass:ft,getClass:gt,setOpacity:vt,testProp:xt,setTransform:wt,setPosition:Lt,getPosition:Pt,disableTextSelection:mi,enableTextSelection:fi,disableImageDrag:bt,enableImageDrag:Tt,preventOutline:zt,restoreOutline:Mt}),we=ui.extend({run:function(t,i,e,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=e||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=Pt(t),this._offset=i.subtract(this._startPos),this._startTime=+new Date,this.fire(\"start\"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=f(this._animate,this),this._step()},_step:function(t){var i=+new Date-this._startTime,e=1e3*this._duration;i<e?this._runFrame(this._easeOut(i/e),t):(this._runFrame(1),this._complete())},_runFrame:function(t,i){var e=this._startPos.add(this._offset.multiplyBy(t));i&&e._round(),Lt(this._el,e),this.fire(\"step\")},_complete:function(){g(this._animId),this._inProgress=!1,this.fire(\"end\")},_easeOut:function(t){return 1-Math.pow(1-t,this._easeOutPower)}}),Le=ui.extend({options:{crs:vi,center:void 0,zoom:void 0,minZoom:void 0,maxZoom:void 0,layers:[],maxBounds:void 0,renderer:void 0,zoomAnimation:!0,zoomAnimationThreshold:4,fadeAnimation:!0,markerZoomAnimation:!0,transform3DLimit:8388608,zoomSnap:1,zoomDelta:1,trackResize:!0},initialize:function(t,i){i=l(this,i),this._initContainer(t),this._initLayout(),this._onResize=e(this._onResize,this),this._initEvents(),i.maxBounds&&this.setMaxBounds(i.maxBounds),void 0!==i.zoom&&(this._zoom=this._limitZoom(i.zoom)),i.center&&void 0!==i.zoom&&this.setView(C(i.center),i.zoom,{reset:!0}),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._sizeChanged=!0,this.callInitHooks(),this._zoomAnimated=me&&Ni&&!qi&&this.options.zoomAnimation,this._zoomAnimated&&(this._createAnimProxy(),V(this._proxy,fe,this._catchTransitionEnd,this)),this._addLayers(this.options.layers)},setView:function(t,e,n){return e=void 0===e?this._zoom:this._limitZoom(e),t=this._limitCenter(C(t),e,this.options.maxBounds),n=n||{},this._stop(),this._loaded&&!n.reset&&!0!==n&&(void 0!==n.animate&&(n.zoom=i({animate:n.animate},n.zoom),n.pan=i({animate:n.animate,duration:n.duration},n.pan)),this._zoom!==e?this._tryAnimatedZoom&&this._tryAnimatedZoom(t,e,n.zoom):this._tryAnimatedPan(t,n.pan))?(clearTimeout(this._sizeTimer),this):(this._resetView(t,e),this)},setZoom:function(t,i){return this._loaded?this.setView(this.getCenter(),t,{zoom:i}):(this._zoom=t,this)},zoomIn:function(t,i){return t=t||(Ni?this.options.zoomDelta:1),this.setZoom(this._zoom+t,i)},zoomOut:function(t,i){return t=t||(Ni?this.options.zoomDelta:1),this.setZoom(this._zoom-t,i)},setZoomAround:function(t,i,e){var n=this.getZoomScale(i),o=this.getSize().divideBy(2),s=(t instanceof x?t:this.latLngToContainerPoint(t)).subtract(o).multiplyBy(1-1/n),r=this.containerPointToLatLng(o.add(s));return this.setView(r,i,{zoom:e})},_getBoundsCenterZoom:function(t,i){i=i||{},t=t.getBounds?t.getBounds():z(t);var e=w(i.paddingTopLeft||i.padding||[0,0]),n=w(i.paddingBottomRight||i.padding||[0,0]),o=this.getBoundsZoom(t,!1,e.add(n));if((o=\"number\"==typeof i.maxZoom?Math.min(i.maxZoom,o):o)===1/0)return{center:t.getCenter(),zoom:o};var s=n.subtract(e).divideBy(2),r=this.project(t.getSouthWest(),o),a=this.project(t.getNorthEast(),o);return{center:this.unproject(r.add(a).divideBy(2).add(s),o),zoom:o}},fitBounds:function(t,i){if(!(t=z(t)).isValid())throw new Error(\"Bounds are not valid.\");var e=this._getBoundsCenterZoom(t,i);return this.setView(e.center,e.zoom,i)},fitWorld:function(t){return this.fitBounds([[-90,-180],[90,180]],t)},panTo:function(t,i){return this.setView(t,this._zoom,{pan:i})},panBy:function(t,i){if(t=w(t).round(),i=i||{},!t.x&&!t.y)return this.fire(\"moveend\");if(!0!==i.animate&&!this.getSize().contains(t))return this._resetView(this.unproject(this.project(this.getCenter()).add(t)),this.getZoom()),this;if(this._panAnim||(this._panAnim=new we,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),i.noMoveStart||this.fire(\"movestart\"),!1!==i.animate){pt(this._mapPane,\"leaflet-pan-anim\");var e=this._getMapPanePos().subtract(t).round();this._panAnim.run(this._mapPane,e,i.duration||.25,i.easeLinearity)}else this._rawPanBy(t),this.fire(\"move\").fire(\"moveend\");return this},flyTo:function(t,i,e){function n(t){var i=(g*g-m*m+(t?-1:1)*x*x*v*v)/(2*(t?g:m)*x*v),e=Math.sqrt(i*i+1)-i;return e<1e-9?-18:Math.log(e)}function o(t){return(Math.exp(t)-Math.exp(-t))/2}function s(t){return(Math.exp(t)+Math.exp(-t))/2}function r(t){return o(t)/s(t)}function a(t){return m*(s(w)/s(w+y*t))}function h(t){return m*(s(w)*r(w+y*t)-o(w))/x}function u(t){return 1-Math.pow(1-t,1.5)}function l(){var e=(Date.now()-L)/b,n=u(e)*P;e<=1?(this._flyToFrame=f(l,this),this._move(this.unproject(c.add(_.subtract(c).multiplyBy(h(n)/v)),p),this.getScaleZoom(m/a(n),p),{flyTo:!0})):this._move(t,i)._moveEnd(!0)}if(!1===(e=e||{}).animate||!Ni)return this.setView(t,i,e);this._stop();var c=this.project(this.getCenter()),_=this.project(t),d=this.getSize(),p=this._zoom;t=C(t),i=void 0===i?p:i;var m=Math.max(d.x,d.y),g=m*this.getZoomScale(p,i),v=_.distanceTo(c)||1,y=1.42,x=y*y,w=n(0),L=Date.now(),P=(n(1)-w)/y,b=e.duration?1e3*e.duration:1e3*P*.8;return this._moveStart(!0,e.noMoveStart),l.call(this),this},flyToBounds:function(t,i){var e=this._getBoundsCenterZoom(t,i);return this.flyTo(e.center,e.zoom,i)},setMaxBounds:function(t){return(t=z(t)).isValid()?(this.options.maxBounds&&this.off(\"moveend\",this._panInsideMaxBounds),this.options.maxBounds=t,this._loaded&&this._panInsideMaxBounds(),this.on(\"moveend\",this._panInsideMaxBounds)):(this.options.maxBounds=null,this.off(\"moveend\",this._panInsideMaxBounds))},setMinZoom:function(t){var i=this.options.minZoom;return this.options.minZoom=t,this._loaded&&i!==t&&(this.fire(\"zoomlevelschange\"),this.getZoom()<this.options.minZoom)?this.setZoom(t):this},setMaxZoom:function(t){var i=this.options.maxZoom;return this.options.maxZoom=t,this._loaded&&i!==t&&(this.fire(\"zoomlevelschange\"),this.getZoom()>this.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,i){this._enforcingBounds=!0;var e=this.getCenter(),n=this._limitCenter(e,this._zoom,z(t));return e.equals(n)||this.panTo(n,i),this._enforcingBounds=!1,this},invalidateSize:function(t){if(!this._loaded)return this;t=i({animate:!1,pan:!0},!0===t?{animate:!0}:t);var n=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var o=this.getSize(),s=n.divideBy(2).round(),r=o.divideBy(2).round(),a=s.subtract(r);return a.x||a.y?(t.animate&&t.pan?this.panBy(a):(t.pan&&this._rawPanBy(a),this.fire(\"move\"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(e(this.fire,this,\"moveend\"),200)):this.fire(\"moveend\")),this.fire(\"resize\",{oldSize:n,newSize:o})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire(\"viewreset\"),this._stop()},locate:function(t){if(t=this._locateOptions=i({timeout:1e4,watch:!1},t),!(\"geolocation\"in navigator))return this._handleGeolocationError({code:0,message:\"Geolocation not supported.\"}),this;var n=e(this._handleGeolocationResponse,this),o=e(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(n,o,t):navigator.geolocation.getCurrentPosition(n,o,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var i=t.code,e=t.message||(1===i?\"permission denied\":2===i?\"position unavailable\":\"timeout\");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire(\"locationerror\",{code:i,message:\"Geolocation error: \"+e+\".\"})},_handleGeolocationResponse:function(t){var i=new M(t.coords.latitude,t.coords.longitude),e=i.toBounds(t.coords.accuracy),n=this._locateOptions;if(n.setView){var o=this.getBoundsZoom(e);this.setView(i,n.maxZoom?Math.min(o,n.maxZoom):o)}var s={latlng:i,bounds:e,timestamp:t.timestamp};for(var r in t.coords)\"number\"==typeof t.coords[r]&&(s[r]=t.coords[r]);this.fire(\"locationfound\",s)},addHandler:function(t,i){if(!i)return this;var e=this[t]=new i(this);return this._handlers.push(e),this.options[t]&&e.enable(),this},remove:function(){if(this._initEvents(!0),this._containerId!==this._container._leaflet_id)throw new Error(\"Map container is being reused by another instance\");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),ut(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._clearHandlers(),this._loaded&&this.fire(\"unload\");var t;for(t in this._layers)this._layers[t].remove();for(t in this._panes)ut(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,i){var e=ht(\"div\",\"leaflet-pane\"+(t?\" leaflet-\"+t.replace(\"Pane\",\"\")+\"-pane\":\"\"),i||this._mapPane);return t&&(this._panes[t]=e),e},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new T(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,i,e){t=z(t),e=w(e||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(e),u=b(this.project(a,n),this.project(r,n)).getSize(),l=Ni?this.options.zoomSnap:1,c=h.x/u.x,_=h.y/u.y,d=i?Math.max(c,_):Math.min(c,_);return n=this.getScaleZoom(d,n),l&&(n=Math.round(n/(l/100))*(l/100),n=i?Math.ceil(n/l)*l:Math.floor(n/l)*l),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new x(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,i){var e=this._getTopLeftPoint(t,i);return new P(e,e.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return\"string\"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,i){var e=this.options.crs;return i=void 0===i?this._zoom:i,e.scale(t)/e.scale(i)},getScaleZoom:function(t,i){var e=this.options.crs;i=void 0===i?this._zoom:i;var n=e.zoom(t*e.scale(i));return isNaN(n)?1/0:n},project:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.latLngToPoint(C(t),i)},unproject:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.pointToLatLng(w(t),i)},layerPointToLatLng:function(t){var i=w(t).add(this.getPixelOrigin());return this.unproject(i)},latLngToLayerPoint:function(t){return this.project(C(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(C(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(z(t))},distance:function(t,i){return this.options.crs.distance(C(t),C(i))},containerPointToLayerPoint:function(t){return w(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return w(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var i=this.containerPointToLayerPoint(w(t));return this.layerPointToLatLng(i)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(C(t)))},mouseEventToContainerPoint:function(t){return tt(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var i=this._container=rt(t);if(!i)throw new Error(\"Map container not found.\");if(i._leaflet_id)throw new Error(\"Map container is already initialized.\");V(i,\"scroll\",this._onScroll,this),this._containerId=n(i)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&Ni,pt(t,\"leaflet-container\"+(Vi?\" leaflet-touch\":\"\")+(Ki?\" leaflet-retina\":\"\")+(Li?\" leaflet-oldie\":\"\")+(ki?\" leaflet-safari\":\"\")+(this._fadeAnimated?\" leaflet-fade-anim\":\"\"));var i=at(t,\"position\");\"absolute\"!==i&&\"relative\"!==i&&\"fixed\"!==i&&(t.style.position=\"relative\"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane(\"mapPane\",this._container),Lt(this._mapPane,new x(0,0)),this.createPane(\"tilePane\"),this.createPane(\"shadowPane\"),this.createPane(\"overlayPane\"),this.createPane(\"markerPane\"),this.createPane(\"tooltipPane\"),this.createPane(\"popupPane\"),this.options.markerZoomAnimation||(pt(t.markerPane,\"leaflet-zoom-hide\"),pt(t.shadowPane,\"leaflet-zoom-hide\"))},_resetView:function(t,i){Lt(this._mapPane,new x(0,0));var e=!this._loaded;this._loaded=!0,i=this._limitZoom(i),this.fire(\"viewprereset\");var n=this._zoom!==i;this._moveStart(n,!1)._move(t,i)._moveEnd(n),this.fire(\"viewreset\"),e&&this.fire(\"load\")},_moveStart:function(t,i){return t&&this.fire(\"zoomstart\"),i||this.fire(\"movestart\"),this},_move:function(t,i,e){void 0===i&&(i=this._zoom);var n=this._zoom!==i;return this._zoom=i,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),(n||e&&e.pinch)&&this.fire(\"zoom\",e),this.fire(\"move\",e)},_moveEnd:function(t){return t&&this.fire(\"zoomend\"),this.fire(\"moveend\")},_stop:function(){return g(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Lt(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error(\"Set map center and zoom first.\")},_initEvents:function(t){this._targets={},this._targets[n(this._container)]=this;var i=t?q:V;i(this._container,\"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress\",this._handleDOMEvent,this),this.options.trackResize&&i(window,\"resize\",this._onResize,this),Ni&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,\"moveend\",this._onMoveEnd)},_onResize:function(){g(this._resizeRequest),this._resizeRequest=f(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,i){for(var e,o=[],s=\"mouseout\"===i||\"mouseover\"===i,r=t.target||t.srcElement,a=!1;r;){if((e=this._targets[n(r)])&&(\"click\"===i||\"preclick\"===i)&&!t._simulated&&this._draggableMoved(e)){a=!0;break}if(e&&e.listens(i,!0)){if(s&&!ot(r,t))break;if(o.push(e),s)break}if(r===this._container)break;r=r.parentNode}return o.length||a||s||!ot(r,t)||(o=[this]),o},_handleDOMEvent:function(t){if(this._loaded&&!nt(t)){var i=t.type;\"mousedown\"!==i&&\"keypress\"!==i||zt(t.target||t.srcElement),this._fireDOMEvent(t,i)}},_mouseEvents:[\"click\",\"dblclick\",\"mouseover\",\"mouseout\",\"contextmenu\"],_fireDOMEvent:function(t,e,n){if(\"click\"===t.type){var o=i({},t);o.type=\"preclick\",this._fireDOMEvent(o,o.type,n)}if(!t._stopped&&(n=(n||[]).concat(this._findEventTargets(t,e))).length){var s=n[0];\"contextmenu\"===e&&s.listens(e,!0)&&$(t);var r={originalEvent:t};if(\"keypress\"!==t.type){var a=s.getLatLng&&(!s._radius||s._radius<=10);r.containerPoint=a?this.latLngToContainerPoint(s.getLatLng()):this.mouseEventToContainerPoint(t),r.layerPoint=this.containerPointToLayerPoint(r.containerPoint),r.latlng=a?s.getLatLng():this.layerPointToLatLng(r.layerPoint)}for(var h=0;h<n.length;h++)if(n[h].fire(e,r,!0),r.originalEvent._stopped||!1===n[h].options.bubblingMouseEvents&&-1!==d(this._mouseEvents,e))return}},_draggableMoved:function(t){return(t=t.dragging&&t.dragging.enabled()?t:this).dragging&&t.dragging.moved()||this.boxZoom&&this.boxZoom.moved()},_clearHandlers:function(){for(var t=0,i=this._handlers.length;t<i;t++)this._handlers[t].disable()},whenReady:function(t,i){return this._loaded?t.call(i||this,{target:this}):this.on(\"load\",t,i),this},_getMapPanePos:function(){return Pt(this._mapPane)||new x(0,0)},_moved:function(){var t=this._getMapPanePos();return t&&!t.equals([0,0])},_getTopLeftPoint:function(t,i){return(t&&void 0!==i?this._getNewPixelOrigin(t,i):this.getPixelOrigin()).subtract(this._getMapPanePos())},_getNewPixelOrigin:function(t,i){var e=this.getSize()._divideBy(2);return this.project(t,i)._subtract(e)._add(this._getMapPanePos())._round()},_latLngToNewLayerPoint:function(t,i,e){var n=this._getNewPixelOrigin(e,i);return this.project(t,i)._subtract(n)},_latLngBoundsToNewLayerBounds:function(t,i,e){var n=this._getNewPixelOrigin(e,i);return b([this.project(t.getSouthWest(),i)._subtract(n),this.project(t.getNorthWest(),i)._subtract(n),this.project(t.getSouthEast(),i)._subtract(n),this.project(t.getNorthEast(),i)._subtract(n)])},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(t){return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint())},_limitCenter:function(t,i,e){if(!e)return t;var n=this.project(t,i),o=this.getSize().divideBy(2),s=new P(n.subtract(o),n.add(o)),r=this._getBoundsOffset(s,e,i);return r.round().equals([0,0])?t:this.unproject(n.add(r),i)},_limitOffset:function(t,i){if(!i)return t;var e=this.getPixelBounds(),n=new P(e.min.add(t),e.max.add(t));return t.add(this._getBoundsOffset(n,i))},_getBoundsOffset:function(t,i,e){var n=b(this.project(i.getNorthEast(),e),this.project(i.getSouthWest(),e)),o=n.min.subtract(t.min),s=n.max.subtract(t.max);return new x(this._rebound(o.x,-s.x),this._rebound(o.y,-s.y))},_rebound:function(t,i){return t+i>0?Math.round(t-i)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(i))},_limitZoom:function(t){var i=this.getMinZoom(),e=this.getMaxZoom(),n=Ni?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(i,Math.min(e,t))},_onPanTransitionStep:function(){this.fire(\"move\")},_onPanTransitionEnd:function(){mt(this._mapPane,\"leaflet-pan-anim\"),this.fire(\"moveend\")},_tryAnimatedPan:function(t,i){var e=this._getCenterOffset(t)._trunc();return!(!0!==(i&&i.animate)&&!this.getSize().contains(e))&&(this.panBy(e,i),!0)},_createAnimProxy:function(){var t=this._proxy=ht(\"div\",\"leaflet-proxy leaflet-zoom-animated\");this._panes.mapPane.appendChild(t),this.on(\"zoomanim\",function(t){var i=pe,e=this._proxy.style[i];wt(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),e===this._proxy.style[i]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on(\"load moveend\",function(){var t=this.getCenter(),i=this.getZoom();wt(this._proxy,this.project(t,i),this.getZoomScale(i,1))},this),this._on(\"unload\",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){ut(this._proxy),delete this._proxy},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf(\"transform\")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName(\"leaflet-zoom-animated\").length},_tryAnimatedZoom:function(t,i,e){if(this._animatingZoom)return!0;if(e=e||{},!this._zoomAnimated||!1===e.animate||this._nothingToAnimate()||Math.abs(i-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(i),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==e.animate&&!this.getSize().contains(o))&&(f(function(){this._moveStart(!0,!1)._animateZoom(t,i,!0)},this),!0)},_animateZoom:function(t,i,n,o){this._mapPane&&(n&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=i,pt(this._mapPane,\"leaflet-zoom-anim\")),this.fire(\"zoomanim\",{center:t,zoom:i,noUpdate:o}),setTimeout(e(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&mt(this._mapPane,\"leaflet-zoom-anim\"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),f(function(){this._moveEnd(!0)},this))}}),Pe=v.extend({options:{position:\"topright\"},initialize:function(t){l(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var i=this._map;return i&&i.removeControl(this),this.options.position=t,i&&i.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var i=this._container=this.onAdd(t),e=this.getPosition(),n=t._controlCorners[e];return pt(i,\"leaflet-control\"),-1!==e.indexOf(\"bottom\")?n.insertBefore(i,n.firstChild):n.appendChild(i),this},remove:function(){return this._map?(ut(this._container),this.onRemove&&this.onRemove(this._map),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),be=function(t){return new Pe(t)};Le.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){function t(t,o){var s=e+t+\" \"+e+o;i[t+o]=ht(\"div\",s,n)}var i=this._controlCorners={},e=\"leaflet-\",n=this._controlContainer=ht(\"div\",e+\"control-container\",this._container);t(\"top\",\"left\"),t(\"top\",\"right\"),t(\"bottom\",\"left\"),t(\"bottom\",\"right\")},_clearControlPos:function(){for(var t in this._controlCorners)ut(this._controlCorners[t]);ut(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var Te=Pe.extend({options:{collapsed:!0,position:\"topright\",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,i,e,n){return e<n?-1:n<e?1:0}},initialize:function(t,i,e){l(this,e),this._layerControlInputs=[],this._layers=[],this._lastZIndex=0,this._handlingClick=!1;for(var n in t)this._addLayer(t[n],n);for(n in i)this._addLayer(i[n],n,!0)},onAdd:function(t){this._initLayout(),this._update(),this._map=t,t.on(\"zoomend\",this._checkDisabledLayers,this);for(var i=0;i<this._layers.length;i++)this._layers[i].layer.on(\"add remove\",this._onLayerChange,this);return this._container},addTo:function(t){return Pe.prototype.addTo.call(this,t),this._expandIfNotCollapsed()},onRemove:function(){this._map.off(\"zoomend\",this._checkDisabledLayers,this);for(var t=0;t<this._layers.length;t++)this._layers[t].layer.off(\"add remove\",this._onLayerChange,this)},addBaseLayer:function(t,i){return this._addLayer(t,i),this._map?this._update():this},addOverlay:function(t,i){return this._addLayer(t,i,!0),this._map?this._update():this},removeLayer:function(t){t.off(\"add remove\",this._onLayerChange,this);var i=this._getLayer(n(t));return i&&this._layers.splice(this._layers.indexOf(i),1),this._map?this._update():this},expand:function(){pt(this._container,\"leaflet-control-layers-expanded\"),this._form.style.height=null;var t=this._map.getSize().y-(this._container.offsetTop+50);return t<this._form.clientHeight?(pt(this._form,\"leaflet-control-layers-scrollbar\"),this._form.style.height=t+\"px\"):mt(this._form,\"leaflet-control-layers-scrollbar\"),this._checkDisabledLayers(),this},collapse:function(){return mt(this._container,\"leaflet-control-layers-expanded\"),this},_initLayout:function(){var t=\"leaflet-control-layers\",i=this._container=ht(\"div\",t),e=this.options.collapsed;i.setAttribute(\"aria-haspopup\",!0),J(i),X(i);var n=this._form=ht(\"form\",t+\"-list\");e&&(this._map.on(\"click\",this.collapse,this),Ti||V(i,{mouseenter:this.expand,mouseleave:this.collapse},this));var o=this._layersLink=ht(\"a\",t+\"-toggle\",i);o.href=\"#\",o.title=\"Layers\",Vi?(V(o,\"click\",Q),V(o,\"click\",this.expand,this)):V(o,\"focus\",this.expand,this),e||this.expand(),this._baseLayersList=ht(\"div\",t+\"-base\",n),this._separator=ht(\"div\",t+\"-separator\",n),this._overlaysList=ht(\"div\",t+\"-overlays\",n),i.appendChild(n)},_getLayer:function(t){for(var i=0;i<this._layers.length;i++)if(this._layers[i]&&n(this._layers[i].layer)===t)return this._layers[i]},_addLayer:function(t,i,n){this._map&&t.on(\"add remove\",this._onLayerChange,this),this._layers.push({layer:t,name:i,overlay:n}),this.options.sortLayers&&this._layers.sort(e(function(t,i){return this.options.sortFunction(t.layer,i.layer,t.name,i.name)},this)),this.options.autoZIndex&&t.setZIndex&&(this._lastZIndex++,t.setZIndex(this._lastZIndex)),this._expandIfNotCollapsed()},_update:function(){if(!this._container)return this;lt(this._baseLayersList),lt(this._overlaysList),this._layerControlInputs=[];var t,i,e,n,o=0;for(e=0;e<this._layers.length;e++)n=this._layers[e],this._addItem(n),i=i||n.overlay,t=t||!n.overlay,o+=n.overlay?0:1;return this.options.hideSingleBase&&(t=t&&o>1,this._baseLayersList.style.display=t?\"\":\"none\"),this._separator.style.display=i&&t?\"\":\"none\",this},_onLayerChange:function(t){this._handlingClick||this._update();var i=this._getLayer(n(t.target)),e=i.overlay?\"add\"===t.type?\"overlayadd\":\"overlayremove\":\"add\"===t.type?\"baselayerchange\":null;e&&this._map.fire(e,i)},_createRadioElement:function(t,i){var e='<input type=\"radio\" class=\"leaflet-control-layers-selector\" name=\"'+t+'\"'+(i?' checked=\"checked\"':\"\")+\"/>\",n=document.createElement(\"div\");return n.innerHTML=e,n.firstChild},_addItem:function(t){var i,e=document.createElement(\"label\"),o=this._map.hasLayer(t.layer);t.overlay?((i=document.createElement(\"input\")).type=\"checkbox\",i.className=\"leaflet-control-layers-selector\",i.defaultChecked=o):i=this._createRadioElement(\"leaflet-base-layers\",o),this._layerControlInputs.push(i),i.layerId=n(t.layer),V(i,\"click\",this._onInputClick,this);var s=document.createElement(\"span\");s.innerHTML=\" \"+t.name;var r=document.createElement(\"div\");return e.appendChild(r),r.appendChild(i),r.appendChild(s),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(e),this._checkDisabledLayers(),e},_onInputClick:function(){var t,i,e=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=e.length-1;s>=0;s--)t=e[s],i=this._getLayer(t.layerId).layer,t.checked?n.push(i):t.checked||o.push(i);for(s=0;s<o.length;s++)this._map.hasLayer(o[s])&&this._map.removeLayer(o[s]);for(s=0;s<n.length;s++)this._map.hasLayer(n[s])||this._map.addLayer(n[s]);this._handlingClick=!1,this._refocusOnMap()},_checkDisabledLayers:function(){for(var t,i,e=this._layerControlInputs,n=this._map.getZoom(),o=e.length-1;o>=0;o--)t=e[o],i=this._getLayer(t.layerId).layer,t.disabled=void 0!==i.options.minZoom&&n<i.options.minZoom||void 0!==i.options.maxZoom&&n>i.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),ze=Pe.extend({options:{position:\"topleft\",zoomInText:\"+\",zoomInTitle:\"Zoom in\",zoomOutText:\"−\",zoomOutTitle:\"Zoom out\"},onAdd:function(t){var i=\"leaflet-control-zoom\",e=ht(\"div\",i+\" leaflet-bar\"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,i+\"-in\",e,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,i+\"-out\",e,this._zoomOut),this._updateDisabled(),t.on(\"zoomend zoomlevelschange\",this._updateDisabled,this),e},onRemove:function(t){t.off(\"zoomend zoomlevelschange\",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoom<this._map.getMaxZoom()&&this._map.zoomIn(this._map.options.zoomDelta*(t.shiftKey?3:1))},_zoomOut:function(t){!this._disabled&&this._map._zoom>this._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,i,e,n,o){var s=ht(\"a\",e,n);return s.innerHTML=t,s.href=\"#\",s.title=i,s.setAttribute(\"role\",\"button\"),s.setAttribute(\"aria-label\",i),J(s),V(s,\"click\",Q),V(s,\"click\",o,this),V(s,\"click\",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,i=\"leaflet-disabled\";mt(this._zoomInButton,i),mt(this._zoomOutButton,i),(this._disabled||t._zoom===t.getMinZoom())&&pt(this._zoomOutButton,i),(this._disabled||t._zoom===t.getMaxZoom())&&pt(this._zoomInButton,i)}});Le.mergeOptions({zoomControl:!0}),Le.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new ze,this.addControl(this.zoomControl))});var Me=Pe.extend({options:{position:\"bottomleft\",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var i=ht(\"div\",\"leaflet-control-scale\"),e=this.options;return this._addScales(e,\"leaflet-control-scale-line\",i),t.on(e.updateWhenIdle?\"moveend\":\"move\",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?\"moveend\":\"move\",this._update,this)},_addScales:function(t,i,e){t.metric&&(this._mScale=ht(\"div\",i,e)),t.imperial&&(this._iScale=ht(\"div\",i,e))},_update:function(){var t=this._map,i=t.getSize().y/2,e=t.distance(t.containerPointToLatLng([0,i]),t.containerPointToLatLng([this.options.maxWidth,i]));this._updateScales(e)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var i=this._getRoundNum(t),e=i<1e3?i+\" m\":i/1e3+\" km\";this._updateScale(this._mScale,e,i/t)},_updateImperial:function(t){var i,e,n,o=3.2808399*t;o>5280?(i=o/5280,e=this._getRoundNum(i),this._updateScale(this._iScale,e+\" mi\",e/i)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+\" ft\",n/o))},_updateScale:function(t,i,e){t.style.width=Math.round(this.options.maxWidth*e)+\"px\",t.innerHTML=i},_getRoundNum:function(t){var i=Math.pow(10,(Math.floor(t)+\"\").length-1),e=t/i;return e=e>=10?10:e>=5?5:e>=3?3:e>=2?2:1,i*e}}),Ce=Pe.extend({options:{position:\"bottomright\",prefix:'<a href=\"http://leafletjs.com\" title=\"A JS library for interactive maps\">Leaflet</a>'},initialize:function(t){l(this,t),this._attributions={}},onAdd:function(t){t.attributionControl=this,this._container=ht(\"div\",\"leaflet-control-attribution\"),J(this._container);for(var i in t._layers)t._layers[i].getAttribution&&this.addAttribution(t._layers[i].getAttribution());return this._update(),this._container},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var i in this._attributions)this._attributions[i]&&t.push(i);var e=[];this.options.prefix&&e.push(this.options.prefix),t.length&&e.push(t.join(\", \")),this._container.innerHTML=e.join(\" | \")}}});Le.mergeOptions({attributionControl:!0}),Le.addInitHook(function(){this.options.attributionControl&&(new Ce).addTo(this)});Pe.Layers=Te,Pe.Zoom=ze,Pe.Scale=Me,Pe.Attribution=Ce,be.layers=function(t,i,e){return new Te(t,i,e)},be.zoom=function(t){return new ze(t)},be.scale=function(t){return new Me(t)},be.attribution=function(t){return new Ce(t)};var Ze=v.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled?this:(this._enabled=!0,this.addHooks(),this)},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});Ze.addTo=function(t,i){return t.addHandler(i,this),this};var Se,Ee={Events:hi},ke=Vi?\"touchstart mousedown\":\"mousedown\",Ie={mousedown:\"mouseup\",touchstart:\"touchend\",pointerdown:\"touchend\",MSPointerDown:\"touchend\"},Ae={mousedown:\"mousemove\",touchstart:\"touchmove\",pointerdown:\"touchmove\",MSPointerDown:\"touchmove\"},Be=ui.extend({options:{clickTolerance:3},initialize:function(t,i,e,n){l(this,n),this._element=t,this._dragStartTarget=i||t,this._preventOutline=e},enable:function(){this._enabled||(V(this._dragStartTarget,ke,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Be._dragging===this&&this.finishDrag(),q(this._dragStartTarget,ke,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(!t._simulated&&this._enabled&&(this._moved=!1,!dt(this._element,\"leaflet-zoom-anim\")&&!(Be._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(Be._dragging=this,this._preventOutline&&zt(this._element),bt(),mi(),this._moving)))){this.fire(\"down\");var i=t.touches?t.touches[0]:t;this._startPoint=new x(i.clientX,i.clientY),V(document,Ae[t.type],this._onMove,this),V(document,Ie[t.type],this._onUp,this)}},_onMove:function(t){if(!t._simulated&&this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var i=t.touches&&1===t.touches.length?t.touches[0]:t,e=new x(i.clientX,i.clientY).subtract(this._startPoint);(e.x||e.y)&&(Math.abs(e.x)+Math.abs(e.y)<this.options.clickTolerance||($(t),this._moved||(this.fire(\"dragstart\"),this._moved=!0,this._startPos=Pt(this._element).subtract(e),pt(document.body,\"leaflet-dragging\"),this._lastTarget=t.target||t.srcElement,window.SVGElementInstance&&this._lastTarget instanceof SVGElementInstance&&(this._lastTarget=this._lastTarget.correspondingUseElement),pt(this._lastTarget,\"leaflet-drag-target\")),this._newPos=this._startPos.add(e),this._moving=!0,g(this._animRequest),this._lastEvent=t,this._animRequest=f(this._updatePosition,this,!0)))}},_updatePosition:function(){var t={originalEvent:this._lastEvent};this.fire(\"predrag\",t),Lt(this._element,this._newPos),this.fire(\"drag\",t)},_onUp:function(t){!t._simulated&&this._enabled&&this.finishDrag()},finishDrag:function(){mt(document.body,\"leaflet-dragging\"),this._lastTarget&&(mt(this._lastTarget,\"leaflet-drag-target\"),this._lastTarget=null);for(var t in Ae)q(document,Ae[t],this._onMove,this),q(document,Ie[t],this._onUp,this);Tt(),fi(),this._moved&&this._moving&&(g(this._animRequest),this.fire(\"dragend\",{distance:this._newPos.distanceTo(this._startPos)})),this._moving=!1,Be._dragging=!1}}),Oe=(Object.freeze||Object)({simplify:Ct,pointToSegmentDistance:Zt,closestPointOnSegment:function(t,i,e){return Rt(t,i,e)},clipSegment:It,_getEdgeIntersection:At,_getBitCode:Bt,_sqClosestPointOnSegment:Rt,isFlat:Dt,_flat:Nt}),Re=(Object.freeze||Object)({clipPolygon:jt}),De={project:function(t){return new x(t.lng,t.lat)},unproject:function(t){return new M(t.y,t.x)},bounds:new P([-180,-90],[180,90])},Ne={R:6378137,R_MINOR:6356752.314245179,bounds:new P([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(t){var i=Math.PI/180,e=this.R,n=t.lat*i,o=this.R_MINOR/e,s=Math.sqrt(1-o*o),r=s*Math.sin(n),a=Math.tan(Math.PI/4-n/2)/Math.pow((1-r)/(1+r),s/2);return n=-e*Math.log(Math.max(a,1e-10)),new x(t.lng*i*e,n)},unproject:function(t){for(var i,e=180/Math.PI,n=this.R,o=this.R_MINOR/n,s=Math.sqrt(1-o*o),r=Math.exp(-t.y/n),a=Math.PI/2-2*Math.atan(r),h=0,u=.1;h<15&&Math.abs(u)>1e-7;h++)i=s*Math.sin(a),i=Math.pow((1-i)/(1+i),s/2),a+=u=Math.PI/2-2*Math.atan(r*i)-a;return new M(a*e,t.x*e/n)}},je=(Object.freeze||Object)({LonLat:De,Mercator:Ne,SphericalMercator:di}),We=i({},_i,{code:\"EPSG:3395\",projection:Ne,transformation:function(){var t=.5/(Math.PI*Ne.R);return S(t,.5,-t,.5)}()}),He=i({},_i,{code:\"EPSG:4326\",projection:De,transformation:S(1/180,1,-1/180,.5)}),Fe=i({},ci,{projection:De,transformation:S(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,i){var e=i.lng-t.lng,n=i.lat-t.lat;return Math.sqrt(e*e+n*n)},infinite:!0});ci.Earth=_i,ci.EPSG3395=We,ci.EPSG3857=vi,ci.EPSG900913=yi,ci.EPSG4326=He,ci.Simple=Fe;var Ue=ui.extend({options:{pane:\"overlayPane\",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[n(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[n(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var i=t.target;if(i.hasLayer(this)){if(this._map=i,this._zoomAnimated=i._zoomAnimated,this.getEvents){var e=this.getEvents();i.on(e,this),this.once(\"remove\",function(){i.off(e,this)},this)}this.onAdd(i),this.getAttribution&&i.attributionControl&&i.attributionControl.addAttribution(this.getAttribution()),this.fire(\"add\"),i.fire(\"layeradd\",{layer:this})}}});Le.include({addLayer:function(t){if(!t._layerAdd)throw new Error(\"The provided object is not a Layer.\");var i=n(t);return this._layers[i]?this:(this._layers[i]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t),this)},removeLayer:function(t){var i=n(t);return this._layers[i]?(this._loaded&&t.onRemove(this),t.getAttribution&&this.attributionControl&&this.attributionControl.removeAttribution(t.getAttribution()),delete this._layers[i],this._loaded&&(this.fire(\"layerremove\",{layer:t}),t.fire(\"remove\")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return!!t&&n(t)in this._layers},eachLayer:function(t,i){for(var e in this._layers)t.call(i,this._layers[e]);return this},_addLayers:function(t){for(var i=0,e=(t=t?ei(t)?t:[t]:[]).length;i<e;i++)this.addLayer(t[i])},_addZoomLimit:function(t){!isNaN(t.options.maxZoom)&&isNaN(t.options.minZoom)||(this._zoomBoundLayers[n(t)]=t,this._updateZoomLevels())},_removeZoomLimit:function(t){var i=n(t);this._zoomBoundLayers[i]&&(delete this._zoomBoundLayers[i],this._updateZoomLevels())},_updateZoomLevels:function(){var t=1/0,i=-1/0,e=this._getZoomSpan();for(var n in this._zoomBoundLayers){var o=this._zoomBoundLayers[n].options;t=void 0===o.minZoom?t:Math.min(t,o.minZoom),i=void 0===o.maxZoom?i:Math.max(i,o.maxZoom)}this._layersMaxZoom=i===-1/0?void 0:i,this._layersMinZoom=t===1/0?void 0:t,e!==this._getZoomSpan()&&this.fire(\"zoomlevelschange\"),void 0===this.options.maxZoom&&this._layersMaxZoom&&this.getZoom()>this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()<this._layersMinZoom&&this.setZoom(this._layersMinZoom)}});var Ve=Ue.extend({initialize:function(t,i){l(this,i),this._layers={};var e,n;if(t)for(e=0,n=t.length;e<n;e++)this.addLayer(t[e])},addLayer:function(t){var i=this.getLayerId(t);return this._layers[i]=t,this._map&&this._map.addLayer(t),this},removeLayer:function(t){var i=t in this._layers?t:this.getLayerId(t);return this._map&&this._layers[i]&&this._map.removeLayer(this._layers[i]),delete this._layers[i],this},hasLayer:function(t){return!!t&&(t in this._layers||this.getLayerId(t)in this._layers)},clearLayers:function(){return this.eachLayer(this.removeLayer,this)},invoke:function(t){var i,e,n=Array.prototype.slice.call(arguments,1);for(i in this._layers)(e=this._layers[i])[t]&&e[t].apply(e,n);return this},onAdd:function(t){this.eachLayer(t.addLayer,t)},onRemove:function(t){this.eachLayer(t.removeLayer,t)},eachLayer:function(t,i){for(var e in this._layers)t.call(i,this._layers[e]);return this},getLayer:function(t){return this._layers[t]},getLayers:function(){var t=[];return this.eachLayer(t.push,t),t},setZIndex:function(t){return this.invoke(\"setZIndex\",t)},getLayerId:function(t){return n(t)}}),qe=Ve.extend({addLayer:function(t){return this.hasLayer(t)?this:(t.addEventParent(this),Ve.prototype.addLayer.call(this,t),this.fire(\"layeradd\",{layer:t}))},removeLayer:function(t){return this.hasLayer(t)?(t in this._layers&&(t=this._layers[t]),t.removeEventParent(this),Ve.prototype.removeLayer.call(this,t),this.fire(\"layerremove\",{layer:t})):this},setStyle:function(t){return this.invoke(\"setStyle\",t)},bringToFront:function(){return this.invoke(\"bringToFront\")},bringToBack:function(){return this.invoke(\"bringToBack\")},getBounds:function(){var t=new T;for(var i in this._layers){var e=this._layers[i];t.extend(e.getBounds?e.getBounds():e.getLatLng())}return t}}),Ge=v.extend({options:{popupAnchor:[0,0],tooltipAnchor:[0,0]},initialize:function(t){l(this,t)},createIcon:function(t){return this._createIcon(\"icon\",t)},createShadow:function(t){return this._createIcon(\"shadow\",t)},_createIcon:function(t,i){var e=this._getIconUrl(t);if(!e){if(\"icon\"===t)throw new Error(\"iconUrl not set in Icon options (see the docs).\");return null}var n=this._createImg(e,i&&\"IMG\"===i.tagName?i:null);return this._setIconStyles(n,t),n},_setIconStyles:function(t,i){var e=this.options,n=e[i+\"Size\"];\"number\"==typeof n&&(n=[n,n]);var o=w(n),s=w(\"shadow\"===i&&e.shadowAnchor||e.iconAnchor||o&&o.divideBy(2,!0));t.className=\"leaflet-marker-\"+i+\" \"+(e.className||\"\"),s&&(t.style.marginLeft=-s.x+\"px\",t.style.marginTop=-s.y+\"px\"),o&&(t.style.width=o.x+\"px\",t.style.height=o.y+\"px\")},_createImg:function(t,i){return i=i||document.createElement(\"img\"),i.src=t,i},_getIconUrl:function(t){return Ki&&this.options[t+\"RetinaUrl\"]||this.options[t+\"Url\"]}}),Ke=Ge.extend({options:{iconUrl:\"marker-icon.png\",iconRetinaUrl:\"marker-icon-2x.png\",shadowUrl:\"marker-shadow.png\",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],tooltipAnchor:[16,-28],shadowSize:[41,41]},_getIconUrl:function(t){return Ke.imagePath||(Ke.imagePath=this._detectIconPath()),(this.options.imagePath||Ke.imagePath)+Ge.prototype._getIconUrl.call(this,t)},_detectIconPath:function(){var t=ht(\"div\",\"leaflet-default-icon-path\",document.body),i=at(t,\"background-image\")||at(t,\"backgroundImage\");return document.body.removeChild(t),i=null===i||0!==i.indexOf(\"url\")?\"\":i.replace(/^url\\([\"']?/,\"\").replace(/marker-icon\\.png[\"']?\\)$/,\"\")}}),Ye=Ze.extend({initialize:function(t){this._marker=t},addHooks:function(){var t=this._marker._icon;this._draggable||(this._draggable=new Be(t,t,!0)),this._draggable.on({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).enable(),pt(t,\"leaflet-marker-draggable\")},removeHooks:function(){this._draggable.off({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).disable(),this._marker._icon&&mt(this._marker._icon,\"leaflet-marker-draggable\")},moved:function(){return this._draggable&&this._draggable._moved},_adjustPan:function(t){var i=this._marker,e=i._map,n=this._marker.options.autoPanSpeed,o=this._marker.options.autoPanPadding,s=L.DomUtil.getPosition(i._icon),r=e.getPixelBounds(),a=e.getPixelOrigin(),h=b(r.min._subtract(a).add(o),r.max._subtract(a).subtract(o));if(!h.contains(s)){var u=w((Math.max(h.max.x,s.x)-h.max.x)/(r.max.x-h.max.x)-(Math.min(h.min.x,s.x)-h.min.x)/(r.min.x-h.min.x),(Math.max(h.max.y,s.y)-h.max.y)/(r.max.y-h.max.y)-(Math.min(h.min.y,s.y)-h.min.y)/(r.min.y-h.min.y)).multiplyBy(n);e.panBy(u,{animate:!1}),this._draggable._newPos._add(u),this._draggable._startPos._add(u),L.DomUtil.setPosition(i._icon,this._draggable._newPos),this._onDrag(t),this._panRequest=f(this._adjustPan.bind(this,t))}},_onDragStart:function(){this._oldLatLng=this._marker.getLatLng(),this._marker.closePopup().fire(\"movestart\").fire(\"dragstart\")},_onPreDrag:function(t){this._marker.options.autoPan&&(g(this._panRequest),this._panRequest=f(this._adjustPan.bind(this,t)))},_onDrag:function(t){var i=this._marker,e=i._shadow,n=Pt(i._icon),o=i._map.layerPointToLatLng(n);e&&Lt(e,n),i._latlng=o,t.latlng=o,t.oldLatLng=this._oldLatLng,i.fire(\"move\",t).fire(\"drag\",t)},_onDragEnd:function(t){g(this._panRequest),delete this._oldLatLng,this._marker.fire(\"moveend\").fire(\"dragend\",t)}}),Xe=Ue.extend({options:{icon:new Ke,interactive:!0,draggable:!1,autoPan:!1,autoPanPadding:[50,50],autoPanSpeed:10,keyboard:!0,title:\"\",alt:\"\",zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250,pane:\"markerPane\",bubblingMouseEvents:!1},initialize:function(t,i){l(this,i),this._latlng=C(t)},onAdd:function(t){this._zoomAnimated=this._zoomAnimated&&t.options.markerZoomAnimation,this._zoomAnimated&&t.on(\"zoomanim\",this._animateZoom,this),this._initIcon(),this.update()},onRemove:function(t){this.dragging&&this.dragging.enabled()&&(this.options.draggable=!0,this.dragging.removeHooks()),delete this.dragging,this._zoomAnimated&&t.off(\"zoomanim\",this._animateZoom,this),this._removeIcon(),this._removeShadow()},getEvents:function(){return{zoom:this.update,viewreset:this.update}},getLatLng:function(){return this._latlng},setLatLng:function(t){var i=this._latlng;return this._latlng=C(t),this.update(),this.fire(\"move\",{oldLatLng:i,latlng:this._latlng})},setZIndexOffset:function(t){return this.options.zIndexOffset=t,this.update()},setIcon:function(t){return this.options.icon=t,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup,this._popup.options),this},getElement:function(){return this._icon},update:function(){if(this._icon&&this._map){var t=this._map.latLngToLayerPoint(this._latlng).round();this._setPos(t)}return this},_initIcon:function(){var t=this.options,i=\"leaflet-zoom-\"+(this._zoomAnimated?\"animated\":\"hide\"),e=t.icon.createIcon(this._icon),n=!1;e!==this._icon&&(this._icon&&this._removeIcon(),n=!0,t.title&&(e.title=t.title),\"IMG\"===e.tagName&&(e.alt=t.alt||\"\")),pt(e,i),t.keyboard&&(e.tabIndex=\"0\"),this._icon=e,t.riseOnHover&&this.on({mouseover:this._bringToFront,mouseout:this._resetZIndex});var o=t.icon.createShadow(this._shadow),s=!1;o!==this._shadow&&(this._removeShadow(),s=!0),o&&(pt(o,i),o.alt=\"\"),this._shadow=o,t.opacity<1&&this._updateOpacity(),n&&this.getPane().appendChild(this._icon),this._initInteraction(),o&&s&&this.getPane(\"shadowPane\").appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&this.off({mouseover:this._bringToFront,mouseout:this._resetZIndex}),ut(this._icon),this.removeInteractiveTarget(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&ut(this._shadow),this._shadow=null},_setPos:function(t){Lt(this._icon,t),this._shadow&&Lt(this._shadow,t),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(t){this._icon.style.zIndex=this._zIndex+t},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center).round();this._setPos(i)},_initInteraction:function(){if(this.options.interactive&&(pt(this._icon,\"leaflet-interactive\"),this.addInteractiveTarget(this._icon),Ye)){var t=this.options.draggable;this.dragging&&(t=this.dragging.enabled(),this.dragging.disable()),this.dragging=new Ye(this),t&&this.dragging.enable()}},setOpacity:function(t){return this.options.opacity=t,this._map&&this._updateOpacity(),this},_updateOpacity:function(){var t=this.options.opacity;vt(this._icon,t),this._shadow&&vt(this._shadow,t)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)},_getPopupAnchor:function(){return this.options.icon.options.popupAnchor},_getTooltipAnchor:function(){return this.options.icon.options.tooltipAnchor}}),Je=Ue.extend({options:{stroke:!0,color:\"#3388ff\",weight:3,opacity:1,lineCap:\"round\",lineJoin:\"round\",dashArray:null,dashOffset:null,fill:!1,fillColor:null,fillOpacity:.2,fillRule:\"evenodd\",interactive:!0,bubblingMouseEvents:!0},beforeAdd:function(t){this._renderer=t.getRenderer(this)},onAdd:function(){this._renderer._initPath(this),this._reset(),this._renderer._addPath(this)},onRemove:function(){this._renderer._removePath(this)},redraw:function(){return this._map&&this._renderer._updatePath(this),this},setStyle:function(t){return l(this,t),this._renderer&&this._renderer._updateStyle(this),this},bringToFront:function(){return this._renderer&&this._renderer._bringToFront(this),this},bringToBack:function(){return this._renderer&&this._renderer._bringToBack(this),this},getElement:function(){return this._path},_reset:function(){this._project(),this._update()},_clickTolerance:function(){return(this.options.stroke?this.options.weight/2:0)+this._renderer.options.tolerance}}),$e=Je.extend({options:{fill:!0,radius:10},initialize:function(t,i){l(this,i),this._latlng=C(t),this._radius=this.options.radius},setLatLng:function(t){return this._latlng=C(t),this.redraw(),this.fire(\"move\",{latlng:this._latlng})},getLatLng:function(){return this._latlng},setRadius:function(t){return this.options.radius=this._radius=t,this.redraw()},getRadius:function(){return this._radius},setStyle:function(t){var i=t&&t.radius||this._radius;return Je.prototype.setStyle.call(this,t),this.setRadius(i),this},_project:function(){this._point=this._map.latLngToLayerPoint(this._latlng),this._updateBounds()},_updateBounds:function(){var t=this._radius,i=this._radiusY||t,e=this._clickTolerance(),n=[t+e,i+e];this._pxBounds=new P(this._point.subtract(n),this._point.add(n))},_update:function(){this._map&&this._updatePath()},_updatePath:function(){this._renderer._updateCircle(this)},_empty:function(){return this._radius&&!this._renderer._bounds.intersects(this._pxBounds)},_containsPoint:function(t){return t.distanceTo(this._point)<=this._radius+this._clickTolerance()}}),Qe=$e.extend({initialize:function(t,e,n){if(\"number\"==typeof e&&(e=i({},n,{radius:e})),l(this,e),this._latlng=C(t),isNaN(this.options.radius))throw new Error(\"Circle radius cannot be NaN\");this._mRadius=this.options.radius},setRadius:function(t){return this._mRadius=t,this.redraw()},getRadius:function(){return this._mRadius},getBounds:function(){var t=[this._radius,this._radiusY||this._radius];return new T(this._map.layerPointToLatLng(this._point.subtract(t)),this._map.layerPointToLatLng(this._point.add(t)))},setStyle:Je.prototype.setStyle,_project:function(){var t=this._latlng.lng,i=this._latlng.lat,e=this._map,n=e.options.crs;if(n.distance===_i.distance){var o=Math.PI/180,s=this._mRadius/_i.R/o,r=e.project([i+s,t]),a=e.project([i-s,t]),h=r.add(a).divideBy(2),u=e.unproject(h).lat,l=Math.acos((Math.cos(s*o)-Math.sin(i*o)*Math.sin(u*o))/(Math.cos(i*o)*Math.cos(u*o)))/o;(isNaN(l)||0===l)&&(l=s/Math.cos(Math.PI/180*i)),this._point=h.subtract(e.getPixelOrigin()),this._radius=isNaN(l)?0:h.x-e.project([u,t-l]).x,this._radiusY=h.y-r.y}else{var c=n.unproject(n.project(this._latlng).subtract([this._mRadius,0]));this._point=e.latLngToLayerPoint(this._latlng),this._radius=this._point.x-e.latLngToLayerPoint(c).x}this._updateBounds()}}),tn=Je.extend({options:{smoothFactor:1,noClip:!1},initialize:function(t,i){l(this,i),this._setLatLngs(t)},getLatLngs:function(){return this._latlngs},setLatLngs:function(t){return this._setLatLngs(t),this.redraw()},isEmpty:function(){return!this._latlngs.length},closestLayerPoint:function(t){for(var i,e,n=1/0,o=null,s=Rt,r=0,a=this._parts.length;r<a;r++)for(var h=this._parts[r],u=1,l=h.length;u<l;u++){var c=s(t,i=h[u-1],e=h[u],!0);c<n&&(n=c,o=s(t,i,e))}return o&&(o.distance=Math.sqrt(n)),o},getCenter:function(){if(!this._map)throw new Error(\"Must add layer to map before using getCenter()\");var t,i,e,n,o,s,r,a=this._rings[0],h=a.length;if(!h)return null;for(t=0,i=0;t<h-1;t++)i+=a[t].distanceTo(a[t+1])/2;if(0===i)return this._map.layerPointToLatLng(a[0]);for(t=0,n=0;t<h-1;t++)if(o=a[t],s=a[t+1],e=o.distanceTo(s),(n+=e)>i)return r=(n-i)/e,this._map.layerPointToLatLng([s.x-r*(s.x-o.x),s.y-r*(s.y-o.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,i){return i=i||this._defaultShape(),t=C(t),i.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new T,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return Dt(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var i=[],e=Dt(t),n=0,o=t.length;n<o;n++)e?(i[n]=C(t[n]),this._bounds.extend(i[n])):i[n]=this._convertLatLngs(t[n]);return i},_project:function(){var t=new P;this._rings=[],this._projectLatlngs(this._latlngs,this._rings,t);var i=this._clickTolerance(),e=new x(i,i);this._bounds.isValid()&&t.isValid()&&(t.min._subtract(e),t.max._add(e),this._pxBounds=t)},_projectLatlngs:function(t,i,e){var n,o,s=t[0]instanceof M,r=t.length;if(s){for(o=[],n=0;n<r;n++)o[n]=this._map.latLngToLayerPoint(t[n]),e.extend(o[n]);i.push(o)}else for(n=0;n<r;n++)this._projectLatlngs(t[n],i,e)},_clipPoints:function(){var t=this._renderer._bounds;if(this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else{var i,e,n,o,s,r,a,h=this._parts;for(i=0,n=0,o=this._rings.length;i<o;i++)for(e=0,s=(a=this._rings[i]).length;e<s-1;e++)(r=It(a[e],a[e+1],t,e,!0))&&(h[n]=h[n]||[],h[n].push(r[0]),r[1]===a[e+1]&&e!==s-2||(h[n].push(r[1]),n++))}},_simplifyPoints:function(){for(var t=this._parts,i=this.options.smoothFactor,e=0,n=t.length;e<n;e++)t[e]=Ct(t[e],i)},_update:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),this._updatePath())},_updatePath:function(){this._renderer._updatePoly(this)},_containsPoint:function(t,i){var e,n,o,s,r,a,h=this._clickTolerance();if(!this._pxBounds||!this._pxBounds.contains(t))return!1;for(e=0,s=this._parts.length;e<s;e++)for(n=0,o=(r=(a=this._parts[e]).length)-1;n<r;o=n++)if((i||0!==n)&&Zt(t,a[o],a[n])<=h)return!0;return!1}});tn._flat=Nt;var en=tn.extend({options:{fill:!0},isEmpty:function(){return!this._latlngs.length||!this._latlngs[0].length},getCenter:function(){if(!this._map)throw new Error(\"Must add layer to map before using getCenter()\");var t,i,e,n,o,s,r,a,h,u=this._rings[0],l=u.length;if(!l)return null;for(s=r=a=0,t=0,i=l-1;t<l;i=t++)e=u[t],n=u[i],o=e.y*n.x-n.y*e.x,r+=(e.x+n.x)*o,a+=(e.y+n.y)*o,s+=3*o;return h=0===s?u[0]:[r/s,a/s],this._map.layerPointToLatLng(h)},_convertLatLngs:function(t){var i=tn.prototype._convertLatLngs.call(this,t),e=i.length;return e>=2&&i[0]instanceof M&&i[0].equals(i[e-1])&&i.pop(),i},_setLatLngs:function(t){tn.prototype._setLatLngs.call(this,t),Dt(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return Dt(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,i=this.options.weight,e=new x(i,i);if(t=new P(t.min.subtract(e),t.max.add(e)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var n,o=0,s=this._rings.length;o<s;o++)(n=jt(this._rings[o],t,!0)).length&&this._parts.push(n)},_updatePath:function(){this._renderer._updatePoly(this,!0)},_containsPoint:function(t){var i,e,n,o,s,r,a,h,u=!1;if(!this._pxBounds.contains(t))return!1;for(o=0,a=this._parts.length;o<a;o++)for(s=0,r=(h=(i=this._parts[o]).length)-1;s<h;r=s++)e=i[s],n=i[r],e.y>t.y!=n.y>t.y&&t.x<(n.x-e.x)*(t.y-e.y)/(n.y-e.y)+e.x&&(u=!u);return u||tn.prototype._containsPoint.call(this,t,!0)}}),nn=qe.extend({initialize:function(t,i){l(this,i),this._layers={},t&&this.addData(t)},addData:function(t){var i,e,n,o=ei(t)?t:t.features;if(o){for(i=0,e=o.length;i<e;i++)((n=o[i]).geometries||n.geometry||n.features||n.coordinates)&&this.addData(n);return this}var s=this.options;if(s.filter&&!s.filter(t))return this;var r=Wt(t,s);return r?(r.feature=Gt(t),r.defaultOptions=r.options,this.resetStyle(r),s.onEachFeature&&s.onEachFeature(t,r),this.addLayer(r)):this},resetStyle:function(t){return t.options=i({},t.defaultOptions),this._setLayerStyle(t,this.options.style),this},setStyle:function(t){return this.eachLayer(function(i){this._setLayerStyle(i,t)},this)},_setLayerStyle:function(t,i){\"function\"==typeof i&&(i=i(t.feature)),t.setStyle&&t.setStyle(i)}}),on={toGeoJSON:function(t){return qt(this,{type:\"Point\",coordinates:Ut(this.getLatLng(),t)})}};Xe.include(on),Qe.include(on),$e.include(on),tn.include({toGeoJSON:function(t){var i=!Dt(this._latlngs),e=Vt(this._latlngs,i?1:0,!1,t);return qt(this,{type:(i?\"Multi\":\"\")+\"LineString\",coordinates:e})}}),en.include({toGeoJSON:function(t){var i=!Dt(this._latlngs),e=i&&!Dt(this._latlngs[0]),n=Vt(this._latlngs,e?2:i?1:0,!0,t);return i||(n=[n]),qt(this,{type:(e?\"Multi\":\"\")+\"Polygon\",coordinates:n})}}),Ve.include({toMultiPoint:function(t){var i=[];return this.eachLayer(function(e){i.push(e.toGeoJSON(t).geometry.coordinates)}),qt(this,{type:\"MultiPoint\",coordinates:i})},toGeoJSON:function(t){var i=this.feature&&this.feature.geometry&&this.feature.geometry.type;if(\"MultiPoint\"===i)return this.toMultiPoint(t);var e=\"GeometryCollection\"===i,n=[];return this.eachLayer(function(i){if(i.toGeoJSON){var o=i.toGeoJSON(t);if(e)n.push(o.geometry);else{var s=Gt(o);\"FeatureCollection\"===s.type?n.push.apply(n,s.features):n.push(s)}}}),e?qt(this,{geometries:n,type:\"GeometryCollection\"}):{type:\"FeatureCollection\",features:n}}});var sn=Kt,rn=Ue.extend({options:{opacity:1,alt:\"\",interactive:!1,crossOrigin:!1,errorOverlayUrl:\"\",zIndex:1,className:\"\"},initialize:function(t,i,e){this._url=t,this._bounds=z(i),l(this,e)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(pt(this._image,\"leaflet-interactive\"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){ut(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&ct(this._image),this},bringToBack:function(){return this._map&&_t(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=z(t),this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t=\"IMG\"===this._url.tagName,i=this._image=t?this._url:ht(\"img\");pt(i,\"leaflet-image-layer\"),this._zoomAnimated&&pt(i,\"leaflet-zoom-animated\"),this.options.className&&pt(i,this.options.className),i.onselectstart=r,i.onmousemove=r,i.onload=e(this.fire,this,\"load\"),i.onerror=e(this._overlayOnError,this,\"error\"),this.options.crossOrigin&&(i.crossOrigin=\"\"),this.options.zIndex&&this._updateZIndex(),t?this._url=i.src:(i.src=this._url,i.alt=this.options.alt)},_animateZoom:function(t){var i=this._map.getZoomScale(t.zoom),e=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min;wt(this._image,e,i)},_reset:function(){var t=this._image,i=new P(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),e=i.getSize();Lt(t,i.min),t.style.width=e.x+\"px\",t.style.height=e.y+\"px\"},_updateOpacity:function(){vt(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire(\"error\");var t=this.options.errorOverlayUrl;t&&this._url!==t&&(this._url=t,this._image.src=t)}}),an=rn.extend({options:{autoplay:!0,loop:!0},_initImage:function(){var t=\"VIDEO\"===this._url.tagName,i=this._image=t?this._url:ht(\"video\");if(pt(i,\"leaflet-image-layer\"),this._zoomAnimated&&pt(i,\"leaflet-zoom-animated\"),i.onselectstart=r,i.onmousemove=r,i.onloadeddata=e(this.fire,this,\"load\"),t){for(var n=i.getElementsByTagName(\"source\"),o=[],s=0;s<n.length;s++)o.push(n[s].src);this._url=n.length>0?o:[i.src]}else{ei(this._url)||(this._url=[this._url]),i.autoplay=!!this.options.autoplay,i.loop=!!this.options.loop;for(var a=0;a<this._url.length;a++){var h=ht(\"source\");h.src=this._url[a],i.appendChild(h)}}}}),hn=Ue.extend({options:{offset:[0,7],className:\"\",pane:\"popupPane\"},initialize:function(t,i){l(this,t),this._source=i},onAdd:function(t){this._zoomAnimated=t._zoomAnimated,this._container||this._initLayout(),t._fadeAnimated&&vt(this._container,0),clearTimeout(this._removeTimeout),this.getPane().appendChild(this._container),this.update(),t._fadeAnimated&&vt(this._container,1),this.bringToFront()},onRemove:function(t){t._fadeAnimated?(vt(this._container,0),this._removeTimeout=setTimeout(e(ut,void 0,this._container),200)):ut(this._container)},getLatLng:function(){return this._latlng},setLatLng:function(t){return this._latlng=C(t),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(t){return this._content=t,this.update(),this},getElement:function(){return this._container},update:function(){this._map&&(this._container.style.visibility=\"hidden\",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility=\"\",this._adjustPan())},getEvents:function(){var t={zoom:this._updatePosition,viewreset:this._updatePosition};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},isOpen:function(){return!!this._map&&this._map.hasLayer(this)},bringToFront:function(){return this._map&&ct(this._container),this},bringToBack:function(){return this._map&&_t(this._container),this},_updateContent:function(){if(this._content){var t=this._contentNode,i=\"function\"==typeof this._content?this._content(this._source||this):this._content;if(\"string\"==typeof i)t.innerHTML=i;else{for(;t.hasChildNodes();)t.removeChild(t.firstChild);t.appendChild(i)}this.fire(\"contentupdate\")}},_updatePosition:function(){if(this._map){var t=this._map.latLngToLayerPoint(this._latlng),i=w(this.options.offset),e=this._getAnchor();this._zoomAnimated?Lt(this._container,t.add(e)):i=i.add(t).add(e);var n=this._containerBottom=-i.y,o=this._containerLeft=-Math.round(this._containerWidth/2)+i.x;this._container.style.bottom=n+\"px\",this._container.style.left=o+\"px\"}},_getAnchor:function(){return[0,0]}}),un=hn.extend({options:{maxWidth:300,minWidth:50,maxHeight:null,autoPan:!0,autoPanPaddingTopLeft:null,autoPanPaddingBottomRight:null,autoPanPadding:[5,5],keepInView:!1,closeButton:!0,autoClose:!0,closeOnEscapeKey:!0,className:\"\"},openOn:function(t){return t.openPopup(this),this},onAdd:function(t){hn.prototype.onAdd.call(this,t),t.fire(\"popupopen\",{popup:this}),this._source&&(this._source.fire(\"popupopen\",{popup:this},!0),this._source instanceof Je||this._source.on(\"preclick\",Y))},onRemove:function(t){hn.prototype.onRemove.call(this,t),t.fire(\"popupclose\",{popup:this}),this._source&&(this._source.fire(\"popupclose\",{popup:this},!0),this._source instanceof Je||this._source.off(\"preclick\",Y))},getEvents:function(){var t=hn.prototype.getEvents.call(this);return(void 0!==this.options.closeOnClick?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(t.preclick=this._close),this.options.keepInView&&(t.moveend=this._adjustPan),t},_close:function(){this._map&&this._map.closePopup(this)},_initLayout:function(){var t=\"leaflet-popup\",i=this._container=ht(\"div\",t+\" \"+(this.options.className||\"\")+\" leaflet-zoom-animated\"),e=this._wrapper=ht(\"div\",t+\"-content-wrapper\",i);if(this._contentNode=ht(\"div\",t+\"-content\",e),J(e),X(this._contentNode),V(e,\"contextmenu\",Y),this._tipContainer=ht(\"div\",t+\"-tip-container\",i),this._tip=ht(\"div\",t+\"-tip\",this._tipContainer),this.options.closeButton){var n=this._closeButton=ht(\"a\",t+\"-close-button\",i);n.href=\"#close\",n.innerHTML=\"×\",V(n,\"click\",this._onCloseButtonClick,this)}},_updateLayout:function(){var t=this._contentNode,i=t.style;i.width=\"\",i.whiteSpace=\"nowrap\";var e=t.offsetWidth;e=Math.min(e,this.options.maxWidth),e=Math.max(e,this.options.minWidth),i.width=e+1+\"px\",i.whiteSpace=\"\",i.height=\"\";var n=t.offsetHeight,o=this.options.maxHeight;o&&n>o?(i.height=o+\"px\",pt(t,\"leaflet-popup-scrolled\")):mt(t,\"leaflet-popup-scrolled\"),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),e=this._getAnchor();Lt(this._container,i.add(e))},_adjustPan:function(){if(!(!this.options.autoPan||this._map._panAnim&&this._map._panAnim._inProgress)){var t=this._map,i=parseInt(at(this._container,\"marginBottom\"),10)||0,e=this._container.offsetHeight+i,n=this._containerWidth,o=new x(this._containerLeft,-e-this._containerBottom);o._add(Pt(this._container));var s=t.layerPointToContainerPoint(o),r=w(this.options.autoPanPadding),a=w(this.options.autoPanPaddingTopLeft||r),h=w(this.options.autoPanPaddingBottomRight||r),u=t.getSize(),l=0,c=0;s.x+n+h.x>u.x&&(l=s.x+n-u.x+h.x),s.x-l-a.x<0&&(l=s.x-a.x),s.y+e+h.y>u.y&&(c=s.y+e-u.y+h.y),s.y-c-a.y<0&&(c=s.y-a.y),(l||c)&&t.fire(\"autopanstart\").panBy([l,c])}},_onCloseButtonClick:function(t){this._close(),Q(t)},_getAnchor:function(){return w(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});Le.mergeOptions({closePopupOnClick:!0}),Le.include({openPopup:function(t,i,e){return t instanceof un||(t=new un(e).setContent(t)),i&&t.setLatLng(i),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),Ue.include({bindPopup:function(t,i){return t instanceof un?(l(t,i),this._popup=t,t._source=this):(this._popup&&!i||(this._popup=new un(i,this)),this._popup.setContent(t)),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t,i){if(t instanceof Ue||(i=t,t=this),t instanceof qe)for(var e in this._layers){t=this._layers[e];break}return i||(i=t.getCenter?t.getCenter():t.getLatLng()),this._popup&&this._map&&(this._popup._source=t,this._popup.update(),this._map.openPopup(this._popup,i)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var i=t.layer||t.target;this._popup&&this._map&&(Q(t),i instanceof Je?this.openPopup(t.layer||t.target,t.latlng):this._map.hasLayer(this._popup)&&this._popup._source===i?this.closePopup():this.openPopup(i,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var ln=hn.extend({options:{pane:\"tooltipPane\",offset:[0,0],direction:\"auto\",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){hn.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire(\"tooltipopen\",{tooltip:this}),this._source&&this._source.fire(\"tooltipopen\",{tooltip:this},!0)},onRemove:function(t){hn.prototype.onRemove.call(this,t),t.fire(\"tooltipclose\",{tooltip:this}),this._source&&this._source.fire(\"tooltipclose\",{tooltip:this},!0)},getEvents:function(){var t=hn.prototype.getEvents.call(this);return Vi&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t=\"leaflet-tooltip \"+(this.options.className||\"\")+\" leaflet-zoom-\"+(this._zoomAnimated?\"animated\":\"hide\");this._contentNode=this._container=ht(\"div\",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var i=this._map,e=this._container,n=i.latLngToContainerPoint(i.getCenter()),o=i.layerPointToContainerPoint(t),s=this.options.direction,r=e.offsetWidth,a=e.offsetHeight,h=w(this.options.offset),u=this._getAnchor();\"top\"===s?t=t.add(w(-r/2+h.x,-a+h.y+u.y,!0)):\"bottom\"===s?t=t.subtract(w(r/2-h.x,-h.y,!0)):\"center\"===s?t=t.subtract(w(r/2+h.x,a/2-u.y+h.y,!0)):\"right\"===s||\"auto\"===s&&o.x<n.x?(s=\"right\",t=t.add(w(h.x+u.x,u.y-a/2+h.y,!0))):(s=\"left\",t=t.subtract(w(r+u.x-h.x,a/2-u.y-h.y,!0))),mt(e,\"leaflet-tooltip-right\"),mt(e,\"leaflet-tooltip-left\"),mt(e,\"leaflet-tooltip-top\"),mt(e,\"leaflet-tooltip-bottom\"),pt(e,\"leaflet-tooltip-\"+s),Lt(e,t)},_updatePosition:function(){var t=this._map.latLngToLayerPoint(this._latlng);this._setPosition(t)},setOpacity:function(t){this.options.opacity=t,this._container&&vt(this._container,t)},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center);this._setPosition(i)},_getAnchor:function(){return w(this._source&&this._source._getTooltipAnchor&&!this.options.sticky?this._source._getTooltipAnchor():[0,0])}});Le.include({openTooltip:function(t,i,e){return t instanceof ln||(t=new ln(e).setContent(t)),i&&t.setLatLng(i),this.hasLayer(t)?this:this.addLayer(t)},closeTooltip:function(t){return t&&this.removeLayer(t),this}}),Ue.include({bindTooltip:function(t,i){return t instanceof ln?(l(t,i),this._tooltip=t,t._source=this):(this._tooltip&&!i||(this._tooltip=new ln(i,this)),this._tooltip.setContent(t)),this._initTooltipInteractions(),this._tooltip.options.permanent&&this._map&&this._map.hasLayer(this)&&this.openTooltip(),this},unbindTooltip:function(){return this._tooltip&&(this._initTooltipInteractions(!0),this.closeTooltip(),this._tooltip=null),this},_initTooltipInteractions:function(t){if(t||!this._tooltipHandlersAdded){var i=t?\"off\":\"on\",e={remove:this.closeTooltip,move:this._moveTooltip};this._tooltip.options.permanent?e.add=this._openTooltip:(e.mouseover=this._openTooltip,e.mouseout=this.closeTooltip,this._tooltip.options.sticky&&(e.mousemove=this._moveTooltip),Vi&&(e.click=this._openTooltip)),this[i](e),this._tooltipHandlersAdded=!t}},openTooltip:function(t,i){if(t instanceof Ue||(i=t,t=this),t instanceof qe)for(var e in this._layers){t=this._layers[e];break}return i||(i=t.getCenter?t.getCenter():t.getLatLng()),this._tooltip&&this._map&&(this._tooltip._source=t,this._tooltip.update(),this._map.openTooltip(this._tooltip,i),this._tooltip.options.interactive&&this._tooltip._container&&(pt(this._tooltip._container,\"leaflet-clickable\"),this.addInteractiveTarget(this._tooltip._container))),this},closeTooltip:function(){return this._tooltip&&(this._tooltip._close(),this._tooltip.options.interactive&&this._tooltip._container&&(mt(this._tooltip._container,\"leaflet-clickable\"),this.removeInteractiveTarget(this._tooltip._container))),this},toggleTooltip:function(t){return this._tooltip&&(this._tooltip._map?this.closeTooltip():this.openTooltip(t)),this},isTooltipOpen:function(){return this._tooltip.isOpen()},setTooltipContent:function(t){return this._tooltip&&this._tooltip.setContent(t),this},getTooltip:function(){return this._tooltip},_openTooltip:function(t){var i=t.layer||t.target;this._tooltip&&this._map&&this.openTooltip(i,this._tooltip.options.sticky?t.latlng:void 0)},_moveTooltip:function(t){var i,e,n=t.latlng;this._tooltip.options.sticky&&t.originalEvent&&(i=this._map.mouseEventToContainerPoint(t.originalEvent),e=this._map.containerPointToLayerPoint(i),n=this._map.layerPointToLatLng(e)),this._tooltip.setLatLng(n)}});var cn=Ge.extend({options:{iconSize:[12,12],html:!1,bgPos:null,className:\"leaflet-div-icon\"},createIcon:function(t){var i=t&&\"DIV\"===t.tagName?t:document.createElement(\"div\"),e=this.options;if(i.innerHTML=!1!==e.html?e.html:\"\",e.bgPos){var n=w(e.bgPos);i.style.backgroundPosition=-n.x+\"px \"+-n.y+\"px\"}return this._setIconStyles(i,\"icon\"),i},createShadow:function(){return null}});Ge.Default=Ke;var _n=Ue.extend({options:{tileSize:256,opacity:1,updateWhenIdle:ji,updateWhenZooming:!0,updateInterval:200,zIndex:1,bounds:null,minZoom:0,maxZoom:void 0,maxNativeZoom:void 0,minNativeZoom:void 0,noWrap:!1,pane:\"tilePane\",className:\"\",keepBuffer:2},initialize:function(t){l(this,t)},onAdd:function(){this._initContainer(),this._levels={},this._tiles={},this._resetView(),this._update()},beforeAdd:function(t){t._addZoomLimit(this)},onRemove:function(t){this._removeAllTiles(),ut(this._container),t._removeZoomLimit(this),this._container=null,this._tileZoom=void 0},bringToFront:function(){return this._map&&(ct(this._container),this._setAutoZIndex(Math.max)),this},bringToBack:function(){return this._map&&(_t(this._container),this._setAutoZIndex(Math.min)),this},getContainer:function(){return this._container},setOpacity:function(t){return this.options.opacity=t,this._updateOpacity(),this},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},isLoading:function(){return this._loading},redraw:function(){return this._map&&(this._removeAllTiles(),this._update()),this},getEvents:function(){var t={viewprereset:this._invalidateAll,viewreset:this._resetView,zoom:this._resetView,moveend:this._onMoveEnd};return this.options.updateWhenIdle||(this._onMove||(this._onMove=o(this._onMoveEnd,this.options.updateInterval,this)),t.move=this._onMove),this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},createTile:function(){return document.createElement(\"div\")},getTileSize:function(){var t=this.options.tileSize;return t instanceof x?t:new x(t,t)},_updateZIndex:function(){this._container&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(t){for(var i,e=this.getPane().children,n=-t(-1/0,1/0),o=0,s=e.length;o<s;o++)i=e[o].style.zIndex,e[o]!==this._container&&i&&(n=t(n,+i));isFinite(n)&&(this.options.zIndex=n+t(-1,1),this._updateZIndex())},_updateOpacity:function(){if(this._map&&!Li){vt(this._container,this.options.opacity);var t=+new Date,i=!1,e=!1;for(var n in this._tiles){var o=this._tiles[n];if(o.current&&o.loaded){var s=Math.min(1,(t-o.loaded)/200);vt(o.el,s),s<1?i=!0:(o.active?e=!0:this._onOpaqueTile(o),o.active=!0)}}e&&!this._noPrune&&this._pruneTiles(),i&&(g(this._fadeFrame),this._fadeFrame=f(this._updateOpacity,this))}},_onOpaqueTile:r,_initContainer:function(){this._container||(this._container=ht(\"div\",\"leaflet-layer \"+(this.options.className||\"\")),this._updateZIndex(),this.options.opacity<1&&this._updateOpacity(),this.getPane().appendChild(this._container))},_updateLevels:function(){var t=this._tileZoom,i=this.options.maxZoom;if(void 0!==t){for(var e in this._levels)this._levels[e].el.children.length||e===t?(this._levels[e].el.style.zIndex=i-Math.abs(t-e),this._onUpdateLevel(e)):(ut(this._levels[e].el),this._removeTilesAtZoom(e),this._onRemoveLevel(e),delete this._levels[e]);var n=this._levels[t],o=this._map;return n||((n=this._levels[t]={}).el=ht(\"div\",\"leaflet-tile-container leaflet-zoom-animated\",this._container),n.el.style.zIndex=i,n.origin=o.project(o.unproject(o.getPixelOrigin()),t).round(),n.zoom=t,this._setZoomTransform(n,o.getCenter(),o.getZoom()),n.el.offsetWidth,this._onCreateLevel(n)),this._level=n,n}},_onUpdateLevel:r,_onRemoveLevel:r,_onCreateLevel:r,_pruneTiles:function(){if(this._map){var t,i,e=this._map.getZoom();if(e>this.options.maxZoom||e<this.options.minZoom)this._removeAllTiles();else{for(t in this._tiles)(i=this._tiles[t]).retain=i.current;for(t in this._tiles)if((i=this._tiles[t]).current&&!i.active){var n=i.coords;this._retainParent(n.x,n.y,n.z,n.z-5)||this._retainChildren(n.x,n.y,n.z,n.z+2)}for(t in this._tiles)this._tiles[t].retain||this._removeTile(t)}}},_removeTilesAtZoom:function(t){for(var i in this._tiles)this._tiles[i].coords.z===t&&this._removeTile(i)},_removeAllTiles:function(){for(var t in this._tiles)this._removeTile(t)},_invalidateAll:function(){for(var t in this._levels)ut(this._levels[t].el),this._onRemoveLevel(t),delete this._levels[t];this._removeAllTiles(),this._tileZoom=void 0},_retainParent:function(t,i,e,n){var o=Math.floor(t/2),s=Math.floor(i/2),r=e-1,a=new x(+o,+s);a.z=+r;var h=this._tileCoordsToKey(a),u=this._tiles[h];return u&&u.active?(u.retain=!0,!0):(u&&u.loaded&&(u.retain=!0),r>n&&this._retainParent(o,s,r,n))},_retainChildren:function(t,i,e,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*i;s<2*i+2;s++){var r=new x(o,s);r.z=e+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),e+1<n&&this._retainChildren(o,s,e+1,n))}},_resetView:function(t){var i=t&&(t.pinch||t.flyTo);this._setView(this._map.getCenter(),this._map.getZoom(),i,i)},_animateZoom:function(t){this._setView(t.center,t.zoom,!0,t.noUpdate)},_clampZoom:function(t){var i=this.options;return void 0!==i.minNativeZoom&&t<i.minNativeZoom?i.minNativeZoom:void 0!==i.maxNativeZoom&&i.maxNativeZoom<t?i.maxNativeZoom:t},_setView:function(t,i,e,n){var o=this._clampZoom(Math.round(i));(void 0!==this.options.maxZoom&&o>this.options.maxZoom||void 0!==this.options.minZoom&&o<this.options.minZoom)&&(o=void 0);var s=this.options.updateWhenZooming&&o!==this._tileZoom;n&&!s||(this._tileZoom=o,this._abortLoading&&this._abortLoading(),this._updateLevels(),this._resetGrid(),void 0!==o&&this._update(t),e||this._pruneTiles(),this._noPrune=!!e),this._setZoomTransforms(t,i)},_setZoomTransforms:function(t,i){for(var e in this._levels)this._setZoomTransform(this._levels[e],t,i)},_setZoomTransform:function(t,i,e){var n=this._map.getZoomScale(e,t.zoom),o=t.origin.multiplyBy(n).subtract(this._map._getNewPixelOrigin(i,e)).round();Ni?wt(t.el,o,n):Lt(t.el,o)},_resetGrid:function(){var t=this._map,i=t.options.crs,e=this._tileSize=this.getTileSize(),n=this._tileZoom,o=this._map.getPixelWorldBounds(this._tileZoom);o&&(this._globalTileRange=this._pxBoundsToTileRange(o)),this._wrapX=i.wrapLng&&!this.options.noWrap&&[Math.floor(t.project([0,i.wrapLng[0]],n).x/e.x),Math.ceil(t.project([0,i.wrapLng[1]],n).x/e.y)],this._wrapY=i.wrapLat&&!this.options.noWrap&&[Math.floor(t.project([i.wrapLat[0],0],n).y/e.x),Math.ceil(t.project([i.wrapLat[1],0],n).y/e.y)]},_onMoveEnd:function(){this._map&&!this._map._animatingZoom&&this._update()},_getTiledPixelBounds:function(t){var i=this._map,e=i._animatingZoom?Math.max(i._animateToZoom,i.getZoom()):i.getZoom(),n=i.getZoomScale(e,this._tileZoom),o=i.project(t,this._tileZoom).floor(),s=i.getSize().divideBy(2*n);return new P(o.subtract(s),o.add(s))},_update:function(t){var i=this._map;if(i){var e=this._clampZoom(i.getZoom());if(void 0===t&&(t=i.getCenter()),void 0!==this._tileZoom){var n=this._getTiledPixelBounds(t),o=this._pxBoundsToTileRange(n),s=o.getCenter(),r=[],a=this.options.keepBuffer,h=new P(o.getBottomLeft().subtract([a,-a]),o.getTopRight().add([a,-a]));if(!(isFinite(o.min.x)&&isFinite(o.min.y)&&isFinite(o.max.x)&&isFinite(o.max.y)))throw new Error(\"Attempted to load an infinite number of tiles\");for(var u in this._tiles){var l=this._tiles[u].coords;l.z===this._tileZoom&&h.contains(new x(l.x,l.y))||(this._tiles[u].current=!1)}if(Math.abs(e-this._tileZoom)>1)this._setView(t,e);else{for(var c=o.min.y;c<=o.max.y;c++)for(var _=o.min.x;_<=o.max.x;_++){var d=new x(_,c);if(d.z=this._tileZoom,this._isValidTile(d)){var p=this._tiles[this._tileCoordsToKey(d)];p?p.current=!0:r.push(d)}}if(r.sort(function(t,i){return t.distanceTo(s)-i.distanceTo(s)}),0!==r.length){this._loading||(this._loading=!0,this.fire(\"loading\"));var m=document.createDocumentFragment();for(_=0;_<r.length;_++)this._addTile(r[_],m);this._level.el.appendChild(m)}}}}},_isValidTile:function(t){var i=this._map.options.crs;if(!i.infinite){var e=this._globalTileRange;if(!i.wrapLng&&(t.x<e.min.x||t.x>e.max.x)||!i.wrapLat&&(t.y<e.min.y||t.y>e.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return z(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var i=this._map,e=this.getTileSize(),n=t.scaleBy(e),o=n.add(e);return[i.unproject(n,t.z),i.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var i=this._tileCoordsToNwSe(t),e=new T(i[0],i[1]);return this.options.noWrap||(e=this._map.wrapLatLngBounds(e)),e},_tileCoordsToKey:function(t){return t.x+\":\"+t.y+\":\"+t.z},_keyToTileCoords:function(t){var i=t.split(\":\"),e=new x(+i[0],+i[1]);return e.z=+i[2],e},_removeTile:function(t){var i=this._tiles[t];i&&(Ci||i.el.setAttribute(\"src\",ni),ut(i.el),delete this._tiles[t],this.fire(\"tileunload\",{tile:i.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){pt(t,\"leaflet-tile\");var i=this.getTileSize();t.style.width=i.x+\"px\",t.style.height=i.y+\"px\",t.onselectstart=r,t.onmousemove=r,Li&&this.options.opacity<1&&vt(t,this.options.opacity),Ti&&!zi&&(t.style.WebkitBackfaceVisibility=\"hidden\")},_addTile:function(t,i){var n=this._getTilePos(t),o=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),e(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&f(e(this._tileReady,this,t,null,s)),Lt(s,n),this._tiles[o]={el:s,coords:t,current:!0},i.appendChild(s),this.fire(\"tileloadstart\",{tile:s,coords:t})},_tileReady:function(t,i,n){if(this._map){i&&this.fire(\"tileerror\",{error:i,tile:n,coords:t});var o=this._tileCoordsToKey(t);(n=this._tiles[o])&&(n.loaded=+new Date,this._map._fadeAnimated?(vt(n.el,0),g(this._fadeFrame),this._fadeFrame=f(this._updateOpacity,this)):(n.active=!0,this._pruneTiles()),i||(pt(n.el,\"leaflet-tile-loaded\"),this.fire(\"tileload\",{tile:n.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire(\"load\"),Li||!this._map._fadeAnimated?f(this._pruneTiles,this):setTimeout(e(this._pruneTiles,this),250)))}},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var i=new x(this._wrapX?s(t.x,this._wrapX):t.x,this._wrapY?s(t.y,this._wrapY):t.y);return i.z=t.z,i},_pxBoundsToTileRange:function(t){var i=this.getTileSize();return new P(t.min.unscaleBy(i).floor(),t.max.unscaleBy(i).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}}),dn=_n.extend({options:{minZoom:0,maxZoom:18,subdomains:\"abc\",errorTileUrl:\"\",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,i){this._url=t,(i=l(this,i)).detectRetina&&Ki&&i.maxZoom>0&&(i.tileSize=Math.floor(i.tileSize/2),i.zoomReverse?(i.zoomOffset--,i.minZoom++):(i.zoomOffset++,i.maxZoom--),i.minZoom=Math.max(0,i.minZoom)),\"string\"==typeof i.subdomains&&(i.subdomains=i.subdomains.split(\"\")),Ti||this.on(\"tileunload\",this._onTileRemove)},setUrl:function(t,i){return this._url=t,i||this.redraw(),this},createTile:function(t,i){var n=document.createElement(\"img\");return V(n,\"load\",e(this._tileOnLoad,this,i,n)),V(n,\"error\",e(this._tileOnError,this,i,n)),this.options.crossOrigin&&(n.crossOrigin=\"\"),n.alt=\"\",n.setAttribute(\"role\",\"presentation\"),n.src=this.getTileUrl(t),n},getTileUrl:function(t){var e={r:Ki?\"@2x\":\"\",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var n=this._globalTileRange.max.y-t.y;this.options.tms&&(e.y=n),e[\"-y\"]=n}return _(this._url,i(e,this.options))},_tileOnLoad:function(t,i){Li?setTimeout(e(t,this,null,i),0):t(null,i)},_tileOnError:function(t,i,e){var n=this.options.errorTileUrl;n&&i.getAttribute(\"src\")!==n&&(i.src=n),t(e,i)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,i=this.options.maxZoom,e=this.options.zoomReverse,n=this.options.zoomOffset;return e&&(t=i-t),t+n},_getSubdomain:function(t){var i=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[i]},_abortLoading:function(){var t,i;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&((i=this._tiles[t].el).onload=r,i.onerror=r,i.complete||(i.src=ni,ut(i),delete this._tiles[t]))}}),pn=dn.extend({defaultWmsParams:{service:\"WMS\",request:\"GetMap\",layers:\"\",styles:\"\",format:\"image/jpeg\",transparent:!1,version:\"1.1.1\"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var n=i({},this.defaultWmsParams);for(var o in e)o in this.options||(n[o]=e[o]);var s=(e=l(this,e)).detectRetina&&Ki?2:1,r=this.getTileSize();n.width=r.x*s,n.height=r.y*s,this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var i=this._wmsVersion>=1.3?\"crs\":\"srs\";this.wmsParams[i]=this._crs.code,dn.prototype.onAdd.call(this,t)},getTileUrl:function(t){var i=this._tileCoordsToNwSe(t),e=this._crs,n=b(e.project(i[0]),e.project(i[1])),o=n.min,s=n.max,r=(this._wmsVersion>=1.3&&this._crs===He?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(\",\"),a=L.TileLayer.prototype.getTileUrl.call(this,t);return a+c(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?\"&BBOX=\":\"&bbox=\")+r},setParams:function(t,e){return i(this.wmsParams,t),e||this.redraw(),this}});dn.WMS=pn,Yt.wms=function(t,i){return new pn(t,i)};var mn=Ue.extend({options:{padding:.1,tolerance:0},initialize:function(t){l(this,t),n(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&pt(this._container,\"leaflet-zoom-animated\")),this.getPane().appendChild(this._container),this._update(),this.on(\"update\",this._updatePaths,this)},onRemove:function(){this.off(\"update\",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,i){var e=this._map.getZoomScale(i,this._zoom),n=Pt(this._container),o=this._map.getSize().multiplyBy(.5+this.options.padding),s=this._map.project(this._center,i),r=this._map.project(t,i).subtract(s),a=o.multiplyBy(-e).add(n).add(o).subtract(r);Ni?wt(this._container,a,e):Lt(this._container,a)},_reset:function(){this._update(),this._updateTransform(this._center,this._zoom);for(var t in this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,i=this._map.getSize(),e=this._map.containerPointToLayerPoint(i.multiplyBy(-t)).round();this._bounds=new P(e,e.add(i.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),fn=mn.extend({getEvents:function(){var t=mn.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){mn.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement(\"canvas\");V(t,\"mousemove\",o(this._onMouseMove,32,this),this),V(t,\"click dblclick mousedown mouseup contextmenu\",this._onClick,this),V(t,\"mouseout\",this._handleMouseOut,this),this._ctx=t.getContext(\"2d\")},_destroyContainer:function(){delete this._ctx,ut(this._container),q(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){this._redrawBounds=null;for(var t in this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){this._drawnLayers={},mn.prototype._update.call(this);var t=this._bounds,i=this._container,e=t.getSize(),n=Ki?2:1;Lt(i,t.min),i.width=n*e.x,i.height=n*e.y,i.style.width=e.x+\"px\",i.style.height=e.y+\"px\",Ki&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire(\"update\")}},_reset:function(){mn.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[n(t)]=t;var i=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=i),this._drawLast=i,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var i=t._order,e=i.next,n=i.prev;e?e.prev=n:this._drawLast=n,n?n.next=e:this._drawFirst=e,delete t._order,delete this._layers[L.stamp(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if(t.options.dashArray){var i,e=t.options.dashArray.split(\",\"),n=[];for(i=0;i<e.length;i++)n.push(Number(e[i]));t.options._dashArray=n}},_requestRedraw:function(t){this._map&&(this._extendRedrawBounds(t),this._redrawRequest=this._redrawRequest||f(this._redraw,this))},_extendRedrawBounds:function(t){if(t._pxBounds){var i=(t.options.weight||0)+1;this._redrawBounds=this._redrawBounds||new P,this._redrawBounds.extend(t._pxBounds.min.subtract([i,i])),this._redrawBounds.extend(t._pxBounds.max.add([i,i]))}},_redraw:function(){this._redrawRequest=null,this._redrawBounds&&(this._redrawBounds.min._floor(),this._redrawBounds.max._ceil()),this._clear(),this._draw(),this._redrawBounds=null},_clear:function(){var t=this._redrawBounds;if(t){var i=t.getSize();this._ctx.clearRect(t.min.x,t.min.y,i.x,i.y)}else this._ctx.clearRect(0,0,this._container.width,this._container.height)},_draw:function(){var t,i=this._redrawBounds;if(this._ctx.save(),i){var e=i.getSize();this._ctx.beginPath(),this._ctx.rect(i.min.x,i.min.y,e.x,e.y),this._ctx.clip()}this._drawing=!0;for(var n=this._drawFirst;n;n=n.next)t=n.layer,(!i||t._pxBounds&&t._pxBounds.intersects(i))&&t._updatePath();this._drawing=!1,this._ctx.restore()},_updatePoly:function(t,i){if(this._drawing){var e,n,o,s,r=t._parts,a=r.length,h=this._ctx;if(a){for(this._drawnLayers[t._leaflet_id]=t,h.beginPath(),e=0;e<a;e++){for(n=0,o=r[e].length;n<o;n++)s=r[e][n],h[n?\"lineTo\":\"moveTo\"](s.x,s.y);i&&h.closePath()}this._fillStroke(h,t)}}},_updateCircle:function(t){if(this._drawing&&!t._empty()){var i=t._point,e=this._ctx,n=Math.max(Math.round(t._radius),1),o=(Math.max(Math.round(t._radiusY),1)||n)/n;this._drawnLayers[t._leaflet_id]=t,1!==o&&(e.save(),e.scale(1,o)),e.beginPath(),e.arc(i.x,i.y/o,n,0,2*Math.PI,!1),1!==o&&e.restore(),this._fillStroke(e,t)}},_fillStroke:function(t,i){var e=i.options;e.fill&&(t.globalAlpha=e.fillOpacity,t.fillStyle=e.fillColor||e.color,t.fill(e.fillRule||\"evenodd\")),e.stroke&&0!==e.weight&&(t.setLineDash&&t.setLineDash(i.options&&i.options._dashArray||[]),t.globalAlpha=e.opacity,t.lineWidth=e.weight,t.strokeStyle=e.color,t.lineCap=e.lineCap,t.lineJoin=e.lineJoin,t.stroke())},_onClick:function(t){for(var i,e,n=this._map.mouseEventToLayerPoint(t),o=this._drawFirst;o;o=o.next)(i=o.layer).options.interactive&&i._containsPoint(n)&&!this._map._draggableMoved(i)&&(e=i);e&&(et(t),this._fireEvent([e],t))},_onMouseMove:function(t){if(this._map&&!this._map.dragging.moving()&&!this._map._animatingZoom){var i=this._map.mouseEventToLayerPoint(t);this._handleMouseHover(t,i)}},_handleMouseOut:function(t){var i=this._hoveredLayer;i&&(mt(this._container,\"leaflet-interactive\"),this._fireEvent([i],t,\"mouseout\"),this._hoveredLayer=null)},_handleMouseHover:function(t,i){for(var e,n,o=this._drawFirst;o;o=o.next)(e=o.layer).options.interactive&&e._containsPoint(i)&&(n=e);n!==this._hoveredLayer&&(this._handleMouseOut(t),n&&(pt(this._container,\"leaflet-interactive\"),this._fireEvent([n],t,\"mouseover\"),this._hoveredLayer=n)),this._hoveredLayer&&this._fireEvent([this._hoveredLayer],t)},_fireEvent:function(t,i,e){this._map._fireDOMEvent(i,e||i.type,t)},_bringToFront:function(t){var i=t._order,e=i.next,n=i.prev;e&&(e.prev=n,n?n.next=e:e&&(this._drawFirst=e),i.prev=this._drawLast,this._drawLast.next=i,i.next=null,this._drawLast=i,this._requestRedraw(t))},_bringToBack:function(t){var i=t._order,e=i.next,n=i.prev;n&&(n.next=e,e?e.prev=n:n&&(this._drawLast=n),i.prev=null,i.next=this._drawFirst,this._drawFirst.prev=i,this._drawFirst=i,this._requestRedraw(t))}}),gn=function(){try{return document.namespaces.add(\"lvml\",\"urn:schemas-microsoft-com:vml\"),function(t){return document.createElement(\"<lvml:\"+t+' class=\"lvml\">')}}catch(t){return function(t){return document.createElement(\"<\"+t+' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"lvml\">')}}}(),vn={_initContainer:function(){this._container=ht(\"div\",\"leaflet-vml-container\")},_update:function(){this._map._animatingZoom||(mn.prototype._update.call(this),this.fire(\"update\"))},_initPath:function(t){var i=t._container=gn(\"shape\");pt(i,\"leaflet-vml-shape \"+(this.options.className||\"\")),i.coordsize=\"1 1\",t._path=gn(\"path\"),i.appendChild(t._path),this._updateStyle(t),this._layers[n(t)]=t},_addPath:function(t){var i=t._container;this._container.appendChild(i),t.options.interactive&&t.addInteractiveTarget(i)},_removePath:function(t){var i=t._container;ut(i),t.removeInteractiveTarget(i),delete this._layers[n(t)]},_updateStyle:function(t){var i=t._stroke,e=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(i||(i=t._stroke=gn(\"stroke\")),o.appendChild(i),i.weight=n.weight+\"px\",i.color=n.color,i.opacity=n.opacity,n.dashArray?i.dashStyle=ei(n.dashArray)?n.dashArray.join(\" \"):n.dashArray.replace(/( *, *)/g,\" \"):i.dashStyle=\"\",i.endcap=n.lineCap.replace(\"butt\",\"flat\"),i.joinstyle=n.lineJoin):i&&(o.removeChild(i),t._stroke=null),n.fill?(e||(e=t._fill=gn(\"fill\")),o.appendChild(e),e.color=n.fillColor||n.color,e.opacity=n.fillOpacity):e&&(o.removeChild(e),t._fill=null)},_updateCircle:function(t){var i=t._point.round(),e=Math.round(t._radius),n=Math.round(t._radiusY||e);this._setPath(t,t._empty()?\"M0 0\":\"AL \"+i.x+\",\"+i.y+\" \"+e+\",\"+n+\" 0,23592600\")},_setPath:function(t,i){t._path.v=i},_bringToFront:function(t){ct(t._container)},_bringToBack:function(t){_t(t._container)}},yn=Ji?gn:E,xn=mn.extend({getEvents:function(){var t=mn.prototype.getEvents.call(this);return t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=yn(\"svg\"),this._container.setAttribute(\"pointer-events\",\"none\"),this._rootGroup=yn(\"g\"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){ut(this._container),q(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_onZoomStart:function(){this._update()},_update:function(){if(!this._map._animatingZoom||!this._bounds){mn.prototype._update.call(this);var t=this._bounds,i=t.getSize(),e=this._container;this._svgSize&&this._svgSize.equals(i)||(this._svgSize=i,e.setAttribute(\"width\",i.x),e.setAttribute(\"height\",i.y)),Lt(e,t.min),e.setAttribute(\"viewBox\",[t.min.x,t.min.y,i.x,i.y].join(\" \")),this.fire(\"update\")}},_initPath:function(t){var i=t._path=yn(\"path\");t.options.className&&pt(i,t.options.className),t.options.interactive&&pt(i,\"leaflet-interactive\"),this._updateStyle(t),this._layers[n(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){ut(t._path),t.removeInteractiveTarget(t._path),delete this._layers[n(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var i=t._path,e=t.options;i&&(e.stroke?(i.setAttribute(\"stroke\",e.color),i.setAttribute(\"stroke-opacity\",e.opacity),i.setAttribute(\"stroke-width\",e.weight),i.setAttribute(\"stroke-linecap\",e.lineCap),i.setAttribute(\"stroke-linejoin\",e.lineJoin),e.dashArray?i.setAttribute(\"stroke-dasharray\",e.dashArray):i.removeAttribute(\"stroke-dasharray\"),e.dashOffset?i.setAttribute(\"stroke-dashoffset\",e.dashOffset):i.removeAttribute(\"stroke-dashoffset\")):i.setAttribute(\"stroke\",\"none\"),e.fill?(i.setAttribute(\"fill\",e.fillColor||e.color),i.setAttribute(\"fill-opacity\",e.fillOpacity),i.setAttribute(\"fill-rule\",e.fillRule||\"evenodd\")):i.setAttribute(\"fill\",\"none\"))},_updatePoly:function(t,i){this._setPath(t,k(t._parts,i))},_updateCircle:function(t){var i=t._point,e=Math.max(Math.round(t._radius),1),n=\"a\"+e+\",\"+(Math.max(Math.round(t._radiusY),1)||e)+\" 0 1,0 \",o=t._empty()?\"M0 0\":\"M\"+(i.x-e)+\",\"+i.y+n+2*e+\",0 \"+n+2*-e+\",0 \";this._setPath(t,o)},_setPath:function(t,i){t._path.setAttribute(\"d\",i)},_bringToFront:function(t){ct(t._path)},_bringToBack:function(t){_t(t._path)}});Ji&&xn.include(vn),Le.include({getRenderer:function(t){var i=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return i||(i=this._renderer=this.options.preferCanvas&&Xt()||Jt()),this.hasLayer(i)||this.addLayer(i),i},_getPaneRenderer:function(t){if(\"overlayPane\"===t||void 0===t)return!1;var i=this._paneRenderers[t];return void 0===i&&(i=xn&&Jt({pane:t})||fn&&Xt({pane:t}),this._paneRenderers[t]=i),i}});var wn=en.extend({initialize:function(t,i){en.prototype.initialize.call(this,this._boundsToLatLngs(t),i)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return t=z(t),[t.getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});xn.create=yn,xn.pointsToPath=k,nn.geometryToLayer=Wt,nn.coordsToLatLng=Ht,nn.coordsToLatLngs=Ft,nn.latLngToCoords=Ut,nn.latLngsToCoords=Vt,nn.getFeature=qt,nn.asFeature=Gt,Le.mergeOptions({boxZoom:!0});var Ln=Ze.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on(\"unload\",this._destroy,this)},addHooks:function(){V(this._container,\"mousedown\",this._onMouseDown,this)},removeHooks:function(){q(this._container,\"mousedown\",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){ut(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),mi(),bt(),this._startPoint=this._map.mouseEventToContainerPoint(t),V(document,{contextmenu:Q,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=ht(\"div\",\"leaflet-zoom-box\",this._container),pt(this._container,\"leaflet-crosshair\"),this._map.fire(\"boxzoomstart\")),this._point=this._map.mouseEventToContainerPoint(t);var i=new P(this._point,this._startPoint),e=i.getSize();Lt(this._box,i.min),this._box.style.width=e.x+\"px\",this._box.style.height=e.y+\"px\"},_finish:function(){this._moved&&(ut(this._box),mt(this._container,\"leaflet-crosshair\")),fi(),Tt(),q(document,{contextmenu:Q,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(e(this._resetState,this),0);var i=new T(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(i).fire(\"boxzoomend\",{boxZoomBounds:i})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}});Le.addInitHook(\"addHandler\",\"boxZoom\",Ln),Le.mergeOptions({doubleClickZoom:!0});var Pn=Ze.extend({addHooks:function(){this._map.on(\"dblclick\",this._onDoubleClick,this)},removeHooks:function(){this._map.off(\"dblclick\",this._onDoubleClick,this)},_onDoubleClick:function(t){var i=this._map,e=i.getZoom(),n=i.options.zoomDelta,o=t.originalEvent.shiftKey?e-n:e+n;\"center\"===i.options.doubleClickZoom?i.setZoom(o):i.setZoomAround(t.containerPoint,o)}});Le.addInitHook(\"addHandler\",\"doubleClickZoom\",Pn),Le.mergeOptions({dragging:!0,inertia:!zi,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var bn=Ze.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new Be(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on(\"predrag\",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on(\"predrag\",this._onPreDragWrap,this),t.on(\"zoomend\",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}pt(this._map._container,\"leaflet-grab leaflet-touch-drag\"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){mt(this._map._container,\"leaflet-grab\"),mt(this._map._container,\"leaflet-touch-drag\"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var i=z(this._map.options.maxBounds);this._offsetLimit=b(this._map.latLngToContainerPoint(i.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(i.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire(\"movestart\").fire(\"dragstart\"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var i=this._lastTime=+new Date,e=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(e),this._times.push(i),this._prunePositions(i)}this._map.fire(\"move\",t).fire(\"drag\",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),i=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=i.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,i){return t-(t-i)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),i=this._offsetLimit;t.x<i.min.x&&(t.x=this._viscousLimit(t.x,i.min.x)),t.y<i.min.y&&(t.y=this._viscousLimit(t.y,i.min.y)),t.x>i.max.x&&(t.x=this._viscousLimit(t.x,i.max.x)),t.y>i.max.y&&(t.y=this._viscousLimit(t.y,i.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,i=Math.round(t/2),e=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-i+e)%t+i-e,s=(n+i+e)%t-i-e,r=Math.abs(o+e)<Math.abs(s+e)?o:s;this._draggable._absPos=this._draggable._newPos.clone(),this._draggable._newPos.x=r},_onDragEnd:function(t){var i=this._map,e=i.options,n=!e.inertia||this._times.length<2;if(i.fire(\"dragend\",t),n)i.fire(\"moveend\");else{this._prunePositions(+new Date);var o=this._lastPos.subtract(this._positions[0]),s=(this._lastTime-this._times[0])/1e3,r=e.easeLinearity,a=o.multiplyBy(r/s),h=a.distanceTo([0,0]),u=Math.min(e.inertiaMaxSpeed,h),l=a.multiplyBy(u/h),c=u/(e.inertiaDeceleration*r),_=l.multiplyBy(-c/2).round();_.x||_.y?(_=i._limitOffset(_,i.options.maxBounds),f(function(){i.panBy(_,{duration:c,easeLinearity:r,noMoveStart:!0,animate:!0})})):i.fire(\"moveend\")}}});Le.addInitHook(\"addHandler\",\"dragging\",bn),Le.mergeOptions({keyboard:!0,keyboardPanDelta:80});var Tn=Ze.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,54,173]},initialize:function(t){this._map=t,this._setPanDelta(t.options.keyboardPanDelta),this._setZoomDelta(t.options.zoomDelta)},addHooks:function(){var t=this._map._container;t.tabIndex<=0&&(t.tabIndex=\"0\"),V(t,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.on({focus:this._addHooks,blur:this._removeHooks},this)},removeHooks:function(){this._removeHooks(),q(this._map._container,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.off({focus:this._addHooks,blur:this._removeHooks},this)},_onMouseDown:function(){if(!this._focused){var t=document.body,i=document.documentElement,e=t.scrollTop||i.scrollTop,n=t.scrollLeft||i.scrollLeft;this._map._container.focus(),window.scrollTo(n,e)}},_onFocus:function(){this._focused=!0,this._map.fire(\"focus\")},_onBlur:function(){this._focused=!1,this._map.fire(\"blur\")},_setPanDelta:function(t){var i,e,n=this._panKeys={},o=this.keyCodes;for(i=0,e=o.left.length;i<e;i++)n[o.left[i]]=[-1*t,0];for(i=0,e=o.right.length;i<e;i++)n[o.right[i]]=[t,0];for(i=0,e=o.down.length;i<e;i++)n[o.down[i]]=[0,t];for(i=0,e=o.up.length;i<e;i++)n[o.up[i]]=[0,-1*t]},_setZoomDelta:function(t){var i,e,n=this._zoomKeys={},o=this.keyCodes;for(i=0,e=o.zoomIn.length;i<e;i++)n[o.zoomIn[i]]=t;for(i=0,e=o.zoomOut.length;i<e;i++)n[o.zoomOut[i]]=-t},_addHooks:function(){V(document,\"keydown\",this._onKeyDown,this)},_removeHooks:function(){q(document,\"keydown\",this._onKeyDown,this)},_onKeyDown:function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var i,e=t.keyCode,n=this._map;if(e in this._panKeys){if(n._panAnim&&n._panAnim._inProgress)return;i=this._panKeys[e],t.shiftKey&&(i=w(i).multiplyBy(3)),n.panBy(i),n.options.maxBounds&&n.panInsideBounds(n.options.maxBounds)}else if(e in this._zoomKeys)n.setZoom(n.getZoom()+(t.shiftKey?3:1)*this._zoomKeys[e]);else{if(27!==e||!n._popup||!n._popup.options.closeOnEscapeKey)return;n.closePopup()}Q(t)}}});Le.addInitHook(\"addHandler\",\"keyboard\",Tn),Le.mergeOptions({scrollWheelZoom:!0,wheelDebounceTime:40,wheelPxPerZoomLevel:60});var zn=Ze.extend({addHooks:function(){V(this._map._container,\"mousewheel\",this._onWheelScroll,this),this._delta=0},removeHooks:function(){q(this._map._container,\"mousewheel\",this._onWheelScroll,this)},_onWheelScroll:function(t){var i=it(t),n=this._map.options.wheelDebounceTime;this._delta+=i,this._lastMousePos=this._map.mouseEventToContainerPoint(t),this._startTime||(this._startTime=+new Date);var o=Math.max(n-(+new Date-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(e(this._performZoom,this),o),Q(t)},_performZoom:function(){var t=this._map,i=t.getZoom(),e=this._map.options.zoomSnap||0;t._stop();var n=this._delta/(4*this._map.options.wheelPxPerZoomLevel),o=4*Math.log(2/(1+Math.exp(-Math.abs(n))))/Math.LN2,s=e?Math.ceil(o/e)*e:o,r=t._limitZoom(i+(this._delta>0?s:-s))-i;this._delta=0,this._startTime=null,r&&(\"center\"===t.options.scrollWheelZoom?t.setZoom(i+r):t.setZoomAround(this._lastMousePos,i+r))}});Le.addInitHook(\"addHandler\",\"scrollWheelZoom\",zn),Le.mergeOptions({tap:!0,tapTolerance:15});var Mn=Ze.extend({addHooks:function(){V(this._map._container,\"touchstart\",this._onDown,this)},removeHooks:function(){q(this._map._container,\"touchstart\",this._onDown,this)},_onDown:function(t){if(t.touches){if($(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var i=t.touches[0],n=i.target;this._startPos=this._newPos=new x(i.clientX,i.clientY),n.tagName&&\"a\"===n.tagName.toLowerCase()&&pt(n,\"leaflet-active\"),this._holdTimeout=setTimeout(e(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent(\"contextmenu\",i))},this),1e3),this._simulateEvent(\"mousedown\",i),V(document,{touchmove:this._onMove,touchend:this._onUp},this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),q(document,{touchmove:this._onMove,touchend:this._onUp},this),this._fireClick&&t&&t.changedTouches){var i=t.changedTouches[0],e=i.target;e&&e.tagName&&\"a\"===e.tagName.toLowerCase()&&mt(e,\"leaflet-active\"),this._simulateEvent(\"mouseup\",i),this._isTapValid()&&this._simulateEvent(\"click\",i)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var i=t.touches[0];this._newPos=new x(i.clientX,i.clientY),this._simulateEvent(\"mousemove\",i)},_simulateEvent:function(t,i){var e=document.createEvent(\"MouseEvents\");e._simulated=!0,i.target._simulatedClick=!0,e.initMouseEvent(t,!0,!0,window,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),i.target.dispatchEvent(e)}});Vi&&!Ui&&Le.addInitHook(\"addHandler\",\"tap\",Mn),Le.mergeOptions({touchZoom:Vi&&!zi,bounceAtZoomLimits:!0});var Cn=Ze.extend({addHooks:function(){pt(this._map._container,\"leaflet-touch-zoom\"),V(this._map._container,\"touchstart\",this._onTouchStart,this)},removeHooks:function(){mt(this._map._container,\"leaflet-touch-zoom\"),q(this._map._container,\"touchstart\",this._onTouchStart,this)},_onTouchStart:function(t){var i=this._map;if(t.touches&&2===t.touches.length&&!i._animatingZoom&&!this._zooming){var e=i.mouseEventToContainerPoint(t.touches[0]),n=i.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=i.getSize()._divideBy(2),this._startLatLng=i.containerPointToLatLng(this._centerPoint),\"center\"!==i.options.touchZoom&&(this._pinchStartLatLng=i.containerPointToLatLng(e.add(n)._divideBy(2))),this._startDist=e.distanceTo(n),this._startZoom=i.getZoom(),this._moved=!1,this._zooming=!0,i._stop(),V(document,\"touchmove\",this._onTouchMove,this),V(document,\"touchend\",this._onTouchEnd,this),$(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var i=this._map,n=i.mouseEventToContainerPoint(t.touches[0]),o=i.mouseEventToContainerPoint(t.touches[1]),s=n.distanceTo(o)/this._startDist;if(this._zoom=i.getScaleZoom(s,this._startZoom),!i.options.bounceAtZoomLimits&&(this._zoom<i.getMinZoom()&&s<1||this._zoom>i.getMaxZoom()&&s>1)&&(this._zoom=i._limitZoom(this._zoom)),\"center\"===i.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=n._add(o)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=i.unproject(i.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(i._moveStart(!0,!1),this._moved=!0),g(this._animRequest);var a=e(i._move,i,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=f(a,this,!0),$(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,g(this._animRequest),q(document,\"touchmove\",this._onTouchMove),q(document,\"touchend\",this._onTouchEnd),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});Le.addInitHook(\"addHandler\",\"touchZoom\",Cn),Le.BoxZoom=Ln,Le.DoubleClickZoom=Pn,Le.Drag=bn,Le.Keyboard=Tn,Le.ScrollWheelZoom=zn,Le.Tap=Mn,Le.TouchZoom=Cn;var Zn=window.L;window.L=t,Object.freeze=$t,t.version=\"1.3.1\",t.noConflict=function(){return window.L=Zn,this},t.Control=Pe,t.control=be,t.Browser=$i,t.Evented=ui,t.Mixin=Ee,t.Util=ai,t.Class=v,t.Handler=Ze,t.extend=i,t.bind=e,t.stamp=n,t.setOptions=l,t.DomEvent=de,t.DomUtil=xe,t.PosAnimation=we,t.Draggable=Be,t.LineUtil=Oe,t.PolyUtil=Re,t.Point=x,t.point=w,t.Bounds=P,t.bounds=b,t.Transformation=Z,t.transformation=S,t.Projection=je,t.LatLng=M,t.latLng=C,t.LatLngBounds=T,t.latLngBounds=z,t.CRS=ci,t.GeoJSON=nn,t.geoJSON=Kt,t.geoJson=sn,t.Layer=Ue,t.LayerGroup=Ve,t.layerGroup=function(t,i){return new Ve(t,i)},t.FeatureGroup=qe,t.featureGroup=function(t){return new qe(t)},t.ImageOverlay=rn,t.imageOverlay=function(t,i,e){return new rn(t,i,e)},t.VideoOverlay=an,t.videoOverlay=function(t,i,e){return new an(t,i,e)},t.DivOverlay=hn,t.Popup=un,t.popup=function(t,i){return new un(t,i)},t.Tooltip=ln,t.tooltip=function(t,i){return new ln(t,i)},t.Icon=Ge,t.icon=function(t){return new Ge(t)},t.DivIcon=cn,t.divIcon=function(t){return new cn(t)},t.Marker=Xe,t.marker=function(t,i){return new Xe(t,i)},t.TileLayer=dn,t.tileLayer=Yt,t.GridLayer=_n,t.gridLayer=function(t){return new _n(t)},t.SVG=xn,t.svg=Jt,t.Renderer=mn,t.Canvas=fn,t.canvas=Xt,t.Path=Je,t.CircleMarker=$e,t.circleMarker=function(t,i){return new $e(t,i)},t.Circle=Qe,t.circle=function(t,i,e){return new Qe(t,i,e)},t.Polyline=tn,t.polyline=function(t,i){return new tn(t,i)},t.Polygon=en,t.polygon=function(t,i){return new en(t,i)},t.Rectangle=wn,t.rectangle=function(t,i){return new wn(t,i)},t.Map=Le,t.map=function(t,i){return new Le(t,i)}});\n}\nexports.L = L;\n",
"type": "application/javascript",
"title": "$:/plugins/sycom/leaflet/lib/leaflet.js",
"module-type": "library"
},
"$:/plugins/sycom/leaflet/lib/leaflet-markercluster.js": {
"text": "if($tw.browser){\n!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t((e.Leaflet=e.Leaflet||{},e.Leaflet.markercluster=e.Leaflet.markercluster||{}))}(this,function(e){\"use strict\";var t=L.MarkerClusterGroup=L.FeatureGroup.extend({options:{maxClusterRadius:80,iconCreateFunction:null,clusterPane:L.Marker.prototype.options.pane,spiderfyOnMaxZoom:!0,showCoverageOnHover:!0,zoomToBoundsOnClick:!0,singleMarkerMode:!1,disableClusteringAtZoom:null,removeOutsideVisibleBounds:!0,animate:!0,animateAddingMarkers:!1,spiderfyDistanceMultiplier:1,spiderLegPolylineOptions:{weight:1.5,color:\"#222\",opacity:.5},chunkedLoading:!1,chunkInterval:200,chunkDelay:50,chunkProgress:null,polygonOptions:{}},initialize:function(e){L.Util.setOptions(this,e),this.options.iconCreateFunction||(this.options.iconCreateFunction=this._defaultIconCreateFunction),this._featureGroup=L.featureGroup(),this._featureGroup.addEventParent(this),this._nonPointGroup=L.featureGroup(),this._nonPointGroup.addEventParent(this),this._inZoomAnimation=0,this._needsClustering=[],this._needsRemoving=[],this._currentShownBounds=null,this._queue=[],this._childMarkerEventHandlers={dragstart:this._childMarkerDragStart,move:this._childMarkerMoved,dragend:this._childMarkerDragEnd};var t=L.DomUtil.TRANSITION&&this.options.animate;L.extend(this,t?this._withAnimation:this._noAnimation),this._markerCluster=t?L.MarkerCluster:L.MarkerClusterNonAnimated},addLayer:function(e){if(e instanceof L.LayerGroup)return this.addLayers([e]);if(!e.getLatLng)return this._nonPointGroup.addLayer(e),this.fire(\"layeradd\",{layer:e}),this;if(!this._map)return this._needsClustering.push(e),this.fire(\"layeradd\",{layer:e}),this;if(this.hasLayer(e))return this;this._unspiderfy&&this._unspiderfy(),this._addLayer(e,this._maxZoom),this.fire(\"layeradd\",{layer:e}),this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons();var t=e,i=this._zoom;if(e.__parent)for(;t.__parent._zoom>=i;)t=t.__parent;return this._currentShownBounds.contains(t.getLatLng())&&(this.options.animateAddingMarkers?this._animationAddLayer(e,t):this._animationAddLayerNonAnimated(e,t)),this},removeLayer:function(e){return e instanceof L.LayerGroup?this.removeLayers([e]):e.getLatLng?this._map?e.__parent?(this._unspiderfy&&(this._unspiderfy(),this._unspiderfyLayer(e)),this._removeLayer(e,!0),this.fire(\"layerremove\",{layer:e}),this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),e.off(this._childMarkerEventHandlers,this),this._featureGroup.hasLayer(e)&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow()),this):this:(!this._arraySplice(this._needsClustering,e)&&this.hasLayer(e)&&this._needsRemoving.push({layer:e,latlng:e._latlng}),this.fire(\"layerremove\",{layer:e}),this):(this._nonPointGroup.removeLayer(e),this.fire(\"layerremove\",{layer:e}),this)},addLayers:function(e,t){if(!L.Util.isArray(e))return this.addLayer(e);var i,n=this._featureGroup,r=this._nonPointGroup,s=this.options.chunkedLoading,o=this.options.chunkInterval,a=this.options.chunkProgress,h=e.length,l=0,u=!0;if(this._map){var _=(new Date).getTime(),d=L.bind(function(){for(var c=(new Date).getTime();h>l;l++){if(s&&0===l%200){var p=(new Date).getTime()-c;if(p>o)break}if(i=e[l],i instanceof L.LayerGroup)u&&(e=e.slice(),u=!1),this._extractNonGroupLayers(i,e),h=e.length;else if(i.getLatLng){if(!this.hasLayer(i)&&(this._addLayer(i,this._maxZoom),t||this.fire(\"layeradd\",{layer:i}),i.__parent&&2===i.__parent.getChildCount())){var f=i.__parent.getAllChildMarkers(),m=f[0]===i?f[1]:f[0];n.removeLayer(m)}}else r.addLayer(i),t||this.fire(\"layeradd\",{layer:i})}a&&a(l,h,(new Date).getTime()-_),l===h?(this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds)):setTimeout(d,this.options.chunkDelay)},this);d()}else for(var c=this._needsClustering;h>l;l++)i=e[l],i instanceof L.LayerGroup?(u&&(e=e.slice(),u=!1),this._extractNonGroupLayers(i,e),h=e.length):i.getLatLng?this.hasLayer(i)||c.push(i):r.addLayer(i);return this},removeLayers:function(e){var t,i,n=e.length,r=this._featureGroup,s=this._nonPointGroup,o=!0;if(!this._map){for(t=0;n>t;t++)i=e[t],i instanceof L.LayerGroup?(o&&(e=e.slice(),o=!1),this._extractNonGroupLayers(i,e),n=e.length):(this._arraySplice(this._needsClustering,i),s.removeLayer(i),this.hasLayer(i)&&this._needsRemoving.push({layer:i,latlng:i._latlng}),this.fire(\"layerremove\",{layer:i}));return this}if(this._unspiderfy){this._unspiderfy();var a=e.slice(),h=n;for(t=0;h>t;t++)i=a[t],i instanceof L.LayerGroup?(this._extractNonGroupLayers(i,a),h=a.length):this._unspiderfyLayer(i)}for(t=0;n>t;t++)i=e[t],i instanceof L.LayerGroup?(o&&(e=e.slice(),o=!1),this._extractNonGroupLayers(i,e),n=e.length):i.__parent?(this._removeLayer(i,!0,!0),this.fire(\"layerremove\",{layer:i}),r.hasLayer(i)&&(r.removeLayer(i),i.clusterShow&&i.clusterShow())):(s.removeLayer(i),this.fire(\"layerremove\",{layer:i}));return this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds),this},clearLayers:function(){return this._map||(this._needsClustering=[],delete this._gridClusters,delete this._gridUnclustered),this._noanimationUnspiderfy&&this._noanimationUnspiderfy(),this._featureGroup.clearLayers(),this._nonPointGroup.clearLayers(),this.eachLayer(function(e){e.off(this._childMarkerEventHandlers,this),delete e.__parent},this),this._map&&this._generateInitialClusters(),this},getBounds:function(){var e=new L.LatLngBounds;this._topClusterLevel&&e.extend(this._topClusterLevel._bounds);for(var t=this._needsClustering.length-1;t>=0;t--)e.extend(this._needsClustering[t].getLatLng());return e.extend(this._nonPointGroup.getBounds()),e},eachLayer:function(e,t){var i,n,r,s=this._needsClustering.slice(),o=this._needsRemoving;for(this._topClusterLevel&&this._topClusterLevel.getAllChildMarkers(s),n=s.length-1;n>=0;n--){for(i=!0,r=o.length-1;r>=0;r--)if(o[r].layer===s[n]){i=!1;break}i&&e.call(t,s[n])}this._nonPointGroup.eachLayer(e,t)},getLayers:function(){var e=[];return this.eachLayer(function(t){e.push(t)}),e},getLayer:function(e){var t=null;return e=parseInt(e,10),this.eachLayer(function(i){L.stamp(i)===e&&(t=i)}),t},hasLayer:function(e){if(!e)return!1;var t,i=this._needsClustering;for(t=i.length-1;t>=0;t--)if(i[t]===e)return!0;for(i=this._needsRemoving,t=i.length-1;t>=0;t--)if(i[t].layer===e)return!1;return!(!e.__parent||e.__parent._group!==this)||this._nonPointGroup.hasLayer(e)},zoomToShowLayer:function(e,t){\"function\"!=typeof t&&(t=function(){});var i=function(){!e._icon&&!e.__parent._icon||this._inZoomAnimation||(this._map.off(\"moveend\",i,this),this.off(\"animationend\",i,this),e._icon?t():e.__parent._icon&&(this.once(\"spiderfied\",t,this),e.__parent.spiderfy()))};e._icon&&this._map.getBounds().contains(e.getLatLng())?t():e.__parent._zoom<Math.round(this._map._zoom)?(this._map.on(\"moveend\",i,this),this._map.panTo(e.getLatLng())):(this._map.on(\"moveend\",i,this),this.on(\"animationend\",i,this),e.__parent.zoomToBounds())},onAdd:function(e){this._map=e;var t,i,n;if(!isFinite(this._map.getMaxZoom()))throw\"Map has no maxZoom specified\";for(this._featureGroup.addTo(e),this._nonPointGroup.addTo(e),this._gridClusters||this._generateInitialClusters(),this._maxLat=e.options.crs.projection.MAX_LATITUDE,t=0,i=this._needsRemoving.length;i>t;t++)n=this._needsRemoving[t],n.newlatlng=n.layer._latlng,n.layer._latlng=n.latlng;for(t=0,i=this._needsRemoving.length;i>t;t++)n=this._needsRemoving[t],this._removeLayer(n.layer,!0),n.layer._latlng=n.newlatlng;this._needsRemoving=[],this._zoom=Math.round(this._map._zoom),this._currentShownBounds=this._getExpandedVisibleBounds(),this._map.on(\"zoomend\",this._zoomEnd,this),this._map.on(\"moveend\",this._moveEnd,this),this._spiderfierOnAdd&&this._spiderfierOnAdd(),this._bindEvents(),i=this._needsClustering,this._needsClustering=[],this.addLayers(i,!0)},onRemove:function(e){e.off(\"zoomend\",this._zoomEnd,this),e.off(\"moveend\",this._moveEnd,this),this._unbindEvents(),this._map._mapPane.className=this._map._mapPane.className.replace(\" leaflet-cluster-anim\",\"\"),this._spiderfierOnRemove&&this._spiderfierOnRemove(),delete this._maxLat,this._hideCoverage(),this._featureGroup.remove(),this._nonPointGroup.remove(),this._featureGroup.clearLayers(),this._map=null},getVisibleParent:function(e){for(var t=e;t&&!t._icon;)t=t.__parent;return t||null},_arraySplice:function(e,t){for(var i=e.length-1;i>=0;i--)if(e[i]===t)return e.splice(i,1),!0},_removeFromGridUnclustered:function(e,t){for(var i=this._map,n=this._gridUnclustered,r=Math.floor(this._map.getMinZoom());t>=r&&n[t].removeObject(e,i.project(e.getLatLng(),t));t--);},_childMarkerDragStart:function(e){e.target.__dragStart=e.target._latlng},_childMarkerMoved:function(e){if(!this._ignoreMove&&!e.target.__dragStart){var t=e.target._popup&&e.target._popup.isOpen();this._moveChild(e.target,e.oldLatLng,e.latlng),t&&e.target.openPopup()}},_moveChild:function(e,t,i){e._latlng=t,this.removeLayer(e),e._latlng=i,this.addLayer(e)},_childMarkerDragEnd:function(e){e.target.__dragStart&&this._moveChild(e.target,e.target.__dragStart,e.target._latlng),delete e.target.__dragStart},_removeLayer:function(e,t,i){var n=this._gridClusters,r=this._gridUnclustered,s=this._featureGroup,o=this._map,a=Math.floor(this._map.getMinZoom());t&&this._removeFromGridUnclustered(e,this._maxZoom);var h,l=e.__parent,u=l._markers;for(this._arraySplice(u,e);l&&(l._childCount--,l._boundsNeedUpdate=!0,!(l._zoom<a));)t&&l._childCount<=1?(h=l._markers[0]===e?l._markers[1]:l._markers[0],n[l._zoom].removeObject(l,o.project(l._cLatLng,l._zoom)),r[l._zoom].addObject(h,o.project(h.getLatLng(),l._zoom)),this._arraySplice(l.__parent._childClusters,l),l.__parent._markers.push(h),h.__parent=l.__parent,l._icon&&(s.removeLayer(l),i||s.addLayer(h))):l._iconNeedsUpdate=!0,l=l.__parent;delete e.__parent},_isOrIsParent:function(e,t){for(;t;){if(e===t)return!0;t=t.parentNode}return!1},fire:function(e,t,i){if(t&&t.layer instanceof L.MarkerCluster){if(t.originalEvent&&this._isOrIsParent(t.layer._icon,t.originalEvent.relatedTarget))return;e=\"cluster\"+e}L.FeatureGroup.prototype.fire.call(this,e,t,i)},listens:function(e,t){return L.FeatureGroup.prototype.listens.call(this,e,t)||L.FeatureGroup.prototype.listens.call(this,\"cluster\"+e,t)},_defaultIconCreateFunction:function(e){var t=e.getChildCount(),i=\" marker-cluster-\";return i+=10>t?\"small\":100>t?\"medium\":\"large\",new L.DivIcon({html:\"<div><span>\"+t+\"</span></div>\",className:\"marker-cluster\"+i,iconSize:new L.Point(40,40)})},_bindEvents:function(){var e=this._map,t=this.options.spiderfyOnMaxZoom,i=this.options.showCoverageOnHover,n=this.options.zoomToBoundsOnClick;(t||n)&&this.on(\"clusterclick\",this._zoomOrSpiderfy,this),i&&(this.on(\"clustermouseover\",this._showCoverage,this),this.on(\"clustermouseout\",this._hideCoverage,this),e.on(\"zoomend\",this._hideCoverage,this))},_zoomOrSpiderfy:function(e){for(var t=e.layer,i=t;1===i._childClusters.length;)i=i._childClusters[0];i._zoom===this._maxZoom&&i._childCount===t._childCount&&this.options.spiderfyOnMaxZoom?t.spiderfy():this.options.zoomToBoundsOnClick&&t.zoomToBounds(),e.originalEvent&&13===e.originalEvent.keyCode&&this._map._container.focus()},_showCoverage:function(e){var t=this._map;this._inZoomAnimation||(this._shownPolygon&&t.removeLayer(this._shownPolygon),e.layer.getChildCount()>2&&e.layer!==this._spiderfied&&(this._shownPolygon=new L.Polygon(e.layer.getConvexHull(),this.options.polygonOptions),t.addLayer(this._shownPolygon)))},_hideCoverage:function(){this._shownPolygon&&(this._map.removeLayer(this._shownPolygon),this._shownPolygon=null)},_unbindEvents:function(){var e=this.options.spiderfyOnMaxZoom,t=this.options.showCoverageOnHover,i=this.options.zoomToBoundsOnClick,n=this._map;(e||i)&&this.off(\"clusterclick\",this._zoomOrSpiderfy,this),t&&(this.off(\"clustermouseover\",this._showCoverage,this),this.off(\"clustermouseout\",this._hideCoverage,this),n.off(\"zoomend\",this._hideCoverage,this))},_zoomEnd:function(){this._map&&(this._mergeSplitClusters(),this._zoom=Math.round(this._map._zoom),this._currentShownBounds=this._getExpandedVisibleBounds())},_moveEnd:function(){if(!this._inZoomAnimation){var e=this._getExpandedVisibleBounds();this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),this._zoom,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,Math.round(this._map._zoom),e),this._currentShownBounds=e}},_generateInitialClusters:function(){var e=Math.ceil(this._map.getMaxZoom()),t=Math.floor(this._map.getMinZoom()),i=this.options.maxClusterRadius,n=i;\"function\"!=typeof i&&(n=function(){return i}),null!==this.options.disableClusteringAtZoom&&(e=this.options.disableClusteringAtZoom-1),this._maxZoom=e,this._gridClusters={},this._gridUnclustered={};for(var r=e;r>=t;r--)this._gridClusters[r]=new L.DistanceGrid(n(r)),this._gridUnclustered[r]=new L.DistanceGrid(n(r));this._topClusterLevel=new this._markerCluster(this,t-1)},_addLayer:function(e,t){var i,n,r=this._gridClusters,s=this._gridUnclustered,o=Math.floor(this._map.getMinZoom());for(this.options.singleMarkerMode&&this._overrideMarkerIcon(e),e.on(this._childMarkerEventHandlers,this);t>=o;t--){i=this._map.project(e.getLatLng(),t);var a=r[t].getNearObject(i);if(a)return a._addChild(e),e.__parent=a,void 0;if(a=s[t].getNearObject(i)){var h=a.__parent;h&&this._removeLayer(a,!1);var l=new this._markerCluster(this,t,a,e);r[t].addObject(l,this._map.project(l._cLatLng,t)),a.__parent=l,e.__parent=l;var u=l;for(n=t-1;n>h._zoom;n--)u=new this._markerCluster(this,n,u),r[n].addObject(u,this._map.project(a.getLatLng(),n));return h._addChild(u),this._removeFromGridUnclustered(a,t),void 0}s[t].addObject(e,i)}this._topClusterLevel._addChild(e),e.__parent=this._topClusterLevel},_refreshClustersIcons:function(){this._featureGroup.eachLayer(function(e){e instanceof L.MarkerCluster&&e._iconNeedsUpdate&&e._updateIcon()})},_enqueue:function(e){this._queue.push(e),this._queueTimeout||(this._queueTimeout=setTimeout(L.bind(this._processQueue,this),300))},_processQueue:function(){for(var e=0;e<this._queue.length;e++)this._queue[e].call(this);this._queue.length=0,clearTimeout(this._queueTimeout),this._queueTimeout=null},_mergeSplitClusters:function(){var e=Math.round(this._map._zoom);this._processQueue(),this._zoom<e&&this._currentShownBounds.intersects(this._getExpandedVisibleBounds())?(this._animationStart(),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),this._zoom,this._getExpandedVisibleBounds()),this._animationZoomIn(this._zoom,e)):this._zoom>e?(this._animationStart(),this._animationZoomOut(this._zoom,e)):this._moveEnd()},_getExpandedVisibleBounds:function(){return this.options.removeOutsideVisibleBounds?L.Browser.mobile?this._checkBoundsMaxLat(this._map.getBounds()):this._checkBoundsMaxLat(this._map.getBounds().pad(1)):this._mapBoundsInfinite},_checkBoundsMaxLat:function(e){var t=this._maxLat;return void 0!==t&&(e.getNorth()>=t&&(e._northEast.lat=1/0),e.getSouth()<=-t&&(e._southWest.lat=-1/0)),e},_animationAddLayerNonAnimated:function(e,t){if(t===e)this._featureGroup.addLayer(e);else if(2===t._childCount){t._addToMap();var i=t.getAllChildMarkers();this._featureGroup.removeLayer(i[0]),this._featureGroup.removeLayer(i[1])}else t._updateIcon()},_extractNonGroupLayers:function(e,t){var i,n=e.getLayers(),r=0;for(t=t||[];r<n.length;r++)i=n[r],i instanceof L.LayerGroup?this._extractNonGroupLayers(i,t):t.push(i);return t},_overrideMarkerIcon:function(e){var t=e.options.icon=this.options.iconCreateFunction({getChildCount:function(){return 1},getAllChildMarkers:function(){return[e]}});return t}});L.MarkerClusterGroup.include({_mapBoundsInfinite:new L.LatLngBounds(new L.LatLng(-1/0,-1/0),new L.LatLng(1/0,1/0))}),L.MarkerClusterGroup.include({_noAnimation:{_animationStart:function(){},_animationZoomIn:function(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire(\"animationend\")},_animationZoomOut:function(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire(\"animationend\")},_animationAddLayer:function(e,t){this._animationAddLayerNonAnimated(e,t)}},_withAnimation:{_animationStart:function(){this._map._mapPane.className+=\" leaflet-cluster-anim\",this._inZoomAnimation++},_animationZoomIn:function(e,t){var i,n=this._getExpandedVisibleBounds(),r=this._featureGroup,s=Math.floor(this._map.getMinZoom());this._ignoreMove=!0,this._topClusterLevel._recursively(n,e,s,function(s){var o,a=s._latlng,h=s._markers;for(n.contains(a)||(a=null),s._isSingleParent()&&e+1===t?(r.removeLayer(s),s._recursivelyAddChildrenToMap(null,t,n)):(s.clusterHide(),s._recursivelyAddChildrenToMap(a,t,n)),i=h.length-1;i>=0;i--)o=h[i],n.contains(o._latlng)||r.removeLayer(o)}),this._forceLayout(),this._topClusterLevel._recursivelyBecomeVisible(n,t),r.eachLayer(function(e){e instanceof L.MarkerCluster||!e._icon||e.clusterShow()}),this._topClusterLevel._recursively(n,e,t,function(e){e._recursivelyRestoreChildPositions(t)}),this._ignoreMove=!1,this._enqueue(function(){this._topClusterLevel._recursively(n,e,s,function(e){r.removeLayer(e),e.clusterShow()}),this._animationEnd()})},_animationZoomOut:function(e,t){this._animationZoomOutSingle(this._topClusterLevel,e-1,t),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e,this._getExpandedVisibleBounds())},_animationAddLayer:function(e,t){var i=this,n=this._featureGroup;n.addLayer(e),t!==e&&(t._childCount>2?(t._updateIcon(),this._forceLayout(),this._animationStart(),e._setPos(this._map.latLngToLayerPoint(t.getLatLng())),e.clusterHide(),this._enqueue(function(){n.removeLayer(e),e.clusterShow(),i._animationEnd()})):(this._forceLayout(),i._animationStart(),i._animationZoomOutSingle(t,this._map.getMaxZoom(),this._zoom)))}},_animationZoomOutSingle:function(e,t,i){var n=this._getExpandedVisibleBounds(),r=Math.floor(this._map.getMinZoom());e._recursivelyAnimateChildrenInAndAddSelfToMap(n,r,t+1,i);var s=this;this._forceLayout(),e._recursivelyBecomeVisible(n,i),this._enqueue(function(){if(1===e._childCount){var o=e._markers[0];this._ignoreMove=!0,o.setLatLng(o.getLatLng()),this._ignoreMove=!1,o.clusterShow&&o.clusterShow()}else e._recursively(n,i,r,function(e){e._recursivelyRemoveChildrenFromMap(n,r,t+1)});s._animationEnd()})},_animationEnd:function(){this._map&&(this._map._mapPane.className=this._map._mapPane.className.replace(\" leaflet-cluster-anim\",\"\")),this._inZoomAnimation--,this.fire(\"animationend\")},_forceLayout:function(){L.Util.falseFn(document.body.offsetWidth)}}),L.markerClusterGroup=function(e){return new L.MarkerClusterGroup(e)};var i=L.MarkerCluster=L.Marker.extend({options:L.Icon.prototype.options,initialize:function(e,t,i,n){L.Marker.prototype.initialize.call(this,i?i._cLatLng||i.getLatLng():new L.LatLng(0,0),{icon:this,pane:e.options.clusterPane}),this._group=e,this._zoom=t,this._markers=[],this._childClusters=[],this._childCount=0,this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._bounds=new L.LatLngBounds,i&&this._addChild(i),n&&this._addChild(n)},getAllChildMarkers:function(e){e=e||[];for(var t=this._childClusters.length-1;t>=0;t--)this._childClusters[t].getAllChildMarkers(e);for(var i=this._markers.length-1;i>=0;i--)e.push(this._markers[i]);return e},getChildCount:function(){return this._childCount},zoomToBounds:function(e){for(var t,i=this._childClusters.slice(),n=this._group._map,r=n.getBoundsZoom(this._bounds),s=this._zoom+1,o=n.getZoom();i.length>0&&r>s;){s++;var a=[];for(t=0;t<i.length;t++)a=a.concat(i[t]._childClusters);i=a}r>s?this._group._map.setView(this._latlng,s):o>=r?this._group._map.setView(this._latlng,o+1):this._group._map.fitBounds(this._bounds,e)},getBounds:function(){var e=new L.LatLngBounds;return e.extend(this._bounds),e},_updateIcon:function(){this._iconNeedsUpdate=!0,this._icon&&this.setIcon(this)},createIcon:function(){return this._iconNeedsUpdate&&(this._iconObj=this._group.options.iconCreateFunction(this),this._iconNeedsUpdate=!1),this._iconObj.createIcon()},createShadow:function(){return this._iconObj.createShadow()},_addChild:function(e,t){this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._setClusterCenter(e),e instanceof L.MarkerCluster?(t||(this._childClusters.push(e),e.__parent=this),this._childCount+=e._childCount):(t||this._markers.push(e),this._childCount++),this.__parent&&this.__parent._addChild(e,!0)},_setClusterCenter:function(e){this._cLatLng||(this._cLatLng=e._cLatLng||e._latlng)},_resetBounds:function(){var e=this._bounds;e._southWest&&(e._southWest.lat=1/0,e._southWest.lng=1/0),e._northEast&&(e._northEast.lat=-1/0,e._northEast.lng=-1/0)},_recalculateBounds:function(){var e,t,i,n,r=this._markers,s=this._childClusters,o=0,a=0,h=this._childCount;if(0!==h){for(this._resetBounds(),e=0;e<r.length;e++)i=r[e]._latlng,this._bounds.extend(i),o+=i.lat,a+=i.lng;for(e=0;e<s.length;e++)t=s[e],t._boundsNeedUpdate&&t._recalculateBounds(),this._bounds.extend(t._bounds),i=t._wLatLng,n=t._childCount,o+=i.lat*n,a+=i.lng*n;this._latlng=this._wLatLng=new L.LatLng(o/h,a/h),this._boundsNeedUpdate=!1}},_addToMap:function(e){e&&(this._backupLatlng=this._latlng,this.setLatLng(e)),this._group._featureGroup.addLayer(this)},_recursivelyAnimateChildrenIn:function(e,t,i){this._recursively(e,this._group._map.getMinZoom(),i-1,function(e){var i,n,r=e._markers;for(i=r.length-1;i>=0;i--)n=r[i],n._icon&&(n._setPos(t),n.clusterHide())},function(e){var i,n,r=e._childClusters;for(i=r.length-1;i>=0;i--)n=r[i],n._icon&&(n._setPos(t),n.clusterHide())})},_recursivelyAnimateChildrenInAndAddSelfToMap:function(e,t,i,n){this._recursively(e,n,t,function(r){r._recursivelyAnimateChildrenIn(e,r._group._map.latLngToLayerPoint(r.getLatLng()).round(),i),r._isSingleParent()&&i-1===n?(r.clusterShow(),r._recursivelyRemoveChildrenFromMap(e,t,i)):r.clusterHide(),r._addToMap()})},_recursivelyBecomeVisible:function(e,t){this._recursively(e,this._group._map.getMinZoom(),t,null,function(e){e.clusterShow()})},_recursivelyAddChildrenToMap:function(e,t,i){this._recursively(i,this._group._map.getMinZoom()-1,t,function(n){if(t!==n._zoom)for(var r=n._markers.length-1;r>=0;r--){var s=n._markers[r];i.contains(s._latlng)&&(e&&(s._backupLatlng=s.getLatLng(),s.setLatLng(e),s.clusterHide&&s.clusterHide()),n._group._featureGroup.addLayer(s))}},function(t){t._addToMap(e)})},_recursivelyRestoreChildPositions:function(e){for(var t=this._markers.length-1;t>=0;t--){var i=this._markers[t];i._backupLatlng&&(i.setLatLng(i._backupLatlng),delete i._backupLatlng)}if(e-1===this._zoom)for(var n=this._childClusters.length-1;n>=0;n--)this._childClusters[n]._restorePosition();else for(var r=this._childClusters.length-1;r>=0;r--)this._childClusters[r]._recursivelyRestoreChildPositions(e)},_restorePosition:function(){this._backupLatlng&&(this.setLatLng(this._backupLatlng),delete this._backupLatlng)},_recursivelyRemoveChildrenFromMap:function(e,t,i,n){var r,s;this._recursively(e,t-1,i-1,function(e){for(s=e._markers.length-1;s>=0;s--)r=e._markers[s],n&&n.contains(r._latlng)||(e._group._featureGroup.removeLayer(r),r.clusterShow&&r.clusterShow())},function(e){for(s=e._childClusters.length-1;s>=0;s--)r=e._childClusters[s],n&&n.contains(r._latlng)||(e._group._featureGroup.removeLayer(r),r.clusterShow&&r.clusterShow())})},_recursively:function(e,t,i,n,r){var s,o,a=this._childClusters,h=this._zoom;if(h>=t&&(n&&n(this),r&&h===i&&r(this)),t>h||i>h)for(s=a.length-1;s>=0;s--)o=a[s],e.intersects(o._bounds)&&o._recursively(e,t,i,n,r)},_isSingleParent:function(){return this._childClusters.length>0&&this._childClusters[0]._childCount===this._childCount}});L.Marker.include({clusterHide:function(){return this.options.opacityWhenUnclustered=this.options.opacity||1,this.setOpacity(0)},clusterShow:function(){var e=this.setOpacity(this.options.opacity||this.options.opacityWhenUnclustered);return delete this.options.opacityWhenUnclustered,e}}),L.DistanceGrid=function(e){this._cellSize=e,this._sqCellSize=e*e,this._grid={},this._objectPoint={}},L.DistanceGrid.prototype={addObject:function(e,t){var i=this._getCoord(t.x),n=this._getCoord(t.y),r=this._grid,s=r[n]=r[n]||{},o=s[i]=s[i]||[],a=L.Util.stamp(e);this._objectPoint[a]=t,o.push(e)},updateObject:function(e,t){this.removeObject(e),this.addObject(e,t)},removeObject:function(e,t){var i,n,r=this._getCoord(t.x),s=this._getCoord(t.y),o=this._grid,a=o[s]=o[s]||{},h=a[r]=a[r]||[];for(delete this._objectPoint[L.Util.stamp(e)],i=0,n=h.length;n>i;i++)if(h[i]===e)return h.splice(i,1),1===n&&delete a[r],!0},eachObject:function(e,t){var i,n,r,s,o,a,h,l=this._grid;for(i in l){o=l[i];for(n in o)for(a=o[n],r=0,s=a.length;s>r;r++)h=e.call(t,a[r]),h&&(r--,s--)}},getNearObject:function(e){var t,i,n,r,s,o,a,h,l=this._getCoord(e.x),u=this._getCoord(e.y),_=this._objectPoint,d=this._sqCellSize,c=null;for(t=u-1;u+1>=t;t++)if(r=this._grid[t])for(i=l-1;l+1>=i;i++)if(s=r[i])for(n=0,o=s.length;o>n;n++)a=s[n],h=this._sqDist(_[L.Util.stamp(a)],e),(d>h||d>=h&&null===c)&&(d=h,c=a);return c},_getCoord:function(e){var t=Math.floor(e/this._cellSize);return isFinite(t)?t:e},_sqDist:function(e,t){var i=t.x-e.x,n=t.y-e.y;return i*i+n*n}},function(){L.QuickHull={getDistant:function(e,t){var i=t[1].lat-t[0].lat,n=t[0].lng-t[1].lng;return n*(e.lat-t[0].lat)+i*(e.lng-t[0].lng)},findMostDistantPointFromBaseLine:function(e,t){var i,n,r,s=0,o=null,a=[];for(i=t.length-1;i>=0;i--)n=t[i],r=this.getDistant(n,e),r>0&&(a.push(n),r>s&&(s=r,o=n));return{maxPoint:o,newPoints:a}},buildConvexHull:function(e,t){var i=[],n=this.findMostDistantPointFromBaseLine(e,t);return n.maxPoint?(i=i.concat(this.buildConvexHull([e[0],n.maxPoint],n.newPoints)),i=i.concat(this.buildConvexHull([n.maxPoint,e[1]],n.newPoints))):[e[0]]},getConvexHull:function(e){var t,i=!1,n=!1,r=!1,s=!1,o=null,a=null,h=null,l=null,u=null,_=null;for(t=e.length-1;t>=0;t--){var d=e[t];(i===!1||d.lat>i)&&(o=d,i=d.lat),(n===!1||d.lat<n)&&(a=d,n=d.lat),(r===!1||d.lng>r)&&(h=d,r=d.lng),(s===!1||d.lng<s)&&(l=d,s=d.lng)}n!==i?(_=a,u=o):(_=l,u=h);var c=[].concat(this.buildConvexHull([_,u],e),this.buildConvexHull([u,_],e));return c}}}(),L.MarkerCluster.include({getConvexHull:function(){var e,t,i=this.getAllChildMarkers(),n=[];for(t=i.length-1;t>=0;t--)e=i[t].getLatLng(),n.push(e);return L.QuickHull.getConvexHull(n)}}),L.MarkerCluster.include({_2PI:2*Math.PI,_circleFootSeparation:25,_circleStartAngle:0,_spiralFootSeparation:28,_spiralLengthStart:11,_spiralLengthFactor:5,_circleSpiralSwitchover:9,spiderfy:function(){if(this._group._spiderfied!==this&&!this._group._inZoomAnimation){var e,t=this.getAllChildMarkers(),i=this._group,n=i._map,r=n.latLngToLayerPoint(this._latlng);this._group._unspiderfy(),this._group._spiderfied=this,t.length>=this._circleSpiralSwitchover?e=this._generatePointsSpiral(t.length,r):(r.y+=10,e=this._generatePointsCircle(t.length,r)),this._animationSpiderfy(t,e)}},unspiderfy:function(e){this._group._inZoomAnimation||(this._animationUnspiderfy(e),this._group._spiderfied=null)},_generatePointsCircle:function(e,t){var i,n,r=this._group.options.spiderfyDistanceMultiplier*this._circleFootSeparation*(2+e),s=r/this._2PI,o=this._2PI/e,a=[];for(s=Math.max(s,35),a.length=e,i=0;e>i;i++)n=this._circleStartAngle+i*o,a[i]=new L.Point(t.x+s*Math.cos(n),t.y+s*Math.sin(n))._round();return a},_generatePointsSpiral:function(e,t){var i,n=this._group.options.spiderfyDistanceMultiplier,r=n*this._spiralLengthStart,s=n*this._spiralFootSeparation,o=n*this._spiralLengthFactor*this._2PI,a=0,h=[];for(h.length=e,i=e;i>=0;i--)e>i&&(h[i]=new L.Point(t.x+r*Math.cos(a),t.y+r*Math.sin(a))._round()),a+=s/r+5e-4*i,r+=o/a;return h},_noanimationUnspiderfy:function(){var e,t,i=this._group,n=i._map,r=i._featureGroup,s=this.getAllChildMarkers();for(i._ignoreMove=!0,this.setOpacity(1),t=s.length-1;t>=0;t--)e=s[t],r.removeLayer(e),e._preSpiderfyLatlng&&(e.setLatLng(e._preSpiderfyLatlng),delete e._preSpiderfyLatlng),e.setZIndexOffset&&e.setZIndexOffset(0),e._spiderLeg&&(n.removeLayer(e._spiderLeg),delete e._spiderLeg);i.fire(\"unspiderfied\",{cluster:this,markers:s}),i._ignoreMove=!1,i._spiderfied=null}}),L.MarkerClusterNonAnimated=L.MarkerCluster.extend({_animationSpiderfy:function(e,t){var i,n,r,s,o=this._group,a=o._map,h=o._featureGroup,l=this._group.options.spiderLegPolylineOptions;for(o._ignoreMove=!0,i=0;i<e.length;i++)s=a.layerPointToLatLng(t[i]),n=e[i],r=new L.Polyline([this._latlng,s],l),a.addLayer(r),n._spiderLeg=r,n._preSpiderfyLatlng=n._latlng,n.setLatLng(s),n.setZIndexOffset&&n.setZIndexOffset(1e6),h.addLayer(n);this.setOpacity(.3),o._ignoreMove=!1,o.fire(\"spiderfied\",{cluster:this,markers:e})},_animationUnspiderfy:function(){this._noanimationUnspiderfy()}}),L.MarkerCluster.include({_animationSpiderfy:function(e,t){var i,n,r,s,o,a,h=this,l=this._group,u=l._map,_=l._featureGroup,d=this._latlng,c=u.latLngToLayerPoint(d),p=L.Path.SVG,f=L.extend({},this._group.options.spiderLegPolylineOptions),m=f.opacity;for(void 0===m&&(m=L.MarkerClusterGroup.prototype.options.spiderLegPolylineOptions.opacity),p?(f.opacity=0,f.className=(f.className||\"\")+\" leaflet-cluster-spider-leg\"):f.opacity=m,l._ignoreMove=!0,i=0;i<e.length;i++)n=e[i],a=u.layerPointToLatLng(t[i]),r=new L.Polyline([d,a],f),u.addLayer(r),n._spiderLeg=r,p&&(s=r._path,o=s.getTotalLength()+.1,s.style.strokeDasharray=o,s.style.strokeDashoffset=o),n.setZIndexOffset&&n.setZIndexOffset(1e6),n.clusterHide&&n.clusterHide(),_.addLayer(n),n._setPos&&n._setPos(c);for(l._forceLayout(),l._animationStart(),i=e.length-1;i>=0;i--)a=u.layerPointToLatLng(t[i]),n=e[i],n._preSpiderfyLatlng=n._latlng,n.setLatLng(a),n.clusterShow&&n.clusterShow(),p&&(r=n._spiderLeg,s=r._path,s.style.strokeDashoffset=0,r.setStyle({opacity:m}));this.setOpacity(.3),l._ignoreMove=!1,setTimeout(function(){l._animationEnd(),l.fire(\"spiderfied\",{cluster:h,markers:e})},200)},_animationUnspiderfy:function(e){var t,i,n,r,s,o,a=this,h=this._group,l=h._map,u=h._featureGroup,_=e?l._latLngToNewLayerPoint(this._latlng,e.zoom,e.center):l.latLngToLayerPoint(this._latlng),d=this.getAllChildMarkers(),c=L.Path.SVG;for(h._ignoreMove=!0,h._animationStart(),this.setOpacity(1),i=d.length-1;i>=0;i--)t=d[i],t._preSpiderfyLatlng&&(t.closePopup(),t.setLatLng(t._preSpiderfyLatlng),delete t._preSpiderfyLatlng,o=!0,t._setPos&&(t._setPos(_),o=!1),t.clusterHide&&(t.clusterHide(),o=!1),o&&u.removeLayer(t),c&&(n=t._spiderLeg,r=n._path,s=r.getTotalLength()+.1,r.style.strokeDashoffset=s,n.setStyle({opacity:0})));h._ignoreMove=!1,setTimeout(function(){var e=0;for(i=d.length-1;i>=0;i--)t=d[i],t._spiderLeg&&e++;for(i=d.length-1;i>=0;i--)t=d[i],t._spiderLeg&&(t.clusterShow&&t.clusterShow(),t.setZIndexOffset&&t.setZIndexOffset(0),e>1&&u.removeLayer(t),l.removeLayer(t._spiderLeg),delete t._spiderLeg);h._animationEnd(),h.fire(\"unspiderfied\",{cluster:a,markers:d})},200)}}),L.MarkerClusterGroup.include({_spiderfied:null,unspiderfy:function(){this._unspiderfy.apply(this,arguments)},_spiderfierOnAdd:function(){this._map.on(\"click\",this._unspiderfyWrapper,this),this._map.options.zoomAnimation&&this._map.on(\"zoomstart\",this._unspiderfyZoomStart,this),this._map.on(\"zoomend\",this._noanimationUnspiderfy,this),L.Browser.touch||this._map.getRenderer(this)},_spiderfierOnRemove:function(){this._map.off(\"click\",this._unspiderfyWrapper,this),this._map.off(\"zoomstart\",this._unspiderfyZoomStart,this),this._map.off(\"zoomanim\",this._unspiderfyZoomAnim,this),this._map.off(\"zoomend\",this._noanimationUnspiderfy,this),this._noanimationUnspiderfy()\n},_unspiderfyZoomStart:function(){this._map&&this._map.on(\"zoomanim\",this._unspiderfyZoomAnim,this)},_unspiderfyZoomAnim:function(e){L.DomUtil.hasClass(this._map._mapPane,\"leaflet-touching\")||(this._map.off(\"zoomanim\",this._unspiderfyZoomAnim,this),this._unspiderfy(e))},_unspiderfyWrapper:function(){this._unspiderfy()},_unspiderfy:function(e){this._spiderfied&&this._spiderfied.unspiderfy(e)},_noanimationUnspiderfy:function(){this._spiderfied&&this._spiderfied._noanimationUnspiderfy()},_unspiderfyLayer:function(e){e._spiderLeg&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow(),e.setZIndexOffset&&e.setZIndexOffset(0),this._map.removeLayer(e._spiderLeg),delete e._spiderLeg)}}),L.MarkerClusterGroup.include({refreshClusters:function(e){return e?e instanceof L.MarkerClusterGroup?e=e._topClusterLevel.getAllChildMarkers():e instanceof L.LayerGroup?e=e._layers:e instanceof L.MarkerCluster?e=e.getAllChildMarkers():e instanceof L.Marker&&(e=[e]):e=this._topClusterLevel.getAllChildMarkers(),this._flagParentsIconsNeedUpdate(e),this._refreshClustersIcons(),this.options.singleMarkerMode&&this._refreshSingleMarkerModeMarkers(e),this},_flagParentsIconsNeedUpdate:function(e){var t,i;for(t in e)for(i=e[t].__parent;i;)i._iconNeedsUpdate=!0,i=i.__parent},_refreshSingleMarkerModeMarkers:function(e){var t,i;for(t in e)i=e[t],this.hasLayer(i)&&i.setIcon(this._overrideMarkerIcon(i))}}),L.Marker.include({refreshIconOptions:function(e,t){var i=this.options.icon;return L.setOptions(i,e),this.setIcon(i),t&&this.__parent&&this.__parent._group.refreshClusters(this),this}}),e.MarkerClusterGroup=t,e.MarkerCluster=i});\n//# sourceMappingURL=leaflet.markercluster.js.map\n}\n",
"type": "application/javascript",
"title": "$:/plugins/sycom/leaflet/lib/leaflet-markercluster.js",
"module-type": "library"
},
"$:/plugins/sycom/leaflet/mapCssTweaks.css.tid": {
"title": "$:/plugins/sycom/leaflet/mapCssTweaks.css.tid",
"created": "20161028202401905",
"modified": "20161111151011600",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline html\n\n/* add some styling tweaks to leaflet */\n.leaflet-right {\n\tmax-width:50%\n}\n.leaflet-popup-content h6 {\n\tfont-size:.7rem;\n\tmargin:0 0 .2rem 0\n}\n\n.leaflet-control-attribution {\n\theight:1.5em;\n}\n.leaflet-control-attribution:hover {\n\theight:auto;\n}\n\n.leaflet-top, .leaflet-bottom {\n z-index:999;\n}\n\n/* solve conflict between tw and leaflet */\n.leaflet-zoom-animated {max-width: initial !important}\n\n/* solve background image problem for layer control */\n.leaflet-control-layers-toggle {\n\tbackground-image: url('data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20height%3D%2226%22%20width%3D%2226%22%3E%3Cpath%20d%3D%22M.032%2017.056l13-8%2013%208-13%208-13-8%22%20fill%3D%22%23b9b9b9%22/%3E%3Cpath%20d%3D%22M.032%2017.056l-.032.93%2013%208%2013-8%20.032-.93-13%208z%22%20fill%3D%22%23737373%22/%3E%3Cpath%20d%3D%22M0%2013.076l13-8%2013%208-13%208-13-8%22%20fill%3D%22%23cdcdcd%22/%3E%3Cpath%20d%3D%22M0%2013.076v.91l13%208%2013-8v-.91l-13%208z%22%20fill%3D%22%23737373%22/%3E%3Cpath%20d%3D%22M0%208.986l13-8%2013%208-13%208-13-8%22%20fill-opacity%3D%22.585%22%20stroke%3D%22%23797979%22%20stroke-width%3D%22.1%22%20fill%3D%22%23e9e9e9%22/%3E%3Cpath%20d%3D%22M0%208.986v1l13%208%2013-8v-1l-13%208z%22%20fill%3D%22%23737373%22/%3E%3C/svg%3E') !important\n}\n\n/* default polygon stylin */\n.polyline {fill:none}\n.leaflet-popup-content ul {padding:0 1em}\n\n/* some styling for clusters */\n.marker-cluster div {\n min-width:16px;min-height:16px;\n border-radius:50%;border:none;\n vertical-align:middle;text-align:center;font-weight:bold\n }\n.marker-cluster div div{width:100%;height:100%}\n.marker-cluster div span {display:block;text-shadow:0px 0px 6px #ffffff}\n\npath.leaflet-clickable {fill:<<colour primary>>;fill-opacity: 0.5;stroke:<<colour primary>>}\n.leaflet-marker-colored {fill:<<colour primary>>}\n"
},
"$:/plugins/sycom/leaflet/mapWidget.tid": {
"title": "$:/plugins/sycom/leaflet/mapWidget.tid",
"text": "/*\\\ncreated: 20151028202401905\nmodified: 20170318234011605\ntitle: $:/plugins/sycom/leaflet/mapWidget.tid\ntype: application/javascript\nmodule-type: widget\n\nA widget for displaying leaflet map in TiddlyWiki\n\n\\*/\n\n(function() {\n /* ----------------------- */\n /*jslint node: true, browser: true */\n /*global $tw: false */\n \"use strict\";\n var Widget = require(\"$:/core/modules/widgets/widget.js\").widget,\n L = require(\"$:/plugins/sycom/leaflet/lib/leaflet.js\"),\n markerClusterGroup = require(\"$:/plugins/sycom/leaflet/lib/leaflet-markercluster.js\");\n\n var mapWidget = function(parseTreeNode, options) {\n this.initialise(parseTreeNode, options);\n };\n\n // global vars\n var Map = [], // map collection\n map = 0, // map order number\n tn = 0, // tiddler number\n fCluster = [], // the clusters\n Colour = [], // the colors\n clusterRadius = [], // cluster radii\n clusterType = [], // clustering for whole map or for each tiddler\n lfltDefBounds = [\n [52.75, -2.55],\n [52.85, -2.65]\n ], // default bounds when nothing given\n bounds, // global bounds for map ?todo one per map?\n iter = [], // iteration indicator to avoid infinite loops\n setting = {}; // the map's settings\n\n /* Inherit from the base widget class */\n mapWidget.prototype = new Widget();\n\n /* Render this widget into the DOM */\n mapWidget.prototype.render = function(parent, nextSibling) {\n bounds = null;\n // Compute our attributes\n this.computeAttributes();\n // Get the base settings for rendering : width / height (default : 100% / 500px)\n // !todo : make a settings tidller in order to let user set it for the whole wiki (may be inspired from roadtree)\n // !todo what happens if windows is resized?\n var width = this.getAttribute(\"width\", \"100%\"),\n height = this.getAttribute(\"height\", \"420px\");\n // creating the div container\n var div = this.document.createElement(\"div\");\n div.setAttribute(\"id\", \"lfltMap-\" + map);\n div.setAttribute(\"style\", \"width:\" + width + \";height:\" + height);\n // Save the parent dom node\n this.parentDomNode = parent;\n // Compute our attributes\n // this.computeAttributes();\n // create the container\n parent.insertBefore(div, nextSibling);\n this.domNodes.push(div);\n // Create the map\n this.createMap();\n // Execute our logic\n this.execute();\n // increment map number indicator\n map += 1;\n };\n\n /* Create the map for the widget */\n mapWidget.prototype.createMap = function(parent, nextSibling) {\n // create the leaflet and push it to #lfltMap\n Map[map] = L.map('lfltMap-' + map);\n // Install base tile layer (if none provided, default is \"osm\")\n // get tilelayers from JSON\n var fonds = JSON.parse(this.wiki.getTiddlerText(\"$:/plugins/sycom/leaflet/lib/tileLayers.json\"));\n // create tile layers list object from json list\n var Tiles = []; // leaflet tile layers\n var tiles = {}; // tile identifier for control\n // look for tile parameter\n setting.tile = this.getAttribute(\"tile\", \"osm\");\n setting.marker = this.getAttribute(\"marker\", null);\n // create tile layer list\n for (var i in fonds) {\n if (i == setting.tile || fonds[i].id == setting.tile) {\n setting.tile = fonds[i].id;\n }\n var couche = new L.TileLayer(fonds[i].url, {\n attribution: fonds[i].attrib,\n minZoom: fonds[i].zMin,\n maxZoom: fonds[i].zMax,\n unloadInvisibleTiles: true\n });\n Tiles[fonds[i].id] = couche;\n tiles[fonds[i].nom] = couche;\n }\n // if user entered a wrong tile id\n if (Tiles[setting.tile] === undefined) {\n setting.tile = \"osm\";\n $tw.utils.error(\"Seems you entered a wrong tile id, displayed osm instead. Please refer to plugin documentation to avoid this - error : \" + error);\n }\n Tiles[setting.tile].addTo(Map[map]);\n // install tile layer control if needed\n setting.tileControl = this.getAttribute(\"tileControl\");\n if (setting.tileControl) {\n var tControl = L.control.layers(tiles);\n tControl.addTo(Map[map]);\n }\n /* !todo to come next (will have to implement leaflet.draw extension)\n // look for draw parameter\n setting.drawControl = this.getAttribute(\"drawControl\");\n if (setting.drawControl) {\n // Initialize the FeatureGroup to store editable layers\n var drawnItems = new L.FeatureGroup();\n Map[map].addLayer(drawnItems);\n // Initialize the draw control and pass it the FeatureGroup of editable layers\n var drawControl = new L.Control.Draw({\n edit: {\n featureGroup: drawnItems\n }\n }\n );\n Map[map].addControl(drawControl);\n }\n*/\n };\n\n /* Compute the internal state of the widget */\n mapWidget.prototype.execute = function() {\n // getting wiki primary color\n // check if you defined a tiddler name for palette but no tiddler with that\n if(this.wiki.getTiddlerData(this.wiki.getTiddlerText(\"$:/palette\"))) Colour.wiki = this.wiki.getTiddlerData(this.wiki.getTiddlerText(\"$:/palette\")).primary;\n // switch back to basic blue\n else Colour.wiki = \"#5778d8\";\n\n // switch back to basic tiddlywiki blue if primary is defined from another color\n /* notes to upgrade this process\n if primaire is <<colour xxxx>> set to default gray\n if primaire.match(\"<<\") primaire=\"#555\"; */\n if (Colour.wiki.match(/</g)) Colour.wiki = \"#5778d8\";\n\n // getting style parameters\n var style = this.getAttribute(\"style\", undefined);\n var st;\n // case style defined\n if(style !== undefined) {\n st = JSON.parse(style);\n // color parameter will overwrite style color and style fillColor parameter\n if(st.fillColor) Colour[map] = this.getAttribute(\"color\", st.fillColor);\n else Colour[map] = this.getAttribute(\"color\", st.color);\n }\n // case style undefined\n else {\n st = null;\n // checking if user defined a color if no color go undefined\n Colour[map] = this.getAttribute(\"color\", undefined);\n }\n // create default icon\n // ?todo: only if there are points to display?\n L.icon.default = lfltIcon(setColor(null, map), setting.marker, map);\n\n // create whole map cluster\n // getting cluster size parameter, if exists\n clusterRadius[map] = this.getAttribute(\"cluster\", 80);\n clusterType[map] = this.getAttribute(\"clusterType\", \"map\");\n if (clusterRadius[map] === 0 || clusterType[map] == \"tiddler\") {\n // if clusterRadius null or clustering by tiddler, no whole clustering\n fCluster[map] = L.featureGroup();\n } else {\n // creating a cluter group for whole map\n fCluster[map] = L.markerClusterGroup({\n name: \"Cluster\" + map,\n polygonOptions: {\"weight\":\"0.5\"},\n maxClusterRadius: clusterRadius[map],\n /* for the record. may be a function\n function() {return (clusterRadius - 50) / 9 * Map[map].getZoom() + 50 - (clusterRadius - 50) / 9 },*/\n iconCreateFunction: createCluster\n });\n }\n // Get the declared places from the attributes\n var places = this.getAttribute(\"places\", undefined);\n var feature = L.featureGroup();\n // Render the map\n if (places) mapPlaces(this,\n JSON.parse(places),\n Map[map],\n fCluster[map],\n null,\n Colour[map],\n this.getAttribute(\"marker\"),\n st\n );\n\n // set map to objects bounds\n if (bounds) {\n Map[map].fitBounds(bounds);\n } else {\n bounds = lfltDefBounds;\n Map[map].fitBounds(bounds);\n }\n // if lat long zoom settings, overwrite bounds\n setting.lat = this.getAttribute(\"lat\");\n setting.lg = this.getAttribute(\"long\");\n setting.zoom = this.getAttribute(\"zoom\");\n // overwrite lat and long center\n if (setting.lat && setting.lg) {\n Map[map].setView([setting.lat, setting.lg]);\n }\n // overwrite zoom\n if (setting.zoom) {\n Map[map].setZoom(setting.zoom);\n }\n };\n\n // mapping a places json object (parent object, places json object, destination feature, destination cluster, popup for base objects, ands style parameters : color, marker, json style)\n function mapPlaces(obj, plcs, feat, clust, pop, col, mark, style) {\n // create feature for this mapping turn\n var feature = L.featureGroup();\n // case 1 : data in a tiddler\n if (plcs.tiddler) {\n // if no tiddler is given (single space) map current Tiddler\n // !todo would be much better if so when no attribute at all...\n if (plcs.tiddler == \" \") {\n mapTiddler(obj, obj.getVariable(\"currentTiddler\"), feature, clust, pop, col, mark, style);\n }\n // else, map the given tiddler\n else {\n // get data fields in the tiddler, let's seek for geo data\n mapTiddler(obj, plcs.tiddler, feature, clust, pop, col, mark, style);\n }\n }\n // case 2 : data in multiple tiddlers\n if (plcs.tiddlers) {\n mapTiddlers(obj, plcs.tiddlers, feature, clust, pop, col, mark, style);\n }\n // case 3 : data in tiddlers following a filter\n if (plcs.filter) {\n mapFilter(obj, plcs.filter, feature, clust, pop, col, mark, style);\n }\n // case 4 : data are directly listed in places (point(s) - polygon - polyline - geojson)\n // for each we will\n // - use dedicated function to populate mapping turn layer\n // - add layer to map\n if (plcs.point) {\n // add the point to the cluster layer\n mapPoint(plcs.point, clust, pop, col, mark);\n // add the cluster layer to map\n feature.addLayer(clust);\n // set bounds\n }\n if (plcs.points) {\n // ?todo : create a cluster for those points if clusterType == \"tiddler\"\n mapPoints(plcs.points, clust, pop, col, mark);\n feature.addLayer(clust);\n }\n if (plcs.polygon) {\n var polygFeat = L.featureGroup();\n mapPolyg(plcs.polygon, polygFeat, pop, col, style);\n polygFeat.addTo(feature);\n }\n if (plcs.polygons) {\n var polygsFeat = L.featureGroup();\n mapPolygs(plcs.polygons, polygsFeat, pop, col, style);\n polygsFeat.addTo(feature);\n }\n if (plcs.polyline) {\n var polylFeat = L.featureGroup();\n mapPolyl(plcs.polyline, polylFeat, pop, col, style);\n polylFeat.addTo(feature);\n }\n if (plcs.polylines) {\n var polylsFeat = L.featureGroup();\n mapPolyls(plcs.polylines, polylsFeat, pop, col, style);\n polylsFeat.addTo(feature);\n }\n if (plcs.geojson) {\n // !todo : create a cluster for those points if clusterType == \"tiddler\"\n var geojsonFeat = L.featureGroup();\n mapGeoJson(plcs.geojson, geojsonFeat, clust, col, mark, style);\n geojsonFeat.addTo(feat);\n }\n // add feature to map\n feature.addTo(feat);\n extBounds(feature);\n }\n\n // add a marker for a point\n function mapPoint(coord, clust, pop, col, mark) {\n try {\n var location = coord.split(\",\");\n } catch (err) {displayError(\"point coord error\", err);}\n try {\n var marker = L.marker(location, {\n icon: lfltIcon(col, mark, map)\n });\n if (pop) marker.bindPopup(pop);\n\t\t\tif (clust.count) clust.count +=1;\n\t\t\telse clust.count = 1;\n clust.addLayer(marker);\n } catch (err) {displayError(\"point marker error\", err);}\n }\n // add a marker serie for a points list\n function mapPoints(list, clust, pop, col, mark) {\n var Points = list.split(\" \");\n for (var pt in Points) {\n mapPoint(Points[pt], clust, pop, col, mark);\n }\n }\n\n // add a polygon\n function mapPolyg(list, feat, pop, col, st) {\n var Coords = list.split(\" \");\n var Shape = [];\n try {\n for (var nd in Coords) {\n var location = Coords[nd].split(\",\");\n Shape.push(location);\n }\n } catch (err) {\n displayError(\"polygone\", err);\n }\n try {\n var polygon = L.polygon(Shape, {\n color: setColor(col, map)\n });\n if (st) polygon.setStyle(checkStyle(st, col));\n if (pop) polygon.bindPopup(pop);\n polygon.addTo(feat);\n } catch (err) {\n displayError(\"polygone\", err);\n }\n }\n // add a polygons collection\n function mapPolygs(collec, feat, pop, col, st) {\n var Polys = collec.split(\"|\");\n for (var pg in Polys) {\n mapPolyg(Polys[pg], feat, pop, col, st);\n }\n }\n // add a polyline\n function mapPolyl(list, feat, pop, col, st) {\n var Coords = list.split(\" \");\n var Line = [];\n try {\n for (var nd in Coords) {\n var location = Coords[nd].split(\",\");\n Line.push(location);\n }\n } catch (err) {\n displayError(\"polyline\", err);\n }\n try {\n var polyline = L.polyline(Line, {\n color: setColor(col,map)\n });\n if (st) polyline.setStyle(checkStyle(st, col));\n if (pop) polyline.bindPopup(pop);\n // add polyline class in order to make fill transparent\n polyline.setStyle({\n \"className\": \"polyline\"\n }).addTo(feat);\n } catch (err) {\n displayError(\"polyline\", err);\n }\n }\n // add a polylines collection\n function mapPolyls(collec, feat, pop, col, st) {\n var Lines = collec.split(\"|\");\n for (var ln in Lines) {\n mapPolyl(Lines[ln], feat, pop, col, st);\n }\n }\n\n // add a geojson set\n function mapGeoJson(geojson, feat, clust, col, mark, st) {\n try {\n var data = JSON.parse(geojson);\n var geoJson = L.geoJSON(data, {\n // adding style\n style: function (feature) {\n // get feature style only if style is not injected\n // ?todo : only overwrite injected values?\n if (st === undefined || st === null) {\n st = {};\n if(feature.properties.style !== undefined) st = feature.properties.style;\n }\n // get feature properties style if exists\n if(feature.properties.color !== undefined) {\n st.color = feature.properties.color;\n st.fillColor = st.color;\n }\n // color parameter overwrite style color if exists\n if (col !== undefined && col !== null) {\n st.color = col;\n st.fillColor = col;\n }\n // if no color is defined at the end, fallback\n if (st.color === undefined) {\n col = setColor(col, map);\n st.color = col;\n st.fillColor = col;\n }\n return st;\n },\n onEachFeature: function (feature, layer) {\n layer.bindPopup(jsonPop(feature));\n },\n // adding points\n pointToLayer: function(geoJsonPoint, latlng) {\n // working to get color (from properties)\n var cl;\n if(geoJsonPoint.properties.color !== undefined) cl = geoJsonPoint.properties.color;\n if(geoJsonPoint.properties.fillColor !== undefined) cl = geoJsonPoint.properties.fillColor;\n if(col !== undefined && col !== null) cl = col;\n // binding default icon\n var jsonPoint = L.marker(latlng, {\n icon: lfltIcon(cl, mark, map)\n });\n jsonPoint.bindPopup(jsonPop(geoJsonPoint));\n\t\t\t\t\tif (clust.count) clust.count +=1;\n\t\t\t\t\telse clust.count = 1;\n clust.addLayer(jsonPoint);\n }\n });\n\n // ?todo : should we add clust to feat or to geoJson? should we add clust even if it's already here?\n feat.addLayer(clust);\n feat.addLayer(geoJson);\n } catch (error) {displayError(\"there was an error when displaying geoJson. error : \", error);}\n }\n\n // map a tiddler\n function mapTiddler(obj, tid, feat, clust, pop, col, mark, style) {\n if(iter.map.tid === undefined) iter.map.tid = 1;\n else iter.map.tid +=1;\n if(iter.map.tid < 4242) {\n // get data fields in the tiddler, let's seek for geo data\n var flds = obj.wiki.getTiddler(tid).fields,\n feature = L.featureGroup(), // create the tiddler feature\n popup = \"\"; // create the popup text\n // setting marker, color, style\n // if no marker injected, trying to get from tiddler\n if(mark === null || mark === undefined) {\n if(flds.marker) mark = flds.marker;\n }\n // working style and color together\n var cl, st = {};\n // style\n if(flds.style) st = JSON.parse(flds.style);\n // overwrite with injected values\n if (style !== undefined && style !== null) {\n st = style;\n /* ?todo : should we overwrite only injected?\n \tfor (var v in st) {\n if(style.v !== undefined) st.v = style.v;\n }\n \tfor (var v in style) {\n \t}*/\n }\n // color\n if (flds.color) cl = flds.color;\n // overwrite with injected color style if exists\n if (style !== undefined && style !== null) {\n if (st.fillColor !== undefined) cl = st.fillColor\n }\n // overwrite with injected color also in style\n if (col !== undefined && col !== null) {\n cl = col;\n st.color = cl; st.fillColor = cl;\n }\n Colour[\"t\" + tn] = cl;\n // if clusterType is tiddler, creating a cluster group for tiddler\n // also will have to deal with the filter / tiddler distinction\n if (clusterType[map] == \"tiddler\") {\n // ?todo : automate cluster creation?\n fCluster[\"t\" + tn] = L.markerClusterGroup({\n name: \"Cluster\" + map + \"Cluster\" + tn,\n polygonOptions: {\"weight\":\"0.5\"},\n maxClusterRadius: clusterRadius[map],\n /* for the record. may be a function\n function() {return (clusterRadius - 50) / 9 * Map[map].getZoom() + 50 - (clusterRadius - 50) / 9 },*/\n iconCreateFunction: createCluster\n });\n } else {\n fCluster[\"t\" + tn] = fCluster[map];\n }\n\n // case 1 : data stored in a json tiddler\n if (flds.type == \"application/json\") {\n // for now, assuming any json stored data is geoJson...\n var data = obj.wiki.getTiddlerText(tid);\n mapGeoJson(data, feature, fCluster[\"t\" + tn], Colour[\"t\" + tn], mark, st);\n feat.addLayer(feature);\n }\n // case 2 if tiddler is not JSON data, display tiddler stored geodata as point(s), polygon, polyline...\n else {\n // create the popup for base objects\n popup = \"<h4><a href=\\\"#\" + encodeURIComponent(flds.title) + \"\\\">\" + flds.title + \"</a></h4>\";\n var content = \"\";\n if (flds.text !== \"\") {\n // if tiddler contains a widget, avoid html rendering\n if (flds.text.match(/<\\$leafmap/)) {\n content += \"<pre>\" + flds.text + \"</pre>\";\n }\n // else render\n else {\n content += obj.wiki.renderTiddler(\"text/html\", tid).substring(0, 420);\n }\n }\n // adding a link to the tiddler\n content += \"<br/>(<a href=\\\"#\" + encodeURIComponent(flds.title) + \"\\\" title=\\\"read more...\\\">...</a>)\";\n popup += content;\n\n // map recursively (!!! danger !!!)\n mapPlaces(obj,\n flds,\n feature,\n fCluster[\"t\" + tn],\n popup,\n cl,\n mark,\n st\n );\n feature.addTo(feat);\n }\n /*\n// check if anything was rendered before binding popup\n if (wasRendered == 0) console.log(\"tw-leaflet-map-plugin > non geotiddler was listed and not rendered : \" + flds.title);\n // add the layer to the feature\n feature.addLayer(subFeat);\n feature.addTo(Map[map]); // layer.addTo(Map[map]);\n } */\n // get layer bounds for automatic zoom\n extBounds(feature);\n tn++;\n }\n // it tiddler rendered two many times for same map. Stoping and error launch\n else $tw.utils.error(\"tiddler [[\" + tid + \"]] was rendered more than 4242 times in this map. Please double check circular dependencies...\");\n }\n\n // map a tiddler collection\n function mapTiddlers(obj, list, feat, clust, pop, col, mark, style) {\n var Tids = list.split(\" \");\n for (var td in Tids) {\n mapTiddler(obj, Tids[td], feat, clust, pop, col, mark, style);\n }\n }\n\n // map tiddlers with a filter\n function mapFilter(obj, filter, feat, clust, pop, col, mark, style) {\n try {\n var Tids = obj.wiki.filterTiddlers(filter);\n for (var td in Tids) {\n mapTiddler(obj, Tids[td], feat, clust, pop, col, mark, style);\n }\n } catch (error) {\n $tw.utils.error(\"sorry there was something wrong when trying to map your filter. error : \" + error);\n }\n }\n\n // icon url creator\n function iconUrl(col, tid, m) {\n var icone = escape($tw.wiki.renderTiddler(\"text/html\", tid).replace(\"$primary$\", setColor(col, m)).replace(\"</p>\", \"\").replace(\"<p>\", \"\"));\n return ('data:image/svg+xml;charset=UTF-8,' + icone);\n }\n\n // create marker\n // ?todo only if there are points to display;\n function lfltIcon(col, tid, m) {\n // checking if marker is defined. Fallback to default\n if(tid === undefined || tid === null) tid = \"$:/plugins/sycom/leaflet/images/marker.svg\";\n else tid = \"$:/plugins/sycom/leaflet/images/\" + tid + \".svg\";\n if($tw.wiki.getTiddler(tid) === undefined) tid = \"$:/plugins/sycom/leaflet/images/marker.svg\";\n // !todo create shadow from icon by transform matrix?\n var shad = tid.split(\".svg\")[0] + \"shadow.svg\",\n shadowUrl = 'data:image/svg+xml;charset=UTF-8,' + escape($tw.wiki.getTiddlerText(shad));\n // get dimensions in tiddler\n var MarkDim = $tw.wiki.getTiddler(tid).fields.marker_dim.split(\" \");\n var ShadDim = $tw.wiki.getTiddler(shad).fields.marker_dim.split(\" \");\n var theIcon = L.icon({\n iconUrl: iconUrl(col, tid, m),\n iconRetinaUrl: iconUrl(col, tid, m),\n iconSize: [MarkDim[0], MarkDim[1]],\n iconAnchor: [MarkDim[2], MarkDim[3]],\n popupAnchor: [0, -MarkDim[3]],\n shadowUrl: shadowUrl,\n shadowRetinaUrl: shadowUrl,\n shadowSize: [ShadDim[0], ShadDim[1]],\n shadowAnchor: [ShadDim[2], ShadDim[3]]\n });\n return theIcon;\n }\n\n // set color with fallback to map color or wiki...\n function setColor(col, m) {\n if(m === undefined) m = map;\n if (col === undefined || col === null) col = Colour[m];\n if (col === undefined || col === null) col = Colour.wiki;\n return col;\n }\n\n // set style with fallback to map color or wiki...\n function checkStyle(sty, col) {\n if (col === undefined || col === null) {\n if(sty.color === undefined) sty.color = setColor(col, map);\n if(sty.fillColor === undefined) sty.fillColor = setColor(col, map);\n }\n else {\n sty.color = col;\n sty.fillColor = col;\n }\n return sty;\n }\n\n // coordinate error message\n function displayError(objectType, error) {\n $tw.utils.error(\"there was an error when mapping a \" + objectType + \" - error : \" + error);\n }\n\n // adjust bounds to layer\n function extBounds(feat) {\n try {\n if (bounds) {\n bounds.extend(feat.getBounds());\n } else {\n if (feat.getBounds()._northEast) {\n bounds = feat.getBounds();\n }\n }\n } catch (error) {\n $tw.utils.error(\"there was an error when trying to zoom on bounds. error : \" + error);\n }\n }\n\n // cluster icon creation\n function createCluster(clust) {\n // getting back map number\n var m = this.name.split(\"Cluster\")[1],\n t = this.name.split(\"Cluster\")[2],\n zC = Map[m].getZoom(),\n z0,cTot,cCol,cOpa;\n // checking object density mean for the map\n if (t === undefined) {\n if (fCluster[m].z0 === undefined) fCluster[m].z0 = zC;\n z0 = fCluster[m].z0;\n if (fCluster[m].count === undefined) fCluster[m].count = 1;\n cTot = fCluster[m].count;\n cCol = setColor(Colour[m],m);\n cOpa = 0.85\n }\n else {\n if (fCluster[\"t\" + t].z0 === undefined) fCluster[\"t\" + t].z0 = zC;\n z0 = fCluster[\"t\" + t].z0;\n if (fCluster[\"t\" + t].count === undefined) fCluster[\"t\" + t].count = 1;\n cTot = fCluster[\"t\" + t].count;\n cCol = setColor(Colour[\"t\" + t],m);\n cOpa = 0.65\n }\n // cluster icon size will be based on item number and zoom\n // !todo: use density to get a more \"local\" percentage before calculating size\n var cC = clust.getChildCount(),\n cS = 20 * Math.log(clusterRadius[m]) * (1 + Math.log(cTot)/Math.max(cTot * Math.pow(2,zC-z0),Math.log(cTot))) * (1 - 1 / ((Math.log(cTot) / cTot) * Math.pow(2,zC-z0) * cC + 1));\n if (cS < 34) cS = 34;\n var cF; // font size of cluster text\n if (cC > 9999) cF = cS / 3;\n else {if (cC > 999) cF = cS / 3.5;\n else cF = cS / 2}\n if (cF < 12) cF = 12;\n // creating icon. Checking tiddler or whole clustering before\n return new L.DivIcon({\n html: '<div style=\"width:' + cS + 'px;height:' + cS + 'px;font-size:' + cF + 'px;background-color:' + cCol + ';border-color:' + cCol + ';opacity:'+cOpa+'\"><div><span style=\"line-height:' + cS + 'px;opacity:'+(cOpa+0.12)+'\">' + cC + \"</span></div></div>\",\n className: \"marker-cluster marker-cluster-\" + cC,\n iconSize: new L.Point(cS, cS)\n });\n }\n\n // popup function for Json\n function jsonPop(feat) {\n // extracting data to create popup (all non-null data!)\n var Prop = feat.properties,\n jsontitle = \"\",\n jsondesc = \"\",\n jsonhtml = \"\";\n // testing if properties title or name exists\n if (Prop.name) jsontitle += Prop.name + \" \";\n if (Prop.title) jsontitle += Prop.title + \" \";\n if (Prop.description) jsondesc += Prop.description + \"\";\n // populating other data\n // if we got a title\n if (jsontitle !== \"\") {\n jsonhtml += \"<h4>\" + jsontitle + \"</h4>\";\n // if we got a description let's give it\n if (jsondesc !== \"\") jsonhtml += jsondesc;\n else {\n jsonhtml+= \"<ul>\";\n for (var p in Prop) {\n if (Prop[p] !== null && Prop[p] !== \"\" && p != \"name\" && p != \"title\") jsonhtml += \"<li>\" + p + \" : \" + Prop[p] + \"</li>\";\n }\n jsonhtml += \"</ul>\";\n }\n }\n // if we have no title, giving one with first fields\n else {\n // in case we've got a description. Stop after title\n if (jsondesc !== \"\") {\n for (var pr in Prop) {\n // if title is really to short (as an id), taking next field\n if (jsontitle.length < 8) jsontitle += Prop[pr] + \" \";\n else break;\n }\n jsonhtml = \"<h4>\" + jsontitle + \"</h4>\" + jsonhtml;\n }\n else {\n for (var po in Prop) {\n // if title is really to short (as an id), taking next field\n if (jsontitle.length < 4) jsontitle += Prop[po] + \" \";\n else {\n if (Prop[po] !== null && Prop[po] !== \"\") jsonhtml += \"<li>\" + po + \" : \" + Prop[po] + \"</li>\";\n }\n }\n jsonhtml = \"<h4>\" + jsontitle + \"</h4><ul>\" + jsonhtml + \"</ul>\";\n }\n }\n return jsonhtml;\n }\n\n exports.leafmap = mapWidget;\n\n})();\n/*\nMISC NOTES for later\nJSON.parse(tiddler.fields.text);\nvar jsonData = this.wiki.getTiddlerAsJson(this.to),\n*/\n",
"created": "20151028202401905",
"modified": "20170318234011605",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/sycom/leaflet/readme": {
"title": "$:/plugins/sycom/leaflet/readme",
"text": "The [leaflet plugin](#$:/plugins/sycom/leaflet) is a work in progress integration of the [leaflet][leaflet] library in TiddlyWiki in order to display geographical purpose tiddlers.\n\nHave a look at [demo page on the web][plugindemo] or at integrated documentation which describes usage and examples.\n\nKeep in mind that the plugin might be buggy or imperfect. Please [report any comment or issue][issues] on main repo.\n\n## Sources / licenses\n* [leaflet][leaflet] library (_1.3.1_) - License 2-clause BSD\n * leaflet-[markerCluster][markercluster] extension - Licence MIT\n* [leaflet plugin][source] is released under similar [BSD 3-Clause license][license] as TiddlyWiki.\n!! Side projects\n\n[plugindemo]: https://sycom.gitlab.io/TiddlyWiki-Plugins/#Michel%20Strogoff%20from%20the%20sky\n[source]: https://framagit.org/sycom/TiddlyWiki-Plugins/plugins/sycom/leaflet\n[issues]: https://framagit.org/sycom/TiddlyWiki-Plugins/issues\n[leaflet]: http://leafletjs.com/\n[markercluster]: https://github.com/Leaflet/Leaflet.markercluster\n[license]: https://framagit.org/sycom/TiddlyWiki-Plugins/LICENSE.md\n",
"type": "text/x-markdown",
"created": "20151119173416000",
"modified": "20190332172200000",
"caption": "Readme"
},
"$:/plugins/sycom/leaflet/templates/geoTiddler": {
"title": "$:/plugins/sycom/leaflet/templates/geoTiddler",
"created": "20180602095702318",
"modified": "20180602105242971",
"tags": "$:/tags/ViewTemplate",
"type": "text/vnd.tiddlywiki",
"text": "<$list filter=\"[all[current]has[point]] [all[current]has[points]] [all[current]has[polyline]] [all[current]has[polylines]] [all[current]has[polygon]] [all[current]has[polygons]] [all[current]has[places]] [all[current]has[geojson]]\">\n <$leafmap places='{\"tiddler\":\" \"}' height='240px'/>\n</$list>\n"
}
}
}
{
"tiddlers": {
"$:/plugins/tiddlywiki/hammerjs/hammer.js": {
"text": "/*! Hammer.JS - v2.0.8 - 2016-04-23\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n!function(a,b,c,d){\"use strict\";function e(a,b,c){return setTimeout(j(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function h(b,c,d){var e=\"DEPRECATED METHOD: \"+c+\"\\n\"+d+\" AT \\n\";return function(){var c=new Error(\"get-stack-trace\"),d=c&&c.stack?c.stack.replace(/^[^\\(]+?[\\n$]/gm,\"\").replace(/^\\s+at\\s+/gm,\"\").replace(/^Object.<anonymous>\\s*\\(/gm,\"{anonymous}()@\"):\"Unknown Stack Trace\",f=a.console&&(a.console.warn||a.console.log);return f&&f.call(a.console,e,d),b.apply(this,arguments)}}function i(a,b,c){var d,e=b.prototype;d=a.prototype=Object.create(e),d.constructor=a,d._super=e,c&&la(d,c)}function j(a,b){return function(){return a.apply(b,arguments)}}function k(a,b){return typeof a==oa?a.apply(b?b[0]||d:d,b):a}function l(a,b){return a===d?b:a}function m(a,b,c){g(q(b),function(b){a.addEventListener(b,c,!1)})}function n(a,b,c){g(q(b),function(b){a.removeEventListener(b,c,!1)})}function o(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function p(a,b){return a.indexOf(b)>-1}function q(a){return a.trim().split(/\\s+/g)}function r(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function s(a){return Array.prototype.slice.call(a,0)}function t(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];r(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function u(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g<ma.length;){if(c=ma[g],e=c?c+f:b,e in a)return e;g++}return d}function v(){return ua++}function w(b){var c=b.ownerDocument||b;return c.defaultView||c.parentWindow||a}function x(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){k(a.options.enable,[a])&&c.handler(b)},this.init()}function y(a){var b,c=a.options.inputClass;return new(b=c?c:xa?M:ya?P:wa?R:L)(a,z)}function z(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&Ea&&d-e===0,g=b&(Ga|Ha)&&d-e===0;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,A(a,c),a.emit(\"hammer.input\",c),a.recognize(c),a.session.prevInput=c}function A(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=D(b)),e>1&&!c.firstMultiple?c.firstMultiple=D(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=E(d);b.timeStamp=ra(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=I(h,i),b.distance=H(h,i),B(c,b),b.offsetDirection=G(b.deltaX,b.deltaY);var j=F(b.deltaTime,b.deltaX,b.deltaY);b.overallVelocityX=j.x,b.overallVelocityY=j.y,b.overallVelocity=qa(j.x)>qa(j.y)?j.x:j.y,b.scale=g?K(g.pointers,d):1,b.rotation=g?J(g.pointers,d):0,b.maxPointers=c.prevInput?b.pointers.length>c.prevInput.maxPointers?b.pointers.length:c.prevInput.maxPointers:b.pointers.length,C(c,b);var k=a.element;o(b.srcEvent.target,k)&&(k=b.srcEvent.target),b.target=k}function B(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};b.eventType!==Ea&&f.eventType!==Ga||(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function C(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Ha&&(i>Da||h.velocity===d)){var j=b.deltaX-h.deltaX,k=b.deltaY-h.deltaY,l=F(i,j,k);e=l.x,f=l.y,c=qa(l.x)>qa(l.y)?l.x:l.y,g=G(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function D(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:pa(a.pointers[c].clientX),clientY:pa(a.pointers[c].clientY)},c++;return{timeStamp:ra(),pointers:b,center:E(b),deltaX:a.deltaX,deltaY:a.deltaY}}function E(a){var b=a.length;if(1===b)return{x:pa(a[0].clientX),y:pa(a[0].clientY)};for(var c=0,d=0,e=0;b>e;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:pa(c/b),y:pa(d/b)}}function F(a,b,c){return{x:b/a||0,y:c/a||0}}function G(a,b){return a===b?Ia:qa(a)>=qa(b)?0>a?Ja:Ka:0>b?La:Ma}function H(a,b,c){c||(c=Qa);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function I(a,b,c){c||(c=Qa);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function J(a,b){return I(b[1],b[0],Ra)+I(a[1],a[0],Ra)}function K(a,b){return H(b[0],b[1],Ra)/H(a[0],a[1],Ra)}function L(){this.evEl=Ta,this.evWin=Ua,this.pressed=!1,x.apply(this,arguments)}function M(){this.evEl=Xa,this.evWin=Ya,x.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function N(){this.evTarget=$a,this.evWin=_a,this.started=!1,x.apply(this,arguments)}function O(a,b){var c=s(a.touches),d=s(a.changedTouches);return b&(Ga|Ha)&&(c=t(c.concat(d),\"identifier\",!0)),[c,d]}function P(){this.evTarget=bb,this.targetIds={},x.apply(this,arguments)}function Q(a,b){var c=s(a.touches),d=this.targetIds;if(b&(Ea|Fa)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=s(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return o(a.target,i)}),b===Ea)for(e=0;e<f.length;)d[f[e].identifier]=!0,e++;for(e=0;e<g.length;)d[g[e].identifier]&&h.push(g[e]),b&(Ga|Ha)&&delete d[g[e].identifier],e++;return h.length?[t(f.concat(h),\"identifier\",!0),h]:void 0}function R(){x.apply(this,arguments);var a=j(this.handler,this);this.touch=new P(this.manager,a),this.mouse=new L(this.manager,a),this.primaryTouch=null,this.lastTouches=[]}function S(a,b){a&Ea?(this.primaryTouch=b.changedPointers[0].identifier,T.call(this,b)):a&(Ga|Ha)&&T.call(this,b)}function T(a){var b=a.changedPointers[0];if(b.identifier===this.primaryTouch){var c={x:b.clientX,y:b.clientY};this.lastTouches.push(c);var d=this.lastTouches,e=function(){var a=d.indexOf(c);a>-1&&d.splice(a,1)};setTimeout(e,cb)}}function U(a){for(var b=a.srcEvent.clientX,c=a.srcEvent.clientY,d=0;d<this.lastTouches.length;d++){var e=this.lastTouches[d],f=Math.abs(b-e.x),g=Math.abs(c-e.y);if(db>=f&&db>=g)return!0}return!1}function V(a,b){this.manager=a,this.set(b)}function W(a){if(p(a,jb))return jb;var b=p(a,kb),c=p(a,lb);return b&&c?jb:b||c?b?kb:lb:p(a,ib)?ib:hb}function X(){if(!fb)return!1;var b={},c=a.CSS&&a.CSS.supports;return[\"auto\",\"manipulation\",\"pan-y\",\"pan-x\",\"pan-x pan-y\",\"none\"].forEach(function(d){b[d]=c?a.CSS.supports(\"touch-action\",d):!0}),b}function Y(a){this.options=la({},this.defaults,a||{}),this.id=v(),this.manager=null,this.options.enable=l(this.options.enable,!0),this.state=nb,this.simultaneous={},this.requireFail=[]}function Z(a){return a&sb?\"cancel\":a&qb?\"end\":a&pb?\"move\":a&ob?\"start\":\"\"}function $(a){return a==Ma?\"down\":a==La?\"up\":a==Ja?\"left\":a==Ka?\"right\":\"\"}function _(a,b){var c=b.manager;return c?c.get(a):a}function aa(){Y.apply(this,arguments)}function ba(){aa.apply(this,arguments),this.pX=null,this.pY=null}function ca(){aa.apply(this,arguments)}function da(){Y.apply(this,arguments),this._timer=null,this._input=null}function ea(){aa.apply(this,arguments)}function fa(){aa.apply(this,arguments)}function ga(){Y.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function ha(a,b){return b=b||{},b.recognizers=l(b.recognizers,ha.defaults.preset),new ia(a,b)}function ia(a,b){this.options=la({},ha.defaults,b||{}),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=a,this.input=y(this),this.touchAction=new V(this,this.options.touchAction),ja(this,!0),g(this.options.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function ja(a,b){var c=a.element;if(c.style){var d;g(a.options.cssProps,function(e,f){d=u(c.style,f),b?(a.oldCssProps[d]=c.style[d],c.style[d]=e):c.style[d]=a.oldCssProps[d]||\"\"}),b||(a.oldCssProps={})}}function ka(a,c){var d=b.createEvent(\"Event\");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var la,ma=[\"\",\"webkit\",\"Moz\",\"MS\",\"ms\",\"o\"],na=b.createElement(\"div\"),oa=\"function\",pa=Math.round,qa=Math.abs,ra=Date.now;la=\"function\"!=typeof Object.assign?function(a){if(a===d||null===a)throw new TypeError(\"Cannot convert undefined or null to object\");for(var b=Object(a),c=1;c<arguments.length;c++){var e=arguments[c];if(e!==d&&null!==e)for(var f in e)e.hasOwnProperty(f)&&(b[f]=e[f])}return b}:Object.assign;var sa=h(function(a,b,c){for(var e=Object.keys(b),f=0;f<e.length;)(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]),f++;return a},\"extend\",\"Use `assign`.\"),ta=h(function(a,b){return sa(a,b,!0)},\"merge\",\"Use `assign`.\"),ua=1,va=/mobile|tablet|ip(ad|hone|od)|android/i,wa=\"ontouchstart\"in a,xa=u(a,\"PointerEvent\")!==d,ya=wa&&va.test(navigator.userAgent),za=\"touch\",Aa=\"pen\",Ba=\"mouse\",Ca=\"kinect\",Da=25,Ea=1,Fa=2,Ga=4,Ha=8,Ia=1,Ja=2,Ka=4,La=8,Ma=16,Na=Ja|Ka,Oa=La|Ma,Pa=Na|Oa,Qa=[\"x\",\"y\"],Ra=[\"clientX\",\"clientY\"];x.prototype={handler:function(){},init:function(){this.evEl&&m(this.element,this.evEl,this.domHandler),this.evTarget&&m(this.target,this.evTarget,this.domHandler),this.evWin&&m(w(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&n(this.element,this.evEl,this.domHandler),this.evTarget&&n(this.target,this.evTarget,this.domHandler),this.evWin&&n(w(this.element),this.evWin,this.domHandler)}};var Sa={mousedown:Ea,mousemove:Fa,mouseup:Ga},Ta=\"mousedown\",Ua=\"mousemove mouseup\";i(L,x,{handler:function(a){var b=Sa[a.type];b&Ea&&0===a.button&&(this.pressed=!0),b&Fa&&1!==a.which&&(b=Ga),this.pressed&&(b&Ga&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[a],changedPointers:[a],pointerType:Ba,srcEvent:a}))}});var Va={pointerdown:Ea,pointermove:Fa,pointerup:Ga,pointercancel:Ha,pointerout:Ha},Wa={2:za,3:Aa,4:Ba,5:Ca},Xa=\"pointerdown\",Ya=\"pointermove pointerup pointercancel\";a.MSPointerEvent&&!a.PointerEvent&&(Xa=\"MSPointerDown\",Ya=\"MSPointerMove MSPointerUp MSPointerCancel\"),i(M,x,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace(\"ms\",\"\"),e=Va[d],f=Wa[a.pointerType]||a.pointerType,g=f==za,h=r(b,a.pointerId,\"pointerId\");e&Ea&&(0===a.button||g)?0>h&&(b.push(a),h=b.length-1):e&(Ga|Ha)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Za={touchstart:Ea,touchmove:Fa,touchend:Ga,touchcancel:Ha},$a=\"touchstart\",_a=\"touchstart touchmove touchend touchcancel\";i(N,x,{handler:function(a){var b=Za[a.type];if(b===Ea&&(this.started=!0),this.started){var c=O.call(this,a,b);b&(Ga|Ha)&&c[0].length-c[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:za,srcEvent:a})}}});var ab={touchstart:Ea,touchmove:Fa,touchend:Ga,touchcancel:Ha},bb=\"touchstart touchmove touchend touchcancel\";i(P,x,{handler:function(a){var b=ab[a.type],c=Q.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:za,srcEvent:a})}});var cb=2500,db=25;i(R,x,{handler:function(a,b,c){var d=c.pointerType==za,e=c.pointerType==Ba;if(!(e&&c.sourceCapabilities&&c.sourceCapabilities.firesTouchEvents)){if(d)S.call(this,b,c);else if(e&&U.call(this,c))return;this.callback(a,b,c)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var eb=u(na.style,\"touchAction\"),fb=eb!==d,gb=\"compute\",hb=\"auto\",ib=\"manipulation\",jb=\"none\",kb=\"pan-x\",lb=\"pan-y\",mb=X();V.prototype={set:function(a){a==gb&&(a=this.compute()),fb&&this.manager.element.style&&mb[a]&&(this.manager.element.style[eb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){k(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),W(a.join(\" \"))},preventDefaults:function(a){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=p(d,jb)&&!mb[jb],f=p(d,lb)&&!mb[lb],g=p(d,kb)&&!mb[kb];if(e){var h=1===a.pointers.length,i=a.distance<2,j=a.deltaTime<250;if(h&&i&&j)return}return g&&f?void 0:e||f&&c&Na||g&&c&Oa?this.preventSrc(b):void 0},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var nb=1,ob=2,pb=4,qb=8,rb=qb,sb=16,tb=32;Y.prototype={defaults:{},set:function(a){return la(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,\"recognizeWith\",this))return this;var b=this.simultaneous;return a=_(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,\"dropRecognizeWith\",this)?this:(a=_(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,\"requireFailure\",this))return this;var b=this.requireFail;return a=_(a,this),-1===r(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,\"dropRequireFailure\",this))return this;a=_(a,this);var b=r(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(b,a)}var c=this,d=this.state;qb>d&&b(c.options.event+Z(d)),b(c.options.event),a.additionalEvent&&b(a.additionalEvent),d>=qb&&b(c.options.event+Z(d))},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=tb)},canEmit:function(){for(var a=0;a<this.requireFail.length;){if(!(this.requireFail[a].state&(tb|nb)))return!1;a++}return!0},recognize:function(a){var b=la({},a);return k(this.options.enable,[this,b])?(this.state&(rb|sb|tb)&&(this.state=nb),this.state=this.process(b),void(this.state&(ob|pb|qb|sb)&&this.tryEmit(b))):(this.reset(),void(this.state=tb))},process:function(a){},getTouchAction:function(){},reset:function(){}},i(aa,Y,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b},process:function(a){var b=this.state,c=a.eventType,d=b&(ob|pb),e=this.attrTest(a);return d&&(c&Ha||!e)?b|sb:d||e?c&Ga?b|qb:b&ob?b|pb:ob:tb}}),i(ba,aa,{defaults:{event:\"pan\",threshold:10,pointers:1,direction:Pa},getTouchAction:function(){var a=this.options.direction,b=[];return a&Na&&b.push(lb),a&Oa&&b.push(kb),b},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,g=a.deltaY;return e&b.direction||(b.direction&Na?(e=0===f?Ia:0>f?Ja:Ka,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Ia:0>g?La:Ma,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return aa.prototype.attrTest.call(this,a)&&(this.state&ob||!(this.state&ob)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=$(a.direction);b&&(a.additionalEvent=this.options.event+b),this._super.emit.call(this,a)}}),i(ca,aa,{defaults:{event:\"pinch\",threshold:0,pointers:2},getTouchAction:function(){return[jb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&ob)},emit:function(a){if(1!==a.scale){var b=a.scale<1?\"in\":\"out\";a.additionalEvent=this.options.event+b}this._super.emit.call(this,a)}}),i(da,Y,{defaults:{event:\"press\",pointers:1,time:251,threshold:9},getTouchAction:function(){return[hb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime>b.time;if(this._input=a,!d||!c||a.eventType&(Ga|Ha)&&!f)this.reset();else if(a.eventType&Ea)this.reset(),this._timer=e(function(){this.state=rb,this.tryEmit()},b.time,this);else if(a.eventType&Ga)return rb;return tb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===rb&&(a&&a.eventType&Ga?this.manager.emit(this.options.event+\"up\",a):(this._input.timeStamp=ra(),this.manager.emit(this.options.event,this._input)))}}),i(ea,aa,{defaults:{event:\"rotate\",threshold:0,pointers:2},getTouchAction:function(){return[jb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&ob)}}),i(fa,aa,{defaults:{event:\"swipe\",threshold:10,velocity:.3,direction:Na|Oa,pointers:1},getTouchAction:function(){return ba.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Na|Oa)?b=a.overallVelocity:c&Na?b=a.overallVelocityX:c&Oa&&(b=a.overallVelocityY),this._super.attrTest.call(this,a)&&c&a.offsetDirection&&a.distance>this.options.threshold&&a.maxPointers==this.options.pointers&&qa(b)>this.options.velocity&&a.eventType&Ga},emit:function(a){var b=$(a.offsetDirection);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),i(ga,Y,{defaults:{event:\"tap\",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ib]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime<b.time;if(this.reset(),a.eventType&Ea&&0===this.count)return this.failTimeout();if(d&&f&&c){if(a.eventType!=Ga)return this.failTimeout();var g=this.pTime?a.timeStamp-this.pTime<b.interval:!0,h=!this.pCenter||H(this.pCenter,a.center)<b.posThreshold;this.pTime=a.timeStamp,this.pCenter=a.center,h&&g?this.count+=1:this.count=1,this._input=a;var i=this.count%b.taps;if(0===i)return this.hasRequireFailures()?(this._timer=e(function(){this.state=rb,this.tryEmit()},b.interval,this),ob):rb}return tb},failTimeout:function(){return this._timer=e(function(){this.state=tb},this.options.interval,this),tb},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==rb&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),ha.VERSION=\"2.0.8\",ha.defaults={domEvents:!1,touchAction:gb,enable:!0,inputTarget:null,inputClass:null,preset:[[ea,{enable:!1}],[ca,{enable:!1},[\"rotate\"]],[fa,{direction:Na}],[ba,{direction:Na},[\"swipe\"]],[ga],[ga,{event:\"doubletap\",taps:2},[\"tap\"]],[da]],cssProps:{userSelect:\"none\",touchSelect:\"none\",touchCallout:\"none\",contentZooming:\"none\",userDrag:\"none\",tapHighlightColor:\"rgba(0,0,0,0)\"}};var ub=1,vb=2;ia.prototype={set:function(a){return la(this.options,a),a.touchAction&&this.touchAction.update(),a.inputTarget&&(this.input.destroy(),this.input.target=a.inputTarget,this.input.init()),this},stop:function(a){this.session.stopped=a?vb:ub},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&rb)&&(e=b.curRecognizer=null);for(var f=0;f<d.length;)c=d[f],b.stopped===vb||e&&c!=e&&!c.canRecognizeWith(e)?c.reset():c.recognize(a),!e&&c.state&(ob|pb|qb)&&(e=b.curRecognizer=c),f++}},get:function(a){if(a instanceof Y)return a;for(var b=this.recognizers,c=0;c<b.length;c++)if(b[c].options.event==a)return b[c];return null},add:function(a){if(f(a,\"add\",this))return this;var b=this.get(a.options.event);return b&&this.remove(b),this.recognizers.push(a),a.manager=this,this.touchAction.update(),a},remove:function(a){if(f(a,\"remove\",this))return this;if(a=this.get(a)){var b=this.recognizers,c=r(b,a);-1!==c&&(b.splice(c,1),this.touchAction.update())}return this},on:function(a,b){if(a!==d&&b!==d){var c=this.handlers;return g(q(a),function(a){c[a]=c[a]||[],c[a].push(b)}),this}},off:function(a,b){if(a!==d){var c=this.handlers;return g(q(a),function(a){b?c[a]&&c[a].splice(r(c[a],b),1):delete c[a]}),this}},emit:function(a,b){this.options.domEvents&&ka(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var d=0;d<c.length;)c[d](b),d++}},destroy:function(){this.element&&ja(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},la(ha,{INPUT_START:Ea,INPUT_MOVE:Fa,INPUT_END:Ga,INPUT_CANCEL:Ha,STATE_POSSIBLE:nb,STATE_BEGAN:ob,STATE_CHANGED:pb,STATE_ENDED:qb,STATE_RECOGNIZED:rb,STATE_CANCELLED:sb,STATE_FAILED:tb,DIRECTION_NONE:Ia,DIRECTION_LEFT:Ja,DIRECTION_RIGHT:Ka,DIRECTION_UP:La,DIRECTION_DOWN:Ma,DIRECTION_HORIZONTAL:Na,DIRECTION_VERTICAL:Oa,DIRECTION_ALL:Pa,Manager:ia,Input:x,TouchAction:V,TouchInput:P,MouseInput:L,PointerEventInput:M,TouchMouseInput:R,SingleTouchInput:N,Recognizer:Y,AttrRecognizer:aa,Tap:ga,Pan:ba,Swipe:fa,Pinch:ca,Rotate:ea,Press:da,on:m,off:n,each:g,merge:ta,extend:sa,assign:la,inherit:i,bindFn:j,prefixed:u});var wb=\"undefined\"!=typeof a?a:\"undefined\"!=typeof self?self:{};wb.Hammer=ha,\"function\"==typeof define&&define.amd?define(function(){return ha}):\"undefined\"!=typeof module&&module.exports?module.exports=ha:a[c]=ha}(window,document,\"Hammer\");\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/hammerjs/hammer.js",
"module-type": "library"
},
"$:/plugins/tiddlywiki/hammerjs/license": {
"text": "The MIT License (MIT)\n\nCopyright (C) 2011-2017 by Jorik Tangelder (Eight Media)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n",
"type": "text/plain",
"title": "$:/plugins/tiddlywiki/hammerjs/license"
},
"$:/plugins/tiddlywiki/hammerjs/readme": {
"title": "$:/plugins/tiddlywiki/hammerjs/readme",
"text": "This plugin packages [[HammerJS|https://hammerjs.github.io]] for use by other plugins. It does not provide any end-user visible features.\n"
}
}
}
{
"tiddlers": {
"$:/config/HighlightPlugin/TypeMappings/application/javascript": {
"title": "$:/config/HighlightPlugin/TypeMappings/application/javascript",
"text": "javascript"
},
"$:/config/HighlightPlugin/TypeMappings/application/json": {
"title": "$:/config/HighlightPlugin/TypeMappings/application/json",
"text": "json"
},
"$:/config/HighlightPlugin/TypeMappings/text/css": {
"title": "$:/config/HighlightPlugin/TypeMappings/text/css",
"text": "css"
},
"$:/config/HighlightPlugin/TypeMappings/text/html": {
"title": "$:/config/HighlightPlugin/TypeMappings/text/html",
"text": "html"
},
"$:/config/HighlightPlugin/TypeMappings/image/svg+xml": {
"title": "$:/config/HighlightPlugin/TypeMappings/image/svg+xml",
"text": "xml"
},
"$:/config/HighlightPlugin/TypeMappings/text/x-markdown": {
"title": "$:/config/HighlightPlugin/TypeMappings/text/x-markdown",
"text": "markdown"
},
"$:/plugins/tiddlywiki/highlight/highlight.js": {
"text": "var hljs = require(\"$:/plugins/tiddlywiki/highlight/highlight.js\");\n/*! highlight.js v9.18.1 | BSD3 License | git.io/hljslicense */\n!function(e){var n=\"object\"==typeof window&&window||\"object\"==typeof self&&self;\"undefined\"==typeof exports||exports.nodeType?n&&(n.hljs=e({}),\"function\"==typeof define&&define.amd&&define([],function(){return n.hljs})):e(exports)}(function(a){var f=[],i=Object.keys,_={},c={},C=!0,n=/^(no-?highlight|plain|text)$/i,l=/\\blang(?:uage)?-([\\w-]+)\\b/i,t=/((^(<[^>]+>|\\t|)+|(?:\\n)))/gm,r={case_insensitive:\"cI\",lexemes:\"l\",contains:\"c\",keywords:\"k\",subLanguage:\"sL\",className:\"cN\",begin:\"b\",beginKeywords:\"bK\",end:\"e\",endsWithParent:\"eW\",illegal:\"i\",excludeBegin:\"eB\",excludeEnd:\"eE\",returnBegin:\"rB\",returnEnd:\"rE\",variants:\"v\",IDENT_RE:\"IR\",UNDERSCORE_IDENT_RE:\"UIR\",NUMBER_RE:\"NR\",C_NUMBER_RE:\"CNR\",BINARY_NUMBER_RE:\"BNR\",RE_STARTERS_RE:\"RSR\",BACKSLASH_ESCAPE:\"BE\",APOS_STRING_MODE:\"ASM\",QUOTE_STRING_MODE:\"QSM\",PHRASAL_WORDS_MODE:\"PWM\",C_LINE_COMMENT_MODE:\"CLCM\",C_BLOCK_COMMENT_MODE:\"CBCM\",HASH_COMMENT_MODE:\"HCM\",NUMBER_MODE:\"NM\",C_NUMBER_MODE:\"CNM\",BINARY_NUMBER_MODE:\"BNM\",CSS_NUMBER_MODE:\"CSSNM\",REGEXP_MODE:\"RM\",TITLE_MODE:\"TM\",UNDERSCORE_TITLE_MODE:\"UTM\",COMMENT:\"C\",beginRe:\"bR\",endRe:\"eR\",illegalRe:\"iR\",lexemesRe:\"lR\",terminators:\"t\",terminator_end:\"tE\"},m=\"</span>\",O=\"Could not find the language '{}', did you forget to load/include a language module?\",B={classPrefix:\"hljs-\",tabReplace:null,useBR:!1,languages:void 0},o=\"of and for in not or if then\".split(\" \");function x(e){return e.replace(/&/g,\"&\").replace(/</g,\"<\").replace(/>/g,\">\")}function g(e){return e.nodeName.toLowerCase()}function u(e){return n.test(e)}function s(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n in e)t[n]=e[n];return r.forEach(function(e){for(n in e)t[n]=e[n]}),t}function E(e){var a=[];return function e(n,t){for(var r=n.firstChild;r;r=r.nextSibling)3===r.nodeType?t+=r.nodeValue.length:1===r.nodeType&&(a.push({event:\"start\",offset:t,node:r}),t=e(r,t),g(r).match(/br|hr|img|input/)||a.push({event:\"stop\",offset:t,node:r}));return t}(e,0),a}function d(e,n,t){var r=0,a=\"\",i=[];function o(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset<n[0].offset?e:n:\"start\"===n[0].event?e:n:e.length?e:n}function c(e){a+=\"<\"+g(e)+f.map.call(e.attributes,function(e){return\" \"+e.nodeName+'=\"'+x(e.value).replace(/\"/g,\""\")+'\"'}).join(\"\")+\">\"}function l(e){a+=\"</\"+g(e)+\">\"}function u(e){(\"start\"===e.event?c:l)(e.node)}for(;e.length||n.length;){var s=o();if(a+=x(t.substring(r,s[0].offset)),r=s[0].offset,s===e){for(i.reverse().forEach(l);u(s.splice(0,1)[0]),(s=o())===e&&s.length&&s[0].offset===r;);i.reverse().forEach(c)}else\"start\"===s[0].event?i.push(s[0].node):i.pop(),u(s.splice(0,1)[0])}return a+x(t.substr(r))}function R(n){return n.v&&!n.cached_variants&&(n.cached_variants=n.v.map(function(e){return s(n,{v:null},e)})),n.cached_variants?n.cached_variants:function e(n){return!!n&&(n.eW||e(n.starts))}(n)?[s(n,{starts:n.starts?s(n.starts):null})]:Object.isFrozen(n)?[s(n)]:[n]}function p(e){if(r&&!e.langApiRestored){for(var n in e.langApiRestored=!0,r)e[n]&&(e[r[n]]=e[n]);(e.c||[]).concat(e.v||[]).forEach(p)}}function v(n,r){var a={};return\"string\"==typeof n?t(\"keyword\",n):i(n).forEach(function(e){t(e,n[e])}),a;function t(t,e){r&&(e=e.toLowerCase()),e.split(\" \").forEach(function(e){var n=e.split(\"|\");a[n[0]]=[t,function(e,n){return n?Number(n):function(e){return-1!=o.indexOf(e.toLowerCase())}(e)?0:1}(n[0],n[1])]})}}function S(r){function s(e){return e&&e.source||e}function f(e,n){return new RegExp(s(e),\"m\"+(r.cI?\"i\":\"\")+(n?\"g\":\"\"))}function a(a){var i,e,o={},c=[],l={},t=1;function n(e,n){o[t]=e,c.push([e,n]),t+=function(e){return new RegExp(e.toString()+\"|\").exec(\"\").length-1}(n)+1}for(var r=0;r<a.c.length;r++){n(e=a.c[r],e.bK?\"\\\\.?(?:\"+e.b+\")\\\\.?\":e.b)}a.tE&&n(\"end\",a.tE),a.i&&n(\"illegal\",a.i);var u=c.map(function(e){return e[1]});return i=f(function(e,n){for(var t=/\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./,r=0,a=\"\",i=0;i<e.length;i++){var o=r+=1,c=s(e[i]);for(0<i&&(a+=n),a+=\"(\";0<c.length;){var l=t.exec(c);if(null==l){a+=c;break}a+=c.substring(0,l.index),c=c.substring(l.index+l[0].length),\"\\\\\"==l[0][0]&&l[1]?a+=\"\\\\\"+String(Number(l[1])+o):(a+=l[0],\"(\"==l[0]&&r++)}a+=\")\"}return a}(u,\"|\"),!0),l.lastIndex=0,l.exec=function(e){var n;if(0===c.length)return null;i.lastIndex=l.lastIndex;var t=i.exec(e);if(!t)return null;for(var r=0;r<t.length;r++)if(null!=t[r]&&null!=o[\"\"+r]){n=o[\"\"+r];break}return\"string\"==typeof n?(t.type=n,t.extra=[a.i,a.tE]):(t.type=\"begin\",t.rule=n),t},l}if(r.c&&-1!=r.c.indexOf(\"self\")){if(!C)throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");r.c=r.c.filter(function(e){return\"self\"!=e})}!function n(t,e){t.compiled||(t.compiled=!0,t.k=t.k||t.bK,t.k&&(t.k=v(t.k,r.cI)),t.lR=f(t.l||/\\w+/,!0),e&&(t.bK&&(t.b=\"\\\\b(\"+t.bK.split(\" \").join(\"|\")+\")\\\\b\"),t.b||(t.b=/\\B|\\b/),t.bR=f(t.b),t.endSameAsBegin&&(t.e=t.b),t.e||t.eW||(t.e=/\\B|\\b/),t.e&&(t.eR=f(t.e)),t.tE=s(t.e)||\"\",t.eW&&e.tE&&(t.tE+=(t.e?\"|\":\"\")+e.tE)),t.i&&(t.iR=f(t.i)),null==t.relevance&&(t.relevance=1),t.c||(t.c=[]),t.c=Array.prototype.concat.apply([],t.c.map(function(e){return R(\"self\"===e?t:e)})),t.c.forEach(function(e){n(e,t)}),t.starts&&n(t.starts,e),t.t=a(t))}(r)}function T(n,e,a,t){var i=e;function o(e,n){if(function(e,n){var t=e&&e.exec(n);return t&&0===t.index}(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}if(e.eW)return o(e.parent,n)}function c(e,n,t,r){if(!t&&\"\"===n)return\"\";if(!e)return n;var a='<span class=\"'+(r?\"\":B.classPrefix);return(a+=e+'\">')+n+(t?\"\":m)}function l(){p+=null!=d.sL?function(){var e=\"string\"==typeof d.sL;if(e&&!_[d.sL])return x(v);var n=e?T(d.sL,v,!0,R[d.sL]):w(v,d.sL.length?d.sL:void 0);return 0<d.relevance&&(M+=n.relevance),e&&(R[d.sL]=n.top),c(n.language,n.value,!1,!0)}():function(){var e,n,t,r,a,i,o;if(!d.k)return x(v);for(r=\"\",n=0,d.lR.lastIndex=0,t=d.lR.exec(v);t;)r+=x(v.substring(n,t.index)),a=d,i=t,void 0,o=g.cI?i[0].toLowerCase():i[0],(e=a.k.hasOwnProperty(o)&&a.k[o])?(M+=e[1],r+=c(e[0],x(t[0]))):r+=x(t[0]),n=d.lR.lastIndex,t=d.lR.exec(v);return r+x(v.substr(n))}(),v=\"\"}function u(e){p+=e.cN?c(e.cN,\"\",!0):\"\",d=Object.create(e,{parent:{value:d}})}function s(e){var n=e[0],t=e.rule;return t&&t.endSameAsBegin&&(t.eR=function(e){return new RegExp(e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\"),\"m\")}(n)),t.skip?v+=n:(t.eB&&(v+=n),l(),t.rB||t.eB||(v=n)),u(t),t.rB?0:n.length}var f={};function r(e,n){var t=n&&n[0];if(v+=e,null==t)return l(),0;if(\"begin\"==f.type&&\"end\"==n.type&&f.index==n.index&&\"\"===t)return v+=i.slice(n.index,n.index+1),1;if(\"begin\"===(f=n).type)return s(n);if(\"illegal\"===n.type&&!a)throw new Error('Illegal lexeme \"'+t+'\" for mode \"'+(d.cN||\"<unnamed>\")+'\"');if(\"end\"===n.type){var r=function(e){var n=e[0],t=i.substr(e.index),r=o(d,t);if(r){var a=d;for(a.skip?v+=n:(a.rE||a.eE||(v+=n),l(),a.eE&&(v=n));d.cN&&(p+=m),d.skip||d.sL||(M+=d.relevance),(d=d.parent)!==r.parent;);return r.starts&&(r.endSameAsBegin&&(r.starts.eR=r.eR),u(r.starts)),a.rE?0:n.length}}(n);if(null!=r)return r}return v+=t,t.length}var g=D(n);if(!g)throw console.error(O.replace(\"{}\",n)),new Error('Unknown language: \"'+n+'\"');S(g);var E,d=t||g,R={},p=\"\";for(E=d;E!==g;E=E.parent)E.cN&&(p=c(E.cN,\"\",!0)+p);var v=\"\",M=0;try{for(var b,h,N=0;d.t.lastIndex=N,b=d.t.exec(i);)h=r(i.substring(N,b.index),b),N=b.index+h;for(r(i.substr(N)),E=d;E.parent;E=E.parent)E.cN&&(p+=m);return{relevance:M,value:p,i:!1,language:n,top:d}}catch(e){if(e.message&&-1!==e.message.indexOf(\"Illegal\"))return{i:!0,relevance:0,value:x(i)};if(C)return{relevance:0,value:x(i),language:n,top:d,errorRaised:e};throw e}}function w(t,e){e=e||B.languages||i(_);var r={relevance:0,value:x(t)},a=r;return e.filter(D).filter(L).forEach(function(e){var n=T(e,t,!1);n.language=e,n.relevance>a.relevance&&(a=n),n.relevance>r.relevance&&(a=r,r=n)}),a.language&&(r.second_best=a),r}function M(e){return B.tabReplace||B.useBR?e.replace(t,function(e,n){return B.useBR&&\"\\n\"===e?\"<br>\":B.tabReplace?n.replace(/\\t/g,B.tabReplace):\"\"}):e}function b(e){var n,t,r,a,i,o=function(e){var n,t,r,a,i=e.className+\" \";if(i+=e.parentNode?e.parentNode.className:\"\",t=l.exec(i)){var o=D(t[1]);return o||(console.warn(O.replace(\"{}\",t[1])),console.warn(\"Falling back to no-highlight mode for this block.\",e)),o?t[1]:\"no-highlight\"}for(n=0,r=(i=i.split(/\\s+/)).length;n<r;n++)if(u(a=i[n])||D(a))return a}(e);u(o)||(B.useBR?(n=document.createElement(\"div\")).innerHTML=e.innerHTML.replace(/\\n/g,\"\").replace(/<br[ \\/]*>/g,\"\\n\"):n=e,i=n.textContent,r=o?T(o,i,!0):w(i),(t=E(n)).length&&((a=document.createElement(\"div\")).innerHTML=r.value,r.value=d(t,E(a),i)),r.value=M(r.value),e.innerHTML=r.value,e.className=function(e,n,t){var r=n?c[n]:t,a=[e.trim()];return e.match(/\\bhljs\\b/)||a.push(\"hljs\"),-1===e.indexOf(r)&&a.push(r),a.join(\" \").trim()}(e.className,o,r.language),e.result={language:r.language,re:r.relevance},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.relevance}))}function h(){if(!h.called){h.called=!0;var e=document.querySelectorAll(\"pre code\");f.forEach.call(e,b)}}var N={disableAutodetect:!0};function D(e){return e=(e||\"\").toLowerCase(),_[e]||_[c[e]]}function L(e){var n=D(e);return n&&!n.disableAutodetect}return a.highlight=T,a.highlightAuto=w,a.fixMarkup=M,a.highlightBlock=b,a.configure=function(e){B=s(B,e)},a.initHighlighting=h,a.initHighlightingOnLoad=function(){window.addEventListener(\"DOMContentLoaded\",h,!1),window.addEventListener(\"load\",h,!1)},a.registerLanguage=function(n,e){var t;try{t=e(a)}catch(e){if(console.error(\"Language definition for '{}' could not be registered.\".replace(\"{}\",n)),!C)throw e;console.error(e),t=N}p(_[n]=t),t.rawDefinition=e.bind(null,a),t.aliases&&t.aliases.forEach(function(e){c[e]=n})},a.listLanguages=function(){return i(_)},a.getLanguage=D,a.requireLanguage=function(e){var n=D(e);if(n)return n;throw new Error(\"The '{}' language is required, but not loaded.\".replace(\"{}\",e))},a.autoDetection=L,a.inherit=s,a.debugMode=function(){C=!1},a.IR=a.IDENT_RE=\"[a-zA-Z]\\\\w*\",a.UIR=a.UNDERSCORE_IDENT_RE=\"[a-zA-Z_]\\\\w*\",a.NR=a.NUMBER_RE=\"\\\\b\\\\d+(\\\\.\\\\d+)?\",a.CNR=a.C_NUMBER_RE=\"(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)\",a.BNR=a.BINARY_NUMBER_RE=\"\\\\b(0b[01]+)\",a.RSR=a.RE_STARTERS_RE=\"!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~\",a.BE=a.BACKSLASH_ESCAPE={b:\"\\\\\\\\[\\\\s\\\\S]\",relevance:0},a.ASM=a.APOS_STRING_MODE={cN:\"string\",b:\"'\",e:\"'\",i:\"\\\\n\",c:[a.BE]},a.QSM=a.QUOTE_STRING_MODE={cN:\"string\",b:'\"',e:'\"',i:\"\\\\n\",c:[a.BE]},a.PWM=a.PHRASAL_WORDS_MODE={b:/\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/},a.C=a.COMMENT=function(e,n,t){var r=a.inherit({cN:\"comment\",b:e,e:n,c:[]},t||{});return r.c.push(a.PWM),r.c.push({cN:\"doctag\",b:\"(?:TODO|FIXME|NOTE|BUG|XXX):\",relevance:0}),r},a.CLCM=a.C_LINE_COMMENT_MODE=a.C(\"//\",\"$\"),a.CBCM=a.C_BLOCK_COMMENT_MODE=a.C(\"/\\\\*\",\"\\\\*/\"),a.HCM=a.HASH_COMMENT_MODE=a.C(\"#\",\"$\"),a.NM=a.NUMBER_MODE={cN:\"number\",b:a.NR,relevance:0},a.CNM=a.C_NUMBER_MODE={cN:\"number\",b:a.CNR,relevance:0},a.BNM=a.BINARY_NUMBER_MODE={cN:\"number\",b:a.BNR,relevance:0},a.CSSNM=a.CSS_NUMBER_MODE={cN:\"number\",b:a.NR+\"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?\",relevance:0},a.RM=a.REGEXP_MODE={cN:\"regexp\",b:/\\//,e:/\\/[gimuy]*/,i:/\\n/,c:[a.BE,{b:/\\[/,e:/\\]/,relevance:0,c:[a.BE]}]},a.TM=a.TITLE_MODE={cN:\"title\",b:a.IR,relevance:0},a.UTM=a.UNDERSCORE_TITLE_MODE={cN:\"title\",b:a.UIR,relevance:0},a.METHOD_GUARD={b:\"\\\\.\\\\s*\"+a.UIR,relevance:0},[a.BE,a.ASM,a.QSM,a.PWM,a.C,a.CLCM,a.CBCM,a.HCM,a.NM,a.CNM,a.BNM,a.CSSNM,a.RM,a.TM,a.UTM,a.METHOD_GUARD].forEach(function(e){!function n(t){Object.freeze(t);var r=\"function\"==typeof t;Object.getOwnPropertyNames(t).forEach(function(e){!t.hasOwnProperty(e)||null===t[e]||\"object\"!=typeof t[e]&&\"function\"!=typeof t[e]||r&&(\"caller\"===e||\"callee\"===e||\"arguments\"===e)||Object.isFrozen(t[e])||n(t[e])});return t}(e)}),a});hljs.registerLanguage(\"swift\",function(e){var i={keyword:\"#available #colorLiteral #column #else #elseif #endif #file #fileLiteral #function #if #imageLiteral #line #selector #sourceLocation _ __COLUMN__ __FILE__ __FUNCTION__ __LINE__ Any as as! as? associatedtype associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false fileprivate final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating open operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet\",literal:\"true false nil\",built_in:\"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip\"},t=e.C(\"/\\\\*\",\"\\\\*/\",{c:[\"self\"]}),n={cN:\"subst\",b:/\\\\\\(/,e:\"\\\\)\",k:i,c:[]},r={cN:\"string\",c:[e.BE,n],v:[{b:/\"\"\"/,e:/\"\"\"/},{b:/\"/,e:/\"/}]},a={cN:\"number\",b:\"\\\\b([\\\\d_]+(\\\\.[\\\\deE_]+)?|0x[a-fA-F0-9_]+(\\\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\\\b\",relevance:0};return n.c=[a],{k:i,c:[r,e.CLCM,t,{cN:\"type\",b:\"\\\\b[A-Z][\\\\wÀ-ʸ']*[!?]\"},{cN:\"type\",b:\"\\\\b[A-Z][\\\\wÀ-ʸ']*\",relevance:0},a,{cN:\"function\",bK:\"func\",e:\"{\",eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{b:/</,e:/>/},{cN:\"params\",b:/\\(/,e:/\\)/,endsParent:!0,k:i,c:[\"self\",a,r,e.CBCM,{b:\":\"}],i:/[\"']/}],i:/\\[|%/},{cN:\"class\",bK:\"struct protocol class extension enum\",k:i,e:\"\\\\{\",eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][\\u00C0-\\u02B80-9A-Za-z$_]*/})]},{cN:\"meta\",b:\"(@discardableResult|@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@objcMembers|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain|@dynamicMemberLookup|@propertyWrapper)\"},{bK:\"import\",e:/$/,c:[e.CLCM,t]}]}});hljs.registerLanguage(\"less\",function(e){function r(e){return{cN:\"string\",b:\"~?\"+e+\".*?\"+e}}function t(e,r,t){return{cN:e,b:r,relevance:t}}var a=\"[\\\\w-]+\",c=\"(\"+a+\"|@{\"+a+\"})\",s=[],n=[],b={b:\"\\\\(\",e:\"\\\\)\",c:n,relevance:0};n.push(e.CLCM,e.CBCM,r(\"'\"),r('\"'),e.CSSNM,{b:\"(url|data-uri)\\\\(\",starts:{cN:\"string\",e:\"[\\\\)\\\\n]\",eE:!0}},t(\"number\",\"#[0-9A-Fa-f]+\\\\b\"),b,t(\"variable\",\"@@?\"+a,10),t(\"variable\",\"@{\"+a+\"}\"),t(\"built_in\",\"~?`[^`]*?`\"),{cN:\"attribute\",b:a+\"\\\\s*:\",e:\":\",rB:!0,eE:!0},{cN:\"meta\",b:\"!important\"});var i=n.concat({b:\"{\",e:\"}\",c:s}),l={bK:\"when\",eW:!0,c:[{bK:\"and not\"}].concat(n)},o={b:c+\"\\\\s*:\",rB:!0,e:\"[;}]\",relevance:0,c:[{cN:\"attribute\",b:c,e:\":\",eE:!0,starts:{eW:!0,i:\"[<=$]\",relevance:0,c:n}}]},u={cN:\"keyword\",b:\"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\\\b\",starts:{e:\"[;{}]\",rE:!0,c:n,relevance:0}},v={cN:\"variable\",v:[{b:\"@\"+a+\"\\\\s*:\",relevance:15},{b:\"@\"+a}],starts:{e:\"[;}]\",rE:!0,c:i}},C={v:[{b:\"[\\\\.#:&\\\\[>]\",e:\"[;{}]\"},{b:c,e:\"{\"}],rB:!0,rE:!0,i:\"[<='$\\\"]\",relevance:0,c:[e.CLCM,e.CBCM,l,t(\"keyword\",\"all\\\\b\"),t(\"variable\",\"@{\"+a+\"}\"),t(\"selector-tag\",c+\"%?\",0),t(\"selector-id\",\"#\"+c),t(\"selector-class\",\"\\\\.\"+c,0),t(\"selector-tag\",\"&\",0),{cN:\"selector-attr\",b:\"\\\\[\",e:\"\\\\]\"},{cN:\"selector-pseudo\",b:/:(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\"'.]+/},{b:\"\\\\(\",e:\"\\\\)\",c:i},{b:\"!important\"}]};return s.push(e.CLCM,e.CBCM,u,v,o,C),{cI:!0,i:\"[=>'/<($\\\"]\",c:s}});hljs.registerLanguage(\"armasm\",function(s){return{cI:!0,aliases:[\"arm\"],l:\"\\\\.?\"+s.IR,k:{meta:\".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND \",built_in:\"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @\"},c:[{cN:\"keyword\",b:\"\\\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?\",e:\"\\\\s\"},s.C(\"[;@]\",\"$\",{relevance:0}),s.CBCM,s.QSM,{cN:\"string\",b:\"'\",e:\"[^\\\\\\\\]'\",relevance:0},{cN:\"title\",b:\"\\\\|\",e:\"\\\\|\",i:\"\\\\n\",relevance:0},{cN:\"number\",v:[{b:\"[#$=]?0x[0-9a-f]+\"},{b:\"[#$=]?0b[01]+\"},{b:\"[#$=]\\\\d+\"},{b:\"\\\\b\\\\d+\"}],relevance:0},{cN:\"symbol\",v:[{b:\"^[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+\"},{b:\"^\\\\s*[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+:\"},{b:\"[=#]\\\\w+\"}],relevance:0}]}});hljs.registerLanguage(\"ruby\",function(e){var c=\"[a-zA-Z_]\\\\w*[!?=]?|[-+~]\\\\@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?\",b={keyword:\"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor\",literal:\"true false nil\"},r={cN:\"doctag\",b:\"@[A-Za-z]+\"},a={b:\"#<\",e:\">\"},n=[e.C(\"#\",\"$\",{c:[r]}),e.C(\"^\\\\=begin\",\"^\\\\=end\",{c:[r],relevance:10}),e.C(\"^__END__\",\"\\\\n$\")],s={cN:\"subst\",b:\"#\\\\{\",e:\"}\",k:b},t={cN:\"string\",c:[e.BE,s],v:[{b:/'/,e:/'/},{b:/\"/,e:/\"/},{b:/`/,e:/`/},{b:\"%[qQwWx]?\\\\(\",e:\"\\\\)\"},{b:\"%[qQwWx]?\\\\[\",e:\"\\\\]\"},{b:\"%[qQwWx]?{\",e:\"}\"},{b:\"%[qQwWx]?<\",e:\">\"},{b:\"%[qQwWx]?/\",e:\"/\"},{b:\"%[qQwWx]?%\",e:\"%\"},{b:\"%[qQwWx]?-\",e:\"-\"},{b:\"%[qQwWx]?\\\\|\",e:\"\\\\|\"},{b:/\\B\\?(\\\\\\d{1,3}|\\\\x[A-Fa-f0-9]{1,2}|\\\\u[A-Fa-f0-9]{4}|\\\\?\\S)\\b/},{b:/<<[-~]?'?(\\w+)(?:.|\\n)*?\\n\\s*\\1\\b/,rB:!0,c:[{b:/<<[-~]?'?/},{b:/\\w+/,endSameAsBegin:!0,c:[e.BE,s]}]}]},i={cN:\"params\",b:\"\\\\(\",e:\"\\\\)\",endsParent:!0,k:b},l=[t,a,{cN:\"class\",bK:\"class module\",e:\"$|;\",i:/=/,c:[e.inherit(e.TM,{b:\"[A-Za-z_]\\\\w*(::\\\\w+)*(\\\\?|\\\\!)?\"}),{b:\"<\\\\s*\",c:[{b:\"(\"+e.IR+\"::)?\"+e.IR}]}].concat(n)},{cN:\"function\",bK:\"def\",e:\"$|;\",c:[e.inherit(e.TM,{b:c}),i].concat(n)},{b:e.IR+\"::\"},{cN:\"symbol\",b:e.UIR+\"(\\\\!|\\\\?)?:\",relevance:0},{cN:\"symbol\",b:\":(?!\\\\s)\",c:[t,{b:c}],relevance:0},{cN:\"number\",b:\"(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b\",relevance:0},{b:\"(\\\\$\\\\W)|((\\\\$|\\\\@\\\\@?)(\\\\w+))\"},{cN:\"params\",b:/\\|/,e:/\\|/,k:b},{b:\"(\"+e.RSR+\"|unless)\\\\s*\",k:\"unless\",c:[a,{cN:\"regexp\",c:[e.BE,s],i:/\\n/,v:[{b:\"/\",e:\"/[a-z]*\"},{b:\"%r{\",e:\"}[a-z]*\"},{b:\"%r\\\\(\",e:\"\\\\)[a-z]*\"},{b:\"%r!\",e:\"![a-z]*\"},{b:\"%r\\\\[\",e:\"\\\\][a-z]*\"}]}].concat(n),relevance:0}].concat(n);s.c=l;var d=[{b:/^\\s*=>/,starts:{e:\"$\",c:i.c=l}},{cN:\"meta\",b:\"^([>?]>|[\\\\w#]+\\\\(\\\\w+\\\\):\\\\d+:\\\\d+>|(\\\\w+-)?\\\\d+\\\\.\\\\d+\\\\.\\\\d(p\\\\d+)?[^>]+>)\",starts:{e:\"$\",c:l}}];return{aliases:[\"rb\",\"gemspec\",\"podspec\",\"thor\",\"irb\"],k:b,i:/\\/\\*/,c:n.concat(d).concat(l)}});hljs.registerLanguage(\"lua\",function(e){var t=\"\\\\[=*\\\\[\",a=\"\\\\]=*\\\\]\",n={b:t,e:a,c:[\"self\"]},l=[e.C(\"--(?!\"+t+\")\",\"$\"),e.C(\"--\"+t,a,{c:[n],relevance:10})];return{l:e.UIR,k:{literal:\"true false nil\",keyword:\"and break do else elseif end for goto if in local not or repeat return then until while\",built_in:\"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstringmodule next pairs pcall print rawequal rawget rawset require select setfenvsetmetatable tonumber tostring type unpack xpcall arg selfcoroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove\"},c:l.concat([{cN:\"function\",bK:\"function\",e:\"\\\\)\",c:[e.inherit(e.TM,{b:\"([_a-zA-Z]\\\\w*\\\\.)*([_a-zA-Z]\\\\w*:)?[_a-zA-Z]\\\\w*\"}),{cN:\"params\",b:\"\\\\(\",eW:!0,c:l}].concat(l)},e.CNM,e.ASM,e.QSM,{cN:\"string\",b:t,e:a,c:[n],relevance:5}])}});hljs.registerLanguage(\"matlab\",function(e){var a=\"('|\\\\.')+\",s={relevance:0,c:[{b:a}]};return{k:{keyword:\"break case catch classdef continue else elseif end enumerated events for function global if methods otherwise parfor persistent properties return spmd switch try while\",built_in:\"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson max min nanmax nanmin mean nanmean type table readtable writetable sortrows sort figure plot plot3 scatter scatter3 cellfun legend intersect ismember procrustes hold num2cell \"},i:'(//|\"|#|/\\\\*|\\\\s+/\\\\w+)',c:[{cN:\"function\",bK:\"function\",e:\"$\",c:[e.UTM,{cN:\"params\",v:[{b:\"\\\\(\",e:\"\\\\)\"},{b:\"\\\\[\",e:\"\\\\]\"}]}]},{cN:\"built_in\",b:/true|false/,relevance:0,starts:s},{b:\"[a-zA-Z][a-zA-Z_0-9]*\"+a,relevance:0},{cN:\"number\",b:e.CNR,relevance:0,starts:s},{cN:\"string\",b:\"'\",e:\"'\",c:[e.BE,{b:\"''\"}]},{b:/\\]|}|\\)/,relevance:0,starts:s},{cN:\"string\",b:'\"',e:'\"',c:[e.BE,{b:'\"\"'}],starts:s},e.C(\"^\\\\s*\\\\%\\\\{\\\\s*$\",\"^\\\\s*\\\\%\\\\}\\\\s*$\"),e.C(\"\\\\%\",\"$\")]}});hljs.registerLanguage(\"apache\",function(e){var r={cN:\"number\",b:\"[\\\\$%]\\\\d+\"};return{aliases:[\"apacheconf\"],cI:!0,c:[e.HCM,{cN:\"section\",b:\"</?\",e:\">\"},{cN:\"attribute\",b:/\\w+/,relevance:0,k:{nomarkup:\"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername\"},starts:{e:/$/,relevance:0,k:{literal:\"on off all\"},c:[{cN:\"meta\",b:\"\\\\s\\\\[\",e:\"\\\\]$\"},{cN:\"variable\",b:\"[\\\\$%]\\\\{\",e:\"\\\\}\",c:[\"self\",r]},r,e.QSM]}}],i:/\\S/}});hljs.registerLanguage(\"yaml\",function(e){var b=\"true false yes no null\",a={cN:\"string\",relevance:0,v:[{b:/'/,e:/'/},{b:/\"/,e:/\"/},{b:/\\S+/}],c:[e.BE,{cN:\"template-variable\",v:[{b:\"{{\",e:\"}}\"},{b:\"%{\",e:\"}\"}]}]};return{cI:!0,aliases:[\"yml\",\"YAML\",\"yaml\"],c:[{cN:\"attr\",v:[{b:\"\\\\w[\\\\w :\\\\/.-]*:(?=[ \\t]|$)\"},{b:'\"\\\\w[\\\\w :\\\\/.-]*\":(?=[ \\t]|$)'},{b:\"'\\\\w[\\\\w :\\\\/.-]*':(?=[ \\t]|$)\"}]},{cN:\"meta\",b:\"^---s*$\",relevance:10},{cN:\"string\",b:\"[\\\\|>]([0-9]?[+-])?[ ]*\\\\n( *)[\\\\S ]+\\\\n(\\\\2[\\\\S ]+\\\\n?)*\"},{b:\"<%[%=-]?\",e:\"[%-]?%>\",sL:\"ruby\",eB:!0,eE:!0,relevance:0},{cN:\"type\",b:\"!\"+e.UIR},{cN:\"type\",b:\"!!\"+e.UIR},{cN:\"meta\",b:\"&\"+e.UIR+\"$\"},{cN:\"meta\",b:\"\\\\*\"+e.UIR+\"$\"},{cN:\"bullet\",b:\"\\\\-(?=[ ]|$)\",relevance:0},e.HCM,{bK:b,k:{literal:b}},{cN:\"number\",b:e.CNR+\"\\\\b\"},a]}});hljs.registerLanguage(\"plaintext\",function(e){return{disableAutodetect:!0}});hljs.registerLanguage(\"erlang-repl\",function(e){return{k:{built_in:\"spawn spawn_link self\",keyword:\"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor\"},c:[{cN:\"meta\",b:\"^[0-9]+> \",relevance:10},e.C(\"%\",\"$\"),{cN:\"number\",b:\"\\\\b(\\\\d+#[a-fA-F0-9]+|\\\\d+(\\\\.\\\\d+)?([eE][-+]?\\\\d+)?)\",relevance:0},e.ASM,e.QSM,{b:\"\\\\?(::)?([A-Z]\\\\w*(::)?)+\"},{b:\"->\"},{b:\"ok\"},{b:\"!\"},{b:\"(\\\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\\\b[a-z'][a-zA-Z0-9_']*)\",relevance:0},{b:\"[A-Z][a-zA-Z0-9_']*\",relevance:0}]}});hljs.registerLanguage(\"cmake\",function(e){return{aliases:[\"cmake.in\"],cI:!0,k:{keyword:\"break cmake_host_system_information cmake_minimum_required cmake_parse_arguments cmake_policy configure_file continue elseif else endforeach endfunction endif endmacro endwhile execute_process file find_file find_library find_package find_path find_program foreach function get_cmake_property get_directory_property get_filename_component get_property if include include_guard list macro mark_as_advanced math message option return separate_arguments set_directory_properties set_property set site_name string unset variable_watch while add_compile_definitions add_compile_options add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_link_options add_subdirectory add_test aux_source_directory build_command create_test_sourcelist define_property enable_language enable_testing export fltk_wrap_ui get_source_file_property get_target_property get_test_property include_directories include_external_msproject include_regular_expression install link_directories link_libraries load_cache project qt_wrap_cpp qt_wrap_ui remove_definitions set_source_files_properties set_target_properties set_tests_properties source_group target_compile_definitions target_compile_features target_compile_options target_include_directories target_link_directories target_link_libraries target_link_options target_sources try_compile try_run ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ctest_test ctest_update ctest_upload build_name exec_program export_library_dependencies install_files install_programs install_targets load_command make_directory output_required_files remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or not command policy target test exists is_newer_than is_directory is_symlink is_absolute matches less greater equal less_equal greater_equal strless strgreater strequal strless_equal strgreater_equal version_less version_greater version_equal version_less_equal version_greater_equal in_list defined\"},c:[{cN:\"variable\",b:\"\\\\${\",e:\"}\"},e.HCM,e.QSM,e.NM]}});hljs.registerLanguage(\"kotlin\",function(e){var t={keyword:\"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual trait volatile transient native default\",built_in:\"Byte Short Char Int Long Boolean Float Double Void Unit Nothing\",literal:\"true false null\"},a={cN:\"symbol\",b:e.UIR+\"@\"},n={cN:\"subst\",b:\"\\\\${\",e:\"}\",c:[e.CNM]},c={cN:\"variable\",b:\"\\\\$\"+e.UIR},r={cN:\"string\",v:[{b:'\"\"\"',e:'\"\"\"(?=[^\"])',c:[c,n]},{b:\"'\",e:\"'\",i:/\\n/,c:[e.BE]},{b:'\"',e:'\"',i:/\\n/,c:[e.BE,c,n]}]};n.c.push(r);var i={cN:\"meta\",b:\"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\\\s*:(?:\\\\s*\"+e.UIR+\")?\"},l={cN:\"meta\",b:\"@\"+e.UIR,c:[{b:/\\(/,e:/\\)/,c:[e.inherit(r,{cN:\"meta-string\"})]}]},s={cN:\"number\",b:\"\\\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+)(\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))?|\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))([eE][-+]?\\\\d+)?)[lLfF]?\",relevance:0},b=e.C(\"/\\\\*\",\"\\\\*/\",{c:[e.CBCM]}),o={v:[{cN:\"type\",b:e.UIR},{b:/\\(/,e:/\\)/,c:[]}]},d=o;return d.v[1].c=[o],o.v[1].c=[d],{aliases:[\"kt\"],k:t,c:[e.C(\"/\\\\*\\\\*\",\"\\\\*/\",{relevance:0,c:[{cN:\"doctag\",b:\"@[A-Za-z]+\"}]}),e.CLCM,b,{cN:\"keyword\",b:/\\b(break|continue|return|this)\\b/,starts:{c:[{cN:\"symbol\",b:/@\\w+/}]}},a,i,l,{cN:\"function\",bK:\"fun\",e:\"[(]|$\",rB:!0,eE:!0,k:t,i:/fun\\s+(<.*>)?[^\\s\\(]+(\\s+[^\\s\\(]+)\\s*=/,relevance:5,c:[{b:e.UIR+\"\\\\s*\\\\(\",rB:!0,relevance:0,c:[e.UTM]},{cN:\"type\",b:/</,e:/>/,k:\"reified\",relevance:0},{cN:\"params\",b:/\\(/,e:/\\)/,endsParent:!0,k:t,relevance:0,c:[{b:/:/,e:/[=,\\/]/,eW:!0,c:[o,e.CLCM,b],relevance:0},e.CLCM,b,i,l,r,e.CNM]},b]},{cN:\"class\",bK:\"class interface trait\",e:/[:\\{(]|$/,eE:!0,i:\"extends implements\",c:[{bK:\"public protected internal private constructor\"},e.UTM,{cN:\"type\",b:/</,e:/>/,eB:!0,eE:!0,relevance:0},{cN:\"type\",b:/[,:]\\s*/,e:/[<\\(,]|$/,eB:!0,rE:!0},i,l]},r,{cN:\"meta\",b:\"^#!/usr/bin/env\",e:\"$\",i:\"\\n\"},s]}});hljs.registerLanguage(\"javascript\",function(e){var r=\"<>\",a=\"</>\",t={b:/<[A-Za-z0-9\\\\._:-]+/,e:/\\/[A-Za-z0-9\\\\._:-]+>|\\/>/},c=\"[A-Za-z$_][0-9A-Za-z$_]*\",n={keyword:\"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as\",literal:\"true false null undefined NaN Infinity\",built_in:\"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise\"},s={cN:\"number\",v:[{b:\"\\\\b(0[bB][01]+)n?\"},{b:\"\\\\b(0[oO][0-7]+)n?\"},{b:e.CNR+\"n?\"}],relevance:0},o={cN:\"subst\",b:\"\\\\$\\\\{\",e:\"\\\\}\",k:n,c:[]},i={b:\"html`\",e:\"\",starts:{e:\"`\",rE:!1,c:[e.BE,o],sL:\"xml\"}},b={b:\"css`\",e:\"\",starts:{e:\"`\",rE:!1,c:[e.BE,o],sL:\"css\"}},l={cN:\"string\",b:\"`\",e:\"`\",c:[e.BE,o]};o.c=[e.ASM,e.QSM,i,b,l,s,e.RM];var u=o.c.concat([e.CBCM,e.CLCM]);return{aliases:[\"js\",\"jsx\",\"mjs\",\"cjs\"],k:n,c:[{cN:\"meta\",relevance:10,b:/^\\s*['\"]use (strict|asm)['\"]/},{cN:\"meta\",b:/^#!/,e:/$/},e.ASM,e.QSM,i,b,l,e.CLCM,e.C(\"/\\\\*\\\\*\",\"\\\\*/\",{relevance:0,c:[{cN:\"doctag\",b:\"@[A-Za-z]+\",c:[{cN:\"type\",b:\"\\\\{\",e:\"\\\\}\",relevance:0},{cN:\"variable\",b:c+\"(?=\\\\s*(-)|$)\",endsParent:!0,relevance:0},{b:/(?=[^\\n])\\s/,relevance:0}]}]}),e.CBCM,s,{b:/[{,\\n]\\s*/,relevance:0,c:[{b:c+\"\\\\s*:\",rB:!0,relevance:0,c:[{cN:\"attr\",b:c,relevance:0}]}]},{b:\"(\"+e.RSR+\"|\\\\b(case|return|throw)\\\\b)\\\\s*\",k:\"return throw case\",c:[e.CLCM,e.CBCM,e.RM,{cN:\"function\",b:\"(\\\\(.*?\\\\)|\"+c+\")\\\\s*=>\",rB:!0,e:\"\\\\s*=>\",c:[{cN:\"params\",v:[{b:c},{b:/\\(\\s*\\)/},{b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:n,c:u}]}]},{cN:\"\",b:/\\s/,e:/\\s*/,skip:!0},{v:[{b:r,e:a},{b:t.b,e:t.e}],sL:\"xml\",c:[{b:t.b,e:t.e,skip:!0,c:[\"self\"]}]}],relevance:0},{cN:\"function\",bK:\"function\",e:/\\{/,eE:!0,c:[e.inherit(e.TM,{b:c}),{cN:\"params\",b:/\\(/,e:/\\)/,eB:!0,eE:!0,c:u}],i:/\\[|%/},{b:/\\$[(.]/},e.METHOD_GUARD,{cN:\"class\",bK:\"class\",e:/[{;=]/,eE:!0,i:/[:\"\\[\\]]/,c:[{bK:\"extends\"},e.UTM]},{bK:\"constructor get set\",e:/\\{/,eE:!0}],i:/#(?!!)/}});hljs.registerLanguage(\"scss\",function(e){var t=\"@[a-z-]+\",r={cN:\"variable\",b:\"(\\\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\\\b\"},i={cN:\"number\",b:\"#[0-9A-Fa-f]+\"};e.CSSNM,e.QSM,e.ASM,e.CBCM;return{cI:!0,i:\"[=/|']\",c:[e.CLCM,e.CBCM,{cN:\"selector-id\",b:\"\\\\#[A-Za-z0-9_-]+\",relevance:0},{cN:\"selector-class\",b:\"\\\\.[A-Za-z0-9_-]+\",relevance:0},{cN:\"selector-attr\",b:\"\\\\[\",e:\"\\\\]\",i:\"$\"},{cN:\"selector-tag\",b:\"\\\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\\\b\",relevance:0},{cN:\"selector-pseudo\",b:\":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)\"},{cN:\"selector-pseudo\",b:\"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)\"},r,{cN:\"attribute\",b:\"\\\\b(src|z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\\\b\",i:\"[^\\\\s]\"},{b:\"\\\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\\\b\"},{b:\":\",e:\";\",c:[r,i,e.CSSNM,e.QSM,e.ASM,{cN:\"meta\",b:\"!important\"}]},{b:\"@(page|font-face)\",l:t,k:\"@page @font-face\"},{b:\"@\",e:\"[{;]\",rB:!0,k:\"and or not only\",c:[{b:t,cN:\"keyword\"},r,e.QSM,e.ASM,i,e.CSSNM]}]}});hljs.registerLanguage(\"perl\",function(e){var t=\"getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when\",r={cN:\"subst\",b:\"[$@]\\\\{\",e:\"\\\\}\",k:t},s={b:\"->{\",e:\"}\"},n={v:[{b:/\\$\\d/},{b:/[\\$%@](\\^\\w\\b|#\\w+(::\\w+)*|{\\w+}|\\w+(::\\w*)*)/},{b:/[\\$%@][^\\s\\w{]/,relevance:0}]},c=[e.BE,r,n],a=[n,e.HCM,e.C(\"^\\\\=\\\\w\",\"\\\\=cut\",{eW:!0}),s,{cN:\"string\",c:c,v:[{b:\"q[qwxr]?\\\\s*\\\\(\",e:\"\\\\)\",relevance:5},{b:\"q[qwxr]?\\\\s*\\\\[\",e:\"\\\\]\",relevance:5},{b:\"q[qwxr]?\\\\s*\\\\{\",e:\"\\\\}\",relevance:5},{b:\"q[qwxr]?\\\\s*\\\\|\",e:\"\\\\|\",relevance:5},{b:\"q[qwxr]?\\\\s*\\\\<\",e:\"\\\\>\",relevance:5},{b:\"qw\\\\s+q\",e:\"q\",relevance:5},{b:\"'\",e:\"'\",c:[e.BE]},{b:'\"',e:'\"'},{b:\"`\",e:\"`\",c:[e.BE]},{b:\"{\\\\w+}\",c:[],relevance:0},{b:\"-?\\\\w+\\\\s*\\\\=\\\\>\",c:[],relevance:0}]},{cN:\"number\",b:\"(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b\",relevance:0},{b:\"(\\\\/\\\\/|\"+e.RSR+\"|\\\\b(split|return|print|reverse|grep)\\\\b)\\\\s*\",k:\"split return print reverse grep\",relevance:0,c:[e.HCM,{cN:\"regexp\",b:\"(s|tr|y)/(\\\\\\\\.|[^/])*/(\\\\\\\\.|[^/])*/[a-z]*\",relevance:10},{cN:\"regexp\",b:\"(m|qr)?/\",e:\"/[a-z]*\",c:[e.BE],relevance:0}]},{cN:\"function\",bK:\"sub\",e:\"(\\\\s*\\\\(.*?\\\\))?[;{]\",eE:!0,relevance:5,c:[e.TM]},{b:\"-\\\\w\\\\b\",relevance:0},{b:\"^__DATA__$\",e:\"^__END__$\",sL:\"mojolicious\",c:[{b:\"^@@.*\",e:\"$\",cN:\"comment\"}]}];return r.c=a,{aliases:[\"pl\",\"pm\"],l:/[\\w\\.]+/,k:t,c:s.c=a}});hljs.registerLanguage(\"go\",function(e){var n={keyword:\"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune\",literal:\"true false iota nil\",built_in:\"append cap close complex copy imag len make new panic print println real recover delete\"};return{aliases:[\"golang\"],k:n,i:\"</\",c:[e.CLCM,e.CBCM,{cN:\"string\",v:[e.QSM,e.ASM,{b:\"`\",e:\"`\"}]},{cN:\"number\",v:[{b:e.CNR+\"[i]\",relevance:1},e.CNM]},{b:/:=/},{cN:\"function\",bK:\"func\",e:\"\\\\s*(\\\\{|$)\",eE:!0,c:[e.TM,{cN:\"params\",b:/\\(/,e:/\\)/,k:n,i:/[\"']/}]}]}});hljs.registerLanguage(\"x86asm\",function(s){return{cI:!0,l:\"[.%]?\"+s.IR,k:{keyword:\"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63\",built_in:\"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr\",meta:\"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__\"},c:[s.C(\";\",\"$\",{relevance:0}),{cN:\"number\",v:[{b:\"\\\\b(?:([0-9][0-9_]*)?\\\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*\\\\.?[0-9_]*(?:[pP](?:[+-]?[0-9_]+)?)?)\\\\b\",relevance:0},{b:\"\\\\$[0-9][0-9A-Fa-f]*\",relevance:0},{b:\"\\\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\\\b\"},{b:\"\\\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\\\b\"}]},s.QSM,{cN:\"string\",v:[{b:\"'\",e:\"[^\\\\\\\\]'\"},{b:\"`\",e:\"[^\\\\\\\\]`\"}],relevance:0},{cN:\"symbol\",v:[{b:\"^\\\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\\\s+label)\"},{b:\"^\\\\s*%%[A-Za-z0-9_$#@~.?]*:\"}],relevance:0},{cN:\"subst\",b:\"%[0-9]+\",relevance:0},{cN:\"subst\",b:\"%!S+\",relevance:0},{cN:\"meta\",b:/^\\s*\\.[\\w_-]+/}]}});hljs.registerLanguage(\"cpp\",function(e){function t(e){return\"(?:\"+e+\")?\"}var r=\"decltype\\\\(auto\\\\)\",a=\"[a-zA-Z_]\\\\w*::\",i=\"(\"+r+\"|\"+t(a)+\"[a-zA-Z_]\\\\w*\"+t(\"<.*?>\")+\")\",c={cN:\"keyword\",b:\"\\\\b[a-z\\\\d_]*_t\\\\b\"},s={cN:\"string\",v:[{b:'(u8?|U|L)?\"',e:'\"',i:\"\\\\n\",c:[e.BE]},{b:\"(u8?|U|L)?'(\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)|.)\",e:\"'\",i:\".\"},{b:/(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\((?:.|\\n)*?\\)\\1\"/}]},n={cN:\"number\",v:[{b:\"\\\\b(0b[01']+)\"},{b:\"(-?)\\\\b([\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)(u|U|l|L|ul|UL|f|F|b|B)\"},{b:\"(-?)(\\\\b0[xX][a-fA-F0-9']+|(\\\\b[\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)([eE][-+]?[\\\\d']+)?)\"}],relevance:0},o={cN:\"meta\",b:/#\\s*[a-z]+\\b/,e:/$/,k:{\"meta-keyword\":\"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include\"},c:[{b:/\\\\\\n/,relevance:0},e.inherit(s,{cN:\"meta-string\"}),{cN:\"meta-string\",b:/<.*?>/,e:/$/,i:\"\\\\n\"},e.CLCM,e.CBCM]},l={cN:\"title\",b:t(a)+e.IR,relevance:0},u=t(a)+e.IR+\"\\\\s*\\\\(\",p={keyword:\"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_tshort reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq\",built_in:\"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary\",literal:\"true false nullptr NULL\"},m=[c,e.CLCM,e.CBCM,n,s],d={v:[{b:/=/,e:/;/},{b:/\\(/,e:/\\)/},{bK:\"new throw return else\",e:/;/}],k:p,c:m.concat([{b:/\\(/,e:/\\)/,k:p,c:m.concat([\"self\"]),relevance:0}]),relevance:0},b={cN:\"function\",b:\"(\"+i+\"[\\\\*&\\\\s]+)+\"+u,rB:!0,e:/[{;=]/,eE:!0,k:p,i:/[^\\w\\s\\*&:<>]/,c:[{b:r,k:p,relevance:0},{b:u,rB:!0,c:[l],relevance:0},{cN:\"params\",b:/\\(/,e:/\\)/,k:p,relevance:0,c:[e.CLCM,e.CBCM,s,n,c,{b:/\\(/,e:/\\)/,k:p,relevance:0,c:[\"self\",e.CLCM,e.CBCM,s,n,c]}]},c,e.CLCM,e.CBCM,o]};return{aliases:[\"c\",\"cc\",\"h\",\"c++\",\"h++\",\"hpp\",\"hh\",\"hxx\",\"cxx\"],k:p,i:\"</\",c:[].concat(d,b,m,[o,{b:\"\\\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\\\s*<\",e:\">\",k:p,c:[\"self\",c]},{b:e.IR+\"::\",k:p},{cN:\"class\",bK:\"class struct\",e:/[{;:]/,c:[{b:/</,e:/>/,c:[\"self\"]},e.TM]}]),exports:{preprocessor:o,strings:s,k:p}}});hljs.registerLanguage(\"arduino\",function(e){var t=\"boolean byte word String\",r=\"setup loopKeyboardController MouseController SoftwareSerial EthernetServer EthernetClient LiquidCrystal RobotControl GSMVoiceCall EthernetUDP EsploraTFT HttpClient RobotMotor WiFiClient GSMScanner FileSystem Scheduler GSMServer YunClient YunServer IPAddress GSMClient GSMModem Keyboard Ethernet Console GSMBand Esplora Stepper Process WiFiUDP GSM_SMS Mailbox USBHost Firmata PImage Client Server GSMPIN FileIO Bridge Serial EEPROM Stream Mouse Audio Servo File Task GPRS WiFi Wire TFT GSM SPI SD runShellCommandAsynchronously analogWriteResolution retrieveCallingNumber printFirmwareVersion analogReadResolution sendDigitalPortPair noListenOnLocalhost readJoystickButton setFirmwareVersion readJoystickSwitch scrollDisplayRight getVoiceCallStatus scrollDisplayLeft writeMicroseconds delayMicroseconds beginTransmission getSignalStrength runAsynchronously getAsynchronously listenOnLocalhost getCurrentCarrier readAccelerometer messageAvailable sendDigitalPorts lineFollowConfig countryNameWrite runShellCommand readStringUntil rewindDirectory readTemperature setClockDivider readLightSensor endTransmission analogReference detachInterrupt countryNameRead attachInterrupt encryptionType readBytesUntil robotNameWrite readMicrophone robotNameRead cityNameWrite userNameWrite readJoystickY readJoystickX mouseReleased openNextFile scanNetworks noInterrupts digitalWrite beginSpeaker mousePressed isActionDone mouseDragged displayLogos noAutoscroll addParameter remoteNumber getModifiers keyboardRead userNameRead waitContinue processInput parseCommand printVersion readNetworks writeMessage blinkVersion cityNameRead readMessage setDataMode parsePacket isListening setBitOrder beginPacket isDirectory motorsWrite drawCompass digitalRead clearScreen serialEvent rightToLeft setTextSize leftToRight requestFrom keyReleased compassRead analogWrite interrupts WiFiServer disconnect playMelody parseFloat autoscroll getPINUsed setPINUsed setTimeout sendAnalog readSlider analogRead beginWrite createChar motorsStop keyPressed tempoWrite readButton subnetMask debugPrint macAddress writeGreen randomSeed attachGPRS readString sendString remotePort releaseAll mouseMoved background getXChange getYChange answerCall getResult voiceCall endPacket constrain getSocket writeJSON getButton available connected findUntil readBytes exitValue readGreen writeBlue startLoop IPAddress isPressed sendSysex pauseMode gatewayIP setCursor getOemKey tuneWrite noDisplay loadImage switchPIN onRequest onReceive changePIN playFile noBuffer parseInt overflow checkPIN knobRead beginTFT bitClear updateIR bitWrite position writeRGB highByte writeRed setSpeed readBlue noStroke remoteIP transfer shutdown hangCall beginSMS endWrite attached maintain noCursor checkReg checkPUK shiftOut isValid shiftIn pulseIn connect println localIP pinMode getIMEI display noBlink process getBand running beginSD drawBMP lowByte setBand release bitRead prepare pointTo readRed setMode noFill remove listen stroke detach attach noTone exists buffer height bitSet circle config cursor random IRread setDNS endSMS getKey micros millis begin print write ready flush width isPIN blink clear press mkdir rmdir close point yield image BSSID click delay read text move peek beep rect line open seek fill size turn stop home find step tone sqrt RSSI SSID end bit tan cos sin pow map abs max min get run put\",i=\"DIGITAL_MESSAGE FIRMATA_STRING ANALOG_MESSAGE REPORT_DIGITAL REPORT_ANALOG INPUT_PULLUP SET_PIN_MODE INTERNAL2V56 SYSTEM_RESET LED_BUILTIN INTERNAL1V1 SYSEX_START INTERNAL EXTERNAL DEFAULT OUTPUT INPUT HIGH LOW\",o=e.requireLanguage(\"cpp\").rawDefinition(),a=o.k;return a.keyword+=\" \"+t,a.literal+=\" \"+i,a.built_in+=\" \"+r,o});hljs.registerLanguage(\"nginx\",function(e){var r={cN:\"variable\",v:[{b:/\\$\\d+/},{b:/\\$\\{/,e:/}/},{b:\"[\\\\$\\\\@]\"+e.UIR}]},b={eW:!0,l:\"[a-z/_]+\",k:{literal:\"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll\"},relevance:0,i:\"=>\",c:[e.HCM,{cN:\"string\",c:[e.BE,r],v:[{b:/\"/,e:/\"/},{b:/'/,e:/'/}]},{b:\"([a-z]+):/\",e:\"\\\\s\",eW:!0,eE:!0,c:[r]},{cN:\"regexp\",c:[e.BE,r],v:[{b:\"\\\\s\\\\^\",e:\"\\\\s|{|;\",rE:!0},{b:\"~\\\\*?\\\\s+\",e:\"\\\\s|{|;\",rE:!0},{b:\"\\\\*(\\\\.[a-z\\\\-]+)+\"},{b:\"([a-z\\\\-]+\\\\.)+\\\\*\"}]},{cN:\"number\",b:\"\\\\b\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}(:\\\\d{1,5})?\\\\b\"},{cN:\"number\",b:\"\\\\b\\\\d+[kKmMgGdshdwy]*\\\\b\",relevance:0},r]};return{aliases:[\"nginxconf\"],c:[e.HCM,{b:e.UIR+\"\\\\s+{\",rB:!0,e:\"{\",c:[{cN:\"section\",b:e.UIR}],relevance:0},{b:e.UIR+\"\\\\s\",e:\";|{\",rB:!0,c:[{cN:\"attribute\",b:e.UIR,starts:b}],relevance:0}],i:\"[^\\\\s\\\\}]\"}});hljs.registerLanguage(\"xml\",function(e){var c={cN:\"symbol\",b:\"&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;\"},s={b:\"\\\\s\",c:[{cN:\"meta-keyword\",b:\"#?[a-z_][a-z1-9_-]+\",i:\"\\\\n\"}]},a=e.inherit(s,{b:\"\\\\(\",e:\"\\\\)\"}),t=e.inherit(e.ASM,{cN:\"meta-string\"}),l=e.inherit(e.QSM,{cN:\"meta-string\"}),r={eW:!0,i:/</,relevance:0,c:[{cN:\"attr\",b:\"[A-Za-z0-9\\\\._:-]+\",relevance:0},{b:/=\\s*/,relevance:0,c:[{cN:\"string\",endsParent:!0,v:[{b:/\"/,e:/\"/,c:[c]},{b:/'/,e:/'/,c:[c]},{b:/[^\\s\"'=<>`]+/}]}]}]};return{aliases:[\"html\",\"xhtml\",\"rss\",\"atom\",\"xjb\",\"xsd\",\"xsl\",\"plist\",\"wsf\",\"svg\"],cI:!0,c:[{cN:\"meta\",b:\"<![a-z]\",e:\">\",relevance:10,c:[s,l,t,a,{b:\"\\\\[\",e:\"\\\\]\",c:[{cN:\"meta\",b:\"<![a-z]\",e:\">\",c:[s,a,l,t]}]}]},e.C(\"\\x3c!--\",\"--\\x3e\",{relevance:10}),{b:\"<\\\\!\\\\[CDATA\\\\[\",e:\"\\\\]\\\\]>\",relevance:10},c,{cN:\"meta\",b:/<\\?xml/,e:/\\?>/,relevance:10},{b:/<\\?(php)?/,e:/\\?>/,sL:\"php\",c:[{b:\"/\\\\*\",e:\"\\\\*/\",skip:!0},{b:'b\"',e:'\"',skip:!0},{b:\"b'\",e:\"'\",skip:!0},e.inherit(e.ASM,{i:null,cN:null,c:null,skip:!0}),e.inherit(e.QSM,{i:null,cN:null,c:null,skip:!0})]},{cN:\"tag\",b:\"<style(?=\\\\s|>)\",e:\">\",k:{name:\"style\"},c:[r],starts:{e:\"</style>\",rE:!0,sL:[\"css\",\"xml\"]}},{cN:\"tag\",b:\"<script(?=\\\\s|>)\",e:\">\",k:{name:\"script\"},c:[r],starts:{e:\"<\\/script>\",rE:!0,sL:[\"actionscript\",\"javascript\",\"handlebars\",\"xml\"]}},{cN:\"tag\",b:\"</?\",e:\"/?>\",c:[{cN:\"name\",b:/[^\\/><\\s]+/,relevance:0},r]}]}});hljs.registerLanguage(\"markdown\",function(e){return{aliases:[\"md\",\"mkdown\",\"mkd\"],c:[{cN:\"section\",v:[{b:\"^#{1,6}\",e:\"$\"},{b:\"^.+?\\\\n[=-]{2,}$\"}]},{b:\"<\",e:\">\",sL:\"xml\",relevance:0},{cN:\"bullet\",b:\"^\\\\s*([*+-]|(\\\\d+\\\\.))\\\\s+\"},{cN:\"strong\",b:\"[*_]{2}.+?[*_]{2}\"},{cN:\"emphasis\",v:[{b:\"\\\\*.+?\\\\*\"},{b:\"_.+?_\",relevance:0}]},{cN:\"quote\",b:\"^>\\\\s+\",e:\"$\"},{cN:\"code\",v:[{b:\"^```\\\\w*\\\\s*$\",e:\"^```[ ]*$\"},{b:\"`.+?`\"},{b:\"^( {4}|\\\\t)\",e:\"$\",relevance:0}]},{b:\"^[-\\\\*]{3,}\",e:\"$\"},{b:\"\\\\[.+?\\\\][\\\\(\\\\[].*?[\\\\)\\\\]]\",rB:!0,c:[{cN:\"string\",b:\"\\\\[\",e:\"\\\\]\",eB:!0,rE:!0,relevance:0},{cN:\"link\",b:\"\\\\]\\\\(\",e:\"\\\\)\",eB:!0,eE:!0},{cN:\"symbol\",b:\"\\\\]\\\\[\",e:\"\\\\]\",eB:!0,eE:!0}],relevance:10},{b:/^\\[[^\\n]+\\]:/,rB:!0,c:[{cN:\"symbol\",b:/\\[/,e:/\\]/,eB:!0,eE:!0},{cN:\"link\",b:/:\\s*/,e:/$/,eB:!0}]}]}});hljs.registerLanguage(\"properties\",function(e){var r=\"[ \\\\t\\\\f]*\",t=\"(\"+r+\"[:=]\"+r+\"|[ \\\\t\\\\f]+)\",n=\"([^\\\\\\\\\\\\W:= \\\\t\\\\f\\\\n]|\\\\\\\\.)+\",a=\"([^\\\\\\\\:= \\\\t\\\\f\\\\n]|\\\\\\\\.)+\",c={e:t,relevance:0,starts:{cN:\"string\",e:/$/,relevance:0,c:[{b:\"\\\\\\\\\\\\n\"}]}};return{cI:!0,i:/\\S/,c:[e.C(\"^\\\\s*[!#]\",\"$\"),{b:n+t,rB:!0,c:[{cN:\"attr\",b:n,endsParent:!0,relevance:0}],starts:c},{b:a+t,rB:!0,relevance:0,c:[{cN:\"meta\",b:a,endsParent:!0,relevance:0}],starts:c},{cN:\"attr\",relevance:0,b:a+r+\"$\"}]}});hljs.registerLanguage(\"bash\",function(e){var t={cN:\"variable\",v:[{b:/\\$[\\w\\d#@][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},a={cN:\"string\",b:/\"/,e:/\"/,c:[e.BE,t,{cN:\"variable\",b:/\\$\\(/,e:/\\)/,c:[e.BE]}]};return{aliases:[\"sh\",\"zsh\"],l:/\\b-?[a-z\\._]+\\b/,k:{keyword:\"if then else elif fi for while in do done case esac function\",literal:\"true false\",built_in:\"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp\",_:\"-ne -eq -lt -gt -f -d -e -s -l -a\"},c:[{cN:\"meta\",b:/^#![^\\n]+sh\\s*$/,relevance:10},{cN:\"function\",b:/\\w[\\w\\d_]*\\s*\\(\\s*\\)\\s*\\{/,rB:!0,c:[e.inherit(e.TM,{b:/\\w[\\w\\d_]*/})],relevance:0},e.HCM,a,{cN:\"\",b:/\\\\\"/},{cN:\"string\",b:/'/,e:/'/},t]}});hljs.registerLanguage(\"dockerfile\",function(e){return{aliases:[\"docker\"],cI:!0,k:\"from maintainer expose env arg user onbuild stopsignal\",c:[e.HCM,e.ASM,e.QSM,e.NM,{bK:\"run cmd entrypoint volume add copy workdir label healthcheck shell\",starts:{e:/[^\\\\]$/,sL:\"bash\"}}],i:\"</\"}});hljs.registerLanguage(\"python\",function(e){var r={keyword:\"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10\",built_in:\"Ellipsis NotImplemented\",literal:\"False None True\"},b={cN:\"meta\",b:/^(>>>|\\.\\.\\.) /},c={cN:\"subst\",b:/\\{/,e:/\\}/,k:r,i:/#/},a={b:/\\{\\{/,relevance:0},l={cN:\"string\",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[e.BE,b],relevance:10},{b:/(u|b)?r?\"\"\"/,e:/\"\"\"/,c:[e.BE,b],relevance:10},{b:/(fr|rf|f)'''/,e:/'''/,c:[e.BE,b,a,c]},{b:/(fr|rf|f)\"\"\"/,e:/\"\"\"/,c:[e.BE,b,a,c]},{b:/(u|r|ur)'/,e:/'/,relevance:10},{b:/(u|r|ur)\"/,e:/\"/,relevance:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)\"/,e:/\"/},{b:/(fr|rf|f)'/,e:/'/,c:[e.BE,a,c]},{b:/(fr|rf|f)\"/,e:/\"/,c:[e.BE,a,c]},e.ASM,e.QSM]},n={cN:\"number\",relevance:0,v:[{b:e.BNR+\"[lLjJ]?\"},{b:\"\\\\b(0o[0-7]+)[lLjJ]?\"},{b:e.CNR+\"[lLjJ]?\"}]},i={cN:\"params\",b:/\\(/,e:/\\)/,c:[\"self\",b,n,l,e.HCM]};return c.c=[l,n,b],{aliases:[\"py\",\"gyp\",\"ipython\"],k:r,i:/(<\\/|->|\\?)|=>/,c:[b,n,{bK:\"if\",relevance:0},l,e.HCM,{v:[{cN:\"function\",bK:\"def\"},{cN:\"class\",bK:\"class\"}],e:/:/,i:/[${=;\\n,]/,c:[e.UTM,i,{b:/->/,eW:!0,k:\"None\"}]},{cN:\"meta\",b:/^[\\t ]*@/,e:/$/},{b:/\\b(print|exec)\\(/}]}});hljs.registerLanguage(\"ini\",function(e){var b={cN:\"number\",relevance:0,v:[{b:/([\\+\\-]+)?[\\d]+_[\\d_]+/},{b:e.NR}]},a=e.C();a.v=[{b:/;/,e:/$/},{b:/#/,e:/$/}];var c={cN:\"variable\",v:[{b:/\\$[\\w\\d\"][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},r={cN:\"literal\",b:/\\bon|off|true|false|yes|no\\b/},n={cN:\"string\",c:[e.BE],v:[{b:\"'''\",e:\"'''\",relevance:10},{b:'\"\"\"',e:'\"\"\"',relevance:10},{b:'\"',e:'\"'},{b:\"'\",e:\"'\"}]};return{aliases:[\"toml\"],cI:!0,i:/\\S/,c:[a,{cN:\"section\",b:/\\[+/,e:/\\]+/},{b:/^[a-z0-9\\[\\]_\\.-]+(?=\\s*=\\s*)/,cN:\"attr\",starts:{e:/$/,c:[a,{b:/\\[/,e:/\\]/,c:[a,r,c,n,b,\"self\"],relevance:0},r,c,n,b]}}]}});hljs.registerLanguage(\"diff\",function(e){return{aliases:[\"patch\"],c:[{cN:\"meta\",relevance:10,v:[{b:/^@@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +@@$/},{b:/^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$/},{b:/^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$/}]},{cN:\"comment\",v:[{b:/Index: /,e:/$/},{b:/={3,}/,e:/$/},{b:/^\\-{3}/,e:/$/},{b:/^\\*{3} /,e:/$/},{b:/^\\+{3}/,e:/$/},{b:/^\\*{15}$/}]},{cN:\"addition\",b:\"^\\\\+\",e:\"$\"},{cN:\"deletion\",b:\"^\\\\-\",e:\"$\"},{cN:\"addition\",b:\"^\\\\!\",e:\"$\"}]}});hljs.registerLanguage(\"http\",function(e){var t=\"HTTP/[0-9\\\\.]+\";return{aliases:[\"https\"],i:\"\\\\S\",c:[{b:\"^\"+t,e:\"$\",c:[{cN:\"number\",b:\"\\\\b\\\\d{3}\\\\b\"}]},{b:\"^[A-Z]+ (.*?) \"+t+\"$\",rB:!0,e:\"$\",c:[{cN:\"string\",b:\" \",e:\" \",eB:!0,eE:!0},{b:t},{cN:\"keyword\",b:\"[A-Z]+\"}]},{cN:\"attribute\",b:\"^\\\\w\",e:\": \",eE:!0,i:\"\\\\n|\\\\s|=\",starts:{e:\"$\",relevance:0}},{b:\"\\\\n\\\\n\",starts:{sL:[],eW:!0}}]}});hljs.registerLanguage(\"sql\",function(e){var t=e.C(\"--\",\"$\");return{cI:!0,i:/[<>{}*]/,c:[{bK:\"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment values with\",e:/;/,eW:!0,l:/[\\w\\.]+/,k:{keyword:\"as abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias all allocate allow alter always analyze ancillary and anti any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound bucket buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain explode export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force foreign form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour hours http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lateral lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minutes minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notnull notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second seconds section securefile security seed segment select self semi sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tablesample tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unnest unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace window with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek\",literal:\"true false null unknown\",built_in:\"array bigint binary bit blob bool boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text time timestamp tinyint varchar varchar2 varying void\"},c:[{cN:\"string\",b:\"'\",e:\"'\",c:[{b:\"''\"}]},{cN:\"string\",b:'\"',e:'\"',c:[{b:'\"\"'}]},{cN:\"string\",b:\"`\",e:\"`\"},e.CNM,e.CBCM,t,e.HCM]},e.CBCM,t,e.HCM]}});hljs.registerLanguage(\"vala\",function(e){return{k:{keyword:\"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override virtual delegate if while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var\",built_in:\"DBus GLib CCode Gee Object Gtk Posix\",literal:\"false true null\"},c:[{cN:\"class\",bK:\"class interface namespace\",e:\"{\",eE:!0,i:\"[^,:\\\\n\\\\s\\\\.]\",c:[e.UTM]},e.CLCM,e.CBCM,{cN:\"string\",b:'\"\"\"',e:'\"\"\"',relevance:5},e.ASM,e.QSM,e.CNM,{cN:\"meta\",b:\"^#\",e:\"$\",relevance:2}]}});hljs.registerLanguage(\"asciidoc\",function(e){return{aliases:[\"adoc\"],c:[e.C(\"^/{4,}\\\\n\",\"\\\\n/{4,}$\",{relevance:10}),e.C(\"^//\",\"$\",{relevance:0}),{cN:\"title\",b:\"^\\\\.\\\\w.*$\"},{b:\"^[=\\\\*]{4,}\\\\n\",e:\"\\\\n^[=\\\\*]{4,}$\",relevance:10},{cN:\"section\",relevance:10,v:[{b:\"^(={1,5}) .+?( \\\\1)?$\"},{b:\"^[^\\\\[\\\\]\\\\n]+?\\\\n[=\\\\-~\\\\^\\\\+]{2,}$\"}]},{cN:\"meta\",b:\"^:.+?:\",e:\"\\\\s\",eE:!0,relevance:10},{cN:\"meta\",b:\"^\\\\[.+?\\\\]$\",relevance:0},{cN:\"quote\",b:\"^_{4,}\\\\n\",e:\"\\\\n_{4,}$\",relevance:10},{cN:\"code\",b:\"^[\\\\-\\\\.]{4,}\\\\n\",e:\"\\\\n[\\\\-\\\\.]{4,}$\",relevance:10},{b:\"^\\\\+{4,}\\\\n\",e:\"\\\\n\\\\+{4,}$\",c:[{b:\"<\",e:\">\",sL:\"xml\",relevance:0}],relevance:10},{cN:\"bullet\",b:\"^(\\\\*+|\\\\-+|\\\\.+|[^\\\\n]+?::)\\\\s+\"},{cN:\"symbol\",b:\"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\\\s+\",relevance:10},{cN:\"strong\",b:\"\\\\B\\\\*(?![\\\\*\\\\s])\",e:\"(\\\\n{2}|\\\\*)\",c:[{b:\"\\\\\\\\*\\\\w\",relevance:0}]},{cN:\"emphasis\",b:\"\\\\B'(?!['\\\\s])\",e:\"(\\\\n{2}|')\",c:[{b:\"\\\\\\\\'\\\\w\",relevance:0}],relevance:0},{cN:\"emphasis\",b:\"_(?![_\\\\s])\",e:\"(\\\\n{2}|_)\",relevance:0},{cN:\"string\",v:[{b:\"``.+?''\"},{b:\"`.+?'\"}]},{cN:\"code\",b:\"(`.+?`|\\\\+.+?\\\\+)\",relevance:0},{cN:\"code\",b:\"^[ \\\\t]\",e:\"$\",relevance:0},{b:\"^'{3,}[ \\\\t]*$\",relevance:10},{b:\"(link:)?(http|https|ftp|file|irc|image:?):\\\\S+\\\\[.*?\\\\]\",rB:!0,c:[{b:\"(link|image:?):\",relevance:0},{cN:\"link\",b:\"\\\\w\",e:\"[^\\\\[]+\",relevance:0},{cN:\"string\",b:\"\\\\[\",e:\"\\\\]\",eB:!0,eE:!0,relevance:0}],relevance:10}]}});hljs.registerLanguage(\"json\",function(e){var i={literal:\"true false null\"},n=[e.CLCM,e.CBCM],c=[e.QSM,e.CNM],r={e:\",\",eW:!0,eE:!0,c:c,k:i},t={b:\"{\",e:\"}\",c:[{cN:\"attr\",b:/\"/,e:/\"/,c:[e.BE],i:\"\\\\n\"},e.inherit(r,{b:/:/})].concat(n),i:\"\\\\S\"},a={b:\"\\\\[\",e:\"\\\\]\",c:[e.inherit(r)],i:\"\\\\S\"};return c.push(t,a),n.forEach(function(e){c.push(e)}),{c:c,k:i,i:\"\\\\S\"}});hljs.registerLanguage(\"rust\",function(e){var t=\"([ui](8|16|32|64|128|size)|f(32|64))?\",r=\"drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!\";return{aliases:[\"rs\"],k:{keyword:\"abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield\",literal:\"true false Some None Ok Err\",built_in:r},l:e.IR+\"!?\",i:\"</\",c:[e.CLCM,e.C(\"/\\\\*\",\"\\\\*/\",{c:[\"self\"]}),e.inherit(e.QSM,{b:/b?\"/,i:null}),{cN:\"string\",v:[{b:/r(#*)\"(.|\\n)*?\"\\1(?!#)/},{b:/b?'\\\\?(x\\w{2}|u\\w{4}|U\\w{8}|.)'/}]},{cN:\"symbol\",b:/'[a-zA-Z_][a-zA-Z0-9_]*/},{cN:\"number\",v:[{b:\"\\\\b0b([01_]+)\"+t},{b:\"\\\\b0o([0-7_]+)\"+t},{b:\"\\\\b0x([A-Fa-f0-9_]+)\"+t},{b:\"\\\\b(\\\\d[\\\\d_]*(\\\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)\"+t}],relevance:0},{cN:\"function\",bK:\"fn\",e:\"(\\\\(|<)\",eE:!0,c:[e.UTM]},{cN:\"meta\",b:\"#\\\\!?\\\\[\",e:\"\\\\]\",c:[{cN:\"meta-string\",b:/\"/,e:/\"/}]},{cN:\"class\",bK:\"type\",e:\";\",c:[e.inherit(e.UTM,{endsParent:!0})],i:\"\\\\S\"},{cN:\"class\",bK:\"trait enum struct union\",e:\"{\",c:[e.inherit(e.UTM,{endsParent:!0})],i:\"[\\\\w\\\\d]\"},{b:e.IR+\"::\",k:{built_in:r}},{b:\"->\"}]}});hljs.registerLanguage(\"awk\",function(e){return{k:{keyword:\"BEGIN END if else while do for in break continue delete next nextfile function func exit|10\"},c:[{cN:\"variable\",v:[{b:/\\$[\\w\\d#@][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},{cN:\"string\",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,relevance:10},{b:/(u|b)?r?\"\"\"/,e:/\"\"\"/,relevance:10},{b:/(u|r|ur)'/,e:/'/,relevance:10},{b:/(u|r|ur)\"/,e:/\"/,relevance:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)\"/,e:/\"/},e.ASM,e.QSM]},e.RM,e.HCM,e.NM]}});hljs.registerLanguage(\"java\",function(e){var a=\"false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do\",t={cN:\"number\",b:\"\\\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+)(\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))?|\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))([eE][-+]?\\\\d+)?)[lLfF]?\",relevance:0};return{aliases:[\"jsp\"],k:a,i:/<\\/|#/,c:[e.C(\"/\\\\*\\\\*\",\"\\\\*/\",{relevance:0,c:[{b:/\\w+@/,relevance:0},{cN:\"doctag\",b:\"@[A-Za-z]+\"}]}),e.CLCM,e.CBCM,e.ASM,e.QSM,{cN:\"class\",bK:\"class interface\",e:/[{;=]/,eE:!0,k:\"class interface\",i:/[:\"\\[\\]]/,c:[{bK:\"extends implements\"},e.UTM]},{bK:\"new throw return else\",relevance:0},{cN:\"function\",b:\"([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\\\s*,\\\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\\\s+)+\"+e.UIR+\"\\\\s*\\\\(\",rB:!0,e:/[{;=]/,eE:!0,k:a,c:[{b:e.UIR+\"\\\\s*\\\\(\",rB:!0,relevance:0,c:[e.UTM]},{cN:\"params\",b:/\\(/,e:/\\)/,k:a,relevance:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]},t,{cN:\"meta\",b:\"@[A-Za-z]+\"}]}});hljs.registerLanguage(\"cs\",function(e){var a={keyword:\"abstract as base bool break byte case catch char checked const continue decimal default delegate do double enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic equals from get global group into join let nameof on orderby partial remove select set value var when where yield\",literal:\"null false true\"},i={cN:\"number\",v:[{b:\"\\\\b(0b[01']+)\"},{b:\"(-?)\\\\b([\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)(u|U|l|L|ul|UL|f|F|b|B)\"},{b:\"(-?)(\\\\b0[xX][a-fA-F0-9']+|(\\\\b[\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)([eE][-+]?[\\\\d']+)?)\"}],relevance:0},c={cN:\"string\",b:'@\"',e:'\"',c:[{b:'\"\"'}]},r=e.inherit(c,{i:/\\n/}),n={cN:\"subst\",b:\"{\",e:\"}\",k:a},t=e.inherit(n,{i:/\\n/}),s={cN:\"string\",b:/\\$\"/,e:'\"',i:/\\n/,c:[{b:\"{{\"},{b:\"}}\"},e.BE,t]},l={cN:\"string\",b:/\\$@\"/,e:'\"',c:[{b:\"{{\"},{b:\"}}\"},{b:'\"\"'},n]},b=e.inherit(l,{i:/\\n/,c:[{b:\"{{\"},{b:\"}}\"},{b:'\"\"'},t]});n.c=[l,s,c,e.ASM,e.QSM,i,e.CBCM],t.c=[b,s,r,e.ASM,e.QSM,i,e.inherit(e.CBCM,{i:/\\n/})];var o={v:[l,s,c,e.ASM,e.QSM]},d=e.IR+\"(<\"+e.IR+\"(\\\\s*,\\\\s*\"+e.IR+\")*>)?(\\\\[\\\\])?\";return{aliases:[\"csharp\",\"c#\"],k:a,i:/::/,c:[e.C(\"///\",\"$\",{rB:!0,c:[{cN:\"doctag\",v:[{b:\"///\",relevance:0},{b:\"\\x3c!--|--\\x3e\"},{b:\"</?\",e:\">\"}]}]}),e.CLCM,e.CBCM,{cN:\"meta\",b:\"#\",e:\"$\",k:{\"meta-keyword\":\"if else elif endif define undef warning error line region endregion pragma checksum\"}},o,i,{bK:\"class interface\",e:/[{;=]/,i:/[^\\s:,]/,c:[e.TM,e.CLCM,e.CBCM]},{bK:\"namespace\",e:/[{;=]/,i:/[^\\s:]/,c:[e.inherit(e.TM,{b:\"[a-zA-Z](\\\\.?\\\\w)*\"}),e.CLCM,e.CBCM]},{cN:\"meta\",b:\"^\\\\s*\\\\[\",eB:!0,e:\"\\\\]\",eE:!0,c:[{cN:\"meta-string\",b:/\"/,e:/\"/}]},{bK:\"new return throw await else\",relevance:0},{cN:\"function\",b:\"(\"+d+\"\\\\s+)+\"+e.IR+\"\\\\s*\\\\(\",rB:!0,e:/\\s*[{;=]/,eE:!0,k:a,c:[{b:e.IR+\"\\\\s*\\\\(\",rB:!0,c:[e.TM],relevance:0},{cN:\"params\",b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:a,relevance:0,c:[o,i,e.CBCM]},e.CLCM,e.CBCM]}]}});hljs.registerLanguage(\"mathematica\",function(e){return{aliases:[\"mma\",\"wl\"],l:\"(\\\\$|\\\\b)\"+e.IR+\"\\\\b\",k:\"AASTriangle AbelianGroup Abort AbortKernels AbortProtect AbortScheduledTask Above Abs AbsArg AbsArgPlot Absolute AbsoluteCorrelation AbsoluteCorrelationFunction AbsoluteCurrentValue AbsoluteDashing AbsoluteFileName AbsoluteOptions AbsolutePointSize AbsoluteThickness AbsoluteTime AbsoluteTiming AcceptanceThreshold AccountingForm Accumulate Accuracy AccuracyGoal ActionDelay ActionMenu ActionMenuBox ActionMenuBoxOptions Activate Active ActiveClassification ActiveClassificationObject ActiveItem ActivePrediction ActivePredictionObject ActiveStyle AcyclicGraphQ AddOnHelpPath AddSides AddTo AddToSearchIndex AddUsers AdjacencyGraph AdjacencyList AdjacencyMatrix AdjustmentBox AdjustmentBoxOptions AdjustTimeSeriesForecast AdministrativeDivisionData AffineHalfSpace AffineSpace AffineStateSpaceModel AffineTransform After AggregatedEntityClass AggregationLayer AircraftData AirportData AirPressureData AirTemperatureData AiryAi AiryAiPrime AiryAiZero AiryBi AiryBiPrime AiryBiZero AlgebraicIntegerQ AlgebraicNumber AlgebraicNumberDenominator AlgebraicNumberNorm AlgebraicNumberPolynomial AlgebraicNumberTrace AlgebraicRules AlgebraicRulesData Algebraics AlgebraicUnitQ Alignment AlignmentMarker AlignmentPoint All AllowAdultContent AllowedCloudExtraParameters AllowedCloudParameterExtensions AllowedDimensions AllowedFrequencyRange AllowedHeads AllowGroupClose AllowIncomplete AllowInlineCells AllowKernelInitialization AllowLooseGrammar AllowReverseGroupClose AllowScriptLevelChange AllTrue Alphabet AlphabeticOrder AlphabeticSort AlphaChannel AlternateImage AlternatingFactorial AlternatingGroup AlternativeHypothesis Alternatives AltitudeMethod AmbientLight AmbiguityFunction AmbiguityList Analytic AnatomyData AnatomyForm AnatomyPlot3D AnatomySkinStyle AnatomyStyling AnchoredSearch And AndersonDarlingTest AngerJ AngleBisector AngleBracket AnglePath AnglePath3D AngleVector AngularGauge Animate AnimationCycleOffset AnimationCycleRepetitions AnimationDirection AnimationDisplayTime AnimationRate AnimationRepetitions AnimationRunning AnimationRunTime AnimationTimeIndex Animator AnimatorBox AnimatorBoxOptions AnimatorElements Annotate Annotation AnnotationDelete AnnotationNames AnnotationRules AnnotationValue Annuity AnnuityDue Annulus AnomalyDetection AnomalyDetectorFunction Anonymous Antialiasing AntihermitianMatrixQ Antisymmetric AntisymmetricMatrixQ Antonyms AnyOrder AnySubset AnyTrue Apart ApartSquareFree APIFunction Appearance AppearanceElements AppearanceRules AppellF1 Append AppendCheck AppendLayer AppendTo ApplicationIdentificationKey Apply ApplySides ArcCos ArcCosh ArcCot ArcCoth ArcCsc ArcCsch ArcCurvature ARCHProcess ArcLength ArcSec ArcSech ArcSin ArcSinDistribution ArcSinh ArcTan ArcTanh Area Arg ArgMax ArgMin ArgumentCountQ ARIMAProcess ArithmeticGeometricMean ARMAProcess Around AroundReplace ARProcess Array ArrayComponents ArrayDepth ArrayFilter ArrayFlatten ArrayMesh ArrayPad ArrayPlot ArrayQ ArrayResample ArrayReshape ArrayRules Arrays Arrow Arrow3DBox ArrowBox Arrowheads ASATriangle Ask AskAppend AskConfirm AskDisplay AskedQ AskedValue AskFunction AskState AskTemplateDisplay AspectRatio AspectRatioFixed Assert AssociateTo Association AssociationFormat AssociationMap AssociationQ AssociationThread AssumeDeterministic Assuming Assumptions AstronomicalData AsymptoticDSolveValue AsymptoticEqual AsymptoticEquivalent AsymptoticGreater AsymptoticGreaterEqual AsymptoticIntegrate AsymptoticLess AsymptoticLessEqual AsymptoticOutputTracker AsymptoticRSolveValue AsymptoticSolve AsymptoticSum Asynchronous AsynchronousTaskObject AsynchronousTasks Atom AtomCoordinates AtomCount AtomDiagramCoordinates AtomList AtomQ AttentionLayer Attributes Audio AudioAmplify AudioAnnotate AudioAnnotationLookup AudioBlockMap AudioCapture AudioChannelAssignment AudioChannelCombine AudioChannelMix AudioChannels AudioChannelSeparate AudioData AudioDelay AudioDelete AudioDevice AudioDistance AudioFade AudioFrequencyShift AudioGenerator AudioIdentify AudioInputDevice AudioInsert AudioIntervals AudioJoin AudioLabel AudioLength AudioLocalMeasurements AudioLooping AudioLoudness AudioMeasurements AudioNormalize AudioOutputDevice AudioOverlay AudioPad AudioPan AudioPartition AudioPause AudioPitchShift AudioPlay AudioPlot AudioQ AudioRecord AudioReplace AudioResample AudioReverb AudioSampleRate AudioSpectralMap AudioSpectralTransformation AudioSplit AudioStop AudioStream AudioStreams AudioTimeStretch AudioTrim AudioType AugmentedPolyhedron AugmentedSymmetricPolynomial Authenticate Authentication AuthenticationDialog AutoAction Autocomplete AutocompletionFunction AutoCopy AutocorrelationTest AutoDelete AutoEvaluateEvents AutoGeneratedPackage AutoIndent AutoIndentSpacings AutoItalicWords AutoloadPath AutoMatch Automatic AutomaticImageSize AutoMultiplicationSymbol AutoNumberFormatting AutoOpenNotebooks AutoOpenPalettes AutoQuoteCharacters AutoRefreshed AutoRemove AutorunSequencing AutoScaling AutoScroll AutoSpacing AutoStyleOptions AutoStyleWords AutoSubmitting Axes AxesEdge AxesLabel AxesOrigin AxesStyle AxiomaticTheory AxisBabyMonsterGroupB Back Background BackgroundAppearance BackgroundTasksSettings Backslash Backsubstitution Backward Ball Band BandpassFilter BandstopFilter BarabasiAlbertGraphDistribution BarChart BarChart3D BarcodeImage BarcodeRecognize BaringhausHenzeTest BarLegend BarlowProschanImportance BarnesG BarOrigin BarSpacing BartlettHannWindow BartlettWindow BaseDecode BaseEncode BaseForm Baseline BaselinePosition BaseStyle BasicRecurrentLayer BatchNormalizationLayer BatchSize BatesDistribution BattleLemarieWavelet BayesianMaximization BayesianMaximizationObject BayesianMinimization BayesianMinimizationObject Because BeckmannDistribution Beep Before Begin BeginDialogPacket BeginFrontEndInteractionPacket BeginPackage BellB BellY Below BenfordDistribution BeniniDistribution BenktanderGibratDistribution BenktanderWeibullDistribution BernoulliB BernoulliDistribution BernoulliGraphDistribution BernoulliProcess BernsteinBasis BesselFilterModel BesselI BesselJ BesselJZero BesselK BesselY BesselYZero Beta BetaBinomialDistribution BetaDistribution BetaNegativeBinomialDistribution BetaPrimeDistribution BetaRegularized Between BetweennessCentrality BeveledPolyhedron BezierCurve BezierCurve3DBox BezierCurve3DBoxOptions BezierCurveBox BezierCurveBoxOptions BezierFunction BilateralFilter Binarize BinaryDeserialize BinaryDistance BinaryFormat BinaryImageQ BinaryRead BinaryReadList BinarySerialize BinaryWrite BinCounts BinLists Binomial BinomialDistribution BinomialProcess BinormalDistribution BiorthogonalSplineWavelet BipartiteGraphQ BiquadraticFilterModel BirnbaumImportance BirnbaumSaundersDistribution BitAnd BitClear BitGet BitLength BitNot BitOr BitSet BitShiftLeft BitShiftRight BitXor BiweightLocation BiweightMidvariance Black BlackmanHarrisWindow BlackmanNuttallWindow BlackmanWindow Blank BlankForm BlankNullSequence BlankSequence Blend Block BlockchainAddressData BlockchainBase BlockchainBlockData BlockchainContractValue BlockchainData BlockchainGet BlockchainKeyEncode BlockchainPut BlockchainTokenData BlockchainTransaction BlockchainTransactionData BlockchainTransactionSign BlockchainTransactionSubmit BlockMap BlockRandom BlomqvistBeta BlomqvistBetaTest Blue Blur BodePlot BohmanWindow Bold Bond BondCount BondList BondQ Bookmarks Boole BooleanConsecutiveFunction BooleanConvert BooleanCountingFunction BooleanFunction BooleanGraph BooleanMaxterms BooleanMinimize BooleanMinterms BooleanQ BooleanRegion Booleans BooleanStrings BooleanTable BooleanVariables BorderDimensions BorelTannerDistribution Bottom BottomHatTransform BoundaryDiscretizeGraphics BoundaryDiscretizeRegion BoundaryMesh BoundaryMeshRegion BoundaryMeshRegionQ BoundaryStyle BoundedRegionQ BoundingRegion Bounds Box BoxBaselineShift BoxData BoxDimensions Boxed Boxes BoxForm BoxFormFormatTypes BoxFrame BoxID BoxMargins BoxMatrix BoxObject BoxRatios BoxRotation BoxRotationPoint BoxStyle BoxWhiskerChart Bra BracketingBar BraKet BrayCurtisDistance BreadthFirstScan Break BridgeData BrightnessEqualize BroadcastStationData Brown BrownForsytheTest BrownianBridgeProcess BrowserCategory BSplineBasis BSplineCurve BSplineCurve3DBox BSplineCurve3DBoxOptions BSplineCurveBox BSplineCurveBoxOptions BSplineFunction BSplineSurface BSplineSurface3DBox BSplineSurface3DBoxOptions BubbleChart BubbleChart3D BubbleScale BubbleSizes BuildingData BulletGauge BusinessDayQ ButterflyGraph ButterworthFilterModel Button ButtonBar ButtonBox ButtonBoxOptions ButtonCell ButtonContents ButtonData ButtonEvaluator ButtonExpandable ButtonFrame ButtonFunction ButtonMargins ButtonMinHeight ButtonNote ButtonNotebook ButtonSource ButtonStyle ButtonStyleMenuListing Byte ByteArray ByteArrayFormat ByteArrayQ ByteArrayToString ByteCount ByteOrderingC CachedValue CacheGraphics CachePersistence CalendarConvert CalendarData CalendarType Callout CalloutMarker CalloutStyle CallPacket CanberraDistance Cancel CancelButton CandlestickChart CanonicalGraph CanonicalizePolygon CanonicalizePolyhedron CanonicalName CanonicalWarpingCorrespondence CanonicalWarpingDistance CantorMesh CantorStaircase Cap CapForm CapitalDifferentialD Capitalize CapsuleShape CaptureRunning CardinalBSplineBasis CarlemanLinearize CarmichaelLambda CaseOrdering Cases CaseSensitive Cashflow Casoratian Catalan CatalanNumber Catch Catenate CatenateLayer CauchyDistribution CauchyWindow CayleyGraph CDF CDFDeploy CDFInformation CDFWavelet Ceiling CelestialSystem Cell CellAutoOverwrite CellBaseline CellBoundingBox CellBracketOptions CellChangeTimes CellContents CellContext CellDingbat CellDynamicExpression CellEditDuplicate CellElementsBoundingBox CellElementSpacings CellEpilog CellEvaluationDuplicate CellEvaluationFunction CellEvaluationLanguage CellEventActions CellFrame CellFrameColor CellFrameLabelMargins CellFrameLabels CellFrameMargins CellGroup CellGroupData CellGrouping CellGroupingRules CellHorizontalScrolling CellID CellLabel CellLabelAutoDelete CellLabelMargins CellLabelPositioning CellLabelStyle CellLabelTemplate CellMargins CellObject CellOpen CellPrint CellProlog Cells CellSize CellStyle CellTags CellularAutomaton CensoredDistribution Censoring Center CenterArray CenterDot CentralFeature CentralMoment CentralMomentGeneratingFunction Cepstrogram CepstrogramArray CepstrumArray CForm ChampernowneNumber ChangeOptions ChannelBase ChannelBrokerAction ChannelDatabin ChannelHistoryLength ChannelListen ChannelListener ChannelListeners ChannelListenerWait ChannelObject ChannelPreSendFunction ChannelReceiverFunction ChannelSend ChannelSubscribers ChanVeseBinarize Character CharacterCounts CharacterEncoding CharacterEncodingsPath CharacteristicFunction CharacteristicPolynomial CharacterName CharacterRange Characters ChartBaseStyle ChartElementData ChartElementDataFunction ChartElementFunction ChartElements ChartLabels ChartLayout ChartLegends ChartStyle Chebyshev1FilterModel Chebyshev2FilterModel ChebyshevDistance ChebyshevT ChebyshevU Check CheckAbort CheckAll Checkbox CheckboxBar CheckboxBox CheckboxBoxOptions ChemicalData ChessboardDistance ChiDistribution ChineseRemainder ChiSquareDistribution ChoiceButtons ChoiceDialog CholeskyDecomposition Chop ChromaticityPlot ChromaticityPlot3D ChromaticPolynomial Circle CircleBox CircleDot CircleMinus CirclePlus CirclePoints CircleThrough CircleTimes CirculantGraph CircularOrthogonalMatrixDistribution CircularQuaternionMatrixDistribution CircularRealMatrixDistribution CircularSymplecticMatrixDistribution CircularUnitaryMatrixDistribution Circumsphere CityData ClassifierFunction ClassifierInformation ClassifierMeasurements ClassifierMeasurementsObject Classify ClassPriors Clear ClearAll ClearAttributes ClearCookies ClearPermissions ClearSystemCache ClebschGordan ClickPane Clip ClipboardNotebook ClipFill ClippingStyle ClipPlanes ClipPlanesStyle ClipRange Clock ClockGauge ClockwiseContourIntegral Close Closed CloseKernels ClosenessCentrality Closing ClosingAutoSave ClosingEvent CloudAccountData CloudBase CloudConnect CloudDeploy CloudDirectory CloudDisconnect CloudEvaluate CloudExport CloudExpression CloudExpressions CloudFunction CloudGet CloudImport CloudLoggingData CloudObject CloudObjectInformation CloudObjectInformationData CloudObjectNameFormat CloudObjects CloudObjectURLType CloudPublish CloudPut CloudRenderingMethod CloudSave CloudShare CloudSubmit CloudSymbol CloudUnshare ClusterClassify ClusterDissimilarityFunction ClusteringComponents ClusteringTree CMYKColor Coarse CodeAssistOptions Coefficient CoefficientArrays CoefficientDomain CoefficientList CoefficientRules CoifletWavelet Collect Colon ColonForm ColorBalance ColorCombine ColorConvert ColorCoverage ColorData ColorDataFunction ColorDetect ColorDistance ColorFunction ColorFunctionScaling Colorize ColorNegate ColorOutput ColorProfileData ColorQ ColorQuantize ColorReplace ColorRules ColorSelectorSettings ColorSeparate ColorSetter ColorSetterBox ColorSetterBoxOptions ColorSlider ColorsNear ColorSpace ColorToneMapping Column ColumnAlignments ColumnBackgrounds ColumnForm ColumnLines ColumnsEqual ColumnSpacings ColumnWidths CombinedEntityClass CombinerFunction CometData CommonDefaultFormatTypes Commonest CommonestFilter CommonName CommonUnits CommunityBoundaryStyle CommunityGraphPlot CommunityLabels CommunityRegionStyle CompanyData CompatibleUnitQ CompilationOptions CompilationTarget Compile Compiled CompiledCodeFunction CompiledFunction CompilerOptions Complement CompleteGraph CompleteGraphQ CompleteKaryTree CompletionsListPacket Complex Complexes ComplexExpand ComplexInfinity ComplexityFunction ComplexListPlot ComplexPlot ComplexPlot3D ComponentMeasurements ComponentwiseContextMenu Compose ComposeList ComposeSeries CompositeQ Composition CompoundElement CompoundExpression CompoundPoissonDistribution CompoundPoissonProcess CompoundRenewalProcess Compress CompressedData ComputeUncertainty Condition ConditionalExpression Conditioned Cone ConeBox ConfidenceLevel ConfidenceRange ConfidenceTransform ConfigurationPath ConformAudio ConformImages Congruent ConicHullRegion ConicHullRegion3DBox ConicHullRegionBox ConicOptimization Conjugate ConjugateTranspose Conjunction Connect ConnectedComponents ConnectedGraphComponents ConnectedGraphQ ConnectedMeshComponents ConnectedMoleculeComponents ConnectedMoleculeQ ConnectionSettings ConnectLibraryCallbackFunction ConnectSystemModelComponents ConnesWindow ConoverTest ConsoleMessage ConsoleMessagePacket ConsolePrint Constant ConstantArray ConstantArrayLayer ConstantImage ConstantPlusLayer ConstantRegionQ Constants ConstantTimesLayer ConstellationData ConstrainedMax ConstrainedMin Construct Containing ContainsAll ContainsAny ContainsExactly ContainsNone ContainsOnly ContentFieldOptions ContentLocationFunction ContentObject ContentPadding ContentsBoundingBox ContentSelectable ContentSize Context ContextMenu Contexts ContextToFileName Continuation Continue ContinuedFraction ContinuedFractionK ContinuousAction ContinuousMarkovProcess ContinuousTask ContinuousTimeModelQ ContinuousWaveletData ContinuousWaveletTransform ContourDetect ContourGraphics ContourIntegral ContourLabels ContourLines ContourPlot ContourPlot3D Contours ContourShading ContourSmoothing ContourStyle ContraharmonicMean ContrastiveLossLayer Control ControlActive ControlAlignment ControlGroupContentsBox ControllabilityGramian ControllabilityMatrix ControllableDecomposition ControllableModelQ ControllerDuration ControllerInformation ControllerInformationData ControllerLinking ControllerManipulate ControllerMethod ControllerPath ControllerState ControlPlacement ControlsRendering ControlType Convergents ConversionOptions ConversionRules ConvertToBitmapPacket ConvertToPostScript ConvertToPostScriptPacket ConvexHullMesh ConvexPolygonQ ConvexPolyhedronQ ConvolutionLayer Convolve ConwayGroupCo1 ConwayGroupCo2 ConwayGroupCo3 CookieFunction Cookies CoordinateBoundingBox CoordinateBoundingBoxArray CoordinateBounds CoordinateBoundsArray CoordinateChartData CoordinatesToolOptions CoordinateTransform CoordinateTransformData CoprimeQ Coproduct CopulaDistribution Copyable CopyDatabin CopyDirectory CopyFile CopyTag CopyToClipboard CornerFilter CornerNeighbors Correlation CorrelationDistance CorrelationFunction CorrelationTest Cos Cosh CoshIntegral CosineDistance CosineWindow CosIntegral Cot Coth Count CountDistinct CountDistinctBy CounterAssignments CounterBox CounterBoxOptions CounterClockwiseContourIntegral CounterEvaluator CounterFunction CounterIncrements CounterStyle CounterStyleMenuListing CountRoots CountryData Counts CountsBy Covariance CovarianceEstimatorFunction CovarianceFunction CoxianDistribution CoxIngersollRossProcess CoxModel CoxModelFit CramerVonMisesTest CreateArchive CreateCellID CreateChannel CreateCloudExpression CreateDatabin CreateDataSystemModel CreateDialog CreateDirectory CreateDocument CreateFile CreateIntermediateDirectories CreateManagedLibraryExpression CreateNotebook CreatePalette CreatePalettePacket CreatePermissionsGroup CreateScheduledTask CreateSearchIndex CreateSystemModel CreateTemporary CreateUUID CreateWindow CriterionFunction CriticalityFailureImportance CriticalitySuccessImportance CriticalSection Cross CrossEntropyLossLayer CrossingCount CrossingDetect CrossingPolygon CrossMatrix Csc Csch CTCLossLayer Cube CubeRoot Cubics Cuboid CuboidBox Cumulant CumulantGeneratingFunction Cup CupCap Curl CurlyDoubleQuote CurlyQuote CurrencyConvert CurrentDate CurrentImage CurrentlySpeakingPacket CurrentNotebookImage CurrentScreenImage CurrentValue Curry CurvatureFlowFilter CurveClosed Cyan CycleGraph CycleIndexPolynomial Cycles CyclicGroup Cyclotomic Cylinder CylinderBox CylindricalDecompositionD DagumDistribution DamData DamerauLevenshteinDistance DampingFactor Darker Dashed Dashing DatabaseConnect DatabaseDisconnect DatabaseReference Databin DatabinAdd DatabinRemove Databins DatabinUpload DataCompression DataDistribution DataRange DataReversed Dataset Date DateBounds Dated DateDelimiters DateDifference DatedUnit DateFormat DateFunction DateHistogram DateList DateListLogPlot DateListPlot DateListStepPlot DateObject DateObjectQ DateOverlapsQ DatePattern DatePlus DateRange DateReduction DateString DateTicksFormat DateValue DateWithinQ DaubechiesWavelet DavisDistribution DawsonF DayCount DayCountConvention DayHemisphere DaylightQ DayMatchQ DayName DayNightTerminator DayPlus DayRange DayRound DeBruijnGraph DeBruijnSequence Debug DebugTag Decapitalize Decimal DecimalForm DeclareKnownSymbols DeclarePackage Decompose DeconvolutionLayer Decrement Decrypt DecryptFile DedekindEta DeepSpaceProbeData Default DefaultAxesStyle DefaultBaseStyle DefaultBoxStyle DefaultButton DefaultColor DefaultControlPlacement DefaultDuplicateCellStyle DefaultDuration DefaultElement DefaultFaceGridsStyle DefaultFieldHintStyle DefaultFont DefaultFontProperties DefaultFormatType DefaultFormatTypeForStyle DefaultFrameStyle DefaultFrameTicksStyle DefaultGridLinesStyle DefaultInlineFormatType DefaultInputFormatType DefaultLabelStyle DefaultMenuStyle DefaultNaturalLanguage DefaultNewCellStyle DefaultNewInlineCellStyle DefaultNotebook DefaultOptions DefaultOutputFormatType DefaultPrintPrecision DefaultStyle DefaultStyleDefinitions DefaultTextFormatType DefaultTextInlineFormatType DefaultTicksStyle DefaultTooltipStyle DefaultValue DefaultValues Defer DefineExternal DefineInputStreamMethod DefineOutputStreamMethod DefineResourceFunction Definition Degree DegreeCentrality DegreeGraphDistribution DegreeLexicographic DegreeReverseLexicographic DEigensystem DEigenvalues Deinitialization Del DelaunayMesh Delayed Deletable Delete DeleteAnomalies DeleteBorderComponents DeleteCases DeleteChannel DeleteCloudExpression DeleteContents DeleteDirectory DeleteDuplicates DeleteDuplicatesBy DeleteFile DeleteMissing DeleteObject DeletePermissionsKey DeleteSearchIndex DeleteSmallComponents DeleteStopwords DeleteWithContents DeletionWarning DelimitedArray DelimitedSequence Delimiter DelimiterFlashTime DelimiterMatching Delimiters DeliveryFunction Dendrogram Denominator DensityGraphics DensityHistogram DensityPlot DensityPlot3D DependentVariables Deploy Deployed Depth DepthFirstScan Derivative DerivativeFilter DerivedKey DescriptorStateSpace DesignMatrix DestroyAfterEvaluation Det DeviceClose DeviceConfigure DeviceExecute DeviceExecuteAsynchronous DeviceObject DeviceOpen DeviceOpenQ DeviceRead DeviceReadBuffer DeviceReadLatest DeviceReadList DeviceReadTimeSeries Devices DeviceStreams DeviceWrite DeviceWriteBuffer DGaussianWavelet DiacriticalPositioning Diagonal DiagonalizableMatrixQ DiagonalMatrix DiagonalMatrixQ Dialog DialogIndent DialogInput DialogLevel DialogNotebook DialogProlog DialogReturn DialogSymbols Diamond DiamondMatrix DiceDissimilarity DictionaryLookup DictionaryWordQ DifferenceDelta DifferenceOrder DifferenceQuotient DifferenceRoot DifferenceRootReduce Differences DifferentialD DifferentialRoot DifferentialRootReduce DifferentiatorFilter DigitalSignature DigitBlock DigitBlockMinimum DigitCharacter DigitCount DigitQ DihedralAngle DihedralGroup Dilation DimensionalCombinations DimensionalMeshComponents DimensionReduce DimensionReducerFunction DimensionReduction Dimensions DiracComb DiracDelta DirectedEdge DirectedEdges DirectedGraph DirectedGraphQ DirectedInfinity Direction Directive Directory DirectoryName DirectoryQ DirectoryStack DirichletBeta DirichletCharacter DirichletCondition DirichletConvolve DirichletDistribution DirichletEta DirichletL DirichletLambda DirichletTransform DirichletWindow DisableConsolePrintPacket DisableFormatting DiscreteChirpZTransform DiscreteConvolve DiscreteDelta DiscreteHadamardTransform DiscreteIndicator DiscreteLimit DiscreteLQEstimatorGains DiscreteLQRegulatorGains DiscreteLyapunovSolve DiscreteMarkovProcess DiscreteMaxLimit DiscreteMinLimit DiscretePlot DiscretePlot3D DiscreteRatio DiscreteRiccatiSolve DiscreteShift DiscreteTimeModelQ DiscreteUniformDistribution DiscreteVariables DiscreteWaveletData DiscreteWaveletPacketTransform DiscreteWaveletTransform DiscretizeGraphics DiscretizeRegion Discriminant DisjointQ Disjunction Disk DiskBox DiskMatrix DiskSegment Dispatch DispatchQ DispersionEstimatorFunction Display DisplayAllSteps DisplayEndPacket DisplayFlushImagePacket DisplayForm DisplayFunction DisplayPacket DisplayRules DisplaySetSizePacket DisplayString DisplayTemporary DisplayWith DisplayWithRef DisplayWithVariable DistanceFunction DistanceMatrix DistanceTransform Distribute Distributed DistributedContexts DistributeDefinitions DistributionChart DistributionDomain DistributionFitTest DistributionParameterAssumptions DistributionParameterQ Dithering Div Divergence Divide DivideBy Dividers DivideSides Divisible Divisors DivisorSigma DivisorSum DMSList DMSString Do DockedCells DocumentGenerator DocumentGeneratorInformation DocumentGeneratorInformationData DocumentGenerators DocumentNotebook DocumentWeightingRules Dodecahedron DomainRegistrationInformation DominantColors DOSTextFormat Dot DotDashed DotEqual DotLayer DotPlusLayer Dotted DoubleBracketingBar DoubleContourIntegral DoubleDownArrow DoubleLeftArrow DoubleLeftRightArrow DoubleLeftTee DoubleLongLeftArrow DoubleLongLeftRightArrow DoubleLongRightArrow DoubleRightArrow DoubleRightTee DoubleUpArrow DoubleUpDownArrow DoubleVerticalBar DoublyInfinite Down DownArrow DownArrowBar DownArrowUpArrow DownLeftRightVector DownLeftTeeVector DownLeftVector DownLeftVectorBar DownRightTeeVector DownRightVector DownRightVectorBar Downsample DownTee DownTeeArrow DownValues DragAndDrop DrawEdges DrawFrontFaces DrawHighlighted Drop DropoutLayer DSolve DSolveValue Dt DualLinearProgramming DualPolyhedron DualSystemsModel DumpGet DumpSave DuplicateFreeQ Duration Dynamic DynamicBox DynamicBoxOptions DynamicEvaluationTimeout DynamicGeoGraphics DynamicImage DynamicLocation DynamicModule DynamicModuleBox DynamicModuleBoxOptions DynamicModuleParent DynamicModuleValues DynamicName DynamicNamespace DynamicReference DynamicSetting DynamicUpdating DynamicWrapper DynamicWrapperBox DynamicWrapperBoxOptionsE EarthImpactData EarthquakeData EccentricityCentrality Echo EchoFunction EclipseType EdgeAdd EdgeBetweennessCentrality EdgeCapacity EdgeCapForm EdgeColor EdgeConnectivity EdgeContract EdgeCost EdgeCount EdgeCoverQ EdgeCycleMatrix EdgeDashing EdgeDelete EdgeDetect EdgeForm EdgeIndex EdgeJoinForm EdgeLabeling EdgeLabels EdgeLabelStyle EdgeList EdgeOpacity EdgeQ EdgeRenderingFunction EdgeRules EdgeShapeFunction EdgeStyle EdgeThickness EdgeWeight EdgeWeightedGraphQ Editable EditButtonSettings EditCellTagsSettings EditDistance EffectiveInterest Eigensystem Eigenvalues EigenvectorCentrality Eigenvectors Element ElementData ElementwiseLayer ElidedForms Eliminate EliminationOrder Ellipsoid EllipticE EllipticExp EllipticExpPrime EllipticF EllipticFilterModel EllipticK EllipticLog EllipticNomeQ EllipticPi EllipticReducedHalfPeriods EllipticTheta EllipticThetaPrime EmbedCode EmbeddedHTML EmbeddedService EmbeddingLayer EmbeddingObject EmitSound EmphasizeSyntaxErrors EmpiricalDistribution Empty EmptyGraphQ EmptyRegion EnableConsolePrintPacket Enabled Encode Encrypt EncryptedObject EncryptFile End EndAdd EndDialogPacket EndFrontEndInteractionPacket EndOfBuffer EndOfFile EndOfLine EndOfString EndPackage EngineEnvironment EngineeringForm Enter EnterExpressionPacket EnterTextPacket Entity EntityClass EntityClassList EntityCopies EntityFunction EntityGroup EntityInstance EntityList EntityPrefetch EntityProperties EntityProperty EntityPropertyClass EntityRegister EntityStore EntityStores EntityTypeName EntityUnregister EntityValue Entropy EntropyFilter Environment Epilog EpilogFunction Equal EqualColumns EqualRows EqualTilde EqualTo EquatedTo Equilibrium EquirippleFilterKernel Equivalent Erf Erfc Erfi ErlangB ErlangC ErlangDistribution Erosion ErrorBox ErrorBoxOptions ErrorNorm ErrorPacket ErrorsDialogSettings EscapeRadius EstimatedBackground EstimatedDistribution EstimatedProcess EstimatorGains EstimatorRegulator EuclideanDistance EulerAngles EulerCharacteristic EulerE EulerGamma EulerianGraphQ EulerMatrix EulerPhi Evaluatable Evaluate Evaluated EvaluatePacket EvaluateScheduledTask EvaluationBox EvaluationCell EvaluationCompletionAction EvaluationData EvaluationElements EvaluationEnvironment EvaluationMode EvaluationMonitor EvaluationNotebook EvaluationObject EvaluationOrder Evaluator EvaluatorNames EvenQ EventData EventEvaluator EventHandler EventHandlerTag EventLabels EventSeries ExactBlackmanWindow ExactNumberQ ExactRootIsolation ExampleData Except ExcludedForms ExcludedLines ExcludedPhysicalQuantities ExcludePods Exclusions ExclusionsStyle Exists Exit ExitDialog ExoplanetData Exp Expand ExpandAll ExpandDenominator ExpandFileName ExpandNumerator Expectation ExpectationE ExpectedValue ExpGammaDistribution ExpIntegralE ExpIntegralEi ExpirationDate Exponent ExponentFunction ExponentialDistribution ExponentialFamily ExponentialGeneratingFunction ExponentialMovingAverage ExponentialPowerDistribution ExponentPosition ExponentStep Export ExportAutoReplacements ExportByteArray ExportForm ExportPacket ExportString Expression ExpressionCell ExpressionPacket ExpressionUUID ExpToTrig ExtendedEntityClass ExtendedGCD Extension ExtentElementFunction ExtentMarkers ExtentSize ExternalBundle ExternalCall ExternalDataCharacterEncoding ExternalEvaluate ExternalFunction ExternalFunctionName ExternalObject ExternalOptions ExternalSessionObject ExternalSessions ExternalTypeSignature ExternalValue Extract ExtractArchive ExtractLayer ExtremeValueDistributionFaceForm FaceGrids FaceGridsStyle FacialFeatures Factor FactorComplete Factorial Factorial2 FactorialMoment FactorialMomentGeneratingFunction FactorialPower FactorInteger FactorList FactorSquareFree FactorSquareFreeList FactorTerms FactorTermsList Fail Failure FailureAction FailureDistribution FailureQ False FareySequence FARIMAProcess FeatureDistance FeatureExtract FeatureExtraction FeatureExtractor FeatureExtractorFunction FeatureNames FeatureNearest FeatureSpacePlot FeatureSpacePlot3D FeatureTypes FEDisableConsolePrintPacket FeedbackLinearize FeedbackSector FeedbackSectorStyle FeedbackType FEEnableConsolePrintPacket FetalGrowthData Fibonacci Fibonorial FieldCompletionFunction FieldHint FieldHintStyle FieldMasked FieldSize File FileBaseName FileByteCount FileConvert FileDate FileExistsQ FileExtension FileFormat FileHandler FileHash FileInformation FileName FileNameDepth FileNameDialogSettings FileNameDrop FileNameForms FileNameJoin FileNames FileNameSetter FileNameSplit FileNameTake FilePrint FileSize FileSystemMap FileSystemScan FileTemplate FileTemplateApply FileType FilledCurve FilledCurveBox FilledCurveBoxOptions Filling FillingStyle FillingTransform FilteredEntityClass FilterRules FinancialBond FinancialData FinancialDerivative FinancialIndicator Find FindAnomalies FindArgMax FindArgMin FindChannels FindClique FindClusters FindCookies FindCurvePath FindCycle FindDevices FindDistribution FindDistributionParameters FindDivisions FindEdgeCover FindEdgeCut FindEdgeIndependentPaths FindEquationalProof FindEulerianCycle FindExternalEvaluators FindFaces FindFile FindFit FindFormula FindFundamentalCycles FindGeneratingFunction FindGeoLocation FindGeometricConjectures FindGeometricTransform FindGraphCommunities FindGraphIsomorphism FindGraphPartition FindHamiltonianCycle FindHamiltonianPath FindHiddenMarkovStates FindIndependentEdgeSet FindIndependentVertexSet FindInstance FindIntegerNullVector FindKClan FindKClique FindKClub FindKPlex FindLibrary FindLinearRecurrence FindList FindMatchingColor FindMaximum FindMaximumFlow FindMaxValue FindMeshDefects FindMinimum FindMinimumCostFlow FindMinimumCut FindMinValue FindMoleculeSubstructure FindPath FindPeaks FindPermutation FindPostmanTour FindProcessParameters FindRepeat FindRoot FindSequenceFunction FindSettings FindShortestPath FindShortestTour FindSpanningTree FindSystemModelEquilibrium FindTextualAnswer FindThreshold FindTransientRepeat FindVertexCover FindVertexCut FindVertexIndependentPaths Fine FinishDynamic FiniteAbelianGroupCount FiniteGroupCount FiniteGroupData First FirstCase FirstPassageTimeDistribution FirstPosition FischerGroupFi22 FischerGroupFi23 FischerGroupFi24Prime FisherHypergeometricDistribution FisherRatioTest FisherZDistribution Fit FitAll FitRegularization FittedModel FixedOrder FixedPoint FixedPointList FlashSelection Flat Flatten FlattenAt FlattenLayer FlatTopWindow FlipView Floor FlowPolynomial FlushPrintOutputPacket Fold FoldList FoldPair FoldPairList FollowRedirects Font FontColor FontFamily FontForm FontName FontOpacity FontPostScriptName FontProperties FontReencoding FontSize FontSlant FontSubstitutions FontTracking FontVariations FontWeight For ForAll Format FormatRules FormatType FormatTypeAutoConvert FormatValues FormBox FormBoxOptions FormControl FormFunction FormLayoutFunction FormObject FormPage FormTheme FormulaData FormulaLookup FortranForm Forward ForwardBackward Fourier FourierCoefficient FourierCosCoefficient FourierCosSeries FourierCosTransform FourierDCT FourierDCTFilter FourierDCTMatrix FourierDST FourierDSTMatrix FourierMatrix FourierParameters FourierSequenceTransform FourierSeries FourierSinCoefficient FourierSinSeries FourierSinTransform FourierTransform FourierTrigSeries FractionalBrownianMotionProcess FractionalGaussianNoiseProcess FractionalPart FractionBox FractionBoxOptions FractionLine Frame FrameBox FrameBoxOptions Framed FrameInset FrameLabel Frameless FrameMargins FrameRate FrameStyle FrameTicks FrameTicksStyle FRatioDistribution FrechetDistribution FreeQ FrenetSerretSystem FrequencySamplingFilterKernel FresnelC FresnelF FresnelG FresnelS Friday FrobeniusNumber FrobeniusSolve FromAbsoluteTime FromCharacterCode FromCoefficientRules FromContinuedFraction FromDate FromDigits FromDMS FromEntity FromJulianDate FromLetterNumber FromPolarCoordinates FromRomanNumeral FromSphericalCoordinates FromUnixTime Front FrontEndDynamicExpression FrontEndEventActions FrontEndExecute FrontEndObject FrontEndResource FrontEndResourceString FrontEndStackSize FrontEndToken FrontEndTokenExecute FrontEndValueCache FrontEndVersion FrontFaceColor FrontFaceOpacity Full FullAxes FullDefinition FullForm FullGraphics FullInformationOutputRegulator FullOptions FullRegion FullSimplify Function FunctionCompile FunctionCompileExport FunctionCompileExportByteArray FunctionCompileExportLibrary FunctionCompileExportString FunctionDomain FunctionExpand FunctionInterpolation FunctionPeriod FunctionRange FunctionSpace FussellVeselyImportanceGaborFilter GaborMatrix GaborWavelet GainMargins GainPhaseMargins GalaxyData GalleryView Gamma GammaDistribution GammaRegularized GapPenalty GARCHProcess GatedRecurrentLayer Gather GatherBy GaugeFaceElementFunction GaugeFaceStyle GaugeFrameElementFunction GaugeFrameSize GaugeFrameStyle GaugeLabels GaugeMarkers GaugeStyle GaussianFilter GaussianIntegers GaussianMatrix GaussianOrthogonalMatrixDistribution GaussianSymplecticMatrixDistribution GaussianUnitaryMatrixDistribution GaussianWindow GCD GegenbauerC General GeneralizedLinearModelFit GenerateAsymmetricKeyPair GenerateConditions GeneratedCell GeneratedDocumentBinding GenerateDerivedKey GenerateDigitalSignature GenerateDocument GeneratedParameters GeneratedQuantityMagnitudes GenerateHTTPResponse GenerateSecuredAuthenticationKey GenerateSymmetricKey GeneratingFunction GeneratorDescription GeneratorHistoryLength GeneratorOutputType Generic GenericCylindricalDecomposition GenomeData GenomeLookup GeoAntipode GeoArea GeoArraySize GeoBackground GeoBoundingBox GeoBounds GeoBoundsRegion GeoBubbleChart GeoCenter GeoCircle GeodesicClosing GeodesicDilation GeodesicErosion GeodesicOpening GeoDestination GeodesyData GeoDirection GeoDisk GeoDisplacement GeoDistance GeoDistanceList GeoElevationData GeoEntities GeoGraphics GeogravityModelData GeoGridDirectionDifference GeoGridLines GeoGridLinesStyle GeoGridPosition GeoGridRange GeoGridRangePadding GeoGridUnitArea GeoGridUnitDistance GeoGridVector GeoGroup GeoHemisphere GeoHemisphereBoundary GeoHistogram GeoIdentify GeoImage GeoLabels GeoLength GeoListPlot GeoLocation GeologicalPeriodData GeomagneticModelData GeoMarker GeometricAssertion GeometricBrownianMotionProcess GeometricDistribution GeometricMean GeometricMeanFilter GeometricScene GeometricTransformation GeometricTransformation3DBox GeometricTransformation3DBoxOptions GeometricTransformationBox GeometricTransformationBoxOptions GeoModel GeoNearest GeoPath GeoPosition GeoPositionENU GeoPositionXYZ GeoProjection GeoProjectionData GeoRange GeoRangePadding GeoRegionValuePlot GeoResolution GeoScaleBar GeoServer GeoSmoothHistogram GeoStreamPlot GeoStyling GeoStylingImageFunction GeoVariant GeoVector GeoVectorENU GeoVectorPlot GeoVectorXYZ GeoVisibleRegion GeoVisibleRegionBoundary GeoWithinQ GeoZoomLevel GestureHandler GestureHandlerTag Get GetBoundingBoxSizePacket GetContext GetEnvironment GetFileName GetFrontEndOptionsDataPacket GetLinebreakInformationPacket GetMenusPacket GetPageBreakInformationPacket Glaisher GlobalClusteringCoefficient GlobalPreferences GlobalSession Glow GoldenAngle GoldenRatio GompertzMakehamDistribution GoodmanKruskalGamma GoodmanKruskalGammaTest Goto Grad Gradient GradientFilter GradientOrientationFilter GrammarApply GrammarRules GrammarToken Graph Graph3D GraphAssortativity GraphAutomorphismGroup GraphCenter GraphComplement GraphData GraphDensity GraphDiameter GraphDifference GraphDisjointUnion GraphDistance GraphDistanceMatrix GraphElementData GraphEmbedding GraphHighlight GraphHighlightStyle GraphHub Graphics Graphics3D Graphics3DBox Graphics3DBoxOptions GraphicsArray GraphicsBaseline GraphicsBox GraphicsBoxOptions GraphicsColor GraphicsColumn GraphicsComplex GraphicsComplex3DBox GraphicsComplex3DBoxOptions GraphicsComplexBox GraphicsComplexBoxOptions GraphicsContents GraphicsData GraphicsGrid GraphicsGridBox GraphicsGroup GraphicsGroup3DBox GraphicsGroup3DBoxOptions GraphicsGroupBox GraphicsGroupBoxOptions GraphicsGrouping GraphicsHighlightColor GraphicsRow GraphicsSpacing GraphicsStyle GraphIntersection GraphLayout GraphLinkEfficiency GraphPeriphery GraphPlot GraphPlot3D GraphPower GraphPropertyDistribution GraphQ GraphRadius GraphReciprocity GraphRoot GraphStyle GraphUnion Gray GrayLevel Greater GreaterEqual GreaterEqualLess GreaterEqualThan GreaterFullEqual GreaterGreater GreaterLess GreaterSlantEqual GreaterThan GreaterTilde Green GreenFunction Grid GridBaseline GridBox GridBoxAlignment GridBoxBackground GridBoxDividers GridBoxFrame GridBoxItemSize GridBoxItemStyle GridBoxOptions GridBoxSpacings GridCreationSettings GridDefaultElement GridElementStyleOptions GridFrame GridFrameMargins GridGraph GridLines GridLinesStyle GroebnerBasis GroupActionBase GroupBy GroupCentralizer GroupElementFromWord GroupElementPosition GroupElementQ GroupElements GroupElementToWord GroupGenerators Groupings GroupMultiplicationTable GroupOrbits GroupOrder GroupPageBreakWithin GroupSetwiseStabilizer GroupStabilizer GroupStabilizerChain GroupTogetherGrouping GroupTogetherNestedGrouping GrowCutComponents Gudermannian GuidedFilter GumbelDistributionHaarWavelet HadamardMatrix HalfLine HalfNormalDistribution HalfPlane HalfSpace HamiltonianGraphQ HammingDistance HammingWindow HandlerFunctions HandlerFunctionsKeys HankelH1 HankelH2 HankelMatrix HankelTransform HannPoissonWindow HannWindow HaradaNortonGroupHN HararyGraph HarmonicMean HarmonicMeanFilter HarmonicNumber Hash Haversine HazardFunction Head HeadCompose HeaderLines Heads HeavisideLambda HeavisidePi HeavisideTheta HeldGroupHe HeldPart HelpBrowserLookup HelpBrowserNotebook HelpBrowserSettings Here HermiteDecomposition HermiteH HermitianMatrixQ HessenbergDecomposition Hessian HexadecimalCharacter Hexahedron HexahedronBox HexahedronBoxOptions HiddenMarkovProcess HiddenSurface Highlighted HighlightGraph HighlightImage HighlightMesh HighpassFilter HigmanSimsGroupHS HilbertCurve HilbertFilter HilbertMatrix Histogram Histogram3D HistogramDistribution HistogramList HistogramTransform HistogramTransformInterpolation HistoricalPeriodData HitMissTransform HITSCentrality HjorthDistribution HodgeDual HoeffdingD HoeffdingDTest Hold HoldAll HoldAllComplete HoldComplete HoldFirst HoldForm HoldPattern HoldRest HolidayCalendar HomeDirectory HomePage Horizontal HorizontalForm HorizontalGauge HorizontalScrollPosition HornerForm HostLookup HotellingTSquareDistribution HoytDistribution HTMLSave HTTPErrorResponse HTTPRedirect HTTPRequest HTTPRequestData HTTPResponse Hue HumanGrowthData HumpDownHump HumpEqual HurwitzLerchPhi HurwitzZeta HyperbolicDistribution HypercubeGraph HyperexponentialDistribution Hyperfactorial Hypergeometric0F1 Hypergeometric0F1Regularized Hypergeometric1F1 Hypergeometric1F1Regularized Hypergeometric2F1 Hypergeometric2F1Regularized HypergeometricDistribution HypergeometricPFQ HypergeometricPFQRegularized HypergeometricU Hyperlink HyperlinkCreationSettings Hyperplane Hyphenation HyphenationOptions HypoexponentialDistribution HypothesisTestDataI IconData Iconize IconizedObject IconRules Icosahedron Identity IdentityMatrix If IgnoreCase IgnoreDiacritics IgnorePunctuation IgnoreSpellCheck IgnoringInactive Im Image Image3D Image3DProjection Image3DSlices ImageAccumulate ImageAdd ImageAdjust ImageAlign ImageApply ImageApplyIndexed ImageAspectRatio ImageAssemble ImageAugmentationLayer ImageBoundingBoxes ImageCache ImageCacheValid ImageCapture ImageCaptureFunction ImageCases ImageChannels ImageClip ImageCollage ImageColorSpace ImageCompose ImageContainsQ ImageContents ImageConvolve ImageCooccurrence ImageCorners ImageCorrelate ImageCorrespondingPoints ImageCrop ImageData ImageDeconvolve ImageDemosaic ImageDifference ImageDimensions ImageDisplacements ImageDistance ImageEffect ImageExposureCombine ImageFeatureTrack ImageFileApply ImageFileFilter ImageFileScan ImageFilter ImageFocusCombine ImageForestingComponents ImageFormattingWidth ImageForwardTransformation ImageGraphics ImageHistogram ImageIdentify ImageInstanceQ ImageKeypoints ImageLevels ImageLines ImageMargins ImageMarker ImageMarkers ImageMeasurements ImageMesh ImageMultiply ImageOffset ImagePad ImagePadding ImagePartition ImagePeriodogram ImagePerspectiveTransformation ImagePosition ImagePreviewFunction ImagePyramid ImagePyramidApply ImageQ ImageRangeCache ImageRecolor ImageReflect ImageRegion ImageResize ImageResolution ImageRestyle ImageRotate ImageRotated ImageSaliencyFilter ImageScaled ImageScan ImageSize ImageSizeAction ImageSizeCache ImageSizeMultipliers ImageSizeRaw ImageSubtract ImageTake ImageTransformation ImageTrim ImageType ImageValue ImageValuePositions ImagingDevice ImplicitRegion Implies Import ImportAutoReplacements ImportByteArray ImportOptions ImportString ImprovementImportance In Inactivate Inactive IncidenceGraph IncidenceList IncidenceMatrix IncludeAromaticBonds IncludeConstantBasis IncludeDefinitions IncludeDirectories IncludeFileExtension IncludeGeneratorTasks IncludeHydrogens IncludeInflections IncludeMetaInformation IncludePods IncludeQuantities IncludeRelatedTables IncludeSingularTerm IncludeWindowTimes Increment IndefiniteMatrixQ Indent IndentingNewlineSpacings IndentMaxFraction IndependenceTest IndependentEdgeSetQ IndependentPhysicalQuantity IndependentUnit IndependentUnitDimension IndependentVertexSetQ Indeterminate IndeterminateThreshold IndexCreationOptions Indexed IndexGraph IndexTag Inequality InexactNumberQ InexactNumbers InfiniteLine InfinitePlane Infinity Infix InflationAdjust InflationMethod Information InformationData InformationDataGrid Inherited InheritScope InhomogeneousPoissonProcess InitialEvaluationHistory Initialization InitializationCell InitializationCellEvaluation InitializationCellWarning InitializationObjects InitializationValue Initialize InitialSeeding InlineCounterAssignments InlineCounterIncrements InlineRules Inner InnerPolygon InnerPolyhedron Inpaint Input InputAliases InputAssumptions InputAutoReplacements InputField InputFieldBox InputFieldBoxOptions InputForm InputGrouping InputNamePacket InputNotebook InputPacket InputSettings InputStream InputString InputStringPacket InputToBoxFormPacket Insert InsertionFunction InsertionPointObject InsertLinebreaks InsertResults Inset Inset3DBox Inset3DBoxOptions InsetBox InsetBoxOptions Insphere Install InstallService InstanceNormalizationLayer InString Integer IntegerDigits IntegerExponent IntegerLength IntegerName IntegerPart IntegerPartitions IntegerQ IntegerReverse Integers IntegerString Integral Integrate Interactive InteractiveTradingChart Interlaced Interleaving InternallyBalancedDecomposition InterpolatingFunction InterpolatingPolynomial Interpolation InterpolationOrder InterpolationPoints InterpolationPrecision Interpretation InterpretationBox InterpretationBoxOptions InterpretationFunction Interpreter InterpretTemplate InterquartileRange Interrupt InterruptSettings IntersectingQ Intersection Interval IntervalIntersection IntervalMarkers IntervalMarkersStyle IntervalMemberQ IntervalSlider IntervalUnion Into Inverse InverseBetaRegularized InverseCDF InverseChiSquareDistribution InverseContinuousWaveletTransform InverseDistanceTransform InverseEllipticNomeQ InverseErf InverseErfc InverseFourier InverseFourierCosTransform InverseFourierSequenceTransform InverseFourierSinTransform InverseFourierTransform InverseFunction InverseFunctions InverseGammaDistribution InverseGammaRegularized InverseGaussianDistribution InverseGudermannian InverseHankelTransform InverseHaversine InverseImagePyramid InverseJacobiCD InverseJacobiCN InverseJacobiCS InverseJacobiDC InverseJacobiDN InverseJacobiDS InverseJacobiNC InverseJacobiND InverseJacobiNS InverseJacobiSC InverseJacobiSD InverseJacobiSN InverseLaplaceTransform InverseMellinTransform InversePermutation InverseRadon InverseRadonTransform InverseSeries InverseShortTimeFourier InverseSpectrogram InverseSurvivalFunction InverseTransformedRegion InverseWaveletTransform InverseWeierstrassP InverseWishartMatrixDistribution InverseZTransform Invisible InvisibleApplication InvisibleTimes IPAddress IrreduciblePolynomialQ IslandData IsolatingInterval IsomorphicGraphQ IsotopeData Italic Item ItemAspectRatio ItemBox ItemBoxOptions ItemSize ItemStyle ItoProcessJaccardDissimilarity JacobiAmplitude Jacobian JacobiCD JacobiCN JacobiCS JacobiDC JacobiDN JacobiDS JacobiNC JacobiND JacobiNS JacobiP JacobiSC JacobiSD JacobiSN JacobiSymbol JacobiZeta JankoGroupJ1 JankoGroupJ2 JankoGroupJ3 JankoGroupJ4 JarqueBeraALMTest JohnsonDistribution Join JoinAcross Joined JoinedCurve JoinedCurveBox JoinedCurveBoxOptions JoinForm JordanDecomposition JordanModelDecomposition JulianDate JuliaSetBoettcher JuliaSetIterationCount JuliaSetPlot JuliaSetPointsK KagiChart KaiserBesselWindow KaiserWindow KalmanEstimator KalmanFilter KarhunenLoeveDecomposition KaryTree KatzCentrality KCoreComponents KDistribution KEdgeConnectedComponents KEdgeConnectedGraphQ KelvinBei KelvinBer KelvinKei KelvinKer KendallTau KendallTauTest KernelExecute KernelFunction KernelMixtureDistribution Kernels Ket Key KeyCollisionFunction KeyComplement KeyDrop KeyDropFrom KeyExistsQ KeyFreeQ KeyIntersection KeyMap KeyMemberQ KeypointStrength Keys KeySelect KeySort KeySortBy KeyTake KeyUnion KeyValueMap KeyValuePattern Khinchin KillProcess KirchhoffGraph KirchhoffMatrix KleinInvariantJ KnapsackSolve KnightTourGraph KnotData KnownUnitQ KochCurve KolmogorovSmirnovTest KroneckerDelta KroneckerModelDecomposition KroneckerProduct KroneckerSymbol KuiperTest KumaraswamyDistribution Kurtosis KuwaharaFilter KVertexConnectedComponents KVertexConnectedGraphQLABColor Label Labeled LabeledSlider LabelingFunction LabelingSize LabelStyle LabelVisibility LaguerreL LakeData LambdaComponents LambertW LaminaData LanczosWindow LandauDistribution Language LanguageCategory LanguageData LanguageIdentify LanguageOptions LaplaceDistribution LaplaceTransform Laplacian LaplacianFilter LaplacianGaussianFilter Large Larger Last Latitude LatitudeLongitude LatticeData LatticeReduce Launch LaunchKernels LayeredGraphPlot LayerSizeFunction LayoutInformation LCHColor LCM LeaderSize LeafCount LeapYearQ LearnDistribution LearnedDistribution LearningRate LearningRateMultipliers LeastSquares LeastSquaresFilterKernel Left LeftArrow LeftArrowBar LeftArrowRightArrow LeftDownTeeVector LeftDownVector LeftDownVectorBar LeftRightArrow LeftRightVector LeftTee LeftTeeArrow LeftTeeVector LeftTriangle LeftTriangleBar LeftTriangleEqual LeftUpDownVector LeftUpTeeVector LeftUpVector LeftUpVectorBar LeftVector LeftVectorBar LegendAppearance Legended LegendFunction LegendLabel LegendLayout LegendMargins LegendMarkers LegendMarkerSize LegendreP LegendreQ LegendreType Length LengthWhile LerchPhi Less LessEqual LessEqualGreater LessEqualThan LessFullEqual LessGreater LessLess LessSlantEqual LessThan LessTilde LetterCharacter LetterCounts LetterNumber LetterQ Level LeveneTest LeviCivitaTensor LevyDistribution Lexicographic LibraryDataType LibraryFunction LibraryFunctionError LibraryFunctionInformation LibraryFunctionLoad LibraryFunctionUnload LibraryLoad LibraryUnload LicenseID LiftingFilterData LiftingWaveletTransform LightBlue LightBrown LightCyan Lighter LightGray LightGreen Lighting LightingAngle LightMagenta LightOrange LightPink LightPurple LightRed LightSources LightYellow Likelihood Limit LimitsPositioning LimitsPositioningTokens LindleyDistribution Line Line3DBox Line3DBoxOptions LinearFilter LinearFractionalOptimization LinearFractionalTransform LinearGradientImage LinearizingTransformationData LinearLayer LinearModelFit LinearOffsetFunction LinearOptimization LinearProgramming LinearRecurrence LinearSolve LinearSolveFunction LineBox LineBoxOptions LineBreak LinebreakAdjustments LineBreakChart LinebreakSemicolonWeighting LineBreakWithin LineColor LineGraph LineIndent LineIndentMaxFraction LineIntegralConvolutionPlot LineIntegralConvolutionScale LineLegend LineOpacity LineSpacing LineWrapParts LinkActivate LinkClose LinkConnect LinkConnectedQ LinkCreate LinkError LinkFlush LinkFunction LinkHost LinkInterrupt LinkLaunch LinkMode LinkObject LinkOpen LinkOptions LinkPatterns LinkProtocol LinkRankCentrality LinkRead LinkReadHeld LinkReadyQ Links LinkService LinkWrite LinkWriteHeld LiouvilleLambda List Listable ListAnimate ListContourPlot ListContourPlot3D ListConvolve ListCorrelate ListCurvePathPlot ListDeconvolve ListDensityPlot ListDensityPlot3D Listen ListFormat ListFourierSequenceTransform ListInterpolation ListLineIntegralConvolutionPlot ListLinePlot ListLogLinearPlot ListLogLogPlot ListLogPlot ListPicker ListPickerBox ListPickerBoxBackground ListPickerBoxOptions ListPlay ListPlot ListPlot3D ListPointPlot3D ListPolarPlot ListQ ListSliceContourPlot3D ListSliceDensityPlot3D ListSliceVectorPlot3D ListStepPlot ListStreamDensityPlot ListStreamPlot ListSurfacePlot3D ListVectorDensityPlot ListVectorPlot ListVectorPlot3D ListZTransform Literal LiteralSearch LocalAdaptiveBinarize LocalCache LocalClusteringCoefficient LocalizeDefinitions LocalizeVariables LocalObject LocalObjects LocalResponseNormalizationLayer LocalSubmit LocalSymbol LocalTime LocalTimeZone LocationEquivalenceTest LocationTest Locator LocatorAutoCreate LocatorBox LocatorBoxOptions LocatorCentering LocatorPane LocatorPaneBox LocatorPaneBoxOptions LocatorRegion Locked Log Log10 Log2 LogBarnesG LogGamma LogGammaDistribution LogicalExpand LogIntegral LogisticDistribution LogisticSigmoid LogitModelFit LogLikelihood LogLinearPlot LogLogisticDistribution LogLogPlot LogMultinormalDistribution LogNormalDistribution LogPlot LogRankTest LogSeriesDistribution LongEqual Longest LongestCommonSequence LongestCommonSequencePositions LongestCommonSubsequence LongestCommonSubsequencePositions LongestMatch LongestOrderedSequence LongForm Longitude LongLeftArrow LongLeftRightArrow LongRightArrow LongShortTermMemoryLayer Lookup Loopback LoopFreeGraphQ LossFunction LowerCaseQ LowerLeftArrow LowerRightArrow LowerTriangularize LowerTriangularMatrixQ LowpassFilter LQEstimatorGains LQGRegulator LQOutputRegulatorGains LQRegulatorGains LUBackSubstitution LucasL LuccioSamiComponents LUDecomposition LunarEclipse LUVColor LyapunovSolve LyonsGroupLyMachineID MachineName MachineNumberQ MachinePrecision MacintoshSystemPageSetup Magenta Magnification Magnify MailAddressValidation MailExecute MailFolder MailItem MailReceiverFunction MailResponseFunction MailSearch MailServerConnect MailServerConnection MailSettings MainSolve MaintainDynamicCaches Majority MakeBoxes MakeExpression MakeRules ManagedLibraryExpressionID ManagedLibraryExpressionQ MandelbrotSetBoettcher MandelbrotSetDistance MandelbrotSetIterationCount MandelbrotSetMemberQ MandelbrotSetPlot MangoldtLambda ManhattanDistance Manipulate Manipulator MannedSpaceMissionData MannWhitneyTest MantissaExponent Manual Map MapAll MapAt MapIndexed MAProcess MapThread MarchenkoPasturDistribution MarcumQ MardiaCombinedTest MardiaKurtosisTest MardiaSkewnessTest MarginalDistribution MarkovProcessProperties Masking MatchingDissimilarity MatchLocalNameQ MatchLocalNames MatchQ Material MathematicalFunctionData MathematicaNotation MathieuC MathieuCharacteristicA MathieuCharacteristicB MathieuCharacteristicExponent MathieuCPrime MathieuGroupM11 MathieuGroupM12 MathieuGroupM22 MathieuGroupM23 MathieuGroupM24 MathieuS MathieuSPrime MathMLForm MathMLText Matrices MatrixExp MatrixForm MatrixFunction MatrixLog MatrixNormalDistribution MatrixPlot MatrixPower MatrixPropertyDistribution MatrixQ MatrixRank MatrixTDistribution Max MaxBend MaxCellMeasure MaxColorDistance MaxDetect MaxDuration MaxExtraBandwidths MaxExtraConditions MaxFeatureDisplacement MaxFeatures MaxFilter MaximalBy Maximize MaxItems MaxIterations MaxLimit MaxMemoryUsed MaxMixtureKernels MaxOverlapFraction MaxPlotPoints MaxPoints MaxRecursion MaxStableDistribution MaxStepFraction MaxSteps MaxStepSize MaxTrainingRounds MaxValue MaxwellDistribution MaxWordGap McLaughlinGroupMcL Mean MeanAbsoluteLossLayer MeanAround MeanClusteringCoefficient MeanDegreeConnectivity MeanDeviation MeanFilter MeanGraphDistance MeanNeighborDegree MeanShift MeanShiftFilter MeanSquaredLossLayer Median MedianDeviation MedianFilter MedicalTestData Medium MeijerG MeijerGReduce MeixnerDistribution MellinConvolve MellinTransform MemberQ MemoryAvailable MemoryConstrained MemoryConstraint MemoryInUse MengerMesh Menu MenuAppearance MenuCommandKey MenuEvaluator MenuItem MenuList MenuPacket MenuSortingValue MenuStyle MenuView Merge MergeDifferences MergingFunction MersennePrimeExponent MersennePrimeExponentQ Mesh MeshCellCentroid MeshCellCount MeshCellHighlight MeshCellIndex MeshCellLabel MeshCellMarker MeshCellMeasure MeshCellQuality MeshCells MeshCellShapeFunction MeshCellStyle MeshCoordinates MeshFunctions MeshPrimitives MeshQualityGoal MeshRange MeshRefinementFunction MeshRegion MeshRegionQ MeshShading MeshStyle Message MessageDialog MessageList MessageName MessageObject MessageOptions MessagePacket Messages MessagesNotebook MetaCharacters MetaInformation MeteorShowerData Method MethodOptions MexicanHatWavelet MeyerWavelet Midpoint Min MinColorDistance MinDetect MineralData MinFilter MinimalBy MinimalPolynomial MinimalStateSpaceModel Minimize MinimumTimeIncrement MinIntervalSize MinkowskiQuestionMark MinLimit MinMax MinorPlanetData Minors MinRecursion MinSize MinStableDistribution Minus MinusPlus MinValue Missing MissingBehavior MissingDataMethod MissingDataRules MissingQ MissingString MissingStyle MissingValuePattern MittagLefflerE MixedFractionParts MixedGraphQ MixedMagnitude MixedRadix MixedRadixQuantity MixedUnit MixtureDistribution Mod Modal Mode Modular ModularInverse ModularLambda Module Modulus MoebiusMu Molecule MoleculeContainsQ MoleculeEquivalentQ MoleculeGraph MoleculeModify MoleculePattern MoleculePlot MoleculePlot3D MoleculeProperty MoleculeQ MoleculeValue Moment Momentary MomentConvert MomentEvaluate MomentGeneratingFunction MomentOfInertia Monday Monitor MonomialList MonomialOrder MonsterGroupM MoonPhase MoonPosition MorletWavelet MorphologicalBinarize MorphologicalBranchPoints MorphologicalComponents MorphologicalEulerNumber MorphologicalGraph MorphologicalPerimeter MorphologicalTransform MortalityData Most MountainData MouseAnnotation MouseAppearance MouseAppearanceTag MouseButtons Mouseover MousePointerNote MousePosition MovieData MovingAverage MovingMap MovingMedian MoyalDistribution Multicolumn MultiedgeStyle MultigraphQ MultilaunchWarning MultiLetterItalics MultiLetterStyle MultilineFunction Multinomial MultinomialDistribution MultinormalDistribution MultiplicativeOrder Multiplicity MultiplySides Multiselection MultivariateHypergeometricDistribution MultivariatePoissonDistribution MultivariateTDistributionN NakagamiDistribution NameQ Names NamespaceBox NamespaceBoxOptions Nand NArgMax NArgMin NBernoulliB NBodySimulation NBodySimulationData NCache NDEigensystem NDEigenvalues NDSolve NDSolveValue Nearest NearestFunction NearestNeighborGraph NearestTo NebulaData NeedCurrentFrontEndPackagePacket NeedCurrentFrontEndSymbolsPacket NeedlemanWunschSimilarity Needs Negative NegativeBinomialDistribution NegativeDefiniteMatrixQ NegativeIntegers NegativeMultinomialDistribution NegativeRationals NegativeReals NegativeSemidefiniteMatrixQ NeighborhoodData NeighborhoodGraph Nest NestedGreaterGreater NestedLessLess NestedScriptRules NestGraph NestList NestWhile NestWhileList NetAppend NetBidirectionalOperator NetChain NetDecoder NetDelete NetDrop NetEncoder NetEvaluationMode NetExtract NetFlatten NetFoldOperator NetGraph NetInformation NetInitialize NetInsert NetInsertSharedArrays NetJoin NetMapOperator NetMapThreadOperator NetMeasurements NetModel NetNestOperator NetPairEmbeddingOperator NetPort NetPortGradient NetPrepend NetRename NetReplace NetReplacePart NetSharedArray NetStateObject NetTake NetTrain NetTrainResultsObject NetworkPacketCapture NetworkPacketRecording NetworkPacketRecordingDuring NetworkPacketTrace NeumannValue NevilleThetaC NevilleThetaD NevilleThetaN NevilleThetaS NewPrimitiveStyle NExpectation Next NextCell NextDate NextPrime NextScheduledTaskTime NHoldAll NHoldFirst NHoldRest NicholsGridLines NicholsPlot NightHemisphere NIntegrate NMaximize NMaxValue NMinimize NMinValue NominalVariables NonAssociative NoncentralBetaDistribution NoncentralChiSquareDistribution NoncentralFRatioDistribution NoncentralStudentTDistribution NonCommutativeMultiply NonConstants NondimensionalizationTransform None NoneTrue NonlinearModelFit NonlinearStateSpaceModel NonlocalMeansFilter NonNegative NonNegativeIntegers NonNegativeRationals NonNegativeReals NonPositive NonPositiveIntegers NonPositiveRationals NonPositiveReals Nor NorlundB Norm Normal NormalDistribution NormalGrouping NormalizationLayer Normalize Normalized NormalizedSquaredEuclideanDistance NormalMatrixQ NormalsFunction NormFunction Not NotCongruent NotCupCap NotDoubleVerticalBar Notebook NotebookApply NotebookAutoSave NotebookClose NotebookConvertSettings NotebookCreate NotebookCreateReturnObject NotebookDefault NotebookDelete NotebookDirectory NotebookDynamicExpression NotebookEvaluate NotebookEventActions NotebookFileName NotebookFind NotebookFindReturnObject NotebookGet NotebookGetLayoutInformationPacket NotebookGetMisspellingsPacket NotebookImport NotebookInformation NotebookInterfaceObject NotebookLocate NotebookObject NotebookOpen NotebookOpenReturnObject NotebookPath NotebookPrint NotebookPut NotebookPutReturnObject NotebookRead NotebookResetGeneratedCells Notebooks NotebookSave NotebookSaveAs NotebookSelection NotebookSetupLayoutInformationPacket NotebooksMenu NotebookTemplate NotebookWrite NotElement NotEqualTilde NotExists NotGreater NotGreaterEqual NotGreaterFullEqual NotGreaterGreater NotGreaterLess NotGreaterSlantEqual NotGreaterTilde Nothing NotHumpDownHump NotHumpEqual NotificationFunction NotLeftTriangle NotLeftTriangleBar NotLeftTriangleEqual NotLess NotLessEqual NotLessFullEqual NotLessGreater NotLessLess NotLessSlantEqual NotLessTilde NotNestedGreaterGreater NotNestedLessLess NotPrecedes NotPrecedesEqual NotPrecedesSlantEqual NotPrecedesTilde NotReverseElement NotRightTriangle NotRightTriangleBar NotRightTriangleEqual NotSquareSubset NotSquareSubsetEqual NotSquareSuperset NotSquareSupersetEqual NotSubset NotSubsetEqual NotSucceeds NotSucceedsEqual NotSucceedsSlantEqual NotSucceedsTilde NotSuperset NotSupersetEqual NotTilde NotTildeEqual NotTildeFullEqual NotTildeTilde NotVerticalBar Now NoWhitespace NProbability NProduct NProductFactors NRoots NSolve NSum NSumTerms NuclearExplosionData NuclearReactorData Null NullRecords NullSpace NullWords Number NumberCompose NumberDecompose NumberExpand NumberFieldClassNumber NumberFieldDiscriminant NumberFieldFundamentalUnits NumberFieldIntegralBasis NumberFieldNormRepresentatives NumberFieldRegulator NumberFieldRootsOfUnity NumberFieldSignature NumberForm NumberFormat NumberLinePlot NumberMarks NumberMultiplier NumberPadding NumberPoint NumberQ NumberSeparator NumberSigns NumberString Numerator NumeratorDenominator NumericalOrder NumericalSort NumericArray NumericArrayQ NumericArrayType NumericFunction NumericQ NuttallWindow NValues NyquistGridLines NyquistPlotO ObservabilityGramian ObservabilityMatrix ObservableDecomposition ObservableModelQ OceanData Octahedron OddQ Off Offset OLEData On ONanGroupON Once OneIdentity Opacity OpacityFunction OpacityFunctionScaling Open OpenAppend Opener OpenerBox OpenerBoxOptions OpenerView OpenFunctionInspectorPacket Opening OpenRead OpenSpecialOptions OpenTemporary OpenWrite Operate OperatingSystem OptimumFlowData Optional OptionalElement OptionInspectorSettings OptionQ Options OptionsPacket OptionsPattern OptionValue OptionValueBox OptionValueBoxOptions Or Orange Order OrderDistribution OrderedQ Ordering OrderingBy OrderingLayer Orderless OrderlessPatternSequence OrnsteinUhlenbeckProcess Orthogonalize OrthogonalMatrixQ Out Outer OuterPolygon OuterPolyhedron OutputAutoOverwrite OutputControllabilityMatrix OutputControllableModelQ OutputForm OutputFormData OutputGrouping OutputMathEditExpression OutputNamePacket OutputResponse OutputSizeLimit OutputStream Over OverBar OverDot Overflow OverHat Overlaps Overlay OverlayBox OverlayBoxOptions Overscript OverscriptBox OverscriptBoxOptions OverTilde OverVector OverwriteTarget OwenT OwnValuesPackage PackingMethod PaddedForm Padding PaddingLayer PaddingSize PadeApproximant PadLeft PadRight PageBreakAbove PageBreakBelow PageBreakWithin PageFooterLines PageFooters PageHeaderLines PageHeaders PageHeight PageRankCentrality PageTheme PageWidth Pagination PairedBarChart PairedHistogram PairedSmoothHistogram PairedTTest PairedZTest PaletteNotebook PalettePath PalindromeQ Pane PaneBox PaneBoxOptions Panel PanelBox PanelBoxOptions Paneled PaneSelector PaneSelectorBox PaneSelectorBoxOptions PaperWidth ParabolicCylinderD ParagraphIndent ParagraphSpacing ParallelArray ParallelCombine ParallelDo Parallelepiped ParallelEvaluate Parallelization Parallelize ParallelMap ParallelNeeds Parallelogram ParallelProduct ParallelSubmit ParallelSum ParallelTable ParallelTry Parameter ParameterEstimator ParameterMixtureDistribution ParameterVariables ParametricFunction ParametricNDSolve ParametricNDSolveValue ParametricPlot ParametricPlot3D ParametricRegion ParentBox ParentCell ParentConnect ParentDirectory ParentForm Parenthesize ParentList ParentNotebook ParetoDistribution ParetoPickandsDistribution ParkData Part PartBehavior PartialCorrelationFunction PartialD ParticleAcceleratorData ParticleData Partition PartitionGranularity PartitionsP PartitionsQ PartLayer PartOfSpeech PartProtection ParzenWindow PascalDistribution PassEventsDown PassEventsUp Paste PasteAutoQuoteCharacters PasteBoxFormInlineCells PasteButton Path PathGraph PathGraphQ Pattern PatternSequence PatternTest PauliMatrix PaulWavelet Pause PausedTime PDF PeakDetect PeanoCurve PearsonChiSquareTest PearsonCorrelationTest PearsonDistribution PercentForm PerfectNumber PerfectNumberQ PerformanceGoal Perimeter PeriodicBoundaryCondition PeriodicInterpolation Periodogram PeriodogramArray Permanent Permissions PermissionsGroup PermissionsGroupMemberQ PermissionsGroups PermissionsKey PermissionsKeys PermutationCycles PermutationCyclesQ PermutationGroup PermutationLength PermutationList PermutationListQ PermutationMax PermutationMin PermutationOrder PermutationPower PermutationProduct PermutationReplace Permutations PermutationSupport Permute PeronaMalikFilter Perpendicular PerpendicularBisector PersistenceLocation PersistenceTime PersistentObject PersistentObjects PersistentValue PersonData PERTDistribution PetersenGraph PhaseMargins PhaseRange PhysicalSystemData Pi Pick PIDData PIDDerivativeFilter PIDFeedforward PIDTune Piecewise PiecewiseExpand PieChart PieChart3D PillaiTrace PillaiTraceTest PingTime Pink PitchRecognize Pivoting PixelConstrained PixelValue PixelValuePositions Placed Placeholder PlaceholderReplace Plain PlanarAngle PlanarGraph PlanarGraphQ PlanckRadiationLaw PlaneCurveData PlanetaryMoonData PlanetData PlantData Play PlayRange Plot Plot3D Plot3Matrix PlotDivision PlotJoined PlotLabel PlotLabels PlotLayout PlotLegends PlotMarkers PlotPoints PlotRange PlotRangeClipping PlotRangeClipPlanesStyle PlotRangePadding PlotRegion PlotStyle PlotTheme Pluralize Plus PlusMinus Pochhammer PodStates PodWidth Point Point3DBox Point3DBoxOptions PointBox PointBoxOptions PointFigureChart PointLegend PointSize PoissonConsulDistribution PoissonDistribution PoissonProcess PoissonWindow PolarAxes PolarAxesOrigin PolarGridLines PolarPlot PolarTicks PoleZeroMarkers PolyaAeppliDistribution PolyGamma Polygon Polygon3DBox Polygon3DBoxOptions PolygonalNumber PolygonAngle PolygonBox PolygonBoxOptions PolygonCoordinates PolygonDecomposition PolygonHoleScale PolygonIntersections PolygonScale Polyhedron PolyhedronAngle PolyhedronCoordinates PolyhedronData PolyhedronDecomposition PolyhedronGenus PolyLog PolynomialExtendedGCD PolynomialForm PolynomialGCD PolynomialLCM PolynomialMod PolynomialQ PolynomialQuotient PolynomialQuotientRemainder PolynomialReduce PolynomialRemainder Polynomials PoolingLayer PopupMenu PopupMenuBox PopupMenuBoxOptions PopupView PopupWindow Position PositionIndex Positive PositiveDefiniteMatrixQ PositiveIntegers PositiveRationals PositiveReals PositiveSemidefiniteMatrixQ PossibleZeroQ Postfix PostScript Power PowerDistribution PowerExpand PowerMod PowerModList PowerRange PowerSpectralDensity PowersRepresentations PowerSymmetricPolynomial Precedence PrecedenceForm Precedes PrecedesEqual PrecedesSlantEqual PrecedesTilde Precision PrecisionGoal PreDecrement Predict PredictionRoot PredictorFunction PredictorInformation PredictorMeasurements PredictorMeasurementsObject PreemptProtect PreferencesPath Prefix PreIncrement Prepend PrependLayer PrependTo PreprocessingRules PreserveColor PreserveImageOptions Previous PreviousCell PreviousDate PriceGraphDistribution PrimaryPlaceholder Prime PrimeNu PrimeOmega PrimePi PrimePowerQ PrimeQ Primes PrimeZetaP PrimitivePolynomialQ PrimitiveRoot PrimitiveRootList PrincipalComponents PrincipalValue Print PrintableASCIIQ PrintAction PrintForm PrintingCopies PrintingOptions PrintingPageRange PrintingStartingPageNumber PrintingStyleEnvironment Printout3D Printout3DPreviewer PrintPrecision PrintTemporary Prism PrismBox PrismBoxOptions PrivateCellOptions PrivateEvaluationOptions PrivateFontOptions PrivateFrontEndOptions PrivateKey PrivateNotebookOptions PrivatePaths Probability ProbabilityDistribution ProbabilityPlot ProbabilityPr ProbabilityScalePlot ProbitModelFit ProcessConnection ProcessDirectory ProcessEnvironment Processes ProcessEstimator ProcessInformation ProcessObject ProcessParameterAssumptions ProcessParameterQ ProcessStateDomain ProcessStatus ProcessTimeDomain Product ProductDistribution ProductLog ProgressIndicator ProgressIndicatorBox ProgressIndicatorBoxOptions Projection Prolog PromptForm ProofObject Properties Property PropertyList PropertyValue Proportion Proportional Protect Protected ProteinData Pruning PseudoInverse PsychrometricPropertyData PublicKey PublisherID PulsarData PunctuationCharacter Purple Put PutAppend Pyramid PyramidBox PyramidBoxOptionsQBinomial QFactorial QGamma QHypergeometricPFQ QnDispersion QPochhammer QPolyGamma QRDecomposition QuadraticIrrationalQ QuadraticOptimization Quantile QuantilePlot Quantity QuantityArray QuantityDistribution QuantityForm QuantityMagnitude QuantityQ QuantityUnit QuantityVariable QuantityVariableCanonicalUnit QuantityVariableDimensions QuantityVariableIdentifier QuantityVariablePhysicalQuantity Quartics QuartileDeviation Quartiles QuartileSkewness Query QueueingNetworkProcess QueueingProcess QueueProperties Quiet Quit Quotient QuotientRemainderRadialGradientImage RadialityCentrality RadicalBox RadicalBoxOptions RadioButton RadioButtonBar RadioButtonBox RadioButtonBoxOptions Radon RadonTransform RamanujanTau RamanujanTauL RamanujanTauTheta RamanujanTauZ Ramp Random RandomChoice RandomColor RandomComplex RandomEntity RandomFunction RandomGeoPosition RandomGraph RandomImage RandomInstance RandomInteger RandomPermutation RandomPoint RandomPolygon RandomPolyhedron RandomPrime RandomReal RandomSample RandomSeed RandomSeeding RandomVariate RandomWalkProcess RandomWord Range RangeFilter RangeSpecification RankedMax RankedMin RarerProbability Raster Raster3D Raster3DBox Raster3DBoxOptions RasterArray RasterBox RasterBoxOptions Rasterize RasterSize Rational RationalFunctions Rationalize Rationals Ratios RawArray RawBoxes RawData RawMedium RayleighDistribution Re Read ReadByteArray ReadLine ReadList ReadProtected ReadString Real RealAbs RealBlockDiagonalForm RealDigits RealExponent Reals RealSign Reap RecognitionPrior RecognitionThreshold Record RecordLists RecordSeparators Rectangle RectangleBox RectangleBoxOptions RectangleChart RectangleChart3D RectangularRepeatingElement RecurrenceFilter RecurrenceTable RecurringDigitsForm Red Reduce RefBox ReferenceLineStyle ReferenceMarkers ReferenceMarkerStyle Refine ReflectionMatrix ReflectionTransform Refresh RefreshRate Region RegionBinarize RegionBoundary RegionBounds RegionCentroid RegionDifference RegionDimension RegionDisjoint RegionDistance RegionDistanceFunction RegionEmbeddingDimension RegionEqual RegionFunction RegionImage RegionIntersection RegionMeasure RegionMember RegionMemberFunction RegionMoment RegionNearest RegionNearestFunction RegionPlot RegionPlot3D RegionProduct RegionQ RegionResize RegionSize RegionSymmetricDifference RegionUnion RegionWithin RegisterExternalEvaluator RegularExpression Regularization RegularlySampledQ RegularPolygon ReIm ReImLabels ReImPlot ReImStyle Reinstall RelationalDatabase RelationGraph Release ReleaseHold ReliabilityDistribution ReliefImage ReliefPlot RemoteAuthorizationCaching RemoteConnect RemoteConnectionObject RemoteFile RemoteRun RemoteRunProcess Remove RemoveAlphaChannel RemoveAsynchronousTask RemoveAudioStream RemoveBackground RemoveChannelListener RemoveChannelSubscribers Removed RemoveDiacritics RemoveInputStreamMethod RemoveOutputStreamMethod RemoveProperty RemoveScheduledTask RemoveUsers RenameDirectory RenameFile RenderAll RenderingOptions RenewalProcess RenkoChart RepairMesh Repeated RepeatedNull RepeatedString RepeatedTiming RepeatingElement Replace ReplaceAll ReplaceHeldPart ReplaceImageValue ReplaceList ReplacePart ReplacePixelValue ReplaceRepeated ReplicateLayer RequiredPhysicalQuantities Resampling ResamplingAlgorithmData ResamplingMethod Rescale RescalingTransform ResetDirectory ResetMenusPacket ResetScheduledTask ReshapeLayer Residue ResizeLayer Resolve ResourceAcquire ResourceData ResourceFunction ResourceObject ResourceRegister ResourceRemove ResourceSearch ResourceSubmissionObject ResourceSubmit ResourceSystemBase ResourceUpdate ResponseForm Rest RestartInterval Restricted Resultant ResumePacket Return ReturnEntersInput ReturnExpressionPacket ReturnInputFormPacket ReturnPacket ReturnReceiptFunction ReturnTextPacket Reverse ReverseBiorthogonalSplineWavelet ReverseElement ReverseEquilibrium ReverseGraph ReverseSort ReverseSortBy ReverseUpEquilibrium RevolutionAxis RevolutionPlot3D RGBColor RiccatiSolve RiceDistribution RidgeFilter RiemannR RiemannSiegelTheta RiemannSiegelZ RiemannXi Riffle Right RightArrow RightArrowBar RightArrowLeftArrow RightComposition RightCosetRepresentative RightDownTeeVector RightDownVector RightDownVectorBar RightTee RightTeeArrow RightTeeVector RightTriangle RightTriangleBar RightTriangleEqual RightUpDownVector RightUpTeeVector RightUpVector RightUpVectorBar RightVector RightVectorBar RiskAchievementImportance RiskReductionImportance RogersTanimotoDissimilarity RollPitchYawAngles RollPitchYawMatrix RomanNumeral Root RootApproximant RootIntervals RootLocusPlot RootMeanSquare RootOfUnityQ RootReduce Roots RootSum Rotate RotateLabel RotateLeft RotateRight RotationAction RotationBox RotationBoxOptions RotationMatrix RotationTransform Round RoundImplies RoundingRadius Row RowAlignments RowBackgrounds RowBox RowHeights RowLines RowMinHeight RowReduce RowsEqual RowSpacings RSolve RSolveValue RudinShapiro RudvalisGroupRu Rule RuleCondition RuleDelayed RuleForm RulePlot RulerUnits Run RunProcess RunScheduledTask RunThrough RuntimeAttributes RuntimeOptions RussellRaoDissimilaritySameQ SameTest SampledEntityClass SampleDepth SampledSoundFunction SampledSoundList SampleRate SamplingPeriod SARIMAProcess SARMAProcess SASTriangle SatelliteData SatisfiabilityCount SatisfiabilityInstances SatisfiableQ Saturday Save Saveable SaveAutoDelete SaveConnection SaveDefinitions SavitzkyGolayMatrix SawtoothWave Scale Scaled ScaleDivisions ScaledMousePosition ScaleOrigin ScalePadding ScaleRanges ScaleRangeStyle ScalingFunctions ScalingMatrix ScalingTransform Scan ScheduledTask ScheduledTaskActiveQ ScheduledTaskInformation ScheduledTaskInformationData ScheduledTaskObject ScheduledTasks SchurDecomposition ScientificForm ScientificNotationThreshold ScorerGi ScorerGiPrime ScorerHi ScorerHiPrime ScreenRectangle ScreenStyleEnvironment ScriptBaselineShifts ScriptForm ScriptLevel ScriptMinSize ScriptRules ScriptSizeMultipliers Scrollbars ScrollingOptions ScrollPosition SearchAdjustment SearchIndexObject SearchIndices SearchQueryString SearchResultObject Sec Sech SechDistribution SecondOrderConeOptimization SectionGrouping SectorChart SectorChart3D SectorOrigin SectorSpacing SecuredAuthenticationKey SecuredAuthenticationKeys SeedRandom Select Selectable SelectComponents SelectedCells SelectedNotebook SelectFirst Selection SelectionAnimate SelectionCell SelectionCellCreateCell SelectionCellDefaultStyle SelectionCellParentStyle SelectionCreateCell SelectionDebuggerTag SelectionDuplicateCell SelectionEvaluate SelectionEvaluateCreateCell SelectionMove SelectionPlaceholder SelectionSetStyle SelectWithContents SelfLoops SelfLoopStyle SemanticImport SemanticImportString SemanticInterpretation SemialgebraicComponentInstances SemidefiniteOptimization SendMail SendMessage Sequence SequenceAlignment SequenceAttentionLayer SequenceCases SequenceCount SequenceFold SequenceFoldList SequenceForm SequenceHold SequenceLastLayer SequenceMostLayer SequencePosition SequencePredict SequencePredictorFunction SequenceReplace SequenceRestLayer SequenceReverseLayer SequenceSplit Series SeriesCoefficient SeriesData ServiceConnect ServiceDisconnect ServiceExecute ServiceObject ServiceRequest ServiceResponse ServiceSubmit SessionSubmit SessionTime Set SetAccuracy SetAlphaChannel SetAttributes Setbacks SetBoxFormNamesPacket SetCloudDirectory SetCookies SetDelayed SetDirectory SetEnvironment SetEvaluationNotebook SetFileDate SetFileLoadingContext SetNotebookStatusLine SetOptions SetOptionsPacket SetPermissions SetPrecision SetProperty SetSecuredAuthenticationKey SetSelectedNotebook SetSharedFunction SetSharedVariable SetSpeechParametersPacket SetStreamPosition SetSystemModel SetSystemOptions Setter SetterBar SetterBox SetterBoxOptions Setting SetUsers SetValue Shading Shallow ShannonWavelet ShapiroWilkTest Share SharingList Sharpen ShearingMatrix ShearingTransform ShellRegion ShenCastanMatrix ShiftedGompertzDistribution ShiftRegisterSequence Short ShortDownArrow Shortest ShortestMatch ShortestPathFunction ShortLeftArrow ShortRightArrow ShortTimeFourier ShortTimeFourierData ShortUpArrow Show ShowAutoConvert ShowAutoSpellCheck ShowAutoStyles ShowCellBracket ShowCellLabel ShowCellTags ShowClosedCellArea ShowCodeAssist ShowContents ShowControls ShowCursorTracker ShowGroupOpenCloseIcon ShowGroupOpener ShowInvisibleCharacters ShowPageBreaks ShowPredictiveInterface ShowSelection ShowShortBoxForm ShowSpecialCharacters ShowStringCharacters ShowSyntaxStyles ShrinkingDelay ShrinkWrapBoundingBox SiderealTime SiegelTheta SiegelTukeyTest SierpinskiCurve SierpinskiMesh Sign Signature SignedRankTest SignedRegionDistance SignificanceLevel SignPadding SignTest SimilarityRules SimpleGraph SimpleGraphQ SimplePolygonQ SimplePolyhedronQ Simplex Simplify Sin Sinc SinghMaddalaDistribution SingleEvaluation SingleLetterItalics SingleLetterStyle SingularValueDecomposition SingularValueList SingularValuePlot SingularValues Sinh SinhIntegral SinIntegral SixJSymbol Skeleton SkeletonTransform SkellamDistribution Skewness SkewNormalDistribution SkinStyle Skip SliceContourPlot3D SliceDensityPlot3D SliceDistribution SliceVectorPlot3D Slider Slider2D Slider2DBox Slider2DBoxOptions SliderBox SliderBoxOptions SlideView Slot SlotSequence Small SmallCircle Smaller SmithDecomposition SmithDelayCompensator SmithWatermanSimilarity SmoothDensityHistogram SmoothHistogram SmoothHistogram3D SmoothKernelDistribution SnDispersion Snippet SnubPolyhedron SocialMediaData Socket SocketConnect SocketListen SocketListener SocketObject SocketOpen SocketReadMessage SocketReadyQ Sockets SocketWaitAll SocketWaitNext SoftmaxLayer SokalSneathDissimilarity SolarEclipse SolarSystemFeatureData SolidAngle SolidData SolidRegionQ Solve SolveAlways SolveDelayed Sort SortBy SortedBy SortedEntityClass Sound SoundAndGraphics SoundNote SoundVolume SourceLink Sow Space SpaceCurveData SpaceForm Spacer Spacings Span SpanAdjustments SpanCharacterRounding SpanFromAbove SpanFromBoth SpanFromLeft SpanLineThickness SpanMaxSize SpanMinSize SpanningCharacters SpanSymmetric SparseArray SpatialGraphDistribution SpatialMedian SpatialTransformationLayer Speak SpeakTextPacket SpearmanRankTest SpearmanRho SpeciesData SpecificityGoal SpectralLineData Spectrogram SpectrogramArray Specularity SpeechRecognize SpeechSynthesize SpellingCorrection SpellingCorrectionList SpellingDictionaries SpellingDictionariesPath SpellingOptions SpellingSuggestionsPacket Sphere SphereBox SpherePoints SphericalBesselJ SphericalBesselY SphericalHankelH1 SphericalHankelH2 SphericalHarmonicY SphericalPlot3D SphericalRegion SphericalShell SpheroidalEigenvalue SpheroidalJoiningFactor SpheroidalPS SpheroidalPSPrime SpheroidalQS SpheroidalQSPrime SpheroidalRadialFactor SpheroidalS1 SpheroidalS1Prime SpheroidalS2 SpheroidalS2Prime Splice SplicedDistribution SplineClosed SplineDegree SplineKnots SplineWeights Split SplitBy SpokenString Sqrt SqrtBox SqrtBoxOptions Square SquaredEuclideanDistance SquareFreeQ SquareIntersection SquareMatrixQ SquareRepeatingElement SquaresR SquareSubset SquareSubsetEqual SquareSuperset SquareSupersetEqual SquareUnion SquareWave SSSTriangle StabilityMargins StabilityMarginsStyle StableDistribution Stack StackBegin StackComplete StackedDateListPlot StackedListPlot StackInhibit StadiumShape StandardAtmosphereData StandardDeviation StandardDeviationFilter StandardForm Standardize Standardized StandardOceanData StandbyDistribution Star StarClusterData StarData StarGraph StartAsynchronousTask StartExternalSession StartingStepSize StartOfLine StartOfString StartProcess StartScheduledTask StartupSound StartWebSession StateDimensions StateFeedbackGains StateOutputEstimator StateResponse StateSpaceModel StateSpaceRealization StateSpaceTransform StateTransformationLinearize StationaryDistribution StationaryWaveletPacketTransform StationaryWaveletTransform StatusArea StatusCentrality StepMonitor StereochemistryElements StieltjesGamma StirlingS1 StirlingS2 StopAsynchronousTask StoppingPowerData StopScheduledTask StrataVariables StratonovichProcess StreamColorFunction StreamColorFunctionScaling StreamDensityPlot StreamMarkers StreamPlot StreamPoints StreamPosition Streams StreamScale StreamStyle String StringBreak StringByteCount StringCases StringContainsQ StringCount StringDelete StringDrop StringEndsQ StringExpression StringExtract StringForm StringFormat StringFreeQ StringInsert StringJoin StringLength StringMatchQ StringPadLeft StringPadRight StringPart StringPartition StringPosition StringQ StringRepeat StringReplace StringReplaceList StringReplacePart StringReverse StringRiffle StringRotateLeft StringRotateRight StringSkeleton StringSplit StringStartsQ StringTake StringTemplate StringToByteArray StringToStream StringTrim StripBoxes StripOnInput StripWrapperBoxes StrokeForm StructuralImportance StructuredArray StructuredSelection StruveH StruveL Stub StudentTDistribution Style StyleBox StyleBoxAutoDelete StyleData StyleDefinitions StyleForm StyleHints StyleKeyMapping StyleMenuListing StyleNameDialogSettings StyleNames StylePrint StyleSheetPath Subdivide Subfactorial Subgraph SubMinus SubPlus SubresultantPolynomialRemainders SubresultantPolynomials Subresultants Subscript SubscriptBox SubscriptBoxOptions Subscripted Subsequences Subset SubsetEqual SubsetMap SubsetQ Subsets SubStar SubstitutionSystem Subsuperscript SubsuperscriptBox SubsuperscriptBoxOptions Subtract SubtractFrom SubtractSides SubValues Succeeds SucceedsEqual SucceedsSlantEqual SucceedsTilde Success SuchThat Sum SumConvergence SummationLayer Sunday SunPosition Sunrise Sunset SuperDagger SuperMinus SupernovaData SuperPlus Superscript SuperscriptBox SuperscriptBoxOptions Superset SupersetEqual SuperStar Surd SurdForm SurfaceArea SurfaceColor SurfaceData SurfaceGraphics SurvivalDistribution SurvivalFunction SurvivalModel SurvivalModelFit SuspendPacket SuzukiDistribution SuzukiGroupSuz SwatchLegend Switch Symbol SymbolName SymletWavelet Symmetric SymmetricGroup SymmetricKey SymmetricMatrixQ SymmetricPolynomial SymmetricReduction Symmetrize SymmetrizedArray SymmetrizedArrayRules SymmetrizedDependentComponents SymmetrizedIndependentComponents SymmetrizedReplacePart SynchronousInitialization SynchronousUpdating Synonyms Syntax SyntaxForm SyntaxInformation SyntaxLength SyntaxPacket SyntaxQ SynthesizeMissingValues SystemDialogInput SystemException SystemGet SystemHelpPath SystemInformation SystemInformationData SystemInstall SystemModel SystemModeler SystemModelExamples SystemModelLinearize SystemModelParametricSimulate SystemModelPlot SystemModelProgressReporting SystemModelReliability SystemModels SystemModelSimulate SystemModelSimulateSensitivity SystemModelSimulationData SystemOpen SystemOptions SystemProcessData SystemProcesses SystemsConnectionsModel SystemsModelDelay SystemsModelDelayApproximate SystemsModelDelete SystemsModelDimensions SystemsModelExtract SystemsModelFeedbackConnect SystemsModelLabels SystemsModelLinearity SystemsModelMerge SystemsModelOrder SystemsModelParallelConnect SystemsModelSeriesConnect SystemsModelStateFeedbackConnect SystemsModelVectorRelativeOrders SystemStub SystemTestTab TabFilling Table TableAlignments TableDepth TableDirections TableForm TableHeadings TableSpacing TableView TableViewBox TableViewBoxBackground TableViewBoxOptions TabSpacings TabView TabViewBox TabViewBoxOptions TagBox TagBoxNote TagBoxOptions TaggingRules TagSet TagSetDelayed TagStyle TagUnset Take TakeDrop TakeLargest TakeLargestBy TakeList TakeSmallest TakeSmallestBy TakeWhile Tally Tan Tanh TargetDevice TargetFunctions TargetSystem TargetUnits TaskAbort TaskExecute TaskObject TaskRemove TaskResume Tasks TaskSuspend TaskWait TautologyQ TelegraphProcess TemplateApply TemplateArgBox TemplateBox TemplateBoxOptions TemplateEvaluate TemplateExpression TemplateIf TemplateObject TemplateSequence TemplateSlot TemplateSlotSequence TemplateUnevaluated TemplateVerbatim TemplateWith TemporalData TemporalRegularity Temporary TemporaryVariable TensorContract TensorDimensions TensorExpand TensorProduct TensorQ TensorRank TensorReduce TensorSymmetry TensorTranspose TensorWedge TestID TestReport TestReportObject TestResultObject Tetrahedron TetrahedronBox TetrahedronBoxOptions TeXForm TeXSave Text Text3DBox Text3DBoxOptions TextAlignment TextBand TextBoundingBox TextBox TextCases TextCell TextClipboardType TextContents TextData TextElement TextForm TextGrid TextJustification TextLine TextPacket TextParagraph TextPosition TextRecognize TextSearch TextSearchReport TextSentences TextString TextStructure TextStyle TextTranslation Texture TextureCoordinateFunction TextureCoordinateScaling TextWords Therefore ThermodynamicData ThermometerGauge Thick Thickness Thin Thinning ThisLink ThompsonGroupTh Thread ThreadingLayer ThreeJSymbol Threshold Through Throw ThueMorse Thumbnail Thursday Ticks TicksStyle TideData Tilde TildeEqual TildeFullEqual TildeTilde TimeConstrained TimeConstraint TimeDirection TimeFormat TimeGoal TimelinePlot TimeObject TimeObjectQ Times TimesBy TimeSeries TimeSeriesAggregate TimeSeriesForecast TimeSeriesInsert TimeSeriesInvertibility TimeSeriesMap TimeSeriesMapThread TimeSeriesModel TimeSeriesModelFit TimeSeriesResample TimeSeriesRescale TimeSeriesShift TimeSeriesThread TimeSeriesWindow TimeUsed TimeValue TimeWarpingCorrespondence TimeWarpingDistance TimeZone TimeZoneConvert TimeZoneOffset Timing Tiny TitleGrouping TitsGroupT ToBoxes ToCharacterCode ToColor ToContinuousTimeModel ToDate Today ToDiscreteTimeModel ToEntity ToeplitzMatrix ToExpression ToFileName Together Toggle ToggleFalse Toggler TogglerBar TogglerBox TogglerBoxOptions ToHeldExpression ToInvertibleTimeSeries TokenWords Tolerance ToLowerCase Tomorrow ToNumberField TooBig Tooltip TooltipBox TooltipBoxOptions TooltipDelay TooltipStyle Top TopHatTransform ToPolarCoordinates TopologicalSort ToRadicals ToRules ToSphericalCoordinates ToString Total TotalHeight TotalLayer TotalVariationFilter TotalWidth TouchPosition TouchscreenAutoZoom TouchscreenControlPlacement ToUpperCase Tr Trace TraceAbove TraceAction TraceBackward TraceDepth TraceDialog TraceForward TraceInternal TraceLevel TraceOff TraceOn TraceOriginal TracePrint TraceScan TrackedSymbols TrackingFunction TracyWidomDistribution TradingChart TraditionalForm TraditionalFunctionNotation TraditionalNotation TraditionalOrder TrainingProgressCheckpointing TrainingProgressFunction TrainingProgressMeasurements TrainingProgressReporting TrainingStoppingCriterion TransferFunctionCancel TransferFunctionExpand TransferFunctionFactor TransferFunctionModel TransferFunctionPoles TransferFunctionTransform TransferFunctionZeros TransformationClass TransformationFunction TransformationFunctions TransformationMatrix TransformedDistribution TransformedField TransformedProcess TransformedRegion TransitionDirection TransitionDuration TransitionEffect TransitiveClosureGraph TransitiveReductionGraph Translate TranslationOptions TranslationTransform Transliterate Transparent TransparentColor Transpose TransposeLayer TrapSelection TravelDirections TravelDirectionsData TravelDistance TravelDistanceList TravelMethod TravelTime TreeForm TreeGraph TreeGraphQ TreePlot TrendStyle Triangle TriangleCenter TriangleConstruct TriangleMeasurement TriangleWave TriangularDistribution TriangulateMesh Trig TrigExpand TrigFactor TrigFactorList Trigger TrigReduce TrigToExp TrimmedMean TrimmedVariance TropicalStormData True TrueQ TruncatedDistribution TruncatedPolyhedron TsallisQExponentialDistribution TsallisQGaussianDistribution TTest Tube TubeBezierCurveBox TubeBezierCurveBoxOptions TubeBox TubeBoxOptions TubeBSplineCurveBox TubeBSplineCurveBoxOptions Tuesday TukeyLambdaDistribution TukeyWindow TunnelData Tuples TuranGraph TuringMachine TuttePolynomial TwoWayRule Typed TypeSpecifierUnateQ Uncompress UnconstrainedParameters Undefined UnderBar Underflow Underlined Underoverscript UnderoverscriptBox UnderoverscriptBoxOptions Underscript UnderscriptBox UnderscriptBoxOptions UnderseaFeatureData UndirectedEdge UndirectedGraph UndirectedGraphQ UndoOptions UndoTrackedVariables Unequal UnequalTo Unevaluated UniformDistribution UniformGraphDistribution UniformPolyhedron UniformSumDistribution Uninstall Union UnionPlus Unique UnitaryMatrixQ UnitBox UnitConvert UnitDimensions Unitize UnitRootTest UnitSimplify UnitStep UnitSystem UnitTriangle UnitVector UnitVectorLayer UnityDimensions UniverseModelData UniversityData UnixTime Unprotect UnregisterExternalEvaluator UnsameQ UnsavedVariables Unset UnsetShared UntrackedVariables Up UpArrow UpArrowBar UpArrowDownArrow Update UpdateDynamicObjects UpdateDynamicObjectsSynchronous UpdateInterval UpdateSearchIndex UpDownArrow UpEquilibrium UpperCaseQ UpperLeftArrow UpperRightArrow UpperTriangularize UpperTriangularMatrixQ Upsample UpSet UpSetDelayed UpTee UpTeeArrow UpTo UpValues URL URLBuild URLDecode URLDispatcher URLDownload URLDownloadSubmit URLEncode URLExecute URLExpand URLFetch URLFetchAsynchronous URLParse URLQueryDecode URLQueryEncode URLRead URLResponseTime URLSave URLSaveAsynchronous URLShorten URLSubmit UseGraphicsRange UserDefinedWavelet Using UsingFrontEnd UtilityFunctionV2Get ValenceErrorHandling ValidationLength ValidationSet Value ValueBox ValueBoxOptions ValueDimensions ValueForm ValuePreprocessingFunction ValueQ Values ValuesData Variables Variance VarianceEquivalenceTest VarianceEstimatorFunction VarianceGammaDistribution VarianceTest VectorAngle VectorAround VectorColorFunction VectorColorFunctionScaling VectorDensityPlot VectorGlyphData VectorGreater VectorGreaterEqual VectorLess VectorLessEqual VectorMarkers VectorPlot VectorPlot3D VectorPoints VectorQ Vectors VectorScale VectorStyle Vee Verbatim Verbose VerboseConvertToPostScriptPacket VerificationTest VerifyConvergence VerifyDerivedKey VerifyDigitalSignature VerifyInterpretation VerifySecurityCertificates VerifySolutions VerifyTestAssumptions Version VersionNumber VertexAdd VertexCapacity VertexColors VertexComponent VertexConnectivity VertexContract VertexCoordinateRules VertexCoordinates VertexCorrelationSimilarity VertexCosineSimilarity VertexCount VertexCoverQ VertexDataCoordinates VertexDegree VertexDelete VertexDiceSimilarity VertexEccentricity VertexInComponent VertexInDegree VertexIndex VertexJaccardSimilarity VertexLabeling VertexLabels VertexLabelStyle VertexList VertexNormals VertexOutComponent VertexOutDegree VertexQ VertexRenderingFunction VertexReplace VertexShape VertexShapeFunction VertexSize VertexStyle VertexTextureCoordinates VertexWeight VertexWeightedGraphQ Vertical VerticalBar VerticalForm VerticalGauge VerticalSeparator VerticalSlider VerticalTilde ViewAngle ViewCenter ViewMatrix ViewPoint ViewPointSelectorSettings ViewPort ViewProjection ViewRange ViewVector ViewVertical VirtualGroupData Visible VisibleCell VoiceStyleData VoigtDistribution VolcanoData Volume VonMisesDistribution VoronoiMeshWaitAll WaitAsynchronousTask WaitNext WaitUntil WakebyDistribution WalleniusHypergeometricDistribution WaringYuleDistribution WarpingCorrespondence WarpingDistance WatershedComponents WatsonUSquareTest WattsStrogatzGraphDistribution WaveletBestBasis WaveletFilterCoefficients WaveletImagePlot WaveletListPlot WaveletMapIndexed WaveletMatrixPlot WaveletPhi WaveletPsi WaveletScale WaveletScalogram WaveletThreshold WeaklyConnectedComponents WeaklyConnectedGraphComponents WeaklyConnectedGraphQ WeakStationarity WeatherData WeatherForecastData WebAudioSearch WebElementObject WeberE WebExecute WebImage WebImageSearch WebSearch WebSessionObject WebSessions WebWindowObject Wedge Wednesday WeibullDistribution WeierstrassE1 WeierstrassE2 WeierstrassE3 WeierstrassEta1 WeierstrassEta2 WeierstrassEta3 WeierstrassHalfPeriods WeierstrassHalfPeriodW1 WeierstrassHalfPeriodW2 WeierstrassHalfPeriodW3 WeierstrassInvariantG2 WeierstrassInvariantG3 WeierstrassInvariants WeierstrassP WeierstrassPPrime WeierstrassSigma WeierstrassZeta WeightedAdjacencyGraph WeightedAdjacencyMatrix WeightedData WeightedGraphQ Weights WelchWindow WheelGraph WhenEvent Which While White WhiteNoiseProcess WhitePoint Whitespace WhitespaceCharacter WhittakerM WhittakerW WienerFilter WienerProcess WignerD WignerSemicircleDistribution WikipediaData WikipediaSearch WilksW WilksWTest WindDirectionData WindingCount WindingPolygon WindowClickSelect WindowElements WindowFloating WindowFrame WindowFrameElements WindowMargins WindowMovable WindowOpacity WindowPersistentStyles WindowSelected WindowSize WindowStatusArea WindowTitle WindowToolbars WindowWidth WindSpeedData WindVectorData WinsorizedMean WinsorizedVariance WishartMatrixDistribution With WolframAlpha WolframAlphaDate WolframAlphaQuantity WolframAlphaResult WolframLanguageData Word WordBoundary WordCharacter WordCloud WordCount WordCounts WordData WordDefinition WordFrequency WordFrequencyData WordList WordOrientation WordSearch WordSelectionFunction WordSeparators WordSpacings WordStem WordTranslation WorkingPrecision WrapAround Write WriteLine WriteString WronskianXMLElement XMLObject XMLTemplate Xnor Xor XYZColorYellow Yesterday YuleDissimilarityZernikeR ZeroSymmetric ZeroTest ZeroWidthTimes Zeta ZetaZero ZIPCodeData ZipfDistribution ZoomCenter ZoomFactor ZTest ZTransform$Aborted $ActivationGroupID $ActivationKey $ActivationUserRegistered $AddOnsDirectory $AllowExternalChannelFunctions $AssertFunction $Assumptions $AsynchronousTask $AudioInputDevices $AudioOutputDevices $BaseDirectory $BatchInput $BatchOutput $BlockchainBase $BoxForms $ByteOrdering $CacheBaseDirectory $Canceled $ChannelBase $CharacterEncoding $CharacterEncodings $CloudBase $CloudConnected $CloudCreditsAvailable $CloudEvaluation $CloudExpressionBase $CloudObjectNameFormat $CloudObjectURLType $CloudRootDirectory $CloudSymbolBase $CloudUserID $CloudUserUUID $CloudVersion $CloudVersionNumber $CloudWolframEngineVersionNumber $CommandLine $CompilationTarget $ConditionHold $ConfiguredKernels $Context $ContextPath $ControlActiveSetting $Cookies $CookieStore $CreationDate $CurrentLink $CurrentTask $CurrentWebSession $DateStringFormat $DefaultAudioInputDevice $DefaultAudioOutputDevice $DefaultFont $DefaultFrontEnd $DefaultImagingDevice $DefaultLocalBase $DefaultMailbox $DefaultNetworkInterface $DefaultPath $Display $DisplayFunction $DistributedContexts $DynamicEvaluation $Echo $EmbedCodeEnvironments $EmbeddableServices $EntityStores $Epilog $EvaluationCloudBase $EvaluationCloudObject $EvaluationEnvironment $ExportFormats $Failed $FinancialDataSource $FontFamilies $FormatType $FrontEnd $FrontEndSession $GeoEntityTypes $GeoLocation $GeoLocationCity $GeoLocationCountry $GeoLocationPrecision $GeoLocationSource $HistoryLength $HomeDirectory $HTMLExportRules $HTTPCookies $HTTPRequest $IgnoreEOF $ImageFormattingWidth $ImagingDevice $ImagingDevices $ImportFormats $IncomingMailSettings $InitialDirectory $Initialization $InitializationContexts $Input $InputFileName $InputStreamMethods $Inspector $InstallationDate $InstallationDirectory $InterfaceEnvironment $InterpreterTypes $IterationLimit $KernelCount $KernelID $Language $LaunchDirectory $LibraryPath $LicenseExpirationDate $LicenseID $LicenseProcesses $LicenseServer $LicenseSubprocesses $LicenseType $Line $Linked $LinkSupported $LoadedFiles $LocalBase $LocalSymbolBase $MachineAddresses $MachineDomain $MachineDomains $MachineEpsilon $MachineID $MachineName $MachinePrecision $MachineType $MaxExtraPrecision $MaxLicenseProcesses $MaxLicenseSubprocesses $MaxMachineNumber $MaxNumber $MaxPiecewiseCases $MaxPrecision $MaxRootDegree $MessageGroups $MessageList $MessagePrePrint $Messages $MinMachineNumber $MinNumber $MinorReleaseNumber $MinPrecision $MobilePhone $ModuleNumber $NetworkConnected $NetworkInterfaces $NetworkLicense $NewMessage $NewSymbol $Notebooks $NoValue $NumberMarks $Off $OperatingSystem $Output $OutputForms $OutputSizeLimit $OutputStreamMethods $Packages $ParentLink $ParentProcessID $PasswordFile $PatchLevelID $Path $PathnameSeparator $PerformanceGoal $Permissions $PermissionsGroupBase $PersistenceBase $PersistencePath $PipeSupported $PlotTheme $Post $Pre $PreferencesDirectory $PreInitialization $PrePrint $PreRead $PrintForms $PrintLiteral $Printout3DPreviewer $ProcessID $ProcessorCount $ProcessorType $ProductInformation $ProgramName $PublisherID $RandomState $RecursionLimit $RegisteredDeviceClasses $RegisteredUserName $ReleaseNumber $RequesterAddress $RequesterWolframID $RequesterWolframUUID $ResourceSystemBase $RootDirectory $ScheduledTask $ScriptCommandLine $ScriptInputString $SecuredAuthenticationKeyTokens $ServiceCreditsAvailable $Services $SessionID $SetParentLink $SharedFunctions $SharedVariables $SoundDisplay $SoundDisplayFunction $SourceLink $SSHAuthentication $SummaryBoxDataSizeLimit $SuppressInputFormHeads $SynchronousEvaluation $SyntaxHandler $System $SystemCharacterEncoding $SystemID $SystemMemory $SystemShell $SystemTimeZone $SystemWordLength $TemplatePath $TemporaryDirectory $TemporaryPrefix $TestFileName $TextStyle $TimedOut $TimeUnit $TimeZone $TimeZoneEntity $TopDirectory $TraceOff $TraceOn $TracePattern $TracePostAction $TracePreAction $UnitSystem $Urgent $UserAddOnsDirectory $UserAgentLanguages $UserAgentMachine $UserAgentName $UserAgentOperatingSystem $UserAgentString $UserAgentVersion $UserBaseDirectory $UserDocumentsDirectory $Username $UserName $UserURLBase $Version $VersionNumber $VoiceStyles $WolframID $WolframUUID\",c:[e.C(\"\\\\(\\\\*\",\"\\\\*\\\\)\",{c:[\"self\"]}),e.QSM,e.CNM]}});hljs.registerLanguage(\"vim\",function(e){return{l:/[!#@\\w]+/,k:{keyword:\"N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank\",built_in:\"synIDtrans atan2 range matcharg did_filetype asin feedkeys xor argv complete_check add getwinposx getqflist getwinposy screencol clearmatches empty extend getcmdpos mzeval garbagecollect setreg ceil sqrt diff_hlID inputsecret get getfperm getpid filewritable shiftwidth max sinh isdirectory synID system inputrestore winline atan visualmode inputlist tabpagewinnr round getregtype mapcheck hasmapto histdel argidx findfile sha256 exists toupper getcmdline taglist string getmatches bufnr strftime winwidth bufexists strtrans tabpagebuflist setcmdpos remote_read printf setloclist getpos getline bufwinnr float2nr len getcmdtype diff_filler luaeval resolve libcallnr foldclosedend reverse filter has_key bufname str2float strlen setline getcharmod setbufvar index searchpos shellescape undofile foldclosed setqflist buflisted strchars str2nr virtcol floor remove undotree remote_expr winheight gettabwinvar reltime cursor tabpagenr finddir localtime acos getloclist search tanh matchend rename gettabvar strdisplaywidth type abs py3eval setwinvar tolower wildmenumode log10 spellsuggest bufloaded synconcealed nextnonblank server2client complete settabwinvar executable input wincol setmatches getftype hlID inputsave searchpair or screenrow line settabvar histadd deepcopy strpart remote_peek and eval getftime submatch screenchar winsaveview matchadd mkdir screenattr getfontname libcall reltimestr getfsize winnr invert pow getbufline byte2line soundfold repeat fnameescape tagfiles sin strwidth spellbadword trunc maparg log lispindent hostname setpos globpath remote_foreground getchar synIDattr fnamemodify cscope_connection stridx winbufnr indent min complete_add nr2char searchpairpos inputdialog values matchlist items hlexists strridx browsedir expand fmod pathshorten line2byte argc count getwinvar glob foldtextresult getreg foreground cosh matchdelete has char2nr simplify histget searchdecl iconv winrestcmd pumvisible writefile foldlevel haslocaldir keys cos matchstr foldtext histnr tan tempname getcwd byteidx getbufvar islocked escape eventhandler remote_send serverlist winrestview synstack pyeval prevnonblank readfile cindent filereadable changenr exp\"},i:/;/,c:[e.NM,{cN:\"string\",b:\"'\",e:\"'\",i:\"\\\\n\"},{cN:\"string\",b:/\"(\\\\\"|\\n\\\\|[^\"\\n])*\"/},e.C('\"',\"$\"),{cN:\"variable\",b:/[bwtglsav]:[\\w\\d_]*/},{cN:\"function\",bK:\"function function!\",e:\"$\",relevance:0,c:[e.TM,{cN:\"params\",b:\"\\\\(\",e:\"\\\\)\"}]},{cN:\"symbol\",b:/<[\\w-]+>/}]}});hljs.registerLanguage(\"makefile\",function(e){var i={cN:\"variable\",v:[{b:\"\\\\$\\\\(\"+e.UIR+\"\\\\)\",c:[e.BE]},{b:/\\$[@%<?\\^\\+\\*]/}]},r={cN:\"string\",b:/\"/,e:/\"/,c:[e.BE,i]},a={cN:\"variable\",b:/\\$\\([\\w-]+\\s/,e:/\\)/,k:{built_in:\"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value\"},c:[i]},n={b:\"^\"+e.UIR+\"\\\\s*(?=[:+?]?=)\"},t={cN:\"section\",b:/^[^\\s]+:/,e:/$/,c:[i]};return{aliases:[\"mk\",\"mak\"],k:\"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath\",l:/[\\w-]+/,c:[e.HCM,i,r,a,n,{cN:\"meta\",b:/^\\.PHONY:/,e:/$/,k:{\"meta-keyword\":\".PHONY\"},l:/[\\.\\w]+/},t]}});hljs.registerLanguage(\"objectivec\",function(e){var t=/[a-zA-Z@][a-zA-Z0-9_]*/,i=\"@interface @class @protocol @implementation\";return{aliases:[\"mm\",\"objc\",\"obj-c\"],k:{keyword:\"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN\",literal:\"false true FALSE TRUE nil YES NO NULL\",built_in:\"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once\"},l:t,i:\"</\",c:[{cN:\"built_in\",b:\"\\\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\\\w+\"},e.CLCM,e.CBCM,e.CNM,e.QSM,e.ASM,{cN:\"string\",v:[{b:'@\"',e:'\"',i:\"\\\\n\",c:[e.BE]}]},{cN:\"meta\",b:/#\\s*[a-z]+\\b/,e:/$/,k:{\"meta-keyword\":\"if else elif endif define undef warning error line pragma ifdef ifndef include\"},c:[{b:/\\\\\\n/,relevance:0},e.inherit(e.QSM,{cN:\"meta-string\"}),{cN:\"meta-string\",b:/<.*?>/,e:/$/,i:\"\\\\n\"},e.CLCM,e.CBCM]},{cN:\"class\",b:\"(\"+i.split(\" \").join(\"|\")+\")\\\\b\",e:\"({|$)\",eE:!0,k:i,l:t,c:[e.UTM]},{b:\"\\\\.\"+e.UIR,relevance:0}]}});hljs.registerLanguage(\"shell\",function(s){return{aliases:[\"console\"],c:[{cN:\"meta\",b:\"^\\\\s{0,3}[/\\\\w\\\\d\\\\[\\\\]()@-]*[>%$#]\",starts:{e:\"$\",sL:\"bash\"}}]}});hljs.registerLanguage(\"erlang\",function(e){var r=\"[a-z'][a-zA-Z0-9_']*\",c=\"(\"+r+\":\"+r+\"|\"+r+\")\",n={keyword:\"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor\",literal:\"false true\"},a=e.C(\"%\",\"$\"),b={cN:\"number\",b:\"\\\\b(\\\\d+#[a-fA-F0-9]+|\\\\d+(\\\\.\\\\d+)?([eE][-+]?\\\\d+)?)\",relevance:0},i={b:\"fun\\\\s+\"+r+\"/\\\\d+\"},l={b:c+\"\\\\(\",e:\"\\\\)\",rB:!0,relevance:0,c:[{b:c,relevance:0},{b:\"\\\\(\",e:\"\\\\)\",eW:!0,rE:!0,relevance:0}]},d={b:\"{\",e:\"}\",relevance:0},o={b:\"\\\\b_([A-Z][A-Za-z0-9_]*)?\",relevance:0},t={b:\"[A-Z][a-zA-Z0-9_]*\",relevance:0},v={b:\"#\"+e.UIR,relevance:0,rB:!0,c:[{b:\"#\"+e.UIR,relevance:0},{b:\"{\",e:\"}\",relevance:0}]},f={bK:\"fun receive if try case\",e:\"end\",k:n};f.c=[a,i,e.inherit(e.ASM,{cN:\"\"}),f,l,e.QSM,b,d,o,t,v];var s=[a,i,f,l,e.QSM,b,d,o,t,v];l.c[1].c=s,d.c=s;var u={cN:\"params\",b:\"\\\\(\",e:\"\\\\)\",c:v.c[1].c=s};return{aliases:[\"erl\"],k:n,i:\"(</|\\\\*=|\\\\+=|-=|/\\\\*|\\\\*/|\\\\(\\\\*|\\\\*\\\\))\",c:[{cN:\"function\",b:\"^\"+r+\"\\\\s*\\\\(\",e:\"->\",rB:!0,i:\"\\\\(|#|//|/\\\\*|\\\\\\\\|:|;\",c:[u,e.inherit(e.TM,{b:r})],starts:{e:\";|\\\\.\",k:n,c:s}},a,{b:\"^-\",e:\"\\\\.\",relevance:0,eE:!0,rB:!0,l:\"-\"+e.IR,k:\"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior -spec\",c:[u]},b,e.QSM,v,o,t,d,{b:/\\.$/}]}});hljs.registerLanguage(\"powershell\",function(e){var t={keyword:\"if else foreach return do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch hidden static parameter\"},n={b:\"`[\\\\s\\\\S]\",relevance:0},c={cN:\"variable\",v:[{b:/\\$\\B/},{cN:\"keyword\",b:/\\$this/},{b:/\\$[\\w\\d][\\w\\d_:]*/}]},i={cN:\"string\",v:[{b:/\"/,e:/\"/},{b:/@\"/,e:/^\"@/}],c:[n,c,{cN:\"variable\",b:/\\$[A-z]/,e:/[^A-z]/}]},a={cN:\"string\",v:[{b:/'/,e:/'/},{b:/@'/,e:/^'@/}]},r=e.inherit(e.C(null,null),{v:[{b:/#/,e:/$/},{b:/<#/,e:/#>/}],c:[{cN:\"doctag\",v:[{b:/\\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/},{b:/\\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\\s+\\S+/}]}]}),o={cN:\"built_in\",v:[{b:\"(\".concat(\"Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|Limit|Merge|New|Out|Publish|Restore|Save|Sync|Unpublish|Update|Approve|Assert|Complete|Confirm|Deny|Disable|Enable|Install|Invoke|Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|Unprotect|Use|ForEach|Sort|Tee|Where\",\")+(-)[\\\\w\\\\d]+\")}]},l={cN:\"class\",bK:\"class enum\",e:/\\s*[{]/,eE:!0,relevance:0,c:[e.TM]},s={cN:\"function\",b:/function\\s+/,e:/\\s*\\{|$/,eE:!0,rB:!0,relevance:0,c:[{b:\"function\",relevance:0,cN:\"keyword\"},{cN:\"title\",b:/\\w[\\w\\d]*((-)[\\w\\d]+)*/,relevance:0},{b:/\\(/,e:/\\)/,cN:\"params\",relevance:0,c:[c]}]},p={b:/using\\s/,e:/$/,rB:!0,c:[i,a,{cN:\"keyword\",b:/(using|assembly|command|module|namespace|type)/}]},b={v:[{cN:\"operator\",b:\"(\".concat(\"-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|-split|-wildcard|-xor\",\")\\\\b\")},{cN:\"literal\",b:/(-)[\\w\\d]+/,relevance:0}]},d={cN:\"function\",b:/\\[.*\\]\\s*[\\w]+[ ]??\\(/,e:/$/,rB:!0,relevance:0,c:[{cN:\"keyword\",b:\"(\".concat(t.keyword.toString().replace(/\\s/g,\"|\"),\")\\\\b\"),endsParent:!0,relevance:0},e.inherit(e.TM,{endsParent:!0})]},u=[d,r,n,e.NM,i,a,o,c,{cN:\"literal\",b:/\\$(null|true|false)\\b/},{cN:\"selector-tag\",b:/\\@\\B/,relevance:0}],m={b:/\\[/,e:/\\]/,eB:!0,eE:!0,relevance:0,c:[].concat(\"self\",u,{b:\"(\"+[\"string\",\"char\",\"byte\",\"int\",\"long\",\"bool\",\"decimal\",\"single\",\"double\",\"DateTime\",\"xml\",\"array\",\"hashtable\",\"void\"].join(\"|\")+\")\",cN:\"built_in\",relevance:0},{cN:\"type\",b:/[\\.\\w\\d]+/,relevance:0})};return d.c.unshift(m),{aliases:[\"ps\",\"ps1\"],l:/-?[A-z\\.\\-]+/,cI:!0,k:t,c:u.concat(l,s,p,b,m)}});hljs.registerLanguage(\"typescript\",function(e){var r=\"[A-Za-z$_][0-9A-Za-z$_]*\",t={keyword:\"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class public private protected get set super static implements enum export import declare type namespace abstract as from extends async await\",literal:\"true false null undefined NaN Infinity\",built_in:\"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document any number boolean string void Promise\"},n={cN:\"meta\",b:\"@\"+r},a={b:\"\\\\(\",e:/\\)/,k:t,c:[\"self\",e.QSM,e.ASM,e.NM]},c={cN:\"params\",b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:t,c:[e.CLCM,e.CBCM,n,a]},s={cN:\"number\",v:[{b:\"\\\\b(0[bB][01]+)n?\"},{b:\"\\\\b(0[oO][0-7]+)n?\"},{b:e.CNR+\"n?\"}],relevance:0},o={cN:\"subst\",b:\"\\\\$\\\\{\",e:\"\\\\}\",k:t,c:[]},i={b:\"html`\",e:\"\",starts:{e:\"`\",rE:!1,c:[e.BE,o],sL:\"xml\"}},l={b:\"css`\",e:\"\",starts:{e:\"`\",rE:!1,c:[e.BE,o],sL:\"css\"}},b={cN:\"string\",b:\"`\",e:\"`\",c:[e.BE,o]};return o.c=[e.ASM,e.QSM,i,l,b,s,e.RM],{aliases:[\"ts\"],k:t,c:[{cN:\"meta\",b:/^\\s*['\"]use strict['\"]/},e.ASM,e.QSM,i,l,b,e.CLCM,e.CBCM,s,{b:\"(\"+e.RSR+\"|\\\\b(case|return|throw)\\\\b)\\\\s*\",k:\"return throw case\",c:[e.CLCM,e.CBCM,e.RM,{cN:\"function\",b:\"(\\\\(.*?\\\\)|\"+e.IR+\")\\\\s*=>\",rB:!0,e:\"\\\\s*=>\",c:[{cN:\"params\",v:[{b:e.IR},{b:/\\(\\s*\\)/},{b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:t,c:[\"self\",e.CLCM,e.CBCM]}]}]}],relevance:0},{cN:\"function\",bK:\"function\",e:/[\\{;]/,eE:!0,k:t,c:[\"self\",e.inherit(e.TM,{b:r}),c],i:/%/,relevance:0},{bK:\"constructor\",e:/[\\{;]/,eE:!0,c:[\"self\",c]},{b:/module\\./,k:{built_in:\"module\"},relevance:0},{bK:\"module\",e:/\\{/,eE:!0},{bK:\"interface\",e:/\\{/,eE:!0,k:\"interface extends\"},{b:/\\$[(.]/},{b:\"\\\\.\"+e.IR,relevance:0},n,a]}});hljs.registerLanguage(\"fortran\",function(e){return{cI:!0,aliases:[\"f90\",\"f95\"],k:{literal:\".False. .True.\",keyword:\"kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then block endblock public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data\",built_in:\"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_ofacosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image\"},i:/\\/\\*/,c:[e.inherit(e.ASM,{cN:\"string\",relevance:0}),e.inherit(e.QSM,{cN:\"string\",relevance:0}),{cN:\"function\",bK:\"subroutine function program\",i:\"[${=\\\\n]\",c:[e.UTM,{cN:\"params\",b:\"\\\\(\",e:\"\\\\)\"}]},e.C(\"!\",\"$\",{relevance:0}),{cN:\"number\",b:\"(?=\\\\b|\\\\+|\\\\-|\\\\.)(?=\\\\.\\\\d|\\\\d)(?:\\\\d+)?(?:\\\\.?\\\\d*)(?:[de][+-]?\\\\d+)?\\\\b\\\\.?\",relevance:0}]}});hljs.registerLanguage(\"php\",function(e){var c={b:\"\\\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*\"},i={cN:\"meta\",b:/<\\?(php)?|\\?>/},t={cN:\"string\",c:[e.BE,i],v:[{b:'b\"',e:'\"'},{b:\"b'\",e:\"'\"},e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null})]},a={v:[e.BNM,e.CNM]};return{aliases:[\"php\",\"php3\",\"php4\",\"php5\",\"php6\",\"php7\"],cI:!0,k:\"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally\",c:[e.HCM,e.C(\"//\",\"$\",{c:[i]}),e.C(\"/\\\\*\",\"\\\\*/\",{c:[{cN:\"doctag\",b:\"@[A-Za-z]+\"}]}),e.C(\"__halt_compiler.+?;\",!1,{eW:!0,k:\"__halt_compiler\",l:e.UIR}),{cN:\"string\",b:/<<<['\"]?\\w+['\"]?$/,e:/^\\w+;?$/,c:[e.BE,{cN:\"subst\",v:[{b:/\\$\\w+/},{b:/\\{\\$/,e:/\\}/}]}]},i,{cN:\"keyword\",b:/\\$this\\b/},c,{b:/(::|->)+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/},{cN:\"function\",bK:\"function\",e:/[;{]/,eE:!0,i:\"\\\\$|\\\\[|%\",c:[e.UTM,{cN:\"params\",b:\"\\\\(\",e:\"\\\\)\",c:[\"self\",c,e.CBCM,t,a]}]},{cN:\"class\",bK:\"class interface\",e:\"{\",eE:!0,i:/[:\\(\\$\"]/,c:[{bK:\"extends implements\"},e.UTM]},{bK:\"namespace\",e:\";\",i:/[\\.']/,c:[e.UTM]},{bK:\"use\",e:\";\",c:[e.UTM]},{b:\"=>\"},t,a]}});hljs.registerLanguage(\"haskell\",function(e){var i={v:[e.C(\"--\",\"$\"),e.C(\"{-\",\"-}\",{c:[\"self\"]})]},a={cN:\"meta\",b:\"{-#\",e:\"#-}\"},l={cN:\"meta\",b:\"^#\",e:\"$\"},c={cN:\"type\",b:\"\\\\b[A-Z][\\\\w']*\",relevance:0},n={b:\"\\\\(\",e:\"\\\\)\",i:'\"',c:[a,l,{cN:\"type\",b:\"\\\\b[A-Z][\\\\w]*(\\\\((\\\\.\\\\.|,|\\\\w+)\\\\))?\"},e.inherit(e.TM,{b:\"[_a-z][\\\\w']*\"}),i]};return{aliases:[\"hs\"],k:\"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec\",c:[{bK:\"module\",e:\"where\",k:\"module where\",c:[n,i],i:\"\\\\W\\\\.|;\"},{b:\"\\\\bimport\\\\b\",e:\"$\",k:\"import qualified as hiding\",c:[n,i],i:\"\\\\W\\\\.|;\"},{cN:\"class\",b:\"^(\\\\s*)?(class|instance)\\\\b\",e:\"where\",k:\"class family instance where\",c:[c,n,i]},{cN:\"class\",b:\"\\\\b(data|(new)?type)\\\\b\",e:\"$\",k:\"data family type newtype deriving\",c:[a,c,n,{b:\"{\",e:\"}\",c:n.c},i]},{bK:\"default\",e:\"$\",c:[c,n,i]},{bK:\"infix infixl infixr\",e:\"$\",c:[e.CNM,i]},{b:\"\\\\bforeign\\\\b\",e:\"$\",k:\"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe\",c:[c,e.QSM,i]},{cN:\"meta\",b:\"#!\\\\/usr\\\\/bin\\\\/env runhaskell\",e:\"$\"},a,l,e.QSM,e.CNM,c,e.inherit(e.TM,{b:\"^[_a-z][\\\\w']*\"}),i,{b:\"->|<-\"}]}});hljs.registerLanguage(\"coffeescript\",function(e){var c={keyword:\"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super yield import export from as default await then unless until loop of by when and or is isnt not\",literal:\"true false null undefined yes no on off\",built_in:\"npm require console print module global window document\"},n=\"[A-Za-z$_][0-9A-Za-z$_]*\",r={cN:\"subst\",b:/#\\{/,e:/}/,k:c},i=[e.BNM,e.inherit(e.CNM,{starts:{e:\"(\\\\s*/)?\",relevance:0}}),{cN:\"string\",v:[{b:/'''/,e:/'''/,c:[e.BE]},{b:/'/,e:/'/,c:[e.BE]},{b:/\"\"\"/,e:/\"\"\"/,c:[e.BE,r]},{b:/\"/,e:/\"/,c:[e.BE,r]}]},{cN:\"regexp\",v:[{b:\"///\",e:\"///\",c:[r,e.HCM]},{b:\"//[gim]{0,3}(?=\\\\W)\",relevance:0},{b:/\\/(?![ *]).*?(?![\\\\]).\\/[gim]{0,3}(?=\\W)/}]},{b:\"@\"+n},{sL:\"javascript\",eB:!0,eE:!0,v:[{b:\"```\",e:\"```\"},{b:\"`\",e:\"`\"}]}];r.c=i;var s=e.inherit(e.TM,{b:n}),t=\"(\\\\(.*\\\\))?\\\\s*\\\\B[-=]>\",a={cN:\"params\",b:\"\\\\([^\\\\(]\",rB:!0,c:[{b:/\\(/,e:/\\)/,k:c,c:[\"self\"].concat(i)}]};return{aliases:[\"coffee\",\"cson\",\"iced\"],k:c,i:/\\/\\*/,c:i.concat([e.C(\"###\",\"###\"),e.HCM,{cN:\"function\",b:\"^\\\\s*\"+n+\"\\\\s*=\\\\s*\"+t,e:\"[-=]>\",rB:!0,c:[s,a]},{b:/[:\\(,=]\\s*/,relevance:0,c:[{cN:\"function\",b:t,e:\"[-=]>\",rB:!0,c:[a]}]},{cN:\"class\",bK:\"class\",e:\"$\",i:/[:=\"\\[\\]]/,c:[{bK:\"extends\",eW:!0,i:/[:=\"\\[\\]]/,c:[s]},s]},{b:n+\":\",e:\":\",rB:!0,rE:!0,relevance:0}])}});hljs.registerLanguage(\"r\",function(e){var r=\"([a-zA-Z]|\\\\.[a-zA-Z.])[a-zA-Z0-9._]*\";return{c:[e.HCM,{b:r,l:r,k:{keyword:\"function if in break next repeat else for return switch while try tryCatch stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...\",literal:\"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10\"},relevance:0},{cN:\"number\",b:\"0[xX][0-9a-fA-F]+[Li]?\\\\b\",relevance:0},{cN:\"number\",b:\"\\\\d+(?:[eE][+\\\\-]?\\\\d*)?L\\\\b\",relevance:0},{cN:\"number\",b:\"\\\\d+\\\\.(?!\\\\d)(?:i\\\\b)?\",relevance:0},{cN:\"number\",b:\"\\\\d+(?:\\\\.\\\\d*)?(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\",relevance:0},{cN:\"number\",b:\"\\\\.\\\\d+(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\",relevance:0},{b:\"`\",e:\"`\",relevance:0},{cN:\"string\",c:[e.BE],v:[{b:'\"',e:'\"'},{b:\"'\",e:\"'\"}]}]}});hljs.registerLanguage(\"autohotkey\",function(e){var a={b:\"`[\\\\s\\\\S]\"};return{cI:!0,aliases:[\"ahk\"],k:{keyword:\"Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group\",literal:\"true false NOT AND OR\",built_in:\"ComSpec Clipboard ClipboardAll ErrorLevel\"},c:[a,e.inherit(e.QSM,{c:[a]}),e.C(\";\",\"$\",{relevance:0}),e.CBCM,{cN:\"number\",b:e.NR,relevance:0},{cN:\"variable\",b:\"%[a-zA-Z0-9#_$@]+%\"},{cN:\"built_in\",b:\"^\\\\s*\\\\w+\\\\s*(,|%)\"},{cN:\"title\",v:[{b:'^[^\\\\n\";]+::(?!=)'},{b:'^[^\\\\n\";]+:(?!=)',relevance:0}]},{cN:\"meta\",b:\"^\\\\s*#\\\\w+\",e:\"$\",relevance:0},{cN:\"built_in\",b:\"A_[a-zA-Z0-9]+\"},{b:\",\\\\s*,\"}]}});hljs.registerLanguage(\"elixir\",function(e){var b=\"[a-zA-Z_][a-zA-Z0-9_.]*(\\\\!|\\\\?)?\",c=\"and false then defined module in return redo retry end for true self when next until do begin unless nil break not case cond alias while ensure or include use alias fn quote require import with|0\",n={cN:\"subst\",b:\"#\\\\{\",e:\"}\",l:b,k:c},r=\"[/|([{<\\\"']\",a={cN:\"string\",b:\"~[a-z](?=\"+r+\")\",c:[{endsParent:!0,c:[{c:[e.BE,n],v:[{b:/\"/,e:/\"/},{b:/'/,e:/'/},{b:/\\//,e:/\\//},{b:/\\|/,e:/\\|/},{b:/\\(/,e:/\\)/},{b:/\\[/,e:/\\]/},{b:/\\{/,e:/\\}/},{b:/</,e:/>/}]}]}]},i={cN:\"string\",b:\"~[A-Z](?=\"+r+\")\",c:[{b:/\"/,e:/\"/},{b:/'/,e:/'/},{b:/\\//,e:/\\//},{b:/\\|/,e:/\\|/},{b:/\\(/,e:/\\)/},{b:/\\[/,e:/\\]/},{b:/\\{/,e:/\\}/},{b:/\\</,e:/\\>/}]},l={cN:\"string\",c:[e.BE,n],v:[{b:/\"\"\"/,e:/\"\"\"/},{b:/'''/,e:/'''/},{b:/~S\"\"\"/,e:/\"\"\"/,c:[]},{b:/~S\"/,e:/\"/,c:[]},{b:/~S'''/,e:/'''/,c:[]},{b:/~S'/,e:/'/,c:[]},{b:/'/,e:/'/},{b:/\"/,e:/\"/}]},s={cN:\"function\",bK:\"def defp defmacro\",e:/\\B\\b/,c:[e.inherit(e.TM,{b:b,endsParent:!0})]},t=e.inherit(s,{cN:\"class\",bK:\"defimpl defmodule defprotocol defrecord\",e:/\\bdo\\b|$|;/}),d=[l,i,a,e.HCM,t,s,{b:\"::\"},{cN:\"symbol\",b:\":(?![\\\\s:])\",c:[l,{b:\"[a-zA-Z_]\\\\w*[!?=]?|[-+~]\\\\@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?\"}],relevance:0},{cN:\"symbol\",b:b+\":(?!:)\",relevance:0},{cN:\"number\",b:\"(\\\\b0o[0-7_]+)|(\\\\b0b[01_]+)|(\\\\b0x[0-9a-fA-F_]+)|(-?\\\\b[1-9][0-9_]*(.[0-9_]+([eE][-+]?[0-9]+)?)?)\",relevance:0},{cN:\"variable\",b:\"(\\\\$\\\\W)|((\\\\$|\\\\@\\\\@?)(\\\\w+))\"},{b:\"->\"},{b:\"(\"+e.RSR+\")\\\\s*\",c:[e.HCM,{cN:\"regexp\",i:\"\\\\n\",c:[e.BE,n],v:[{b:\"/\",e:\"/[a-z]*\"},{b:\"%r\\\\[\",e:\"\\\\][a-z]*\"}]}],relevance:0}];return{l:b,k:c,c:n.c=d}});hljs.registerLanguage(\"gradle\",function(e){return{cI:!0,k:{keyword:\"task project allprojects subprojects artifacts buildscript configurations dependencies repositories sourceSets description delete from into include exclude source classpath destinationDir includes options sourceCompatibility targetCompatibility group flatDir doLast doFirst flatten todir fromdir ant def abstract break case catch continue default do else extends final finally for if implements instanceof native new private protected public return static switch synchronized throw throws transient try volatile while strictfp package import false null super this true antlrtask checkstyle codenarc copy boolean byte char class double float int interface long short void compile runTime file fileTree abs any append asList asWritable call collect compareTo count div dump each eachByte eachFile eachLine every find findAll flatten getAt getErr getIn getOut getText grep immutable inject inspect intersect invokeMethods isCase join leftShift minus multiply newInputStream newOutputStream newPrintWriter newReader newWriter next plus pop power previous print println push putAt read readBytes readLines reverse reverseEach round size sort splitEachLine step subMap times toInteger toList tokenize upto waitForOrKill withPrintWriter withReader withStream withWriter withWriterAppend write writeLine\"},c:[e.CLCM,e.CBCM,e.ASM,e.QSM,e.NM,e.RM]}});hljs.registerLanguage(\"css\",function(e){var c={b:/(?:[A-Z\\_\\.\\-]+|--[a-zA-Z0-9_-]+)\\s*:/,rB:!0,e:\";\",eW:!0,c:[{cN:\"attribute\",b:/\\S/,e:\":\",eE:!0,starts:{eW:!0,eE:!0,c:[{b:/[\\w-]+\\(/,rB:!0,c:[{cN:\"built_in\",b:/[\\w-]+/},{b:/\\(/,e:/\\)/,c:[e.ASM,e.QSM,e.CSSNM]}]},e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:\"number\",b:\"#[0-9A-Fa-f]+\"},{cN:\"meta\",b:\"!important\"}]}}]};return{cI:!0,i:/[=\\/|'\\$]/,c:[e.CBCM,{cN:\"selector-id\",b:/#[A-Za-z0-9_-]+/},{cN:\"selector-class\",b:/\\.[A-Za-z0-9_-]+/},{cN:\"selector-attr\",b:/\\[/,e:/\\]/,i:\"$\",c:[e.ASM,e.QSM]},{cN:\"selector-pseudo\",b:/:(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\"'.]+/},{b:\"@(page|font-face)\",l:\"@[a-z-]+\",k:\"@page @font-face\"},{b:\"@\",e:\"[{;]\",i:/:/,rB:!0,c:[{cN:\"keyword\",b:/@\\-?\\w[\\w]*(\\-\\w+)*/},{b:/\\s/,eW:!0,eE:!0,relevance:0,k:\"and or not only\",c:[{b:/[a-z-]+:/,cN:\"attribute\"},e.ASM,e.QSM,e.CSSNM]}]},{cN:\"selector-tag\",b:\"[a-zA-Z-][a-zA-Z0-9_-]*\",relevance:0},{b:\"{\",e:\"}\",i:/\\S/,c:[e.CBCM,c]}]}});\n\nexports.hljs = hljs;\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/highlight/highlight.js",
"module-type": "library"
},
"$:/plugins/tiddlywiki/highlight/highlight.css": {
"text": "/*\n\nOriginal highlight.js style (c) Ivan Sagalaev <maniac@softwaremaniacs.org>\n\n*/\n\n.hljs {\n display: block;\n overflow-x: auto;\n padding: 0.5em;\n background: #F0F0F0;\n}\n\n\n/* Base color: saturation 0; */\n\n.hljs,\n.hljs-subst {\n color: #444;\n}\n\n.hljs-comment {\n color: #888888;\n}\n\n.hljs-keyword,\n.hljs-attribute,\n.hljs-selector-tag,\n.hljs-meta-keyword,\n.hljs-doctag,\n.hljs-name {\n font-weight: bold;\n}\n\n\n/* User color: hue: 0 */\n\n.hljs-type,\n.hljs-string,\n.hljs-number,\n.hljs-selector-id,\n.hljs-selector-class,\n.hljs-quote,\n.hljs-template-tag,\n.hljs-deletion {\n color: #880000;\n}\n\n.hljs-title,\n.hljs-section {\n color: #880000;\n font-weight: bold;\n}\n\n.hljs-regexp,\n.hljs-symbol,\n.hljs-variable,\n.hljs-template-variable,\n.hljs-link,\n.hljs-selector-attr,\n.hljs-selector-pseudo {\n color: #BC6060;\n}\n\n\n/* Language color: hue: 90; */\n\n.hljs-literal {\n color: #78A960;\n}\n\n.hljs-built_in,\n.hljs-bullet,\n.hljs-code,\n.hljs-addition {\n color: #397300;\n}\n\n\n/* Meta color: hue: 200 */\n\n.hljs-meta {\n color: #1f7199;\n}\n\n.hljs-meta-string {\n color: #4d99bf;\n}\n\n\n/* Misc effects */\n\n.hljs-emphasis {\n font-style: italic;\n}\n\n.hljs-strong {\n font-weight: bold;\n}\n",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/highlight/highlight.css",
"tags": "[[$:/tags/Stylesheet]]"
},
"$:/plugins/tiddlywiki/highlight/highlightblock.js": {
"title": "$:/plugins/tiddlywiki/highlight/highlightblock.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/highlight/highlightblock.js\ntype: application/javascript\nmodule-type: widget\n\nWraps up the fenced code blocks parser for highlight and use in TiddlyWiki5\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TYPE_MAPPINGS_BASE = \"$:/config/HighlightPlugin/TypeMappings/\";\n\nvar CodeBlockWidget = require(\"$:/core/modules/widgets/codeblock.js\").codeblock;\n\nvar hljs = require(\"$:/plugins/tiddlywiki/highlight/highlight.js\");\n\nhljs.configure({tabReplace: \" \"});\t\n\nCodeBlockWidget.prototype.postRender = function() {\n\tvar domNode = this.domNodes[0],\n\t\tlanguage = this.language,\n\t\ttiddler = this.wiki.getTiddler(TYPE_MAPPINGS_BASE + language);\n\tif(tiddler) {\n\t\tlanguage = tiddler.fields.text || \"\";\n\t}\n\tif(language && hljs.getLanguage(language)) {\n\t\tdomNode.className = language.toLowerCase() + \" hljs\";\n\t\tif($tw.browser && !domNode.isTiddlyWikiFakeDom) {\n\t\t\thljs.highlightBlock(domNode);\t\t\t\n\t\t} else {\n\t\t\tvar text = domNode.textContent;\n\t\t\tdomNode.children[0].innerHTML = hljs.fixMarkup(hljs.highlight(language,text).value);\n\t\t\t// If we're using the fakedom then specially save the original raw text\n\t\t\tif(domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tdomNode.children[0].textInnerHTML = text;\n\t\t\t}\n\t\t}\n\t}\t\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/tiddlywiki/highlight/howto": {
"title": "$:/plugins/tiddlywiki/highlight/howto",
"text": "! Supporting Additional Languages\n \nThe [[highlight.js|https://github.com/highlightjs/highlight.js]] project supports many languages. Only a subset of these languages are supported by the plugin. It is possible for users to change the set of languages supported by the plugin by following these steps:\n \n# Go to the highlight.js project [[download page|https://highlightjs.org/download/]], select the language definitions to include, and press the Download button to download a zip archive containing customised support files for a highlight.js syntax highlighting server.\n# Locate the `highlight.pack.js` file in the highlight plugin -- on a stock Debian 8 system running Tiddlywiki5 under node-js it is located at `/usr/local/lib/node_modules/tiddlywiki/plugins/tiddlywiki/highlight/files/highlight.pack.js`.\n# Replace the plugin `highlight.pack.js` file located in step 2 with the one from the downloaded archive obtained in step 1.\n# Restart the Tiddlywiki server.\n"
},
"$:/plugins/tiddlywiki/highlight/license": {
"title": "$:/plugins/tiddlywiki/highlight/license",
"type": "text/plain",
"text": "Copyright (c) 2006, Ivan Sagalaev\nAll rights reserved.\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n * Neither the name of highlight.js nor the names of its contributors\n may be used to endorse or promote products derived from this software\n without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
},
"$:/plugins/tiddlywiki/highlight/readme": {
"title": "$:/plugins/tiddlywiki/highlight/readme",
"text": "This plugin provides syntax highlighting of code blocks using v9.18.1 of [[highlight.js|https://github.com/isagalaev/highlight.js]] from Ivan Sagalaev.\n\n! Usage\n\nWhen the plugin is installed it automatically applies highlighting to all codeblocks defined with triple backticks or with the CodeBlockWidget.\n\nThe language can optionally be specified after the opening triple braces:\n\n<$codeblock code=\"\"\"```css\n * { margin: 0; padding: 0; } /* micro reset */\n\nhtml { font-size: 62.5%; }\nbody { font-size: 14px; font-size: 1.4rem; } /* =14px */\nh1 { font-size: 24px; font-size: 2.4rem; } /* =24px */\n```\"\"\"/>\n\nIf no language is specified highlight.js will attempt to automatically detect the language.\n\n! Built-in Language Brushes\n\nThe plugin includes support for the following languages (referred to as \"brushes\" by highlight.js):\n\n* apache\n* arduino\n* arm assembly\n* asciidoc\n* autohotkey\n* awk\n* bash\n* cmake\n* coffeescript\n* cpp\n* cs\n* css\n* diff\n* dockerfile\n* erlang\n* elixir\n* fortran\n* go\n* gradle\n* haskell\n* html\n* http\n* ini\n* intel x86 assembly\n* java\n* javascript\n* json\n* kotlin\n* less\n* lua\n* makefile\n* markdown\n* mathematica\n* matlab\n* nginx\n* objectivec\n* perl\n* php\n* plaintext\n* powershell\n* properties\n* python\n* R\n* ruby\n* rust\n* scss\n* shell session\n* sql\n* swift\n* toml\n* typescript\n* vala\n* vim script\n* xml\n* yaml\n\nYou can also specify the language as a MIME content type (eg `text/html` or `text/css`). The mapping is accomplished via mapping tiddlers whose titles start with `$:/config/HighlightPlugin/TypeMappings/`.\n"
},
"$:/plugins/tiddlywiki/highlight/styles": {
"title": "$:/plugins/tiddlywiki/highlight/styles",
"tags": "[[$:/tags/Stylesheet]]",
"text": ".hljs {\n display: block;\n overflow-x: auto;\n padding: 0.5em;\n background: <<colour tiddler-editor-background>>;\n color: <<colour foreground>>;\n -webkit-text-size-adjust:none\n}\n\n.hljs-comment,\n.hljs-quote {\n color: #93a1a1;\n}\n\n/* Solarized Green */\n.hljs-keyword,\n.hljs-selector-tag,\n.hljs-addition {\n color: #859900;\n}\n\n/* Solarized Cyan */\n.hljs-number,\n.hljs-string,\n.hljs-meta .hljs-meta-string,\n.hljs-literal,\n.hljs-doctag,\n.hljs-regexp {\n color: #2aa198;\n}\n\n/* Solarized Blue */\n.hljs-title,\n.hljs-section,\n.hljs-name,\n.hljs-selector-id,\n.hljs-selector-class {\n color: #268bd2;\n}\n\n/* Solarized Yellow */\n.hljs-attribute,\n.hljs-attr,\n.hljs-variable,\n.hljs-template-variable,\n.hljs-class .hljs-title,\n.hljs-type {\n color: #b58900;\n}\n\n/* Solarized Orange */\n.hljs-symbol,\n.hljs-bullet,\n.hljs-subst,\n.hljs-meta,\n.hljs-meta .hljs-keyword,\n.hljs-selector-attr,\n.hljs-selector-pseudo,\n.hljs-link {\n color: #cb4b16;\n}\n\n/* Solarized Red */\n.hljs-built_in,\n.hljs-deletion {\n color: #dc322f;\n}\n\n.hljs-formula {\n background: #eee8d5;\n}\n\n.hljs-emphasis {\n font-style: italic;\n}\n\n.hljs-strong {\n font-weight: bold;\n}\n"
},
"$:/plugins/tiddlywiki/highlight/usage": {
"title": "$:/plugins/tiddlywiki/highlight/usage",
"text": "! Usage\n\nFenced code blocks can have a language specifier added to trigger highlighting in a specific language. Otherwise heuristics are used to detect the language.\n\n```\n ```js\n var a = b + c; // Highlighted as JavaScript\n ```\n```\n! Adding Themes\n\nYou can add themes from highlight.js by copying the CSS to a new tiddler and tagging it with [[$:/tags/Stylesheet]]. The available themes can be found on GitHub:\n\nhttps://github.com/isagalaev/highlight.js/tree/master/src/styles\n"
}
}
}
{
"tiddlers": {
"$:/plugins/TWaddle/TabLinks/Stylesheet": {
"created": "20170304101100313",
"creator": "twMat",
"text": "<pre>\n.tablink {display:none;}\n\n.tc-tab-selected .tablink {\n display:{{$:/plugins/TWaddle/TabLinks/Stylesheet!!display}};\n position:absolute;\n margin:-1.5rem 0 0 -7px;\n font-size:1rem;\n background:white;\n padding:0 5px;\n border:1px solid silver;\n border-radius:2px;\n visibility:hidden;\n opacity:0;\n}\n.tc-tab-selected:hover .tablink {\n visibility:visible;\n opacity:1;\n -webkit-transition:opacity 0.9s;\n -moz-transition:opacity 0.9s;\n -ms-transition:opacity 0.9s; \n -o-transition:opacity 0.9s;\n transition:opacity 0.9s;\n -webkit-transition-timing-function: ease-in; /* Safari and Chrome */\n transition-timing-function: ease-in;\n}\n.tc-tab-buttons .tablink button, .tablink-btn {\n border:0;\n background:transparent;\n padding: 2px 1px;\n margin:0;\n}\n\n.tablink-btn { opacity:.4; }\n\n.tablink-btn:hover { opacity:1; } \n\n.tablink a:hover { text-decoration:none; }\n</pre>",
"type": "text/vnd.tiddlywiki",
"title": "$:/plugins/TWaddle/TabLinks/Stylesheet",
"tags": "$:/tags/Stylesheet",
"modifier": "twMat",
"modified": "20180914222330633",
"list-after": "$:/themes/tiddlywiki/vanilla/base",
"display": "inline-block"
},
"$:/plugins/TWaddle/TabLinks/Toggle": {
"created": "20170115223014606",
"creator": "twMat",
"text": "<$checkbox tiddler=\"$:/plugins/TWaddle/TabLinks/Stylesheet\" field=\"display\" checked=\"inline-block\" unchecked=\"none\" default=\"inline-block\"> In tabs, display shortcut links to the content tiddler, //when hovering// on the active tab.\n\n",
"title": "$:/plugins/TWaddle/TabLinks/Toggle",
"tags": "$:/tags/ControlPanel/Settings",
"modifier": "twMat",
"modified": "20180914222302945",
"list-before": "",
"caption": "TabLinks"
},
"$:/plugins/TWaddle/TabLinks/macro": {
"created": "20160806203109547",
"creator": "twMat",
"text": "\\define tablink()\n<div class=\"tablink\">\n<$tiddler tiddler=<<currentTab>>>\n<$link to=<<currentTab>> tooltip=\"go to tab\" >\n <span class=\"tablink-btn\">{{$:/core/images/preview-open}}</span>\n</$link>\n<$button message=\"tm-edit-tiddler\" param=<<currentTab>> tooltip=\"edit tab\">\n <span class=\"tablink-btn\">{{$:/core/images/edit-button}}</span>\n</$button>\n</$tiddler>\n</div>\n\\end",
"title": "$:/plugins/TWaddle/TabLinks/macro",
"tags": "$:/tags/Macro",
"modifier": "twMat",
"modified": "20180914222219769"
},
"$:/core/macros/tabs": {
"created": "20180914222106589",
"creator": "twMat",
"title": "$:/core/macros/tabs",
"tags": "$:/tags/Macro",
"text": "\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template,buttonTemplate,retain)\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<qualify \"$state$\">> setTo=<<currentTab>> default=\"$default$\" selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}}>\n<$tiddler tiddler=<<save-currentTiddler>>><<tablink>>\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude tiddler=\"$buttonTemplate$\" mode=\"inline\">\n<$transclude tiddler=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$transclude>\n</$set></$tiddler></$button></$tiddler></$set></$list>\n</div>\n<div class=\"tc-tab-divider $class$\"/>\n<div class=\"tc-tab-content $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\">\n\n<$reveal type=\"match\" state=<<qualify \"$state$\">> text=<<currentTab>> default=\"$default$\" retain=\"\"\"$retain$\"\"\">\n\n<$transclude tiddler=\"$template$\" mode=\"block\">\n\n<$transclude tiddler=<<currentTab>> mode=\"block\"/>\n\n</$transclude>\n\n</$reveal>\n\n</$list>\n</div>\n</div>\n\\end\n",
"modified": "20180914222110828",
"modifier": "twMat"
}
}
}
<pre>
.tablink {display:none;}
.tc-tab-selected .tablink {
display:{{$:/plugins/TWaddle/TabLinks/Stylesheet!!display}};
position:absolute;
margin:-1.5rem 0 0 -7px;
font-size:1rem;
background:<<colour background>>;
padding:0 5px;
border:1px solid silver;
border-radius:2px;
visibility:hidden;
opacity:0;
}
.tc-tab-selected:hover .tablink {
visibility:visible;
opacity:1;
-webkit-transition:opacity 0.9s;
-moz-transition:opacity 0.9s;
-ms-transition:opacity 0.9s;
-o-transition:opacity 0.9s;
transition:opacity 0.9s;
-webkit-transition-timing-function: ease-in; /* Safari and Chrome */
transition-timing-function: ease-in;
}
.tc-tab-buttons .tablink button, .tablink-btn {
border:0;
background:transparent;
padding: 2px 1px;
margin:0;
}
.tc-tab-buttons. tc-vertical {
z-index:100;
display:block;
padding-top:14px;
vertical-align:top;
text-align:left;
margin-bottom:inherit;
margin-right:-1px;
max-width:33%;
flex:0 0 auto;
}
.tablink-btn { opacity:.4; }
.tablink-btn:hover { opacity:1; }
.tablink a:hover { text-decoration:none; }
</pre>
/*\
title: $:/scripts/CreateTaskMacro
type: application/javascript
module-type: macro
\*/
(function(){
exports.name = "createTask";
exports.params = [
{name: "currentTitle"}
];
exports.run = function(currentTitle) {
var newTiddlerTitle = "New Tiddler";
var newTiddlerTags = "[[" + currentTitle + "]]";
var newTiddlerFields = {
title: newTiddlerTitle,
tags: newTiddlerTags,
text: "This is a new tiddler."
};
$tw.wiki.addTiddler(new $tw.Tiddler(newTiddlerFields));
};
})();
$:/core/ui/ImportPreviews/Fields
$:/core/ui/DefaultSearchResultList
$:/core/ui/AdvancedSearch/Standard
$:/core/ui/TiddlerInfo/Fields
$:/core/ui/DefaultSearchResultList
$:/plugins/felixhayashi/tiddlymap/dialog/configureView/editFilters
$:/plugins/felixhayashi/tiddlymap/dialog/configureView/editFilters
$:/themes/tiddlywiki/vanilla/themetweaks
$:/plugins/felixhayashi/tiddlymap/dialog/configureView/editFilters
$:/core/ui/ControlPanel/Basics
$:/plugins/felixhayashi/tiddlymap/dialog/configureView/vis
$:/core/ui/DefaultSearchResultList
$:/core/ui/DefaultSearchResultList
$:/core/ui/TiddlerInfo/References
$:/core/ui/DefaultSearchResultList
$:/core/ui/ControlPanel/Plugins/Installed/Plugins
$:/core/ui/TiddlerInfo/Fields
$:/plugins/felixhayashi/tiddlymap/dialog/configureView/editFilters
$:/core/ui/MoreSideBar/Plugins/Languages
$:/plugins/felixhayashi/tiddlymap/dialog/configureView/layout
$:/core/ui/DefaultSearchResultList
$:/plugins/felixhayashi/tiddlymap/dialog/configureView/editFilters
$:/plugins/felixhayashi/tiddlymap/dialog/configureView/layout
$:/core/ui/ControlPanel/Toolbars/ViewToolbar
$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft
$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/original
$:/core/ui/DefaultSearchResultList
$:/core/ui/ControlPanel/Info
$:/plugins/felixhayashi/tiddlymap/dialog/configureView/editFilters
$:/core/ui/ControlPanel/Saving/General
$:/plugins/felixhayashi/tiddlymap/dialog/configureView/vis
$:/plugins/felixhayashi/tiddlymap/dialog/editNode/local
$:/core/ui/DefaultSearchResultList
$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/original
$:/plugins/felixhayashi/tiddlymap/dialog/configureView/default
$:/core/ui/DefaultSearchResultList
$:/plugins/felixhayashi/tiddlymap/dialog/configureView/layout
$:/themes/jd/Mono/Config/DatabaseValues
$:/core/ui/TiddlerInfo/Advanced
$:/core/ui/MoreSideBar/All
$:/core/ui/DefaultSearchResultList
$:/core/ui/ControlPanel/Toolbars/PageControls
span.blacking {background: #222; color: #222;}
span.blacking:hover {background: #222; color: #fff;}
{
"tiddlers": {
"$:/themes/jd/Mono/TopBarSegments/search": {
"created": "20190130163600391",
"creator": "jd",
"text": "\\define NewTidActions(searcharea)\n<$action-createtiddler $basetitle={{$searcharea$}} $savetitle=\"$:/temp/NewTidTitle\"/>\n<$action-sendmessage $message=\"tm-edit-tiddler\" $param={{$:/temp/NewTidTitle}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/NewTidTitle\"/>\n<$action-setfield $tiddler=\"$searcharea$\" text=\"\"/>\n\\end\n\\define searchbar()\n<$list variable=\"stateCheck\" filter=\"[[$:/config/TopRightBar/$:/themes/jd/Mono/TopBarSegments/search]!text[hide]]\">\n<div class=\"tc-sidebar-lists\">\n\n<$set name=\"searchTiddler\" value=\"$:/temp/advancedsearch\">\n<$keyboard class=\"tc-search\" tag=\"div\" key=\"enter\" actions=<<NewTidActions \"$:/temp/advancedsearch\">>>\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-popup-handle\" default=\"\" placeholder=\"search, [enter] to create\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button tooltip=\"Create new tiddler with this title\" class=\"tc-btn-invisible\" actions=<<NewTidActions \"$:/temp/advancedsearch\">>>\n{{$:/core/images/new-button}}\n</$button>\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n<$button popup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n<$list filter=\"[is[system]prefix[$:/state/searchtab]text[$:/core/ui/AdvancedSearch/Filter]limit[1]]\" variable=\"tabCheck\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch/FilterButton]!has[draft.of]]-$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear\"><$transclude/></$list></$list>\n</$reveal>\n</$keyboard>\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown-wrapper\" state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown tc-search-drop-down tc-popup-handle\" state=<<qualify \"$:/state/popup/search-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n\n<style>.tc-block-dropdown.tc-search-drop-down { display: flex; }</style>\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch]!has[draft.of]]\" \"$:/core/ui/AdvancedSearch/System\" \"$:/state/searchtab\">>\n\n</$reveal>\n\n</$reveal>\n\n</$set>\n\n</div>\n\n</$list>\n\n\\end\n\n<div class=\"mobile-only\">\n\n<$list filter=\"[[$:/state/searchbar]text[show]]\">\n\n<<searchbar>>\n\n</$list>\n\n</div>\n\n<div class=\"desktop-only\">\n\n<<searchbar>>\n\n</div>\n",
"title": "$:/themes/jd/Mono/TopBarSegments/search",
"tags": "$:/tags/TopRightBar",
"modifier": "jd",
"modified": "20190203083032524"
},
"$:/themes/jd/Mono/TopBarSegments/buttons": {
"created": "20190201105717721",
"creator": "jd",
"text": "<div class=\"tc-page-controls\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$list filter=\"[enlist{$:/themes/jd/Mono/Database!!list}] +[!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</$set>\n\n</div>\n",
"title": "$:/themes/jd/Mono/TopBarSegments/buttons",
"tags": "$:/tags/TopLeftBar",
"modifier": "jd",
"modified": "20190203014153431"
},
"$:/themes/jd/Mono/Stylesheet": {
"created": "20190130145325995",
"creator": "jd",
"text": "\\define bkrpnt() {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}\n\\define sidebar() {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}}\n\\define fontsize() {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}}\n\n\n\n/* MAIN */\n\n@media (min-width: <<bkrpnt>>) {\n.tc-sidebar-scrollable {\n position: fixed;\n top: {{$:/themes/jd/Mono/Database##header-position-desktop}};\n left: 0;\n bottom: 0;\n right: unset;\n width: <<sidebar>>;\n margin: 0;\n padding: 0 2em 2em 2em;\n}\n.tc-story-river {\n width: calc(100% - <<sidebar>>);\n padding: 0 2em 4em 2em;\n}\n<$list filter=\"[[$:/view]!text[zoomin]]\">\n.tc-story-river { top: 0.25em; }\n</$list>\n<$list filter=\"[[$:/view]text[zoomin]]\">\n.tc-story-river {\n top: calc({{$:/themes/jd/Mono/Database##header-position-desktop}} + 0.25em);\n}\n</$list>\n<$list filter=\"[[$:/state/sidebar]!text[no]]\" variable=\"stateCheck\">\n.tc-story-river {\n left: <<sidebar>>;\n right: 0;\n}\n</$list>\n<$list filter=\"[[$:/state/sidebar]text[no]]\" variable=\"stateCheck\">\n.tc-story-river {\n left: calc(<<sidebar>> / 2);\n right: calc(<<sidebar>> / 2);\n}\n</$list>\n.tc-tiddler-frame {\n margin: 0 0 2em 0;\n width: 100%;\n border-radius: 1px;\n <<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.15)\">>\n}\n.tc-storyview-zoomin-tiddler {\n width: calc(100% - 4em) !important;\n}\n}\n\n@media (max-width: <<bkrpnt>>) {\n.tc-sidebar-scrollable { padding: 0 1em 2em 1em; }\n.tc-sidebar-header { padding: 0; }\n.tc-tiddler-frame { margin-bottom: 2px !important; }\n}\n\n<$list filter=\"[[$:/state/sidebar]!text[no]]\" variable=\"stateCheck\">\n@media (max-width: <<bkrpnt>>) {\n.tc-story-river { display: none; }\n}\n</$list>\n\n<$list filter=\"[[$:/state/sidebar]text[no]]\" variable=\"stateCheck\">\n@media (max-width: <<bkrpnt>>) {\n.tc-sidebar-scrollable { padding-top: 0; padding-bottom: 0; }\n}\n</$list>\n\n<$list filter=\"[[$:/themes/tiddlywiki/vanilla/options/stickytitles]text[yes]]\" variable=\"stateCheck\">\n@media (min-width: <<bkrpnt>>) {\n.tc-tiddler-title {\n top: calc({{$:/themes/jd/Mono/Database##header-position-desktop}} - .25em);\n}\n}\n\n.tc-titlebar {\n line-height: 0;\n}\n\n@media (max-width: <<bkrpnt>>) {\n<$list filter=\"[[$:/state/searchbar]text[show]]\">\n.tc-tiddler-edit-frame .tc-tiddler-title {\n top: {{$:/themes/jd/Mono/Database##header-position-mobile-yes-searchbar}};\n}\n.tc-tiddler-view-frame .tc-tiddler-title {\n top: {{$:/themes/jd/Mono/Database##header-position-mobile-yes-searchbar}};\n}\n</$list>\n<$list filter=\"[[$:/state/searchbar]!text[show]]\">\n.tc-tiddler-title {\n top: {{$:/themes/jd/Mono/Database##header-position-mobile-no-searchbar}};\n}\n</$list>\n}\n</$list>\n\n.tc-sidebar-scrollable .tc-tab-buttons,\n.tc-topbar .tc-page-controls button,\n.tc-topbar .tc-search button {\n padding: 0;\n}\n\n/* TOPBAR */\n\n<$list filter=\"[[$:/view]!text[zoomin]]\">\n<$list filter=\"[[$:/config/topbar/sticky]!text[no]]\">\n.tc-topbar { position: sticky; }\n@media (max-width: <<bkrpnt>>) { \n.tc-story-river { margin-top: -2.5em; }\n}\n</$list>\n<$list filter=\"[[$:/config/topbar/sticky]text[no]]\">\n.tc-topbar { position: fixed; }\n@media (min-width: <<bkrpnt>>) { \n.tc-topbar { height: 56px; }\n.tc-story-river { margin-top: 56px; }\n}\n<$list filter=\"[[$:/state/searchbar]!text[hide]]\">\n@media (max-width: <<bkrpnt>>) { \n.tc-topbar { height: 94px; }\n.tc-story-river { margin-top: calc(48px + 1em); }\n}\n</$list>\n<$list filter=\"[[$:/state/searchbar]text[hide]]\">\n@media (max-width: <<bkrpnt>>) { \n.tc-topbar { height: 48px; }\n.tc-story-river { margin-top: 1em; }\n}\n</$list>\n</$list>\n</$list>\n\n<$list filter=\"[[$:/view]text[zoomin]]\">\n.tc-topbar { position: fixed; }\n</$list>\n\n.tc-topbar {\n top: 0;\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.25em 1em;\n background: <<colour page-background>>;\n z-index: 900;\n}\n\n@media (min-width: <<bkrpnt>>) {\n.tc-topbar {\n padding: 1em 2em;\n max-height: {{$:/themes/jd/Mono/Database##header-position-desktop}};\n}\n}\n\n@media (max-width: <<bkrpnt>>) {\n.tc-topbar > * {\n width: 100%;\n}\n.tc-topbar .tc-topbar-left {\n padding: 0.75em 0;\n}\n.tc-topbar .tc-topbar-right .tc-search {\n margin-bottom: 0.5em;\n}\n.tc-topbar-right {\n font-size: 1.25em !important;\n}\n.tc-topbar .tc-page-controls {\n justify-content: space-between;\n width: 100%;\n}\n}\n\n.tc-topbar .tc-page-controls,\n.tc-topbar .tc-search {\n display: flex;\n align-items: center;\n}\n\n/* TOPBAR SEARCH */\n\n.tc-topbar .tc-search {\n border: 1px solid <<colour table-border>>;\n background: <<colour page-background>>;\n border-radius: 0;\n padding: 0.25em;\n}\n.tc-topbar .tc-search input {\n border: none;\n background: transparent;\n width: 100%;\n}\n.tc-topbar .tc-search .tc-reveal {\n display: flex;\n}\n\n/* controls */\n\n.tc-topbar .tc-page-controls {\n margin: 0;\n}\n.tc-topbar .tc-page-controls button > span,\n.tc-topbar .tc-page-controls button {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* DROPDOWNS */\n\n.tc-drop-down,\n.tc-block-dropdown {\n <<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.25)\">>\n border-radius: 1px;\n}\n\n@media (max-width: <<bkrpnt>>) {\n\n.tc-search .tc-drop-down,\n.tc-search .tc-block-dropdown,\n.tc-page-controls .tc-drop-down,\n.tc-page-controls .tc-block-dropdown {\n position:fixed;\n left:1em;\n min-width: calc(100% - 2em);\n max-width: calc(100% - 2em);\n max-height: calc(100% - 10em);\n overflow: auto;\n}\n\n.tc-drop-down,\n.tc-block-dropdown {\n max-height: 22em;\n overflow: auto;\n font-size: calc(<<fontsize>>*1.2) !important;\n font-weight: normal;\n line-height: 1.2;\n}\n}\n\n/* TOPBAR SEARCH DROPDOWN */\n\n.tc-block-dropdown.tc-search-drop-down {\n padding: 0.5em;\n}\n\n.tc-block-dropdown.tc-search-drop-down .tc-tab-buttons {\n margin-bottom: -3px;\n padding-top: 0;\n}\n\n.tc-block-dropdown.tc-search-drop-down .tc-search-results { width: 100%; }\n\n.tc-block-dropdown.tc-search-drop-down .tc-search { display: none; }\n\n@media (min-width: <<bkrpnt>>) {\n.tc-block-dropdown.tc-search-drop-down {\n margin: 0 0 0 -24em;\n width: calc(100% + 24em);\n max-height: 42em;\n overflow: auto;\n}\n.tc-topbar-right .tc-search .tc-block-dropdown,\n.tc-topbar-right .tc-search .tc-drop-down {\n position: absolute;\n right: 0;\n}\n.tc-topbar-right .tc-search .tc-drop-down {\n padding: 1em;\n min-width: 10em;\n max-width: 10em;\n}\n}\n\n@media (max-width: <<bkrpnt>>) {\n.tc-block-dropdown.tc-search-drop-down {\n margin: 0;\n width: 100%;\n overflow: auto;\n}\n}\n\n/* TOPBAR SEARCH DROPDOWN FLEX */\n\n/* .tc-block-dropdown.tc-search-drop-down { display: flex; } on searchbar template under reveal */\n\n.tc-block-dropdown.tc-search-drop-down > p {\n display: flex;\n margin: 0;\n width: 100%;\n}\n\n.tc-block-dropdown.tc-search-drop-down > p >.tc-tab-set {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.tc-block-dropdown.tc-search-drop-down > p >.tc-tab-set > .tc-tab-content {\n display: flex;\n flex: 1 1 auto;\n overflow: auto;\n margin-top: 0;\n}\n\n\n<$reveal type=\"match\" state=\"$:/state/styled-frames\" text=\"yes\" default=\"yes\">\n\n/* VIEW & EDIT FRAME */\n\n.tc-subtitle,\n.tc-tiddler-edit-frame input.tc-titlebar.tc-edit-texteditor,\n.tc-tiddler-view-frame .tc-titlebar h2.tc-title {\n font-family: monospace;\n}\n\n/* VIEW FRAME */\n\n.tc-tiddler-view-frame .tc-title {\n font-weight: bold;\n}\n\n.tc-tiddler-view-frame .tc-tiddler-title {\n font-size: 1.5em;\n margin: 0 -1em;\n padding: 0.25em 1em;\n}\n\n.tc-tiddler-view-frame .tc-titlebar {\n font-size: 1em;\n}\n\n.tc-tiddler-view-frame .tc-titlebar h2.tc-title {\n font-size: 0.75em;\n}\n\n.tc-tiddler-view-frame .tc-tiddler-controls {\n font-size: 1.5em;\n}\n\n.tc-tiddler-view-frame .tc-tiddler-controls,\n.tc-tiddler-view-frame .tc-tiddler-controls > span > button, \n.tc-tiddler-view-frame .tc-tiddler-controls > span > span > button, \n.tc-tiddler-view-frame .tc-tiddler-controls > span > span > span > button {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.tc-tiddler-view-frame .tc-tiddler-title-icon svg {\n max-height: 0.65em;\n}\n\n/* EDIT FRAME */\n\n.tc-tiddler-edit-frame .tc-tiddler-edit-title {\n color: transparent;\n line-height: 0;\n}\n\n.tc-tiddler-edit-frame input.tc-titlebar.tc-edit-texteditor {\n font-size: 1.2em; \n}\n\n.tc-tiddler-edit-frame .tc-message-box { margin: 0; }\n\n.tc-tiddler-edit-frame iframe.tc-edit-texteditor { margin-top: 0 !important; }\n\n.tc-tiddler-edit-frame .tc-editor-toolbar { background: <<colour tiddler-editor-border>>; }\n\n.tc-tiddler-edit-frame .tc-editor-toolbar .tc-btn-invisible { background: transparent; }\n\n.tc-tiddler-edit-frame .tc-editor-toolbar .tc-btn-invisible {\n transition: 200ms fill;\n fill: <<colour foreground>>;\n}\n\n.tc-tiddler-edit-frame .tc-editor-toolbar .tc-btn-invisible:hover {\n background: transparent;\n fill: <<colour primary>>;\n}\n\ninput::placeholder {\n font-size: 0.9em; \n}\n\n.tc-tiddler-edit-frame input.tc-titlebar.tc-edit-texteditor, \n.tc-tiddler-edit-frame .tc-edit-tags, \n.tc-tiddler-edit-frame .tc-edit-field-add-name input.tc-edit-texteditor, \n.tc-tiddler-edit-frame .tc-edit-field-add-value input.tc-edit-texteditor, \n.tc-tiddler-edit-frame input.tc-edit-typeeditor.tc-popup-handle, \n.tc-tiddler-edit-frame input.tc-edit-texteditor.tc-popup-handle {\n border: 1px solid <<colour background>>; \n border-bottom: 1px solid <<colour tiddler-editor-border>>;\n <<box-shadow \"none\">>\n} \n\n.tc-tiddler-edit-frame textarea { \n border: 1px solid <<colour tiddler-editor-border>>;\n <<box-shadow \"none\">>\n} \n\n.tc-tiddler-edit-frame textarea,\n.tc-tiddler-edit-frame iframe.tc-edit-texteditor {\n font-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n border: 1px solid <<colour background>>; \n <<box-shadow \"none\">>\n}\n\n.tc-tiddler-edit-frame input.tc-titlebar.tc-edit-texteditor {\n font-weight: bold;\n}\n\n.tc-tiddler-edit-frame .tc-type-selector {\n padding-bottom: 10px;\n border-bottom: 1px solid <<colour tiddler-editor-border>>;\n}\n\n</$reveal>\n\n\n/* TIMELINE */\n\n.jd-timeline-wrapper {\n position: relative;\n}\n@media (max-width: <<bkrpnt>>) {\n.jd-timeline-wrapper {\n padding: 0 1em;\n width: 100%;\n}\n}\n .jd-paperview-wrapper {\n display: flex;\n flex-wrap: wrap;\n margin: 0.25em 0;\n}\n.jd-paperview {\n position:relative;\n width: 31%;\n margin: 1%;\n overflow:hidden;\n border: 0.5px solid {{$:/themes/jd/Mono/Database##grid-item-border}};\n border-radius: 1px;\n <<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.09)\">>\n text-align: left;\n}\n@media (min-width: <<bkrpnt>>) {\n.jd-paperview { height: 26em; }\n}\n@media (max-width: <<bkrpnt>>) {\n.jd-paperview { height: 12em; }\n}\n.jd-paperview,\n.jd-paperview-end {\n background: {{$:/themes/jd/Mono/Database##grid-item-background}} !important;\n}\n.jd-paperview-end {\n position: absolute;\n bottom: 0;\n left:0;\n width: 100%;\n height: 5px;\n}\n.jd-paperview-internal {\n transform: scale(0.7);\n position: absolute;\n width: 110%;\n height: 100%;\n top: -5%;\n left: -5%;\n pointer-events: none;\n}\n.jd-paperview-wrapper .tc-menu-list-subitem { width: 100%; }\n\n@media (min-width: <<bkrpnt>>) {\n.jd-paperview-end {\n box-shadow: 0 0 10px 10px {{$:/themes/jd/Mono/Database##grid-item-background}};\n}\n}\n\n@media (max-width: <<bkrpnt>>) {\n.jd-paperview-end {\n box-shadow: 0 0 5px 5px {{$:/themes/jd/Mono/Database##grid-item-background}};\n}\n\n}\n.jd-paperview-date {\n padding: 0.1em 0;\n}\n.jd-paperview-date {\n position: sticky;\n z-index: 1;\n background: {{$:/themes/jd/Mono/Database##header-background}};\n box-shadow: 0 0 2px 2px {{$:/themes/jd/Mono/Database##header-background}};\n}\n\n@media (min-width: <<bkrpnt>>) {\n.jd-paperview-date {\n top: {{$:/themes/jd/Mono/Database##header-position-desktop}};\n}\n}\n\n@media (max-width: <<bkrpnt>>) {\n<$list filter=\"[[$:/state/searchbar]text[show]]\">\n.jd-paperview-date {\n top: {{$:/themes/jd/Mono/Database##header-position-mobile-yes-searchbar}};\n}\n</$list>\n<$list filter=\"[[$:/state/searchbar]!text[show]]\">\n.jd-paperview-date {\n top: {{$:/themes/jd/Mono/Database##header-position-mobile-no-searchbar}};\n}\n</$list>\n}\n\n\n/* MISC */\n\nhr {\n border: none;\n border-top: 1px solid <<colour table-border>>;\n height: 1px;\n}\n\n.tc-sidebar-scrollable .tc-tab-buttons,\n.tc-tiddler-frame .tc-tab-buttons {\n margin-bottom: -3px;\n}\n\n.tc-story-river .tc-tab-buttons.tc-vertical button {\n border-top: 1px solid <<colour tab-border>>;\n border-left: 1px solid <<colour tab-border>>;\n border-bottom: 1px solid <<colour tab-border>>;\n border-right: 1px solid transparent;\n}\n\n.tc-story-river .tc-tab-buttons.tc-vertical .tc-tab-selected {\n border-top: 1px solid <<colour tab-border-selected>>;\n border-left: 1px solid <<colour tab-border-selected>>;\n border-bottom: 1px solid <<colour tab-border-selected>>;\n border-right: 1px solid transparent;\n}\n\n.tc-sidebar-lists .tc-tab-set .tc-tab-divider {\n border-top: none;\n height: 1px;\n background-image: linear-gradient(left, <<colour sidebar-tab-divider>> 20%, transparent 100%);\n background-image: -o-linear-gradient(left, <<colour sidebar-tab-divider>> 20%, transparent 100%);\n background-image: -moz-linear-gradient(left, <<colour sidebar-tab-divider>> 20%, transparent 100%);\n background-image: -webkit-linear-gradient(left, <<colour sidebar-tab-divider>> 20%, transparent 100%);\n background-image: -ms-linear-gradient(left, <<colour sidebar-tab-divider>> 20%, transparent 100%);\n}\n\n/* SIDEBAR MORE TAB BUTTONS */\n\n.tc-more-sidebar .tc-tab-buttons.tc-vertical {\n margin-top: 1em;\n}\n\n.tc-more-sidebar .tc-tab-buttons.tc-vertical > button {\n margin-bottom: -1px;\n border-top: 1px solid <<colour sidebar-tab-border>>;\n border-right: 1px solid transparent;\n border-bottom: 1px solid <<colour sidebar-tab-border>>;\n border-left: 1px solid <<colour sidebar-tab-border>>;\n}\n\n.tc-more-sidebar .tc-tab-buttons.tc-vertical > button.tc-tab-selected {\n border-top: 1px solid <<colour sidebar-tab-border-selected>>;\n border-right: 1px solid transparent;\n border-bottom: 1px solid <<colour sidebar-tab-border-selected>>;\n border-left: 1px solid <<colour sidebar-tab-border-selected>>;\n}\n\n.tc-more-sidebar .tc-tab-content.tc-vertical {\n margin-left: 1px;\n}\n\nul, li {\n white-space: nowrap; \n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.tc-menu-list-item {\n padding-left: 5px;\n text-indent: -5px;\n white-space: normal !important;\n word-wrap: break-word !important;\n -webkit-word-break: break-all !important;\n -moz-word-break: break-all !important;\n -ms-word-break: break-all !important;\n -o-word-break: break-all !important;\n word-break: break-all !important;\n}\n\nbutton, input { outline: none; }\n\nbutton, input:not([type]) {\n border-radius: 2px;\n}\n\ninput:not([type]) {\n border: 1px solid <<colour tiddler-editor-border>>;\n padding: 2px 4px;\n margin: 2px;\n}\n\nbutton {\n border: 1px solid <<colour button-border>>;\n padding: 6px 16px;\n margin: 2px;\n}\n\n@media (max-width: <<bkrpnt>>) {\n.desktop-only {\n display: none !important; pointer-events: none;\n}\n}\n\n@media (min-width: <<bkrpnt>>) {\n.mobile-only {\n display: none !important; pointer-events: none;\n}\n}\n\n.tc-topbar.tc-topbar-left,\n.tc-topbar.tc-topbar-right {\n display: none; pointer-events: none;\n}\n\n.tc-dropzone > p,\n.tc-topbar p,\n.tc-sidebar-lists-template > p,\n.tc-topbar .tc-sidebar-lists > p { margin: 0; }\n\n@media (min-width: <<bkrpnt>>) {\ndiv::-webkit-scrollbar { background: rgba(0, 0, 0, 0.12); }\ndiv::-webkit-scrollbar-thumb { background: rgba(0, 0, 0, 0.12); }\n}\n\n.tc-notification {\n <<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.45)\">>\n border-radius: 1px;\n}",
"title": "$:/themes/jd/Mono/Stylesheet",
"tags": "$:/tags/Stylesheet",
"modifier": "jd",
"modified": "20190205153021408"
},
"$:/themes/jd/Mono/Palette/SpartanNight": {
"created": "20180624055725870",
"creator": "jd",
"text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #303030\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherent\nbutton-border: <<colour tag-background>>\ncode-background: <<colour pre-background>>\ncode-border: <<colour pre-border>>\ncode-foreground: rgba(255, 255, 255, 0.54)\ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #424242\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #050505\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: #7c318c\nexternal-link-foreground: #9e3eb3\nforeground: rgba(255, 255, 255, 0.7)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(255, 255, 255, 0.54)\nmodal-backdrop: <<colour page-background>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour background>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(255, 255, 255, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #212121\npre-background: #2a2a2a\npre-border: transparent\nprimary: white\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #494949\nsidebar-controls-foreground: #5d5d5d\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground: rgba(255, 255, 255, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: <<colour sidebar-tab-border-selected>>\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)\nsidebar-tab-foreground: rgba(255, 255, 255, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)\nsidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)\nsite-title-foreground: rgba(255, 255, 255, 0.7)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: <<colour tab-border-selected>>\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(255, 255, 255, 0.87)\ntab-foreground: rgba(255, 255, 255, 0.54)\ntable-border: #3a3a3a\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: rgb(55,55,55)\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: rgba(255, 255, 255, 0.08)\ntiddler-editor-fields-even: rgba(255, 255, 255, 0.1)\ntiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)\ntiddler-info-background: #454545\ntiddler-info-border: #454545\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #FFFFFF\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(255, 255, 255, 0.12)",
"type": "application/x-tiddler-dictionary",
"title": "$:/themes/jd/Mono/Palette/SpartanNight",
"tags": "$:/tags/Palette",
"revision": "16-bb276562b7c93c8ace69907892d92eed",
"name": "Spartan Night",
"modifier": "jd",
"modified": "20190202100758570",
"description": "Spartan night colors",
"caption": "Spartan Night"
},
"$:/themes/jd/Mono/Palette/SpartanDay": {
"created": "20180624055639361",
"creator": "jd",
"text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #FAFAFA\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: #ececec\ncode-border: #ececec\ncode-foreground: rgba(0, 0, 0, 0.54)\ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #FFFFFF\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #F5F5F5\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: \nexternal-link-foreground: \nforeground: rgba(0, 0, 0, 0.87)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(0, 0, 0, 0.54)\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour very-muted-foreground>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(0, 0, 0, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #f4f4f4\npre-background: #ececec\npre-border: #ececec\nprimary: #3949ab\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #aeaeae\nsidebar-controls-foreground: #c6c6c6\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground-hover: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground: rgba(0, 0, 0, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: <<colour sidebar-tab-border-selected>>\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(0, 0, 0, 0.87)\nsidebar-tab-foreground: rgba(0, 0, 0, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(0, 0, 0, 0.87)\nsidebar-tiddler-link-foreground: rgba(0, 0, 0, 0.54)\nsite-title-foreground: rgba(0, 0, 0, 0.87)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: <<colour tab-border-selected>>\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(0, 0, 0, 0.87)\ntab-foreground: rgba(0, 0, 0, 0.54)\ntable-border: #d8d8d8\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: #f9f9f9\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: #e8e7e7\ntiddler-editor-fields-even: rgba(0, 0, 0, 0.1)\ntiddler-editor-fields-odd: rgba(0, 0, 0, 0.04)\ntiddler-info-background: #F5F5F5\ntiddler-info-border: #F5F5F5\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #000000\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(0, 0, 0, 0.12)",
"type": "application/x-tiddler-dictionary",
"title": "$:/themes/jd/Mono/Palette/SpartanDay",
"tags": "$:/tags/Palette",
"revision": "16-1f6eabb9816382603cfa899327890536",
"name": "Spartan Day",
"modifier": "jd",
"modified": "20190202100822086",
"description": "Spartan day colors",
"caption": "Spartan Day"
},
"$:/themes/jd/Mono/PageTemplate/topbar": {
"text": "<div class=\"tc-topbar tc-adjust-top-of-scroll\">\n\n<div class=\"tc-topbar-left\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n\n</div>\n\n<div class=\"tc-topbar-right\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopRightBar]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n\n</div>\n\n</div>\n",
"title": "$:/themes/jd/Mono/PageTemplate/topbar",
"tags": "$:/tags/PageTemplate",
"modifier": "jd",
"modified": "20190201113453598",
"list-before": "",
"creator": "jd",
"created": "20190130160503644"
},
"$:/themes/jd/Mono/Config": {
"created": "20190202083644385",
"creator": "jd",
"text": "<$checkbox tiddler=\"$:/config/TopRightBar/$:/themes/jd/Mono/TopBarSegments/search\" field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\" actions=\"\"\"\n<$action-setfield $tiddler=\"$:/state/searchbar\" text=\"show\"/>\n<$action-listops $tiddler=\"$:/themes/jd/Mono/Database\" $field=\"list\" $subfilter=\"$:/themes/jd/Mono/Buttons/searchbar\"/>\n<$action-setfield $tiddler=\"$:/themes/jd/Mono/Database\" $index=\"header-position-desktop\" $value=\"calc(56px + .25em)\"/>\n<$action-setfield $tiddler=\"$:/themes/jd/Mono/Database\" $index=\"header-position-mobile-yes-searchbar\" $value=\"calc(4px + 3em + 6px + {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}} + .25em)\"/>\n\"\"\" uncheckactions=\"\"\"\n<$action-setfield $tiddler=\"$:/config/TopLeftBar/Button/$:/themes/jd/Mono/Buttons/searchbar\" text=\"hide\"/>\n<$action-listops $tiddler=\"$:/themes/jd/Mono/Database\" $field=\"list\" $subfilter=\"-$:/themes/jd/Mono/Buttons/searchbar\"/>\n<$action-setfield $tiddler=\"$:/themes/jd/Mono/Database\" $index=\"header-position-mobile-yes-searchbar\" $value=\"calc(2px + 2.25em)\"/>\n\"\"\"> Use searchbar and button (the toggle button only shows up on mobile)</$checkbox>\n\n<$checkbox tiddler=\"$:/themes/jd/Mono/Database\" index=\"button-fontscroller\" checked=\"show\" unchecked=\"hide\" actions=\"\"\"\n<$action-listops $tiddler=\"$:/themes/jd/Mono/Database\" $field=\"list\" $subfilter=\"$:/themes/jd/Mono/Buttons/font-scroller\"/>\"\"\" uncheckactions=\"\"\"\n<$action-listops $tiddler=\"$:/themes/jd/Mono/Database\" $field=\"list\" $subfilter=\"-$:/themes/jd/Mono/Buttons/font-scroller\"/>\n\"\"\"> Use font scroller button </$checkbox>\n\n<$checkbox tiddler=\"$:/SplashScreen\" field=\"text\" checked={{$:/themes/jd/Mono/SplashScreen!!text}} actions=\"\"\"\n<$action-setfield $tiddler=\"$:/SplashScreen\" tags=\"$:/tags/RawMarkupWikified/TopBody\"/>\"\"\"> Use splashscreen</$checkbox>\n\n<$checkbox tiddler=\"$:/config/EmptyStoryMessage\" field=\"text\" checked=\"\"\"{{$:/themes/jd/Mono/EmptyStoryMessage}}\"\"\"> Use timeline grid when story river is empty (grid preview of 10 recent dates for modified tiddlers)</$checkbox>\n\n<$checkbox tiddler=\"$:/state/styled-frames\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> Style tiddler frames</$checkbox>\n\n<$checkbox tiddler=\"$:/config/topbar/sticky\" field=\"text\" checked=\"no\" unchecked=\"yes\" default=\"yes\"> Tick this checkbox if using ''Internet Explorer'', or if the topbar position is not working properly (position: sticky; incompatibility)</$checkbox>\n\nKeep updated on `MonoTheme` here: ''[[http://j.d.mono.tiddlyspot.com/]]''\n\n<<tabs \"$:/themes/jd/Mono/Config/SidebarSegments $:/themes/jd/Mono/Config/TopbarButtons $:/themes/jd/Mono/Config/PaletteSwitcher $:/themes/jd/Mono/Config/VanillaTweaks $:/themes/jd/Mono/Config/DatabaseValues\" \"$:/themes/jd/Mono/Config/TopbarButtons\" class:\"tc-vertical\">>",
"title": "$:/themes/jd/Mono/Config",
"tags": "$:/tags/ControlPanel/Appearance",
"modifier": "jd",
"modified": "20190205153009029",
"caption": "Mono Tweaks"
},
"$:/themes/jd/Mono/Buttons/switch-palette": {
"created": "20180718101345840",
"creator": "jd",
"text": "<$list filter=\"[[$:/palette]!text{$:/themes/jd/Mono/Database##night-palette}]\">\n<$button set=\"$:/palette\" setTo={{$:/themes/jd/Mono/Database##night-palette}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{ $:/core/images/tip}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text=\"night\"/>\n</span>\n</$list>\n</$button>\n</$list>\n<$list filter=\"[[$:/palette]text{$:/themes/jd/Mono/Database##night-palette}]\">\n<$button set=\"$:/palette\" setTo={{$:/themes/jd/Mono/Database##day-palette}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{ $:/core/images/tip}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text=\"day\"/>\n</span>\n</$list>\n</$button>\n</$list>\n",
"type": "text/vnd.tiddlywiki",
"title": "$:/themes/jd/Mono/Buttons/switch-palette",
"tags": "$:/tags/PageControls",
"revision": "6-0bdaa9022f44b4d8d5b1a71f193803af",
"modifier": "jd",
"modified": "20190202134636973",
"description": "Toggle palette",
"caption": "{{$:/core/images/tip}} palette"
},
"$:/themes/jd/Mono/Buttons/searchbar": {
"created": "20190130164005014",
"creator": "jd",
"text": "<$button class={{{ [<tv-config-toolbar-class>addsuffix[ mobile-only]] }}} tooltip=\"searchbar\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/advanced-search-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/AdvancedSearch/Caption}}/></span>\n</$list>\n<$list filter=\"[[$:/state/searchbar]!text[show]]\">\n<$action-setfield $tiddler=\"$:/state/searchbar\" text=\"show\"/>\n</$list>\n<$list filter=\"[[$:/state/searchbar]text[show]]\">\n<$action-setfield $tiddler=\"$:/state/searchbar\" text=\"hide\"/>\n</$list>\n</$button>",
"title": "$:/themes/jd/Mono/Buttons/searchbar",
"tags": "$:/tags/PageControls",
"modifier": "jd",
"modified": "20190202153859733",
"description": "Mono searchbar toggler",
"caption": "{{$:/core/images/advanced-search-button}} mono searchbar"
},
"$:/config/SideBarSegments/Visibility/$:/core/ui/SideBarSegments/page-controls": {
"created": "20190201102601467",
"creator": "jd",
"text": "hide",
"title": "$:/config/SideBarSegments/Visibility/$:/core/ui/SideBarSegments/page-controls",
"modifier": "jd",
"modified": "20190202133339913"
},
"$:/config/SideBarSegments/Visibility/$:/core/ui/SideBarSegments/search": {
"created": "20190201102714829",
"creator": "jd",
"text": "hide",
"title": "$:/config/SideBarSegments/Visibility/$:/core/ui/SideBarSegments/search",
"modifier": "jd",
"modified": "20190202133211221"
},
"$:/config/SideBarSegments/Visibility/$:/core/ui/SideBarSegments/site-subtitle": {
"text": "hide",
"title": "$:/config/SideBarSegments/Visibility/$:/core/ui/SideBarSegments/site-subtitle",
"modifier": "jd",
"modified": "20190201102704659",
"creator": "jd",
"created": "20190201102652423"
},
"$:/config/SideBarSegments/Visibility/$:/core/ui/SideBarSegments/site-title": {
"text": "hide",
"title": "$:/config/SideBarSegments/Visibility/$:/core/ui/SideBarSegments/site-title",
"modifier": "jd",
"modified": "20190202160543142",
"creator": "jd",
"created": "20190201102745176"
},
"$:/core/ui/TopBar/menu": {
"created": "20190201145933072",
"creator": "jd",
"text": "<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"no\">\n<$button set=\"$:/state/sidebar\" setTo=\"no\" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-left}}</$button>\n</$reveal>\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"no\">\n<$button set=\"$:/state/sidebar\" setTo=\"yes\" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}}</$button>\n</$reveal>\n",
"title": "$:/core/ui/TopBar/menu",
"modifier": "jd",
"modified": "20190203083157565",
"caption": "{{$:/core/images/chevron-right}} sidebar",
"description": "Toggle sidebar"
},
"$:/themes/jd/Mono/EmptyStoryMessage": {
"created": "20190202111910887",
"creator": "jd",
"text": "\\whitespace trim\n<div class=\"jd-timeline-wrapper\">\n<$list filter=\"[!is[system]!has[draft.of]!sort[modified]has[modified]limit[10]eachday[modified]]\">\n<div class=\"jd-paperview-date\">\n<$view field=\"modified\" format=\"date\" template=\"DDth MMM YYYY\"/>\n</div>\n<div class=\"jd-paperview-wrapper\">\n<$list filter=\"[sameday:modified{!!modified}!is[system]!has[draft.of]!sort[modified]]\">\n<$button to={{!!title}} class=\"jd-paperview\">\n<div class=\"jd-paperview-internal\">\n<b><$view field=\"title\"/></b>\n<$transclude mode=\"block\"/>\n</div>\n<div class=\"jd-paperview-end\">\n</div>\n</$button>\n</$list>\n</div>\n</$list>\n</div>\n",
"title": "$:/themes/jd/Mono/EmptyStoryMessage",
"tags": "",
"modifier": "jd",
"modified": "20190203153408764"
},
"$:/themes/jd/Mono/Config/TopbarButtons": {
"created": "20190202123433451",
"creator": "jd",
"text": "\\define config-title()\n$:/config/TopLeftBar/Button/$(currentTiddler)$\n\\end\n\n!!! ''Remove from ~TopLeftBar''\n//Click to remove from ~TopLeftBar, rearrange by dragging//\n\n<$list filter=\"[enlist{$:/themes/jd/Mono/Database!!list}]\">\n<$droppable actions=\"\"\"\n<$action-listops $tiddler=\"$:/themes/jd/Mono/Database\" $field=\"list\" $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\"\"\">\n<div class=\"tc-droppable-placeholder\"> </div>\n<$draggable tiddler=<<currentTiddler>>>\n<$button class=\"tc-btn-invisible\" actions=\"\"\"\n<$action-listops $tiddler=\"$:/themes/jd/Mono/Database\" $subfilter=\"-[<currentTiddler>]\"/>\n\"\"\">\n<span class=\"tc-icon-wrapper\"> <$transclude field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude field=\"description\"/></i></span> \n</$button>\n</$draggable>\n</$droppable>\n</$list>\n\n!!! ''Add to ~TopLeftBar''\n//Click to add to ~TopLeftBar//\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]] $:/core/ui/TopBar/menu $:/themes/jd/Mono/Buttons/searchbar -[enlist{$:/themes/jd/Mono/Database!!list}]\">\n<$button class=\"tc-btn-invisible\" style=\"width: 100%; text-align: left;\" actions=\"\"\"\n<$action-listops $tiddler=\"$:/themes/jd/Mono/Database\" $subfilter=<<currentTiddler>>/>\n\"\"\">\n<span class=\"tc-icon-wrapper\"> <$transclude field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude field=\"description\"/></i></span> \n</$button>\n</$list>\n",
"title": "$:/themes/jd/Mono/Config/TopbarButtons",
"tags": "",
"modifier": "jd",
"modified": "20190203014157409",
"caption": "Topbar buttons"
},
"$:/themes/jd/Mono/Database": {
"created": "20190202114537700",
"creator": "jd",
"text": "{\n \"grid-sticky-header-background\": \"<<colour page-background>>\",\n \"grid-item-background\": \"<<colour background>>\",\n \"grid-item-border\": \"<<colour tiddler-border>>\",\n \"header-background\": \"<<colour page-background>>\",\n \"header-position-mobile-no-searchbar\": \"calc(2px + 2.25em)\",\n \"header-position-mobile-yes-searchbar\": \"calc(4px + 3em + 6px + {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}} + .25em)\",\n \"header-position-desktop\": \"calc(56px + .25em)\",\n \"day-palette\": \"$:/themes/jd/Mono/Palette/SpartanDay\",\n \"night-palette\": \"$:/themes/jd/Mono/Palette/SpartanNight\",\n \"button-fontscroller\": \"hide\"\n}",
"type": "application/json",
"title": "$:/themes/jd/Mono/Database",
"tags": "",
"modifier": "jd",
"modified": "20190205153057281",
"list": "$:/core/ui/Buttons/new-tiddler $:/core/ui/Buttons/control-panel $:/core/ui/Buttons/save-wiki $:/themes/jd/Mono/Buttons/switch-palette $:/core/ui/TopBar/menu $:/themes/jd/Mono/Buttons/searchbar"
},
"$:/themes/jd/Mono/Config/SidebarSegments": {
"created": "20190202123345136",
"creator": "jd",
"text": "\\define config-title()\n$:/config/SideBarSegments/Visibility/$(currentTiddler)$\n\\end\n\n!!! ''Sidebar segments''\n//Uncheck to remove from ~SideBar, rearrange by dragging//\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBarSegment]]\">\n<$droppable actions=\"\"\"\n<$action-listops $tiddler=\"$:/tags/SideBarSegment\" $field=\"list\" $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\"\"\">\n<div class=\"tc-droppable-placeholder\"> </div>\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"> <$text text=<<currentTiddler>>/>\n</$checkbox><br>\n</$draggable>\n</$droppable>\n</$list>",
"title": "$:/themes/jd/Mono/Config/SidebarSegments",
"modifier": "jd",
"modified": "20190202135551740",
"tags": "",
"caption": "Sidebar segments"
},
"$:/themes/jd/Mono/Config/DatabaseValues": {
"created": "20190202123554778",
"creator": "jd",
"text": "!!! ''Advanced''\n\n<$list filter=\"[[$:/themes/jd/Mono/Database]indexes[]search[position]]\" variable=\"index\">\n\n<<index>>:\n\n<$edit-text tiddler=\"$:/themes/jd/Mono/Database\" index=<<index>> tag=\"input\"/>\n\n</$list>",
"title": "$:/themes/jd/Mono/Config/DatabaseValues",
"modifier": "jd",
"modified": "20190203084020856",
"tags": "",
"caption": "Advanced"
},
"$:/themes/jd/Mono/Config/PaletteSwitcher": {
"created": "20190202135356197",
"creator": "jd",
"text": "!!! ''Palette switcher''\n\n<$list filter=\"day-palette night-palette\" variable=\"index\" >\n\n<<index>>:\n\n<$edit-text tiddler=\"$:/themes/jd/Mono/Database\" index=<<index>> tag=\"input\"/>\n\n</$list>",
"title": "$:/themes/jd/Mono/Config/PaletteSwitcher",
"modifier": "jd",
"modified": "20190202135417323",
"tags": "",
"caption": "Palette switcher"
},
"$:/themes/jd/Mono/SplashScreen": {
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\rules only filteredtranscludeinline transcludeinline macrocallinline\n<div class=\"tc-remove-when-wiki-loaded\">\n<style scoped>\n\n.tc-splash-text {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 16px;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n\tmargin: 20px auto 0;\n\twidth: 200px;\n\ttext-align: center;\n\tcolor: <<colour foreground>>;\n\tfill: <<colour foreground>>;\n}\n\nhtml body.tc-body {\n background: <<colour page-background>>;\n}\n.line-wrapper {\n width: 100%;\n height: 80vh;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n.line {\n width: 50px;\n height: 1px;\n background: <<colour muted-foreground>>;\n -webkit-animation: line 2s infinite; \n -moz-animation: line 2s infinite; \n -o-animation: line 2s infinite; \n animation: line 2s infinite; \n}\n@-webkit-keyframes line {\n 0% { width: 10px; }\n 50% { width: 200px; }\n 100% { width: 10px; }\n}\n@keyframes line {\n 0% { width: 10px; }\n 50% { width: 200px; }\n 100% { width: 10px; }\n}\n.linetwo {\n width: 50px;\n height: 1px;\n background: <<colour muted-foreground>>;\n -webkit-animation: linetwo 2s infinite; \n -moz-animation: linetwo 2s infinite; \n -o-animation: linetwo 2s infinite; \n animation: linetwo 2s infinite; \n margin: 5px 0;\n}\n@-webkit-keyframes linetwo {\n 0% { width: 5px; }\n 70% { width: 180px; }\n 100% { width: 5px; }\n}\n@keyframes linetwo {\n 0% { width: 5px; }\n 70% { width: 180px; }\n 100% { width: 5px; }\n}\n.linethree {\n width: 50px;\n height: 1px;\n background: <<colour muted-foreground>>;\n -webkit-animation: linethree 2s infinite; \n -moz-animation: linethree 2s infinite; \n -o-animation: linethree 2s infinite; \n animation: linethree 2s infinite; \n margin: linethree 0;\n}\n@-webkit-keyframes linethree {\n 0% { width: 0; }\n 80% { width: 160px; }\n 100% { width: 0; }\n}\n@keyframes linethree {\n 0% { width: 0; }\n 80% { width: 160px; }\n 100% { width: 0; }\n}\n</style>\n\n<div class=\"line-wrapper\">\n<div class=\"tc-splash-text\">{{$:/SiteTitle}}</div>\n<div class=\"line\"></div>\n<div class=\"linetwo\"></div>\n<div class=\"linethree\"></div>\n</div>\n\n</div>",
"type": "text/vnd.tiddlywiki",
"title": "$:/themes/jd/Mono/SplashScreen",
"modifier": "jd",
"modified": "20190202152051851",
"creator": "jd",
"created": "20180927082601825"
},
"$:/themes/jd/Mono/Buttons/font-scroller": {
"created": "20180930054903341",
"creator": "jd",
"text": "<$wikify name=\"fontUp\" text=\"\"\"\n<$list filter=\"[{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}previous[$:/themes/jd/Mono/Buttons/font-scroller]]\" emptyMessage=\"40px\"/>\n\"\"\">\n<$wikify name=\"fontDown\" text=\"\"\"\n<$list filter=\"[{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}next[$:/themes/jd/Mono/Buttons/font-scroller]]\" emptyMessage=\"10px\"/>\n\"\"\">\n<$button class=\"tc-btn-invisible\" tooltip=\"Decrease font size\">\n<$action-setfield $tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" text=<<fontDown>>/>\n<$action-setfield $tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" text=\"1.25\"/>\n\n\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/chevron-down}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text=\"font down\"/></span>\n</$list>\n\n</$button>\n<$button class=\"tc-btn-invisible\" tooltip=\"Increase font size\">\n<$action-setfield $tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" text=<<fontUp>>/>\n<$action-setfield $tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" text=\"1.25\"/>\n\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/chevron-up}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text=\"font up\"/></span>\n</$list>\n\n</$button>\n</$wikify>\n</$wikify>",
"title": "$:/themes/jd/Mono/Buttons/font-scroller",
"tags": "$:/tags/PageControls",
"modifier": "jd",
"modified": "20190203035107351",
"list": "40px 34px 30px 24px 20px 18px 17px 15px 14px 13px 12px 10px",
"caption": "{{$:/core/images/chevron-up}} font scroller",
"description": "Font scroller"
},
"$:/themes/jd/Mono/Config/VanillaTweaks": {
"text": "\\define lingo-base() $:/language/ThemeTweaks/\n\n\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n\\define backgroundimage-dropdown()\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"\n\t$value=<<imageTitle>>\n/>\n\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n\\end\n\n\\define backgroundimageattachment-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\" default=\"scroll\">\n<option value=\"scroll\"><<lingo Settings/BackgroundImageAttachment/Scroll>></option>\n<option value=\"fixed\"><<lingo Settings/BackgroundImageAttachment/Fixed>></option>\n</$select>\n\\end\n\n\\define backgroundimagesize-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\" default=\"scroll\">\n<option value=\"auto\"><<lingo Settings/BackgroundImageSize/Auto>></option>\n<option value=\"cover\"><<lingo Settings/BackgroundImageSize/Cover>></option>\n<option value=\"contain\"><<lingo Settings/BackgroundImageSize/Contain>></option>\n</$select>\n\\end\n\n<style> .vanillatweaks table { width: 100%; } .vanillatweaks td:first-child { width: 60%; } .vanillatweaks td input { width: 100%; }</style>\n\n<div class=\"vanillatweaks\">\n\nInherited tweaks from ''Vanilla'' theme.\n\n!!! ''<<lingo Options>>''\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><<lingo Options/StickyTitles>></$link><br>//<<lingo Options/StickyTitles/Hint>>// |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><option value=\"no\">{{$:/language/No}}</option><option value=\"yes\">{{$:/language/Yes}}</option></$select> |\n\n!!! ''<<lingo Settings>>''\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"><<lingo Settings/FontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\"><<lingo Settings/CodeFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\"><<lingo Settings/EditorFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"><<lingo Settings/BackgroundImage>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" default=\"\" tag=\"input\"/><<backgroundimage-dropdown>> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\"><<lingo Settings/BackgroundImageAttachment>></$link> |<<backgroundimageattachment-dropdown>> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\"><<lingo Settings/BackgroundImageSize>></$link> |<<backgroundimagesize-dropdown>> |\n\n!!! ''<<lingo Metrics>>''\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\"><<lingo Metrics/FontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\"><<lingo Metrics/LineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\"><<lingo Metrics/BodyFontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\"><<lingo Metrics/BodyLineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"><<lingo Metrics/SidebarBreakpoint>></$link><br>//<<lingo Metrics/SidebarBreakpoint/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\"><<lingo Metrics/SidebarWidth>></$link><br>//<<lingo Metrics/SidebarWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\" default=\"\" tag=\"input\"/> |\n\n</div>",
"title": "$:/themes/jd/Mono/Config/VanillaTweaks",
"modifier": "jd",
"modified": "20190203084506755",
"creator": "jd",
"created": "20190203083516565",
"caption": "Vanilla tweaks"
}
}
}
alert-background: <<colour background>>
alert-border: <<colour very-muted-foreground>>
alert-highlight: <<colour very-muted-foreground>>
alert-muted-foreground: <<colour muted-foreground>>
background: #FAFAFA
blockquote-bar: <<colour page-background>>
button-background: transparent
button-foreground: inherit
button-border: <<colour tag-background>>
code-background: #ececec
code-border: #ececec
code-foreground: rgba(0, 0, 0, 0.54)
dirty-indicator: #c80000
download-background: <<colour primary>>
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
dropdown-background: #FFFFFF
dropdown-border: <<colour dropdown-background>>
dropdown-tab-background-selected: <<colour dropdown-background>>
dropdown-tab-background: #F5F5F5
dropzone-background: <<colour tag-background>>
a: #25b7b1
external-link-background-hover: transparent
external-link-background-visited: transparent
external-link-background: transparent
external-link-foreground-hover: #00fceb
external-link-foreground-visited: #009987
external-link-foreground: #13b7b2
foreground: rgba(0, 0, 0, 0.87)
message-background: <<colour background>>
message-border: <<colour very-muted-foreground>>
message-foreground: rgba(0, 0, 0, 0.54)
modal-backdrop: <<colour foreground>>
modal-background: <<colour background>>
modal-border: <<colour very-muted-foreground>>
modal-footer-background: <<colour background>>
modal-footer-border: <<colour very-muted-foreground>>
modal-header-border: <<colour very-muted-foreground>>
muted-foreground: rgba(0, 0, 0, 0.54)
notification-background: <<colour dropdown-background>>
notification-border: <<colour dropdown-background>>
page-background: #f4f4f4
pre-background: #ececec
pre-border: #ececec
primary: #25b7b1
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #aeaeae
sidebar-controls-foreground: #c6c6c6
sidebar-foreground-shadow: transparent
sidebar-foreground: rgba(0, 0, 0, 0.54)
sidebar-muted-foreground-hover: rgba(0, 0, 0, 0.54)
sidebar-muted-foreground: rgba(0, 0, 0, 0.38)
sidebar-tab-background-selected: #e1e1e1
sidebar-tab-background: transparent
sidebar-tab-border-selected: <<colour table-border>>
sidebar-tab-border: <<colour sidebar-tab-border-selected>>
sidebar-tab-divider: <<colour table-border>>
sidebar-tab-foreground-selected: rgba(0, 0, 0, 0.87)
sidebar-tab-foreground: rgba(0, 0, 0, 0.54)
sidebar-tiddler-link-foreground-hover: rgba(0, 0, 0, 0.87)
sidebar-tiddler-link-foreground: rgba(0, 0, 0, 0.54)
site-title-foreground: rgba(0, 0, 0, 0.87)
static-alert-foreground: #aaaaaa
tab-background-selected: #d7d7d7
tab-background: transparent
tab-border-selected: <<colour table-border>>
tab-border: <<colour tab-border-selected>>
tab-divider: <<colour table-border>>
tab-foreground-selected: rgba(0, 0, 0, 0.87)
tab-foreground: rgba(0, 0, 0, 0.54)
table-border: #d8d8d8
table-footer-background: <<colour tiddler-editor-fields-odd>>
table-header-background: <<colour tiddler-editor-fields-even>>
tag-background: #ec6
tag-foreground: <<colour button-foreground>>
tiddler-background: <<colour background>>
tiddler-border: #f9f9f9
tiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>
tiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>
tiddler-controls-foreground: <<colour sidebar-controls-foreground>>
tiddler-editor-background: transparent
tiddler-editor-border-image:
tiddler-editor-border: #e8e7e7
tiddler-editor-fields-even: rgba(0, 0, 0, 0.1)
tiddler-editor-fields-odd: rgba(0, 0, 0, 0.04)
tiddler-info-background: #F5F5F5
tiddler-info-border: #F5F5F5
tiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>
tiddler-link-background: <<colour background>>
tiddler-link-foreground: <<colour primary>>
tiddler-subtitle-foreground: <<colour muted-foreground>>
tiddler-title-foreground: #000000
toolbar-new-button:
toolbar-options-button:
toolbar-save-button:
toolbar-info-button:
toolbar-edit-button:
toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
untagged-background: <<colour very-muted-foreground>>
very-muted-foreground: rgba(0, 0, 0, 0.12)
alert-background: <<colour background>>
alert-border: <<colour very-muted-foreground>>
alert-highlight: <<colour very-muted-foreground>>
alert-muted-foreground: <<colour muted-foreground>>
background: #303030
blockquote-bar: <<colour page-background>>
button-background: transparent
button-foreground: #a8a8a8
button-border: <<colour tag-background>>
code-background: <<colour pre-background>>
code-border: <<colour pre-border>>
code-foreground: rgba(255, 255, 255, 0.54)
dirty-indicator: #c80000
download-background: <<colour primary>>
download-foreground: <<colour foreground>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
dropdown-background: #424242
dropdown-border: <<colour dropdown-background>>
dropdown-tab-background-selected: <<colour dropdown-background>>
dropdown-tab-background: #050505
dropzone-background: <<colour tag-background>>
external-link-background-hover: transparent
external-link-background-visited: transparent
external-link-background: transparent
external-link-foreground-hover:
external-link-foreground-visited: #30748c
external-link-foreground: #37e3c4
foreground: rgba(255, 255, 255, 0.7)
message-background: <<colour background>>
message-border: <<colour very-muted-foreground>>
message-foreground: rgba(255, 255, 255, 0.54)
modal-backdrop: <<colour page-background>>
modal-background: <<colour background>>
modal-border: <<colour very-muted-foreground>>
modal-footer-background: <<colour background>>
modal-footer-border: <<colour background>>
modal-header-border: <<colour very-muted-foreground>>
muted-foreground: rgba(255, 255, 255, 0.54)
notification-background: <<colour dropdown-background>>
notification-border: <<colour dropdown-background>>
page-background: #212121
pre-background: #2a2a2a
pre-border: transparent
primary: white
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #494949
sidebar-controls-foreground: #5d5d5d
sidebar-foreground-shadow: transparent
sidebar-foreground: rgba(255, 255, 255, 0.54)
sidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)
sidebar-muted-foreground: rgba(255, 255, 255, 0.38)
sidebar-tab-background-selected: #4e4e4e
sidebar-tab-background: transparent
sidebar-tab-border-selected: <<colour table-border>>
sidebar-tab-border: <<colour sidebar-tab-border-selected>>
sidebar-tab-divider: <<colour table-border>>
sidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)
sidebar-tab-foreground: rgba(255, 255, 255, 0.54)
sidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)
sidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)
site-title-foreground: rgba(255, 255, 255, 0.7)
static-alert-foreground: #aaaaaa
tab-background-selected: #5a5a5a
tab-background: transparent
tab-border-selected: <<colour table-border>>
tab-border: <<colour tab-border-selected>>
tab-divider: <<colour table-border>>
tab-foreground-selected: rgba(255, 255, 255, 0.87)
tab-foreground: rgba(255, 255, 255, 0.54)
table-border: #3a3a3a
table-footer-background: <<colour tiddler-editor-fields-odd>>
table-header-background: <<colour tiddler-editor-fields-even>>
tag-background: #ec6
tag-foreground: <<colour button-foreground>>
tiddler-background: <<colour background>>
tiddler-border: rgb(55,55,55)
tiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>
tiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>
tiddler-controls-foreground: <<colour sidebar-controls-foreground>>
tiddler-editor-background: transparent
tiddler-editor-border-image:
tiddler-editor-border: rgba(255, 255, 255, 0.08)
tiddler-editor-fields-even: rgba(255, 255, 255, 0.1)
tiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)
tiddler-info-background: #454545
tiddler-info-border: #454545
tiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>
tiddler-link-background: <<colour background>>
tiddler-link-foreground: <<colour primary>>
tiddler-subtitle-foreground: <<colour muted-foreground>>
tiddler-title-foreground: #FFFFFF
toolbar-new-button:
toolbar-options-button:
toolbar-save-button:
toolbar-info-button:
toolbar-edit-button:
toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
untagged-background: <<colour very-muted-foreground>>
very-muted-foreground: rgba(255, 255, 255, 0.12)
\define bkrpnt() {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}
\define sidebar() {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}}
\define fontsize() {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}}
/* MAIN */
@media (min-width: <<bkrpnt>>) {
.tc-sidebar-scrollable {
position: fixed;
top: {{$:/themes/jd/Mono/Database##header-position-desktop}};
left: 0;
bottom: 0;
right: unset;
width: <<sidebar>>;
margin: 0;
padding: 0 2em 2em 2em;
}
.tc-story-river {
width: calc(100% - <<sidebar>>);
padding: 0 2em 4em 2em;
}
<$list filter="[[$:/view]!text[zoomin]]">
.tc-story-river { top: 0.25em; }
</$list>
<$list filter="[[$:/view]text[zoomin]]">
.tc-story-river {
top: calc({{$:/themes/jd/Mono/Database##header-position-desktop}} + 0.25em);
}
</$list>
<$list filter="[[$:/state/sidebar]!text[no]]" variable="stateCheck">
.tc-story-river {
left: <<sidebar>>;
right: 0;
}
</$list>
<$list filter="[[$:/state/sidebar]text[no]]" variable="stateCheck">
.tc-story-river {
left: calc(<<sidebar>> / 2);
right: calc(<<sidebar>> / 2);
}
</$list>
.tc-tiddler-frame {
margin: 0 0 2em 0;
width: 100%;
border-radius: 1px;
<<box-shadow "2px 2px 5px rgba(0, 0, 0, 0.15)">>
}
.tc-storyview-zoomin-tiddler {
width: calc(100% - 4em) !important;
}
}
@media (max-width: <<bkrpnt>>) {
.tc-sidebar-scrollable { padding: 0 1em 2em 1em; }
.tc-sidebar-header { padding: 0; }
.tc-tiddler-frame { margin-bottom: 2px !important; }
}
<$list filter="[[$:/state/sidebar]!text[no]]" variable="stateCheck">
@media (max-width: <<bkrpnt>>) {
.tc-story-river { display: none; }
}
</$list>
<$list filter="[[$:/state/sidebar]text[no]]" variable="stateCheck">
@media (max-width: <<bkrpnt>>) {
.tc-sidebar-scrollable { padding-top: 0; padding-bottom: 0; }
}
</$list>
<$list filter="[[$:/themes/tiddlywiki/vanilla/options/stickytitles]text[yes]]" variable="stateCheck">
@media (min-width: <<bkrpnt>>) {
.tc-tiddler-title {
top: calc({{$:/themes/jd/Mono/Database##header-position-desktop}} - .25em);
}
}
.tc-titlebar {
line-height: 0;
}
@media (max-width: <<bkrpnt>>) {
<$list filter="[[$:/state/searchbar]text[show]]">
.tc-tiddler-edit-frame .tc-tiddler-title {
top: {{$:/themes/jd/Mono/Database##header-position-mobile-yes-searchbar}};
}
.tc-tiddler-view-frame .tc-tiddler-title {
top: {{$:/themes/jd/Mono/Database##header-position-mobile-yes-searchbar}};
}
</$list>
<$list filter="[[$:/state/searchbar]!text[show]]">
.tc-tiddler-title {
top: {{$:/themes/jd/Mono/Database##header-position-mobile-no-searchbar}};
}
</$list>
}
</$list>
.tc-sidebar-scrollable .tc-tab-buttons,
.tc-topbar .tc-page-controls button,
.tc-topbar .tc-search button {
padding: 0;
}
/* TOPBAR */
<$list filter="[[$:/view]!text[zoomin]]">
<$list filter="[[$:/config/topbar/sticky]!text[no]]">
.tc-topbar { position: sticky; }
@media (max-width: <<bkrpnt>>) {
.tc-story-river { margin-top: -2.5em; }
}
</$list>
<$list filter="[[$:/config/topbar/sticky]text[no]]">
.tc-topbar { position: fixed; }
@media (min-width: <<bkrpnt>>) {
.tc-topbar { height: 56px; }
.tc-story-river { margin-top: 56px; }
}
<$list filter="[[$:/state/searchbar]!text[hide]]">
@media (max-width: <<bkrpnt>>) {
.tc-topbar { height: 94px; }
.tc-story-river { margin-top: calc(48px + 1em); }
}
</$list>
<$list filter="[[$:/state/searchbar]text[hide]]">
@media (max-width: <<bkrpnt>>) {
.tc-topbar { height: 48px; }
.tc-story-river { margin-top: 1em; }
}
</$list>
</$list>
</$list>
<$list filter="[[$:/view]text[zoomin]]">
.tc-topbar { position: fixed; }
</$list>
.tc-topbar {
top: 0;
width: 100%;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
padding: 0.25em 1em;
background: <<colour page-background>>;
z-index: 900;
}
@media (min-width: <<bkrpnt>>) {
.tc-topbar {
padding: 1em 2em;
max-height: {{$:/themes/jd/Mono/Database##header-position-desktop}};
}
}
@media (max-width: <<bkrpnt>>) {
.tc-topbar > * {
width: 100%;
}
.tc-topbar .tc-topbar-left {
padding: 0.75em 0;
}
.tc-topbar .tc-topbar-right .tc-search {
margin-bottom: 0.5em;
}
.tc-topbar-right {
font-size: 1.25em !important;
}
.tc-topbar .tc-page-controls {
justify-content: space-between;
width: 100%;
}
}
.tc-topbar .tc-page-controls,
.tc-topbar .tc-search {
display: flex;
align-items: center;
}
/* TOPBAR SEARCH */
.tc-topbar .tc-search {
border: 1px solid <<colour table-border>>;
background: <<colour page-background>>;
border-radius: 0;
padding: 0.25em;
}
.tc-topbar .tc-search input {
border: none;
background: transparent;
width: 100%;
}
.tc-topbar .tc-search .tc-reveal {
display: flex;
}
/* controls */
.tc-topbar .tc-page-controls {
margin: 0;
}
.tc-topbar .tc-page-controls button > span,
.tc-topbar .tc-page-controls button {
display: flex;
align-items: center;
justify-content: center;
}
/* DROPDOWNS */
.tc-drop-down,
.tc-block-dropdown {
<<box-shadow "2px 2px 5px rgba(0, 0, 0, 0.25)">>
border-radius: 1px;
}
@media (max-width: <<bkrpnt>>) {
.tc-search .tc-drop-down,
.tc-search .tc-block-dropdown,
.tc-page-controls .tc-drop-down,
.tc-page-controls .tc-block-dropdown {
position:fixed;
left:1em;
min-width: calc(100% - 2em);
max-width: calc(100% - 2em);
max-height: calc(100% - 10em);
overflow: auto;
}
.tc-drop-down,
.tc-block-dropdown {
max-height: 22em;
overflow: auto;
font-size: calc(<<fontsize>>*1.2) !important;
font-weight: normal;
line-height: 1.2;
}
}
/* TOPBAR SEARCH DROPDOWN */
.tc-block-dropdown.tc-search-drop-down {
padding: 0.5em;
}
.tc-block-dropdown.tc-search-drop-down .tc-tab-buttons {
margin-bottom: -3px;
padding-top: 0;
}
.tc-block-dropdown.tc-search-drop-down .tc-search-results { width: 100%; }
.tc-block-dropdown.tc-search-drop-down .tc-search { display: none; }
@media (min-width: <<bkrpnt>>) {
.tc-block-dropdown.tc-search-drop-down {
margin: 0 0 0 -24em;
width: calc(100% + 24em);
max-height: 42em;
overflow: auto;
}
.tc-topbar-right .tc-search .tc-block-dropdown,
.tc-topbar-right .tc-search .tc-drop-down {
position: absolute;
right: 0;
}
.tc-topbar-right .tc-search .tc-drop-down {
padding: 1em;
min-width: 10em;
max-width: 10em;
}
}
@media (max-width: <<bkrpnt>>) {
.tc-block-dropdown.tc-search-drop-down {
margin: 0;
width: 100%;
overflow: auto;
}
}
/* TOPBAR SEARCH DROPDOWN FLEX */
/* .tc-block-dropdown.tc-search-drop-down { display: flex; } on searchbar template under reveal */
.tc-block-dropdown.tc-search-drop-down > p {
display: flex;
margin: 0;
width: 100%;
}
.tc-block-dropdown.tc-search-drop-down > p >.tc-tab-set {
display: flex;
flex-direction: column;
width: 100%;
}
.tc-block-dropdown.tc-search-drop-down > p >.tc-tab-set > .tc-tab-content {
display: flex;
flex: 1 1 auto;
overflow: auto;
margin-top: 0;
}
<$reveal type="match" state="$:/state/styled-frames" text="yes" default="yes">
/* VIEW & EDIT FRAME */
.tc-subtitle,
.tc-tiddler-edit-frame input.tc-titlebar.tc-edit-texteditor,
.tc-tiddler-view-frame .tc-titlebar h2.tc-title {
font-family: monospace;
}
/* VIEW FRAME */
.tc-tiddler-view-frame .tc-title {
font-weight: bold;
}
.tc-tiddler-view-frame .tc-tiddler-title {
font-size: 1.5em;
margin: 0 -1em;
padding: 0.25em 1em;
}
.tc-tiddler-view-frame .tc-titlebar {
font-size: 1em;
}
.tc-tiddler-view-frame .tc-titlebar h2.tc-title {
font-size: 0.75em;
}
.tc-tiddler-view-frame .tc-tiddler-controls {
font-size: 1.5em;
}
.tc-tiddler-view-frame .tc-tiddler-controls,
.tc-tiddler-view-frame .tc-tiddler-controls > span > button,
.tc-tiddler-view-frame .tc-tiddler-controls > span > span > button,
.tc-tiddler-view-frame .tc-tiddler-controls > span > span > span > button {
display: flex;
align-items: center;
justify-content: center;
}
.tc-tiddler-view-frame .tc-tiddler-title-icon svg {
max-height: 0.65em;
}
/* EDIT FRAME */
.tc-tiddler-edit-frame .tc-tiddler-edit-title {
color: transparent;
line-height: 0;
}
.tc-tiddler-edit-frame input.tc-titlebar.tc-edit-texteditor {
font-size: 1.2em;
}
.tc-tiddler-edit-frame .tc-message-box { margin: 0; }
.tc-tiddler-edit-frame iframe.tc-edit-texteditor { margin-top: 0 !important; }
.tc-tiddler-edit-frame .tc-editor-toolbar { background: <<colour tiddler-editor-border>>; }
.tc-tiddler-edit-frame .tc-editor-toolbar .tc-btn-invisible { background: transparent; }
.tc-tiddler-edit-frame .tc-editor-toolbar .tc-btn-invisible {
transition: 200ms fill;
fill: <<colour foreground>>;
}
.tc-tiddler-edit-frame .tc-editor-toolbar .tc-btn-invisible:hover {
background: transparent;
fill: <<colour primary>>;
}
input::placeholder {
font-size: 0.9em;
}
.tc-tiddler-edit-frame input.tc-titlebar.tc-edit-texteditor,
.tc-tiddler-edit-frame .tc-edit-tags,
.tc-tiddler-edit-frame .tc-edit-field-add-name input.tc-edit-texteditor,
.tc-tiddler-edit-frame .tc-edit-field-add-value input.tc-edit-texteditor,
.tc-tiddler-edit-frame input.tc-edit-typeeditor.tc-popup-handle,
.tc-tiddler-edit-frame input.tc-edit-texteditor.tc-popup-handle {
border: 1px solid <<colour background>>;
border-bottom: 1px solid <<colour tiddler-editor-border>>;
<<box-shadow "none">>
}
.tc-tiddler-edit-frame textarea {
border: 1px solid <<colour tiddler-editor-border>>;
<<box-shadow "none">>
}
.tc-tiddler-edit-frame textarea,
.tc-tiddler-edit-frame iframe.tc-edit-texteditor {
font-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};
border: 1px solid <<colour background>>;
<<box-shadow "none">>
}
.tc-tiddler-edit-frame input.tc-titlebar.tc-edit-texteditor {
font-weight: bold;
}
.tc-tiddler-edit-frame .tc-type-selector {
padding-bottom: 10px;
border-bottom: 1px solid <<colour tiddler-editor-border>>;
}
</$reveal>
/* TIMELINE */
.jd-timeline-wrapper {
position: relative;
}
@media (max-width: <<bkrpnt>>) {
.jd-timeline-wrapper {
padding: 0 1em;
width: 100%;
}
}
.jd-paperview-wrapper {
display: flex;
flex-wrap: wrap;
margin: 0.25em 0;
}
.jd-paperview {
position:relative;
width: 31%;
margin: 1%;
overflow:hidden;
border: 0.5px solid {{$:/themes/jd/Mono/Database##grid-item-border}};
border-radius: 1px;
<<box-shadow "2px 2px 5px rgba(0, 0, 0, 0.09)">>
text-align: left;
}
@media (min-width: <<bkrpnt>>) {
.jd-paperview { height: 26em; }
}
@media (max-width: <<bkrpnt>>) {
.jd-paperview { height: 12em; }
}
.jd-paperview,
.jd-paperview-end {
background: {{$:/themes/jd/Mono/Database##grid-item-background}} !important;
}
.jd-paperview-end {
position: absolute;
bottom: 0;
left:0;
width: 100%;
height: 5px;
}
.jd-paperview-internal {
transform: scale(0.7);
position: absolute;
width: 110%;
height: 100%;
top: -5%;
left: -5%;
pointer-events: none;
}
.jd-paperview-wrapper .tc-menu-list-subitem { width: 100%; }
@media (min-width: <<bkrpnt>>) {
.jd-paperview-end {
box-shadow: 0 0 10px 10px {{$:/themes/jd/Mono/Database##grid-item-background}};
}
}
@media (max-width: <<bkrpnt>>) {
.jd-paperview-end {
box-shadow: 0 0 5px 5px {{$:/themes/jd/Mono/Database##grid-item-background}};
}
}
.jd-paperview-date {
padding: 0.1em 0;
}
.jd-paperview-date {
position: sticky;
z-index: 1;
background: {{$:/themes/jd/Mono/Database##header-background}};
box-shadow: 0 0 2px 2px {{$:/themes/jd/Mono/Database##header-background}};
}
@media (min-width: <<bkrpnt>>) {
.jd-paperview-date {
top: {{$:/themes/jd/Mono/Database##header-position-desktop}};
}
}
@media (max-width: <<bkrpnt>>) {
<$list filter="[[$:/state/searchbar]text[show]]">
.jd-paperview-date {
top: {{$:/themes/jd/Mono/Database##header-position-mobile-yes-searchbar}};
}
</$list>
<$list filter="[[$:/state/searchbar]!text[show]]">
.jd-paperview-date {
top: {{$:/themes/jd/Mono/Database##header-position-mobile-no-searchbar}};
}
</$list>
}
/* MISC */
hr {
border: none;
border-top: 1px solid <<colour table-border>>;
height: 1px;
}
.tc-sidebar-scrollable .tc-tab-buttons,
.tc-tiddler-frame .tc-tab-buttons {
margin-bottom: -3px;
}
.tc-story-river .tc-tab-buttons.tc-vertical button {
border-top: 1px solid <<colour tab-border>>;
border-left: 1px solid <<colour tab-border>>;
border-bottom: 1px solid <<colour tab-border>>;
border-right: 1px solid transparent;
}
.tc-story-river .tc-tab-buttons.tc-vertical .tc-tab-selected {
border-top: 1px solid <<colour tab-border-selected>>;
border-left: 1px solid <<colour tab-border-selected>>;
border-bottom: 1px solid <<colour tab-border-selected>>;
border-right: 1px solid transparent;
}
.tc-sidebar-lists .tc-tab-set .tc-tab-divider {
border-top: none;
height: 1px;
background-image: linear-gradient(left, <<colour sidebar-tab-divider>> 20%, transparent 100%);
background-image: -o-linear-gradient(left, <<colour sidebar-tab-divider>> 20%, transparent 100%);
background-image: -moz-linear-gradient(left, <<colour sidebar-tab-divider>> 20%, transparent 100%);
background-image: -webkit-linear-gradient(left, <<colour sidebar-tab-divider>> 20%, transparent 100%);
background-image: -ms-linear-gradient(left, <<colour sidebar-tab-divider>> 20%, transparent 100%);
}
/* SIDEBAR MORE TAB BUTTONS */
.tc-more-sidebar .tc-tab-buttons.tc-vertical {
margin-top: 1em;
}
.tc-more-sidebar .tc-tab-buttons.tc-vertical > button {
margin-bottom: -1px;
border-top: 1px solid <<colour sidebar-tab-border>>;
border-right: 1px solid transparent;
border-bottom: 1px solid <<colour sidebar-tab-border>>;
border-left: 1px solid <<colour sidebar-tab-border>>;
}
.tc-more-sidebar .tc-tab-buttons.tc-vertical > button.tc-tab-selected {
border-top: 1px solid <<colour sidebar-tab-border-selected>>;
border-right: 1px solid transparent;
border-bottom: 1px solid <<colour sidebar-tab-border-selected>>;
border-left: 1px solid <<colour sidebar-tab-border-selected>>;
}
.tc-more-sidebar .tc-tab-content.tc-vertical {
margin-left: 1px;
}
ul, li {
white-space: normal;
overflow: hidden;
text-overflow: clip;
}
.tc-menu-list-item {
padding-left: 5px;
text-indent: -5px;
white-space: normal !important;
word-wrap: break-word !important;
-webkit-word-break: break-all !important;
-moz-word-break: break-all !important;
-ms-word-break: break-all !important;
-o-word-break: break-all !important;
word-break: break-all !important;
}
button, input { outline: none; }
button, input:not([type]) {
border-radius: 2px;
}
input:not([type]) {
border: 1px solid <<colour tiddler-editor-border>>;
padding: 2px 4px;
margin: 2px;
}
button {
border: 1px solid <<colour button-border>>;
padding: 6px 16px;
margin: 2px;
}
@media (max-width: <<bkrpnt>>) {
.desktop-only {
display: none !important; pointer-events: none;
}
}
@media (min-width: <<bkrpnt>>) {
.mobile-only {
display: none !important; pointer-events: none;
}
}
.tc-topbar.tc-topbar-left,
.tc-topbar.tc-topbar-right {
display: none; pointer-events: none;
}
.tc-dropzone > p,
.tc-topbar p,
.tc-sidebar-lists-template > p,
.tc-topbar .tc-sidebar-lists > p { margin: 0; }
@media (min-width: <<bkrpnt>>) {
div::-webkit-scrollbar { background: rgba(0, 0, 0, 0.12); }
div::-webkit-scrollbar-thumb { background: rgba(0, 0, 0, 0.12); }
}
.tc-notification {
<<box-shadow "2px 2px 5px rgba(0, 0, 0, 0.45)">>
border-radius: 1px;
}
{
"tiddlers": {
"$:/themes/tiddlywiki/snowwhite/base": {
"title": "$:/themes/tiddlywiki/snowwhite/base",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\define sidebarbreakpoint-minus-one()\n<$text text={{{ [{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}removesuffix[px]subtract[1]addsuffix[px]] ~[{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}] }}}/>\n\\end\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n.tc-sidebar-header {\n\ttext-shadow: 0 1px 0 <<colour sidebar-foreground-shadow>>;\n}\n\n.tc-tiddler-info {\n\t<<box-shadow \"inset 1px 2px 3px rgba(0,0,0,0.1)\">>\n}\n\n@media screen {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow \"1px 1px 5px rgba(0, 0, 0, 0.3)\">>\n\t}\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow none>>\n\t}\n}\n\n.tc-page-controls button svg, .tc-tiddler-controls button svg, .tc-topbar button svg {\n\t<<transition \"fill 150ms ease-in-out\">>\n}\n\n.tc-tiddler-controls button.tc-selected,\n.tc-page-controls button.tc-selected {\n\t<<filter \"drop-shadow(0px -1px 2px rgba(0,0,0,0.25))\">>\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-edit-tags {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-tiddler-frame .tc-edit-tags input.tc-edit-texteditor {\n\t<<box-shadow \"none\">>\n\tborder: none;\n\toutline: none;\n}\n\ntextarea.tc-edit-texteditor {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\ncanvas.tc-edit-bitmapeditor {\n\t<<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-drop-down {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-block-dropdown {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-modal {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n}\n\n.tc-modal-footer {\n\tborder-radius: 0 0 6px 6px;\n\t<<box-shadow \"inset 0 1px 0 #fff\">>;\n}\n\n\n.tc-alert {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.6)\">>\n}\n\n.tc-notification {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n\ttext-shadow: 0 1px 0 rgba(255,255,255, 0.8);\n}\n\n.tc-sidebar-lists .tc-tab-set .tc-tab-divider {\n\tborder-top: none;\n\theight: 1px;\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%\">>\n}\n\n.tc-message-box img {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n\n.tc-plugin-info {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n"
}
}
}
\define sidebarbreakpoint-minus-one()
<$text text={{{ [{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}removesuffix[px]subtract[1]addsuffix[px]] ~[{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}] }}}/>
\end
\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline
.tc-sidebar-header {
text-shadow: 0 1px 0 <<colour sidebar-foreground-shadow>>;
}
.tc-tiddler-info {
<<box-shadow "inset 1px 2px 3px rgba(0,0,0,0.1)">>
}
@media screen {
.tc-tiddler-frame {
<<box-shadow "1px 1px 5px rgba(0, 0, 0, 0.3)">>
}
}
@media (max-width: <<sidebarbreakpoint-minus-one>>) {
.tc-tiddler-frame {
<<box-shadow none>>
}
}
.tc-page-controls button svg, .tc-tiddler-controls button svg, .tc-topbar button svg {
<<transition "fill 150ms ease-in-out">>
}
.tc-tiddler-controls button.tc-selected,
.tc-page-controls button.tc-selected {
<<filter "drop-shadow(0px -1px 2px rgba(0,0,0,0.25))">>
}
.tc-tiddler-frame input.tc-edit-texteditor {
<<box-shadow "inset 0 1px 8px rgba(0, 0, 0, 0.15)">>
}
.tc-edit-tags {
<<box-shadow "inset 0 1px 8px rgba(0, 0, 0, 0.15)">>
}
.tc-tiddler-frame .tc-edit-tags input.tc-edit-texteditor {
<<box-shadow "none">>
border: none;
outline: none;
}
textarea.tc-edit-texteditor {
font-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};
}
canvas.tc-edit-bitmapeditor {
<<box-shadow "2px 2px 5px rgba(0, 0, 0, 0.5)">>
}
.tc-drop-down {
border-radius: 4px;
<<box-shadow "2px 2px 10px rgba(0, 0, 0, 0.5)">>
}
.tc-block-dropdown {
border-radius: 4px;
<<box-shadow "2px 2px 10px rgba(0, 0, 0, 0.5)">>
}
.tc-modal {
border-radius: 6px;
<<box-shadow "0 3px 7px rgba(0,0,0,0.3)">>
}
.tc-modal-footer {
border-radius: 0 0 6px 6px;
<<box-shadow "inset 0 1px 0 #fff">>;
}
.tc-alert {
border-radius: 6px;
<<box-shadow "0 3px 7px rgba(0,0,0,0.6)">>
}
.tc-notification {
border-radius: 6px;
<<box-shadow "0 3px 7px rgba(0,0,0,0.3)">>
text-shadow: 0 1px 0 rgba(255,255,255, 0.8);
}
.tc-sidebar-lists .tc-tab-set .tc-tab-divider {
border-top: none;
height: 1px;
<<background-linear-gradient "left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%">>
}
.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {
<<background-linear-gradient "left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%">>
}
.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {
<<background-linear-gradient "left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%"<<
}
.tc-message-box img {
<<box-shadow "1px 1px 3px rgba(0,0,0,0.5)">>
}
.tc-plugin-info {
<<box-shadow "1px 1px 3px rgba(0,0,0,0.5)">>
}
{
"tiddlers": {
"$:/themes/tiddlywiki/vanilla/themetweaks": {
"title": "$:/themes/tiddlywiki/vanilla/themetweaks",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ThemeTweaks/ThemeTweaks}}",
"text": "\\define lingo-base() $:/language/ThemeTweaks/\n\n\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n\\define backgroundimage-dropdown()\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"\n\t$value=<<imageTitle>>\n/>\n\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n\\end\n\n\\define backgroundimageattachment-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\" default=\"scroll\">\n<option value=\"scroll\"><<lingo Settings/BackgroundImageAttachment/Scroll>></option>\n<option value=\"fixed\"><<lingo Settings/BackgroundImageAttachment/Fixed>></option>\n</$select>\n\\end\n\n\\define backgroundimagesize-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\" default=\"scroll\">\n<option value=\"auto\"><<lingo Settings/BackgroundImageSize/Auto>></option>\n<option value=\"cover\"><<lingo Settings/BackgroundImageSize/Cover>></option>\n<option value=\"contain\"><<lingo Settings/BackgroundImageSize/Contain>></option>\n</$select>\n\\end\n\n<<lingo ThemeTweaks/Hint>>\n\n! <<lingo Options>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><<lingo Options/SidebarLayout>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><option value=\"fixed-fluid\"><<lingo Options/SidebarLayout/Fixed-Fluid>></option><option value=\"fluid-fixed\"><<lingo Options/SidebarLayout/Fluid-Fixed>></option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><<lingo Options/StickyTitles>></$link><br>//<<lingo Options/StickyTitles/Hint>>// |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><option value=\"no\">{{$:/language/No}}</option><option value=\"yes\">{{$:/language/Yes}}</option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><<lingo Options/CodeWrapping>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><option value=\"pre\">{{$:/language/No}}</option><option value=\"pre-wrap\">{{$:/language/Yes}}</option></$select> |\n\n! <<lingo Settings>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"><<lingo Settings/FontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\"><<lingo Settings/CodeFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\"><<lingo Settings/EditorFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"><<lingo Settings/BackgroundImage>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" default=\"\" tag=\"input\"/> |<<backgroundimage-dropdown>> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\"><<lingo Settings/BackgroundImageAttachment>></$link> |<<backgroundimageattachment-dropdown>> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\"><<lingo Settings/BackgroundImageSize>></$link> |<<backgroundimagesize-dropdown>> | |\n\n! <<lingo Metrics>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\"><<lingo Metrics/FontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\"><<lingo Metrics/LineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\"><<lingo Metrics/BodyFontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\"><<lingo Metrics/BodyLineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\"><<lingo Metrics/StoryLeft>></$link><br>//<<lingo Metrics/StoryLeft/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\"><<lingo Metrics/StoryTop>></$link><br>//<<lingo Metrics/StoryTop/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\"><<lingo Metrics/StoryRight>></$link><br>//<<lingo Metrics/StoryRight/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\"><<lingo Metrics/StoryWidth>></$link><br>//<<lingo Metrics/StoryWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"><<lingo Metrics/TiddlerWidth>></$link><br>//<<lingo Metrics/TiddlerWidth/Hint>>//<br> |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"><<lingo Metrics/SidebarBreakpoint>></$link><br>//<<lingo Metrics/SidebarBreakpoint/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\"><<lingo Metrics/SidebarWidth>></$link><br>//<<lingo Metrics/SidebarWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\" default=\"\" tag=\"input\"/> |\n"
},
"$:/themes/tiddlywiki/vanilla/base": {
"title": "$:/themes/tiddlywiki/vanilla/base",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\define custom-background-datauri()\n<$set name=\"background\" value={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}>\n<$list filter=\"[<background>is[image]]\">\n`background: url(`\n<$list filter=\"[<background>!has[_canonical_uri]]\">\n`\"`<$macrocall $name=\"datauri\" title={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}/>`\"`\n</$list>\n<$list filter=\"[<background>has[_canonical_uri]]\">\n`\"`<$view tiddler={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}} field=\"_canonical_uri\"/>`\"`\n</$list>\n`) center center;`\n`background-attachment: `{{$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment}}`;\n-webkit-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-moz-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-o-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\nbackground-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;`\n</$list>\n</$set>\n\\end\n\n\\define sidebarbreakpoint()\n<$text text={{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}/>\n\\end\n\n\\define sidebarbreakpoint-minus-one()\n<$text text={{{ [{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}removesuffix[px]subtract[1]addsuffix[px]] ~[{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}] }}}/>\n\\end\n\n\\define if-fluid-fixed(text,hiddenSidebarText)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"match\" text=\"fluid-fixed\">\n$text$\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">\n$hiddenSidebarText$\n</$reveal>\n</$reveal>\n\\end\n\n\\define if-editor-height-fixed(then,else)\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n$then$\n</$reveal>\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n$else$\n</$reveal>\n\\end\n\n\\define set-type-selector-min-width()\n<$set name=\"typeLength\" value={{{ [all[shadows+tiddlers]prefix[$:/language/Docs/Types/]get[name]length[]maxall[]] }}}>\n\n\t.tc-type-selector-dropdown-wrapper {\n\t\tmin-width: calc(<<typeLength>>ch + 4em);\n\t}\n\n\t.tc-type-selector-dropdown-wrapper input.tc-edit-typeeditor {\n\t\tmin-width: <<typeLength>>ch;\n\t}\n\n</$set>\n\\end\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n\n/*\n** Start with the normalize CSS reset, and then belay some of its effects\n*/\n\n{{$:/themes/tiddlywiki/vanilla/reset}}\n\n*, input[type=\"search\"] {\n\tbox-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\t-webkit-box-sizing: border-box;\n}\n\ninput[type=\"search\"] {\n outline-offset: initial;\n}\n\nhtml button {\n\tline-height: 1.2;\n\tcolor: <<colour button-foreground>>;\n\tfill: <<colour button-foreground>>;\n\tbackground: <<colour button-background>>;\n\tborder-color: <<colour button-border>>;\n}\n\n/*\n** Basic element styles\n*/\n\nhtml, body {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/fontfamily}};\n\ttext-rendering: optimizeLegibility; /* Enables kerning and ligatures etc. */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\nhtml:-webkit-full-screen {\n\tbackground-color: <<colour page-background>>;\n}\n\nbody.tc-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/lineheight}};\n\tword-wrap: break-word;\n\t<<custom-background-datauri>>\n\tcolor: <<colour foreground>>;\n\tbackground-color: <<colour page-background>>;\n\tfill: <<colour foreground>>;\n}\n\n<<if-background-attachment \"\"\"\n\nbody.tc-body {\n background-color: transparent;\n}\n\n\"\"\">>\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n\tfont-size: 2em;\n}\n\nh1, h2, h3, h4, h5, h6 {\n\tline-height: 1.2;\n\tfont-weight: 300;\n}\n\npre {\n\tdisplay: block;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\tword-break: normal;\n\tword-wrap: break-word;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tbackground-color: <<colour pre-background>>;\n\tborder: 1px solid <<colour pre-border>>;\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\ncode {\n\tcolor: <<colour code-foreground>>;\n\tbackground-color: <<colour code-background>>;\n\tborder: 1px solid <<colour code-border>>;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\nblockquote {\n\tborder-left: 5px solid <<colour blockquote-bar>>;\n\tmargin-left: 25px;\n\tpadding-left: 10px;\n\tquotes: \"\\201C\"\"\\201D\"\"\\2018\"\"\\2019\";\n}\n\nblockquote > div {\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n}\n\nblockquote.tc-big-quote {\n\tfont-family: Georgia, serif;\n\tposition: relative;\n\tbackground: <<colour pre-background>>;\n\tborder-left: none;\n\tmargin-left: 50px;\n\tmargin-right: 50px;\n\tpadding: 10px;\n border-radius: 8px;\n}\n\nblockquote.tc-big-quote cite:before {\n\tcontent: \"\\2014 \\2009\";\n}\n\nblockquote.tc-big-quote:before {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: open-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n left: -50px;\n top: 42px;\n}\n\nblockquote.tc-big-quote:after {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: close-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n right: -80px;\n bottom: -20px;\n}\n\ndl dt {\n\tfont-weight: bold;\n\tmargin-top: 6px;\n}\n\nbutton, textarea, input, select {\n\toutline-color: <<colour primary>>;\n}\n\ntextarea,\ninput[type=text],\ninput[type=search],\ninput[type=\"\"],\ninput:not([type]) {\n\tcolor: <<colour foreground>>;\n\tbackground: <<colour background>>;\n}\n\ninput[type=\"checkbox\"] {\n vertical-align: middle;\n}\n\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-results-button,\ninput[type=\"search\"]::-webkit-search-results-decoration {\n\t-webkit-appearance:none;\n}\n\n.tc-muted {\n\tcolor: <<colour muted-foreground>>;\n}\n\nsvg.tc-image-button {\n\tpadding: 0px 1px 1px 0px;\n}\n\n.tc-icon-wrapper > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\nkbd {\n\tdisplay: inline-block;\n\tpadding: 3px 5px;\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tcolor: <<colour foreground>>;\n\tvertical-align: middle;\n\tbackground-color: <<colour background>>;\n\tborder: solid 1px <<colour muted-foreground>>;\n\tborder-bottom-color: <<colour muted-foreground>>;\n\tborder-radius: 3px;\n\tbox-shadow: inset 0 -1px 0 <<colour muted-foreground>>;\n}\n\n::selection {\n\tbackground-color: Highlight;\n\tcolor: HighlightText;\n\tbackground-color: <<colour selection-background>>;\n\tcolor: <<colour selection-foreground>>;\n}\n\n/*\nMarkdown likes putting code elements inside pre elements\n*/\npre > code {\n\tpadding: 0;\n\tborder: none;\n\tbackground-color: inherit;\n\tcolor: inherit;\n}\n\ntable {\n\tborder: 1px solid <<colour table-border>>;\n\twidth: auto;\n\tmax-width: 100%;\n\tcaption-side: bottom;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\t/* next 2 elements needed, since normalize 8.0.1 */\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}\n\ntable th, table td {\n\tpadding: 0 7px 0 7px;\n\tborder-top: 1px solid <<colour table-border>>;\n\tborder-left: 1px solid <<colour table-border>>;\n}\n\ntable thead tr td, table th {\n\tbackground-color: <<colour table-header-background>>;\n\tfont-weight: bold;\n}\n\ntable tfoot tr td {\n\tbackground-color: <<colour table-footer-background>>;\n}\n\n.tc-csv-table {\n\twhite-space: nowrap;\n}\n\n.tc-tiddler-frame img,\n.tc-tiddler-frame svg,\n.tc-tiddler-frame canvas,\n.tc-tiddler-frame embed,\n.tc-tiddler-frame iframe {\n\tmax-width: 100%;\n}\n\n.tc-tiddler-body > embed,\n.tc-tiddler-body > iframe {\n\twidth: 100%;\n\theight: 600px;\n}\n\n/*\n** Links\n*/\n\nbutton.tc-tiddlylink,\na.tc-tiddlylink {\n\ttext-decoration: none;\n\tfont-weight: 500;\n\tcolor: <<colour tiddler-link-foreground>>;\n\t-webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */\n}\n\n.tc-sidebar-lists a.tc-tiddlylink {\n\tcolor: <<colour sidebar-tiddler-link-foreground>>;\n}\n\n.tc-sidebar-lists a.tc-tiddlylink:hover {\n\tcolor: <<colour sidebar-tiddler-link-foreground-hover>>;\n}\n\nbutton.tc-tiddlylink:hover,\na.tc-tiddlylink:hover {\n\ttext-decoration: underline;\n}\n\na.tc-tiddlylink-resolves {\n}\n\na.tc-tiddlylink-shadow {\n\tfont-weight: bold;\n}\n\na.tc-tiddlylink-shadow.tc-tiddlylink-resolves {\n\tfont-weight: normal;\n}\n\na.tc-tiddlylink-missing {\n\tfont-style: italic;\n}\n\na.tc-tiddlylink-external {\n\ttext-decoration: underline;\n\tcolor: <<colour external-link-foreground>>;\n\tbackground-color: <<colour external-link-background>>;\n}\n\na.tc-tiddlylink-external:visited {\n\tcolor: <<colour external-link-foreground-visited>>;\n\tbackground-color: <<colour external-link-background-visited>>;\n}\n\na.tc-tiddlylink-external:hover {\n\tcolor: <<colour external-link-foreground-hover>>;\n\tbackground-color: <<colour external-link-background-hover>>;\n}\n\n.tc-drop-down a.tc-tiddlylink:hover {\n\tcolor: <<colour tiddler-link-background>>;\n}\n\n/*\n** Drag and drop styles\n*/\n\n.tc-tiddler-dragger {\n\tposition: relative;\n\tz-index: -10000;\n}\n\n.tc-tiddler-dragger-inner {\n\tposition: absolute;\n\ttop: -1000px;\n\tleft: -1000px;\n\tdisplay: inline-block;\n\tpadding: 8px 20px;\n\tfont-size: 16.9px;\n\tfont-weight: bold;\n\tline-height: 20px;\n\tcolor: <<colour dragger-foreground>>;\n\ttext-shadow: 0 1px 0 rgba(0, 0, 0, 1);\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour dragger-background>>;\n\tborder-radius: 20px;\n}\n\n.tc-tiddler-dragger-cover {\n\tposition: absolute;\n\tbackground-color: <<colour page-background>>;\n}\n\n.tc-dropzone {\n\tposition: relative;\n}\n\n.tc-dropzone.tc-dragover:before {\n\tz-index: 10000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour dropzone-background>>;\n\ttext-align: center;\n\tcontent: \"<<lingo DropMessage>>\";\n}\n\n.tc-droppable > .tc-droppable-placeholder {\n\tdisplay: none;\n}\n\n.tc-droppable.tc-dragover > .tc-droppable-placeholder {\n\tdisplay: block;\n\tborder: 2px dashed <<colour dropzone-background>>;\n}\n\n.tc-draggable {\n\tcursor: move;\n}\n\n.tc-sidebar-tab-open .tc-droppable-placeholder, .tc-tagged-draggable-list .tc-droppable-placeholder,\n.tc-links-draggable-list .tc-droppable-placeholder {\n\tline-height: 2em;\n\theight: 2em;\n}\n\n.tc-sidebar-tab-open-item {\n\tposition: relative;\n}\n\n.tc-sidebar-tab-open .tc-btn-invisible.tc-btn-mini svg {\n\tfont-size: 0.7em;\n\tfill: <<colour muted-foreground>>;\n}\n\n/*\n** Plugin reload warning\n*/\n\n.tc-plugin-reload-warning {\n\tz-index: 1000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour alert-background>>;\n\ttext-align: center;\n}\n\n/*\n** Buttons\n*/\n\nbutton svg, button img, label svg, label img {\n\tvertical-align: middle;\n}\n\n.tc-btn-invisible {\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\tcursor: pointer;\n\tcolor: <<colour foreground>>;\n\tfill: <<colour foreground>>;\n}\n\n.tc-btn-boxed {\n\tfont-size: 0.6em;\n\tpadding: 0.2em;\n\tmargin: 1px;\n\tbackground: none;\n\tborder: 1px solid <<colour tiddler-controls-foreground>>;\n\tborder-radius: 0.25em;\n}\n\nhtml body.tc-body .tc-btn-boxed svg {\n\tfont-size: 1.6666em;\n}\n\n.tc-btn-boxed:hover {\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n}\n\nhtml body.tc-body .tc-btn-boxed:hover svg {\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded {\n\tfont-size: 0.5em;\n\tline-height: 2;\n\tpadding: 0em 0.3em 0.2em 0.4em;\n\tmargin: 1px;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n\tborder-radius: 2em;\n}\n\nhtml body.tc-body .tc-btn-rounded svg {\n\tfont-size: 1.6666em;\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded:hover {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tcolor: <<colour muted-foreground>>;\n}\n\nhtml body.tc-body .tc-btn-rounded:hover svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-icon svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-text {\n\tpadding: 0;\n\tmargin: 0;\n}\n\n/* used for documentation \"fake\" buttons */\n.tc-btn-standard {\n\tline-height: 1.8;\n\tcolor: #667;\n\tbackground-color: #e0e0e0;\n\tborder: 1px solid #888;\n\tpadding: 2px 1px 2px 1px;\n\tmargin: 1px 4px 1px 4px;\n}\n\n.tc-btn-big-green {\n\tdisplay: inline-block;\n\tpadding: 8px;\n\tmargin: 4px 8px 4px 8px;\n\tbackground: <<colour download-background>>;\n\tcolor: <<colour download-foreground>>;\n\tfill: <<colour download-foreground>>;\n\tborder: none;\n\tborder-radius: 2px;\n\tfont-size: 1.2em;\n\tline-height: 1.4em;\n\ttext-decoration: none;\n}\n\n.tc-btn-big-green svg,\n.tc-btn-big-green img {\n\theight: 2em;\n\twidth: 2em;\n\tvertical-align: middle;\n\tfill: <<colour download-foreground>>;\n}\n\n.tc-primary-btn {\n \tbackground: <<colour primary>>;\n}\n\n.tc-sidebar-lists input {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-sidebar-lists button {\n\tcolor: <<colour sidebar-button-foreground>>;\n\tfill: <<colour sidebar-button-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini {\n\tcolor: <<colour sidebar-muted-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini:hover {\n\tcolor: <<colour sidebar-muted-foreground-hover>>;\n}\n\n.tc-sidebar-lists button small {\n\tcolor: <<colour foreground>>;\n}\n\nbutton svg.tc-image-button, button .tc-image-button img {\n\theight: 1em;\n\twidth: 1em;\n}\n\n.tc-unfold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 100%;\n\twidth: calc(100% + 2px);\n\tmargin-left: -43px;\n\ttext-align: center;\n\tborder-top: 2px solid <<colour tiddler-info-background>>;\n\tmargin-top: 4px;\n}\n\n.tc-unfold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n\tborder-top: 2px solid <<colour tiddler-info-border>>;\n}\n\n.tc-unfold-banner svg, .tc-fold-banner svg {\n\theight: 0.75em;\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-unfold-banner:hover svg, .tc-fold-banner:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n.tc-fold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 23px;\n\ttext-align: center;\n\tmargin-left: -35px;\n\ttop: 6px;\n\tbottom: 6px;\n}\n\n.tc-fold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-unfold-banner {\n\t\tposition: static;\n\t\twidth: calc(100% + 59px);\n\t}\n\n\t.tc-fold-banner {\n\t\twidth: 16px;\n\t\tmargin-left: -16px;\n\t\tfont-size: 0.75em;\n\t}\n\n}\n\n/*\n** Tags and missing tiddlers\n*/\n\n.tc-tag-list-item {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin-right: 7px;\n}\n\n.tc-tags-wrapper {\n\tmargin: 4px 0 14px 0;\n}\n\n.tc-missing-tiddler-label {\n\tfont-style: italic;\n\tfont-weight: normal;\n\tdisplay: inline-block;\n\tfont-size: 11.844px;\n\tline-height: 14px;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n}\n\n.tc-block-tags-dropdown > .tc-btn-invisible:hover {\n\tbackground-color: <<colour primary>>;\n}\n\nbutton.tc-tag-label, span.tc-tag-label {\n\tdisplay: inline-block;\n\tpadding: 0.16em 0.7em;\n\tfont-size: 0.9em;\n\tfont-weight: 400;\n\tline-height: 1.2em;\n\tcolor: <<colour tag-foreground>>;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour tag-background>>;\n\tborder-radius: 1em;\n}\n\n.tc-sidebar-scrollable .tc-tag-label {\n\ttext-shadow: none;\n}\n\n.tc-untagged-separator {\n\twidth: 10em;\n\tleft: 0;\n\tmargin-left: 0;\n\tborder: 0;\n\theight: 1px;\n\tbackground: <<colour tab-divider>>;\n}\n\nbutton.tc-untagged-label {\n\tbackground-color: <<colour untagged-background>>;\n}\n\n.tc-tag-label svg, .tc-tag-label img {\n\theight: 1em;\n\twidth: 1em;\n\tmargin-right: 3px; \n\tmargin-bottom: 1px;\n\tvertical-align: bottom;\n}\n\n.tc-edit-tags button.tc-remove-tag-button svg {\n\tfont-size: 0.7em;\n\tvertical-align: middle;\n}\n\n.tc-tag-manager-table .tc-tag-label {\n\twhite-space: normal;\n}\n\n.tc-tag-manager-tag {\n\twidth: 100%;\n}\n\nbutton.tc-btn-invisible.tc-remove-tag-button {\n\toutline: none;\n}\n\n.tc-tag-button-selected,\n.tc-list-item-selected a.tc-tiddlylink, a.tc-list-item-selected {\n\tbackground-color: <<colour primary>>;\n\tcolor: <<colour tiddler-background>>;\n}\n\n/*\n** Page layout\n*/\n\n.tc-topbar {\n\tposition: fixed;\n\tz-index: 1200;\n}\n\n.tc-topbar-left {\n\tleft: 29px;\n\ttop: 5px;\n}\n\n.tc-topbar-right {\n\ttop: 5px;\n\tright: 29px;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-topbar-right {\n\t\tright: 10px;\n\t}\n\n}\n\n.tc-topbar button {\n\tpadding: 8px;\n}\n\n.tc-topbar svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-topbar button:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-show-sidebar-btn svg.tc-image-chevron-left, .tc-hide-sidebar-btn svg.tc-image-chevron-right {\n\t\ttransform: rotate(-90deg);\n\t}\n\n}\n\n.tc-sidebar-header {\n\tcolor: <<colour sidebar-foreground>>;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-sidebar-header .tc-title a.tc-tiddlylink-resolves {\n\tfont-weight: 300;\n}\n\n.tc-sidebar-header .tc-sidebar-lists p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-sidebar-header .tc-missing-tiddler-label {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-advanced-search input {\n\twidth: 60%;\n}\n\n.tc-search a svg {\n\twidth: 1.2em;\n\theight: 1.2em;\n\tvertical-align: middle;\n}\n\n.tc-page-controls {\n\tmargin-top: 14px;\n\tfont-size: 1.5em;\n}\n\n.tc-page-controls .tc-drop-down {\n font-size: 1rem;\n}\n\n.tc-page-controls button {\n\tmargin-right: 0.5em;\n}\n\n.tc-page-controls a.tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-page-controls img {\n\twidth: 1em;\n}\n\n.tc-page-controls svg {\n\tfill: <<colour sidebar-controls-foreground>>;\n}\n\n.tc-page-controls button:hover svg, .tc-page-controls a:hover svg {\n\tfill: <<colour sidebar-controls-foreground-hover>>;\n}\n\n.tc-sidebar-lists .tc-menu-list-item {\n\twhite-space: nowrap;\n}\n\n.tc-menu-list-count {\n\tfont-weight: bold;\n}\n\n.tc-menu-list-subitem {\n\tpadding-left: 7px;\n}\n\n.tc-story-river {\n\tposition: relative;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-sidebar-header {\n\t\tpadding: 14px;\n\t\tmin-height: 32px;\n\t\tmargin-top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\ttransition: min-height {{$:/config/AnimationDuration}}ms ease-in-out, padding-top {{$:/config/AnimationDuration}}ms ease-in-out, padding-bottom {{$:/config/AnimationDuration}}ms ease-in-out;\n\t}\n\t\n\t<<if-no-sidebar \"\"\"\n\n\t\t.tc-sidebar-header {\n\t\t\tmin-height: 0;\n\t\t\tpadding-top: 0;\n\t\t\tpadding-bottom: 0;\n\t\t}\n\n\t\"\"\">>\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tpadding: 0;\n\t}\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n\t.tc-message-box {\n\t\tmargin: 21px -21px 21px -21px;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tposition: fixed;\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t\tbottom: 0;\n\t\tright: 0;\n\t\toverflow-y: auto;\n\t\toverflow-x: auto;\n\t\t-webkit-overflow-scrolling: touch;\n\t\tmargin: 0 0 0 -42px;\n\t\tpadding: 71px 0 28px 42px;\n\t}\n\n\thtml[dir=\"rtl\"] .tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tright: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/storywidth}};\n\t\tpadding: 42px 42px 42px 42px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-story-river {\n\t\twidth: calc(100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}});\n\t}\n\n\">>\n\n\t.tc-story-river.tc-static-story-river {\n\t\tmargin-right: 0;\n\t\tpadding-right: 42px;\n\t}\n\n}\n\n@media print {\n\n\tbody.tc-body {\n\t\tbackground-color: transparent;\n\t}\n\n\t.tc-sidebar-header, .tc-topbar {\n\t\tdisplay: none;\n\t}\n\n\t.tc-story-river {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.tc-story-river .tc-tiddler-frame {\n\t\tmargin: 0;\n\t\tborder: none;\n\t\tpadding: 0;\n\t}\n}\n\n/*\n** Tiddler styles\n*/\n\n.tc-tiddler-frame {\n\tposition: relative;\n\tmargin-bottom: 28px;\n\tbackground-color: <<colour tiddler-background>>;\n\tborder: 1px solid <<colour tiddler-border>>;\n}\n\n{{$:/themes/tiddlywiki/vanilla/sticky}}\n\n.tc-tiddler-info {\n\tpadding: 14px 42px 14px 42px;\n\tbackground-color: <<colour tiddler-info-background>>;\n\tborder-top: 1px solid <<colour tiddler-info-border>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-border>>;\n}\n\n.tc-tiddler-info p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-tiddler-info .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour tiddler-info-tab-background>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-tab-background>>;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-tiddler-info {\n\t\tpadding: 14px 14px 14px 14px;\n\t}\n\n}\n\n.tc-view-field-table {\n\twidth: 100%;\n}\n\n.tc-view-field-name {\n\twidth: 1%; /* Makes this column be as narrow as possible */\n\ttext-align: right;\n\tfont-style: italic;\n\tfont-weight: 200;\n}\n\n.tc-view-field-value {\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\t.tc-tiddler-frame {\n\t\tpadding: 14px 14px 14px 14px;\n\t\tmargin-bottom: .5em;\n\t}\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -14px 0 -14px;\n\t}\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\t.tc-tiddler-frame {\n\t\tpadding: 28px 42px 42px 42px;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth}};\n\t\tborder-radius: 2px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\">>\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -42px 0 -42px;\n\t}\n}\n\n.tc-site-title,\n.tc-titlebar {\n\tfont-weight: 300;\n\tfont-size: 2.35em;\n\tline-height: 1.35em;\n\tcolor: <<colour tiddler-title-foreground>>;\n\tmargin: 0;\n}\n\n.tc-site-title {\n\tcolor: <<colour site-title-foreground>>;\n}\n\n.tc-tiddler-title-icon {\n\tvertical-align: middle;\n\tmargin-right: .1em;\n}\n\n.tc-system-title-prefix {\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-titlebar h2 {\n\tfont-size: 1em;\n\tdisplay: inline;\n}\n\n.tc-titlebar img {\n\theight: 1em;\n}\n\n.tc-subtitle {\n\tfont-size: 0.9em;\n\tcolor: <<colour tiddler-subtitle-foreground>>;\n\tfont-weight: 300;\n}\n\n.tc-subtitle .tc-tiddlylink {\n\tmargin-right: .3em;\n}\n\n.tc-tiddler-missing .tc-title {\n font-style: italic;\n font-weight: normal;\n}\n\n.tc-tiddler-frame .tc-tiddler-controls {\n\tfloat: right;\n}\n\n.tc-tiddler-controls .tc-drop-down {\n\tfont-size: 0.6em;\n}\n\n.tc-tiddler-controls .tc-drop-down .tc-drop-down {\n\tfont-size: 1em;\n}\n\n.tc-tiddler-controls > span > button,\n.tc-tiddler-controls > span > span > button,\n.tc-tiddler-controls > span > span > span > button {\n\tvertical-align: baseline;\n\tmargin-left:5px;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img,\n.tc-search button svg, .tc-search a svg {\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img {\n\theight: 0.75em;\n}\n\n.tc-search button svg, .tc-search a svg {\n height: 1.2em;\n width: 1.2em;\n margin: 0 0.25em;\n}\n\n.tc-tiddler-controls button.tc-selected svg,\n.tc-page-controls button.tc-selected svg {\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n}\n\n.tc-tiddler-controls button.tc-btn-invisible:hover svg,\n.tc-search button:hover svg, .tc-search a:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n@media print {\n\t.tc-tiddler-controls {\n\t\tdisplay: none;\n\t}\n}\n\n.tc-tiddler-help { /* Help prompts within tiddler template */\n\tcolor: <<colour muted-foreground>>;\n\tmargin-top: 14px;\n}\n\n.tc-tiddler-help a.tc-tiddlylink {\n\tcolor: <<colour very-muted-foreground>>;\n}\n\n.tc-tiddler-frame .tc-edit-texteditor {\n\twidth: 100%;\n\tmargin: 4px 0 4px 0;\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor,\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n\tpadding: 3px 3px 3px 3px;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tline-height: 1.3em;\n\t-webkit-appearance: none;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor {\n\tbackground-color: <<colour tiddler-editor-background>>;\n}\n\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n\tbackground-color: <<colour tiddler-background>>;\n}\n\n.tc-tiddler-frame .tc-binary-warning {\n\twidth: 100%;\n\theight: 5em;\n\ttext-align: center;\n\tpadding: 3em 3em 6em 3em;\n\tbackground: <<colour alert-background>>;\n\tborder: 1px solid <<colour alert-border>>;\n}\n\ncanvas.tc-edit-bitmapeditor {\n\tborder: 6px solid <<colour tiddler-editor-border-image>>;\n\tcursor: crosshair;\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tmargin-top: 6px;\n\tmargin-bottom: 6px;\n}\n\n.tc-edit-bitmapeditor-width {\n\tdisplay: block;\n}\n\n.tc-edit-bitmapeditor-height {\n\tdisplay: block;\n}\n\n.tc-tiddler-body {\n\tclear: both;\n}\n\n.tc-tiddler-frame .tc-tiddler-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/bodylineheight}};\n}\n\n.tc-titlebar, .tc-tiddler-edit-title {\n\toverflow: hidden; /* https://github.com/Jermolene/TiddlyWiki5/issues/282 */\n}\n\nhtml body.tc-body.tc-single-tiddler-window {\n\tmargin: 1em;\n\tbackground: <<colour tiddler-background>>;\n}\n\n.tc-single-tiddler-window img,\n.tc-single-tiddler-window svg,\n.tc-single-tiddler-window canvas,\n.tc-single-tiddler-window embed,\n.tc-single-tiddler-window iframe {\n\tmax-width: 100%;\n}\n\n/*\n** Editor\n*/\n\n.tc-editor-toolbar {\n\tmargin-top: 8px;\n}\n\n.tc-editor-toolbar button {\n\tvertical-align: middle;\n\tbackground-color: <<colour tiddler-controls-foreground>>;\n\tcolor: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n\tborder-radius: 4px;\n\tpadding: 3px;\n\tmargin: 2px 0 2px 4px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-adjunct {\n\tmargin-left: 1px;\n\twidth: 1em;\n\tborder-radius: 8px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-start-group {\n\tmargin-left: 11px;\n}\n\n.tc-editor-toolbar button.tc-selected {\n\tbackground-color: <<colour primary>>;\n}\n\n.tc-editor-toolbar button svg {\n\twidth: 1.6em;\n\theight: 1.2em;\n}\n\n.tc-editor-toolbar button:hover {\n\tbackground-color: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour background>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more {\n\twhite-space: normal;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more button {\n\tdisplay: inline-block;\n\tpadding: 3px;\n\twidth: auto;\n}\n\n.tc-editor-toolbar .tc-search-results {\n\tpadding: 0;\n}\n\n/*\n** Adjustments for fluid-fixed mode\n*/\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n<<if-fluid-fixed text:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 0;\n\t\tposition: relative;\n\t\twidth: auto;\n\t\tleft: 0;\n\t\tmargin-left: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\tmargin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tbottom: 0;\n\t\tright: 0;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 42px);\n\t}\n\n\"\"\" hiddenSidebarText:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 3em;\n\t\tmargin-right: 0;\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 84px);\n\t}\n\n\"\"\">>\n\n}\n\n/*\n** Toolbar buttons\n*/\n\n.tc-page-controls svg.tc-image-new-button {\n fill: <<colour toolbar-new-button>>;\n}\n\n.tc-page-controls svg.tc-image-options-button {\n fill: <<colour toolbar-options-button>>;\n}\n\n.tc-page-controls svg.tc-image-save-button {\n fill: <<colour toolbar-save-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-info-button {\n fill: <<colour toolbar-info-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-edit-button {\n fill: <<colour toolbar-edit-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-close-button {\n fill: <<colour toolbar-close-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-delete-button {\n fill: <<colour toolbar-delete-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-cancel-button {\n fill: <<colour toolbar-cancel-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-done-button {\n fill: <<colour toolbar-done-button>>;\n}\n\n/*\n** Tiddler edit mode\n*/\n\n.tc-tiddler-edit-frame em.tc-edit {\n\tcolor: <<colour muted-foreground>>;\n\tfont-style: normal;\n}\n\n.tc-edit-type-dropdown a.tc-tiddlylink-missing {\n\tfont-style: normal;\n}\n\n.tc-type-selector .tc-edit-typeeditor {\n\twidth: auto;\n}\n\n.tc-type-selector-dropdown-wrapper {\n\tdisplay: inline-block;\n}\n\n<<set-type-selector-min-width>>\n\n.tc-edit-tags {\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tpadding: 4px 8px 4px 8px;\n}\n\n.tc-edit-add-tag {\n\tdisplay: inline-block;\n}\n\n.tc-edit-add-tag .tc-add-tag-name input {\n\twidth: 50%;\n}\n\n.tc-edit-add-tag .tc-keyboard {\n\tdisplay:inline;\n}\n\n.tc-edit-tags .tc-tag-label {\n\tdisplay: inline-block;\n}\n\n.tc-edit-tags-list {\n\tmargin: 14px 0 14px 0;\n}\n\n.tc-remove-tag-button {\n\tpadding-left: 4px;\n}\n\n.tc-tiddler-preview {\n\toverflow: auto;\n}\n\n.tc-tiddler-preview-preview {\n\tfloat: right;\n\twidth: 49%;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tmargin: 4px 0 3px 3px;\n\tpadding: 3px 3px 3px 3px;\n}\n\n<<if-editor-height-fixed then:\"\"\"\n\n.tc-tiddler-preview-preview {\n\toverflow-y: scroll;\n\theight: {{$:/config/TextEditor/EditorHeight/Height}};\n}\n\n\"\"\">>\n\n.tc-tiddler-frame .tc-tiddler-preview .tc-edit-texteditor {\n\twidth: 49%;\n}\n\n.tc-tiddler-frame .tc-tiddler-preview canvas.tc-edit-bitmapeditor {\n\tmax-width: 49%;\n}\n\n.tc-edit-fields {\n\twidth: 100%;\n}\n\n.tc-edit-fields.tc-edit-fields-small {\n\tmargin-top: 0;\n\tmargin-bottom: 0;\n}\n\n.tc-edit-fields table, .tc-edit-fields tr, .tc-edit-fields td {\n\tborder: none;\n\tpadding: 4px;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(odd) {\n\tbackground-color: <<colour tiddler-editor-fields-odd>>;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(even) {\n\tbackground-color: <<colour tiddler-editor-fields-even>>;\n}\n\n.tc-edit-field-name {\n\ttext-align: right;\n}\n\n.tc-edit-field-value input {\n\twidth: 100%;\n}\n\n.tc-edit-field-remove {\n}\n\n.tc-edit-field-remove svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n\tvertical-align: middle;\n}\n\n.tc-edit-field-add-name-wrapper input.tc-edit-texteditor {\n\twidth: auto;\n}\n\n.tc-edit-field-add-name-wrapper {\n\tdisplay: inline-block;\n}\n\n.tc-edit-field-add-value {\n\tdisplay: inline-block;\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n\t.tc-edit-field-add-value {\n\t\twidth: 35%;\n\t}\n\n}\n\n.tc-edit-field-add-button {\n\tdisplay: inline-block;\n\twidth: 10%;\n}\n\n/*\n** Storyview Classes\n*/\n\n.tc-viewswitcher .tc-image-button {\n\tmargin-right: .3em;\n}\n\n.tc-storyview-zoomin-tiddler {\n\tposition: absolute;\n\tdisplay: block;\n\twidth: 100%;\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n\t.tc-storyview-zoomin-tiddler {\n\t\twidth: calc(100% - 84px);\n\t}\n\n}\n\n/*\n** Dropdowns\n*/\n\n.tc-btn-dropdown {\n\ttext-align: left;\n}\n\n.tc-btn-dropdown svg, .tc-btn-dropdown img {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-drop-down-wrapper {\n\tposition: relative;\n}\n\n.tc-drop-down {\n\tmin-width: 380px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\ttext-shadow: none;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-drop-down {\n\tmargin-left: 14px;\n}\n\n.tc-drop-down button svg, .tc-drop-down a svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down button.tc-btn-invisible:hover svg {\n\tfill: <<colour background>>;\n}\n\n.tc-drop-down .tc-drop-down-info {\n\tpadding-left: 14px;\n}\n\n.tc-drop-down p {\n\tpadding: 0 14px 0 14px;\n}\n\n.tc-drop-down svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-drop-down img {\n\twidth: 1em;\n}\n\n.tc-drop-down a, .tc-drop-down button {\n\tdisplay: block;\n\tpadding: 0 14px 0 14px;\n\twidth: 100%;\n\ttext-align: left;\n\tcolor: <<colour foreground>>;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-tab-set .tc-tab-buttons button {\n\tdisplay: inline-block;\n width: auto;\n margin-bottom: 0px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.tc-drop-down .tc-prompt {\n\tpadding: 0 14px;\n}\n\n.tc-drop-down .tc-chooser {\n\tborder: none;\n}\n\n.tc-drop-down .tc-chooser .tc-swatches-horiz {\n\tfont-size: 0.4em;\n\tpadding-left: 1.2em;\n}\n\n.tc-drop-down .tc-file-input-wrapper {\n\twidth: 100%;\n}\n\n.tc-drop-down .tc-file-input-wrapper button {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-tab-buttons button {\n\tbackground-color: <<colour dropdown-tab-background>>;\n}\n\n.tc-drop-down .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour dropdown-tab-background-selected>>;\n\tborder-bottom: 1px solid <<colour dropdown-tab-background-selected>>;\n}\n\n.tc-drop-down-bullet {\n\tdisplay: inline-block;\n\twidth: 0.5em;\n}\n\n.tc-drop-down .tc-tab-contents a {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-block-dropdown-wrapper {\n\tposition: relative;\n}\n\n.tc-block-dropdown {\n\tposition: absolute;\n\tmin-width: 220px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\tz-index: 1000;\n\ttext-shadow: none;\n}\n\n.tc-block-dropdown.tc-search-drop-down {\n\tmargin-left: -12px;\n}\n\n.tc-block-dropdown a {\n\tdisplay: block;\n\tpadding: 4px 14px 4px 14px;\n}\n\n.tc-block-dropdown.tc-search-drop-down a {\n\tdisplay: block;\n\tpadding: 0px 10px 0px 10px;\n}\n\n.tc-drop-down .tc-dropdown-item-plain,\n.tc-block-dropdown .tc-dropdown-item-plain {\n\tpadding: 4px 14px 4px 7px;\n}\n\n.tc-drop-down .tc-dropdown-item,\n.tc-block-dropdown .tc-dropdown-item {\n\tpadding: 4px 14px 4px 7px;\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-block-dropdown a.tc-tiddlylink:hover {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-search-results {\n\tpadding: 0 7px 0 7px;\n}\n\n.tc-image-chooser, .tc-colour-chooser {\n\twhite-space: normal;\n}\n\n.tc-image-chooser a,\n.tc-colour-chooser a {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.tc-image-chooser a {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 2px;\n\tmargin: 2px;\n\twidth: 4em;\n\theight: 4em;\n}\n\n.tc-colour-chooser a {\n\tpadding: 3px;\n\twidth: 2em;\n\theight: 2em;\n\tvertical-align: middle;\n}\n\n.tc-image-chooser a:hover,\n.tc-colour-chooser a:hover {\n\tbackground: <<colour primary>>;\n\tpadding: 0px;\n\tborder: 3px solid <<colour primary>>;\n}\n\n.tc-image-chooser a svg,\n.tc-image-chooser a img {\n\tdisplay: inline-block;\n\twidth: auto;\n\theight: auto;\n\tmax-width: 3.5em;\n\tmax-height: 3.5em;\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tmargin: auto;\n}\n\n/*\n** Modals\n*/\n\n.tc-modal-wrapper {\n\tposition: fixed;\n\toverflow: auto;\n\toverflow-y: scroll;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 900;\n}\n\n.tc-modal-backdrop {\n\tposition: fixed;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 1000;\n\tbackground-color: <<colour modal-backdrop>>;\n}\n\n.tc-modal {\n\tz-index: 1100;\n\tbackground-color: <<colour modal-background>>;\n\tborder: 1px solid <<colour modal-border>>;\n}\n\n@media (max-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 1em;\n\t\tleft: 1em;\n\t\tright: 1em;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n@media (min-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 2em;\n\t\tleft: 25%;\n\t\twidth: 50%;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n.tc-modal-header {\n\tpadding: 9px 15px;\n\tborder-bottom: 1px solid <<colour modal-header-border>>;\n}\n\n.tc-modal-header h3 {\n\tmargin: 0;\n\tline-height: 30px;\n}\n\n.tc-modal-header img, .tc-modal-header svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-modal-body {\n\tpadding: 15px;\n}\n\n.tc-modal-footer {\n\tpadding: 14px 15px 15px;\n\tmargin-bottom: 0;\n\ttext-align: right;\n\tbackground-color: <<colour modal-footer-background>>;\n\tborder-top: 1px solid <<colour modal-footer-border>>;\n}\n\n\n/*\n** Centered modals\n*/\n.tc-modal-centered .tc-modal {\n\twidth: auto;\n\ttop: 50%;\n\tleft: 50%;\n\ttransform: translate(-50%, -50%) !important;\n}\n\n/*\n** Notifications\n*/\n\n.tc-notification {\n\tposition: fixed;\n\ttop: 14px;\n\tright: 42px;\n\tz-index: 1300;\n\tmax-width: 280px;\n\tpadding: 0 14px 0 14px;\n\tbackground-color: <<colour notification-background>>;\n\tborder: 1px solid <<colour notification-border>>;\n}\n\n/*\n** Tabs\n*/\n\n.tc-tab-set.tc-vertical {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tab-buttons {\n\tfont-size: 0.85em;\n\tpadding-top: 1em;\n\tmargin-bottom: -2px;\n}\n\n.tc-tab-buttons.tc-vertical {\n\tz-index: 100;\n\tdisplay: block;\n\tpadding-top: 14px;\n\tvertical-align: top;\n\ttext-align: right;\n\tmargin-bottom: inherit;\n\tmargin-right: -1px;\n\tmax-width: 33%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n}\n\n.tc-tab-buttons button.tc-tab-selected {\n\tcolor: <<colour tab-foreground-selected>>;\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-left: 1px solid <<colour tab-border-selected>>;\n\tborder-top: 1px solid <<colour tab-border-selected>>;\n\tborder-right: 1px solid <<colour tab-border-selected>>;\n}\n\n.tc-tab-buttons button {\n\tcolor: <<colour tab-foreground>>;\n\tpadding: 3px 5px 3px 5px;\n\tmargin-right: 0.3em;\n\tfont-weight: 300;\n\tborder: none;\n\tbackground: inherit;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-right: 1px solid <<colour tab-border>>;\n\tborder-top-left-radius: 2px;\n\tborder-top-right-radius: 2px;\n\tborder-bottom-left-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button {\n\tdisplay: block;\n\twidth: 100%;\n\tmargin-top: 3px;\n\tmargin-right: 0;\n\ttext-align: right;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tborder-right: none;\n\tborder-top-left-radius: 2px;\n\tborder-bottom-left-radius: 2px;\n\tborder-top-right-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button.tc-tab-selected {\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-right: 1px solid <<colour tab-background-selected>>;\n}\n\n.tc-tab-divider {\n\tborder-top: 1px solid <<colour tab-divider>>;\n}\n\n.tc-tab-divider.tc-vertical {\n\tdisplay: none;\n}\n\n.tc-tab-content {\n\tmargin-top: 14px;\n}\n\n.tc-tab-content.tc-vertical {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-top: 0;\n\tpadding-left: 14px;\n\tborder-left: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 70%;\n\tflex: 1 0 70%;\n\toverflow: auto;\n}\n\n.tc-sidebar-lists .tc-tab-buttons {\n\tmargin-bottom: -1px;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tcolor: <<colour sidebar-tab-foreground-selected>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border-selected>>;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button {\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tcolor: <<colour sidebar-tab-foreground>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border>>;\n}\n\n.tc-sidebar-lists .tc-tab-divider {\n\tborder-top: 1px solid <<colour sidebar-tab-divider>>;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\tdisplay: block;\n\twidth: 100%;\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tborder-top: none;\n\tborder-left: none;\n\tborder-bottom: none;\n\tborder-right: 1px solid #ccc;\n\tmargin-bottom: inherit;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tborder: none;\n}\n\n/*\n** Manager\n*/\n\n.tc-manager-wrapper {\n\t\n}\n\n.tc-manager-controls {\n\t\n}\n\n.tc-manager-control {\n\tmargin: 0.5em 0;\n}\n\n.tc-manager-list {\n\twidth: 100%;\n\tborder-top: 1px solid <<colour muted-foreground>>;\n\tborder-left: 1px solid <<colour muted-foreground>>;\n\tborder-right: 1px solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item {\n\n}\n\n.tc-manager-list-item-heading {\n display: block;\n width: 100%;\n text-align: left;\t\n\tborder-bottom: 1px solid <<colour muted-foreground>>;\n\tpadding: 3px;\n}\n\n.tc-manager-list-item-heading-selected {\n\tfont-weight: bold;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n\tbackground-color: <<colour foreground>>;\n}\n\n.tc-manager-list-item-heading:hover {\n\tbackground: <<colour primary>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-manager-list-item-content {\n\tdisplay: flex;\n}\n\n.tc-manager-list-item-content-sidebar {\n flex: 1 0;\n background: <<colour tiddler-editor-background>>;\n border-right: 0.5em solid <<colour muted-foreground>>;\n border-bottom: 0.5em solid <<colour muted-foreground>>;\n white-space: nowrap;\n}\n\n.tc-manager-list-item-content-item-heading {\n\tdisplay: block;\n\twidth: 100%;\n\ttext-align: left;\n background: <<colour muted-foreground>>;\n\ttext-transform: uppercase;\n\tfont-size: 0.6em;\n\tfont-weight: bold;\n padding: 0.5em 0 0.5em 0;\n}\n\n.tc-manager-list-item-content-item-body {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-manager-list-item-content-item-body > pre {\n\tmargin: 0.5em 0 0.5em 0;\n\tborder: none;\n\tbackground: inherit;\n}\n\n.tc-manager-list-item-content-tiddler {\n flex: 3 1;\n border-left: 0.5em solid <<colour muted-foreground>>;\n border-right: 0.5em solid <<colour muted-foreground>>;\n border-bottom: 0.5em solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item-content-item-body > table {\n\tborder: none;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.tc-manager-list-item-content-item-body > table td {\n\tborder: none;\n}\n\n.tc-manager-icon-editor > button {\n\twidth: 100%;\n}\n\n.tc-manager-icon-editor > button > svg,\n.tc-manager-icon-editor > button > button {\n\twidth: 100%;\n\theight: auto;\n}\n\n/*\n** Import table\n*/\n\n.tc-import-table {\n\twidth: 100%;\n}\n\n.tc-import-table svg.tc-image-edit-button {\n\tmax-width: unset;\n}\n\n.tc-import-table th:first-of-type {\n\twidth: 10%;\n}\n\n.tc-import-table th:last-of-type {\n\twidth: 30%;\n}\n\n.tc-import-table .tc-row-disabled {\n\tbackground: <<colour very-muted-foreground>>10;\n\topacity: 0.8;\n}\n\n.tc-import-table .tc-row-warning {\n\tbackground: <<colour diff-delete-background>>50;\n}\n\n/*\n** Alerts\n*/\n\n.tc-alerts {\n\tposition: fixed;\n\ttop: 28px;\n\tleft: 0;\n\tright: 0;\n\tmax-width: 50%;\n\tz-index: 20000;\n}\n\n.tc-alert {\n\tposition: relative;\n\tmargin: 14px;\n\tpadding: 7px;\n\tborder: 1px solid <<colour alert-border>>;\n\tbackground-color: <<colour alert-background>>;\n}\n\n.tc-alert-toolbar {\n\tposition: absolute;\n\ttop: 7px;\n\tright: 7px;\n line-height: 0;\n}\n\n.tc-alert-toolbar svg {\n\tfill: <<colour alert-muted-foreground>>;\n}\n\n.tc-alert-subtitle {\n\tcolor: <<colour alert-muted-foreground>>;\n\tfont-weight: bold;\n font-size: 0.8em;\n margin-bottom: 0.5em;\n}\n\n.tc-alert-body > p {\n\tmargin: 0;\n}\n\n.tc-alert-highlight {\n\tcolor: <<colour alert-highlight>>;\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n\t.tc-static-alert {\n\t\tposition: relative;\n\t}\n\n\t.tc-static-alert-inner {\n\t\tposition: absolute;\n\t\tz-index: 100;\n\t}\n\n}\n\n.tc-static-alert-inner {\n\tpadding: 0 2px 2px 42px;\n\tcolor: <<colour static-alert-foreground>>;\n}\n\n/*\n** Floating drafts list\n*/\n\n.tc-drafts-list {\n\tz-index: 2000;\n\tposition: fixed;\n\tfont-size: 0.8em;\n\tleft: 0;\n\tbottom: 0;\n}\n\n.tc-drafts-list a {\n\tmargin: 0 0.5em;\n\tpadding: 4px 4px;\n\tborder-top-left-radius: 4px;\n\tborder-top-right-radius: 4px;\n\tborder: 1px solid <<colour background>>;\n\tborder-bottom-none;\n\tbackground: <<colour dirty-indicator>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a:hover {\n\ttext-decoration: none;\n\tbackground: <<colour foreground>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a svg {\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: text-bottom;\n}\n\n/*\n** Control panel\n*/\n\n.tc-control-panel td {\n\tpadding: 4px;\n}\n\n.tc-control-panel table, .tc-control-panel table input, .tc-control-panel table textarea {\n\twidth: 100%;\n}\n\n.tc-plugin-info {\n\tdisplay: flex;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tfill: <<colour muted-foreground>>;\n\tbackground-color: <<colour background>>;\n\tmargin: 0.5em 0 0.5em 0;\n\tpadding: 4px;\n align-items: center;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info {\n margin: 0.5em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugin-indicator {\n\tmargin: -16px 1em 0 2em;\n}\n\n.tc-plugin-info-sub-plugin-indicator button {\n\tcolor: <<colour background>>;\n\tbackground: <<colour foreground>>;\n\tborder-radius: 8px;\n padding: 2px 7px;\n font-size: 0.75em;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info-dropdown {\n\tmargin-left: 1em;\n\tmargin-right: 1em;\n}\n\n.tc-plugin-info-disabled {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n\tbackground: repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n}\n\n.tc-plugin-info-disabled:hover {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n\tbackground: repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n}\n\na.tc-tiddlylink.tc-plugin-info:hover {\n\ttext-decoration: none;\n\tbackground-color: <<colour primary>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour foreground>>;\n}\n\na.tc-tiddlylink.tc-plugin-info:hover > .tc-plugin-info-chunk > svg {\n\tfill: <<colour background>>;\n}\n\n.tc-plugin-info-chunk {\n margin: 2px;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description {\n\tflex-grow: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-buttons {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tflex-grow: 0;\n\tflex-shrink: 0;\n text-align: right;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h1 {\n\tfont-size: 1em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h2 {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description div {\n\tfont-size: 0.7em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle img, .tc-plugin-info-chunk.tc-plugin-info-toggle svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon img, .tc-plugin-info-chunk.tc-plugin-info-icon svg {\n\twidth: 2em;\n\theight: 2em;\n}\n\n.tc-plugin-info-dropdown {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tmargin-top: -8px;\n}\n\n.tc-plugin-info-dropdown-message {\n\tbackground: <<colour message-background>>;\n\tpadding: 0.5em 1em 0.5em 1em;\n\tfont-weight: bold;\n\tfont-size: 0.8em;\n}\n\n.tc-plugin-info-dropdown-body {\n\tpadding: 1em 1em 0 1em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugins {\n\tpadding: 0.5em;\n margin: 0 1em 1em 1em;\n\tbackground: <<colour notification-background>>;\n}\n\n.tc-install-plugin {\n\tfont-weight: bold;\n\tbackground: green;\n\tcolor: white;\n\tfill: white;\n\tborder-radius: 4px;\n\tpadding: 3px;\n}\n\n.tc-install-plugin.tc-reinstall-downgrade {\n\tbackground: red;\n}\n\n.tc-install-plugin.tc-reinstall {\n\tbackground: blue;\n}\n\n.tc-install-plugin.tc-reinstall-upgrade {\n\tbackground: orange;\n}\n\n.tc-check-list {\n\tline-height: 2em;\n}\n\n.tc-check-list .tc-image-button {\n\theight: 1.5em;\n}\n\n/*\n** Message boxes\n*/\n\n.tc-message-box {\n\tborder: 1px solid <<colour message-border>>;\n\tbackground: <<colour message-background>>;\n\tpadding: 0px 21px 0px 21px;\n\tfont-size: 12px;\n\tline-height: 18px;\n\tcolor: <<colour message-foreground>>;\n}\n\n.tc-message-box svg {\n\twidth: 1em;\n\theight: 1em;\n vertical-align: text-bottom;\n}\n\n/*\n** Pictures\n*/\n\n.tc-bordered-image {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 5px;\n\tmargin: 5px;\n}\n\n/*\n** Floats\n*/\n\n.tc-float-right {\n\tfloat: right;\n}\n\n/*\n** Chooser\n*/\n\n.tc-chooser {\n\tborder-right: 1px solid <<colour table-header-background>>;\n\tborder-left: 1px solid <<colour table-header-background>>;\n}\n\n\n.tc-chooser-item {\n\tborder-bottom: 1px solid <<colour table-header-background>>;\n\tborder-top: 1px solid <<colour table-header-background>>;\n\tpadding: 2px 4px 2px 14px;\n}\n\n.tc-drop-down .tc-chooser-item {\n\tpadding: 2px;\n}\n\n.tc-chosen,\n.tc-chooser-item:hover {\n\tbackground-color: <<colour table-header-background>>;\n\tborder-color: <<colour table-footer-background>>;\n}\n\n.tc-chosen .tc-tiddlylink {\n\tcursor:default;\n}\n\n.tc-chooser-item .tc-tiddlylink {\n\tdisplay: block;\n\ttext-decoration: none;\n\tbackground-color: transparent;\n}\n\n.tc-chooser-item:hover .tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-chosen .tc-tiddlylink,\n.tc-drop-down .tc-chooser-item .tc-tiddlylink:hover {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-chosen > .tc-tiddlylink:before {\n\tmargin-left: -10px;\n\tposition: relative;\n\tcontent: \"» \";\n}\n\n.tc-chooser-item svg,\n.tc-chooser-item img{\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: middle;\n}\n\n.tc-language-chooser .tc-image-button img {\n\twidth: 2em;\n\tvertical-align: -0.15em;\n}\n\n/*\n** Palette swatches\n*/\n\n.tc-swatches-horiz {\n}\n\n.tc-swatches-horiz .tc-swatch {\n\tdisplay: inline-block;\n}\n\n.tc-swatch {\n\twidth: 2em;\n\theight: 2em;\n\tmargin: 0.4em;\n\tborder: 1px solid #888;\n}\n\ninput.tc-palette-manager-colour-input {\n\twidth: 100%;\n\tpadding: 0;\n}\n\n/*\n** Table of contents\n*/\n\n.tc-sidebar-lists .tc-table-of-contents {\n\twhite-space: nowrap;\n}\n\n.tc-table-of-contents button {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents svg {\n\twidth: 0.7em;\n\theight: 0.7em;\n\tvertical-align: middle;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents ol {\n\tlist-style-type: none;\n\tpadding-left: 0;\n}\n\n.tc-table-of-contents ol ol {\n\tpadding-left: 1em;\n}\n\n.tc-table-of-contents li {\n\tfont-size: 1.0em;\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li a {\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li li {\n\tfont-size: 0.95em;\n\tfont-weight: normal;\n\tline-height: 1.4;\n}\n\n.tc-table-of-contents li li a {\n\tfont-weight: normal;\n}\n\n.tc-table-of-contents li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n\tline-height: 1.5;\n}\n\n.tc-table-of-contents li li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n}\n\n.tc-tabbed-table-of-contents {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents {\n\tz-index: 100;\n\tdisplay: inline-block;\n\tpadding-left: 1em;\n\tmax-width: 50%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n\tbackground: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a,\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tdisplay: block;\n\tpadding: 0.12em 1em 0.12em 0.25em;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a {\n\tborder-top: 1px solid <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-background>>;\n\tborder-bottom: 1px solid <<colour tab-background>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a:hover {\n\ttext-decoration: none;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour background>>;\n\tmargin-right: -1px;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a:hover {\n\ttext-decoration: none;\n}\n\n.tc-tabbed-table-of-contents .tc-tabbed-table-of-contents-content {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-left: 1.5em;\n\tpadding-right: 1.5em;\n\tborder: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 50%;\n\tflex: 1 0 50%;\n}\n\n/*\n** Dirty indicator\n*/\n\nbody.tc-dirty span.tc-dirty-indicator, body.tc-dirty span.tc-dirty-indicator svg {\n\tfill: <<colour dirty-indicator>>;\n\tcolor: <<colour dirty-indicator>>;\n}\n\n/*\n** File inputs\n*/\n\n.tc-file-input-wrapper {\n\tposition: relative;\n\toverflow: hidden;\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-file-input-wrapper input[type=file] {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tfont-size: 999px;\n\tmax-width: 100%;\n\tmax-height: 100%;\n\tfilter: alpha(opacity=0);\n\topacity: 0;\n\toutline: none;\n\tbackground: white;\n\tcursor: pointer;\n\tdisplay: inline-block;\n}\n\n::-webkit-file-upload-button {\n\tcursor:pointer;\n}\n\n/*\n** Thumbnail macros\n*/\n\n.tc-thumbnail-wrapper {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin: 6px;\n\tvertical-align: top;\n}\n\n.tc-thumbnail-right-wrapper {\n\tfloat:right;\n\tmargin: 0.5em 0 0.5em 0.5em;\n}\n\n.tc-thumbnail-image {\n\ttext-align: center;\n\toverflow: hidden;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-image svg,\n.tc-thumbnail-image img {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n\tmin-width: 100%;\n\tmin-height: 100%;\n\tmax-width: 100%;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image img {\n\tfilter: alpha(opacity=0.8);\n\topacity: 0.8;\n}\n\n.tc-thumbnail-background {\n\tposition: absolute;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-icon svg,\n.tc-thumbnail-icon img {\n\twidth: 3em;\n\theight: 3em;\n\t<<filter \"drop-shadow(2px 2px 4px rgba(0,0,0,0.3))\">>\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon img {\n\tfill: #fff;\n\t<<filter \"drop-shadow(3px 3px 4px rgba(0,0,0,0.6))\">>\n}\n\n.tc-thumbnail-icon {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tdisplay: -webkit-flex;\n\t-webkit-align-items: center;\n\t-webkit-justify-content: center;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.tc-thumbnail-caption {\n\tposition: absolute;\n\tbackground-color: #777;\n\tcolor: #fff;\n\ttext-align: center;\n\tbottom: 0;\n\twidth: 100%;\n\tfilter: alpha(opacity=0.9);\n\topacity: 0.9;\n\tline-height: 1.4;\n\tborder-bottom-left-radius: 3px;\n\tborder-bottom-right-radius: 3px;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-caption {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n}\n\n/*\n** Diffs\n*/\n\n.tc-diff-equal {\n\tbackground-color: <<colour diff-equal-background>>;\n\tcolor: <<colour diff-equal-foreground>>;\n}\n\n.tc-diff-insert {\n\tbackground-color: <<colour diff-insert-background>>;\n\tcolor: <<colour diff-insert-foreground>>;\n}\n\n.tc-diff-delete {\n\tbackground-color: <<colour diff-delete-background>>;\n\tcolor: <<colour diff-delete-foreground>>;\n}\n\n.tc-diff-invisible {\n\tbackground-color: <<colour diff-invisible-background>>;\n\tcolor: <<colour diff-invisible-foreground>>;\n}\n\n.tc-diff-tiddlers th {\n\ttext-align: right;\n\tbackground: <<colour background>>;\n\tfont-weight: normal;\n\tfont-style: italic;\n}\n\n.tc-diff-tiddlers pre {\n margin: 0;\n padding: 0;\n border: none;\n background: none;\n}\n\n/*\n** Errors\n*/\n\n.tc-error {\n\tbackground: #f00;\n\tcolor: #fff;\n}\n\n/*\n** Tree macro\n*/\n\n.tc-tree div {\n \tpadding-left: 14px;\n}\n\n.tc-tree ol {\n \tlist-style-type: none;\n \tpadding-left: 0;\n \tmargin-top: 0;\n}\n\n.tc-tree ol ol {\n \tpadding-left: 1em; \n}\n\n.tc-tree button { \n \tcolor: #acacac;\n}\n\n.tc-tree svg {\n \tfill: #acacac;\n}\n\n.tc-tree span svg {\n \twidth: 1em;\n \theight: 1em;\n \tvertical-align: baseline;\n}\n\n.tc-tree li span {\n \tcolor: lightgray;\n}\n\nselect {\n color: <<colour select-tag-foreground>>;\n background: <<colour select-tag-background>>;\n}\n\n/*\n** Utility classes for SVG icons\n*/\n\n.tc-fill-background {\n\tfill: <<colour background>>;\n}\n\n/*\n** Flexbox utility classes\n*/\n\n.tc-flex {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-flex-column {\n\tflex-direction: column;\n}\n\n.tc-flex-row {\n\tflex-direction: row;\n}\n\n.tc-flex-grow-1 {\n\tflex-grow: 1;\n}\n\n.tc-flex-grow-2 {\n\tflex-grow: 2;\n}\n\n/*\n** Other utility classes\n*/\n\n.tc-small-gap {\n\tmargin-left: .5em;\n\tmargin-right: .5em;\n}\n\n.tc-small-gap-left {\n\tmargin-left: .5em;\n}\n\n.tc-small-gap-right {\n\tmargin-right: .5em;\n}\n\n.tc-big-gap {\n\tmargin-left: 1em;\n\tmargin-right: 1em;\n}\n\n.tc-big-gap-left {\n\tmargin-left: 1em;\n}\n\n.tc-big-gap-right {\n\tmargin-right: 1em;\n}\n\n.tc-word-break {\n\tword-break: break-all;\n}\n"
},
"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize",
"text": "15px"
},
"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/bodylineheight",
"text": "22px"
},
"$:/themes/tiddlywiki/vanilla/metrics/fontsize": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/fontsize",
"text": "14px"
},
"$:/themes/tiddlywiki/vanilla/metrics/lineheight": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/lineheight",
"text": "20px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storyleft": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storyleft",
"text": "0px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storytop": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storytop",
"text": "0px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storyright": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storyright",
"text": "770px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storywidth": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storywidth",
"text": "770px"
},
"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth",
"text": "686px"
},
"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint",
"text": "960px"
},
"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth",
"text": "350px"
},
"$:/themes/tiddlywiki/vanilla/options/stickytitles": {
"title": "$:/themes/tiddlywiki/vanilla/options/stickytitles",
"text": "no"
},
"$:/themes/tiddlywiki/vanilla/options/sidebarlayout": {
"title": "$:/themes/tiddlywiki/vanilla/options/sidebarlayout",
"text": "fixed-fluid"
},
"$:/themes/tiddlywiki/vanilla/options/codewrapping": {
"title": "$:/themes/tiddlywiki/vanilla/options/codewrapping",
"text": "pre-wrap"
},
"$:/themes/tiddlywiki/vanilla/reset": {
"title": "$:/themes/tiddlywiki/vanilla/reset",
"type": "text/plain",
"text": "/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */\n\n/*\nDocument\n========\n*/\n\n/**\nUse a better box model (opinionated).\n*/\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n/**\nUse a more readable tab size (opinionated).\n*/\n\n:root {\n -moz-tab-size: 4;\n tab-size: 4;\n}\n\n/**\n1. Correct the line height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n*/\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/*\nSections\n========\n*/\n\n/**\nRemove the margin in all browsers.\n*/\n\nbody {\n margin: 0;\n}\n\n/**\nImprove consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)\n*/\n\nbody {\n font-family:\n system-ui,\n -apple-system, /* Firefox supports this but not yet `system-ui` */\n 'Segoe UI',\n Roboto,\n Helvetica,\n Arial,\n sans-serif,\n 'Apple Color Emoji',\n 'Segoe UI Emoji';\n}\n\n/*\nGrouping content\n================\n*/\n\n/**\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n}\n\n/*\nText-level semantics\n====================\n*/\n\n/**\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr[title] {\n text-decoration: underline dotted;\n}\n\n/**\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)\n2. Correct the odd 'em' font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family:\n ui-monospace,\n SFMono-Regular,\n Consolas,\n 'Liberation Mono',\n Menlo,\n monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/**\nPrevent 'sub' and 'sup' elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\nTabular data\n============\n*/\n\n/**\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n}\n\n/*\nForms\n=====\n*/\n\n/**\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\nRemove the inheritance of text transform in Edge and Firefox.\n1. Remove the inheritance of text transform in Firefox.\n*/\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\nCorrect the inability to style clickable types in iOS and Safari.\n*/\n\nbutton,\n[type='button'],\n[type='reset'],\n[type='submit'] {\n -webkit-appearance: button;\n}\n\n/**\nRemove the inner border and padding in Firefox.\n*/\n\n::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\nRestore the focus styles unset by the previous rule.\n*/\n\n:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\nRemove the additional ':invalid' styles in Firefox.\nSee: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/**\nRemove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.\n*/\n\nlegend {\n padding: 0;\n}\n\n/**\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to 'inherit' in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nInteractive\n===========\n*/\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n"
},
"$:/themes/tiddlywiki/vanilla/settings/fontfamily": {
"title": "$:/themes/tiddlywiki/vanilla/settings/fontfamily",
"text": "system-ui, -apple-system, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\""
},
"$:/themes/tiddlywiki/vanilla/settings/codefontfamily": {
"title": "$:/themes/tiddlywiki/vanilla/settings/codefontfamily",
"text": "\"SFMono-Regular\",Consolas,\"Liberation Mono\",Menlo,Courier,monospace"
},
"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment": {
"title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment",
"text": "fixed"
},
"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize": {
"title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize",
"text": "auto"
},
"$:/themes/tiddlywiki/vanilla/sticky": {
"title": "$:/themes/tiddlywiki/vanilla/sticky",
"text": "<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\" type=\"match\" text=\"yes\">\n``\n.tc-tiddler-title {\n\tposition: -webkit-sticky;\n\tposition: -moz-sticky;\n\tposition: -o-sticky;\n\tposition: -ms-sticky;\n\tposition: sticky;\n\ttop: 0px;\n\tbackground: ``<<colour tiddler-background>>``;\n\tz-index: 500;\n}\n\n``\n<$list filter=\"[range[100]]\">\n`.tc-story-river .tc-tiddler-frame:nth-child(100n+`<$text text=<<currentTiddler>>/>`) {\nz-index: `<$text text={{{ [[200]subtract<currentTiddler>] }}}/>`;\n}\n`\n</$list>\n</$reveal>\n"
}
}
}
\define custom-background-datauri()
<$set name="background" value={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}>
<$list filter="[<background>is[image]]">
`background: url(`
<$list filter="[<background>!has[_canonical_uri]]">
`"`<$macrocall $name="datauri" title={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}/>`"`
</$list>
<$list filter="[<background>has[_canonical_uri]]">
`"`<$view tiddler={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}} field="_canonical_uri"/>`"`
</$list>
`) center center;`
`background-attachment: `{{$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment}}`;
-webkit-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;
-moz-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;
-o-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;
background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;`
</$list>
</$set>
\end
\define if-fluid-fixed(text,hiddenSidebarText)
<$reveal state="$:/themes/tiddlywiki/vanilla/options/sidebarlayout" type="match" text="fluid-fixed">
$text$
<$reveal state="$:/state/sidebar" type="nomatch" text="yes" default="yes">
$hiddenSidebarText$
</$reveal>
</$reveal>
\end
\define if-editor-height-fixed(then,else)
<$reveal state="$:/config/TextEditor/EditorHeight/Mode" type="match" text="fixed">
$then$
</$reveal>
<$reveal state="$:/config/TextEditor/EditorHeight/Mode" type="match" text="auto">
$else$
</$reveal>
\end
\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock
/*
** Start with the normalize CSS reset, and then belay some of its effects
*/
{{$:/themes/tiddlywiki/vanilla/reset}}
*, input[type="search"] {
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
html button {
line-height: 1.2;
color: <<colour button-foreground>>;
background: <<colour button-background>>;
border-color: <<colour button-border>>;
}
/*
** Basic element styles
*/
html {
font-family: {{$:/themes/tiddlywiki/vanilla/settings/fontfamily}};
text-rendering: optimizeLegibility; /* Enables kerning and ligatures etc. */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
html:-webkit-full-screen {
background-color: <<colour page-background>>;
}
body.tc-body {
font-size: {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}};
line-height: {{$:/themes/tiddlywiki/vanilla/metrics/lineheight}};
word-wrap: break-word;
<<custom-background-datauri>>
color: <<colour foreground>>;
background-color: <<colour page-background>>;
fill: <<colour foreground>>;
}
<<if-background-attachment """
body.tc-body {
background-color: transparent;
}
""">>
h1, h2, h3, h4, h5, h6 {
line-height: 1.2;
font-weight: 300;
}
pre {
display: block;
padding: 14px;
margin-top: 1em;
margin-bottom: 1em;
word-break: normal;
word-wrap: break-word;
white-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};
background-color: <<colour pre-background>>;
border: 1px solid <<colour pre-border>>;
padding: 0 3px 2px;
border-radius: 3px;
font-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};
}
code {
color: <<colour code-foreground>>;
background-color: <<colour code-background>>;
border: 1px solid <<colour code-border>>;
white-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};
padding: 0 3px 2px;
border-radius: 3px;
font-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};
}
blockquote {
border-left: 5px solid <<colour blockquote-bar>>;
margin-left: 25px;
padding-left: 10px;
quotes: "\201C""\201D""\2018""\2019";
}
blockquote.tc-big-quote {
font-family: Georgia, serif;
position: relative;
background: <<colour pre-background>>;
border-left: none;
margin-left: 50px;
margin-right: 50px;
padding: 10px;
border-radius: 8px;
}
blockquote.tc-big-quote cite:before {
content: "\2014 \2009";
}
blockquote.tc-big-quote:before {
font-family: Georgia, serif;
color: <<colour blockquote-bar>>;
content: open-quote;
font-size: 8em;
line-height: 0.1em;
margin-right: 0.25em;
vertical-align: -0.4em;
position: absolute;
left: -50px;
top: 42px;
}
blockquote.tc-big-quote:after {
font-family: Georgia, serif;
color: <<colour blockquote-bar>>;
content: close-quote;
font-size: 8em;
line-height: 0.1em;
margin-right: 0.25em;
vertical-align: -0.4em;
position: absolute;
right: -80px;
bottom: -20px;
}
dl dt {
font-weight: bold;
margin-top: 6px;
}
textarea,
input[type=text],
input[type=search],
input[type=""],
input:not([type]) {
color: <<colour foreground>>;
background: <<colour background>>;
}
input[type="checkbox"] {
vertical-align: middle;
}
.tc-muted {
color: <<colour muted-foreground>>;
}
svg.tc-image-button {
padding: 0px 1px 1px 0px;
}
.tc-icon-wrapper > svg {
width: 1em;
height: 1em;
}
kbd {
display: inline-block;
padding: 3px 5px;
font-size: 0.8em;
line-height: 1.2;
color: <<colour foreground>>;
vertical-align: middle;
background-color: <<colour background>>;
border: solid 1px <<colour muted-foreground>>;
border-bottom-color: <<colour muted-foreground>>;
border-radius: 3px;
box-shadow: inset 0 -1px 0 <<colour muted-foreground>>;
}
/*
Markdown likes putting code elements inside pre elements
*/
pre > code {
padding: 0;
border: none;
background-color: inherit;
color: inherit;
}
table {
border: 1px solid <<colour table-border>>;
width: 100%;
max-width: 100%;
caption-side: bottom;
margin-top: 1em;
margin-bottom: 1em;
}
table th, table td {
padding: 0 7px 0 7px;
border-top: 1px solid <<colour table-border>>;
border-left: 1px solid <<colour table-border>>;
}
table thead tr td, table th {
background-color: <<colour table-header-background>>;
font-weight: bold;
}
table tfoot tr td {
background-color: <<colour table-footer-background>>;
}
.tc-csv-table {
white-space: nowrap;
}
.tc-tiddler-frame img,
.tc-tiddler-frame svg,
.tc-tiddler-frame canvas,
.tc-tiddler-frame embed,
.tc-tiddler-frame iframe {
max-width: 100%;
}
.tc-tiddler-body > embed,
.tc-tiddler-body > iframe {
width: 100%;
height: 600px;
}
/*
** Links
*/
button.tc-tiddlylink,
a.tc-tiddlylink {
text-decoration: none;
font-weight: 500;
color: <<colour tiddler-link-foreground>>;
-webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */
}
.tc-sidebar-lists a.tc-tiddlylink {
color: <<colour sidebar-tiddler-link-foreground>>;
}
.tc-sidebar-lists a.tc-tiddlylink:hover {
color: <<colour sidebar-tiddler-link-foreground-hover>>;
}
button.tc-tiddlylink:hover,
a.tc-tiddlylink:hover {
text-decoration: underline;
}
a.tc-tiddlylink-resolves {
}
a.tc-tiddlylink-shadow {
font-weight: bold;
}
a.tc-tiddlylink-shadow.tc-tiddlylink-resolves {
font-weight: normal;
}
a.tc-tiddlylink-missing {
font-style: italic;
}
a.tc-tiddlylink-external {
text-decoration: underline;
color: <<colour external-link-foreground>>;
background-color: <<colour external-link-background>>;
}
a.tc-tiddlylink-external:visited {
color: <<colour external-link-foreground-visited>>;
background-color: <<colour external-link-background-visited>>;
}
a.tc-tiddlylink-external:hover {
color: <<colour external-link-foreground-hover>>;
background-color: <<colour external-link-background-hover>>;
}
/*
** Drag and drop styles
*/
.tc-tiddler-dragger {
position: relative;
z-index: -10000;
}
.tc-tiddler-dragger-inner {
position: absolute;
top: -1000px;
left: -1000px;
display: inline-block;
padding: 8px 20px;
font-size: 16.9px;
font-weight: bold;
line-height: 20px;
color: <<colour dragger-foreground>>;
text-shadow: 0 1px 0 rgba(0, 0, 0, 1);
white-space: nowrap;
vertical-align: baseline;
background-color: <<colour dragger-background>>;
border-radius: 20px;
}
.tc-tiddler-dragger-cover {
position: absolute;
background-color: <<colour page-background>>;
}
.tc-dropzone {
position: relative;
}
.tc-dropzone.tc-dragover:before {
z-index: 10000;
display: block;
position: fixed;
top: 0;
left: 0;
right: 0;
background: <<colour dropzone-background>>;
text-align: center;
content: "<<lingo DropMessage>>";
}
.tc-droppable > .tc-droppable-placeholder {
display: none;
}
.tc-droppable.tc-dragover > .tc-droppable-placeholder {
display: block;
border: 2px dashed <<colour dropzone-background>>;
}
.tc-draggable {
cursor: move;
}
/*
** Plugin reload warning
*/
.tc-plugin-reload-warning {
z-index: 1000;
display: block;
position: fixed;
top: 0;
left: 0;
right: 0;
background: <<colour alert-background>>;
text-align: center;
}
/*
** Buttons
*/
button svg, button img, label svg, label img {
vertical-align: middle;
}
.tc-btn-invisible {
padding: 0;
margin: 0;
background: none;
border: none;
cursor: pointer;
}
.tc-btn-boxed {
font-size: 0.6em;
padding: 0.2em;
margin: 1px;
background: none;
border: 1px solid <<colour tiddler-controls-foreground>>;
border-radius: 0.25em;
}
html body.tc-body .tc-btn-boxed svg {
font-size: 1.6666em;
}
.tc-btn-boxed:hover {
background: <<colour muted-foreground>>;
color: <<colour background>>;
}
html body.tc-body .tc-btn-boxed:hover svg {
fill: <<colour background>>;
}
.tc-btn-rounded {
font-size: 0.5em;
line-height: 2;
padding: 0em 0.3em 0.2em 0.4em;
margin: 1px;
border: 1px solid <<colour muted-foreground>>;
background: <<colour muted-foreground>>;
color: <<colour background>>;
border-radius: 2em;
}
html body.tc-body .tc-btn-rounded svg {
font-size: 1.6666em;
fill: <<colour background>>;
}
.tc-btn-rounded:hover {
border: 1px solid <<colour muted-foreground>>;
background: <<colour background>>;
color: <<colour muted-foreground>>;
}
html body.tc-body .tc-btn-rounded:hover svg {
fill: <<colour muted-foreground>>;
}
.tc-btn-icon svg {
height: 1em;
width: 1em;
fill: <<colour muted-foreground>>;
}
.tc-btn-text {
padding: 0;
margin: 0;
}
/* used for documentation "fake" buttons */
.tc-btn-standard {
line-height: 1.8;
color: #667;
background-color: #e0e0e0;
border: 1px solid #888;
padding: 2px 1px 2px 1px;
margin: 1px 4px 1px 4px;
}
.tc-btn-big-green {
display: inline-block;
padding: 8px;
margin: 4px 8px 4px 8px;
background: <<colour sidebar-controls-foreground>>;
color: <<colour download-foreground>>;
fill: <<colour download-foreground>>;
border: none;
font-size: 1.2em;
line-height: 1.4em;
text-decoration: none;
}
.tc-btn-big-green svg,
.tc-btn-big-green img {
height: 2em;
width: 2em;
vertical-align: middle;
fill: <<colour download-foreground>>;
}
.tc-sidebar-lists input {
color: <<colour foreground>>;
}
.tc-sidebar-lists button {
color: <<colour sidebar-button-foreground>>;
fill: <<colour sidebar-button-foreground>>;
}
.tc-sidebar-lists button.tc-btn-mini {
color: <<colour sidebar-muted-foreground>>;
}
.tc-sidebar-lists button.tc-btn-mini:hover {
color: <<colour sidebar-muted-foreground-hover>>;
}
button svg.tc-image-button, button .tc-image-button img {
height: 1em;
width: 1em;
}
.tc-unfold-banner {
position: absolute;
padding: 0;
margin: 0;
background: none;
border: none;
width: 100%;
width: calc(100% + 2px);
margin-left: -43px;
text-align: center;
border-top: 2px solid <<colour tiddler-info-background>>;
margin-top: 4px;
}
.tc-unfold-banner:hover {
background: <<colour tiddler-info-background>>;
border-top: 2px solid <<colour tiddler-info-border>>;
}
.tc-unfold-banner svg, .tc-fold-banner svg {
height: 0.75em;
fill: <<colour tiddler-controls-foreground>>;
}
.tc-unfold-banner:hover svg, .tc-fold-banner:hover svg {
fill: <<colour tiddler-controls-foreground-hover>>;
}
.tc-fold-banner {
position: absolute;
padding: 0;
margin: 0;
background: none;
border: none;
width: 23px;
text-align: center;
margin-left: -35px;
top: 6px;
bottom: 6px;
}
.tc-fold-banner:hover {
background: <<colour tiddler-info-background>>;
}
@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {
.tc-unfold-banner {
position: static;
width: calc(100% + 59px);
}
.tc-fold-banner {
width: 16px;
margin-left: -16px;
font-size: 0.75em;
}
}
/*
** Tags and missing tiddlers
*/
.tc-tag-list-item {
position: relative;
display: inline-block;
margin-right: 7px;
}
.tc-tags-wrapper {
margin: 4px 0 14px 0;
}
.tc-missing-tiddler-label {
font-style: italic;
font-weight: normal;
display: inline-block;
font-size: 11.844px;
line-height: 14px;
white-space: nowrap;
vertical-align: baseline;
}
button.tc-tag-label, span.tc-tag-label {
display: inline-block;
padding: 0.16em 0.7em;
font-size: 0.9em;
font-weight: 400;
line-height: 1.2em;
color: <<colour tag-foreground>>;
white-space: nowrap;
vertical-align: baseline;
background-color: <<colour tag-background>>;
border-radius: 1em;
}
.tc-untagged-separator {
width: 10em;
left: 0;
margin-left: 0;
border: 0;
height: 1px;
background: <<colour tab-divider>>;
}
button.tc-untagged-label {
background-color: <<colour untagged-background>>;
}
.tc-tag-label svg, .tc-tag-label img {
height: 1em;
width: 1em;
vertical-align: text-bottom;
}
.tc-tag-manager-table .tc-tag-label {
white-space: normal;
}
.tc-tag-manager-tag {
width: 100%;
}
button.tc-btn-invisible.tc-remove-tag-button {
outline: none;
}
/*
** Page layout
*/
.tc-topbar {
position: fixed;
z-index: 1200;
}
.tc-topbar-left {
left: 29px;
top: 5px;
}
.tc-topbar-right {
top: 5px;
right: 29px;
}
.tc-topbar button {
padding: 8px;
}
.tc-topbar svg {
fill: <<colour muted-foreground>>;
}
.tc-topbar button:hover svg {
fill: <<colour foreground>>;
}
.tc-sidebar-header {
color: <<colour sidebar-foreground>>;
fill: <<colour sidebar-foreground>>;
}
.tc-sidebar-header .tc-title a.tc-tiddlylink-resolves {
font-weight: 300;
}
.tc-sidebar-header .tc-sidebar-lists p {
margin-top: 3px;
margin-bottom: 3px;
}
.tc-sidebar-header .tc-missing-tiddler-label {
color: <<colour sidebar-foreground>>;
}
.tc-advanced-search input {
width: 60%;
}
.tc-search a svg {
width: 1.2em;
height: 1.2em;
vertical-align: middle;
}
.tc-page-controls {
margin-top: 14px;
font-size: 1.5em;
}
.tc-page-controls .tc-drop-down {
font-size: 1rem;
}
.tc-page-controls button {
margin-right: 0.5em;
}
.tc-page-controls a.tc-tiddlylink:hover {
text-decoration: none;
}
.tc-page-controls img {
width: 1em;
}
.tc-page-controls svg {
fill: <<colour sidebar-controls-foreground>>;
}
.tc-page-controls button:hover svg, .tc-page-controls a:hover svg {
fill: <<colour sidebar-controls-foreground-hover>>;
}
.tc-menu-list-item {
white-space: nowrap;
}
.tc-menu-list-count {
font-weight: bold;
}
.tc-menu-list-subitem {
padding-left: 7px;
}
.tc-story-river {
position: relative;
}
@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {
.tc-sidebar-header {
padding: 14px;
min-height: 32px;
margin-top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};
}
.tc-story-river {
position: relative;
padding: 0;
}
}
@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {
.tc-message-box {
margin: 21px -21px 21px -21px;
}
.tc-sidebar-scrollable {
position: fixed;
top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};
left: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};
bottom: 0;
right: 0;
overflow-y: auto;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
margin: 0 0 0 -42px;
padding: 71px 0 28px 42px;
}
html[dir="rtl"] .tc-sidebar-scrollable {
left: auto;
right: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};
}
.tc-story-river {
position: relative;
left: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};
top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};
width: {{$:/themes/tiddlywiki/vanilla/metrics/storywidth}};
padding: 42px 42px 42px 42px;
}
<<if-no-sidebar "
.tc-story-river {
width: calc(100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}});
}
">>
}
@media print {
body.tc-body {
background-color: transparent;
}
.tc-sidebar-header, .tc-topbar {
display: none;
}
.tc-story-river {
margin: 0;
padding: 0;
}
.tc-story-river .tc-tiddler-frame {
margin: 0;
border: none;
padding: 0;
}
}
/*
** Tiddler styles
*/
.tc-tiddler-frame {
position: relative;
margin-bottom: 28px;
background-color: <<colour tiddler-background>>;
border: 1px solid <<colour tiddler-border>>;
}
{{$:/themes/tiddlywiki/vanilla/sticky}}
.tc-tiddler-info {
padding: 14px 42px 14px 42px;
background-color: <<colour tiddler-info-background>>;
border-top: 1px solid <<colour tiddler-info-border>>;
border-bottom: 1px solid <<colour tiddler-info-border>>;
}
.tc-tiddler-info p {
margin-top: 3px;
margin-bottom: 3px;
}
.tc-tiddler-info .tc-tab-buttons button.tc-tab-selected {
background-color: <<colour tiddler-info-tab-background>>;
border-bottom: 1px solid <<colour tiddler-info-tab-background>>;
}
.tc-view-field-table {
width: 100%;
}
.tc-view-field-name {
width: 1%; /* Makes this column be as narrow as possible */
text-align: right;
font-style: italic;
font-weight: 200;
}
.tc-view-field-value {
}
@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {
.tc-tiddler-frame {
padding: 14px 14px 14px 14px;
}
.tc-tiddler-info {
margin: 0 -14px 0 -14px;
}
}
@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {
.tc-tiddler-frame {
padding: 28px 42px 42px 42px;
width: {{$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth}};
border-radius: 2px;
}
<<if-no-sidebar "
.tc-tiddler-frame {
width: 100%;
}
">>
.tc-tiddler-info {
margin: 0 -42px 0 -42px;
}
}
.tc-site-title,
.tc-titlebar {
font-weight: 300;
font-size: 2.35em;
line-height: 1.2em;
color: <<colour tiddler-title-foreground>>;
margin: 0;
}
.tc-site-title {
color: <<colour site-title-foreground>>;
}
.tc-tiddler-title-icon {
vertical-align: middle;
}
.tc-system-title-prefix {
color: <<colour muted-foreground>>;
}
.tc-titlebar h2 {
font-size: 1em;
display: inline;
}
.tc-titlebar img {
height: 1em;
}
.tc-subtitle {
font-size: 0.9em;
color: <<colour tiddler-subtitle-foreground>>;
font-weight: 300;
}
.tc-tiddler-missing .tc-title {
font-style: italic;
font-weight: normal;
}
.tc-tiddler-frame .tc-tiddler-controls {
float: right;
}
.tc-tiddler-controls .tc-drop-down {
font-size: 0.6em;
}
.tc-tiddler-controls .tc-drop-down .tc-drop-down {
font-size: 1em;
}
.tc-tiddler-controls > span > button,
.tc-tiddler-controls > span > span > button,
.tc-tiddler-controls > span > span > span > button {
vertical-align: baseline;
margin-left:5px;
}
.tc-tiddler-controls button svg, .tc-tiddler-controls button img,
.tc-search button svg, .tc-search a svg {
fill: <<colour tiddler-controls-foreground>>;
}
.tc-tiddler-controls button svg, .tc-tiddler-controls button img {
height: 0.75em;
}
.tc-search button svg, .tc-search a svg {
height: 1.2em;
width: 1.2em;
margin: 0 0.25em;
}
.tc-tiddler-controls button.tc-selected svg,
.tc-page-controls button.tc-selected svg {
fill: <<colour tiddler-controls-foreground-selected>>;
}
.tc-tiddler-controls button.tc-btn-invisible:hover svg,
.tc-search button:hover svg, .tc-search a:hover svg {
fill: <<colour tiddler-controls-foreground-hover>>;
}
@media print {
.tc-tiddler-controls {
display: none;
}
}
.tc-tiddler-help { /* Help prompts within tiddler template */
color: <<colour muted-foreground>>;
margin-top: 14px;
}
.tc-tiddler-help a.tc-tiddlylink {
color: <<colour very-muted-foreground>>;
}
.tc-tiddler-frame .tc-edit-texteditor {
width: 100%;
margin: 4px 0 4px 0;
}
.tc-tiddler-frame input.tc-edit-texteditor,
.tc-tiddler-frame textarea.tc-edit-texteditor,
.tc-tiddler-frame iframe.tc-edit-texteditor {
padding: 3px 3px 3px 3px;
border: 1px solid <<colour tiddler-editor-border>>;
background-color: <<colour tiddler-editor-background>>;
line-height: 1.3em;
-webkit-appearance: none;
font-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};
}
.tc-tiddler-frame .tc-binary-warning {
width: 100%;
height: 5em;
text-align: center;
padding: 3em 3em 6em 3em;
background: <<colour alert-background>>;
border: 1px solid <<colour alert-border>>;
}
canvas.tc-edit-bitmapeditor {
border: 6px solid <<colour tiddler-editor-border-image>>;
cursor: crosshair;
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
margin-top: 6px;
margin-bottom: 6px;
}
.tc-edit-bitmapeditor-width {
display: block;
}
.tc-edit-bitmapeditor-height {
display: block;
}
.tc-tiddler-body {
clear: both;
}
.tc-tiddler-frame .tc-tiddler-body {
font-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};
line-height: {{$:/themes/tiddlywiki/vanilla/metrics/bodylineheight}};
}
.tc-titlebar, .tc-tiddler-edit-title {
overflow: hidden; /* https://github.com/Jermolene/TiddlyWiki5/issues/282 */
}
html body.tc-body.tc-single-tiddler-window {
margin: 1em;
background: <<colour tiddler-background>>;
}
.tc-single-tiddler-window img,
.tc-single-tiddler-window svg,
.tc-single-tiddler-window canvas,
.tc-single-tiddler-window embed,
.tc-single-tiddler-window iframe {
max-width: 100%;
}
/*
** Editor
*/
.tc-editor-toolbar {
margin-top: 8px;
}
.tc-editor-toolbar button {
vertical-align: middle;
background-color: <<colour tiddler-controls-foreground>>;
fill: <<colour tiddler-controls-foreground-selected>>;
border-radius: 4px;
padding: 3px;
margin: 2px 0 2px 4px;
}
.tc-editor-toolbar button.tc-text-editor-toolbar-item-adjunct {
margin-left: 1px;
width: 1em;
border-radius: 8px;
}
.tc-editor-toolbar button.tc-text-editor-toolbar-item-start-group {
margin-left: 11px;
}
.tc-editor-toolbar button.tc-selected {
background-color: <<colour primary>>;
}
.tc-editor-toolbar button svg {
width: 1.6em;
height: 1.2em;
}
.tc-editor-toolbar button:hover {
background-color: <<colour tiddler-controls-foreground-selected>>;
fill: <<colour background>>;
color: <<colour background>>;
}
.tc-editor-toolbar .tc-text-editor-toolbar-more {
white-space: normal;
}
.tc-editor-toolbar .tc-text-editor-toolbar-more button {
display: inline-block;
padding: 3px;
width: auto;
}
.tc-editor-toolbar .tc-search-results {
padding: 0;
}
/*
** Adjustments for fluid-fixed mode
*/
@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {
<<if-fluid-fixed text:"""
.tc-story-river {
padding-right: 0;
position: relative;
width: auto;
left: 0;
margin-left: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};
margin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};
}
.tc-tiddler-frame {
width: 100%;
}
.tc-sidebar-scrollable {
left: auto;
bottom: 0;
right: 0;
width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};
}
body.tc-body .tc-storyview-zoomin-tiddler {
width: 100%;
width: calc(100% - 42px);
}
""" hiddenSidebarText:"""
.tc-story-river {
padding-right: 3em;
margin-right: 0;
}
body.tc-body .tc-storyview-zoomin-tiddler {
width: 100%;
width: calc(100% - 84px);
}
""">>
}
/*
** Toolbar buttons
*/
.tc-page-controls svg.tc-image-new-button {
fill: <<colour toolbar-new-button>>;
}
.tc-page-controls svg.tc-image-options-button {
fill: <<colour toolbar-options-button>>;
}
.tc-page-controls svg.tc-image-save-button {
fill: <<colour toolbar-save-button>>;
}
.tc-tiddler-controls button svg.tc-image-info-button {
fill: <<colour toolbar-info-button>>;
}
.tc-tiddler-controls button svg.tc-image-edit-button {
fill: <<colour toolbar-edit-button>>;
}
.tc-tiddler-controls button svg.tc-image-close-button {
fill: <<colour toolbar-close-button>>;
}
.tc-tiddler-controls button svg.tc-image-delete-button {
fill: <<colour toolbar-delete-button>>;
}
.tc-tiddler-controls button svg.tc-image-cancel-button {
fill: <<colour toolbar-cancel-button>>;
}
.tc-tiddler-controls button svg.tc-image-done-button {
fill: <<colour toolbar-done-button>>;
}
/*
** Tiddler edit mode
*/
.tc-tiddler-edit-frame em.tc-edit {
color: <<colour muted-foreground>>;
font-style: normal;
}
.tc-edit-type-dropdown a.tc-tiddlylink-missing {
font-style: normal;
}
.tc-edit-tags {
border: 1px solid <<colour tiddler-editor-border>>;
padding: 4px 8px 4px 8px;
}
.tc-edit-add-tag {
display: inline-block;
}
.tc-edit-add-tag .tc-add-tag-name input {
width: 50%;
}
.tc-edit-add-tag .tc-keyboard {
display:inline;
}
.tc-edit-tags .tc-tag-label {
display: inline-block;
}
.tc-edit-tags-list {
margin: 14px 0 14px 0;
}
.tc-remove-tag-button {
padding-left: 4px;
}
.tc-tiddler-preview {
overflow: auto;
}
.tc-tiddler-preview-preview {
float: right;
width: 49%;
border: 1px solid <<colour tiddler-editor-border>>;
margin: 4px 0 3px 3px;
padding: 3px 3px 3px 3px;
}
<<if-editor-height-fixed then:"""
.tc-tiddler-preview-preview {
overflow-y: scroll;
height: {{$:/config/TextEditor/EditorHeight/Height}};
}
""">>
.tc-tiddler-frame .tc-tiddler-preview .tc-edit-texteditor {
width: 49%;
}
.tc-tiddler-frame .tc-tiddler-preview canvas.tc-edit-bitmapeditor {
max-width: 49%;
}
.tc-edit-fields {
width: 100%;
}
.tc-edit-fields table, .tc-edit-fields tr, .tc-edit-fields td {
border: none;
padding: 4px;
}
.tc-edit-fields > tbody > .tc-edit-field:nth-child(odd) {
background-color: <<colour tiddler-editor-fields-odd>>;
}
.tc-edit-fields > tbody > .tc-edit-field:nth-child(even) {
background-color: <<colour tiddler-editor-fields-even>>;
}
.tc-edit-field-name {
text-align: right;
}
.tc-edit-field-value input {
width: 100%;
}
.tc-edit-field-remove {
}
.tc-edit-field-remove svg {
height: 1em;
width: 1em;
fill: <<colour muted-foreground>>;
vertical-align: middle;
}
.tc-edit-field-add-name {
display: inline-block;
width: 15%;
}
.tc-edit-field-add-value {
display: inline-block;
width: 40%;
}
.tc-edit-field-add-button {
display: inline-block;
width: 10%;
}
/*
** Storyview Classes
*/
.tc-storyview-zoomin-tiddler {
position: absolute;
display: block;
width: 100%;
}
@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {
.tc-storyview-zoomin-tiddler {
width: calc(100% - 84px);
}
}
/*
** Dropdowns
*/
.tc-btn-dropdown {
text-align: left;
}
.tc-btn-dropdown svg, .tc-btn-dropdown img {
height: 1em;
width: 1em;
fill: <<colour muted-foreground>>;
}
.tc-drop-down-wrapper {
position: relative;
}
.tc-drop-down {
min-width: 380px;
border: 1px solid <<colour dropdown-border>>;
background-color: <<colour dropdown-background>>;
padding: 7px 0 7px 0;
margin: 4px 0 0 0;
white-space: nowrap;
text-shadow: none;
line-height: 1.4;
}
.tc-drop-down .tc-drop-down {
margin-left: 14px;
}
.tc-drop-down button svg, .tc-drop-down a svg {
fill: <<colour foreground>>;
}
.tc-drop-down button.tc-btn-invisible:hover svg {
fill: <<colour foreground>>;
}
.tc-drop-down p {
padding: 0 14px 0 14px;
}
.tc-drop-down svg {
width: 1em;
height: 1em;
}
.tc-drop-down img {
width: 1em;
}
.tc-drop-down a, .tc-drop-down button {
display: block;
padding: 0 14px 0 14px;
width: 100%;
text-align: left;
color: <<colour foreground>>;
line-height: 1.4;
}
.tc-drop-down .tc-tab-set .tc-tab-buttons button {
display: inline-block;
width: auto;
margin-bottom: 0px;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
.tc-drop-down .tc-prompt {
padding: 0 14px;
}
.tc-drop-down .tc-chooser {
border: none;
}
.tc-drop-down .tc-chooser .tc-swatches-horiz {
font-size: 0.4em;
padding-left: 1.2em;
}
.tc-drop-down .tc-file-input-wrapper {
width: 100%;
}
.tc-drop-down .tc-file-input-wrapper button {
color: <<colour foreground>>;
}
.tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button {
color: <<colour tiddler-link-background>>;
background-color: <<colour tiddler-link-foreground>>;
text-decoration: none;
}
.tc-drop-down .tc-tab-buttons button {
background-color: <<colour dropdown-tab-background>>;
}
.tc-drop-down .tc-tab-buttons button.tc-tab-selected {
background-color: <<colour dropdown-tab-background-selected>>;
border-bottom: 1px solid <<colour dropdown-tab-background-selected>>;
}
.tc-drop-down-bullet {
display: inline-block;
width: 0.5em;
}
.tc-drop-down .tc-tab-contents a {
padding: 0 0.5em 0 0.5em;
}
.tc-block-dropdown-wrapper {
position: relative;
}
.tc-block-dropdown {
position: absolute;
min-width: 220px;
border: 1px solid <<colour dropdown-border>>;
background-color: <<colour dropdown-background>>;
padding: 7px 0;
margin: 4px 0 0 0;
white-space: nowrap;
z-index: 1000;
text-shadow: none;
}
.tc-block-dropdown.tc-search-drop-down {
margin-left: -12px;
}
.tc-block-dropdown a {
display: block;
padding: 4px 14px 4px 14px;
}
.tc-block-dropdown.tc-search-drop-down a {
display: block;
padding: 0px 10px 0px 10px;
}
.tc-drop-down .tc-dropdown-item-plain,
.tc-block-dropdown .tc-dropdown-item-plain {
padding: 4px 14px 4px 7px;
}
.tc-drop-down .tc-dropdown-item,
.tc-block-dropdown .tc-dropdown-item {
padding: 4px 14px 4px 7px;
color: <<colour muted-foreground>>;
}
.tc-block-dropdown a:hover {
color: <<colour tiddler-link-background>>;
background-color: <<colour tiddler-link-foreground>>;
text-decoration: none;
}
.tc-search-results {
padding: 0 7px 0 7px;
}
.tc-image-chooser, .tc-colour-chooser {
white-space: normal;
}
.tc-image-chooser a,
.tc-colour-chooser a {
display: inline-block;
vertical-align: top;
text-align: center;
position: relative;
}
.tc-image-chooser a {
border: 1px solid <<colour muted-foreground>>;
padding: 2px;
margin: 2px;
width: 4em;
height: 4em;
}
.tc-colour-chooser a {
padding: 3px;
width: 2em;
height: 2em;
vertical-align: middle;
}
.tc-image-chooser a:hover,
.tc-colour-chooser a:hover {
background: <<colour primary>>;
padding: 0px;
border: 3px solid <<colour primary>>;
}
.tc-image-chooser a svg,
.tc-image-chooser a img {
display: inline-block;
width: auto;
height: auto;
max-width: 3.5em;
max-height: 3.5em;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
}
/*
** Modals
*/
.tc-modal-wrapper {
position: fixed;
overflow: auto;
overflow-y: scroll;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 900;
}
.tc-modal-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1000;
background-color: <<colour modal-backdrop>>;
}
.tc-modal {
z-index: 1100;
background-color: <<colour modal-background>>;
border: 1px solid <<colour modal-border>>;
}
@media (max-width: 55em) {
.tc-modal {
position: fixed;
top: 1em;
left: 1em;
right: 1em;
}
.tc-modal-body {
overflow-y: auto;
max-height: 400px;
max-height: 60vh;
}
}
@media (min-width: 55em) {
.tc-modal {
position: fixed;
top: 2em;
left: 25%;
width: 50%;
}
.tc-modal-body {
overflow-y: auto;
max-height: 400px;
max-height: 60vh;
}
}
.tc-modal-header {
padding: 9px 15px;
border-bottom: 1px solid <<colour modal-header-border>>;
}
.tc-modal-header h3 {
margin: 0;
line-height: 30px;
}
.tc-modal-header img, .tc-modal-header svg {
width: 1em;
height: 1em;
}
.tc-modal-body {
padding: 15px;
}
.tc-modal-footer {
padding: 14px 15px 15px;
margin-bottom: 0;
text-align: right;
background-color: <<colour modal-footer-background>>;
border-top: 1px solid <<colour modal-footer-border>>;
}
/*
** Notifications
*/
.tc-notification {
position: fixed;
top: 14px;
right: 42px;
z-index: 1300;
max-width: 280px;
padding: 0 14px 0 14px;
background-color: <<colour notification-background>>;
border: 1px solid <<colour notification-border>>;
}
/*
** Tabs
*/
.tc-tab-set.tc-vertical {
display: -webkit-flex;
display: flex;
}
.tc-tab-buttons {
font-size: 0.85em;
padding-top: 1em;
margin-bottom: -2px;
}
.tc-tab-buttons.tc-vertical {
z-index: 100;
display: block;
padding-top: 14px;
vertical-align: top;
text-align: right;
margin-bottom: inherit;
margin-right: -1px;
max-width: 33%;
-webkit-flex: 0 0 auto;
flex: 0 0 auto;
}
.tc-tab-buttons button.tc-tab-selected {
color: <<colour tab-foreground-selected>>;
background-color: <<colour tab-background-selected>>;
border-left: 1px solid <<colour tab-border-selected>>;
border-top: 1px solid <<colour tab-border-selected>>;
border-right: 1px solid <<colour tab-border-selected>>;
}
.tc-tab-buttons button {
color: <<colour tab-foreground>>;
padding: 3px 5px 3px 5px;
margin-right: 0.3em;
font-weight: 300;
border: none;
background: inherit;
background-color: <<colour tab-background>>;
border-left: 1px solid <<colour tab-border>>;
border-top: 1px solid <<colour tab-border>>;
border-right: 1px solid <<colour tab-border>>;
border-top-left-radius: 2px;
border-top-right-radius: 2px;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
.tc-tab-buttons.tc-vertical button {
display: block;
width: 100%;
margin-top: 3px;
margin-right: 0;
text-align: right;
background-color: <<colour tab-background>>;
border-left: 1px solid <<colour tab-border>>;
border-bottom: 1px solid <<colour tab-border>>;
border-right: none;
border-top-left-radius: 2px;
border-bottom-left-radius: 2px;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.tc-tab-buttons.tc-vertical button.tc-tab-selected {
background-color: <<colour tab-background-selected>>;
border-right: 1px solid <<colour tab-background-selected>>;
}
.tc-tab-divider {
border-top: 1px solid <<colour tab-divider>>;
}
.tc-tab-divider.tc-vertical {
display: none;
}
.tc-tab-content {
margin-top: 14px;
}
.tc-tab-content.tc-vertical {
word-break: break-word;
display: inline-block;
vertical-align: top;
padding-top: 0;
padding-left: 14px;
border-left: 1px solid <<colour tab-border>>;
-webkit-flex: 1 0 70%;
flex: 1 0 70%;
}
.tc-sidebar-lists .tc-tab-buttons {
margin-bottom: -1px;
}
.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {
background-color: <<colour sidebar-tab-background-selected>>;
color: <<colour sidebar-tab-foreground-selected>>;
border-left: 1px solid <<colour sidebar-tab-border-selected>>;
border-top: 1px solid <<colour sidebar-tab-border-selected>>;
border-right: 1px solid <<colour sidebar-tab-border-selected>>;
}
.tc-sidebar-lists .tc-tab-buttons button {
background-color: <<colour sidebar-tab-background>>;
color: <<colour sidebar-tab-foreground>>;
border-left: 1px solid <<colour sidebar-tab-border>>;
border-top: 1px solid <<colour sidebar-tab-border>>;
border-right: 1px solid <<colour sidebar-tab-border>>;
}
.tc-sidebar-lists .tc-tab-divider {
border-top: 1px solid <<colour sidebar-tab-divider>>;
}
.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {
display: block;
width: 100%;
background-color: <<colour sidebar-tab-background>>;
border-top: none;
border-left: none;
border-bottom: none;
border-right: 1px solid #ccc;
margin-bottom: inherit;
}
.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {
background-color: <<colour sidebar-tab-background-selected>>;
border: none;
}
/*
** Manager
*/
.tc-manager-wrapper {
}
.tc-manager-controls {
}
.tc-manager-control {
margin: 0.5em 0;
}
.tc-manager-list {
width: 100%;
border-top: 1px solid <<colour muted-foreground>>;
border-left: 1px solid <<colour muted-foreground>>;
border-right: 1px solid <<colour muted-foreground>>;
}
.tc-manager-list-item {
}
.tc-manager-list-item-heading {
display: block;
width: 100%;
text-align: left;
border-bottom: 1px solid <<colour muted-foreground>>;
padding: 3px;
}
.tc-manager-list-item-heading-selected {
font-weight: bold;
color: <<colour background>>;
fill: <<colour background>>;
background-color: <<colour foreground>>;
}
.tc-manager-list-item-heading:hover {
background: <<colour primary>>;
color: <<colour background>>;
}
.tc-manager-list-item-content {
display: flex;
}
.tc-manager-list-item-content-sidebar {
flex: 1 0;
background: <<colour tiddler-editor-background>>;
border-right: 0.5em solid <<colour muted-foreground>>;
border-bottom: 0.5em solid <<colour muted-foreground>>;
white-space: nowrap;
}
.tc-manager-list-item-content-item-heading {
display: block;
width: 100%;
text-align: left;
background: <<colour muted-foreground>>;
text-transform: uppercase;
font-size: 0.6em;
font-weight: bold;
padding: 0.5em 0 0.5em 0;
}
.tc-manager-list-item-content-item-body {
padding: 0 0.5em 0 0.5em;
}
.tc-manager-list-item-content-item-body > pre {
margin: 0.5em 0 0.5em 0;
border: none;
background: inherit;
}
.tc-manager-list-item-content-tiddler {
flex: 3 1;
border-left: 0.5em solid <<colour muted-foreground>>;
border-right: 0.5em solid <<colour muted-foreground>>;
border-bottom: 0.5em solid <<colour muted-foreground>>;
}
.tc-manager-list-item-content-item-body > table {
border: none;
padding: 0;
margin: 0;
}
.tc-manager-list-item-content-item-body > table td {
border: none;
}
.tc-manager-icon-editor > button {
width: 100%;
}
.tc-manager-icon-editor > button > svg,
.tc-manager-icon-editor > button > button {
width: 100%;
height: auto;
}
/*
** Alerts
*/
.tc-alerts {
position: fixed;
top: 0;
left: 0;
max-width: 500px;
z-index: 20000;
}
.tc-alert {
position: relative;
margin: 28px;
padding: 14px 14px 14px 14px;
border: 2px solid <<colour alert-border>>;
background-color: <<colour alert-background>>;
}
.tc-alert-toolbar {
position: absolute;
top: 14px;
right: 14px;
}
.tc-alert-toolbar svg {
fill: <<colour alert-muted-foreground>>;
}
.tc-alert-subtitle {
color: <<colour alert-muted-foreground>>;
font-weight: bold;
}
.tc-alert-highlight {
color: <<colour alert-highlight>>;
}
@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {
.tc-static-alert {
position: relative;
}
.tc-static-alert-inner {
position: absolute;
z-index: 100;
}
}
.tc-static-alert-inner {
padding: 0 2px 2px 42px;
color: <<colour static-alert-foreground>>;
}
/*
** Floating drafts list
*/
.tc-drafts-list {
z-index: 2000;
position: fixed;
font-size: 0.8em;
left: 0;
bottom: 0;
}
.tc-drafts-list a {
margin: 0 0.5em;
padding: 4px 4px;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
border: 1px solid <<colour background>>;
border-bottom-none;
background: <<colour dirty-indicator>>;
color: <<colour background>>;
fill: <<colour background>>;
}
.tc-drafts-list a:hover {
text-decoration: none;
background: <<colour foreground>>;
color: <<colour background>>;
fill: <<colour background>>;
}
.tc-drafts-list a svg {
width: 1em;
height: 1em;
vertical-align: text-bottom;
}
/*
** Control panel
*/
.tc-control-panel td {
padding: 4px;
}
.tc-control-panel table, .tc-control-panel table input, .tc-control-panel table textarea {
width: 100%;
}
.tc-plugin-info {
display: block;
border: 1px solid <<colour muted-foreground>>;
background-colour: <<colour background>>;
margin: 0.5em 0 0.5em 0;
padding: 4px;
}
.tc-plugin-info-disabled {
background: -webkit-repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);
background: repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);
}
.tc-plugin-info-disabled:hover {
background: -webkit-repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);
background: repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);
}
a.tc-tiddlylink.tc-plugin-info:hover {
text-decoration: none;
background-color: <<colour primary>>;
color: <<colour background>>;
fill: <<colour foreground>>;
}
a.tc-tiddlylink.tc-plugin-info:hover .tc-plugin-info > .tc-plugin-info-chunk > svg {
fill: <<colour foreground>>;
}
.tc-plugin-info-chunk {
display: inline-block;
vertical-align: middle;
}
.tc-plugin-info-chunk h1 {
font-size: 1em;
margin: 2px 0 2px 0;
}
.tc-plugin-info-chunk h2 {
font-size: 0.8em;
margin: 2px 0 2px 0;
}
.tc-plugin-info-chunk div {
font-size: 0.7em;
margin: 2px 0 2px 0;
}
.tc-plugin-info:hover > .tc-plugin-info-chunk > img, .tc-plugin-info:hover > .tc-plugin-info-chunk > svg {
width: 2em;
height: 2em;
fill: <<colour foreground>>;
}
.tc-plugin-info > .tc-plugin-info-chunk > img, .tc-plugin-info > .tc-plugin-info-chunk > svg {
width: 2em;
height: 2em;
fill: <<colour muted-foreground>>;
}
.tc-plugin-info.tc-small-icon > .tc-plugin-info-chunk > img, .tc-plugin-info.tc-small-icon > .tc-plugin-info-chunk > svg {
width: 1em;
height: 1em;
}
.tc-plugin-info-dropdown {
border: 1px solid <<colour muted-foreground>>;
margin-top: -8px;
}
.tc-plugin-info-dropdown-message {
background: <<colour message-background>>;
padding: 0.5em 1em 0.5em 1em;
font-weight: bold;
font-size: 0.8em;
}
.tc-plugin-info-dropdown-body {
padding: 1em 1em 1em 1em;
}
.tc-check-list {
line-height: 2em;
}
.tc-check-list .tc-image-button {
height: 1.5em;
}
/*
** Message boxes
*/
.tc-message-box {
border: 1px solid <<colour message-border>>;
background: <<colour message-background>>;
padding: 0px 21px 0px 21px;
font-size: 12px;
line-height: 18px;
color: <<colour message-foreground>>;
}
.tc-message-box svg {
width: 1em;
height: 1em;
vertical-align: text-bottom;
}
/*
** Pictures
*/
.tc-bordered-image {
border: 1px solid <<colour muted-foreground>>;
padding: 5px;
margin: 5px;
}
/*
** Floats
*/
.tc-float-right {
float: right;
}
/*
** Chooser
*/
.tc-chooser {
border-right: 1px solid <<colour table-header-background>>;
border-left: 1px solid <<colour table-header-background>>;
}
.tc-chooser-item {
border-bottom: 1px solid <<colour table-header-background>>;
border-top: 1px solid <<colour table-header-background>>;
padding: 2px 4px 2px 14px;
}
.tc-drop-down .tc-chooser-item {
padding: 2px;
}
.tc-chosen,
.tc-chooser-item:hover {
background-color: <<colour table-header-background>>;
border-color: <<colour table-footer-background>>;
}
.tc-chosen .tc-tiddlylink {
cursor:default;
}
.tc-chooser-item .tc-tiddlylink {
display: block;
text-decoration: none;
background-color: transparent;
}
.tc-chooser-item:hover .tc-tiddlylink:hover {
text-decoration: none;
}
.tc-drop-down .tc-chosen .tc-tiddlylink,
.tc-drop-down .tc-chooser-item .tc-tiddlylink:hover {
color: <<colour foreground>>;
}
.tc-chosen > .tc-tiddlylink:before {
margin-left: -10px;
position: relative;
content: "» ";
}
.tc-chooser-item svg,
.tc-chooser-item img{
width: 1em;
height: 1em;
vertical-align: middle;
}
.tc-language-chooser .tc-image-button img {
width: 2em;
vertical-align: -0.15em;
}
/*
** Palette swatches
*/
.tc-swatches-horiz {
}
.tc-swatches-horiz .tc-swatch {
display: inline-block;
}
.tc-swatch {
width: 2em;
height: 2em;
margin: 0.4em;
border: 1px solid #888;
}
/*
** Table of contents
*/
.tc-sidebar-lists .tc-table-of-contents {
white-space: nowrap;
}
.tc-table-of-contents button {
color: <<colour sidebar-foreground>>;
}
.tc-table-of-contents svg {
width: 0.7em;
height: 0.7em;
vertical-align: middle;
fill: <<colour sidebar-foreground>>;
}
.tc-table-of-contents ol {
list-style-type: none;
padding-left: 0;
}
.tc-table-of-contents ol ol {
padding-left: 1em;
}
.tc-table-of-contents li {
font-size: 1.0em;
font-weight: bold;
}
.tc-table-of-contents li a {
font-weight: bold;
}
.tc-table-of-contents li li {
font-size: 0.95em;
font-weight: normal;
line-height: 1.4;
}
.tc-table-of-contents li li a {
font-weight: normal;
}
.tc-table-of-contents li li li {
font-size: 0.95em;
font-weight: 200;
line-height: 1.5;
}
.tc-table-of-contents li li li li {
font-size: 0.95em;
font-weight: 200;
}
.tc-tabbed-table-of-contents {
display: -webkit-flex;
display: flex;
}
.tc-tabbed-table-of-contents .tc-table-of-contents {
z-index: 100;
display: inline-block;
padding-left: 1em;
max-width: 50%;
-webkit-flex: 0 0 auto;
flex: 0 0 auto;
background: <<colour tab-background>>;
border-left: 1px solid <<colour tab-border>>;
border-top: 1px solid <<colour tab-border>>;
border-bottom: 1px solid <<colour tab-border>>;
}
.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a,
.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {
display: block;
padding: 0.12em 1em 0.12em 0.25em;
}
.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a {
border-top: 1px solid <<colour tab-background>>;
border-left: 1px solid <<colour tab-background>>;
border-bottom: 1px solid <<colour tab-background>>;
}
.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a:hover {
text-decoration: none;
border-top: 1px solid <<colour tab-border>>;
border-left: 1px solid <<colour tab-border>>;
border-bottom: 1px solid <<colour tab-border>>;
background: <<colour tab-border>>;
}
.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {
border-top: 1px solid <<colour tab-border>>;
border-left: 1px solid <<colour tab-border>>;
border-bottom: 1px solid <<colour tab-border>>;
background: <<colour background>>;
margin-right: -1px;
}
.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a:hover {
text-decoration: none;
}
.tc-tabbed-table-of-contents .tc-tabbed-table-of-contents-content {
display: inline-block;
vertical-align: top;
padding-left: 1.5em;
padding-right: 1.5em;
border: 1px solid <<colour tab-border>>;
-webkit-flex: 1 0 50%;
flex: 1 0 50%;
}
/*
** Dirty indicator
*/
body.tc-dirty span.tc-dirty-indicator, body.tc-dirty span.tc-dirty-indicator svg {
fill: <<colour dirty-indicator>>;
color: <<colour dirty-indicator>>;
}
/*
** File inputs
*/
.tc-file-input-wrapper {
position: relative;
overflow: hidden;
display: inline-block;
vertical-align: middle;
}
.tc-file-input-wrapper input[type=file] {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
font-size: 999px;
max-width: 100%;
max-height: 100%;
filter: alpha(opacity=0);
opacity: 0;
outline: none;
background: white;
cursor: pointer;
display: inline-block;
}
/*
** Thumbnail macros
*/
.tc-thumbnail-wrapper {
position: relative;
display: inline-block;
margin: 6px;
vertical-align: top;
}
.tc-thumbnail-right-wrapper {
float:right;
margin: 0.5em 0 0.5em 0.5em;
}
.tc-thumbnail-image {
text-align: center;
overflow: hidden;
border-radius: 3px;
}
.tc-thumbnail-image svg,
.tc-thumbnail-image img {
filter: alpha(opacity=1);
opacity: 1;
min-width: 100%;
min-height: 100%;
max-width: 100%;
}
.tc-thumbnail-wrapper:hover .tc-thumbnail-image svg,
.tc-thumbnail-wrapper:hover .tc-thumbnail-image img {
filter: alpha(opacity=0.8);
opacity: 0.8;
}
.tc-thumbnail-background {
position: absolute;
border-radius: 3px;
}
.tc-thumbnail-icon svg,
.tc-thumbnail-icon img {
width: 3em;
height: 3em;
<<filter "drop-shadow(2px 2px 4px rgba(0,0,0,0.3))">>
}
.tc-thumbnail-wrapper:hover .tc-thumbnail-icon svg,
.tc-thumbnail-wrapper:hover .tc-thumbnail-icon img {
fill: #fff;
<<filter "drop-shadow(3px 3px 4px rgba(0,0,0,0.6))">>
}
.tc-thumbnail-icon {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: -webkit-flex;
-webkit-align-items: center;
-webkit-justify-content: center;
display: flex;
align-items: center;
justify-content: center;
}
.tc-thumbnail-caption {
position: absolute;
background-color: #777;
color: #fff;
text-align: center;
bottom: 0;
width: 100%;
filter: alpha(opacity=0.9);
opacity: 0.9;
line-height: 1.4;
border-bottom-left-radius: 3px;
border-bottom-right-radius: 3px;
}
.tc-thumbnail-wrapper:hover .tc-thumbnail-caption {
filter: alpha(opacity=1);
opacity: 1;
}
/*
** Diffs
*/
.tc-diff-equal {
background-color: <<colour diff-equal-background>>;
color: <<colour diff-equal-foreground>>;
}
.tc-diff-insert {
background-color: <<colour diff-insert-background>>;
color: <<colour diff-insert-foreground>>;
}
.tc-diff-delete {
background-color: <<colour diff-delete-background>>;
color: <<colour diff-delete-foreground>>;
}
.tc-diff-invisible {
background-color: <<colour diff-invisible-background>>;
color: <<colour diff-invisible-foreground>>;
}
.tc-diff-tiddlers th {
text-align: right;
background: <<colour background>>;
font-weight: normal;
font-style: italic;
}
.tc-diff-tiddlers pre {
margin: 0;
padding: 0;
border: none;
background: none;
}
/*
** Errors
*/
.tc-error {
background: #f00;
color: #fff;
}
/*
** Tree macro
*/
.tc-tree div {
padding-left: 14px;
}
.tc-tree ol {
list-style-type: none;
padding-left: 0;
margin-top: 0;
}
.tc-tree ol ol {
padding-left: 1em;
}
.tc-tree button {
color: #acacac;
}
.tc-tree svg {
fill: #acacac;
}
.tc-tree span svg {
width: 1em;
height: 1em;
vertical-align: baseline;
}
.tc-tree li span {
color: lightgray;
}
select {
color: <<colour select-tag-foreground>>;
background: <<colour select-tag-background>>;
}
<$reveal state="$:/themes/tiddlywiki/vanilla/options/stickytitles" type="match" text="yes">
``
.tc-tiddler-title {
position: -webkit-sticky;
position: -moz-sticky;
position: -o-sticky;
position: -ms-sticky;
position: sticky;
top: 0px;
background: ``<<colour tiddler-background>>``;
z-index: 500;
}
``
</$reveal>
<$tmap view="12 Judges in the Bible" editor="advanced" height="500px" ></$tmap>
son of [[Zeror]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
daughter of [[耶西 Jesse]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAEtWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMTI4IgogICB0aWZmOkltYWdlV2lkdGg9IjEyOCIKICAgdGlmZjpSZXNvbHV0aW9uVW5pdD0iMiIKICAgdGlmZjpYUmVzb2x1dGlvbj0iNzIvMSIKICAgdGlmZjpZUmVzb2x1dGlvbj0iNzIvMSIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjEyOCIKICAgZXhpZjpQaXhlbFlEaW1lbnNpb249IjEyOCIKICAgZXhpZjpDb2xvclNwYWNlPSIxIgogICBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIgogICBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDI0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
! 河神
是与希腊最大的河流 Achelous 河有关的神。
A naiad/河神尼鲁斯的女儿/[[贝鲁斯|👑贝鲁斯 Belus]]的妻子
[[拉麦 Lamech (descendant of Cain)]]的妻子,有两个儿子。
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
the ''first'' wife of [[Esau|以扫 Esau]]
|!父母 |[[Cretheus]] and [[Tyro]] |
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
In Greek mythology, Aeson (/ˈiːsɒn/; Ancient Greek: Αἴσων Aísōn) was a king of [[Iolcus|伊奥尔科斯 Iolcus]] in Thessaly.
He was the father of the hero Jason. According to one version of the story, he was imprisoned by his half-brother Pelias, and when Pelias intended to kill him he committed suicide. In another story, he was killed by Jason's wife Medea, who brought him back to life as a young man.
!! Offpring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
Father of King Baasha of Israel
A daughter of Ahimaaz; who became a wife of [[Saul|👑扫罗 Saul]] and the mother of his four sons and two daughters, one of whom is Michal, David's first wife.
!! Offspring
<<list-links "[tag<currentTiddler>] +[nsort[num]]">>
daughter of [[Anah]], one wife of [[以扫 Esau]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
<<alert warning src:"src" class:"leftbar border-warning">>
the daughter of Shuah, a Canaanite, wife of [[犹大 Judah (son of Jacob)]]
Alvaldi (also Ölvaldi; Old Norse '''all-powerful''') is a [[jötunn|巨人族 Jotun]] in Norse mythology, presented as the father of [[夏基 Thiazi]].
Saturn's moon Alvaldi is named after him.
[[斯露德 Thrud]]曾为侏儒[[阿尔维斯(Alvis,全智者)|阿尔维斯 Alvis]]所爱,某夜,阿尔维斯去找托尔,要向他的女儿求婚。托尔说要考验侏儒的智慧,问以种种问题,直到夜尽天晓,第一线阳光射来,阿尔维斯来不及回到地底,在阳光下化作了石头。
son of [[Timna]] and [[Eliphaz]]
a man from the Tribe of Ephraim
iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAYAAAB91L6VAAAEtWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgdGlmZjpJbWFnZUxlbmd0aD0iNDgwIgogICB0aWZmOkltYWdlV2lkdGg9IjQ4MCIKICAgdGlmZjpSZXNvbHV0aW9uVW5pdD0iMiIKICAgdGlmZjpYUmVzb2x1dGlvbj0iNzIvMSIKICAgdGlmZjpZUmVzb2x1dGlvbj0iNzIvMSIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjQ4MCIKICAgZXhpZjpQaXhlbFlEaW1lbnNpb249IjQ4MCIKICAgZXhpZjpDb2xvclNwYWNlPSIxIgogICBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIgogICBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIz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
! 葡萄树的化身
''Ampelos'' (Greek: Ἂμπελος, lit. "Vine") or ''Ampelus'' (Latin)
同时是[[🍺酒神狄俄尼索斯 Dionysus]]的情人。
[img[https://upload.wikimedia.org/wikipedia/commons/4/40/Group_with_Bacchus_leaning_on_Satyr-Uffizi_Gallery.jpg]]
//Bacchus e Ampelus (Uffizi, Florence)//
根据Nonnus(古希腊诗人),Ampelos是一个美丽的 satyr青年,他被狄俄尼索斯所爱,他的死亡是由神所预知的。关于他的死亡和狄俄尼索斯的反应有两个版本。根据Nonnus的说法,Ampelos在嘲笑[[Selene|🌖月亮女神塞勒涅 Selene]]女神后被一头野牛刺死了。
狄俄尼索斯对他的死感到悲伤,他将Ampelos的身体变成了第一颗葡萄藤,并用他的血液酿造了酒。
在中世纪和文艺复兴时期,Ampelos并不出名。在新时代和后来,他的形象只是偶尔被发现。''关于他的神话是在十七世纪在欧洲被 "重新发现 "的'',当时《狄俄尼索斯的行为》的第一批译本已经出版。Jacob Matham和Jan Mil等艺术家参与了他们的设计。
例如,在皮埃尔-弗朗索瓦-休-德-汉卡维尔的《伊特鲁里亚、希腊和罗马古物》(1766年)和亚历山大-亨德森博士的《古代和现代葡萄酒的故事》(1824年)等书中也可以找到安费洛斯的形象。Ampelos的形象出现在马丁-奥皮茨(1622年)、海因里希-海涅(《流亡的神》(1853年))和马修-阿诺德(《失落的流浪者》(1898年))、罗伯托-卡拉索(1988年)的作品中。一些研究者还指出,狄俄尼索斯和Ampelos的神话是''法国同性恋作家安德烈-纪德的灵感来源之一''。
son of [[哥辖 Kehath]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
斯巴达国王和拉科尼亚中部 Amyclae 的创始人
father of [[Shamgar]], a Judge in [[士师记 Book of Judges c.1100 BC]]
|父母 |[[Autolycus|Autolycus]] and Amphithea |
iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAQMAAACXljzdAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAGUExURQAAAAAAAKVnuc8AAAACdFJOUwL3Z3zIBQAAA9lJREFUWMPd2DGSFSEQAFCoKYuQ0HCOwh7LSMYy2HCvYOgxxhPoDcQy0MyxNBhLlpZu4A8wzbd2NdoNfm3N+zDQNA27Qjzpnxv26Qsh5MaKF2LaOZDhmqihaFYmFD+SmRU1FhDCsKIfIXMUG3hZrgiwYqKEB8s6EAur9PZhAlfEjWXax2IWZrEBtv8n0+8rsquNl99R5pWRX1fE86K+3z9Ggtq048Q/RmAgn7xVjhMd5XZTzObWLpg7N5LbobwfyXxNuFKhnZ2/jUSPBUaihnKLmc3EzZnXvOihxFx7NZL5HTgRHijrUNxI4oycACZ7d70ZJywncdwbJxp3AtvGerXPXJsJPL5JnDedjuJjHhp3rkdeehVlP+/5IMO0nquvIskVuCuve5HlVPYsHhmx8dq9Jgir6BXgutnswt7RsOzWzSaO946ezfvpTDAfXYpfOwA8ldIbVDuh+Bqq5PlQqwfgcOA4kxsZ2ggsWGEXOlChP65i5NL7mwlhGKckPvZaD22nmBapRocdqPuQejNw9CdxvPoXBXRDgWPQcVTzdxR5E2ccK3d1LgvzyZfvAZRFohPevvOXIALk4FF47St/LGNpZLBbOLa1ujSKWyCOr9rwc2mEg55CJTIPT6JPvi4SGuicljgxtTcFLM12CnmTtJlZ1ld3xdVCyYm5K4eKZGOElnbGR2btijjFEh/ZhZN1JHahbluh5AJWfB5F/Ep7kKFQu5NMPgcn/tIK3v5Q8YJ4Frobql4wMLxgYChs8aMVzIAiTS2itJ0d1fFWNKWto0WoBHKWUkDjSy5CcAm1OUSR4CTpSfwoYkn2sgiHSALaXFRT7UV0kpIKyKZc/aBsrSLUK3bm6wVHtmVkS73gyDZ3tjcLfpHY2dqILKKPHZ+WFNl2naU/BIrIoxRkmbJoqNrQYiPbtHUr2Sox8HkgFibfCn68pEJXHc+U6CiU/CsnLyl8ozZBVIewzkmFj7DBIZSa/yi2FfwIx4T/JpRM/yjHlihp/VjB8B1iC2PR4CW3ObZ43YaTFDNGrBi1sdfaMLJkCanQHEKbz6ZzoxM6zdNZQ6XLVUXmTZKVbhp6rcvPV8wB2CT0baj+xE2lhwKtBDsUNZR8EMr7s8Q9SPkJ8KUdQRz/M5Qwg27Fp4YySNcJpF2FcTtFx/Fic6XFiJpGzCUGOaKuviakNn1ExSU6u+pEljZ9DKh0DSS+aiTp8IwR/cFLjCgWt/MhPXkDr+GDam+qOMvZKz+VU6S+3NIoOElzOovIpxR9Y+0u0amEV1e3Iwz0RNc1vtzzUl17/vP87ws3+nfUW/HUf/4Ajy7TTX/mFtUAAAAASUVORK5CYII=
a [[Benjaminite|便雅悯 Benjamin]]
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
son of [[闪姆 Shem]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
! [[伊萨卡(Ithaca)|Ithaca]]国王
|父母 |Zeus and Euryodeia or Cephalus |
<<list-links "[tag[Area of Egypt]sort[title]]">>
<<list-links "[tag[Area of Greek]]">>
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
son of [[迦得 Gad (son of Jacob)]]
son of [[Rizpah]] and [[👑扫罗 Saul]]
Armoni and [[Mephibosheth|Mephibosheth]] are named in the Hebrew Bible as the two sons of Saul by his concubine Rizpah, daughter of Aiah. After Saul's death, they were killed in revenge for his violence against the Gibeonites.
son of [[迦得 Gad (son of Jacob)]]
! A legendary king of Alba Longa
''Ascanius'' (''/əˈskeɪniəs/''; Ancient Greek: Ἀσκάνιος) (said to have reigned 1176-1138 BC)
|父母 |[[Aeneas|埃涅阿斯 Aeneas]] and [[Creusa|Creusa of Troy]] |
埃及祭司Potipherah的女儿,[[约瑟 Joseph]]的妻子。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
女儿/普罗米修斯的母亲/[[伊阿佩托斯 Iapetus]]的妻子
! A king of [[Dardania|Dardania]]
''Assaracus'' (''/əˈsærəkəs/''; Ancient Greek: Ἀσσάρακος Assarakos)
Assaracus was the second son of Tros.
! 泰坦女神/提洛女神 (Goddess of Delos)
|父母 |[[Coeus|科俄斯 Coeus]] and [[Phoebe|福柏 Phoebe]] |
''Asteria'' or ''Asterie'' (''/əˈstɪəriə/''; Ancient Greek: Ἀστερία, lit. 'of the stars, starry one')
阿斯特丽亚是奥林匹斯山的居民,和她的姐姐莱托一样,受到宙斯的喜爱。''宙斯以鹰的形态追求她,为了躲避宙斯的示爱,她把自己变成了一只鹌鹑(ortux),跳进了爱琴海''。
就在那里,阿斯特丽亚变成了阿斯特丽亚岛 island Asteria(像星星一样从天上掉下来的岛)或 "鹌鹑岛 "Ortygia。这后来被认定为德洛斯岛 island of Delos,当怀着宙斯的孩子被复仇的赫拉追赶时,德洛斯岛是地球上唯一能让逃亡的勒托避难的地方。根据Hyginus的说法,Leto被北风Boreas按宙斯的命令带到了浮岛,当时Python正在追捕她,她在那里紧紧抓住一颗橄榄,生下了Apollo和Artemis。
在Delos岛上,Asteria嫁给了[[Perses|Perses]],生下了他们的孩子Hecate。
诗人诺努斯(Nonnus)补充了一个不同的版本,他叙述了在宙斯追赶阿斯特丽亚后,将自己变成一只鹌鹑并跳入大海后,波塞冬反而开始了追逐。在疯狂的激情中,他在海中来回追捕这位贞洁的女神,在风云变幻中坐立不安,在外甥阿波罗的帮助下,她变成了荒岛提洛岛,阿波罗将她扎根于海浪中,一动不动。
在疯狂的激情中,他在海中来回追捕这位贞洁的女神,她被狂野的风浪搅动得不得安宁,于是在她侄子阿波罗的帮助下,她把自己变成了德洛斯(Delos)的荒岛,阿波罗把她扎在海浪中不动了。
! 一个成功的强盗,甚至有能力使赃物和自己变身
''Autolycus'' (''/ɔːˈtɒlɪkəs/''; Ancient Greek: Αὐτόλυκος Autolykos, "the wolf itself")
他在帕纳索斯山有自己的住所,''因其狡猾和誓言而闻名于世''。
<<image-basic "https://www.cleopatraegypttours.com/wp-content/uploads/2019/10/BA-symbol.jpg"
caption:"Ba symbol"
width:""
align:"right"
>>
巴最常被描绘成一只人头鸟。人的“巴”被认为在来世很重要,白天可以去生者的世界,晚上可以回到死者的世界。
''Batea'' or ''Bateia'' (''/bəˈtiːə/''; Ancient Greek: Βάτεια)
son of [[亚设 Asher]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
|!父母 |[[阿多尼斯 Adonis]] and [[💗爱情女神阿佛洛狄忒 Aphrodite]] |
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
Beroe, also called Amymone, a Phoenician nymph and daughter of Aphrodite and Adonis. She was confused by the poet Nonnus from the Oceanid Beroe.
<$tmap view="Biblical genealogy" editor="advanced" height="500px" ></$tmap>
[img[https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Nomos_Viotias.png/500px-Nomos_Viotias.png]]
[img[Map of ancient Boeotia |https://upload.wikimedia.org/wikipedia/commons/thumb/1/1b/Boeotia_ancient-en.svg/440px-Boeotia_ancient-en.svg.png]]
//Map of ancient Boeotia//
[img[https://upload.wikimedia.org/wikipedia/commons/thumb/8/81/Ancient_Regions_Central_Greece.png/600px-Ancient_Regions_Central_Greece.png]]
//Map showing ancient regions of central Greece in relation to geographical features//
son of [[拿鹤 Nahor, son of Terah]] and [[密迦 Milcah]]
! 一个仙女(nymph)
|父母 |[[Atlas|阿特拉斯 Atlas]] and [[Pleione|Pleione]] |
! 歌曲的拟人态(personification of song)
|!父母 |[[Janus|双面神 贾努斯 Janus]] and [[Venilia|Venilia]] |
|!配偶 |[[皮库斯 Picus]] |
因为Canens的丈夫Picus蔑视女巫[[Circe|喀耳刻 Circe]]的爱,她把他变成了一只啄木鸟。Canens找了她的丈夫六天,然后把自己扔进了台伯河。她唱了最后一首歌,然后死去。他们有一个儿子,[[Faunus|法乌诺斯 Faunus]]。
! A king of [[Dardania|Dardania]] during the Iliad and Aeneid
<<card
text:"
"
footer:""
>>
! 双子神,水手的守护神,与马术有关
|别名 |Dioscuri<br/>The Two Gods<br/>Gemini<br/>Castores<br/>Tyndarids<br/>Pollux sometimes called Polydeukes<br/><br/> |
|对应伊特鲁里亚神 |Kastur and Pultuce |
|对应印欧语系神 |divine twins |
Castor[a] 和 Pollux[b](或在希腊语中为 Polydeukes[c])是希腊和罗马神话中的孪生兄弟,统称为 Dioscuri。
他们的母亲是Leda,但他们有不同的父亲;Castor是斯巴达国王Tyndareus的凡人之子,而Pollux是宙斯的神子,他以天鹅的身份勾引Leda。因此,这对夫妇是异父超生的一个例子。虽然关于他们出生的说法各不相同,但有时他们被说成是与他们的孪生姐妹特洛伊的海伦和克吕泰涅斯特拉一起从一个鸡蛋中诞生的。
<a href="">
<<image-basic "url"
caption:" "
width:"auto"
align:"center"
>>
</a>
commonly spelled ''Kephissos'' or ''Kifisos'' (/ˈkɛfɪˌsəs/ or /ˌkɪfɪˈsoʊs/) (Greek: Κηφισός, Kifisós, [kifiˈsos])
河神
母亲是 [[Thalassa|塔拉萨 Thalassa]]
Daedalion的女儿Chione据说非常漂亮,是无数男人向往的对象。事实证明,Chione的仰慕者并不限于凡人。阿波罗和赫尔墨斯在访问地球回来的时候看到了奇奥内,并充满了燃烧的欲望。
阿波罗决定等到夜幕降临,然而赫尔墨斯却没有那么多耐心。通过使用魔法,他使Chione陷入了沉睡,并开始强奸她。当天晚上,阿波罗还化身为一个老妇人拜访了她。
由于这两次神圣的拜访,Chione生下了一对双胞胎。通过赫尔墨斯,她生下了[[Autolycus|Autolycus]],后者成长为一个臭名昭著的小偷和骗子。通过阿波罗,她生下了Philammon,一个以声音和琴技闻名的人。
不是一个而是两个神的关注使Chione夸口说她的美貌甚至超过了阿尔忒弥斯的美貌。为了报复这种个人的轻视,更不用说亵渎了,''阿尔忒弥斯一箭射穿了基奥内的舌头''。
她的父亲代达里昂悲痛欲绝,尽管他的兄弟尽力安慰他。在女儿的葬礼上,Daedalion三次试图跳入火堆,但都被制止了。第四次尝试失败后,他以不可能的速度跑过田野和森林,爬上帕纳索斯山的山顶,跳了下去。
阿波罗同情这位悲痛的父亲,在他落地前把他变成了一只鹰。据说,鹰的巨大力量以及它猎杀其他鸟类的倾向,是Daedalion以前的勇气和他女儿的死亡引起的愤怒的结果。
flowchart LR
A[犹太教 塔纳赫 ] -->|=| B[旧约 39卷]
B -->|+|C[新约 27卷] -->|=| D[基督新教 圣经]
B -->|+|E[次经 7卷] -->|+|F[新约 27卷] -->|=| G[天主教 圣经]
B -->|+|H[次经 4卷] -->|+|I[新约 27卷] -->|=| J[东正教 圣经]
E -->|+|H
<div class="tc-table-of-contents">
<<toc-selective-expandable 'Contents' nsort[num]>>
</div>
''Cretheus'' (''/ˈkriːθiəs, -θjuːs/;'' Ancient Greek: Κρηθεύς Krētheus) was the king and founder of [[Iolcus|伊奥尔科斯 Iolcus]].
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
''Creusa'' (''/kriˈuːsə/''; Ancient Greek: Κρέουσα Kreousa "princess")
son of [[含姆 Ham]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
斯巴达国王
''Cynortas/Cynortes/Cynortus''
[img[https://upload.wikimedia.org/wikipedia/commons/0/0e/Troas.png?1625194833622]]
! The founder of the city of Dardanus at the foot of Mount Ida in the Troad
|父母 |Zeus and the [[Pleiad Electra |Electra (Pleiad)]]|
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
son of [[Jokshan]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
! A prince of Troy
''Deiphobus'' ''/diːˈɪfəbəs/'' (Ancient Greek: Δηίφοβος, Deiphobos)
|父母 |[[Priam|Priam]] and [[Hecuba|Hecuba]] |
<$edit-text tiddler="$:/temp/delete-filter" tag="input" placeholder="enter a filter" default="" size=50/>
<$reveal state="$:/temp/delete-filter" type="nomatch" text="">
<$button class="tc-btn-invisible">
<$action-setfield $tiddler="$:/temp/delete-filter" $field="text" $value=""/>
{{$:/core/images/close-button}}
</$button>
</$reveal>
<$button>
<$action-deletetiddler $filter={{$:/temp/delete-filter}}/>
Delete All
</$button><br>
<$list filter={{$:/temp/delete-filter}}>
<$button message="tm-delete-tiddler" param={{!!title}}>{{$:/core/images/delete-button}}</$button> <$link to={{!!title}}><$view field=title/></$link><br>
</$list>
[img[https://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Map_greek_sanctuaries-en.svg/1024px-Map_greek_sanctuaries-en.svg.png]]
[img[https://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Map_greek_sanctuaries-en.svg/1024px-Map_greek_sanctuaries-en.svg.png]]
descendant of [[以萨迦 Issachar]]
Drífa ("Snowfall"), daughter of [[Snaer the Old]]
\import $:/scripts/CreateTaskMacro
\define newTask()
<$button class="button-border">New
<$action-sendmessage
$message="tm-new-tiddler"
title="New Tiddler"
tags="""[[$(currentTiddler)$]]"""
text="This is a new tiddler."
img=""
symbols=""
sex=""
consort=""
due-date=<<now "[UTC]YYYY0MM0DD">>>
Create New Tiddler
</$action-sendmessage>
</$button>
\end
<div class=float-right>
<<newTask>>
</div>
<<table-dynamic
filter:"[tag[test]]"
sortOp:"sortan"
fields:"tbl-expand title tags status priority due"
caption:"''Table 1. Dynamic table from data tiddler''"
pagination:yes
class:"w-100 table-left"
>>
山间仙女(Oread /ˈɔːriˌæd, ˈɔːriəd/, a mountain nymph)
宙斯喜欢与美丽的山间仙女交配,并经常在地球上拜访她们。最终,宙斯的妻子赫拉起了疑心,于是从奥林匹斯山赶来,试图抓住宙斯和山间仙女。
Echo试图保护宙斯(正如他命令她做的那样),忍受了赫拉的愤怒,赫拉让她只能说出对她说的最后一句话。所以当Echo遇到Narcissus并爱上他时,她无法告诉他她的感受,被迫看着他爱上自己。
<$tmap view="mapName" editor="advanced" height="350px" ></$tmap>
<$tmap view="mapName" editor="advanced" height="350px" ></$tmap>
<$tiddlymap view="埃及众神"></$tiddlymap>
凡人公主/Tityos的母亲
宙斯爱上了Elara,并把她藏在地球深处,以躲避他妻子赫拉的嫉妒之怒。她在这里生下了[[提堤俄斯|提堤俄斯 Tityos]],一个巨人,有时被说成是大地女神盖亚的儿子,原因是他是土生土长(γηγενής gigenis "土生土长"),在地底下长大。它进一步补充说,埃拉拉在分娩时死亡,因为她的孩子太大。
one of the seven daughters of [[Atlas|阿特拉斯 Atlas]] and [[Pleione|Pleione]].
达纳斯[[Danaus|👑达纳斯 Danaus]]众多女人的其中一个,在新婚夜时杀掉新郎Proteus
son of [[拿顺 Nahshon]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
the first-born son of [[Esau|以扫 Esau]] and his wife [[Adah|Adah, the first wife of Esau]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
wife of [[亚伦 Aaron]], daughter of [[Amminadab]]
son of [[迦得 Gad (son of Jacob)]]
! 牧场女神
|!父母 |[[🌊大洋之神俄刻阿诺斯 Oceanus]] and [[河神和海洋之母忒堤斯 Tethys]]|
''Eurynome'' (''/jʊˈrɪnəmiː/''; Ancient Greek: Εὐρυνόμη)
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
<$set name="tag" filter="[tag[tag]]">
<div class="tc-table-of-contents">
<$macrocall $name="toc-selective-expandable" tag={{!!title}} sort="sort[created]" exclude=<<tag>> />
</div>
</$set>
son of [[迦得 Gad (son of Jacob)]]
<$tiddlymap view="tagging"></$tiddlymap>
Fönn ("Snowdrift"), daughter of [[Snaer the Old]]
<<fnote "">>
----
<<showfnotes>>
son of [[Reumah]] and [[拿鹤 Nahor, son of Terah]]
! A divine hero
''Ganymede'' ''/ˈɡænɪmiːd/'' or ''Ganymedes'' ''/ɡænɪˈmiːdiːz/'' (Ancient Greek: Γανυμήδης Ganymēdēs)
a benjaminite, descendant of [[便雅悯 Benjamin]]
\define lingo-base() $:/language/ControlPanel/Basics/
Welcome to ~TiddlyWiki and the ~TiddlyWiki community
Before you start storing important information in ~TiddlyWiki it is vital to make sure that you can reliably save changes. See https://tiddlywiki.com/#GettingStarted for details
!! Set up this ~TiddlyWiki
<div class="tc-control-panel">
|<$link to="$:/SiteTitle"><<lingo Title/Prompt>></$link> |<$edit-text tiddler="$:/SiteTitle" default="" tag="input"/> |
|<$link to="$:/SiteSubtitle"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler="$:/SiteSubtitle" default="" tag="input"/> |
|<$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag="textarea" tiddler="$:/DefaultTiddlers"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |
</div>
See the [[control panel|$:/ControlPanel]] for more options.
[[耶弗他 Jephthah]]'s father
''Glöð ''("glad" or "glowing embers"; sometimes anglicized as Glod or Glut) is a ''legendary queen'' who figures in the Norse Þorsteins saga Víkingssonar.
She is a daughter of ''Grímr'' of Grímsgarðr, a great [[berserker|狂战士 Berserkers]] of [[Jötunheimr|巨人之国尤腾海姆 Jotunheim]], and his wife Alvör, the sister of King Álf the Old of [[Álfheimr|精灵之国亚尔夫海姆 Alfheim]]. She is also the wife of [[Logi|🔥罗吉 Logi]], also referred to as Hálogi, with whom she had two daughters, Eysa or Eisa ("glowing embers") and Eimyrja ("embers").
This suggests that Glöð is perhaps more properly regarded as a mythological figure rather than as a historical one. Glöð is also often wrongly identified as the wife of the god Loki rather than Logi.
<svg height="512pt" viewBox="0 0 512 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m475.484375 459.1875c-12.089844-21.238281-28.382813-39.796875-47.882813-54.535156l-89.632812-67.761719v-57.050781l-20.308594-20.308594c-12.386718-9.515625-16.769531-18.8125-20.308594-26.316406-3.128906-6.628906-5.195312-11.011719-13.363281-16.726563-8.003906-5.597656-12.820312-5.914062-20.105469-6.390625-9.117187-.601562-20.460937-1.34375-35.332031-11.742187-14.867187-10.398438-19.457031-20.800781-23.148437-29.160157-2.949219-6.679687-4.894532-11.089843-12.898438-16.6875-8-5.597656-12.8125-5.910156-20.101562-6.390624-9.113282-.597657-20.460938-1.34375-35.328125-11.742188-14.867188-10.398438-19.460938-20.796875-23.148438-29.15625-2.511719-5.6875-4.3125-9.734375-9.726562-14.261719-9.691407 18.972657-15.164063 40.460938-15.164063 63.230469l-22.492187 92.53125c-1.527344 6.292969 3.238281 12.359375 9.71875 12.359375h25.59375l5.34375 60.210937c2.585937 24.351563 26.25 40.679688 49.933593 34.457032l50.296876-13.214844v50.753906l-93.726563 30.046875c-34.339844 11.007813-64.582031 32.078125-86.804687 60.480469l-26.898438 30.183594h512zm-323.78125-253.4375h-10.367187c-8.285157 0-15-6.71875-15-15 0-8.285156 6.714843-15 15-15h10.367187c8.285156 0 15 6.714844 15 15 0 8.28125-6.714844 15-15 15zm0 0"/><path d="m385.078125 131.734375c-1.453125.066406-2.894531.199219-4.324219.359375-4.714844-32.015625-19.617187-61.855469-43.179687-85.757812-29.167969-29.589844-67.617188-46.046876-108.261719-46.33203175-.375 0-.746094-.00390625-1.121094-.00390625-40.980468 0-79.515625 15.875-108.617187 44.769531-.441407.441407-.882813.882813-1.316407 1.324219-3.765624 3.832031-4.925781 9.144531-3.664062 13.902344l4.753906 4.753906c13.976563 10.128906 18.429688 20.210938 22.023438 28.355469 2.949218 6.679687 4.898437 11.089843 12.898437 16.6875 8 5.597656 12.8125 5.910156 20.101563 6.390625 9.113281.597656 20.460937 1.34375 35.328125 11.742187 14.867187 10.394531 19.460937 20.796875 23.148437 29.15625 2.949219 6.679688 4.894532 11.09375 12.898438 16.6875 8.003906 5.597657 12.816406 5.914063 20.105468 6.390625 9.113282.601563 20.460938 1.347656 35.332032 11.746094 14.703125 10.28125 19.46875 20.390625 23.300781 28.507812 1.679687 3.558594 3.035156 6.433594 5.167969 9.214844 11.703125 21.6875 35.089844 36.183594 61.675781 34.960938 34.113281-1.566406 61.738281-29.191406 63.308594-63.300782 1.800781-39.128906-30.425781-71.355468-69.558594-69.554687zm0 0"/></svg>
|!父母 |[[阿多尼斯 Adonis]] and [[💗爱情女神阿佛洛狄忒 Aphrodite]] |
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
In Greek mythology, Golgos (Ancient Greek: Γόλγος, romanized: Gólgos) is the son of Aphrodite and Adonis, brother of Beroe, and founder of the Ancient city of Golgi (Also known as Cyprian Golgi, located in modern-day Larnaca District in Cyprus).
希腊最早的文字记录是''荷马史诗《伊利亚特》''。希腊神话始于荷马,一般认为不早于''公元前一千年''。
《伊利亚特》 是——或者说包含着——最古老的希腊文学,它的语言丰富多彩、精妙优美;可见在它产生之前,人类必定已经付出了几百年的努力,以便清晰优美地表达自己的思想。这样的表达方式乃是文明的确凿证据。希腊神话故事没有对早期人类的面貌进行任何明确描述,但它们对早期希腊人的面貌进行了大量描绘—一这一事实似乎对我们更加重要,''因为我们在智识、艺术和政治方面乃是他们的后裔。''
人们常说“''希腊奇迹''”,这一短语的意思是:随着希腊的觉醒,世界获得了新生。“旧事已过,都变成新的了。”这样的情况在希腊发生了。至于是为什么发生、何时发生的,我们就完全不得而知了。我们只知道在最早的希腊诗人当中逐渐产生了一种新观点,在他们之前,世上从未有人有过这样的观点;但在他们之后,这种观点却在世上长盛不衰。''随着希腊的发展,人类成为宇宙的中心,成为天地之间最重要的部分。''这是思想上的一大变革。在此之前,人类是无足轻重的。在希腊,人们第一次意识到了人类是多么重要。
<<<
''希腊的一切艺术、一切思想都是以人类为中心的。''
<<<神话:希腊、罗马及北欧的神话故事和英雄传说
''具有人性的诸神自然而然地使天庭成为一个亲切怡人的地方'',它使希腊人感到十分亲近。他们清楚地知道那些神圣的居民在那里做什么、吃什么、喝什么,在何处举行宴会,如何自娱自乐。当然,诸神是令人恐惧的,他们大权在握,发怒的时候会非常可怕。不过,人类只要小心谨慎,就可以与他们相安无事,甚至还可以随心所欲地嘲笑他们。天帝[[宙斯|⚡天神宙斯 Zeus]]常常企图对妻子隐瞒自己的风流韵事,可是偏偏每次都露出马脚,这使他成为一大笑柄。希腊人以取笑他为乐,但他们却因此而更喜欢他了。
天后[[天后赫拉 Hera]]属于最常见的喜剧人物——典型的妒妇,她用以破坏丈夫的好事并惩罚情敌的巧妙计策不但没有引起希腊人的反感,反而使他们感到非常有趣,就像如今的那些赫拉式现代女性使我们感到有趣一样。这类故事容易引起友好的情感。__在埃及的狮身女怪或亚述的鸟头兽身神祇面前哈哈大笑是不可思议的,但是在奥林匹斯山上哈哈大笑却是极其自然的,这使希腊诸神显得十分友好可亲。__
凡间的诸神也是颇具人性、非常可爱的。他们以英俊少年和美貌少女的外形居住在草地、森林、河流和海洋之中,与美丽的大地和晶莹的水域相得益彰。''这就是希腊神话的奇迹——在这个富有人情味儿的世界里,人类不必战战兢兢地面对未知的全能之神''。其他地方的人们所崇拜的那些高深莫测、令人恐惧的神明,充斥在大地上、空气中和海洋里的那些可怕的精灵,在希腊绝无容身之所。
如果说希腊神话的作者不喜欢不合理的东西,而只热爱事实,可能显得有些奇怪,但情况确实如此—不论某些神话故事是多么荒诞不经。任何人只要用心阅读这些神话,就会发现,即便是最荒谬的情节也是在一个基本合乎常理的世界中发生的。毕生都在和干奇百怪的怪物博斗的[[💪大力神赫拉克勒斯 Heracles]],据说居住在''忒拜城(底比斯)''中;任何古代游客都可能参观过爱神[[💗爱情女神阿佛洛狄忒 Aphrodite]]从海水泡沫中诞生的确切地点,它就在库忒拉岛附近的海面上;[[🐴飞马珀伽索斯 Pegasus]]在凌空翱翔一整天之后,总要回到''科林斯城''的一座舒适的马厩里过夜。人们耳熟能详的住所,使一切神话角色都有了真实感。
如果说这种虚实相间的写法显得有些幼稚,那么不妨想一想,<span class="highlight">与那位在阿拉丁擦拭神灯时不知从哪里冒出来、完成任务后又不知隐遁到哪里去的巨神相比,希腊神话的坚实背景是多么令人安心、多么触手可及呀!</span>
''令人害怕而又不合理性的东西在古典神话里是毫无容身之地的''。巫术这种在希腊之前和希腊之后的世界上影响极大的东西,在希腊神话中几乎不存在。没有一个男人拥有可怕的超自然力量,女人中也只有两个拥有这样的力量。直到晚近时期还经常出现在欧美文学中的那些恶魔一般的男巫和丑陋可憎的巫婆,在希腊神话故事里从未露过面。[[喀耳刻 Circe]]和[[美狄亚 Medea]]是仅有的两位女巫,但她们不仅年轻,而且美貌绝伦——''讨人喜欢,而非令人恐惧''。
从古巴比伦一直盛行至今的占星术,在古希腊神话中连影子都看不到。与星辰有关的神话故事很多,但从未出现过星辰影响人生这样的观念。天文学才是希腊人对星辰进行思考的最终成果。没有一个故事提到过会施巫术的祭司因懂得如何获取诸神的好感或离间诸神的关系而令人畏惧。祭司很少露面,其地位也无关紧要。在荷马史诗《奥德赛》中,当一位祭司和一位诗人一同跪在[[俄底修斯(奥德修斯)|奥德修斯 Odysseus]]面前求他饶命时,这位英雄不假思素地杀了祭司、饶了诗人。荷马说,这是因为他不敢杀一个由诸神赋子神圣艺术才华的人。对天庭具有影响力的不是祭司,而是诗人——但是谁都不会害怕诗人。鬼魂在其他地方的神话中是一种非常重要、非常吓人的东西,但它们在希腊神话中也从未出现过。''希腊人并不害怕死人——《奥德赛》称之为“可怜的死者”''。
对人类的心灵而言,希腊神话中的世界并不是一个可怕的地方。不错,诸神是难以捉摸和令人不安的,谁也说不准宙斯的霹雳会打在什么地方;然而,除了为数极少且不甚重要的几个例外,''所有神祇都有着令人销魂的美貌,与人类的美貌并无二致'',而具有人类之美的东西是不会很吓人的。早期的希腊神话作家将一个充满恐惧的世界变成了一个充满美的世界。
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
son of [[迦得 Gad (son of Jacob)]]
one of the wives of [[Elkanah|Elkanah]]
son of [[他拉 Terah]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAQMAAACXljzdAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAGUExURQAAAAAAAKVnuc8AAAACdFJOUwH2O1arUAAABBtJREFUWMPFmD+O3TYQxiUQAYOkYG6ga6RjbpJTpAtMGVvkGj6KFinc+ghauNgy7EzAhCYzHOq9x5mRnbhIVLzV0+8N/ww5Hz/tNPHl1+l2/Tw9XmG73/8+kv1+f/xTkm+380j8A6kjKbdbNxJXrFvxQz8Sbhzy2OWNBDjGYd6GmgDWcWp9ejMA7JoAjgIJ9r5sI0nUDVBHBlmQgEHWKR4I8c86EvyeMna1WQSfTjg4TWaaTMzU43Atm6PJLsUgviXIJIVzrknLJDZ5CBL2JXNmDbJz/jSJG2fpkqxVkzb3+FYSv6crknkey7MRc0WuY/LxFRKuycv/Tr4wtnI10z8lcWd2NCnfTuKTJn21/8iSVCZJkbn2veM16TsxKHIwOWTR0yPe15pA4CpZFEmtsnyVRY/kqclRiYrEJ6DPnFZFnqnq067JsqPuzbDBpEhOdfLw9lAk5IgB4DTxpamYr5pUj6SGoogDUsu8aIKChAq7xawIihiKIk5Ik5QdlBk2TWKZfsAJrZosLaM6BfSQ8nYYxKOMOygGwem8S5BtwvJvtEZXNUgTf7DGFun5J2s+UDFvz0YOZsgeezEIHRbfY5u7kYK+HfTQeLzGmsZinbO8PNapzUtqeQDeBhfEwf1gFfk8rshttEln+h39+Q5USiOclyTpRmRK4YrM30DccXb06ybravqRnn9QZqNP9NA2pC+lRfbT9UjCamORRGR+MUjLFtWJZYRswmscoKCSXJEqCO+lBUqoQpV5/y2QgxQeJoGIECtuIrzPvohNyt2Gj/v8i9iKnLawb7SGwu3cI8FIKB8woyzzqWQR/sZjH/1benC845EBl+R4zN6mUt1tcdqUU8Yf/EQzNchEGuYG0jpweyer9OouN311oFy87+RQ7wT4Eas0+I1ga3SQGAQ/aGlHEk6yt1C52I6J18R/jYw7saW3tzbu3kZ6TLwiv416cG/Ng0FazCK0qm2Xk0yKtNYiHJMdk8Sh9Uj2i9akvt5jpI5H+ngl8mZSLz9T+EREKmJsEtv6qdarVIsRQampMpMiiGfyIo/a1MS/k2Gqqck1ko/y5E7UP5HXGsdlSM21IPmruHF0SDK9fKEk4aEykAhNsgN270VM6WSbJkF4CzYyKEXq27ad6jY5pO6kVjhIqjw2E2lRr6xR325klwd3IkFwFolEzmocMhrph2fNDUsXP8C9Tos4tFe7Gh/JIsl2tjZWY6TV7zFpEwYtn2SsuUDbjFubhXMgF8YxDrR1YeIPZXdWbi1UbZ44Rrto2JmkrE0atwa7NnYtxmmfGKARwyt7eN805DBM5+dWc4a7bfXzannlSARgtwxxI6tlonP/Z43he8k6GKRVo9VNrx8LtPUpl8Rs7NxV/yrmC60BwEXMf0Sc4XnvNvZhdf4G8FB2dbOoK9wAAAAASUVORK5CYII=
son of [[拿鹤 Nahor, son of Terah]] and [[密迦 Milcah]]
''Hecuba'' (''/ˈhɛkjʊbə/''; also Hecabe; Ancient Greek: Ἑκάβη Hekábē, pronounced [hekábɛ͜ɛ])
!! The goddess of sensual pleasure
|!父母 |[[Eros|👼爱神厄洛斯 Eros]] and [[Psyche|Psyche]] |
|!对应罗马神 |Voluptas |
HEDONE 是愉悦和享受的人格化精神(daimona)。作为爱神(爱)的女儿,她更确切地说是感官愉悦的女神。
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
son of [[法勒斯 Pharez]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
! A minor naiad of Asia Minor
''Hieromneme'' (''/ˌhaɪərɒmˈniːmiː/''; Ancient Greek: Ἱερομνήμη means 'memory of the holy rites' which came from hieros and mnêma.)
iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAQMAAACXljzdAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAGUExURQAAAAAAAKVnuc8AAAACdFJOU/cBWmmK1AAAA+9JREFUWMOt2N2N3DYQAOCRZYQG8kA/5iEIU4ILMMx0kUe34Aos+iltEUgDKYGAG6DfCEOgMjPUSqvh8Hx78N3hdqVvR+I/Rwub/ElLe4Xz1Nf9jJVSYWkvRkoBRy8rzFJyu0yBSUpql8kAUmK7TCf/bKFJsmG5yLyF93yD5KMUqKpUlG2XdI2Z8De0xhmKvM9zxIVeuAT5F1HTL/gO1DYIW1i4G4oiHrzW1ixO65+wRR+5g3rBZuEOCqK345J8bh1kpWRfWpO6Pmblg6jIxhUKvr9aOwlijGLJPF+o3s6cgjEJi7VOmxKTsSpl0mIKVijPQjLF0JWSkeIwhu4ebScYQ0fBaTFYlwpejQnYQouQYikmunJMjlMoJtk0b2pMttHoMcUEK2U1FFNegdNlhaNoQiqc8/Yq220Y3kmdmxhN6N5n0WQMjoQqZJs4JgKA78TzEgPg1JixZEXCD6QoJXhCPvFcNFuSEpvMW1xUqWOZeknvXFtlwvaohF7y212mhyUuvbwZyb6VxM/zQNKHB2Td5b0itokZxOTfO6kt5gn5zT5f9h22vHmBgOskvFhWReIu/hExI0nDmLTHLA9I/oFUVVb4eG4Y97mLwTm6qIIAdiigycryxzSKeaVIYgFFKBNKqtCyi2tvt/q37KxoMTwA6F5d62TYl9FuHKSJ7wXQjUTqbCzAn9DNLNr5aEhBN7ep/2kry3JH5x6j/XeVKyxv5DwUZD5KWzYNLFyrRO7CoyBSWpFEJsQZSyDJInviERpwGCy3cXXkIbwvcRYipCUnbbf3V1l4ed3+5XLcC7SFF3/+3pOke6kz98ani3D+ypLgrRM57P4v3vpul3UoxTwpXLYkxd7kW7pKPgQvdxV3HES4tEGrNzeRFH9I+EuR1hXXnLxte7woqcJjZ8qX3m55eJ5uRb+Tfab41uqd0K5RZ00oEVqF7JcIYFejSgRTdMkwFzHn5tsKM+drzFGgYEQOe0g2aRqIVaVyCnnNr1slCmbYLl5ncBPs8uTDWKJXJXpIA1mm65PEKZ9btnZK22XxiWGdr88lrRnx0yilF9qUQjGKJBZbTCcBZcpHp55SaeJgmXtZKQ9UpTTxdZaSSebkekkzfT4rEu1IgifBd1dxNB12mWQMbKo4GqaDmMpisJ4yBoukiqV5g8+HWgxnyRzzRcaYW8xYghD8G8ScEn6GuJHkoYQmVQrvymrMT5X1RTIN6oPHJL/+ZyhaEQBN4kBaCRSpQ3lWzGsIinzo67OdbWCFfIc8kH3Zq7S2SKER4nDVMXVSYjCvK9B9L0bjrcmkCtVUkTwQR6MBs9vu27yVvqbAVTx2T7tcPs7S9oP/ASgUwk3AXycOAAAAAElFTkSuQmCC
son of [[但 Dan (son of Jacob)]]
! 健康、清洁和卫生的女神
''Hygieia'' (also referred to as: Hygiea or Hygeia; ''/haɪˈdʒiːə/''; Ancient Greek: Ὑγιεία or Ὑγεία, Latin: Hygēa or Hygīa)
|父母 |[[Asclepius|⚕️医药之神阿斯克勒庇俄斯 Asclepius]] and Epione |
|对应罗马神 |Valetudo, Salus|
她的名字是“卫生 hygiene”一词的来源。
Hygieia 和她的四个姐妹各自表演了阿波罗艺术的一个方面:Hygieia(健康、清洁和卫生);Panacea(万能药); Iaso(病愈); Aceso(愈合过程);和 Aglaïa(美丽、辉煌、荣耀、壮丽和装饰)。
关于Hygieia作为健康女神的作用,可以在希波克拉底誓言中找到一个值得注意的参考。这个誓言被医生们用来在各种医神面前发誓,其中之一就是Hygieia,他们将遵循既定的道德实践标准。
誓言从希腊文翻译成英文的部分:
<<<.tc-big-quote
I swear by Apollo Healer, by Asclepius, by Hygieia, by Panacea, and by all the gods and goddesses, making them my witnesses, that I will carry out, according to my ability and judgment, this oath and this indenture.
<<<
[img[https://upload.wikimedia.org/wikipedia/commons/thumb/3/3b/Hygea%2C_copia_romana_da_originale_greco_del_III_sec._ac.JPG/640px-Hygea%2C_copia_romana_da_originale_greco_del_III_sec._ac.JPG?1625121649973]]
! 病愈女神
''Iaso'' (''/ˈaɪ.əsoʊ/''; Greek: Ἰασώ, Iasō) or ''Ieso ''(''/aɪˈiːsoʊ/''; Greek: Ἰησώ, Iēsō)
[img[https://upload.wikimedia.org/wikipedia/commons/d/db/Iaso.jpg?1625140286332]]
! the legendary founder of Troy.
! The founder of the city called Ilios or Ilion (Latinized as Ilium)
When the latter became the chief city of the Trojan people it was also often called Troy, the name by which it is best known today.
''Ilus'' (''/ˈiːloʊs/''; Ancient Greek: Ἶλος Ilos)
<a href="">
<<image-basic "url"
caption:"caption"
width:""
align:"right"
tooltip:"">>
</a>
<div class="gallery">
<div class="img-container">
<img src="src">
<div class="desc">description</div>
</div>
<div class="img-container">
<img src="src">
<div class="desc">description</div>
</div>
</div>
各国神话汇总
!! 参考
* https://pantheon.org/
* //圣经//
* //茅盾:北欧神话初探//
* //神话:希腊、罗马及北欧的神话故事和英雄传说//
* //英美文学和艺术中的古典神话//
* //神谱 Theogony//
<<tabs "[tag[地区]nsort[index]][tag[Symbol]][tag[归属领域]][tag[religions]]" "Greece 希腊" >>
|!父母 |[[阿尔克墨涅 Alcmene]] and [[🤴安菲特律翁 Amphitryon]]|
|!配偶 |Automedusa |
|!标志 ||
|!对应罗马神 ||
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
son of [[基土拉 Keturah]] and [[亚伯拉罕 Abraham]]
iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAQMAAACXljzdAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAGUExURQAAAAAAAKVnuc8AAAACdFJOU/cBWmmK1AAAA0ZJREFUWMPt2EFu3SAQANAhVPUiUr3topJvUucovYnJCXolcoMegaoX8NILAoUBbGaAxf+KmiwaKfr5fh6DMTPggK9+ftdfoP6i75HtDvH/Y944BmAeyjQU+c6yuYGozQ9j/M1X0+9+NfWB+3bP1dSHfgqDGAdQTcVabBTxQSWm75vJMRQTewBbRxTK2goOKMDSypFkamVPIlvRSUQrSiZqxKWq50q3oRrP1N9WjvynWrnsuWm9cDH5RkwjKpfdfeZShuWYmJy9bcSWv6xkcoihlJF0XEqnvRVMNDzi5xO0cv4wUUOBkbih2Eo2Iof8lY9PmsnkX+Pxx3OFLLKnG92XRsw8kvyMTZgEhkqeF1FYjNpGMenzJZ5v1lpc+oSnjcc4kYdo8880Jj3iKA5oTHrWNgmJSVMpSPj9QSRNzCghZunIJ5S5lnSencJXkQc3i17TVHu5pi+TP9ckhXrY0vRMd81EtJI/6mM9UdUhR+ZyujQVVW2vgORMOruWkme6lam+4VpKPuOjsVBLrg7m2xYLUCM/Q1lcz9IE56T1fgqy9CR0/UARXVnZ88E+BcG6eCwdwbK09wQHmwjedRQ5Eidvj0Eh81r5SnRPsB01jCHVpZKd1p3nSzStVeJqB2i1FGeMO5ezjkx9seeyyduxbJ2TZ8wxkXXbVTLfIu5zbKcn5gFj6C4gioMsMxdTBJg4XOVdlIXKntZ/udMRDaKyGLou4KAIFUV/LW86WcKpi47tqLVcLosOX3WMga087iwq9MgEeQhHuYS5KeOaFu+MyIz118U2LJUtlQucBKqWOLHjGOEkUKRvax6jmda3cD9FVlr/gixXnjoi+3LlqZNE5isXLJE4mUr+1JXiFN9KvMKZwfWKIWJ/zgyuBR7E1Q5Zf3BT0M1tfPhFFJO1n9u4Dc3tOJLBKk6YHEN3Qq8xO7McbCcEssjO9lXhzNyOmfiupsTome+E1izAd5CwJHHA96NqTu3YZg9rZKlifEe8Q65izf76gO8o7Z7cwpdUd+Zmf51ye+/s/RXmqeq8LxjA/Om8YxyAVWHynX08xsy+t/dPm6RWTM7GVjAbu/8PwWzcBlK9NvKYfyL12+kNIu6QW9vxUP8byf8FFU9RSGupphkAAAAASUVORK5CYII=
''Ithaca'', ''Ithaki'' or ''Ithaka'' (''/ˈɪθəkə/''; Greek: Ιθάκη, Ithaki [iˈθaci]; Ancient Greek: Ἰθάκη, Ithakē [i.tʰá.kɛː])
[img[https://upload.wikimedia.org/wikipedia/commons/thumb/3/3f/2011_Dimos_Ithakis.png/300px-2011_Dimos_Ithakis.png]]
son of [[Eglah]] and [[👑大卫王 David]]
son of [[哥辖 Kehath]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
son of [[以扫 Esau]] and [[Aholibamah]]
弗朗西斯·奈杰尔·李 (Francis Nigel Lee) 将创世记 4:20 解释为,雅巴尔既是“''所有牧场主的父亲''”,又是“所有帐篷居民的父亲”,因此也是“所有牲畜和农业技术的开拓者”,也是“''所有牲畜和农业技术的开拓者''”。 “''所有建筑的开拓者''”。李指出,贾巴尔可能也是一名织布工,因此是“''服装行业的开拓者''”。
son of [[西缅 Simeon (son of Jacob)]]
son of [[Segub]], a Judge from [[士师记 Book of Judges c.1100 BC]]
son of [[西缅 Simeon (son of Jacob)]]
son of [[Joseph,son of Mattathias]]
son of [[西缅 Simeon (son of Jacob)]]
A ''descendant'' of [[Judah|犹大 Judah (son of Jacob)]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
iVBORw0KGgoAAAANSUhEUgAAAgAAAAIABAMAAAAGVsnJAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkUExURUdwTNzc26+vrzw8PGlpabS0tAEBAf7+/igoJ1BQUHx8fK6ura/aq/gAAAAGdFJOUwD+QK2SgpPXdTcAACAASURBVHja7FzNUxNbFrc6HQtmVmyI6IYakQo7Cp8pnVUKtUtcpcYHNTUr+fBWN1llY0PYCFpNcDb48VrAjU45ILh6m/CM/9yk+36d+9Ed0Df2TeizMTSJ9Pndc37nd8696UuXcsstt9xyyy233HLLLbfccsstt9xyyy233HLLLbfccsstt9xyyy233HLLLbfccsstt9xyyy233P5vdqN2sf0vIG/8QgNQQWjrIvtvIYRWLjIAdhcA72JTQA5ADsAFA8Cav58CgDU/4O4X51ru/n+SAXi4t/NpgJWR9TBAKNj/byIAf+20Wgi9qQ6o/xNh191gZ+eglgTAjeNWFyLkvh1EdVi8jSJz3dbxeBIA/zoOUYQA8mYHzv/rsWNda+0cJAOw79K3/TJg/s8Rv5CLvN+SOeC4FVIEng9SGlgVxMxtvU4EoHjS4m/0BocL7RABAD6l6ICJPRe8c2bQ0j8m+Fq6ErwL3oxmBs7/57WeUtiaGzAEroPlv3+mXmACZMytQfL/Re2MzZB1m3/ot8Hx/9Y5usFH/GOvB8R/d/Zc7fBEMBA8YDM3vNo55wHFcAAQ4PpnefzcAxEgnvpWETEXEmVt2kTIesDSp09HBOWe/qePxDgCy33ZFxRY+Ut/T8pM8MEZ/gtzCYAS4Iq8fA9nEgCwbs4kITDTvwSghG/X6ZoegDJyxxOYsP9oYIrWPyV9FxDa1QPgIDSdVAuW+00B0JVTS1gXgCd6AEIVgEvFoD8VIV24afVXk2A/VAQg0JV8uy/VwFTKsg2BeBYAiLaKa8lyup+SgEpg7c73X4DPAgDdtXbTiuHrvksAvX6BfgoAFBI0ASVCt2/k0HUNAVq36QIWu78a1wEAcsO6M6ORFP1ylILe74yki8c519V0AEzy8iApguvJlGqi/VO3Xg6v/qDaCQB06+MSz6Fp6dN6UWGiFbXarcKXt8KxEADoXn/G64EAgEWmA31xoMrRcvYC99RhjooA8MgYVgpioX940NZXbeBTF4vHOgACBsCCWg9ILXzSNwFQ1eAyzdg+KQJq7NWTBGat9kkAqCsVMIqzxSqwzKvAMmeR3YTxgvGTgUpSrjrc1eszkDBX+DigytOlmqSuDA+BQiJbD2lhCXXvXdBqYrsvQqCSWK9trZAB+kj4T1aS2aXWBwGgVWwB5z5gd9UNk0gFPEtWmCvmB8ByUnk4WxErJmV62fjpmC0FgL1TFUhg6Wy9hEgBc5+kEFgyFwBHitEQBoN9ZgavQB8L4GNlw+WgJRUqKZYfnXWz3/77uADqktQSGNsRlKUAsP8EyhL/jymjQ4CkaFVgsx+92Ukh6c0OgbJSAio/fLMxqNPy3zD0hH1F0QDDPzzMLcvn6QNzR0MFVQPI6/d9oG6lh5lhNXBaWUAdDc7fvXnzF6ABf7137978uB5UkUUUojGsBkpdgKW7WevuHjk3QH4zgX9238zqQF1SWdFIMVTW8vOCerOPQukwLDgZ+aam4jeuU5sGVsKK9r5s+SI8A4i3DqaECzM9M8gxkwbthE6tIt6scG463jyyxQtCv+/oPC2YSYOTCdxUEK7ageQuel2Rr4ATRQvakl8xkgaDpGWpgBRQ/dcZ31Ic0uqosolqsJB4U4Xg9fn8BwhYe7r9VVwJDVODmJnSqdkK0RntxfelW+YigFCgpcfBqqAzW8JRgL9Bwl0yLwN2iaP6PcwH6BymXd4pCkzFOCnggDsa1nMBODiPdk4+C3TgfRnx/ca1Y37R0+c+uVw2TQpgWnrCwagmDQti9z+OiP7/2yfW+MyurehTv8oGDUaNhwtwRSrae3OY1vvoN072oP+rPrerDBllfYvS3zApBxbi+4GuTmshimL71Pc7+CvC1E4BAP5GkJQEDuCGYcNyIICsPKQ5H8USwO162zg5hv4v+oJt0GK5pYHQFarOklkZUBWc3dKIN+L/VcH/bgDE7Nc6+FISY6CmCuAtIRyM0UKTSDrzrLSAAfffH/kq+F9nS47c9wICK2IJFNJi2CgtVJHisSLf/iTx8Cjyb0wUxAdCPYz5oKmKAQzhtKS8DOkHijIj2dLtkw0T9Cry7muqAIpjxL+ihIAjY+oY1BMPQXriVWFZDoB65NsfvTTgx+hdh1IIFJSIHzKoEDrKmRgxYAkDuBHHjVHp91WQAu7+fgsi0JB2wh2F9C2DCmF8sx9U1l8SS8C7iN/wyy+NTgtm/u+xDOyEnCmuiCEQqMtdMaYQ2ppgjDvfJ0IA1NnCdpnuagiYcLVENUAnYDxwCCt9UcN4k8aQQFmnywv87oe53msTf699boEHJZRkFRQlS1MY/gaqMrTPMIH4iUVwS3MV6vZY760T5d/o7IEA2FR14CoFix6VcTTfGwsMIQEc4VU1MZ7DlYoWNU4Ar/ti5DPsBboXrl379q0Ee4FNShfLdJj2Qs+9S6ZQgHr9xjisgZtkTWMt3IFPCln1O7ggvMRN0QYlwsMeYm/YEBIYSm/NcYBEAbBBGf7qCdSC23wGgJXwGPlAs0fDUzSEBByUcKoNSphFwutxKegIEgBOSnE9aBMaCHtondCMdiBIvw2HloAm1ULf9pJlYIwALpav/LUeWmchHfqMKUDIgDoJgIgJGjox3KJlIZ4OrWE10AjSD8gPGzEX63EXBUppUQB4PhfD0F5G634t5PPB+OVLnAvu92L/M2cBW+lh6pEAeAfHHepM8CsTwjH/uUfNHnUgMIEEKul5Sqs6C4BDtQNmSnCM/Ri/yysF6eg6SPfFgixkEGZqe39WG6URBbZJAKyrCQCU4BglDLz2H9vaUm/deQuib8kADlxmwTCj6xNWsQZwGcELM+FoxUdGCAJtmgQxC3hXdKXeYiq7YIAUGuZEbWmelhQnyLbvj5KVHo15bh/2wouNaEboHsQ6EKtlWgjQe6QGeZE3mkUDWBDUYhzub9UEKWG/om4gZnehFULfQqgDm2RyEH/CXQ2VQoiPmKwAhqllrwOrQJqiF+NSEVzFmV8nAeCNiEowEHfI2iQERrlMhNNv8mg6sAuXcUMIOJB+qwkccSkTGRzizI4D4Gikk3ROYNPnHcMGQIevMX3G2DNTWLAIV4geAOHPwnRwDdggqxpxWr0xckLm4b+PdOh+ARibjxJlAOolI4EH0hGSQuZaULwD+gQ0NrwJMPlTCgxiOEY+0x0AsiXyvssOnVBoGk8pDQod4ZR8jKqY+f7QkNiP0BjYBfdXp44TJih9o3MRshOMN8cbh/R1G8PVQMpWeaiwTJB1R7wgsRB5BhycBm7HjlM1fESaoVO2/+PRswEhbBuFHHCF/ZVbcpnNUgxX5DqEDwI9Bhx1FHuy7VMmGAnIyItEy07g7nxho6A6yZQjIQdqoOzPKguwm3EREJVI/AS0Xc6BLnasG/FPMQ5jJNeFUhBlBN4LOMWUURdyYJpFgPSw4aGMRwJFnRZ9xKY4YUzoayTOQ4zDIa6MV8QKGHFiLH4W+eiE5wCbDeueSptlGbC1E4uJWZCzi7HjpB9cZSS/IWuAKAaukFgJsRrkOUC3WO6faQV+difwLLVGvtsAgf0OJ8IqnfpHr8FUoAE6h7oPQFo+Rw7+/GnIdCo8p6MkAwK4uk3m27sQ6ECig5uIZwtKb3gq2XYDTmoViuHxSWKvg1UtAddAoJ/iacERBmsb5kAt9Q6y6wYOU3VIdHNek/jUxv9gobsBTkhxsq/j14tMDm8g1OsBQpPZ1sGAK9G557O6uf3qKJY1DaJucDy04RG5UfBDG7+tSX4VKt0AGwq1ZniaZdYOWZygonogQxA7CzJgkbb7jQB2wPynOg56kgObABuRaK3oEfTLKXUogypYFr4GxkvUAdjoI4mASuuC/gGD8lKT5ABhww2pDmL35zBi8hpk1Qs+5ppUbFRs2tCTDKClwGMZ4JIzomyrZNtHoA6QSJC0zhy9pmRhRr3gLn8pDrEL4CjoGsiAekPy3/fp/qjn044owEVjVBEC7DtWHq+DmQmBy7wKsrOwy6IMICsZAr5bXJdPxvCzc6dtxLOf7RDDNZ6UvlPhZNkQL4ASbd+Rb3WIlXo2FY9R2h5V/Gezge2nMAc2WQ644t9E6OUs/Dmrhtjhqdi1GzcDIVsv8wwYBRmAjkIx/n1wLmJ1DYEK6HLJLEYA+I7t5SyVkJx/1t0Q3Mskq+4NoeJ/1J0Rp7+8ikAOAM1cA8zy5h+y3s5KCcVKR7w0f0kOVg93ebQGIPRV/ZIAPyD8hX5mg/wbyFr415paibKaCKTXYIeWtgaR9mQ12/K3RIjFri4ygXiIQ2C0xxPEChlKQStdhTnUF9rmY1/cUDkbB/YF64w31nEINHsAUMxQCtrp4FdIm9+Asz7t12SwrYHxgEcV8jbpB6ZTV2ElQwCe9QBgm+34Cjvjqv/kVETAtAM+H1LCcfMhtSHLSAsX0gn4EMh7zwdDID0FkL44YEfrcWEkuvFDKhNnpIV7VKAQ339I5lwNlPxFKWzCnJgNhF61jQVgKF2DYFn/B93yEsbA2zoADqV34JxxO+k4Z9gMlNNVaKwSxti2r7C+RzoAngpTYvYR7zAVgAybgcneAJyweBYPB5V0AIhv4XtDrVQAFrIbi/b4010AvIAFgBDfrs5/aa+gDmdF/QpAwNa7iVCPItA1JEfJlTMAcDm7dtCh9HNjntv9/3F3Nb9tG1nc0Edh95aLpDQXAQkM92YgrdDuyUBRo7sno7st9hjFNk1KJ14iS7rYxoK244uz3aVi55I0gJiPUy+St/3n1hY5M+/NvBmSLrYzXp6c2JbJH9/7ve83f/sBkiBslReNEF0aANxD2IUikAFQ+QFdW24A8FCqch1hAMQAjBd4Yn6KuBpKA2ULAyAvobjpxFi2BwAzQHLLT1Yb7SgC4D3XO8IqC/KmEgHAilxRPMg1xv/rskgAsnTS/ouOIgDelYkDJV8p/c0hAmBT/ks7GShWAagqALyGAEyEcvdmYIQ01xdE1uMcCRWsmloEIC4iAT0wDD2ZGvxASAK+Ijw5EnBuDYBeFo8RHMBnRdiL9ZlGz3UAMKT8WKaPVKj+7ql86wAAa7QV2GTSzoq8x2MzBQDOawm2hNFgJVKh/tQ+AEvfPE6vtx9urrdt4Ck3gTFv7hu9gAEImd+IqDg1hVk0+PAxvz68fbw4nc8FAPTBIjCB11/PDJEQ1oFuS0QECwBf3zYrYRGADjaB119HqDHQpAM9Jjasdf7ADMCBgwA8zBo+Iy4AY2JWWGMHfO4DZpH09t2TgKwr7koIwL4hFJYjwoQDl/XYai39p45KwErKdjzEnTCfpj8wXjPmKrRA5BgZRMCyBGybAoW5CPAC7ugmZgDG7LG5CGQdg+vuATA1SEA1fddDJb/TGwwKiUCTi0BWI9gxqYA9AAJDqDwRzn2fe/VJHgBj/t4FfS64se2cBHT0ANRSh28f9IKMizCAaJgB4pM1ShwZkvOvrUmAr08Yd9E7TA2cP88HIFV+ODGQTh0FBgDsRIObegDSKal9kOJOteHFIGSX8tzhvfDe9dW8d99Dg1MLQmho0z7LLgKQaUAMEkDKzKz/ET7+f8Aspc8jhgYXgZG2DrtsNycIqenRX74AFYM+f+YzemhabNIUbWJS6pyZwtSNZmDXfvrWQQDqi53564IeJ+yZF+PgY2pOkFuEFvXdCeihTAOpDRFk/PRt235aHNQFqi/hgNuiZj8fw8eckQszEO2R353CpvLUDrAjPf/tRmEEJUCzVo3FuRADmAAM6VHROWiNoL/LUFzMXYD2YPGnLQIgtK+Ok0GroB80XY/QoB/xmCqI4Br6jIkD17c67qDGvXp/PADr8KX4Qh729kHwqxGAzC3SfddvAvWYTznFMHF7gqoTFi7hg9XRGSEV0Q6ZZT8aukdEaSBaQDJbctgQFPNNBCRgaq9BoooS9qdftuH//wYYcKzdG2SiAIZehuQ+iD0rf33JOSC23COUvobaF99jP9hvAZ6faQFoKo0RiiVkAvIrFvX6n35Ov4gsd4kd0f5BuvshfQK9AHgmhuT4ZYkU2t7XLbbJ6XoUY97vF+QIQB4AqQaNxIDhOf0WbM3MaMCPuD9/bOS4AgD0AAtEpLxZ7RWmexTr0oqk6e8AIBWBoUfNDllPCOla9KrYzI9wwbMkAD3sKm/TzshrSwDQPsgKfn1MACZXtwEg/YyGp4zOLNmPhTIvdIu8Je7mjIQ0xLcBoIdpxBSRWY2G5P/lGjAVb1I2h34RANKAKdIOEVsdmqLndTahGzOGL1Kyh/OoCAB99JsbFA9ZG5tbxgz86OU/YKyyeLoG9OnGkqPbKgLAwpQM4RR19fRLbIl6tgBA4yqPvs5eUAxfeoR2Bk5xB1BYBICFMxHCdrlrhAO2ts7mvAT2wh7yRg6mr3vgzfUGStx3g0lDA8B7JSSaCgAqcG7S7vB0BS8TzCQ0AgZs5uG+sKm0OEwEy5fokSOZBhsiCZI5Wm37jiCaXBYcBSgg9CQAxlKoKwBIZtD2t+TM0BCknCIwRbRsd4FCLF4Fd9Qq4AmHSnf0fWVwmgEQxiBdjtKkASCB3SXWlHUubO66NQDADpGb2/9XG4QCfajdPbw2FJfInqVvnZ0281zhhaZg0xsAKn+WsrFb1gBYFY7452yitQ44MCYE/sG76OSyqbTFJNlJY9lRO6GcF5nCaKj+dbTtgBtAb7KqiLsOcyYkoAQsHIXwAduyj2gQCBMj/PqW+GMW9+lRm6wqgrtHOTMykgRo+6bFllW5PlizvEqL2mRVEY/8LGdKCnOAoXNetI3vEm9g1x4A5CYrIfSznDk5KAET0+yEiKSe5OvgH54RkAMU0Q45lUsgxSUAh857XCcOiMhz3SIA1A1EsLuNMANFAAjViJAEwLIVzHySJ4R3tADAM4+LG1RgX62QkNNjlpfJ0Wagw8f+codltRIwVUtoETFEXbO8TlDZa/u9SIj0pXx4r4wZDInUWSwSIm2UfrRpBKS9tt8t6OBHFsGMvGI6oEpAi8iLxTwl9p2/AT3RA6sAwH1+tVQcP6EB6JYAICaKhDFLitaE0nVsGwF8wsZqSkgraAuIVCUpBMCIygrFbKHSMjqCzPZ2eciCm+kNVmkA9HMCCgeoxcS9DAAmYVuCAy2fLwBZ8Mf0q7rc6ponArIEhGS3TMwIb5mzjhPn7AAprGaxSkQDoBUBGYAhmRuPmLLVuOVbtbpOErJg6p5UvkrXyncyszfUNIXpw2Ftz1Q/c4TWhbFxgwMzX3BXJcaAAKBfiANCsjoSgrpIG8adG5YBqKopiaoHVqN6uatDZBXYJwEYq4TnxklTFU8pztWz/qeRV0wEJAmYkgCMVK932QUOJBUxTr3XsbY11MQBId0zua+q2qbnuXD49KrmzhKNOcuTgCEFwF76QygWlE/jtnWtqCSwnL1SXWekkQNmdH1wqjh9rhw7W/PoW9vDmV0DDWIViOmGQZXw1qzHwtAVOleIsU/SGdCB8MG9e01FBeimwmSsEl7HBTeIa7x6bz1SmgPs8AV8unpiogBv/kwJfN05fHxFlc5Vj58vRHYFiTEJPiGaUAvFxG9NlaetOkIBzOxvKJg0SZcmkYI+tlckMXGgH6pEs+oKBWRm/0h5OwnZI3osr5CUgCE5MF037Kt/1YnT59Mc2LainxOS0PqaxM+EqAmKX4oVW1tzIhCA2rglW4Y9yhFAyVGY+nth8AOzDVQ7ihH0nXj+jI8PZPnskvIMXKEHqBVocfauqbUeu5sdNwIB3c10tI4ANwOfKSvI5jmt5bsK8547AsCaYpH0jgCLh6hZ0bnODVDLYmvOGEFBSOcqAA2dHQzJHvqgqZ8fkgDouGMEuUnake4vGOgdAc0MwWFRAGqe/ZKI4pRAgZymdDfUDEK1tJ3Rz4oBsObZrwioOnBUFABI9T1k+LsmAJ5KIueOBmQR4Ta+QX+gcwWhAsyxNDQKWYGqYxrAdGADAaIFAAmANDoeGQDYwQGoMzZAvJIjrBI6AIBx9H9p6glBvrax57Wz5NIVI8+UJcYpv24Sere8fJRyc8YLonRg1dOrwGR4WwD4xy80wG87BQA2zJsGAJLZrQE4h5S7u+TW1QHtUpXIBEB0awB24cdvOAYAnFyoegYAPrv18/OEQOSYEyBeyzrIkJDlUU/sS/0dJNBxzAng3mkARfQmGCI8e595QcHFxcX7y8uL99PiADwVf6rtHACVd/7PICW6yAcQjm0QyWXCcQlDmD525atgY8nhq8P7egjC99UCQQmzsL50B64q7fTrk6MlRGD7LgDQEYF/bB6H/P8UgSpI/uWNxd9CBNp3RgAC84NdwzM+YVcJ3+ifrj//50DJDSleP2+5Ro4hcPYS+9+PdYVOai9CievIbQDWYPp7lgNAHvuRa0e89t0QgEBX54NWcHwbAJ7eDQHo6rfEgU4RswicmNMCTguAl1Pl+T0A7N4FAQhyNkN0Dd0AJAAvwddbzgIQIUcvNqR6u8ZVitl1AfkgvgMsUMV+Dv9HTHU+FiDBD/AfZ5H7hmATveB9ky7vmVcpEgCc/Oq8L1DBNXDh5wW0Cozz/ICPqGJy1nI9KFxDVh6Id4+WgN9yOND7BdWMTudTxy1hBwnAvtziI0fD4ce8EgkGwD8bu02DFezmgbd7RkrA/Y95sUAT/Su6aLac1oFlJAAjVZffSWNgrxp5AGAV8V+IQuqWyzagL/t4b1RS37tG6DAvHG7iH4heNVtykcilK4YCgCz8XK0JHQ5m/nOvHAD+qTh9yEF3uI4EoEHocjKFEhAhR49umEGf4vv+K/65gXsAVGG2LyRanb0EGIbuiHQQzR1DJ5d8Z7+DzuAqTPg38IwAnHrIJGDm+bmZwLk0fu0Hb7hx2XCWA4+VIKfHAAAZkr0iedC5bCdPLrl7ceAcAFPQCjuT3F4GQMPkHBKpc8lTOvFPm2NnWTASyb6x7PUxAEaFmqFA7UD6sZOXE6YD264agT01z5OIY9bKNUccK4nzk1fsw50zAzVhA+Qon4ltUqoI5vFxSciDJyzR5jtqBX1VAPyBAKBcJaCrJgyec0PomjO8wilgrJQARsJBKKUDfXUXs/+CfYRrACzzIKehCPJQANAoA0BPBcw/Y7yw4SYAx+qpSRMmyEnZapivlg/9U6ZhrgHwCXvIoVoHboCKeFwGASJreNp85rQEzJV3FgzQgculmsTmat44YhHFupsS0AyJ9GcMh2XKADAhWJO12joqAaoGCPcnKdsPc+NVKax56DQAvnrD4DDlQdmmAGIZ0SKQdhGAlQyAqf4ZEuPRaro+ElkHeo4CwPqDVSPIhSIxbQjQsaCiMsHITUeohpI/4h020SkbZUVgoqqMn/2Hm9GgP1ZtQCh3xo1KkYDsOfhDR5OCEdkMDwOgpHxjZEBUUO87WhrpgLuj+ySSgfGMUR0JhCQA7mWE0qToldoQG6vNocWV4FANoK4czQmmdnCq9oNS3bFXZXRA4pWZo03DNaX+l3LYPtkePC2hAxJnxK42iURqM8gckTgEICwaFXYVjYlcLQ9vku2gY7pBnB+okesMNskY2sVWuTXKjYEMlhhOEDD6QsTPnjv04A83pOIg9OShxTMukDd2Fat2M3OEaw5EBJUou5kKZcKGng6AwrmhhHCdWFK87gAXrHKvPFZnIhDbJ6ZDJMwiIDsOO9wBP7cvAB72BZENHHl6AEZlLGFMc2DdvjmoihrNpspeMwMAhWsE/6Xu6pnbRpIoV5arnCIhaDNx3dbeabOtDRS7LnDVZt5gdcElp1sfDyCjSUQSSE67VxAoJSvXFfjhSAkoghETUib+3IEiMNM90/iQAg6MyKRJCvPm9euenp5GT00lCgC0L4v/LGKSU1UCO0UAVLUBy1SiwX+J6Eu3DbwXuZlAiWBahQBUtoErxQY+ijSM7pLBgM/BkSreQSEAlW1Arb23RSayBs3VP1JxgKVO8bz/TBsgtlXfcv79qh+A9CTbe0W5miUAVD4w2evLhzB/y1xQHQDY382x6gO8EgAqx0KWsn7cg35Sg2XRbgzWX5PxB0oU5HTKABg8ITkq0Wl3hvbbOqwL98S/XpTqFgVAZRtQH9jRsWYT5BD0ZsJIqw1LAaicF7HywfpHLTJh5HmATjkAwyeEwzlOU3du7Dj3hocVAKicH77KVUztubFTutCb8PLzvNb61ZaE9G6C/o5iJ3mxW1gFALe6CDRraQFEHiRbw3tVAKgsg5v+BYl0DbLDJ7TbcjuVAKieGiSDhjo0lDg6JUs7htUAqLoi+jcJwH9rtCUiR24DMrPzbBnskVz5UIvxe+TyrUku658tgzYJQB2aylDjp+uicx68GlZ0A6Ra1OAU8VlOHBTSexzPlkH6c6MPdQLAg3EQCtzuiyhQLoO7T5ikF5j+rt0HAFsPAlEbhxIYWekQTYHS4tHHZioCAAjYbKbbEZoCAN/zcgDopYpAP3OxdJPM2v3u/IK/EghY0Wiid3fsG6H2lj8CDGDY+F2xW/Z0T+jthsxPUVo+AGC7mI50eoIjk0eolu/PAhG5M7rcb/4MT7hnFu9Ga0+EEdjL7WKiLyf0p8Zf+gCA2eyeBsASg7Q2T/eE/sRLkJ1n6E6nAIC7bTQJftQVAXz6BuT17NFsOaUBgMfJbUoGCrdI7NHEt/kJ7ASAic/rUHpxO1oElh4ZOAr+MAEAo0kUxTQA55DnXQqBovTwZDr1ErPnvx0thAicr+LtItCUFHi/l7Rs9uxptFzRAIyRt7t+WjBkLab3iRF0vmQALhY+76p0Y8Rx5OnJCrzoYABG0XJreKQbnOO6KIoD+RSYzhKhT+Y8cwI32+mCA3DXXrW3gZa0wG5TBlM7IQDveIDbaZqSpdub6hSwomhxn+ger0C8ixIKcAD6iQ14WtYEZ5ltZyPt3i1jHhWZKMBVyyPvSiggGundrLZRIgLinVV7NeMMMAxjFXs6jg+84OqejbS7jFc8XN3AEVnEKK/Nvi2cgwAADHlJREFUIkcgYh0rjrfLaCq+2G1v44i/NE3DiHUUT++zQD0GRtVdGivTEVYfEstgF8Rwn83cBLk1EioXJwhEM+BRjPaWB1x2cgNGe//vwwYDJzz1yUfajQ2Daz/KB3Rz5nm2XKXP3twuJmjTa8bRaLfby2gLCnDnRrz9kgHQY4wZb+B26QEVkE9tMyNrAkBmD6ijKnzAnHyeIAmg5dWwvVzwGe+136ziZQwEwnCN1dIDAQZzNORGXkDjzux+tWF83lFSFALQL328gJ1wnrNnYxoJB2KQb2eJ6vG+cmPGxB86ZDR0DOU9u4F49wzZCx78OjQAZQjcGAnnOQEMo22s2iBhcM4SSLYwwDAzqh2yWOgI5nmzQOB2B8CQj5nlAFBYJm3dMbaKubu8MxOZN40ABpWJ52vBAINlrvc/h64L4SEer4xlHA0b+jw5E8bu88Z/vUkU0eHxpL0bvWlA5TRN5hpN5F9DHZtkAQzy0xc9E0QFsEhSTQW+IUkwSpxCoupigsdm4lcYW6PEsmnwZ/XtqGVyoA+aHn3PtU6MdB/ih9w4BkokCEjwRcmEjh6jw8TEjQCWWiaO3oMLa/gGikQP21TkDCz0M+HbA3DBueHIawF8bSeI/GlwbDLu1jpXO43vsyFeV7K+gVaZmQQdNhR8BeVtCMfpCG6UbAr2WRwtpsk1i1YcIiZs2iLSRWZCeYHIBsZWh80JoEDAhffDiBohOhtOYtLvt+Fxg+QdV9lbaiLT0tNb6yUiN/IJAb/VAcoIVb2a8LCQlDI+R5TAcPxx2NWQBzd8QyiJTQ6NmxMIFHPAQwTAVUSPVDI9mGrkcBx4j+wUkrsJb2hI1Eo/AYCWRIAhzA/gZzNfQfodurPUGeTkAFKSif9plqhgBQLsQfQgkwboV5kWJwCfJgXmxAQigE76nD+bAPuf8C0w5esO4XUOfpDwGAV5aKKbwkEESk7oqQQI9+P3VMlN//ZQixMQyyETCtGVLAIt0gZW5QSwYQLF8kfAAly03cLN7OB7I6fQDSAVZAINRvqBm3ICjGGrBXvkA3wHWANDXQWjZ8Sk2zB06yJ7BRRwe7kArCUCuPsMYZoT3fSJnwz0aCDsHqeoIBABKhRo5QLgynA9DtafofoSD/lWpkkDuQp20V2NYeZzjubrVtA81yeEElr70S2je6CLLg6LHU0aKFQQ3fo5hOMcB3IbvjtylTN+pdvKI5XsKPLAD0jx9UCXBkoqeIGmbg2miHdVsebZ63kJAXpIEj/HX1SB4Wxb6yuaRyroIBEYEAuF3Zp/ZcT3+YHxUOZKK00Sh3BxKCUZtGkgjwXx83LGsiMkzkTkaaAcA6UEWG0hLI6UZ9OQEaZVEItACO/R8aqUDCtB8P4NyzAe4N9pYglwdJ4a8KAKNtG8IBuQEOiVuEBMgBsjfczEleQEx0gDP+gA4D2UbCwCLq6OhjsBZI0QEQOlBFhlW3+mVE9mwm/paSz2Clk6jmFDPBi2yN0Wl13gGElCzzDXkDdNSQI8nQeHjhGlQ/SqJZu7u/B46rtfUCXVlQhgGig0CLAEuHrSYVgEbDQ3FrJoFPMZhlm6ChSQ7RXAZAP4R+S2XEN9YRAQARNxGPXNtJ6aBujhU8UrlpI8VcYLqeikqVMCuAiMkTleIj9QMSG+ll3gHpEe/x1TsoAeeq2rrdQx4fszsrKn5IMdZcXUwpVGXdkCUMClr41IQPj+zIrXhVEPrYB2XybAEBGpJTlBR/fp2TPKRV+hyP7yCYlQsUqSCGDJRWY4LNRXLf4CzU+AWe9VlUGmxIhM6hlwLlsAtjp9fWSO0O008V5ws6oMKgqYviNqDZVNsg1C7p02AFJHaGMpu0LzZVdWwDFeFggF6MmHq2xkZTqfNvIKKZ1kA2G1XSElBlQIMJdrDDHldHZSOkJzLtnAsJInVGNARyJAV+lGjAH/QSMAaV6sR9oA8ypQwJFXwRlzNlKmFeSCcFys93k7J1SgZuOd/iIK8DMEYpU8zDBt4W21gWwBA/0WwIPBObaBDXZb83IPAJxFlgJmHrFNDH8+rEULiVM4J460Gbwuo4CjpolaMgHk0xZSsK37iVMniPQBZq1TUiPEF4EiBGDZPrBLgykoMayDBXAb2GAbGPdJUahgAOts1GvsUphyAGetPQqCNoCDH87oYadoReCoG4dORgjZmgZy5XFKFf1dZU+o4IeXRgad/EPTwgA2kgu8FJK3USRwjLDV30DhCI14IHXLyF7fFBnArbQ5ZIvwqKecNLGwBbzVDkC6HhjjWbXlQFfNC7xWDSD99lis+zZKteg5+qj+PlLZmrgrlTnOJQp0czdCgAG0so8GEgFcZV9pWIsgYG8DsIBJkUE+lsucEBAYAH8uo7I+aCqHL8KaSKCQwStpwKbkCKRz8yFROhKm0CnhEVP6sLDa9JDhMtiVBnwuU6BHCgDwD+k3TUEOU2kyghcG1ttaAJDK4AbLoCVRADHAJTrrsGwHIFQWiJ4cBaaf+Wc9xp9Gg5d9Ohrc3ywaPwuIreKsrEQlx0CJAlltfCCIBm1pdm043fi8+JrYKs4qqxy181agbK23auMDoSeUffZYeDe8J/yaOkqyH2XP9ZSjVkO1tiKojQ8EFODVb0Nlm2OZc078UsmMrQJVHQLFBzo18oH763sy+hsXr4GhB8zaDIXqacthp0PWT9bqUUuPwZA1z6MA3SkBrpDSgooHdbAEAVjtCLALhqyOf1OFAg+UAKSqMCUqiYZqM7phx7Pq9qytIz+5Kd8sp8BrSgBS5QNPqRLsCNQ+DIHVqd+jpr73PN+/LaUAfaRcbSR1W0AAx6qbAjxSYOL7/ki+bXkNKJwcFAC1nV6X6DXYFXBZdXzW2Ld+AoGkXHLDIPCEtXlhK7UNgU32DXdHAO+H2gHQ+GkyGs0gBSy5JIyFlAAQPZRuiM4qnADNRAG9j/Ubf+PldDoZbQRP1W5JISkAqgEI8yAIkGDidzR1TyvTwcV0ymM+53OBA4TVooQBzIn/426xZSUE+K1Ry+unWXSfXwr4QJdLqwbQUxdN4CtB4m5+ref4Gy+X0Ta3FPRLhzxNX2QADqEKQ8v362kAu+u7eLvNocBrwsfTnRTHBDkEKPcTy//UqO31c7u9Khv/De0XVX0EMRB3Go7nT35v1Pj6e9soaR7dJTMjHTVJDlygCKnvR/7oXZ0BaPxiEjbwJue4ANFE8LZf4AL7rj1afGrU+/qZFekfGr/rFRgA+E/gFqaT/zXqfikMuBddcPHmQFDgAYB1iDfd69n0be0BePk3qW2U1aHH/1AQAkH3INzCw2L6rvEVXN/hxmF+1g/Tmpf0Eu5R7ADFA9fRj42v4nopxr9bJSfBq6UUSxECAARiQLFmEcWNr+Q6SofyZvo4/v+3d8a6bcNAAL0IMLqWBgy34CIYCPo7sgEhQ/ZAzcZBMGpPXQiqnboYojJ1aSNq0lA0ln6upJ04FKWkKNBF9D1tnnynu+MdjzomSX+Q6u6VItjWzrMDbNT3tzAaDSzNX6ayzMwgbDMc3SmOBwLA56H8wPIKVacwJi7XW9qoUgqZ8YR3/f+YGSYvrIBWfmC3juoZjItJ3Tb7ptBekLjN8Y25M6CrAmsFtHJAS21tNDL5IfhQt61SuRTc2RxhO37DHQP4OeQeVt3EQhgdF4RWbamdwP1c9IeW3QRGPhgANoOfGUfjkx8W1zNiJubd9bZGEu0VwjaC278cHllPRyg/BLCoKVVugfye50ki+OPi2CsR3g39OEr5tQlMyPWv1ZXbGxCZMNzww+PskW0Hjk+uZzBWFiZ0dTSwlSLPTW6Qi5MNfHPigyt/CiPH0gAr81wnR/fGCJ5iwNfOHiHvyT+F0ROf3HmvV4VC3ssvXBwzRN6J9duB9++B/CYvjA9m0Kim0blBIaU2geQwJe+2WyFwV/4IfGEyX9OqqapKVUppDfCdSQc7e0QPx+TAyptmIfjDJSM1oebGhKZURZkLV/7NMSpYPdUIfCKICaOEHDVQSrMMdHJklifmjMSdP9G/5wQBYfrZ1i1tyiLPnBrhwdy18PG5bE5D3xQAQTCbEzYnNW2VDoNZp0b4xLPEPlE4BQ8JgosrM0HeXJySFR35mZTCev1sBb6yrMlv2jalUyPti6w6aSSNwF+MG9BeE5FWJ/HTOAS/CZb9mUJPPUXmvfSGcLLsH6GNV3BOBLHTQYrg/NA6SONHRYRwtrzxLuX9Z2dYAYIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg/40/czWhw+AgtSwAAAAASUVORK5CYII=
son of [[以扫 Esau]] and [[Aholibamah]]
son of [[拿鹤 Nahor, son of Terah]] and [[密迦 Milcah]]
son of [[基土拉 Keturah]] and [[亚伯拉罕 Abraham]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
son of [[埃伯 Eber]]
!! offspring
<<list-links "[tag<currentTiddler>] +[nsort[num]]">>
Jökull(Glacier),[[💨卡瑞 Kari]]的儿子
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
son of [[Eliakim,son of Melea]]
son of [[Mattathias,son of Amos]]
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
朱巴尔(又名尤瓦尔、尤巴尔或图巴尔)是希伯来圣经和旧约《创世记》4:21 中的一个圣经人物。他只被提及一次,但有时被基督徒,特别是中世纪的评论家视为“''音乐的发明者''”。
son of [[Joseph,son of Jonam]]
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
是控制波斯湾和西奈半岛之间地区的北方阿拉伯部落 [[Qedarites|https://www.wikiwand.com/en/Qedarite]] 的父亲。根据传统,他是古莱什部落的祖先,因此也是伊斯兰教先知''穆罕默德''的祖先。
son of [[拿鹤 Nahor, son of Terah]] and [[密迦 Milcah]]
son of [[Jephunneh]], [[Caleb,son of Jephunneh]]'s younger brother.
son of [[拿鹤 Nahor, son of Terah]] and [[密迦 Milcah]]
! King
''Teucer'' (''/ˈt(j)uːsər/''; Ancient Greek: Τεῦκρος Teûkros)
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
son of [[以扫 Esau]] and [[Aholibamah]]
son of [[Izhar]]
在[[民数记 Book of Numbers c.1473 BC]]中反叛[[摩西 Moses]],被耶和华地裂吞噬。
<a href="https://www.wikiwand.com/en/Punishment_of_the_Sons_of_Korah#Media/File:Botticcelli,_Sandro_-_The_Punishment_of_Korah_and_the_Stoning_of_Moses_and_Aaron_-_1481-82.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/2/2f/Botticcelli%2C_Sandro_-_The_Punishment_of_Korah_and_the_Stoning_of_Moses_and_Aaron_-_1481-82.jpg"
caption:"Punishment of the Rebels by [[Sandro Botticelli|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E6%A1%91%E5%BE%B7%E7%BD%97%C2%B7%E6%B3%A2%E6%8F%90%E5%88%87%E5%88%A9%20Botticelli%201445%E2%80%931510:%5B%5B%E6%A1%91%E5%BE%B7%E7%BD%97%C2%B7%E6%B3%A2%E6%8F%90%E5%88%87%E5%88%A9%20Botticelli%201445%E2%80%931510%5D%5D]] in the Sistine Chapel, 1480–82"
width:"auto"
align:"center"
>>
</a>
iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAABuwAAAbsBOuzj4gAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAYlSURBVHic7ZpfiBdVFMc/x58om7pssq1LbWYhKWES5S5BSuri9qCS+ZCIRAgG+WAPi1A9RE9tPVgvkgSSSD4ZLQXGQg8L7UOSriuJ+qA+uK2Lf1ZsDRdjN9fTw71j43Xm95uZe3+/XaMvHJiZe8/3/JmZe8+9M6Kq1AIiIsArwJvAEqDFCsCwlXPAt8AvWivHVLWqAswBPgYuAppRLlqdOVX3r8rBbwaGcgTuyhCw+aFLADAbOOwRuCuHgdkPRQKAuUBvwOAj6QXmTusE2Pf9eBWCj+R46HFhRsK46IMvgdbAnHG0WhvhEPDub6N6d96VbaH8Fuu8F0SkGTgPzPMmy4ZbwLOqetWXKNQr0Entgsfa6gxB5P0EiMh84HfM6F9LjAFPqeofPiQhnoCd1D54rM2dviQhErApAMeU2fZ6BUSkCbgKiK8jBaFAs6qOFCXwfQI6mLrgsbY7fAh8E1DNoicrvHzwTcACT/0Q8PLBNwHNnvohED4BItIgIqUM+k2x41FgwseZjJiwtiJUTICIlESkIaltRqxTo4h8LSKD1sAtETkqIhvLcPcBW4BGVZ2PqdBagV2YLa5QGLacrcA8a6vR2u5LUxKRjSJyFFM6j4rIoI2x8V4nOw2uBK6RvvjYV2BxVA/sL8OZVfYD9QXs7yvDeQ1YGZUAj9oMV3Jke8FVYpdH8F0FbW7PwD1sY2eP03AX+BkYca6PAqUUg83ABmANzq4NZnvsbIHgz+Jsg2HK3zXWVnOKLyXra5xrxMZ017m+B+CYc3FtzPGTTtuyBIO7gfFYn6vAOqdPe4EEtDsc6yx31D4O7E7wZ5nDczJKJLDWaTsGcD12oc8h2+UobHXaN6U4/yew0HkKJnIEPxG/+8BCy5nUd5Pj01anfZfT3hdruz4DOIDBZPRIxHDLOZ/tnL9DMuoxIzQAqjoOnE7pm4TTVifCFsuZBNcH10c3hj2YWAEOzFTV90XkO+Caqg7lcBLgyRxtg8CLGXkHPeyUhaoeEZFngAWq2j/TXuzPQxLDWeD5Mm1xpPVLgtvX5cralgh7o4fAvxT+BDMYubgAHIpObBW2OAfvYqdyO2Q5XYxbHwrDKwGqegYzwp/GDCp/Az2YEfx2rOsb5Fs2i9WJ7Ny2dnqsDbU2260PxVGhoFjP/SNqZ4XKb1ZKjXCD7DNAJDdImOuBWZSpDDGbpXGe9WVjrJCAZoesO2dFNgs4UiD4SI4kJbWCzW6HI7FgypQAS3jJIdyQ0ZFW4IxH8JGcAVoz2tzg6F6qpFNxT1BEPgA+jV2aBL4AfgT+At4FTgD9mFJ1BfAypkjKsqTOgkngB+BXa2sMk+AVwFdAHSb4Tsfmh6r6WVnmDFkt2eB872StpZ+UtUuuV8AmYSnm09dUB5VVzgNLM8WWY3Cpwzz6k9MgwDSJXs+6rHHl/i5gvwVE79884DfMcvOnXET+eA2zJfcCpt4/AfRrzm8EQb4OA4jIANlrfV+cVNWXQhCF/EHi+4BcNbMVMgG5FyXTwVbIBFwKyJXLlog8LiIf2V3gfJ/q8pSZFWaJRdRutF/k2B6ItW3M43fon6RqDhFp4f7B9/U8+g99AoCZFc7LIlcCROQREflcRHpFpL1C927g6Zh0O+2rYm2rcuoGQ65sAW/z789JS0RkkareSek7pqqD0YmIjDntw1F7wrhVSTcY8r4C8Q3IJzA/Q0doc/peLuRRMlyutpTj3HbzPgEDznlX7O51Vejrg+rZzTnVNWAyXGmaugw0OLoHSZnKeHAKPRjKbtBpUFVvAjsydN1h+wZBNe3mngZVtQezWXolofkKZhOyJy/vVNnNOwbcc0ZEnsNsVUersgGgN+Sdr4XdQgmwztzEzM9Vm6NrYfe/UAl64f8EhCQTkToReUtElofktdzLLXddSN7QT0AP8A1wSkReDUVquU5Z7qAzTLAEiEg9sDp26T2ny2PO+e2U46S+ca7V1lYYhNoQsRVbvFq7A7TZ6232/F7FFlLXR0K/AvGfFkvAMRG5gPkZqZTSL4RucQR+Alp48Bc1V0aBlpC6Xj6HJLOBdPDgP4aRjAAd1dCdNgmwgTQBezFfa6KvNnuBpmrqFpF/ADP+auy9ZymDAAAAAElFTkSuQmCC
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<g>
<g>
<circle cx="151" cy="211" r="30"/>
</g>
</g>
<g>
<g>
<circle cx="361" cy="211" r="30"/>
</g>
</g>
<g>
<g>
<path d="M466,151c-24.814,0-45,20.186-45,45v30v15c0,16.538-13.462,30-30,30c-2.631,0-5.118-0.628-7.59-1.278
c0.656-1.196,0.945-2.538,1.523-3.77C377.589,269.163,369.516,271,361,271c-33.091,0-60-26.909-60-60s26.909-60,60-60
c10.693,0,20.596,3.043,29.299,7.963c0.128-2.679,0.701-5.259,0.701-7.963C391,68.295,330.443,0,256,0S121,68.295,121,151
c0,2.704,0.573,5.284,0.701,7.963C130.404,154.043,140.307,151,151,151c33.091,0,60,26.909,60,60s-26.909,60-60,60
c-8.518,0-16.593-1.838-23.937-5.05c0.579,1.234,0.868,2.576,1.523,3.774c-2.47,0.648-4.957,1.276-7.586,1.276
c-16.538,0-30-13.462-30-30v-45c0-24.814-20.186-45-45-45c-24.814,0-46,20.186-46,45c0,8.291,6.709,15,15,15s15-6.709,15-15
c0-8.276,7.724-15,16-15s15,6.724,15,15v45c0,33.091,26.909,60,60,60c7.224,0,14.332-1.404,21.031-3.913
c5.834,14.262,8.969,27.557,8.969,40.432V376c0,8.276-6.724,15-15,15s-15-6.724-15-15c0-8.291-6.709-15-15-15s-15,6.709-15,15
c0,24.814,20.186,45,45,45c24.814,0,45-20.186,45-45v-15h30v106c0,8.276-6.724,15-15,15s-15-6.724-15-15c0-8.291-6.709-15-15-15
s-15,6.709-15,15c0,24.814,20.186,45,45,45c24.814,0,45-20.186,45-45V361h30v106c0,24.814,20.186,45,45,45
c24.814,0,45-20.186,45-45c0-8.291-6.709-15-15-15c-8.291,0-15,6.709-15,15c0,8.276-6.724,15-15,15s-15-6.724-15-15V361h30v15
c0,24.814,20.186,45,45,45c24.814,0,45-20.186,45-45v-30c0-8.291-6.709-15-15-15c-8.291,0-15,6.709-15,15v30
c0,8.276-6.724,15-15,15s-15-6.724-15-15v-38.481c0-12.874,3.133-26.168,8.967-40.433C376.668,299.594,383.776,301,391,301
c33.091,0,60-26.909,60-60v-15v-30c0-8.276,6.724-15,15-15s16,6.724,16,15c0,8.291,6.709,15,15,15c8.291,0,15-6.709,15-15
C512,171.186,490.814,151,466,151z"/>
</g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>
! 凯法利尼亚人之王
''Laertes'' (''/leɪˈɜːrtiːz/''; Greek: Λαέρτης, Laértēs Greek pronunciation: [laː.ér.tɛːs]; also spelled Laërtes)
|父母 |Arcesius and Chalcomedusa |
! A Trojan king
''Laomedon'' (''/leɪˈɒmɪdɒn/''; Ancient Greek: Λαομέδων means "ruler of the people")
Laomedon's mother was variously identified as Eurydice,[1] Leucippe or Batia. Thus, his possible siblings are Themiste,[1] Telecleia[2] and sometimes, even Tithonus.
husband of [[底波拉 Deborah]]
''Latinus'' (Latin: Latinus; Ancient Greek: Λατῖνος)
''Lavinia'' (''/ləˈvɪniə/'' lə-VIN-ee-ə; Latin: Lāuīnĭa [laːˈwiːnɪ.a])
埃托利亚公主
!! 与宙斯
宙斯很欣赏莱达Leda,''并以天鹅的身份勾引她''。作为一只天鹅,宙斯为了保护她免受老鹰的追击而投入她的怀抱。
他们在莱达与她丈夫丁达鲁斯Tyndareus 躺在一起的当天晚上完成了婚事,产生了两个蛋,从中孵化出海伦(后来被称为美丽的 "特洛伊的海伦")、克莱门尼斯特拉以及卡斯特和波吕克斯(也被称为迪奥斯库里)。哪些孩子是凡人国王丁达勒斯的后代,哪些是宙斯的后代,因此是半仙,这些说法并不一致,哪个孩子从哪个蛋里孵化出来也不一致。分裂的情况几乎总是一半是凡人,一半是神人,尽管这些配对并不总是反映孩子们的遗产配对情况。Castor和Pollux有时都是凡人,有时都是神人。一个一致的观点是,如果他们中只有一个是不朽的,那就是波吕克斯 Pollux。也总是说海伦是宙斯的女儿。
在荷马的《伊利亚特》中,海伦从特洛伊城墙往下看,想知道为什么她没有在亚该亚人中看到她的兄弟。叙述者评论说他们都已经死了并被埋葬在他们的故乡 Lacedaemon 中,因此至少在荷马的传统中,他们都是凡人。
神话的另一个描述是,[[涅墨西斯Nemesis(Νέμεσις)|复仇女神涅墨西斯 Nemesis]]是海伦的母亲,也被宙斯以天鹅的名义怀孕。一个牧羊人找到了这个蛋,把它交给了丽达,丽达小心地把它放在一个箱子里,直到蛋孵化出来。卵孵化后,''丽达收养了海伦作为她的女儿''。宙斯还通过在天空中创造天鹅星座 Cygnus(Κύκνος)来纪念海伦的诞生。
son of [[Melchi,son of Jannai]]
In Greek mythology, Liriopê (Ancient Greek: Λιριοπη) or Leiriopê (Ancient Greek: Λειριοπη) is ''a Boeotian naiad of Thespiae'', who was probably the daughter of one of the Boeotian or Phocian river gods.
Liriope was raped by the river-god Cephissus, who was himself the son of Pontus and Thalassa, and bore his son [[Narcissus|那喀索斯 Narcissus]].
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
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
在希腊神话中,林西斯(/ˈlɪnsiːəs, -sjuːs/;古希腊语:Λυγκεύς,林西斯意为“猞猁的眼睛”)是阿尔戈斯的国王,继承了[[达纳斯Danaus|👑达纳斯 Danaus]]的王位。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
son of [[Reumah]] and [[拿鹤 Nahor, son of Terah]]
''Machaon'' (''/məˈkeɪən/''; Ancient Greek: Μᾰχάων Makhāōn)
在《伊利亚特》中,他被帕里斯(Paris)打伤并失去了战斗力。在战争期间,Machaon(或他的兄弟)在潘达鲁斯(Pandarus)手中中箭后,治愈了菲罗克忒忒斯(Philoctetes)、特莱福斯(Telephus)和米奈劳斯(Menelaus)。他还被认为拥有半人马奇龙(Chiron)赐给他父亲阿斯克勒庇俄斯的草药。
daughter of Ishmael, [[以扫 Esau]]'s wife.
|父母 |[[Atlas|阿特拉斯 Atlas]] and [[Pleione|Pleione]] |
是七姐妹星中最年长的一个(the oldest of the seven Pleiades)。
根据荷马史诗《赫尔墨斯赞歌》(Homeric Hymn to Hermes),宙斯在夜深人静的时候,在锡勒尼的一个山洞里,秘密地与避开众神的Maia做爱。她怀上了[[赫尔墨斯|☤神使赫尔墨斯 Hermes]]。生下孩子后,麦亚用毯子把他裹起来睡觉了。迅速成熟的婴儿赫耳墨斯爬到了塞萨利(Thessaly),在那里,在他第一天的夜幕降临时,他偷了他同父异母的兄弟阿波罗的一些牛,并从一个龟壳中发明了琴。当阿波罗声称赫尔墨斯是小偷时,Maia拒绝相信他,而宙斯则站在阿波罗一边。''最后,阿波罗用牛换来了琴,琴成了他的识别属性之一。''
玛雅还抚养了婴儿[[阿卡斯Arcas|阿卡斯 Arcas]],他是[[卡利斯托Callisto|卡利斯托 Callisto]]和宙斯的孩子。宙斯的妻子赫拉因为这段恋情而受到委屈,她嫉妒地把卡利斯托Callisto变成了一只熊。阿卡斯是阿卡迪亚Arcadia的代名词,Maia就出生在那里。 ''卡利斯托Callisto和阿卡斯的故事,就像昴宿星团的故事一样,是一个恒星阵的传说,大熊星座和小熊星座,大熊和小熊。''
firstborn son of [[Asenath]] and [[约瑟 Joseph]]
名字意思是“忘却“,指忘却约瑟之前的苦痛和父亲一家
是一位阿卡迪亚王子,是不虔诚的吕卡翁国王的 50 个儿子之一
<$leafmap tile='positron'
places='{"point":"37.97208, 23.72653"}' zoom=5>
<$leafmap tile='positron' places='{"filter":"[tag[Age of Discovery]]"}' cluster='25'>
son of [[Levi,son of Symeon]]
son of [[Levi,son of Melchi]]
son of [[基土拉 Keturah]] and [[亚伯拉罕 Abraham]]
son of [[Rizpah]] and [[👑扫罗 Saul]]
[[Armoni|Armoni]] and Mephibosheth are named in the Hebrew Bible as the two sons of Saul by his concubine Rizpah, daughter of Aiah. After Saul's death, they were killed in revenge for his violence against the Gibeonites.
flowchart LR
A[Hard edge] -->|Link text| B(Round edge)
B --> C{Decision}
C -->|One| D[Result one]
C -->|Two| E[Result two]
son of [[基土拉 Keturah]] and [[亚伯拉罕 Abraham]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
son of [[含姆 Ham]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
Mjöll ("Powdered snow"), daughter of [[Snaer the Old]]
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
.legend-color {
display: inline-block;
min-width: 1.25em;
height: 1.25em;
line-height: 1.25;
margin: 1px 0;
text-align: center;
border: 1px solid #eee;
color: transparent;
}
.legend-color-dot {
margin: 1px 0;
padding:0 6px;
text-align: center;
border: 1px solid #eee;
background-size: 6px 6px;
background-position: 0 0, 30px 30px;
background-repeat: repeat;
color: transparent;
}
.legend-color-stripes {
padding:0 6px;
color: transparent;
}
.wavy {
text-decoration: underline wavy red;
}
.highlight {
box-shadow:inset 0 -10px 0 #ffff006e, 0 2px 0 #ffff006e;
font-weight:bold;
}
.left {
float: left;
margin: 10px;
}
.right {
float: right;
margin: 10px;
font-size: 12px;
line-height: 1.25rem;
}
a {
color: #25b7b1;
}
a:hover {
text-shadow: 1px 0 0 currentColor;
}
a:visited {
color: #008080;
}
a.black {
color:black;
background-color:black;
}
a.black:hover {
color:#fff;
background-color:black;
}
ul, li {
list-style-position: inside;
}
table {
width: 100%;
}
/* Sortable tables */
table.sortable thead {
background-color:#eee;
color:#666666;
font-weight: bold;
cursor: default;
}
/* 显示箭头 */
table.sortable th:not(.sorttable_sorted):not(.sorttable_sorted_reverse):not(.sorttable_nosort):after {
content: " \25B4\25BE"
}
.image-grid {
display: flex;
align-items: flex-end;
}
/* image gallery */
.gallery {
display: grid;
grid-gap: 10px; /* space between images */
margin: auto; /* centering the gallery */
max-width: none;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}
.gallery .desc {
font-size: 0.75rem;
line-height: 1.2rem;
}
.img-container {
background: #f0f0f0; /* placeholder for images */
text-align: center;
padding: 4px;
box-sizing: border-box;
}
/* Default to 1 image per column for small devices */
@media (max-width: 480px) {
.gallery {
grid-template-columns: repeat(1, 1fr);
}
}
/* 3 images per column for medium devices */
@media (min-width: 481px) and (max-width: 1199px) {
.gallery {
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}
}
/* 4 images per column for large devices */
@media (min-width: 1200px) {
.gallery {
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}
}
.card-text p {
margin-bottom: 1.2rem;
}
p .timelineCus {
height: 500px !important;
}
[[Zillah]]和[[拉麦 Lamech (descendant of Cain)]]的女儿,也是他们最小的孩子。
[[🌌诺特 Nott]]的第一任丈夫
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
son of [[拔示巴 Bathsheba]] and [[👑大卫王 David]]
An [[Ephraimite|以法莲 Ephraim]] of Zereda, was the father of King Jeroboam
[[⚡众神之父奥丁(神圣) Odin]]的儿子,[[南娜 Nanna]]的父亲。
[[source|https://www.wikiwand.com/en/Nereids#Names]]
In Greek mythology, the Nereids or Nereides (/ˈnɪəriɪdz/ NEER-ee-idz; Ancient Greek: Νηρηΐδες, romanized: Nērēḯdes; sg. Νηρηΐς, Nērēḯs, also Νημερτές) are sea nymphs (female spirits of sea waters), the 50 daughters of the 'Old Man of the Sea'[[老者涅柔斯 Nereus]] and the Oceanid[[多里斯 Doris]], sisters to their brother Nerites. They often accompany Poseidon, the god of the sea, and can be friendly and helpful to sailors (such as the Argonauts in their search for the Golden Fleece).
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
son of [[Melchi]]
在[[路加福音 Gospel of Luke c.56-58]]中为[[👑撒拉铁 Shealtiel]]的父亲
probably the son of [[👑暗利 Omri]]
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
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
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>nsort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
所谓北欧神话,是指[[古斯堪的纳维亚人|斯堪的纳维亚 Scandinavia]](Scandinavian)或所谓北欧人(Norsemen)的 原始信仰,而他们的英雄传说也包括在内。
关于此部分神话的最早且最重要的传述者和增饰者(我们不应忘记,传到今天的神话都是经过无名诗人的不断修饰的),学者们有两种意见: 一谓是出于''挪威''的古诗人,因为保存了大部分神话材料的''《大埃达》(Elder Edda)''或称''《韵文埃达》(Poetic Edda)''中所述之风俗、法律、方物,均似属于较南方的挪威;另一谓是出于''冰岛''(Iceland)的''古代吟唱诗人(Skald)''们,则因为大家公认,直到十四世纪,冰岛的吟唱诗人对北欧文学的发展还是极重要的存在, 而且相传编辑了《大埃达》的萨蒙德 (Saemund,1056-1133)也是从冰岛搜集材料的。
在《大埃达》之外,还有《''小埃达''》(Younger Edda),因是散文所著,故亦称《''散文埃达''》(Prose Edda),也是身世不明的古籍,据说是斯诺里·斯特拉松(Snorri Sturluson)所传,内容是神话故事、诗品、文法和修辞法。
今天流传的北欧神话已经不能完全算是''古斯堪的纳维亚人''的原始信仰之代表。''[[基督教|基督教 Christianity]]的信仰在古代北欧异教神祗的血液中潜流着'';这在许多地方都能看见,而且也是学者们公认的。
据一般的推测,''当开化较晚的北欧人尚未把他们古代原始信仰的故事发展成系统的神话体系的时候,基督教的信仰即已侵入,阻碍了北欧神话的扩大化、精湛化、 组织化''。__因此北欧神话可以说是半途中断的未完成品。__
如果我们说南方的''希腊神话''是“抒情诗的”,那么,这北欧神话便可说是“''悲剧的''”。北欧的诸神是永远在与危害世界的恶势力——恶神和邪恶的巨人族在战斗的;诸神逐渐取得胜利, 但到了后来,那不可避免的命运,“''诸神之黄昏''”就到来了,于是在对立双方一场最后决战之后,诸神全都死灭了,恶神和邪恶的巨人也都灭亡了。这是悲剧的意味,悲剧的结构;__这和希腊神话里的诸神总是和希腊人一起在地上行走,在林中泉畔嬉戏、恋爱、妒杀,也是迥然不同__。这就是北欧神话在基调上与希腊神话相异的地方了。
————《茅盾:北欧神话初探》
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
son of Elishama, father of [[约书亚 Joshua]]
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
\import $:/scripts/CreateTaskMacro
\define newTask()
<$button class="button-border">New
<$action-sendmessage
$message="tm-new-tiddler"
title="New Tiddler"
tags="""[[$(currentTiddler)$]]"""
text="This is a new tiddler."
img=""
symbols=""
sex=""
consort=""
due-date=<<now "[UTC]YYYY0MM0DD">>>
Create New Tiddler
</$action-sendmessage>
</$button>
\end
<div class=float-right>
<<newTask>>
</div>
<<table-dynamic
filter:"[tag[Ogdoad table]]"
sortOp:"sortan"
fields:"tbl-expand title img symbols sex consort"
caption:"第三至第六王朝的古王国时期(公元前2686年~公元前2134年,在[[赫尔莫波斯城 Hermopolis]]供奉的八位元神"
pagination:yes
class:"w-100 table-left"
>>
son of [[西缅 Simeon (son of Jacob)]]
iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAQMAAACXljzdAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAGUExURQAAAAAAAKVnuc8AAAACdFJOUwH3TFGbxgAABI5JREFUWMOlmDmOHTcQhkkzoCP3BQzwCL6BeTHDbGMChXMEHcCHMAUFCnUEUZhAoXvgYCiYYLmKvXEpwlrmBQP095qPrPproxD7n1sF/ydhm5AF4oRYSBPiIM9+BoAnCgm/OQ1+su0lC+t5koQJLDHblASx8AR/ZOHNY1ehv5Y4PGz8NmK3CZGMKyyaO6H1gNsbEgPgeeIAAk/QSRtjHZkkRwyunxV4Exlbi6xB6IGQCwDdp4YDkQscLiUHQqu4v4JkSCIxeu0HPdL6FtZlJBKfGFhNGAkQEXYkArWLanTjavhM6CzgzahuG1D1Ej+BEamEP5BExggS3uJ6mTXCC7mIM4LFpczgbzKCQb/pYQtkhIWejlvIFKy4kk0MwcMob4BRqXBxCbq3gqKv2mSC7Dfn6KsG0Ejd5lRJFJo02sWDKUSSrk3qFis/DLubuoTkSy7DhXObdnZiyqnWNiOSsvH/7vh6A2shCoVFjq98nUo0kH3sausDue1IO25zq9la5ezERlwvdmoL54l1fVQQB6G4rw+EDv1lN6RC7cjKQzKpI96L3hqiz6jGXdZHrQj5oDpqRdAHW3XUiixZxSoLS0wSB9GgY51rs1iPNCrhMdZGwH2eCRY+xDqRYLVQ2+n3rU4kuM8zwVoIMrexGE8n+oZsFyGHV+bB850EI7yuraixk5DAK1LlPBTVj1X5wi9esQb+17qwgbrSu/OuLl/uJjZAbTinL2KeZ2SB3BjuXk13RD6na5+xMakQ6e4hOnKZEbNCnhC/TAhGw2Q16+vcY2sS3Na88/tdceoEg9XMXc56rmPYVrGhn6GpgPYm/+aGOLjdmKYkTkjbfBFZLxImpM2KZv3Z3sQ3RNyk6aMwH82JmRP//8R+L8EcdhPjW3J3aV9MKjt2RE/JcnulIXozU7J8C3mZkR80TzC33H2iWb+e2C8jsm62WnI3aK7t26l9TFcBbUotNon5rNMT4vr5IKuDwECOd6iCt10FEthJ/rMjIlLYW0rK7eTgjh7lXepsXQguAi+RIdQVl9LVzhR2PUgQ3UxBxAvFE1OIH0gJE/UZSW4JhTAWrg0rFvREARGH5HFrCfV1KtpVwqvYtt4kbKzMSJqm4iILnkkN5NDPb7Ltn7ZC0tlNNpJ/eykLuh4WXziIE61I8fGxjuvkS48zI+xUHgMrX3rsHnwfWkTI469CT8Re4u27jSPkvU/bMGHvOiuk7SGLeLC/+xRLt9gShw5anmLpFhryGi6Su1GcVLg8JdEPTgf5mEQ/bFEU4lDwhvr5oY/GKmZpmNE9yQ9EYCDYG6Eb3OpGQlMEftwwESuyEJZbNAQzK7uHTOpmZnL3PtGIxBC6ksAmkSEkYOw0jGeJPhr3/uqjBOQ4JtP3JzcW1OdolpC05mSZk6cpCZbZG/VjJtjXE+LNh8CuhuR9mL3z98a/sxYFM8QiSTPyT54Q/Xm8rSgXH0Q8T1Qabx4Okt2wOZI6pT6TeSLgcdiCDDt5B5ObHveRvbsyNLqxd1c/0Vw5u4xbZjdh7GXONcdOiJjdxXETfH3XMvmhIpH/ALSTbw9YZiPjAAAAAElFTkSuQmCC
在阿尔忒弥斯的帮助下抢走海伦,引发特洛伊战争的男人。
逾越节是为了纪念耶和华[[降临十灾|埃及十灾]]的最后一灾越过以色列人的房屋,杀死埃及一切头胎生物的同时还杀死埃及人的长子,用以催促并警告一直心硬的法老,释放为奴的以色列人离开埃及,还他们自由的故事。
逾越节包含了:
* ''无酵节Matzah(尼散月15日)'',为了纪念逃离埃及时来不及让面发起来,需要吃无酵饼。
* ''初熟节(尼散月16日)''
!! 逾越节 First Passover
逾越节在[[尼散月|希伯来历和格里历对应 Hebrew calendar Vs Gregorian calendar]](3月~4月)15日的晚上进行。逾越节在以色列持续7天,以色列之外地区则持续8天。
!! 补逾越节 Second Passover
[[以珥月|希伯来历和格里历对应 Hebrew calendar Vs Gregorian calendar]]十四日(宗教历的二月,即西历4月至5月期间)是补过逾越节。是特别为那些在上月因不洁或远行不能参加逾越节的人而设的。
!! 用餐步骤
# 点燃火烛,示意晚餐开始
# 祝祷,喝第一杯酒
# 洗手
# 头盘(青菜浸入盐水,象征在埃及被奴役的辛酸,昔日用חרוסת)
# 掰开一块无酵饼,把其中一半藏起
# 打开覆盖饼的布,邀请穷人进餐
# 重述逾越故事
# 第二杯酒,象征救赎
# 洗手
# 祝福无酵饼,然后夹苦菜食用
# 仪式暂停,享用事前烹调好的晚餐
# 寻找程序五被藏起来的饼
# 饭后祷告
# 第三杯酒
# 以利亚之杯(邀请弥赛亚来临)
# 赞美诗
# 歌曲
# 第四杯酒,并祝福:“明年在耶路撒冷过逾越节!”
!! 晚餐盘
# 象征奴役的苦菜
# 象征砖土的חרוסת,一种由果仁、酒、苹果和肉桂煮成的酱
# 象征泪水的青菜
# 象征在节日牺牲的羊骨(不食)
# 象征对不能在圣殿举行节日哀悼的蛋(不食)
盐水和饼分开盛装。
one of the wives of [[Elkanah|Elkanah]]
Peninnah不如以利加拿的另一位妻子[[哈拿 Hannah|Hannah]]那么受宠。尽管在哈拿没有孩子的时候,Peninnah给他生了孩子,但Peninnah还''嘲笑''不育的哈拿,给这个家庭带来了悲伤和不和谐。
3000女儿之一
also spelled as ''Persa'', ''Persea'' or ''Perseis'' (Περσηίς).
是[[Helios|☀️太阳神赫利俄斯 Helios]]众多妻子之一。
|父母 |[[Crius|克利俄斯 Crius]] and [[Eurybia|欧律比亚 Eurybia]] |
[img[img/MapOfAncientGreece.jpg]]
! 色萨利 [[Pherae|Pherae]] 的创始人
是腓尼基(Phoenicia )的同名词,他和他的兄弟们一起受命寻找他们被绑架的妹妹欧罗巴。
son of [[拿鹤 Nahor, son of Terah]] and [[密迦 Milcah]]
女儿
母亲是[[Thrassa|Thrassa]]
为了保持处女状态,Polyphonte逃到山上成为阿尔忒弥斯的伴侣。这激起了爱与生育女神阿佛洛狄忒的怒火,她认为波吕丰特的决定是对个人的侮辱。为了惩罚Polyphonte未能履行她的女性职责,阿佛洛狄忒使她发疯并让她对熊产生欲望。
回到家后,Polyphonte 生下了两个人形熊状的儿子,Agrius 和 Oreius(她与熊结合的结果)。阿格里乌斯和奥瑞乌斯成长为拥有巨大力量的巨人。或许与他们的野蛮赞助相符,熊双胞胎既不尊重人也不尊重神。事实上,他们是在路上袭击陌生人的食人者。
宙斯鄙视阿格里乌斯和奥瑞乌斯,于是派赫尔墨斯在他认为合适的时候惩罚他们。要不是他们的曾祖父阿瑞斯出手,兄弟俩差点被复仇之神斩断手脚。尽管他们的本性很可怕,但阿瑞斯说服赫尔墨斯减刑。赫尔墨斯和阿瑞斯一起将阿格里乌斯、奥瑞乌斯、波利丰特和家族的女仆变成了鸟。 Polyphonte 变成了猫头鹰般的猫头鹰,当晚不吃不喝不哭,预示着人类的战争和叛乱。 至于她的儿子,Oreius 变成了一只“名叫拉戈斯的鸟”(假设翻译)作为“鹰猫头鹰”)被视为不祥之兆,阿格里乌斯变成了一只秃鹫,一只被鄙视的吃腐肉的鸟。阿瑞斯和赫尔墨斯出于小小的怜悯,听从了女仆的祈祷,她没有参与熊双胞胎的行动,决定不把她变成一只为人类报祸的鸟。取而代之的是,她变成了一只啄木鸟(如果在狩猎前看到,据说这是好运的标志)。
.tc-drop-down dd
{
max-width:300px;
word-break: break;
white-space:normal;
padding :0;
padding-left: 5px;}
.tc-drop-down dl
{
padding: 5px;
margin: 5px;
}
tc-drop-down a {display:inline;padding:0}
''Priam'' (''/ˈpraɪ.əm/''; Greek: Πρίαμος, pronounced [prí.amos])
the ''legendary king of Troy'' during the Trojan War
iVBORw0KGgoAAAANSUhEUgAAAgAAAAIABAMAAAAGVsnJAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAhUExURUdwTE9PT3Nzc4+Pj66urgAAAP///76+vd7e3ikpKZqamp0FzfsAAAAFdFJOUwD9+oZAFTFAkAAAIABJREFUeNrsXM9T28gSXgKnPS1sBCGnxVmZwGk3vBzeLW+3cshR4mlhfCNVsQU3qEIyum2qsAynNS8CzGnjKuygv/Lpx/zWjKwE2cjs9CWFEY6mp/vrr78e6bvvlClTpkyZMmXKlClTpkyZMmXKlClTpkyZMmXKlClTpkyZMmXKlClTpkyZMmXKlClTpkyZMmXKlClTpkyZMmXKyrAtZP+4lc9vbb1a7PcBsAILABD0+4u1f4wfFrZqq4ElMtBffLH15rFH/VrfyrX+0tYvjzfyX61aBQwsbT3SzQ+sotZ78djCYKHY5tMueFRosPWVy4/NeDxR8C3LTwDxcUTB7xvWN5sx+3A4v2bdyy5mPA9eSZA/on7hyO0m5rteWFvsS64EL2Z5+0XRD3qbo24za7YfilnS7AbBb4GA5Iw6zRzzQ4HPwM+zWfp/zRb3/NXDSDjKFo0fZzH8NX4fn7ebBe18Y/bT4Hcu/MFmp/kVlnFBb8Y88Ou9lp+gAecC8K/ZXT94Llt+XAVtaRSszioULvybzV9HVPKiyt8nSkgtdAVO+hjMJBQuMMEL1vnFuwOxJNTPlkj7bgY9sKAz28+uyfZyVYGIJHEc6TyYNQ8saPLtb30er4kAjizYG7PlAWb9ppNf3WU+YBnDUTBDHmDW/5yJ/a8SBZa+0J6jv/R/M5P/4CW1Bu+rNRG6djBpUOkYoG7UcOSkplgirFNYcEj94ml110/Vf5Pcvf05+DYxpPdFTAmeztb6z7Vv14NuOqJ6WFVO+B9R9bc/30sRAyQIWpQHKtkZ/UZtXCnbD0sJ9mWLfJdRQbl4nmzQihC7vtV6jsADZpUJAF5/a8MqxdYFHvixuuu/EtP4+xjGQsoDP1e1ANyUGf4ZUCVIWC0gJAWggdZ/Z5VpmFYRD5hvqgiAqP7bG1a5BobQAwdB9boCAgAAbpStW9akPPAef/RT9QBgmLv+laAUD/xZNTbwBN8j6v9uxUu4/LMcVnhSrSRYCPgCKFvnZfN+hRE32Hql2qLXGADRaMuSOuC4HBywtQrVQlwBjU6s+9RyjsEtUwB2Pw/gUmBWKAHqvOIL+NsfNu171wKHy7Kn1UkAbvVLbpcXwaMbD8piRCcVSYK5cYoe1RDFJPHe3TGiWhgGHjYJFiQLWhGp2kMav+/RGUEYQD//8JAOeDd+/VgUuWqW4wDrGQsDD0mHnuTuUZOWxUA6JNBKcADim8iZnx7OAeLlGNk5bxfOfu0y1m+BDtMYgr8roIIKNkhkB+U0RpByncEftx+cAjDWIPMQ1+2y0XBWUmt4xSbBT5VCwCF9FMB127QLcM70NkPJKYFiVmcC6mG0EUkAmOxhiMiIB/YQSrTvOzOAMHDykHzwtYzwo3HwoLbZ7kZp4PJyFpn3fCx2alyaaIgOPUQp/F5ytx3mLICx7rujUZsZkjS6BBkKKQQ3opMFzxgPfqpMAJj80Z6LtjfyRu2ut4anvnRenGTwrasLFnu+KmmLoPYCph4CEg5k7cahzizBbLsu0xSBUewBeAjE5pHEae4LM/4oEIINwsHGtB2gy+GZVwRNnwe7C3eEY2CPW6uQLOzES9WESYBC6O9qBEC0gdmozp4OufAiF3REISB2QFJbbU1UCdDfb1cjACIMLKT63JAkOOW/YE8KLbqoEiByNVVhYF5anzP7JBt4RsXBEdHjZ2JNud4UxMCQZlfbFSgBUdmTs13QW1wkFd2IkgCGAIdugeSLuUMSBAffTz8Evpe3KVRKL0U06DOB/iRjfXxe6ArjYDGNYFkcLtQXTDEE3kpvs3HGjTHgjJyQPx+RN9eDFLGYVm6KeEOKg++nLQ8uyG+zETACtu0eZSQSNONfQTBoe4Vgo94UxMs1/dnUuMC7orpV1AsFbIdMJXIjKgTNr5glN4SSgkN9Ni06uBAUDFjbc0+o1g1bGrLAdfGxaPu2gAcckaawQxPiKXUEc0XjNeoEaRWT2C2shLhPzDJi4WRNdOlw+iEgytje0qLGF62WmwaAkVHG0iS4cUdZqWA8DHIh0KBDYCq6gIAFX8RoZlNnAq9hAOjCAIBrMKkIKFQM0dWCEICFwHgYErSeORXqQDVIhABYHTYYBxQIgWt46b4gMPSpqYPZGviSedCrF5AMOMpoZMiOUxRsx4+NdYqigCkGjDoVAtsPUAPZCO+2EDRHGXBM71umEAAXWqqbFuBDHSEKmHRHMHEYRNPApY2MCk5uLqGtHoSAlMCc1xZr9MNA8SYao8hcpA/tFeZC/HylTqXQpynVwAbKOsA9FJg0bAgCArRtcEZMPUOV7LcxQkEQXzPeAbvMX3MhEEwHBnUMvfvknrrxGvz4gbfuEYI9hIEG08ZecWTouetFsJGiYXEQ4DWHIZUXE4bBeXInewjvu2gbo6B3b1FWRBjooRTRs4jBAJmRhMD4QkgKipblAvAbt6cCgXXkgJ0E7Fy/DX0QEhbguYfwijPBGRdW9riJQ6AACuKp06ng8+NpsEGNEL391BO+i22UBkB6O9Hnh2mOtISjQxbz1tuZReVNXfiWKCk7rSnA4BzFym8TBazl0nYIdc3IXFgFM2fjhiIkN92mQA6XoyB/0MAhQWVMngWmIJd6HlbyKAuif9JHu3aQA5KkvrQl02O2AXzZKeIAUnNPBZ55P3FpDDbCuxh0l303HgGGkQciBwwCSr+MHJDs0mVy4VqW0rM50HCKOAA0JXUghccURv878QxwcAw6cM1Wv9dD024oX8IqaP2RsqGPWUof0DooaBdyQEfWP18Tn04QBnUSh8kOgBNpy+LDTsBqwMTXOYGXKg4gRokvRRxgOZymwH4p9MoPEyYByzkHwtEJIRthIEa+8ywMIiC7Pk389qG4MBjZB1GBOJ0sFXhHwrA1plK1EAbiNsbXMliOmvjOfhJXBNeetYJxdTAzgDKp6vhmoiRgVwDCGZx2IQ8kAeof4wPEgDkdYKTwB0hQAfn3X7KSQqa86pOkAvNUGga5CZBkwAmLCy58ikyn9/F8tR8/GZpkv6NTm7k/lghkjhzuEK1kQsdn35JQ2xtznN1HRZCAtw9BYE3QQqekMqCiSOaAnaYMBSl2MikqoI2FQPRQS7x+6rGJ5EkP2BynDw45AgesWAVSgHLAByE+3E4uB56MhUC0/qQ9RAHQ7y1BeSD9pHHCrgO3MRcULZSCYCNHRDQJNhqTy4Ad+XlH/EBLRI3bMOMNpAK1kANMLyOj5I5FbgKJAw7EJCGYWA5opBDD3QVLoeuhcS/odUj8u176KXmPQOSTAA6E7vgQaOUpAY2WJj6FaIsR8nhSOfCEEC5YguFDEfD211ONN1m+D4s+eY9ECwlk0YWJc5jzpEEu+6XzgZaYA+EZgonlwFvi5FtW3UpPrhB9L9p/jSOutk94wVVSEKkj5b43hvwdCFNAoCBR4fnLhDLAwbF3wwmhFhghbQR1SNf0sWnEA2L9647eS9s9GTcOORM64FZcI04nkwPzJAL3M+MOlBNhvPu1gO9cUtEQ3+8oZckXmDPFv7nOVUI1kQNOxc3iwWS40DvCRHXuTDgtU/eDzHHeLtQLiTIc/bCRiOTd1DlJET/O0wD2BDxAxBWWSQ6U3Q/oeE9bmXGPt7Yq69xsn1HL0MGAKE3iP+mF+DfO+1wlVBM4YF9CE04n0RNTGXCGhYkE8tv20Vq/LxEvbCyXU81gEgJufIiahAbImQ1eUovdzXcA2aGye+I5kgEa3AgbY774tdBmfIkHr/GZF0pEdZITUhs5Y4Fdquj/McYB+A7L1oVeY/8ewKjspkL4yHO9cG0xEKJ3EiF+1227d9zpYbR6308p02XO4zQNCvKXm/kDdZPkQKkjolQNxd9uQL6XbLAXRg5gQMBICkE9Zj++H9bWFjP+uYGjFB8VB6cpP2JrUKutj3EA2aNyC+ETUte1dNhBTwPCGr1CsN4ZpLcSbf+RJj8rHIvpMDTMPJEJUMTXGeeAa8wRjfJp4BBngE2vf+QNNvBx2M2o+zn/jGYm8lfp9BIERK8ZTCI7XwnVmRMCUgeYpCq/KZsGAlwD0nGIFw7C1AXwaAxYSQXR5AXpRpNVxTLWr+HEASt5KlPqgFN2LiBVZRxMzEoshAukBscbYcYJMOiTndQYOeB8kFxkM6Uv1y42cx+rHeLlmuMdcInzZbvsIlhHiXpF2p3InkPxB8thYRjv5Y7vnxRcv1EbdPLG43U8+txtjimDdM0wyi6CHSxeMYKfdXNLT/5tL6wl8eK6QdEAGAycvFFDHaPg5XgHAHybJXaEGnatnrb+d1KxynbDMPntrls0ACxzc3M41gFJhjAdCBYFgcZfnVaUv8rlwSS5ukfSswt2xAzCxEs7hRHAApvhcGwKJP5hjhyekv9a43tirVQQmMMr3EubGV0WAHZSHFLCf2QVtkIOOOYP3R4TonTK04bkd6BUCCDfaxxKgSpmhiMoGKGIBggKetI37NyEw7wqUEcbvis4cp0dI+CdKg0ENBxZKSPWJdDjJ63PEafm4mcojC/+QPx+ZdMd5vGAIUr5OuMAXeKAa5yrf5UNASnJNiQDi5Qee+iYAD7+wwxIfNFLho34ATKbQQVN5AD21LFGYv44Qwb1EkFgDjMs2tEXtYCVYtLe95Bfn0nNxZO3q9j/5+3qmdtGkmjt3iXOLFdBH47OqgJlK3Li/JINLgR2aQrIyCoLEDOpigSEzAFB2pm9B1J0tqoCIfNXHjBf6BmgBxCBPSW2KUskenpev+5+0/NYMYFTGGAqZcCTiijgk9pRK39rVFXULnoEgQ8iJTPlbP+n9BmjSOQ2kvhHAkNSCKyMmiYGuJHXvCIR/iTlwk0d+kmPICAgwFflfvcAeZdFdaB69scN5RPytFWgjk7IFJngXEIEFvUU3T0+j6SEq5f9QcCxrEnYqDhENkD1+a0gVKqdbBaWPG+9aKAZmAewDGixkXcALq62+gWBX8U+XFS0OlNh82UQ1VA/KwtCE2mhwusmcgN4MpBPKt2gmdJSXuiVRIve0oHfhFHLNXL5qU+2vOvcAaJK8uu8yoKajEDMRSxnrWUqsz+vlNevL2vOXGjKqJPeagKmCHNA2ZqHO3hi77hAALHU37NwtSrOQSyDZVjHmk5AX5C88KSTSjP6o5680XRUS8DqAwQSDgFjsLMjPgWDfowBUERYoTRDRkpxnO3Ztqggv1ai+Vw3YmldP5RJk2uWIPDfvjBQhoANrYeWOelTKQoDVwLkbhFGsArGrtBZRW9OJU+24muNRKB+MpXfJCdc9ISCvwggNpTNHZRikSzgCAAb+BIxgNdFqFm9q526ED9/KpdwWKcnGuSqJqejYIQnZlwWCQepLaFW7gK7bqx49CvPaKMPvm4uhwDY8HqiQibPLyYKeYvoQZeUGSBR6/ZeUfc2eB6E369YsEVd6cCt/7mFtsQilqZze4S2RAbVd7TYFBCyEnypbWWK1juJ/KBgpi2dfKz/sZm2xBLzpfmjHwysq1me0D0wph5wrzrAKgs427O0lw2mreXBtbkgDpyLXnQCJQYmimTLplPCPOoBpgg//CZBIRSxeCt5H6ye68soBjacMRNUyOkNAwnqzuGog4zsAZ/+NZFVA6u7swTmTasgi5AbVxsOTNrXz4+CkLi97wMDeYfekjR9G7IHSF//IpI6d1K+SzrJ+30UHjZl8uqgn7J6SwgFBs44xTQhDMb0bS4+w8WSBh6d+ivSRo91YWD4XBrUeNC2LxQsMdDgpLSU7WUEBIp/nszgDoDP79I++pMGBbVwhrCAxuMlg564oMBAv1yNzyAOzOnnpyXgQfVsN1EPRkF4cBhAWEBVKo2hYMeM+AXEQIcNvzLKpDhkBjBKvJZ250UARuddH0Bpjg/5IfaZvR4y4g8ch27opg/haRVbGGCUgMKFqoPIGm6cHjelNTgPSlqg4L+6B4FjjoF8PqhR6t3ou9ilhM1T2GIOgA1XLHvPD4J835yaWhQ0u4eBhG99k3G/IAYIRAxATFHm7RCdSM7YeOG6r9fJ6gxg+9p20qxzGPiHxAPJLMwQnFrM/w0+/rEaAn4E8lTdA8IAOqWavU2MHq0Q6sLfOwcBS7ipxR8oFRAHMG+nLKeVNQNgQ15jNYWONTqXdtRLGHgh/apyEORYxMF4LJP2sZwttXl+TUgbNRkAF1javYSBD4pUldRBYoFb+SMCmYISnigCtrlofvLcTBCM00VHeIqN2ykbMCU4YSlgKLZt4QGp7K6miE0n7QBAqxCMG7fNAHWBeR9hwJB+E2c24v1P8hVOZM6W0KORzAHgBlhF50dH229Hry6zMG6X2rrN7OkK5RF9hIF/yr4EqgBf+CJP5bQtX0zXKENAjFw8vf12GbYo8dcWxH0p2lqo/dYcXX7vGAWtSk8k5FZ/GwRf5E+bv54lQxgy6QjwaqRzQJl48QwaOB3I9DHGfnzE/1eHMPAr90PYFiV7YMqMATp/A/ooLhsiCRzARy5f/NGQ2tUGwTMl4xhgtQGRDTgdo6DIBGAVwB/CWmi5XOkwiwRWhE2XD57qw0BdEBy7Cn18wJiUyGE7hAERBQsn45fl0SoAM0CqJO6GS1tkVukAmssXOcp77SHAWCv00UW3EK9idDXAgEXdAT8vKHJABzoAneY0zKhA1i0d4GdzuWfVmgePxYsp2CcT9MfTbnFQREGD/OmL3U1fsaEWkgSBqc3mBlwIB4iayhboTFmnlv/ECn0kR5PQUsKsm1gsYQKV4skdIT8kz1aYdmSqyzW+oLvC4Y2z66XZWPGctU+F/dIqkwrhqeuodEuHpChYlliEAZzKct0xQYTL9QP+bXPJ9xn14DGIDInaA0HjYDcD8CjoCuQhpcC0FrEzFhc2fAcEZmPlbvoMXcAMuEVa0YTVeNCkU3foFxgFNyG3NEHBWV3a4nOdRBZEQY0DfDt/gwna2mGgCQwwBnbyMAzxOjGhFzAKXhRLSj7sqDBAWsdZPDY9yOG1MwkBSIt4mqhhcPyMnhgEBl6V+YhmE3FXIvCBL1JKFpX3wUgYmNVRmiUTirCEIc8AKgpBqYAx0iXDTm3aaFfu7bpCs4l5VyIgaIBZzPoisG6wx1M8wCo74sxHyA6A50VFi9hQXvLbB4GJRI9ZNQyPJANumfddaUAy5JPAU06G05rt6vGDsHxyPjxZk/8X7/Ho6DJeqNlu0joXHst+8aV0o4WWCLzsYoCYBSraBFhwA0g+91aMjwrSki1LO+CBy2OtO9XJ09ZR8EZGBl+IeOvTqY/cMocyIQlKaQ38E4G4LIjJexuS8JHI5RPBFPIdcA/2iJg87qgwt2itDLlRYgNB1BHaXBl1ZEKCB01Z9SOiUx8JFSQP+hS92X57HQNNzC1VClIDgFTp+BYPdOPWTbEb9eVihOUI7ZaLRL6LAcoBum4WzbkBwnlS8VJyXsQsswU4Hcb6qaE602cZ4Eq90NVFf4dYPLtDOUS4Ub71Mzr10YmCMKyIf/xMqOJYEPBKCHC027x1RfimGhz8u5NrHRPyOzAhQQTZJhUGyJ/vq1zRYKrIACbM15WTo45ZD/RG+2QYqxT7KJXqUBP6D/fSGa+EZAwEg+VnRRfswzkhLAouFXh/HU+Vhq6l6wzNkT7yoL0BOjIhiQiyNggPg7wWehKu+KiUSByoZZeHBEZFIn4/dBZVtnvTlglPcNHQ8G9gQoIIGqIcKogQX1yHzUEouuBhKkln1AlZ5LTQ49tx1c0nbQ0wRUul9SNYxOodZgCTf0T2yzdZROzp5hhowD4B+/opa4e8qLbTPakivdfWAB6umUCjzOxwkYTJ361UxFyzakdQvsl3/vzvoCyg6B/e1VZAJzA0XOFkuPZqkgTVDCRYlFkczoU5E+YLNMoCPj4APpt1EYZhAA8DMg8ogsCWv8wZCzx2IcJALRlGlQRWaw8QMfwwLpywUCpORgXBmAJfIOO2s91KC0CZ8HQ2/DHP4zT91utEtE6EARL+LIu2jdEUVU0kGBUkH/nPgxuDsOi8odWOYbZsKHRRA3xNT0vCPrQ9g5wXA4oOO9WGAbwnPGobBu1OXFhhwsQACQkCoX4AINsCyycpbx8U+tlX5wkXXDtpMZh7h5PhGO0J1ziHX0s6BRc+3AAuWJ+3AaE/btg0G4KC4KoSvZaPZ9vtJcuk3XGRGB/j6xfjWpI1bgAr/lxTFTzcACPQgshoH2QTBkYbDwBf5DNtZD8eeE7uUFc4GY5xgayNayzWkjV5VdA+2AAgFXCWt+zx0Puyf5iQCaoWeAv9OHeIs72pCwOVcL8qnXGHiscHkjV5MmAdnAw+lFSdNcKsMMQg0KZVghoDkMSdW+CGefF9Tp0sXCZVMcBT/VQ9mV3IBuD1POvgZBDkQhv63JslNhzE2XlQRK34aMGT6NGxG4ZjN/s9d/Rxm2zwtDSAg8pt11JE5Dz2oHTwhZILnUlIUPO14euwqVXHLUlJlBmg8Kxpcc5kjpJhtSAyPQaEYYCp5634i5INkT72v7sYQPJ4O/yJN/vHgjGFelkgDWRZnlMdozxGhfrFDmDFqJ3UsFM6+EJJBlksvNWIGj+JpCHQy+MpnQ+ye176NJtlwgacMeC0E5sedzHAb3wTQQPYf+lEjbMyQ9QqYxmTKS6mGqEPoCzy1JH4wq7VoQsBYe8PLQeo422g2M1x1P74DMqIrnGd84OooyeWfkIs8Btbwsp1K711dwPM8c7Ndnt0BObpumAdgpowAPIWq5w4bzqoTEpJ+pIraZ3dFskg7S0cXBD4oJQD1Oc/Ozo6f/PmCG5ZU9ISosJYAeFBdK8JA7HMdI7lSUOtxLaCxx1sAFSA42zPXr0+z79MgTexcMSNzgCTcvGKOvoADQNzOc7t5H0ybyO3/hsNkGy/HRXP/8infeyu5/A0FY6Cn+ewl8Jlb2kDEZgNY3mjD9oI7kUqc0hJKNUagOSd28vs8ZLxgrk/F8to6UBgLp2wT6/QmogUBw1HWeZ1m5N3oiT08sCSYNkaLeo3NV/f9497+o0YGKCaDyJwEAW3Lnp0bCSlu5bylFdtDt24XWpiigHs+jc52e/pB4s9YICTdkdF/BwEbPQssCVhoD3FzYMeOOhkAEMuCbr1bubsHx/pFvDCciF+tDwrkf+3MzyQxTDZsRc4TRj/PwwwQtimG+3Jc++WwABO0G4PFBdSxagX72AQsBNcQbMYamQ2xDp/dDfABquD7SPiG4NlABj9hZ4Ngzkrd3OUDK91Z6XtNjOV7C5lYUMuCp9iZYBNRvKDtaScarkHivHrczSSuS0NgJ+8tLuIRQ1JH5LjGvYmEQEBdxnE5Spa7U7M+eXJ4olWKKc1QB2PzlbLv/r1gI1SCnXelfud/RGCVbxodgEv/368WoY4ku/aGaAKAWSc1bRjY0DxgAelHXQh7HERcQkxQGO30QX888bezpUG510NC6CazC9gAXvwgAd5VrwbJc6OHoY4YcqgZfBVro3rYfD+f7RdvW/bSBbPZq/ZLjZAJ0q1CSA7ceXm+jQprjsKp1WGXQIcxbiTAGtodhsgIu1qHYCW7W4NyLT1Vx45Mxy++WZInoArLhvHmt+87/eb9661r4H1t3xqAWeul5yqN+kPKgGCDhwvy19zOqLKQaPhR9g0JoRxmwicymXfM1tleG5xERd64cDnA0nAKS/0wZ5LfD6rWQk3rFnsC8MTkePh6Bi1mApybVaQA7PoMOb62QASACNBXGQ5UPHxQ31nM8zSgTuBFWQXgVMW6a4zWzg3MZ9ypWgHKrLM485jXrFYeksAAGBSxnZg5xd+4rSUACfs64Ex7zm1AmtzZbQazJuSfTvZ2hjQr0yWHikaEKwZg+ITCzK3w0oASpO4YeJs8I5fWWn91FJpwN5OmocmBHGEU7ZwKDOl3TcmXx/IykHqbLipFOChJYB0/bkVeIUfudUqJQDMDGeFUv+CisDK+GCcsIviEoA0xmmpCAvrowGZBXUga84hp2auWYg1pgB0DoSkdJg2vJ54q7xZpl3e9O59Dngf1BWNK6u4w8aRARUA6XtU8Utub6/2Rg7C7JkhUxwDa0G6dvzxCgNgO1A9gBb66megh2mz1aD0D3w+bvk72d/4NM9JRrAyDYKqhvLYmSaCGfyirwZ8Af4iIkzNoK61eAQAKsBdAZiCVKPaj7WuETgAAExwApYMoqdaeL9M0VFisAL/JV3GP6fuz6HWD6zkP12TW19wG3hJwpZJXS3rDAA0TnE1Kpg9hb2Omuzfz/CuGR+HEi68f1bE+WJlmn+wScctAJjogkFFAKgGkIjsuk608+qP2U+96AEAr9XcVEqbZQm1ziD5PcJw42DNoAoqZuydYY7Yd1JMmrb5cCtwrmGQeTAwpiSug7rUQgDYdgdgKwPgp9VyNLpCZBamjWsO8O6+WZ9RLBoxXZAxIx1mocHMlv98bYHRocA84ShRBu8DACCoDVgXANTW2BHZD0fCvkmZzDZm6WVyvwcS4by5lctRoZ2k+LU9AA25KKThBnpUfeMq5NtLVxCA+pJ+HwQAuiaQlABLIVwDatrxDgCQnAMfHhXVS5ufmJxjLQukb/b2wITireAVqefjYUAVFM3yvgCI7fEN2S3HSdTAht3ueVORTsi1MdJ5wuhnAECGaGohxktsuzcEgC86ORkGAKIEtAZ6E0aiHIMouX5NMBHmvrRq6JvYV7rzf5NcBQUAMdRjoYTXGQDOMWH0zqJerhcYSfrV7gFvaia2d9ABuOVZd34a/KQCALg3AP8SSFIsxEevMfWDxBNpWwVlhLf6rGe5dBYBDQLflMCQSgB/xZv0BYCTpM4ECi7ap42Qd8a3Ws3jct9WEnz/cwhIWrBU62OpCACUgE4sMZEnqDx8m61N11hNGWSk8AdbUTDZ7XZ5+3DgUWYdOgCAEtCJJyi+mlOaw+TBmHac4VEV+3w2Eds1HFrUDoIfdUChbqsiXLM0hgAIlPbuVNlPddSGRvIvJf74G2U/7h43AAAV0klEQVSLiIELf2dunAoslrQnbaXgar8UmvtRrq8d1tGvRgK6k6U5wwDtybvigpgG6Oh1LE6KmDUjty0DAUGKs5n2/fyhUQFoJfq9F6DSrACA6LRUGubA4aY0b7Y98hPaA1OU9gbgugFgUtdDhgGA95am6vroDdb7dRTRMsh5Kx0I7x/D/4sELPoCwN8M0ZT6h7Jj3hdiXCACDxmdJT5uowM2hkvrj+IF5kIXY/rvzq/GmmGCk72RbH1ewkz3AgpkSv5LVT2y+4GIporbvgDMNBIAG0bdns3VZWGauJRW8DaXRSDW6sCszAFry4BsLeLLnARUaW8ASNCd0mxwRSVAeLve7eEkLwnlzAgoO0NfAiWImqzIj0LW9J57Fh2gQ0XQ42La/zMjAJAi6w1TAQhAt6ezvCBAVdR/P0Jq2K/SdX3yQ2ygduQZ/UBdYDaEQf7u7/ZhIhG0ORvkxmoDZz1TAZAP02+KRkQFcjHoi5X2JfKqDGJeTxY5NtEjPOedRk/tEbghKkB06dWgABw2Sd8VMYJPkgislfLUlgikgyDjOj8t9I/bnv/2qgHgB7UBEIAPnQD4WKeDrLCGSNVnJ4e9Sgf/LTWddgCcRzsITbmGRgHisDGCd0wFtj1zIZYP/wEqmFdV7fvddqpVgqa7vfGI5bAyhC5aNkQu2nvBkGbAQQjA6JMLgXSQn62SgHenEh2LVX0bXIJz04pAeQyYy7G1rR0ecPJ9/XMiAH3G6AhThSuD/Wq9kD0Bj/x5byhwAOC+WPQzhSNWB606EqhmYMZez0gYJAPiPtRY0l//KMuyS3ilxRbZGXKRWwB8Fw1Y6Z5Rwz8JQWdsCACQTGSexaG81wJJa9U3S0cKQE9VtcWNhwpcRHCFMEadwCwEfZH603W8ei6GgjUfZO2q5wWxZ08BzniJK0uT+7fmQ7VxF7UJoKnAdQgMYr9UAExRGcsJgN1BI3xu14FcLPXnFn7Y+vu0pb2kl34QAoPYLxJWIyHWJU/XYRhZ45hHnB/YfIDU6vAstIDV17b2kp75QVcQOukDwLVM0XpJWALWbW8bfD6xmgCx2TW20MNidwclgGdeDwnAb0ogwDo/scM/TXCaW7pCX8EQNpOr408q5i1tIM3/EKfhL3oHgvr1AoTaUmXBVhEof7+lK/Tdd5Jk+d/AWUsbSIPfSRiq2XDnucL6QKAeG22zg5sUj8xmcMv6JVGG47gMIs7MXjDEcUsbmBa4KUCJyWDn0dr/0AYCpR9IKyWwRXN+mi7NocBx82AGK9u5pa6iZnm7yQZWXvAT/5eHAKAJBDyNCFh1oMB4ZwSgLhXs3uzt7e3vH28t3DAc561sIPP81yEIiupP9wXkXl0S2SrNr9i+93UWp85nY7ZS4Kp5U5O3soGsFXTI0Rj3rQhyP3igUpURGZU0tsZCpZ643gstnJlAdS6vlQ1kjYAHqA994yB10xZMAWP70seXMQkX7O9mc/utNrQXN4OI2X0eBsB/+6QzAPKuNbESZI3RJs43QykutvZqCC1t5e5yKNd6FGoA6LFm57neD1Irt7YHqc5nY2WwljuKAXWG0wIAzOnxCj2ix/Ztcd+iwIUK4pU9VXc+GysStwZIaa3FC2DQGa30IRnCCzI/KOSDr+vvU7ii9ML+fjgqxm5iYHmV7tbxK8AL1AHQZ+emp+SDQV37mcWO7dd32Ppwbr50VHh0ZC+9Eqz4kZs4aDmEF9S5ARQva0dwKquFkhBYZ6mM0X6RZZd/58ZaADnJpasjcEubIoSi3MRBiyG8IGsNfBLcwLuM/dsFJ6qNzFbAbAcvX2dNh1QfBZWaneKFizcUpTtiAi54TFABcD6EF2SV8UBwA7OMvfPY8Ab8lckKpBYRiI2cSR8+LrdPrwzWzSPsyqdumrEEQ3hBrRvws5RefcAB2Lc4gg5bZwUfYH1Vw5n0c5ZSoRXwif29IMsHpyIjsGAiMOHp4H5uiQVajBGY62LbOlvMnUEgtZXUqd7U/3c7iBcE6dB3EOTGlN3Hf8db0y35cTsEzrTHSsHAen3VASLlNWFRJORCvTZPN27gMyh6s2vhdyPvj4L1Qxy3UIIvmj5PlppqBYqtmIPB5jdKJPyiFwAf62xgLtRDhK+F3rw1uugibmMGhE4Rp3sXWCxt2hRgCVGZCwCc9ALgFx6Y5CDEE3dHoPu3W3OPpJUSbNUwiJzflgjMgKkkfw8draNkdCgHgh+e9XcDohU8SvE3EQA2SkirBGkbBL6qB6uuMfHs8Z/gK9FD7V5TCECv1eO1GxCt4KbUAUEX7+8fzd+zaLOC/rNaDoxw8SZ3ZADcAwgptBgI9nMCrD0mWUHJOfm73WprLQw4EZhrvKDVADYWMMUJMfkbcTzTAAVB4AZEKziRwpMSgAdLbeAudiMQ6bxgsXQSSCqqZUKuG2z8iTCsCb/oCcBvHO4cUiIkAFZzR2nEhUAueUE2cdTZPQ8TJo6HwngqIDwnPQF4zr/UGSx4biUJsFVImRmwIpCr1aA5LjynC6wtYCAMZ8INfR/1PD+zgodCRoybhTJEJUoJsLdJcOpCwFPv1lYQnoHbTsQEUgqg+9pAFgxfC6+3y+huK5q5BzuTgw6LsCHgqamQDYCVlATNhPPH8flAgTC3goEgppIE+LiUADuT4441wTK3ChyE7p4IPe/lm9HVPqlKwG57hXSSD2YDmRVEQrgmGUEiAY7n0HdMC0y9Al09MDYBQEKey1FTjhIFQLiek94APOcyd9EAkHmCBFQT4Rx9/NexTQhS1QlU4q09/XG13UtgKQEBqHQCvhfze5+fWcEDaASkQIgu43Sxme7YQi4dBNFSXw7ShdZr9h/Be/WZEAMJ4tnfBrJYcAaiFSSVan0KgIvM8yPmS7kyuUt4oTmM9Pi1Ef7muclI0hpiAYW3Mn8NAMBHfjFjDsBSA4CT1UoRSBQIIhi3XIM/XRoTIH7g90oVXZTO3wcAQDECfipWKksb8NiK1eo/NpvZcFxjkAnfmd9mWij1UKR5iVtCcCAqAPwp9GEAAH6VjUAgOgGiEu1Yreg1jjEEIY6Jc0g0NlBTEH6nTSOeoNnEqdBHmDwb4uNx3cxZTwhPdQC0YABPf4gIsM+Z2hSaJ0o1YJNl2Vp1o5GoAMIP/WcQAP7JjcC2ZgFqATDtuZC9mHx86O95HIgTmY6LdkVR7Eobkq2NM3rlIuqLQQD4hRuBr6wk5ik9sHX7qRBXR83JqR6cq12xuW6Vx+0xsaEFLnQYzAu1in4yCAC/8q82p93BhdoHXhtJv7qD7Oq4kPxvqWZ5phdF6JhC96gqAVEAiXbkP3s2nBEI6pwlUDgbHIDv05af2+OCYJDi9H/tXc1T20gWV8ac9oRJHGJOA1njJScPhENuztxylBMPJd9C1dgablCFZXSbrUImezODBsxpQxUR8FeuvqXufq8lG0nIbP8OcwlT0E/v4/e+usfxMYlgwsP9jcq06qBO/Lo1N5Ky9/OCXYTPGQlgN/zbHCtfbXQxAQy6qaFMNh4cAWhEd7gXbBQqKw9R2hAyHverWkxWORj6D5/TtrmckQBehNq5DzbDm+Gf1OjOBGZjwnMB9yt3BsR4AgkwdGjkGcCIjputjARQiXouWP9nmH7BJXHia3CH7RnT6ULo/r0kkGaOWbkA3wl0ULYXCUA1H3V+mXvXRI2uGREEEOiifMlMALshSQMzntijMsePEgC+badG/U/2pzRtTYMmCZYzE8CLkA2Dbi72uNrBY86P7tnYxx+Nj+p0uhD6SO1a18Zs7tjOTABLUaba4AtgVjdI4Ip3fJNNF6IU4JwqUmWYCMRqAgp2EWD8WaE/HiEAA2O443gcVIAfmEKjNBcZCuBTqHsDpOhLdLrnc4V78Ei1TZa2uJ7SIcAWUD9sZSiASpSpNKC6f2wg0HGDtbkEMATPT77qbXOHc+ZHNK3bZMOTImUJM5Q9oONKvOnhcKXOPOfvweofzwqVNYstKLrTAMCIxudMBbDLswFCAE6+0GnMS4LY80ef//wO8RHwM7DLmQrgBdcGiJe1nMLZUSYkiOjzr4ywvQtkkqqdqQCWujwbIATg0OU3s6vAa+j8YVVgMsLXDuIVpXyCYKINkE+L2X9O7/DxMXAQjX4pTd7aAUABMg6CkQ1cwTZAPrB44HiF2mNdoBqdf83g7Z0gA+WtjAVQ4dnAJTkY3+C9zpvWAjRtKyimczevbJoE/S5ZyhqN0AZULhX0kuK9ce1xFjAOvv+1wV88QoYpLzIXwKfIBm4hKkjuw8vkJF0iOsyX9antasLqXVEWQNjAPkQFDVIFmtpMgYDOg/xKqfIv/nidWwg9KcQC/KqIR1dMgAnFiaxas93CTFxgk94p9Mqidwm7pxo2TXqRgwA+RVyIGQiyGduQnPyUtVkuyaMrAb4DSPj+A7fbfliMBQQ2oIDVX4uaiLZzwqamm/PSQH+hKuH8fbqtlK8FBDawCblB5pHVb909bXw/LwvwQshq0vK1I3YN/CVfchHAp+hv/coSAYsagFdS7DxiPtDV6sukPRPXAcDBppWLACqxIQWTIQI6fVlWE/bProbyaZB705hs9FNEQJhx5mMBARe6AtxghxmDVGs9XAV6/FT4Wxd/VIGqhcNWdpGTAF5EDmvAj4OOlTgDpQgh3uAWg9zO4Jt+mgiIhNpWTgJYMlE3COwJN1YxFZD3ubM/+0h5iHUASJzpSHlhN3KD+0wcpEnLfgdTgT3mPoYRtUOmpHMACNl8lZsAfoopbI2Og8yi9K2FOKkfdBu9N6LGZt+kOf8I87Ht3ATgU4ErNineAx4VG1zDPE1mGmiEAA4SeoRJDiDjaihEBbztRJOMgzo7C/4nrAJXDI+6jAvg98QLyb3z/wdjGcs5CqASC9vf6HyQCVyq89jcIVD/b/AEcNvtPMYBZDMbmEAFOkwkVMD9yIEOqECPzSaJi/rNBAXwHQDKs7/keX6fCnjE5ZiXDkV0/ZDNfNmianyBrJOGAeElt//mKgCfCvQYFVgF78tQWbYqA8lk/J7+/QQFGPMYQI40mHSDXiQ8puqiBvznntBDEAc8AfzRScGAOEXn5ZwFUImlbwdUXXQIqYBOzdYbQEmtGftfTzeTayCcclu+LjBygx5VOyZGxsFLc8ZU1fYNVFdfjfmPwxQBgFNo+JL3+QM3+JpWAWRN3rnlTadKP6dsX2EE3C2COkBetbGVuwB8NijTM1FN5NagsR632NfgJNWlpvXTQEtwgHnmQYwbpFUA8YKu1oZusDMEe2t7ae7ZCG+g5LVclgsQgB8JaRWwvaA1RFQgsAH/baYa0Fkapj4/r98gt6WCVWBAkOER7LjC+Xqf8EAzNqO05+dWWi+KOL8/K+CrwEmcC2pI9dY6Dgpn8Ei1oiU7Ae/8/EqzUogC+C8S+yoQJYWoANQHz28rlvedDxImLHjfn990LkYBQjIk94mk0CmNw65Mcy/PVIJ04Ss4YaElXT+ZFACLU4CADPkqUONzwb77EPptV2kG//47OGqpG8nf/8gshQKEpTGZGJFX0BuDVF07PLe0QM+P4TmzEX9S2tkJTmi0FKYAARny+xmNyJAt+AR6MNBuYCP3TY4T8PivjpeACleAkA973ZvAqV1aGJ8ZW/7SbB+kAZ4NYCZw5q3bJn7/IhUgVIGreCjEncDAcgzA0hAa4KUSBtf8k+y/iDQojo/xvr4fCjlOwNub914kgjerrjVe+pfi/MUqgLRUi094fw2cgKWhWYweiAder1Qs3ufXvic2mItVgEgFfvTjO7WYIvtecMjZKLgGrd+/gSfFK9XtggUQqEAvami7PeIhzmN07x9PU24LqD750UZpHh4sWgHCQOB3sf70ua41wip5Fi8KdpkHes9seXnn1+tphozahQsgCAR+H/OWVxQJSploFLTxG2z8+nqqEZPiFSCkg/4oi8uIL3XECTgdkoAGmKlW5tSxbuk369OUU2ZPoABBszzo5B3wnICnASPefjEzLDxI9+0LJ4ER/tGN80HXDejsmEBMAEPeJQNANXz8PVAAs4wKEJaGgnku2w2s6rqGC8Dg7dX9gMPHjfMQSzVBAK+e5vxBdTB84Mt0uuT6kC+A0xl2xmwYqnGWxAJl6anwkTSCfZQND6IgcDvL1qTqvMeXyIJ+fjIBBGwoMIITzAYG0S3jSBQEn6lXbS54k8iCPktPh58oF9bo2ewF6ZF6toHdN6XAdZCbeklDYIAP5Li3OtXBQDgOy0EHabfmVO1hvV7eEMj4QX+w70AHM8LIB35NuzSV+DR1ob2QZD8YTLapUEaoRj7wNPXibMqXx3+Wnhi7VCBXoWmpSABYYwt6pP7fKbLAz099/sgIgnnXATAxGPJA9K6l30D+tFVuD0gZQSc8rgG0yD0BoDcN/Q0TyKNaOTkg1CaJVhwGQ9QH7qdfHfYaCvxeUKcM55cqJuUIgXMELgC9f/kHkkIc8hIhpVUKAURGoGzi5ZARlwijAjhRym4ADu7hwf/QAiw9EIDZnSUVGDvjALgErsty/ign6MpDrLbP94HwgsDY0u6nU7OkFAh2A8CuUywVRO8aU7B2wtb0KQfC5nAD5KviURDk80BkQ0DTtTqqAa+kUuEDKgEvBoz490x1sH5KfTotKwXE3ED4AhrRE+DmwsiSlDNnayuAWXYHQLsB6s4D70rxPv/W1T2sMzqFNUBpSaXDr9Gfd27EFUAPb0FFXQCYC7lXJE1gH/BPqYT42IV0wJvvHvLKYXgqoB1Nq5AGvJRKiV+6kCd0J3yMhDtXXyM86Gg6AQTwl1RSfIg5qSFR3DMSrtrbRARwOK2zAui0yyqApViYI66/OOMnAkgqgAhALu35iWDIXoDCe4BgiBDB71VGAHJLkhZDAt01apmYIwADEcB9nXaCSqnPb9OBuATI1IjzFpOC0YDvVcoJlv38lATIe3DG6Pt5MiaArWq9vljntyVAEH7yIjT1qJ4+FXAEsL4yXRz7D/0AeQcqNTAwuAGa3T2skFRdwPPTEuieD4Gu/zQ5FRjQ+1GLcn5bAh9Ix9U0oNan/rDhTj9UV97BYyVjcjxy0pYWB79QTu6uPzuouYjzRTq/JG1TVj6ZVQT0GzMvpQXDr7Srm1jpT6/S05HKW2nhUGGSX+Wdker4A2YqRHkvLSCWgNbmuZUoA2Am6LwlLSa2AeanrHBkoOoAWVReSguLCtzfnrwDBonOkIEg+b20yNjG6P90svHuwR+IfrjZqGINkJW2tNiopFh2wDF5Ly0+dmrzHn8Rgx8YDrbNuY7/si09F8wjgpX30nNCZTYRKM/s+J4I6mmPL799fsf33OG6mebj77SlZ4ulHf4akFJ9rh8/LoNteANEmWzsPPvTh8aws71enTqdX9P+76S68XZnpyX9H2JpZ0cSEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQyAT/A4vddQxxO7K0AAAAAElFTkSuQmCC
! Goddess of the soul
Psyche(/ˈsaɪkiː/;希腊语:Ψυχή,罗马化:Psukhḗ)是希腊的灵魂女神。她生来就是''凡人'',美貌堪比[[阿佛洛狄忒|💗爱情女神阿佛洛狄忒 Aphrodite]]。
Psyche Lucius Apuleius 于 2 世纪撰写的名为 The Golden Ass 的故事而闻名。
Psyche是希腊国王和王后最小的女儿。她有两个姐姐。她是兄弟姐妹中最美丽的,在凡人中看起来就像是女神。她是如此美丽,''以至于包括牧师在内的人们都将她比作希腊爱与美的女神阿佛洛狄忒''。许多人甚至说她比女神还要美丽。当阿佛洛狄忒的神庙因人们开始崇拜Psyche而荒废时,女神感到愤怒。作为惩罚,她派她的儿子[[厄洛斯|👼爱神厄洛斯 Eros]]让Psyche爱上一个卑鄙可憎的人。''然而,爱神在看到她时爱上了她,并决定让她免于母亲的愤怒''。
她的父亲国王向德尔斐神谕(Oracle of Delphi/Pythia,阿波罗的女祭司)寻求解决方案。阿波罗在女祭司里面说话了。他说:“绝望吧,国王。你的女儿将嫁给一个连众神都惧怕的野兽。给她穿上丧服,带她去王国最高的岩石尖塔。在那里,她将迎来她的厄运。”国王伤心欲绝,但还是服从了阿波罗的命令。
他带着她身着丧服来到王国最高的岩石尖顶。Psyche等待着野兽,但当它没有来时,她从尖顶上跳了下来。王国推定她已经灭亡。
但是希腊的西风之王 [[Zephyrus|西风神 Zephyrus]] 救了她免于死亡。他带她去了厄洛斯的宫殿,在那里她一直等到晚上厄洛斯回来。在那里,她看到宫殿很大,每个柜子里都装满了金子。当厄洛斯回来时,他在一片漆黑中对Psyche说,她不能见他。她不能试图见他,他不能告诉她他的名字,否则会毁了一切。普赛克在宫中生活的最初几周很美好,但很快她就听到她的姐妹们在呼唤她的名字。她的两个姐姐说服她去看看她丈夫的真面目,以防他欺骗她。
Psyche最终听从了他们告诉她的话。她带着一盏油灯和一把刀潜入她丈夫的房间。Psyche将灯照在她丈夫的脸上,一小滴热油落在他的肩膀上,唤醒了他并烧伤了他。被妻子的行为所背叛,Eros跑去找他的母亲[[💗爱情女神阿佛洛狄忒 Aphrodite]]Aphrodite。
在得知自己的所作所为后,Psyche痛苦不堪,情绪低落。阿佛洛狄忒找到了Psyche,让她面对四个考验。
第一个考验是''对一个巨大的种子山进行分类''。在一个富有同情心的蚂蚁群的帮助下,普西奇完成了这项任务。
她的下一个任务是''从一只臭名昭著的危险绵羊身上收集羊毛''。Psyche很难过,但得到了一位河神的帮助,河神教她从灌木丛中收集羊毛的碎片。
她的下一个任务是''收集冥界的水''。宙斯的鹰帮助她,为她收集水。
Psyche的最后一项任务是最困难的;她必须为阿佛洛狄忒带回一些[[珀耳塞福涅|珀尔塞福涅 Persephone]]的美貌。珀耳塞福涅心甘情愿地把她的一些美貌给了普西琪。当她接近奥林匹斯山时,普西奇打开了珀耳塞福涅的美貌的盒子,但里面唯一的东西是死亡的精华。
Psyche死了,但她的丈夫Eros,原谅了她,救了Psyche的命,并把她带到了奥林匹斯山。Psyche被任命为灵魂女神。Psyche和Eros有一个女儿,Hedone,身体快乐的女神。
@@.dblock
title; value
@@
<<table-csv
delimiter:"; "
caption:"''Table 1. Wikitext Formatting''"
format:"transclude transclude transclude"
class:"w-100 table-caption-top thead-dark"
>>
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
son of [[Mahalath/Basemath]] and [[以扫 Esau]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
[[拿鹤 Nahor, son of Terah]]的妾
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[num]]">>
''Rhea'' (or ''Rea'') ''Silvia'' (Latin: [ˈrɛ.a ˈsɪɫwi.a]), also known as ''Ilia'' (as well as other names)
在[[路加福音 Gospel of Luke c.56-58]]中作为[[所罗巴伯 Zerubbabel]]的儿子
daughter of Aiah, and one of [[Saul|👑扫罗 Saul]]'s concubines
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
''Romulus'' and ''Remus'' (Latin: [ˈroːmʊlʊs], [ˈrɛmʊs]) are twin brothers .
[img[https://upload.wikimedia.org/wikipedia/commons/6/6a/She-wolf_suckles_Romulus_and_Remus.jpg?1625198436633]]
在罗马神话中,罗慕路斯和雷穆斯(拉丁语:[ˈroːmʊlʊs],[ˈrɛmʊs])是一对孪生兄弟,他们的故事讲述了导致罗慕路斯建立罗马城和罗马王国的事件。 Remus 被他的双胞胎杀死,以及他们故事中的其他故事,激励了各个时代的艺术家。自古以来,母狼哺育双胞胎的形象一直是罗马城和古罗马人的象征。虽然这个故事发生在公元前 750 年左右罗马建国之前,但已知最早的神话书面记载是在公元前 3 世纪后期。这个故事可能的历史基础,以及双胞胎的神话是罗马神话的原始部分还是后来的发展,是一个持续争论的主题。
阿穆利乌斯国王认为他们可能对他的统治构成威胁,于是下令将他们杀死,他们被遗弃在台伯河岸边,任由其死亡。他们被泰伯河之父泰伯努斯神所救,在其他人的照顾下,在最终成为罗马的地方活了下来。在最著名的情节中,这对双胞胎被一只母狼哺乳,在一个现在被称为Lupercal的山洞里。 最终,他们被牧羊人福斯图鲁斯收养。他们长大后照看羊群,不知道自己的真实身份。随着时间的推移,他们成为了天然的领导者,并吸引了社区的一群支持者。
当他们还是年轻的成年人时,他们卷入了努米托和阿穆利乌斯的支持者之间的争端。结果,莱姆斯被俘虏并被带到阿尔巴隆加。他的祖父和国王都怀疑他的真实身份。与此同时,罗穆卢斯组织了一次解救他兄弟的努力,并在帮助下出发前往该城市。在这期间,他们了解了自己的过去,并与祖父联合起来,让他恢复了王位。阿穆利乌斯被杀,努米托被恢复为阿尔巴的国王。这对双胞胎开始建立属于自己的城市。
在回到七山地区后,他们对在哪座山上建房产生了分歧。罗穆卢斯更倾向于卢伯尔山之上的帕拉丁山;雷穆斯更倾向于亚汶丁山。当他们无法解决争端时,他们同意通过占卜比赛来寻求神明的批准。莱姆斯首先看到了6只吉祥鸟,但不久后罗穆卢斯看到了12只,并声称赢得了神的认可。这场新的争论进一步加剧了他们之间的争执。之后,雷穆斯被罗穆卢斯或他的一个支持者杀死。罗穆卢斯随后建立了罗马城、其机构、政府、军事和宗教传统。他作为罗马的第一个国王统治了多年。
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
a Judge in [[士师记 Book of Judges c.1100 BC]]
Or Shimea, son of [[拔示巴 Bathsheba]] and [[👑大卫王 David]]
son of [[西缅 Simeon (son of Jacob)]]
son of [[Jokshan]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
son of [[Abital]] and [[👑大卫王 David]]
son of [[拔示巴 Bathsheba]] and [[👑大卫王 David]]
son of [[基土拉 Keturah]] and [[亚伯拉罕 Abraham]]
son of [[迦得 Gad (son of Jacob)]]
一天,邪神洛基趁希芙熟睡时(一说是睡在伊登女神的花园),趁机将她的头发剃光,Thor因此勃然大怒。
洛基为了平息Thor的怒火,拜托侏儒伊瓦尔迪(Ivaldi)的儿子''[[德瓦林(Dvalin)|德瓦林 Dvalin]]''用金丝制成一顶黄金发作为弥补。又另外做了两个礼物:献给[[⚡众神之父奥丁(神圣) Odin]]的是长枪[[冈格尼尔|冈格尼尔 Gungnir]],献给[[丰饶之神弗雷 Freyr]]的是[[神船斯基德普拉特尼|🛶斯基德普拉特尼 Skidbladnir]]。洛基因此称赞他是世上最好的工艺家。
但这句话引来另外一个侏儒''[[勃洛克|勃洛克 Brokkr]]''的不满,因此勃洛克和洛基打赌,赌他的哥哥''[[埃特里 Eitri]]''能做出更好的东西,而赌注则是彼此的头颅。Eitri做出一头金色的[[野猪古林博斯帝|🐷金毛猪古林博斯帝 Gullinbursti]]献给''弗雷'';还有一个[[𓏌戒指德罗普尼尔 Draupnir]]献给奥丁。
而当他在做准备献给Thor的[[🔨妙尔尼尔(雷神之锤) Mjölnir]]时,害怕会输的洛基变作一只牛虻,去扰乱在帮忙顾火的勃洛克,结果因而使得雷神之锤的柄短了一点。
这场赌局,在诸神的判断下是由做出雷神之锤的Brokkr和Eitri获胜。洛基见自己输了,拔腿就跑,但却被托尔捉住,交给勃洛克,然而却对这位胜利的侏儒说:“虽然头是你的,可是不能伤了他的脖子”。因此,两个侏儒不能割洛基的头,只好用铁线缝上了洛基的嘴唇,免得他再说坏话。但是不久之后,洛基设法割断了嘴唇上的铁线,又能挑拨是非了。
''Silvius'', or ''Sylvius'', (Latin: Silvǐus; Greek: Σιλούιος; said to have reigned 1139-1110 BC), or ''Silvius Postumus''
|父母|[[Aeneas|埃涅阿斯 Aeneas]] and [[Lavinia|Lavinia]] or [[Ascanius|Ascanius]] |
! 河神
''Simoeis'' or ''Simois''''/ˈsɪmoʊɪs/ ''(Ancient Greek: Σιμόεις Simóeis)
Snær the Old("Snow")
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
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
夏天的人格化,summer personified,[[斯瓦苏德 Svasud]]的儿子
son of [[Judas,son of Joseph]]
|!父母 ||
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
<<tabs "[tag[tag]nsort[index]]" "title" >>
son of [[Reumah]] and [[拿鹤 Nahor, son of Terah]]
一个宁芙nymph, 根据《圣经》(3.10.1),是昴宿星团之一,也是阿耳特弥斯的伙伴。
son of [[Reumah]] and [[拿鹤 Nahor, son of Terah]]
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Djed.svg/200px-Djed.svg.png"
caption:"the Djed"
width:""
align:"right"
>>
djed,又称 djt(古埃及语:ḏd 𓊽,科普特语:ϫⲱⲧ jōt "柱子",音译为 /dʒɛd/)是古埃及宗教中较为古老和常见的符号之一。
在埃及象形文字中,它是一个类似柱子的符号,代表稳定。它与创世神普塔(Ptah)和奥西里斯(Osiris)有关,奥西里斯是埃及的来世之神、冥界之神和亡灵之神。它通常被理解为代表他的''脊柱''。
son of Ares and Demonice, or Ares and Pisidice, or Agenor (son of Pleuron)
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
<$visjstimeline filter="[tag[TimeLine]]+[tag[tag]]-[tag[img]]" groupTags="[[tag]]" navpad startDateField="start" endDateField="end" tipFormat="YYYY">
<div class="timelineCus">
<$visjstimeline filter="[tag[Timeline in the Bible]]-[tag[img]]" groupTags="[[Roma]][[The Bible]][[Babylonian]][[Seleucid]]" navpad startDateField="start" endDateField="end" tipFormat="YYYY">>
</div>
[[Eliphaz]]'s concubine
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
[[亚设 Asher]]的后代
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
[[便雅悯 Benjamin]]的后代
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
[[但 Dan (son of Jacob)]]的后代
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
[[迦得 Gad (son of Jacob)]]的后代
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
[[以萨迦 Issachar]]的后代
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
[[约瑟 Joseph]]的后代,分为两个支派
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
[[犹大 Judah (son of Jacob)]]的后代
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
[[利未 Levi]]的后代
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
[[拿弗他利 Naphtali]]的后代
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
[[流便 Reuben]]的后代
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
[[西缅 Simeon (son of Jacob)]]的后代
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
[[西布伦 Zebulun]]的后代
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
[[以法莲 Ephraim]]的后代
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
[[Manasseh]]的后代
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
! The founder of Troy
''Tros'' (''/ˈtrɒs/''; Ancient Greek: Τρώς, Ancient Greek: [trɔ́ːs])
Tubal-cain 或 Tubalcain,是《圣经》创世记 4:22 中提到的一个人,以''第一个铁匠''而闻名。他被称为“''所有青铜和铁器的锻造者''”。
|!父母 |[[萨尔摩纽斯 Salmoneus]] |
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
In Greek mythology, Tyro (Ancient Greek: Τυρώ) was an Elean princess who later became Queen of [[Iolcus|伊奥尔科斯 Iolcus]].
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
<a href="https://www.wikiwand.com/en/Tau_cross">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Te_cross.svg/440px-Te_cross.svg.png"
caption:"A tau cross (Saint Anthony's cross)"
width:""
align:"right"
>>
</a>
T型十字架(Tau Cross),又称 安东尼十字架、Tau十字架或埃及十字架。其中Tau十字架的名字源自希腊文第十九个字母τ(音“涛”),同时也是希伯来文最后一个字母Taw。
!! 历史
!!! 基督教出现以前
T型纹饰作为一个表意符号,在石器时代的岩刻和绘画上就经常出现。在中东的神话时代,''T型十字代表世界末日''。据说古代有一个叙利亚统治者,把T型十字架挂在胸前。有人认为T型十字架继承于埃及的[[生命之符☥安赫 |☥安赫 The Ankh]],因此它也被称作''埃及十字''。
!!! 基督教符号
在希伯来文献中提到过,先知[[🗣️以西结 Ezekiel]](《圣经旧约》中《以西结书》的作者)曾经把这个符号画在信众的额头上。后世《[[圣经启示录|启示录 Book of Revelation c.96]]》中也把它当做一种被救赎的信徒的标志。
《[[以西结书 Book of Ezekiel c.591 BC]]》9:4中上帝对以西结说:“你去走遍耶路撒冷全城,那些因城中所行可憎之事叹息哀哭的人,画记号在额上。” (《以西结书》9:4)其中“记号”一词的英文原文就是“Tau Cross”)
后来它被用在一种僧侣的手杖上面。在基督教艺术品中,圣安东尼(Anthony the Great or Antony the Great,约ca. 251–356,来自埃及的基督教圣徒,被认为是第一位修道士,号称所有修道士之父,Father of All Monks)常常手执这样一根木棒,因此久而久之,T型十字逐渐成了他的个人标志,因此T型十字也称''圣安东尼十字''。
后世以圣安东尼命名的修道会主要承担起了照料病人的工作。14世纪时时圣安东尼修会在欧洲修建了350座医院,有很多人得到了他们的救助,当时人么认为圣安东尼有治疗病人的神力。圣安东尼修会的僧侣身着黑色僧侣袍,外套是一个有浅蓝色T型十字架的黑色大衣。
T型十字架也是''圣方济各修会''的标志。1215年,教皇''英诺森三世''召开了第四次拉特兰会议,在组织第五次十字军东征的同时宣布了一系列教规和戒律,其中有对T型十字架的一番论述。
此后,基督教世界的另外一位圣人,''圣佛朗西斯科''把它作为宽恕和救赎的标志。后世的圣佛朗西斯科修道会(圣方济各修会)把这一传统延续下去。
the firstborn son of [[拿鹤 Nahor, son of Terah]] and [[密迦 Milcah]]
! 宁芙
''Venilia'' ('' /vəˈnɪliə/'', or as Latin Venīlia)
Venilia(发音为 /vəˈnɪliə/,或拉丁文 Venīlia)是一位与风和海有关的罗马神灵。根据维吉尔和奥维德的说法,她是一个宁芙,阿玛塔的妹妹和[[双面神贾努斯|双面神 贾努斯 Janus]] (或[[法乌努斯|潘 Pan]])的妻子,她与她生了三个孩子:图尔努斯 Turnus 、朱图纳 Juturna 和卡能斯 Canens 。
她和Salacia是[[Neptune|🔱海神波塞冬 Poseidon]]的女祭司。
金星上的一座山Venilia Mons就是以她命名的。
<<tabs "[tag[tag]]" "tag" class:"tc-vertical">>
“ ''Winter''”,冬天的人格化,[[文德苏尔 Vindsual]]的儿子
daughter of [[耶西 Jesse]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
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
[[拉麦 Lamech (descendant of Cain)]]的妻子。有两个孩子。
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
first son of [[基土拉 Keturah]] and [[亚伯拉罕 Abraham]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
son of [[迦得 Gad (son of Jacob)]]
son of [[西缅 Simeon (son of Jacob)]]
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Eye_of_Horus_bw.svg/440px-Eye_of_Horus_bw.svg.png"
caption:"Eye of Horus"
width:""
align:"right" >>
荷鲁斯之眼,又称 left wedjat eye 或乌德亚特眼 udjat eye,与拉神之眼(right wedjat eye)同义,是古埃及宗教中的一个概念和象征,代表''福祉、治愈和保护''。
它源于神话中[[荷鲁斯|荷鲁斯 Horus]]神与其对手赛特之间的冲突,在冲突中,赛特撕裂或毁坏了荷鲁斯的一只或两只眼睛,后来在其他神灵(如托特)的帮助下,眼睛被治愈或回到荷鲁斯身边。荷鲁斯随后将这只眼睛献给了他已故的父亲奥西里斯,这只眼睛的复兴之力让奥西里斯在来世得以延续。因此,荷鲁斯之眼等同于殡葬祭品,也等同于神庙仪式中献给神灵的所有祭品。它还可以代表其他概念,如月亮,月亮的消长被比作眼睛的损伤和复原。
荷鲁斯之眼符号是一个带有独特标记的造型眼睛,被认为具有神奇的保护力量,经常出现在古埃及艺术中。它是''护身符''最常见的图案之一,从古王国时期(约公元前 2686-2181 年)一直沿用到罗马时期(公元前 30 年-公元 641 年)。在第一中期时期(约公元前 2181-2055 年)和中王国时期(约公元前 2055-1650 年),一对荷鲁斯的眼睛被绘制在棺材上。出现该符号的其他地方还包括石碑雕刻和船头。在一定程度上,该符号被埃及周边地区的人们所采用,如叙利亚、迦南,尤其是努比亚。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Anubis_standing.svg/440px-Anubis_standing.svg.png"
caption:"死神、木乃伊防腐之神、坟墓之神、冥王"
width:""
align:"right"
tooltip:"tooltip">>
埃及神话中一位与木乃伊制作与死后生活有关的''胡狼头神''。阿努比斯其实是个古希腊语的名字,而根据阿马尔奈文书中的阿卡德语译文,他的名字在埃及语的发音更接近“Anapa”。
早期神话中,他是[[拉|拉 Ra 太阳神]]的儿子,而在埃及神话原典中,他是[[奈芙蒂斯|奈芙蒂斯 Nephthys]]与丈夫[[赛特|赛特 Set]]之婚生子,另外在希腊诗人普鲁塔克的创作《争斗》中是奈芙蒂斯设计欧西里斯发生关系后诞下阿努比斯。目前所知有关阿努比斯最早的记述是在古王国时期的金字塔文本,文中他与法老的葬礼有所关联在这个时期,阿努比斯是''最重要的死亡之神'',但到了中王国时期他的冥王地位便被[[欧西里斯 Osiris]]所取代,而他则取代了[[乌普奥特|乌普奥特 Upuaut]]的工作。
他所取得的称号多半与他的丧葬之神身分有关,例如“在其山岳之上者(He who is upon his mountain)”这个称号强调了他身为亡者与坟墓守护神的身分,而“在防腐之地者(He who is in the place of embalming)”这个头衔则显示他与木乃伊制作的关联性。而就像许多古埃及神祇在不同的文献中扮演著不同的角色。而在死后“''[[心脏重量|玛亚特 Ma'at]]''”的审判中,阿努比斯担任使用天平秤量的角色。他的妻子是女神''安普特'',另外有个名为凯贝洁特的女儿。
!! 形象
阿努比斯与''木乃伊的制作''有所关联,而且是亡者在前往死后世界的旅途上的守护者。他通常是被描述是一位有著''胡狼头的男性'',但也有被描述为是一只''戴著缎带的胡狼'',前臂弯曲勾著连枷的外形。在古埃及,''胡狼与墓地有很强的关联性'',因为胡狼这种食腐动物会去墓地吃那些暴露在外的死尸。而阿努比斯身上独特的黑色不是一般胡狼会有的颜色,而是''腐肉与尼罗河谷黑色的泥土的颜色'',象征著重生。目前仅知在阿拜多斯的拉美西斯二世坟墓中,有将阿努比斯整个描绘成人形的案例。
阿努比斯是古埃及死者之神。 因此,__一些牧师在制作木乃伊或举行墓葬仪式时会佩戴阿努比斯面具__,以象征阿努比斯领导工作并保护死者。
<<image-basic "https://www.cleopatraegypttours.com/wp-content/uploads/2019/10/Scarab-beetle.jpg"
caption:"The Scarab beetle"
width:""
align:"right"
>>
埃及圣甲虫是''死亡、重生、强大力量、来世引导和保护''的象征,数百年来,''圣甲虫是最重要、最受欢迎的护身符之一'',每个生者和死者都佩戴着。它的流行甚至超出了埃及的边界,到了东方。圣甲虫有许多不同的类型,如圣甲虫海豹心圣甲虫、有翼圣甲虫、婚礼圣甲虫、带有咒语的圣甲虫、带有美好愿望的圣甲虫以及装饰有动物和神像的圣甲虫。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6e/Scarab_Inscribed_for_the_King_of_Upper_and_Lower_Egypt_Maatkare_%28Hatshepsut%29_MET_27.3.245_bot.jpg/440px-Scarab_Inscribed_for_the_King_of_Upper_and_Lower_Egypt_Maatkare_%28Hatshepsut%29_MET_27.3.245_bot.jpg"
caption:"Scarab inscribed for the king of Upper and Lower Egypt Maatkare (Hatshepsut), c. 1479–1458 B.C., Metropolitan Museum of Art, New York, New York, United States"
width:""
align:"left"
>>
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d1/Was_Sceptre.png/100px-Was_Sceptre.png"
caption:"was sceptre"
height:"100px"
align:"right"
>>
法杖弯曲的顶端与赛特自己头部奇特的动物形状如出一辙。
沃斯权杖常被用作''权力或统治的象征'',并与古埃及诸神如[[风暴之神Set|赛特 Set]]、死神[[阿努比斯|𓃦 阿努比斯 Anubis]]以及法老联系在一起。有时,权杖也象征着赛特兽(一种古埃及的神兽,和风暴之神赛特有关,也被称作“沙”)或[[造物神库努牡|库努牡 Khnum]]。在后来的使用中,它被视为能够控制''赛特''所代表的混乱力量的象征。
在有关墓葬的文化形象中,沃斯权杖被认为可以用来保佑逝者的灵魂,并增加逝者来生的福祉。因此常在古埃及墓葬的陪葬品和棺材上的装饰中看到沃斯权杖。除此之外,沃斯权杖也被用作''护身符''。古埃及人认为天空是由四根柱子支撑的,沃斯权杖的形状可能来自这些于柱子。在政治形象中,这根权杖同时也是''底比斯''地区的象征(埃及语称为wꜣst )。
德罗普尼尔(Draupnir,在英文里为 The Dropper),意为“''滴落者''”。
这是侏儒辛德里(Sindri)和布洛克(Brock)兄弟于希芙之发事件中,做出来献给[[⚡众神之父奥丁(神圣) Odin]]的戒指(或手镯)。它的神奇在于''每隔九天就会生出一模一样的八个戒指''。同时被制造出的另外两个礼物为古林博斯帝(Gullinbursti)和''雷神之锤(Mjolnir)''。
当弗雷(Freyr)追求女巨人葛德(Gerd)时,德罗普尼尔被侍从史基尼尔(Skirnir)带去当成求婚的礼物。当奥丁之子''巴德尔''死亡时,奥丁将德罗普尼尔当作送葬礼物焚化了。当赫尔莫德(Hermod)到死之国找到巴德尔时,又将它带了回来。
根据古希腊神话,年轻的赫尔墨斯神从阿波罗那里偷走了一群圣牛。为了不被跟踪,__他给牛做了一双鞋,迫使它们向后走。阿波罗沿着小路,无法跟踪牛群的去向__。一路上,赫尔墨斯宰杀了其中一头牛,并将除内脏外的所有东西献给了众神。''他用内脏和一个乌龟/龟壳创造了七弦竖琴Lyre''。
阿波罗发现是赫耳墨斯拿走了他的牛,便与这位年轻的神当面对质。阿波罗很生气,但在听到琴声后,他的怒火消退了。阿波罗提出用牛群来换取琴声。''因此,琴的创造被认为是赫尔墨斯的功劳。''__其他来源则认为是阿波罗本人的功劳__。
!! Etymology
The earliest reference to the word "lyre" is the Mycenaean Greek ru-ra-ta-e, meaning "lyrists" and written in the Linear B script. In classical Greek, the word "lyre" could either refer specifically to an amateur instrument, which is a smaller version of the professional cithara and eastern-Aegean barbiton, or "lyre" can refer generally to all three instruments as a family. The English word comes via Latin from the Greek.
[img[https://upload.wikimedia.org/wikipedia/commons/thumb/6/63/Mousai_Helikon_Staatliche_Antikensammlungen_Schoen80_n1.jpg/640px-Mousai_Helikon_Staatliche_Antikensammlungen_Schoen80_n1.jpg]]
//Greek vase with muse playing the phorminx, a type of lyre//
布拉基(Bragi)是北欧神话中掌管诗词、智慧与雄辩之神,也是主神[[⚡众神之父奥丁(神圣) Odin]]之子。布拉基的妻子是[[🍎青春女神伊登 Idun]],也是[[阿斯嘉特|亚萨神国阿斯加特 Asgard]]万年花园的主人。
七七节,又名沙夫幼特节、周日节、收获节、新果实节(基督教叫五旬节),是犹太教''三大朝圣节日''之一,因在[[逾越节|Passover 逾越节]]的七周之后举行,故名“七七”。
具体日期是在犹太历3月[[希万月|希伯来历和格里历对应 Hebrew calendar Vs Gregorian calendar]](即西历大约5到6月左右)第6同7日两日,而犹太教改革派只过其中一日。
!! 七大天使 Seven Archangels
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
''七宗罪''(拉丁语:septem peccata mortalia;英语:seven deadly sins),天主教称''七罪宗'',或称''七大罪''或''七原罪'',属于天主教教义中对人类恶行的分类。归入这一类别的,能够直接形成其他不道德的行为或习惯。现在七宗罪一般指傲慢、贪婪、色欲、嫉妒、暴食、愤怒及怠惰, ''七宗罪并非出自圣经''。
|!提出 |''4世纪'',埃瓦格里乌斯·庞帝古斯 Evagrius Ponticus |暴食、色欲、贪婪、忧郁、愤怒、怠惰、虚荣及傲慢 |他观察到当时的人们逐渐变得自我中心,尤以傲慢为甚定义出八种损害个人灵性的恶行 |
|!改进 |''6世纪'',教宗额我略一世 Pope Gregory I |傲慢、嫉妒、愤怒、怠惰、贪婪、暴食及色欲 |将那八种罪行减至七项罪行,将虚荣并归入傲慢;忧郁并归入怠惰,并加入嫉妒。他的排序准则在于对爱的违背程度。 |
|!现代 |''13世纪'',道明会神父圣多玛斯·阿奎纳 St. Thomas Aquinas |傲慢、嫉妒、愤怒、怠惰、贪婪、暴食及色欲 |按照天主教教义中的“按圣若望·加西央和圣大额我略的见解,分辨出教徒常遇到的''重大恶行''”,提出了现在的七宗罪。“重大”在这里的意思在于这些恶行会引发其他罪行的发生,例如盗贼的贪婪源于欲望。 |
!! 七宗罪
|中文 |拉丁文 |英文 |相关恶魔 |h
|傲慢 |superbia |pride |Lucifer 路西法(与上帝相对的力量的邪恶、黑暗之源,伊甸园之蛇) |
|嫉妒 |invidia |envy |Abbaton 利维坦 |
|愤怒 |ira |wrath |[[Samael|👹撒但 Satan]] 撒旦(愤怒和暴怒的化身) |
|怠惰 |acedia |sloth |Belphegor 贝尔芬格(原亚述的魔神,狂欢的狡辩者)|
|贪婪 |avaritia |greed |Mammon 玛门(财宝和贪婪的错误之神) |
|暴食 |gula |gluttony |[[Beelzebub 别西卜|巴力西卜 Beelzebub]](苍蝇之王,圣经中的鬼王) |
|色欲 |luxuria |lust |[[Asmodeus 阿斯莫德|君王 阿斯莫德 King Asmodeus]](激怒或色欲的魔神始祖) |
(覆盖但以理书3:1-30)[[🤴尼布甲尼撒二世 Nebuchadnezzar II 642-562 BC]]造了一尊高60肘尺(27米)的金像,并下令把全国大小官员聚集起来为像举行落成典礼。各人在听见特别的号角音乐时都要俯伏敬拜这像,违命者则被扔入烈火的窑中。
据报[[🗣️但以理 Daniel(?-530 BC)]]的三个同伴,沙得拉、米煞、亚伯尼歌,不遵王命。他们被带到怒气冲冲的国王面前,但他们坦然不惧地说:“我们所事奉的上帝,能将我们从烈火的窑中救出来。就算上帝不救我们,陛下,愿你知道,我们决不敬奉你的神,决不崇拜你竖立的金像。”(但以理书3:17,18)
王勃然大怒,便下令把窑烧热至平常的七倍,然后吩咐人把三个希伯来人捆起来扔进火炉里。负责行刑的人员在靠近火炉时被烈焰烧死。
接着尼布甲尼撒大惊失色。他看见窑中有''四个人''在火中行走,没有受伤,“第四个人看起来好像神明的儿子。”(但以理书3:25)
王吩咐三个希伯来人从火中出来。他们走出来时,身上全没有被火烧过的痕迹,甚至烟火的气味也没有!由于他们勇敢无畏地采取立场拥护纯真的崇拜,尼布甲尼撒遂宣布犹太人的上帝在国内获得尊重。
<a href="https://www.wikiwand.com/en/Trinity">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b3/Shield-Trinity-Scutum-Fidei-English.svg/440px-Shield-Trinity-Scutum-Fidei-English.svg.png"
caption:"A compact diagram of the Trinity, known as the "Shield of Trinity" The Shield is generally not intended to be a schematic diagram of the structure of God, but it presents a series of statements about the correlation between the persons of the Trinity."
width:"300px"
align:"right"
tooltip:"">>
</a>
[[三位一体|https://www.wikiwand.com/zh-hans/%E4%B8%89%E4%BD%8D%E4%B8%80%E9%AB%94]](又译为天主圣三),基督教神学术语,是基督宗教神[[YHWH|四字神名 Tetragrammaton]](新教常汉译为上帝或耶和华,天主教常汉译为天主雅威)的神学理论,建立于第一次尼西亚公会议的《尼西亚信经》,是[[基督教 Christianity]]三大宗派的基本信条。
三一论主张:''圣父(The Father)''、''圣子(The Son)''、圣神(''The Holy Spirit'' ''天主教会''译为''圣神'',''东正教会和新教''则译为''圣灵'')三个不同的位格为同一本体、同一本质、同一属性,是一位上帝,他们以同本体论来表达他们之间的关连:
<<<
通俗地说,神是独一的,只有一位神;
圣父完全是神,圣子完全是神,圣灵完全是神;
''子是父的化身和彰显,灵是父子的实际和实化。''
<<<
历史上不断有一些基督教派及个别人士否定此教义。基督宗教的主流教会接纳三位一体为传统教义之一;反对方则支持“一位格论”、“形态论”、“三位三体”等,否定三一论。
传统天主教会把[[圣神降临节|五旬节 Pentecost]]后第一个主日定为''天主圣三节'',纪念天主圣父、圣子、圣神是三位一体。
|!|!|!犹太教|!基督宗教|!伊斯兰教|
|属性|神的名字(中译)|耶和华或雅威 |<|阿拉 |
|~|独一性 |独一真神,创造世界,全知、全能、全善、全在、永恒,将来审判|<|<|
|~|三位一体 |否 |是|否 |
|工作|创造与审判| 神创造天地,并造人。神是世界的审判者 |<|<|
|~|拣选| 拣选[[亚伯拉罕 Abraham]] |<|<|
|~|~|拣选亚伯拉罕的二儿子[[以撒 Isaac]]<br>(亚伯拉罕与其妻撒拉所生,是''以色列人''的祖先)|<|拣选亚伯拉罕的大儿子[[以实玛利 Ishmael]]<br>(亚巴郎与其妾哈加尔所生,是''阿拉伯人''的祖先) |
|~|~|拣选亚伯拉罕的孙子''以色列的后裔:以色列人'' |拣选''一切相信耶稣基督福音''的人 |拣选''一切相信安拉''的人 |
|~|救赎工作|神拣选以色列人 |耶稣降世为人的罪付上赎价,人必须信耶稣带来的福音 |安拉的仁慈,人行善功。|
|圣者|[[🧔🏻♀️耶稣 Jesus c.4 BC-33]]是谁|亵渎者|圣子真神 |先知|
|~|''穆罕默德''是谁|亵渎者 |<|最后的先知 |
|圣书|''希伯来圣经''是什么|圣经 |旧约圣经<br>(与犹太教的解读有很多不同)|受启示的经典,已被篡改。|
|~|''新约圣经''是什么 |亵渎 |神终极的启示、信徒的生活及行为指引、以耶稣言行事迹诠释「旧约内容真义」(福音)|~|
|~|''古兰经''是什么|亵渎 |<|安拉的启示|
|总结|对''犹太教''的看法 |- |是基督教信仰的前身,但错误解读如拣选和律法等「旧约内容真义」|是奉行已被篡改的宗教 |
|~|对''基督教''的看法|是亵渎神 |-|~|
|~|对''伊斯兰教''的看法|是亵渎神|<|-|
[[大卫|👑大卫王 David]]渴望为上帝的约柜建造一座殿宇。他自己既住在香柏木的华美宫室中,便对拿单表示渴望替上帝的约柜造一座宫殿。耶和华通过拿单向大卫保证他的慈爱恩典不会离开以色列,并与大卫立了一个永约。然而,''为耶和华的名建造殿宇的人不会是他,而是他的后裔''。此外,耶和华作出仁爱的应许:“你的家和你的国必在我面前永远坚立。你的国位也必坚定,直到永远。”
覆盖约珥书3:1-21)耶和华必使犹大和耶路撒冷被掳之人归回。上帝要招聚列国,泰尔、西顿和非利士都必须承担羞辱和奴役耶和华百姓的罪责。耶和华向列国挑战:“当在万民中宣告说:要预备打仗;激动勇士,使一切战士上前来。”(约珥书3:9)让他们将犁头打成刀剑,一同聚集到约沙法(意思是“耶和华是审判官”)谷。耶和华发出命令:“开镰吧!因为庄稼熟了;……因为……酒池盈溢,他们的罪恶甚大。许多许多的人在断定谷,因为耶和华的日子临近。”(约珥书3:13,14)日月昏暗无光。耶和华必从锡安吼叫,使天地震动,但他却要作他百姓的避难所和保障。他们就知道他是耶和华,是他们的上帝。
“到那日,”所见的是多么丰饶的乐园景象!(约珥书3:18)大山要滴甜酒,小山要流奶子,溪河必有水长流。必有泉源从耶和华的殿中流出来。埃及和以东必成为荒场,因他们向犹大施暴,流了无辜人的血,但犹大和耶路撒冷却必永远为人所居,“因为耶和华住在锡安。”(约珥书3:21)
[[🤬不和女神厄里斯 Eris]]又生下了:
<ol>
<$list filter="[all[tiddlers]tag[🤬不和女神厄里斯 Eris]sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
<<<
可怕的不和神生下痛苦的[[劳役神|辛劳神 Ponos]]、
[[遗忘神|健忘女神 Lethe]]、[[饥荒神|饥荒神 Limos]]、哀泣的悲伤神、
[[混战神|混战神 Hysminai]]、[[争斗神|争斗神 Machai]]、[[杀戮神|杀戮神 Phonoi]]、[[暴死神|暴死神 Androktasiai]]、
争端神、[[谎言神|谎言神 Pseudea]]、[[抗议神|抗议女神 Amphillogiai]]、
相近相随的[[违法神|违法女神 Dysnomia]]和[[盅惑神|盅惑女神 Ate]],
还有[[誓言女神|誓言女神 Horkos]],
她能给大地上的人类带来最大灾祸,
只要有谁存心设假誓。
<<<神谱
一场战争在天上爆发了。[[米迦勒|😇米迦勒 Michael(who is like God?)]]和他的天使跟龙作战,龙和它的天使都出战,却没有得胜,天上再也没有他们的立足之地了。于是大龙被摔了下去。大龙就是最初的那条蛇,叫做魔鬼,也叫[[👹撒但 Satan]],迷惑了全天下的人。他被摔在地上,他的天使也跟他一起被摔了下去。
龙在海边的沙上站着。
我看见一只野兽从海里上来,它有''七个头,头上有十只角,角上戴着十个王冠'',头上有亵渎的名字。我看见的这只野兽像一只豹子,它的脚像熊的脚,口像狮子的口。龙把力量、宝座和大权都赐给了这只野兽。
我看见它的一个头似乎受过致命伤,不过它的伤已经被治好了。地上的所有人都惊叹不已,跟随了这只野兽。龙把权力赐给了野兽,所以他们都崇拜龙,也崇拜野兽,说:“谁能跟野兽相比?谁能跟它作战?”
野兽得到权力说亵渎的话,口出狂言,也有权肆意妄为42个月。野兽就开口亵渎上帝,亵渎他的名和他的居所,亵渎那些住在天上的。野兽也获准跟圣民作战,而且战胜了他们,并得到权力管辖每个部族、民族、语言和国族的人。住在地上的所有人都会崇拜它。从世界奠基以来,这些人的名字没有一个写在曾被宰杀的绵羊羔的生命册上。
后来我看见另一只野兽从地里上来,它''有两只角,像绵羊羔的角'',开口说话时却像龙一样。 它在第一只野兽眼前,行使这只野兽的一切权力。它使地和住在地上的人都崇拜第一只野兽,就是受了致命伤后被治好的那只野兽。 它施行了惊人的神迹,甚至在人们眼前使火从天上降到地上来。
它得到权力在野兽眼前施行神迹,所以迷惑了住在地上的人。它吩咐他们为受过剑伤后复原的野兽造一座像。 它也有权把生命的气息吹进野兽的像,让兽像能说话,能杀死那些拒绝崇拜兽像的人。
它强迫所有人''在右手或额头上做记号'',无论贫富贵贱、自由人还是奴隶都要这样做。 谁没有记号,谁就不能做买卖。这个记号是野兽的名字,或代表它名字的数字。 谁洞悉隐情,就该算一算野兽的数字。这是人的数字,''就是666''。要明白这一点,就需要有智慧了。
!!! 荷马
河海 river ocean
!!! 俄耳浦斯 Orpheus
时间 ——> 混沌 ——> 夜晚、薄雾和热气(以太)
薄雾绕着中央的热气旋转,知道巨大的世界之蛋在飞旋中裂成两半,一半天一半地。再从天地中衍生出神。
!!! 赫西俄德 Hesiod
''混沌''生出[[黑暗(Erebus)|虚冥厄瑞玻斯 Erebus]]和[[夜晚 尼克斯(Nyx)|🌌黑夜女神尼克斯 Nyx]],还有[[👼爱神厄洛斯 Eros]]。
!! 最初的神(赫西俄德 Hesiod版本)
浑沌和大地最初的后代均系自然元素,宇宙的基本构成成分。 最 初的繁衍还具有二元对称的特点 :混沌生下的后代''两两对称'';大地则与自己的子女形成对比。
<<<
最早生出的是''[[浑沌|卡俄斯 Chaos]]'' ,
接着便是宽胸的''[[大地|🌍大地女神盖亚 Gaea]]''那所有永生者永远牢靠的根基。
永生者们住在积雪的[[奥林波斯山顶 |奥林匹斯山 Mount Olympus]],
道路通阔的大地之下幽暗的[[塔耳塔罗斯|😈地狱塔尔塔罗斯 Tartarus]],
还有[[爱若斯|👼爱神厄洛斯 Eros]]<<fnote "之后《神谱》不再提到这个角色">>,
永生神中数他''最美'',
他使全身酥软,
让所有神和人思谋和才智尽失在心怀深处。
<<<神谱
!! 浑沌和大地
<<<
[[虚冥|虚冥厄瑞玻斯 Erebus]]和漆黑的[[夜|🌌黑夜女神尼克斯 Nyx]]从浑沌中生。
[[天光|天光埃忒耳 Aether]]和[[白天|白昼赫墨拉 Hemera]]又从黑夜中生,
她与''虚冥''相爱交合,生下他俩。
''大地''最先孕育与她一样大的繁星无数的[[天|天空之神乌拉诺斯 Uranus]]<<fnote "在古希腊人眼里,''乌拉诺斯''作为宇宙组成元素,当如一个覆盖世界的盖子,''坚固而平坦''(参见《伊利亚特》卷十七,425;《奥德赛》卷十五,329),而''非半圆穹顶'':一则迈锡尼时代后并无这种天文观;二则[[阿特拉斯|阿特拉斯 Atlas]]顶着的天(517518),只能是平的,而不可能是半圆形。''天和地一样大,也一样平''。等份是古希腊人宇宙观里的一个显著特点,早期希腊地理学也具有同样特点。世界往往划分为几个同等大小、同等距离的部分。在古希腊宗教和神话里,乌兰诺斯作为从大地分离而出的部分,显得远远不是那么重要。相比之下,[[宙斯|⚡天神宙斯 Zeus]]才是真正的天神,乌兰诺斯仅仅作为第一代神王出现在神的谱系或天地分离神话、神权神话中。天空是男神,大地是女神。这与市埃及神话相反。''在古埃及人眼里,天是阴性,地是阳性''。从某种角度而言,古代神话往往把宇宙或世界的生成表现为“母子乱伦”的结果。">>,
他整个儿罩住大地,
是极乐神们永远牢靠的居所。
大地又生下高耸的[[丛山|⛰️山脉之神乌利亚 Ourea]],
那是山居的[[水泽仙子们|🧚🏻♀️宁芙 Nymph]]喜爱的栖处。
她又生下荒芜而怒涛不尽的大海[[蓬托斯|🌊海神蓬托斯 Pontus/Pontos]],
她未经交欢生下这些后代。
后来一一
<<<神谱
''混沌[[卡俄斯 Chaos]]''生出[[虚冥厄瑞玻斯 Erebus]]和[[夜晚 尼克斯(Nyx)|🌌黑夜女神尼克斯 Nyx]]。
黑暗和夜晚生下[[埃忒耳(Aether,“上空”)|天光埃忒耳 Aether]]、[[白昼赫墨拉 Hemera]]。(白天产生与黑夜)
接着大地之母[[🌍大地女神盖亚 Gaea]]也被创造出来。
''盖亚''又生下[[天空之神乌拉诺斯 Uranus]]、[[⛰️山脉之神乌利亚 Ourea]]、[[🌊海神蓬托斯 Pontus/Pontos]]。
----
<<showfnotes>>
! 东风神/东南风神
|!父母 |[[Astraeus|阿斯特赖俄斯 Astraeus]] and [[Eos|黎明女神厄俄斯 Eos]] |
|!对应罗马神 |Vulturnus |
丝卡蒂,Skadi、Skaði。是北欧神话中的一名女巨人,[[她的父亲是夏基(Thiazi)|夏基 Thiazi]],第一任丈夫是[[🪸近海之神涅尔德 Njord]],所以她也是[[弗雷(Freyr)|丰饶之神弗雷 Freyr]]、[[弗蕾亚(Freya)|女战神弗蕾亚 Freyja]]的继母。
和尼奥尔德分手后据说再嫁给[[乌勒尔(Ullr)|乌勒尔 Ullr]]或[[⚡众神之父奥丁(神圣) Odin]]。她热爱冬天和雪,喜欢山林和打猎,所以被视为冬天之神,又被称为“雪靴女神”(Öndurgud,Snowshoe Goddess)。
|!父母 |[[🪔普罗米修斯 Prometheus]] |
|!配偶 |[[皮拉 Pyrrha]] |
|!标志 ||
|!对应罗马神 ||
普罗米修斯的儿子/和洪水神话密切相关的英雄
丢卡利翁时代的洪水是由宙斯的愤怒引起的,它被伯拉斯加人的傲慢所点燃。因此,宙斯决定结束青铜时代。根据这个故事,阿卡迪亚的国王利卡翁将一个男孩献给了宙斯,宙斯对这种野蛮的献祭感到震惊。宙斯释放了一场大洪水,使河流汹涌澎湃,海水淹没了沿海平原,水雾吞没了山麓,把一切都洗得干干净净。''丢卡利翁在他父亲普罗米修斯的帮助下,通过建造一个箱子从这场大洪水中获救(一开始的版本里只有他和他的妻子,后来的版本里加入了动物)。''像《圣经》中的诺亚和美索不达米亚对应的乌特纳皮什提姆一样,__他利用这个装置和他的妻子皮拉(Pyrrha)一起在大洪水中幸存下来__。
<<<
在所有的山岭中,只有帕那萨斯( (Parnassus)山高过汹涌的波涛。普罗米修斯的儿子丢卡利翁( Deucalion)及其妻子皮拉( Pyrrha)—厄庇墨透斯的女儿在山上找到了避难所。丢卡利翁是一个正直的人,而皮拉则虔诚地信奉神灵。
天帝顾念那些无害的生灵和这一对夫妻的虔诚行为,喝令洪水下退—海水回到海岸,河水回到河道。丢卡利翁和皮拉走进一座已经被污泥弄得面目全非的庙宇,靠近那没有香火的祭坛,俯伏在地,乞求神灵的指点和保佑。神谕回答说:“离开庙宇,蒙住脸,松开袍子,把你母亲的骨头撒在身后。”他们听得目瞪口呆、惊恐万分。皮拉首先打破沉默说:“我们不愿意服从神令,我们不敢亵渎父母亲的遗体。”他们到林子里去搜索木材,但那个神谕一直在脑子里闪现。最后丢卡利翁说:“要么我的智力不够,要么那个命令需要我们虔诚地服从。大地本身就是万物的母亲,石头是她的骨头,让我们把这些石头抛在身后吧。我想,神谕的意思就是如此。至少,试一试,对我们没什么害处。”
''于是,他们俩蒙住了脸,松开了袍子,拣起一些石头,扔在了自己的身后。那些石头开始变软,并呈现出不同的形状,酷似人体。丢卡利翁所扔的变成了男人,皮拉所扔的则变成了女人。''这是一个艰难成长的种群,他们很好地适应了劳作生活。
<<<英美文学和艺术中的古典神话
!! Offspring
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
战争的起因是一个叫古尔薇格(Gullveig)的女华纳神带着[[华纳神族|华纳神族 Vanir]]的使命ࣿ到[[阿瑟加德|亚萨神国阿斯加特 Asgard]],她似是和亚萨神族理论两大神族哪个该受到人类的顶礼膜拜的,亚萨诸神却断定她ࣿ意不善,众神之主[[⚡众神之父奥丁(神圣) Odin]]首先将长矛掷向她以示宣战,众神也纷纷向她发动攻击。
然而,古尔薇格是一个有魔力的女神,尽管众神用长矛刺杀和用火烧死她达三次之多,她却每一次都能死而复活。正因为亚萨诸神胡乱格杀''古尔薇格''的缘故,愤怒的''华纳神族''正式向亚萨神族宣战了。
这是世界自混沌初开以ࣿ第一场宏大、惨烈的战争,两个神族的战士们都英勇无畏地在战场上拼杀,众神的矛头都沾满了敌人的鲜血。由于双方势均力敌,战争持续了许多年头,双方都遭受了巨大的损失。
最后,所有的神祗都厌倦了这场旷日持久的战争,也厌倦了诸神之间无谓的厮杀,于是,神族之间开始了和谈。为了长久保持两大神族之间的和平,不让战火在神的世界中再度燃起,''众神最后决定双方互相派遣人质''。亚萨神族送往华纳海姆的是[[海尼尔|维利(精神) Vili]]和智慧[[智慧巨人密米尔 Mimir]],华纳神族送往阿瑟加德的则是最杰出的华纳神[[🪸近海之神涅尔德 Njord]]和他的一对孪生儿女,[[丰饶之神弗雷 Freyr]]和[[女战神弗蕾亚 Freyja]]。
被派往华纳海姆的[[海尼尔|维利(精神) Vili]]看上去十分英俊,有一双长腿,奔跑起ࣿ很快捷,但是他在亚萨神族中却是一位''智力相对低下的人'',性情情木讷,脑子有点鲁钝,而且特别不善于说话。也许正因为如此,奥丁请智者''密弥尔''与他同行。老巨人能言善辩,因为长年喝智慧泉中的泉水,因而知识也极为广博,正好可以帮助''海尼尔''回答各种问题。
海尼尔和密弥尔到华纳海姆后,起初很是博得了华纳诸神的欢迎,华纳神族还让海尼尔当上了一个不大不小的首领。但是华纳诸神逐渐发现,''在所有的场合都是密弥尔这个老头在喋喋不休地说话'',解答他们提出ࣿ的种种问题;而一旦密弥尔不在的时候,海尼尔这个看上去高大英俊的亚萨神几乎是一无所知,从ࣿ都是愚钝而窘迫地回答不出哪怕是一个最简单的问题。
华纳诸神为此非常愤怒,强烈地感到受了亚萨神族的欺骗。因为华纳海姆送去的人质是他们中最出色的涅尔德、弗雷和芙蕾雅,而换ࣿ的却是一个无用而喋喋不休的老人和一个天生愚笨的亚萨神。于是,''华纳诸神一怒之下砍下了密弥尔的脑袋'',派人送往阿瑟加德,以示他们强烈的愤怒和不平。阿瑟加德的诸神在收到密弥尔的脑袋后,对华纳神族的这种做法也无可奈何。或许是他们本ࣿ就存有欺诈之心,或许是他们确实不愿再挑起战火,这件事至此也就不了了之。
当奥丁见到密弥尔的脑袋后,立即找ࣿ药草涂在伤口上,并念诵鲁纳文字的咒语对已被砍下ࣿ的脑袋施行法术,''密弥尔充满知识和智慧的脑袋在奥丁的努力下,竟能脱离身体而奇迹般地存活下ࣿ''。奥丁把这个脑袋小心地放在他宫殿的内室中,当他有什么疑难和困惑的时候,就ࣿ到密弥尔的脑袋旁,念动咒语,向他讨教。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
(覆盖以西结书20:1-23:49)时为公元前592年。流亡的百姓中有几位长者来见以西结,要求问耶和华。 他们从以西结所听到的是以色列人反叛上帝、崇拜可憎偶像的悠长历史,及耶和华警告他们,他已预备好刀剑要向这个国家执行判决。他必将耶路撒冷“倾覆、倾覆而又倾覆”。 可是,仍有光明的希望。耶和华会将王权(“冠冕”)赐给“持有合法权利”的人。(以西结书21:26,27)以西结把耶路撒冷——“流人血的城”——的可憎恶行复述一次。以色列人已变成“渣滓”,必被聚集在耶路撒冷城中,然后投进火炉里熔化。(以西结书22:2,18)
以西结以两姊妹为喻去说明[[撒马利亚 Samaria(以色列)|王国分裂]]和[[犹大|犹大国 Kingdom of Judah]]的不忠。''奥荷拉''就是撒马利亚,她与亚述人行淫,后来给情人杀了。''奥荷利巴''就是犹大,她不但没有学得教训,反倒行恶更甚。她先跟亚述行淫,然后跟巴比伦通奸。她必遭受彻底的毁灭,‘你们就知道我是至高统治主耶和华。’(以西结书23:49)
[[弗雷|丰饶之神弗雷 Freyr]](Frey,或Freyr,可等同于英格维(Yngvi)),[[🪸近海之神涅尔德 Njord]]的儿子,生于[[华纳神国 Vanaheimr]],所以他其实属于[[华纳神族|华纳神族 Vanir]],即海与风之神族。
当他和他的父亲及姐妹到[[阿瑟加德|亚萨神国阿斯加特 Asgard]]为人质的时候,''阿瑟加德''的诸神很欢迎他,给他美丽的[[精灵之国亚尔夫海姆 Alfheim]],让他管理那些如蝴蝶般飞舞在花草之间的小小的精灵(Elf)。
弗雷是''夏日金色阳光''及''温暖的夏雨''之人格化,他广施惠福于人类,而他管理的精灵也是与人类有益的小东西。它们受了弗雷的命令,帮助花草生长繁荣,又指挥蜂蝶工作,尽力去帮助人类。
阿瑟加德的神祗们又送给弗雷一把剑;这把无敌的胜利之剑<<fnote "能自行飞翔取敌首级。">>,是''日轮光辉的象征''。弗雷常用这把剑与霜巨人作战,因为他仇恨霜巨人,不亚于雷神[[托尔|⚒️雷神托尔 Thor]]。而地下善工艺的侏儒曾送给他一只[[🐷金毛猪古林博斯帝 Gullinbursti]],这野猪的金毛,一方面是象征着''金色的阳光'',另一方面也象征着''五谷的成熟'',因为弗雷是司丰穰之神,野猪(因为它以唇掘地)又是被视为教给原始人类以稼穑的。在这个意义上,弗雷是''稼穑之神'';他的侍者是女神''贝依拉(Beyla)'',她是''蜜蜂与牛奶之神'',且和她的丈夫一起被视为肥料之神。
弗雷有时骑野猪,有时则以其驾一金车;车中满载着果实和花朵,他将这些大量地撒布到地上。而除金毛野猪之外,他又有名为''勃洛度格霍菲(Blodughofi,血蹄)''的好马,以及[[🛶斯基德普拉特尼 Skidbladnir]],这船也是侏儒所造。
弗雷的妻子是霜巨人[[盖密尔(Gymir)|🌊荒海之神埃吉尔 Aegir]]的女儿[[吉尔达(Gerd)|吉尔达 Gerd]]。据《小埃达》所载,一天,弗雷偷偷坐上了奥丁的宝座[[🛋️希利德斯凯拉夫 Hlidskialf]],向冰冻的北方瞭望,看到一个极美丽的年轻女性正走进''盖密尔''的家。这位女性有着闪耀的金发,她焕发的容光简直能把北方冰冻的天和海照亮。于是弗雷就爱上了这位女性;但当他知道她是盖密尔的女儿、而且又是被诸神所杀的暴风雨巨人[[夏基 Thiazi]]的亲戚时,就知道这份恋爱是没有结果的了。
相思使人憔悴,身为神的弗雷竟也不能例外。他的父亲''涅尔德''忧之,令从者''史基尔尼尔(Skirnir)''问其故。经过史基尔尼尔的询问,弗雷才道出了真情;''史基尔尼尔''便请借''弗雷''的马和剑,自己到北方去做媒。弗雷都答允了。于是史基尔尼尔带了''十一颗金苹果''、[[𓏌戒指德罗普尼尔 Draupnir]],又摘取了泉水中映出的弗雷的面影,就到北方去了。
史基尔尼尔到了盖密尔的家,见到''吉尔达'',就先奉上金苹果、聚金指环以及弗雷的面影,可是吉尔达都拒绝了。史基尔尼尔乃掣出剑来,吉尔达仍然不怕。最后史基尔尼尔只好使用魔法;他用手杖划出鲁纳文字的咒语,说如果吉尔达不答应弗雷的求婚,就将永远孤守空闺,或者只能嫁一个又老又丑的霜巨人。这终于使美丽的吉尔达恐惧了,于是她答应在九天以后的晚上,于绿地蒲利和弗雷相会<<fnote "为报答史基尔尼尔说媒之功,弗雷把自己的胜利之剑给了他作谢礼。终有一天他会后悔的。">>。
在这个故事里,我们又看到对“冰冻的土地如何回春而万物生长”这一自然现象的解释。''吉尔达是“冰冻之地”的人格化'',她和[[琳达|琳达 Rindr]]拒绝奥丁一样,坚拒着温暖阳光的拥抱,但最后终于接受了。弗雷不得不等待的“九日”便象征着北方冬季的九个月。不过也有一种说法,认为''吉尔达是极光的人格化''。
弗雷在北欧也是很受崇拜的一位神,因而半历史的弗雷就也产生出来了。据斯诺里·斯特拉松的《挪威古史》记载,弗雷是继半历史的奥丁和[[涅尔德|🪸近海之神涅尔德 Njord]]之后的一位王。
在日耳曼和斯堪的纳维亚各地,弗雷有许多不同的称呼;而在''丹麦''他被称为''弗拉狄(Fradi,和平的or自由的)'',也被视为半历史的国君。
据说''弗拉狄''曾得一''魔法之磨'',能依人之意而磨出各种东西。弗拉狄令两个女巨人推磨,''磨出了“黄金”、“丰饶”和“和平”''。但弗拉狄䋾得无厌,不让巨人休息,她们乃思报复。
有一夜,她们在推磨时不唱“黄金”、“丰饶”、“和平”,而唱“战争”,于是引来了海盗,将睡梦中的丹麦人杀尽,劫二女巨人及磨俱去,载在他们的船上。海盗吩咐女巨人磨出盐来,因为当时盐稀有而昂贵。但海盗的残酷不亚于弗拉狄,女巨人还是不得休息,只能一直磨下去,盐产得过多,遂压沉了船。因为沉在水里的女巨人和磨还在继续磨,海中的盐越来越多,于是海水从此就变成了咸的。这个故事是解释海水何以会味咸的。
虽然“弗拉狄”无疑就是“弗雷”的一声之传,可这位丹麦的半历史国君在性格上已经和弗雷大大不同。古代的传说大抵都是这样混淆而错乱的。
----
<<showfnotes>>
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/3/38/Freyr_by_Johannes_Gehrts.jpg/440px-Freyr_by_Johannes_Gehrts.jpg"
caption:"Gullinbursti and Frey, 1901 painting by Johannes Gehrts."
width:"300px"
align:"right"
tooltip:"">>
弗雷属于[[华纳神族|华纳神族 Vanir]]。他是[[🪸近海之神涅尔德 Njord]]之子,母亲则说法不一,一说是女山神斯卡迪,另一说是尼约德之姊那瑟斯。而他的挛生妹妹是芙蕾雅,相传他和芙蕾雅亦有肌肤之亲。由于华纳神族对性的看法非常开放,所以近亲之间也可以有肉体关系。
在远古,阿萨神族和华纳神族这两神族曾经[[发生争战|两个神族的战争]],战斗持续很久且不分胜负,两边都感到厌倦了,最后双方约定和解并交换人质,于是兄妹俩便和父亲尼约德以人质身份来到[[亚萨神国阿斯加特 Asgard]]。弗雷在华纳海姆原先也属于''战斗的神祇'',但当到了阿斯嘉特后,便成为''司掌甘露、阳光和大地果实之神''。他是''夏日金色阳光''及''温暖夏雨''的人格化。
他住在精灵的国度—[[精灵之国亚尔夫海姆 Alfheim]]。而在他的管理下,精灵们帮助花草生长繁荣,他又指挥蜂蝶工作,尽力去帮助人类。弗雷的侍者是女神贝依拉,她的丈夫贝格维尔,夫妻二人同被尊为啤酒酒神和蜜乳酒神。
弗雷也因为屠杀海龙之王被称为“海之龙神”。
!! 弗雷的宝物
* [[🛶斯基德普拉特尼 Skidbladnir]]:神奇的宝船。此船是洛基因希芙之发事件中得到的由侏儒打造出来的船。可以任意放大缩小,展开时甚至可以装下所有的神和他们的所有武器;缩小时可以收到口袋里。
* [[🐷金毛猪古林博斯帝 Gullinbursti]]:金毛的野猪,这野猪的金毛一方面是象征了金色的太阳光,另一方面则象征了地面五谷的成熟。而多产的猪也是丰收之神的象征。
* 弗雷之剑:又称胜利之剑,无论谁掌握了这把剑,这剑便会随著持剑者的希望,独自在战场上飞舞杀戮敌人。可是后来弗雷为了得到心仪的女巨人葛德,将此剑给了史基尼尔,但此剑也不再为任何人作战,完完全全失去了魔力。结果在诸神的黄昏中,失去神剑的弗雷以鹿角和[[火巨人苏尔特 Surtr]]奋勇战斗,最后力战身亡。
* 布洛杜克霍菲(Blóðughófi):弗雷的马,意即“血蹄”,同时也号称“可以穿越烈焰的马”。
!! 弗雷之恋
一日,弗雷趁奥丁不在时,偷偷坐了奥丁的宝座至高王座(Hlidskjalf),相传坐在宝座上可以看到整个世界。这时弗雷看到了巨人国度里的一位美女——基米尔(Gymin)之女葛德(Gerd),并得了相思病。弗雷之父''尼约德''担心之馀,派遣随从史基尼尔去探问。
史基尼尔得知弗雷的心意后,自愿帮弗雷深入巨人之地求婚,史基尼尔请求弗雷将神马和神剑赐给他。带著宝物的史基尼尔成功见到葛德。葛德个性倔强,即使史基尼尔献上黄金苹果或以性命相逼,葛德也都不愿嫁给神。后来史基尼尔''威胁要以咒语诅咒她'',她才答应和弗雷的婚事。不过他们的婚姻相当美满幸福。
<<card
text:"
逾越节前六天,[[耶稣|🧔🏻♀️耶稣 Jesus c.4 BC-33]]来到伯大尼,也就是那个死后被耶稣复活的''拉撒路''居住的地方。有人在那里请耶稣吃晚餐。马大正在服侍众人,拉撒路和其他人跟耶稣一起用餐。这时候,[[马利亚|抹大拉的马利亚 Mary Magdalene]]拿了一瓶馨香油,是纯正的甘松油,非常贵重。她把油倒在耶稣的脚上,还用自己的头发把他的脚擦干。屋里充满了馨香油的香气。耶稣有一个门徒叫加略人[[犹大|✝️加略人犹大 Judas Iscariot]],是将要出卖他的,说:“为什么不拿这瓶馨香油去卖元,分给穷人?”他这样说不是因为他关心穷人,而是因为他是个贼,又掌管钱盒,常常偷里面的钱。于是耶稣说:“由她吧,让她为我安葬的日子守这个习俗。你们身边常有穷人,但不常有我。”
"
footer:"John 12:1"
>>
耶稣与12使徒共进逾越节晚餐之际,他在席上站起来,脱下外衣,拿一条毛巾和一个脚盆开始为门徒洗脚。彼得表示异议,但耶稣说"''我正在做的事,你目前不明白,但你以后会明白的。''"
然后耶稣劝勉门徒要跟从他所立的谦卑榜样,因为“仆人不能大于主人”。"人洗澡后就完全洁净了,他只需要洗脚。''你们是洁净的,但你们不是所有人都洁净''。"
<<card
text:"
“我蘸一块饼给谁,就是谁。”耶稣就蘸了一块饼,递给加略人西门的儿子犹大。犹大接过饼以后,撒但就入了他的心。于是耶稣对他说:“你要做的事,快点去做吧。”席上没有一个人知道耶稣为什么对他这样说。由于犹大掌管钱盒,有些人以为耶稣是吩咐他去买过节要用的东西,或者是吩咐他送点东西给穷人。他接过那一块饼,马上就出去了。当时天已经黑了。
"
footer:"John 13:28"
>>
犹大离去后,耶稣开始亲切地对其他人谈话。他说:“我赐给你们一条新命令,乃是叫你们彼此相爱;我怎样爱你们,你们也要怎样相爱。你们若有彼此相爱的心,众人因此就认出你们是我的门徒了。”(John 13:35)
!! 犹大出卖的场景
这里没有犹大亲吻耶稣的描写,而是耶稣自己承认了身份。
!! 受审及十字架上
这里也是耶稣穿''紫色''袍子。
这里写的是耶稣自己扛着''苦刑柱''<<fnote "处死耶稣的刑具,这个词译自希腊语词“斯陶罗斯”,意思是一根直立的木柱或桩子。没有任何证据表明这个希腊语词指十字架。十字架其实是在耶稣诞生前多个世纪,异教徒已经使用的宗教标志。“苦刑柱”这个译法充分表达出原文的意思,因为“斯陶罗斯”有时也代表跟随耶稣的人会经历的折磨、苦难和羞辱。">>,(其他书是由一个叫西门的人扛。)
“他们在那里把耶稣钉在木柱上,旁边还有两个人,一个在左边,一个在右边,耶稣在中间。19 彼拉多还写了个罪名,安在苦刑柱上。上面写着:“拿撒勒人耶稣,犹太人的王。”20 很多犹太人都看见了这个罪名,因为耶稣被钉在木柱上的地方离城不远,而且罪名是用''希伯来语、拉丁语和希腊语''写的。” (其他书没有写用三种语言)
没有写耶稣具体多久以后死去。
<<card
text:"
由于当天是预备日,为免尸体到''安息日''还留在苦刑柱上(因为那个安息日是大安息日),犹太人就请求彼拉多派人打断犯人的腿,把尸体拿走。于是士兵来把耶稣旁边木柱上的第一个人的双腿打断,又把第二个人的双腿打断。可是,他们来到耶稣那里,见他已经死了,就没有打断他的腿。不过有一个士兵用''矛刺他的肋旁'',立刻有血和水流出来。
"
footer:"19:31"
>>
----
<<showfnotes>>
丹麦人的国王埃尔弗(Alf),娶了[[希奥尔迪丝 Hiordis]]
《路加福音》第3章第1节至《路加福音》第4章第13节。
当时是作为凯撒的[[提贝里乌斯 Tiberius 42 BC-37]]在位第15年(公元27年),上帝的宣告临到''撒迦利亚''的儿子[[🗣️施洗约翰 John the Baptist]]身上,于是他出去“传讲象征悔改和赦罪的浸礼”,好使所有人都“看见上帝施行拯救的方法”。当百姓都在约旦河受浸之际,[[🧔🏻♀️耶稣 Jesus c.4 BC-33]]也受了浸。
他祷告的时候,圣灵降在他身上,他的天父从天上对他表示嘉许。这时,耶稣约30岁。
耶稣受浸之后,圣灵带领他在旷野里逗留了40天。在那里,撒旦对耶稣提出试探,但却一败涂地,于是就退去,“等候别的机会”。(这里没有提到天使继续守护他)
''主天使''(英语:Dominions,拉丁语:Dominationes,希腊语转写:Kyriotētes;以上均为复数形式)见于哥罗森书一章16节及厄弗所书一章21节,天主教译作宰制者或宰制天使,基督新教译作主治的,东正教译作统权天使;是中古时代基督教神学所描述的天使等级中的一种,该天使属于第二级第一等,所''执掌的工作为“管理天使的工作”'',亦即管理更下层级天使,以及上帝及上级天使的命令,来管理宇宙的秩序。
主天使也有被译为''“权天使”''的情况,与第三级第一等同名。
乌勒尔,Ullr、Ull。原本是日耳曼语圈中一个重要的神,却渐渐在时间的推进下而被人遗忘,成了默默无闻的神。他是北欧神话中的''冬神、雪神、箭术及狩猎之神''。名字的意思有“光荣”(或)之意。
神话中提到,他是[[希芙 Sif]]的儿子,[[⚒️雷神托尔 Thor]]的继子,他总是穿著雪靴,背著弓箭在山里打猎,他是众神中的''射箭高手'',他的住所是紫杉谷(Ydalir),因为紫杉木是制箭的好材料。
北欧的雪靴形状像盾,所以盾也称作“''乌勒尔的船''”,另外他又有“''盾神''”的绰号。女巨人[[丝卡蒂(Skadi)|丝卡蒂 Skadi]]的第一次婚姻,因为和[[尼奥尔德(Njord)|🪸近海之神涅尔德 Njord]]彼此兴趣不合而失败。后来,丝卡蒂和尼奥尔德分手后改嫁乌勒尔,这次因为双方的喜好相同而生活美满。身为雪神的他在冬天来临时,会取代奥丁的地位。
又称吾珥,《圣经》称是[[亚伯拉罕 Abraham]]的诞生地
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
乌拉诺斯给自己的小孩起名为[[泰坦 Titans]],并''诅咒''他们越来越坏,最后会得到报应。(这个诅咒将随着宙斯的复仇而得到实现)
<<<
于是父亲给他们一个浑名叫提坦,
广大的天神恨自己所有的孩子们。
他说,这些苗子死命地往坏里长,
总有一天,他们要为此''遭到报应''<<fnote "这个说法为宙斯征服提坦并把他们闪禁在塔耳塔罗斯做好铺垫。在[[乌拉诺斯|天空之神乌拉诺斯 Uranus]]和[[该亚|🌍大地女神盖亚 Gaea]]的指引下,[[宙斯|⚡天神宙斯 Zeus]]蒙骗了[[克洛诺斯|🌾丰收之神克洛诺斯 Cronus]],救出那些被父亲所吞噬的弟兄,复仇之路就此展开。">>。
<<<神谱
---
<<showfnotes>>
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/6/68/Wepwawet_standing.svg/400px-Wepwawet_standing.svg.png"
caption:"“开路者”乌普奥特,通常被描绘成''白/灰色毛发''的狼或胡狼,注意勿与[[阿努比斯|阿努比斯 Anubis]]混淆。"
width:""
align:"right"
>>
乌普奥特(Upuaut)是埃及神话的战神,形象是狼、胡狼或狼头人身,父亲是[[赛特|赛特 Set]],母亲是[[奈芙蒂斯|奈芙蒂斯 Nephthys]]。其名字的意思是“''开路者''”,常被描述为站立在太阳船的船首或为军队的进路进行侦查。
信仰中心在利科波利斯(Lycopolis),希腊文意即“狼之都”。
\import $:/scripts/CreateTaskMacro
\define newTask()
<$button class="button-border">New
<$action-sendmessage
$message="tm-new-tiddler"
title="New Tiddler"
tags="""[[$(currentTiddler)$]]"""
text="This is a new tiddler."
img=""
name=""
symbols=""
sex=""
consort=""
due-date=<<now "[UTC]YYYY0MM0DD">>>
Create New Tiddler
</$action-sendmessage>
</$button>
\end
<div class=float-right>
<<newTask>>
</div>
<<table-dynamic
filter:"[tag[九柱神 Ennead]]"
sortOp:"sortan"
fields:"tbl-expand title img name symbols consort sex"
caption:"在太阳神的崇拜中心[[赫利奥波利斯 Heliopolis]] 受到崇拜的九位神祗,是埃及神话中九位最重要的神祗。"
pagination:yes
class:"w-100 table-left"
>>
|!父母 |[[🤬不和女神厄里斯 Eris]] or [[天光埃忒耳 Aether]] and [[🌍大地女神盖亚 Gaea]]|
|!标志 ||
|!对应罗马神 |Altercatio |
In Greek mythology, the Neikea[pronunciation?] (Ancient Greek: Νείκεα; singular: Νεῖκος Neikos "''quarrels''") were ''spirits of arguments, feuds, quarrels and grievances''. Their Roman counterpart was Altercatio.
|!父母 |[[🤬不和女神厄里斯 Eris]] |
|!标志 ||
|!对应罗马神 ||
!! Personifications of Battle
In Greek mythology, the Machae or Machai (/ˈmækiː/; Ancient Greek: Μάχαι Mákhai, "battles"; singular: Μάχη Mákhē) were ''the daemons (spirits) of battle and combat''.
<div>
<<toc-selective-expandable "事件">>
</div>
圣灵降临日(天主教会译为圣神降临节),俗称为五旬节。源自犹太人三大节期之一七七节。犹太教按犹太历守节期,纪念以色列人出埃及后第五十天〔由出埃及记19:1之记载:以色列人出埃及以后,满了三个月(英文译得更贴近原文:In the third month,指三月的第一天)的那一天,就来到西奈的旷野。及出埃及记19:11之记载:到第三天(指三月的第四天)要预备好了,因为第三天耶和华要在众百姓眼前降临在西奈山上。〕,耶和华在西奈山颁给摩西《十诫》的日子;基督教的圣灵降临节的日期则定在复活节后第50天和耶稣升天节后10天。
!! 起源
五旬节源于七七节,以色列人要从尼散月25日(七日的第一日)——大祭司将一捆新熟的大麦献给神作为初熟果子的那天,数算七个星期。这一共是49天,然后他们会在第50天守七七节。当后来一群犹太人将圣经译成希腊文时,希腊文的“第50”(日)一字是宾特哥斯提(pentecostē′)。因此,说希腊语的犹太人遂将七七节称为宾特哥斯特(英文Pentecost,五旬节)。
圣经利未记23:15-21记载:“‘你们要从安息日的次日,献禾捆为摇祭的那日算起,要满了七个安息日。到第七个安息日的次日,共计五十天,又要将新素祭献给耶和华。要从你们的住处取出细面伊法十分之二加酵,烤成两个摇祭的饼。…祭司要把这些和初熟麦子作的饼,一同作摇祭,在耶和华面前摇一摇,这是献与耶和华为圣物归给祭司的。当这日,你们要宣告圣会,甚么劳碌的工都不可作,这在你们一切的住处,作为世世代代永远的定例。’”
五旬节是从初熟节(利23:10-11,15-17)开始算起的第50天(第七个安息日的次日),所以称之为五旬节。在犹太教,这一天是摩西在西奈山领受耶和华所给与的《十诫》的日子,也是“感谢律法的纪念日”。这个节日同时也用来感谢耶和华赐与的收获,所以又称收割节,是犹太人的三大节期之一。
对基督宗教来说,五旬节就是《圣经·使徒行传》(天主教译《宗徒大事录》)第二章所载圣灵降临早期基督徒之事件日期。此记载在五旬节当天,圣灵(圣神)倾注在门徒身上,使门徒得力量与说方言的恩赐,向别人传扬福音。有鉴于此,这被认为是早期基督教会成立之日子。但关于圣灵降临节的庆祝,最早记载是在四世纪末,由西班牙修女以塞利亚所写的《朝圣记》所记。五旬节亦是圣灵降临期的开始。
son of [[Amram]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[num]]">>
亚伯是亚伯拉罕宗教《创世纪》中的一个圣经人物。他是该隐的弟弟,也是《圣经》历史上第一对夫妇亚当和夏娃的小儿子。''他是一个牧羊人,将自己头生的羊群献给上帝作为祭品。上帝接受了他的祭品,但没有接受他弟弟的祭品。该隐因嫉妒而杀死了亚伯。''
根据《创世纪》,这是第一起谋杀案,''亚伯是人类历史上第一个死去的人''。
''亚伯拉罕''(意为“''多国之父''”),原名作''亚伯兰''或亚巴郎(Abram,意为“''崇高之父''”),是[[亚伯拉罕诸教|亚伯拉罕诸教 Abrahamic religions]](犹太教、[[基督教|基督教 Christianity]]和[[伊斯兰教|伊斯兰教 Islam]]等宗教)的先知,是上主从地上众生中所拣选并给予祝福的人。同时也是包括希伯来人和阿拉伯人在内的闪米特人的共同祖先。
!! 羔羊
从亚伯拉罕向上帝的献祭开始,羔羊便成了犹太教徒表达虔诚的标志,并逐渐出现在各种艺术作品之中。
!! 相关事件
* [[耶和华与亚伯拉罕的交往]]
* [[驱逐夏甲|夏甲 Hagar]]
* [[献祭以撒|以撒 Isaac]]
!! Offspring
* 和[[撒拉 Sarah]] <<list-links "[tag[撒拉 Sarah]] +[sort[num]]">>
* 和[[夏甲 Hagar]] <<list-links "[tag[夏甲 Hagar]] +[sort[num]]">>
* 和[[基土拉 Keturah]] <<list-links "[tag[基土拉 Keturah]] +[sort[num]]">>
''亚伯拉罕诸教'',又称''亚伯拉罕宗教''、''亚伯拉罕一神诸教''、''天启宗教''、''天启诸教''、''沙漠一神诸教''、''闪族一神诸教''、''闪米特一神诸教''、''闪米特诸教''等,<span class="highlight">指世界主要的三个有共同源头的一神教──__基督宗教__(包括天主教、基督新教与东正教)、__伊斯兰教__与__犹太教__。</span>如此称呼,皆因这三个宗教均给予圣经旧约中的''亚伯拉罕''(阿拉伯语译作易卜拉欣)崇高的地位,且均发源于西亚沙漠地区,来源于闪米特人的原始宗教。广义的沙漠宗教或闪米特宗教还包括当地或其族群中曾经存在的其他多神宗教,尽管现在通常直接用来指这三种一神教。
!! 共通之处
''三大宗教均有信奉唯一真神的教义,也都将亚伯拉罕视为信仰上的始祖。''
!!! 共同的源头
可以说,犹太教、基督教、伊斯兰教均源自同古老的一神教——''崇拜宇宙唯一的造物主'',信奉者对衪有多个尊名,基督宗教与犹太教在中文名曰上帝、耶和华或雅威,伊斯兰的穆斯林在中文则名曰真主、安拉。
!!! 共同的祖先
犹太人与阿拉伯人都认为亚伯拉罕(易卜拉欣)是他们的祖先。他本人在基督徒、穆斯林中亦有很高地位。在基督教信仰中,亚伯拉罕是信心之父,《古兰经》中则称易卜拉辛为“众人的师表”(2:124)。
!!! 共同的圣地
''耶路撒冷''(穆斯林称为''古都斯'')是三大闪米特一神教的共同圣地。
* 城中有对犹太人有重大意义的西墙。
* 基督徒相信耶稣亦是在圣地被钉十字架,是重要的朝圣地点之一。
* 耶路撒冷则是伊斯兰教的第三圣地,穆斯林相信先知穆罕默德的夜行登霄就是圣地中出发。
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[list]'/>
</div>
''亚兹拉尔'' (Azrael,One Whom God Helps)亦作Azrail、Ashiriel、Azriel,伊斯兰教的四大天使之一。在伊斯兰教中,亚兹拉尔即手操生死簿的“死亡天使”,伊斯兰教最初真主(阿拉)派米卡尔(米迦勒)、吉布列(加百列)、伊斯拉菲尔和亚兹拉尔四位天使创造人类,而亚兹拉尔最先作出人类而授权得到记录人类生死的天使。他在末日审判是吹响第二支喇叭的天使,也将是最后一位死的天使。
亚兹拉尔将世间所有人的名字都写在神座后生命之树的叶子上,当一个人将死时,写著名字的叶片即枯落,当亚兹拉尔拾起念出名字后,这个人在四十天后就会死亡。成语“the Wings of Azrael”的意思就是指死亡即将来临。
四颜四翼的天使,身体上披满了毛皮,毛皮下是无数眼睛,这些眼睛每一个都注视着世间每一个人,当眼睛闭上的时候,也就是人要死亡的时刻。
son of [[哈及 Haggith]] and [[👑大卫王 David]]
[[David|👑大卫王 David]]'s second wife, the mother of Amnon, David's ''first-born''.
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[num]]">>
son of [[Carmi,son of Zabdi]]
相关事件
* [[火烧艾城 Joshua Burns the Town of Ai]]
亚当是《创世纪》中对人类始祖的称呼。
亚当共活了''九百三十岁''就死了。(5:5 Genesis)
!! Offspring
<<list-links "[tag<currentTiddler>] +[nsort[num]]">>
son of [[以利亚敬 Eliakim, son of Abiud]]
son of [[基甸 Gideon]]
!! 相关事迹
[[暴君亚比米勒]]
son of [[所罗巴伯 Zerubbabel]]
second son of [[撒母耳 Samuel]]
Ásgarðr,是[[亚萨神族 Aesir]]的地界,亦可称作阿萨神域,所有尊奉奥丁为主神的神明都住在这里。
据说阿斯嘉特和人类世界[[米德加尔特(Midgard)|人类之国米德加尔德 Midgard]]是分开的。不过,也有早期的研究者指出,阿斯嘉特很可能是座著名的城堡,而被误以为是神的领域。
环绕著阿斯嘉特的城墙,据说是巨人亲手打造的(经常被错认为是''霜巨人''的杰作,其实是一位''山巨人'',真正的名字无人知晓),众神与他打赌,只要他在六个月内将城墙建好,在他结婚当天就会收到[[华纳神族|华纳神族 Vanir]]的女神''[[弗蕾亚|女战神弗蕾亚 Freyja]]''拥有魔法的手作为报酬。为了避免巨人成功在约定时间内完成建造,邪神''[[洛基|🦹邪神洛基 Loki]]''化身成雌马诱骗巨人的神驹斯''瓦迪尔法利''(神驹才是真正进行城墙建造的劳动力)。也因此,巨人并未能在赌约的时间完成工作,于是众神拒绝给予其报酬。(查看[[使诈建城堡]])
[[💂🏻破晓之神海姆达尔 Heimdallr]]是阿斯嘉特的守护者,为了肩负这样的任务,诸神让他拥有最好的眼睛,即使在黑夜中也可看到极远。给他非常灵敏的耳朵,连草木、羊毛生长的声音也可听到,而且日夜不休息也不会疲惫。他还拥有一个名为“''加拉尔''”的警告号角。
''艾达华尔平原''位于阿斯嘉特的中心,是阿萨神族集合并讨论重要事件的地方。男性众神们在被称为“''金宫''”的大殿中会面,女神们则聚集在一个叫“''梵格尔夫''”的大殿中。除此之外,众神们每天还在[[🌲世界之树 Yggdrasil]]下方的[[⛲乌尔达泉(命运之泉) Urdarbrunnr]]见面。
{{aesir.mp3}}
''亚萨神族'',或阿萨神族(古北欧语:Æsir [ˈɛ̃ːsez̠])是北欧神话中主要的神族,成员包含[[⚡众神之父奥丁(神圣) Odin]]、芙丽嘉、霍德尔、巴德尔,和索尔。北欧神话中共有两神族,另一个为人数较少的[[华纳神族 Vanir]]。两神族长年征战,最后以人质交换作为条件停战,结为同盟。
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
亚设,是[[雅各|雅各 Jacob]]的第八个儿子,[[利亚|利亚 Leah]]的使女[[悉帕|悉帕 Zilpah]]为雅各所生的''第二个儿子'',亚设支派的祖先。(见《圣经》创世记)
亚设的意思是“''有福''”。
雅各临终以前,这样祝福亚设:“亚设的''食物丰美'',他必出君王的美味。”(创世记49:20)
摩西的祝福:“愿亚设享受多子的福乐,得他弟兄的喜悦,可以把脚蘸在油中。你的门闩注是铜的,铁的。你的日子如何,你的力量也必如何。”(申命记33:24-25)
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
''斯托剌''(Stolas),所罗门王72柱魔神中排第36位的魔神,统帅26个军团。
在《所罗门之钥》内,是以''猫头鹰或乌鸦''的形象出现在召唤者面前。宛如博学家,感受不到任何邪恶之气的恶魔。在《地狱辞典》中出现的形象是一只猫头鹰,但双脚细长且戴著王冠,仪态高雅。可应召唤者要求以人形出现。''天文学''的知识相当丰富。授人以天文学以及艺术,还可以''甄别药草与宝石''。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/8d/Ill_dict_infernal_p0651_stolas.jpg/440px-Ill_dict_infernal_p0651_stolas.jpg">
<div class="desc">《地狱辞典》中的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c7/36-Stolas_seal.png/440px-36-Stolas_seal.png">
<div class="desc">Seal of Stolas</div>
</div>
</div>
欧若博司,是所罗门七十二柱魔神中排第55位的魔神。对于神与天地创造等事情相当精通。可以通晓古今和预言未来,平抑仇恨。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/0a/Orobas.png/440px-Orobas.png">
<div class="desc">《地狱辞典》中的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/62/55-Orobas_seal.png/440px-55-Orobas_seal.png">
<div class="desc">Seal of Orobas</div>
</div>
</div>
瓦沙克,是所罗门七十二柱魔神中排第3位的魔神。瓦沙克在恶魔的世界传闻是一位强大的王子,称号“''预言贵公子''”,统帅26个军团。据说通晓过去现在未来之事,会被寻求智慧之人所召唤,能够发现被隐藏或丢失的事物。拥有一个''良善的本质'',是恶魔中少数的性格温和者,通常会以披著长袍的贤者姿态出现。
有人将他的外表描述得和[[阿加雷斯|公爵 阿加雷斯 Duke Agares]](Agares,所罗门七十二柱魔神中的第2柱)一样,所以经常把两者视为同一位魔神。也有另一种说法说他的脸如同__一个倒三角形的头盖骨__,延伸到下颚的两眼看不见任何物体,但是却能透过异次元而看见过去未来。他也是''知识探求者们''常会召唤的恶魔之一。
<div class="gallery">
<div class="img-container">
<img src="img/vassago.png">
<div class="desc">Image of Vessago, generated by DELL-3</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/3/37/Vassago_Seal.jpg">
<div class="desc">Seal of Vassago</div>
</div>
</div>
系尔,是所罗门七十二柱魔神中排第70位的魔神,别号“''祈愿贵公子''”,受东之王巴力所支配。
掌握事务的运行原理,''能够将物体瞬间移动''。''是骑在飞马上的男子''。能在眨眼之间环绕世界。可以抢劫或寻找隐藏的物品,并带来好运。俊美且天性善良,但性格冷漠。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/42/70-Seere_seal01.png/440px-70-Seere_seal01.png">
<div class="desc">Seal of Seere</div>
</div>
</div>
''西迪''(Sytry、Sitri),为所罗门王72柱魔神中排第12位的魔神。地狱王族的一员,70支地狱师团的指挥官。
相传出现在召唤者面前,会以各种野生动物的头加上一对有翼人身出现。‘伪以诺书’的恶魔目录中亦载有其名,在书当中最常出现的样貌是''豹头人身、长有狮鹫兽的翅膀''。有时会以''年轻俊美的裸体男子''样貌现身。是掌管''情欲、热情''的恶魔之一。别名“毕特鲁”(''Bitru'')。能够帮助召唤者的恋爱。能力有两种说法:
# 《伪以诺书》记载为‘可以在召唤者面前,唤出任何想唤出的女性,并使其裸身’
# 《地狱辞典》写道‘使召唤者心仪的对象爱上召唤者。并曝露对方一切的情报与隐私,而非裸身’
<div class="gallery">
<div class="img-container">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Sitri_Seal.jpg/400px-Sitri_Seal.jpg">
<div class="desc">Seal of Sitri</div>
</div>
</div>
----
<<showfnotes>>
''贝雷特'',为所罗门七十二柱魔神中排第13位的魔神,位阶为王,统帅85个军团。别名“表雷特”(''Belieth'')、“比雷斯”(''Bileth'')、“比雷特”(''Byleth'')等。
拥有令人感到恐怖的强大力量,原本是一位[[能天使|能天使 Powers(Exusiai)]],祂一直期待著有朝一日能够重返天界,不过直到目前为止似乎还没能如愿。大约也正因为这个原因,使得贝雷特的''脾气非常暴躁,极度厌恶被人召唤'',于召唤者面前,常骑著苍白色(青色)、且气色不佳的马匹,在下级恶魔们演奏著号角等乐器之下出现。满脸怒气现身,令召唤者望而生畏。
如果一定要召唤贝雷特,必须对他表现出崇敬王者般的敬意,此外最好在''中指上佩戴一枚银环避免受到他怒气的灼伤''。但面貌仪态却没有详加记载。
能力是能使男女之间的''爱情萌生''。能够让召唤者得到心仪的人之爱,无论是男人还是女人的爱,直到召唤者满意为止。原记载典籍《所罗门之钥》也提到,召唤时要注意对其的礼仪。不然的话,他是绝对不会接受任何的术者的请求。
贝雷特性格非常暴躁,如果想要他平静下来,必须让他手执一只橡木手杖,朝东南方走一个三角形,而不是圆形。为了日后能命令他,必须接著用契约和魔法指令来控制他。如果他不愿意走进三角形,你可以威胁他,在他面前展示你的契约和魔法阵,他就会屈服,遵照你的命令行事。但是,毕竟他是一个伟大的国王,你必须对他谦恭知礼,尊敬有加,在他面前,你必须一直在左手中指上戴著银戒,像对待一个真正的国王或王子那样的服侍他。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Byleth.png/440px-Byleth.png">
<div class="desc">Byleth, an illustration from the Dictionnaire Infernal by Jacques Collin de Plancy</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/23/13-Beleth_seal01.png/440px-13-Beleth_seal01.png">
<div class="desc">Seal 1 of Beleth</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/12/13-Beleth_seal02.png/440px-13-Beleth_seal02.png">
<div class="desc">Seal 2 of Beleth</div>
</div>
</div>
人类世纪是根据希腊神话划分的人类生活在地球上的不同时代。两位古典著者分别对其进行了划分,其开始于人类起源时期到著者生活的时期。
!! 赫西俄德的五个时代
第一种划分的方式来自古希腊的诗人赫西俄德的著作《工作与时日》(第109到201行):
!!! 黄金时代 Golden Age
黄金时代是唯一在[[🌾丰收之神克洛诺斯 Cronus]]统治下的时代。其被描写为人类生活在神之间,并和神祇们任意来往。 整个时代充满了和平与和谐。人类并不需要为了养活自己而辛勤劳动,因为大地会自己长出食物;人类能以年轻的外貌度过漫长的岁月,直到时间到了,他们会和平虔诚地接受死亡,他们的灵魂会变成精灵,环绕著大地。 柏拉图在《克拉底鲁篇》中再次阐述了人类的黄金时代。他阐明赫西俄德使用黄金这一词,并不是指人类是用黄金制作的,而是指当时人类的美好和高贵。他将这些人类描述为地球的精灵(Daemons),因为希腊语中δαίμονες (daimones,精灵)是从δαήμονες (daēmones,智慧或知识)中派生出来的。神对这些人类是仁慈的,让他们远离疾病,并守护着他们。
!!! 白银时代 Silver Age
白银时代开始于[[⚡天神宙斯 Zeus]]的统治。人类在这个时代会度过长达百年的幼儿期,而他们的成人期却显得相对短暂;当他们成年后,却将时间花费在相互冲突。在这个时代中,人类拒绝听从神的旨意,宙斯因此而被激怒,决定惩罚人类。因此这一代人类死后会成为冥界的"受祝福的灵魂"。
!!! 青铜时代 Brozen Age
青铜时代的人类开始过上艰苦的生活。他们酷爱战争,他们不仅用青铜制造盔甲和武器,也用青铜武装他们的房子。宙斯赐予他们强壮高大的肉体,但是也给了他们残忍的心灵。这代人类死后,其灵魂将失去一切,坠入"[[💀冥王哈迪斯 Hades]]的黑暗地府"。
!!! 英雄时代 Heroic Age
英雄时代是一个过渡的时代,也是唯一的比其上一个时代好的时代。在这个时代人们和高贵的半神以及英雄共同生活。这些英雄最终被卷入残酷的战争之中(包括底比斯的战争和特洛伊战争)。他们死后会前往“极乐世界”,得以享受幸福而安定的生活,没有烦恼,衣食无忧。
!!! 黑铁时代 Iron Age
赫西俄德生活的时代被他命名为黑铁时代。在这个时代里,人类生活得痛苦而悲惨。人类妄图统治一切,儿童不再信任父母,朋友不再相互信任,主人对待客人不再热情,婚姻中的人们不再相爱,誓言也被他们视为尘埃。善良与公正已经不再被他们当作行为的准则,权力代表了正确,谎言代替了真诚。人类再也没有了羞耻之心,最终神对人类失去了希望,众神永远地抛弃了人类:"人类将再也得不到战胜邪恶的帮助和庇护"。
!! 奥维德的四个时代
古罗马的诗人奥维德在他的著作《变形记》中也将人类世纪划分为相似的四个时代,只是将英雄时代除去。
奥维德用强调公正与和平定义了''黄金时代'',他还补充到,在这个时代,人类还不懂得航海技术,也没有对世界进行探索。
在''白银时代'', [[朱庇特|⚡天神宙斯 Zeus]]为人类带来了四季,人类开始学习农业和建筑。
对青''铜时代'',奥维德描写到,人类陷入战争,但仍然保持著对众神的信仰。
最后的''黑铁时代'',人类将土地划分为国家,他们学会了航海和挖矿的技术,他们狂热于战争,失去了信仰,变得无比的贪婪。真理、谦逊和忠诚再也无处可寻。
<a href="https://www.wikiwand.com/zh-hans/人类世界_(北欧神话%29">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/f/f1/Norse_Nine_Worlds.jpg"
caption:"北欧神话九世界"
width:"400px"
align:"right"
tooltip:"">>
</a>
Miðgarðr,又译作''中土、中间世界''。北欧神话中人类居住的地方,为九个世界之一。
米德加尔特位于世界之树(古诺斯语:Yggdrasill)中央某处,是人类唯一可见全貌的世界。周围有深海环绕,海中住著足以环绕米德加尔特的巨蟒耶梦加得(Jörmungandr)。
# ''北方''为[[雾之国尼弗尔海姆 Niflheim]]
#''南方''为[[火之国穆斯帕尔海姆 Muspelheim]]
# ''西方''为[[华纳神国 Vanaheimr]]
# ''东方''为巨人居住的[[巨人之国尤腾海姆 Jotunheim]]
# ''上方''为[[精灵之国亚尔夫海姆 Alfheim]]
# ''最上方''为阿萨神族所居住的[[亚萨神国阿斯加特 Asgard]]
# ''下方''为[[地精之国斯瓦塔尔法海姆 Svartalfaheim]]
# ''地底''则为[[冥界 Helheimr]]
米德加尔特四周环绕以原初巨人[[霜巨人伊密尔 Ymir]]的睫毛所做成的栅栏,目的为防止巨人族入侵,栅栏本身也称作''米德加尔特''。栅栏内有''彩虹桥(Bifrost)''通往上方的阿斯加特。
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
希腊人认为''人是从树木、石头、河流或者海洋里生出来的。''
有人说人和神都是大地母亲繁衍出来的,有人则说人和神一样历史久远。无论如何,所有的故事都有一个共同的方面——''众神和人类保持着密切的关系,直到他们收回对人类的恩惠,因为人类越来越自负,越来越罪孽深重。''
<<list-links "[tag[人类英雄及国王]]">>
! 热诚(Zeal)的化身
是代表奉献、竞争、渴望竞争、嫉妒、嫉妒和热情的守护神。英文“zeal”一词来源于他的名字。
|父母 |[[Pallas|帕拉斯 Pallas]] and [[Styx|斯堤克斯 Styx]] |
|对应罗马神 |Invidia |
他拉,是《圣经-[[创世纪|创世纪 Book of Genesis]]》中的人物。他被列为拿鹤的儿子和族长[[亚伯拉罕|亚伯拉罕 Abraham]]的父亲。因此,他是[[闪|闪姆 Shem]]的儿子亚帕沙德的后裔。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
wife of [[珥 Er]]
和自己的公公犹大有两个孩子,见[[犹大 Judah (son of Jacob)]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
''Fairy'' (also ''fay'', ''fae'', ''fey'', ''fair folk'', or ''faerie'')
仙女的历史起源范围从伊朗神话到欧洲民间传说,如布吕顿人(布列塔尼人、威尔士人、康沃尔人)、盖尔人(爱尔兰人、苏格兰人、马恩岛人)和日耳曼人,以及中世纪法国中世纪的浪漫故事。
根据一些历史学家,如Barthélemy d'Herbelot,仙女''被采用并受到伊朗神话的影响''。Peris是古代伊斯兰教前波斯的天使,早在阿契美尼德帝国时期就被提及。Peris后来在各种波斯作品中被描述得非常详细,如费多西的《沙赫纳赫》。Peri被描述为公平、美丽和奢侈的自然精灵,由翅膀支撑。这可能对迁徙到欧洲的日耳曼和欧亚定居者产生了潜在的影响,或者在早期交流中得到了传播。 这些相似之处也可以归因于共同的原印欧神话。
在中世纪,'fairie 被用作形容词,意思是“被施了魔法”(如精灵骑士、精灵女王),但在中古英语晚期也成为各种“被施了魔法”的生物的统称。伊丽莎白时代的文学将精灵与浪漫文化的仙女混为一谈,使这些术语在某种程度上可以互换。狭义上的“童话”的现代概念是英国民间传说所独有的,后来根据维多利亚时代的流行口味而缩小,如儿童的“童话”。
维多利亚时代和爱德华时代对仙女的兴趣日益增加。凯尔特复兴将仙女作为爱尔兰文化遗产的一部分。卡罗尔·西尔弗斯 (Carole Silvers) 和其他人认为,英国古物收藏家的这种迷恋源于对更大程度的工业化和古老民俗风情丧失的反应。
在故事中,代达里翁在他的女儿[[Chione|卡俄斯 Chaos]]死后悲痛欲绝,他试图将自己从帕纳索斯山上扔下,结果被阿波罗变成了一只鹰。
以东(英语:Edom/ˈiː.dʌm/)是一个位于外约旦的古代王国,位于''南黎凡特'',其东北边是摩押,西边是阿拉伯谷,东边和南边是阿拉伯沙漠,今天主要属于以色列和约旦。希伯来圣经以及埃及和美索不达米亚的文字记录曾提及这个青铜时代晚期和铁器时代早期的王国。以东这个名字在希伯来文中为“''红''”;在希腊古典时代则用同源词以土买(Idumea)来指此地区一个较小的区域。
《希伯来圣经》中这一名字与以东的建立者以扫有关,[[以扫|以扫 Esau]]是[[以撒|以撒 Isaac]]的长子、[[雅各|雅各 Jacob]]的哥哥,出生时“''身体发红''”,以扫因为“一碗红豆汤”而随意地将长子的名份“卖”给了雅各(创世纪 25:29-34)。''塔纳赫''将''以东人''描述为以扫的后裔。
[img[https://upload.wikimedia.org/wikipedia/commons/d/d2/Kingdoms_around_Israel_830_map.svg]]
公元前830年地图
以東人''安提帕特''是[[希律王朝 Herodian dynasty]]的建立者,大希律王之父。
安提帕特是以東人,在[[哈斯蒙尼王朝 Hasmonean dynasty 140 BC-37 BC]]后期担任高官,[[罗马共和国 Roman Republic 509 BC-27 BC]]将领''格奈乌斯·庞培''征服犹大地区后投靠庞培。
法萨卢斯战役中,''凯撒''击败庞培,安提帕特于是转而支持''凯撒''。在凯撒被困亚历山大时,安提帕特予以支援,后被任命掌管犹大地区。凯撒又任命他的两个儿子分别担任耶路撒冷和加利利的总督。
a Judge from [[士师记 Book of Judges c.1100 BC]]
在[[以比赞 Ibzan]]以后,西布伦部族的''以伦''做了以色列的士师''十年''。西布伦部族的以伦死后,葬在西布伦地区的亚雅仑。
耶和华的一名使者骤然出现。他就是提斯比人[[以利亚|🗣️以利亚 Elijah]]。他一开始便对[[亚哈王|👑亚哈 Ahab]]发出令人惊讶的宣布:“我指着所事奉永生耶和华——以色列的上帝起誓,这几年我若不祷告,必不降露,不下雨。” 接着,耶和华吩咐以利亚离开那地,往东去藏在约旦河东的山谷里。以色列全境都没有下雨,但乌鸦群却不停地拿食物养活以利亚。后来谷中的溪水干涸了,耶和华差他的预言者到西顿的撒勒法去,住在那里。
耶和华因一个寡妇善待以利亚而施行奇迹,使她那小量的面粉和油用之不尽,以至母子不致饿死。后来寡妇的儿子患病死去,以利亚恳求耶和华使孩子复活过来。
!! 挑战巴力神
到旱灾的第三年,耶和华再次差遣以利亚到''亚哈''那里。亚哈指责以利亚使以色列遭灾,但以利亚却无畏地告诉亚哈:“使以色列遭灾的……乃是你和你父家,”因他们随从巴力。
''以利亚''嘱咐''亚哈''把巴力的所有先知召聚到迦密山上。人们不能再心怀二意了。争论非常明显:耶和华向巴力挑战。
<a href="https://www.wikiwand.com/en/Elijah#Media/File:Elijahwindow.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/aa/Elijahwindow.jpg/440px-Elijahwindow.jpg"
caption:"Elijah's offering is consumed by fire from heaven in a stained glass window at St. Matthew's German Evangelical Lutheran Church in Charleston, South Carolina."
width:"200px"
align:"right"
>>
</a>
属巴力的''450个祭司''在众民面前预备一只牛犊,放在祭坛的柴上,然后祈求他们的神降火将祭物烧去。他们从早晨到午间求告巴力的名,但巴力却毫无反应。以利亚便讥笑他们。他们大声求告,并自割自刺,但仍然全无回应。接着预言者''以利亚''独自奉耶和华的名筑了一座坛,在坛上摆好柴和牛犊。他吩咐人把水倒在祭物和柴上三次,然后求告耶和华说:“耶和华啊,求你应允我,应允我!使这民知道你——耶和华是上帝。”于是''有火从天上降下来'',烧尽燔祭、木柴、石头、尘土,又烧干沟里的水。众民看见,就俯伏在地说:“耶和华是上帝!耶和华是上帝!”
''以利亚''处死了巴力的祭司,一个不留。此后耶和华才终止旱灾,把雨水降给以色列。
!! 以利亚传递使命
[[耶洗别|耶洗别 Jezebel]]获悉巴力所受的奇耻大辱之后便派人寻杀''以利亚''。以利亚害怕起来,于是与仆人一起逃到旷野,耶和华指引他到[[何烈山|西奈山 Mount Sinai]]去。耶和华在山上向他显现,但并没有在烈风、地震或火中显现,反之他以“微小的声音”发言。
耶和华吩咐''以利亚''膏哈薛作亚兰(叙利亚)王,膏''[[耶户|👑耶户 Jehu]]''作以色列王,并膏[[以利沙|🗣️以利沙 Elisha]]接续他作预言者。他安慰以利亚,告诉他在以色列中有7,000人是未曾向巴力屈膝的。
于是,以利亚随即前往找''以利沙'',并把自己执行职务时所穿的外衣搭在他身上,膏立他作预言者。那时''亚哈''两次战胜亚兰人,耶和华谴责他,因他竟与亚兰王立约而没有将其处死。
<<card
text:"
耶和华说:‘你亲手放走了我说过要消灭的人,所以你要用你的命来抵他的命,你的人民也要代替他的人民死。’
"
footer:"Kings 20:42"
>>
!! 耶洗别的恶行
后来''亚哈''觊觎耶斯列人''拿伯''的葡萄园。[[耶洗别|耶洗别 Jezebel]]设计以假见证害死拿伯,亚哈于是夺取了他的葡萄园。
''以利亚''再度来到王前。他告诉''亚哈''拿伯死在何处,狗便会在何处舔''亚哈''的血,此外他的家也必像[[耶罗波安|👑耶罗波安 Jeroboam]]的家和[[巴沙|👑巴沙 Baasha of Israel]]的家一样被除灭。狗必在''耶斯列''的外郭吃[[耶洗别|耶洗别 Jezebel]]的肉。“从来没有人像''亚哈''那样,妻子''耶洗别''的怂恿下,做耶和华眼中邪恶的事。他做了最可恶的事,崇拜可憎的偶像,就像在以色列人面前被耶和华赶走的''亚摩利人''一样。”
然而,因''亚哈''在听到''以利亚''的判决之后马上谦卑自抑,耶和华说他当亚哈仍在世时不会降这灾,到了他儿子的时候才降下灾殃。
!! 亚哈的末日
''亚哈''与犹大王[[约沙法|👑约沙法 Jehoshaphat]]联手跟亚兰人争战,他们不听从耶和华的预言者[[🗣️米该雅 Micaiah]]的忠告而一意孤行。''亚哈''在阵中伤重不治。
有人把他的车在撒马利亚的池旁洗擦时,狗就来舔他的血,正如以利亚所预言一般。他的儿子[[亚哈谢|👑亚哈谢 Ahaziah of Israel]]接续他作以色列王。
son of [[西坡拉 Zipporah]] and [[摩西 Moses]]
<a href="https://www.wikiwand.com/en/Elijah#Media/File:Elijah_Taken_Up_in_a_Chariot_of_Fire_E11219.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Elijah_Taken_Up_in_a_Chariot_of_Fire_E11219.jpg/446px-Elijah_Taken_Up_in_a_Chariot_of_Fire_E11219.jpg"
caption:"Elijah Taken Up in a Chariot of Fire by ''Giuseppe Angeli'', c. 1740"
width:"400px"
align:"right"
>>
</a>
[[🗣️以利亚 Elijah]]被接去的时候到了。从吉甲到伯特利,直到耶利哥,[[🗣️以利沙 Elisha]]都紧紧追随着他,最后更过了约旦河。以利亚用自己__先知的袍服打水,把河水分开__。
<div>
<<card
text:"
以利亚就问以利沙:“我被接走离开你之前,你要我为你做什么呢?”以利沙说:“在你身上的神圣力量,''愿我得到双倍''。”以利亚说:“你求的是一件难事。我被接走离开你的时候,你要是看见我,就会得到;看不见,就得不到了。”
"
footer:"Kings2 2:9"
>>
</div>
''忽然有火车火马出现,把两人隔开,以利沙看着__以利亚__乘旋风升到空中''。
''以利沙''获得所应许的以利亚双倍的灵。不久他便显出“以利亚的灵”的确作用在他身上。 他用以利亚身上掉下来的外衣打水,水就再次分开。接着他把耶利哥劣质的水治好。
他在上伯特利的途中,有一群小孩出来戏笑他说:“秃头的上去!秃头的上去罢!”以利沙求告耶和华,就有两头母熊从林中出来,撕裂了其中42个顽劣少年。
!! 空瓶生油
有一个预言者门徒的妻成了寡妇,债主登门要取她的两个儿子作奴仆,她于是去见[[🗣️以利沙 Elisha]],向他求助。他施行奇迹使妇人家中的''油不断增多'',从而能够把油卖掉还清债务。
!! 赐子
有一个书念妇人认出''以利沙''是真实上帝的预言者,便与丈夫专程为他预备一间房子,供他在书念时作居停之用。耶和华因妇人心地仁慈而祝福她,''使她生了一个儿子''。若干年后,那孩子生病,结果死了。妇人立即寻求''以利沙''的帮助。他跟她回家,并凭耶和华的能力使孩子复活过来。
!! 除毒
然后以利沙回到吉甲,到预言者门徒那里。他施行奇迹把“致死的毒物”除去,''将有毒的野瓜藤变为无毒''。
!! 20饼喂饱100个人
他接着以''20个饼喂饱了100人'',结果“还剩下”有馀。
!! 治疗皮肤病
叙利亚军的元帅''乃缦''长了麻风。一个被掳的以色列小女孩告诉乃缦的妻子,在撒马利亚有一位预言者可以医治他。乃缦于是前去求见''以利沙'',但''以利沙''并没有亲自出迎,只是吩咐人转告乃缦,叫他往''约旦河''去,在河中沐浴七次。乃缦因预言者看来对他不敬而勃然大怒。大马士革的河岂不比以色列一切的水更好吗?
但他终于愿意听从以利沙的话,结果身体得以复原。 ''以利沙''拒绝为此接受馈赠,但后来他的仆人''基哈西''却追上''乃缦'',用以利沙的名义索取礼物。''基哈西''回来时试图欺哄以利沙,结果全身长了麻风。
!! 使斧子从水中浮起
一群先知想离开以利沙,自己到约旦河边上砍树盖房子住。以利沙与他们同去。砍树的时候有人的斧子掉到河里,以利沙砍了一根木头,扔在那里,斧子头就浮了上来。
!! 在敌人面前显圣
由于''以利沙''预先警告以色列王有关叙利亚王企图杀死他的阴谋,叙利亚王遂派大军到多坍围捕''以利沙''。以利沙的仆人眼见叙利亚大军把城重重围住,便害怕起来。''以利沙''向他提出保证说:“不要惧怕!与我们同在的比与他们同在的更多。”
''以利沙''于是求告耶和华让仆人看见与''以利沙''同在的强大天军。‘看哪!满山有火车火马围绕以利沙。’
叙利亚人进攻时,预言者再次恳求耶和华;他使叙利亚人眼目昏迷,由预言者把他们领到以色列王那里。然而,''以利沙''没有把他们处死,反而请王为他们设摆筵席,然后打发他们回家。
此后,叙利亚人再也不成群结队地侵犯以色列的地区了。
!! 巧计获粮
后来,叙利亚王''便哈达''围困撒马利亚,城里发生大饥荒,人民甚至开始把自己的小孩杀掉吃了。以色列王责咎''以利沙'',但以利沙却宣告翌日粮食会十分充裕。
到了晚上,''耶和华使叙利亚人听见大军的声音,他们便仓皇逃命,把一切财物都留下给以色列人'',以色列人因此获得了丰富的财物,应验了以利沙的预言。
!! 预言以色列人的灾难
后来,便哈达患病。他一听闻''以利沙''来到大马士革,便打发哈薛求问先知他能否康复。''以利沙''表示王必要死,但''哈薛''却会继位为王。''哈薛''果然把王杀掉,篡了他的王位。
以利沙还预言了哈薛对以色列人的屠杀。
<<card
text:"
以利沙盯着哈薛看,直到他觉得很不自在。然后,上帝的使者哭了起来。哈薛说:“我主为什么哭呢?”他回答:“因为我知道你会怎样伤害以色列人。__你会放火焚烧他们的堡垒,用剑杀死他们的壮丁,摔死他们的孩子,剖开孕妇的肚子__。” 哈薛说:“仆人不过是一条狗,怎么能做这些事呢?”以利沙说:“耶和华告诉我,你会做叙利亚的国王。”
"
footer:"Kings2 8:11"
>>
以实玛利是亚伯拉罕宗教的共同族长[[亚伯拉罕|亚伯拉罕 Abraham]]与妻子撒拉的婢女[[夏甲|夏甲 Hagar]]所生的长子(创世记 16:3)。根据创世记的记载,他去世时享年 137 岁(创世记 25:17)。
日后的''阿拉伯人''即为以实玛利的后代,''希伯来人''则是[[以撒|以撒 Isaac]]的后代。
!! Etymology
“Yishma'el”这个名字存在于各种古代闪米特文化中,包括早期的巴比伦文化和米奈文化。这是一个神喻名称,字面意思是“上帝(El)已垂听”,暗示“如此命名的孩子被视为实现了神圣的诺言”。
!! Offspring
<<list-links "[tag<currentTiddler>] +[nsort[num]]">>
以弗所又译爱菲索斯或艾菲索斯,天主教《思高圣经》译厄弗所,是古希腊人在小亚细亚建立的一个大城市,位于加斯他河注入爱琴海的河口(今天属于土耳其)。最初由雅典殖民者建立。传说[[圣母玛利亚|🤱🏽马利亚 Mary, mother of Jesus]]终老于此。
以弗所废墟是''土耳其''一个著名的旅游点,特别为到土耳其旅游的人开辟从库萨达斯港的游船航线。
!! 古代以弗所
许多人相信赫梯文献的记载,以弗所就是阿尔萨瓦(Arzawa)王国的首都Apasa(Abasa)。在该遗址的挖掘过程中发现了很多迈锡尼的陶器。根据保萨尼阿斯(4.31.8)和世界七大奇迹之说,[[亚底米神庙|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E9%98%BF%E8%80%B3%E5%BF%92%E5%BC%A5%E6%96%AF%E7%A5%9E%E5%BA%99%20Temple%20of%20Artemis:%5B%5B%E9%98%BF%E8%80%B3%E5%BF%92%E5%BC%A5%E6%96%AF%E7%A5%9E%E5%BA%99%20Temple%20of%20Artemis%5D%5D]]是古代世界最大的建筑,亚底米神庙里供奉着被希腊人称作''阿耳忒弥斯''的“以弗所女神”。亚底米神庙现在只能找到很少的遗迹。
son of [[Gera]], one of the Judges in [[士师记 Book of Judges c.1100 BC]]
elder son of [[I以撒 Isaac]] and [[利百加 Rebecca]]
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/7/7f/Rembrandt_-_Jacob_Wrestling_with_the_Angel_-_Google_Art_Project.jpg/440px-Rembrandt_-_Jacob_Wrestling_with_the_Angel_-_Google_Art_Project.jpg"
caption:"Jacob Wrestling with the Angel, by Rembrandt"
width:"300px"
align:"right"
>>
''[[以扫|https://www.wikiwand.com/en/Jacob]]'',天主教译为''厄撒乌''。根据圣经创世记的记载,以扫是[[以撒|以撒 Isaac]]和[[利百加|利百加 Rebecca]]所生的长子,出生时“''身体发红”,身体强壮而多毛,善于打猎,心地直爽,常在野外,更得父亲以撒的欢心;孪生兄弟雅各为人安静,常在帐棚里,更受母亲利百加的偏爱''。
以扫因为“一碗红豆汤”而''随意地将长子的名份“卖”给了[[雅各|雅各 Jacob]]'' 。 (创世记 25:29-34)。后来虽然为了继承权兄弟反目,但最终和好。
!! 一碗红豆汤
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Govert_Flinck_-_Isaac_Blessing_Jacob_-_WGA07930.jpg/500px-Govert_Flinck_-_Isaac_Blessing_Jacob_-_WGA07930.jpg"
caption:"An elderly Isaac blessing Jacob, oil on canvas by Govert Flinck, 1638"
width:"300px"
align:"left"
>>
以扫长大后成了猎人,一天他打猎回来,累昏了。向雅各要红豆汤<<fnote "希伯来人的主食">>
喝。雅各要以扫把长子的名分卖给他;以扫说,我现在快死了,这长子的名分对我有什么用?于是起誓,把长子的名分卖给雅各。以扫就这样轻看了他长子的名分。
长子名分包括:在家中''尊荣和权力居首''(《创世记49:3),''得双份的产业''(《申命记》21:17),分别''为圣归给上帝''(《民数记》8:17-19)。
!! 争夺继承权
以撒年老,眼睛昏花,不能看见,叫以扫往田野去打些野味来,照我所爱的作成美味给他吃,使我在未死之前给以扫祝福。[[利百加|利百加 Rebecca]]听见,让雅各伪装成以扫,拿两只山羊羔作成美味给以撒吃,抢得父亲的祝福。又用山羊羔皮,包在手上、和颈项的光滑处;以撒摸着他,说,声音是雅各的声音,手却是以扫的手(以扫的身体强壮而多毛)。以撒就给雅各祝福;''以扫回来,怨恨雅各,准备杀雅各。''
!! Offspring
* 和[[Adah, the first wife of Esau]] <<list-links "[tag[Adah, the first wife of Esau]] +[sort[title]]">>
* 和[[Mahalath/Basemath]] <<list-links "[tag[Mahalath/Basemath]] +[sort[title]]">>
* 和[[Aholibamah]] <<list-links "[tag[Aholibamah]] +[sort[title]]">>
----
<<showfnotes>>
以挪士活到九十岁,生了[[该南|该南 Kenan]]
以挪士于 905 岁去世,当时诺亚 84 岁(根据马所拉年表)。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
son of [[Abraham|亚伯拉罕 Abraham]] and [[Sarah|撒拉 Sarah]]
日后的''阿拉伯人''即为[[以实玛利|以实玛利 Ishmael]]的后代,''希伯来人''则是''以撒''的后代。
!! Etymology
英文名 "Isaac "是希伯来语名字יִצְחָק (Yīṣḥāq)的音译,字面意思是 "''他笑/会笑''"。
!! [[Binding of Isaac|https://www.wikiwand.com/en/Binding_of_Isaac]]
Binding of Isaac,是希伯来圣经创世记第 22 章的故事。在圣经的叙述中,上帝命令[[亚伯拉罕|亚伯拉罕 Abraham]]在摩利亚牺牲他的儿子以撒。当亚伯拉罕开始遵守,并将以撒绑在祭坛上时,他被主的天使阻止了。当上帝赞扬亚伯拉罕的虔诚服从时,一只公羊出现并代替以撒被宰杀。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/60/Sacrifice_of_Isaac-Caravaggio_%28Uffizi%29.jpg/440px-Sacrifice_of_Isaac-Caravaggio_%28Uffizi%29.jpg">
<div class="desc">The Sacrifice of Isaac by [[Caravaggio|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%8D%A1%E6%8B%89%E7%93%A6%E4%B9%94%20Caravaggio%201571-1610:%5B%5B%E5%8D%A1%E6%8B%89%E7%93%A6%E4%B9%94%20Caravaggio%201571-1610%5D%5D]] (1603), in the Baroque tenebrist manner</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/f7/Rembrandt_Abraham_en_Isaac%2C_1634.jpg/440px-Rembrandt_Abraham_en_Isaac%2C_1634.jpg">
<div class="desc">Abraham and Isaac (oil on canvas), [[Rembrandt|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E4%BC%A6%E5%8B%83%E6%9C%97%20Rembrandt%201606-1669:%5B%5B%E4%BC%A6%E5%8B%83%E6%9C%97%20Rembrandt%201606-1669%5D%5D]], 1634</div>
</div>
</div>
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
《以斯帖记》(基督新教翻译)/《艾斯德尔传》(天主教翻译),是《希伯来圣经》(基督教《旧约圣经》)中的一本书卷。
大致内容是描述拣选以色列人作选民的这位神,在他们被掳到外邦列国中的期间,对他们成了隐藏的神,秘密的照顾他们,并在''隐密后公开的拯救他们的神迹的故事''。
[[普珥节 Purim]]
以斯拉记,是圣经全书中第15本书,由以斯拉在公元前460年左右完成。以斯拉在波斯帝国摧毁巴比伦帝国后,重建耶路撒冷的工作陆续完成,以斯拉带领一批犹太人返回应许之地,比喻为以色列人从被掳中归回,重建神的殿与经纶。以斯拉记就是记述这名犹太人在这段时期的经历。
!! 背景
耶路撒冷按照圣经预言:巴比伦治下经历荒凉的70年期限即将满了。巴比伦一向都以不释放俘虏著称,但耶和华的话语必证明强于巴比伦的势力。耶和华的百姓获得释放乃是指日可待的事。耶和华荒废的圣殿必被重建,耶和华的祭坛也必有人在其上重新献上赎罪祭。耶路撒冷会再次听到耶和华真正敬拜者的欢声和赞美。
耶利米曾预言荒凉时期的长度,以赛亚则预言被掳者会怎样获得释放。以赛亚更指名宣告波斯的居鲁士是‘耶和华的牧者’,他会使高傲狂妄的巴比伦从圣经历史中第三个世界霸权的位置上倾倒。
巴比伦亡国的悲剧发生于公元前539年10月5日(格雷果里历)的晚上,当时巴比伦王伯沙撒和群臣正开怀痛饮,向他们的鬼神致敬。为了加添他们的异教荒宴之乐,他们用耶和华的殿的圣洁器皿举杯共醉!居鲁士当晚就在巴比伦的城墙外应验了圣经的预言。
a Judge from [[士师记 Book of Judges c.1100 BC]]
在[[耶弗他 Jephthah|耶弗他 Jephthah]]以后,伯利恒的''以比赞''做了以色列的士师。他有30个儿子,30个女儿。他把女儿嫁给其他家族的人,并带回30个女子做儿媳妇。他做了以色列的士师''七年''。以比赞死后,葬在伯利恒。
son of [[Asenath]] and [[约瑟 Joseph]]
the meaning of name is "fruitful"
以法莲,[[约瑟|约瑟 Joseph]]的次子,生于埃及(创世纪41:52; 46:20),意思是“使之昌盛”。他的后代是[[以色列十二支派|以色列十二支派 Twelve Tribes of Israel]]之一的以法莲支派。
以色列十二支派是由以色列第三代始祖[[雅各|雅各 Jacob]]的12个儿子发展起来,其中第11子[[约瑟|约瑟 Joseph]]后来成为埃及首相,成为极为重要的一支派而得到了两份家产,分别由其子[[以法莲(Ephraim)|以法莲 Ephraim]]和[[玛拿西(Manasseh)|Manasseh]]继承,而后来由于雅各三子[[利未(Levi)|利未 Levi]]成为耶和华拣选的祭司,不参与分配土地,住在其他支派之内,故而总数还是12。
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
<a href="https://www.wikiwand.com/en/Twelve_Tribes_of_Israel#Media/File:12_Tribes_of_Israel_Map.svg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/c/c2/12_Tribes_of_Israel_Map.svg/921px-12_Tribes_of_Israel_Map.svg.png"
caption:"Joshua's allotment of land to the Israelite tribes according to Joshua 13–19"
width:"auto"
align:"center"
>>
</a>
当时以色列向''亚述''俯首称臣。后来[[👑何细亚 Hoshea]]背叛亚述,转而向''埃及''求助。
但到了他在位第九年,亚述攻陷了以色列,把百姓掳到亚述去。至此,''十支派的以色列国便告灭亡''。
<<card
text:"
以色列国的人有这个下场,是因为他们犯罪,冒犯了耶和华他们的上帝。上帝带领他们离开埃及,摆脱埃及王法老的压迫。他们却崇拜别的神,跟从在他们面前被耶和华赶走的外族人的习俗,以及以色列历代君王定下的习俗。
<br>以色列人热衷于做耶和华他们的上帝眼中不对的事。他们在所有城镇,从瞭望的塔楼到坚固的城池,都建造了祭拜场。他们又在每个山丘上和各种茂盛的树下,竖立神柱和神木。他们在各祭拜场上焚烧祭物,就像在他们面前被耶和华赶走的外族人那样。他们一直做邪恶的事,冒犯耶和华。
<br>虽然耶和华曾经禁止他们拜偶像,他们还是一直供奉可憎的偶像。……
<br>因此耶和华对以色列人感到非常愤怒,把他们从自己眼前赶走,只留下犹大部族。但犹大国的人也不服从耶和华他们上帝的诫命,他们也跟从以色列国的人采纳的习俗。……
<br>''耶和华抛弃了以色列的所有子孙'',让他们受苦。
"
footer:"Kings2 17:7"
>>
亚述人从东方把若干民族迁徙到以色列地;他们“惧怕耶和华”,但又事奉自己的神。
[[👑亚哈谢 Ahaziah of Israel]]在宫中跌伤后就病了。他差遣使者去求问以革伦的神''巴力西卜'',看他能否痊愈。[[🗣️以利亚 Elijah]]截住那些使者,把他们遣回王那里去,并谴责王没有求问真实的上帝。他指出王由于没有归向以色列的上帝,所以必死无疑。
<<card
text:"
你们去求问以革伦的神巴力西卜,是因为以色列没有上帝吗? 所以耶和华说:“''你再也不能下床,因为你一定会死。''“
"
footer:"Kings2 1:2"
>>
王派五十夫长率领50人去把以利亚带回王那里去,''以利亚''求火从天而降烧灭了他们。第二个奉差的五十夫长及他的手下也有同一的遭遇。王再派出第三个五十夫长及手下前往,这次''以利亚''因五十夫长怀着尊敬之心诚意恳求,便饶了他们的性命。
以利亚跟他们下去见王,并再次向''亚哈谢''宣布他必定要死。''亚哈谢''果然死去,正如''以利亚''所说一般。因''亚哈谢''没有儿子,所以由他的兄弟[[约兰|👑约兰 Jehoram of Israel]]接续他作王。
按照耶和华的承诺,[[👑耶户 Jehu]]的子孙会坐在以色列的国位上,直到四代,即到[[👑撒迦利亚 Zechariah of Israel]]为止。因此,撒迦利雅在撒马利亚作王统治,但六个月后便遭人行弑。
篡位自立的''[[👑沙龙 Shallum of Israel]]''作王仅一个月。 接着在以色列国中分别由''[[👑米拿现 Menahem]]''、''[[👑比加辖 Pekahiah]]''和''[[👑比加 Pekah]]''先后作王。在这些王统治期间,''以色列国充满谬误崇拜、行弑事件和种种阴谋''。
''比加''在位期间,亚述大军犯境。[[👑何细亚 Hoshea]]叛杀''比加'',成为以色列最后一位君王。
[[👑耶户 Jehu]]的儿子[[👑约哈斯 Jehoahaz of Israel]]继续从事偶像崇拜。以色列常受叙利亚人欺压,但''约哈斯''仍能继续作王。后来耶和华拯救以色列人,可是他们仍重蹈耶罗波安拜金牛犊的覆辙。
''约哈斯''死后由儿子[[👑约阿施 Jehoash of Israel]]继位作以色列王,当时另一个[[👑约阿施 Jehoash of Judah]]则在犹大作王统治。
以色列的''约阿施''效法他的父崇拜偶像。约阿施统治期间,[[🗣️以利沙 Elisha]]患重病;他作了最后一个预言,指出约阿施会击败亚兰人三次,之后便死去了。这些预言均相继应验。 以利沙的最后一个奇迹是在他死后才发生的。有人把死人抛在''以利沙''的坟墓里,死人一碰着''以利沙''的骸骨,就复活站起来。
以色列国[[👑亚哈 Ahab]]王的儿子[[👑约兰 Jehoram of Israel]]在位第十二年,犹大国[[👑约兰(犹大) Jehoram of Judah]]王的儿子[[👑亚哈谢 Ahaziah of Israel]]登基。''亚哈谢''走亚哈家族走的路,一直做耶和华眼中邪恶的事,像亚哈家族一样
[[🗣️以利沙 Elisha]]差遣一个预言者门徒膏立[[👑耶户 Jehu]]作以色列王,并吩咐他击杀[[👑亚哈 Ahab]]全家。
''耶户''立即采取行动。他追击正在耶斯列疗伤的以色列王[[👑约兰 Jehoram of Israel]]。守望的人看见一大群人逐渐逼近,最后向王禀告说:“车赶得甚猛,像宁示的孙子''耶户''的赶法。”
以色列王''约兰''及犹大王''亚哈谢''上前打听耶户的意图何在。耶户反问道:“你母亲[[耶洗别 Jezebel]]的淫行邪术(崇拜偶像)<<fnote "详见[[以利亚在以色列作预言者]]">>,常行巫术,还会有和平吗?“
''约兰''正欲转身逃跑,''耶户''一箭射穿他的心窝。他的尸首被抛在''拿伯''的田间,借此报应了''亚哈''流无辜人血的罪。 耶户和手下接着在米吉多把''亚哈谢''杀了。耶户施行闪电突击,一举便杀了两个王。
接着''耶户''也杀掉了''耶洗别 Jezebel''(详见耶洗别词条)。
后来,''耶户''下令杀戮''亚哈''的70个儿子,并把他们的首级堆放在耶斯列的城门口。在耶斯列,所有对亚哈惟命是从的人全被剪除。
矛头现在指向以色列首都[[撒马利亚|撒马利亚 Samaria]]了。耶户在途中遇见''亚哈谢''的42个兄弟,他们正前往耶斯列而尚未知道发生了甚么事。他们也被击杀。接着发生的事却截然不同。利甲的儿子''约拿达''出来迎接耶户。耶户问道:“你诚心待我像我诚心待你吗?”约拿达回答说:“是。”耶户便拉他上车,以便亲眼观看他“怎样为耶和华显出热心”。
到了撒马利亚,耶户把亚哈家剩下的人全都杀尽,正如耶和华对以利亚所透露的一般。耶户宣布说:“亚哈事奉巴力还冷淡,耶户却更热心。”他召集了所有崇拜巴力的人进入巴力庙内,然后吩咐他们穿上用以识别的礼服,并确定会众中不可有耶和华的敬拜者在内。然后他命手下兵士进去把会众杀尽,一个也不得逃脱。巴力庙被拆毁,用作厕所,直到今天还是那样。“这样,''耶户在以色列中灭了巴力。''
可是,甚至热心的耶户也不免有错。他继续重蹈耶罗波安的覆辙,敬拜伯特利和但的金牛犊。他没有“尽心遵守耶和华——以色列上帝的律法”。
但由于他灭亚哈家有功,耶和华允准他的子孙接续他坐在以色列的国位上,''直到第四代''。耶和华在他的日子开始割去以色列国的东部,使叙利亚王''哈薛''前来攻击以色列。耶户作王28年后去世,他的儿子[[👑约哈斯 Jehoahaz of Israel]]接续他作王。
----
<<showfnotes>>
[[👑耶罗波安二世 Jeroboam II]]作王统治以色列,他继续跟从先祖所设立的''谬误崇拜''。他在撒马利亚作王41年,得以收复以色列先前丧失的土地。他儿子[[👑撒迦利亚 Zechariah of Israel]]接续他作王。
[[撒母耳|撒母耳 Samuel]]年纪老迈,但他的儿子却不行他的道,因他们收受贿赂,屈枉正直。于是以色列的长老前来见撒母耳,提出要求说:“你年纪大了,你儿子又不效法你的榜样。现在求你为我们立一个王治理我们,像列国一样。”
撒母耳大感不悦,就向耶和华祷告。耶和华回答说:“百姓向你说的一切话,你只管依从;因为他们不是厌弃你,乃是厌弃我,不要我作他们的王。” 于是,撒母耳先行警告他们这项悖逆的要求会带来严重的后果:''严厉的管辖、征税、丧失自由,最后他们会饱受折磨而向耶和华哀求''。百姓始终坚持要求立王。
[[扫罗 Saul|👑扫罗 Saul]]是个便雅悯人,是以色列中最俊美、高大的男子。他遵嘱谒见''撒母耳'',''撒母耳''与他同席,邀他坐首位,以油膏他,然后在米斯巴向以色列会众举荐他。
虽然起初''扫罗''藏在衣服堆中,但最后众人把他领出来,宣布他是耶和华所选的君王。''撒母''耳向人民说明,王有权要求他们做什么,并把这些事记在书上,存放在耶和华面前。然而,直到扫罗击败亚扪人,为基列·雅比解围,他的王位才得以巩固,百姓在吉甲立他为王。
''撒母耳''再度规劝百姓务要敬畏、事奉及顺从耶和华。此外,他求耶和华在割麦的季节施展大能,行雷降雨。“我要向耶和华呼求,他就会打雷降雨,这样你们就会知道,就会明白,''你们要求立王,在耶和华眼中简直是罪大恶极''。” 耶和华以令人懔然生畏的景象显示他对百姓不以他为王一事感到愤怒。
以萨迦,是雅各和他第一任妻子[[利亚|利亚 Leah]]的第五个儿子。按照创世记,以萨迦是利亚用她的大儿子[[流便|流便 Reuben]]寻见的''风茄''向[[拉结|拉结 Rachel]]交换来与丈夫同床一夜的权利,她对''雅各''说,我用我儿子的风茄把你雇下了,你要与我同寝。所以利亚给生下的这个孩子起名以萨迦,意思是''价值''。
他的后代以萨迦支派是以[[色列十二支派之一|以色列十二支派 Twelve Tribes of Israel]],住在加利利海东南。创世记49章,他父亲雅各在埃及临终前为他祝福“以萨迦是个强壮的''驴'',卧在羊圈之间。他看安息之处为佳,看那地为美,便低肩背重,成为服苦的仆人。”
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
《以西结书》是《希伯来圣经》中的一部先知书,天主教翻译为《厄则克耳先知书》,
作者普遍认为是犹太先知[[🗣️以西结 Ezekiel]](厄则克耳)。在《圣经》全书中,这本书是旧约内容,列在中间的第26卷。旧约中《以西结书》是以西结描述自己在被掳中看到的异象及其对以色列的预言,其中有很多异象和使徒约翰所写的新约圣经最后一个章节《''启示录''》也有很多类似的地方。
!! 特点
* 在整本书中,他被称为“人子”达''90多次''。在研究以西结的预言时,这点是十分重要的,因为在基督教新约圣经里,耶稣也同样被称为“人子”差不多达''80次''
* 以西结是个常见''“异象”的先知'',他虽然住在巴比伦被掳的犹太人当中,但他透过神的灵得与巴勒斯坦的犹太人联系,因得神的异象,而向耶路撒冷的百姓说预言。38-39章有关“歌革”的预言,更是历来学者争论的焦点。''书中许多异象(包括圣殿的结构和歌革的预言),大概不能完全以字面解释和应验,它们往往象征具有丰富属灵意义的事物''。有很多异象也可以在耶利米书和启示录中找到。
* ''“他们必知道我是神”是本书的钥句,出现接近七十次'',先知的使命是要说明:引致选民被掳受苦的原因之一乃是神的管教,为要使选民认识耶和华是独一真神。
* 以西结强调“''神的荣耀''”:以色列所以被耶和华弃绝,是因他们犯罪亵渎了祂的圣名,以致神的荣耀离开了圣殿;将来以色列蒙复兴时,神要亲自寻找祂失丧的羊,医治以色列背道的病,那时神的荣耀将重回圣殿,本书即以神在以色列中间重立圣所结束。
!! 主要内容
这本书自然分为三部分。书中大部分预言均按照年代先后和题目而编排。
# 第一部分,由第1至24章,载有''耶路撒冷必遭毁灭''的警告信息。
# 第二部分,第25至32章,载有多个''外邦国家必遭毁灭''的预言。
# 最后部分,第33至48章,含有许多关于''复兴''的预言,最后包括新圣殿和圣城的异象。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>nsort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
(覆盖以西结书8:1-11:25)公元前593年,以西结在异象中被提到遥远的耶路撒冷去,目睹百姓在圣殿中所行的一切可憎之事。 在院子里设有''招惹耶和华妒愤的可憎偶像''。在挖穿墙壁进入室内后,以西结看见70个长者正在崇拜墙上刻满的各种''可憎的走兽和如粪的偶像''。他们安慰自己说:“耶和华看不见我们;耶和华已经离弃这地。”(以西结书8:12) 有些妇女在北门为异教的神搭模斯哭泣。但事情并非至此为止。就在圣殿大门的入口处,有25个男子正在背着圣殿崇拜太阳。他们当面亵渎耶和华,因此他必定会大发烈怒,施行报应。
有六个手拿灭命兵器的人出现了。他们当中还有''第七个人'',身穿细麻衣,''腰间带着墨盒子''。耶和华吩咐身穿细麻衣的人走遍全城,替那些因城中所行可憎之事叹息哀哭的人''在额上画记号''。然后,他吩咐那六个人施行击杀,要将“年老的、年少的,并处女、婴孩,和妇女”,凡是没有记号的人,全都杀尽。他们遂遵嘱而行,从殿前的长者杀起。穿着细麻衣的人报告说:“我已经照你所吩咐的行了。”(以西结书9:6,11)
以西结再次看见耶和华的荣耀,在[[基路伯|智天使 Cherubim]]以上显现出来。一个基路伯从轮中取出火炭,身穿细麻衣的人接过火炭后将其撒在城上。 这次的基路伯“的''全身,他们的背、手、翅膀上,都布满眼睛……基路伯各有四张脸,第一张脸是基路伯的脸,第二张脸是人的脸,第三张脸是狮子的脸,第四张脸是鹰的脸。''”四个基路伯旁边的轮子上也布满了眼睛。
至于以色列分散各处的百姓,耶和华应许必招聚他们,并把新灵赐给他们。但城中邪恶的拜偶像者“必照他们所行的报应在他们头上。”(以西结书11:21)以西结看见耶和华的荣耀从城中升起,然后先知将他在异象中所见的事都说给被掳的人听。
(覆盖以西结书40:1-48:35)公元前574年。当时是[[所罗门圣殿 Solomon's Temple]]遭受毁灭后第14年,被掳百姓中悔改的人很需要获得安慰和盼望。
耶和华在异象里把以西结带到以色列地一个极高的山上。他在异象里看见有“一座城的建筑物在南方”,并有一座圣殿。一位天使吩咐他说:“人子啊,你要仔细看,认真听,留意我给你看的一切,因为这是带你来这里的目的。你看见的一切,都要告诉以色列人。”(以西结书40:2,4,)
然后天使向以西结详述有关圣殿、其中的外院、内院、城墙的尺寸、城门、看守房子、饭厅、圣殿内的圣所和至圣所的各项细节。他把以西结带往东门。“
以色列上帝的荣光从东而来。他的声音响如洪流,大地因他的荣耀发出光芒。”(以西结书43:2)天使把一切关乎殿宇(即圣殿)、祭坛、祭牲、祭司的各项权利和义务,利未人、王及分配土地的事宜均详尽地告诉以西结。
天使带以西结回到殿门口,预言者在该处见门槛下有水往东流出,在祭坛的南边往下流。起初水是涓滴而流,后来渐渐增多而成为浩大的壮流。它一直流入死海,"''河水一流入海里,那里的水就会被治好''。凡是河水流到的地方,成群游动的生物就可以在那里生存。因为这些水会流到那里,所以那里就会有许许多多的鱼。海水会被治好,河水所到的地方,一切都会生机勃勃。" 河的两岸长满各样的树,果子可作食物,叶子可作治病之用。
接着在异象里出现的是把地分给12支派为业的情况,寄居的外人及王的地业也没有受到忽略。
经文也详细描述南面''圣城''的细节,其中的12道城门分别以12支派为名。城有一个极为荣耀的名字,称为:“耶和华所在之城”。(以西结书48:35)
''以诺''是诺亚洪水之前的圣经人物和族长。他属于希伯来圣经中的上洪水时期。
《创世记》中记载,以诺被上帝带走之前已经活了 365 年。文本中写道,以诺“与神同行,他就不再存在了;因为神将他接去”(创世记 5:21-24),在一些犹太教和基督教传统中,这被解释为''以诺活着进入天堂'',而在其他传统中则有不同的解释。
以诺是许多犹太教和基督教传统的主题。他被认为是''《[[以诺书|以诺书 Book of Enoch]]》''的作者,也被称为审判文士。在新约中,《路加福音》、《希伯来书》和《犹大书》也引用了以诺。在天主教会、东正教、东正教中,他被尊为圣人。由于《古兰经》承认伊德里斯为先知,一些穆斯林将以诺等同于伊德里斯,并认为他是先知。
以诺这个名源自希伯来语词根חנך (ḥ-n-ḵ),意思是''训练、启动、奉献、就职''。
以诺出现在《摩西五经创世记》中,是大洪水前十位族长中的第七位。创世记记载,洪水前的''每一位族长都活了几个世纪''。创世记第 5 章提供了这十位人物(从亚当到诺亚)的家谱,提供了每个人物生下一个人的年龄,以及每个人物去世时的年龄。许多人认为以诺是个例外,据说他“看不见死”(希伯来书11:5)。此外,创世记 5:22-24 指出,以诺活了 365 岁,比洪水前的其他族长都短,他们都在 700 多岁的时候去世。创世记第 5 章对以诺的简要记述以神秘的注释结束:“他不存在;因为神把他带走了”。这发生在亚当死后 57 年、诺亚出生前 69 年。
!! Offspring
<<list-links "[tag<currentTiddler>]-[tag[book]] +[sort[title]]">>
该隐到达诺德之地后,因谋杀自己的兄弟亚伯而被上帝驱逐到那里,他的妻子怀孕并生下了该隐的第一个孩子,他给孩子起名叫以诺。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
《以诺书》(也称《以诺书》;Ge'ez: መጽሐፈ ሄኖክ, maṣḥafa hēnok)是一部古老的希伯来世界末日宗教文本,传统上认为是诺亚的曾祖父以诺写的。以诺书包含了''关于[[恶魔|基督教中的恶魔]]和尼腓力(Nephilim)的起源''、一些天使为何从天上掉下来的独特材料,解释了为什么''创世纪的洪水''在道德上是必要的,以及对''弥赛亚千年统治''的预言性阐述。
《以赛亚书》,天主教称之为《依撒意亚先知书》,是《圣经》的第23本书,由先知[[🗣️以赛亚 Isaiah]]执笔,大约在公元前723年之后完成。
记载关于犹大国和耶路撒冷的背景资料,以及当时犹大国的人民在耶和华前所犯的罪,并透露耶和华将要采取判决与拯救的行动。在第53章整章描述大约在700年之后将临的''弥赛亚''耶稣的遭遇与人格特质。因经文比喻了耶和华藉著成为肉体(耶稣)、钉死十架、复活、升天、并预言再来的基督所施的救恩,被''新约''大量引用,故这本经也是后来''基督教徒最重视''的旧约先知书。
以赛亚书是大先知书的一卷,可以说是''先知书中最重要一卷''。新约圣经上引用《诗篇》的次数最多,其次就是以赛亚书,因为以赛亚书有很多关弥赛亚和福音的预言。有人认为以赛亚书是旧约圣经的福音书。
!! 主要内容
以赛亚书''第一到三十九章''论及神因人的犯罪而责备人,同时预言公义的君王将要来临,行罚恶者,而以敬虔的选民得赎作为结束,充分把旧约的特质——神公义的审判表现出来。
以赛亚书''第四十到六十六章'',以基督的先锋开始,至预言神的仆人——基督受死以救赎人类为神救赎计划的关键点,接着神国在圣灵的引导下不断扩展,而以新天新地的实现作为结束,充分显示新约的特质——救恩的成全,是神安慰苦难中的选民的最佳礼物。本书根据两大主题:''神的审判与神的安慰''。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>nsort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
|!父母 |[[Iphicles]] and Automedusa|
|!配偶 |Megara|
|!标志 ||
|!对应罗马神 ||
Nephew of [[Heracles|💪大力神赫拉克勒斯 Heracles]] in Greek mythology
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
[[🗣️施洗约翰 John the Baptist]]的母亲,[[亚伦 Aaron]]的后人。
<$leafmap tile='positron'
places='{"point":"39.383333, 22.983333"}' zoom=5>
''伊斯拉菲尔''(英语:Israfil)(Israfil,The Burning One)又作Israfel、Sarafiel、Israphel,''伊斯兰教的四大天使之一'',意为“天使之音”,称呼为“燃烧的天使”。伊斯兰教中的审判日吹响号角的天使之一,传说其会在最后末日降临耶路撒冷的圣岩上,吹起那威严的号角声以唤起鼓舞那些因审判而沉醉以久的死者灵魂。为代表艺能的天使。每日的晨间和夜晚伊斯拉菲尔都会来到地狱视察三次,但看到这些受难灵魂的悲惨景象,他流的泪水却足以形成淹没大地的洪水。
说伊斯拉菲尔__全身上下数百个口舌__,具有神之下万物中最美好的声音,能操千百种语言以赞美阿拉。身躯高大,足抵第七天而头及神的玉座,穆斯林可以视其和天使梅塔特隆(Metatron)为同一人。
因纳克斯和[[墨利亚|🪵梣木女神墨利亚 Meliae]]的女儿/宙斯的情人之一/
<div class="tc-table-of-contents">
<<toc-selective-expandable "伊欧 Io">>
</div>
一个侏儒的名字。他的儿子们为[[亚萨神族 Aesir]]制造了各种珍贵的物品。
!! Offspring
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
<a href="https://www.wikiwand.com/en/The_Garden_of_Eden_with_the_Fall_of_Man">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Jan_Brueghel_de_Oude_en_Peter_Paul_Rubens_-_Het_aards_paradijs_met_de_zondeval_van_Adam_en_Eva.jpg/800px-Jan_Brueghel_de_Oude_en_Peter_Paul_Rubens_-_Het_aards_paradijs_met_de_zondeval_van_Adam_en_Eva.jpg"
caption:"The Garden of Eden with the Fall of Man by Jan Brueghel the Elder and Pieter Paul Rubens, c. 1615"
width:"400px"
align:"right"
>>
</a>
伊甸园里有一棵''善恶树''(the tree of the knowledge of good and evil)和一棵''生命树''(the tree of life)
唯独''善恶树''上面的果子不能吃。
蛇引诱[[夏娃|夏娃 Eve]]吃了善恶树的果子,[[亚当|亚当 Adam]]也吃了。
两人于是知道了裸体的羞耻。
上帝诅咒蛇必须永远用肚皮走路(所以之前蛇是怎么行走的?)
上帝诅咒男女互相为敌,后裔也要互相为敌。
上帝诅咒女人必须受怀孕之苦,必须仰慕丈夫,必须被丈夫管辖。
上帝诅咒男人必须终身劳苦才能从地里获得吃的。
上帝''害怕''能分辨善恶的人类去吃生命果实而获得永生的力量,于是把他们逐出伊甸园。并在生命树的东边安排了小天使(Cherubims)和不停转动的火剑,守护生命树。
<a href="https://www.wikiwand.com/en/Sistine_Chapel_ceiling#Media/File:Expulsion_del_para%C3%ADso.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/9/9b/Expulsion_del_para%C3%ADso.jpg/1920px-Expulsion_del_para%C3%ADso.jpg"
caption:"The Fall and Expulsion from Paradise Michelangelo"
width:"auto"
align:"center"
>>
</a>
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Isis.svg/300px-Isis.svg.png"
caption:"Isis, 王座、带牛角的日轮、悬铃木、麻雀,眼镜蛇、秃鹫"
width:""
align:"right"
tooltip:"tooltip">>
''伊西斯''(原埃及语发音更像 Aset 或 Iset)是古埃及宗教信仰中的一位女神,对她的崇拜传遍了整个希腊-罗马世界。
她被敬奉为''理想的母亲和妻子、自然和魔法的守护神''。她是奴隶、罪人、手工业者和受压迫者的朋友,她也听取富人、少女、贵族和统治者的祷告。伊西斯经常被描述为是鹰头战神[[荷鲁斯|荷鲁斯 Horus]]的母亲和保护者,也被称作''亡灵和幼童的保护神''。
伊西斯名字的含意是“''王座''”,其头饰就是一宝座。作为王位的化身,她是''法老王权的重要体现''。法老被说成是她的孩子,坐在她提供的御座上。对她的崇拜风靡整个埃及,但她最主要的神庙是在尼罗河三角洲的“拜赫贝特·埃尔-哈格”(Behbeit El-Hagar),位于上埃及的菲莱岛上,起始于奈科坦尼布一世在位期间(公元前380-362年)。
在有关她的经典神话中,她是大地之神[[盖布|盖布 Geb]]与天神[[努特|努特 Nut]]的大女儿,出生在第四个闰日。嫁给了哥哥[[欧西里斯|欧西里斯 Osiris]],并怀下了[[荷鲁斯|荷鲁斯 Horus]]。
伊西斯对欧西里斯的复活起了关键作用。当欧西里斯被[[赛特|赛特 Set]]杀害并肢解后,她收集散落在大地上的尸块,应用魔法让他重新复生。在伊西斯所有的功绩中,最有名的是她施计诱骗赛特,在[[九柱神|九柱神 Ennead]]面前承认自己的罪过,以及发现了太阳神[[拉|拉 Ra 太阳神]]的真名。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Egypte_louvre_029.jpg/340px-Egypte_louvre_029.jpg"
caption:"正在哺育荷鲁斯的伊西斯."
width:""
align:"left"
>>
在希腊-罗马时期这一神话变得更为重要。例如人们相信,''每年尼罗河洪水的泛滥,就是伊西斯哭泣欧西里斯所流下的悲伤泪水''。人们每年都要举行再现欧西里斯死亡和重生的仪式。__对伊西斯的崇拜最终蔓延至整个希腊-罗马,一直延续到异教文化受到抑制的基督教时代。__但,''伊西斯给荷鲁斯喂奶的形象,在公元五世纪初被基督教演化为圣母玛丽亚怀抱襁褓中的耶稣。''
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
是波欧提亚(Boeotia)的一位凡人女王,她死后变身为女神,以 "白色女神 "的称号被崇拜。阿尔克曼(Alcman)称她为 "海后"(θαλασσομέδουσα),如果不是夸张的话,这将使她成为安菲特里特的替身。
卡德摩斯的二女儿。
伊诺抚养了她的侄子[[狄奥尼索斯|🍺酒神狄俄尼索斯 Dionysus]],他是她姐姐塞梅勒的儿子,引起了赫拉的强烈嫉妒。
为了报复,赫拉用精神错乱来打击阿塔玛斯(Athamas)。阿塔玛斯疯了,杀死了他的一个儿子利阿克斯,像猎杀雄鹿一样追杀他,并开始疯狂地追杀伊诺。为了躲避他,伊诺和她的儿子Melicertes一起投进了大海。此后,两人都被当作海洋神灵来崇拜,伊诺被称为Leucothea("白色女神"),Melicertes被称为Palaemon。另外,伊诺也得了精神错乱,在大锅里煮死了梅利塞特斯,然后带着她死去的儿子跳进了大海。富有同情心的宙斯不希望伊诺死去,于是将她和梅利塞特斯变成了吕克西娅和帕拉蒙。
在希腊神话中,伊迪亚或艾迪亚是[[俄刻阿诺斯|🌊大洋之神俄刻阿诺斯 Oceanus]]和[[特提斯|河神和海洋之母忒堤斯 Tethys]]的女儿,也是科尔基斯国王[[埃厄忒斯|埃厄忒斯 Aeetes]]的王后。她是美狄亚、卡尔西俄珀和阿布西尔图斯的母亲。根据罗得岛的阿波罗尼乌斯的记载,她是欧申尼德家族中最年轻的一个。她的名字的意思是“美丽的人”或“有知识的人”,源自希腊语εἴδω(eídō),意思是“看到”或“知道”。
|!父母 |[[天空之神乌拉诺斯 Uranus]] and [[🌍大地女神盖亚 Gaea]] |
|!妻子 |[[Asia]] |
''伊阿佩托斯'',除克洛诺斯以外最典型的泰坦。文艺复兴时期以来,不少学者把伊阿佩托斯等同为《圣经》中的挪亚之子[[雅弗|雅弗 Japheth]](Japheth='Ianeros)。
这两个人物主要有如下几个相似之处:
* 第一,名字本身。
* 第二,伊阿佩托斯的兄弟[[克洛诺斯|🌾丰收之神克洛诺斯 Cronus]]酒割了他们的父亲[[天空之神乌拉诺斯 Uranus]];据有的说法,雅弗的弟兄[[含|含姆 Ham]]也对他们的父亲[[挪亚|诺亚 Noah]]做了同样的事,但《创世记》只提到含看见父亲的赤身(9:21)。
* 第三,与一场洪水间接相关,雅弗因其父挪亚,伊阿佩托斯则因其孙、普罗米修斯之子[[丢卡利翁|丢卡利翁 Deucalion]](Deucalion,参见品达,《奥林匹亚凯歌》,9,49-53;奥维德,《变形记》,1,244-349)。
* 第四,雅弗是包括小亚细亚人在内的''西北方人''的祖先,伊阿佩托斯则和克洛诺斯、瑞娅一起与''亚洲的神相关''。
在赫西俄德诗中 , 伊阿佩托斯的重要性显然不在于此 , 而集中体现在他的几个儿子身上 , 特别是普罗米修斯和厄庇米修哥儿俩。
!! Offspring
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
<<<
伊阿佩托斯娶美踝的大洋女儿
克吕墨涅。他俩同床共寝,
生下刚硬不屈的阿特拉斯。
她还生下显傲的墨诺提俄斯、狡黠的
普罗米修斯和缺心眼的厄庇米修斯。
他从一开始就是吃五谷人类的不幸,
最先接受宙斯造出的女人:
一个处女。远见的宙斯把恣肆的墨诺提俄斯
抛入虚冥,用冒烟的霹雳打他,
只因他的傲慢和勇气无与伦比。
阿特拉斯迫不得已支撑着无边的天,
在大地边缘,面对歌声清亮的赫斯珀里特斯姐妹心,
他站着,不倦的头颅和双臂[托着天〕。
大智的宙斯分派给他这样的命运。
他还用牢固的绳索缚住狡黠的普罗米修斯,
用无情的锁链,缚在一根柱子上,
又派一只长翅的鹰停在他身上,啄食
他那不朽的肝脏:夜里它又长回来,
和那长翅的鸟白天啄去的部分一样。
美踝的阿尔克墨涅的勇敢儿子
赫拉克勒斯杀了这鹰,免除这不幸,
伊阿佩托斯之子才脱离残忍的苦楚。
统治天庭的奥林波斯宙斯同意这么做,
为了使出生忒拜的赫拉克勒斯
在丰饶大地上享有比以往更大的荣誉。
他心里如此盘算,敬重他的高贵儿子。
尽管心里恼火,还是捐弃了先嫌:
愤慨的克洛诺斯之子曾连连遭谋反。
<<<神谱
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
|!父母 |[[Aeson]] |
|!配偶 |[[美狄亚 Medea]]|
|!标志 ||
|!对应罗马神 ||
伊阿宋,也有以英文发音译为''杰生'',是希腊神话中带领阿耳戈船英雄''夺取金羊毛''的英雄。
伊阿宋是[[埃宋|Aeson]]的儿子,[[克瑞透斯|Cretheus]]的孙子,是爱俄尔卡斯王国的合法继承人。
''克瑞透斯''在帖撒利的海湾建立城池和爱俄尔卡斯王国并把王国传给埃宋。
后来埃宋的弟弟[[珀利阿斯(Pelias)|珀利阿斯 Pelias]]篡夺王位。
伊阿宋在父亲埃宋过世后到半人半马的肯陶洛斯族人[[喀戎|🐴半人马喀戎 Chiron]]那儿。喀戎训练伊阿宋做一个英雄。为要回王位,他答应会帮[[珀利阿斯|珀利阿斯 Pelias]]取得金羊毛让珀利阿斯让位给他。
伊阿宋在[[雅典娜|🦉智慧女神雅典娜 Athena]]的帮助之下招集许多英雄与勇士建造大船阿尔戈号,成立阿尔戈英雄组织前往科尔喀斯国拿取金羊毛,他们在科尔喀斯的女巫兼公主[[美狄亚(Medea)|美狄亚 Medea]]帮助下取得金羊毛,之后伊阿宋与美狄亚结婚但后又喜新厌旧抛弃妻子。''后来他与孩子遭到美狄亚的诅咒全部丧命''。也有传说他在遭到诅咒后命丧于取得金羊毛的那艘阿尔戈号船的下面。
伊阿宋出现在古希腊和古罗马的诸多文学作品中,有史诗《阿尔戈英雄纪》、悲剧《美狄亚》等等。
[[利里尔 Rerir]]的儿子,[[希格蒙德 Sigmund]]的父亲
<$tmap view="Volsung Family" editor="advanced" height="550px" ></$tmap>
''Frigg'',是北欧神话中拥有''最高神籍''的女神。阿萨神族之王[[奥丁|⚡众神之父奥丁(神圣) Odin]]的正妻,为“众神之母”。她与爱情、美貌、生育、性、战争、黄金和seiðr(预见和影响未来的魔法)有关的,主司''婚姻''女神。
她亦是[[光明之神巴德尔 Baldr]]和[[黑暗之神霍德尔 Hoder]]以及[[⚒️雷神托尔 Thor]]的母亲。''星期五(Friday)''一词即由她的名字衍变而来。
弗丽嘉美丽大方,而且气质非凡,她的高贵气质足以让任何具有思维的生命都臣服于她脚下。在艺术造型中,通常弗丽嘉''身穿一件白色或者是灰黑色的长袍'',''腰间挂着一大串奇特的钥匙'',显示出在阿萨神族中,她拥有特殊的权力。
她有一座自己的宫殿名为''芬撒里尔'',意为''海之宫或雾之宫''。弗丽嘉与[[弗蕾亚|女战神弗蕾亚 Freyja]]有许多相似之处。两位女神的性格大相径庭,都拥有苍鹭之羽,并且都对物质有一定的需求。
弗丽嘉手下有十二位侍女,有时也以奥丁密使的身份出现,她们的名字在《史洛里埃达》中为萨迦(话语)、埃尔(仁慈)、葛冯(给予)、芙拉(参谋)、修芬(爱情)、洛芬(赞许)、华尔(誓言)、瓦尔(真实)、席恩(异议)、赫琳(守护)、斯洛特拉(聪慧)、盖娜(信使)。她们也是弗丽嘉部分神性的化身。
!! 神话传说
弗丽嘉一开始便以妻子和母亲的形象出现在北欧神话故事中,她是一位拥有未卜先知能力的预言者,知道一切未来即将发生的事,却从来不会泄露自己所知。按照奥丁的旨意,他的宝座是绝对不允许任何人随便坐的,''因为坐上宝座的人将会拥有通晓过去与未来的能力'',其他天神都没有资格,也没有胆量坐在宝座上,然而弗丽嘉亦是唯一一位神祇,被允许坐在奥丁的宝座上,因此得以君临寰宇,拥有周知宇宙万事之力,并享有观看宇宙万事万物的特权。
她最大的优点就是对什么事都守口如瓶,从不泄露天机。
弗丽嘉虽然高贵美丽,但是自身也有缺点,第一点是''记忆力相当差劲'',刚告诉她的事情转眼间就忘记了,之所以她对任何事都守口如瓶,和她迷迷糊糊的性格有很大关联。第二个缺点是''贪图虚荣和财富'',她经常用各种各样的金银珠饰来装点自己的宫殿,并且从未满足过。
当爱子''巴德尔''被噩梦困扰时,弗丽嘉强令幽冥九界一切的万物生灵立下誓言,发誓绝不会伤害巴德尔。虽然瓦尔哈拉宫门外的一株橡树上的寄生植物“槲寄生”没有表态,但它是如此弱小柔嫩,弗丽嘉认为不足以构成对儿子的威胁,后来,作恶多端的恶神''洛基''正是利用了这小小的槲寄生枝与假瞎子霍德尔之手杀死了巴德尔。继而,弗丽嘉极力想让死亡女神''海拉''放过他的儿子,最终也是因为恶神洛基在从中作梗,所以没能实现。__由于弗丽嘉是丰饶女神,所以她并不具备有自由出入冥府的本领。__
伟 Ve,[[包尔(Borr)|勃尔 Borr]]和女巨人[[贝斯特拉(Bestla)|贝丝特拉 Bestla]]的孩子,他的兄弟是[[⚡众神之父奥丁(神圣) Odin]]和[[维利(精神) Vili]],是创造世界和创造人类的神。当三兄弟利用创造了人类后,伟给他们''感情、仪表和语言'',因此伟代表的意思是“''意志''”。
同样的造人神话中,另一说法是奥丁和海尼尔和洛德,所以推测菲的另一个名字就是洛德。
马太福音陆续记载了耶稣所行的一些包括治病、平静风浪、喂饱了5000多人、在海上行走等神迹;又设立了12位使徒,以及祂对使徒们的应许及鼓励,提醒他们说“得着生命的,将要失丧生命。为我失丧生命的,将要得着生命。”犹太教的法利赛人企图控告耶稣,却被耶稣驳倒,并对他们的伪善严加斥责。
新约中记载的最多的一类神迹是''医治疾病和残疾''。
!! 耶稣的神迹
!!! 医病
* ''发热'':对观福音书记述耶稣在呼召使徒彼得前后(马可福音记载在呼召彼得之后,而路加福音记载在此之前),来到彼得在迦百农的家,治愈他的岳母。(Matthew 8:14)
* ''麻风'':对观福音书记述在耶稣早期的职事中,治愈了一个麻风病人。(Matthew 8:3)
* ''长期血漏'':对观福音书记述耶稣前往睚鲁的家医治他将要去世的女儿时(见下文“征服死亡”),有一个妇女俯伏在耶稣脚前,她已经患了12年的血漏症,这时她触摸耶稣的衣服䍁子(马太福音 9章20节,14章36节),她的疾病就立即治愈了。耶稣转身过来,于是那位妇女俯伏在耶稣脚前,说“女儿,你的信心拯救了你,平平安安地走吧”。血漏有时解释为月经过多,但是大多数学者认为血漏持续时间长达12年,似乎更有可能是指血友病。(Matthew 9:20)
* “''萎缩的手''(瘫痪)”:对观福音书记述耶稣在安息日进入一个犹太会堂,在那里发现有一个人手萎缩了,治好了他。[[法利赛人 Pharisees]]想要密谋杀掉耶稣,耶稣知道后打算逃走。
* ''耳聋'':马可福音记载耶稣来到低加波利,遇到一个耳聋舌结的人,治愈了他。特别的是,耶稣首先用指头探入他的耳朵,又用唾沫抹他的舌头。
* ''失明'':对观福音书记载耶稣遇到一个乞丐(马可福音记载他的名字是巴底买)。(Matthew 9:29)
* ''瘫痪'':对观福音书记载人们用卧榻抬着一个瘫子来到耶稣那里,耶稣告诉他,他的罪得到了赦免,并且告诉他,“起来,拿你的卧榻回家去吧”,那瘫子就起来,拿着他的卧榻走回去了 (Matthew 9:1)
* ''癫痫''(Matthew 17:14)
!!! 征服死亡
# 睚鲁的女儿:一个犹太会堂的主要赞助人睚鲁,请求耶稣医治他垂死的女儿,但是当耶稣还在途中时,有人告诉睚鲁,他的女儿已经去世,耶稣却说她只是睡了,向她说了一句亚兰文“大利大古米”(意为“闺女,我吩咐你起来”),就“叫醒”了她。 (Matthew 9:23)
# 寡妇的独生子:拿因一位年轻人去世,他是一位寡妇的独生子,他的棺材正运到拿因城外埋葬。耶稣对这位伤心欲绝的母亲产生了怜悯,告诉她不要哭,耶稣上前按住棺材的杠,吩咐棺材里面的人起来,于是死人就坐起来,并且说话。
# 拉撒路:耶稣的好朋友拉撒路已经死去4天,当耶稣命令他起来时,他就复活了。
# 耶稣本人从死亡中复活。
!!! 驱魔
* 让被邪灵操控的人跟随猪群跳崖 (Matthew 8:28)
* 让被邪灵而变成哑巴的人重新说话 (Matthew 9:32)
!!! 支配自然界
* 制止海上风暴 (Matthew 8:24)
* ''在海上行走'' (Matthew 14:25)
!! 设立十二门徒
[[十二使徒 Twelve Apostles]]并教导他们如何传道,提醒他们说“谁想得到生命,就会失去生命;谁为我失去生命,就会得到生命。”
记叙了30年后施洗约翰的工作和为耶稣施浸,神的灵降在耶稣身上,有声音从天上说:“这是我的爱子,我所喜悦的。”,及至耶稣受试探的事迹。当中亦记载了耶稣呼召彼得(原名西门)、安德烈、雅各和约翰的经过。
!! 逃离[[伯利恒|伯利恒 Bethlehem]]
''希律王''<<fnote "一个家族和王朝的名称,''罗马政府''委任这个家族统治犹太人。很多人都知道希律大帝曾改建耶路撒冷的圣殿,而且为了杀死耶稣下令屠杀了许多儿童。(太2:16;路1:5)''希律·阿基劳斯''和''希律·安提帕''是希律大帝的两个儿子,他们各自受委任统治他们父亲领地里的不同地区。(太2:22)安提帕是“分封侯”,当时的人通常称他为“王”。他统治的时间包括耶稣执行传道职务的三年半,一直到使徒行传12章记载的时期。之后,希律大帝的孙子''希律·亚基帕一世''继位,但他只统治了很短的时间就被上帝的天使处决了。(徒12:1-6,18-23)他的儿子''希律·亚基帕二世''继位统治,直到犹太人反抗罗马统治的时候。">>
在位时,从占星术士处得知会有犹太人王降生,他试图杀掉这个救世主。天使托梦给[[约瑟|约瑟 Joseph,son of Jacob,son of Matthan]]让他带[[🤱🏽马利亚 Mary, mother of Jesus]]和[[🧔🏻♀️耶稣 Jesus c.4 BC-33]]逃离伯利恒,逃到埃及去。于是她们连夜从伯利恒逃走。
希律王大怒之下杀掉了所有伯利恒周围地区2岁以下的男孩。
希律死后,天使托梦告诉约瑟可以返回,于是约瑟带着玛利亚及耶稣返回以色列。
但约瑟害怕希律的儿子阿基劳斯杀害他们,转道住在一个叫''拿撒勒''的城。这样就应验了先知们说的话<<fnote "对应旧约段落:先知以赛亚说,将有童女怀孕生子,给他起名叫以马内利(赛 7:14、太 1:23);先知弥迦说,基督要降生在犹大地的伯利恒(弥 5:2、太 2:6);先知何西阿传达上帝的话,说:“我从埃及召出我的儿子来”(何 11:1、太 2:15);先知耶利米预言到有许多婴孩被杀,拉结(注 1)不肯受安慰(耶31:15、太 2:18)。这些事都在耶稣降生前后一一应验。">>
:“他要叫做拿撒勒人“。
!! 耶稣受浸
[[🗣️施洗约翰 John the Baptist]]宣扬为了将来的审判,凡为罪悔改者就为其施洗,并预言有一位比他更大的将要到来。
''耶稣''来到约旦河,接受约翰的洗。耶稣受洗之后,天向他开了,''圣灵如同鸽子降临在他身上'',神宣称耶稣是他的儿子。随后耶稣受圣灵引导,前往旷野,接受魔鬼的试验后,开始正式尽职。
!! 接受魔鬼试炼
耶稣受洗之后,受圣灵引导,到旷野''禁食四十昼夜'',觉得饿了。这时,魔鬼出现。根据《马太福音》和《路加福音》,魔鬼的试探包括3项内容:
# 如果你是上帝的儿子,就叫这些''石头变成食物''吧。耶稣回应道:“人活著不是单靠食物,乃是靠神口里所出的一切话。”
# 引用诗篇第91篇第11-12节,魔鬼带他进了圣城,让他站在圣殿的外墙上,对他说:“''如果你是上帝的儿子,就跳下去吧'',因为圣经上写着:‘他会为你命令天使。’又说:‘他们会用手托着你,不让你的脚碰到石头。’”,要耶稣从圣殿翼上跳下去,证明自己是上帝的儿子。耶稣说:“经上又记著说:‘不可试探主你的神。’。”
# ''敬拜魔鬼'',将得到世上的万国,和万国的荣耀。“只要你跪下来崇拜我,就这一次,我就把这一切都给你。” 耶稣喝道:“走吧,撒旦!因为经上记著说:‘要崇拜耶和华你的上帝,只可以敬奉他。’”
之后,魔鬼就离开了,有天使来服侍耶稣。
!! 呼召最初的门徒
耶稣听说约翰被捕,就回到加利利去了。
耶稣沿着加利利海边走着,看见了两兄弟,就是西门和他的兄弟[[✝️安得烈 Saint Andrew]]。西门又名[[✝️彼得 Saint Peter]]。他们是渔夫,正往海里撒网。耶稣对他们说:“来跟从我吧,我要使你们成为''得人的渔夫''(帮助人成为基督的门徒。)。”他们立刻放下渔网跟随他。
他又往前走,看见另外两兄弟,就是西庇太的儿子[[✝️雅各 James the Great]]和雅各的兄弟[[✝️约翰 John the Apostle]]。他们两人正在船上跟父亲西庇太一起补网,耶稣就呼召他们。他们立刻离开了渔船和父亲,跟随了耶稣。
耶稣在加利利医治百姓各样的病症,群众开始跟随耶稣。
----
<<showfnotes>>
《传道书》(希腊语:Ἐκκλησιαστής、Ekklēsiastēs,希伯来语:קֹהֶלֶת,qōheleṯ)是旧约圣经诗歌智慧书的第四卷,为大多数基督教派系承认。标题“传道书”(Ecclesiastes)是拉丁文转写希腊译文,希腊文则译自希伯来文 Kohelet(即“召集人”,但常常译为“教师”或“传道人”),文中作者使用了化名。
经文成书不早于公元前十世纪。作者自称为:“在耶路撒冷作王,大卫的儿子”(即所罗门),''讨论生命的意义及最佳生活方式''。他宣称人类所有活动都是内在的 hevel,即“虚空”、“无用”、“捕风”,无论智慧愚拙,人固有一死。传道人明确表示智慧是有助于过好尘世人生。在不知不觉中,人应该''享受每日简单的快乐,如吃喝劳作'',这都是上帝的恩典。经文以劝诫总结全文:“敬畏上帝,谨守他的诫命,这是人所当尽的本分”(12:13)。
《传道书》深深影响了西方文学。一些名言与英美文化共鸣,亚伯拉罕·林肯在1862年国会致词时参考。美国小说家托马斯·伍尔夫也对其大加赞赏。
伯利恒(意为“面包房”),旧名''以法他'',是一座位于''巴勒斯坦''西岸地区的城市,座落在耶路撒冷以南10公里处,人口约3万人。该城是伯利恒省的首府,也是当地文化和旅游业的中心。
对于基督教而言,伯利恒是耶稣的出生地,也是世界上最早出现基督徒团体的地方之一,不过近年来由于移民的原因,该城基督徒团体的规模已有所收缩。根据《圣经》记载,伯利恒也是[[👑大卫王 David]]的出生地和加冕成为以色列国王的地方。城外有对犹太教有重要意义的拉结墓。
伯利恒在历史上曾经被众多的帝国所统治。目前,以色列控制着伯利恒的进出口,而日常行政由巴勒斯坦民族权力机构进行管理 。在现代,''伯利恒以穆斯林占多数'',但仍然拥有巴勒斯坦最大的基督徒社区之一。伯利恒都市聚集区包括毗邻的2个城镇:Beit Jala和Beit Sahour,以及Aida和Beit Jibrin难民营。伯利恒的经济支柱是旅游业,尤其是在圣诞节期间,由于该市拥有圣诞教堂,成为''基督徒的朝圣地''。伯利恒拥有30多家旅馆和300个手工业作坊。
!! 圣经时代
该城位于多山的犹大王国,最初叫“''以法他''”,意为“富饶”;又名“伯利恒以法他”、“犹大伯利恒”、和“大卫之城”。圣经里第一次提到该城,是说到[[雅各 Jacob]]最钟爱的妻子[[拉结 Rachel]]在生[[便雅悯 Benjamin]]时,难产死在这里,埋葬在通往以法他的路边,就在城市的北面。
而根据[[路得记 Book of Ruth c.1090 BC]]的记载,山谷向东就是摩押人女子[[路得 Ruth]]故事的发生地点,那里就是她来到财主波阿斯的田地拾取麦穗的地方,也有她和婆婆[[拿俄米 Naomi]]回到这座城市的小路。
伯利恒也是以色列第二位国王[[👑大卫王 David]]的出生地,也是他受先知[[撒母耳 Samuel]]用圣膏油膏抹,成为以色列国王的地方;当大卫在亚杜兰洞时,三个勇士冒着生命危险闯过非利士人的营地,到伯利恒城门旁的井里打水献给大卫。
!!! 耶稣的出生地
在耶稣出生以前的数百年,以色列的先知[[🗣️弥迦 Micah]]在《[[弥迦书 Book of Micah 717 BC]]》的第5章第2节(“伯利恒以法他阿,你在犹大诸城中为小,将来必有一位从你那里为我而出,在以色列中作掌权者;祂是从亘古,从太初而出。”)中,预言[[🙏弥赛亚 Messiah]]将要出生在伯利恒。
根据路加福音2章4节的记载,耶稣的父母本来居住在''拿撒勒'',但是由于罗马皇帝''奥古斯都''下令在全国范围内普查人口,而回到祖先大卫的城伯利恒,因此耶稣就出生在伯利恒。此后,他们全家又回到了''拿撒勒''。马太福音2章则记载''希律王''杀死了伯利恒城内及其四境所有2岁以内的男孩。在这卷福音书中,记载耶稣的养父[[约瑟 Joseph,son of Jacob,son of Matthan]]在梦中得到警告,全家得以及时逃往埃及,躲过了这次屠杀,直到希律死后才返回。''约瑟''再一次在梦中受到天使的警告,没有返回''犹大'',而是全家前往加利利,定居在拿撒勒城。
根据福音书(路加福音2章4节和马太福音2章1节),耶稣正是他们等待的''弥赛亚'',降生在伯利恒,尽管他在''拿撒勒''长大。
(覆盖但以理书5:1-31)公元前539年10月5日,一个大祸临头的晚上。当时,在巴比伦与父亲''拿波尼度''共同执政的''伯沙撒''王设宴款待一千个大臣。王带着几分酒意,便吩咐人把上帝殿中圣洁的金、银器皿拿出来,''伯沙撒和他的宾客一边用这些器皿狂饮,一边赞美异教的神祇。''
''当时忽然有一只手出现在墙上,写了一些难解的字''(叙利亚文)。国王大惊失色。他手下的智士均无法讲解字的意思。后来但以理被带到王前。王表示他若能把字的意思讲解出来,便把他擢升为在国中位列第三,可是但以理却表示王可以把赏赐留给自己。
然后他开始读出和讲解字的意思<<fnote "英语中的习语“''writing on the wall''”(直译为“墙上的字”,意为厄运或灾难的兆头或预言)即来自此故事。">>:“‘弥尼,弥尼,提客勒,佩雷辛。’
‘弥尼’,就是上帝已经''数算''你王国的余日,要你的王国就此完结。
‘提客勒’,就是把你放在天平上''称过'',显出你的亏欠。
佩雷斯’,就是你的王国被''瓜分'',赐给米底亚人和波斯人了。”
当夜''伯沙撒''被杀,米底亚人''大流士''(年代上绝非大流士一世,极有可能是居鲁士二世)承受了国位。
<a href="https://www.wikiwand.com/en/Belshazzar's%20feast">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/John_Martin_-_Belshazzar%27s_Feast_-_Google_Art_Project.jpg/1920px-John_Martin_-_Belshazzar%27s_Feast_-_Google_Art_Project.jpg"
caption:"''John Martin'', Belshazzar's Feast, c. 1821; half-size sketch held by the Yale Center for British Art"
width:"auto"
align:"center"
>>
</a>
----
<<showfnotes>>
''佛尔佛尔'',是所罗门七十二柱魔神中排第34位的魔神,位阶伯爵,统帅26个军团。
外型为一头''有著燃烧中的蛇尾、具有一双巨大的蝠翼的半人半鹿'',声音沙哑,除非被迫,否则从来不说出事实,可以控制男女之间爱情与风雨雷电。在所罗门王72柱魔神中,只有佛尔佛尔有''操控天候的能力''。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Ill_dict_infernal_p0306-290_furfur_demon.jpg/440px-Ill_dict_infernal_p0306-290_furfur_demon.jpg">
<div class="desc">《地狱辞典》中的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/34-Furfur_seal.png/440px-34-Furfur_seal.png">
<div class="desc">Seal of Furfur</div>
</div>
</div>
劳姆,为所罗门七十二柱魔神中排第40位的魔神,位阶伯爵,统帅30个军团,别名“莱姆”(Raim/Ralm/Raim/Raym)。是只''乌鸦'',能够破坏城市。相传许多书中都有提到祂原本是座天使堕天之后变成的恶魔。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a8/40-Raum_seal.png/440px-40-Raum_seal.png">
<div class="desc">Seal of Raum</div>
</div>
</div>
哈帕斯(Halphas),或译“哈法斯”,所罗门王72柱魔神中排第38位的魔神,位阶伯爵,统帅26个军团。擅长建立高塔城防,并驱使他人进行战斗。形象为''鸦首人身''。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/10/38-Halphus_seal.png/440px-38-Halphus_seal.png">
<div class="desc">Seal of Halphas</div>
</div>
</div>
安杜马利乌士,为所罗门七十二柱魔神中排第72位的魔神,位阶伯爵,统帅36个军团。
是''手中拿着一条地狱大蛇的男子'',能发现一切邪恶和不良交易,与窃盗关系密切,拥有取回被窃之物、''察明小偷的真面目之力''。虽然以人形现身却手中握著大蛇,所以召唤者能辨识出祂并非普通人类。
因祂能揭显隐密之事,常有人为了''要找出地下交易地点与隐藏财宝之所在''而被召唤。而至于祂带给人的灾害方面并没有特别纪录。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/6e/72-Andromalius_seal.png/440px-72-Andromalius_seal.png">
<div class="desc">Seal of Andromalius</div>
</div>
</div>
比夫龙(Bifrons),所罗门王72柱魔神中排第46位的魔神,位阶伯爵,统帅6个军团。教人以占星、艺术、几何,''喜欢移动尸体或点亮坟墓上的蜡烛。''
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/35/46-Bifrons_seal.png/440px-46-Bifrons_seal.png">
<div class="desc">Seal of Bifrons</div>
</div>
</div>
''因波斯'',为所罗门七十二柱魔神中排第22位的魔神,位阶是伯爵及亲王(贵公子),统帅36个军团。别名“埃沛欧斯”(''Ayperos'')、“埃波罗斯”(''Ayporos'')、“因悖恩”(''Ipes'')等。
在《所罗门之钥》上记载,他是‘异形者天使’,之所以被称为‘异形者’,主要因为他是个混合了多种生物样貌的天使。
''狮子的头、鹅的脚,兔子尾巴的天使姿态''。 但是也有版画插图是这样形容,''狮子般的外形,鹅头和双脚''。
掌握‘''未来''’的情报,容易被想知道这类事情的人召唤而来。可以给予术者机智、勇气及行动力。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/78/Ip%C3%A8s.png/440px-Ip%C3%A8s.png">
<div class="desc">《地狱辞典》中的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/bd/22-Ipos_seal.png/440px-22-Ipos_seal.png">
<div class="desc">Seal of Ipos</div>
</div>
</div>
“罗诺比”(英语:''Ronobe''),是所罗门王72柱魔神中排第27位的魔神。别名“隆威”(''Romwe'')、“罗奈威”(''Roneve'')、 “罗诺威”(''Ronove'')等。指挥著地狱19支步兵师团的伯爵兼侯爵。
只解释说他以怪物的形式出现。教授''修辞学''并''传授语言知识''。据说它还能从''朋友和敌人''那里''带来极好的亲密关系和友谊''。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Ronwe.jpg/400px-Ronwe.jpg">
<div class="desc">《地狱辞典》中的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/4e/27-Ronove_seal.png/440px-27-Ronove_seal.png">
<div class="desc">Seal of Ronove</div>
</div>
</div>
伯特利(Bethel),在古亚述、波斯、希腊时期,伯特利在希伯来语、腓利基语、亚兰语中是''神殿或神的家''(Beth的意思是指“屋”;El的意思是指“神”)的意思。
目前被确认在接近现代以色列领土Beit El的约旦河西岸上''Beitin''这个巴勒斯坦村庄。
<$leafmap tile='positron'
places='{"point":"31.927117907753455, 35.236953915342106"}' zoom=5>
但,天主教圣经译为丹,是雅各的''第五个儿子'',为拉结的使女辟拉所生,意思为''伸冤''(创世纪30:4)。但的后代,是以色列十二支派之一的但支派。
但的父亲雅各临终前的预言是:“但必判断他的民,作以色列支派之一。但必作道上的''蛇'',路中的虺,咬伤马蹄,使骑马的向后坠落。”(创世纪49:16-17)
属于但支派的最著名的人物就是''参孙''。(士13:2,24,15:20。)
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
《但以理书》(天主教也译作《达尼尔先知书》)是《旧约圣经》中的大先知书之一。历来犹太教与基督教会都同意[[🗣️但以理 Daniel(?-530 BC)]]是本书的作者,是公元前6世纪的作品,但理性主义学者认为该书部分或全部是公元前2世纪的作品。
本书以第一人称记述,显示作者可能是''但以理''本人。耶稣引用《但以理书》第9章第27节所记载的预言时,也称其是“先知但以理所说的”。 主题:神决定给以色列的命定,就是七十个七的内容。
!! 特色
本书作者写作之目的在于指出''以色列的神在异教国家中得著荣耀''。犹太人认为,虽然耶和华曾藉外邦国家来惩罚以色列,但“被掳”不是永久的:反之,那些征服以色列的国家却在历史的过程中自行瓦解,''耶和华要建立一个永远的国度''。
本书以两种语文写成——2章:4节下-7:28为''亚兰文'',其馀为''希伯来文''。其体裁属于''圣经启示文学'',书中充满''异象征性的记号''。其历史哲学认为历史是接耶和华所预定的结局前进(参9:27 一七之内、他必与许多人坚定盟约、一七之半、他必使祭祀与供献止息.那行毁坏可憎的〔或作使地荒凉的〕如飞而来、并且有忿怒倾在那行毁坏的身上、〔或作倾在那荒凉之地〕直到所定的结局。)。''这个世界将可能愈来愈坏,到了末期更是罪恶最猖獗之时;耶和华的百姓要大受迫害。然后耶和华突然干预,重新建立新的秩序。''
本书主要记载''但以理''(和他的三个同伴)在被掳时期的遭遇和预言,以及神在人类历史中的掌权。全书的中心思想是“好叫世人知道至高者在人的国中掌权,要将国赐与谁就赐与谁”(但四17,25,32,而以西结书强调“要叫他们知道我是耶和华”)。
但以理和[[🗣️以西结 Ezekiel]]同时作先知,一个在朝,一位在野;一个多论外邦,一位多论以色列。两人都受灵感,都见异象,也都论及末后的日子。 本书分成二大部分:前六章是历史性的,后六章是预言部分;前六章用“他”,而末六章用“我”。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>nsort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
(覆盖但以理书6:1-28)大流士朝中的高官试图陷害但以理,遂求王下旨在30日内严禁人向王以外的任何神或人祷告祈求。违者必被扔在狮子坑中。
[[🗣️但以理 Daniel(?-530 BC)]]不理禁令,仍照常向耶和华祷告祈求。他终于被扔进狮子坑里。但耶和华施行奇迹,派天使封住狮子的口。翌日早上,大流士王十分高兴见到但以理丝毫无损。国王下令,那些指控但以理的人就被带来,''连同妻儿''一起被扔进狮子坑里。他们还没有落到坑底,狮子就抓住他们,把他们的骨头全都咬碎了。
后来王下旨晓谕百姓要畏惧但以理的上帝,因他是“永远长存的活上帝”。(但以理书6:26)但以理在朝中任职,凡事亨通,直到居鲁士在位期间。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/25/Sir_Peter_Paul_Rubens_-_Daniel_in_the_Lions%27_Den_-_Google_Art_Project.jpg/460px-Sir_Peter_Paul_Rubens_-_Daniel_in_the_Lions%27_Den_-_Google_Art_Project.jpg">
<div class="desc">''[[Peter Paul Rubens|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%BD%BC%E5%BE%97%C2%B7%E4%BF%9D%E7%BD%97%C2%B7%E9%B2%81%E6%9C%AC%E6%96%AF%20Peter%20Paul%20Rubens%201577-1640:%5B%5B%E5%BD%BC%E5%BE%97%C2%B7%E4%BF%9D%E7%BD%97%C2%B7%E9%B2%81%E6%9C%AC%E6%96%AF%20Peter%20Paul%20Rubens%201577-1640%5D%5D]]'', c. 1615</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/1b/Daniel%27s_Answer_to_the_King%2C_by_Briton_Riviere%2C_GMIII_MCAG_1937_123-001.jpg/460px-Daniel%27s_Answer_to_the_King%2C_by_Briton_Riviere%2C_GMIII_MCAG_1937_123-001.jpg">
<div class="desc">''Briton Rivière'', 1890</div>
</div>
</div>
Although Peter Paul Rubens' depiction shows Daniel as a young man (top), Daniel would have been over ''eighty years old'' at the time of this incident, making Briton Rivière's picture (bottom) more accurate.
住棚节(希伯来语:סוכות或סֻכּוֹת,音译为Succoth或Sukkos,意为棚)是圣经中规定的''犹太教三大节期''之一,庆祝时间是从每年秋季的希伯来历[[提斯利月|希伯来历和格里历对应 Hebrew calendar Vs Gregorian calendar]]15日(公历9、10月间)开始,''持续7天''。
在古代,全体以色列男丁都必须集中庆祝三大节期,先在示罗,耶路撒冷圣殿完成后在耶路撒冷。
!! 起源
住棚节在希伯来语中,是''苏克棚(sukkah)''一词的复数形式,意为棚屋。在节日期间,犹太人必须建造一个临时建筑,在其中进餐、款待客人、休息甚至睡觉。
苏克棚是''纪念古代以色列人在离开埃及之后在旷野中[[漂流四十年|出埃及记 The Book of Exodus c.1512 BC]]期间所住的棚屋'',并追念耶和华在这期间供养了所有犹太人的饮食。
!! 仪式
!!! 住棚节四样植物
在每次住棚节7天期间,律法书规定犹太人必须手握住棚节四样植物摇动,代表特别的意义。这四样植物是:''枣椰树''(希伯来语:לולב,lulav)叶子、''香桃木''(希伯来语:הדס,hadass)枝条、''柳树''(希伯来语:ערבה,aravah)枝条和''香橼''(希伯来语:אתרוג,etrog,类似柠檬)果实,前三种枝叶通常捆扎在一起。在节日之前,犹太教团体中通常都会出售这些植物。不过,在一些犹太教改革派团体中,对于其中一种或几种非本地出产的植物,采用芦苇等其他植物来代替。
住棚节四样植物按下列程序摇动:前三种植物的枝叶握在右手中,而香橼握在右(左)手中。使用者两手分开,说特别的祝福语:“”在犹太教正统派中,在住棚节的每一天(除了安息日),男人和举行过成年礼(bar mitzvah,13岁)的男孩都必须遵守摇动住棚节四样植物的戒律。妇女们没有摇动住棚节四样植物的义务,但如果她们想要这么做,在传统上,在犹太教保守派和犹太教改革派中,所有举行过成年礼的犹太人都要履行摇动仪式。
摇动仪式通常每天在犹太会堂的祷告仪式中举行,也可以在私人家中或苏克棚中私下举行。在住棚节的前六天中,所有犹太会堂的礼拜者离开座位时都要排成队伍,手握四样植物绕行sanctuary一圈。在诵读Hallel时,摇动住棚节四样植物。节日的第7日,称为Hoshanah Rabbah,礼拜者要绕行sanctuary7圈。
这个规矩来源于[[利未记|利未记 Book of Leviticus c.1512 BC]]:“第一日,你们要拿美好树上的果子、棕树的枝子、茂密树的枝条、与溪边的柳枝,在耶和华你们的神面前欢乐七日。”。“美好树”在希伯来语中的意义不明确,现代希伯莱语中明确为“柑橘类”。
!!! Hoshanot
在犹太会堂,住棚节的每天,礼拜者手拿住棚节四样植物环绕会堂游行,并朗诵诗篇118篇25节“耶和华阿,求你拯救!”(Ana HaShem, hoshia nah),随后是专门的祷告。
在耶路撒冷圣殿存在的时期,还举行柳树枝纪念仪式,将柳枝堆在在祭坛旁,礼拜者环绕祭坛游行并朗诵统一节圣经。
''对北以色列国偏离信仰的控诉和预言''
何西阿书,天主教译作欧瑟亚书,是圣经全书第28本书,旧约圣经小先知书的第一本书。
作者是北方以色列国的先知[[🗣️何西阿 Hosea]]。此经以何西阿的家庭为例子,经历了妻子离开又回来,预见以色列国家的事件,以接纳她回来并复兴她,指代耶和华是邪淫背道之以色列的救恩。
这本以何西阿为名的书除了提及他是备利的儿子外,很少披露这位预言者的生平。他的预言绝大部分都与[[以色列国|王国分裂]]有关,''犹大国''则只是顺带提及而已。何西阿''没有提到耶路撒冷'',但提及以色列的主要支派[[以法莲|Tribes of Ephraim]]37次,谈及以色列的首都[[撒马利亚|撒马利亚 Samaria]]则有6次。
他一开始担任先知工作,上帝便吩咐他“娶淫妇为妻”。"你去娶妻子吧,她将来会淫乱,你会抚养她淫乱生的儿女,因为这片土地的人民也淫乱,完全离弃了耶和华。"
以色列曾一度像妻子一般属于耶和华,后来却淫乱不忠。但上帝向她大显慈爱,渴望帮助她改弦易辙。何西阿的影子妻子''歌篾''正是个好例子。显然她未在生了头一个孩子后便不安于室,而其他孩子则是从淫乱生的。
耶和华差遣何西阿往以色列作他的预言者。以色列背弃与耶和华所立的约,参与巴力崇拜。以色列在应许之地成为农耕民族,他们不但采纳了迦南人的生活方式,同时也采纳了迦南人的宗教而崇拜象征大自然生殖力的巴力神。
在何西阿的日子,以色列完全离弃了耶和华的崇拜,转而从事一些放荡、狂饮的宗教仪式,包括与庙妓发生苟且关系。以色列有分促成了巴力的繁荣。她不忠而辜负了上帝,因此必须受到惩治。耶和华要她明白,物质财富并非来自巴力,所以他派遣何西阿去警告以色列,她若不肯悔改便会有甚么后果。
耶罗波安二世死后,北方以色列国进入历史上相当可悲的时期,有好几个王先后被人暗杀,直到公元前740年整个国家遭亚述人掳去。在这段时期中,国内两个派系屡动干戈,一方想与埃及结盟,另一方则要与亚述联手。双方都没有信赖耶和华。
此书的第一节透露何西阿以预言者的身分为耶和华服务了一段很长的时间,从以色列王[[👑耶罗波安二世 Jeroboam II]]统治的末期直至犹大王[[👑希西家 Hezekiah]]统治的日子,即由早于公元前804年开始,至公元前745年之后,前后逾59年。他说预言的工作无疑包括''耶罗波安二世''和''希西家''作王的若干时候。在这段时间内,耶和华的其他先知还包括阿摩司、[[🗣️以赛亚 Isaiah]]、弥迦和俄德。
!! 主要内容
# 以比喻说明以色列的淫乱行径
# 对以法莲(和犹大)所作的预言性判决
Destroyer,巨人。
佛恩尤特有三个孩子:海洋化身的赫勒尔(又名埃吉尔)。风化身的卡瑞和火化身的罗吉Logi。
Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
(覆盖以西结书33:1-37:28)耶和华对以西结重申他作守望者的责任。百姓必说:“耶和华的道不公平。”因此,以西结必须清楚指出他们多么罪大恶极。(以西结书33:17)公元前607年,十月初五日,一个从耶路撒冷逃脱的人抵达后对[[🗣️以西结 Ezekiel]]说:“城已攻破。”(以西结书33:21)
至此以西结可以恢复向被掳的人民发言;他警告百姓,''任何企图营救犹大的计划均必失败''。他们虽然来见以西结,要听耶和华的话,但他们仅是将预言者视作有如擅唱情歌的歌手,仿佛一个擅奏弦乐、歌声优美的人。他们对他的信息毫不留意。然而,当事情一一实现时,他们就知道在他们中间有了预言者。
以西结严词责备一切''只顾喂养自己而忽略照顾羊群''的假牧人。完美的牧者耶和华必把失散的羊召集起来,领他们到以色列山肥美的草场吃草。他必立一个牧人,‘他的仆人大卫’,去牧养他们。(以西结书34:23)耶和华必作他们的上帝。他必跟他们立平安的约,倾福与他们,如甘霖降下。
以西结再次预言''西珥山(以东)''必成为荒场。然而,以色列的荒场必被重建,因耶和华顾惜自己的圣名,要在列国中把他的名显为圣。他要赐给他的子民一个新的心和新的灵,他们的地必“成如伊甸园”。(36:35)
以西结看见一个异象,其中满谷的骸骨预表以色列。以西结向骸骨说预言。不可思议地,它们竟然再长出肉来,复得气息而活过来。
耶和华必同样打开以色列人的坟墓,把他们从巴比伦被掳的情况中释放出来,使他们重返故土,得以复兴。以西结拿两根杖去代表以色列的两部分——犹大和以法莲。两根杖在他手中接连为一。故此,当耶和华复兴以色列时,他们必凭着上帝与他仆人“大卫”所立的平安之约合而为一。(以西结书37:34)
Thyestes 与他的兄弟 Atreus 争夺迈锡尼的王位已经有一段时间了,并且与 Atreus 的妻子 Aerope 有染。为了报复这件事,Atreus杀死了Thyestes的儿子们,并在宴会上用他的儿子们招待Thyestes。
Thyestes发誓复仇。一位神谕随后告诉Thyestes,如果他和自己的女儿佩洛皮亚有一个儿子,那个儿子会杀死Atreus。因此,当当时住在塞斯普洛托斯国王宫廷的西西翁的佩洛皮亚来到河边清洗她在祭祀仪式中沾染血迹的衣服时,Thyestes捂着脸袭击并强奸了她。她设法拔出他的剑并留着,这样她就能认出她的罪犯。
不久之后,Atreus来到忒斯普罗图斯寻找他的兄弟,并把佩罗皮亚当作Thyestes的女儿,向她求婚,忒斯普罗图斯为了不暴露真相而同意了。
由于佩洛皮亚怀了她的父亲Thyestes的孩子,她很快生下了[[埃吉斯托斯Aegisthus|埃吉索斯 Aegisthus]]并抛弃了他。他被一只母山羊喂养并活了下来。一位牧羊人找到了婴儿埃吉斯托斯,并将他交给了Atreus,阿特柔斯将他当作自己的儿子抚养。
当他已经成年时,Thyestes在德尔斐被阿伽门农Agamemnon 和墨涅拉俄斯Menelaus 俘虏并带到阿特柔斯那里,阿特柔斯派埃吉斯托斯杀死他。
埃吉斯托斯碰巧携带着曾经属于Thyestes、后来由珀罗庇亚Pelopia送给他的剑; Thyestes 认出了这把剑,并询问了 Aegisthus。 Aegisthus 叫来 Pelopia,后者告诉他武器是如何拿到她的。在认出 Thyestes 和他是强奸犯这一事实后,Pelopia 用她父亲的剑刺伤了自己。 埃吉斯托斯随后杀死了Atreus,并将王国归还给了Thyestes。
! 色萨利国王/宙斯之孙/阿基里斯之父
[[Aeacus|埃阿科斯 Aeacus]]的儿子。
泰坦神[[普罗米修斯|🪔普罗米修斯 Prometheus]](Prometheus)告诉宙斯如和忒提斯(Tethys/Thetis)结婚将诞下一个比父親更強的人,謹慎的神祇也不想生出一個危險的競爭對手,因此他劝宙斯将[[忒提斯|河神和海洋之母忒堤斯 Tethys]]嫁给佩琉斯为妻,而他们的孩子将是一个伟大的英雄,不过条件是要佩琉斯先战胜忒提斯。
佩琉斯在神祇幫助下躲在那个忒提斯常休息的山洞趁她不觉时捉住她,''忒提斯无论变成母狮、水蛇及海水,佩琉斯都没放手,就这样在神祇幫助下佩琉斯就胜利了''。
在与特提斯Thetis的婚礼上发生了[[金苹果事件|🦉智慧女神雅典娜 Athena]],之后引发特洛伊战争。
!! Offspring
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
《使徒行传》,天主教称《宗徒大事录》,东正教称《使徒行实》,唐朝景教称《传化经》,伊斯兰教穆斯林回教天经引支勒/回族中文圣经称《使者行传》,为《新约圣经》的第五卷,当中介绍''耶稣基督复活、向门徒显现、升天后,祂的使徒(天主教作“宗徒”)传道、殉道的事迹'',包括[[保罗|保罗 Paul the Apostle c.3-c.67]]的同工[[路加|路加 Luke the Evangelist c.1/16-c.84/100]]写的关于保罗的事迹。一般相信使徒行传为''路加''所写,其亦为另一新约书卷《[[路加福音 Gospel of Luke c.56-58]]》的作者。
!! 作者和地位
这本书开头显示是写给[[提阿非罗|福音书]]的。既然他被称为“大人”,他可能担任某个官职,或者这''仅是个尊称''而已。这本书的记载准确地叙述''基督徒会众建立和扩展''的经过。它首先记载耶稣复活后向门徒显现,接着叙述由''公元33年到大约61年间''的重大事件,前后约28年。
很多圣经学者同意,《使徒行传》的执笔者就是《[[路加福音 Gospel of Luke c.56-58]]》的执笔者[[路加|路加 Luke the Evangelist c.1/16-c.84/100]]。两本书同是写给提阿非罗的。藉着在《使徒行传》的起头复述福音书末了所载的事件,路加将两份记载连接起来,就像来自同一位执笔者一般。
关于路加的生平,人们所知甚少。路加本人并非使徒,但却与使徒有密切交往。(路1:1-4)使徒保罗曾三次指名提及路加。有若干年的时间,路加经常与保罗作伴,后者将他称为“亲爱的医生”。书中先后交替地采用“他们”和“我们”这两个代名词; 这表明在保罗的第二次海外传道旅行中,路加跟保罗一起在特罗亚,其后他可能留在腓立比,直至保罗在数年后回来为止,然后他陪保罗一起到罗马受审。
!! 写作时间
路加大约在公元61年写成《使徒行传》,当时很可能接近他与使徒保罗在罗马逗留了差不多两年时间的末了。既然《使徒行传》的记载含有在该年发生的事,它自不可能在较早的时候完成;记载并没有透露保罗上诉凯撒的结果,由此表明它在那一年已经写成了。
!! 主题特色
本书一开始便提到耶稣应许[[圣灵|三位一体 Trinity]]的降临,跟着叙述圣灵如何降临在信主的犹太人和外邦人身上,并带领使徒把福音从耶路撒冷传到各地去。全书强调圣灵的工作,因此有人称之为“圣灵行传”。本书的特色如下:
# 记载''各地教会早期成立的经过'',提供有关新约书信写作背景的参考资料。
# 指出在圣灵的带领下,基督教虽然遭遇重重因难,仍得以传扬开来。
# 记载初期教会灵性、道德、生活的情况,以及使徒宣教的内容和基本教义。
# 详细叙述[[✝️彼得 Saint Peter]]和[[保罗 Paul the Apostle c.3-c.67]]的布道工作。
# ''详实准确''。路加的写作具有报导准确的特色, 第一次世界大战期间英国驻地中海的海军中校史密斯(Edwin Smith)在1947年3月的《舵》杂志里写道: “在驾驶方面,古代的船只跟现代的不同;现代的船只是靠安装在船尾的方向舵去操纵的,古代的船只则用船尾两边的两支巨桨去控制方向。故此,路加以众数描述这些划桨。……我们曾经查考过有关此船航行的每一句话,由它离开佳澳的日子开始,直到在马耳他搁浅为止, 外在的独立证据以最精确和最令人满意的方式证实了路加的记载; 我们亦发觉他谈及船停留在海上的日子正好与所行路程一致; 最后, 他对到过的地方所作的描述也跟这些地方的实际情形一样。 这一切不但证明了,路加曾实际到过这些地方, 并且显示他的观察和描述都极其可靠和信实。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
(覆盖但以理书10:1-12:13)当时是“[[波斯王居鲁士|https://www.wikiwand.com/zh-hans/%E5%B1%85%E9%B2%81%E5%A3%AB%E4%BA%8C%E4%B8%96]]第三年”,大约是公元前536年,犹太人返回耶路撒冷之后不久。
[[🗣️但以理 Daniel(?-530 BC)]]禁食了三天,然后来到''底格里斯河''边。(10章1-4)有一位神的使者向他显现,鼓励但以理要坚强并使他有力量。
<<card
text:"
一月二十四日([[希伯来历|希伯来历和格里历对应 Hebrew calendar Vs Gregorian calendar]]),我在底格里斯大河岸边,放眼望去,见有一个人身穿细麻衣,腰系乌法金带。他的''身体好像贵橄榄石,面孔看似闪电,眼睛有如火炬,臂膀和双脚仿佛擦亮的铜,说话的声音如同一大群人的声音''。这个异象只有我但以理看见。跟我在一起的人虽然看不见这个异象,却突然浑身颤抖,逃跑躲藏。
"
footer:"Daniel 10:4"
>>
使者对但以理说“但以理啊,不要害怕。自从你第一天决心领悟这些事,在上帝面前行事谦卑,你的话就已经得到垂听。我是因为你的话而来的。”(10章12节)
之后使者提到自己被波斯国的领袖阻拦二十一日,最高等级的领袖之一[[😇米迦勒 Michael(who is like God?)]]来帮助他。(10章13节)
使者道明来意之后,启示了''但以理''关于北方王与南方王对立的预言。
<<card
text:"
还有三个国王要为波斯站起来,第四个国王积聚的财富比其他的国王都多。他一旦因财富而强盛,就会动员一切攻击希腊王国。
<br><br>“将有一个很有能力的国王站起来统治,权势极大,为所欲为。他站起来后,他的王国就会瓦解,向天的四方分裂,却不是由他的子孙继承,统治的权势也比不上他;因为他的王国会被连根拔起,归别人所有。
<br><br>“他手下的一个领袖,也就是南方王,将会强盛起来。但另一个人会胜过这个国王,统治的权势极大,比这个国王有更大的权力。
<br><br>若干年后,他们会结盟。南方王的女儿会去北方王那里,订立公平的协议。可是她的势力不能维持下去。国王不能立足,丧失一切势力。她和带她来的人,还有生她的,以及在那段时期使她有势力的人都会被交在别人手里。从她的根所发的芽,会有一个人站起来继位,来到军队这里,攻击北方王的堡垒,对抗敌人,而且得胜。他会带着他们的神像、铸像、金银宝物和俘虏回埃及去。若干年内,他不会再攻击北方王。北方王会攻打南方王的王国,却会回到自己的地方。
<br><br>“他的儿子们会为战争做准备,聚集人数众多的军队。其中一个儿子必定前来,好像洪水泛滥。他会回去,一路作战,直到他的堡垒。
<br><br>“南方王会发怒,出去跟北方王交战。那个国王会集结大军迎敌,大军却会被交在这个国王手里。大军会被俘掳,他就心高气傲,令数以万计的人倒下,却不利用自己的优势。
<br><br>“北方王会回来,集结大军,比先前的人数更多。过了一段时间,若干年以后,他一定会率领一支人数众多的军队,带着大量物资来到。那段时期会有很多人站起来反抗南方王。
<br><br>“你的民族当中会有暴徒随势而起,企图使异象成真,却终会倒下。
<br><br>北方王会来筑起围城的土垒,夺取一个有防御工事的城。南方王的军队抵挡不了,连他的精兵也战败,无力对抗。他会来攻击南方王,任意行事,在他面前谁也不能立足。他会站在荣美之地,手中有能力灭尽敌人。他会决心倾尽全国的军力而来,却会订立公平的协议。他会采取积极的行动。有一个做女儿的会被他所误,后来无法坚持下去,不再属于他。他会转到沿海地区,夺取很多地方。有一个将军要除去自己受到的羞辱,不再让他施加羞辱。这个将军会使他自取其辱。于是他转回本地的堡垒,将会失足跌倒,无处可寻。
<br><br>“将有一个人站起来继位,使横征暴敛的人走遍辉煌的王国。过了没多少日子,他就会死去,既不是死于人的愤怒,也不是死于战争。
<br><br>“将有一个受藐视的人站起来继位。人不把王国的尊荣给他,他却会在人觉得安全的时候乘虚而入,用圆滑的手段夺取王国。洪水般的军队会因他而被冲走,结果被消灭,誓约的领袖也会被消灭。因为有些人跟他结盟,他就欺骗人,靠着一个小族而崛起,变得强大。在人觉得安全的时候,他会来到最富庶的省份,做他祖先以及祖先的祖先都没有做过的事。他会把抢夺回来的东西,以及战利品和财物都分给大家,并用诡计夺取坚城重镇,却只能维持一段时间。“他会动员力量,鼓起勇气,率领大军攻打南方王。南方王也会积极备战,率领极大极强的军队迎敌。他会无法立足,因为有人用诡计谋害他,吃他佳肴的人会打倒他。
<br><br>“他的军队会好像被洪水冲走,将有很多人被杀。
<br><br>“这两个国王存心作恶,虽然同坐一桌,却互相欺骗。他们会一事无成,因为终结会在指定的时候来到。
<br><br>“他会带着大量财物回到自己的地方,存心反对圣约。他会积极行动,回到自己的地方。
<br><br>“指定的时候到了,他就回来,攻打南方。可是,这次跟以往不一样了。基提的船会来攻打他,他就遭到挫败。
<br><br>“他会回来,发怒攻击圣约,积极行动。他会回来,对离弃圣约的人另眼相看。将有军队兴起,从他那里出去。他们会亵渎有如堡垒的神圣居所,废去经常献祭的安排。
<br><br>“人们会设立那造成荒凉的可憎之物。
<br><br>“他会向作恶背约的人说油滑的话,引诱他们叛道。认识自己上帝的人民却会得胜,积极行动。民众当中洞悉事理的人会让很多人领悟真义。有一段日子,由于刀剑、火焰、俘掳、抢掠,他们将会倒下。他们倒下的时候,却会得到一点帮助。将有很多人靠着油滑的话混入他们当中。有些洞悉事理的人会倒下,大家就会受到熬炼,得以洗净洁白。这些事会持续到终结的时候,因为指定的时候到了,事情才会结束。
<br><br>“这个国王会为所欲为,自高自大,要超越所有的神,还说惊人的话冒犯万神之神。他会成功,直到降怒完毕,因为已经决定的事必然发生。他不理会他祖先的神,也不理会妇女的愿望和其他任何神,反而狂妄自大,要超越所有人。他却把荣耀归于堡垒之神,用金银宝石以及各种宝物,把荣耀归于他祖先不认识的神。他会靠着外族的神攻击最森严的城堡,采取积极的行动。谁承认他,他就给谁极大的荣耀,派他们统治很多人。有谁付出代价,他就会分配土地给谁。
<br><br>“在终结的时期,南方王会跟他互相推撞。北方王会带着战车、骑兵和很多战船,势如暴风,发动攻击。他会进入各地,好像洪水泛滥。他也会进入荣美之地,很多地方都被推翻。以东、摩押,还有亚扪人的中坚分子却能逃离他的手。他会不断伸手攻打各地,埃及也不能逃脱。他会掌管金银宝藏和埃及的所有宝物。利比亚人和埃塞俄比亚人都会追随他。
<br><br>“可是从东方和北方传来的消息会惊动他。他会勃然大怒,出去杀尽灭绝很多人。他会在大海和荣美的圣山之间竖立他的御用帐篷。他会来到尽头,谁也帮不了他。”
<br><br>“在那个时候,一直站着维护你民族的伟大领袖''米迦勒''会起来。将有一段苦难的时期出现,自从有了国家直到那时,没有发生过这样的苦难。在那个时候,你民族中每一个登记在册的人,都会逃过大难。很多在尘土中睡了的人都会醒来,有些得享永生,有些蒙受耻辱,永远被鄙视。
<br><br>“洞悉事理的人会发出光来,像天空一样明亮;那些带领很多人归向正义的,会永永远远如同星辰闪耀。
<br><br>“但以理啊,这些话你要保密,用印封住这卷书,直到终结的时期。将来会有很多人来往奔走,真确的知识就会丰富起来。”
"
footer:"Daniel 11:2"
>>
使者指示但以理要把这个预言保密,直到最后的时刻来临。
虽然诸神有了那神奇的[[虹桥碧佛洛斯特|🌈彩虹桥 Bifrost]],又有可靠的守望者[[海姆达尔|💂🏻破晓之神海姆达尔 Heimdallr]],可是他们还觉得不够,深恐一天霜巨人会打到阿瑟加德来;他们打算再建一座城堡。
就在他们正在计议如何建造的时候,来了一个面生的建筑师,愿意承造这座堡,但要求诸神以''太阳、月亮''以及''美神''[[女战神弗蕾亚 Freyja]]为报酬。诸神大怒,以为这个建筑师太狂妄了。但是[[洛基|🦹邪神洛基 Loki]]提议,不妨姑且答应,但要给他最严酷的条件:一是须在冬季之内完工,二是除了那建筑师和他的马''斯瓦迪尔法利(Svadilfari)''之外,不准有别人帮忙。
这样苛刻的、看来不可能的工作,建筑师居然答应了。他白天建筑,夜间搬运石头。工程进行得很快,不久就完成了一半;到冬尽的最后一天,只剩一个拱门了。而这一点小工作,当天晚上那位建筑师是一定可以做完的。
眼看太阳、月亮还有美丽的弗蕾亚都要不保了,诸神都埋怨洛基;如果洛基不想个补救之策,诸神会杀了他。
这时,洛基的狡猾又有用了。他跑到那匹马——''斯瓦迪尔法利''搬运石头的树林里,''斯瓦迪尔法利''正拖着一段极大的石柱。洛基变为一匹母马,从黑暗中冲出去,对斯瓦迪尔法利作春情的嘶鸣。__因为这母马是很美丽的母马,而它的嘶鸣又是那样淫逸__,所以工作中的斯瓦迪尔法利就丢开了石柱去追赶母马了,建筑师的喝止也没有效果。变成母马的洛基很巧妙地往森林深处跑,斯瓦迪尔法利在后面追,建筑师又在后面追斯瓦迪尔法利,就这样把整整一夜浪费了<<fnote "又据一说,洛基变的母马与斯瓦迪尔法利交配,遂生[[🐴八脚马史莱普尼尔 Sleipnir]]。">>。
这位建筑师不是凡人,而是太古时代残存的一个无名''霜巨人''的化身。他回到[[亚萨神国阿斯加特 Asgard]],暴跳如雷,责骂诸神不该使用诡计;他几乎杀了诸神,幸得[[托尔|⚒️雷神托尔 Thor]]赶了回来,一雷锤将这霜巨人打死。
这一次,诸神仅是依靠诈术和''托尔''的强力才救了自己,这两者都不是''阿斯加特''的荣誉所能堪的。他们很忧虑,知道他们的“黄昏”之日是一天一天地逼近来了。
----
<<showfnotes>>
在希腊神话中,伊菲革涅亚出现在希腊舰队聚集在奥利斯准备与特洛伊开战时。在这里,希腊人的领袖阿伽门农 (Agamemnon) 在供奉女神阿尔忒弥斯 (Artemis) 的小树林中意外杀死了一只鹿。 阿尔忒弥斯利用风来惩罚阿伽门农,使阿伽门农的舰队无法航行到特洛伊。先知卡尔卡斯告诉阿伽门农,为了安抚阿尔忒弥斯,他必须牺牲自己的大女儿伊菲革涅亚。起初他拒绝了,但在其他指挥官的压力下,他同意了。
伊菲革涅亚和她的母亲克吕泰涅斯特拉被带到奥利斯,借口是[[阿喀琉斯|阿喀琉斯 Achilles]]要娶这个女孩。他们发现了真相。在故事的某些版本中,伊菲革涅亚直到最后一刻才意识到她即将牺牲。直到她去世的那一刻,她都相信她会被带到祭坛上结婚。
在某些版本中,例如 Hyginus 的 Fabulae,Iphigenia 没有被牺牲。 一些消息来源声称伊菲革涅亚在献祭的那一刻被阿尔忒弥斯带到了陶里斯(在克里米亚),女神留下了一头鹿代替她, 或者山羊(实际上是潘神)代替她。 The Hesiodic Catalogue of Women 称她为 Iphimede (Ἰφιμέδη) 并告诉阿耳忒弥斯将她变成了女神赫卡忒 。 Antoninus Liberalis 说,伊菲革涅亚被运送到 Leuke 岛,在那里她以 Orsilochia 的名字与永生的阿喀琉斯结婚。
在埃斯库罗斯 (Aeschylus) 的《阿伽门农》(Agamemnon) 中,伊菲革涅亚 (Iphigenia) 的牺牲是克吕泰涅斯特拉 (Clytemnestra) 和她的情人埃吉斯托斯 (Aegisthus) 计划谋杀阿伽门农 (Agamemnon) 的一个原因。
在欧里庇得斯的《奥利斯的伊菲革涅亚》中,墨涅拉俄斯说服阿伽门农听从先知卡尔卡斯的建议。阿伽门农给克吕泰涅斯特拉发了一条信息,告诉她伊菲革涅亚的婚姻,他立即后悔自己的决定,并试图再寄一封信告诉他们不要来。墨涅拉俄斯截取了这封信,他和阿伽门农争吵起来。墨涅拉俄斯坚持认为,阿伽门农有责任尽其所能帮助希腊人。克吕泰涅斯特拉带着伊菲革涅亚和婴儿俄瑞斯忒斯到达奥利斯。阿伽门农试图说服克吕泰涅斯特拉回到阿尔戈斯,但克吕泰涅斯特拉坚持要留下来参加婚礼。当她看到阿喀琉斯时,克吕泰涅斯特拉提到了婚姻;然而,阿喀琉斯似乎并没有意识到这一点,她和伊菲革涅亚逐渐了解了真相。阿喀琉斯对阿伽门农在他的阴谋中使用他感到愤怒,发誓要帮助阻止谋杀伊菲革涅亚。伊菲革涅亚和克吕泰涅斯特拉恳求阿伽门农饶恕他女儿的生命。阿喀琉斯告诉他们,渴望战争的希腊军队得知了先知的建议,现在要求牺牲伊菲革涅亚。如果阿伽门农拒绝,他们很可能会背叛他并杀死他和他的家人。伊菲革涅亚知道自己注定失败,决定心甘情愿地被牺牲,理由是作为一个凡人,她不能违背女神的意愿。她还相信她的死将是英勇的,因为这是为了所有希腊人的利益。伊菲革涅亚退出,祭祀在台下进行。后来,克吕泰涅斯特拉被告知她女儿据称已死——以及在最后一刻,众神如何放过伊菲革涅亚并将她带走,用一只鹿代替她。
欧里庇得斯关于伊菲革涅亚的另一部戏剧,陶里斯的伊菲革涅亚,发生在献祭之后,在俄瑞斯忒斯杀死克吕泰涅斯特拉和埃吉斯托斯之后。阿波罗命令俄瑞斯忒斯——为了逃避厄里涅斯因杀害他的母亲克吕泰涅斯特拉和她的情人而受到的迫害——去金牛座。 在陶里斯期间,俄瑞斯忒斯将把从天上掉下来的阿尔忒弥斯的 xoanon(雕刻的木制崇拜图像)带到雅典。当俄瑞斯忒斯带着斯托瑞斯之子、俄瑞斯忒斯的密友皮拉德斯到达陶瑞斯时,这对夫妇立即被金牛座俘虏,他们有向阿尔忒弥斯献祭所有希腊陌生人的习俗。伊菲革涅亚是阿尔忒弥斯的女祭司,执行祭祀是她的职责。伊菲革涅亚和俄瑞斯忒斯不认识对方(伊菲革涅亚认为她的兄弟已经死了——一个关键点)。伊菲革涅亚从一直隐瞒身份的俄瑞斯忒斯那里得知俄瑞斯忒斯还活着。
伊菲革涅亚随后提出释放俄瑞斯忒斯,前提是他将她寄给希腊的一封信带回家。俄瑞斯忒斯拒绝去,但吩咐皮拉德斯拿走这封信,而俄瑞斯忒斯留下来待命。一场感情冲突后,皮拉德斯终于屈服了,但这封信却让兄妹相认,三人带着阿尔忒弥斯的形象一起逃走。在他们返回希腊后——一路上被雅典娜从危险中解救出来——雅典娜命令俄瑞斯忒斯将 Xoanon 带到哈莱镇,他将在那里为阿尔忒弥斯·陶罗波洛斯建造一座寺庙。在那里举行的一年一度的节日中,为了纪念阿尔忒弥斯,必须从一个人的喉咙中抽取一滴血来纪念俄瑞斯忒斯的近乎牺牲。雅典娜将伊菲革涅亚送到布劳伦的阿尔忒弥斯圣殿,在那里她将成为女祭司,直到她去世。然而,根据斯巴达人的说法,他们将阿尔忒弥斯的形象带到了拉科尼亚,在那里,这位女神被称为阿尔忒弥斯·奥尔蒂亚 (Artemis Orthia)。
伊菲革涅亚与阿尔忒弥斯的这些密切认同鼓励一些学者相信她最初是一位狩猎女神,其崇拜被奥林匹斯山的阿尔忒弥斯所包含。
''亚蒙'',所罗门王72柱魔神中排第7位的魔神。位阶侯爵,统帅40个军团的“炎之侯爵”。
形象是''枭首狼身蛇尾'',口吐烈焰。相传因头部为枭首,在埃及,曾被作为最高神[[阿蒙|阿蒙 Amun]]崇拜。能通晓过去未来,能使朋友反目成仇或和解。也有人说会教授召唤者未来与过去的知识,予人和情爱相关的秘密。也有说法,阿蒙代表的意思是隐士,不可解者,所以他真正的形象可能从来没人看到过。
亚蒙曾被认为是地狱的诸多恶魔君主中权势''最为强大的''。 而名字亚蒙( Aamon )和阿蒙(Amon )相传是从阿蒙(Amun,埃及主神,意为“隐藏者”)以及巴耳·哈蒙(Baal-hamon,古迦太基神话的主神)这两尊异教神改变过来的。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/e/e4/Aamon.jpg">
<div class="desc"> Aamon </div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/f0/Amon.jpg/440px-Amon.jpg">
<div class="desc">Seal of Amon</div>
</div>
</div>
''佛钮司'',所罗门王72柱魔神中排第30位的魔神,位阶侯爵,统帅29个军团。另有译名为“弗内乌”(''Forneus'')。是条银色大鲛鱼。可使人''精通辩论与化敌为友''。相传许多书中都有提到祂原本是座天使堕天之后变成的恶魔。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/30-Forneus_seal.png/440px-30-Forneus_seal.png">
<div class="desc">Seal of Forneus</div>
</div>
</div>
''加麦基'',为所罗门王72柱魔神中排第4位的魔神,别名“加米基”(''Gamigin'')、“萨密基那”(''Samigina'')。率领地狱30支师团的侯爵。同时,也是名''精通礼仪教养学、艺术性''的恶魔。召唤者亦都可以借重其力量,学习那丰富的礼仪教养学,且''精通回魂术和降灵术''。
形象是''马或骡子'',能透过已故者的灵魂(罪人者),取得所需要的情报。他也会变成人形。用粗糙低沉的声音发言。他的亡者召唤术,总结一句说话就是‘降灵术’。但是力量的效果,则会因术者的能力,而有所影响。这一点,与同为72恶魔之一的毛莫(Murmur,所罗门七十二柱魔神中的第54位)的能力性质十分近似。
同样地魔术书《Lemegeton》与《伪以诺书》也是再三地同样强调著他的灵媒性质。可知他与亡者的关连性十分强(能够自由地呼唤、使役亡者之灵魂)。把进行这项魔术仪式的护符,放入枕头下睡眠,可能会在梦中会见亡者。在《伪以诺书》曾经记载著一幕,与亡者之灵相关的事件,呼唤著溺死者的灵魂,回答其质问。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/0/0d/Samigina_Seal.jpg">
<div class="desc">Seal of Gamigin</div>
</div>
</div>
''勒莱耶'',为所罗门七十二柱魔神中排第14位的魔神,位阶侯爵,统帅30个军团。别名是“列拉金”(''Leraje, Leraie, Leraye, Leraikha, Loray, Oray'')。
喜好各式各样的竞技及引发大规模的斗争(战争)。''拥有可以让伤者伤势无法好转甚至导致死亡的能力,但相反也有令其完全恢复的能力''。好像他跟[[巴巴妥司|公爵 巴巴托斯 Duke Barbatos]](Barbatos,所罗门七十二柱魔神中的第8位魔神)是同一个人。
据说它也属于黄道十二宫中的射手座。
当勒莱耶出现在召唤者面前时,他会以一身绿色的装束,手执著猎弓出场。看起来就好像是一位狩猎者或者是弓箭手。不过,如果说与动物有密切关系的Barbatos是正直的狩猎者,那么,Lerajie则像是在''背地里耍小手段的弓箭手''。
他的能力与竞技、战争有关。本身是名''热衷竞技''的恶魔,除竞技与斗争外,还精通各项运动,可以说是天生的运动狂。若是召唤者有这样的要求,他都不会轻易地要对方失望。他的战略作风为:针对敌方的弱点,作出彻底式的攻击,务求一击即中,使敌方溃不成军。在斗争的过程中,他的能力可以诱使敌方受伤(士气),延迟治疗身上的伤势(军心),甚至不能完全地治好;不过反过来,他也能使伤者完全痊愈。无论怎样,他都不能撇除与战争有关。总括来说,是一位活跃,但是爱惹事生非的挑衅者。他的知名度却出奇地低。
在《所罗门之钥》的第一部典籍〈哥耶提雅〉中记载:
‘只要被Lerajie的弓矢击中,伤口会化浓恶化,完全溃烂而难以医治。’
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/14-Leraie_seal.png/440px-14-Leraie_seal.png">
<div class="desc">Seal of Leraje</div>
</div>
</div>
单卡拉比,是所罗门七十二柱魔神中排第69位的魔神,位阶侯爵,统帅30个军团。''是颗五角星''。擅长判别宝石或鸟类,可以化为鸟形。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/1/11/Decarabia_seal.png">
<div class="desc">Seal of Decarabia</div>
</div>
</div>
安德雷斐斯,是所罗门七十二柱魔神中排第65位的魔神,位阶侯爵,统帅30个军团。相貌是孔雀,可变成人的形状。可以把人变成鸟。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/65-Andrealphus_seal.png/440px-65-Andrealphus_seal.png">
<div class="desc">Seal of Andrealphus</div>
</div>
</div>
安托士(Andras),是所罗门七十二柱魔神中排第63位的魔神,位阶侯爵,统帅30个军团。是''长着夜鸦头的天使,骑黑狼,手持锋利宝剑''。专铲除不和谐的事物。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/52/Andras%28demon%29.jpg/440px-Andras%28demon%29.jpg">
<div class="desc">《地狱辞典》里的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/06/63-Andras_seal.png/440px-63-Andras_seal.png">
<div class="desc">Seal of Andras</div>
</div>
</div>
''斯伯纳克'' ,为所罗门七十二柱魔神中排第43位的魔神。支配五十支军团的候爵。被描绘成''手持大剑的狮头人''。别名“斯伯拉克”(Sabnack)、“斯伯诺克”(Sabnock)、“萨尔马克”(Salmac)等。
斯伯纳克是一名骑苍白色马匹的武装战士。专长为修建城防及给军队提供武装,或以''蛆虫之术杀人''。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/67/Sabnock.jpg/440px-Sabnock.jpg">
<div class="desc">《地狱辞典》里的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/81/43-Sabnock_seal.png/440px-43-Sabnock_seal.png">
<div class="desc">Seal of Sabnock</div>
</div>
</div>
欧里亚斯,是所罗门七十二柱魔神中排第59位的魔神。形象是''右手握着两条大蛇的尾巴,并骑着马的狮子''。能够赐与人类地位与阶级。喜欢帮助人,不论是敌人还是朋友。
Orias appears as a lion riding on a strong horse, with a serpents tail, and carrying in his right hand two great serpents hissing.
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/28/59-Orias_seal.png/440px-59-Orias_seal.png">
<div class="desc">Seal of Orias</div>
</div>
</div>
沙克斯,是所罗门七十二柱魔神中排第44位的魔神。支配三十支军团的候爵。别名“恰克斯”(Chax)、“夏克斯”(Shass)、“沙恣”(Shaz)、“史寇克司”(Scox)等。称号“伟大候爵”。
其形象是一只''黑鸠或乌鸦'',说话声细小而沙哑。拥有''剥夺他人视力与听觉等的能力'',也能''盗窃''王室的宝物。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/05/Ill_dict_infernal_p0617_scox.jpg/440px-Ill_dict_infernal_p0617_scox.jpg">
<div class="desc">《地狱辞典》里的形象</div>
</div>
<div class="img-container">
<img src="https://static.wikia.nocookie.net/demopedia/images/8/81/Shax.gif/revision/latest?cb=20121208040921">
<div class="desc">Seal of Shax</div>
</div>
</div>
''纳贝流士'',是所罗门七十二柱魔神中排第24位的魔神,别名“猞拜罗斯(''Cerberus'')”、“猞拜罗(''Cerbere'')”、“赛贝罗斯(''Cerebus'')”、“凯鲁贝洛斯(''Kereberus'')”等,统治著19个恶魔军团,职阶为侯爵。纳贝流士有多个别称,其中就包括我们再熟悉不过的“''刻耳柏洛斯''”。从这个别名便可对该恶魔的来源一清二楚,祂应该是由希腊神话中的[[地狱犬刻耳柏洛斯|🐶刻耳柏洛斯/地狱三头犬 Cerberus]]经过恶魔学学者们在一番想像力的指引下演变成的恶魔。相传能够''告知一切''的法术与万象的学问。
依照传说的记载,纳贝流士通常是以''黑鹤、公鸡或是乌鸦''的姿态出现,有时甚至是三个头并存的造型。他能够详细教导召唤者正确的语法与修辞技巧,协助找回已逝的荣景,使召唤者再次受到世人的尊重。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a1/Ill_dict_infernal_p0165-149_cerbere.jpg/440px-Ill_dict_infernal_p0165-149_cerbere.jpg">
<div class="desc">《地狱辞典》中的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/f0/24-Naberius_seal.png/440px-24-Naberius_seal.png">
<div class="desc">Seal of Naberius</div>
</div>
</div>
在恶魔学中,菲尼克斯是Goetic恶魔。身为地狱大侯爵,麾下有二十个恶魔军团。他教授所有奇妙的科学,是一位出色的诗人,并且非常服从魔术师。菲尼克斯希望在 1200 年后重返天堂。
他被描绘成一只''凤凰'',用孩童的声音唱着甜美的音符,但变魔术的人和与他在一起的任何人都不能听,并迅速要求他变成人形,据说过了一定时间后,恶魔就会变成人形。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c0/37-Phenex_seal.png/440px-37-Phenex_seal.png">
<div class="desc">Seal of Phenex</div>
</div>
</div>
锡蒙力,或称Cimeies, Cimejes, Cimeries,是所罗门七十二柱魔神中排第66位的魔神,位阶侯爵,统帅20个军团。可找出被隐藏的物品与宝藏。
在《莱姆吉通》中,他被描述为一位''骑着黑马的神级战士'',拥有寻找失落或隐藏的宝藏、教授三要素(语法、逻辑和修辞)以及将人变成与自己相似的战士的能力。他拥有侯爵头衔,由 20 个军团为其服务。在约翰-韦尔(Johann Weyer)的恶魔目录《伪恶魔目录》(Pseudomonarchia Daemonum,1563 年出版)的早期文本中也有大致相同的描述。更早的《慕尼黑亡灵魔法手册》(Clm 849)列出了一个名叫图弗里斯的实体,其特征大致相同,只是他有 30 个仆从军团,可以使人迅速跨越海洋和河流。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/24/66-Cimeies_seal.png/440px-66-Cimeies_seal.png">
<div class="desc">Seal of Kimaris</div>
</div>
</div>
''马可西亚斯'',亦称马加锡亚,是所罗门七十二柱魔神中排第35位的魔神,位阶为侯爵,别号“第七座天使侯爵”。拥有堂堂正正的性格,为地狱中的强力战士。
在《所罗门之钥》中为''有翼的狼'',可以喷火,也可以显出人形。而《伪以诺书》也是写明翼狼,但标注是''狮鹫兽的翼'',并追加蛇尾。他直接受所罗门支配,在等待1200年后的第七王座的君王轮回,以重返天界,但他却遭到背叛而受骗。16世纪的学者 -- 雷吉那勒德‧史高特的著作《妖术的揭发》中,介绍了他会变身成人类为召唤者战斗,回答召唤者任何问题,十分忠诚、为人正直而光明磊落。《地狱辞典》中,说明了他是地狱中的大侯爵,出身是权天使或主天使。布朗顿将他画的比较优美,故到现在仍有一定名气。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Ill_dict_infernal_p0461_marchocias.jpg/499px-Ill_dict_infernal_p0461_marchocias.jpg">
<div class="desc">《地狱辞典》中的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/fd/35-Marchosias_seal.png/440px-35-Marchosias_seal.png">
<div class="desc">Seal of Marchosias</div>
</div>
</div>
便亚米 Benammi是[[罗得|罗得 Lot]]与其''次女''所生。
罗得一家逃出索多玛时,罗得的妻子因不遵从天使的吩咐,回头看了一眼,结果变成了盐柱。罗得和两个女儿逃到附近的山洞里住下。为延续血脉,罗得的两个女儿将父亲灌醉,随后和其同房,结果双双怀孕,大女儿生下[[摩押|摩押 Moab]],是''摩押人 Moabites ''的始祖,二女儿生下便亚米 Benammi ,是''亚扪人 Ammon ''的始祖。
便雅悯,天主教典籍翻译为本雅明,是[[雅各|雅各 Jacob]]和[[拉结|拉结 Rachel]]的小儿子(创世记35:18)。
便雅悯出生在从伯特利到以法他的路上,以法他就是伯利恒。''拉结生他的时候难产而死'',死前给她儿子起名叫便俄尼,意思是“''忧患之子''”;他父亲却给他起名叫便雅悯,意思是“''右手之子''”(创世记35:15-18)。他的后代就是便雅悯支派(创世记49:27; 申命记33:12; 约书亚记18:21)。
便雅悯有10个儿子(创世记46:21)。
雅各临终前给他的预言是:"''便雅悯是个撕掠的狼,早晨吃他所掠夺的,晚上分他所掳获的''(创世记49:27)。
摩西的祝福是:“论便雅悯说,耶和华所亲爱的,必在耶和华旁边安然居住;耶和华必终日遮蔽他,也住在他两肩之中。”(申命记33:12)
便雅悯支派分得的土地北面是以法莲,东面到约旦河,西面是但支派,南面是犹大。
犹太人的第一个王扫罗,就是出自于便雅悯支派。末底改、使徒保罗(本名也叫扫罗)也是出自于便雅悯支派。
在士师时代便雅悯支派以弓箭手和投石器者著称(撒母耳记上20:20,36;撒母耳记下1:22;历代志上8:40;12:2;士师记20:16)。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
犹大的次子,是希伯来圣经《创世记》中出现的人物。
俄南的兄长[[珥|珥 Er]]死于天谴,犹大按照希伯来人的习俗,要俄南与珥的妻子[[他玛|他玛 Tamar]]同房,生儿子为兄长传宗接代,延续香火。俄南知道生下孩子就得过继给兄长,所以与他玛性交时故意体外排精。
俄南明明与他玛发生性行为,却自私地刻意不让他玛怀孕,被耶和华认为是恶,也让俄南死于天谴。及后英语“onanism”成为了手淫及性交中断的代词,日语也引进了“”(Onani),作为手淫之意。
son of [[波阿斯 Boaz]] and [[路得 Ruth]]
''控诉以东''
《俄巴底亚书》是《希伯来圣经》中''篇幅最短''的一本,也是《圣经》全书第31本书,它也属于《旧约圣经》的《小先知书》。
在它仅有的21节经文里,它一方面''宣布上帝的审判信息'',预告他行将把一个国家毁灭,另一方面则预言''上帝王国必赢得最后的胜利''。经文开宗明义地说:“俄巴底亚所见的异象。”他生于何时何地,''属于哪个支派,他的生平事迹——这一切都不详''。显然,重要的是信息本身而非预言者本人。这是很合理的,因为正如[[🗣️俄巴底亚 Obadiah]]本人说,这乃是‘来自耶和华的信息’,表示耶和华对以扫的对付以及雅各为著耶和华国度的胜利。
!! 背景
俄巴底亚书将注意集中于''以东之上''。以东位于死海以南,一直伸展到亚拉巴。以东地又名''西珥山'',一带都是崇山峻岭,深渊峡谷。从这个山峦起伏的地带直至亚拉巴的东面,有些地方高达海拔1700米。提幔地区的人以智慧和勇敢见称。由于以东的地势得天独厚,享有天然的防卫,当地的居民遂自觉安如泰山,不可一世。
以东人是雅各(后来改名为''以色列'')的兄长[[以扫 Esau]]的后代,因此他们与以色列人有密切关系,甚至被视为“弟兄”。(申命记23:7)可是以东人的行径却绝没有表现兄弟之情。在以色列人进入应许之地之前不久,[[摩西 Moses]]派使者谒见以东王,请求容许以色列人和平地经过他们的国境,但以东人不但峻拒以色列人的要求,更严阵以待,充满敌意。(民数记20:14-21)大卫虽然把他们征服,后来他们却在约沙法的日子与亚扪人和摩押人合谋攻击犹大。他们也背叛[[👑约沙法 Jehoshaphat]]的儿子约兰王,从迦萨和泰尔手中接管以色列被掳的人,并在''亚哈斯王''的日子大举进侵犹大而掳去更多人。
此种敌视态度在公元前607年达到顶点。当时巴比伦大军一举毁灭耶路撒冷,以东人不但幸灾乐祸,甚至更煽动征服者把该城夷为平地。他们呼喊说:“拆毁!拆毁!直拆到根基!”(诗篇137:7)当敌人拈阄分夺掠物时,以东人也分得一杯羹。
当劫后馀生的犹太人试图逃离国境时,以东人竟堵塞去路,截住犹太人而把他们交给仇敌。俄巴底亚书所载的不利判决很可能是基于以东人在耶路撒冷遭受毁灭时的暴行而发出的。预言者执笔写成此书时,对以东的卑鄙恶行印象犹新。(俄巴底亚书11,14)以东本身也在耶路撒冷被毁后五年受尼布甲尼撒所掳掠蹂躏,是故可能此书是在这件事发生之前完成的;最可能是在公元前607年。
!! 相关故事
[[👩👧👧复仇三女神厄里倪厄斯 Erinyes/Furies]]
! 卡利多尼亚国王 Calydonian king
''Oeneus'' (''/ˈɛn.juːs/''; Ancient Greek: Οἰνεύς, romanized: Oineús, lit.'Wine-man')
|父母 |[[Porthaon|波尔塔翁 Porthaon]] and Euryte |
Pisa国王
母亲是[[史特罗佩斯 Steropes|闪电巨人史特罗佩斯 Steropes]]或者是[[Harpina|Harpina]]。
俄诺玛俄斯国王害怕自己会被女婿杀死的预言,在一场战车赛跑中击败了他女儿希波达米亚(Hippodamia)的十八个追求者。他把他们的头贴在他宫殿的木柱上。
Lydia国王Tantalus的儿子[[Pelops|珀罗普斯 Pelops]]来向她求婚,准备与Oenomaus比赛。由于担心输掉比赛,Pelops来到海边,''向他以前的情人波塞冬求助''(?)。他提醒波塞冬他们的爱情("阿佛洛狄忒的甜蜜礼物"),向波塞冬寻求帮助,波塞冬微笑着让一辆由未驯服的飞马拉着的战车出现。
Pelops仍然不确定自己(或者说,希波达米亚本人)和他所获得的有翼马匹和神佑的战车,说服奥诺玛斯的车夫,赫尔墨斯的儿子米尔蒂罗斯(Myrtilus)帮助他获胜。
珀洛普斯或希波达米亚本人通过向Myrtilus承诺欧诺玛斯王国的一半以及与希波达米亚上床的第一个晚上,说服了Myrtilus。
比赛的前一天晚上,当Myrtilus正在组装奥诺玛斯的战车时,他用蜂蜡制成的轮辖替换了将车轮固定在战车轴上的青铜轮辖。比赛开始了,持续了很长时间。但就在奥诺玛斯追上佩洛普斯准备杀死他的时候,车轮飞了出去,战车裂开了。 Myrtilus 活了下来,但 Oenomaus 被他的马拖死了。在后者试图强奸 Hippodamia 之后,Pelops 杀死了 Myrtilus(将他从悬崖上扔进海里)。
Hippodamia死后,他诅咒了佩罗普斯。
这就是困扰佩罗普斯后裔的诅咒的来源,包括阿特柔斯(Atreus)、提耶斯(Thyestes)、阿伽门农(Agamemnon)、埃吉索斯(Aegisthus)、米奈劳斯(Menelaus)和俄瑞斯忒斯(Orestes)。
另外,Myrtilus的埋葬地是奥林匹亚的一个塔拉西普斯(taraxippus)——意为在比赛期间是一个 "吓马的地方"。
在希腊神话中,俄里翁是一个巨大的猎人,宙斯(或者也许是阿尔忒弥斯)将他作为猎户座放置在星星之中。
son of [[Kenaz,son of Jephunneh]], one of the Judges in [[士师记 Book of Judges c.1100 BC]]
<a href="https://www.wikiwand.com/en/Paul_the_Apostle">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Saint_Paul%2C_Rembrandt_van_Rijn_%28and_Workshop%3F%29%2C_c._1657.jpg/440px-Saint_Paul%2C_Rembrandt_van_Rijn_%28and_Workshop%3F%29%2C_c._1657.jpg"
caption:"The Apostle Paul, portrait by Rembrandt (c. 1657)"
width:"300px"
align:"right"
tooltip:"">>
</a>
保罗(天主教与正教会译''保禄'',唐朝景教译''宝路法王'';约3年-约67年),本名''扫罗·以利亚''(''Shaul Eliyahu'')又称''大数的扫罗''(''Saul of Tarsus'',天主教译塔尔索的扫禄)。
他是早期教会''最具有影响力的传教士之一'',基督徒的第一代领导人之一,因为他首创''向非犹太人''传播耶稣基督的福音,所以被奉为外邦人的使徒,但他并不是耶稣的十二使徒之一。
在诸多参与基督信仰传播活动的使徒与传教士之中,''保罗通常被认为是除了耶稣基督之外,整个基督教历史上最重要的人,并且是史上最伟大的宗教领导者之一'',基督的第一门徒圣彼得排行则是第三。
《''新约圣经》诸篇章有一半是由他所写'',是为[[保罗书信 Pauline epistles c.56-61]]。他在整个罗马帝国的早期基督教社群之中传播耶稣基督的福音,是第一位安提约基雅主教。
保罗自三十几岁至五十几岁,在小亚细亚建立了好几个教会,在欧洲建立了至少三个,包括哥林多教会。他一生中至少进行了三次漫长的宣教之旅,足迹遍至小亚细亚、希腊、义大利各地,在外邦人中建立了许多教会,影响深远。
!! 名字
圣经上,''保罗''与''扫罗''是同一人。他原名扫罗又名为保罗(使13:9)。
他的第一个名字为扫罗(原义是''要求、祈求''),是个希伯来文名,可能是源自于[[便雅悯支派|Tribe of Benjamin]]的先祖,第一个以色列王,[[👑扫罗 Saul]]王。因家乡为''大数''(又译塔尔索),所以根据当时的习俗也被称为''大数的扫罗''(''Saul of Tarsus'')
另一个名字保罗,则是一个拉丁文名字。因为他出生就是''罗马公民'',后因神命名而取名为保罗。
在《使徒行传》中,一开始称呼他为''扫罗''。在大马士革时,耶稣首次显现在保罗面前,称呼他为扫罗,使用希伯来文。随后,主显现在亚拿尼亚面前,称呼他为大数的扫罗。亚拿尼亚去会见扫罗,为他祷告时,称呼他为兄弟扫罗。在赛浦路斯的帕弗传教时,他第一次被称为保罗,之后就改用保罗来称呼他。
在新约其他部份,则是直接称呼他为保罗。
学者马可·包威尔认为,保罗的希伯来文名字,扫罗,可能只在希伯来人聚居的地方使用,至于其他的外邦世界,则使用罗马化的拉丁文名字,保罗。
!! 保罗的身世
保罗出身犹太人家庭,属于''便雅悯支派'',生于犹太省北方,基利家省的大数城。保罗很少提到他的父亲,但从他自称为法利赛人之子来看,他的父亲可能出身''法利赛人''。他从小受到严格犹太律法教育,曾在耶路撒冷著名的学者迦玛列门下学习,''对旧约圣经有深入了解'',最初也以法利赛人自居。因为他出生就拥有罗马公民权,可知他父亲也是罗马公民。《使徒行传》中,保罗在耶路撒冷传教时,提到他姊姊的儿子,所以保罗至少有一个姊妹。在《罗马书》的结尾,保罗曾提到他的母亲,并向她问安,同时也提到他的一些亲戚,例如比他还早归信耶稣的安多尼古和犹尼亚安,希罗天、路求、耶孙、所西巴德。
在希腊帝国和希腊塞琉古帝国时代,''大数是小亚细亚最具影响力的城市'';在罗马共和国和罗马帝国时代,它仍然是地中海区域的主要贸易中心之一。当地盛行''斯多噶主义'',从保罗书信中熟练的使用斯多噶学派常用术语、哲学概念与议题,可知保罗对斯多噶主义也有研究。''通用希腊语''是当时罗马帝国的通用语,也是地中海区最多人使用的共通语言,保罗能够熟练的使用它来交谈与写作。此外,他对于古希腊文,与希腊哲学也有深入研究,受到相当良好的希腊化教育。
保罗出身的家族,有著长期虔信上帝,保持宗教洁净的传统。保罗从年轻时就开始学习以马海毛织造帐篷的技艺,这个手艺可能是家族传承的。在他开始传道时,仍然以这门手艺来赚钱养活自己,也因为他这门手艺,让他可以在地中海区旅行传教,生活不致匮乏。
!! 归信基督
<a href="">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/6/67/Conversion_on_the_Way_to_Damascus-Caravaggio_%28c.1600-1%29.jpg/440px-Conversion_on_the_Way_to_Damascus-Caravaggio_%28c.1600-1%29.jpg"
caption:"Conversion on the Way to Damascus, a 1601 portrait by [[Caravaggio|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%9C%A3%E4%BF%9D%E7%BD%97%E7%9A%84%E5%BD%92%E5%8C%96%20(%E5%8D%A1%E6%8B%89%E7%93%A6%E4%B9%94)%20Conversion%20on%20the%20Way%20to%20Damascus%201601:%5B%5B%E5%9C%A3%E4%BF%9D%E7%BD%97%E7%9A%84%E5%BD%92%E5%8C%96%20(%E5%8D%A1%E6%8B%89%E7%93%A6%E4%B9%94)%20Conversion%20on%20the%20Way%20to%20Damascus%201601%5D%5D]]"
width:"400px"
align:"left"
tooltip:"">>
</a>
根据圣经记载,在成为基督的一个跟随者之前,保罗起初认为传耶稣是违背传统犹太教信仰的异端,极力迫害基督徒。但后来他在往大马色迫害门徒的途中,有大光从天上四面照著他,他就扑倒在地,听见有声音对他说:「扫罗、扫罗,你为什么逼迫我?」 他说:「主啊,你是谁?」 主说:「我就是你所逼迫的耶稣。起来,进城去,你所应当做的事,必有人告诉你。」 与保罗同行的人站著说不出话来,听见声音,却看不见人,保罗从地上起来,睁开眼却不能看见什么。有人拉著他的手,领他进了大马士革,他三日不能看见,也不吃,也不喝。 在大马士革,主所差的弟兄按手在保罗身上并说:「在你来的路上向你显现的耶稣,就是主,差我来,叫你能看见,又被圣灵充满。」 保罗的眼睛上,好像有鳞立刻掉了下来,他就能看见,恢复了视力,并且受浸。之后成为教会主要的传教者之一,将基督教信仰推广到地中海各地。
保罗称呼自己是一位使徒,或外邦人的使徒。__由于他不是耶稣的直接门徒,故未被列入于十二使徒之列__,''但是他多次强调,他是由上帝与耶稣基督直接选定的。''
透过他的传道和写作,他最终改变了地中海盆地周围的宗教信仰和哲学。
!! 传教工作
''约35年''保罗归信耶稣基督后,开始传扬耶稣的福音,但他没有随即上耶路撒冷去找其他使徒,而是独自退到阿拉伯半岛的旷野,在那里一段时间,与神交通,得著启示,3年后回到大马士革,其后再到耶路撒冷及大数。一开始教会人士因为他曾经迫害过教会信徒,对他有疑虑,但他得到使徒[[彼得|✝️彼得 Saint Peter]]与主的兄弟[[✝️雅各 James the Great]]的接纳与支持,成为教会的一份子。约43年左右,巴拿巴到大数城请他出来协助安提阿圣工,后来就在安提阿蒙圣灵差遣,出外传道。保罗出外三次以上,传福音的方向始终朝向非犹太人的地方,蒙圣灵同工,圣工发展,到处设立教会,把耶稣的福音传遍了地中海沿岸一带地方。
除此之外,保罗亦藉著他的书信来勉励,教导他建立的教会及圣工人员。他的书信常常充满著关怀之爱,但对于异端的侵扰与行为的败坏,则加以严厉斥责。他的书信是教会史上极重要的著作,对于基督教真理的阐扬与辩护有极大的贡献,也是基督宗教信徒今日信仰的宝卷。他的书信收录在新约圣经中的有十三卷,通称为保罗书信,按次序即从罗马书至费肋孟书/腓利门书。
保罗本来热衷律法,迫害教会,但后来悔改,为了传扬耶稣,受苦受害,他有高深的学问,且享有罗马公民的特权及崇高的社会地位,但他都当作有损的,为得著基督,愿意丢弃万事,以耶稣基督为至宝,这种智慧的选择及牺牲的精神值得基督宗教信徒效法。当时由于犹太教领袖及祭司长迫害基督教徒,他们在耶路撒冷鼓动不信耶稣基督的犹太人抓住保罗,并将其解往罗马政府,要求处死。使徒行传28章指保罗解往罗马后被软禁两年,在罗马士兵看守下继续传褔音。根据基督教传说,尤其是新约外典《克莱孟一书》5章7节和《穆拉多利残卷》的记载里,保罗在罗马监禁两年后被释放,后来在第四次旅行布道,出往西班牙与大不列颠岛,但虽然这确实是保罗的意图,这个证据依然还是非决定的。最后当他在第二次又被囚罗马监狱,约于''西元67年'',罗马皇帝尼禄在位时殉道。
十三卷。
《保罗书信》,天主教译称《保禄书信》、东正教译称《帕弗罗书信》、唐朝景教译称《宝路法王经》,是使徒保罗写给各地教会就各教会内的情况或是对来信询问教义的人的回信,书信中''解释了许多有关基督教教义的疑难问题及阐明教理原则,是基督教的重要文件'',后在第一次君士坦丁堡公会议中确认为正典而被列入基督教《新约圣经》中。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
|!父母 |[[🤬不和女神厄里斯 Eris]] |
|!标志 ||
|!对应罗马神 ||
Lethe was also the name of the personification of'' forgetfulness and oblivion'', with whom the river was often associated. Hesiod's Theogony identifies her as the daughter of Eris (Strife)
巴德尔 Balder,意即“盛开的花”。他是光辉美丽的化身,春天与喜悦之神,是''光的拟人化''。
巴德尔的父亲是主神[[⚡众神之父奥丁(神圣) Odin]],母亲是神[[众神之母弗丽嘉 Frigga]]。他和[[黑暗神霍德尔|黑暗之神霍德尔 Hoder]]是孪生兄弟。他的妻子是[[Nepr]]的女儿[[南娜|南娜 Nanna]],他们生了两个儿子,即布罗诺和[[⚖️真理与正义之神佛尔塞提 Forseti]]。
!! 巴德尔之死
在北欧神话中,关于他的故事不多,最重要的是关于他的死亡,光是这个主题的故事,就有几种不同的版本。
!!! 诗人史洛里的《新艾达》版
当巴德尔做梦感受到死亡的阴影时,他的母亲弗丽嘉感到非常担心,因此跑遍世界各地,请求万物发下誓言不可伤害巴德尔。所有的事物皆发誓,唯独一棵长在英灵殿东边的槲寄生幼苗除外,因为它太弱小,应该无法伤人。
诸神为巴德尔感到高兴,他们将武器往巴德尔扔去,果然无法伤害这位光明之神。洛基是火的化身,平时就对光明的巴德尔感到无比的嫉妒,所以他变成老妪探问弗丽嘉,套知唯有小槲寄生没有发誓的事。洛基取得槲寄生树枝交给目盲的霍德尔,让他拿著丢向巴德尔,巴德尔因此死亡。另一说法是,槲寄生树在霍德尔丢出后,变成了一把宝剑,也就是米斯特汀剑,意即“长青剑”。
光明之神死亡后,世界陷入黑暗,众神非常悲伤,巴德尔的妻子南娜因为心碎过度也死了。他们将巴德尔和南娜的尸体放在灵舡上,奥丁将他的魔法指环德罗普尼尔当作送葬礼物,和其他送葬品都一起放入船中。但是大船太重了,诸神们推不动,旁边观礼的巨人建议他们找女巨人希尔罗金(火烟)帮忙,船终于下水。索尔举锤点火,完成葬礼。
但弗丽嘉不愿放弃希望,她请托赫尔莫德(Hermod)骑著奥丁的八足神马斯莱布尼尔前往死亡之国。死亡之国的女王海拉对信差开出条件:如果所有的生命及无生命都为巴德尔哭泣的话,才可让巴德尔复活。于是,万物都哭泣了,相传这眼泪就是早晨时的露水。唯独一个女巨人''索克(煤)''住在地底,她并不需要光明,所以她不肯为巴德尔哭泣,所以巴德尔只能继续留在死亡之国。另一说法,这女巨人其实是洛基为了阻挠巴德尔的复活而变的。
奥丁一心想为巴德尔复仇,他在事情发生之前,就已经由女预言者伐拉处得知巴德尔必死的预言,他也知道他和女巨人琳达生下的孩子瓦利将会报巴德尔之死的仇。于是奥丁用计和琳达发生关系,当瓦利生下来时,一天之内就长大成人,没有梳洗,就拿了弓箭,射杀了盲眼的黑暗之神霍德尔。
至于洛基由于罪孽太大,诸神于是给予他永远的惩罚,直到诸神的黄昏到来。当世界末日的战争中,旧的神祇死亡,宇宙将会重生,而瓦利就是新世界的神明。
!!! 《艾达》诗集中的版本
至于在艾达中,故事的说法即和上面的版本颇有出入。
# 第一、洛基并没有出现在故事中。
# 第二、巴德尔是由于罪恶感才做恶梦。
# 第三、前往死亡国的是奥丁而非赫尔莫德。
!! 巴德尔之死的含意
光明之神巴德尔也''象征著太阳'',巴德尔之死暗示著白昼之后必然是接著黑夜。''瓦利''是代表自然力量的神。这说明了阴暗的长冬过后,新光明的再临。
另外,''槲寄生''被古人普遍认为有著''特殊的魔力或神力'',因为槲寄生在冬季依然常青,不接触地面也能成长,所以被认为是树木灵魂所在。巴德尔同时也具有橡树的象征,巴德尔的灵魂寄生在外面的槲寄生上面,砍下槲寄生,才能杀死巴德尔。
再说奥丁为什么需要另生一子报仇,据说乃是因为:一个家族成员杀死另一个家族成员,是很不幸的,即使想要报仇,也只会带来更大的不幸;但也不能让家族之外的人来杀死自己的家人。但刚出生一天、尚未梳洗的瓦利,刚好处于模糊地带,所以可以执行复仇,将霍德尔杀死。
''Lucina'' (from the Latin __lux, lucis__, "''light''")
凭借在古罗马神话之中负责妇女的生产过程与生活劳动而著名,另外她还因为管理着儿童的出生和成长而影响深远。
! 十二泰坦之一
|!父母 |[[天空之神乌拉诺斯 Uranus]] and [[🌍大地女神盖亚 Gaea]]|
|!丈夫 |[[☀️太阳神亥伯龙神 Hyperion]] |
''Theia'' (/ˈθiːə/; Ancient Greek: Θεία, romanized: Theía, also rendered ''Thea'' or ''Thia''),她的一个别名是欧律法厄萨(''Euryphaessa'',Εὐρυφάεσσα,字面意思是“放出光辉的”)
忒亚是日神 、 月神和黎明的母亲。
!! Offspring
<<list-links "[tag[☀️太阳神亥伯龙神 Hyperion]] +[sort[title]]">>
[[光明之神巴德尔 Baldr]]和[[黑暗之神霍德尔 Hoder]]是[[奥丁|⚡众神之父奥丁(神圣) Odin]]和[[众神之母弗丽嘉 Frigga]]所生的一对孪生子。这对兄弟在体格和性情上都是完全相反的:''霍德尔'',黑暗之人格化,总是阴沉,忧郁、寡言少语;而''巴尔德''——光明之人格化,却英俊、天真、愉快,他的金发和白皙的脸像是永远在放射光芒。万物皆热爱他,而他也热爱万物。
巴尔德成长得非常快,早已被邀列席十二大神的会议。他住在''布列达布利克(Breidablik,辉耀)''宫内,这宫殿以白银为顶,黄金为柱,清洁光明,毫无纤尘。他的妻子是''尼普(Nip,蓓蕾)''的女儿''[[南娜(Nanna,盛开之花)|南娜 Nanna]]'',青春美丽而且娇柔的一位女神。
<a href="https://www.wikiwand.com/zh/槲寄生">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e6/Wei%C3%9Fe_Mistel.jpg/1499px-Wei%C3%9Fe_Mistel.jpg"
caption:"槲寄生的整体树形"
width:"400px"
align:"right"
tooltip:"">>
</a>
但是不知从什么时候起,永远快活的巴尔德却悒悒地不大高兴。他的蓝眼睛里的光彩消失了,脸色憔悴了,步伐也开始滞重。奥丁和芙莉嘉看到他们可爱的儿子变了样,就问他是什么原因。经再三询问之后,巴尔德才说自己近来睡梦不宁,常常有些异常的威胁的噩梦来打扰他平静的灵魂。虽然醒时不能全记起来,但却使他心中充满了无形的恐怖。奥丁和芙莉嘉听了很感不安;芙莉嘉为预防计,就派她的侍女出去找宇宙万物,要它们立誓不伤害巴尔德。因为光明是万物共爱的,所以万物都立誓不伤害这位光明之神,只有瓦尔哈拉宫外一棵橡树上长的小小的“''槲寄生(mistletoe)''”除外。但这寄生木是这样地幺小柔弱,一定不可能对巴尔德造成什么损伤。
奥丁却另有打算。他驾上了他的[[八足天马史莱普尼尔|🐴八脚马史莱普尼尔 Sleipnir]],经过了虹桥,直向[[尼弗尔海姆|雾之国尼弗尔海姆 Niflheim]]的死亡之国去找长眠在那里的女预言者[[伐拉(Vala)|伐拉 Vala]]去问休咎。当他经过冥王[[赫尔|💀死亡女神赫尔 Hel]]的宫殿外时,看见宫中正铺陈了盛筵,似乎正等待着什么贵客。奥丁不管,径到''伐拉''的棺旁,用鲁纳文字的咒文唤起那位长眠的女预言者。
''伐拉''徐徐从棺中起来。奥丁假装是一个普通人,问她:冥王的盛筵是为了款待什么人。伐拉毫不犹豫地回答:是为了''巴尔德'',他将被他的孪生兄弟、盲眼的''霍德尔''所杀。奥丁又问,谁将为巴尔德复仇呢?伐拉说[[琳达|琳达 Rindr]]将为奥丁生一个叫[[伐利(Vali)|瓦利 Vali(son of Odin)]]的儿子,这孩子生下之后即不洗脸不梳发,直到报了''巴尔德''的仇。奥丁的第三个问题是:谁将不为巴尔德的死而悲伤。这一问却引起了伐拉的疑心。她猛然一看,知道眼前的生客就是奥丁,便再不回答,重睡到棺材里,无论如何都不起来,直到世界末日到来的那一天。
奥丁回到[[阿瑟加德|亚萨神国阿斯加特 Asgard]],听到''芙莉嘉''告诉他,世间万物都已立誓不伤害巴尔德,方才略一宽心。诸神都知道了芙莉嘉的计划已经成功,大家都很高兴,便开始游戏消遣。他们平时喜欢的游戏是掷金饼,但现在厌烦了,就利用那万物都不伤害''巴尔德''的消息来做一种新游戏。大家把各式各样的武器:矛、刀、锤、箭,都向巴尔德掷去。因为万物都已立誓不伤害这位光明之神,所以这些武器到了巴尔德跟前就自动坠落或偏斜而去。诸神哄笑着,围绕这永不能打中的靶子掷矛射箭。
正坐在自己的宫殿里纺织的''芙莉嘉''也听见这笑声了。此时有一个老妇人走过,然而这老妇人却就是[[洛基|🦹邪神洛基 Loki]]的化身。洛基——火之人格化,早已暗暗妒忌''巴尔德''这位光明神,因为巴尔德的光明掩过了洛基的火光;而且巴尔德为万物所爱,洛基却为万物所憎畏。现在芙莉嘉询及为何会有这笑声,洛基就说诸神的新游戏是怎样出奇。芙莉嘉很满意地说:当然,因为万物都已立誓不伤害巴尔德,只有那''瓦尔哈拉宫''外树上的槲寄生<<fnote "万物中只有槲寄生没有宣誓不伤害巴尔德,因为''槲寄生不需接触地面就能成长'',被古人普遍认为有着特殊的魔力或神力。而且,即使在树木枝叶凋零的冬季,槲寄生依然常青,所以也被认为是''树木灵魂之所在'',尤其是长在橡树上的槲寄生。橡树被雅利安人视为主要的神树,在这个传说中,橡树上的槲寄生则象征着巴尔德的灵魂。洛基取去了灵魂,又让霍德尔用这有魔力的树枝掷向巴尔德本人,这样就能将他杀死。">>除外。但它太幺小柔弱,根本不能伤害她这光明的儿子。
洛基探得了这秘密,立刻就到瓦尔哈拉宫外取这槲寄生来,用魔法使其变得坚硬而粗大,然后削成一支小棒。他拿这槲寄生变的小棒,到诸神游戏的场所找''霍德尔''。这位盲眼的神独自坐在树下,并没参加游戏。洛基授以其槲寄生小棒,劝他也去掷一次。''霍德尔''盲目地奋力一掷,这小棒不偏不歪,正中巴尔德的要害,就此杀了这位光明之神。
诸神虽然用尽能力,却还是不能使巴尔德复活。''芙莉嘉''坚持要一位神到冥土去找冥王''赫尔''索回巴尔德的灵魂。这是一件麻烦的差事,神们都不敢去,后来是[[神使赫尔莫德 Hermod]]愿意去了。于是奥丁把他的''八足天马史莱普尼尔''借给了''赫尔莫德''。
另一边,巴尔德的尸体移到了他自己的宫殿里。奥丁命令诸神到森林中砍取最大的松树来,准备给巴尔德的尸体举行庄严的火葬。
诸神砍倒了许多古松,带到海岸边,装在巴尔德的龙船''[[⛵葬船赫林霍尔尼 Hringhorni]]''的甲板上,依北欧人的习俗,火葬就要在这船上举行。巴尔德的尸身则盛装了,安放在那些积薪之上。按照火葬的规矩,诸神把各种兵器和送葬的礼物都放在巴尔德的尸体旁。奥丁的送葬礼物是他的[[𓏌戒指德罗普尼尔 Draupnir]],因为象征着光明和春天的巴尔德既死,则象征着“生产丰饶”的''德罗普尼尔''当然与之俱亡。
诸神又走到巴尔德的遗体旁,作最后的诀别。当巴尔德美丽的妻子''南娜''走过来的时候,她的心悲伤得碎了,伏在巴尔德身上,也死了。于是诸神就把南娜放在巴尔德身边,准备一同火葬。他们又杀了巴尔德的马和狗,用棘枝围绕了积薪。
一切都准备妥当,变成了火葬船的灵舡须得下水了。可是船上堆的积薪和殉葬品太多了,诸神全体的力量也不能推动这条船。这时在山上观看的巨人们乃说他们知道有一位名为''希尔罗金(Hyrrokin,“Fire-withered”)''的女巨人能够推动。于是诸神乃请一个暴风巨人去叫希尔罗金来。希尔罗金骑着一条狼来,用力一推,连巨浪都冒出火花,于是船下水了。[[托尔|⚒️雷神托尔 Thor]]举锤(那是葬礼的仪式)点火,积薪俱焚,船像快箭似地冲开海水向西航去,满海都耀着火光。船愈去愈快,到了西方的水平线时,已将天空和海水都映成赤色,然后宛如一轮火球般,巴尔德和他的灵舡船都没入海中不见了。然后,黑暗笼罩大地,诸神回到了''阿瑟加德''。
失去了光明和欢乐的阿瑟加德,到处都是凄惨的景象。只有芙莉嘉还怀着希望;她盼望赫尔莫德赶快回来,来报告使命的成功。
赫尔莫德此时也到了冥土了;他看见巴尔德垂头丧气地坐在那里,南娜紧紧地抱住他。赫尔莫德把来意告诉了巴尔德,不料巴尔德却摇头说,他知道命运如此,非在此住到世界末日是不能出去了。但是他劝南娜回去。南娜把巴尔德抱得更紧,说没有他这可爱的光明的丈夫,她不愿独自活在世上。
赫尔莫德便径直去见冥王''赫尔'',请求放回巴尔德。赫尔静静地听完了他的陈述,最后方说,如果地上万物,无论有生命的还是没有生命的,均能为哀悼巴尔德而堕泪,那她就会让巴尔德回来。
这个条件虽然苛刻,可赫尔莫德却高兴极了。他知道巴尔德为万物所爱,万物都一定会为巴尔德落泪的。于是他赶快回到阿瑟加德,还带了巴尔德送还给奥丁的那个''聚金指环德罗普尼尔'',还有''南娜送给芙莉嘉的一条绣花地毯'',以及送给她的侍女''福拉''的一个指环。
阿瑟加德的诸神听了赫尔莫德的报告,立刻派出无数使者,从南至北,从东至西,宣示这个条件。使者们经过的地方,树木花草都掉泪了,即使是石头和金属那样坚硬的心,也落下泪来。但当使者们向阿瑟加德归还的时候,看到一个大洞,深黑无底,一个女巨人庞大的身躯正从洞里出来。这个女巨人名为''索克(Thok)'',或说即是洛基的化身。当使者们向她要求一点眼泪的时候,她讥笑使者们,又钻回洞去,说她决不为巴尔德洒一点眼泪,而且希望冥王赫尔永远不放巴尔德回来。
所以巴尔德终于不能回来。但预言是必要应验的;当奥丁达到了以琳达为妻的目的时,''琳达''将生一子,名为''伐利'',这个孩子一生下来就拿弓箭射死了''黑暗之神霍德尔'',为巴尔德报了仇。
这就是光明之神和黑暗之神的结末。这个故事的意义是很明显的:光明之神巴尔德也象征着太阳,巴尔德的死后火葬就暗示着夕阳的西没。巴尔德之必然为霍德尔所杀,也暗示着白昼之必然地要以黑夜为继。洛基象征着火,和天上自然的光明是相对的,所以洛基嫉妒巴尔德。花草树木和石头金属所洒的泪象征了冬去后,作为春之先驱的潮湿。索克是“煤”,她住在地下,不需要光明,所以她绝不落泪。巴尔德和南娜在冥土托赫尔莫德带给奥丁和芙莉嘉的东西,象征着虽在寒冬之时,但春天苏醒的消息已经先来:聚金指环德罗普尼尔是“生产丰饶”的象征,而南娜的绣花地毯则暗示着铺满花草的大地。而在道德的意义上,则巴尔德是代表了善的势力,霍德尔代表了恶的。洛基则是“诱惑”;由于“诱惑”从中作祟,恶势力倾覆了善势力。
为巴尔德报仇的伐利,是象征了渐长之夏日的神。他是琳达与奥丁所生的儿子,而且成长得很快,在一天之内就长大成人,没有洗过脸,也没有梳过头,就拿了弓箭,射杀了盲眼的黑暗之神霍德尔。他也是阿瑟加德的十二大神之一,关于他的简短故事就是说明了阴暗的长冬,以及之后新光明的再临。在“诸神之黄昏”后,旧的神祗都死了,伐利又是宇宙重生后的神。<<fnote "之所以必须要等伐利报仇,据说乃是因为:''一个家族成员杀死另一个家族成员,是这个家族最大的不幸'',任何补偿都无济于事,哪怕再杀死那个杀人的家族成员,也不能弥补创伤,只会带ࣿ更大的不幸;然而也不能让家族之外的人ࣿ杀死自己的家族成员,''所以只能将杀人者放逐''。但刚出生一天、尚未梳洗的伐利,既算是奥丁的家族成员又不算是奥丁的家族成员,所以可以执行复仇,将霍德尔杀死。">>
----
<<showfnotes>>
''光明节'',又称''修殿节、献殿节、烛光节、哈努卡节、马加比节''等,是一个犹太教的节日。该节日乃纪念犹太人在马加比家族的领导下,从希腊塞琉古帝国国王安条克四世手上夺回耶路撒冷,并重新将耶路撒冷第二圣殿献给上主。
光明节从[[基斯流月|希伯来历和格里历对应 Hebrew calendar Vs Gregorian calendar]](犹太历9月)25日开始,延续八天。
!! 历史
公元前168年,希腊塞琉古帝国安条克四世为了强制推行“希腊化”,宣布犹太教非法,并采取各种严厉措施消灭犹太教,其中最令犹太民族不能容忍的是在耶路撒冷犹太人圣殿里竖起希腊神祇宙斯的祭坛,在上面用犹太人视为不洁的猪进行献祭,并强迫犹太人食用猪肉,对不从者格杀勿论。这一仇视犹太教的做法导致了一场反抗希腊人统治的犹太人起义。3年后,以犹大·马加比为首的起义取得了胜利,建立犹太王国哈斯蒙尼王朝,耶路撒冷为犹太人收复。犹大·玛喀比下令净化圣殿,清除异教痕迹,重建犹太人祭坛(故亦称“净殿节”),并规定了庆祝这一胜利的活动日期。(参见:《马加比一书》、《马加比二书》)
光明节从基斯流月(犹太历9月)25日开始,延续八天。八天的节期与两个传说有关:一是玛喀比士兵因战斗而无法庆祝为期八天的住棚节,故以此作为补偿。二是收复、净化圣殿后,在打算点燃圣殿中的“七枝灯台”时,人们只找到了一小罐专门用于圣殿的灯油,犹太律法规定用于圣殿的灯油须从橄榄中提炼,并由掌管圣殿的大祭司经过一番洁净礼仪后才能使用。而无论是制作还是去外地取来这种净化过的灯油,均需要八天时间。然而,由于上帝对犹太人的恩赐和垂注,奇迹发生了,这一小罐原本只能燃用一天的灯油竟然一直燃烧了八天。根据这一传说,该节日最主要的仪式是点燃九枝灯台(再献圣殿节灯台,专门为庆祝哈努卡节使用的一种灯),第一天点燃灯台一枝灯盏,以后每天增加一枝灯盏,一直到第八天结束。故也有人称之为“光明节”。
!! 习俗
犹太人是一个不事张扬的民族,通常不在众目睽睽下,而只在家里奉行犹太律法。但有趣的是,有关光明节的诫命却包含了“散播神迹”这样一个概念,即让越多的人知道越好,因此,''光明节使用的灯台通常要摆放在窗帘拉开的窗台上'',以便让外面的人能够看到。
为了表达对于出现“奇迹”的喜悦,光明节的第一天晚餐通常是正式而盛大的,常有亲朋应邀参加。晚餐前,先点上烛台,互相祝贺。传统必食用的特定食品是''油炸丝饼''。食用油炸食品是为了使人联想起上帝所行的奇迹。晚餐结束后,人们、特别是儿童,还要玩''光明节陀螺''的游戏。
现代以色列建国后,为弘扬马加比起义包含的“民族团结,共御外敌”的精神,行政当局总要在室外点燃大型[[九枝灯台|🕎犹太教灯台 Temple menorah]],组织各种体育活动,其中最主要的是火炬长跑。在美国、加拿大、英国等国家,因为光明节与基督教的圣诞节的节日时间相近,因此不少犹太人会在圣诞假日期间庆祝光明节。
! 泰坦
|!父母 |[[Uranus|天空之神乌拉诺斯 Uranus]] and [[Gaia|🌍大地女神盖亚 Gaea]] |
|!妻子 |[[欧律比亚 Eurybia]] |
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
<<<
最圣洁的欧律比厄与克利俄斯因爱结合,
生下高大的阿斯特赖俄斯、帕拉斯,
还有才智出众的佩耳塞斯。
厄俄斯为阿斯特赖俄斯生下强壮的风神:
吹净云天的泽费罗斯、快速的玻瑞厄斯
和诺托斯——由她在他的欢爱之床中所生。
最后,黎明女神又生下厄俄斯福洛斯,
以及天神用来修饰王冠的闪闪群星。
<<<神谱
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
Clytemnestra,希腊神话中的阿伽门农之妻,特洛伊之王迈锡尼Mycenae的妹妹。在埃斯库罗斯的《俄瑞斯忒亚》中,她谋杀了阿伽门农——欧里庇得斯说她是她的第二任丈夫——和特洛伊公主卡桑德拉,阿伽门农在特洛伊被洗劫后将她作为战利品;然而,在荷马的奥德赛中,她在阿伽门农之死中的角色尚不清楚,她的性格明显更加柔和。
! 力量的化身 Personification of Strength
|对应罗马神 |Potestas |
|父母 |[[帕拉斯 Pallas|帕拉斯 Pallas]] and [[斯堤克斯 Styx|斯堤克斯 Styx]] |
克拉托斯在赫西俄德的《神谱》中首次与他的兄弟姐妹们一起被提及。
克拉托斯和他的妹妹比亚Bia最出名的是他们出现在埃斯库罗斯的《被束缚的普罗米修斯》的开场场景中。作为宙斯的代理人,他们带领被俘的泰坦[[普罗米修斯|🪔普罗米修斯 Prometheus]]登上舞台。克拉托斯强迫温文尔雅的铁匠神[[赫菲斯托斯|🔥火神赫菲斯托斯 Hephaestus]]将普罗米修斯锁在一块岩石上,作为对他偷火的惩罚。
克拉托斯的特点是''残暴无情'',多次嘲笑赫菲斯托斯和普罗米修斯,主张使用不必要的暴力。他为宙斯的压迫性统治辩护,并预言普罗米修斯将永远无法摆脱他的束缚。
在埃斯库罗斯(Aeschylus)的《Libation Bearers》中,[[厄勒克特拉 Electra|厄勒克特拉 Electra]] 呼吁克拉托斯、戴克 Dike("正义")和宙斯帮助她的兄弟[[俄瑞斯忒斯 Orestes|俄瑞斯忒斯 Orestes]]为他们的父亲[[阿伽门农 Agamemnon|阿伽门农 Agamemnon]]的谋杀案报仇。
克拉托斯和比亚出现在公元前五世纪晚期的红彩双耳大饮杯图案( red-figure Attic skyphos )中,是对[[伊克西翁(Ixion)|👑伊克西翁 Ixion]]的惩罚,可能是根据欧里庇得斯失落的悲剧中的一个场景创作的。他们还出现在十八世纪末和十九世纪的浪漫主义描写和改编的《普罗米修斯》中。
<<<
瑞娅被克洛诺斯征服,生下光荣的后代:
赫斯提亚、德墨特尔和脚穿金靴的赫拉,
强悍的哈得斯,驻守地下,冷酷无情,
还有那喧响的撼地神,
和大智的宙斯,神和人的父,
他的霹雳使广阔的大地也战栗。
强大的克洛诺斯囫囵吞下这些孩子,
当他们从神圣的母腹落到膝上。
他心里恐怕,在天神的可敬后代里,
另有一个在永生者中获享王权。
大地和繁星无数的天空告诉过他,
命中注定他要被自己的儿子征服,
哪怕他再强大:伟大宙斯的意愿如此。
他毫不松懈地窥伺,保持警戒,
吞下了自己的孩子。瑞娅伤痛不已。
<<<神谱
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>nsort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
<<<
那以后 , 这王子的气力和出众体格
很快长成了 。 随着时光流逝 ,
在大地该亚的提议下,他受蒙骗
吐出腹中之物,狡猾强大的克洛诺斯,
他敌不过自己儿子的技巧和力量,
最先吐出那块最后吞下的石头。
宙斯将它立在道路通阔的大地上,
帕尔那索斯山谷,神圣的皮托,
成为永恒的信物,世间的奇观。
他还释放了他父亲的兄弟们,
天神之子.被其父疯狂缚在可恨的枷锁中。
他们不忘这善举,想要答谢他,
送给他闪电、燃烧的霹雳和鸣雷,
从前这些由宽广的大地收藏。
这使他统治有死的人和不死的神。
<<<神谱
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
|!所属国 |希腊 |
|!坐标 |`35°12.6′N 24°54.6′E` |
[img[https://upload.wikimedia.org/wikipedia/commons/8/8f/Kriti_in_Greece.svg]]
女性神均与蛇有关,都长着''蛇头'';而男性神均与青蛙有关,都长有''青蛙头''。 除性别外,在每一对中,男女神间的区别极小;事实上,女神的名字仅仅只是男神名的女性格式,反之亦然。
从本质上讲,每对男女神分别代表了四种概念之一,即
# 自然''水''或原初水:[[纳乌涅特 Nunut]] 和 [[努恩 Nun]]
# ''空气''或隐蔽或虚无:[[阿姆奈特 Amaunt]] 和 [[阿蒙 Amun]]
# ''黑暗'':[[Kuaket]] 和 [[库克 Kuk]]
# ''永恒''不灭或无限空间:[[Hauhet]] 和 [[胡 Hu]]
他们总是一起代表了四种宇宙开始时的原初、基本状态的概念。在神话中,他们相互作用最终是不平衡的,结果导致一个新物体的产生。当物体打开时,里面出现了火热的太阳-[[拉(Ra)|拉 Ra 太阳神]]。经过一段很长时间的间隔后,拉连同另外的神,创造了其它的一切。
{{Ogdoad table}}
''亚斯她录'',也译作''亚斯塔禄''、''亚丝塔露蒂''或是''亚舍拉'',人称‘天后’,''巴力''之妻,本为古代腓尼基(西顿,今黎巴嫩)人所崇拜之一女神''阿斯塔蒂''(列王记上11:33)或为司月及金星之神,其崇奉之仪式极端淫邪败德 (耶7:18、44:15-30),另一个是由古巴比伦王国丰饶女神伊丝塔的传说与解释中发端成形的一名恶魔。后为所罗门七十二柱魔神中排第29位的魔神,别名“阿斯塔特”(Ashtart)、“亚斯塔特”(Ashtarte)等。位阶公爵,统帅40个军团。 曾被认为与希腊的阿芙萝黛蒂及埃及的亚斯托勒相近。本来是异教女神的阿斯塔特,被犹太教给恶魔化了。
亚斯塔录堕落原因可能是来自迦南,因为伊丝塔(或是伊南娜)女神在巴比伦甚至还有战神的形象,神话中提及他是位嗜血的女神,已经有恶魔的形貌了。这个形像在传入埃及的Ashtreth狮头女战神,可能之间融合了巴勒斯坦(或说埃塞俄比亚)另一名和伊丝塔名字相近的男战神Ashtar,人称“令人恐惧者”,也是个''狮头神''。中世纪的大恶魔亚斯她录可能就是从此脱颖而出。 相传在“失乐园”中首次以堕落天使出现。
圣经中还有出现这位头带三日月冠,以牧牛头为像征的丰饶天后,先知耶利米称他为“上天之”。但堕落之后成了无性别的恶魔,相传在《魔术书》中的亚斯塔录被称为“地狱大公”、“恐怖公”,是支配西方的恶魔,拥有四十个军团的精灵。嘴角濡血,全身黑色并散出恶臭的毒气,右手牵著一支地狱之龙。他的能力能够自由在过去和未来之间来回,嘴边挂著提倡自由的学说,其实是教导人们怠惰,因而从天使被打下地狱。相传祂之前是一位炽天使,是第三批座天使的君主。
相传英国的传说也曾有提到过亚斯塔录,访问浮士德的地狱七君子之一,被叙述成短尾短腿白腹的恶魔。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/44/Astaroth.jpg/400px-Astaroth.jpg">
<div class="desc">《地狱辞典》中的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/72/Astaroth_Seal.svg/400px-Astaroth_Seal.svg.png">
<div class="desc">Seal of Astaroth</div>
</div>
</div>
但他林(英语:Dantalion),所罗门王72柱魔神中排第71位的魔神,位阶公爵,统帅36个军团。
''没有固定的外貌,但右手总是会拿著一本书。''
能力是''探知别人的隐私与思想'',以及传授给召唤者科学、艺术方面的资讯。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/98/71-Dantalion_seal.png/440px-71-Dantalion_seal.png">
<div class="desc">Seal of Dantalion</div>
</div>
</div>
佛劳洛斯(英文:Flauros),是所罗门王72柱魔神中排第64位的魔神,位阶公爵,统帅36个军团。别名“豪瑞斯”(Haures)。外型是''强壮且凶猛的豹'',也能依照召唤者的意思化成人形,通常会带著灼热的眼眸以及可怕的面孔。
他能回答所有事物的答案,但必定说谎。要使他吐实必须让他站在特别的魔法三角阵中,他将会乐于谈论关于神圣、创世、自己乃至于其他堕落天使。
他能通过焚毁来消灭追随者的敌人,也能使追随者不受精神或是任何物质的诱惑。据说,也能通过召唤他来对其他恶魔进行复仇。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/7d/64-Haures_seal.png/440px-64-Haures_seal.png">
<div class="desc">Seal of Flauros</div>
</div>
</div>
''佛卡洛'',别名“佛尔卡洛”(Forcalor)是所罗门七十二柱魔神中排第41位的魔神。位阶公爵,统帅30个军团,别号“水域公爵”。
常见的形像为''人身、狮鹫兽的翼。也可能乘坐狮鹫兽现身''。能力与威沛(Vepar,所罗门七十二柱魔神中的第42位)很像,都是控制海洋的能力。擅''控制风与海的力量'',召唤他的人通常目的就是要让某人溺毙、或是船支沉没。
''佛卡洛最大的兴趣就是喜欢将人丢进海中,欣赏其溺毙''。对于召唤者的命令虽然会实行,但会十分不悦。同样是希望能重返天界的堕天使,也在期待第七座天使的君王轮回,却也同样受骗。相传许多书中都有提到祂原本是座天使堕天之后变成的恶魔。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/f4/41-Focalor_seal.png/440px-41-Focalor_seal.png">
<div class="desc">Seal of Focalor</div>
</div>
</div>
克罗赛尔,是所罗门七十二柱魔神中排第49位的魔神,爵位是公爵,统率48个军团。''相传貌若天使'',可以洞察隐秘,授人几何与艺术。
呈现出天使的外形,他能揭露神秘隐藏的事物,传授地理与科学的艺术。在召唤者的要求下,他可以造出激流般的庞大声响,然而实际什么都没有,他能使水升温,''并发现温泉''。
在堕落前祂原是能天使。在召唤者面前以天使样貌出现的72柱魔神还有:[[因波斯|伯爵/亲王 因波斯 Count/King Ipos]](Ipos,所罗门七十二柱魔神中排第22位)、[[亚斯她录|公爵 亚斯塔禄 Duke Astaroth]](Astaroth,所罗门七十二柱魔神中排第29位)及华烈克(Volac,所罗门七十二柱魔神中排第62位),不过这些天使造型的魔神,几乎都是坐在邪恶生物的背上、或是身上有变异的样貌,只有克罗赛尔是''纯粹的天使貌''。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/49-Crocell_seal.png/440px-49-Crocell_seal.png">
<div class="desc">Seal of Crocell</div>
</div>
</div>
化勒,为所罗门七十二柱魔神中排第47位的魔神,位阶公爵,统帅37个军团。别名“瓦尔”(''Wall'')。能够令''召唤者夺得女性的爱'',本身还通晓古今,可预言未来,平抑仇恨。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/ee/Wall_%28Dictionnaire_infernal%29.png/440px-Wall_%28Dictionnaire_infernal%29.png">
<div class="desc">《地狱辞典》里的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/59/47-Vual_seal01.png/440px-47-Vual_seal01.png">
<div class="desc">Seal of Vual</div>
</div>
</div>
''华利弗'',别名“玛列法尔”(''Malephar'')、“华拉法”(''Valafar''),是所罗门七十二柱魔神中排第6位的魔神,能变化成''驴头狮身''或''人面狮身''的模样。善于''盗窃''。72位恶魔之中,他所支配的恶魔军只有10支师团,是支配的军团数第二少的魔神。支配军团数最少的是比夫龙,支配6个军团。
根据《所罗门之钥》(Lemegeton)中记载的形象为上半身是骡子、下半身是狮子。而在布兰西的《地狱辞典》中对他的外貌的描述为:狮子的头部、一双鹅的脚、兔子的尾巴。对于召唤者来说瓦利弗是个''温顺''的侍从,能力是使术者得到使役魔的使役权、''盗取''术者预期中的东西、不令术者感到迷惑。可赋予术者有关的技能和坚决大胆的心。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/c/ca/Valefor_Seal.jpg">
<div class="desc">Seal of Valefor</div>
</div>
</div>
''古辛'',为所罗门七十二柱魔神中排第11位的魔神,位阶公爵,统帅40个军团。别名“哥赛因”(''Gusayn'')、“哥所因”(''Gusoyn'')。
过去与未来的事情,他都能够一一回答询问者。对过去、现在和未来,他无所不知,并能揭露一切问题的结果和意义。相传也可授予召唤者名誉与地位。
特殊能力是''使友情萌生,把原先已经受到破坏的友情复修''。使双方的关系由“恶”转“善”。同时,亦能使敌对者变成己方的同伴。他能让人们和谐相处,并维护友谊的荣誉和尊严。在《所罗门之钥》中,Gusion是一位如谜一样的恶魔,可能是他所兼备的能力与其他的恶魔的能力相近的关系;所以,他的知名度非常低。
<div class="gallery">
<div class="img-container">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/4/4d/Gusion_Seal.jpg">
<div class="desc">Seal of Gusion</div>
</div>
</div>
----
<<showfnotes>>
''埃力格'',是所罗门七十二柱魔神中排15位的魔神,位阶公爵,统帅60个军团。别名“亚必戈”(''Abigor,Eligor'')。
被描绘成一位''手持长枪的骑士''。手执著长枪、旗帜、蛇,驱乘著''长著蝙蝠翅膀的马'',以一副温文有礼的骑士姿态,出现于召唤者面前。
具有''透视与预知''的能力,可以''寻找隐藏的东西或是预知未来'',但其专长在于掌握战场的趋势。也是一位''熟悉战争''的恶魔,左右著战士们的意志及战争的结果。藉著他的能力,可以得到以己之力永远也得不到的东西。得到其魔力的影响,使到原本与自己意见相违的(或者是合不来的)上级,转变成自己的同伴。这是''影响别人与自己的人际关系的恶魔''。也就是所谓‘改变战争的结果’。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/84/Abigor_%28DI%29.png/440px-Abigor_%28DI%29.png">
<div class="desc">Seal of Leraje</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/15-Eligos_seal.png/440px-15-Eligos_seal.png">
<div class="desc">Seal of Eligos</div>
</div>
</div>
塞列欧斯,是所罗门七十二柱魔神中排第19位的魔神,别名“塞罗司”(''Sallos'')、“札列欧斯”(''Zaleos/Zaleos'')。位阶公爵,统帅30军团。
他戴着公爵的珠宝王冠,骑着鳄鱼,以英勇战士的形象出现,但他的行为却很温和。它可以在男人和女人之间创造爱情。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/eb/Zaebos.png/440px-Zaebos.png">
<div class="desc"></div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/f6/19-Sallos_seal.png/440px-19-Sallos_seal.png">
<div class="desc">Seal of Sallos</div>
</div>
</div>
''威沛'',是所罗门七十二柱魔神中排第42位的魔神,别名(''Separ''、''Vephar'')。是一位伟大的地狱公爵,掌管著 29 个恶魔军团。通常会以''人鱼''的外型现身。
他掌管''海与风'',能在海上掀起浪潮与风暴,也能召唤满载武器的战舰,甚至能召唤海水从敌人的船舱内涌现。
他也能借由诅咒,使敌人伤口溃烂生蛆,并在三天内痛苦得死去,当然他也能治愈那些伤口。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/f4/41-Focalor_seal.png/440px-41-Focalor_seal.png">
<div class="desc">Seal 1 of Vepar</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/31/42-Vepar_seal02.png/440px-42-Vepar_seal02.png">
<div class="desc">Seal 2 of Vepar</div>
</div>
</div>
安度西亚斯,是所罗门七十二柱魔神中排第67位的魔神,位阶公爵,统帅29个军团,别名“安布西亚斯”(Ambuscias)。
是只''独角兽'',会幻化成人型。能发出各种乐器的声音,或弯曲树木。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/12/Amduscias_%28Dictionnaire_infernal%29.png/440px-Amduscias_%28Dictionnaire_infernal%29.png">
<div class="desc">《地狱辞典》里的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/58/67-Amdusias_seal.png/440px-67-Amdusias_seal.png">
<div class="desc">Seal of Amdusias</div>
</div>
</div>
安洛先(Alloces),亦称安洛瑟,是神秘学书籍《所罗门的小钥匙》中第一部份“Ars Goetia”所记载的七十二位魔神之一,排行第52位,为地狱之侯爵。
据说以有著''火红狮头与双目如炎的骑马战士''之姿态现身,凡人若直视其眼睛,将会看到自己的死相从而失明。乃''掌管学问''的恶魔,能给予召唤者天文学、占星术,以及众多的学问、知识。所罗门王72柱魔神中排第52位的魔神,为地狱之侯爵。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/8e/Alocer_01.png/440px-Alocer_01.png">
<div class="desc">《地狱辞典》中的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a3/52-Alloces_seal.png/440px-52-Alloces_seal.png">
<div class="desc">Seal of Alloces</div>
</div>
</div>
''巴巴托斯'',所罗门七十二柱魔神中排第8位的魔神,位阶公爵并统帅30个军团。
据说在召唤者面前,形象是''头戴绿帽,身披灰斗篷的射手'',及带著大量侍从身著猎装出现。能赋予召唤者过去与未来的知识、''通晓动物语言与发现隐藏宝物''的地点的能力。但如同祂身者猎装所示,他与动物之间的关联性很强,相传许多书中都有提到祂原本是[[力天使|力天使 Virtues]]或是主天使堕天之后变成的恶魔。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/0/0e/Barbatos_Seal.jpg">
<div class="desc">Seal of Barbatos</div>
</div>
</div>
''巴钦'',为所罗门七十二柱魔神中排第18位的魔神,位阶公爵,统帅30个军团。别名“巴提姆”(''Bathym'')、“玛尔钦姆”(''Marthin'')、“玛提姆”(''Marthym'')等。称号“''强大公爵''”。
其形象是一个''骑在花色马上''的一名身材魁梧、威风凛凛、动作敏捷的''蛇尾男人'',又被描绘成苍白的马,也是少数恶魔中''和蔼可亲''的一名。
可以''甄别药草与宝石'',能将人进行''灵魂出壳'',让人进行''远程传送''至任何一个地方。最早是以Marthim这个名字出现在《以诺书》上头,尔后在《伪以诺书》及《所罗门之钥》上均有出现。一般认为他拥有强大的力量,为[[路西法(Lucifer)|路西法 Lucifer]]的亲信之一。对药草学 及 宝石拥有详细知识。与72柱魔神中的斯托剌(Stolas,所罗门王72柱魔神中的第36位魔神)和单卡拉比(Decarabia,所罗门七十二柱魔神中的第69位魔神)相似。在普朗西的《地狱辞典 Dictionnaire Infernal 》内,记载著他有令人可以瞬间移动的特殊能力。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/18-Bathin_seal02.png/440px-18-Bathin_seal02.png">
<div class="desc">Seal of Bathin</div>
</div>
</div>
''布涅''(Bune/Bime/Bimé)所罗门王72柱魔神中排第26位的魔神,位阶公爵,统帅30个军团。
是一个长着''狗头、人头与狮鹫头''的''三头龙'',可''使人富有'',令人聪颖雄辩,给人真知。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/26-Bune_seal01.png/440px-26-Bune_seal01.png">
<div class="desc">Seal 1 of Buné</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/cf/26-Bune_seal02.png/440px-26-Bune_seal02.png">
<div class="desc">Seal 2 of Buné</div>
</div>
</div>
格莫瑞,所罗门七十二柱魔神中排第56位的魔神,位阶公爵。又译“吉蒙里”(Gremory)。''骑骆驼''。可通晓古今和预知未来,可探知被隐匿的宝物所在。
Gremory is depicted as appearing in the form of a ''beautiful woman ''with the crown of a duchess tied around her waist, and riding a camel.
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/40/Gremory.jpg/440px-Gremory.jpg">
<div class="desc">《地狱辞典》中的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/56-Gremory_seal.png/440px-56-Gremory_seal.png">
<div class="desc">Seal of Gremory</div>
</div>
</div>
''桀派'',所罗门王72柱魔神中排第16位的魔神。持有''决定恋爱前景''之力量。位阶公爵,统帅26个军团。
据《所罗门之钥》记载,杰派的形象是''身穿红色甲胄的兵士样貌''。当中还曾说到只要术者手持著那个刻有Zepar名字的纹章,Zepar可能会服从该持有者。能力与[[西迪|亲王 西迪 Prince Sitri]](Sitri,所罗门王72柱魔神中的第12位魔神)及[[贝雷特|亲王 贝雷特 King Beleth]](Beleth,所罗门七十二柱魔神中的第13位魔神)相似,是与男女之爱、热情、情欲相关的恶魔。
不论是什么样的对象,都能带至施术者面前,并使该对象疯狂的燃起对施术者的爱意。还有一项诡异的特殊能力,''就是能使女性不孕。''
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/88/16-Zepar_seal.png/440px-16-Zepar_seal.png">
<div class="desc">Seal of Zepar</div>
</div>
</div>
''比利士''(英语:、Beal、Bofry、Bolfri及Balberith(Baal-Berith)),为所罗门七十二柱魔神中排第28位的魔神,位阶大公,统帅26个军团。别名“比亚珥”(''Beal'')、“伯菲”(''Bofry'')、“伯夫莱”(''Bolfri'')、“巴力比利土”(''Baal-Berith'')或“巴贝雷特”(''Balberith'')。
在《所罗门之钥》中,相传''祂骑著一匹红色的马,头带皇冠''出现在召唤者的面前,与''红马与红色''关联性强。在《伪以诺书》中,是骑著红色马匹的赤甲兵士。而于在《地狱辞典》中,科兰·戴·布兰西曾有描述过,‘其为拥有强大势力的地狱公爵,同时支配26军团的指挥官,素有“恐怖公爵”之称。’喜欢虐杀及拷问,生性残酷,据说祂能给人''练金术'',以及过去与未来的知识,也是与人订卖魂契约的魔王代表,性格表里不一,多本书上都说祂是个''会说谎''的恶魔。相传祂原本是''智天使''的君主,堕天后成为地狱的祭司长兼任书记官。
曾经是示剑(Shechem)的地方神祇,名为巴力比利土(Baal-Berith或Balberith),意谓“圣约之神”(Lord of the Covenant)。在士师记第八章的第三十三节有写到:“基甸死后、以色列人又去随从诸巴力行邪淫、以巴力比利土为他们的神。”,在居住在示剑的时期,巴力比利土是希伯来人主要的神明。1960年初曾挖出示剑地方的巴力比利土神庙的遗迹,门前的圣柱上有著阳具外形的符号,及代表著女性性器的图样,一般认为这些是丰饶的象征。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/49/Ill_dict_infernal_p0110-94_berith.jpg/440px-Ill_dict_infernal_p0110-94_berith.jpg">
<div class="desc">《地狱辞典》中的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/28-Berith_seal.png/440px-28-Berith_seal.png">
<div class="desc">Seal of Berith</div>
</div>
</div>
瓦布拉,是所罗门七十二柱魔神中排第60位的魔神。''据说现身型态为背有狮鹫,有翅膀的狮子''。外型为狮的原因,被认为在仿讽雄狮。雄狮形像曾于《旧约圣经》预言者以西结幻觉中出现,并成为四福音纪录者之一的圣马可的象征。能够赐与召唤者工艺的知识。
Vapula is depicted as a griffin-winged lion.
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/10/60-Vapula_seal.png/440px-60-Vapula_seal.png">
<div class="desc">Seal of Vepula</div>
</div>
</div>
''艾尼'',为所罗门七十二柱魔神中排第23位的魔神,艾姆是支配二十六支军团,掌管''火灾之地''的公爵。除有别名“哈拜利”(''Haborym''),亦有“艾姆”(''Aim'')之称。
其外观是一个''三头男子'',他的三个头分别是''蛇头、前额有两颗咒文五芒星的男人的头、猫(或说小牛)的头'',右手持火玉,点燃他所经过的城市,城堡和圣地,坐骑是支全身都冒著红烟的地狱大蛇。常用火玉燃尽一切他见到的东西。他可以赋予人智慧,并可以发现隐藏的宝物。但是因为其中一为猫头,有人认为他对以色列人而言乃异教之神,与埃及神话之猫女神[[巴斯特(Bastet)|巴斯特 Bastet]]有关。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Ill_dict_infernal_p0333-317_haborym_demon.jpg/440px-Ill_dict_infernal_p0333-317_haborym_demon.jpg">
<div class="desc">《地狱辞典》中的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/48/23-Aim_seal.png/440px-23-Aim_seal.png">
<div class="desc">Seal of Aim</div>
</div>
</div>
阿加雷斯,是所罗门七十二柱魔神中排第2位的魔神。名为Agreas或者Agares。听命于[[力天使(Virtues)|力天使 Virtues]],他位居东部统治者的麾下。为21位''地狱公爵''中的头领者。
根据魔鬼学说,他是一名公爵(或是大公),统领地狱的东区,率领31个军团。一般认为其有找寻失踪者、教导世上存在任何语言与管乐,及有著''引发大地震''的能力,且乐于教导不道德的情绪表达。同时,他还有能力''摧毁他人的尊严''。''以前是力天使的领导者''。堕落后他以公爵的身份指挥地狱的31个军团,称为''变幻公爵''。
据说他有能''预见未来''的能力,能道破世间的所有谜题,但是说出来的话却真假半掺,不能轻易相信。他的力量足以摧毁任何要人,无论是神圣者还是世俗者。
他被描绘为一位骑在鳄鱼上的老贤者,说起话来相当有力,并有一只鹰(或说乌鸦)站在他的拳上。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/38/Agares.jpg/420px-Agares.jpg">
<div class="desc">Agares from Collin de Plancy's Dictionnaire Infernal, Paris, 1863.</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/79/Ageres.jpg/440px-Ageres.jpg">
<div class="desc">Seal of Agares</div>
</div>
</div>
毛莫(或称姆尔姆尔)是所罗门七十二柱魔神中排第54位的魔神,''胯下骑著狮鹫的战士''。
它''擅长哲学'',并能够召唤出死者的灵魂,回答召唤毛莫者的任何问题。相传许多书中都有提到祂原本是座天使堕天之后变成的恶魔。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d4/54-Murmur_seal.png/440px-54-Murmur_seal.png">
<div class="desc">Seal of Murmur</div>
</div>
</div>
伯沙撒王成为国王第三年,[[🗣️但以理 Daniel(?-530 BC)]]接获另一个异象,他用希伯来文把异象记录下来。
有一只公山羊,两眼之间有一只异乎寻常的角;公山羊跟一只自高自大的双角公绵羊争战,且胜了它。后来公山羊极度自高自大,大角就被折断了,继而长出''四只较小的角''来。其中一角长出另一小角,小角渐渐强大,甚至与天上的众军抗衡。
经文预言过了2300日,圣所就必“洁净”。(但以理书8:14)[[😇加百列 Gabriel(God is my strength)]]向但以理讲解异象的意义。
''公绵羊''代表''米底亚''和''[[波斯王|https://www.wikiwand.com/zh-hans/%E5%A4%A7%E6%B5%81%E5%A3%AB%E4%B8%89%E4%B8%96]]''。
''公山羊''就是希腊的''亚历山大大帝'',他的国后来被瓜分为四国(托勒密埃及、色雷斯和达契亚王国、马其顿王国、塞琉古帝国)。后来,有一面貌凶恶的王兴起,要“攻击万君之君”,结果被消灭,但不是被人手消灭。
由于这异象''指向遥远的未来,还要经过很多日子才会实现'',所以这个异象要保密。(但以理书8:25-26)
有一个故事说是普罗米修斯创造了人,他的父亲''伊阿佩托斯''和克罗诺斯一起反对天帝宙斯的统治。
在那次争锋中,普罗米修斯由于天生具有预言的智慧,领导起了奥林匹斯众神的事业。''对他和他的兄弟厄庇墨透斯( Epimetheus)来说,他们所要承担的工作就是造人'',并且给人和所有其他动物一些必要的配备,以维持他们的生存。
普罗米修斯没有注意到厄庇墨透斯的工作。弟弟其实一直在赋予各种各样的动物以不同的勇气、力量、敏捷和睿智:有的给翅膀,有的给爪子,有的则给硬壳。不过,普罗米修斯创造的是一种更加高贵的动物。他拿起一些泥巴,边掺水边捏弄仿照神的模样创造了人。他赋予人以能直立起来的身材,因此其他动物只能面向地面,而人却可以仰望星星。''由于厄庇墨透斯很鲁莽,把东西都放到了别的动物身上,所以后来才注意到,兄弟俩手头已经没有什么好东西留给那最高贵的造物。于是普罗米修斯升上天庭,在太阳的车轮上点燃了火炬,把火种带到了凡间。拥有了火,人类就能够获取大地的密藏和财宝,从而发展商业、科学和艺术''。
<div>
<<toc-selective-expandable "其他主神-埃及">>
</div>
<a href="https://www.wikiwand.com/en/Gungnir">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/2/29/Odin-Lawrie-Highsmith.jpeg/340px-Odin-Lawrie-Highsmith.jpeg"
caption:"Lee Lawrie, Odin (1939). Library of Congress John Adams Building, Washington, D.C."
width:"400px"
align:"right"
tooltip:"">>
</a>
冈格尼尔(也译作昆古尼尔、贡格尼尔),此枪是北欧主神[[⚡众神之父奥丁(神圣) Odin]]的所有物。至于之名的由来,有人认为是以声音表现出“贯穿”这个动作的说法最为可靠。
[[阿萨神族和华纳神族开战|两个神族的战争]]时,就是由''奥丁''拿著此枪投出第一击。__相传维京人在作战时,会由指挥官先向敌人投掷长枪,就是承袭自此。__
这矛是神圣的,对矛尖所发的誓,永不能反悔。
当奥丁将此枪掷出时,会发出划越空际的亮光,地上的人称之为“闪电”,另一说法是“流星”。
[[💀死亡女神赫尔 Hel]]"(Hel,或Hell,就是英语“地狱”的词源)<<fnote "赫尔的样貌十分可怕。她继承了父母左右各半的形态,身体的半边是承自洛基(神性)的、美丽可爱而又充满活力的女性形象,而另半边则是承自巨人的、丑陋畸形腐烂衰朽的躯体。或又谓她的肤色是一半洁白如雪,另一半漆黑如夜。">>是[[洛基|🦹邪神洛基 Loki]]的女儿,生于寒冷北方的[[巨人之国尤腾海姆 Jotunheim]];是[[奥丁|⚡众神之父奥丁(神圣) Odin]]将她打入了[[雾之国尼弗尔海姆 Niflheim]],使其管领幽冥世界。她是死神,又是冥土之君。
赫尔的国度,即所谓''冥国'',北欧人以为是在地下,须在极北的寒冷黑暗之地走上''九天九夜''的崎岖道路,方能到达。
冥国的大门离人间极远,有名的速行之神[[赫尔莫德|神使赫尔莫德 Hermod]]骑了奥丁的[[🐴八脚马史莱普尼尔 Sleipnir]],尚且跑了九个日夜才到达''[[吉欧尔(Gjoll)河|⛲赫瓦格密尔(不竭之泉) Hvergelmir]]''。这条河是''尼弗尔海姆''的边界,河上有镀金的水晶桥,用''一根头发吊住''。守桥的是狰狞的枯骨''莫德古德(Modgud,战狂或厌战者)'',凡要过桥者,须先让他吸血,作为通行税。
死后的鬼魂大多是骑马或坐车通过此桥,这些马和车是火葬时随同一起烧了的。北欧人通常在死者脚上穿一双''特别坚固的靴子'',因为到冥国的九天九夜的崎岖道路须得有一双好靴子才能对付。这靴子特名为“''赫尔靴''”。
经过吉欧尔河,乃有一铁树之林,林中只有钢铁的树叶,地上不毛。过了铁树之林,则至“''赫尔之门''”,有可怕的''血斑巨犬加尔姆(Garm)''守着,它蜷卧在名为''格尼帕(Gnipa)''的洞窟之中。这可怕的妖魔只有用叫做“赫尔饼”的食物才能买通它。在“赫尔之门”里,是刺骨的寒冷与深远的黑暗;其中有如嘶嘶沸腾的大锅的声音,那是[[⛲赫瓦格密尔(不竭之泉) Hvergelmir]]奔涌之声。除此之外,又有冥间九河,其中名叫''[[斯利德(Slid)|⛲赫瓦格密尔(不竭之泉) Hvergelmir]]''的一条,河水中流淌着锋利的尖刀。
再往前走,就是赫尔的宫殿''埃琉德尼尔(Eliudnir,悲惨)''。赫尔爱吃的东西是“饿”,她的餐刀是“饕餮”。她的男仆名为''“迟缓”(Ganglati)'',女仆名为''“怠惰”(Ganglot)''<<fnote "他们走动得极其缓慢,以至于没人能看出他们在朝哪个方向移动。">>
。
卧室名为“毁灭”,床名为“忧愁”,窗帘名为“火灾”。赫尔有许多房间收容每天从阳间来的客人;她不但接收一切杀人犯和冤死鬼,也收容那些不幸没有流血就死去的鬼魂。凡是老死和病死的鬼魂也都到赫尔那里;''此所谓“病死”又名“草柴死”'',特指那些平凡地死在床上的人而言。
虽然赫尔对待那些生前不曾作恶的鬼魂还算和善,可她的国度终究是无趣的地方,古代的北欧人都不愿意去。他们都不愿“草柴死”,男人们都愿死在矛下,或死在海中,因为这样死的死者有被[[瓦尔基莉|⚔️女武神瓦尔基莉 Valkyries]]挑选到天上享福的可能。女人们也都愿意为丈夫殉葬,一同被火化,因为传说中在天上[[女战神弗蕾亚 Freyja]]也有一座大宫专门招待这些爱人。
至于那些生前作恶多端或生活丑恶的鬼魂,则被贬入死尸之壑''纳斯特隆德(Nastrond)'',受冰泉的浸泡和毒蛇的咬啮。在那里受了许多痛苦之后,又被投入''赫瓦格密尔泉'',于是毒龙[[🐉尼德霍格 Nidhogg]]就暂时不咬生命树的树根而来啃他们的骨头。
赫尔也常常到人间世界来。她骑着''三足的白马'',当发生''瘟疫''的时候,如果一村中死了一半人,人们就说赫尔是用了耙,如果死了全村,则说她是用了扫帚。
北欧人又以为死者的鬼魂会常到人间来看他的亲人,而死者的亲人的悲欢也常会影响到死者的灵魂。有名的民歌《艾吉尔与艾丽丝》中说已死的丈夫要他的妻子常常微笑,因为哭泣使他的棺中充满了血滴,而欢笑则使棺中产生了玫瑰花。
----
<<showfnotes>>
<<<
在那前面有地下神充满回音的殿堂,
住着强悍的哈得斯和威严的珀耳塞福涅,
一条让人害怕的狗守在门前,
冷酷无情,擅使阴险的计谋:
它摇耳又摆尾,逢迎人们进来,
却阻止他们折回去。它窥伺着,
抓住并吃掉那些企图夺门逃走的人——
[ 那里 ]住着强悍的哈得斯和威严的[[珀耳塞福涅|珀尔塞福涅 Persephone]]。
<<<神谱
!! 冥界旅程
# 首先,死亡之神[[塔纳托斯|☠️死神塔纳托斯 Thanatos]]将会降临,祂会从死者的头上剪下一绺头发,作为该死者已死之凭证。
# 然后,众神使者[[赫耳墨斯|☤神使赫尔墨斯 Hermes]],祂会引渡亡灵进入斯堤克斯河。
# 如果该死者有过正式葬礼,冥界摆渡者[[卡戎|🚣冥界摆渡者卡戎 Charon]]将会运载亡灵渡河。
# 到达河岸边之后,亡灵将遇到地狱三头犬[[刻耳柏洛斯|🐶刻耳柏洛斯/地狱三头犬 Cerberus]],它是负责冥界的守卫。它的工作是阻止亡灵离开阴间并且返回生人的世界去。
# 渡过河后,亡灵将会离开渡口并且步行到一个名为水仙平原之处,那里的人忘记了他们前世生活的所有记忆。
# 然后在一个岔路口上,三名法官[[拉达曼迪斯|拉达曼提斯 Rhadamanthus]]、[[米诺斯|迈诺斯 Minos]]、[[埃亚库斯|埃阿科斯 Aeacus]]将决定灵魂往哪里遣送:善良且道德正直的人将允许进入至福乐土(一个阳光永远照耀,并且舒适的地方);但在世为恶者则必须打入地狱(塔耳塔罗斯)接受严厉惩罚;而当冥府法官无法审定者,灵魂则被送往水仙平原。
!! 冥河
主要有五条冥河。祂们是在真实世界与冥界之间(在希腊神话中)都是明显可见的河流。祂们的名字的意思旨在表达著与死亡相关的情绪。
# ''斯堤克斯河''(Styx,意译:怒河、守誓河)是广泛的被认为是冥界最显著的一条中心冥界之河并且也是所有冥河中广为人所熟知的一条河流。祂被称为仇恨河以及名字因为[[斯堤克斯|斯堤克斯 Styx]]女神而来。据说此河围绕冥界七次。
# ''阿刻戎河''(Acheron,意译:怨河、苦恼河)这是一条痛苦之河。根据欧里庇得斯所述,这条河有一位[[卡戎|🚣冥界摆渡者卡戎 Charon]],或称为摆渡者,于渡船上载著亡者穿越过斯堤克斯河进入冥府(Hades)。
# ''勒忒河''(Lethe,意译:忘川、遗忘河)即为一条遗忘之河。他是与里忒女神,或是忘却遗忘女神有关的冥河。
# ''弗莱格桑河''(Phlegethon,意译:火河、火焰之河、熔岩之河)是一条充斥火焰河流。根据柏拉图所述,这条河是引导向地狱的深渊。
# ''克塞特斯河''(Cocytus,意译:悲河、悲叹河)这是一条哀嚎的河流。
Hel,冥界(Hel)是亡者的住所,没能光荣战死而错失英灵殿的死者都归于此地,与其统治者海拉同名,在冰岛的文献里有许多不同对其的描述,例如艾达经中叙述了布伦希尔德到冥界的旅程,而[[⚡众神之父奥丁(神圣) Odin]]在生前也曾骑著它的坐骑''斯雷普尼尔''到过冥界。在诗体埃达中当巴德尔遇害后,赫尔莫德亦骑著奥丁的八足神马斯雷普尼尔尝试救回巴德尔。
<<list-links "[tag[冥界众神]]">>
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a0/Khepri.svg/440px-Khepri.svg.png"
caption:"大多数凯布利神像其实就是圣甲虫"
width:"300px"
align:"right"
tooltip:"Khepri">>
象征日出及再生。因为太阳升起与落下和''圣甲虫滚粪球及抱卵''有一定的联系,象征物便是圣甲虫。其名称(普遍译为Khepri)与埃及语动词“kheper”有关,意思是“发展”、“出现”。
并未有专门为凯布利献祭的地点,凯布利常被当做拉的化身。实际上有些时候凯布利和另外一位太阳神阿图姆分别被视为''早晨''和''下午''的太阳,而[[拉|拉 Ra 太阳神]]则象征正午。
!! 形象
圣甲虫是凯布利的象征,''因此大多数凯布利神像其实就是圣甲虫''。偶尔有墓画及纸莎草上会出现甲虫头的男性凯布利神像,此外其也以圣甲虫的形象出现在[[努恩|努恩 Nun]]摆渡的太阳船中。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/b/be/Egypt.KV6.04.jpg/240px-Egypt.KV6.04.jpg"
caption:"Painting of Khepri holding the sun."
width:"300px"
align:"left"
tooltip:"Painting of Khepri holding the sun.">>
《出埃及记》,是圣经旧约的第二书,主要是讲述''以色列人如何在埃及帝国受到逼害,然后由[[摩西|摩西 Moses]]带领他们离开埃及的故事''。出埃及记传统上认为是摩西在[[西奈半岛|西奈山 Mount Sinai]]旷野完成的第二本书,因此在一些圣经译本如德文圣经中,它也简称作摩西二书(2. Mose)。
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
《列王纪》是《希伯来圣经》的一部分,原文用希伯来语书写。这书册估计大约在''公元前6世纪到前5世纪''期间完成。《列王纪》在《希伯来圣经》中原为一整册,《旧约圣经》和合本是依照希腊文译本将全书分为列王纪上、列王纪下两卷。分割的界线大概是按篇幅的长短而定,并没有特殊的用意。
经里主要的意思大致是用历史预说,在神经纶中作为神行政的对付,连同神的以色列君王职分,在地上因著异族入侵而遭破坏与毁灭,以及神公正对付的种种结果。
!! 背景
大卫南征北讨,把以色列的国境扩展至上帝所预定的疆界,从北面的幼发拉底河直到南面的埃及大河。大卫去世之后,儿子所罗门登基继位,“犹大人和以色列人如同海边的沙那样多,都吃喝快乐。”所罗门以十分睿智的方式施行统治,他的智慧远胜过古希腊人。他为耶和华建造一座华美的圣殿,但此第一圣殿也因后继者的悖离神旨意而蒙上黑暗圣殿的阴影,最终神定意拆毁,一颗石头都不留。
甚至所罗门也在晚年离弃真道,转而崇拜假神,开启了《圣经》中''属灵光景跌到谷底的黑暗时代'',大批先知发出警世之语,同时也造成了大批先知被残杀的悲剧,比之教会史大殉道时期毫不逊色。他死后国家一分为二,''此后以色列国和犹大国彼此对立''。当时君王无道,为治下的百姓带来极大的苦难;这一切均应验了[[撒母耳|撒母耳 Samuel]]的预言。列王纪上提及自所罗门死后先后登基统治犹大和以色列的14个国王,其中只有两个王行耶和华眼中看为正的事。
<<list-links "[tag<currentTiddler>] +[nsort[num]]">>
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[num]'/>
</div>
!! 最初
最初,还没有地,没有海,没有空气,一切都是包孕在黑暗之中的时候,有名为“万物之主宰”(''奥尔劳格,Orlog'')的力存在着。''它是不可见的、不知从何而来,然而却存在着''。
宇宙起源之始,在广漠太空的中央,有一个极大的''无底鸿沟金恩加格(Ginnungagap)'',被永在的微光包围。鸿沟北方是''浓雾与黑暗之国[[尼弗尔海姆(Niflheim)|雾之国尼弗尔海姆 Niflheim]]'',此中又有''不竭之泉源赫瓦格密尔(Hvergelmir)'',仿佛是一口煮沸的大锅,向''十二道名为埃利伐加尔(Elivagar)的大川''供给水源。当这十二道大川的水滔滔流来的时候,在鸿沟边被无底鸿沟中的冷气所激,立刻冻成了冰山,覆盖堆积在鸿沟的边缘,又滚入鸿沟中,发出雷鸣般的巨响。
鸿沟之南,正对着尼弗尔海姆的,乃是''[[真火之国穆斯帕尔海姆(Muspelheim)|火之国穆斯帕尔海姆 Muspelheim]]'',''火焰巨人[[苏尔特尔(Surtur)|火巨人苏尔特 Surtr]]''镇守于此。这位巨人常以他的发光冒火星的大剑砍击那些滚到无底洞中的冰山,发出擦擦的巨响,而且使那些冰山受热溶化了一半。溶冰所冒出的水汽向上升腾,复为那四周的冷气所袭,凝而为寒霜,越积越多,终于填满了广漠太空的中央。这样,由于冷与热的不断工作,或竟由于那不可见亦不知所以来的“力”——所谓“万物之主宰”的意志,一个庞大无比的''巨人'',名为''[[伊密尔(Ymir)|霜巨人伊密尔 Ymir]]'',或名奥尔格尔密尔(''Orgelmir''),就从无底鸿沟周围的冰山中生出来了。因为他是从寒霜中产生的,故亦称为''霜巨人(Hrimthurs)''。这实为冰冻的海洋之人格化。
和伊密尔同一来源且同一材料的,是一头名为''[[奥德姆拉(Audhumla)|🐮母牛奥德姆拉 Audhumla]]''的大母牛。它的乳房喷出四股极粗的乳汁,供给了伊密尔的食粮。母牛转而求食物于身边的冰山,以它的粗舌舔冰上的盐,久而久之,冰山渐消而一巨大头颅的头发露出来了,后来连头连身体都出来了;这就是''[[祖神勃利(Buri,产生者)|勃利 Buri]]''。此时伊密尔正在睡觉,于是从他''腋下的汗水''中生出了一子一女,从他的脚上生出了六个头的巨人''[[瑟洛特格尔密尔(Thrudgelmir)|瑟洛特格尔密尔 Thrudgelmir]]'',而瑟洛特格尔密尔在出生之后不久就又生下了巨人''[[勃尔格尔密尔(Bergelmir)|勃尔格尔密尔 Bergelmir]]'',此为一切邪恶霜巨人的始祖。
!! 神与巨人的战斗
当这些巨人们觉察到他们旁边还有''勃利神''及其子[[勃尔|勃尔 Borr]](Borr,意为生产,是勃利出生后立即生下来的),他们就和两位神战斗起来。
神是代表善的,巨人是代表恶的,他们决不能和平地共处。战斗延长了许多时候,两边势均力敌;直到''勃尔''以女巨人[[贝丝特拉|贝丝特拉 Bestla]](Bestla,她是巨人波尔斯隆——Bolthron,恶之刺——的女儿)为妻,生了三个儿子:[[⚡众神之父奥丁(神圣) Odin]]、[[维利(精神) Vili]]、伟(Ve),——象征着精神、意志和神圣,——方才分出胜负。
''奥丁''等三人出生后立即加入父亲的斗争,终于将最厉害的霜巨人''伊密尔''杀死。当伊密尔死的时候,从他的伤口里涌出大量的血,变成一股洪流,将他自己的一族全部淹死,只剩下''勃尔格尔密尔''和他的妻子乘舟逃走。他逃到世界的边缘,定居下来,将其地命名为''尤腾海姆(Jotunheim,巨人之国)'',又生了一大群霜巨人,时时想闯到诸神统治的世界中作恶。
战胜了巨人的诸神,于是成了世界之主宰。他们自称为[[亚萨神族|亚萨神族 Aesir]](Aesir,意即世界的柱石与支持者),并且也有时间来做建设的工作了。他们要在这荒凉的太空中创造一个可居住的世界。
!! 建造天地
他们将[[伊密尔|霜巨人伊密尔 Ymir]]的巨大尸体滚进那无底鸿沟,将他的肉塑成了大地,北欧人称为''米德加德(Midgard,中央之地)'',以置于那无底鸿沟的正中央,周围围以伊密尔的''眉毛'',算是''大地与无垠太空之间的界墙''。伊密尔的''血和汗则成为海洋'',环绕在他的肉体所构成的硬土的四周。他的''骨头''被造成了''山'',''牙齿''成为''石'',''头发''成为''树木百草''。
这样布置好了,诸神又取伊密尔的''颅骨''很巧妙地悬于地和海之上,是为''天体'';取伊密尔的''脑子''改造为''云''。
可是这青石板似的必得有物托住了,方免得坠下来。所以诸神又将四个壮健的矮人命名为''诺德里(Nordri,北)''、''苏德里(Sudri,南)''、''奥斯特里(Austri,东)''、''威斯特里(Westri,西)'',使立于地之四隅,以肩承天。
!! 分配日月
这样的世界,还得要光明:所以诸神又从''穆斯帕尔海姆''取了火来,布满在天穹上,那就 是群星。最大的火块留作创造太阳和月亮,用金车载着。诸神找了两匹马,''阿尔瓦克(Arvakr, 早醒者)''和''阿尔斯维(Alsvin,快步者)'',拖那个盛着太阳的金车。但又恐怕太阳的热力伤 了那两匹马,所以特在马的肩下加了装气的大皮囊;他们又造了''巨盾斯瓦林(Svalin,冷者)'' 置于车前,免得太阳的热力烧坏了车子,也因此让地面不至于被太阳所灼焦。盛月亮的车子 由一匹名为''亚斯维德尔(Alsvider,永远迅速者)''的马驾着,可是没有马的防御物和盾,因为月亮的光热是温和的。
但是驾这太阳和月亮的车,须得两位驭者;诸神看中了巨人[[蒙迪尔法利(Mundilfari)|蒙迪尔法利 Mundilfari]]的一对美丽的孩子:男的名叫[[玛尼(Mani,月亮)|🌖玛尼 Mani]],女的名叫[[苏尔(Sol,太阳)|☀️苏尔 Sol]];苏尔是格劳尔(Glaur)的妻子,格劳尔或被称为[[火焰巨人苏尔特尔|火巨人苏尔特 Surtr]]的一个儿子。诸神把这两个人弄到天上,使''玛尼''驾了月车,''苏尔''驾了日车。
但是因为北欧人总是以为''邪恶时常跟在善势力''之后,想要破坏善势力,所以他们又说有可怕的''天狼斯库尔(Skoll,嫌忌)''和''哈梯(Hati,憎恨)''总是在追逐太阳和月亮(二狼分别追逐日月),想把它们吞下去,使世界复归于黑暗。有时候,天狼几乎追上了太阳和月亮,而且咬着了,那就是日蚀和月蚀。那时,地上的人们须得吹号打鼓,惊走那天狼。但天狼还是永远不舍地追着,总有一天它们会把日月吞下去,这就是“''诸神之黄昏''”的时候了。
!! 指定冬夏
诸神不仅指派了日、月、昼、夜四位神在天空中驾车巡行,而且还指派了暮、午夜、晨、上午、正午、下午的神以分担他们的工作。在此之外,还派定了夏之神和冬之神:''夏神''是''斯太瓦苏德(Svasud,温和,夏日之人格化)的儿子'',也和他父亲一样可亲;而''冬神''的父亲是''文太德苏尔(Vindsual,冷酷,寒冬之人格化)'',和夏神是死对头。
除此之外,北欧人又设想在天之极北,有巨人''[[赫拉斯瓦尔格尔(Hraesvelgr,吞噬尸首者)|风巨赫拉斯瓦尔格尔 Hræsvelgr]]'',身披鹰羽之衣,当他举臂—或可说是举翼的时候,冷风就从地面上横扫而过。
!! 侏儒和精灵
当诸神忙着创造天地、装饰天地的时候,有一大群''像蛆一样''的东西从[[霜巨人伊密尔 Ymir]]的肉里生出来了。这些小家伙引起了诸神的注意,诸神乃给它们以形状和人的智慧,并将它们分为两种:那些黑皮肤、诡诈狡猾的,诸神逐之于地下的[[斯瓦塔尔法海姆(Svartalfaheim,侏儒之国)|地精之国斯瓦塔尔法海姆 Svartalfaheim]],禁止他们白天到地面上来,如果违反了,就要变成石头。这些家伙被称为''Dwarf(矮人)、Gnome(侏儒)、Troll(魔怪)、或Kobold(小鬼)'',他们的任务是搜集地下秘藏的宝物。找到之后,他们把金银宝石都藏在隐秘的地方,不让人们随便找得。
而另外一种则是长得白皙、性格温和的,诸神称之为''Fairy(仙子)或Elf(精灵)'',送他们住在空中的[[亚尔夫海姆(Alfheim,精灵之国)|精灵之国亚尔夫海姆 Alfheim]],他们可以随意飞来飞去,照料花草,和鸟雀蝴蝶游戏,或是在月夜的草地上跳舞。
!! 诸神的黄金年代
这样将一切都布置好了,诸神之首''奥丁''乃引诸神卜居于远离大地的一块平原,这平原在不冻的大河伊文(Ifing)之彼岸,名为''伊达瓦尔德(Idawald)''。
诸神所居之地名为[[阿瑟加德(Asgard)|亚萨神国阿斯加特 Asgard]],辅佐奥丁的有12位''男神(Aesir)''和24位''女神(Asynjur)''。
于是他们开了一次盛大的会议,奥丁发布命令,谓在此诸神之领域内不许有流血之事。这会议的另一结果是诸神建立了一个巨大的冶炼炉,铸成了各种武器和建筑神宫所必需的工具。诸神这样快乐地生活着,有许多年;是为诸神的黄金时代。
!! 创造人类
虽然诸神创造了大地,准备作为人类的家,然而实际上,地上还没有人类。某一日,''奥丁、维利和伟(或说是奥丁、海尼尔(Honir)和洛多尔(Lodur,即洛基Loki))''从神宫中出去,在海滩上走,找到了两片木板,或说是两棵树,一棵是''梣树(Ask)'',另一棵是''榆树(Embla)'',便拿来削成了人的形状。诸神看着自己的作品,很是得意,就决定要利用这手制品。
于是''奥丁''给与其灵魂,''海尼尔''给以动作和感觉,''洛多尔''给以血,这样就有了能思索能说话能工作并且有恋爱有希望有生有死的人类,住在地上当地上之主。这新造成的两个人是男女一对(梣树是男,榆树是女),他们生下子女,繁衍不息。
!! 创造世界树
此后奥丁又创造了一棵巨大的梣树,名为[[伊格德拉修(Yggdrasil)|🌲世界之树 Yggdrasil]],是为宇宙之树、时间之树、生命之树,充满着整个世界。它着根于辽远的、翻腾着[[⛲赫瓦格密尔(不竭之泉) Hvergelmir]]的尼弗尔海姆,还着根于近海之地、着根于[[⛲乌尔达泉(命运之泉) Urdarbrunnr]]旁的神之家宅。立在这三支大根上,这棵树长得极高,其最高枝名为''莱拉德(Lerad,和平之给与者)'',罩在奥丁的宫殿上,而其它的高枝则罩在[[雾之国尼弗尔海姆 Niflheim]]、罩在[[火之国穆斯帕尔海姆 Muspelheim]]、以及我们的大地。
莱拉特的枝头栖着一只鹰,一只名为''维德佛尔尼尔(Vedfolnir)''的''苍鹰又蹲在鹰的两眼之间'',炯炯的目光照耀着天上地下甚至远至''尼弗尔海姆''中发生的各种事情,报告给奥丁。
''伊格德拉修''的树叶是常青的,所以又是供给诸神以羊乳的''神羊海德伦(Heidrun)''的食料,还有叫''达因(Dain)、特瓦林(Dvalin)、杜涅尔(Duneyr)、杜拉索尔(Durathor)''的''神鹿''们也在吃这树叶;这些鹿的角上会滴下蜜露来,__世界上的一切河水都来源于此。__
在''伊格德拉修''的左近,''不竭之泉赫瓦格密尔''旁,有一条可怕的毒龙[[🐉尼德霍格 Nidhogg]]不停地在啃噬生命之树的根,又有无数的蛇来帮助龙做这破坏的工作。龙和蛇<<fnote "这些蛇的名字是格因(Goin)摩因(Moin)、格拉巴克(Grabak)、格拉弗沃鲁德(Grafvollud)、奥弗尼尔(Ofnir)和斯瓦弗尼尔(Svafnir)。">>都想弄死这生命之树,知道生命之树一死,''诸神的末日也就到了。''
挑拨是非的''松鼠拉塔托斯克(Ratatosk)''则在树的枝干间不停地跑着,把树顶的苍鹰所见所报告的事情讲给毒龙听,并常常挑拨着龙和鹰之间的憎恨。而[[命运女神诺恩(Norns)们|🔮诺伦三女神(命运三女神) Norns]],姐妹三个,一直在照料着生命之树,她们从[[⛲乌尔达泉(命运之泉) Urdarbrunnr]]汲水来灌溉此树。
!! 彩虹桥
高临于大地之上,横跨尼弗尔海姆两陲的,是火、水,及空气组成的神圣之桥[[🌈彩虹桥 Bifrost]],诸神由此桥下到地上,或到生命树之根旁的乌尔达泉,他们每天都要在这圣泉旁召开会议。
诸神中惟有雷神托尔不从这虹桥上走,免得他沉重的脚步和雷火弄坏了桥。守护虹桥的神是[[💂🏻破晓之神海姆达尔 Heimdallr]],他在此守护,日夜不离;其武器是一把快刀和一只银角。每当诸神经过这桥的时候,他就吹他的银角作软调,但如果这角吹出高亢激越的声音时,那就是在报警,是''诸神之黄昏(Ragnarok)''来了,是霜巨人联合着火焰巨人[[火巨人苏尔特 Surtr]],要来毁灭这世界的时候了。
!! 与华纳神族
虽然亚萨神族是天上最初的神,但北欧人又另有海与风之诸神,[[华纳神族(Vanas)|华纳神族 Vanir]],住在[[华纳神国 Vanaheimr]]。
早先,''奥丁''尚未建筑他们的[[阿瑟加德神宫|亚萨神国阿斯加特 Asgard]]时,亚萨神族和华纳神族之间曾有过战争,他们各用山石和冰山作为武器。后来两方讲和了,于是''华纳神族''中的涅尔德(Njord)带着他的两个孩子弗雷(Frey)和芙蕾雅(Freya)住到天上的''阿瑟加德'',算是和平的保证,而[[亚萨神族 Aesir]]中的''海尼尔'',奥丁的亲兄弟,则住到了[[华纳神国 Vanaheimr]]。
----
<<showfnotes>>
daughter of [[拉班 Laban]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[nsort[num]]">>
the third of the six sons of [[Jacob|雅各 Jacob]] and [[Leah|利亚 Leah]] (Jacob's third son), and the founder of the ''Israelite Tribe of Levi'' (the Levites, including the Kohanim)
名字是''联合''的意思,说,我给丈夫生了三个儿子,他必与我联合。
!! Offspring
<<list-links "[tag<currentTiddler>] +[nsort[num]]">>
《利未记》,是摩西五经中的第三本。这本书的英文名字(Leviticus)采自希腊文《七十士译本》所用的希腊字利未提纲(Leu·i·ti·kon′)和《通俗拉丁文本圣经》的“利未提格斯”(Leviticus)。
整本书的内容主要是记述有关选自''利未族的祭司团所需谨守的一切律例''。在希伯来文圣经里,此书的名字取自书中开首的一句,韦依格拉(Wai·yiq·ra’),实际的意思是“他呼叫”。后来犹太人也把此书称为''祭司的手册''。
利未人是[[雅各|雅各 Jacob]]与[[利亚|利亚 Leah]]的第三子[[利未|利未 Levi]]的后人,负责以色列人的祭祀工作,不参与分配土地,利未人对神忠心,被耶和华拣选作为事奉祂的支派。所有的祭司都属于利未支派,他们的工作是协助料理会幕,并向百姓讲解律法。
埃及的利比亚(古希腊语:Λιβύη)是希腊和罗马神话中埃及国王厄帕福斯的女儿。她是北非古利比亚土地的化身,现代利比亚的名字就来源于此。
daughter of [[彼土利 Bethuel]], wife of [[以撒 Isaac]]
<a href="https://www.wikiwand.com/en/Rebecca#Media/File:Bartolom%C3%A9_Esteban_Perez_Murillo_022.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/0/01/Bartolom%C3%A9_Esteban_Perez_Murillo_022.jpg/1920px-Bartolom%C3%A9_Esteban_Perez_Murillo_022.jpg"
caption:"Rebecca and Eliezer (17th century) by Bartolomé Esteban Murillo"
width:"400px"
align:"left"
>>
</a>
亚伯拉罕老年事事顺意,唯有儿子以撒尚未婚,令他忧心忡忡。他对最忠信的老仆人说:“请你起誓,务必到我过去的本家寻一女子,给[[以撒|以撒 Isaac]]作妻。”
老仆人独自带了骆驼和财物去往美索不达米亚的路上,在''拿鹤城''小住, 那地方一到天黑,女子们就纷纷出来打水。他和骆驼暂驻在城外的水井边, 心想:“神啊,求您赐福给我主人,使我今日得逢好运,遇着善良如意的好女子。”老仆人暗中祷告,如果有一位少女眷顾他这位老人和那疲倦的骆驼, 她就是自己千里寻找的人。
<a href="https://www.wikiwand.com/en/Rebecca#Media/File:The_Veiled_Rebecca_02.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/6/60/The_Veiled_Rebecca_02.jpg/1008px-The_Veiled_Rebecca_02.jpg"
caption:"The Veiled Rebecca (1863) by Giovanni Maria Benzoni"
width:"300px"
align:"right"
>>
</a>
很快,有个叫利百加的少女扛着水瓶来到井边, 芳龄正适,俊美无比,令他老眼一亮,就忙迎向前,对她说:“求你将瓶中的水给我一点喝。”利百加就托瓶在手,给他水喝,十分礼敬。她又将瓶中 的水倒在槽里,连骆驼也一起喂饱了。老仆人还不放心,拿出一个金环、两 个金镯给她,问:“你是谁家的女子?你父亲家有住宿的地方吗?”少女答复了,赶忙跑回家,预先要父母兄弟安排。利百加的哥哥拉班看到她手上双镯,就也来到井边,对老仆人说:“您为什么站在外边呢?我 们为您早准备好了地方。”利百加正是[[亚伯拉罕|亚伯拉罕 Abraham]]的兄弟的孙女,当她随老仆人来到迦南,看到[[以撒|以撒 Isaac]],就''拿帕子蒙上脸''。
怀孕以后生了双胞胎 [[以扫 Esau]]和[[雅各 Jacob]]。
Esau擅长打猎,Jacob性格内向,经常在帐篷内。
[[以撒 Isaac]]喜欢[[以扫 Esau]],因为经常吃到他打的野味。利百加喜欢[[雅各 Jacob]]。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
[[希吉 Sigi]]的儿子,得到[[众神之母弗丽嘉 Frigga]]的金苹果,生下伏尔松格 Volsung。
! 海洋女神
''Ceto'' (''/ˈsiːtoʊ/''; Ancient Greek: Κητώ, romanized: Kētṓ, lit. 'sea monster')
|父母 |[[🌊海神蓬托斯 Pontus/Pontos]]和[[🌍大地女神盖亚 Gaea]] |
|配偶 |[[福耳库斯 Phorcys]] |
作为神话人物,她被认为是最古老的神灵之一,并生下了许多可怕的孩子,统称为“福耳库德斯”(Phorcydes)。
她是叵测的大海给人带来的危险的化身,也是未知的陆地以及诡异生物的象征。''在希腊语中,“刻托”一词最终被用来代表所有的海怪'',直到今天。
在希腊艺术中她被表现为半蛇半鱼,鲸鱼座(Cetus)来源于她。
<div>
<<toc-selective-expandable "刻托 Ceto">>
</div>
<a href="https://www.wikiwand.com/en/Samson#Media/File:Lucas_Cranach_d.%C3%84._-_Simson_bezwingt_den_L%C3%B6wen.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/7/76/Lucas_Cranach_d.%C3%84._-_Simson_bezwingt_den_L%C3%B6wen.jpg/440px-Lucas_Cranach_d.%C3%84._-_Simson_bezwingt_den_L%C3%B6wen.jpg"
caption:"Samson's Fight with the Lion (1525) by [[Lucas Cranach the Elder|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E8%80%81%E5%8D%A2%E5%8D%A1%E6%96%AF%C2%B7%E5%85%8B%E6%8B%89%E7%BA%B3%E8%B5%AB%20Lucas%20Cranach%20the%20Elder%201472-1553:%5B%5B%E8%80%81%E5%8D%A2%E5%8D%A1%E6%96%AF%C2%B7%E5%85%8B%E6%8B%89%E7%BA%B3%E8%B5%AB%20Lucas%20Cranach%20the%20Elder%201472-1553%5D%5D]]"
width:"400px"
align:"right"
>>
</a>
以色列人又做耶和华眼中邪恶的事,耶和华就让''非利士人''压迫他们40年。
有个但族人之妻久不怀孕,忽然神使来告:“你必生育一子,到时儿个洁净之物要禁食,不可饮酒,不可为他剃发,不可吃葡萄树所结的。因为你的孩子一出生就归神作做''离俗人 Nazirite ''<<fnote "希伯来语:纳齐,又译“''拿细耳人''”。原文的意思是“挑选出来的人”“奉献的人”“区分开来的人”。离俗人分两类,一类是自愿的,另一类是上帝指定的。不论男女,人人都可以向耶和华许下特别的誓愿做离俗人一段时期。对于那些自愿许下誓愿做离俗人的,有三大限制:不可喝酒,也不可吃葡萄树的出产;不可剃头;不可接触尸体。上帝指定的离俗人终生都维持这个身份,而且耶和华对他们有特别的规定。">>
。他会带头拯救以色列人脱离非利士人的压迫。”
妇人果然生下参孙 Samson,即强壮之意。那时以色列人正被非利土人凌迫,彼此为仇。
参孙长大后随父母到亭拿,看到葡萄园中一只少出的狮子朝他怒吼,他就把它''像羔羊一样撕裂''。后来他再路过死狮处时,看到一群蜂和蜜在它体内,就把蜜带回给父母吃。
参孙和亭拿的非利士女子结婚时,在她的住处大摆宴席。他想挫非利土人的锐气,就让他们猜谜:“''吃的从吃者出来,甜的从强者出来。''”并许诺给七日之内知道谜底的三十件里衣、三十件正衣。要是猜不出来,他们就要给他30件细麻衣,另外再加30套衣服。
非利士人猜不出来,就去威胁参孙的妻子“你去套你丈夫的话,让我们知道谜底,不然我们就放火烧死你和你父亲一家。你们邀请我们来,难道是为了抢我们的财产吗?”
于是参孙的妻子在他面前哭哭啼啼,说:“你一定是讨厌我,根本不爱我。你给我的族人出谜语,却不把谜底告诉我。”参孙说:“我连我父母都没有说,怎么能告诉你呢?”在举行宴会的这七天里,她在丈夫面前一直哭哭啼啼。因为她不断逼问参孙,参孙终于在第七天告诉了她。
第七天日落之前,那些非利土人说出了答案是“''蜜和狮子''”。
参孙知道是自己妻子告诉他们答案,他就下到亚实基伦<<fnote "这是非利士人的主要城市之一。">>,''杀了当地30个人'',剥了他们的衣服,把衣服给了猜中谜底的人。参孙怒气冲冲地回父亲家里去了。后来,参孙的妻子嫁给了他的一个伴郎。
过了些日子,到了收割小麦的时候,参孙带着一只山羊羔去看妻子,说:“我要进卧室去见我的妻子。” 他岳父却不让他进去。 他岳父说:“我想,你一定非常恨她,所以我把她嫁给你的伴郎了。她的妹妹不是比她还漂亮吗?请你娶她妹妹吧。” 参孙就说:“这次就别怪我对非利士人下狠手了。”
于是参孙去''抓了300只狐狸,把狐狸尾巴对尾巴地绑在一起,在每对狐狸尾巴中间插上火把''。他点燃火把,然后把狐狸放进非利士人的麦田里,把捆好的麦子、还没收割的麦子、葡萄园、橄榄园全都烧掉了。
非利士人问:“这是谁做的?”有人说:“是那个亭拿人的女婿参孙,因为他岳父把他的妻子嫁给了他的伴郎。”于是非利士人上去,''放火烧死了那个女子和她的父亲''。
参孙对他们说:“既然你们这样做,我不报仇就决不罢休。”参孙就一个一个地杀掉他们(砍腿断足,聚积成堆),结果死了很多人。之后,他下到以坦岩,住在洞穴里。
后来,非利士人上到犹大地区扎营,在利希四处抢掠。犹大的居民问:“你们为什么上来攻击我们呢?”他们回答:“我们上来是要抓参孙。他怎样对待我们,我们也要怎样对待他。”于是有3000个犹大居民下到以坦岩的洞穴去见参孙,对他说:“你不知道我们正受非利士人统治吗?你为什么这样做来连累我们呢?”参孙回答:“他们怎样对待我,我就怎样对待他们。”但犹大的居民说:“我们来是要把你抓起来,交给非利士人。”参孙说:“你们要向我发誓,不会动手杀我。”他们说:“我们不会杀你,只是要把你绑起来,交给非利士人。”
于是他们用两条新的绳子把参孙绑起来,带他离开岩洞。参孙来到利希,非利士人看见他就都高兴得喊叫起来。这时,''耶和华的神圣力量让参孙充满力量,他臂膀上的绳子就像被火烧过的细麻线一样,捆绑他双手的绳子都脱落了''。他看到一块还没干的''驴腮骨'',就捡起来,''用这块骨头杀了1000人''。
非利士人统治期间,参孙做了以色列的士师20年。
----
<<showfnotes>>
''力天使''(英语:Virtues,拉丁语:Virtutes),两河流域及希伯来文中原称为Malakim、Talshishism,意涵高洁、美德,因此也常被译作德天使、神德天使、美德天使及道德天使;东正教译作威德天使。是神迹的执行者,英雄与奋战不懈者的至友,被称呼为''光辉闪耀者''(Brilliant Ones)。
基督升天、夏娃产长子该隐时亦传各有二名力天使护持。
事实上在基督教的信仰里,也号称是上帝所造的''第一批战争天使、前锋部队''。属第二级第二等(九级中的第五级)。他们驻守于天与地界限间的危险地带捍卫天界,防备恶魔侵入,或在人心之中护佑人心的平衡。但此天使没有出现于《圣经》中,现时天使分类法称为Virtues实出自《神学大全》一书。此一级的天使也有其支配君主,如''米迦勒''、''拉斐尔''、''汉尼尔''、''巴比勒''及''乌西勒''。
<a href="https://www.wikiwand.com/en/Galilee">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/c/ce/Lower_Galilee_map.svg/600px-Lower_Galilee_map.svg.png"
caption:"Map of the Galilee region"
width:"300px"
align:"right"
tooltip:"">>
</a>
加利利(希伯来语: ha-Galil, 阿拉伯语:al-Jaleel; lit:circuit),或译''加里肋亚'',是以色列北部地区,天主教翻译为''加里肋亚''。1948年由以色列管理至今。目前加利利相当于以色列的北区。传统上分为上加利利、下加利利和西加利利,面积约占以色列的三分之一。北面到黑门山下,南到迦密山,东面到约旦裂谷,西到地中海海滨和以色列沿海平原。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/5/5b/Heh_as_chaos.svg/300px-Heh_as_chaos.svg.png"
caption:"长有女性乳房的大胡子男人。"
width:"300px"
align:"right"
tooltip:"Nun">>
意为“原初混沌之水”, ''水和混沌之神'',与尼罗河泛滥有关。
努恩生了赫利奥波利斯(Heliopolis)[[九柱神|九柱神 Ennead]]之首的[[阿图姆|阿图姆 Atum]]。中王国时期,努恩常被称为“众神之父”,他是哈庇、赫努姆(Henum)之父,有时也被认为是赫普里(Hepr)之父。努恩(一说是阿图姆)曾主持众神会议,委派狮子女神[[哈托尔|哈托尔 Hathor]] [[塞赫麦特|塞赫麦特 Sekhmet]]去惩罚人类,因为他们图谋反对太阳神[[拉|拉 Ra 太阳神]]。
!! 形象
作为一个概念性的事物,努恩被看作是''雌雄同体''。努恩的男性身份被描绘成一只''蛙'',或者是一个''蛙首男身'';努恩的女性身份则被描画成一条''蛇'',或者是一个''蛇首女身'',称作[[纳乌涅特 Nunut]]。努恩及纳乌涅特(苍天的化身,太阳夜间在这里行驶)是''最古老的对偶神'',是一切神的始祖。
艺术里,努恩也曾以蓄须的男性形象出现,皮肤呈蓝绿色,代表着水。一如其他[[八元神|八元神 Ogdoad]]概念,''努恩没有相应的神殿、崇拜'',然而有时神圣的湖象征着努恩,或者像在埃及的阿比多斯所示,由地下的川流象征。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/0/09/Nun_Raises_the_Sun.jpg/178px-Nun_Raises_the_Sun.jpg"
caption:"Nun, god of the waters of chaos, lifts the barque of the sun god Ra (represented by both the scarab and the sun disk) into the sky at the beginning of time."
height:"300px"
align:"left"
tooltip:"Nun, god of the waters of chaos, lifts the barque of the sun god Ra">>
努恩的形象常为高举手臂,托着一个"太阳船"的人形。这艘小船装载着八位神灵,[[凯布利|凯布利 Khepri]]站在中间,由其他七位围绕。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/d/df/Nut.svg/440px-Nut.svg.png"
caption:"天空之神"
width:""
align:"right"
>>
努特 Nut 是埃及神话中的天空之神。__相对于其他神话中常以男性形象出现的天神__,努特是一位女神。
新王国时期的墓室壁画内,天空女神努特被描绘成''母牛''形象。努特是[[舒|舒 Shu]]与[[泰芙努特|泰芙努特 Tefnut]]的女儿,[[九柱神|九柱神 Ennead]]之一。
因与自己的哥哥[[盖布|盖布 Geb]]形影不离而导致世间生物没有生存的空间,于是其父亲空气之神舒受到太阳神[[拉|拉 Ra 太阳神]]的命令,将两位恋人分开,古埃及壁画中常可看到,以四肢罩著大地形成天空的女神与平躺形成大地的盖布被两人的父亲舒以跪姿分开。
太阳神''拉''每晚日落后进入她的口中,第二天早晨又从她的''阴户''中重生。她同时也如此吞咽和再生著星辰。
努特同时也是''死亡女神'',大多数数石棺(sarcophagus)的内壁上都绘有她的形象。法老死后会进入她的身体,不久后便会重生。
在艺术作品中,努特的形象是一位被舒支撑着,以星群为身的女性;在她(星空)的对面是她的丈夫盖布(大地)。努特与盖布结婚,生[[欧西里斯|欧西里斯 Osiris]]、[[伊西斯|伊西斯 Isis]]、[[赛特 Set]]和[[奈芙蒂斯|奈芙蒂斯 Nephthys]]。
劳菲,Laufey。是北欧神话中的一名女巨人,她和[[法布提(Farbauti)|法布提 Farbauti]]生下了洛基(Loki)、 Byleist 和 Helbindi。
她是象征树的巨人,名字有''“叶”或“树”''(Foliage 或 Tree-Island)之意,当她被法布提(Farbauti,象征闪电的巨人)用闪电打到的时候生下象征著火的洛基(Loki)。
另外,由于她是[[⚡众神之父奥丁(神圣) Odin]]的养母,所以洛基和奥丁成了结拜兄弟。因为这层关系,洛基才得以加入阿萨神族。
[[🐮母牛奥德姆拉 Audhumla]]舔舐冰山舔出来的诸神之祖。
[[勃利 Buri]]的儿子,意为“生产”。他的妻子是巨人之女[[贝斯特拉(Bestla)|贝丝特拉 Bestla]],他们生下了三个儿子,就是奥丁(Odin)、威利(Vili)、菲(Ve) 所属阿萨神族。
[[瑟洛特格尔密尔 Thrudgelmir]]的儿子。
在[[伊密尔|霜巨人伊密尔 Ymir]]死的时候,从他的伤口里涌出大量的血,变成一股洪流,将他自己的一族全部淹死,只剩下''勃尔格尔密尔''和他的妻子乘舟逃走。他逃到世界的边缘,定居下来,将其地命名为''尤腾海姆(Jotunheim,巨人之国)'',又生了一大群霜巨人,时时想闯到诸神统治的世界中作恶。
矮人铁匠,[[伊瓦尔迪 Ivaldi]]的儿子。
根据 Skáldskaparmál 的说法,洛基拥有[[西芙|希芙 Sif]]的头发、[[弗雷的飞船 Skíðblaðnir|🛶斯基德普拉特尼 Skidbladnir]] 和奥丁的[[长矛 Gungnir|冈格尼尔 Gungnir]],均由伊瓦尔第之子[[德瓦林 Dvalin]]打造。
Loki对德瓦林能够创造的一切都大为夸耀。他还吹嘘其他矮人无法创造出任何美丽或有用的东西。当时在[[亚萨神国阿斯加特 Asgard]]的''勃洛克''宣称,他的兄弟[[埃特里 Eitri]]可以创造出比伊瓦尔第之子更加美丽和有用的东西。 Brokkr 用自己的头与 Loki 打赌,他的兄弟 Eitri 可以用比 Skíðblaðnir 或 Gungnir 更好的工艺制造东西。
当Eitri在极其炎热的熔炉中使用魔法时,布洛克则运转风箱,这样火就不会冷却下来,也不会变得太热而无法施展魔法。
在制作[[🐷金毛猪古林博斯帝 Gullinbursti]] 时,Loki变成牛虻飞过来咬了布洛克尔的''手''。但布洛克并没有受到干扰,继续向火中吹气。
当制作[[金指环德罗普尼尔|𓏌戒指德罗普尼尔 Draupnir]]时,牛虻再次飞来咬了布洛克尔,这次是咬在颊上,但布洛克尔忍痛继续吹气。
最后,在制作[[🔨妙尔尼尔(雷神之锤) Mjölnir]]时,牛虻这次咬了布洛克尔的眼睛。直到勃洛克血流满面,眼不能见,他不得不举手去驱走这牛虻。暂时停止扇风箱导致雷神锤没来得及做成手柄。因此,托尔必须戴上[[铁手套 Járngreipr |铁手套雅恩格利佩尔 Iarngreiper]]来应对。
<a href="https://www.wikiwand.com/en/Adam_and_Eve/Gideon_and_the_Fleece">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/f/f7/Maarten_van_Heemskerck_024.jpg/340px-Maarten_van_Heemskerck_024.jpg"
caption:""Gideon thanks God for the Miracle of the Dew", painting by Maarten van Heemskerck (Musée des Beaux-Arts de Strasbourg)"
width:"200px"
align:"right"
>>
</a>
以色列人又做耶和华眼中邪恶的事,耶和华就把他们交在[[米甸|Midian]]人手里''七年''。米甸人辖制以色列人,以色列人就在山里、洞穴里和险峻的地方建造藏身之所。
在以色列人撒种的时节,米甸人、亚玛力人和东方的人会来攻击他们。军队会在那里扎营,破坏当地的农作物,直到加沙,不给以色列人留下任何食物,也不留下牛、羊和驴。敌人带着牲口和帐篷上来,多如蝗虫。数不胜数的军兵骑着骆驼大举进犯,破坏这个地方。以色列人被米甸人害得一无所有,就向耶和华求救。
!! 应召基甸
匹夫[[基甸Gideon|基甸 Gideon]]在醡麦子时,神的天使就显现说:“大能的勇土啊,你一定能把以色列人从米甸人手里拯救出来。”基甸说:“我有何能力拯救以色列人呢?我们家在[[玛拿西|Manasseh]]支派中是最贫穷的,我在我至贫的家中又是最微不足道的。”神对他说:“我使你打米甸人如同只打一人。”
基甸要求耶和华证明神力,上帝的天使说:“把肉和无酵饼放在那块大石头上,把汤倒出来。”基甸就照着做了。耶和华的天使伸出手里的杖,杖头一碰到肉和无酵饼,就有火从石头里冒出来,把肉和无酵饼都烧掉了。基甸于是就相信了。
当晚上帝指示基甸''毁坏巴力的坛和旁边的木偶'',在给耶和华筑的坛前用木偶作柴,献牛作燔祭。人们清晨看到新坛,就找出那个对巴力不敬的人的父亲[[Joash|Joash]],说:“把你儿子交出来,一定要治死他。”基甸父亲说:“巴力如果是神,自会惩罚他。<<fnote "基甸之后也被叫做Jerubbaal,意为“巴力将会争辩”">>”
!! 羊毛试神
出征之前,基甸对上帝说:“你承诺要通过我来拯救以色列。现在我把''一团羊毛''放在脱谷场上,如果只在''羊毛上有露水,周围的地面都是干的'',我就知道你会履行承诺,通过我来拯救以色列。”结果真的是这样。
可是,基甸对上帝说:“请你不要向我发怒,让我再求一次。请让我用羊毛再试一次。这次我希望只有羊毛是干的,周围的地面却都是露水。”当天晚上,上帝就这样做了。只有羊毛是干的,周围的地面却都是露水。
当基甸聚集了数万人攻击侵略的米甸人时,神就说:“跟你的人太多,不能让米甸人认为我们人多势众,你让那些惧怕胆怯的都回去吧。”只剩一万人时,神又说:“''让他们下到水边,凡像狗一样用舌头舔水的就留下''。”最后只有三百人被选中为神的拯救以色列的队伍。
!! 进攻米甸
基甸和他们到米甸营旁,听见有人说梦见一个大麦饼滚入营中,将帐幕撞倒。有人解梦说大麦饼是基甸的剑,代表他们一定会取胜。以色列人就把米甸营地作为攻击之重,每人都拿角和内藏火把的瓶子,分作三队围在米甸营四周。三更时基甸那一队先吹角,打破手中的瓶,其他队也纷纷响应,拿火把烧营,把米甸人赶到约旦河边。
----
<<showfnotes>>
[[提尔|🛡️战神提尔 Tyr]](Tyr,或称吉乌(Ziu)),是[[奥丁|⚡众神之父奥丁(神圣) Odin]]的儿子。他的母亲,或说是诸神之后[[芙莉嘉|众神之母弗丽嘉 Frigga]],或 说是一无名的女巨人,波涛汹涌之海的人格化。提尔也是[[阿瑟加德|亚萨神国阿斯加特 Asgard]]的[[十二大神之一|Nordic Twelve Gods]],但并没 有他自己的宫殿,而是常住瓦尔哈拉。
好战的北欧人当然奉代表了勇敢与战争的提尔为至尊的神,甚至有时仅次于奥丁。北欧的勇士常常在打仗之前向提尔祈祷,像对奥丁祈祷一样。
''提尔的武器是刀'':刀在北欧武士眼中是神圣的,他们发誓常以“刀尖”的名义。有所谓“刀之舞”,勇士们举刀向天,成刀尖之山,而另一人超跃过之。又或以刀尖密接成轮形或玫瑰形,使他们中的首领(最勇敢者) 站立于上,共抬之游行。
!! Tyr的刀
提尔的刀,据说也是铸造奥丁的矛的那个侏儒[[德瓦林 Dvalin]]所铸。谁能得到这把刀,就能征服全世界——每战必胜,可是他自己的性命终亦必死于此刀。
据古代的传说,则说此刀藏于奉祀提尔的神殿中,忽然一天不见了,后来经过许多时候,出现在一个罗马人''维提里乌斯(AulusVitellius,69年4月-12月在位)''手里,因而他就毫不费力地被举为罗马皇帝。可是他不善用此刀,终于又为一日耳曼兵士所得,即以此刀割了维提里乌斯的头。那日耳曼兵士恃此刀所向无敌,老年埋刀于地下。
于是又经过了许多年,匈奴(Huns)的战士''阿提拉(Attila)''无意中得之,遂成为无敌将军。据《萨迦》所述,阿提拉最后亦厌战,在匈牙利住下,想和美貌的勃艮第公主''伊尔迪克(Ildico)''成亲;但因伊尔迪克的家族是被阿提拉所杀,所以结婚之夜,''伊尔迪克''乘阿提拉之醉,就又拿那刀割了阿提拉的头。
因为''提尔''是战争之神,所以那些白臂的[[⚔️女武神瓦尔基莉 Valkyries]]也听提尔的差遣。据说就是提尔带领着瓦尔基莉们在战场上挑选死者带回''瓦尔哈拉宫''中,准备在将来“''诸神之黄昏''”时为诸神作战。
!! 相关故事
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
daughter of the Titans [[Coeus|科俄斯 Coeus]] and [[Phoebe|福柏 Phoebe]]
阿提利(Atli),[[国王布德利 Budli]]的儿子,[[布伦希尔德 Brynhild]]的哥哥,匈奴国王
<<list-links "[tag[北欧——Symbol]]">>
北欧五国是位于北欧的''丹麦''、''芬兰''、''冰岛''、''挪威''和''瑞典''及其附属领土如属丹麦的''法罗群岛、格陵兰'',属于芬兰的''奥兰群岛''和属于挪威的''斯瓦尔巴群岛''的统称。
而由于地理位置原因,''挪威南极领地通常不被视为北欧五国的一部分''。欧洲的一些地区,__例如苏格兰的北方群岛,与北欧五国有着文化或种族上的联系,但不被认为属于北欧五国__。诺斯人占该地区人口的四分之三以上,是最大的族群,其次是''芬兰人'',在芬兰占大多数。其他种族包括格陵兰伊努伊特人、萨米人以及新移民及其后裔。
<$tmap view="Characters in Norse Mythology" editor="advanced" height="600px" ></$tmap>
{{北欧众神}}
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
! 北风神/冬季之神 God of The north wind/winter
|!父母 |[[阿斯特赖俄斯 Astraeus]] and [[黎明女神厄俄斯 Eos]] |
|!配偶 |Oreithyia |
|!标志 |马 |
|!对应罗马神 |Aquilo |
Boreas是北风的紫翼神,是四个季节性的Anemoi(风神)之一。他也是从Thrake(Thrace)寒冷的山脉席卷而来的冬之神,用他冰冷的呼吸使空气变得寒冷。在他山上的家之外,是海波波瑞亚 (Hyperborea),这是一片神话般的永春之地,没有被神的风吹过。
Boreas在寻找妻子时带走了雅典国王埃瑞克修斯(Erekhtheus)的女儿 Oreithyia(“山风”),她正在河边的草地上和她的同伴玩耍。他们的孩子包括雪之女神 Khione (Chione) 和一对有翅膀的英雄 Boreades。
在希腊花瓶画中,Boreas 被描绘成一个大步向前、有翅膀的神。有时他的头发和胡须都沾满了冰。在马赛克艺术中,他经常表现为一阵风吹过头,浮肿的脸颊在云层中升起。这种图像延续到后古典艺术中,并且经常出现在旧地图中。 Boreas 的名字只是古希腊语中“北风”的意思,这可能反过来又源自希腊语动词 boraô,意思是“吞噬”。
在新约中,十二使徒的名称记载与顺序,在各福音书中有些微出入。''十二使徒的身世及事迹,除了几位主要人物,如西门彼得,多数在新约中并没有记载很多''。在新约中,提及各使徒时,常以''三位一组、或四位一组''的方式来提及,如彼得、雅各、约翰。中文日常用语习将使徒简称“圣某某”,来源于西语St.头衔。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>nsort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
在北欧宇宙论中,华纳海姆(Vanaheimr)(古挪威语意为“华纳神族的家园”)是一个与[[华纳神族 Vanir]]相关的地方,华纳神族是一群与''生育、智慧和预见未来能力''相关的神灵。
{{vanir.mp3}}
华纳神族(古北欧语:Vanir [ˈwɑniʐ])是北欧神话中的与丰饶、智慧,和预知未来相关的神族。北欧神话中有两支神族,另一支为[[亚萨神族 Aesir]]。
华纳神族的家园是华纳海姆。华纳神族在亚萨神族华纳神族之战后加入了亚萨神族,因此有时候华纳神族会被当作亚萨神族。
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
! 和谐的不朽女神
|对应罗马神 |Concordia |
|希腊神中的对立神 |[[厄里斯 Eris|🤬不和女神厄里斯 Eris]] |
根据一种说法,她是[[阿瑞斯|🛡️战神阿瑞斯 Ares]]和阿佛洛狄忒的女儿。 另一种说法是,哈摩尼亚来自萨莫色雷斯,是宙斯和伊莱克特拉(Electra)的女儿,她的兄弟伊阿西翁是岛上庆祝的神秘仪式的创始人。
! 南风神
|!父母 |[[阿斯特赖俄斯 Astraeus]] and [[黎明女神厄俄斯 Eos]]|
|!对应罗马神 |Auster |
诺托斯(Notus)是南风之神,是四个定向的风神 Anemoi(Wind-Gods)之一。他是夏末秋初潮湿的风暴带来的风。诺托斯居住在神话地理学中最南端的王国 Aithiopia(埃塞俄比亚)。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/0/00/Ptah_standing.svg/440px-Ptah_standing.svg.png"
caption:"工匠与艺术家的保护者"
width:""
align:"right"
>>
卜塔(Ptah)是古埃及''孟斐斯地区''所信仰的''造物神'',而后演变成''工匠与艺术家的保护者'',形象为一''木乃伊'',他的妻子是[[塞赫麦特 Sekhmet]]。
卜塔放于神庙内殿的基座上。头部被带紧裹,身体被木乃伊包布绑缚。只有双手未被束缚,握持著象征生命([[安卡|☥安赫 The Ankh]]),稳定(节德)与全能的复合权杖。有时,他会以一个畸形的矮子形象展现,手脚弯曲,脑袋硕大,除了一束童发之外全部剃光。
卜塔是''工匠和艺术家的保护者'',他保护著工匠为人们建造东西,也保护艺术家能正常工作,而他自己也是艺术的发明者,他发明许多新艺术,为艺术家们所接受。
同时他亦是''设计家,金属冶炼家和建筑家'',为人们设计新的楼房,家具,建筑了许多精巧的建筑物。还指导建筑者和工匠们的工作。卜塔的神圣动物为公牛。据说,他曾以天火之形令母牛怀孕,使自己再度重生,外形为头黑色公牛,前额有一白色三角型,背上有只展翅的秃鹰,右腹有一弯新月,舌头有圣甲虫的图像,尾巴上的牛毛为双层。人们都称它为“圣牛阿匹斯”。
卜塔亦''发明火'',如同希腊神话的[[普罗米修斯|🪔普罗米修斯 Prometheus]]受人尊敬。
! 混沌
卡俄斯(希臘語:Χάος,英語:Chaos,字面意思是“''裂缝''”或“''打哈欠''”),即“混沌”的音譯,是希腊神话中的概念,没有形体,也没有明确的性别,它是一切空间及概念的开始,最早由赫西俄德在《神谱》中提到。
卡俄斯的产物是希腊神话中的第一代神祇,包括:[[盖亚|🌍大地女神盖亚 Gaea]](大地)、塔耳塔罗斯(大地底层)、厄洛斯(欲望)、倪克斯(黑夜)、厄瑞玻斯(黑暗)。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>nsort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
女儿/一个宁芙nymph/阿尔忒弥斯的追随者之一
根据一些作家的说法,宙斯将自己变成了阿尔忒弥斯的形象,以引诱卡利斯托并勾引她。
她怀孕了,当这件事最终被发现时,她被阿尔忒弥斯的团队开除,之后愤怒的宙斯的妻子赫拉将她变成了一头熊。后来,就在她即将被儿子打猎时被杀的时候,她以大熊座(Ursa Major)(“大熊”)的身份出现在群星之中。通过宙斯的儿子阿卡斯(Arcas),她是阿卡迪亚人的熊母。
|!父母 |[[🌊大洋之神俄刻阿诺斯 Oceanus]] and [[河神和海洋之母忒堤斯 Tethys]]|
|!配偶 |[[🧌克律萨俄耳 Chrysaor]], Neilus, [[🔱海神波塞冬 Poseidon]], Manes|
|!标志 ||
|!对应罗马神 ||
''Callirrhoe'', ''Callirhoe'', ''Callirrhoë'', or occasionally ''Kallirroi'' (''/kəˈlɪroʊiː/''; Ancient Greek: Καλλιρρόη, romanized: Kallirróē, lit. 'beautiful flow')
one of the Oceanids, daughters of the Titans: [[Oceanus|🌊大洋之神俄刻阿诺斯 Oceanus]] and [[Tethys|河神和海洋之母忒堤斯 Tethys]].
<<<
大洋女儿与顽强不屈的克律萨俄耳
相爱结合,在金色阿佛洛狄特的安排下,
卡利若厄生下一个儿子,在人类中最强大:
革律俄涅,但大力士赫拉克勒斯杀了他,
就在四面环海的厄律提厄,蹒跚的牛群边。
<<<神谱
<<<
圣洁的神女卡吕普索和奥德修斯相爱结合,
生下瑙西托俄斯和瑙西诺俄斯。
<<<神谱
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a3/Birth_and_Throne_cartouches_of_pharaoh_Seti_I%2C_from_KV17_at_the_Valley_of_the_Kings%2C_Egypt._Neues_Museum.jpg/340px-Birth_and_Throne_cartouches_of_pharaoh_Seti_I%2C_from_KV17_at_the_Valley_of_the_Kings%2C_Egypt._Neues_Museum.jpg"
caption:"Cartouche"
width:""
align:"right"
>>
卡尔图什是古埃及的象形文字名牌。卡尔图什与太阳有着明显的联系和象征意义,它象征着在今生和来世中''对抗邪灵''的保护。这个符号最初是圆形的,后来也呈椭圆形,中间带有一条水平线,有时被用作卡尔图什。这种用法旨在代表神圣的保护。
是底比斯(Thebes)的创始人和第一位国王,卡德摩斯是第一个希腊英雄,与珀尔修斯和贝勒罗丰一起,是赫拉克勒斯时代之前最伟大的英雄和怪物杀手。
在他的妹妹欧罗巴被宙斯从腓尼基海岸绑架后,他最初被他的王室父母派去寻找并护送她回到提尔。 在早期的描述中,卡德摩斯和欧罗巴是菲尼克斯(Phoenix)的孩子。
卡德摩斯建立了希腊城市底比斯,该城的卫城最初被称为卡德梅亚(Cadmeia)以纪念他。
<<<
厄俄斯为提托诺斯生下带铜盔的门农
那埃提奥匹亚人的王,和王子厄玛提翁。
她还为刻法罗斯生下一个光荣的儿子,
强悍的普法厄同,虽是凡人却有如神样。
他还处在令人钦羡的如花年华,
还是纯真少年,爱笑的阿佛洛狄特
捉住他,让他住在她的神殿里,
做夜里的守卫,神圣的精灵。
<<<神谱
她是两部希腊悲剧的主角,索福克勒斯的《伊莱克特拉》和欧里庇得斯的《伊莱克特拉》。
她也是埃斯库罗斯、阿尔菲利、伏尔泰、霍夫曼斯塔尔和尤金-奥尼尔戏剧中的核心人物。在埃斯库罗斯《奥瑞斯提亚》三部曲的第二部戏剧《持酒人》中,她的特点可以说是一个复仇的灵魂,''因为她和她的兄弟一起策划攻击,杀死他们的母亲[[克莱特涅斯特拉|克吕泰涅斯特拉 Clytemnestra]]''。
''在心理学中,伊莱克特拉情结(Electra complex )<<footnote "心理学" "在新弗洛伊德心理学中,卡尔-荣格在其《精神分析理论》中提出的伊莱克特拉情结是一个女孩与母亲争夺其父亲的性心理竞争。在她的性心理发展过程中,这种情结是女孩的阳具阶段;男孩的类似经历是俄狄浦斯情结。厄勒克特拉情结发生在五个性心理发展阶段中的第三个阶段--阳具阶段(3-6岁)。(i) 口腔阶段,(ii) 肛门阶段,(iii) 阴茎阶段,(iv) 潜伏阶段,和(v) 生殖器阶段,其中性欲快感的来源是在婴儿身体的不同性欲区。">>以她的名字命名。''
!! 谋杀阿伽门农
当她的父亲阿伽门农国王从特洛伊战争中归来时,伊莱克特拉不在迈锡尼。当他回来时,他带来了他的战利品,特洛伊公主卡桑德拉(Cassandra),她已经为他生了双胞胎。
他们抵达后,阿伽门农和卡桑德拉被克吕泰涅斯特拉本人或她的情人埃吉斯托斯(Aegisthus)杀害,或两者兼而有之。克吕泰涅斯特拉对她的丈夫怀恨在心,因为她同意将他们的大女儿伊菲革涅亚Iphigenia献给阿尔忒弥斯Artemis,以便他可以派遣他的船只参加特洛伊战争。在这个故事的某些版本中,伊菲革涅亚Iphigenia在最后一刻被女神所救。
八年后,Electra和她的兄弟俄瑞斯忒斯Orestes同时从雅典返回了家。 (奥德赛,iii. 306;X. 542)。根据品达 (Pythia, xi. 25) 的说法,俄瑞斯忒斯被他的老保姆或伊莱克特拉Electra救了,并被带到帕纳索斯山上的法诺特,在那里国王 Strophius 负责照顾他。
俄瑞斯忒斯Orestes 20 岁时,德尔斐Oracle of Delphi 神谕命令他回家为父亲报仇。
!! 谋杀克吕泰涅斯特拉
根据埃斯库罗斯的说法,俄瑞斯忒斯在阿伽门农墓前认出了伊莱克特拉的脸,两人都去那里为死者举行了仪式,他们计划了俄瑞斯忒斯如何完成他的复仇。
俄瑞斯忒斯和他的朋友皮拉德斯 (Pylades),即福西斯 (Phocis) 和阿纳西比亚 (Anaxibia) 国王 Strophius 的儿子,杀死了克吕泰涅斯特拉 (Clytemnestra) 和埃吉斯托斯 (Aegisthus)(在某些说法中,伊莱克特拉 (Electra) 帮助了他们)。
克吕泰涅斯特拉死前诅咒俄瑞斯忒斯。 [[ Furies |👩👧👧复仇三女神厄里倪厄斯 Erinyes/Furies]]的职责是惩罚任何违反家庭虔诚关系的行为,他们用他们的折磨来完成这个诅咒。他们追捕俄瑞斯忒斯,敦促他结束生命。 Electra 并没有受到 Theta 的追捕。
在//Iphigeneia in Tauris//,Euripides 讲述的故事有些不同。在他的版本中,奥瑞斯忒斯被[[ Furies |👩👧👧复仇三女神厄里倪厄斯 Erinyes/Furies]]带领到黑海的陶里斯,他的妹妹伊菲革涅亚Iphigenia 被关押在那里。当俄瑞斯忒斯和皮拉德斯被带到伊菲革涅亚准备献祭给[[阿尔忒弥斯|🌖月神阿尔忒弥斯 Artemis]]时,两人相遇了。伊菲革涅亚、俄瑞斯忒斯和皮拉德斯逃离了陶里斯。由于家人团聚而安抚了愤怒的人,减轻了对他们的迫害。伊莱克特拉随后与皮拉德斯Pylades结婚。
|!父母 |[[Oceanus|🌊大洋之神俄刻阿诺斯 Oceanus]] and [[Tethys|河神和海洋之母忒堤斯 Tethys]] |
''Electra'' (''/ɪˈlɛktrə/''; Ancient Greek: Ἠλέκτρα Ēlektra "amber") was one of the 3,000 Oceanids, water-nymph daughters of the Titans [[Oceanus|🌊大洋之神俄刻阿诺斯 Oceanus]] and his sister-spouse [[Tethys|河神和海洋之母忒堤斯 Tethys]].
<<<
她还生下一个难以制伏的怪物,
既不像有死的人也不像永生的神,
在洞穴深处:神圣无情的[[厄客德娜|🐍厄客德娜 Echidna]],
一半是娇颜而炯目的少女,
一半是怪诞的蛇,庞大而可怕,
斑驳多变,吞食生肉,住在神圣大地的深处。
在那里,她有一个住穴在岩洞中,
远离永生的神们和有死的凡人。
神们分配给她这个华美的栖处,
可怕的厄客德娜住在阿里摩人的地下国度,
这个自然仙子不知死亡也永不衰老。
传说可怕恣肆无法无天的[[提丰|🌪️提丰 Typhon]]
爱上这炯目的少女,与她做爱,
她受孕生下无所畏惧的后代
最先是[[俄耳托斯|🐶双头犬 Orthrus]],[[革律俄涅|革律翁 Geryon]]的牧犬。
接着是难以制伏、不可名状的怪物,
食生肉的[[刻尔柏若斯|🐶刻耳柏洛斯/地狱三头犬 Cerberus]]、声如铜钟的冥府之犬,
长有''五十个脑袋'',强大而凶残。
<<<神谱
---
<<showfnotes>>
在希腊神话中,埃帕弗斯(/ˈɛpəfəs/;古希腊语:Ἔπᾰφος),也叫阿庇斯Api或穆南提斯Munantius,是埃及的一位国王。
埃帕弗斯是宙斯和伊欧Io的儿子,因此也是 Ceroessa 的弟弟。
普罗米修斯的兄弟,和普罗米修斯一起被称为一对"作为人类的代表"的泰坦(Kerenyi 1951, p 207)。
{{epimetheus.mp3}}
普罗米修斯的特点是巧妙和聪明,而埃比米修斯则被描述为愚蠢。
宙斯为了惩罚人类造出了潘多拉,并送给厄庇墨透斯。
|!父母 |[[🌌黑夜女神尼克斯 Nyx]] |
|!配偶 ||
摩罗斯(字面意思为“Doom”或“注定要死”)希腊神话中司命运的代蒙(精灵)。他的另一个名字是俄勒特罗斯(意为“毁灭,死亡”)。
摩罗斯的名字实际上是命运女神摩伊赖的名字的阳性形式。与摩伊赖一样,摩罗斯是对命运的拟人化,是命中注定的劫数的化身;他将人赶向生命的终点,甚至连宙斯都不能违反他的意志。
《历代志》是《希伯来圣经》,即犹太教《塔纳赫》和基督教《旧约圣经》中的一部分。天主教圣经则将此书分为《编年纪上》以及《编年纪下》。
!! 主要内容
本书的内容和文字有很多与[[撒母耳记|撒母耳 Samuel]]和[[列王纪|列王纪 Books of Kings 580 BC]]''相同'';
历代志特别是着重''数字的记录'',而书内的数字往往比平行的撒母耳记和列王纪的来得大;
本书告诉新一代的犹太人只有[[大卫|👑大卫王 David]]的子孙才是“真命天子”;只有大卫所属的支派——[[犹大|Tribe of Judah]](即归国后的犹太人)才是“真以色列”。北部以色列王国的十支派因背叛大卫家而受惩罚,以被撇弃,就好像好些南部犹大王国的君王,因为没有好好地忠心事奉耶和华,最终失败。真神是赏善罚恶的神,现在只要回国的百姓真心跟从耶和华,就必能长久居住在祂带领他们归回应许地,否则必会再遭受刑罚。
共12卷。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
the last of the judges in [[士师记 Book of Judges c.1100 BC]]
!! 相关事迹
[[力士参孙]]
! 开始、大门、过渡、时间、二元性、门口、通道和结束之神
|!父母 |元神 or[[Terra|🌍大地女神盖亚 Gaea]] and [[Caelus|天空之神乌拉诺斯 Uranus]] |
|!标志 |two faces |
|!对应伊特鲁里亚(Etruscan)神 |Culsans |
[img[https://upload.wikimedia.org/wikipedia/commons/a/a9/Janus1.JPG]]
//Statue representing Janus Bifrons in the Vatican Museums//
(Matthew 26:1)
基督徒相信耶稣的苦难是在希伯来圣经中预言,如《诗篇》第22篇,《以赛亚书》中的第53章。
耶稣此前很多次预言了自己的死亡。
<<card
text:"
到了晚上,耶稣跟个门徒一起用餐。 他们吃的时候,耶稣说:“我实在告诉你们,你们有一个人会出卖我。”
<br><br>
门徒就非常忧愁,一个一个地问他说:“主啊,不是我吧?”
<br><br>
他回答说:“''跟我一起把手伸进同一个碗里的,就是出卖我的人。'' 正如圣经说的,人子固然要离去,可是出卖人子的人有祸了!那个人没有出生倒好。”
<br><br>
打算出卖耶稣的''犹大''就说:“老师(拉比),不是我吧?”耶稣对他说:“你自己心里清楚(你自己说了)。”
"
footer:"Matthew 26:20"
>>
<a href="https://www.wikiwand.com/en/Kiss_of_Judas">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/Giotto_-_Scrovegni_-_-31-_-_Kiss_of_Judas.jpg/1597px-Giotto_-_Scrovegni_-_-31-_-_Kiss_of_Judas.jpg"
caption:"Kiss of Judas (1304–06), fresco by [[Giotto|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E4%B9%94%E6%89%98%20Giotto%20c.%201267%E2%80%931337:%5B%5B%E4%B9%94%E6%89%98%20Giotto%20c.%201267%E2%80%931337%5D%5D]], Scrovegni Chapel, Padua, Italy"
width:"400px"
align:"right"
tooltip:"">>
</a>
耶稣在与其十二使徒吃最后的晚餐后,在''客西马尼园''被逮捕。[[✝️加略人犹大 Judas Iscariot]]和士兵说“我吻谁,谁就是你们要的人。你们要拘捕他。”然后他走上去亲吻了耶稣。
并分别在前任大祭司''亚那''、大祭司''该亚法''的犹太公会,罗马总督''本丢·彼拉多''的总督宫殿、统治加利利和比利亚的分封王''希律·安提帕斯''前受审,被移送钉十字架。
耶稣站在总督面前,''总督问他:“你是犹太人的王吗?”耶稣回答:“对,我是。”''
耶稣被罗马士兵鞭打,嘲笑他“犹太人的王啊,万岁!”,被迫穿著鲜红色的长袍,与戴上荆棘编的冠冕,被罗马士兵殴打和吐口水,然后换回耶稣当时自己的衣服,走向被钉十字架的地方。古利奈人''西门''经过,被迫背着耶稣的十字架。
到了[[各各他 Mount Golgotha]],士兵向耶稣提供了混合苦胆的酒(有止痛/镇静作用),耶稣不肯喝。接着他与两名被定罪的盗贼一起被钉在十字架上。耶稣被钉在中间的十字架上。
根据马可福音,耶稣在十字架上忍受了6个小时的煎熬,约由上午9时直到他下午3点左右去世。据圣经记录,总督彼拉多让士兵加在他的头上方以拉丁文、希腊文、希伯来文三种语言的标志祂为“''拿撒勒人耶稣,犹太人的王''”。士兵瓜分他的长袍,为祂无缝的内衣拈阄。而在场众多不相信耶稣的犹太大祭司长老和文士都嘲讽他,声称耶稣若自己从十字架上下来,就相信他是从神来的,而强盗也嘲讽他。
<<card
text:"
从中午点起,黑暗笼罩整个大地,直到下午。 大约下午,耶稣大声呼喊说:“''以利,以利,拉马·萨巴克塔尼?''”意思就是:“我的上帝,我的上帝,你为什么离弃我?” 有些站在那里的人听见了,就说:“这个人在呼唤以利亚呢!” 有一个人立刻跑去拿海绵浸透酸酒,绑在秆子上,递给他喝。 其他人却说:“由他吧!让我们看看以利亚会不会来救他。” 耶稣再次大声喊叫,就断气了。
"
footer:"Matthew 27:45"
>>
<<card
text:"
那里还有很多妇女从远处看着,她们是从加利利跟着耶稣来服侍他的。当中有抹大拉人[[抹大拉的马利亚 Mary Magdalene]],有雅各和约西的母亲''马利亚'',还有西庇太儿子的母亲。
"
footer:"Matthew 27:55"
>>
四福音书记载了不同的耶稣在十字架上的遗言。在对观福音中记载著耶稣受难伴随著各种超自然事件,包括黑暗的大地,殿里的幔子、从上到下裂为两半,地震,和圣徒的复活。他的身体从十字架上被亚利马太的''约瑟''移除,由''尼哥底母''协助,埋在一块石头凿成的坟墓。据福音书,耶稣死后两天(“第三天”)也是犹太律法的每七日的头一日复活并多次向门徒和其它捡选的人显现,又教导他们,然后在约定的山上当着门徒面升天。
可能是黄金的化身,无法被杀死。 在[[两个神族的战争]]成为两族混战的导火线。
[[格莉希尔德 Grimhild]]和[[尼伯龙格国王吉乌基 Giuke]]的女儿,[[希格尔德 Siegfried]]的妻子
---
''古德露恩''还是不得安慰。她恨她的兄弟们夺去了她的爱人,不愿再住在故乡,去投奔[[希格尔德|希格尔德 Siegfried]]的继父[[丹麦国王埃尔弗 Alf]]。他自从[[希奥尔迪丝|希奥尔迪丝 Hiordis]]死后,已另娶哈康(Hakon)王的女儿[[索拉(Thora)|索拉 Thora]]为妻。古德露恩和索拉成了好友,她消磨了好几年光阴,来把''希格尔德''的功绩织在挂毯上,另外就是抚养小女儿[[斯瓦希尔德(Swanhild)|斯瓦希尔德 Swanhild]],她那对闪闪发光的小眼睛常使古德露恩想起了她那死去的丈夫。
那时候,[[布伦希尔德|布伦希尔德 Brynhild]]的哥哥[[阿提利(Atli)|匈奴国王阿提利 Atli]]正为匈奴国君,他派人到[[古恩纳尔|古恩纳尔 Gunnar]]处,问其将以何平息他的妹妹自杀之怨恨。古恩纳尔的回答是,愿以''古德露恩''为阿提利之妻,只等古德露恩过了服丧的期限。
过了若干时候,阿提利又来要求履行承诺了。于是古恩纳尔兄弟等人找到了古德露恩,用了魔法药水的帮助,居然怂恿她离开了小小的''斯瓦希尔德'',去做阿提利的妻子。
然而''古德露恩''总是对阿提利感到不满;他的恶劣品行使她不悦。虽然生了两个儿子,[[埃尔普(Erp)|埃尔普 Erp]]和[[埃特尔(Eitel)|埃特尔 Eitel]],但也不能消灭她怀念''斯瓦希尔德''的心情。她经常怀念过去,讲到过去的事,可万万想不到她所说的,尼伯龙格一族的富有,竟引起了''阿提利''的贪心,他秘密地计划着如何夺取这富有的国度。
阿提利终于派了他的手下克纳弗鲁德(Knefrud)去邀请统治着尼伯龙格的兄弟们到他国内来游玩,意要等他们来到时就杀了他们。''古德露恩''看破了这阴谋,也让使者将用鲁纳文字写的信和聚金指环捎给她的哥哥们;她用狼毛缠在指环上,提醒有危险。不料使者在路上将鲁纳文字改动了一部分,以致适成相反的意思;因而[[古恩纳尔|古恩纳尔 Gunnar]]就决定接受阿提利的邀请,虽然[[胡格尼|胡格尼 Hogni]]和[[格莉希尔德|格莉希尔德 Grimhild]]都以为不可去。而在动身之前,''古恩纳尔''又先和''胡格尼''来到莱茵河边,将那尼伯龙格家族的传国宝藏埋在河底一个深洞内,并告诫胡格尼,誓勿泄露。
于是''古恩纳尔''和''胡格尼''就带着阿提利的来使克纳弗鲁德上路去了。他们经过了许多冒险,然后入了匈奴的国境,立于阿提利的宫内。那时,他们才知落了圈套了,便先杀了克纳弗鲁德,准备决一死战。
''古德露恩''也来了。看见必须一战,她也拿了兵器,帮助她的哥哥。当匈奴人第一次冲杀上来的时候,''古恩纳尔''便弹他的琴,鼓励他自己一方的人的勇气。在第二次搏杀时,古恩纳尔也舍了琴,加入战斗。他们三次击退了敌人。后来其余的人都死了,只剩古恩纳尔和胡格尼二人,他们伤重力乏,终为敌人所擒。
阿提利亲自审问古恩纳尔兄弟二人,要知道尼伯龙格一族的宝藏藏在何处。两兄弟都是一句话也不说。直到后来受了许多毒刑,古恩纳尔乃说他曾经发过誓,除非他的兄弟胡格尼已死,否则他决不说出那秘密;而且除非他看见胡格尼的心,否则也决不会相信他已死。
为䋾心所驱,阿提利乃命杀胡格尼而挖他的心来。可是阿提利的手下不敢杀胡格尼那样的英雄,便私自杀了一个怯弱的下人''希亚利(Hialli)'',取他的心来顶替。但是古恩纳尔看见这颗怯弱的心在盘子里只是发抖,他就大骂,说胡格尼是勇者,他的心不会如此发抖。于是阿提利第二次下命令,真的胡格尼的心就端上来了。古恩纳尔看见那铁一般硬的心,知道是真的了,就对阿提利说,现在胡格尼已经死了,世上知道这秘密的只剩他一人,所以这秘密就是无论如何都不会泄露的了。
怒极了的阿提利于是吩咐将''古恩纳尔''的两手捆缚,投入一个毒蛇洞中。他们把古恩纳尔的琴也投了下去,古恩纳尔就用脚趾弹琴,引得那些毒蛇都入睡了。只有一条蛇,据说是''阿提利''的母亲的化身,却不入睡,把古恩纳尔咬死了。
阿提利大张筵席庆贺他的胜利。他命令古德露恩在席前侍侯,却不知道古德露恩已经杀了他的二子,将他们的心煮熟作为肴膳,把血混在酒里,又将他们的颅骨巧妙地做成酒器。
等阿提利和他的宾客都喝醉时,古德露恩就放火烧宫,对逃走无门的阿提利宣布了她的报复,之后也投入火中死了。另一传说则谓古德露恩用希格尔德的宝剑杀死了阿提利,将他的尸身投入海中,而后自己也蹈海而死。而第三种传说就差得多,说是古德露恩蹈海后并未死,却被海潮冲到了''约纳库尔(Jonakur)国王''的境内,被''约纳库尔''娶为妻子,生二子,而且又得和她的女儿[[斯瓦希尔德|斯瓦希尔德 Swanhild]]再度团圆。斯瓦希尔德已是很美丽的姑娘了。
[[格莉希尔德 Grimhild]]和[[尼伯龙格国王吉乌基 Giuke]]的儿子
[[格莉希尔德 Grimhild]]和[[尼伯龙格国王吉乌基 Giuke]]的儿子
''各各他山'',天主教典籍译为加尔瓦略山(译自拉丁文)或哥耳哥达(译自古希腊文 Γολγοθᾶς,可能转译自当时的阿拉美语),意译为「''骷髅头''」。
此地乃是罗马帝国统治以色列时期耶路撒冷城郊之山,据《圣经·新约全书》中的四福音书(如马太福音27:33、约翰福音19:17)记载,[[🧔🏻♀️耶稣 Jesus c.4 BC-33]]基督曾被钉在各各他山上的十字架。多年来,「各各他山」这个名称和十字架,一直是基督受难的标志。
!! 定名
1876 年,英国的哥顿将军,在大马士革城门外东北方约两三百公尺处,发现有一个名叫加略山 ''Calvary'' 的小山,远看似一人头骷髅,而且在它的旁边的花园中,有一座在发现时就是空着的坟墓,他就宣称这才是真正各各他的所在地,由于其他条件也比较合于经上之记载,因此比较获得基督教改革宗信徒之认同。1892 年,英国创立了「花园冢协会 Garden Tomb Association」,集资将地买下,把小山和空墓附近之地,修建成了一座美丽的花园,称之为花园墓 Garden Tomb,并负责维护管理,这是一处环境非常幽静,更宜于沉思和祈祷的地方。在主日并有英语的崇拜。
在阿拉伯语中,[[加百列|😇加百列 Gabriel(God is my strength)]]被称为''吉卜利勒''(جبريل;جبرائيل);穆斯林认为他向穆罕默德启示《古兰经》。(你说:「凡仇视吉卜利里的,都是因为他奉真主的命令把启示降在你的心上,以证实古经,引导世人,并向信士们报喜。」(《古兰经》2:97)
吉卜利勒的''主要职责是传达真主的讯息''。与基督教一样,吉卜利勒是向麦尔彦(即玛利亚)传达她将会诞下先知以撒(耶稣)的使者。《古兰经》记载如下:
「你应当在这部经典里提及麦尔彦,当日她离开了家属而到东边一个地方。她用一个帷幕遮蔽著,不让人们看见她。我使我的精神到她面前,他就对她显现成一个身材匀称的人。她说:『我的确求庇于至仁主,免遭你的侵犯,如果你是敬畏的。』他说:『我只是你的主的使者,我来给你一个纯洁的儿子。』她说:『任何人没有接触过我,我又不是失节的,我怎么会有儿子呢?』他说:『事实是像这样的,你的主说:这对于我是容易的。我要以他为世人的迹象,为从我发出的恩惠,这是已经判决的事情。』」(《古兰经》19:16-21)
在伊斯兰教的神迹,先知穆罕默德在夜行登霄中被吉卜利勒带领并骑乘神兽布拉克,到了古都斯(耶路撒冷),之后和吉卜利勒同上天上,先知与其他一众先知见面并在最后接受安拉的指示。
吉尔林,Gilling。在北欧神话中的巨人,是巨人苏图恩(Suttung)的父亲(''一说为兄长'')。神话故事中,吉尔林和他的妻子被侏儒法亚拉(Fjalar)和戈拉(Galar)给谋杀了。
侏儒们邀请吉尔林和他的妻子来拜访他们,而之后他们将吉尔林困在小船上,并弄破小船让巨人淹死。然后由屋顶高处往吉尔林妻子头上砸下一颗磨石,也杀死了她。
吉尔林的儿子[[苏图恩 Suttungr]]决定报仇,当他抓到这两个凶手时,由于他们早先曾经谋杀人类智者''[[🍯智慧体克瓦希尔 Kvasir]]'',并用克瓦希尔的血酿造了智慧的酒,他们承诺将这种酒送给苏图恩而逃过一劫。
“Fenced-in”,[[丰饶之神弗雷 Freyr]]的妻子,[[🌊荒海之神埃吉尔 Aegir]](或称Gymir)的女儿
是阿卡迪亚的一位国王,在神话中最流行的版本中,他通过为他提供吕卡翁自己的儿子 Nyctimus 的烤肉来测试宙斯的无所不知,以便看看宙斯是否真的无所不知。
巴拉姆,是所罗门七十二柱魔神中排第51位的魔神,别名“巴拉卡”(Balan)。可''通晓古今与预言未来''。有三个头,骑着熊。相传许多书中都有提到祂原本是主天使堕天之后变成的恶魔。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/9c/Balan_%28Demon%29.png/440px-Balan_%28Demon%29.png">
<div class="desc">《地狱辞典》中的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/51-Balam_seal.png/440px-51-Balam_seal.png">
<div class="desc">Seal of Balam</div>
</div>
</div>
''巴耶力''(或Ba'al 或 Baal)是《所罗门之钥》(The Lesser Key of Solomon)和《伪单子大法》(Pseudomonarchia Daemonum)等恶魔书中描述的恶魔(在这些书中,他是第一个被提到的恶魔),在《无间词典》(Dictionnaire Infernal)中也有描述。
他被描述为一个声音嘶哑的国王,拥有使人''隐形''的力量,统治着六十六个恶魔军团。《所罗门的小钥匙》描述他以''猫、蟾蜍、人''或这几种形态的组合或其他 "不同的形状 "出现,而《伪单体大恶魔》和《无间词典》则说他同时以''猫、蟾蜍和人的头''出现。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/44/Bael.jpg/440px-Bael.jpg">
<div class="desc">Dictionnaire Infernal illustration of Bael</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/ae/01-Bael_seal.png/440px-01-Bael_seal.png">
<div class="desc">The sigil of Bael</div>
</div>
</div>
彼列,也拼为Beliar、Berial和Blil,亦称贝利亚尔,是所罗门七十二柱魔神中排第68位的魔神,位阶为王,统帅50个军团。
是''驾驶烈火战车的美丽天使'',声音动听,他诞生在米迦勒等其他天使之前。''专职分辨真伪,辨明敌友''。
《魔法书》中的彼列是一位貌美却堕落的天使,乘坐著火战车,用诡辩的言语挑拨亲人间的关系。在地狱担任外交使节的任务。相传许多书中都有提到祂原本是力天使堕天之后变成的恶魔。
在《地狱辞典》里说曾是古代腓尼基的西顿人崇拜的神。由此可见作为异教神话中的神祇的彼列拥有极高的地位,但当异教神话中的神祇都被当成魔鬼时,彼列被称为“卑鄙者”、“无赖”和“无价值”也并不奇怪。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/68-Belial_seal.png/440px-68-Belial_seal.png">
<div class="desc">Seal of Belial</div>
</div>
</div>
普尔森(Purson),所罗门王72柱魔神中排第20位的魔神。位阶为王,统帅22个军团;外表是''骑著强壮巨熊,手上挥舞著毒蛇,体格壮硕的狮面男人''。
他能''隐藏或是显现那些被隐蔽的宝藏'';他能看见任何时间所发生的一切,并能为追随者带来强大的仆从;''他能为万物带来真正的答案,但却会引诱寻知者询问那些他们无法承担的问题。''
相传许多书中都有提到祂原本是[[座天使|座天使 Ophanim(Thrones)]]或[[力天使|力天使 Virtues]]堕天之后变成的恶魔。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/0a/Pruflas.jpg/440px-Pruflas.jpg">
<div class="《地狱辞典》中普尔森的画像"></div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/1d/20-Purson_seal.png/440px-20-Purson_seal.png">
<div class="desc">Seal of Purson</div>
</div>
</div>
''派蒙'',别名''拜耶蒙 Bayemon'',是所罗门王72柱魔神中排第9位的魔神,位阶为君王。
知道一切的秘密。统帅200个军团,是地狱西方''实力最强''的魔王。
''拥有著漂亮的脸孔'',说话的声音清晰、且雄亮,头戴著代表王的身份,镶满著闪耀宝石的荣光王冠。会以骑著骆驼的样貌出现在召唤术者的面前,而且身旁有许多下级恶魔随侍并吹响号角。
有著能在一瞬间传授召唤者''获得名誉、艺术、科学知识''的能力。能''一瞬间授予人类科学、艺术、秘法''。只要术者所提及的一切质问,他都会确实地去回答,是在恶魔帝王中,最忠实的一位。相传祂之前是[[主天使|主天使/权天使 Dominions(Kyriotetes)]]、[[座天使|座天使 Ophanim(Thrones)]]的第16位或是[[智天使|智天使 Cherubim]],曾率领天使和[[能天使|能天使 Powers(Exusiai)]]。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/8/84/Paimon.jpg">
<div class="desc">Paimon as depicted in Jacques Collin de Plancy's Dictionnaire Infernal, 1863 edition.</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/2/2f/Paimon_Seal.jpg">
<div class="desc">Seal of Paimon</div>
</div>
</div>
''阿斯摩太''(英文:''Asmodeus'',希伯来文:אשמדאי,Ashmedai),亦译作''阿斯莫德'',是出现在次经《多俾亚传》及犹太经典《塔木德》中的恶魔,在神秘学书籍《所罗门的小钥匙》中是七十二位魔神之一,排第32位的魔神,位阶为王,统帅72个军团,被十八恶灵所侍奉的''女王''。''并且被传为代表[[七大罪|七宗罪 seven deadly sins]]中色欲的魔王''。
且被描绘成一个拥有''女性的头外,还有著一个牛头、一个羊头'',共有三个头的外表。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Asmodaeus.png/440px-Asmodaeus.png">
<div class="desc">《地狱辞典》中的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/7b/32-Asmoday_seal.png/440px-32-Asmoday_seal.png">
<div class="desc">Seal of Asmodeus</div>
</div>
</div>
拜恩(Vine、Vinea),是所罗门七十二柱魔神的第45位的魔神,位阶为王及伯爵,统帅30个军团,昵称“''狮子头王''”。
形象是骑黑马的狮面人身、手拿著蛇。他可以洞察隐秘,通晓古今,亦可建立或破坏城市。有著卓越的军事才能。能够召唤魔女与妖术师,这是七十二柱魔神中独一无二的能力。有办法''创造风暴''和''改变水质'',并找出被隐藏的事物。
<div class="gallery">
<div class="img-container">
<img src="img/vine.png">
<div class="desc">image of Vine, generated by DELL-3</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/45-Vine_seal.png/440px-45-Vine_seal.png">
<div class="desc">Seal of Vine</div>
</div>
</div>
撒共(英语:Zagan),是所罗门王72柱魔神中排第61位的魔神,率领33军团的王与第一公民,别名“撒共姆”(Zagam)。
能够''将一般的金属变成黄金和化水为酒,还能让笨蛋变聪明''。是''有狮鹫翼的牛'',可变为人型。
Zagan is depicted as a griffin-winged bull that turns into a man after a while. Other authors portray him as a bull-headed man with the wings of a griffin.
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/74/61-Zagan_seal.png/440px-61-Zagan_seal.png">
<div class="desc">Seal of Zagan</div>
</div>
</div>
''含姆'',根据《创世记》中的国家表,是诺亚的次子,也是古实、麦西、弗和迦南的父亲。
!! 含姆的诅咒
<a href="https://www.wikiwand.com/en/Sistine_Chapel_ceiling#Media/File:Michelangelo,_Drunkenness_of_Noah_00.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/5/5d/Michelangelo%2C_Drunkenness_of_Noah_00.jpg"
caption:"Drunkenness of Noah Michelangelo"
width:"auto"
align:"center"
>>
</a>
在《创世记》中,含的诅咒被描述为族长[[诺亚|诺亚 Noah]]对''含姆''的儿子[[迦南|迦南 Canaan]]施加的诅咒。
诺亚喝醉后“含姆看见他父亲赤身,就到外面告诉他的两个弟兄。于是闪姆和雅弗拿了外衣搭在二人肩上,倒退著进去,遮盖父亲的赤身”,诺亚醒后咒诅迦南,“要作兄弟奴隶的奴隶”。圣经并没有提及为何诺亚要咒诅伽南,''除了单纯看见父亲下体外,亦有认为是阉割或鸡奸父亲者(“露了某人的下体”在圣经多处有性行为的涵义)。此段经文亦有可能是以色列人合理化入侵伽南的理由,后来也成为欧洲国家蓄奴的借口。''
含姆相传为''非洲人''与''亚述人''的祖先。在古兰经中没有名字,以“挪亚之子”的称呼出现。
!! Offspring
<<list-links "[tag<currentTiddler>] +[nsort[num]]">>
《启示录》,天主教称《若望默示录》(天主教《思高圣经》汉译作《若望默示录》;东正教译作《约安之启示录》;唐朝景教译作《启真经》),是《新约圣经》收录的最后一个作品,写作时间约在公元90-95年。
作者是拔摩岛的约翰,基督教会传统上相信即是耶稣的门徒[[约翰|✝️约翰 John the Apostle]]。内容主要是''对未来的预警'',包括对世界末日的预言:接二连三的大灾难,世界朝向毁灭发展的末日光景,并描述最后审判,重点放在耶稣的再来。
!! 作者
根据《启示录》第一章,启示录的作者自称约翰,在拔摩岛上写作此书信,因此被称为拔摩岛的约翰。他的身份,基督教会传统上认为作者是十二使徒中的约翰,但在某些文献中,有不同的说法。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
北欧神话里的命运女神统名为[[诺恩(Norn)|🔮诺伦三女神(命运三女神) Norns]],她们不是诸神的隶属,也不是他们的同僚;不是的,诺恩们的判决是连神也必须服从的。她们决定了诸神的命运,也决定了人类的命运。
诺恩们是姐妹三个,大约是巨人[[诺尔维(时间)|诺尔维 Narfi]]的后代;这个诺尔维就是女神[[🌌诺特 Nott]]的父亲。
当诸神的黄金时代告终,罪恶渐渐发生在这宇宙之中,甚至连阿瑟加德也将不免的时候,诺恩三姐妹就在大梣树[[🌲世界之树 Yggdrasil]]旁边出现,定居在[[⛲乌尔达泉(命运之泉) Urdarbrunnr]]旁——这是诸神天天举行会议的所在。
据有些神话学者说,诺恩三姐妹的职务是''以将来的罪恶警告诸神,告诫神祗们珍视现在,而且还告诉他们全部过去的历史。''
这三姐妹名为[[死亡女神兀儿德 Urd]]、[[薇儿丹蒂 Verthandi]]、[[斯库尔德 Skuld]],分别代表了过去、现在、未来这三种时间。
她们的主要任务是织造命运之网、每天从''乌尔达泉''中汲水浇灌''生命之树Yggdrasil'',并在树根上壅培新土,务使这圣树永远新绿而活泼。或谓她们尚有一工作,是看守那些挂在生命之树枝头的青春之苹果,只许[[伊登|🍎青春女神伊登 Idun]]来采,防止别人偷窃。
诺恩三姐妹又饲养了''一对鹅,这是世上鹅的始祖''。有时,诺恩们亦自己化成鹅到地上来游戏,像人鱼一样在各湖沼河川中游泳,时时将未来的事情指点给人类。
诺恩们有时织出了很大的''命运之网'',一端起于极东的高山,另一端则入于极西的西海。网的线很像羊毛,颜色却随时不同,如果有一条自南而北的黑线,那就是死丧的标记。她们投梭织造的时候,常在唱一种庄严的歌,似乎她们并不是依了自己的意志而织造,却是盲目地在遵从、执行着“''万物之主宰”(Orlog)''的意志;“万物之主宰”乃是宇宙间的永在律,最古老且最高的力,是无始无终的。三姐妹中的兀儿德(过去)和薇儿丹蒂(现在)是好性情的人,至于第三位斯库尔德(未来),脾气却不大好,常把快要完成的网撕得粉碎,随风飘散。
因为这三姐妹是代表了时间的三种状态的,所以长姐''兀儿德''是''老而衰颓'',常常向后回顾,似乎念念不忘过去的什么人或什么事;二姐''薇儿丹蒂''则''正当盛年'',青春、活泼、勇敢,目光直向前方;至于小妹库尔德呢,通常是''秘密地躲在面纱后,不示人以真相'',脸向着的方向和乌尔德相反,手里拿一本书或一卷纸,都是不打开,以表示未来是神秘不可知的。
每天都有神来找这三姐妹谈话,问以各种事情,求她们给以指点。甚至奥丁自己也常到乌尔达泉边听这三姐妹的忠告。除了关于诸神及奥丁自身的命运以外,诺恩们有问必答。
!! 相关故事
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
巨人赫朗格尼尔有一匹好马''古尔法克西(Gullfaxi,黄金之马)''。有一天,奥丁骑着他的[[八足天马史莱普尼尔|🐴八脚马史莱普尼尔 Sleipnir]]在空中驰过,正遇见了赫朗格尼尔;赫朗格尼尔是一个傲慢的巨人,要和奥丁赛马。
他热心要赢,竟没注意他们是在向[[阿瑟加德|亚萨神国阿斯加特 Asgard]]跑去,直到瓦尔哈拉的门外,赫朗格尼尔才知道已经进了敌人的大本营。他并没赢得赛马,可是诸神依然请他进来,款待以酒食。赫朗格尼尔喝醉了,就大言日后要来毁灭''阿瑟加德'',杀尽诸神,只留美丽的[[希芙|希芙 Sif]]和[[女战神弗蕾亚 Freyja]]做老婆。诸神知道他是浑人,都不理会,
可是这话恰被托尔听见了,他立刻大怒,拔出锤来要杀死赫朗格尼尔。——在自己家里伤害客人,是北欧人所绝对不许的,所以诸神全都来劝阻。于是托尔要求跟赫朗格尼尔决斗。赫朗格尼尔答应三天后,在自己家的门外决斗。
赫朗格尼尔回去和别的巨人商量了,心里很觉不安。因为他和托尔约好,可以带一个助手对抗托尔的随从''提亚尔菲'',于是赫朗格尼尔和他的同伴就用泥土造了一个巨人,有九里高, 三里宽,作为提亚尔菲的对手。可是没有那么大的人心可用,所以就在泥巨人的胸腔内放入 一颗母马的心。
决斗之日到了,赫朗格尼尔和他的泥巨人等候托尔来。但''提亚尔菲''先到了,赫朗格尼尔想先杀死这随从,然后再和托尔打。他防着矮小的提亚尔菲从下盘来攻,就站在自己的盾上;不料托尔正在此时到了,举锤当头打来。赫朗格尼尔用他燧石制的大棒猛格一下,燧石棒被打碎了,赫朗格尼尔自己也被打死。燧石棒的碎片纷飞,可是有一块碎片嵌到了托尔的额头上。现在世界各处都可以找到燧石,那就是赫朗格尼尔的大棒的碎片。
托尔头上的燧石碎片,虽经著名的女巫医格萝雅(Groa)用了鲁纳文字的神咒,也还是不能完全取出来。
''而当赫朗格尼尔的尸体仆倒在地时,他的一条巨腿压到了托尔身上'',哪一个神都不能把它移开。后来是托尔的儿子[[玛格尼|玛格尼 Magni]](据说此时才不过三岁,或刚生下来三天),前来挪开大腿,救出了父亲<<fnote "托尔后把赫朗格尼尔的黄金之马古尔法克西送给儿子作礼物。">>
。而那个硕大的泥巨人,因为用的是母马的心,于是一开战就被吓瘫了,被提亚尔菲打成了碎片。
----
<<showfnotes>>
哈兰(Harran),也作赫伦,旧称卡雷(Carrhae),是''土耳其''东南部的一座古城,位于尚勒乌尔法省首府尚勒乌尔法东南38公里,今为阿拉伯人小村,在幼发拉底河上游的支流拜利赫河的东岸,距交汇之河口约10公里,水陆路均甚便利。哈兰在历史上曾经是一个重要的经济、文化和宗教中心。
''和上帝对谈,解惑''
哈巴谷书是圣经全书的第35本书,是先知[[🗣️哈巴谷 Habakkuk]]所写的预言书。本书也是十二先知书之一。
此篇作者哈巴谷纪录下与神''讨论了他内心的疑惑'',同时神先藉著迦勒底人对以色列施行公义的审判,然后又藉著列国对迦勒底人施行公义的审判,来向子民展示祂的力量。
!! 特色
本书虽然属于小先知书,但对上帝的子民来说,他所接获的异象和发出的判决信息的重要性却绝不“小”。他的预言能够扶持上帝的仆人抵受艰辛,对他们深具鼓励和强化作用。这本书强调两项重要真理:''上帝是全宇宙的至高统治主'';''义人必因信得生''。这本书也是为了警告上帝仆人的反对者及那些自称事奉上帝的伪君子而写的。在配受歌颂赞美的上帝面前,培养坚强的信心方面,这本书给立下一个楷模。
哈巴谷可说是先知中的约伯,二者同是探讨受苦这问题,不过约伯针对的困惑是个人的受苦,而''哈巴谷关注的乃是国家的问题''。先前,先知不明白上帝为何利用更凶暴的巴比伦人来惩治祂的百姓。
在探讨过程中,哈巴谷与上帝对话,把他的疑问提出来。本书的方式不像其他先知书只重上帝对百姓说话,而是包括作者对上帝的许多申诉和呼吁。文中有三种不同的体裁 ——1:2-2:3是''对话'',讨论上帝的公义;三章是''诗歌'';2章:4-20节是一连串对恶人(巴比伦人)的''指责''。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/Hathor.svg/440px-Hathor.svg.png"
caption:"爱神、美神、富裕之神、舞蹈之神、音乐女神"
width:""
align:"right"
>>
哈索尔(Hathor),亦称哈托尔,全称哈索尔·迪特拉(Hathor Ditera),古埃及女神,她是''爱神、美神、富裕之神、舞蹈之神、音乐之神''。哈索尔关怀苍生,同情死者,同时也是''母亲和儿童的保护神''。在不同的传说中,她是太阳神[[拉|拉 Ra 太阳神]]的女儿,王权守护神[[荷鲁斯|荷鲁斯 Horus]]的妻子,或者是拉的妻子。
对哈索尔的崇拜最早在前27世纪便已开始,她的形象是''奶牛、牛头人身女子或长有牛耳的女人''。传说哈索尔女神曾化身为无花果树,并把果实送给地狱的死者。
哈索尔的祭祀中心在丹德拉。希腊人常将哈索尔与[[💗爱情女神阿佛洛狄忒 Aphrodite]]相提并论。
古埃及矿工们亦崇拜哈索尔,认为她是“绿松石之神”。
!! 神话
传说哈索尔女神是“[[拉神之眼|拉之眼 Eye Of Ra]]”。太阳神拉年事已高,有人趁此机会有所图谋,拉神知道后非常恼怒,决定把象征太阳威严和燃烧力量的“神眼”放置在哈索尔的体内,让她去消灭这些惟利是图的歹人。
哈索尔女神得到“神眼”后,化身为暴虐的女战神[[塞赫麦特|塞赫麦特 Sekhmet]]开始对这些人进行杀戮,世间顿时血流成河。
拉神看到死伤的人已经足够后,试图令其收手。为了能使塞赫麦特停止对人类的残杀,拉神用石榴制成的酒水浇灌大地,嗜血的塞赫麦特误以为鲜红的石榴酒是血,因此喝得酩酊大醉,从而停止了暴行,恢复成美丽的哈索尔女神。''后来,饮用啤酒和红石榴汁也成为了祭祀哈索尔女神活动中的一部分。''
<a href="https://www.wikiwand.com/zh-hans/哈斯蒙尼王朝">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/7/7f/Hasmoneese_rijk.PNG/500px-Hasmoneese_rijk.PNG"
caption:"哈斯蒙尼王朝最大疆域"
width:"400px"
align:"right"
tooltip:"">>
</a>
哈斯蒙尼王朝(英语发音:/ˌhæzməˈniːən/),是''古典时代''(希腊化时期)统治''犹大''及其附近地区的王朝。从c.140- 约116 BCE,哈斯蒙尼王朝在[[塞琉古帝国 Seleucid Empire 312 BC-63 BC]]下,半自治的统治犹大。 前110年,随着塞琉古帝国的解体,哈斯蒙尼王朝完全取得独立,并向撒玛利亚、加利利、伊图利亚、彼利亚和以东扩张,并获得“国王”“巴西琉斯”的称号。一些现代学者将哈斯蒙尼王朝时期视为一个独立的''以色列王国''。
前63年,哈斯蒙尼王国被罗马共和国占领,罗马人将其瓜分,变为附庸国。哈斯蒙尼王朝在被''希律王朝''取代之前,维持了103年。 即使在希律王朝取代哈斯蒙尼王朝后,大希律王仍然试图通过娶哈斯蒙尼公主米利暗来强化其统治合法性,并策划在其耶利哥王宫淹死哈斯蒙尼王朝的最后男性继承人。
在''犹大·马加''比发动马加比起义,打败''塞琉古帝国''的军队二十年后,''西门·马加''比建立了''哈斯蒙尼王朝''。
根据历史资料,包括马加比一书和马加比二书和犹太历史学家弗拉维奥·约瑟夫斯的《犹太战争》第一卷,安条克四世对埃及托勒密王朝入侵的成功,遭到罗马共和国的干预后,安条克四世条转而对塞琉古帝国控制的柯里叙利亚和腓尼基施加更严厉的统治、洗劫了耶路撒冷及其圣殿、制止犹太人和撒马利亚人的宗教和文化的纪念活动,并强制推行希腊文化。随之而来的犹太人大起义(公元前167年)开始的一个世纪犹太人的独立时期,犹太人的独立因新兴的罗马共和国和安息帝国对塞琉古帝国的入侵而得到强化。
公元前37年,以东人''大希律王''登上王位,标志着哈斯蒙尼王朝结束,以色列成为罗马帝国内从属国。公元6年,罗马将犹太、撒马利亚和以东合并为统一的犹太行省。公元44年,罗马任命了总督和希律国王们一同统治(阿基帕一世41-44年和阿基帕二世50-100年),开始直接控制''巴勒斯坦''。
[[博格希尔德 Borghild]]和[[希格蒙德 Sigmund]]的儿子
''重建圣殿''
哈该书是希伯来圣经的第37本书,旧约中十二小先知书中的第十卷。这本书的作者是哈该,生活在''巴比伦灭亡后''的时代,在他做先知得时候,犹太人已经返回故乡重建耶路撒冷和耶和华上帝的第二圣殿。
经文写了耶和华对付被掳归回的人,以建造祂的殿。旧的在巴比伦攻陷耶路撒冷的时候被毁。
!! 背景
公元前587年,巴比伦大军攻陷耶路撒冷,犹大王国沦亡,百姓被掳,圣殿([[所罗门圣殿 Solomon's Temple]])被毁。公元前539年,巴比伦被波斯所灭。波斯王''居鲁士''(和合本译名,又译为''居鲁士二世'')建立波斯帝国后,所采用的政治和宗教政策一反巴比伦的作风,他颁令准许被掳至巴比伦的民族回归故土,又让他们把被掳的神像一并带返建庙供奉。
在公元前537年,居鲁士下了圣旨容许犹太人返回故土重建耶和华的殿。但到了公元前520年,圣殿的落成仍遥遥无期。在这些岁月里,犹太人让仇敌的反对、个人的冷淡和物质主义阻碍他们,以致未能实践他们返回故土的目的。
记载表明,在公元前536年,圣殿的根基尚未奠好,“那地的民,就在犹大人建造的时候,使他们的手发软,扰乱他们;……贿买谋士,要败坏他们的谋算。”(以斯拉记4:4,5)在公元前522年,这些非犹太籍的反对者终于获得成功,政府下令禁止工程进行。于是,哈该在波斯王''大流士·希斯塔斯普''作王的次年,即公元前520年,开始说预言,鼓励犹太人恢复建殿的工作。邻省的总督就此事向大流士王参奏,请王定夺。大流士重申居鲁士的诏令,吩咐犹太人无须理会敌人的反对,继续建殿的工程。
在古典神话中,隐形帽(Ἅϊδος κυνέην (H)aïdos kynein,希腊语,意为哈迪斯的狗皮)是一种头盔或帽子,可以让佩戴者隐形。
它也被称为冥王之帽或冥王之盔。希腊神话中戴帽子的有智慧女神[[雅典娜|🦉智慧女神雅典娜 Athena]]、信使神[[赫尔墨斯|☤神使赫尔墨斯 Hermes]]和英雄[[珀尔修斯|珀尔修斯 Perseus]]。隐身帽使使用者能够对其他超自然实体隐身,其功能很像众神包围自己的迷雾云,使其无法被发现。
!! 来源
一个将特殊头盔归于冥界统治者的古代资料是《书库》(公元前2/1世纪),其中[[独眼巨人 Cyclopes|👁️独眼巨人 Cyclopes]]在与泰坦的战争中把闪电、波塞冬的三叉戟和头盔(kyneê)交给哈迪斯。
在古典神话中,头盔经常被说成是属于冥界之神的。拉贝雷(Rabelais)称它为冥王星的头盔,伊拉斯谟(Erasmus )称它为奥库斯( Orcus,哈迪斯对应的罗马神)的头盔。
头盔成为那些用狡猾的手段掩盖其真实本性的人的谚语。
<<<
the helmet of Pluto, which maketh the politic man go invisible, is secrecy in the counsel, and celerity in the execution."
<<<
!! 使用者
* [[💀冥王哈迪斯 Hades]]:在他和他的兄弟宙斯和波塞冬将他们从塔尔塔罗斯手中解放出来后,年长的独眼巨人为他铸造了它。然后,他在 [[Titanomachy|Titanomachy 泰坦大战]] 期间使用这顶头盔发挥了巨大的作用,并在击败 Titans 方面发挥了重要作用。
* [[🦉智慧女神雅典娜 Athena]]:曾在[[特洛伊战争|特洛伊战争 Trojan War]]期间戴过隐形帽。当她帮助[[阿瑞斯|🛡️战神阿瑞斯 Ares]]的敌人[[狄俄墨得斯|狄俄墨得斯 Diomedes]]时,她用它来让''阿瑞斯''看不见。她的帮助甚至让''狄俄墨得斯''用长矛刺伤了战神。
* [[☤神使赫尔墨斯 Hermes]]:信使之神赫尔墨斯在与巨人[[希波吕托斯|希波吕托斯 Hippolytus]]的战斗中戴着这顶帽子。
* [[珀尔修斯 Perseus]]:在一些故事中,珀尔修斯在去杀死戈尔贡[[美杜莎|🐍美杜莎 Medusa]]时从''雅典娜''那里得到了隐形帽(以及有翼凉鞋),这帮助他逃脱了她的姐妹们。 然而,在其他神话中,珀尔修斯从冥河女神那里获得了这些物品。隐形之帽不是用来躲避[[戈尔贡|🐍戈耳工/蛇发女妖 Gorgon]]的石化凝视,而是为了在他斩首美杜莎之后逃离不朽的 Sthenno 和 [[Euryale|欧律阿勒 Euryale]]。
[img[https://upload.wikimedia.org/wikipedia/commons/e/e9/Persee-florence.jpg]]
//Cellini's Perseus (1545–54), wearing the Cap of Invisibility and carrying the head of Medusa//
''科林斯'',在新约圣经中又译''哥林多''或''格林多'',是''希腊''的历史名城之一,位于连接欧洲大陆及伯罗奔尼撒半岛的科林斯地峡上,西面是科林斯湾、东面是萨罗尼科斯湾,距离首都雅典约78公里。现今为科林西亚州的首府,人口38,132人(2011年)。
son of [[利未 Levi]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
<a href="https://www.wikiwand.com/en/Circe#Media/File:Circe_Offering_the_Cup_to_Odysseus.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Circe_Offering_the_Cup_to_Odysseus.jpg/640px-Circe_Offering_the_Cup_to_Odysseus.jpg"
caption:"Circe Offering the Cup to Ulysses
by John William Waterhouse"
width:"400px"
align:"right"
tooltip:"">>
</a>
<a href="https://www.wikiwand.com/en/Circe">待补充,太多了。。</a>
! 女巫和小女神(an enchantress and a minor goddess)
|父母 |[[Helios|☀️太阳神赫利俄斯 Helios]] and [[Perse|Perse]] or Aeetes and [[Hecate|赫卡特 Hecate]] |
''Circe'' (''/ˈsɜːrsiː/''; Ancient Greek: Κίρκη, pronounced [kírkɛː])
Circe以她对药水和草药的丰富知识而闻名。通过使用这些东西和魔法棒或法杖,她会把她的敌人或那些冒犯她的人''变成动物''。
她最著名的传说是在荷马的《奥德赛》中讲述的,当时[[奥德修斯|奥德修斯 Odysseus]]在从特洛伊战争回来的路上访问了她的Aeaea岛,__她把他的大部分船员变成了猪__。他设法说服她让他们恢复人形,与她生活了一年,并与她生了几个儿子,包括Latinus和Telegonus。
她把别人变成动物的能力在意大利国王皮库斯的故事中得到进一步强调,''她把他变成了啄木鸟'',因为他拒绝了她的追求。
另一个故事说她爱上了海神格劳库斯(Glaucus),而格劳库斯更喜欢仙女希拉(Scylla)。为了报复,Circe在她的对手洗澡的水里下了毒,''把她变成了一个可怕的怪物'':
<<<
海神Glaucus爱上了一位美丽的少女Scylla,但无论他如何努力去赢得她的心,她都拒绝了他的感情。Glaucus去找Circe,问她有什么办法能让Scylla也有他的感觉。Circe被Glaucus迷住了,并爱上了他。但Glaucus并不爱她,并拒绝了她的求婚。
愤怒的Circe利用她对草药和植物的知识进行报复;她找到了Scylla通常洗澡的地方,并在水中下了毒。当Scylla下水洗澡时,狗从她的大腿上窜出,她变成了《奥德赛》中熟悉的怪物。
<<<
西方绘画为这个人物建立了一个视觉图腾(visual iconography),但也从奥维德的《变形记》中出现的关于Circe的其他故事中获得了灵感。Scylla和Picus的故事在她的坏品质中加入了暴力嫉妒的恶习,''使她成为一个恐惧和欲望的人物''。
喇合,是[[约书亚记|约书亚 Joshua]]中记载的居住在迦南的[[耶利哥城|耶利哥 Jericho]]中的一名''妓女'',后来嫁给以色列人''[[撒门|撒门 Salmon]]'',成为''大卫王''的先祖。
!! 相关事迹
在耶利哥城,一名名叫喇合的妓女帮助了以色列的探子。作为回报,探子允诺在计划的军事入侵期间,拯救她和她的全家,只要她保守秘密,并且在她的住处留下记号。当守卫来到她家搜捕密探时,她将密探隐藏起来,并用谎言支走了卫兵;密探答应在攻占该城后,将保护她的全家。以色列人征服迦南后,她不再从事卖淫,加入犹太人,变成一位可尊敬的已婚妇女。
(覆盖但以理书7:1-8:27)巴比伦王“伯沙撒元年”,他可能于公元前553年开始统治。
[[🗣️但以理 Daniel(?-530 BC)]]发了一个梦,他用亚兰文(叙利亚文)将梦记下来。
他看见四只狰狞的巨兽相继出现。
<<card
text:"
第一只像''狮子'',有''鹰的翅膀''。我继续观看,见它被拔掉了翅膀,还从地上被拉起来,像人一样用双脚站立。有一颗人心给了它。
<br><br>我看见另一只野兽,就是第二只,样子''像熊''。它身体的一边抬了起来,口中的牙齿咬着三根肋骨。有话对它说:‘起来,多多吃肉。
<br><br>我继续观看,见有另一只野兽,样子''像豹'',背上却有四个翅膀,像鸟的翅膀一样。''这只野兽有四个头'',有统治权给了它。
<br><br>我在夜间的异象里继续观看,见有第四只野兽,又可怕又狰狞,异常强壮。它有大铁牙,吞吃、压碎一切,剩下的用脚践踏。这只野兽跟之前的其他野兽都不一样,还有''十只角''。我正在思考这些角的含意,忽然看见角当中有一只小角崛起。在这只小角前面,先前的角有三只被拔出来。我看见这只''小角有眼睛'',好像人的眼睛,还有口说狂妄(夸耀)的话。
"
footer:""
>>
亘古常在者坐在宝座上,有‘亿万’使者在他跟前侍立。“有一位像''人子''的”来到他面前,“得了权柄、荣耀、国度,使各方、各国、各族的人都事奉他。”
但以理随后获得有关四兽的异象的解释。它们分别代表四王或四国。第四兽有十角,角中长出一小角。这角变成势力强大,与圣民争战。然而,天上的法庭出面干预,把“国度、权柄,和天下诸国的大权……赐给至高者的圣民”。(但以理书7:27)
可推测四兽代表:
# 长有鹰翅的''狮子''(巴比伦帝国 c.1894-539 BC)
# 口中衔着三根肋骨的''熊''(波斯帝国 550-330 BC)
# 有四个头、四个翅膀的''豹''(希腊帝国 808 BC—168 BC)
# 极其强壮可怕的''第四兽'',有大铁牙,吞吃嚼碎,所剩下的用脚践踏(罗马帝国 27 BC–395)
<a href="https://www.wikiwand.com/en/Daniel_7#Media/File:Daniel_4_Beasts.JPG">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/1/10/Daniel_4_Beasts.JPG"
caption:"Daniel's vision of the four beasts – woodcut by [[Hans Holbein the Younger|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%B0%8F%E6%B1%89%E6%96%AF%C2%B7%E9%9C%8D%E5%B0%94%E6%8B%9C%E5%9B%A0%20Hans%20Holbein%20the%20Younger%20c.1497-1543:%5B%5B%E5%B0%8F%E6%B1%89%E6%96%AF%C2%B7%E9%9C%8D%E5%B0%94%E6%8B%9C%E5%9B%A0%20Hans%20Holbein%20the%20Younger%20c.1497-1543%5D%5D]]"
width:"auto"
align:"center"
>>
</a>
---
口中衔着三根肋骨的''熊''——波斯帝国:''居鲁士二世''(600/576 BC-530 BC)从这个地区崛起,击败''米底王国''、''吕底亚王国''和''新巴比伦帝国'',建立阿契美尼德帝国
四字神名(意思是“四个字母”),为古代希伯来人尊崇的神名,在《希伯来圣经》中,用''四个希伯来子音'',即יהוה(拉丁化为''YHWH或YHVH'')来表示,是犹太教及基督教所信仰的独一神,在中国基督教新教里主要汉译为“耶和华”的专有名称。尽管יהוה四字神名的头衔不少,如“上帝”,“天主”,“上主”都指这位神,但唯有''耶和华''才是其音译成汉语的名字,能正确代表希伯来语四字神名יהוה。
四字神名的元音早已失传。中世纪末期,四字神名被拉丁化为耶和华(Jehovah),许多现代学者相信其正确发音应该接近于雅威或亚威或亚呼威(Yahweh或Yahuweh或Yahveh或Yahuveh或Yehoweh)。
!! 汉译
公元7世纪唐朝的景教中文古籍里,将YHWH(及其相对之叙利亚语Ievha)译作“''序娑''”、“''阿罗诃''”。
由于20世纪初翻译的中国基督教新教的《和合本》是中国基督教史上影响最大的主流圣经汉语译本,四字神名最常见的汉语译法是即《和合本》译者所采用的“''耶和华''”(注音符号:ㄝㄏㄨˋ ㄨㄟˊ、ㄧ ㄏㄨˋ ㄨㄟˊ、ㄝㄨㄟˊ或 ㄧㄨㄟˊ ),例如国语和合本《以赛亚书》42:8:“我是耶和华、这是我的名。”近代圣经研究者较普遍认为“YiuHuWeH”是源于早期旧约译者(把希伯来语译成英语的译者)对这个词的误读,认为犹太人的真正念法是“''YIHUWEH''”。
20世纪后期天主教的思高译本把YHWH音译作“''雅威''”,意译作“上主”,有些学者沿用类似的译法。
现代一些新出版的圣经汉语译本,因循《和合本》的传统,仍旧译作''耶和华''。''天主教''的《牧灵圣经》等音译YIHWEH作''耶威''ㄧㄝㄨㄟ或咿威ㄧㄨㄟ。天主教及一些新教现代译本仿LXX本,将LORD直译成中文作“''上主''”(注意:''“上主”LORD与“天主”God,是2个不同的字源'')。
河神/阿尔戈斯Argos首位国王
<$tiddlymap view="阿哥斯特人族谱 Argive genealogy chart"></$tiddlymap>
在特洛伊战争期间,图瑟主要是一名伟大的弓箭手,他从同父异母的兄弟[[大埃阿斯|大埃阿斯 Ajax the Great]]的巨大盾牌后面松开了他的箭矢。
紧接着[[住棚节|住棚节 Sukkot]]之后的那一天是一个单独的节日,称为“圣会节”(Shemini Atzeret,意即“第八日”)。
在''以色列'',圣会节的庆祝包括''妥拉节''。在其它国家,圣会节在住棚节之后的那一天庆祝,而''妥拉节''在圣会节之后的一天庆祝。
圣周五,沉默周五、耶稣受难节、耶稣受难日、天主教称主受难日,天主教和基督教的宗教节日,基督徒用以记念主耶稣基督在各各他被钉死受难的纪念日。它也被称为圣周五,大周五。为圣周中的星期五,也是逾越三日庆典的一[[Passover 逾越节]]部份,是复活节之前的星期五。有些人将这个节日等同于犹太教的,这样便能确保当晚是与主耶稣被捕的晚上同是月圆之夜。它有时也会被称为复活节周五,但这可能跟另一个节日([[复活节 Easter]]之后的周五)混淆。
根据福音书记载,耶稣于公元33年犹太历尼散月十四日与门徒设立记念仪式,后于上午九时左右被钉,于下午三时左右死去。主耶稣基督惟独吩咐门徒要记念祂的死亡。
在西方基督教世界中,''许多国家都将此日订为公共节日,其中也包括美国的12个州。''
<a href="https://www.wikiwand.com/en/Saltire">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/ac/Saint_Andrew%27s_cross.svg/440px-Saint_Andrew%27s_cross.svg.png"
caption:"A diagonal cross (decussate cross, saltire, St. Andrew's Cross)"
width:""
align:"right"
>>
</a>
圣安得烈十字是呈X形的十字符号,相传耶稣门徒安得烈被钉在X形十字架殉道,故而得名。苏格兰国旗、牙买加国旗、俄罗斯海军旗帜及不少其他旗帜或纹章均以此符号组成。
!! 旗帜和徽章
''苏格兰国旗''又称作''圣安得烈十字'',是蓝底衬白色十字。按传统,旗帜代表圣安得烈,相传他在帕特雷殉道时被钉在X形十字架上。
不少其他旗帜,尤其是与苏格兰和俄罗斯有关的旗帜(因为圣安得烈是其主保圣人),都以圣安得烈十字及蓝白两色为主调。''俄罗斯皇家海军''(1696年-1917年)及''俄罗斯海军''(1991年-现在)的军旗是白底衬蓝色交叉十字。在1707年联合法案以前,苏格兰皇家海军使用红底圣安得烈十字旗帜。
''加拿大''的徽章及旗帜使用白底衬蓝交叉十字(新斯科舍曾是苏格兰殖民地)。西班牙的''特内里费岛''和''哥伦比亚共和国''的岛则使用蓝底衬十字旗帜。
苏格兰旗帜是组成英国国旗的三个十字其中之一,其馀两个为代表英格兰的''圣乔治十字''及代表爱尔兰的''圣博德十字''。
不少其他旗帜采纳了圣安得烈十字的设计,例如''牙买加国旗''、''邦联旗''。其他旗帜还包括''阿拉巴马州州旗、佛罗里达州州旗、泽西岛旗、格林纳达国旗''等。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/10/Flag_of_Scotland.svg/300px-Flag_of_Scotland.svg.png">
<div class="desc">苏格兰国旗</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/10/Scottish_Red_Ensign.svg/300px-Scottish_Red_Ensign.svg.png">
<div class="desc">苏格兰皇家海军红船旗</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e1/Naval_ensign_of_Russia.svg/300px-Naval_ensign_of_Russia.svg.png">
<div class="desc">俄罗斯海军军旗</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/0a/Flag_of_Jamaica.svg/300px-Flag_of_Jamaica.svg.png">
<div class="desc">牙买加国旗</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/51/Flag_of_Japan_Customs_%281871%E2%80%931873%29.svg/200px-Flag_of_Japan_Customs_%281871%E2%80%931873%29.svg.png">
<div class="desc">日本税关关旗(1871年-1873年)</div>
</div>
</div>
<a href="https://www.wikiwand.com/en/Cross_of_Saint_Peter">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Peter%27s_Cross.svg/340px-Peter%27s_Cross.svg.png"
caption:"A Cross of Peter is an inverted Latin cross"
width:"300px"
align:"right"
>>
</a>
这个符号的原型来自于天主教传说——[[圣彼得|✝️彼得 Saint Peter]]是被倒挂在十字架上钉死,''因为他觉得他不配和耶稣以同样的方式钉死(正挂)''。亚历山大学者俄利根是第一个报道出伯多禄是倒挂钉死的,圣伯多禄请求以这种方式遭受苦痛。
圣伯多禄十字通常与两个钥匙一起用,''象征天堂的钥匙''。一些天主教会使用这个符号来代表“谦逊”和“不配与耶稣相比”的象征。
圣伯多禄十字也经常联系到''撒旦教''。阿莱斯特·克劳利(Aleister Crowley)认为这个符号代表着对神恩的反驳与对耶稣救世主的远离。因此,这个符号变得在重金属、黑金属、死亡金属等音乐场景中非常流行(特别是一些乐队如Danzig、Dimmu Borgir、Satyricon、Deicide、King Diamond和Gorgoroth的队员用大逆十字垂饰装饰他们)。Deicide乐队的代表人物Glen Benton在他的前额烫了一个逆十字。
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
{{Biblical genealogy}}
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[list]'/>
</div>
指为了某个特殊使命奉召被差派出去的''门徒''。原意是''受差遣者、信差、使者''。
在基督教教义中,它可以指五重职份(使徒、[[圣经中的先知 Biblical prophet]]、使徒性教师、牧师、宣教师)的一种职份,也可以指一种属灵恩赐。
在''对观福音书''<<fnote "符类福音(英语:)又称共观福音、同观福音、对观福音等,为新约圣经前三卷书《[[马太福音|马太福音 Gospel of Matthew]]》、《[[马可福音]]》和《[[路加福音]]》的合称。这三本福音书的内容、叙事安排、语言和句子结构皆很相似,而它们又以近似的顺序、措辞记述了许多''相同的故事''。使学者们认为它们有著相当的关联。四福音书中的另一卷书《[[约翰福音|约翰福音]]》及其它被称为伪典的福音书,与符类福音各方面皆有很大的差异。">>中,耶稣选定的十二门徒,也称十二使徒,是最早被称为使徒的人。在十二使徒之外,则是一个外邦人被使徒巴拿巴从大数招回安提阿的使徒教会,在那里教导人一年后,最后被封为使徒的''保罗''。
使徒在早期基督教不明。在保罗书信中,经常以使徒来称呼教会中的人,如巴拿巴、以巴弗提。在《[[约翰福音|约翰福音 Gospel of John c.98]]》中,使徒与门徒''没有什么不同,没有特殊地位与描写''。因此这个称呼可能可以被使用在教会中的任何成员身上,不限于十二使徒。但在《启示录》中,''使徒特指耶稣的十二门徒,是教会的根基''。
在西元一世纪,由耶稣直接门徒与再传门徒所形成的早期基督教会,成为基督教历史的开端。这段时期称为''使徒时代(Apostolic Age)'',这些使徒的门徒被称为使徒教父,他们形成的教会被称为使徒教会(Apostolic Ecclesia)。
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
----
<<showfnotes>>
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
<<list-links "[tag[圣经中的地区 the regions menthioned in the Bible]] +[sort[title]]">>
<$leafmap tile='positron' places='{"filter":"[tag[圣经中的地区 the regions menthioned in the Bible]]"}' cluster='25'>
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[title]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
{{Composition of the Bible}}
基督教的三大支派的<<fnote "1054年分裂为天主教和东正教;1517年马丁路德发起的宗教改革,从天主教中分裂出新教">>
《圣经》不尽相同,社会上普遍采用的是新教版的《圣经》。
三大支派中,《新约》的篇章相同,都是''27卷'',在《旧约》方面,天主教和东正教分别加上不同数目的《次经》。
* ''天主教 Catholicism''在''新教 Protestantism''《旧约》''39卷''的基础上,加了7卷,共''46卷''《旧约》
* ''东正教 Eastern Orthodoxy''在天主教46卷《旧约》基础上,加了3卷,共''49卷''《旧约》
!! 旧约
又称《希伯来圣经 Old Testament in Hebrew》,是犹太教和基督教共有的最重要的经典。
希伯来圣经记载了''上帝创造世界、犹太人寻找和失落家园及对世界历史的预言''。''犹太人 Jewish people'' 原称'' 希伯来人 Hebrew people'',从流亡埃及始称''以色列人 Israeli people'',国亡后散居各地,形成现在的犹太族群。
''圣经''最早的书卷主要是''[[摩西五经|律法书/摩西五经 the Torah]]'',用羊皮卷或纸莎草纸抄写,约在公 元前1400年成书,至公元1世纪末最后一卷书的写成历时1 500多年,由 跨越了不同时代背景的40多位身份、经历各异的人在对圣灵的感应下著 成,分为''《旧约圣经》和《新约圣经》''。
其中基督教的《旧约圣经》在西方学界通称《希伯来圣经》,也为犹太教的正式经典,它以上帝通过摩西与以色列人所订立的契约为中心,记载了''耶稣降生之前的犹太民族形成的漫长历史和宗教生活状况''。由于创作的年代跨度之长,希伯来圣经包括了不同时代的作品,书写风格也各有差异, 且随着时间推演,后来的先知会对前面记载的事件和说法作出补充,因而在当时很难有固定的版本。
犹太教正典共24卷,又称二十四书,Tanakh(塔纳赫)作为典籍的 总称是根据经卷分成的三部分《律法书》(称''妥拉'')、《先知书》(又分''前、后先知书'')、《圣录》的希伯来文名称的缩略语组合。尽管基督教和犹太教都认为《希伯来圣经》(或称《塔纳赫》)是上帝所默示的,也都认可律法书或妥拉的作者是''摩西'',但__《塔纳赫》在犹太教中''不被认为等同于''基督教的 《旧约圣经》。__
伊斯兰教宗教经典如《古兰经》等也包括了《希伯来圣经》的部分内 容,但伊斯兰教''非常重视圣书的神圣性'',认为它是不可翻译和重写的,因而''只承认摩西和耶稣当时的版本'',对现今修订后的版本中的部分内容存保留意见。
!! 目录
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
----
<<showfnotes>>
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
圣诞节,又称耶诞节,是基督教纪念耶稣降生的节日,英美为主的西方社会定于12月25日,但俄罗斯等东方国家与部分天主教的国家称其主显节,则大致定于''1月7日''。
其为基督教礼仪年历的重要节日,部分教派会透过将临期及圣诞夜来准备,并以''八日庆典''(英语:)与''礼仪节期''延续庆祝。
圣诞节也是许多国家和地区、尤其是西方国家等以基督教文化为主流之地区的公共假日;在教会以外的场合,圣诞节已转化成一种民俗节日,并常与日期相近的公历新年合称“圣诞及新年季”。
由于耶稣的诞生日期无法确定,圣经上也无相关记载,所以在学术上认为圣诞节是以圣母领报(3月25日)的日期来推估,或是在基督教发展初期将古罗马的农神节(罗马多神信仰)转化而来,当时社会上(如古罗马的冬至)以该节日庆祝日照时间由短变长。西方教会在发展初期至4世纪前中期开始将圣诞节定在12月25日,东方正教会稍晚以儒略历定于1月7日,亚美尼亚教会则定在1月6日或1月19日。
在现代圣诞节同时兼具宗教节日与文化节庆的双重功能,除了参与教会仪式与活动外,家户、行号与街头上也可见相关布置,更是重要的商业活动时令;而过圣诞节的习惯,亦随著近代西方国家的影响力而扩展到全世界。但在基督教并非主流宗教的地区(如东亚),除了当地的教会团体外,圣诞节经常被当作消费活动的名目,这种没有宗教意义的商业民俗活动,不需要接受西方文化者也能自由的参与,且如同西方国家的“圣诞及新年季”与公历新年结合,过节时间拉长到数周,成为全年重要的购物和消费季之一。
宗教上一脉相承的伊斯兰教国家则更为特殊,虽然圣诞节在伊斯兰教文化也是有意义的,并承认耶稣是先知,但视圣诞节为歪曲产物,''不允许过圣诞有关的宗教活动'',不过鉴于西方圣诞民俗活动多数已经失去宗教色彩,穆斯林则可以给予对方祝福、适当参加团聚活动亦可。''犹太教的以色列也没有这个节日''。
!! 名称
圣诞节英语称Christmas,即“基督弥撒”。有时又记为“Xmas”,但常有''许多人误以为是“X'mas”''。“X”是希腊字母“Χ(Chi)”,是“基督”希腊语 (Christos)的首字母。以“Xmas”淡化圣诞节的宗教色彩是常见的误解,荷兰语名称类似英语,称Kerstmis,常缩短为Kerst,西班牙语称Navidad,葡萄牙语称Natal,波兰语称Boże Narodzenie,法语称Noël,意大利语称Natale,加泰罗尼亚语称Nadal,意思是“诞生”,更清晰地反映圣诞节的意思。与此相对,德语称为Weihnachten,意思为“神圣的夜晚”。
中文使用的“圣诞节”一词,一般认为是清末来华传教士的传教用语,因为耶稣是西方圣人,''而中国民间信仰里凡是神明诞辰皆可称圣诞,因此将此节日译为圣诞节,或耶稣节''。蒋介石政府执政时期,主管部门发出公文,表示中华文化中的圣人是至圣先师孔子、亚圣孟子,耶稣不是中华文化的一部分,应将圣诞节更名为耶诞节,为耶稣诞生日之意,至今名称仍与圣诞节并用。
!! 起源
早在公元二世纪,“最早期的教会记录”显示“基督徒们曾纪念和庆祝主的生日”。这些记录是由“虔诚的全心奉献给基督的普通信徒的观察”得来的。“这个节日刚好和古代的[[光明节 Hanukkah]],犹太教节日(Festival of Light)的庆祝日期重合——当然这显然不是一个偶然的巧合。”
公元221年,''塞克斯塔斯·朱利叶斯·阿弗里卡纳斯'',一个生活在公元二世纪到公元三世纪左右的基督徒、历史学家,在他的历史著作中,''将3月25日作为耶稣的受孕日'',这就暗示了耶稣的诞辰日是在12月份。这个记录常被当做最早的有关耶稣生日是12月25日的证据。
圣诞节可能是基于古罗马的''农神节'',该节日传统庆祝时间是在12月17日——12月24日,及后多米提安皇帝(Domitian,西元51~96年)故意把农神节改为12月25日举行。
圣诞节也可能是基于古罗马的''太阳神节''。在公元274年,罗马的皇帝奥勒良在12月25日定制了一个节日,叫做 dies natalis solis invicti (未被征服的太阳或译为无敌的太阳),(在公元274年以前,这个节日有可能在不同的日子被庆祝。“传统的太阳神节日期,被记录在早期的帝国日历上,曾经是8月8日,或者可能是8月9日,8月28日,和12月11日”。 )至西元312年,罗马帝国皇帝君士坦丁一世(Constantinus I)发布《米兰敕令》(Edictum Mediolanense),帝国对基督徒的迫害正式结束,基督教终于有了合法地位,并于公元四到五世纪开始,基督化了的罗马帝国可能以圣诞节取代“无敌太阳诞生日”的节日。
!! 圣诞老人传说
自从圣诞庆祝习俗在''北欧''流行后,结合着北半球冬季的圣诞装饰和圣诞老人传说出现了。
神秘人物带给小孩子们礼物的概念衍生自''[[圣尼古拉斯|https://www.wikiwand.com/zh-hans/%E5%9C%A3%E5%B0%BC%E5%8F%A4%E6%8B%89]]'',''尼古拉斯''是一位4世纪生活在''小亚细亚(现土耳其)''的好心主教,他曾经在夜晚爬上他们的屋顶,把金币从烟囱投入他们家,帮助她们逃过被卖的命运。后人感谢他,所以就定了圣尼古拉节,圣诞老人的译音就是圣尼古拉。。''荷兰人''在''圣尼古拉斯节(12月6日)''模仿他送礼物。
在北美洲,英国殖民者把这一传统融入圣诞假期的庆祝,而''Sinterklaas''(荷兰语)传进英语成为(''Santa Claus'')或者称为''Saint Nick''(圣尼克)的人物了。在''英籍''美国人的传统中,圣诞老人总是快活的在圣诞前夜乘着驯鹿拉的雪橇到来,从烟囱爬进屋内,留下给孩子们的礼物,吃掉孩子们为他留下的食物。他在一年中的其他时间里忙于制作礼物和监督孩子们的行为并记录下来。
法国与圣诞老人类似的形象是Père Noel,他和圣诞老人几乎完全一样,''其红白相间的衣服曾经使可口可乐公司获得灵感,在1930年代画出了传遍世界的圣诞老人形象''。
在一些文化中,圣诞老人身旁跟随着Knecht Ruprecht,或是称作“黑彼得”(Black Peter)的家伙。一些版本中,玩具作坊里的侏儒制作了节日礼物,有时''圣诞老人''与''圣诞夫人''是夫妻。在圣诞季期间的北美和英国超市,都有小孩可向其要礼物的圣诞老人出现。
在冰岛的传说中,圣诞老人并不只一位,而是共有''十三位''圣诞老人,各有不同的性格,有的调皮活泼,有的慈祥温柔。
在许多国家里,孩子们准备好空的容器,以便圣诞老人可以装进一些小礼物,如玩具,糖果或水果。在''美国'',孩子们于圣诞夜在壁炉上悬挂圣诞袜,因为圣诞老人说过要在圣诞前夜从烟囱下来把礼物放到袜子里。在''其他国家'',孩子们把空鞋放到户外,以便圣诞老人可以在圣诞前夜(或圣尼古拉斯日前夜12月5日)赠送礼物。赠送礼物不单单是指圣诞老人,家庭成员和朋友也互相给予礼物。
!!! 圣诞老人的居所
而与原始的基督教传说不同,当代民间认为圣诞老人来自''北极'',如北欧各国认定的芬兰的''拉普兰区'',然而在第40届世界圣诞老人大会上,丹麦属地北美洲的''格陵兰岛''被重新议定为圣诞老人的居所所在,''大会主席称原因是“该地有众多的驯鹿”。''
!! 地区习俗
在圣诞节或圣诞夜,人们经常会准备一盘丰盛的圣诞大餐来享用,一般都是所在国家里的传统菜色。很多地区,特别是东欧,家庭圣诞大餐前人们会''禁食一阵''。很多国家里,糖果和宴请也是圣诞庆祝的重要一部分。''传说一位希望见证耶稣的糖果商人,发明拐杖糖,因倒转的拐杖与拉丁字母中的“J”相似,以表示“Jesus”的字首。''
!!! 北欧
在''瑞典'',传统上,公司会在圣诞节前一星期,邀请员工参加一个圣诞自助午餐(英语:)(julbord或jullunch)。''为防圣诞节期间食物中毒,瑞典报纸每年都__不遗余力__地作一些和实验室试验有关的报道,警告市民冷肉和蛋黄酱等食材,不要放在室温下以防变质。''圣诞节在瑞典任何一个地方都是享受美食的时节,圣诞节盛宴上的重点以''烘烤火腿''为主,但在哪一天享用,则各处乡村各处例,每个地方也不同。''瑞典还有一个约定俗成的惯例,就是在12月24日下午3时,准时收看迪士尼的特别电视节目(?)。''
''挪威''的圣诞大餐会在12月24日举行,挪威各个地区都有自己特定的食物做为圣诞晚餐,然后“Julenissen”(jule是圣诞的意思,nissen是挪威传说中的''精灵'')会带礼物给表现好的小朋友。经过安静的与家人团聚的12月25日,12月26日节礼日会有另一场大型庆祝,儿童们会在此时在邻居中挨家挨户接受款待。
''Joulupukki''(或圣诞山羊)是芬兰版的圣诞老人。他坐在驯鹿拉的雪橇里给表现好的小朋友发送礼物。
!!! 东欧
东正教的圣诞节大多定在''1月7日'',主要在东欧国家,斯拉夫的童话故事里有个“严寒老人”(Дед Мороз)的形象。根据传说,他和自己的''孙女雪姑娘(Снегурочка)''一道乘著神奇的三套车(一种装饰华丽由三只马拉动的雪橇)旅行,并且分送礼物给小孩子们。''乌克兰于2023年正式使用儒略改革历,乌克兰正教会的耶诞节日期从1月7日改为12月25日。''
在''捷克'',人们主要是在12月24日或圣诞夜(Štědrý den意思为慷慨的一天)庆祝圣诞节,这天晚上大家会相互赠送礼物,虽在12月25日或26日也可以。根据传统,礼物是由Ježíšek(“小耶稣”)或带来的。为了使节日更丰富有趣,很多古老的圣诞传统保存了下来。人们被告戒在正式的晚宴准备好前,圣诞夜里不能吃任何东西,为了能看见闪闪发亮的烤猪。礼物被安置在圣诞树下(通常是云杉或松树)。人们将会在晚餐后开启自己的礼物。
另外''捷克''的圣诞传统习俗,还包括对来年的预测。''他们将苹果切开,如果第一下能看见苹果核,就预示来年好运气,如果没有就表示来年不顺''。''女孩们将自己的鞋子从肩头抛过,如果鞋尖指向门的方向,就预示自己来年将会出嫁。另一个传统,是将一点熔铅倒入水中,根据铅在水中形成的形状来猜测来年的运势。''
在''波兰'',圣诞夜是宴会的第一天。''宴会是从圣诞夜第一颗星星出现时开始的'',然后大家开始互赠礼物。在第二天人们会走访亲戚朋友们。
在''斯洛伐克'',圣诞节是一个大型的家庭、食物、宗教庆典。2001年,一个大型的''耶稣诞生场景''在布拉迪斯拉发造建并展出,还计划将它封装以在其他城市展出。
在''俄罗斯'',从后的1991年圣诞节苏联解体后,''开始公开恢复庆祝圣诞节''。圣诞夜的“神圣晚餐”包含12道菜肴,每一道都是为了纪念耶稣的门徒。虽然俄国的传统有些被转移到新年,但大多数仍被保留至今日,例如:“严寒老人”和雪姑娘的拜访和礼物分送。俄国许多现存的圣诞节习俗,包括圣诞树(ёлка),都在彼得大帝18世纪末期的西游之后流传开。
!!! 西欧
在英国,''圣诞拉炮''是一种庆祝圣诞节不可或缺的形式,而圣诞童话闹剧(pantomime)更是风行于年轻的家庭中。节庆Nine Lessons and Carols在剑桥是一个很流行的宗教活动。自从1947年开始,每年挪威首都奥斯陆都会赠送一棵云杉树给英国人民,作为表示英国于二战支援挪威的感谢之意。这棵树立于伦敦的特拉法加广场(鸽子广场,Trafalgar Square)而且是全英国最知名的圣诞树,象征着英国和挪威人民之间的友谊。
''德国和荷兰在12月6日''庆祝类似英语国家的圣尼古拉节。荷兰语称作(圣尼古拉斯事件)的日子要比圣诞节重要的多,虽然近年来,一些荷兰人也开始庆祝圣诞夜和圣诞老人。
这一形象是由真实的圣尼古拉斯和英国以及美洲的圣诞老人综合演化而来,''Sinterklaas会在12月5日''给祈求礼物的小朋友带来礼物。他的装束是红色的主教外套和主教法冠,骑着一匹白色骏马在房顶间穿梭,Sinterklaas有一群被称为黑彼得的喜爱恶作剧的助手。在德国、奥地利和瑞士的部分地区,令小朋友感到恐惧的可内希特·鲁普雷希特或坎卜斯也会出现在传说中。
在德国,圣诞节的庆祝在大部分地区仍然是传统之一。其圣诞节有点像中国的农历新年,一家人会一起吃晚餐,饭后一起听音乐和谈谈这一年的生活情况,且小孩会于空闲时或学校美劳课时,自行制作手工艺品,或用自己的零用钱,买礼物送给父母亲,来度过圣诞节。然后12月26日,会有亲戚来作客,或去拜访亲戚家,有点像中国春节的拜年。在圣尼古拉斯日后,圣诞节基本是属于儿童们的节日,一般真正的圣诞礼物在12月24日平安夜送出,在简单的晚餐后,圣诞礼物会放置在圣诞树下。而圣诞大餐传统上要在12月25日享用,主菜一般是家禽(典型的例子是一只烤鹅)。圣诞礼物是与圣尼古拉斯长的很像的(直译圣诞老人)带来的,或者有时候由 (一位可能是或可能不是代表婴儿时期耶稣的顽皮的小朋友)带来。商业上,Striezelmarkt绝对是一个全世界的圣诞礼物制作中心,这也是德国东部城市德累斯顿地区的骄傲,巧妙制作和印刷的产品被销往世界各地。不过近年来,随着中国制造的玩具大量涌入,给德累斯顿当地的企业带来了不少的压力。甚至有些公司开始打算把车间转移到东欧、土耳其甚至亚洲地区,以提高产品在价格上的竞争力。
!!! 北美洲
1955年,美国科罗拉多州的一间百货公司进行促销,广告中的电话号码''误刊为大陆航太防卫司令部(Continental Air Defense Command,北美防空联合司令部的前身)'',许多美国儿童拨打此电话,询问圣诞老人的行踪。指挥官哈利·萧普上校(Harry Shoup),下令下属在雷达上观察圣诞老人行踪,并对小朋友们提供最新资讯。''此后,[[北美防空联合司令部|https://www.noradsanta.org/en/]]在每年都会跟踪圣诞老人在全球的行程,这引起了众多媒体的关注和报道。''
<<card
text:"
犹大国的亚撒王在位第二年,[[耶罗波安|👑耶罗波安 Jeroboam]]的儿子[[拿答 Nadab|👑拿答 Nadab of Israel]]登基做以色列国的王。他统治了以色列国两年。他一直做耶和华眼中邪恶的事,走他父亲走的路。
<br>他父亲使以色列人犯罪,他也犯了同样的罪。以萨迦家族亚希雅的儿子[[巴沙|👑巴沙 Baasha of Israel]]密谋背叛拿答。''巴沙''趁拿答和以色列全军围困非利士人的基比顿,就在基比顿杀了他。犹大王[[亚撒|👑亚撒 Asa]]在位第三年,''巴沙''杀死了拿答,坐上了他的王位。
<br>巴沙一登基,就杀了''耶罗波安''全家。耶罗波安家族的所有人被杀死了,一个都没剩下。
"
footer:"Kings 15:25"
>>
''巴沙''继续从事谬误崇拜,并常常与犹大争战。耶和华预言他必除尽巴沙的家,像他灭尽''耶罗波安''的家一样。巴沙作王24年后由儿子[[以拉|👑以拉 Elah]]继位,他在登位两年之后被仆人[[心利|👑心利 Zimri]]所杀。
''心利''登基之后随即''灭绝巴沙的全家''。百姓接获消息之后便立元帅[[暗利|👑暗利 Omri]]作王,并上去围攻心利的首都得撒。''心利''见大势已去,便放火焚烧宫殿,然后自焚而死。
那时候,以色列国的人分成两派,一派拥护吉纳的儿子''提比尼 Tibni'',要立他为王,另一派拥护''暗利''。但拥护''暗利''的人占了上风,胜过了拥护吉纳的儿子提比尼的人。提比尼死后,''暗利''成为国王。
''暗利''买了撒马利亚山,在山上建造''撒马利亚城 Samaria'' (意思是“属于撒默宗族”)。他行耶罗波安所行的一切恶事,崇拜偶像而触怒耶和华。事实上,他所作的恶比以前列王所作的更甚。他作王12年后去世,由儿子[[亚哈|👑亚哈 Ahab]]接续他作王。
''亚哈''娶了西顿王的女儿[[耶洗别 Jezebel|耶洗别 Jezebel]]为妻,并在撒马利亚为''巴力神''筑了一座坛。他的恶行比以前诸王更甚。
那时伯特利人希伊勒重建[[耶利哥城|耶利哥 Jericho]],在建城期间,亚哈被耶和华惩罚丧失了长子和幼子。
《路加福音》第4章第14节至《路加福音》第9章第62节。
耶稣在家乡拿撒勒的会堂里清楚表明自己的使命,读出《以赛亚书》第61章第1节至第2节参的宗教预言,并将其应用在自己身上,说:“主的灵在我身上,因为他用膏膏我,叫我传福音给贫穷的人;差遣我报告被掳的得释放,瞎眼的得看见,叫那受压制的得自由,报告上帝悦纳人的禧年。”最初人们对耶稣的话颇有好感,但当他继续说''先知在自己的家乡都是不受欢迎的'',他们的好感就变成愤怒了;他们甚至试图杀死耶稣。
于是,耶稣下到迦百农,在那里治愈许多人。人们见过他的神迹后尾随耶稣,希望留住他,但耶稣告诉他们说:“我也必须向别的城宣告上帝王国的好消息,因为我是为此被差来的。”他接着转至犹太地区,在其中的会堂里传道。
在加利利,耶稣使后来成为十二使徒的[[✝️彼得 Saint Peter]]、[[✝️雅各 James the Great]]、[[✝️约翰 John the Apostle]]神奇地捕到大量的鱼。他告诉''[[西门|✝️彼得 Saint Peter]]''说:“不要怕,从今以后,你会得到(捕到)活人了。”于是,他们撇下一切,跟从耶稣。
<a href="https://www.wikiwand.com/en/The_Calling_of_St_Matthew_(Caravaggio)">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/4/48/The_Calling_of_Saint_Matthew-Caravaggo_%281599-1600%29.jpg/1478px-The_Calling_of_Saint_Matthew-Caravaggo_%281599-1600%29.jpg"
caption:"The Calling of Saint Matthew by [[Caravaggio|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%8D%A1%E6%8B%89%E7%93%A6%E4%B9%94%20Caravaggio%201571-1610:%5B%5B%E5%8D%A1%E6%8B%89%E7%93%A6%E4%B9%94%20Caravaggio%201571-1610%5D%5D]] 1599–1600"
width:"300px"
align:"left"
tooltip:"">>
</a>
耶稣继续祷告、教导人,“主的能力与耶稣同在,使他能医治病人。”耶稣召请后来成为十二使徒的另一人——利未([[✝️马太 Satint Matthew]],一个受人鄙视的税吏),去跟从他。利未大排筵席款待耶稣,并有“许多税吏”一同坐席。结果,这导致了耶稣和[[法利赛人 Pharisees]]的''第一场''冲突:法利赛人质问他为什么收税人和罪人一起吃喝,耶稣回答“健康的人不需要医生,生病的人却需要。32 我来不是要呼召正义的人,而是要呼召罪人悔改。”
以后更有一系列的冲突发生。法利赛人因此怒不可遏,遂密谋要陷害耶稣。
经过彻夜向上帝祷告之后,耶稣在门徒当中拣选了[[十二使徒|十二使徒 Twelve Apostles]]。他继续为人治病。然后,耶稣说出载于《路加福音》第6章第26节至第49节参的传道演讲。这个演讲和《马太福音》第5至7章的“[[登山宝训|登山宝训]]”十分类似,只不过《路加福音》中这一部分篇幅较为简短。
<<card
text:"
“你们贫穷的人有福了,因为上帝的王国是你们的。
<br><br>
“你们现在饥饿的人有福了,因为你们将要饱足。
<br><br>
“你们现在哭泣的人有福了,因为你们将要欢笑。
<br><br>
你们因为人子而被人憎恨、排斥、侮辱,被人冠上恶名,你们就有福了。那时候,你们要欢喜雀跃,因为你们在天上有丰厚的奖赏。他们的祖先也是这样对待先知的。
<br><br>
“你们富有的人有祸了,因为你们已经得到了全部的安慰。
<br><br>
“你们现在饱足的人有祸了,因为你们将要饥饿。
<br><br>
“你们现在欢笑的人有祸了,因为你们将要哀痛哭泣。
<br><br>
“人人都赞美你们的时候,你们就有祸了,因为他们的祖先也是这样对待假先知的。
<br><br>
“你们听我说话的人,我告诉你们:要爱你们的敌人,向恨你们的人行善。诅咒你们的,你们要给他们祝福;侮辱你们的,你们要为他们祷告。有人打你一边的脸,你就连另一边也让他打;有人拿走你的外袍,你就连内袍也让他拿走。有人向你求什么,你都要给他;有人拿走你的东西,你不要向他要回来。
<br><br>
“你们希望别人怎样对待你们,你们就要怎样对待别人。
<br><br>
你们只爱那些爱你们的人,有什么值得称赞的呢?就连罪人也爱那些爱他们的人。
<br><br>
你们只善待那些善待你们的人,有什么值得称赞的呢?连罪人也是这样做的。
<br><br>
如果你们借钱给别人而期望偿还,这有什么值得称赞的呢?就连罪人也会借钱给罪人,期望全数收回。 相反,要爱你们的敌人,总要善待人,借钱给人也不期望收回。这样,你们就会得到丰厚的奖赏,也会成为至高者的儿子,因为忘恩负义的恶人,他也恩待。
<br><br>
要富于怜悯,像你们的天父充满怜悯之情一样。
<br><br>
“不要再妄自审判人,你们就不会被审判;不要再谴责人,你们就不会被谴责。要宽恕人,你们就会被宽恕。 要常常施与,人们就会向你们施与。他们会把充足的分量倒进你们的衣袋里,又摇又压,还是会溢出来。你们用什么量器量给人,对方也会用什么量器量给你们。”
"
footer:"Luke 6:20"
>>
耶稣回到迦百农,一个军官派人请求他医治一个病了的奴隶。军官觉得自己不配到耶稣家里请他,于是只请求耶稣在他当时身处的地方“说一句话”,他凭借自己的信仰,奴隶就会不药而愈。耶稣深受感动,说:“我告诉你们,这么大的信心,就是在以色列中,我也没有遇见过。”
接着,耶稣''第一次使死者复活''。他所复活的是拿因城一个寡妇的独子,因为耶稣“怜悯她”。
当时,关于耶稣的消息传遍了犹太,施洗约翰就从狱中派人问耶稣说:“那将要来的是你吗?”耶稣答复使者说:“你们去,把所看见所听见的事告诉约翰,就是瞎子看见、瘸子行走,长大麻疯的洁净,聋子听见,死人复活,穷人有福音传给他们。凡不因我跌倒的,就有福了!”
在十二使徒陪伴之下,耶稣“逐城逐村地周游各地,传讲和宣告上帝王国的好消息”。在耶稣讲完位于《路加福音》第8章第4节至第15节参的[[撒种的比喻|天国的比喻]]后(缩短了最后的比喻为“有的落在好土上,发芽之后,就结出100倍的果实。”),他总结道:“__隐藏的事没有不显露出来的,小心掩盖的事也不会永远没有人知道,不被公开__。所以你们要留心怎样听。''凡是有的,还要给他更多;凡是没有的,就连他自以为有的,也要拿走''。”
<<card
text:"
原来耶稣已经吩咐邪灵从这个人身上出来。邪灵曾多次抓住他,他也一再被人用锁链和脚镣锁住,看管起来。可是他挣断锁镣,被邪灵驱赶到偏僻的地方。耶稣问他说:“你叫什么名字?”他说:“叫军团。”''原来有许多邪灵附在他身上''。他们不断恳求耶稣不要吩咐他们到无底深渊去。当时有一大群猪在山上吃东西,他们就恳求耶稣准许他们附在猪身上。耶稣准许他们这样做。邪灵就从那个人身上出来,附在猪身上。猪群冲下悬崖*,掉进湖里淹死了。放猪的人看到发生的事,就纷纷逃跑,到城里乡间报信。
"
footer:"Luke 8:26 重新整理了被邪灵附身随猪滚下山崖的事迹"
>>
之后,耶稣继续施行各种神迹。他也赐给十二使徒制服鬼灵的权柄和医治疾病的能力,并且差遣他们出去“传讲上帝的王国和医病”。
耶稣也神奇地喂饱五千人,并且在山上祷告时改变形貌(面貌就改变了,衣服也变得光洁雪白。忽然有两个人出现,跟耶稣交谈。这两个人就是[[摩西 Moses]]和[[🗣️以利亚 Elijah]])。
第二天,门徒不能治好一个被鬼灵附身的男孩,耶稣却把他医好了。他提醒那些想跟从他的人,说:“狐狸有洞,天空的飞鸟有窝,但人子连安枕的地方也没有(没有属于自己的家)。”
还有一个人说:“主啊,我会跟随你,可是容许我先向家人道别吧。”耶稣对他说:“''手扶着犁又向后看的,绝不适合进上帝的王国。''”
(约拿书3:1-4:11)耶和华向[[🗣️约拿 Jonah]]重申他的吩咐。约拿不再逃避,于是遵嘱前往[[尼尼微|尼尼微 Nineveh]]。他在城的大街上宣告说:“再等四十日,尼尼微必倾覆了!”(约拿书3:4)他的传道十分有效。尼尼微城的居民纷纷表示悔改,百姓开始对上帝表现信心。
国王下令人畜都当禁食,披上麻布。耶和华便大施怜悯,保全了该城。
约拿对此觉得忍无可忍。他告诉耶和华他早就知道上帝会表现怜悯,这就是他逃往他施的原因。他但愿就此死去。约拿愤愤不平,遂在城的东边搭了一座棚,坐在棚里要看看事情的发展。耶和华使一棵蓖麻长起来替这个满腹牢骚的预言者遮荫。约拿虽然为此而高兴,却可惜为时颇短。
翌日黎明,耶和华安排了一条虫子啮咬蓖麻,使之枯去,以致约拿饱受炎热东风的吹袭和日头曝晒。约拿再次求死。他自以为义地认为自己发怒有理。但耶和华指出他的心:约拿因一棵蓖麻枯萎而感到惋惜,但却对耶和华顾惜尼尼微大城的老少婴孩大感不悦。
(覆盖以西结书12:1-19:14)以西结在另一出象征性的戏剧中担纲演出。他在日间要从家中带出流亡所用的物件,到了晚上则要蒙住脸从墙上的洞走出去。他解释说这是个标记,表明“他们必被掳去”。(12:11)愚顽的假先知随从自己的心意行事。他们大声疾呼说:‘平安了!’其实并没有平安。(以西结书13:10)即使有挪亚、但以理和约伯住在耶路撒冷,他们也不能救别人,只能救自己的性命。
耶路撒冷好像一株无用的葡萄树,木头既不能作杆子,又不能作钉子。它的两端给火烧了,中间也烧焦了,实在已毫无用处。耶路撒冷变得不忠和无用。她生在迦南地,甫出生即被遗弃,耶和华收养了她,将她养育成人,并跟她订立婚约。上帝使她极其美貌,“达到王后的尊荣”。(16:13) 可惜她水性杨花,任意与过路的列国行淫。她崇拜他们的偶像,把儿女焚烧作祭物。她最终必被这些国家——她的情人——所毁灭。她的罪孽比姊妹所多玛及撒马利亚更为深重。虽然如此,耶和华仍会照着与她所立的约赦免和复兴她。
耶和华对先知说了一个谜语,然后加以解释。谜语说明耶路撒冷转向埃及求助是徒劳无益的。有一只大鹰(尼布甲尼撒)前来把高大的香柏树的树梢(约雅斤)折断,带往巴比伦去,然后另栽一棵葡萄树(西底家)。葡萄树把枝子弯向另一只大鹰(埃及)。葡萄树连根被拔出。耶和华会从高大的香柏树顶折下一条嫩枝栽于极高的山上。后来它长大成为佳美的香柏树,“各类飞鸟”都必宿在其下。所有人都必须知道,这一切全是耶和华的作为。(以西结书17:23,24)
耶和华斥责被掳的犹太人所流传的俗语:“父亲吃了酸葡萄,儿子的牙酸倒了。”不,‘谁犯了罪,谁就该死。’(以西结书18:2,4)义人必能存活。
''正义的人的正义只能算在自己的账上,邪恶的人的邪恶也只能算在自己的账上。''
<<card
text:"
“至高主宰耶和华宣告:‘我不喜欢任何人死亡。所以你们要回头并活下去。’”
"
footer:"Ezekiel 18:32"
>>
(覆盖《民数记》第10章第11节-《民数记》第21章第35节)第二年2月20日,耶和华终于把云彩从帐幕上收去,借此显示以色列人要离开西奈的地区了。 他们抬着耶和华的约柜,朝着北面直线距离约240公里的加低斯·巴尼亚进发。他们在日间前行时,耶和华以云彩覆盖他们。''每当约柜起行,摩西便祈求耶和华兴起使他的仇敌四散;约柜停住,他就祈求耶和华“回到以色列的千万人中”。''(《民数记》第10章第36节)
可是,营中发生了难题。在朝北向加低斯·巴尼亚进发的途中,百姓至少曾三次发怨言。耶和华降下烈火烧灭了他们当中的一些人以平息第一场怨言。接着他们当中‘混杂的百姓’煽动以色列人哭号埋怨,''说他们不像在埃及时一样有鱼、黄瓜、西瓜、韭菜、葱、蒜可吃,而是只有吗哪可吃。''(《民数记》第11章第4节) 摩西大感苦恼,以致他求耶和华将他杀了,因为他不愿再作百姓的养育之父了。耶和华体恤摩西,于是把降与他的灵分赐给70个长老以协助摩西在营中作预言者。后来,营中有大量的肉吃。像前一次一样,有风从耶和华那里刮起,把鹌鹑由海面吹来。''百姓贪得无餍地大量捕取,并自私地把鹌鹑屯积起来。耶和华因百姓的自私贪婪向他们大发烈怒,在他们当中杀了许多人。''
难题接踵而来。[[米利暗|米利暗 Miriam]]未能适当地体会弟弟摩西身为耶和华的代表的地位,遂借故因他的妻子(不久之前返回以色列的营里)而毁谤他。他们要求获得更大的权柄,就像摩西所拥有的一样,虽然“摩西为人极其谦和,胜过世上的众人”。(《民数记》第12章第3节参)耶和华亲自处理事情,让众人知道摩西的确居于特殊的地位。他更击打很可能是始作俑者的''米利暗'',使她染上大痳疯。惟独凭着摩西的求情,她才得以复原。
以色列人来到''加低斯'',在应许之地的边境上安营。耶和华于是吩咐摩西打发探子前往窥探应许之地。 他们从南地上去,向北“直到哈马口”,40天内走了数百哩的路程。(《民数记》第13章第21节参) 他们从迦南地带回来一些丰盛的果实,但其中十个探子缺乏信心,声称攻打这些坚固的城邑和强壮的民族是愚不可及的事。迦勒试图以有利的报告使会众平静下来,但却劳而无功。悖逆的探子使以色列人大起恐慌,声称该处是“''吞吃居民之地''”,并说:“我们在那里所看见的人民都身量高大。”营中的百姓怨声载道之际,约书亚和迦勒力言:“有耶和华与我们同在,不要怕他们!”可是,民众却呼喊要用石头打死他们。
接着耶和华直接干预事态,他对摩西说:“这百姓藐视我要到几时呢?我在他们中间行了这一切神迹,他们还不信我要到几时呢?”(《民数记》第14章第11节)摩西恳求耶和华为了他自己的圣名和声誉不要灭绝以色列国。故此,耶和华下令以色列人要在旷野流浪,直至一切曾被数点、20岁以外的人全都死掉为止。在被数点的男子当中,惟独迦勒和约书亚才获准进入应许之地。但百姓却擅自闯上去,结果被亚玛力人和迦南人击退,大败而回。由于藐视耶和华及他的代表,以色列人付出了惨重的代价。
叛逆的事却继续发生。可拉、大坍、亚比兰和以色列会众中的250个首领聚集起来攻击摩西和亚伦。摩西让耶和华亲自解决这个争论,他对叛党说:‘你们要拿香炉来,把火盛在炉中,把香放在其上,让耶和华作出拣选。’(《民数记》第16章第6节至第7节)耶和华的荣光就向全会众显现。''他迅速执行判决,使地开了口,把可拉、大坍和亚比兰的家眷都吞下去'',然后他发出火来烧灭了献香的250个人,可拉也包括在内。 第二天,百姓又向摩西和亚伦发怨言,埋怨耶和华的作为。因此他以瘟疫击打他们,共杀了14700个发怨言的人。
会众在应许之地的边界上再次因没有水喝而向摩西争闹。耶和华视之为百姓向他争闹,便在荣光中向摩西显现,吩咐他拿杖使磐石发出水来。
摩西在盛怒之下用杖击打磐石两下。百姓和牲畜都喝了从磐石流出来的水,但摩西和亚伦却没有将功劳归给耶和华,“摩西、亚伦召集会众到岩石前,对他们说:“听着,你们这些反叛的人!难道非要''我们''从岩石中打水给你们吗?”(强调了是他们而不是耶和华把水变出来)
<a href="https://www.wikiwand.com/en/Nehushtan">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/a/af/The_Brazen_Serpent.jpg"
caption:"Moses lifts up the brass serpent, curing the Israelites from poisonous snake bites in a painting by Benjamin West."
width:"300px"
align:"right"
>>
</a>
虽然旷野的艰辛旅程已行将结束,但由于他们两人行事不智,招惹耶和华不悦,因此真神说他们必不得进入应许之地。 不久亚伦死在何珥山上,他的儿子以利亚撒继任大祭司。
以色列人转向东面,希望穿过以东的国境,但却遭严词拒绝。他们只好绕道不入以东国境。就在这个时候,百姓再度因埋怨真神和摩西而惹起难题。他们厌恶吗哪,且觉得口渴难耐。耶和华因他们的悖逆使毒蛇进入他们当中,咬死了许多人。最后,摩西向耶和华求情,真神于是吩咐他造一条''铜制的火蛇''挂在柱上。凡被咬的,只要注视这蛇,就必得活。 以色列人向北进发,但相继受到好战的阿摩利王西宏和巴珊王噩所阻挠。以色列人击败了他们,并且占领了他们在大裂谷以东的国土。
经文路加福音13章22-19章27
耶稣用生动的比喻将听众的注意引到上帝的王国之上。他表明那些追求显赫虚荣的人反会受到贬抑。''人若摆设筵席,就当邀请贫穷的、无力回报的人赴宴;这样就有福了,因为他们没有什么可以回报你。正义的人复活的时候,他就会得到回报。''
此后,耶稣说了关于一个人摆设盛大晚宴的比喻。受到邀请的人一个复一个提出推辞的借口章一个说自己刚买了一块地,另一个说自己买了一些牛,还有一个则说自己刚娶了妻。家主一怒之下,派人出去“领那贫穷的、残废的、瞎眼的、瘸腿的来”。他宣告起初受到邀请的人,没有一个可以“得尝”他的晚宴。
“''一个悔改的罪人,会比99个不用悔改的正义的人,为天上带来更大的喜乐。''”
然后耶稣提及一个浪子要求父亲把属他的家产分给他。之后他“任意放荡”,挥霍钱财。最后浪子饥寒交迫,遂醒悟过来,决定回家任凭父亲处置,“我再也不配称为你的儿子了。你把我当作一个雇工吧。” 他的父亲动了怜悯的心,就“跑去抱着他的颈项,连连与他亲嘴”。父亲给他一件上好的衣服,为他准备盛筵,“他们就快乐起来。”但他的哥哥却不肯和他们一起作乐,因为自己多年像奴隶一样为他父亲工作却没有得到过奖赏,弟弟挥霍了家产却得到原谅。父亲仁慈地纠正他的哥哥,说:“儿啊!你常和我同在,我一切所有的都是你的;只是你这个兄弟是死而复活、失而又得的,所以我们理当欢喜快乐。”
<<card
text:"
“''人在最小的事上忠心,在许多事上也忠心;人在最小的事上不义,在许多事上也不义''。你们如果在不义的钱财上不忠,谁会把真正的财富托付给你们呢?你们如果在别人的东西上不忠,谁还会把本来要给你们的东西交给你们呢? ……''你们不能又做上帝的奴隶,又做财富的奴隶。'' ……受世人尊崇的,在上帝眼中却是可憎的。”
"
footer:"Luke 16:10"
>>
在[[罗波安|👑罗波安 Rehoboam]]的统治下,犹大人也行耶和华眼中看为恶的事,转而从事偶像崇拜。
<<card
text:"
罗波安的母亲叫''拿玛'',是亚扪人。犹大国的人做耶和华眼中邪恶的事。比起他们的祖先,他们犯的罪更让上帝愤怒。他们在山丘上,在茂盛的树下,为自己建造祭拜场、神柱、神木。境内还有''男庙妓''。他们模仿那些在以色列人面前被耶和华赶走的国族,做了这一切可憎的事。
"
footer:"Kings 14:21"
>>
后来埃及王犯境,夺走了圣殿的许多财物。''罗波安''统治了''17年''之后去世,儿子''[[亚比央|👑亚比央 Abijam]]''继位作王。
他继续行恶得罪耶和华,在位''三年''便去世了。他的儿子[[亚撒|👑亚撒 Asa]]登基为王,但亚撒却专心一意事奉耶和华,把偶像从国中除去。
以色列常常和犹大王[[👑巴沙 Baasha of Israel]]争战。''亚撒''得''亚兰王''之助把以色列兵击退。亚撒一共作王41年,死后由儿子[[约沙法|👑约沙法 Jehoshaphat]]继位。
经文路加福音10章1-13章21
耶稣传道的时候,有一个人想证明自己公义,就问耶稣说:“谁是我要爱的人呢?”为了回答这个问题,耶稣说了善心的好撒马利亚人的比喻。有一个人被盗贼打得半死,躺在路旁。在路旁经过的''祭司''和没有属于自己的家都对他视若无睹。一个受人鄙视的''撒马利亚人''却停下来,小心翼翼地料理他的伤口,把他抬到自己的牲口上,送到客店里,并且花钱请人照顾他。“怜悯他的”那个人才是要爱的人。
在一个女人马大家里,耶稣婉转地责备马大过于为家务焦虑,没有认真听他讲话,并称赞她的妹妹马利亚认真坐下来聆听他说话。
耶稣把主祷文传授给门徒,教他们要恒切祷告,说:“''要不住恳求,就必赐给你们;要不住寻找,你们就必寻见。''”
“''眼睛是身体的灯。要是你的目光专注,全身就都光明;要是你的目光显出贪欲,身体就黑暗''。所以你要警觉,恐怕你里面的光原来是黑暗。你全身明亮,没有一点黑暗,就会光辉灿烂,像灯光照耀你一样。”
耶稣再次和群众一起的时候,有一个人向耶稣提出请求,说:“请你吩咐我的兄长和我分开家业。”耶稣回答时指出难题的核心,说:“要小心提防各种贪婪,''因为人不管多么富有,他拥有的东西也不能给他生命''。”
<<card
text:"
“所以我告诉你们,不要再为生命忧虑吃什么,为身体忧虑穿什么。''生命比食物宝贵得多,身体也比衣服宝贵得多''。想想看,渡鸦不撒种也不收割,没有粮仓也没有库房,上帝还是养活它们。你们不是比飞鸟宝贵得多吗?”
"
footer:"Luke 12:22"
>>
(覆盖《民数记》第1章第1节-《民数记》第10章第10节)以色列人在[[西奈|西奈山 Mount Sinai]]的山区生活了约有一年。''他们在该处被重整为一个紧密的组织''。
于是耶和华吩咐他们统计20岁以外的男丁数目。各支派,从玛拿西的32200名壮丁至犹大支派的74600名男丁,共计有603,550名够资格在以色列军队中服役的壮丁,此外还有一大群利未人、妇女和孩童——总共大约有三百万过外的百姓。 会幕和利未支派被安置在营的中央。其馀的以色列人则每三个支派为一组,各按指定的位置安营。在起行时,每个支派均须依照训示顺序起行。耶和华向他们颁下训示,圣经说:“以色列人就这样行,……都是照耶和华所吩咐摩西的。”(《民数记》第2章第34节)他们服从耶和华及尊重真神的显形代表摩西。
利未人被区别出来特别为耶和华服务,以作为以色列人首生人畜的赎价。他们按照[[利未|利未 Levi]]三个儿子——[[革顺|革顺 Gershon]]、[[哥辖|哥辖 Kehath]]及[[米拉利|米拉利 Merari]]——的家室分成三组。他们根据这种区分被派在不同的地点安营和担当不同的工作任务。 30岁以上的人担任扛抬搬运帐幕的吃力工作。年满25岁的人则担任各种较轻省的工作。
为了保持以色列营的洁净,真神立下了有关病人''隔离检疫''的训示,行事不忠实的赎罪赔偿之例,疑妻行淫的试验之法,及许愿离俗归耶和华作拿细耳人之例。既然他们是真神名下的百姓,他们必须遵守他的命令与世俗保持分离。
述说完若干在上个月发生的事之后,摩西接着论及12支派的首领在祭坛落成启用时一段为期12天的时间内奉献供物。他们没有彼此竞争,亦无自我炫耀;每个人所奉献的东西都与别人的完全相同。人人都必须谨记,耶和华在各首领和摩西之上,向摩西发出训示。他们千万不可忘记与耶和华的关系。[[逾越节|Passover 逾越节]]的目的是要提醒他们耶和华为了拯救他们脱离埃及而施行的伟举。离开埃及后的第二年,他们在旷野按照指定的时间庆祝这个节日。
耶和华以带领以色列人出埃及的同样方式指引这个国家前行,在日间以云彩遮盖帐幕,夜间则有火柱照耀。云彩前行,整个国家便前行。云彩在帐幕上停住,整个国家便停下来安营,有时逗留几天,有时则达一个月或更长的时候。经文告诉我们:“他们遵耶和华的吩咐安营,也遵耶和华的吩咐起行。他们守耶和华所吩咐的,都是凭耶和华吩咐摩西的。”(《民数记》第9章第23节参) 在他们即将离开西奈的时候,他们接获吩咐要制银号,用指定的吹号方式召集各人及在旷野的旅途上指示他们如何列队安营。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
<<tabs "[tag[地点]]" "Area of Greek">>
''Svartálfaheimr'',"''黑精灵的家园 Home of black elves.''"黑精灵斯瓦塔尔法(''svartálfar'')的领地,与光精灵阿夫海姆(Álfheimr)的领地相对。
它似乎与矮人之地同义。这个名字在《散文埃达》中出现过两次。在《吉尔法金宁》(Gylfaginning)中,奥丁派斯基尔尼尔前往斯瓦塔尔法海姆(Svartálfaheimr)取回羁绊格莱普尼尔(Gleipnir)。在《Skáldskaparmál》中,[[⚡众神之父奥丁(神圣) Odin]]派''洛基''去黑精灵的国度采购黄金,以便他们能偿还因杀死赫雷斯马尔的儿子奥特尔而欠下的血债。在那里,洛基遇到了侏儒安德瓦里,并强迫他交出所有黄金。
父亲是宙斯/[[阿特柔斯(Atreus)|阿特柔斯 Atreus]]家族的创始人
最著名的是他在[[塔尔塔罗斯|😈地狱塔尔塔罗斯 Tartarus]]的惩罚。
坦塔罗斯国王在被邀请与诸神共进晚餐时,将他的儿子[[佩罗普斯(Pelops)|珀罗普斯 Pelops]]切开,煮熟,并将其作为食物,以考验他们是否真的通晓一切。宙斯震怒,将他打入冥界。也最终被关进了塔尔塔罗斯。 ([[另一个煮了儿子的人|吕卡翁 Lycaon of Arcadia]])
他还从诸神那里偷取了安露西亚,并告诉他的人民其秘密。
另一个故事提到,他持有赫菲斯托斯锻造的金狗,被坦塔罗斯的朋友潘达鲁斯偷走。坦塔卢斯将金狗保管起来,后来向潘达鲁斯否认金狗在他手上。
坦塔罗斯对自己行为的惩罚(现在是 "没有满足的诱惑 "的谚语)是站在一棵枝干低矮的果树下的水池中。每当他伸手去拿水果时,树枝就会把他想吃的东西从他手中举起来。每当他弯下腰去喝水时,水就会在他得到任何东西之前退去。在他的头上耸立着一块威胁性的石头,就像西西弗斯的石头一样。
埃伯是诺亚儿子闪的曾孙,也是法勒的父亲。
根据希伯来圣经,埃伯去世时享年 464 岁。
''埃厄忒斯''(Aeetes/Aeëtes),希腊神话的人物,[[赫利俄斯|☀️太阳神赫利俄斯 Helios]]之子。
Aeëtes来自古希腊语 αἰετός(aietós,"鹰")。
他残暴无情,武艺高强,是科爾基斯 Colchis 的主人。伊阿宋利用埃厄忒斯女儿美狄亚对自己的感情,盗取了科爾基斯的无价之宝金羊毛,并杀害了埃厄忒斯的儿子阿布绪尔托斯。
<div>
<<list-links [tag[埃及——Symbol]]>>
</div>
<$tiddlymap view="埃及众神"></$tiddlymap>
摩西回埃及和同胞哥哥[[亚伦|亚伦 Aaron]]共同去说服法老,他请求说:“容我们去山上祭祀以色列的神耶和华。”法老从未听过耶和华,就很不敬地说:“我不认识什么耶和华,末经我的允许,以色列民不能擅自离去。”他看到以色列服役的人众多,不愿意他们旷工,反而''变本加厉''地责令督工不准照常给草到百姓作砖,而让他们自己去捡草。以色列人去哀求,却遭到重锅。
摩西被同族抱怨,就向耶和华祷告,请他显大能。神说:“我要重重地刑罚埃及, 到时候他们就知道我是耶和华。”摩西又请求见法老,这次''亚伦''将手中的杖扔在众人面前,杖就变成了大蛇。法老却招来术师,也能将杖变作蛇。亚伦的大蛇吞了法老的蛇,法老的心却仍刚硬,不放走以色列人。
!! 1 血水之灾
耶和华于是晓谕摩西说:“把那变蛇的杖伸在埃及所有的水面上,''水必变作血''。埃及遍地上的无论什么器皿都将盛满血。” 亚伦就在法老和大臣面前击打河水, 那河中的鱼在血水中无法生存,尸体让所有的河都腥臭了<<fnote "一种红色植物叫''沟鞭藻''会释放大量毒物,使鱼虾致死">>。法老却还不怕, 他的埃及百姓就沿着尼罗河挖新的水源。
(摧毁的是埃及的''尼罗河神 Hapi'')
!! 2 蛙灾
这事过去七天,耶和华又吩咐摩西说:“让亚伦把他变蛇的杖伸在江湖池上,青蛙必在水中繁殖,又一起爬上旱地进攻王宫、民宅,栖息在埃及百姓的床炉灶盆中。”亚伦在水上挥杖, 埃及四境内爬满青蛙,泛滥成灾。<<fnote "水塘中的蛙类两栖动物由于鱼死水臭,大量上岸产卵,因缺之天敌这些卵就很快变为成虫,并在居处四周寻觅虫食。">>
法老召来摩西和亚伦说:“让青蛙退去吧,我愿意放以色列人去祭祀耶和华。”这滋事的青蛙纷纷死去后,法老却改变主意,坚持不放。
(摧毁的是埃及的''丰产神/蛙头神 Hept/Hekt'')
!! 3 虱灾
神就说: “这次我要亚伦的杖击打尘土,让埃及遍地是虱子。<<fnote "叮咬人畜的虱子、蚊虫、虼蚤等小昆虫在蛙类天敌大量死去的情况下会迅猛繁殖,天气干热时寄生在人和性畜身上。">>”亚伦使虱子纷纷附在人和牲畜的身体上,法老依然固执。
(摧毁的是埃及的''[[沙漠之神 Set|赛特 Set]]'')
!! 4 蝇灾
神又说:“让成群的苍蝇进入所有埃及人的房屋和住地,唯独以色列人所在的歌珊地不受灾。”<<fnote "有类摇蚊会传染一种叫”''鼻疽''”的传染病,它是唯一会使人类和动物同时都感染的病毒,发病的人身上会长满烂疮。">> 群蝇对埃及的建筑大肆破坏,法老也无法在宫殿住下去,只好再次召摩西、亚伦说:“我容你们去祭祀,只是必须赶快返回埃及。”等苍蝇都被灭掉,法老又后悔了。
(摧毁的是埃及的''[[蝇神巴力西卜|巴力西卜 Beelzebub]]'')
!! 5 畜瘟
埃及人田间的马驴、牛羊和骆驼都遭受了重大的瘟疫,才一天,他们的牲畜就大量死去<<fnote "5苍蝇的”克星”两栖动物类因水中的 毒素而全数死亡,它们的死尸和人、动物 的烂疮使得成群的苍蝇大量滋生繁衍。">>,以色列人的却都活了下来。法老仍然不为所动。
(摧毁的是埃及的''[[牛神哈托尔|哈托尔 Hathor]]'')
!! 6 疮灾
不久,尘土都扬在埃及人和牲畜上,让他(它)们身上起泡长疮<<fnote "由于在田间的牲畜没有得到主人的 好好照管,仆人又因烂疮得不到医治,这种会叮咬牲畜的苍蝇就传染瘟疫给它们。">>。
耶和华使法老的心刚硬。
(摧毁的是埃及的''[[医治之神伊西斯|伊西斯 Isis]]'')
!! 7 雹灾
随后埃及又降下自建国来的特大冰雹<<fnote "全球气温上升导致气候异常的圣婴现象,既使河水大量滋生藻类等有毒植物,也会带来天气变化而降下严重的冰雹。">>,神让摩西传话给埃及人:“凡信我的,躲在家中就能避免。”那不信的和外面的一切蔬菜都被冰電击垮。
在埃及遍地,雹击打了田间所有的人和牲畜,并一切的菜蔬,又打坏田间一切的树木。 惟独以色列人所住的歌珊地没有冰雹。
法老终于松口说:“够了,我的百姓死 去,我实在犯了罪。走吧,我不再留你们了。”摩西离了法老,举手向耶和华祷告。一旦冰雹被收回,法老又硬了心肠,更加顽固。
(摧毁的是埃及的''[[天空之神Nut|努特 Nut]]或[[庄稼之神|欧西里斯 Osiris]]'')
!! 8 蝗灾
摩西说,如果不让他们去,成批的蝗虫<<fnote " 蝗虫在食物链被破坏的不平衡生态下,也得到大量繁殖,它们常常会越过国境,去闪电般的吃掉大片的田间庄稼。">>就侵袭埃及境内,吃被冰電破坏后的植物和一切所剩,占据埃及人的房子。埃及大臣向法老进言说:“让他们去吧。您在王宫,看不到埃及已经被破坏成什么样子了。”法老不让妇女儿童去,只让成年男人去。神就吩咐摩西将杖举向天,埃及全地漆黑一片,乌黑的天仿佛能用手摸着。因为这蝗虫遮满地面,甚至地都黑暗了,又吃地上一切的菜蔬和冰雹所剩树上的果子。埃及遍地,无论是树木,是田间的菜蔬,连一点青的也没有留下。
法老和他们求情,但蝗灾过去后,法老又一次反悔。
(摧毁的是埃及的''[[庄稼之神|欧西里斯 Osiris]]或[[𓆣圣甲虫 The Scarab beetle]]'')
!! 9 黑暗之灾
摩西向天伸杖,埃及遍地就乌黑了三天,只有以色列人家中却有亮光<<fnote " 埃及附近有大量沙漠,因气候异常之故发生沙暴,把大漠狂沙吹来掩盖了埃及人的房子,使他们无法在白天出门。">>。法老冥顽不灵,说“只是你们的羊群牛群要留下,你们的妇人孩子可以和你们同去。”
法老又一次赶走摩西,让他不要再出现,不然将会丧命。
(摧毁的是埃及的''[[光明之神荷鲁斯|荷鲁斯 Horus]]'')
!! 10 长子之灾
耶和华就说:“半夜我亲自降临到 埃及,''埃及人所有人的长子和头生的牲畜都将死去<<fnote " 密闭的储藏室中的谷物早被蝗虫等动物的粪便污染,产生了有致命毒素的''黑霉菌''。长子和长畜因得粮更多而死亡。">>''。”那天是犹太历的正月十四,神让以色列人取羊血涂到自家门框和门楣上,当晚要吃火烤的羊羔肉,作为免灾的记号。过夜,埃及地一片大哀号,每家都死了人和牲畜。法老急了,把摩西和以色列人都驱逐出境。
(摧毁的是埃及的''众神之神'')
!! 相关
[[Passover 逾越节]]
----
<<showfnotes>>
传说中,宙斯化身为鹰(或奥维德所说的大火焰),绑架了埃吉娜,把她带到阿提卡附近的一个岛屿,当时叫Oenone;从此以她的名字闻名。
埃吉娜的父亲[[阿索普斯|阿索波斯 Asopus]]追赶他们;他的搜索把他带到了科林斯,那里的[[西西弗斯|西西弗斯 Sisyphus/Sisyphos]]是国王。
西西弗斯偶然看到一只大鸟带着一个少女去了附近的一个岛,就告诉了阿索普斯。虽然阿索普斯追赶他们,但宙斯扔下了他的雷电,把阿索普斯送回了他自己的水域。艾吉娜最终生下了她的儿子[[埃亚库斯|埃阿科斯 Aeacus]](Aeacus),他成为该岛的国王。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
儿子/母亲是自己的姐姐[[Pelopia|佩洛皮亚 Pelopia]]
[[匈奴国王阿提利 Atli]]和[[古德露恩 Gudrun]]的儿子,后被古德露恩杀,将他们的心煮熟作为肴膳,把血混在酒里,又将他们的颅骨巧妙地做成酒器。
''Aeneas'' (''/ɪˈniːəs/'', Latin: [ae̯ˈneːaːs̠]; from Greek: Αἰνείας, Aineíās)
埃涅阿斯(希腊文:Αινείας,Aineías),也译作“伊尼亚斯”,''特洛伊英雄'',宙斯7世孙,达达诺斯6世孙,厄里克托尼俄斯二世5世孙,特洛斯玄孙,阿萨剌科斯曾孙,卡皮斯孙,[[安基塞斯|安喀塞斯 Anchises]]王子与爱神阿佛洛狄忒(相对于罗马神话中的爱神维纳斯)的儿子。
埃涅阿斯的父亲与特洛伊末代国王普里阿摩斯有著疏堂兄弟的关系。维吉尔的《埃涅阿斯纪》描述了埃涅阿斯从特洛伊逃出,然后建立罗马城的故事。他在希腊与罗马神话及历史中扮演很重要的角色。他也在荷马史诗《伊利亚特》和莎士比亚的《特洛伊围城记》中出现。
[[匈奴国王阿提利 Atli]]和[[古德露恩 Gudrun]]的儿子,后被古德露恩杀,将他们的心煮熟作为肴膳,把血混在酒里,又将他们的颅骨巧妙地做成酒器。
矮人铁匠,[[伊瓦尔迪 Ivaldi]]的儿子,[[勃洛克 Brokkr]]的兄弟。
! 冥界三法官之一
|!父母 |[[⚡天神宙斯 Zeus]] and [[埃吉娜 Aegina]]|
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
又译''埃阿科斯''。
根据神话,埃阿科斯是宙斯与河流神女神[[埃吉娜 Aegina]]的儿子,[[佩琉斯|佩琉斯 Peleus]]和[[忒拉蒙 Telamon]]的父亲。在特洛伊战争中,希腊联军一方有两位著名英雄([[阿喀琉斯|阿喀琉斯 Achilles]]和[[大埃阿斯|大埃阿斯 Ajax the Great]])是他的孙子(阿喀琉斯为佩琉斯之子,大埃阿斯为忒拉蒙之子)。
奥维德认为在埃亚库斯出生时,该岛并非无人居住,而是说在埃亚库斯统治期间,赫拉嫉妒埃吉娜,通过向该岛发送瘟疫或可怕的龙,蹂躏了以埃吉娜为名的岛屿,几乎所有居民都被带走了。之后,宙斯将蚂蚁变成了人,从而恢复了人口。
埃亚库斯的妻子是马人喀戎的女儿恩得伊斯,他们生下两个儿子[[忒拉蒙|忒拉蒙 Telamon]]与[[珀琉斯|佩琉斯 Peleus]]。后来埃亚库斯又迷上了海神涅柔斯的女儿普萨玛忒(一个涅瑞伊得斯)。__后者为摆脱他的纠缠,把自己变成海豹__。但这也没能骗过埃亚库斯;埃亚库斯终于占有了普萨玛忒,并与她生子福科斯(福喀斯城的名祖)。当这三个孩子逐渐长大后,忒拉蒙与珀琉斯非常嫉妒他们的同父异母兄弟福科斯,就故意在掷铁饼时把他打死。埃亚库斯得知后,将忒拉蒙与珀琉斯赶出了埃癸那岛。
古希腊大诗人品达提到了另一个有关埃亚库斯的神话:''埃亚库斯与波塞冬和阿波罗一起建造特洛伊的城墙''。城墙建好后,有三条蛇分别从三个人建造的城墙向城里爬,结果在两位大神所建的墙上爬的蛇都摔死了,而在凡人埃亚库斯所建的墙上爬的蛇则成功进入了城内。阿波罗于是解释这个征兆说,埃亚库斯的后代有一天将会征服特洛伊。''后来特洛伊果然在埃亚库斯的孙子(阿喀琉斯)和曾孙(涅俄普托勒摩斯)的帮助下被希腊人攻陷。''
死后,埃亚库斯成为哈迪斯的三位法官之一(与克里特兄弟拉达曼图斯和米诺斯一起),根据柏拉图的说法,他特别关注欧洲人到达冥界后的阴气。 在艺术作品中,他被描绘成手持权杖和哈迪斯的钥匙。
埃亚库斯在雅典和埃吉纳都有圣地, 埃吉纳人将他视为他们岛屿的守护神,为他举行Aeacea庆祝活动。
!! Offspring
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
with [[普萨玛忒 Psamathe(Nereid)]] <<list-links "[tag[普萨玛忒 Psamathe(Nereid)]] +[sort[title]]">>
or Daniel
son of [[亚比该 Abigail (widow of Nabal of Carmel)]] and [[👑大卫王 David]]
是[[亚伯拉罕|亚伯拉罕 Abraham]]在[[撒拉|撒拉 Sarah]]去世后续娶之妻。
根据《创世纪》25:2的记载,她为亚伯拉罕生了''六子''。亚伯拉罕去世后给了基土拉的儿子们一些财物,让他们移居至约旦河以东地带。 他们是''定居于巴勒斯坦南边和东边的北阿拉伯各部族的祖先''。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[num]]">>
<<<
许佩里翁之子赫利俄斯的女儿基尔克,
钟情于坚忍的奥德修斯,生下
阿格里俄斯和完美强大的拉提诺斯。
[还有特勒戈诺斯,在金色阿佛洛狄特的安排下。〕
他们在遥远的神圣岛屿的尽处,
统治着光荣无比的图伦尼亚人。
<<<神谱
军事领袖、法官和先知
也叫 ''耶路巴力Jerubbaal'',意为“巴力将会争辩”
!! 相关事迹
[[勇士基甸]]
基督徒组成的团体称为教会,是基督教的基本单位;而整个基督教在历史的发展下,分为多个宗派,包括''天主教(Catholicism)''、''东正教(Eastern Orthodoxy)''、''新教(Protestantism)''等三大分支;另一分法则为依照教会各自的礼仪传统分为东方基督教及西方基督教。''狭义上,中文“基督教”一词系指新教''。截至2022年中,全球约有25亿基督徒,包括12亿天主教徒、11亿新教徒和约3亿东正教徒等。
!! [[历史|https://www.wikiwand.com/zh-hans/%E5%9F%BA%E7%9D%A3%E6%95%99%E5%8E%86%E5%8F%B2]]
!!! 起源
基督宗教起源于公元''一世纪''(31年/33年)。新约《[[使徒行传 Acts of Apostles c.61]]》十一章记载,[[🧔🏻♀️耶稣 Jesus c.4 BC-33]]的追随者在犹太地区早期遭迫害后逃到''安提阿'',并在那里定居下来,<span class="highlight">信徒亦在那里首次被称为「基督徒」</span>。耶稣死后,使徒[[保罗 Paul the Apostle c.3-c.67]]和其他使徒重申了早期的教义。流传至四世纪的《十二使徒遗训》是最早的西方基督教入门著作,其内容深受犹太宗教影响。
据记载,犹太人''耶稣''宣称自己是希伯来人期待已久的「[[🙏弥赛亚 Messiah]]」,但当时犹太当局拒绝承认,并视为叛教者。他被判亵渎罪成,并于公元30年左右被罗马人处决。他被处决的正式罪名是领导叛乱:他被审判官彼拉多称为「犹太人的王」,而刑具十字架上亦挂有写上有关罪状的牌子。
尽管一些学者认为这是罗马对叛乱者的普通审判,圣经内的《福音书》指出,罗马的指控实际上是为了''安抚犹太当局'',基督徒相信《旧约圣经》这部收集数千年来资讯的犹太宗教经典,预言了后来《新约圣经》所记载耶稣的死亡和被辱。 例如,《以赛亚书》中提到了他被掌掴、鞭打及其他相关记载。
耶稣的使徒是他的生活和教导的主要见证人,另教会早期亦任命了约70位使徒,包括[[✝️雅各 James the Great]]、[[马可 Mark the Evangelist c.12-c.68]]、[[路加 Luke the Evangelist c.1/16-c.84/100]]、[[抹大拉的马利亚 Mary Magdalene]]等 ,他们也跟随耶稣前赴各地传教,见证了他行的神迹。耶稣在被钉十字架后,使徒和其他追随者声称他从死里复活,并开始传播更多信息,当时部分使徒更写成《福音书》和《使徒书信》。
《新约》二十七卷书中很多都出自使徒''保罗''手笔,当中十二卷《书信》清楚指出他的作者身份,一些教会传统甚至指出他也是《希伯来书》的作者。
《路加福音》和《使徒行传》被认为是''路加''医生所写。许多人相信路加是受''保罗''影响,《使》一书透露保罗未追随耶稣前是犹太公会领袖''迦玛列''的学生,也是当时犹太宗教权威。
追随耶稣后,''保罗''成为非犹太人族群中基督信仰主要传播者。
!!! 早期教会
直到三世纪,罗马帝国政局相对稳定,交通网络发达,基督教经以下路线迅速传播:
* 经''埃及''进入''北非、苏丹和衣索比亚''
* 经''美索不达米亚''至''波斯''和''印度''
* 经''希腊''和''罗马''到达欧洲各地
早期基督教界作家德尔图良在向一位罗马总督的演说中指出,北非迦太基基督徒数量短期内增长迅速,信徒们今日「已经充满了你们中间的每一个地方...大小城市、岛屿、要塞、城镇、市场、营地、部落、连队、宫殿、元老院、论坛」。此外,基督诞生后的几百年内,俄利根和奥古斯丁等基督教学者为神学发展作出重大贡献。
早期教会组织逐渐成形的同时,信徒亦面对严重迫害。殉道者宁死不屈,获后世称颂。《新约》的二十七书卷普遍获信徒承认为《正典》,最早期的译本亦在当时出现。教会管治上,亚历山大、安提阿和罗马市内的教会监督(即主教)相继获「牧首」的头衔。罗马皇帝''君士坦丁一世''于西元313年透过《米兰法令》 结束迫害基督徒。叛教者''尤利安''统治期间曾一度恢复迫害信徒,并试图推广其他宗教。382 年左右,罗马皇帝''狄奥多西一世''将基督宗教定为国教,乔治亚和亚美尼亚当地亦有类似发展。
在波斯帝国410年塞琉西亚会议上,塞琉西亚主教取代安提阿宗主教成为东方教会的最高权威。东方教会分裂期间,当地教会正式断绝与西方教会之联系。''千多年来,他们一直是亚洲最具影响力教会,更在印度、爪哇和中国建立教区。''
!!! 地方民族教会的出现
早期教会的核心神学问题,往往离不开''关于耶稣神性的争论''。许多早期学者,包括殉道者游斯丁和特土良,都证明相信耶稣是神。同时,亦有各界人士和团体出来否定这项教义,大量跟从亚流的主教和信徒,指出耶稣是受造之物,令争论白热化。这个争议在罗马君士坦丁大帝召集的第一次尼西亚大公会议上得到解决:亚他那修所拥护的教义最后被奉为教条。尼西亚会议后,阿里乌派的思想在国内中继续传播几十年,另在各日耳曼部落中也存在了近两个世纪。
除尼西亚会议外,教会亦召开众多解决教义问题的大公会议,希望能透过确认教会传统来令基督徒更团结。这一系列会议大多得到拜占庭皇帝的支持,以促进帝国境内信徒的合一。可惜,部分会议上使用过的神学词汇被一些来自东方操叙利亚语、亚美尼亚语或科普特语的教徒拒绝。 最后,在神学教导上的不同领受导致这些东方教会与其他教会决裂,分离出来的团体就成为后来的''东方正统教会''。
进入中世纪中期,基督信仰已经广传大半个文明世界,早期普世教会在基础信仰立场仍然相当一致,主要的神学争议在大公会议中陆续得到解决,但后来教会渐渐在神学和信仰实践中出现重大差异,为普世教会带来越来越大的问题,''1054年东西教会大分裂后教会出现西方教会和东方教会两个体系'',西方教会逐渐被罗马市主教纳入天主教会权威下,而东方教会则以「正教」之名来强调他们对守护教会传统、抗拒改变的承诺。这些东方教会,成为了今日的''东正教''。
与罗马主教管治下的天主教不同,''东正教拒绝由单一主教统领一切,其信众以君士坦丁堡牧首为领袖的同时,亦强调他与其他地方牧首在信仰上地位同等,为「同侪之首」。''
!!! 中世纪宗教改革
16世纪初,欧洲爆发宗教改革,''新教徒''公开反对罗马教皇滥权,并大力批判天主教的错误教义。改革争议中的关键问题可归纳为五个「唯独」:
# ''唯独圣经'':教会最高权威是否唯独来自《圣经》?教会领袖是否拥有与《圣经》同等权威?
# ''唯独信心'':人是否单单藉著''相信基督的牺牲''得到救赎?参与教会、「行善」是得救之条件吗?
# ''唯独恩典'':灵魂的救赎,是人类不配得、纯粹出于上帝白白的施予(「恩典」)吗?抑或部分是出于个人表现?
# ''唯独基督'':人与上帝之间,是否衹有耶稣一位调解人(「中保」)?教会领袖、圣人是否也担当这种调解角色?
# ''唯独神的荣耀'':人得到拯救,纯粹是上帝的光荣和功劳?教会组织及其领袖是否也领有功劳?
宗教改革在欧洲人心目中引发出激烈斗争,天主教徒和新教徒之争端演变成宗教迫害,最后更令无数人卷入了各种战争。
!!! 近代教会
天主教和新教随著欧洲移民而传播到''北美洲''以及''澳洲''。有别于天主教,''新教在普世教会层面上没有单一组织架构或领导'',教内几千个宗派,包括路德宗、改革宗、圣公会、浸礼宗、重洗派、卫理公会、再临宗、五旬宗等,互不统属。
在16世纪至19世纪期间的欧洲殖民化中,基督新教进一步传播至南美洲和非洲。18世纪,''东正教''亦透过移居阿拉斯加的俄罗斯人传入''北美洲'',19世纪末和20世纪初从欧洲来到北美的信徒数目更有显著增长。
在19世纪和20世纪,随著科学与技术激发了人们的想像力,许多基督教国家,特别是西欧国家,变得更世俗化。大多数共产国家的领袖都是公开的无神论者;而近代美国和其他地区传统信徒的宗教思想,也受到了进化论者的挑战。
<div>
<<toc-selective-expandable "基督教 Christianity">>
</div>
<<list-links "[tag[基督教——Symbol]] +[sort[title]]">>
<div>
<<toc-selective-expandable "基督教中的恶魔">>
</div>
|!|!基督教 |!犹太教 |
| !相同 |<|<|
|旧约相同,基督教教义脱胎于犹太教,都信奉一神,都遵守“十诫” |<|<|
| !不同 |<|<|
|!救赎观 |认为上帝是慈爱的,他令耶稣基督降生的使命就是救赎世 人,自己牺性受死来洗净人的罪,使凡信他的人不至灭亡反得永生。 |认为人类从始祖亚当起就违背了上帝的命令,''原罪与生俱来而无法洗脱'',人不能依靠自己的力量得到解决,终难免沉沦灭亡。 |
|!弥赛亚观 |初期基督教是犹太教的''异端教派'',源于它将旧约中在末世降临的''弥赛亚''解释为加利利的拿撒勒人耶稣,并作为他的专有头街。 |弥赛亚是被上帝选定治理以色列的''国王和大祭司长'',在 古以色列覆灭后的流亡时代特指''上帝将派来的复国救主'',''与 耶稣无关''。 |
|!信仰观 |保罗阐释基督的基本教义是''因信称义'',所谓“义”是来自 信仰,是对上帝的极其虔诚,''强调信心的坚定和善良行为的重要性''。 |摩西据说是犹太教的创始人,自他以来逐渐完备的犹太律法异常丰富,涵盖生活的各个方面,这培养了教众''恪守律法的特性''。 |
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
<a href="https://biblegeography.holylight.org.tw/index/condensedbible_detail?id=2276&top=0922-1">
<<image-basic "https://biblegeography.holylight.org.tw/images/index/condensedbible/map_thumbs/082.jpg"
caption:"Gibeon"
width:"auto"
align:"center"
>>
</a>
在亚伯拉罕宗教中,堕落天使是被逐出天堂的天使。字面意义上的“堕落天使”''既没有出现在圣经中,也没有出现在其他亚伯拉罕经文中'',而是用来描述被逐出天堂或犯罪的天使。这样的天使经常引诱人类犯罪。
堕天使的概念来自于''[[以诺书 Book of Enoch |以诺书 Book of Enoch]]''。
基督教神学表明,堕天使的罪孽发生在人类历史开始之前。因此,''堕落的天使被认定为由撒旦领导的反叛上帝的人,也被等同于恶魔。''
最著名的堕天使名为[[路西法|路西法 Lucifer]],路西法起来率领三分之一的天使反叛,挑战上帝的权威,因而被逐出天国,赶到地上。
在以诺书中,提及一群和人类女子结婚的堕天使,其首领叫做阿撒兹勒。不过,后来的犹太教学者拒绝以诺书以及堕天使的概念,将希伯来圣经中出现撒但(שָּׂטָן satan,敌对)字眼的段落,解释为抽象概念恶的冲动(Yetzer hara)的一种拟人化隐喻方式,又或者是服从耶和华意志的灭命天使。
基督教神学中,堕天使的概念主要出现于启示录。当中提到在天使战争中,世界的欺瞒者撒旦战败,而跟随的堕天使与其一同摔到地上。路加福音也提到,耶稣说我看到撒但从天堂坠落。基督教神学认定诱惑夏娃吃下知识树果子的蛇,是撒但的化身。
早期的基督教教父,如特土良、俄利根等认为以赛亚书的“路西法”这词,指的就是撒但。5世纪的拉丁文武加大译本将lucifer一词转为大写的Lucifer,一般相信就是采纳了这个主张。在但丁的《神曲》与约翰·弥尔顿的《失乐园》之中,将此改编为路西法率领三分之一的天使反叛,挑战神的权威,因而被逐出天国,赶到地上。
伊斯兰教中的撒但(Shaytan,شيطان)唤作易卜劣厮(Ibris,إِبْلِيس,绝望)。古兰经中记载,当阿拉命令众天使向亚当磕头时,他们都叩了头,但本是用火造出的魔灵(al-jinn,الجن)易卜劣厮除外,易卜劣厮拒绝向用泥土造出来的人类跪拜。
古典的古兰经注解者中,有人则认为易卜劣厮为犹太传承中的大天使阿撒兹勒,是从火中造出的高阶四翼天使,由于其特别的位阶而被称作Jinn(注解将Jinn解释为:伊斯兰教天堂Jannah的照管者),由于阿撒兹勒坚持自己比其他生物优越,拒绝向亚当磕头而堕落为撒但。
神话中传说易卜劣厮原为从火造出的Shaytan,被天使们抓住后,经过自身的奋斗坐上了大天使的职位,但在阿拉创造了人——阿丹(即亚当)之后,神很满意最初人类的完美,让他做为神新的代理人,而命天使群都要对人敬重,但伊比利斯依“不向神以外的偶像崇敬”为由,说:“火之子焉可拜土之子”因而被罚,变回原来的魔灵在人间游荡专吃人们死后的灵魂。
伊斯兰教的信仰中,易卜劣厮有五个儿子,分别代表了五种罪行:
* 安沃(A'war)-“独眼”教唆人荒淫的恶灵
* 查兰布尔(Zalambur)-使人争吵不睦的恶灵
* 大悻(Dasim)-使夫妇彼此憎恶的恶灵
* 索特(Sut)-使人使谎的恶灵
* 提尔(Tir)-“大鸟”,产生灾害,病疫的恶灵
''Thalassa'' /θəˈlæsə/
海的元神
daughter of [[玛迦 Maacah (daughter of Talmai, king of Geshur)]] and [[👑大卫王 David]]
!! 相关事件
[[大卫的连场家变]]
卡德摩斯最小的女儿/狄俄尼索斯的母亲
!! 与宙斯
在神话的一个版本中,塞墨勒是宙斯的女祭司,有一次她在宙斯的祭坛上宰杀一头公牛时被宙斯看到,之后她在阿索普斯河中游泳以清洗自己的血。宙斯化身为鹰飞过现场,爱上了塞墨勒,并多次秘密拜访她。
宙斯的妻子赫拉是一位嫉妒篡位者的女神,当她后来怀孕时发现了他与塞墨勒的恋情。赫拉以老妪的身份出现,与塞墨勒结识,塞墨勒向她倾诉,她的爱人其实是宙斯。赫拉假装不相信她,并在塞墨勒心中种下了怀疑的种子。出于好奇,塞墨勒请求宙斯给她一个恩惠。宙斯急于取悦他的爱人,在冥河上承诺给予她任何她想要的东西。然后她要求宙斯显出他的全部荣耀,以证明他的神性。尽管宙斯恳求她不要这样做,但她坚持要这样做,而他的誓言也迫使他服从。宙斯试图放过她,向她展示了他最小的闪电和他能找到的最稀疏的雷雨云。然而,''凡人不可能看着众神而不被烧死,她就这样灭亡了,在闪电点燃的火焰中被吞噬''。
然而,宙斯通过将他缝在自己的大腿上,救出了胎儿狄俄尼索斯(荷马史诗中 "insewn "这一称谓的由来)。几个月后,狄俄尼索斯出生了。这导致了他被称为 "两次出生 "的人。
当他长大后,狄俄尼索斯把他的母亲从冥府救了出来,她成为奥林匹斯山上的女神,有了新的名字Thyone,主持由她儿子狄俄尼索斯激发的狂热。 在Dionysiaca(古代史诗)的后期,现在复活的Semele向她的妹妹Ino吹嘘,"她的田地的耕耘者 "Cronida("克罗诺斯的儿子",即宙斯)如何进行了狄俄尼索斯的孕育,现在她的儿子可以加入奥林匹斯山的天神,而Ino却在一个杀人的丈夫(因为Athamas试图杀死Ino和她的儿子)和一个与海洋神祗生活的儿子中煎熬。
位于欧亚大陆交汇处地中海东部的一个岛国,面积9,251平方公里。
已知人类在塞浦路斯的活动足迹最早可以追溯至西元前10,000年,此一时期的遗址有乔伊鲁科蒂亚,为新石器时代保存至今依然完好的建筑群。塞浦路斯因地处地中海进入西亚地区的要冲,从古至今已被西台、亚述、埃及、波斯、亚历山大大帝、罗马帝国、阿拉伯哈里发王朝、乌迈耶王朝、威尼斯及土耳其奥斯曼帝国等外来势力侵略或占领过。1878年起,为英国所管理,直至于1959年获得独立,隔年成为大英国协会员国。
塞浦路斯独立后的主要民族为希腊人和土耳其人,两者之间冲突不断,直至1974年爆发严重的族群冲突。1983年,居住北部的土耳其裔塞浦路斯人,在土耳其的支持下宣布成立“北塞浦路斯土耳其共和国”,遵循其自创之宪法,并拥有独自运作之政府组织及民意机构,但仅获土耳其一国承认。因此塞浦路斯共和国法理主权为塞浦路斯全岛及其周围海域(除了一小部分地区因为条约分配予英国作为军事基地),然而事实上(希腊人政权)有效统治区域仅为南方,占全岛面积的63%。 虽然塞浦路斯在地理分类上位于西亚,但自古与欧洲的人文和贸易往来关系密切,自我认同为欧洲国家,塞浦路斯共和国于2004年5月1日正式加入欧盟成为欧洲联盟成员国。塞浦路斯被《富比士》列于2020年退休宜居国的名单中。
在希腊神话中[[💗爱情女神阿佛洛狄忒 Aphrodite]]诞生时上岸的地方。
<$leafmap tile='positron'
places='{"point":"35.166667, 33.366667"}' zoom=5>
塞琉古帝国,或''叙利亚帝国'',在中国汉代至南北朝时代的史籍中被称之为''条支''。它是由亚历山大大帝的部将''塞琉古一世''所创建,以''叙利亚为中心'',包括伊朗和美索不达米亚在内(初期还包括印度的一部分)的希腊化国家,同时也是希腊化时期西亚世界中实力最强的国家。
<a href="https://www.wikiwand.com/en/Seleucid_Empire">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/9/94/Seleucid_Empire_alternative_map.jpg/1920px-Seleucid_Empire_alternative_map.jpg"
caption:"The Seleucid Empire (light blue) in 281 BC on the eve of the murder of Seleucus I Nicator"
width:"auto"
align:"center"
>>
</a>
亚历山大大帝死后他的帝国陷入分裂状态,各地发生了严重的暴乱,塞琉古则在混乱之中开始逐渐扩展他的势力。截止到公元前300年,马其顿帝国的东方地区皆已纳入塞琉古的版图,塞琉古和他的儿子安条克一世以原先波斯帝国和亚历山大大帝所使用的王中之王的身份统治著西亚地区的绝大部分领土。但东方的巴克特里亚和帕提亚从公元前3世纪后期脱离了塞琉古王朝的控制,帝国也开始走上了衰退的道路。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/3/31/Sekhmet.svg/440px-Sekhmet.svg.png"
caption:"烈火、战争、复仇、月经、医疗女神"
width:""
align:"right"
>>
最初是战争女神及上埃及的医疗女神。她被描绘成一头母狮,埃及人公认的最凶猛的猎手,是创造神[[卜塔 Ptah|卜塔 Ptah]] 的妻子。她的名字意为“''强大有力''”,有人说,她的呼吸形成了沙漠。她被看作是法老们的保护神并在战争中引导他们。
原本是上埃及的神祇,下埃及也有位相似的女神[[巴斯特|巴斯特 Bastet]],随著上埃及征服下埃及,她也逐渐变得比巴斯特更具影响力。在第十二王朝首位法老期间,对她的崇拜在宗教文化中占据了极高的地位,阿蒙涅姆赫特一世(Amenemhat I)将埃及首都迁至伊塔威,对她崇拜同样也随之移到了政治中心。在古埃及约三千年间,宗教、皇室血统及统治权被内在地交织在一起。
早期塞赫麦特也是一位太阳神,有时也被称作太阳神[[拉|拉 Ra 太阳神]](Ra)的女儿,常与''[[哈托尔|哈托尔 Hathor]]''和[[巴斯特|巴斯特 Bastet]]二位女神混同。
在绘画作品中,她头顶日盘及与[[瓦吉特(Wadjet)|瓦吉特 Wadjet]]一起代表了圣蛇[[尤拉乌斯|尤拉乌斯 Uraeus]]和王权。通过这些联系,她可被看做奥西里斯审判厅中一位代表司法或秩序的[[玛特(Ma'at)|玛亚特 Ma'at]]女神的神圣审判者,她(拉神之眼)与[[瓦吉特|瓦吉特 Wadjet]]及[[泰芙努特|泰芙努特 Tefnut]]相混同。
传说塞赫麦特被派去挑起战争,以对付那些认为太阳神''拉''已经衰弱的人。由于她破坏的范围实在太大,最后拉不得不制止她,拉用石榴汁将一湖的啤酒染成红色,骗她喝下这些让她误以为是血的湖水。塞赫麦特终于醉倒,人类也因此得救。
塞赫麦特的名字来自古埃及词“sekhem”,意思是“''力量''”。塞赫麦特的名字很适合她的作用,意思是“强大有力”。她还被赋予''“邪魔克星”、“情妇的恐惧”、“屠杀夫人”和“她的袭击”''。她也被看作是一位''掌管月经''的特殊女神。
母亲是[[忒堤斯 Tethys|河神和海洋之母忒堤斯 Tethys]]
! 女儿/雅典娜之母/宙斯第一任妻子/机智和计谋的女神
主神克洛诺斯因为害怕自己的孩子将推翻自己,而将自己的新生的孩子逐个吞噬了;是墨提斯帮助幸存下来的宙斯推翻了克洛诺斯,她给克洛诺斯吃一种药剂,迫使其将吞下的孩子们都吐了出来。
宙斯开始追求墨提斯,而她则不停地变身以求逃避,可是宙斯的武力和力量比她更强,最终使她屈从了自己的意志,她就成为了宙斯的第一位伴侣。在她怀孕的时候,盖娅的一条神諭说他们的第一个孩子将是个女孩(雅典娜),其智力和力量将匹敌宙斯本人;而下一个男孩将重演他父亲(宙斯)及祖父(克洛诺斯)的经历,推翻自己的父亲而夺走王位。宙斯对这条神諭十分在意,巧言骗过墨提斯,乘她不留神的时候将她变为一滴水而吞下肚。这成为了宙斯智谋的来源。
然而宙斯并未能如愿地阻止雅典娜的诞生。吞下孩子的母亲后,他开始剧烈地头痛,以至于大声号叫。''原来墨提斯在他的头内打铁为雅典娜铸造一身盔甲''。普罗米修斯、赫淮斯托斯和赫爾墨斯赶来,将他带到特里同河(Τρίτων),在那里煉冶神赫菲斯托斯用大斧劈开了他的颅骨,全副武装的雅典娜就此跳出。
<<<
众神之王宙斯最先娶墨提斯,
她知道的事比任何神和人都多,
可她正要生下明眸神女雅典娜,
就在那时,宙斯使计哄她上当,
花言巧语,将她吞进了肚里,
在大地和繁星无数的天空的指示下。
他们告诉他这个办法,以避免王权
为别的永生神取代,不再属于宙斯。
原来,她注定要生下绝顶聪明的孩子:
先是一个女儿,明眸的特里托革涅亚,
在豪气和思谋才智上与父亲相等;
但接着,看吧,她还将生下一个儿子—
人和神的王,一个狂傲无比的儿子。
可是,宙斯抢先把她吞进肚里,
好让女神帮他出主意,分辨好坏。
<<<神谱
|!父母 |[[伊阿佩托斯 Iapetus]] and [[Asia]] |
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
士师记内容记述鬼魔的宗教如何缠绕为害以色列民,遭仇敌击败,渐渐腐败,以及耶和华怎样借助他所任命的士师怜悯悔改的百姓,拯救他们。俄陀聂、以笏、珊迦及其后各士师的行为能够强化信心。正如希伯来书的执笔者使徒保罗说:“若要一一细说,基甸、巴拉、参孙、耶弗他,……时候就不够了。他们因着信,制伏了敌国,行了公义,……软弱变为刚强,争战显出勇敢,打退外邦的全军。”
这个时期共有12位的''士师''<<fnote "士师是王制以前的领袖和英雄,王制以后被认为不再存在或转为 大祭司和民间诉讼师。">>。耶和华为士师争战,以他的灵帮助他们作战。经上认为,他们把功劳和荣耀全归与上帝。
!! 12位士师
<<list-links "[tag[Judges]] +[nsort[num]]">>
!! 内容
<<list-links "[tag<currentTiddler>] +[sort[num]]">>
{{12 Judges in the Bible}}
----
<<showfnotes>>
! 复仇女神/Rhamnousia/Rhamnusia (Goddess of retribution)
|!父母 |[[🌌黑夜女神尼克斯 Nyx]] and [[老者涅柔斯 Nereus]] or [[🌊大洋之神俄刻阿诺斯 Oceanus]] or [[⚡天神宙斯 Zeus]] |
|!配偶 ||
|标志 |剑、鞭、匕首、量尺、秤、缰绳、鹅 |
|对应印度教神 |Shani |
父亲可能是Oceanus,可能是[[Zeus|⚡天神宙斯 Zeus]],可能是[[Erebus|虚冥厄瑞玻斯 Erebus]]和[[Nyx|🌌黑夜女神尼克斯 Nyx]]的孩子(根据Hyginus),也可能是Nyx自己生的小孩(根据Hesiod)
在一些传说里,涅墨西斯是[[海伦|海伦 Helen of Troy]]的母亲,也是那个宙斯变鹅的故事。
根据《圣经》的记载,耶稣葬礼后第三天时,坟墓里没有骸骨、遗体,只留下当时缠裹耶稣身体的布。当时是主日(星期日——安息日的第二日)[[抹大拉的马利亚 Mary Magdalene]]在天未亮时去到埋葬耶稣的坟墓前,突然间听到天使声音说你要找的耶稣已经不在这了,他已经复活了,他看见坟墓中没有耶稣的身体。
<<card
text:"
她们就赶快离开坟墓,又惊又喜,跑去向耶稣的门徒报信。忽然,耶稣来到她们面前,说:“你们好!”''她们上前抱住他的脚'',向他下拜。 耶稣对她们说:“不要怕!你们要去向我的弟兄报信,叫他们到[[加利利 Galilee]]去。他们会在那里见到我。”
"
footer:"Matthew 28:8"
>>
<<card
text:"
那个门徒到加利利去,到了耶稣指定跟他们见面的山上。 他们看见耶稣就下拜,不过有些人仍然怀疑。 耶稣上前对他们说:“天上地上的权力全都赐给我了。 所以你们要去,使所有国族的人做我的门徒,奉天父、儿子、神圣力量的名为他们施浸*, 我吩咐你们的一切,都要教导他们遵守。看哪!在这一切日子,直到这个制度*的末期,我都与你们同在。”
"
footer:"Matthew 28:16"
>>
之后,复活的耶稣向妇女和门徒显现四十天之久,不单向他们讲解圣经,更让门徒触摸他手上的钉痕和肋旁的伤口,并在门徒面前吃喝,证明耶稣是肉身复活。根据圣经记载,曾有超过500人同时目睹复活的耶稣基督。
''罗马皇帝把犹太人的安息日从星期六改到现在的星期日''。天主教会改移安息日的事实,在史学家及各教会著作上的证明,不胜枚举。历史记载天主教于336年,在老底嘉会议时,决定正式将安息日(星期六)改移到星期日,一直遗传至今,天主教会坦白的承认,并引以自夸有权更改(这由天主教所著之书内可知)。在教会初期,基督徒都是犹太人(《使徒行传》10:45, 11:8)。犹太人的安息日现在依旧是星期六。主日(《启示录》1:10,《马可福音》16:9,《路加福音》24:1-7,《约翰福音》20:1,19)。这是从第二个星期就开始了(《约翰福音》20:26,《使徒行传》20:7,《哥林多前书》16:2 有记载)。
''基督徒在[[复活节 Easter]]庆祝耶稣复活。每年复活节的日期和犹太教[[Passover 逾越节]]相近。''
!! 遗体消失
[[抹大拉的马利亚 Mary Magdalene]]先看到石头被移开,遗体消失。通知了[[✝️彼得 Saint Peter]],彼得去墓穴确认以后离开了。但马利亚还在墓穴旁边哭泣,此时有''两个天使''出现在墓穴中,问她为何哭泣。她回答不知道耶稣的遗体被移到哪里去了,一回头,耶稣站在她身后。(和其他书描写不一样的地方)
!! 复活后显现
耶稣显现在门徒所在的地方(没有说是哪里),给他们看双手和肋下的伤口。
<a href="https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%A4%9A%E9%BB%98%E7%9A%84%E6%80%80%E7%96%91%20(%E5%8D%A1%E6%8B%89%E7%93%A6%E4%B9%94)%20The%20Incredulity%20of%20Saint%20Thomas%20(Caravaggio)%201601-1602:%5B%5B%E5%A4%9A%E9%BB%98%E7%9A%84%E6%80%80%E7%96%91%20(%E5%8D%A1%E6%8B%89%E7%93%A6%E4%B9%94)%20The%20Incredulity%20of%20Saint%20Thomas%20(Caravaggio)%201601-1602%5D%5D">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/e/e0/Caravaggio_-_The_Incredulity_of_Saint_Thomas.jpg"
caption:"The Incredulity of Saint Thomas by [[Caravaggio"
width:"400px"
align:"right"
>>
</a>
耶稣出现时,[[✝️多马 Saint Thomas]]不在当场,他说除非看到耶稣的伤口才会相信。八天以后,耶稣再次显现,给多马看自己的伤口,“''把手指放在这里,看看我的手。伸出手来,按一按我的肋旁。别再怀疑了,总要相信。''”
后来耶稣在[[✝️彼得 Saint Peter]]、[[✝️多马 Saint Thomas]]、''拿但业''在''提比哩亚海''打鱼时再次显现,让他们收获了非常多的鱼。
复活节,又称主复活日,是基督宗教的重要节日之一。
复活节最初与犹太人[[Passover 逾越节]]的同日,但教会在4世纪第一次尼西亚公会议决议不用犹太历,于是改定为每年春分月圆之后第一个星期日。该节日乃纪念耶稣基督于公元30/33年被钉死后第三天复活的事迹,是基督信仰的高峰,因此被基督徒认为象征得著永生与赦罪;''不过现今许多与复活节相关的民间风俗,都不起源于基督宗教。''
!! 词源
复活节名称乃自教会拉丁语的“''Pascha''”转换而来(由于pascua(nourriture,''食物'')一词的影响,从pascere(paître,喂食、放养)这个拉丁动词里来的),原本是从希腊语里的πάσχα(páskha)借用而来,而这个希腊词本身则是从希伯来语פסח(Pessa'h,超越[par-dessus由…之上])里借用的,源自passage(过路/道),即指犹太人的逾''越节'',这词同时含有纪念当年以色列人出埃及的意义。根据圣经福音记载,在这个犹太节期间,耶稣基督复活了;这是为什么这个名称被用在基督徒的节日上。
根据《牛津词典》和其他一些文章(比如Francis X. Weiser的“Handbook of Christian Feasts and Customs”),英文Easter这个字与犹太人的''逾越节''这个字有关,这不仅因为耶稣就是逾越节的羔羊,而且在时间上耶稣基督的复活和逾越节也吻合。在很多欧洲的语言里,不仅逾越节的筵席曾称为Easter,而且早期英文圣经译本中用Easter译逾越节。
现在公认的理论认为,Easter 一词与德语 Oster, 荷兰语 ooster 等词同源,来自于古英国女神 ''Ēostre''。四月本是以该女神命名的月份,而在这个月份,人们举行相应的宴会与庆祝活动。后来欧洲基督教盛行之后,传统的节日就被冠以了与基督教相关的典故,这与圣诞节类似。
!! 日期
早期的基督教会,按照耶稣使徒的传统,在犹太人的''逾越节''当日,即犹太历尼散月14日,纪念耶稣的受难和复活,以示耶稣是逾越节的羔羊(哥林多前书5:7)。然而,西方包括罗马在内的教会,以耶稣在星期日复活为理由,改在''逾越节后的星期日''纪念耶稣复活。各地教会对复活节日期争论长逾一世纪,结果抛弃了依照犹太历法在逾越节纪念的使徒传统,而由''教会自行计算''每年复活节的日子。
罗马皇帝君士坦丁一世在公元325年召开第一次尼西亚公会议,订明了各地统一复活节日期、及不用犹太历法定出。''复活节是星期日,因星期日被教会视作为耶稣死而复活的日子,所以复活节就在每年春分月圆后第一个星期日举行。''
复活节会在每年春分月圆之后第一个星期日举行,因为春分之后北半球便开始日长夜短——光明大过黑暗,月圆的时候,不但在日间充满光明,就连漆黑的夜晚也被光辉(月光)照耀。
此后每年3月21日当日或之后,出现月圆后的第一个星期日,就是复活节,然而计算复活节的方法,自古以来均十分复杂,拉丁文(计算)一字更专指计算复活节的方法,而罗马教会及东正教会用不同历法计算,令东西方复活节可在不同日子出现。教会复活节日期有时与天文观测的不同,例如:2019年按照天文的复活节应是3月24日,但是西方教会复活节是4月21日,东方教会是4月28日。
1997年,普世教会协会在叙利亚召开会议时,曾建议改革计算复活节的方式,并建议统一东、西教会的复活节,''但至今绝大部分基督教宗派仍没有跟随''。
!! 民间风俗
在西方,与复活节相关的物品有复活节兔和复活节彩蛋。传说复活节彩蛋是复活节兔发送的,有些人喜欢在蛋上画各种各样的鬼脸或花纹。''而这些民间风俗都不是起源于基督宗教的''。
复活节''百合花''也是复活节最具代表性的物品,百合花在《圣经》中多次出现,百合花象征着重生、纯洁、和希望,与耶稣基督的重生正好寓意相同。复活节的时候,有的教堂会使用百合花来布置教堂,基督徒们也会互相赠送百合花。目前,美国95%的复活节百合花都产于加州与俄勒冈的交界处。
''复活节吃羊肉''也是一项复活节习俗,根据《圣经》中记载,耶稣基督被钉十字架,成为所有人的替罪羔羊,用死亡来代人赎罪,所以,羔羊就成为了耶稣基督牺牲的象征。所以,在复活节,人们也会吃羊肉,之后,也会用火腿来代替。
美索不达米亚的早期基督教''把蛋染红''以纪念耶稣基督在所流的宝血。
复活节亦有吃''火腿和十字包(Hot cross bun)''的习惯及在复活节前四十日禁食纪念,随后演变成基督宗教的大斋期或四旬期(Lent)。
在芬兰复活节期间有吃''曼米''的习惯。该习俗源自早期天主教会禁食在复活节时结束,其时可以开始享受美食,但圣周五是个神圣的日子,其时不可生火和做饭,所以那个时候就吃冷的易于保存的食物,诸如曼米。
!! 复活节岛
荷兰人雅可布·罗赫芬率领的一支舰队,在1772年发现南太平洋的智利以西外海有一个岛屿。因发现该岛''这一天正好是复活节'',洛加文在航海图上记下此岛位置及在旁边记下“''复活节岛''”。直至1774年,英国探险家詹姆斯·库克船长再次找到该岛。当今的人类学界多根据当地的语言称此岛为拉帕努伊岛(Rapa Nui),这是1860年代来自大溪地的玻里尼西亚劳工对它的称呼。
!! 夏之神
关于这掌管夏和冬的神祗,在北欧神话中有矛盾的两说:在天地创造之神话中,谓奥丁以[[斯瓦苏德(Svasud)|斯瓦苏德 Svasud]]的儿子为夏之神,以[[文德苏尔(Vindsual)|文德苏尔 Vindsual]]的儿子为冬之神,但对他们没有详细的说明。可是古代北欧的诗人又别有关于夏和冬的神话,主宰夏和冬的神亦别有其人。
夏之神,就是为质于阿瑟加德的伐纳神族(海与风之诸神)中的一员,[[🪸近海之神涅尔德 Njord]]。因为他又是风神及近海之神,所以涅尔德在海岸边有他自己的宫殿,名为''诺欧通(Noatun,船城)'';他在那里使凶险的波涛(这是荒海之神埃吉尔所激起来的)复归平静。涅尔德又是''航海的商人和渔民的保护者'',因为他是''夏之神'',而此二种事业也唯在夏季才可行。北欧的农事也只能在夏季,且常在峡湾及内海附近,所以涅尔德又常被当作''稼穑之神'',农民们也向他祈求好收成。
''涅尔德''被说成是一位极英俊的神,正当盛年,穿着短的绿色衬衫,以贝壳和海草为冠,或戴棕色的阔边帽,饰以鹰羽。据有些传说,涅尔德的第一个妻子是他的姐姐''妮尔苏丝''(Nerthus,她在日耳曼被等同于芙莉嘉,但在斯堪的纳维亚,则为独立的神);自从涅尔德到阿瑟加德为质后,就和她分离了。涅尔德是阿瑟加德的十二大神之一,诸神的会议他也列席。此外的时间,他总是待在自己的宫殿内。他最喜欢的动物是''鹅''。
而涅尔德的第二个妻子却是个女巨人,她是暴风巨人[[夏基 Thiazi]]的女儿。
据说在洛基救了[[🍎青春女神伊登 Idun]]回来,诸神又烧死了化为鹰的夏基之后不久,阿瑟加德忽然来了位不速之客。那是一位女性,自说是夏基的女儿,特来要求公道的。——虽然是老而丑陋的霜巨人的女儿,但这位女巨人[[斯卡蒂(Skadi,伤害)|丝卡蒂 Skadi]]却十分美丽:银色的铠甲,尖头羽箭,短小轻便的白色猎衣,白色毛皮的裹腿,阔头的雪靴。对于这样一位美丽的女性,诸神也只能给她公道了;他们请求与斯卡蒂和解。但是斯卡蒂不肯,定要一命抵一命。她的冰霜似的雪白面庞上,一点笑容都没有;洛基见事情僵了,想先得斯卡蒂的一笑。他弄进一只猫来,做出种种滑稽的动作,诸神都大笑了,斯卡蒂也忍不住噗嗤地笑了出来。
乘这机会,诸神就又力劝''斯卡蒂''和解;他们说,对于她的已死的父亲,他们也颇尊重,所以特把他的一对眼睛放在北方的天空成为一对星;他们把那亮闪闪的星星指给''斯卡蒂''看。最后诸神就提议请斯卡蒂在神中择一名作自己的丈夫。选择的方法是,神们都拿布蒙了头面,却把光脚露着,让斯卡蒂选脚,选中了谁的脚,谁就是她的丈夫。斯卡蒂也答应了。她看到一双很好看的脚,以为这双脚的主人一定就是[[光明之神巴德尔 Baldr]]了,因为她对''巴尔德''的英俊容貌十分中意;但是不料揭开蒙脸的布来看时,却不是巴尔德,而是''涅尔德''这位夏与海之神。
斯卡蒂微觉失望,但也欢欢喜喜过了蜜月,和''涅尔德''同到海边的诺欧通宫。在这里,斯卡蒂却不习惯了;波浪的声音、海鸥的鸣噪,时时打搅了她的清梦。她渴望回到她的老家''索列姆海姆''。
''涅尔德''很爱他美丽的妻子,于是同意和''斯卡蒂''到北方她的家乡去住九天(那就是九个月),但现在是''涅尔德''不惯了。寒风吹过松林的凄声,冰凘雪崩、狼的嚎叫,也使得身为夏之神的''涅尔德''梦魂不宁。他渴盼着九天的期限过去,好再和''斯卡蒂''住在海边他的''诺欧通宫''。
这样,在每十二天中,三天住在''诺欧通'',九天住在''索列姆海姆'',这一对夫妻都感到痛苦。结果,二人都知道爱好不同的他们无法相合,就同意离异。''斯卡蒂''此后永远住在她的家乡,重过她那打猎的生活。据另一传说,她后来又成为''[[奥丁|丝卡蒂 Skadi]]''(半历史的奥丁)的妻,生下一子,是为挪威王室的始祖。
这一段故事是说明夏与冬之循环的。''斯卡蒂'',冬季之人格化,冰霜的脸上没有一丝温和的笑容,但终于被象征南风和火的''洛基''所引出笑脸,且接受了''涅尔德''——夏的拥抱。然而她的爱情却不能长于三个月——那是北欧的夏季。涅尔德和斯卡蒂同住在北方的九天则是暗示着一年中夏离人间的九个月。夏与冬的交替,就这样有了原始的说明。在这个意义上,斯卡蒂是冬之女神。她也是冬季旅行者的恩神;她指引那些挣扎于冰天雪地之中的雪橇,使之能安然到达目的地。同时她又是''猎神'',常被说成是带了弓箭,身边跟着一头像狼一样大的狗。
!! 冬之神
北欧神话中又߿有一位冬之神,却是男神;并又谓和''涅尔德''离婚后的''斯卡蒂''事实上又嫁给了这位男性的冬之神为妻。
这位男性的冬之神,名为[[乌勒尔 Ullr]],是女神[[希芙 Sif]]的儿子,[[⚒️雷神托尔 Thor]]的继子。因为乌勒尔喜欢冷,所以常常穿着他的雪靴满山地跑。这位神据说也是喜欢打猎的,每到冬季,他就不怕冰雪,身上穿着极厚的皮大衣,在北方森林中狩猎。被视为猎神的他,常带着一张大弓,满袋的好箭;因为制弓箭的好材料是㋿杉木,所以㋿杉是他的爱树,他的住处就在紫杉最多的伊达利尔(Ydalir,紫杉谷),终年阴森的一个地方。
被视为冬之神的时候,''乌勒尔''的地位仅次于''奥丁''。据说当奥丁冬季不在''阿瑟加德''的时候,''乌勒尔''就僭窃了奥丁的大位,且占有了奥丁之妻[[芙莉嘉|众神之母弗丽嘉 Frigga]],正如先前说过的[[维利|维利(精神) Vili]]和[[伟|伟(意志) Ve]]的故事一样。但当冬季过去,奥丁回来,这个僭窃者就被赶到了北方的不毛之地。
''乌勒尔''又是有名的行动迅捷的神,他的雪靴既可以行陆,又可以行水。因为北方人的雪靴的形状很像一个盾,所以他又有“盾神”的绰号,人们在决斗时往往求他佑护,呼告他的名字。据说,在''斯卡蒂''和''涅尔德''离婚后,他就娶了''斯卡蒂''为妻,因为两人的嗜好相同,所以他们的生活过得很和睦。
他是冬之神,所以雪是受他的命令的。民众祈求他降雪以使来年有好收成,他亦得民众相当的敬仰。''照耀北方夜间的极光,据说也是乌勒尔降下的'';因此他又被视为''巴尔德(光明之人格化)''的亲戚,或谓他和巴尔德是患难之交的好友,__因为两人每年都要在死亡之国的地下躲避若干时候__。但乌勒尔是在夏季往地下躲,而巴尔德则是在夏天的时候:那时昼间的光阴渐渐缩短,这位光明神就不得不躲到地下去了。
夏基(Þjazi,Thiazi,Thjazi,Thiassi,蒂阿兹),在北欧神话中,是一名山巨人,他是 [[欧尔瓦第(Allvaldi)|Alvaldi]]之子,丝卡蒂(Skadi)的父亲。《散文埃达》中记载他曾经挟持过青春女神伊登(Idun)。他住在[[巨人之国尤腾海姆 Jotunheim]]里一处叫索列姆海姆(Thrymheim)的地方。
!! 传说
一天,[[⚡众神之父奥丁(神圣) Odin]]和Loki和[[海尼尔|维利(精神) Vili]]三人正在户外烤肉,但是怎样都无法将肉烤熟,这时山巨人夏基(Thiazi)变成的鹫鹰停在附近的树上,夏基告诉奥丁三人是他施法让肉烤不熟的,如果能分他一些肉的话,才要解除法术。奥丁三人只好同意。
但是洛基不满夏基的行为,当夏基飞下来拿走肉时,他便举起木棍追击,但棍子不知为何却黏在鹫鹰的尾部,洛基因此连人带棍都被拖走了。虽然洛基表示愿意将所有的牛肉送给夏基,但是夏基告诉洛基想要恢复自由的话,就要将[[🍎青春女神伊登 Idun]]和青春苹果拿来交换。洛基之后回到神之国度阿斯嘉特(Asgard),趁诸神不注意的时,把伊登骗到户外,夏基再次变成鹫鹰抓走伊登。
伊登女神掌管著可以让诸神长生不老的青春苹果,所以当诸神开始衰老,他们才发现事情不对劲。诸神将洛基抓起来,威胁要他说出伊登的去处。被揪出做了坏事的洛基,只好肩负起救出伊登的任务,洛基表示如果弗蕾亚借他老鹰的羽衣,他愿意亲自把伊登找回来。因此弗蕾亚借了“鹰羽衣”给洛基,洛基化作老鹰飞到夏基的住处,趁夏基外出且伊登独自一人时,将女神变成一颗核果藏在身上,带著她逃出索列姆海姆。愤怒的夏基第三次化作鹫鹰追了上来,洛基朝著阿斯嘉特疾飞而去,夏基在后面穷追不舍,诸神在阿斯嘉特门边堆积起非常高的薪材,洛基见状就立刻掠过薪堆,飞进阿斯嘉特,夏基想在老鹰飞入阿斯嘉特前把它抓住,因而,俯冲向洛基赶去。当他赶到薪堆上的时候,诸神一起点火,将疾飞到阿斯嘉特的夏基给烧死。
[[丝卡蒂 Skadi]]得知父亲被杀死,愤怒的全副武装来到阿斯嘉特(Asgard),诸神同意完成她开出的要求才得到丝卡蒂的谅解,另外[[⚡众神之父奥丁(神圣) Odin]]还将夏基的双眼放到天空作为星星当作补偿。
根据亚伯拉罕宗教的起源故事,她是第一位女性,但犹太教内部的一些争论也将这一地位赋予了莉莉丝。夏娃也被称为亚当的妻子。
!! Etymology
“夏娃”在希伯来语中是“''Ḥawwāh''”,最常被认为是“''活着的人''”或“''生命之源''”的意思,因为它在语音上类似于“ḥāyâ”,“生活”,来自闪族词根ḥyw。
据《创世记》记载,夏甲 Hagar是一位''埃及奴隶'',是[[撒拉|撒拉 Sarah]](当时称为撒莱 Sarai)的使女,撒拉将她给了自己的丈夫亚伯兰(后来改名为[[亚伯拉罕|亚伯拉罕 Abraham]])作为妻子,为他生了一个孩子。
亚伯拉罕的长子,Hagar所生的儿子以实玛利[[Ishmael|以实玛利 Ishmael]],成为以实玛利人(通常被认为是''阿拉伯人'')的祖先。许多评论家将她与夏格Hagrite(Agar 之子)联系起来,也许声称她是他们的同名祖先。 《古兰经》中虽然没有提及Hagar的名字,但伊斯兰教认为她是亚伯拉罕的第二任妻子。
!! Hagar cast out
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/0/08/Adriaen_van_der_Werff_-_The_Expulsion_of_Hagar_and_Ishmael_-_59.063_-_Rhode_Island_School_of_Design_Museum.jpg/360px-Adriaen_van_der_Werff_-_The_Expulsion_of_Hagar_and_Ishmael_-_59.063_-_Rhode_Island_School_of_Design_Museum.jpg"
caption:"The Expulsion of Hagar and Ishmael, by Adriaen van der Werff, c. 1699"
width:"300px"
align:"right"
>>
后来,撒拉生下了[[以撒|以撒 Isaac]],妇女之间的关系又恢复了紧张。在以撒断奶后的一次庆祝活动上,撒拉发现十几岁的以实玛利 Ishmael 正在嘲笑她的儿子。她对以实玛利继承他们的财富感到非常不安,以至于她要求亚伯拉罕把夏甲和她的儿子送走。她宣布以实玛利不会分享以撒的遗产。亚伯拉罕非常难过,但神告诉亚伯拉罕要照妻子的吩咐去做,因为神的应许要通过以撒实现。以实玛利也将成为一个伟大的国家,因为他是亚伯拉罕的后裔。
亚伯拉罕给了Hagar面包和水,然后送他们到贝尔谢巴Beersheba旷野。她和儿子漫无目的地闲逛,直到水完全喝完。绝望之际,她泪流满面。上帝听到她儿子的哭声,就来拯救他们。天使睁开Hagar的眼睛,她看到一口水井。他还告诉Hagar,上帝将使以实玛利“成为一个伟大的国家”。Hagar为她的儿子找到了一位来自埃及的妻子,他们在巴兰沙漠 Desert of Paran 定居。
《古兰经》的叙述与《圣经》的叙述略有不同:只有上帝命令亚伯拉罕将夏甲和以实玛利带到沙漠(后来的麦加 Mecca ),并将他们留在那里。由于沙漠缺水,没过多久,母子俩都感到口渴,夏甲就在萨法山和玛瓦山之间跑来跑去,为儿子寻找水源。在两山之间第七次奔跑后,一位天使出现在她面前。他帮助了她,并说上帝听到了以实玛利的哭泣,会给他们提供水,夏甲找到了神圣的渗渗井 Zamzam Well 。麦加后来以其完美和丰富的水源而闻名,由于水的存在,一个名为巴努朱鲁姆(Banu Jurhum)的阿拉伯部落与夏甲(Hagar)和她的儿子以实玛利(Ishmael)定居在那里。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/31/Hagar_and_Ishmael_in_desert_%28Grigoriy_Ugryumov%29.jpg/340px-Hagar_and_Ishmael_in_desert_%28Grigoriy_Ugryumov%29.jpg">
<div class="desc">Hagar and Ishmael in the Desert, by Grigory Ugryumov (c. 1785)</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/6/64/Guercino_Abramo_ripudia_Agar.jpg">
<div class="desc">Abraham Casting out Hagar and Ishmael (1657) by ''Guercino''</div>
</div>
</div>
''多俾亚传''(英文:Book of Tobias )或译为''多比传''(Book of Tobit),属于天主教和东正教《旧约圣经》的一部份,但不包括在新教的《旧约圣经》里,在犹太人的重要经典《塔木德》及其他拉比文学里,它被引用过几次。
这篇书在公元后与其他次经一同被收录在希腊语的七十士译本中,并被天主教及东正教接纳为正典的一部份。不过,''大多数新教教会都拒绝接纳本书篇为正典''。但有些教会列为次经或视为重要但不属于圣经的典籍,如英格兰圣公会的三十九条信纲中亦将此书视为重要的典籍。其亚拉姆语及希伯来文的残卷有包含在死海古卷之中。
!! 名称
该书有两个名称,一个是依其中父亲托比特的名称来命名为''Book of Tobit'',一些中译本就是沿用这个称呼只是翻成多比传,天主教则是以其子多俾亚的名称称之为多俾亚传(''Book of Tobias'')。
!! 内容
多俾亚传是描述一个充军亚述的以色列家族的故事,第一章到第三章的第六节都是出自纳斐塔里支派的阿息耳族的''托彼特''的第一人称叙述他在被充军的经历,原本他居住在提斯贝,在亚述王厄乃默撒在位时被掳到亚述后流落到尼尼微成为俘虏,他在尼尼微时被厄乃默撒找来当他的买办,直到厄乃默撒之子散乃黑黎布继位为止。而当散乃黑黎布为王时,曾屠杀以色列人,托彼特偷偷将其所杀害的以色列人收尸埋葬,结果惹祸上身,被没收财物而自己和妻子分散,流离失所,直到''厄撒哈冬''继位为王,任命托彼特的兄弟阿纳耳的儿子阿希加为财务总管时,因为阿希加得求情才得以回到尼尼微和家人重聚,没收的财产被归还。但是他却又遭逢被鸟粪掉落眼中因而失明的悲剧。而后造成他的婚姻产生裂缝,以致他向神祈祷收去他的生命。
同时间在玛待厄克巴塔纳城里,辣古耳的女儿''撒辣''也因为被恶魔''[[君王 阿斯莫德 King Asmodeus]]''附身而失去七任丈夫及因此受到的冷言蜚语的压力原想自杀,但转念祈祷求死。而神听到这两人的祈祷就打发祂的天使拉斐尔医治那两人。
而后叙述的主体转到托彼特之子''多俾亚''身上,他被父亲托付了收回寄放在玛待辣杰斯城的加贝罗那里的寄款,而[[😇拉斐尔 Raphael(It is God who heals)]]则化名为大阿纳尼雅的儿子阿匝黎雅取得托彼特信任后成为多俾亚的旅伴和向导。途中在底格里斯河边时''多俾亚''遭逢一只大鱼的攻击,随后在拉斐尔的指导下将''鱼胆、心和肝保存起来''。
到了玛待厄克巴塔纳城时,''拉斐尔''又说服多俾亚到辣古耳提亲,因为他们两家的关系近,在旅行前托彼特也曾嘱咐过多俾亚要在同族内找妻子,''而拉斐尔也教导多俾亚以燃烧鱼心肝的烟驱除附在撒辣身上的阿斯摩太''。在受到辣古耳的招待时,多俾亚就请拉斐尔为他和撒拉作媒,向辣古耳提亲。辣古耳虽然告知了女儿已有七任丈夫于新婚之夜和她圆房前死亡的事实,但多俾亚却没改变心意,辣古耳也只好答应。
是夜,多俾亚藉著拉斐尔的指示燃烧了鱼的肝和心,那烟赶走了''阿斯摩太'',而''拉斐尔''则是追赶逃走的阿斯摩太到了埃及捆住。后回到辣古耳家。而辣古耳原本正做好准备要人去帮多俾亚准备后事。
当他打发女佣去看视''多俾亚''时,却得到回报他睡的好好的。辣古耳因此感谢天主并要人填好原本预备给多俾亚的墓穴,并著手准备婚宴。而多俾亚因为婚宴无法离去,就只好将要回寄款的任务托付给''拉斐尔''。在婚宴之后多俾亚协同撒辣以及拉斐尔回到尼尼微,拉斐尔交代多俾亚利用当初捕到的鱼胆疗愈了托彼特的眼疾,而他们又再一次庆祝多俾雅的婚礼和托比特的复明。在长达七天的第二次的婚宴结束后,拉斐尔说明他的真实身分乃是侍立在天主身旁的''[[七位天使之一|七大天使 Seven Archangels]]''的拉斐尔。
接下来的十三章是托比特感谢一切所写的一篇赞颂词。托比特活到了一百一十二岁,在他交代了遗嘱要求多俾亚在其母百年与他同葬后,要离开尼尼微到玛待去。在交代完后他就逝去了。而多俾亚也照著其父的遗愿,在其母亚纳过世后,将她与托比特同葬,之后就带著家小离开尼尼微到玛特与他岳父一起住,并孝敬他们。
|!父母 |[[🌊大洋之神俄刻阿诺斯 Oceanus]] and [[河神和海洋之母忒堤斯 Tethys]]|
|!配偶 |[[老者涅柔斯 Nereus]] |
|!标志 ||
|!对应罗马神 ||
Doris (/ˈdoʊrɪs/; Ancient Greek: Δωρίς/Δωρίδος means 'bounty'), in Greek mythology, was a sea goddess. She was one of the 3,000 Oceanids, daughters of the Titans Oceanus and Tethys.
[[🌌黑夜女神尼克斯 Nyx]]自己生下了:
# [[🤡嘲弄之神摩摩斯 Momus]]
# [[厄运神摩罗斯 Moros]]
# [[☠️死神塔纳托斯 Thanatos]]
# [[😴睡神希普诺斯 Hypnos]]
# [[☠️横死女神凯瑞斯 Keres]]
# [[💭梦神 Oneiros]]
# [[😫痛苦之神 Oizys]]
# [[赫斯珀里得斯 Hesperides]]
# [[🧵命运三女神 Moirai]]
# [[复仇女神涅墨西斯 Nemesis]]
# [[欺骗女神 Apate]]
# [[👴🏻衰老神 Geras]]
# [[🤬不和女神厄里斯 Eris]](在《荷马史诗》中是宙斯的女儿)
<<<
黑夜生下可怕的[[厄运神|厄运神摩罗斯 Moros]]、黑色的[[横死神|☠️横死女神凯瑞斯 Keres]]
和[[死神|☠️死神塔纳托斯 Thanatos]],她还生下[[睡神|😴睡神希普诺斯 Hypnos]]<<fnote "睡神和死神是一对孪生兄弟">>和[[梦呓神族|💭梦神 Oneiros]],
接着又生[[诽谤神|🤡嘲弄之神摩摩斯 Momus]]、痛苦的悲哀神,
黑暗的夜未经交合生下他们。
还有[[赫斯佩里得斯姐妹|赫斯珀里得斯 Hesperides]],在显赫大洋的彼岸看守美丽的金苹果和苹果树林。
她还生下[[命运女神|🧵命运三女神 Moirai]]和无情惩罚的''复仇女神''。
[克洛托、拉刻西斯和阿特洛珀斯为将要出世的凡人安排幸和不幸,]
她们追踪神们和人类犯下的罪恶。
这些女神决不会停息可怕的愤怒,
直到有罪者受到应得的严酷处罚。
她还生下[[报应神|复仇女神涅墨西斯 Nemesis]],那''有死凡人''的祸星,可怕的夜神啊,
还有[[欺瞒神|欺骗女神 Apate]]、''承欢神''、要命的[[衰老神|👴🏻衰老神 Geras]]和固执的[[不和神|🤬不和女神厄里斯 Eris]]。
<<<神谱
---
<<showfnotes>>
5卷。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
八卷。
致大公教会书信,又名''公函、普通书信、一般书信或其他书信'',指的是新约书信中的八卷作者''非保罗''的书信。相对于13卷保罗书信之有特殊收信对象(或为教会或为个人),这些书信并没有指名特定对象,乃是给''所有普通基督徒''所看。
这八卷书信依基督教传统排序为:
* 作者不明
** 希伯来书
* 保罗之外的其他使徒所写的:
** 雅各书
** 彼得前书
** 彼得后书
** 约翰一书
** 约翰二书
** 约翰三书
** 犹大书
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
[[大卫|👑大卫王 David]]在犹大作王七年零六个月,然后受各支派的代表所膏立,正式登基作全以色列的王。这是他第三次受膏(公元前1043年)。
大卫在耶路撒冷做全以色列和犹大的王33年。
大卫正式统治全以色列的最早功绩之一是从水沟袭击耶布斯人,一举攻陷了坚固的锡安城。大卫于是定都于[[耶路撒冷|耶路撒冷 Jerusalem]]。万军之耶和华祝福大卫,使他日益强盛。甚至强大的泰尔王希兰也将香柏木运到大卫那里,并差遣工匠为他建造宫殿。大卫的家人丁渐多,耶和华使他的国兴旺。此外,以色列国先后两次跟好战的非利士人交战。在第一场战役里,耶和华帮助大卫于巴力·毗拉心攻破敌人的阵营而得胜。在第二场战役中,耶和华施行奇迹使“桑树梢上有脚步的声音”,以此显示耶和华在以色列前头攻打敌人,击溃非利士的军队。耶和华的大军又一次赢得胜利。
大卫率领3万人出发,要从巴拉·犹大(基列·耶琳)把上帝的约柜运到耶路撒冷去。当时鼓乐喧天,人们跳舞作乐,盛载约柜的车子因牛前蹄失足而倾侧,在旁赶车的乌撒就伸手扶住上帝的约柜。“上帝耶和华向乌撒发怒,因这错误击杀他,他就死在上帝的约柜旁。”大卫对耶和华感到害怕,不愿把耶和华的约柜接到大卫城他那里去,而是送到迦特人俄别以东的家里。约柜留在俄别以东家中三个月,耶和华大大祝福俄别以东全家。于是大卫前去,高高兴兴地把上帝的约柜从俄别以东的家送上大卫城。
后来以色列人欢呼吹角,载歌载舞地把约柜迎入大卫的城里。大卫在耶和华面前踊跃跳舞,但他的妻子[[米甲|米甲 Michal]]却因此而轻视他,“以色列王今天好光彩啊!他竟在自己臣仆的女仆眼前''赤身露体'',就像个没有头脑的人一样!”
大卫对米甲说:“我是在耶和华面前欢庆。他挑选了我,放弃了你父亲和你父亲全家,委任我做耶和华的子民以色列人的领袖,所以我要在耶和华面前欢庆。我还要更加谦卑,把自己看成卑微的人。至于你说的那些女仆,她们却一定会尊重我。” 此后大卫和米甲感情破裂,米甲直到死的那天,都没有生过孩子。
<a href="https://www.wikiwand.com/en/Bathsheba#Media/File:Bethsab%C3%A9e,_by_Jean-L%C3%A9on_G%C3%A9r%C3%B4me.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/7/78/Bethsab%C3%A9e%2C_by_Jean-L%C3%A9on_G%C3%A9r%C3%B4me.jpg/440px-Bethsab%C3%A9e%2C_by_Jean-L%C3%A9on_G%C3%A9r%C3%B4me.jpg"
caption:"Jean-Léon Gérôme's depiction of Bathsheba bathing watched by David."
width:"400px"
align:"right"
>>
</a>
翌年春天,[[大卫|👑大卫王 David]]又派约押领兵攻打亚扪人,围攻拉巴城,他自己则留在[[耶路撒冷|耶路撒冷 Jerusalem]]。
一个傍晚,他在王宫的平顶上偶然看见赫人''乌利亚''的妻子[[拔示巴 Bathsheba]]正在沐浴,那个女子非常美丽。大卫就派人去打听那个女子是谁。那个人回来告诉他:“她是以连的女儿,赫提人乌利亚的妻子拔示巴。”大卫派使者去把她接来。她来到大卫那里,大卫就跟她发生了关系。
她后来怀孕。大卫企图把事情遮掩起来,便将''乌利亚''从拉巴打发回家休息几天。可是,乌利亚却因上帝的约柜及众兵士仍“住在棚里”而不肯自己休息,所以没有回家与妻子同寝。
大卫无计可施,只好写一封信交乌利亚带回给[[约押 Joab]],信内写道:“派''乌利亚''到前线,战斗最激烈的地方,然后你们就在他后面撤退,让他被敌军杀死。”乌利亚终于战死。拔示巴为亡夫哀哭的日子满了之后,大卫遂把她接到宫里,娶了她为妻。后来拔示巴给大卫生了一个儿子。
大卫的行为触犯了[[十诫|摩西十诫 Ten Commandments]] “毋恋人妻”,耶和华差遣预言者''拿单(Nathan)''去见大卫,向他发出审判的信息。
拿单告诉大卫有两个人,一个是富户,一个是穷人。富户有许多牛群羊群,穷人仅有一只小母羊羔,全家都宠爱它,“在他看来如同女儿一样”。但富人在设宴招待客人时,舍不得宰杀自己的羊,竟然取了穷人仅有的羊羔宴客。大卫听了之后勃然大怒,说:“我指着永生的耶和华起誓,行这事的人该死!”拿单回答说:“你就是那富人!”
他随即向大卫发出预言性的判决,指出大卫的妃嫔必在光天化日之下与别人同寝,刀剑争斗必不离他的家,他跟''拔示巴''所生的孩子必定夭折。
大卫表现衷心的忧伤和悔改,他公开承认:“我得罪耶和华了!”
正如耶和华所说,他犯奸淫所生的儿子染了重病,七天之后便死去。后来大卫与拔示巴再生了一个儿子,名叫[[所罗门|👑所罗门 Solomon]],这名字来自一个字根,意思是“''安宁''”。后来耶和华差拿单替他取名为''耶底底亚Jedidiah'',意思是“耶和华所爱的”。
经过这个惨痛教训之后,大卫应''约押''所请前赴拉巴,因这城已快将攻破。约押夺得了城的水源之后,遂让大卫以君王的身分攻占该城。
[[大卫|👑大卫王 David]]先后出兵讨伐非利士人、摩押人、琐巴人、亚兰人及以东人,把以色列的版图扩展至上帝原本给他们定立的国界。后来大卫为了[[约拿单|约拿单 Jonathan]]的缘故渴望向扫罗家馀下的子孙施恩。扫罗的仆人''洗巴''向他谈及约拿单的儿子[[米非波设|米非波设 Mephibosheth,son of Jonathan]],他两腿都是瘸的。大卫立即吩咐人把属扫罗的一切家产都归还''米非波设'',并且吩咐洗巴和他的仆人为''米非波设''耕种田地,把出产的收成供养他一家。''米非波设''自己则常与大卫同席。
后来''亚扪''王死了,大卫差遣使臣前往慰问王的儿子''哈嫩''。但哈嫩的谋臣却非难大卫,指控他试图差臣仆前来窥探国情,于是把使臣凌辱一番,把他们的胡子剃去一半,又割掉他们衣服的下半截,露出臀部,然后打发他们回去。亚扪人知道大卫厌恶他们,就去''叙利亚''雇佣了士兵。
大卫闻讯,于是差遣[[约押 Joab]]统率大军惩处亚扪人。他兵分两路,一举便把亚扪人和叙利亚人的援兵击溃。叙利亚人再度结集大军与以色列争战,结果又败在大卫所率领的大军手下,并且损失了700辆战车,被杀的马兵有4万人。之后,叙利亚人就不敢再帮助亚扪人了。
[[扫罗|👑扫罗 Saul]]王在基利波山阵亡之后不久,有一名亚玛力少年从阵中逃出来,前往洗革拉大卫那里报信。这个少年人企图奉承大卫,于是撒谎讹称他曾亲手杀死扫罗。这个亚玛力人不但得不到嘉奖,反而为自己招惹杀身之祸,因他亲口作证,声称自己杀了“耶和华的受膏者”。大卫作了一首挽歌,名叫“弓歌”,以哀悼扫罗和约拿单。
大卫遵从耶和华的指示,与跟随他的人一起携眷到犹大的''[[希伯仑|希伯伦 Hebron]]''去。犹大的众长老于公元前1050年在该处膏立大卫作他们的王。
元帅''[[约押Joab|约押 Joab]]''在大卫众多的支持者中声名最显赫。然而,为了与犹大的王权抗衡,扫罗的元帅''[[押尼珥|押尼珥 Abner]]''膏立扫罗的儿子[[伊施波设 Ish-bosheth|👑伊施波设 Ish-bosheth]]为王。
这两个对峙的阵营时有冲突,''押尼珥Abner''杀了约押的一个弟弟[[亚撒黑Asahel|Asahel]]。
''押尼珥Abner''被''伊施波设 Ish-bosheth''怀疑和扫罗的妃子发生关系,一怒之下去投奔大卫。大卫让他把自己原来的妻子[[米甲 Michal]]带来,之后大卫让Abner离开。
约押Joab知道大卫放走Abner后非常不高兴,找了个借口约见Abner,把他杀掉了,报了自己兄弟之仇。大卫知道这件事后,深感悲伤,并表明流血的罪与他无关,并''诅咒Joab全家偿还血债''。
不久之后,''伊施波设Ish-bosheth''在“睡午觉”时遭人刺杀。两个刺杀Ish-bosheth的人拿着他的头去大卫那里邀功,大卫认为乘人不备杀人是不义之行,把那两人杀掉了。
大卫在希伯仑做犹大王7年零6个月。
大卫的儿子[[暗嫩 Amnon]]暗恋他的同父异母兄弟[[押沙龙 Absalom]] 的妹妹 [[塔玛 Tamar]] ,此后大卫的连场家变就开始了。
!! The rape of Tamar
<a href="https://www.wikiwand.com/en/Tamar_(daughter_of_David)#Media/File:Rape_of_Tamar_-_Le_Seur.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/Rape_of_Tamar_-_Le_Seur.jpg/1197px-Rape_of_Tamar_-_Le_Seur.jpg"
caption:"The Rape of Tamar by ''Eustache Le Sueur'' (c. 1640) "
width:"300px"
align:"right"
>>
</a>
暗嫩 Amnon 有个朋友叫[[约拿达 Jehonadab]],是大卫的哥哥[[示米亚 Shimeah]]的儿子。''约拿达''为人非常狡猾。他问暗嫩:“王子,你为什么一天比一天憔悴呢?你可以告诉我吗?”暗嫩对他说:“我爱上了塔玛 Tamar ,我弟弟押沙龙的妹妹。”约拿达对他说:“你可以躺在床上装病。你父亲来看你的时候,你就对他说:‘请叫我妹妹塔玛来,为我做些吃的。要是她在我面前做些给病人吃的食物,我就能从她手里接过来吃了。’
暗嫩 Amnon 诈病,求父派 ''塔玛 Tamar'' 服侍他。他强奸了妹妹之后却变得非常憎恨她,然后以羞辱的方式遣她回去。
大卫王听说了这一切,就非常生气。''但他不想让儿子暗嫩不高兴,因为他爱暗嫩,而且暗嫩是他的长子。''
<a href="https://www.wikiwand.com/en/Absalom#Media/File:Convito_di_Ansalonne.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/d/db/Convito_di_Ansalonne.jpg/600px-Convito_di_Ansalonne.jpg"
caption:"The Banquet of Absalom attributed to ''Niccolò de Simone'' around 1650"
width:"300px"
align:"left"
>>
</a>
押沙龙遂盘算为妹报仇。大约两年之后,他设宴款待暗嫩及王的众子。正当暗嫩开怀畅饮的时候,押沙龙下令把暗嫩杀了。
!! 押沙龙秘密政变 A secret coup by Absalom
押沙龙恐怕招惹王怒,于是逃到基述,在那里过了三年的半流亡生活。与此同时,洗鲁雅的儿子''约押''设计,使大卫跟押沙龙言归于好。他安排提哥亚的一个聪明妇人在王面前虚构一个故事,借此向王谈及复仇、放逐和惩罚。在王作出判决时,她才向王说出实情,并指出王的儿子押沙龙正在基述流亡。''大卫''知道必定是约押所出的主意,于是允准儿子返回耶路撒冷。再过了两年之后,王才答应与押沙龙见面。
不久之后''押沙龙''开始暗谋推翻父亲的王位。押沙龙''极为英俊'',在以色列的勇士中无人能及,因此他自命不凡,野心勃勃。他每次剃头,剃下来的头发用王的砝码去称,大约重200舍客勒(大约2.3公斤)。(他的头发太重,所以每年年底都要剃一次头。)
押沙龙开始运用各种手段窃取以色列人的心。后来阴谋终于显露。在获得父亲允准之后,押沙龙前往希伯仑,在那里他表明自己的反叛意图,吁请所有以色列人支持他起来背叛大卫。由于支持儿子叛逆的势力甚大,大卫与少数忠贞的支持者一起逃离耶路撒冷。其中一个典型人物是迦特人''伊泰'',他说:“我指着永生的耶和华起誓,又敢在王面前起誓:无论生死,王在哪里,仆人也必在那里。”
大卫在逃离耶路撒冷的途中听闻他最信任的谋士之一,''亚希多弗'',也背叛他。他祷告说:“耶和华啊,求你使亚希多弗的计谋变为愚拙!”大卫将忠贞的祭司''撒督''、''亚比亚他''及亚基人''户筛''遣返耶路撒冷以便观察押沙龙的一举一动,然后报信给他。
<a href="https://www.wikiwand.com/en/Absalom#Media/File:Muerte_de_absalon_en_el_CESEDEN_(cropped).jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/7/7f/Muerte_de_absalon_en_el_CESEDEN_%28cropped%29.jpg"
caption:"Death of Absalom (''Corrado Giaquinto'', 1762)"
width:"400px"
align:"right"
>>
</a>
篡位的''押沙龙''回到耶路撒冷,他听从''亚希多弗''的建议,“在以色列众人眼前”与他父亲的妃嫔发生关系。这样''拿单''所作的预言性的判决遂获得应验。
亚希多弗也劝押沙龙率领1万2000兵士前往旷野追捕大卫。然而,已赢得押沙龙信任的''户筛''却献出别策。__正如大卫祷告所祈求的一样,''亚希多弗''所献的计谋未受采纳__。与后来的犹大如出一辙,__受挫的''亚希多弗''回家之后便自缢而死__。户筛暗中把押沙龙的恶谋告诉撒督和亚比亚他,他们则把消息辗转通知在旷野的大卫。
这使大卫把握机会过了约旦河,并且选定了玛哈念的一个密林作战场。他在该处部署军队,并且吩咐兵士们要__宽待押沙龙__。叛军兵败如山倒。押沙龙骑着骡子穿越密林逃跑。当他骑经一棵大树的密枝底下时,他的头发被树枝缠住,就把他悬挂起来吊在空中。''[[约押 Joab]]''发现他无力自卫,就违抗王命把他杀了。大卫惊闻噩耗,对儿子的死亡伤痛欲绝。
[[大卫|👑大卫王 David]]继续哭泣悲哀,但终于听从[[约押 Joab]]的劝谏恢复临朝听政:
"今天你的臣仆救了你的性命,又救了你儿女妻妾的性命,现在你却叫他们所有人感到羞愧。你爱那些恨你的人,恨那些爱你的人。因为今天你这样做,''就表明将领和臣仆对你一点都不重要''。我敢说,今天如果是押沙龙活下来,我们大家都死了,你反而会觉得没什么。现在你要起来,出去安抚你的臣仆。我在耶和华面前发誓,''如果你不出去,到今天晚上,没有一个人会留在你身边。这会比你从小到大经历过的一切灾祸都更糟糕''。"
此后,大卫立''亚玛撒''作元帅以替代约押。
一个名叫''示巴''的便雅悯人自立为王,引诱许多人离弃大卫。亚玛撒奉大卫之命率兵平乱,在途中遇见约押,''被约押施诡计杀害了''。约押于是接管军队,带兵追赶示巴到伯·玛迦的城市亚比拉,把城重重围困。一个聪明的妇人劝服了城里的居民把''示巴''杀了,约押于是鸣金收兵。
大卫在位的时候,发生了一场''持续三年''的饥荒。大卫求问耶和华,耶和华回答:“这是因为[[扫罗|👑扫罗 Saul]]杀害基遍人,使他和他的家族欠下血债。” 大卫王因为他和扫罗的儿子约拿单在耶和华面前互相发过誓,就爱惜扫罗的孙子,约拿单的儿子[[米非波设|米非波设 Mephibosheth,son of Jonathan]]。除了米非波设,大卫交出了扫罗的其他后代给基遍人。
后来,以色列再度与非利士人交战,大卫得到侄儿''[[亚比筛 Abishai|亚比筛 Abishai]]''的援助才得以脱险。将士们向大卫起誓,请他以后不可再与他们一同出战,“恐怕熄灭以色列的灯”。后来他手下有三个壮士英勇地消灭了非利士的几个巨人。
最后,大卫由于擅数人民而犯罪。他恳求上帝怜悯,上帝让他在三样灾中任择其一:''七年饥荒、被敌人追赶三个月或国中有三日的瘟疫''。大卫回答说:“我愿落在耶和华的手里,因为他有丰盛的怜悯。我不愿落在人的手里。”
于是全国发生瘟疫,死了7万人,直到大卫听从耶和华通过迦得所发出的训示,买了亚劳拿的禾场,在那里献上燔烧祭和交谊祭,这样瘟疫才止住了。
''大天使'' /ˌɑːrkˈeɪndʒəl/ 是高等级的天使。大天使这个词本身通常与[[亚伯拉罕宗教|亚伯拉罕诸教 Abrahamic religions]]有关,但在许多宗教传统中都可以找到与大天使非常相似的生物。
英语中的大天使一词来自希腊语ἀρχάγγελος,字面意思是 "''首席天使 chief angel '' "或 "''起源天使 angel of origin '',''天使长(基督新教译名)、总领天使、总领使者''。它在新约中只出现过两次,在希伯来圣经(旧约)中,相应但不同的希伯来语在两处出现。
!! 天主教 Catholic
在天主教里提到的名字只有三个:
# ''[[😇加百列 Gabriel(God is my strength)]]''
# ''[[😇米迦勒 Michael(who is like God?)]]''
# ''[[😇拉斐尔 Raphael(It is God who heals)]]''
在非正典 Fourth Book of Esdras 中还提到 ''[[😇乌列尔 Uriel(God is my light)]]''
!! 东正教 Eastern Orthodox
# ''[[米迦勒 Michael|😇米迦勒 Michael(who is like God?)]]'' -- 信仰的守护者
# ''[[加百列 Gabriel|😇加百列 Gabriel(God is my strength)]]'' -- 神的力量
# ''[[拉斐尔 Raphael|😇拉斐尔 Raphael(It is God who heals)]]'' -- 神医
# ''[[乌列尔 Uriel|😇乌列尔 Uriel(God is my light)]]'' -- 上帝之光
# ''[[撒拉斐尔 Selaphiel|😇撒拉斐尔 Selaphiel]]'' -- 上帝的代祷者
# ''[[耶古迪尔 Jegudiel|😇耶胡迪尔 Jegudiel]]'' -- 神的荣耀者
# ''[[巴拉基尔 Barachiel|😇巴拉基勒 Barachiel]]'' -- 被神保佑
# ''[[杰拉米尔 Jerahmeel|杰拉米尔 Jerahmeel]]'' -- 神的升华
!! 七大天使 Seven Archangels
<div>
<$macrocall $name=toc-selective-expandable tag="七大天使 Seven Archangels"
sort='sort[title]'/>
</div>
大斋期,亦称大斋节、大斋节期,天主教会、东正教会称四旬期(旧称四旬节期、严斋期、封斋期),信义宗称预苦期,是基督教教会年历一个节期。英文写作''Lent'',意即''春天''。拉丁教会称Quadragesima,意即四十天(四旬)。整个节期从大斋首日(圣灰星期三/涂灰日 Ash Wednesday<<fnote "大斋首日是根据复活节的日期前四十天(不计算主日),因此''每年的大斋首日''的日期都不同。最早可以是二月四日,最迟是三月十日。">>)开始至[[复活节 Easter]]止,一共''四十天''(不计六个主日)。
天主教徒一日只能吃一餐正餐,以斋戒、施舍、克己及刻苦等方式反省自己的罪恶,并准备庆祝耶稣基督的由死刑复活的“逾越奥迹”。此期间特别以''守斋''(禁食)为做复活节的准备,故从前称之为“''严斋月''”;但在中古前期,四旬期是为一般人成为基督徒及加入教会的预备期,后来才转变成大家所熟悉的做补赎、悔改以预备迎接耶稣复活的功能。
四十日的时间起源于[[耶稣在洗者若翰受洗后,到荒野禁食并三退魔鬼以食物、权势与对天主的信赖的试探|传道工作的开始]]。
大斋期的礼仪颜色是''紫色'',但棕枝主日是用''红色''。
由于大斋期的日期与农历新年一样以阴历为参考,因此这两项节期的时间经常重叠。部分教派为免与农历新年冲撞,会在必要时把某些仪式顺延一个星期举行,天主教会则允许华人地区的教会庆祝新年而免斋。
----
<<showfnotes>>
[[🌊大洋之神俄刻阿诺斯 Oceanus]]和[[河神和海洋之母忒堤斯 Tethys]]有3000个女儿和3000个儿子:
<ol>
<$list filter="[all[tiddlers]tag[🌊大洋之神俄刻阿诺斯 Oceanus]sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
<<<
[[特梯斯|河神和海洋之母忒堤斯 Tethys]]为[[俄刻阿诺斯|🌊大洋之神俄刻阿诺斯 Oceanus]]生下骚动的诸河之神:
尼罗斯、阿尔费俄斯、旋流深沉的厄里达诺斯、
斯特律门、马伊安得洛斯、水流清丽的伊斯托斯、
普法希斯、赫瑞索斯、银色涡流的阿刻罗伊俄斯、
涅索斯、荷狄俄斯、哈利阿克蒙、赫普塔珀鲁斯、
格赖尼科斯、埃塞浦斯、神圣的西摩乌斯、
珀涅俄斯、赫耳莫斯、水浪滔滔的卡伊科斯、
宏伟的珊伽里乌斯、拉冬、帕耳武尼俄斯、
欧厄诺斯、阿耳得斯科斯和神圣的斯卡曼得若斯。
她还生下一个少女神族,在大地上
和阿波罗王、诸河神一起抚养年轻人,
宙斯分派给她们这样的任务。
她们是佩托、阿德墨忒、伊安忒、厄勒克特拉、
多里斯、普律摩诺,神样的乌腊尼亚、
希波、克吕墨涅、荷狄亚、卡利若厄、
宙克索、克吕提厄、伊底伊阿、帕西托厄、
普勒克骚拉、伽拉克骚拉、可爱的狄俄涅、
墨罗波西斯、托厄、漂亮的波吕多拉、
妩媚的刻耳刻伊斯、牛眼睛的普路托、
珀尔塞伊斯、伊阿涅伊拉、阿卡斯忒、克珊忒、
灵秀的珀特赖亚、墨涅斯托、欧罗巴、
墨提斯、欧律诺墨、绯红纱衣的,式勒斯托、
克律塞伊斯、亚细亚、非常诱人的卡吕普素、
奥多若、提刻、安菲洛、俄库诺厄,
还有在她们中最受尊敬的斯梯克斯。
这些是俄刻阿诺斯和特梯斯的
长女们。此后还有众多神女出世,
总共有三千个细踝的大洋女儿。
她们分散于大地之上和海浪深处,
聚所众多,女神中最是出色。
此外还有三千个水波喧哗的河神,
威严的特梯斯为俄刻阿诺斯生下的儿子。
细说所有河神名目超出我凡人所能,
不过每条河流岸边的住户都熟知 。
<<<神谱
耶和华手下有些天使擅自离开天上的本位,与地上貌美的女子婚媾,生下了一族''混种的巨人后代'',称为''拿非利人 Nephilim ''<<fnote "史前出现在迦南地区的巨人,以色列人看到他们感到害怕,表现了对外族人的恐惧">>
(意即“砍伐者”),他们所尊崇的不是上帝的名而是自己的名。故此,耶和华向诺亚宣布由于人类罪大恶极,他将要消灭地上的人类和走兽。惟独诺亚才得蒙耶和华的喜悦。
耶和华遂向诺亚透露,他将会降下大洪水以洗雪自己的圣名。此外他也吩咐[[诺亚|诺亚 Noah]]建造一只方舟去保全性命,并且向他颁下一切建造的细节。诺亚立即遵嘱而行,最后将他一家八口和若干走兽、飞鸟召集在方舟之内。在他600岁的那年(公元前2370年),洪水开始降下。洪水继续倾下''40日'',直至把最高的山也淹盖在15肘尺(约22英尺)的水下。经过一年之后,诺亚终于能够带领家人步出方舟,他所做的第一件事便是向耶和华献上感恩的大祭。
耶和华赐福给诺亚和他的家人,吩咐他们要生养众多,遍满地面。耶和华下令容许他们吃肉,但却要''禁戒血'',因为动物的生命是在血中;此外他也规定必须''将杀人者治死''。耶和华以天上的彩虹为记号,立约永不再以洪水毁灭地上的活物。后来,[[含|含姆 Ham]]对耶和华的预言者诺亚表示不敬,诺亚获悉此事之后,便咒诅含的儿子[[迦南|迦南 Canaan]],但他特别祝福[[闪|闪姆 Shem]],也祝福雅弗。诺亚死时950岁。
<a href="https://www.wikiwand.com/en/Sistine_Chapel_ceiling">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/2/22/Deluge%2C_Michelangelo.png/1920px-Deluge%2C_Michelangelo.png"
caption:"The Flood"
width:"auto"
align:"center"
>>
</a>
----
<<showfnotes>>
''天使''(英语:angel),本指上天的使者,在其它不少宗教中也有类似概念,并汉译为“天使”。
!! 英语词源
英语 ''angel'' 一词源于古英语 ''engel''(重音在 g 上)和古法语 ''angele'',这两词都出自于晚期拉丁语 ''angelus''(字面意义“使者”),该拉丁单词又是借自晚期希腊语 ''ἄγγελος'' ''aggelos''。
根据 Robert S. P. Beekes 的说法,ángelos 可能“有其东方起源,像是 ἄγγαρος(ángaros,‘波斯语 mounted courier’)”。该单词最早的形式是以迈锡尼希腊语线形文字 B书写𐀀𐀐𐀫(a-ke-ro)。七十士译本以希腊语 ángelos 作为希伯来语“使者”מַלְאָךְ(mal'akh) 一词的对译语。
''天使''(阿拉伯语:ملائكة;malā'ikah),是安拉用光创造的圣灵,用以服务、崇拜安拉和严格执行真主的命令。
“信天使”是伊斯兰教的六正信之一,六正信即信真主、信经书、信先知、信末日、信天使、信前定。
《古兰经》第十七章《夜行》第95行::“你说:‘假若大地上有许多天神安然步行,那么,我必定从天上降下一个天神去他们那里做使者。’”
天使是完全服从真主的,他们不知道真主所知道的。他们数目繁多,被创造是为执行真主的命令,守护、报喜或警告或传达启示,有守护每个人左右,记录善恶行为的天使,有固守地狱的天使,有在墓地提问亡人的天使⋯⋯
!! 天使等级
伊斯兰教没有像中世纪基督教神学家制定的“天使等级”那样拥有明显的划分天使等级的制度,大多数伊斯兰学者认为这并不是一个重要的话题,因为它并未在古兰经中被提及。
但有一点很清楚,天使有一定的顺序或等级制度来区分他们的职责和神赋予他们的使命。
* ''大天使''
** [[吉卜利勒(Jibril)|吉卜利勒 Jibril]]:为伊斯兰教中地位最崇高之大天使,其专职使命是负责传达真主的讯息。
** 米迦勒(Mikail):地位仅次于大天使吉卜利勒,为伊斯兰教中地位第二高之大天使。其专职使命是奉安拉派遣,负责观察宇宙万物,并与吉卜利勒一同处理天庭的日常事务。
** [[伊斯拉菲尔(Israfil)|伊斯拉菲尔 Israfil(The Burning One)]]:负责吹响末日号角之大天使。
** [[亚兹拉尔(Azrael)|亚兹拉尔 Azrael(One Whom God Helps)]]:负责为预定时间已到之人们带来死亡之大天使,在《古兰经》中被直接称作“死亡天使”(ملك الموت;Malak al-Mawt)。
* ''守护天使''
** 哈法扎(Hafaza):负责守护人们在预定时间前免于死亡之天使。
* ''审讯天使''
** 蒙卡尔和那基尔(Munkar and Nakir):负责于墓前审判亡者信仰之天使。
*''天堂天使''
** 利德宛(Ridwan):负责维护天庭之天使。
* ''地狱天使''
** 马力克(Maalik):负责守卫地狱之火的天使,曾于夜行登霄时向穆罕默德揭示地狱的景象。马立克据传亦从无笑容。
《圣经》没有直接记载天使被造的过程。不过在《诗篇》104:4中提到:“以风为使者,以火焰为仆役”,这句可诠释为耶和华用‘风’和‘火’造出了天使[8]。根据圣经,天使不能生育(太二十二30),他们的数目是固定的。天使受造的数目有无数之多(来十二22;“千万”是“无数”的意思,启示录五章11节重复提到“千万”,意思是指天使的数目是不能数算的)。
天使与人一样,都有位格(person)。位格包括心思、情感和意志三大要素。在这方面,天使与人没有差别,但两者的存在方式却不同。天使是“没有肉体的位格”,而人类则是“有肉体的位格”。
按照基督教的说法,天使是为了侍奉耶和华、歌颂荣耀耶和华而被造的。天使有自由意志,所以接受命令的时候,可能作出接受的反应,也可能作出拒绝的反应。
中世纪早期一位自称为''丢尼修''的中东学者发表了''《天阶序论》''。制订了从天使到炽天使的天使三级九等即天阶等级。由于在《新约圣经》的《使徒行传》第17章第34节中出现过一名叫做丢尼修(Dionysius)的希腊官员,因此早期部分基督教信徒都将这位中东学者的著作当成圣经中人物撰写的文献,将天使的三级九等奉为可信的外典。''但今日学者则否定其为丢尼修的作品。''
天使三级九等的理论被早期基督徒所承认,6世纪教宗格里高利一世在《福音书注解》中写道:“那些将天使作为榜样的人,将接近神的领域。”这被称为“天使模仿论”,等于是教会对《天阶序论》的承认。
但在745年,教会进行了大规模的改革,''规定教徒只得崇拜上主,不得崇拜天使、只得将它们作为一种指引者。''而大多数的经过具体描述的天使形象原本也只出现在圣经的外典和伪典中。然而,伪丢尼修《天阶序论》在12至13世纪仍由托马斯·阿奎纳(Thomas Aquinas,《神学大全》作者)等神学学者进一步完善。
在16世纪之后,天使三级九等的理论逐渐被教会淡化,在1992年版的《天主教会教理问答》中,伪丢尼修的天使分级不被承认。
!! 《天阶序论》中的天使等级
!!! 上三级 -- 神圣的阶级
* ''[[炽天使 Seraphim|炽天使 Seraph]]'':原文意思为“焚烧”,“高贵”。在圣经中此名称只出现过一次(详见以赛亚书六章:2,6)
* ''[[智天使 Cherubim]]'':基路伯按希伯来文译音,意思是握紧之意
* ''[[座天使 Ophanim(Thrones)]]''
!!! 中三级 -- 子的阶级
* ''[[主天使/权天使 Dominions(Kyriotetes)]]''
* ''[[力天使 Virtues]]''
* ''[[能天使 Powers(Exusiai)|能天使 Powers(Exusiai)]]''
!!! 下三级 -- 圣灵的阶级
* ''[[权天使 Principalities(Archai)]]''
* ''[[大天使 Archangels|大天使 Archangels]]''
* ''[[天使 angels|天使 angels]]''
! “太空”的拟人化神
|!父母 |[[🌌黑夜女神尼克斯 Nyx]] and [[虚冥厄瑞玻斯 Erebus]]|
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
在神谱中是男性角色,在荷马史诗中是女性角色。
|!父母 |[[天空之神乌拉诺斯 Uranus]] and [[🌍大地女神盖亚 Gaea]] |
|!配偶 |[[🌾丰收之神克洛诺斯 Cronus]], [[⚡天神宙斯 Zeus]] |
|标志 |战车、手鼓、王冠、[[聚宝盆(Cornucopia)|聚宝盆 Cornucopia]]|
|对应罗马神 |Ops |
|对应迦南神 |Asherah |
|对应埃及神 |Nut |
!! 子女
* [[赫斯提(灶神) Hestia|👩🍳灶神赫斯提 Hestia]]
* [[得墨忒耳(农业女神) Demeter|🥖丰收女神得墨忒耳 Demeter]]
* [[赫拉 Hera|天后赫拉 Hera]]
* [[哈迪斯 Hades|💀冥王哈迪斯 Hades]]
* [[波塞冬 Poseidon|🔱海神波塞冬 Poseidon]]
* [[宙斯 Zeus|⚡天神宙斯 Zeus]]
[[宙斯|⚡天神宙斯 Zeus]]出生时,瑞亚向[[盖亚|🌍大地女神盖亚 Gaea]]求助拯救儿子的方法,之后把宙斯调包为一块石头。
[img[https://upload.wikimedia.org/wikipedia/commons/0/08/Rhea_MKL1888.png]]
! 神后/宙斯第七任妻子/婚姻、妇女、生育和家庭的女神
|标志 |石榴、孔雀毛、王冠、牛、百合、莲花、杜鹃、豹、权杖、宝座、狮子 |
|对应罗马神 |Juno |
|对应北欧神 |[[众神之母弗丽嘉 Frigga]] |
|对应伊特鲁里亚神 |Uni |
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/3/34/Marriage_of_Zeus_and_Hera_%28detail%29_Pompeian_Art.jpg"
caption:"庞贝古城古洞壁画上的赫拉"
width:"400px"
align:"right"
tooltip:"">>
''赫拉的显着特征之一是她对宙斯众多情人和私生子以及与她交恶的凡人的__嫉妒和复仇的天性__。''
赫拉经常出现在她认为''神圣的动物''身上,包括''牛、狮子和孔雀''。赫拉被描绘成庄严而庄严,经常登上王座,并戴上马球(几位伟大的女神所戴的高圆柱冠),赫拉可能会''手持石榴,这是肥沃的血液和死亡的象征'',和麻醉胶囊的替代品的''鸦片罂粟''。
|后代|职位|h
|安杰洛斯 Angelos |一个冥界女神 |
|[[阿瑞斯 Ares|🛡️战神阿瑞斯 Ares]] |战神 |
|阿格 Arge |仙女 nymph |
|[[艾蕾西亚 Eileithyia|艾蕾西亚 Eileithyia]] |分娩女神 |
|忒里亚 Eleutheria |自由的拟人化 |
|[[厄倪俄 Enyo|🛡️女战神厄倪俄 Enyo]] |战争女神 |
|[[厄里斯 Eris|🤬不和女神厄里斯 Eris]] |不和女神 Goddess of discord |
|[[赫柏 Hebe|🏆青春女神赫柏 Hebe]] |青春女神 Goddess of youth |
|[[赫菲斯托斯 Hephaestus|🔥火神赫菲斯托斯 Hephaestus]] |火和锻造之神 God of fire and the forge |
|[[提丰 Typhon|🌪️提丰 Typhon]] |蛇形怪兽(它既是赫拉的后代,也是盖亚的后代。提丰是赫拉的单性生殖的后代,为了报复生下雅典娜的宙斯,赫拉祈求盖亚给她一个和宙斯一样强壮的儿子,然后拍打地面,怀孕了。赫拉将婴儿泰丰交给巨蟒抚养,泰丰长大后成为凡人的大祸害。)|
<<list-links "[tag[天国众神]]">>
耶稣谈论了7个有关天国的比喻:撒种的比喻、稗子的比喻、芥菜种的比喻、面酵的比喻、藏宝的比喻、寻珠的比喻和撒网的比喻(Matthew 13:3)。
<<card
text:"
门徒上前来,对耶稣说:“你向他们讲话,为什么要用比喻呢?”
<br><br>
他回答说:“天上王国的神圣秘密,只让你们明白,却不让他们明白。 ''凡是有的,还要给他更多,使他丰足有余;凡是没有的,就连他有的,也要拿走 。
<br><br>
For whoever has, more will be given him, and he will be made to abound; but whoever does not have, even what he has will be taken from him.''
<br><br>
所以我用比喻向他们讲话,因为他们看也只是白看,听也只是白听,并不领会。 以赛亚的预言正应验在他们身上:‘你们听是听了,却完全不领会;你们看是看了,却完全不理解。 这些人的心已经麻木,耳朵听见也毫无反应,还闭上了眼睛,免得眼睛看见,耳朵听见,心里领会,回头改过,就被我治好。
"
footer:"Matthew 13:12"
>>
!! 撒种的比喻
有一个撒种的人出去撒种,撒的时候,有些种子落在路旁,飞鸟来吃掉了。—— 谁听了王国的信息却不领会,那[[恶者/撒但|👹撒但 Satan]]就来把撒在他心里的夺去)
有些落在土壤不多的岩石地上,因为土壤不深,种子立刻就长起来。可是太阳一出来,幼苗就晒干了,又因为没有扎根,就枯萎了。—— 撒在岩石地上的,就是人听了上帝的话语,立刻喜乐地接受。可是,他里面没有根,接受也只是暂时的,一旦因上帝的话语而遭遇患难迫害,马上就放弃了。
也有些落在荆棘里,荆棘长起来,把幼苗挤住了。—— 撒在荆棘里的,就是人听了上帝的话语,可是目前制度/时代里的忧虑,以及财富的诱惑,把话语挤住了,它就结不出果实来。
还有些落在好土上,结出果实来,有100倍的,有60倍的,有30倍的。—— 撒在好土上的,就是人听了上帝的话语,领会了,真的结出果实,收成有100倍的,有60倍的,有30倍的。
!! 稗子的比喻
天上的王国好比一个人把好种子(王国之子)撒在田里。 众人睡觉的时候,他的敌人(魔鬼)来了,在小麦当中另外撒下毒麦的种子(恶者之子),然后走了。
到麦苗长大吐穗的时候,毒麦也出现了。 家主的奴隶(天使)就上前对他说:‘主人,你撒在田里的,不是好种子吗?怎么竟有毒麦呢?’ 主人对他们说:‘这是敌人做的。’奴隶对他说:‘那么,你要我们出去把毒麦收集起来吗?’
他说:‘不用,恐怕你们收集毒麦的时候,会把小麦也一起连根拔起。 要让这两样一起成长,直到收割的时候。到收割的时期(制度/时代的末期),我会吩咐收割的人说:先把毒麦收集起来,捆成捆,准备烧掉(人子会派他的天使去把使人失足的一切和不守上帝法律的人,都从他的王国里收集出来,丢到火炉里去。),然后把小麦收集起来,放进仓库里(正义的人会在他们父亲的王国里明亮地照耀,好像太阳一样。)。’
!! 芥菜种的比喻
天上的王国好像一粒芥籽,有人拿去种在自己的田里。 芥籽是所有种子中最小的,长大了却是田园里最大的植物,而且成了一棵树,连天上的飞鸟也来在树枝上栖息。
!! 面酵的比喻
天上的王国好像酵,有女人拿去跟三大份(相当于21.99升或约10公斤)面粉混合在一起,直到整个面团都发了酵。
!! 藏宝的比喻
天上的王国好像藏在野地里的珍宝,有人发现了,就把它藏起来。他十分高兴,就去卖掉他的一切财物,买了那块地。
!! 寻珠的比喻
天上的王国又好像一个商人四处寻找上好的珍珠。他找到一颗贵重的珍珠,就马上去卖掉他的一切财物,买了那颗珍珠。
!! 撒网的比喻
天上的王国又好像拖网撒在海里,收集各种各样的鱼。48 拖网满了,人就拖到海滩上,坐下来,把好的收进器皿里,不合用的就扔掉。在这个制度的末期也会这样。天使会出去,把邪恶的人从正义的人中间分出来,抛在火炉里。在那里,他们就会痛哭流泪,咬牙切齿了。
[[天空之神乌拉诺斯 Uranus]]害怕自己的小孩会对自己的地位构成威胁,于是把他们藏匿在一个秘密的黑暗之地。
[[🌍大地女神盖亚 Gaea]]对此非常不满,她造出一把坚不可摧的大镰刀,鼓励自己的小孩去惩罚他们的父亲。
所有的小孩都很害怕[[天空之神乌拉诺斯 Uranus]],唯独[[🌾丰收之神克洛诺斯 Cronus]]站出来愿意做这件事。
当乌拉诺斯夜晚来亲近盖亚时(''天空盖住大地''),克洛诺斯一跃而起,挥动镰刀割下了乌拉诺斯的''生殖器'',扔到一边。
乌拉诺斯生殖器喷溅出来的血浸染到大地中,生出了:
# [[👩👧👧复仇三女神厄里倪厄斯 Erinyes/Furies]]
# [[🧌巨人族癸干忒斯 Giants]]
# [[🪵梣木女神墨利亚 Meliae]]。
<<<
原来,该亚和乌拉诺斯的所有孩子,
可怕的孩子们,从一开始便背负父亲的憎恨。
他们才刚刚出世,
他就不让见天日,把他们尽数掩藏。
在''大地的隐秘处'',他还挺满意这恶行,那天神乌拉诺斯,
宽广的大地却在内心悲号,深受压抑。
她想出一个凶险的计谋<<fnote "“计谋”:整个神权神话都贯穿着大地该亚的计谋,她不仅在这里帮助克洛诺斯推翻乌兰诺斯的统治,接着还帮助宙斯推翻克洛诺斯的统治(行453起),打败提坦神(行617起),最终让宙斯使计吞下墨提斯,阻止新的神王诞生(行886起),从而巩固了宙斯的王权。在赫西俄德的笔下,还有两个使“计谋”的高手:宙斯和普罗米修斯(540,555;另参547,560,770;《奥德赛》卷四,529)。">>,
很快造出一种坚不可摧的灰色金属,
制成一把大镰刀。她对孩子们说话,
心中充满悲愤,却尽力鼓舞他们:
“我的孩子们,你们的父亲太蛮横,
听我的话,惩罚他那可恶的冒犯吧,
谁让他先做出这些无耻的行径来。”
她这样说,
所有的孩子都害怕得发抖,不敢出声,
只有狡猾强大的''克洛诺斯'',
有勇气用这些话回答可敬的母亲:
“妈妈,我答应你去做这件事,
我瞧不起咱们那该诅咒的父亲,
谁让他先做出这且无耻的行径来。”
他这样说,宽广的该亚心中欢喜。
她安排他埋伏起来,亲手交给他''有尖齿的镰刀''<<fnote "“镰刀”:天地分离神话,以一把镰刀割下天神乌兰诺斯的生殖器而得到完成。“有尖齿的”,一般指狗的牙齿(《劳》,604,796;《伊利亚特》卷十,360;卷十三,198),赫西俄德用来形容镰刀,表明''克洛诺斯''的武器是一把普通的干农活用的镰刀,古代收割庄稼的镰刀往往带齿。不过,伊奥劳斯(lolaus)帮助[[赫拉克勒斯|💪大力神赫拉克勒斯 Heracles]]杀死毒蛇[[海德拉|🐍勒拿九头蛇 Lernaean Hydra]]时,带着一把带齿的刀(QuintusSmymnaeus,6,215起);珀尔塞斯用一把镰刀割下[[美杜莎|🐍美杜莎 Medusa]]的头(菲勒塞德斯残篇3F11);据阿波洛多罗斯记叙,宙斯对抗[[提丰 Typhon]]时以镰刀为武器(1,6,3);奥维德讲道,[[☤赫尔墨斯 Hermes]]用同样的利器砍掉了怪鲁阿尔戈斯的一百个头(《变形记》,1,717);而当初[[俄耳甫斯|俄耳浦斯 Orpheus]]也是遭到手持带齿镰刀的酒神女祭司的致命攻击Gerhard,AuserlesenegT.Vasenbilder,p.156)。在古希腊神话里,镰刀是一件常用的武器,往往用来对抗怪物(''俄耳甫斯''除外)。这么说来,克洛诺斯是否因为这把“有尖齿的镰刀“而成为收割神,仍需商榷。">>,
又把计谋告诉他。
广大的乌拉诺斯带来了夜幕,
他整个儿覆盖着该亚,渴求爱抚,万般热烈。
那个埋伏在旁的儿子伸出左手,''右手''握着巨大的镰刀,
奇长而有尖齿。
他一挥手割下父亲的生殖器,随即往身后<<fnote "“往后〞:既指身后也指未来。克洛诺斯把生殖器“往后”扔,''这一奇妙的举动具有象征意味''。丢卡利翁和皮拉要往身后丢石头(Acusil.2F35;奥维德,《变形记》,1,383);奥德修斯在抵达陆地之前,要把琉科特埃的头巾往后抛回酒色的大海(《奥德赛》卷五,350);俄耳甫斯走在黑暗的冥间,在到达人间以前不得往身后看。若是遵守法则,奇迹就会产生:往后丢的石头将变成男人和女人;奥德修斯将安全地漂泊在海上直到抵达费埃克斯的国土;俄耳甫斯死去的妻子俄瑞狄刻将重回人间;而乌拉诺斯的血滴也将生出男神和女神。">>一扔。
那东西也没有平白从他手心丢开。
从中溅出的血滴,四处散落,
大地悉数收下,随着时光流逝,
生下''厄里倪厄斯''和''癸干忒斯巨人族'',
—他们穿戴闪亮铠甲手执长枪,
还有广漠上的自然仙子''墨利亚''。
<<<神谱
----
<<showfnotes>>
! 天空之神 / 盖亚的儿子和丈夫
{{uranus.mp3}}
|!父母 |[[🌍大地女神盖亚 Gaea]] or [[天光埃忒耳 Aether]] and [[白昼赫墨拉 Hemera]] or [[🌌黑夜女神尼克斯 Nyx]] or Elium and Beruth |
|!标志 |十二生肖轮 Zodiac Wheel |
|!对应罗马神 |Caelus |
|!对应美索不达米亚神 |Anu |
因害怕[[百臂巨人|百臂巨人 Hecatoncheires]],把他们扔到地狱底下的深渊,盖亚恼怒地号召子女救援,只有[[克罗诺斯|🌾丰收之神克洛诺斯 Cronus]]回应了。
[[盖亚|🌍大地女神盖亚 Gaea]]造了一把灰色的燧石(或金刚砂)镰刀。克洛诺斯用这把镰刀''阉割''了他的父亲乌拉诺斯,当乌拉诺斯接近盖亚,想和她发生关系时,克洛诺斯用这把镰刀''阉割''了他的父亲乌拉诺斯。
克洛诺斯把父亲的生殖器扔到海里,滴到地面上的血中生出(produced)了[[复仇三女神厄里倪厄斯 Erinyes|👩👧👧复仇三女神厄里倪厄斯 Erinyes/Furies]]、[[巨人族Giants|🧌巨人族癸干忒斯 Giants]]和墨利亚Meliae(灰树仙女)。从海中生了出了阿佛洛狄忒 Aphrodite。
[img[https://upload.wikimedia.org/wikipedia/commons/4/4e/Aion_mosaic_Glyptothek_Munich_W504.jpg]]
//Aion-Uranus with Terra (Greek Gaia) on mosaic//
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Nepthys.svg/284px-Nepthys.svg.png"
caption:"亡灵守护神"
width:""
align:"right"
>>
奈芙蒂斯(Nephthys,又称奈弗丝)在埃及神话中是''死者的守护神'',同时也是''生育之神''。她是[[九柱神|九柱神 Ennead]]之一。
"奈弗丝"也是对一个家庭中最年长妇女的称呼。她可能曾经是“巴特(Bat)”或“奈斯(Neith)”的变形。
在埃及艺术作品中,她的头发看上去与''裹尸布''相似。奈弗丝被描绘成''头顶一只篮子或一座小房屋'',有时是生有双翅的女性,而有时则是鸢,猎鹰,隼或其他鸟类。
她是[[盖布|盖布 Geb]]与[[努特|努特 Nut]]的女儿,丈夫是[[赛特|赛特 Set]],儿子是[[阿努比斯|𓃦 阿努比斯 Anubis]]和乌普奥特。她常与自己的姐姐[[伊西斯|伊西斯 Isis]]一同出现在艺术作品中。
奥古斯都(前63年9月23日—14年8月19日),本名''盖乌斯·屋大维·图里努斯 Gaius Julius Caesar Augustus'',是罗马帝国的开国君主。历史学家通常以他的头衔“''奥古斯都''”(神圣、至尊的意思)来称呼他,而新约圣经译为“亚古士督”,这个称号是他在前27年获得的,当时他年仅36岁。
14年8月,在他去世后,罗马元老院决定将他列入“神”的行列,并将8月称为“奥古斯都”月,这也是欧洲语言(罗曼语族)中8月(August)的来源。
屋大维是[[盖乌斯·尤利乌斯·恺撒 Gaius Julius Caesar 100 BC-44 BC]]的甥孙和养子,亦被正式指定为''凯撒''的继承人,一般认为屋大维是最伟大的罗马皇帝之一。
前43年,他与''马克·安东尼''、''雷必达''结成后三头同盟,打败了刺杀凯撒的元老院共和派贵族。前36年他剥夺雷必达的军权,后在亚克兴战役打败安东尼,消灭了埃及的''托勒密王朝'',回罗马后开始掌握一切国家大权。
前30年,被确认为“终身保民官”,前29年获得“大元帅”(又译作“皇帝”或“英白拉多”)称号;前27年获得“''奥古斯都''”的称号,保持罗马共和的表面形式,''作为一位独裁者统治罗马长达43年''。
他结束了一个世纪的内战,使罗马帝国进入了相当长一段和平、繁荣的辉煌时期,史称罗马和平。
屋大维大范围地扩张了帝国,吞并了埃及、达尔马提亚、潘诺尼亚、诺里库姆和雷蒂亚,扩大了在非洲的领土,完成了对伊斯帕尼亚的征服。尽管如此,他却在日耳曼尼亚遭受了重大挫折。他改革了罗马的税收制度,发展了带有正规信使系统的道路,建立了一支常备军,建立了护卫队,为罗马建立了警察和消防服务,并在他统治期间重建了大部分城市。
屋大维死于公元14年,享年75岁,据推测是自然死亡,但也有传言声称他的妻子利维亚毒死了他。利维亚的儿子——提比略继承了他的皇位,并将元首制巩固为一个真正意义上的君主专制政体——罗马帝国。
奥德,(Óðr)。在北欧神话中,他是[[女战神弗蕾亚 Freyja]]的丈夫。他的名字意思说法不一,一说是“夏日”的象征,一说是“热情”。他和弗蕾亚有两个女儿:赫诺丝(Hnoss,“ Treasure”)和格尔塞蜜(Gersemi,“ Treasure”)。
奥德在北欧神话中,是一个非常模糊的神,他唯一被提到的地方只有他离开弗蕾亚,出门流浪。据说奥德非常喜欢旅行,他对爱情也不是很专心,所以当他厌倦长待一处后,就不声不响的离开了。之后,弗蕾亚为了寻找他,而展开非常长的旅行。而当她思念奥德时,她滴下的泪水就成了土里的黄金。
另外,有部份的故事说到弗蕾亚曾经在石榴树下找到奥德,所以直到现代,北欧的新娘还会头戴著石榴花成亲,以纪念这石榴树。但尽管如此,''奥德总是离开弗蕾亚继续流浪,弗蕾亚最后依然找不到她的丈夫。''
由于在北欧神话中,有时候弗蕾亚和神[[众神之母弗丽嘉 Frigga]]被指为同一个人,所以也有人说,奥德其实就是[[⚡众神之父奥丁(神圣) Odin]]。''就性格上而言,奥丁和奥德也很相似,都是常常出门旅行,而且对爱情相当不专的人物''。
! 希腊伊萨卡(Ithaca)国王和荷马史诗《奥德赛》的主人公
|对应罗马神 |Ulysses |
|父母 |[[Laertes|Laertes]] and [[Anticlea|Anticlea]] |
''Odysseus'' (''/əˈdɪsiəs/''; Greek: Ὀδυσσεύς, Ὀδυσεύς, translit. Odysseús, Odyseús [o.dy(s).sěu̯s]), also known by the Latin variant ''Ulysses'' (US:'' /juːˈlɪsiːz/'', UK: /ˈjuːlɪsiːz/; Latin: Ulysses, Ulixes)
''奥德修斯因其聪明才智、狡猾和多才多艺(polytropos)而闻名,因此被称为狡猾的奥德修斯(希腊语:μῆτις,翻译为mêtis,即 "狡猾的智慧")''。他最有名的是他的nostos,或者说 "回家",在长达十年的特洛伊战争之后,他花了十年的时间,经历了许多事件。
在北欧神话中,Auðr(古挪威语“''繁荣''”)是拟人化的夜晚[[🌌诺特 Nott]]的儿子,父亲是 [[Naglfari|Naglfari]],也是托尔的叔叔。 Auðr 在斯诺里·斯图鲁森 (Snorri Sturluson) 于 13 世纪撰写的散文《埃达》(Edda) 和诗人的诗歌中得到了证实。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>nsort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
|!所属国 |希腊 |
<$leafmap tile='positron'
places='{"point":"40.0508, 22.2131"}' zoom=5>
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
<a href="https://www.wikiwand.com/en/Deborah#Media/File:053.Deborah_Praises_Jael.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/4/40/053.Deborah_Praises_Jael.jpg/440px-053.Deborah_Praises_Jael.jpg"
caption:"Deborah portrayed in Gustave Doré's illustrations for La Grande Bible de Tours (1865)"
width:"300px"
align:"left"
>>
</a>
[[以户|以户 Ehud]]死后,以色列人又做耶和华眼中邪恶的事。耶和华就把他们交在''迦南王耶宾''手里。
迦南王耶宾任''西西拉 Sisera ''为大将,又残酷压制以色列人二十年。敌人有铁车九百辆,以色列人就打不过,只能哀告神。
当时的士师是女先知[[底波拉Deborah|底波拉 Deborah]],人们都到她那里听取审议。她打发人把''巴拉(Barak)''召来,说:“神吩咐你率领一万人到他泊山林中去,他会让西西拉和他的军队、车马在你面前全军覆没。”巴拉却有些胆怯,说:“你若同我去,我就去迎战;你若不同我去,我就不管。”底波拉说:“我必与你同去,但耶和华的荣耀就不全归于你。西西拉会丧生在妇人手中。”
<a href="https://www.wikiwand.com/en/Deborah#Media/File:Solomon_de_Bray_-_Jael,_Deborah,_and_Barak.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/2/26/Solomon_de_Bray_-_Jael%2C_Deborah%2C_and_Barak.jpg"
caption:"Jael, Deborah, and Barak (c. 1630) by Salomon de Bray"
width:"300px"
align:"right"
>>
</a>
西西拉召集全军和九百辆''铁车''到基顺河边,底波拉暗观形势说:“你要壮胆和振奋起来,今天就是神把西西拉交到你手里的日子。”当时神在空中刮起大风雨,巴拉领着一万人在恶劣的天气中,凭对神的信心大胜敌军。狡猾的西西拉扔掉车辆,步行抄小路从河边逃跑,直到基尼人希百(Heber)之妻''雅亿(Jael)''的帐篷那里。
妇人就出来迎接西西拉,请他进来休息。西西拉因希百家向来与耶宾和好,不提防就进去,请求雅亿给他水喝,又说:“敌人来问你有人在这里没有,你就说没有。”雅亿为他遮盖好,过度疲乏的西西拉就很快沉沉入睡了。她暗中取了帐篷的橛子,悄悄走近西西拉,''用钉子钉穿了他的太阳穴'',直钉进地里。西西拉就死了。然后报告给巴拉。从此耶宾再不能逞强作势,很快在迦南灭绝。
于是,这个地方安享太平40年。
是北欧神话中的女神,原属于[[华纳神族 Vanir]],是''爱神、战神与魔法之神''。
|!对应希腊神 |[[🦉智慧女神雅典娜 Athena]]|
弗蕾亚是''爱神、战神与魔法之神'',也是''掌管丰饶、生育以及爱情之神''。她十分慈祥美丽,最为人们所爱戴,因为冰天雪地里的人们热切盼望著春天的来临。她常浓妆艳服,花枝招展,有时全副甲胄,披挂上阵,率领''[[众女武神|⚔️女武神瓦尔基莉 Valkyries]]''为[[⚡众神之父奥丁(神圣) Odin]]遴选死难英雄。
弗蕾亚也是[[丰饶之神弗雷 Freyr]]的双胞胎妹妹,并曾与自己的哥哥弗雷有性行为。
!! 神话
<a href="https://www.wikiwand.com/en/Br%C3%ADsingamen#Media/File:Freya_and_Heimdall_by_Blommer.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/4/4f/Freya_and_Heimdall_by_Blommer.jpg/440px-Freya_and_Heimdall_by_Blommer.jpg"
caption:"Heimdall returns Brisingamen to Freyja, painting by ''Nils Blommér'' (1846)."
width:"400px"
align:"right"
tooltip:"">>
</a>
在华纳神族与阿萨神族的战争中,由于诸神厌倦了无谓的厮杀,曾开始过一次和谈且双方互派人质。当时,弗蕾亚与父兄就作为人质加盟到阿萨神族。
美丽的弗蕾亚拥有众多的追求者,''奥德''(因他的名字把他和''奥丁''联系起来,所以''奥丁''也时常渴望占有弗蕾亚)就是其中之一,后''被女神变成了一只公猪''。''布里辛斯''也是弗蕾亚的追求者。
据说,[[黑侏儒们|地精之国斯瓦塔尔法海姆 Svartalfaheim]]拥有一条名为“''[[📿项链布里希嘉曼 Brisingamen]]''”的神秘金项链,它是弗蕾亚最珍爱的宝物,为了得到它,''她不惜献出自己的肉体分别陪4个侏儒工匠睡了4个晚上。''
作为处罚,奥丁令她燃起人间的战火,使战争一直持续到神之劫难的到来。
除了布里辛斯,弗蕾亚还有位死心塌地的追求者名叫''[[索列姆 Thrym]]''。这位丑陋的巨人盗走了雷神索尔的锤子,后来索尔不得不借来弗蕾亚的衣服,''将自己乔装打扮成女神的模样'',取回了锤子。
同时弗蕾亚也是一位''女巫'',常穿上她的苍鹭之羽,在天空中飞行。她和奥丁一样,弗蕾亚也渴求恩赫里亚(英灵战士),每次战争一结束,其中一半的恩赫里亚移交到''奥丁''的瓦尔哈拉宫,另一半则被带往''弗蕾亚''的色斯灵尼尔深宫中。
第三章中已经说过,奥丁有一队侍女,名为[[⚔️女武神瓦尔基莉 Valkyries]]。这些少女或是奥丁自己的女儿,如有名的''布伦希尔德(Brynhild,或伯伦希尔)'';或是人间国王的女儿,或为敬奉诸神的贞洁少女。瓦尔基莉们和她们的马,或谓均为云的人格化,她们''闪光的长矛则象征闪电''。古代的北欧人相信这些女武神是奉了奥丁的命令,到世间战场上挑选勇敢的战死者,带到''瓦尔哈拉宫殿''中享乐,以备将来“诸神之黄昏”降临时,和诸神一起参加那最后的决战。
这些瓦尔基莉都是美丽的少女,有着漂亮的白臂酥胸和飘扬的金黄长发。她们戴着金盔或银盔,穿血红色的紧身战袍,拿着发光的矛和盾,骑小巧精悍的白马。这些白马驰骤于空中,奔过那道长长的虹桥,不仅背负着它们那美丽的主人,而且也要背负战死的勇士。在战场上,垂死的勇士们接受了瓦尔基莉们最后的死亡之吻,就这样被带到瓦尔哈拉去了。''因为瓦尔基莉们被视为云,所以马的鬃毛间又被设想成能够落下霜和露,因此这些马也受到人们尊敬。在北欧人看来,瓦尔基莉们和她们的马都是有惠于人类的。''
瓦尔基莉们不单在陆地的战场上挑选勇敢的战死者,她们也到海上,从沉没的大龙船里挑选将死的勇敢的''维京人''。在瓦尔哈拉宫殿中,这些维京人享有和陆地上的勇士同样的待遇。据说维京人如果看见瓦尔基莉站在龙船的桅顶,便知道他升天之时已到,于是这些不怕死的维京人就会狂欢着,等待瓦尔基莉的死亡之吻。
至于女武神的人数,各种传说的说法不一;最多是十六个,最少是三个,但一般则说是九人。又有的传说中说她们的领袖是爱神[[女战神弗蕾亚 Freyja]]或命运三女神中的[[斯库尔德 Skuld]]。
平时在天上的''瓦尔哈拉宫殿''里,瓦尔基莉们的职务是侍侯那些在瓦尔哈拉宫殿享福的战死的勇士们。每次传餐,她们就脱下血污的战袍,换上雪白的长衣,露出美丽的臂膀,拿出天上的酒肉来请这些恩赫里亚们尽量啖饮。这样的生活,正如前面所说,正是每一个勇敢的北欧武士醉心向往的。
瓦尔基莉们也常到世间游玩。那时,她们披上鹅毛的羽衣,化为天鹅;遇见清澈的溪流时,她们常常会脱下羽衣,到水中洗澡。那时,若被人看见,藏起她的鹅毛羽衣,便可以留她住在地上。若要强迫她为妻,也可以办到。据传说,有三位瓦尔基莉,''奥尔露恩(Olrun)、赫尔薇尔(Hervor)和荷拉斯古丝(Hlathguth)''就曾这样被拉普兰国王的三个儿子留住作妻子,经过了九年,她们方才飞回天上。
但最有名的瓦尔基莉和人类恋爱的事情自然当属''布伦希尔德''的故事。有一种说法,布伦希尔德是奥丁的女儿,且为女武神之领袖,她的丈夫就是北欧最伟大的民族英雄''希格尔德(Sigurd)''。我们以后还要详细谈到。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/9/9d/Mut.svg/440px-Mut.svg.png"
caption:"司掌战争"
width:""
align:"right"
>>
姆特(Mut)是埃及神话中的女神,[[阿蒙|阿蒙 Amun]]神的妻子,与阿蒙神生有儿子孔斯,此三神即底比斯三柱神。其埃及象形文字意指“秃鹰”,同时也指“母亲”。 姆特最初只是底比斯的一个地方神祇,后来才和阿蒙神联系起来,成为阿蒙神的妻子。
姆特的父亲''阿蒙拉神'',是''阿蒙神与太阳神拉的结合'',亦即太阳神阿蒙。进入埃及新王国时期后,阿蒙成为了埃及主神,即“埃及之主”,作为其妻子的姆特自然也就获得了“埃及女主人”的称号。同时,作为太阳神,阿蒙也是“天空之主”,故姆特也就成为了“天空的女主人”。
! 婚礼、接待、婚姻之神
|!父母 |[[☀️太阳神阿波罗 Apollo]] and [[缪斯 Muses]] |
|!标志 |Bridal torch |
|!对应罗马神 |Talasius |
''Hymen'' (Ancient Greek: Ὑμήν), ''Hymenaios'' or ''Hymenaeus''
Hymen应该参加每场婚礼。如果他不这样做,那么婚姻将被证明是灾难性的,所以希腊人会跑来跑去大声喊他的名字。他主持了希腊神话中为所有神灵和他们的孩子举行的许多婚礼。
[img[https://upload.wikimedia.org/wikipedia/commons/0/0f/George_Rennie_Cupid_Rekindling_the_Torch_of_Hymen_at_the_V_and_A_2008.jpg]]
//[[Cupid|👼爱神厄洛斯 Eros]] Rekindling the Torch of Hymen, a sculpture by George Rennie//
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/b/bf/Khonsu_as_falcon.svg/440px-Khonsu_as_falcon.svg.png"
caption:"月神"
width:""
align:"right"
>>
孔苏是埃及神话中的第一代''月神''。他有漫游者、拥抱者、寻路者与保护者的称号,是''光与夜晚之神'',人们命运的创造者。他保护人们不受野生动物侵袭,''增强男子的生殖力并协助治愈''。在底比斯等地区,他被认为是阿蒙和姆特的儿子。
孔苏通常都以''木乃伊''的形象出现,以''小孩子''的造型出现时,表示''新月'',以''成年男子''的形象出现时,则表示''满月''。有时候,他的头部被描绘成与荷鲁斯相似的隼头,戴著与拉头上日轮相似的月轮。
<a href="https://www.wikiwand.com/en/Anchises#Media/File:William_Blake_Richmond_-_Venus_and_Anchises_-_Google_Art_Project.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/3/3c/William_Blake_Richmond_-_Venus_and_Anchises_-_Google_Art_Project.jpg/1920px-William_Blake_Richmond_-_Venus_and_Anchises_-_Google_Art_Project.jpg"
caption:"William Blake Richmond's Venus and Anchises (1889 or 1890)."
width:"400px"
align:"right"
tooltip:"">>
</a>
''Anchises'' (''/ænˈkaɪsiːz/''; Greek: Ἀγχίσης, translit. Ankhísēs)
他是女神阿佛洛狄忒的凡人情人。在宙斯劝说厄洛斯用箭射她之后,她看到安奇斯在伊达山上放羊就爱上了他。一种说法是,阿芙罗狄蒂假装成弗里吉亚公主,勾引他,后来才暴露自己,并告诉他他们将有一个儿子,名叫埃涅阿斯;阿芙罗狄蒂曾警告安奇斯,如果他告诉别人她是他孩子的母亲,宙斯会用雷电击倒他。他没有听从她的警告,被雷电击中,在不同的版本中,雷电要么使他失明,要么使他死亡。关于阿芙罗狄蒂勾引安奇斯和埃涅阿斯出生的主要早期叙述是荷马史诗中对阿芙罗狄蒂的赞美诗。根据《圣经》,安奇塞斯和阿芙罗狄蒂还有一个儿子,叫利鲁斯,他无子而终。根据学者们的说法,他后来有一个凡人的妻子,名叫Eriopis,除了埃涅阿斯和Lyrus之外,他还有其他孩子。荷马在《伊利亚特》中提到了一个名叫Hippodamia的女儿,是他们的长女("她父亲和母亲的宠儿"),她嫁给了她的表弟Alcathous。
又传一次在伊得山牧羊时,被女神[[阿佛洛狄忒|💗爱情女神阿佛洛狄忒 Aphrodite]]看到,阿佛洛狄忒迷恋他的美貌,与他生下埃涅阿斯。但由于他泄露了与女神的关系而受到宙斯的惩罚,双目被闪电击瞎。根据维吉尔的史诗《埃涅阿斯纪》(Aeneid)描述,在特洛伊城陷落后,其子埃涅阿斯背着他逃出了城,来到了意大利,最后死于西西里。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
古北欧语:Angrboða。英语:Angrboda、Augurboda 或 Angerboda。
在北欧神话中,是[[🦹邪神洛基 Loki]]的巨人族情妇。其名字的意思是“''悲伤使者”(Herald of Sorrow)或称“悲痛的前兆”'',她是三名凶恶的子女的母亲:第一个孩子是魔狼芬里尔,其次是巨蛇[[🐍耶梦加得 Jormungand]]和女儿死之女王赫尔。芬里尔被诸神监禁,耶梦加得被诸神丢到大海深处,而赫尔被遣到死亡国度称王,其实是变相的放逐。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
''安条克'',又翻译为''安提阿''或''安塔基雅'',天主教典籍称为''安提约基雅'',赵汝适《诸蕃志》作安都城。是黎凡特西北部奥龙特斯河的东侧的一个古老城市。其遗址位于现在''土耳其''的城市安塔基亚。
于前4世纪末由亚历山大大帝的将领之一的[[塞琉古一世|塞琉古帝国 Seleucid Empire 312 BC-63 BC]]所建立,以其父安条克的名字命名。由于安提阿的地理、军事和经济的位置的重要性,它的香料贸易、丝绸之路、波斯御道对于当地居民有很大的收益。公元一世纪,[[耶稣|🧔🏻♀️耶稣 Jesus c.4 BC-33]]的门徒被称为[[基督徒|基督教 Christianity]],便是从这里开始的。
! 巨人
|!父母 |[[🔱海神波塞冬 Poseidon]] 和 [[🌍大地女神盖亚 Gaea]] |
''Antaeus'' (''/ænˈtiːəs/''; Ancient Greek: Ἀνταῖος Antaîos, lit. "opponent", derived from ἀντάω, antao – 'I face, I oppose')
希腊神话中,安泰俄斯是大地女神盖亚和海神波塞冬的儿子,居住于利比亚。他的妻子叫廷吉斯,他的女儿叫Alceis 或 Barce。安泰俄斯力大无穷,而且只要他保持与土地的接触,就可以从他的母亲盖亚那里获取无限的力量,从而不被打败。他强迫所有经过他的土地的人与他摔跤,希腊式摔跤通常的取胜方式是将对手压制在地面上。因为他母亲大地的帮助,他总是赢得比赛。然后他会杀死对手,并用对手的头颅给他父亲波塞冬建立一座神庙。
大力神[[赫拉克勒斯|💪大力神赫拉克勒斯 Heracles]]在完成他的第十一项工作的途中经过利比亚,安泰俄斯也要与他摔跤。他每次被压制,大地——他的母亲盖亚——都会治愈他的伤口,恢复他的力量,使他可以继续战斗。赫拉克勒斯发现了这一点,于是将安泰俄斯举到空中使其无法从盖亚那里获取力量,最后把他扼死了。''现在人们常用安泰俄斯的故事来比喻精神力量不能脱离物质基础,或一个人不能脱离他的祖国和人民。''
在古代的雕塑艺术中,安泰俄斯与赫''拉克勒斯''之战是常见的表现主题。''但丁''在《神曲》中引用了安泰俄斯的形象,说他是守卫地狱第9层的卫兵。''海涅''在他的诗中也引用过安泰俄斯的神话。
[img[https://upload.wikimedia.org/wikipedia/commons/8/84/H%C3%A9rcules_luchando_con_Anteo%2C_por_Zurbar%C3%A1n.jpg]]
//Hercules Fighting Antaeus (1634), by Francisco de Zurbarán//
由于安泰俄斯-波塞冬神话与柏柏尔-利比亚神话的密切联系,''希罗多德''曾推测波塞冬''最初可能是一个柏柏尔人的神,后来被希腊人吸收进他们的神话体系。 ''
! 海洋女神
''Amphitrite'' (''/æmfɪˈtraɪtiː/''; Greek: Ἀμφιτρίτη, translit. Amphitrítē)
|!父母 |[[老者涅柔斯 Nereus]] and Doris <br/>或 [[🌊大洋之神俄刻阿诺斯 Oceanus]] and [[河神和海洋之母忒堤斯 Tethys]] |
|!标志 |三叉戟,海豚,海豹 |
|!对应罗马神 |Salacia |
!! 神话
根据赫西奥德的神谱,安菲特里忒是[[涅柔斯|老者涅柔斯 Nereus]]和多丽丝(因此是Nereid)的女儿,但根据《书库 Bibliotheca》(中文译本叫《希腊神话》,周作人译)的记载,安菲特里忒是[[🌊大洋之神俄刻阿诺斯 Oceanus]]和[[河神和海洋之母忒堤斯 Tethys]]的后代,即是一个Oceanids。
Amphitrite 的后代包括海豹和海豚。 她还饲养了海怪,她的巨浪拍打着岩石,使水手处于危险之中。
[[🔱海神波塞冬 Poseidon]]波塞冬和安菲特里忒有一个人鱼儿子特里同和一个女儿罗多斯(如果这个罗多斯实际上不是波塞冬在哈利亚的父亲,或者不是其他人声称的 Asopus 的女儿)。 《书库 Bibliotheca》 (3.15.4) 还提到了波塞冬和安菲特里忒的女儿 Kymopoleia。
Amphitrite 在荷马史诗中并没有完全拟人化。
[[🌌诺特 Nott]]的第二任丈夫
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
<div>
<<toc-selective-expandable "宗教">>
</div>
<<<
那一天,无可挽回的事差点儿来临,
提丰差点儿统治有死的人和不死的神,
若不是人和神的父亲及时察觉。
他打雷,猛烈又沉重。周遭大地
发出可怕回响,还有高高的广天、
大海、大洋和大地深处的塔耳塔罗斯。
崇高的奥林波斯山在神王进攻时
不朽的脚下震颤,大地随之呻吟。
从双方散出的灼热,笼罩着幽深大海:
这方鸣雷闪电,那方怪物喷奇火,
举目但见灼热的风和燃烧的霹雳。
整个大地一片沸腾,还有天空和海洋。
长浪从四面八方翻腾而起直扑悬崖,
在永生者们重击之下,颤动久久难息。
下界掌管亡灵的哈得斯也心惊胆战,
还有和克洛诺斯一道住在塔耳塔罗斯的提坦:
争战如此激烈,呐喊之声延绵不绝。
于是宙斯凝聚浑身气力,紧握武器
鸣雷、闪电和燃烧的霹雳,
从奥林波斯山跃起,猛力进攻,
遍烧那可怕怪物的所有怪异脑袋。
宙斯连连把他鞭打得再无还手之力,
遍身残庆,宽广的大地为之呻吟。
这浑王受雷电重创,浑身喷火,
倒在阴暗多石的山谷里,
溃败不起。无边大地整个儿起火,
弥漫着可怕的浓烟,,好比锡块
被棒小伙儿有技巧地丢进熔瓮里
加热,又好比金属中最硬的铁块
埋在山谷中经由炙热的火焰锤炼
在赫淮斯托斯巧手操作下熔于神圣土地。
大地也是这么在耀焰的火中熔化。
宙斯盛怒之中把他丢进广阔的塔耳塔罗斯。
<<<神谱
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
<<<
阿特拉斯之女迈亚在宙斯的圣床上
孕育了光荣的赫耳墨斯,永生者的信使。
卡德摩斯之女塞墨勒与宙斯因爱结合,
生下出色的儿子,欢乐无边的狄俄尼索斯。
她原是凡人女子,如今母子全得永生。
阿尔克墨涅生下大力士赫拉克勒斯,
在她与聚云神宙斯相爱结合之后。
<<<神谱
<<<
第二个,他领容光照人的忒弥斯人室,生下时辰女神,
欧诺弥厄、狄刻和如花的厄瑞涅,
她们时时关注有死的人类的劳作;
还有命运女神,被大智的宙斯赋子至高荣耀,
克洛托、拉刻西斯和阿特洛珀斯,
为有死的人类安排种种幸与不幸。
美貌动人的大洋女儿欧律诺墨
为他生下娇颜的美惠女神,
阿格莱娅、欧佛洛绪涅和可爱的塔利厄,
她们的每个顾盼都在倾诉爱意
使全身酥软,那眉下眼波多美。
他又和生养万物的德墨特尔共寝,
生下白臂的珀耳塞福涅,她被哈得斯从母亲
身边带走,大智的宙斯做主把女儿许配给他。
他还爱上秀发柔美的谟涅摩绪涅,
生下头戴金冠的缪斯神女,
共有九位,都爱宴饮和歌唱之乐。
勒托生下阿波罗和神箭手阿尔特弥斯,
天神的所有后代里数他们最优雅迷人,
她在执神盾宙斯的爱抚之中生下他们。
最后,他娶赫拉做娇妻。
她生下赫柏、阿瑞斯和埃勒提伊阿,
在与人和神的王因爱结合之后。
<<<神谱
<<<
话说极乐的神们辛苦操劳完毕,
用武力解决了与提坦的荣脊纷争,
他们推选出统治永生者们的王,
奥林波斯远见的宙斯:在该亚的忠告下。
他为神们重新公正地分配了荣誉 。
<<<神谱
<<<
然而,当神和人的父宙斯
快要诞生时,她去恳求自己的
父母,大地和繁星无数的天空,
一起出计谋,使她不为人知
生下这个儿子,为她父亲报仇,
也为强大狡猾的克洛诺斯吞下的孩子们。
他们听亲爱的女儿说完,答应了她,
他们告诉她所有注定要发生在
神王克洛诺斯和他的强大儿子身上的事。
他们送她去吕克托斯,在丰饶的克里特,
就在那天她生下最小的儿子,
伟大的宙斯。宽广的大地接收这孩子,
在辽阔的克里特抚育他长大。
她怀着他,穿过飞速消逝的黑夜,
来到吕克托斯。她亲手把他藏在
神圣大地深处的一个隐秘巨穴里,
就在那林木繁茂的埃该昂山中。
然后,她把一块大石头裹好,交给
天神之子,强大的统领,当初的神王。
他一把手抓过石头,吞进肚里。
这倒霉蛋!他没曾想,亏得这石头,
他那战无不胜、无所挂虑的儿子
得了救,不久将凭力量和双手打败他,
剥夺他的名号,当上诸神的王。
<<<神谱
(覆盖以西结书25:1-32:32)耶和华预见列国必因耶路撒冷陷落而幸灾乐祸,并趁机羞辱犹大的上帝。他们必不能免罚。''亚扪''和''摩押''必交在东方人手里。''以东''必成为荒场,上帝也必向''非利士''人施行报应。耶和华说:“我报复他们的时候,他们就知道我是耶和华。”(以西结书25:17)
经文特别提及''[[泰尔 Tyre, Lebanon]]''。她因商业繁盛而心高气傲。她像海上一艘华美的大船,但不久必葬身海底。她的统治者大言不惭地说:“我是神。”(以西结书28:9)耶和华吩咐预言者为''泰尔王''作哀歌说:他虽是个美丽的受膏基路伯,曾在伊甸园里,但耶和华必将他从他的圣山驱逐出去,有如驱除污物一般。上帝要使火从他中间发出,将他烧灭净尽。 耶和华说他毁灭幸灾乐祸的西顿时也必显为圣。
现在耶和华告诉''以西结''他必向''埃及''和法老变脸,并发预言攻击他们。法老自夸说:“这尼罗河是我的,是我为自己造的。”(以西结书29:3)法老及所有信赖他的埃及人都必须知道耶和华是上帝。为了使他们学得教训,上帝要使埃及地荒凉40年。以西结在此提及的若干资料其实是上帝稍后在公元前591年才向他披露的。耶和华会把埃及赐给[[🤴尼布甲尼撒二世 Nebuchadnezzar II 642-562 BC]]作为他摧毁泰尔的酬报。(尼布甲尼撒从泰尔仅获得很少战利品,因为泰尔人携同大量财物逃到岛上的城去。)以西结在哀歌中宣布尼布甲尼撒必除掉埃及的骄傲,“他们就知道我是耶和华。”(以西结书32:15)
<<<
她<<fnote "可能指[[🐍厄客德娜 Echidna]],也可能指[[🐍勒拿九头蛇 Lernaean Hydra]]">>还生下口吐凶暴火焰的[[客迈拉|🐐奇美拉 Chimera]]<<fnote "“空想” “虚幻”的代名词">> ,
庞大而可怕,强猛又飞快。
它有三个脑袋:一个耽耽注目的''狮头''、
一个''山羊头<<fnote "据奥维德《变形记》(9,647)和阿波洛多罗斯(2,3,1)的记载,只有中间的''山羊头口吐火焰''。客迈拉最怪异之处就在于这个''山羊头形象'',因为,古代神话里常有狮身怪物(比如《奥德赛》卷十一,611),或蛇身怪物。">>''和一个''蛇头或猛龙头''。
[它头部是狮,尾巴是蛇,腰身是羊,
嘴里喷出燃烧一切的火焰的威力。]
英勇的[[柏勒罗丰|柏勒罗丰 Bellerophon]]和[[佩伽索斯|🐴飞马珀伽索斯 Pegasus]]杀了它。
<<<神谱
---
<<showfnotes>>
!! Ovid's version //Metamorphoses//
根据奥维德的说法,Myrrha是塞浦路斯国王辛尼拉斯和王后 Cenchreis 的女儿。据说丘比特不应该为Myrrha对她父亲辛尼拉斯的乱伦之爱负责。奥维德进一步评论说,''憎恨自己的父亲是一种犯罪,而Myrrha的爱则是一种更大的犯罪。'' 因此,奥维德将其归咎于[[弗瑞斯 Furies|👩👧👧复仇三女神厄里倪厄斯 Erinyes/Furies]]。
奥维德在几节诗中描述了Myrrha在对父亲的性欲和因此而面临的社会耻辱之间的心理斗争。 她失眠,失去了所有的希望,试图自杀;但被她的护士发现,她向护士倾诉。护士试图让Myrrha哈压制这种迷恋,但后来同意帮助Myrrha上她父亲的床,只要她保证不再试图自杀。
在瑟雷斯节(Ceres' festival)期间,参拜的妇女(包括Myrrha的母亲Cenchreis)有九个晚上不能被男人碰触;因此护士告诉Cinyras有一个女孩深爱着他,并说了一个假名字。为了掩盖Myrrha的身份,这件事在完全黑暗中持续了几个晚上,直到Cinyras想知道他的姘头的身份。当国王拿来一盏灯,看到他的女儿时,他试图当场杀了她,但Myrrha逃脱了。
此后,Myrrha在流放中走了九个月,经过阿拉伯的棕榈树和潘凯亚的田野,直到她到达萨巴亚。她害怕死亡,厌倦生活,而且还怀孕了,她向众神乞求解决办法,并变成了没药树(myrrh tree),其树液代表她的眼泪。后来,露西娜(Lucina)从树上释放了新生的[[阿多尼斯|阿多尼斯 Adonis]]。
!! 其他版本
。。。补不动了
<a href="https://www.wikiwand.com/en/Myrrha">来源</a>
daughter of [[Haran]], wife of [[拿鹤 Nahor, son of Terah]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[nsort[num]]">>
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
倘无女人,“应许的子孙”如何出生,男子不可完成,因为上帝只惩罚女人受生育之苦。为使神选中的人有优良的血统,后裔多自有吸引力的女子而出,但如夏娃虚荣、 撒拉善妒、利百加不独立,她们也以各自的不足诠释着上帝塑造的女性的特质。
|!角色 |!相关 |!观念 |
|[[夏娃 Eve]] |上帝因[[亚当|亚当 Adam]]寂寞,用男人胸前的肋骨创造了女人,暗示女性对男性的依赖关系,女人又是男人堕落的诱因。|女性的价值=''男人的配偶'' |
|[[撒拉 Sarah]] |因到九十还不育,上帝赐她一子,许她为多国之母,多国君王从她而出——她才能恢复妻子的完整权利。 |女性的价值=''后裔母亲'' |
|[[夏甲 Hagar]] |被迫从[[亚伯拉罕|亚伯拉罕 Abraham]],代撒拉生下一子,不遭 喜欢又被赶走,亚伯拉罕除了怀恋其子,对弱 女夏甲毫无怜悯。 |女性的价值=''生育工具'' |
|[[利百加 Rebecca]] |陌生老仆的金环和金镯就交换了这女 子,从养育她的父家把她带走,可见当时习俗娶妻只需财礼。 |女性的价值=''男性的财物'' |
!! 被邪灵控制的人随猪跳崖
耶稣一下船,就有一个受邪灵控制的人从墓地来到他面前。这个人住在墓地,从没有人能绑住他,就算用锁链也不行。人们一次又一次用脚镣、锁链锁住他,他却把锁链挣断,把脚镣打碎,谁也不能制伏他。无论昼夜,他都在墓地和山野间不断喊叫,还用石头割伤自己。他远远看见耶稣,就跑来向耶稣下拜,然后大声喊叫,说:“至高上帝的儿子耶稣,你来这里做什么?*我要你在上帝面前发誓,不要使我受苦。”因为耶稣对他说:“你这个邪灵,从这个人身上出来。”耶稣问他:“你叫什么名字?”他说:“我叫''军团'',因为我们数目众多。” 他再三恳求耶稣不要把邪灵赶出那个地区。
当时有一大群猪在山上吃东西。 于是邪灵恳求耶稣说:“把我们赶进猪群里,让我们附在猪身上。” 耶稣准许邪灵这样做,他们就出来,附在猪身上。猪群冲下悬崖,掉进海里淹死了,数目约有2000。
!! 约翰被杀
耶稣的名声传开了,[[🤴大希律王 Herod the Great 74 BC-4 BC]]也听说了。有人说:“施浸者约翰死而复生了,所以能施行这些奇迹。” 又有人说:“那是以利亚。”还有人说:“那是个先知,就像古代的那些先知一样。”
希律听见却说:“那是被我斩了头的[[🗣️施洗约翰 John the Baptist]]复活了。” 原来希律娶了哥哥腓力的妻子''希罗底Herodias''。希律为了她,派人逮捕约翰,捆绑后关在监牢里, 因为约翰屡次对希律说:“你娶哥哥的妻子是不合法的。” ''希罗底''就记恨''约翰'',很想杀他,却不能得逞。 ''希律''知道约翰是正义圣洁的人,就惧怕他,一直保护他。希律每次听到约翰的话,都十分为难,不知该怎么办,但还是喜欢听他讲话。
希律生日那一天,机会来了。希律在晚上设宴款待手下的高官、将军和[[加利利 Galilee]]的显要人物。 希罗底的女儿''莎乐美Salome''进来跳舞,使希律和一起用餐的人十分高兴。王对那个女孩说:“你想要什么,只管求我,我一定给你。” 他甚至对女孩发誓说:“无论你求我什么,就算是我王国的一半,我也一定给你。” 女孩出去对母亲说:“我求什么好呢?”
她母亲说:“施浸者约翰的头。” 她赶快进去见王,请求说:“愿王立刻把施浸者约翰的头放在盘子上给我。” 王非常苦恼,但因为发了誓,又因为有宾客在场,就不想拒绝她。 王立刻派侍卫去,吩咐他把约翰的头拿来。侍卫就到监狱去,斩了约翰的头, 把头放在盘子上,交给女孩,女孩就交给她母亲。 约翰的门徒听说了,就来领取约翰的遗体,安放在墓穴里。
<<alert warning src:"''莎乐美Salome''这段故事是艺术家特别喜欢表现的题材" class:"leftbar border-warning">>
!! 耶稣的身份
耶稣和门徒离开那里,前往凯撒里亚腓立比的村庄。在路上,他问门徒:“人们说我是谁呢?”他们说:“有的说是施浸者约翰,有的说是以利亚,还有的说是先知中的一位。”
耶稣问他们:“你们呢?你们说我是谁?”彼得回答:“你是''基督''。”
耶稣就郑重地吩咐他们,不要把他的身份告诉人。耶稣也开始向他们说明,人子必须受许多苦,被长老、祭司长、抄经士弃绝,被人杀害,三天之后复活。
他很直接地说出这些话,[[彼得|✝️彼得 Saint Peter]]就把他拉到一旁,开口劝阻他。耶稣转过身来,看着门徒,斥责彼得说:“[[撒但|👹撒但 Satan]],退到我后面去!因为你所想的,不是上帝的想法,而是人的想法。”
!! 门徒争论地位
他们来到迦百农,进了房子,耶稣问他们:“你们在路上争论什么呢?”他们都默不作声,原来他们在路上彼此争论谁最大。耶稣坐下,叫十二使徒来,对他们说:“''谁想居首位,就要做众人中最后的一个,做众人的仆人。''”
!! 耶稣被迫穿上的袍子
士兵把耶稣带进总督府的院子里,并把全体士兵召集起来。他们给耶稣''穿上紫色袍子'',用荆棘编了个冠冕给他戴上,并向他呼喊:“犹太人的王啊,万岁(又译“你好”)!”他们还用芦苇打他的头,向他吐唾沫,又跪下来向他下拜。(马太福音中写的是“''[[穿上红色的袍子|受难]]''”)
!! 耶稣复活的描写
安息日一过,末大拉人马利亚、雅各的母亲马利亚和撒罗米,就买了香料,要去抹耶稣的遗体。
接着那周的头一天大清早,太阳一出来,她们就来到墓穴。她们彼此说:“谁可以为我们移开墓穴门口的石头呢?”
可是她们抬头一看,只见那块极大的石头已经移开了。她们走进墓穴后,看见右边坐着一个''身穿白袍的年轻人'',就非常惊讶。年轻人对她们说:“不要惊讶。你们要找的被处死在木柱上的拿撒勒人耶稣,他已经复活了。他不在这里。看,这是他们安放他的地方。你们要去告诉他的门徒和彼得说:‘他要比你们先到加利利去。你们会在那里见到他,正如他从前告诉你们的。’”
她们浑身颤抖,非常激动,一出墓穴就跑走了,没有对任何人说什么,因为她们实在害怕。(比马太福音中的描写更有逻辑)(根据可靠的早期抄本,马可福音到此结束。)
12卷。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>nsort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/f/f5/Mask_of_Tutankhamun_2003-12-07.jpg/440px-Mask_of_Tutankhamun_2003-12-07.jpg"
caption:"Mask of Tutankhamun's mummy featuring a uraeus, from the Eighteenth Dynasty. The cobra image of Wadjet with the vulture image of Nekhbet represent the unification of Lower and Upper Egypt."
width:""
align:"right"
>>
尤拉乌斯 (Uraeus) 是女神[[瓦吉特 (Wadjet) |瓦吉特 Wadjet]]的象征。
是一种神物,人们相信这种物体体现了魔法力量并提供魔法保护。根据传说,''眼镜蛇''是[[盖布 Geb]]送给法老王的王权标志。
后来,[[希格尔德|希格尔德 Siegfried]]漫游到了''尼伯龙格(Nibelung)''地方;这里终年为浓雾笼罩,''吉乌基(Giuke)''是国王,''格莉希尔德(Grimhild)''是王后。这位王后是很可怕的人,因为她不但会魔法,且能调配魔法药水,其中一种可以令饮者尽忘前事而服从她的意志。
他们有三个儿子:''古恩纳尔(Gunnar)''、''胡格尼(Hogni)''和''古托姆(Guttorm)'',还有一女,名为''古德露恩(Gudrun)'',是少女中最温柔美丽的一个。
吉乌基请希格尔德多住些时日,希格尔德也答应了。不久,他的勇敢为王后格莉希尔德所赏识,思欲以其为女儿古德露恩的夫婿。因此,有一日,她调好了魔法药水,让古德露恩拿给希格尔德喝。结果,希格尔德完全忘记了布伦希尔德及他自己的誓约,却一心爱着古德露恩了。
虽然是微感得忽忽若有所失那样的心绪不安,但是希格尔德终竟向古德露恩求婚,而且成功了。他们的结婚使得尼伯龙格人都很快乐。希格尔德拿出他藏着的半个龙心,让古德露恩吃了一些;从此古德露恩的性情就变了,除了希格尔德之外,对一切人都是冷冷地。''希格尔德''又与''古恩纳尔''及''胡格尼''结为异姓兄弟,发誓永远不互相仇视。
过了些时候,老王吉乌基死了,长子''古恩纳尔''嗣位。这个年轻的国王还未娶妻,因此他的母亲''格莉希尔德''正在留心物色。她以为除了[[布伦希尔德|布伦希尔德 Brynhild]]之外,再没有适当的人了,因为据她得到的传言说,布伦希尔德是某国公主,居于一城堡中,堡四周环绕着火焰,她说,只有能进这火焰围墙来见她的英雄,她才肯嫁。——于是古恩纳尔就准备去找这位火焰中的少女了。他请''希格尔德''做伴,又带了他母亲的魔法药水以备不时之需。
但当他到了山顶的火焰围墙外面时,虽然他敢上前,可他的马却不敢。无论怎样鞭策,古恩纳尔的马只有后退,不肯前进。但希格尔德骑的神马格拉尼却并无惧色,古恩纳尔因请与希格尔德易马。但是希格尔德的马也作罢,虽然让古恩纳尔骑了上去,却不肯动一步:除了主人之外,它是谁都不载的。
现在,''希格尔德''戴着他的“恐怖之盔”,而''古恩纳尔''又备着魔法药水,所以希格尔德想,如果他要和古恩纳尔易形,倒是不难办到的;古恩纳尔也觉得除此更无它法,就同意了希格尔德的建议,让希格尔德化为自己的相貌,进火圈去求婚。于是希格尔德进了火圈,到城堡的大厅里,见了布伦希尔德。这一对情人,现在却不相识了:希格尔德自从喝了魔法药水之后,早已尽忘前情,而布伦希尔德呢,则因为希格尔德已变成别人的相貌,所以就以为他是另外一人了。
看见又有人进来,''布伦希尔德''很是吃惊,她以为除了''希格尔德''之外,不会有第二个人能进得来。但她还是坦然地迎接,而且当听说是来求婚的时,她又允许他以丈夫的资格留在她身旁,因为她曾经有过重誓,凡能进火圈的人,她都不能拒绝。
希格尔德和布伦希尔德同住了三天。睡觉的时候,他的神剑亮晃晃地出了鞘,放在他的身体与布伦希尔德的身体之间。他这不近人情的举动令布伦希尔德很奇怪,希格尔德则解释说,是神命令要他的婚礼这样举行的。
当第四个清晨到来时,希格尔德从布伦希尔德的手指上取下那吸金指环,另换了一个,布伦希尔德则答应十天后到''尼伯龙格''来为妻为后。希格尔德出了那堡,向古恩纳尔报告事已成功,两人便又互换为原来的形貌,赶回尼伯龙格。关于这次求婚的秘密,希格尔德只和妻子古德露恩说了,又将聚金指环戴在她的手指上。他完全没有想到,大祸从此就开始了。
十天后,布伦希尔德果然来了。她温和地为古恩纳尔祝福,而且让他引自己到大厅内;希格尔德和古德露恩正坐在那里。当布伦希尔德进来的时候,希格尔德刚好也抬起眼来,恰正接受了布伦希尔德的熠熠的一瞥。立刻,那长久以来的魔法消失了,希格尔德陡然像从梦中惊醒似地记起了以往的事。但是,已经迟了。布伦希尔德已成为古恩纳尔的妻子,而他自己呢,也已成了古德露恩的丈夫。
日子一天天地过去。布伦希尔德表面上还是扬扬自若,可是心里却是怒火焚烧;她常从丈夫的宫中偷偷地跑出来,到森林中去发泄她的忿懑哀怨。而古恩纳尔也觉得妻子对自己总是很冷淡,便开始起疑心了。他怀疑希格尔德也许竟老老实实地把求婚时易形的秘密告诉了布伦希尔德,或者更甚,希格尔德利用那和布伦希尔德同住三天的机会,已先取得了布伦希尔德的爱。
''希格尔德''的烦恼倒比较少。他还是天天除恶诛强,赢得弱者的赞颂。
有一天,''古德露恩''和''布伦希尔德''同到莱茵河里洗浴。古德露恩要先入水,布伦希尔德不依,说这是她的特权。因此,两人对骂起来了。古德露恩骂她的嫂子不端正,先前已有了爱人,后来又嫁了古恩纳尔,还举她自己手指上的吸金指环为证。听了这些话,布伦希尔德的心碎了,又看见那戒指已在情敌的手指上,她一言不发,奔回自己的宫中,躺着发闷,不声不响,也不饮食。古恩纳尔及王族的人都来劝慰,想引她说话,然而都无效。直到后来希格尔德来问候她时,她突然像久湮而始通的泉水一样,倾泻出一大堆怨恨的话来,使得希格尔德的心胀大了,竟爆断了铁甲的钮环。
当时那糟糕的情形不是言语所能形容的。希格尔德自承愿离弃古德露恩,可是布伦希尔德却不许,且斥希格尔德出去,说她不肯背叛古恩纳尔。
想到有两个活人都称她为妻,这是布伦希尔德高傲的心所不能堪的。于是当''古恩纳尔''再来时,''布伦希尔德''要求他置''希格尔德''于死地。这使得''古恩纳尔''的妒忌和怀疑又加深了;可是因为他曾和希格尔德立誓不相仇,所以还是拒绝了妻子的要求。
布伦希尔德乃转求于''胡格尼'',然而''胡格尼''也不愿破誓,却引''古托姆''以自代。可是要使古托姆允任这件事,也全靠了狼肉与挑拨的话语。
于是在黑夜里,古托姆偷偷溜进了希格尔德的卧室。正待下手,却看见希格尔德那闪闪的目光,便赶快退出来。第二次他再进去,还是那样。等第三次进去时,希格尔德已经睡熟了,古托姆就用矛刺通了他的背和腹。尽管受了严重的致命伤,希格尔德却还能坐起来,取下床头的神剑遥掷向那正在逃走的刺客;古托姆被斩为两段,死于门边。于是,微声对惊恐至极的古德露恩说了告߿的话,希格尔德就绝了气。
希格尔德孩提的儿子也同时被杀。可怜的古德露恩对着两具尸首,只是干哭;而布伦希尔德则大笑。这使古恩纳尔很生气,他深悔自己没有阻止这惨剧的发生。
尼伯龙格人哀念希格尔德,为他举行盛大的火葬。许多送葬的礼物、许多兵器,还有希格尔德生前所骑的神马,都准备一齐火葬;妇女们最不放心的却是古德露恩,因为她悲痛得已经没有眼泪了。许多妇女想引古德露恩哭出眼泪来,可是都无效。直到后来把希格尔德的头放在她膝上,古德露恩的眼泪才如暴雨般地落下。
布伦希尔德看到希格尔德的尸身及那殉葬的神马,忽然间,怨恨希格尔德的心情都没有了,只留下痛悔和爱念。她回到自己的卧室中,穿上最好的衣服,将她的物件都赏赐给了侍女,然后仰卧在床上,将短剑刺入了自己的胸膛。古恩纳尔听到这噩耗,急来看时,布伦希尔德只剩一口气,刚好能够说出她的遗言;古恩纳尔依她的愿望,将她的遗体放在希格尔德身边,两人中间放着希格尔德的神剑,正如他们在山上城堡中度过三个夜晚时那样。
这样,布伦希尔德就和希格尔德一同火葬了。但在瓦格纳的《尼伯龙根指环》中,则布伦希尔德是骑在马上,宛如她昔年做奥丁的瓦尔基莉时的样子,庄严地走入了大火葬堆,是一个更为悲壮美丽的结局。
在希腊神话中,尼俄伯是坦塔罗斯和狄奥涅(最常被引用的人)或欧律忒弥斯塔或欧律那萨(安菲翁的妻子)的女儿。珀罗普斯和布罗泰亚斯的妹妹。
尼俄伯向只有两个孩子阿波罗和阿尔忒弥斯的[[勒托|勒托 Leto]]''吹嘘她的十四个孩子'',七男七女。不同来源的数字各不相同。
[[阿尔忒弥斯|🌖月神阿尔忒弥斯 Artemis]]用箭杀死了尼俄伯的女儿,[[阿波罗|☀️太阳神阿波罗 Apollo]]杀死了尼俄伯的儿子。
根据某些版本,至少有一个 Niobid(尼俄伯孩子的统称)(通常是 Meliboea,以及她的兄弟 Amyclas )幸免于难。他们的父亲安菲翁(Amphion)看到他死去的儿子们,要么自杀,要么因发誓复仇而被阿波罗杀死。
悲痛欲绝的尼俄伯逃回西皮罗斯山,并变成了石头,当她不断哭泣时,水开始从她石化的肤色中倾泻而出。 Sipylus山确实有一个类似于女性面孔的天然岩层,自古以来就与Niobe有关,并由Pausanias描述。该岩层也被称为“哭泣的岩石”(土耳其语:Ağlayan Kaya),因为雨水从其多孔的石灰岩中渗出。
尼尼微,为古代新亚述帝国的重镇之一,于底格里斯河东岸,在今日伊拉克北部城市摩苏尔附近。
自公元前11世纪起即成为''新亚述帝国的首都'',尼尼微于公元前8世纪至公元前7世纪的亚述王辛那赫里布最为繁荣,特别是亚述的国家图书馆的数千泥板文书,为古美索不达米亚史中极珍贵的资料。但于公元前612年,伊朗高原强国米底和新崛起的新巴比伦王国联合围攻尼尼微,并成功攻陷尼尼微。公元前605年强盛一时的亚述帝国正式灭亡,尼尼微随之没落。
尼尼微废弃后,后来当地的文明也几易其主,遗址位于今伊拉克尼尼微省。时至今日,尼尼微附近地区仍然生活着大量亚述人,当代亚述人仍使用古老的阿拉米语,信仰东方礼的基督教。尼尼微据信曾是世界最大的城市约50年。
尼希米记,是圣经全书中第16本书,讲述''耶路撒冷城墙''的重建,以及神继续见证选民的恢复,以完成祂的经纶。
重建城墙是一种防御措施,属政治活动章但这活动也以信仰为核心,因为犹太人认为政治与宗教活动是不可分割的。尼希米领导回归的百姓重建城墙一事,是发自信仰,因此,他常为工程祷告 ,并将事情的成就归功于神。
''城墙的建立不仅表示在犹太团体的建立,与宗教活动的恢复,使犹太人能保持信仰的纯净。''
儿子/3000河神之子之一
Nilus /ˈniːlʊs/或Neilos(古希腊语:Νειλος或Νεῖλόν),在希腊神话中,是Potamoi之一,代表''尼罗河本身的神''。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Jerusalem-2013%282%29-Temple_Mount-Dome_of_the_Rock_%28SE_exposure%29.jpg/530px-Jerusalem-2013%282%29-Temple_Mount-Dome_of_the_Rock_%28SE_exposure%29.jpg"
caption:" "
width:"400px"
align:"right"
tooltip:"">>
岩石圆顶(阿拉伯语: Qubbat As-Sakhrah;希伯来语: Kippat ha-Sela;)是一个''伊斯兰教圣地'',穆斯林称为“al-Haram al-Qudsi al-Sharif”(高贵的庇护所);犹太人和基督徒称为“Har ha-Bayit”(圣殿山);位于耶路撒冷旧城''圣殿山'',于阿克萨清真寺近处,是''耶路撒冷最著名标志之''一。岩石圆顶覆有精美花纹跟古兰经文的蓝色系彩釉陶砖及金制穹顶。
虽然常被误解为清真寺,''但岩石圆顶并不是清真寺'',而是伊斯兰教的圣殿(maqam)。岩石圆顶的建造起因依然有争论。阿拔斯王朝建立后,部分穆斯林历史学家声称岩石圆顶是阿卜杜勒·马利克为了取代麦加的克尔白而建造的,但现代历史学家多不认同此观点。也有说法认为岩石圆顶是为纪念伊斯兰教先知穆罕穆德夜行登霄、为彰显伊斯兰教的地位、或为迎接审判日所建。
!! 历史
岩石圆顶于688年到691年,由第5任哈里发''阿卜杜勒-马利克''在伊斯兰教''二次内战''期间下令建造,在犹太教[[第二圣殿 Second Temple]]的原址上建成。犹太教第二圣殿在公元70年罗马人围攻耶路撒冷时被摧毁。
岩石圆顶的建筑风格和马赛克都是以''拜占庭教堂''和宫殿为蓝本,但岩石圆顶的马赛克不包含任何人类或动物的形态,而是以''阿拉伯文字和植物图案''为特色,夹杂着珠宝和皇冠等物品的图像。八角形拱廊周围有阿拉伯宗教铭文。岩石圆顶的外貌在''鄂图曼时期''和现代时期都有很大的变化,特别是在1959-61年和1993年增加了镀金屋顶。该结构的八角形平面可能受到了拜占庭圣母座教堂(希腊语称为 Kathisma,阿拉伯语称为 al-Qadismu)的影响,该教堂建于451至458年间,位于耶路撒冷和伯利恒之间的道路上。岩石圆顶的原穹顶于1015年倒塌,1022-23年重建,是现存最古老的伊斯兰建筑之一。
岩石圆顶的奠基石在[[亚伯拉罕宗教|亚伯拉罕诸教 Abrahamic religions]]中具有重大的意义,它被认为是上帝创造世界和第一个人类亚当的地方,也被认为是[[亚伯拉罕 Abraham]]试图献祭其子[[以撒 Isaac]]的地方,是耶路撒冷圣殿至圣所的所在处。故此,犹太人在祈祷时都会朝向它。传统上,穆斯林相信岩石圆顶中间的岩石就是穆罕默德夜行登霄,和天使[[吉卜利勒 Jibril]]一起,到天堂见到真主的地方。该地在中世纪曾为十字军的驻地,并''曾作为基督教教堂使用''。
Jötunheimr,''[[巨人(jötunn)|巨人族 Jotun]]''的国度。
根据北欧神话记载,约顿海姆位于人类所居住的[[中土世界:米德加尔特|人类之国米德加尔德 Midgard]]的''东方''。
众神(主神)战胜巨人族之后,所有的巨人都被[[霜巨人伊密尔 Ymir]]的血海淹没,只有[[勃尔格尔密尔 Bergelmir]]和他的妻子坐着方舟逃出了洪水灾难。众神划出一块地给他居住,称为''约顿海姆''。''贝格尔密''的后代就在这国度里繁衍,并宣誓与众神为敌。
巨人''斯克尔姆斯利''和一个农夫赛棋,巨人赢了。他们本来赌有彩头,现在巨人就要取去他的彩:农夫的独子。可是因了农夫的要求,巨人允许宽限一日让农夫把那孩子藏起来,如果巨人找不到,事即作罢。
农夫乃祈求[[奥丁|⚡众神之父奥丁(神圣) Odin]]帮助他。奥丁在天上听到了,就亲自下来,将农夫的孩子变成一粒麦子,藏在大麦田中的一棵麦穗上。
次日,巨人斯克尔姆斯利来了。在农夫的屋子里找不到那孩子,巨人拿了一把大剪子就往外跑。到了麦田中,他用剪子分开那些麦秆,终于找到了奥丁藏着孩子的那棵麦穗,就剪了下来。奥丁在天上早已看见,赶快从巨人手中抢下那孩子变的那粒麦,仍还原为孩子,交给农夫,说他——奥丁已经无能为力。
巨人又宽限一日,再给农夫一个同样的机会。
这次,农夫则去祈求[[海尼尔|维利(精神) Vili]]的帮助了。海尼尔将那孩子变为池中一只鹅的胸前的一根细绒毛。可是巨人在次日来时,看见了这只鹅,就猜到了其中的把戏,立刻把鹅头咬下来,如果不是海尼尔手快,则变成绒毛的孩子早已跑进巨人的肚里去了。海尼尔把孩子还原,交给农夫,也说他没有办法了。
于是巨人第三次宽限,再让农夫试第三次。
农夫现在只好向[[洛基|🦹邪神洛基 Loki]]祈求了。洛基将这孩子带到远远的海边,将他变为小小的鲽鱼肚子里的一粒小小的卵。但是他知道巨人的利害,就在海边等着。巨人果然来了,手里拿着钓具。洛基紧跟着。巨人钓了一会,钓起一条鲽鱼来,恰就是藏着农夫孩子的那一条。巨人剖开鱼腹,在无数的卵中找了半天,居然又找着了农夫孩子所变的那一粒。
洛基情急之下,便从巨人手里抢过那粒卵来,立刻还原为农夫的孩子,叫他快跑,并命令他必须穿过旁边的一个船库,而后随手把门带上。巨人斯克尔姆斯利也立刻跟在后面追;当他也跑进那船库的时候,头却撞上了洛基预先埋设的一支木桩,便跌倒在地上。乘这机会,洛基赶快砍断了巨人的一条腿,但是断腿自己能动,移到巨人身边,快要接上了。洛基也是行家,知道这是魔法,便赶快再砍断巨人的另一条腿,在断腿与身体之间投下铁片和燧石,这就破了巨人的魔法。
巨人既被杀,农夫的孩子遂得安全。农夫从此认为洛基是最有本领的神。
我们已经说过,在北欧神话中,最初产生于太古宇宙冰川中的活物是巨人。这些代表着丑和恶的巨人自创世之初就与与代表了美和善的诸神为敌。
当始源巨人伊密尔被诸神所杀后,他自己身上流出的血成为洪水,淹死了他的一切子孙,只剩下[[勃尔格尔密尔 Bergelmir]]夫妻一对,逃到北方的[[巨人之国尤腾海姆 Jotunheim]],他们成了此后一切巨人的祖先。这些巨人的名字各有意义,例如''尤腾(Jotun)''意为“''大食者''”,因为巨人们的食量都大得可怕。他们喝的本领也不差,故又名''Thurses'',这个词的意思是''“渴”''。另有一解释,则说Thurses是“高塔”;因为巨人们喜欢造高塔,故有此称。<<fnote "有时巨人和女巨人也被称为 Troll 和 Trollwives。">>
''尤腾海姆''在极北的寒冷之地。巨人们经常向南侵犯,但是他们笨重的身躯、愚蠢的头脑和石头的武器,到底不是灵巧聪明又使用铜器的诸神的对手。但是有一件事情巨人是胜过诸神的,即巨人知道一切过去之事。[[奥丁|⚡众神之父奥丁(神圣) Odin]]喝了[[密弥尔|智慧巨人密米尔 Mimir]]的[[智慧之泉|⛲密米尔之泉(智慧之泉) Mímisbrunnr]]后,曾和最聪明的巨人''瓦夫苏鲁特尼尔(Vafthruthnir)''斗智(这个巨人连未来之事也通晓),结果虽然是奥丁胜了,却也全赖他所问的、自己的极私秘之事是巨人不知道的。
巨人最怕诸神中的[[托尔|⚒️雷神托尔 Thor]],他的雷锤是一切巨人的致命仇敌。
据日耳曼的传说,地上的山也是巨人造成的。当大地初成的时候,还是软绵绵的一块,巨人们用脚乱踩,就弄成高高低低的山脉和平原了。女巨人们不喜欢她们丈夫的这种行为,放声大哭,她们的眼泪就成了江河(但据《大埃达》所载,则山谷和江河都是由[[伊密尔|霜巨人伊密尔 Ymir]]的骨肉和血汗造成);又说巨人们只宜在黑夜出来,若见了太阳光,就化为石头。这种说法,在斯堪的纳维亚也有,而冰岛人称他们最高的山为''Jokul'',大概就是Jotun一字的转音。在瑞士北部,还以为山顶的雪崩是巨人眉头或肩胛上的雪偶然掉落所致。
因为巨人是雪、冰、寒冷、石头和地下火的人格化,故亦被称为是始源巨人[[佛恩尤特 Fornjót]](Fornjot,这是对伊密尔的另一称呼)之后裔。据这种说法,佛恩尤特有三子:赫勒尔(Hler,海)、卡利(Kari,空气)和洛基(Loki,火)。
这些是最初的巨人,他们的子孙是海巨人[[密弥尔(Mimir)|智慧巨人密米尔 Mimir]]、[[盖密尔(Gymir)|🌊荒海之神埃吉尔 Aegir]]、格伦达尔(Grendal),暴风巨人[[夏基 Thiazi]]、[[索列姆(Thrym,喧嚣)|索列姆 Thrym]]、毕利(Beli),以及[[💀死亡女神赫尔 Hel]];北欧的贵族多喜欢将自己的祖先追溯到这些巨人,例如古老的法兰克帝国''墨洛温王朝''就说是出于''海巨人''。墨洛温朝的始祖''克洛维''的母亲,据说是在海边散步的时候,突然有牛形的东西从海里出来,直接强奸了她,后乃生克洛维。
芬兰北部有一种传说,说巨人们有一条大船,名为''曼尼格法(Mannigfual)'',常在大西洋中航行。这条船大得惊人,船长在船上巡行的时候必须骑马,其主桅也极高,水手们爬上去的时候还年轻,下来时已经老了。桅杆上有睡觉的地方,也有食物,等等。有一次,这条大船误了方向,进入了北海;因为想快些回到大西洋,又不敢在北海这样狭窄的地方转向,就一直驶进英吉利海峡。不料海峡越来越窄,到了加莱和多佛尔之间的地方,船身似乎实在过不去了,于是船长命令在船旁多擦肥皂,才总算滑了过去。''现在多佛尔的石崖特别白,就是因为那时被肥皂擦狠了的缘故。''
----
<<showfnotes>>
巨人(jötunn,复数形:jötnar)是北欧神话中最古老的种族,创世初开的第一个生物尤弥尔便是位巨人。在十二世纪冰岛的学者斯诺里的作品《冰洲史诗》有关于此的记载。且里面的记载描述诞生巨人的冰是有毒的,导致巨人基本狂猎粗暴。虽然中文常将其称作霜巨人,但其古北欧语和霜毫无任何关系。
大众流行文化漫威中将巨人描述为蓝皮肤眼神发光的冰冻生物,能够制造冰冻或吐出寒气,但这并非真实,事实上,巨人、亚萨神族,和华纳神族皆为同样的生物,只不过居住在不同的地方,巨人的家园为''约顿海姆 Jotunheim'',意思为“巨人 (jötunn) 的居住地”。
巨人也并非一般流行文化中描述的丑陋巨大人形生物,巨人中也有貌美英俊者,如洛基、丝卡蒂,和葛德。
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
巴乌吉(古北欧语:Baugi,“ring-shaped”),在北欧神话中,是巨人族的一员,他是[[吉尔林 Gillingr]]的儿子,[[苏图恩 Suttungr]]的弟弟。
关于他的故事,出现在[[⚡众神之父奥丁(神圣) Odin]]偷取智慧密酒里。用[[🍯智慧体克瓦希尔 Kvasir]]的血做成的密酒,据说只要尝了一口就可以得到诗的智慧。得到密酒的''苏图恩''将酒藏在山里,但被奥丁利用诡计给骗走了。
在这个诡计中,奥丁变成一个农夫接近巴乌吉,答应要帮他完成收割的工作,巴乌吉只好协助奥丁去取得智慧密酒。
创世记第11章1-9句记录了“巴别城”的故事。当时地上的人们都说同一种语言,当人们离开东方之后,他们来到了''示拿之地(the land of Shinar)''。在那里,人们想方设法烧砖好让他们能够造出一座城和一座高耸入云的塔来''传播自己的名声'',以免他们分散到世界各地。上帝来到人间后看到了这座城和这座塔,说一群只说一种语言的人以后便没有他们做不成的事了;''于是上帝将他们的语言打乱'',这样他们就不能听懂对方说什么了,还把他们分散到了世界各地,这座城市也停止了修建。这座城市就被称为“巴别城”。
根据《圣经》中的解释,该城的名字“巴别”来源于希伯来语balal,意思是“''混乱''”。
<a href="https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E9%80%9A%E5%A4%A9%E5%A1%94%20The%20Tower%20of%20Babel%20(Bruegel)%20c.1563:%5B%5B%E9%80%9A%E5%A4%A9%E5%A1%94%20The%20Tower%20of%20Babel%20(Bruegel)%20c.1563%5D%5D">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Pieter_Bruegel_the_Elder_-_The_Tower_of_Babel_%28Vienna%29_-_Google_Art_Project_-_edited.jpg/1915px-Pieter_Bruegel_the_Elder_-_The_Tower_of_Babel_%28Vienna%29_-_Google_Art_Project_-_edited.jpg"
caption:"The Tower of Babel by Pieter Bruegel the Elder (1563)"
width:"auto"
align:"center"
>>
</a>
巴力西卜(Beelzebub 或 Beel-Zebub),又译为别西卜、巴尔札布,天主教译为贝耳则步,意思为“''苍蝇王''”,非利士人的神,新约圣经中称别西卜为“''魔王''”,后人认为其对应圣经中七大罪的暴食。恶魔学里认为他是地狱的最高统帅,约翰·弥尔顿将其描绘成似外貌威严的智者,是最强大的[[堕天使|堕天使 Fallen angel]]。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Bastet.svg/440px-Bastet.svg.png"
caption:"Bastet 母狮神、太阳女神
猫女神、怀孕和分娩女神,月亮之眼"
width:""
align:"right"
>>
埃及神话中猫首人身的女神。
早在埃及第二王朝(西元前2890年)左右,她便开始受人崇拜,在上下埃及的统一之前,她曾经是下埃及的''战争女神'',与之相对的是上埃及的狮子女神[[塞赫麦特 Sekhmet|塞赫麦特 Sekhmet]],而因为其相似性,芭丝特的神职慢慢从战神转化成为''家庭的守护神'',象征家庭温暖与喜乐,广受埃及人的喜爱。
在希腊统治的时期,更进一步被转化成代表''月亮''的神明。
作为下埃及的守护神,曾被视为法老的守护者,但她的地位后来被拉所取代,于是她和其他狮子女神(包括[[泰芙努特|泰芙努特 Tefnut]],[[塞赫麦特|塞赫麦特 Sekhmet]],[[哈托尔|哈托尔 Hathor]]等等)都被视为[[拉之眼(Eye of Ra)|拉之眼 Eye Of Ra]],也就是太阳神的从属。因此,不少壁画都描绘她和太阳神拉的大敌,混沌之蛇阿佩普展开战斗。
她的名字也和埃及人存放香膏的陶瓶有关,所以她有时候也被称为‘''芬芳的守护者''’。除此之外,她也是家庭的守护神,象征了对疾病和邪灵的对抗。
芭丝特的雕像通常都由雪花石膏制成,手中有时候会拿著''叉铃(sistrum)''和狮子头装饰的''项圈(aegis)''。
芭丝特的主要崇拜中心位于布巴斯提斯,靠近尼罗河三角洲那里、现今名为宰加济格的地方。在古时候,那个地方被称为帕巴斯特(Per-Bast),也就是芭丝特之家的意思。
''巴比伦大淫妇'',又称''大巴比伦(Babylon the Great)'',是《新约圣经·启示录》中提到的寓言式的邪恶人物, 她与敌基督与七头十角的兽有关。“大淫妇”一词,见于《启示录》第17章第1节、第5章、第18章以及第19章第2节。《启示录》第17章第1节载:“天使对约翰说:‘你到这里来,我将坐在众水上的大淫妇所要受的刑罚指给你看。’”
!! 象征意义
<<<
那女人穿着紫色和朱红色的衣服,用金子、宝石、珍珠为妆饰;手拿金杯,杯中盛满了可憎之物,就是她淫乱的污秽。在她额上有名写著说:奥秘哉!大巴比伦,作世上的淫妇和一切可憎之物的母。我又看见那女人喝醉了圣徒的血和为耶稣作见证之人的血。我看见她,就大大的希奇。
<<<启示录
在古罗马,淫妇的名字都写在额上。 这个大淫妇额上也写着一个名字,一个很长的名字:“奥秘哉!大巴比伦,作世上的淫妇和一切可憎之物的母”。事实上,天使给约翰的信息十分详尽,足以让人悟出这个名字的真正含意。大巴比伦指的是所有错误的宗教。她是“众淫妇”的母亲,因为世上各种错误的宗教,包括很多基督教的教派,就仿佛她的女儿,仿效她在属灵方面肆意行淫。 她也是“可憎之物”的母亲,因为很多可憎的宗教习俗都源于她,比如崇拜偶像、通灵、占卜、占星、看手相、庙妓、以人为祭、纵酒狂欢吹捧假神,以及种种淫秽不堪的丑行等。
大巴比伦穿的衣服是“紫色和朱红色”的,而且“戴着金器、宝石、珍珠”。世上的宗教积聚了巨量财富:美轮美奂的教堂庙宇、珍贵稀有的名画雕像、价值连城的神像圣像,各式各样的宗教物品不计其数。这些巨量物业和金钱,算起来是个天文数字。
巴风特(英语:Baphomet,或译巴弗灭)是有名的基督宗教恶魔之一,是现今为人所熟知的羊头恶魔,也是撒旦的代名词。这个名字的起源尚无定论,它最早出现于12世纪晚期一首与穆罕默德有关的普罗旺斯语诗篇中,在14世纪初又作为异教偶像的称呼出现在异端裁判所对圣殿骑士(圣堂武士)的审讯笔录中。然而到了19世纪,这一名称随着一系列伪历史作品的出版又进入了以英语为母语的人们的视线,这些作品试图将圣殿骑士与一系列阴谋论联系起来。“巴风特”从此开始与法国神秘学家艾利冯斯·李维所画的“安息日之羊”有关。
[img[https://upload.wikimedia.org/wikipedia/commons/a/a4/Baphomet.png]]
//19世纪法国神秘学家艾利冯斯·李维创作的安息日之羊,手臂上写有拉丁文“分解”和“凝结”。//
!! 历史
巴风特最早于1195年出现在欧西坦/普罗旺斯''游吟诗人Gavaudan ''的诗篇《Senhors, per los nostres peccatz》中。 1250年在一首哀悼第七次十字军东征失败的诗中,游吟诗人Austorc d'Aorlhac再一次提到了“Bafomet”。 另外,在被译成欧西坦语的拉蒙·尤依早期作品《Libre de la doctrina pueril》(现仅存世四篇 )中,有一篇穆罕默德生平简介的题目就是“De Bafomet”。 1307年10月13日,星期五,法国国王腓力四世镇压了圣殿骑士团,逮捕了大批法国圣殿骑士并使用酷刑逼供。巴风特这一名字在几份供述中出现,''被承认为圣殿骑士们崇拜的偶像''。这几份供述中对其描述千差万别。一些圣殿骑士声称完全不知情,其余的人皆被屈打成招杜撰出诸如一只猫或者一个带三张脸的头的形象。 圣殿骑士面临多达100余种罪名的指控。与腓力四世的政敌们遭到的指控一样,它们大都是莫须有的。
我们所熟知的圣殿骑士所谓“崇拜偶像、鸡奸、向十字架吐口水或撒尿”的行为,早先就被用来指控当时被腓力四世绑架的教皇波尼法爵八世。而对于圣殿骑士崇拜异教偶像巴风特的指控是前所未有的。 《圣殿骑士百科全书》作者Karen Ralls指出,无论是《圣殿骑士法规》中还是中世纪圣殿骑士的文件中都从未提及过巴风特这一名字。
!! 艾利冯斯·李维
对于巴风特的形象起源于1861年,法国神秘学家''艾利冯斯·李维 Éliphas Lévi ''在他的著作''《高等魔法的信条与仪式》''中,绘制了巴风特最广为人知的描绘:''拥有一对乳房、额头有五角星、两角之间有火把、长著翅膀的人形山羊,并在腹部竖立着赫耳墨斯手杖。''此后这就变成巴风特的__官方视觉形象__。
<<<
插画上的这只山羊,额头上有一颗五角星的标志,顶上的一点是光的象征,他的手臂是赫耳墨斯主义的象征,朝上的那只手朝向代表慈悲的白月亮,朝下的另一只手则是指向黑色的严峻、这个标志展现的是慈爱与正义的完美和谐。它的一只手臂是女性的,另一只是男性的,宛如海因里希·昆哈特的雌雄同体,那些我们所拥有的特性都在这头山羊上统一了,因为它是同一个象征。在它角中的智慧之火是宇宙平衡的魔法之光,灵魂的图像从个体开始升华,就像火焰一般,被捆绑在个体之上,在上面照耀着它。这个丑陋的野兽头颅是象征动物本能和人类的罪恶,它的种种作为都需要全权负责,承担严丝合缝的惩罚。因为它的灵魂本质是麻木不仁的,当它物质化时终究只能受苦。竖立的杆子象征永恒的生命,而不是生殖器,这具身体覆盖着水中的鳞片,在上方的背景中有半个圆形,羽毛紧接着在上面摆动。代表人类的两个乳房和代表神秘科学中史芬克斯的手臂则是象征雌雄同体。
<<<
!! 撒旦教
撒旦教会的创始人安东·拉维于1966年成立了这个颇有影响力的神秘学团体。这个组织以“巴风特印记”作为它的官方标志:''一个置于倒五角星内的巴风特山羊头颅''。根据安东・拉维的说法,圣殿骑士崇拜的巴风特就是撒旦的符号。巴风特在撒旦教仪式中是很显著的存在,它会作为符号被放置在撒旦仪式的祭坛上。
[img[https://upload.wikimedia.org/wikipedia/commons/c/cb/SamaelLilithGoatPentagram.png]]
<<<
巴风特这个符号曾经被圣殿骑士用来作为撒旦的象征。从古至今这个符号有很多不同的称呼。它们包括:门德斯的山羊、千年不老之羊、黑暗之羊、犹大之羊,其中最恰当的也许就是替罪羊。巴风特代表着黑暗权力与山羊生产、生育力的结合。它纯粹的五角星代表人被五颗星点环绕的形象 — 三颗朝上,两颗朝下 — 象征着人类的精神本质。撒旦教同样采用五角星,但因为撒旦教代表与精神本质相反的人类肉体本能,于是五角星被倒转过来,完美的和这只羊的头结合 — 它的羊角代表二重性,向上挑战的推力;其它三个翻转的点则是否定三位一体。围绕这个符号外围的希伯来字母来自于卡巴拉的魔法教导,因此可以拼出利维坦,深渊之水中的蛇妖,也就是撒旦。这些文字对应着翻转的五颗星点。
<<<
少女讲她自己的故事:她的名字是''布伦希尔德''(Brynhild,传统神话说她是人间一个国王''布德利(Budli)''的女儿,《尼伯龙根指环》中则将她当作奥丁的女儿),是天庭中尊荣的[[瓦尔基莉|⚔️女武神瓦尔基莉 Valkyries]]。
有一次她在两国交战时,弄错了将要帮助的对象,使不该得胜的一方获得胜利,遂被奥丁贬下人寰,而且和人类的女人一样必须要嫁个丈夫。''布伦希尔德''很感不安:她深恐自己的丈夫会是一个卑怯的驽汉。为了要使她安心,奥丁乃将她带到这''希恩达尔山''来,用“睡眠之角”触她,使她睡着,而且能在睡眠中保持青春的美丽与活泼,直到她命定的丈夫到来;他又用火焰的围墙环绕在她周围,这样,除非是极勇敢的人,便不敢进来。
''布伦希尔德''指着''伦达尔(Lymdale)''的方向,说那是她从前的老家。不论什么时候,[[希格尔德|希格尔德 Siegfried]]都可以到那里去娶她为妻。于是''希格尔德''就将他的吸金指环套在布伦希尔德的手指上,算是订婚的定约。他发誓,永远只爱她一个。
据有些传说,这一对就此分别了。但据另一说,希格尔德不久就娶了布伦希尔德,过了些快乐的日子,然后又不得不离开她和新生的女儿。
这个女儿叫''亚丝拉琪(Aslaug)'',由布伦希尔德的外祖父''赫默尔(Heimer)''抚养长大,三岁时被藏在琴身中,逃难出外。半途中,赫默尔宿于农家,农人以为琴中藏有金子,就谋害了那老人,打开琴来一看,却是个好看的女孩子。亚丝拉琪在农家长大后,非常美丽,而且极其聪慧,后嫁瑞典国王''拉格纳·罗德布洛克(RagnarLodbrok,也是著名的半历史式传说英雄)''为妻。
而希格尔德和布伦希尔德分别的原因,据说是因为''希格尔德''立誓要在世间行侠,扶弱锄强,以期不负英雄本色。
是巴勒斯坦约旦河西岸地区城市,为希布伦省首府,也是''犹太教''中''仅次于''[[耶路撒冷|耶路撒冷 Jerusalem]]的''圣城'',也是世界文化遗产之一。其位于耶路撒冷以南30公里,海拔高度为930米,有166,000名巴勒斯坦人、以及700至800名犹太居民。
《希伯来书》,天主教称《希伯来人书》,是《新约圣经》中,写给''犹太人基督徒''的一封书信,《新约圣经》全书的第19本书。这卷书中没有提及作者姓名,内容大略陈述耶稣基督在旧约与新约时代的独特地位,并解释部分旧约圣经的真正含义。
《希伯来书》主题:神藉摩西颁下有关祭司的条例,因著人的软弱,使得地上的祭祀活动要暂时废掉,由神的儿子亲自为世人作天上的大祭司行赎罪祭。书信是为了安慰圣殿被毁后的信徒,不要迷失,要持定所承认的道。
现代犹太人的历法是以19年为周期,固定每个月的长短和置闰时机。而古代犹太人的历法则是按照天文观测,当''耶路撒冷出现新月的那一天作为一个月的第一天''。
''中东''地区的传统历法以''日落作为每一日的开始'',而新月跟随着太阳从地平线上升起、在日落后不久落下。这样古代的以色列人在春分前后,观测到耶路撒冷出现新月的那天,就是''尼散月''一日的开始。从这天向后数14日就是[[逾越节|Passover 逾越节]]。而现代的固定历法会产生18至30小时、甚至一整个月的误差。
|!月份|!含义 |!希伯来历 |!格里历 |!节日 |
|尼散月 Nisan/Nissan |乐月 |1 |3~4 |14日落后~21日 [[Passover 逾越节]] |
|以珥月Iyar |爱月 |2 |4~5 |14日落后 [[补过逾越节|Passover 逾越节]] |
|西弯月 Sivan |筑月 |3 |5~6 |6日[[七七节 Shavuot]] |
|搭模斯月 Tammuz |获月 |4 |6~7 | |
|埃波月 Av|熟月 |5 |7~8 | |
|以禄月 Elul |酹月 |6 |8~9 | |
|提斯利月 Tishrei |施月 |7 |9~10 | 1日[[吹角节|犹太新年 Rosh HaShanah]], 10日[[赎罪日 Yom Kippur]], 15~21日[[住棚节 Sukkot]], 22日[[圣会节 Shemini Atzeret]] |
|玛西班月 Cheshvan |甦月 |8 |10~11 | |
|基斯流月 Kislev |孕月 |9 |11~12 |25~2日[[光明节 Hanukkah]] |
|提别月 Tevet |息月 |10 |12~1 | |
|细罢特月Shevat |洪月 |11 |1~2 | |
|亚达月Adar |魔月 |12 |2~3 |14日[[普珥节 Purim]] |
[[奥丁|⚡众神之父奥丁(神圣) Odin]]的一个儿子,伏尔松格家族的祖先。
希密尔(Hymir),是北欧神话中的一名巨人,他住在世界尽头的''艾尔瓦加尔(Elivagar)'',他的母亲是有九百颗头的女巨人,妻子一说是无名的女巨人,一说是Hrod,且有可能属于神族一员。
在《诗体埃达》〈希密尔之歌〉(Hymiskvitha,The Lay of Hymir)中提到他们的孩子是战神提尔(Tyr)。让人感到混乱的是,除〈希密尔之歌〉外,在别的故事里提尔都被当作是[[奥丁|⚡众神之父奥丁(神圣) Odin]]之子。为此出现两种说法,一个说法认为此时提尔为“神”的泛称,指的是任何一个神。另一说则认为故事中的角色其实是巨人族出身且跻身神族之列的[[洛基(Loki)|🦹邪神洛基 Loki]]。
!! 希密尔之歌
在〈希密尔之歌〉中提到的故事是:北欧诸神想拜托[[🌊荒海之神埃吉尔 Aegir]]酿酒,但埃吉尔说道没有够大的锅子。这时提尔想起他的父亲希密尔拥有一个巨大的锅子,有二公里深。
于是诸神便推派[[⚒️雷神托尔 Thor]]和提尔出发去取锅。当他们来到巨人的城堡,提尔的母亲非常高兴的接待两人,并嘱咐他们先躲在大锅里面等希密尔。希密尔知道离开巨人族加入神族的儿子回来,非常不高兴,但看在妻子的分上,他还是设宴款待。
''希律王朝''是一个以以东人血统为主的以色列王朝,它曾经统治过犹太希律王国,后来又统治过罗马帝国的附庸国''希律四国''。
希律王朝始于大希律王的父亲''安提帕特'',他是一名[[哈斯蒙尼王朝 Hasmonean dynasty 140 BC-37 BC]]的高官,希律在他死后在公元前37年获得[[罗马共和国 Roman Republic 509 BC-27 BC]]的支持,封为''犹太人的王''并取代哈斯蒙尼王朝。
他的王国一直持续到公元前4年,随后王国被分割给希律的三个儿子和他的妹妹并分裂成4个国家,即''希律四国''。
公元6年,统治含耶路撒冷核心地区的希律·阿基劳斯被罗马皇帝奥古斯都罢免,他的领地并入''罗马帝国''犹太行省,不过希律王朝的分封王如莎乐美一世、希律·安提帕斯和希律·腓力二世依然统治著行省周边的小块地方并一直持续至公元41年希律亚基帕一世继大希律再次获得全犹太地区管治权为止(行省被罗马人取消,亚基帕一世王国的地位相同于大希律王的王国)。犹太行省在44年亚基帕一世死后重新建立。
此后即位的最后一位希律王朝君主希律亚基帕二世只是名义上的君主,实际上没有多少权力。''公元92年'',希律亚基帕二世去世后,罗马帝国彻底废除了''希律王朝'',将名义上希律王朝的领土并入犹太省。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
[[伏尔松格 Volsung]]的女儿,[[希格蒙德 Sigmund]]的妹妹,[[辛菲奥特利 Sinfiotli]]的母亲
''希格蒙德''乃废逐了博格希尔德,另娶年轻美丽的''希奥尔迪丝(Hiordis)''。曾有许多人为希奥尔迪丝着迷,但震于希格蒙德的大名,希奥尔迪丝就嫁给了他。有一个叫''莱格尼(Lygni)''的人,本属于''亨定''家族,也曾向''希奥尔迪丝''求婚而遭拒,现在就起了大兵来攻打''希格蒙德''。虽然希格蒙德已经老了,可是勇力仍然不减;他杀死了许多''莱格尼''一方的人,直到后来有一名独眼、身材高大的老战士突然冲过来举矛攻击。希格蒙德用他那神赐的宝剑去招架,不料剑竟被打成碎片。这样他就没有了武器,那独眼的战士又突然不见,希格蒙德遂为敌人所杀。
胜利属于莱格尼。所有''伏尔松格''一方的人都被杀死,莱格尼离开战场,想赶快去占据希格蒙德的王位,并强迫美丽的希奥尔迪丝为妻。然而希奥尔迪丝此时正躲在战场旁的草丛中观战,现在看见莱格尼走了,就从藏身处出来,拥抱了垂死的希格蒙德。希格蒙德吩咐她保藏着那神剑的碎片,又说一族的大仇将来要由她怀孕中的孩子来报,因为希奥尔迪丝现在已经有孕在身。
希格蒙德说完就气绝了。希奥尔迪丝正在悲哭,她的侍女突然来报,说有一队丹麦人来了。于是她们再躲入草丛中;希奥尔迪丝和她的侍女互换了服装,然后出来见那队丹麦人的国王''埃尔弗(Alf)''。她们把经过的战事说得那么详细,引起了埃尔弗的极大兴趣。他敬重希格蒙德,收拾了他的尸身,举行隆重的葬礼,然后带希奥尔迪丝及其侍女回他自己的国家。
回国之后,埃尔弗开始对这两个女人的主从关系产生怀疑。他用手段试出了谁是真正的希奥尔迪丝,就要娶她为妻。希奥尔迪丝的条件是须得好好照顾她未来的儿子。后来希奥尔迪丝果然产下一子,取名为''希格尔德'',由最聪明的侏儒''莱金(Regin)''来教育这孩子。莱金不仅知道过去一切的事情,而且知道自己未来将死于一个年轻人之手。
''希格尔德''渐渐长大了,聪明甚至胜过他的老师。他会打造兵器,懂鲁纳文字,又善辩论,而且还是无人能敌的勇士。到了成人之年,他向埃尔弗提出要一匹马,这时,奥丁又亲自来指点他选了一匹是那[[🐴八脚马史莱普尼尔 Sleipnir]]的后代的好马,''格拉尼(Grani)''。
一个冬天的夜里,''希格尔德''和''莱金''围火而坐。莱金弹着琴,唱出一首诗,自叙他的生平事迹:
''赫瑞德玛(Hreidmar)''是[[侏儒|地精之国斯瓦塔尔法海姆 Svartalfaheim]]的国君,有三个儿子:长子''法弗尼尔(Fafnir)'',有的是大胆子和强臂膊;次子''奥特尔(Otter)'',能变化成万物;三子就是''莱金'',有聪明的头脑和一双灵巧的手。为了要取悦赫瑞德玛,莱金建筑了一座房子,镶满金珠宝石,而勇敢的''法弗尼尔''就做了守卫。
法弗尼尔每天都要经过这片沙碛到河边去喝水,当他从沟的上方经过时,''希格尔德''看准龙的左胸猛刺一剑,果然杀死了这妖魔。
莱金见危险过去了,方才走近来。他怕希格尔德要索取报酬,就先抱怨希格尔德不该杀了他的哥哥。他说一命抵一命的话姑且不提,只要希格尔德替他挖出龙心来,烧好给他吃,他就愿意和解。希格尔德慨然应允,答应暂时充当一次庖丁。莱金一面等着龙心来吃,一面又在打主意,如何暗算这个年轻人。
希格尔德将龙心烤了一会,便用手去摸,想看看是否已经烤好。不料灼烫了手。他将自己的手指放进嘴里吸吮,——就像被灼烫的人们常做的那样,——奇事立刻就来了:龙血一碰到他的舌头,他突然听得懂鸟儿的说话了。此时正有一群小鸟在他四周啾啾地叫。希格尔德用心一听,知道小鸟们是在对他说:莱金不怀好意,应该杀了莱金,拿走他的金子,因为这是希格尔德应得的战利品;至于龙心和龙血,希格尔德可以自己吃。这些忠告正合希格尔德之意,他就杀了莱金,喝了龙血和莱金的血,又吃了大半个龙心,留下一小半预备以后再吃。希格尔德又取走了“''恐怖之盔''”<<fnote "无论何人与戴此盔者为敌时都将被吓得魂飞魄散。">>和吸金指环,将金子装在他的马的背囊内,坐在鞍上再听小鸟们还有什么话。
他听到小鸟们说,有一个沉睡的少女,身旁有猛火环绕,只有极英勇的人才能走入火中将她唤醒。希格尔德所要做的,正是这样的冒险;于是他就去找寻。经过了极长、极难走的山路,他终于在法兰克兰(Frankland)的希恩达尔(Hindar)山上,看见在一座极高的山峰之顶,似乎隐隐有火焰喷出来。
希格尔德从山麓上去。火焰是更加厉害了,待到了山顶时,他看见一个火焰的圆圈呼呼地响着,即使是最勇敢的人也会望而却步。但希格尔德记起了小鸟的话,便冲进火圈。这时,那狂暴的火焰突然熄灭了,希格尔德依着一条白灰的路径往前去,走进了一座城堡。城堡的门大开着,希格尔德纵马直入,毫无阻拦。这里没有一个人;终于在院子中间,他看见有一个披甲戴盔的人形躺着。希格尔德下了马,将那人的铁盔的面罩揭开来看时,不禁惊呼起来:原来不是战士,却是一名极美丽的少女。他用种种办法想要唤醒她,可是都无效。后来他用剑割开她贴身的铠甲,在甲内衬着的是雪白的女袍,金色的长发纷披在腰间。当甲胄被完全割开的时候,少女睁开了她的双眼;一线阳光照到她脸上,她的眼睛放出光芒,回眸看着那位救她醒来的少年战士。在这一刻,他们两个就互相爱上了。
----
<<showfnotes>>
《大埃达》的第一部分,包括了宇宙之创造、诸神的事迹、以及诸神之最终丧亡等故事,可以说是属于神话的;而第二部分却包括了一连串的英雄叙事诗,述及伏尔松格(Volsung)家族的事迹,特别是伏尔松格家族最有名的首领希格尔德(Sigurd,就是《尼伯龙根指环》中的齐格菲尔德(Siegfield))的故事,可以说是属于传说的。在北欧,希格尔德是最有名的民族英雄;所以希格尔德的传说也可以说是北欧的史诗,可以相当于《伊利亚特》。
在希格尔德传说——或简单地称作伏尔松格传说——中,还包括了日耳曼有名的尼伯龙格(Nibelung)传说(在12世纪的日耳曼史诗)的材料,以及许多民歌。后来理查德·瓦格纳(RichardWagner,1813-1883)的剧作《尼伯龙根指环》中的名曲《莱茵的黄金》,以及《女武神的骑行》等,都取材于此。
民族英雄的传说,本应视为神话的一部分。我们现在也简略地叙述一下这有名的北欧史诗,伏尔松格传说。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>nsort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
{{伏尔松格(Volsung)家族}}
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
!! 希吉
伏尔松格传说始于''希吉(Sigi)'',他是[[奥丁|⚡众神之父奥丁(神圣) Odin]]的一个儿子,有威权,受人尊敬。后来,''希吉''因为妒忌别人打猎比他好,竟杀了那个人。因为这罪恶,希吉被逐出本乡。但是,奥丁似乎还在眷顾他,给了他一条设施齐全的船和一船勇士,并且使他到处得胜。这样,受了奥丁的帮助,希吉的袭击成为他的敌人的恐怖;最后他征服了广阔的土地,自称''匈奴(Huns)''帝国的皇帝,权力很大。可是到了''希吉''很老的时候,奥丁的眷顾离开他了,__他遂被妻属的亲戚用阴谋所杀__。
希吉的儿子''利里尔(Rerir)''从远征中回来,继承了大位之后,第一件事就是为父亲报仇。''利里尔''是一个好皇帝,国内安康;只是他没有儿子。后来他的祈祷打动了诸神之后[[芙莉|众神之母弗丽嘉 Frigga]]嘉,芙莉嘉使侍女盖娜赐以一苹果;利里尔在山边散步时接到这苹果,他憬然片刻,省悟到此乃是神赐嗣子之意,于是持归,和他的妻子分食了,后生一子,名为''伏尔松格 Volsung'',长得英俊端庄。不久,利里尔夫妇去世,还是婴儿的伏尔松格成为国王。
!! 伏尔松格
伏尔松格在位多年,国家更为富强。伏尔松格是雄才大略的君主,麾下勇士无数,他们都在大橡树布兰斯托克(Branstock)下面分享皇家的食物;布兰斯托克橡树起于伏尔松格的大宫中央,直贯屋顶,笼罩了整座宫廷。
伏尔松格已经有十个儿子。而第十一个来的却是光耀了他的家族的女儿,''希格妮(Signy)''。希格妮到了待嫁之年,艳名声噪远近,许多人都来求婚,其中就有哥特(Goth)国王''希吉尔(Siggir)''。希吉尔最后得了伏尔松格的许可,尽管希格妮还从来没见过这位有幸的求婚者。到了结婚那天,希格妮看见新郎是那样猥琐凡庸,远不是她的哥哥们这样气宇轩昂的人材,心里就不高兴。可是为了家族的体面计,希格妮勉强成婚。她这种悒悒的心情,只有她的哥哥''希格蒙德(Sigmund)''知道。
结婚的喜酒刚吃到一半,大家正在快乐的顶点时,忽然来了一位不速之客。他只有一只眼睛,披一件云蓝色的大袍,身材很高。他不看吃酒的大众一眼,也不说一句话,径直走到大橡树布兰斯托克前,拔出一把利剑,深深砍入橡树粗笨的树干上。然后,他慢慢地转过身来,对惊异着睁大双眼的众人说,谁能拔出此剑,就将无敌于天下。说完,这位不速之客就不见了。于是大家就明白这是奥丁大神亲自来显示奇迹给他的后裔看。
!! 希格蒙德 Sigmund
伏尔松格乃请在座的人去试拔这把剑。第一个被邀的是新郎希吉尔,虽然他用尽平生之力,宝剑却不肯出来。第二个是伏尔松格自己去试,也没有成绩。他的前九个王子也都一一去试拔,剑还是牢牢地不肯出来。于是轮到第十王子,最年少的希格蒙德;他却容容易易地一拔就出来,仿佛剑只是套在鞘子里一般。(此即为名剑格拉姆(Gram,愤怒)。在《尼伯龙根之歌》中此剑名为巴鲁蒙格(Balmung),而在《尼伯龙根指环》中则名为诺托恩格(Nothung),指的都是同一把剑。)
所有在场的人都庆贺这位年少王子的成功,''希吉尔''心里却是在妒忌。他向希格蒙德买这把神赐的宝剑,但被希格蒙德拒绝。希吉尔觉得太丢脸,当下就决心要谋害伏尔松格一族,夺取这把神剑。他就请伏尔松格和他的十个儿子在一个月后到他的国内游玩,伏尔松格慨然允诺;希格妮猜到有阴谋,候她丈夫睡着后,悄悄地警告她的父亲,劝他不要到希吉尔的国内。但伏尔松格不肯失信。
这一对新人归家而去不久,伏尔松格乘着一条载满了人的船到达了哥特国境的海岸。希格妮早已在留心守望,一见了自己家里人的船,就赶快跑上沙滩去告诉他们不可上岸,因为希吉尔已经有埋伏。但是伏尔松格家族的人是什么都不怕的,他们安慰了希格妮,就带了兵器上岸。
果然在半路上遇到伏兵了。伏尔松格一族虽然勇敢善战,但寡不敌众,老伏尔松格战死了,十个王子都被活捉。卑怯的希吉尔并没在战场上露面,现在却高坐着审问这十个王子。他夺取了希格蒙德的神剑之后,便要将十人全部处死。希格妮的哀求也不能救她哥哥们的性命;她仅能求得将他们缚在森林中,使之饿死,如果他们不被野兽咬死的话。希吉尔恐怕她私下去帮助她的哥哥们,于是就将她囚禁在宫中,一举一动都有人监视。
每天早晨,希吉尔都派人到森林中去看那十个伏尔松格王子是否还活着。每天的回报都是已经死了一个;因为每晚都有一条狼从林中出来,吃了一个伏尔松格王子,留下一堆骨头。待到只剩希格蒙德还活着的时候,希格妮想了一个计策。她命她的仆人偷偷到森林中,将蜜糖涂满了希格蒙德的脸和嘴。——那一晚狼来时,嗅得蜜的甜味,便用舌头舐希格蒙德的脸,后来竟将舌头舐进希格蒙德的嘴里。这是一个好机会,希格蒙德立即咬断了狼的舌头,和它争斗,结果不但杀了怪兽,自己也挣断了束缚,暂时躲在森林深处。一天,希格妮来收她哥哥们的骨头,希格蒙德就从隐匿处出来与她相见。二人把九个哥哥的骨头收拾好了,发誓定要报一族之仇。希格妮先回宫去,希格蒙德造了一个茅屋,就在森林中住下来。
希波吕托斯是一个猎人和运动员,''对性和婚姻感到厌恶''。阿佛洛狄忒对他的这种忽视感到不快,她让希波吕托斯的继母菲德拉爱上了他;希波吕托斯拒绝了菲德拉的追求,导致他从战车上摔下来而死亡。
! Hippolytus in Euripides
欧里庇得斯(Euripides)的悲剧《希波吕托斯》描述了同名英雄在与他的继母菲德拉(特修斯的第二任妻子)发生冲突后的死亡。
受到阿佛洛狄忒的诅咒,菲德拉热切地爱上了希波吕托斯,以至于她身体生病,并决定通过自杀来结束她的痛苦。她的护士试图拯救她,向希波吕托斯透露了这个秘密,并鼓励他作出回应。西波吕托斯的反应只是惊恐和厌恶,羞辱了菲德拉。在绝望中,她不想承认结束自己生命的真正原因,于是上吊自杀,''并给特修斯留下一张纸条,指控他的儿子强奸了她''。
特修斯大怒,用他父亲波塞冬给他的三个愿望之一来诅咒逃离宫殿去打猎的希波吕托斯。波塞冬派了一只海怪来恐吓西波吕托斯的战车马匹,马匹变得无法控制,把它们的主人甩出车外。阿尔忒弥斯告诉特修斯,费德拉在撒谎,从而使父子和解,并安慰奄奄一息的希波吕托斯,承诺将他作为宗教活动的对象,使他的记忆永存。她指派一队特罗赞的少女将菲德拉和西波吕托斯的故事保存在仪式歌曲中。
这个故事的版本也出现在小塞内加的戏剧《菲德拉》、奥维德的《变形记》和《希罗伊德》以及让-拉辛的《菲德勒》中。
[img[https://upload.wikimedia.org/wikipedia/commons/thumb/0/0f/Hippolytus_Sir_Lawrence_Alma_Tadema.jpg/580px-Hippolytus_Sir_Lawrence_Alma_Tadema.jpg]]
!! 其他版本
保萨尼亚斯讲述了一个关于西波吕托斯的故事,与欧里庇得斯的版本不同。
西波吕托斯被[[阿斯克勒庇俄斯(Asclepius)|⚕️医药之神阿斯克勒庇俄斯 Asclepius]]救活了;一旦复活,他就拒绝原谅特修斯,并去了意大利,成为亚里士人的国王,并以阿耳特弥斯的名字命名了一座城市。
他在戴安娜神殿内以 "维比乌斯(Virbius) "的身份进行统治。圣殿禁止马匹进入,这就是为什么人们相信他住在那里)。希波吕托斯的故事与欧里庇得斯不同,因为它让他死而复生,在意大利过着他的生活,而欧里庇得斯将他永久地与他的坟墓联系在一起。
Also ''Hippodamea'' and ''Hippodameia''
母亲是[[Danaus|👑达纳斯 Danaus]]
<<list-links "[tag[希腊/罗马——Symbol]]">>
<$tmap view="希腊众神" editor="advanced" height="600px" ></$tmap>
<$tmap view="希腊神话中的怪物" editor="advanced" height="550px" ></$tmap>
<div class="tc-table-of-contents">
<<toc-selective-expandable "希腊神话中的怪物">>
</div>
"Relation",[[⚒️雷神托尔 Thor]]的妻子,她和Thor的孩子是摩迪(Modi,勇))和斯露德((Thrud,力量)。她与Thor另有一个养子,是冬神忧勒(Ullr)。
她是丰收五谷的人格化,是土地和收获的女神。她是北欧女神中,继[[女战神弗蕾亚 Freyja]]后最美的女神。希芙最美的地方是一头金发,神话中形容她的金发耀眼夺目,象征金黄的麦穗或是地里的黄金。
!! 希芙之发
一天,邪神洛基趁希芙熟睡时(一说是睡在伊登女神的花园),趁机将她的头发剃光,Thor因此勃然大怒。
洛基为了平息Thor的怒火,拜托侏儒伊瓦尔迪(Ivaldi)的儿子''[[德瓦林(Dvalin)|德瓦林 Dvalin]]''用金丝制成一顶黄金发作为弥补。又另外做了两个礼物:献给[[⚡众神之父奥丁(神圣) Odin]]的是长枪[[冈格尼尔|冈格尼尔 Gungnir]],献给[[丰饶之神弗雷 Freyr]]的是[[神船斯基德普拉特尼|🛶斯基德普拉特尼 Skidbladnir]]。洛基因此称赞他是世上最好的工艺家。
但这句话引来另外一个侏儒''[[勃洛克|勃洛克 Brokkr]]''的不满,因此勃洛克和洛基打赌,赌他的哥哥''[[埃特里 Eitri]]''能做出更好的东西,而赌注则是彼此的头颅。Eitri做出一头金色的[[野猪古林博斯帝|🐷金毛猪古林博斯帝 Gullinbursti]]献给''弗雷'';还有一个[[𓏌戒指德罗普尼尔 Draupnir]]献给奥丁。
而当他在做准备献给Thor的[[🔨妙尔尼尔(雷神之锤) Mjölnir]]时,害怕会输的洛基变作一只牛虻,去扰乱在帮忙顾火的勃洛克,结果因而使得雷神之锤的柄短了一点。
这场赌局,在诸神的判断下是由做出雷神之锤的Brokkr和Eitri获胜。洛基见自己输了,拔腿就跑,但却被托尔捉住,交给勃洛克,然而却对这位胜利的侏儒说:“虽然头是你的,可是不能伤了他的脖子”。因此,两个侏儒不能割洛基的头,只好用铁线缝上了洛基的嘴唇,免得他再说坏话。但是不久之后,洛基设法割断了嘴唇上的铁线,又能挑拨是非了。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
son of [[Matthat,son of Levi]]
在[[路加福音 Gospel of Luke c.56-58]]中是[[约瑟 Joseph,son of Jacob,son of Matthan]]的父亲
儿子
母亲是[[Eurybia|欧律比亚 Eurybia]]
! 全民健康女神 Goddess of Universal health
''塞萨洛尼基'',又译作萨洛尼卡、塞萨洛尼卡、萨罗尼加、第撒隆尼基,旧译作''帖撒罗尼迦''(按古希腊语发音),是''希腊''第二大城市,也是希腊北部最大的城市,希腊中马其顿大区和塞萨洛尼基专区的首府。根据2001年官方人口统计,塞萨洛尼卡大都会地区总人口有1,057,825人。
塞萨洛尼基是''希腊第二大经济、文化中心,以及东南欧主要的交通枢纽''。它的商港对于希腊和东南欧腹地都非常重要。该市拥有2所国立大学,学生人数居希腊首位。作为文化中心,它以拥有大量的拜占庭建筑杰作以及一些重要的奥斯曼帝国、犹太人建筑而知名。该市以每年9月初在此举行的国际贸易博览会知名,希腊总理每年会在此发布下一年政府的计划。塞萨洛尼基还以东南欧最重要的文化活动──塞萨洛尼基国际电影节而闻名,吸引了许多国际名人。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Khnum.svg/460px-Khnum.svg.png"
caption:"尼罗河源头之神、陶工之神、造物之神"
width:""
align:"right"
>>
库努牡(亦可拼写为"Chnum", "Knum"或"Khnemu")是最早的埃及神祇之一,原为''尼罗河源头之神''。由于尼罗河每年的固定泛滥会带来淤泥与黏土,而河水则带来生命,所以库努牡也被认为是''儿童的创造者'';传说他先在一个手拉胚转盘上用陶土做出小孩的身体,再把它放到母亲的子宫中。在后期的神话里,甚至连其他的神祇都是由库努牡捏塑出来的,祂因此被称为“''陶工之神''”和“''造物之神''”。
是希腊一岛屿,曾是伊奥尼亚群岛的一部分。它位于伯罗奔尼撒半岛东南端马里阿角外,面积约280平方公里,人口3354人(2001年),行政上归属于阿提卡大区岛屿专区基西拉市镇。基西拉岛和马里阿角之间的基西拉海峡是繁忙而又危险的海上通道,历史上许多船只在此遇风,撞向马里阿海角。
在古希腊神话中,库忒拉被认为是爱神阿芙罗狄蒂的岛屿(参见塞浦路斯,另一个供奉爱女神的岛屿)。据说她是从岛屿附近的海水泡沫中诞生的。
传说上面有一个[[💗爱情女神阿佛洛狄忒 Aphrodite]]的女神像。
<$leafmap tile='positron'
places='{"point":"36.2575, 22.9975"}' zoom=5>
在《创世记》中,Dinah是[[利亚|利亚 Leah]]和[[雅各|雅各 Jacob]]的第七个孩子,也是''唯一的女儿''。
!! 强奸底拿 rape of Dinah
雅各在示剑支搭帐棚,[[底拿 Dinah]]被迦南人或[[希未人|Hivites]]''Hamor''的儿子''示剑Shechem''看见,强奸了她。
示剑想娶Dinah为妻,雅各的儿子们提出必须整个城的男人都受割礼,和他们一样,他们才能接受。Hamor和Shechem答应了。
割礼结束的第三天,[[西缅|西缅 Simeon (son of Jacob)]]和[[利未(Simeon and Levi)|利未 Levi]]趁众人没有恢复,把城里所有男人都杀死了,包括Hamor和Shechem。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/0/01/Rape-of-dinah.jpg/1377px-Rape-of-dinah.jpg?20161011183207"
caption:"Rape-of-dinah Giuliano Bugiardini"
width:"auto"
align:"center"
>>
<a href="https://www.wikiwand.com/en/Deborah#Media/File:Aix-en-Provence_Mausolee_Joseph_Sec_08_20061227.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/4/42/Aix-en-Provence_Mausolee_Joseph_Sec_08_20061227.jpg/928px-Aix-en-Provence_Mausolee_Joseph_Sec_08_20061227.jpg"
caption:"A statue of Deborah (1792) in Aix-en-Provence, France"
width:"400px"
align:"right"
>>
</a>
a prophetess in [[士师记 Book of Judges c.1100 BC]]
!! 相关事迹
[[女先知底波拉]]
''座天使''(英语:Thrones,亦称Ophanim、Galgalim;拉丁语:Thronus,复数形式Throni)见于哥罗森书一章16节,天主教译作''上座者''或''上座天使'',基督新教译作有位的,东正教译作宝座天使;是天界理性的中间者。
他们通过上级天使的中介而间接地从神圣的光照那里接受洁净、光明和完全。接近圣父的座。这称号表明他们有一种对一切尘世缺陷的超越。由于它们毫无激情和没有对物质的关心而完全适宜于管理物质。座天使是物质世界的基础和来源,也是天堂的顾问,以及所有行星的天使共事者。犹太教认为所有希伯来人的祖先升天后,俱化为座天使。而''沙法尔''、''拉结尔''和''拉斐尔''是座天使的君主,他们的使命为调和所有呈两极对峙的事物与现象。
! 主管收获与贮藏的天神
在古罗马宗教中,康苏斯神是谷物的保护者。他以一粒谷物种子为代表。 他的祭坛 (ara) 位于 Circus Maximus 的第一层。它要么在地下,被泥土覆盖。
他是主管收获与贮藏的天神。据说他的祭坛在地下,是罗马城的创建者罗慕路斯( Romulus)发现的。它就在大竞技场里面( Circus maximus),只在他的节日期间开放,即每年八月的丰收节和十二月的储藏节。
把祭坛设在地下,是为了纪念把谷物储藏在地下的古老习俗,或者指把那些献给地神的供品掩埋起来的旧俗。人们举办马赛,来庆祝丰收节。这种比赛的起源仅仅是古代农夫的骑马行为,后来变成了大竞技场的一个著名的项目。
''控诉犹大国的恶行''
弥迦书是圣经全书的第33本书,也是小先知书之一。''弥迦书中很多预言在时隔几百年后获得惊人应验''。
本书的作者是[[🗣️弥迦 Micah]],弥迦虽是南国的先知,但他的信息是对南北国的。先知带来了耶和华对以色列的责备,以及祂赐给以色列的复兴,他的信息强而有力,适时的扭转了犹大国[[👑希西家 Hezekiah]]王的心,改变了''犹大''的政策,也因而拯救国家于危急存亡之秋。(耶26:17~19)
!! 背景
像其他许多先知书一样,''这本书甚少提及弥迦本人'';信息本身才是重要的事。他在[[👑约坦 Jotham]]、[[👑亚哈斯 Ahaz]]、[[👑希西家 Hezekiah]]诸王在位时(公元前777-717年)作预言者,与[[🗣️以赛亚 Isaiah]]和[[🗣️何西阿 Hosea]]同期。
他说预言的确切时期无法肯定,但最多不超过60年。他论及[[撒马利亚 Samaria]]荒凉的预言必定是在该城于公元前740年遭受毁灭前说出的。整本预言书则在''希西家''的统治于公元前717年结束时完成。(弥迦书1:1)
弥迦生活在一个意义重大的危险时代,事态的迅速发展预示以色列和犹大国的毁灭行将来临。以色列国内充满不道德和拜偶像的事,以致后来这个国家给亚述灭了。
事情显然发生于弥迦在世的时候。犹大国在约坦统治时紧守正道,到悖逆的''亚哈斯''作王时转而效法以色列的恶行,后来又在希西家统治期间把弊端纠正过来。耶和华兴起弥迦向他的百姓发出强烈警告,指出他行将在他们身上施行甚么惩罚。弥迦的预言补足和证实了''以赛亚''及''何西阿''的预言。
!! 预言应验
''耶稣''在''伯利恒''诞生一事应验了''弥迦书''的预言。这不但证实弥迦书是上帝所感示的,也表明这节经文的上下文其实预言到基督耶稣所统治的上帝王国的来临。耶稣就是出自伯利恒(伯利恒的意思是粮食之家)的那一位,为一切对他的祭物怀具信心的人带来予人生命的裨益。他要“倚靠耶和华的大能,……牧养他的羊群”。他要为大,为上帝所复兴的团结羊群带来和平,直到地极。
<<tabs "[tag[归属领域]nsort[list]]" "天国众神" >>
son of [[拿鹤 Nahor, son of Terah]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
《彼得前书》,天主教称《伯多禄前书》,是《新约圣经》中的第21卷书,是耶稣十二使徒中的[[彼得|✝️彼得 Saint Peter]](原名西门)写给当时在小亚细亚几个教会的信。时间大约是公元60年。
!! 主题
本书旨在勉励信徒''在患难中持守信心,站立不移''(5:11-12),基督徒是圣洁的、在世上寄居的,因此信徒的盼望不在世上,是在天上,应看轻世上的苦难。书中提及“''受苦''”不下十六次,其中七次记述基督的受苦,借此提醒读者:苦难是在所难免的事,信徒当效法主的榜样,忍受冤屈,专仰望 神。书中另一主题是“盼望”,知道当主再来时可与基督同享永远荣耀(4:13)。由于这盼望不是源出信徒本身,本书又强调 神的“真恩”(5:12),以此形容基督徒信仰的特质。全书充满作者的嘱咐,勉励读者存敬畏 神的心,品行端正,一心为善。
《彼得后书》,天主教称《伯多禄后书》,是《新约圣经》中的第22卷书,属于“大公书信”中最前写成的第三卷。根据基督教传统,基督教相信成书时间是大约公元65-67年,即教会传统认为彼得殉道(遭罗马皇帝尼禄处决)的那一年。教会认为这本书是耶稣十二使徒之首[[彼得|✝️彼得 Saint Peter]](原名西门)所写。''现代圣经研究则认为作者不可能是彼得。''
!! 主要内容
《彼得后书》是新约圣经中的一封书信,归因于使徒彼得。该书信主要关注几个核心主题:''警告信徒要警惕假教师和异端,强调真知识的重要性,以及鼓励信徒在等待主耶稣基督的再来时持守信仰并追求圣洁的生活''。
# 开头部分,彼得强调了信仰的宝贵和在认识耶稣基督里成长的重要性。
# 接着,他谴责那些引入异端、误导信徒、追求肉体放纵的假教师,预言他们的毁灭。
# 彼得提醒信徒,主的日子将意外地到来,就像夜间的贼一样。因此,他鼓励信徒要活出圣洁和虔敬的生活,期待并加速神的日子的来临。
# 最后,彼得结束信件时再次强调警惕假教师的重要性,并鼓励信徒在恩典中成长,更深地认识我们的主和救主耶稣基督。
<a href="https://www.wikiwand.com/en/Book%20of%20Joshua#Media/File:JoshuaSun_Martin.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/JoshuaSun_Martin.jpg/700px-JoshuaSun_Martin.jpg"
caption:"Joshua Commanding the Sun to Stand Still upon Gideon (John Martin)"
width:"400px"
align:"right"
>>
</a>
约旦河西的各地诸王听说以色列人连占两城,都感到很恐慌。离艾城很近的[[基遍|基遍 Gibeon]]人就派使者穿着很旧的衣服,用驴子驮着破皮酒袋,以及带着长了霉的饼干,去面见约书亚。他们欺骗以色列人说:“我国在很远的地方,想要和你们达成和约。你们看,我们走了很长一段路,连衣服都穿破了,吃的也发霉了。”以色列人就和他们在神前立了约,三天后才知道这基遍人是近邻,不禁勒然大怒,罚他们做劈柴挑水的仆人。
''迦南王''听说基遍人首先向以色列人投降,就召来另外四个地方的王要攻打基遍。基遍人寡不能敌众,向约书亚求救。五王的军队集结在基遍,耶和华就在''天上降大冰雹''击杀他们,最后惨败。
五王乘乱逃跑了,藏身在玛基大洞里。有人发现后报告给约书亚,他就派人滚几块大石头到洞口,并严守此洞。以色列人得胜后,就把五王从洞里拖出来。''约书亚把他们全部杀死'',尸体挂在五棵树上一晚。天亮时,以色列人又把他们的尸体丢在原来藏身的洞里面,用大石头堵住。那些合战以色列人的其他地方的诸王也被一一击灭,人口都被杀死,城都被焚段,一个活口也没有留下,''整个迦南地界变成一片废墟''。
以色列人终于得到迦南为业,十二支派靠拈阄的方式都分配到土地。约书亚领着以色列人南征北战多年后,也去世了。
''Five Books of Moses / Pentateuch / Written Torah''
meaning: "Instruction", "Teaching" or "Law"
最初的经书通常只指《摩西五经》,据称是摩西带领以色列人穿越沙漠旷野时所写。他在[[西奈山 Mount Sinai]]订约后就制作了一个金木约柜,把刻在石板上的律法书放在里面,由圣殿的祭司领袖保管,旧约原稿直到圣殿被毁才遗失。
包含:
<<list-links "[tag<currentTiddler>] +[nsort[num]]">>
<<card
text:"
我听见身后有个洪亮的声音,就像号筒声一样, 说:“要把你看见的写在一个书卷上,送去给以弗所、士每拿、别迦摩、推雅推拉、撒狄、非拉铁非和老底嘉的七群会众。”
<br><br>
我转身,想看看是谁在跟我说话。我转过身来,看见七个金灯台。 灯台之间有一位''像人子''的,穿''着垂到脚的衣服,胸前系着金带。 他的头和头发是白色的,仿佛白羊毛,跟雪一样白。他的眼睛像火焰, 脚像炉子里烧得发亮的精铜,声音仿佛急流的声音。 他的右手里有七颗星,口里伸出一把两刃的利剑。他的脸好像烈日发光''。 我看见他,就倒在他脚前,像死了一样。
"
footer:""
>>
<<<
最圣洁的女神德墨特尔生下普路托斯,
她得到英雄伊阿西翁的温存爱抚,
在丰饶的克里特,翻过三回的休耕地上。
他处处慷慨,漫游在大地和无边海上。
他若遇见谁,碰巧降临在谁的手上,
这人就能发达,一辈子富足有余。
<<<神谱
[[伊瓦尔迪 Ivaldi]]的儿子,造出了[[希芙 Sif]]的头发和[[冈格尼尔 Gungnir]]和神船[[🛶斯基德普拉特尼 Skidbladnir]]——《茅盾:北欧神话初探》
! 雅典的国王和创始人-英雄
他在历史上的作用被称为 "一个重大的文化转型,就像''赫拉克勒斯创造了新的奥林匹亚''。"
围绕特修斯的神话--他的旅行、探险和朋友--为历代的小说提供了素材。
[[佩琉斯|佩琉斯 Peleus]]的长兄
[img[https://upload.wikimedia.org/wikipedia/commons/thumb/6/68/Wooster-ohio-courthouse-telamon.jpg/640px-Wooster-ohio-courthouse-telamon.jpg]]
|!父母 |[[老者涅柔斯 Nereus]] and [[多里斯 Doris]]|
|!配偶 |[[佩琉斯 Peleus]] |
|!标志 ||
|!对应罗马神 ||
[[老者涅柔斯 Nereus]] 50个女儿之一,[[阿喀琉斯 Achilles]]的母亲
赫西俄德还将讲到她和英雄[[佩琉斯|佩琉斯 Peleus]]的爱情。忒提斯是英雄[[阿喀琉斯|阿喀琉斯 Achilles]]的母亲,曾帮助宙斯(《伊利亚特》卷—,503-504),救过[[赫淮斯托斯|🔥火神赫菲斯托斯 Hephaestus]](卷十八,395-399),在奥林波斯众神中很受尊敬。
她向[[宙斯|⚡天神宙斯 Zeus]]求情,请他干预特洛伊战争,让''阿喀琉斯''获得应有的荣誉(卷一,500-504)。正是在她和''佩琉斯''的婚礼上,未受邀请的[[不和女神|🤬不和女神厄里斯 Eris]]扔下“献给最美的女神”的[[金苹果|💗爱情女神阿佛洛狄忒 Aphrodite]],成为特洛伊战争的祸源。
<<<
银足女神忒提斯被佩琉斯所征服,
生下冲破军阵的狮心的阿喀琉斯。
<<<神谱
! 性欲之神
|!父母 |[[💗爱情女神阿佛洛狄忒 Aphrodite]] |
Himeros是性欲之神,也是爱神之一,是有翅膀的爱神。当阿佛洛狄忒从海泡石中诞生时,迎接她的是双胞胎爱神[[厄洛斯|👼爱神厄洛斯 Eros]]和Himeros。有人说阿佛洛狄忒生下来就怀着这对双胞胎,她一出生就生下了他们。这对双胞胎一直是她的伴侣,是她神力的代理人。
Himeros 被描绘成有翅膀的青年或孩子。在阿佛洛狄忒诞生的场景中,他经常与[[Eros|👼爱神厄洛斯 Eros]]一起出现,当女神斜靠在海螺壳床上时,他会在女神周围翩翩起舞。在其他时候,他与''Eros''和[[波托斯 Pothos|性渴望之神 Pothos]]一起作为三位爱神之一出现。当与爱神配对时,他可能被认为是[[安特罗斯 Anteros|🫦情欲之神安特罗斯 Anteros]]。
! God of Sexual longing, yearning
|!父母 |[[💗爱情女神阿佛洛狄忒 Aphrodite]]|
POTHOS(Pothus)是性渴望、渴望和欲望之神。他是被称为Erotes的有翼爱神之一。晚期古典作家将他描述为 [[Zephyros|西风神 Zephyrus]](西风)和 Iris(彩虹)的儿子,代表着爱情的各种激情。
希腊花瓶画中经常同时描绘三位爱神——Pothos、Himeros 和 [[Eros|👼爱神厄洛斯 Eros]]。
|!父母 |[[💗爱情女神阿佛洛狄忒 Aphrodite]] and [[🛡️战神阿瑞斯 Ares]]|
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
佛波斯(古希腊语:φόβος,拉丁化:phobos,字面意思为“惊恐”),希腊神话中象征''恐惧与威吓的神祇''。常与阿波罗的别名福玻斯混淆。
佛波斯是阿瑞斯与阿佛洛狄忒之子。他和他的兄弟得摩斯,以及女战神[[厄倪俄|🛡️女战神厄倪俄 Enyo]]经常在战场上陪伴着阿瑞斯。
恐惧症的英文"phobia"及源自恐惧之神佛波斯。
|!父母 |[[💗爱情女神阿佛洛狄忒 Aphrodite]] and [[🛡️战神阿瑞斯 Ares]]|
|!配偶 ||
|!标志 ||
|!对应罗马神 |Formido |
得摩斯(古希腊语:, 直译为“恐惧”)是希腊神话中象征恐怖的神,战神阿瑞斯和阿芙罗狄忒(库忒瑞亚)之子。他和他的兄弟福波斯在战场上伴随着父亲阿瑞斯,同时出现的还可能有女神厄倪俄,或者厄里斯(不和)以及埃里尼斯(仇恨)。罗马神话中的对应者是Formido或者Metus。
''Endymion'' (''/ɛnˈdɪmiən/''; Ancient Greek: Ἐνδυμίων, gen.: Ἐνδυμίωνος)
据说是一位英俊的Aeolians牧羊人、猎人或国王,据说统治并居住在伊利斯的奥林匹亚。 他也受到崇敬,据说居住在小亚细亚西海岸卡里亚的拉特摩斯山上。
月神[[🌖月亮女神塞勒涅 Selene]]的情人这一角色主要归功于恩底弥翁,''他要么是个牧羊人,要么是个天文学家'',这两种职业都为他在月亮下呆一段时间提供了理由。
!! 神话
''罗得岛的阿波罗尼奥斯(Apollonius of Rhodes)''是众多诗人中的一位,他讲述了泰坦月亮女神塞勒涅如何爱凡人的恩底弥翁。她相信他是如此美丽,以至于她请求恩底弥翁的父亲宙斯赐予他永恒的青春,这样他就永远不会离开她。或者,塞勒涅非常喜欢恩底弥翁在卡里亚米利都附近的拉特摩斯山的山洞里睡着时的样子,以至于她恳求宙斯保持这种状态。在某些版本中,宙斯想惩罚恩底弥翁,因为他敢于对赫拉表现出浪漫的兴趣(很像[[伊克西翁Ixion|👑伊克西翁 Ixion]])。
不管怎样,宙斯满足了塞勒涅的愿望,让恩底弥翁进入了永眠。每天晚上,塞勒涅都会到他睡觉的地方拜访他,在他身边有五十个女儿,一些学者将她们等同于50个奥林匹亚周期。
根据 Deipnosophistae 中的一段话,希俄斯(Chios)的诡辩家和酒神诗人 Licymnius 讲述了一个不同的故事,其中睡眠之神 [[Hypnos|😴睡神希普诺斯 Hypnos]] 因对他的美丽感到敬畏,''让他睁着眼睛睡觉,这样他就可以完全欣赏他的脸''。
|!Relation |!Names |!Sources |<|<|<|<|<|<|
|~|~|''Hesiod'' | ''Conon'' | ''Apollodorus'' | ''Pausanias'' | ''Nonnus'' | ''Clement'' | ''Stephanus'' |
|''Parents'' |Aethlius and Calyce | ✓ | | ✓ | | | | |
|~|Aethlius | | | | ✓ | | | |
|~|Aethnos | | ✓ | | | | | |
|~|Zeus | | | ✓ | | | | |
|~|Zeus and Phoenissa | | | | | | ✓ | |
|''Wife'' |Naiad nymph | | | ✓ | | | | |
|~|Iphianassa | | | ✓ | | | | |
|~|Selene | | | | ✓ | ✓ | | |
|~|Asterodia | | | | ✓ | | | |
|~|Cromia | | | | ✓ | | | |
|~|Hyperippe | | | | ✓ | | | |
|''Children'' |Aetolus | | ✓ | ✓ | ✓ | | | |
|~|Eurypyle | | ✓ | | | | | |
|~|50 daughters | | | | ✓ | | | |
|~|Eurycyda | | | | ✓ | | | |
|~|Epeius | | | | ✓ | | | |
|~|Paeon | | | | ✓ | | | |
|~|Narcissus | | | | | ✓ | | |
|~|Naxos | | | | | | | ✓ |
悉帕(意为“''下垂的、无力的''”)是《希伯来圣经·创世记》中记载的一个人物,是[[利亚|利亚 Leah]]的''侍女''、[[雅各|雅各 Jacob]]的妾。
悉帕是拉班在女儿利亚嫁给雅各时给她的侍女(《创世记》第29章第24节、第46章第18节)。有一些解经家认为,拉结和利亚的侍女——辟拉和悉帕''实际上是[[拉班|拉班 Laban]]的2个年幼的女儿''。
根据Rashi的观点,''悉帕比[[辟拉|辟拉 Bilhah]]年轻'',拉班将她给利亚也是他用以哄骗雅各娶利亚的诡计的一部分,因为利亚比拉结年长。在新婚之夜,为了掩盖他的诡计,拉班让年轻的侍女戴上新娘的面纱,使得雅各真的以为自己娶的是妹妹拉结。婚礼后次日早晨,拉班向雅各解释说,“大女儿还没有给人,先把小女儿给人,我们这地方没有这样做的”(创世记第29章第26节)。
悉帕也卷进了雅各妻妾们生育儿子的竞赛。''利亚''生下4个儿子后,停止生育,这时''拉结''将自己的侍女[[辟拉|辟拉 Bilhah]]送给丈夫雅各为妾,生下2个儿子[[但|但 Dan (son of Jacob)]]和[[拿弗他利|拿弗他利 Naphtali]],于是''利亚''也将自己的侍女''悉帕''送给丈夫雅各为妾,利亚为他们取名为迦得和亚设,意为“万幸”和“有福”,并负责教育他们。他们的后裔构成了未来的2个以色列支派。
!! Offspring
<<list-links "[tag<currentTiddler>] +[nsort[num]]">>
''Bellona''(''[bɛlˈloːna]'')
|!父母 |[[Jupiter|⚡天神宙斯 Zeus]] and [[Juno|天后赫拉 Hera]] |
|!配偶 |[[Mars|🛡️战神阿瑞斯 Ares]] |
|!对应希腊神 |[[🛡️女战神厄倪俄 Enyo]] |
她的主要特征是头上戴着军用头盔;她经常拿着剑、长矛或盾牌,挥舞着火把或鞭子,骑着四匹马的战车上战场。她在马塞勒斯剧院附近有一座神庙。在文艺复兴时期,她的形象被画家和雕塑家们延伸。
[img[https://upload.wikimedia.org/wikipedia/commons/6/66/Bruxelles_Bellone_905.jpg]]
//A bust of Bellona by Jean Cosyn, a 1697 victory celebration over a Brussels doorway//
''Quirinus'' (''/kwɪˈraɪnəs/'' kwi-RY-nəs,Latin: [kᶣɪˈriːnʊs])
''所多玛与蛾摩拉''是两个''沉溺罪恶''的城市,上帝决意要毁灭这二城。[[亚伯拉罕|亚伯拉罕 Abraham]]向他求情,耶和华答应,若在城中能找到''十个义人(righteous)'',他就不毁那城。
耶和华差派天使前往营救[[罗得|罗得 Lot]]一家。所多玛城的人不晓得是天使,只知两个''英俊的美男子''到罗得的家,竟要求罗得交出两人任由他们摆布。罗得只好说:“诸君,请你们不要作这等恶事。''我有两个女儿,还是处女,可以任凭各位玩弄,惟请诸君不要对我的贵客动手''。”众人不从。正当所有人打算一拥而上,天使立即把罗得父女拉进屋内,并令他们无法进入屋内。类似情节于《士师记》第19章参便雅悯人在基比亚的罪行中亦曾出现。
<a href="https://www.wikiwand.com/zh-hans/%E6%89%80%E5%A4%9A%E7%8E%9B#Media/File:John_Martin_-_Sodom_and_Gomorrah.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e1/John_Martin_-_Sodom_and_Gomorrah.jpg/1920px-John_Martin_-_Sodom_and_Gomorrah.jpg"
caption:"所多玛与蛾摩拉的毁灭, John Martin, 1852年"
width:"300px"
align:"left"
>>
</a>
天使告诉罗得一家,上帝耶和华打算毁灭所多玛与蛾摩拉,并嘱咐他们一家立即离开逃往琐珥(Zoara,意思为小)。罗得的女婿并不相信天使的说话,故此最终只有罗得、他的妻子及两名女儿离开。天使叮嘱他们往山上跑,更不可以在逃命时停留站住及回头看。__耶和华上帝从天上降硫磺及火,把所多玛、蛾摩拉及附近的一切都毁灭__,''然罗得之妻并无遵从天使的吩咐,在逃命时回头一看,立即变作了一根盐柱(烧成灰白色)。''
此事过后,罗得为免被人知道他们是来自所多玛与蛾摩拉,于是迁离琐珥(Zoara),到了附近的山里与两名女儿居于山洞内。两名女儿为免绝后,''决定亲自怀孕'',于洞内两晚间,先后灌醉罗得,趁其意识模糊间与其发生性行为。大女儿后来诞下儿子[[摩押|摩押 Moab]],即摩押人的始祖;小女儿则诞下儿子[[便亚米|便亚米 Benammi]],即亚扪人的始祖。
<a href="https://www.wikiwand.com/en/Lot's_daughters">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/3/33/Lot_and_his_daughters%2C_by_Peter_Paul_Rubens.jpg/540px-Lot_and_his_daughters%2C_by_Peter_Paul_Rubens.jpg"
caption:"[[Peter Paul Rubens|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%BD%BC%E5%BE%97%C2%B7%E4%BF%9D%E7%BD%97%C2%B7%E9%B2%81%E6%9C%AC%E6%96%AF%20Peter%20Paul%20Rubens%201577-1640:%5B%5B%E5%BD%BC%E5%BE%97%C2%B7%E4%BF%9D%E7%BD%97%C2%B7%E9%B2%81%E6%9C%AC%E6%96%AF%20Peter%20Paul%20Rubens%201577-1640%5D%5D]], c. 1613-14"
width:"400px"
align:"right"
>>
</a>
!! 延伸
因为《圣经》中对索多玛“Sodom”的负面描写,在英文中,由“Sodom”一字所生出的词汇“sodomy”带有贬义。在基督教中世纪的神学观中,指非属于神学自然法规范的性行为。大多用来指男性之间的性行为,通常译作贬义的“鸡奸”。
违反中世纪基督教自然法神学观的性用语还有Onanism。[[俄南(Onan)|俄南 Onan]]按圣经希伯来的习俗在哥哥死后,与兄嫂他玛同房。不过俄南故意体外射精,不让他玛怀孕,耶和华认为这是恶,就让俄南死了。Onanism因此成为手淫及性交中断的代词,''日语也引进“オナニー”(Onani)'',作为手淫之意。
!! 相关
* [[索多玛山 Mount Sodom]]
所罗巴伯(希伯来语:, Zərubbāvel; 希腊语: ζοροβαβελ, Zŏrobabel)是犹大王国倒数第二位国王[[👑约雅斤/耶哥尼雅 Jeconiah]]的孙子。在波斯国王居鲁士大帝在位的第一年,所罗巴伯带领第一批犹太人(数目为42,360人),从巴比伦之囚中返回耶路撒冷(以斯拉记)。次年,所罗巴伯在耶路撒冷为第二圣殿创立了根基。
!! 身世问题
希伯来圣经记载[[👑撒拉铁 Shealtiel]]是[[👑约雅斤/耶哥尼雅 Jeconiah]]的次子。新巴比伦王国的国王[[🤴尼布甲尼撒二世 Nebuchadnezzar II 642-562 BC]]将最后一任犹大国王''耶哥尼雅''和他的叔叔[[👑西底家 Zedekiah]]放逐到巴比伦,并在那里杀死了''西底家''。于是,一旦王位恢复,''撒拉铁''成为王位潜在的合法继承人。
希伯来圣经中的几处经文对于所罗巴伯是撒拉铁的儿子还是''毗大雅Pedaiah''的儿子发生了冲突。几处经文明确地称为“''撒拉铁的儿子所罗巴伯''”。但是另一些经文却将所罗巴伯称为''撒拉铁''的''侄子'':''耶哥尼雅''是''撒拉铁''和''毗大雅''的父亲,而毗大雅是所罗巴伯的''父亲''。
在恢复本的马太福音1章12节的注释中提到:所罗巴伯是撒拉铁弟兄''毗大雅的儿子''。所罗巴伯不是撒拉铁的儿子,而是他的侄子,成了他的后嗣。这也许是照着申25章5-6节而有的一个事例。
<a href="https://www.wikiwand.com/en/List_of_demons_in_the_Ars_Goetia#Media/File:72_Goeta_sigils.png">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/72_Goeta_sigils.png/1890px-72_Goeta_sigils.png"
caption:"The 72 sigils"
width:"400px"
align:"right"
>>
</a>
所罗门七十二柱魔神,是神秘学书籍''《所罗门的小钥匙 The Lesser Key of Solomon 》''的第一部分“Ars Goetia”中所记载的七十二位恶魔,他们拥有各自的职位(统领、公爵、侯爵、伯爵等等),同时管理各自的恶魔军团和本身的封印(又即是''柱'')。又据说他们可以给予召唤者能力、协助或者知识。七十二位恶魔的外貌有些像动物(乌鸦、狼等),也有些比较奇形怪状(例如生物混合体)。
!! 来源
所谓“所罗门72柱魔神”说法的来源,最早出现在恶魔学文献《所罗门的小钥匙》(Lemegeton)中。该书的最古老版本是17世纪初,其''成书时间估计早于法国大革命''。
按这本书的说法,圣经里以色列伟大的贤王''[[所罗门|👑所罗门 Solomon]]''(历史上的所罗门公元前961年-前922年在位),其实也是一名优秀的恶魔召唤师。传说所罗门王曾和恶魔之王贝利尔订立契约,得到指挥所有地狱恶魔的力量,他用自己的魔法戒指在每个恶魔的脖颈上打印,并将他们封印在瓶中,在有用的时候召唤他们为自己服务,并为以色列王国增添荣耀。作为回报,他将在死后把自己的灵魂献给贝利尔。
在这些恶魔中,除了地狱的七大君王以外,最为有力的是七十二名地狱的王公贵族,也就是被称为所罗门七十二柱魔神的大恶魔们。''他把自己召唤的咒文都写下来,称作《所罗门的小钥匙》,并将他们称之为"所罗门之英灵"。''所罗门王死了之后,巴比伦人入侵,他们看到封印恶魔的瓶子,误以为是宝物,便打开瓶子,将这些恶魔们释放到了人世间。
!! 拓展
* [[Fandom|https://genies.fandom.com/wiki/Spirits_of_Solomon]]
!! 恶魔列表
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
所罗门圣殿,通常指''第一圣殿 First Temple''。在《希伯来圣经》的记载中,所罗门圣殿是居住在耶路撒冷的以色列子孙们信仰的古老宗教的第一座圣殿,为[[所罗门王|👑所罗门 Solomon]]所修建。
根据圣经中的记述,圣殿作为犹太教信仰的一个核心,其功能是为教徒们提供崇拜上帝和进行五祭(燔祭、素祭、赎罪祭、赎愆祭和平安祭)的场所。所罗门圣殿于''公元前960年建成'',公元前587年毁于巴比伦王''[[🤴尼布甲尼撒二世 Nebuchadnezzar II 642-562 BC]]''之手。
圣殿在公元前516年到公元70年间被重建,重建后的圣殿被称为''[[第二圣殿 Second Temple]]'',《以斯拉记》中记载了圣殿被重建的始末。第二圣殿的修建得到了波斯帝国的居鲁士大帝的授权,并得到了大流士一世的准许。第二圣殿于公元70年的犹太战争中''毁于''罗马帝国将军''提图斯''(后来成为罗马帝国皇帝)之手。(关于这场战争中罗马帝国一方获得的战利品,参见[[提图斯凯旋门|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E7%BD%97%E9%A9%AC%E5%87%AF%E6%97%8B%E9%97%A8%20Roman%20triumphal%20arches:%5B%5B%E7%BD%97%E9%A9%AC%E5%87%AF%E6%97%8B%E9%97%A8%20Roman%20triumphal%20arches%5D%5D]]。)
!! 相关
* [[第二圣殿 Second Temple]]
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/3/35/SolomonsTemple.png">
<div class="desc">A sketch of Solomon's Temple, based on descriptions in the Scriptures</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/0a/Reconstruction_of_Solomon%27s_Temple.jpg/440px-Reconstruction_of_Solomon%27s_Temple.jpg">
<div class="desc">Modern artistic depiction of Solomon's Temple at the Israel Museum</div>
</div>
</div>
[[所罗门|👑所罗门 Solomon]]记得耶和华对他父亲大卫所说的话:“我必使你儿子接续你坐你的位,他必为我的名建殿。”所罗门于是着手准备。
[[大卫|👑大卫王 David]]的朋友泰尔王''希兰''差人把香柏木和松木从黎巴嫩运来,并提供工匠予以协助。这些工匠与所罗门征用的工人携手一同合作,于以色列人出埃及地后第480年,所罗门作以色列王第四年,开始动工兴建耶和华的殿。
所有石头均先在矿场刻凿妥当,然后运往圣殿的建筑工地集砌建造,因此在建筑工地上无须运用锤子、斧头或任何铁制工具。整座圣殿的内部均先用香柏木板贴墙,用松木板铺地,然后再贴满华美的精金。又用橄榄木作两个基路伯安放在内殿。它们各高十肘尺(4.5米),从这翅膀尖到那翅膀尖共长十肘尺。殿周围的墙上都刻着基路伯、棕树和初开的花。经过了七年多的营造后,圣殿终于落成。
所罗门继续他的建筑计划:为自己建造宫室,建造黎巴嫩林宫,一座有柱的廊子,一座设有审判座位的廊,并为法老的女儿建造一座宫殿。此外,他也为耶和华殿的廊子制造两根大铜柱,在院内一个铜海,又造铜座、铜盆及许多精金的器具。
所罗门共花了七年建造圣殿,为自己建造宫殿,整个工程一共花了13年才完工,一共花了20年的时间才把两座大殿完成,一座耶和华的殿及一座王宫。
然后他开始在国境各处建造许多城邑,并制造船只作为跟远地通商之用。''示巴女王 Queen of Sheba <<fnote "''示巴女王'',又译''席巴女王'',在希伯来圣经记载中,是一位统治''非洲东部示巴王国''的女王,与所罗门王生活在相同年代。示巴的位置大约相等于今日的''埃塞俄比亚'',相传亦是闪的后人。其治下的势力在最强盛时期,疆域涵盖非洲之角及大叶门地区。">>''听见所罗门得蒙耶和华赐予极大的智慧,于是前来用难解的话试问所罗门。她在听了王所说的话及目睹以色列民强国富、国泰民安之后惊叹说:“人所告诉我的还不到一半。”由于耶和华继续眷爱以色列,所罗门的“财宝与智慧胜过天下的列王”。
----
<<showfnotes>>
列王纪上的记载以[[大卫|👑大卫王 David]]的晚年情况为开始,当时他的40年统治已行将结束。
他的儿子[[亚多尼雅|亚多尼雅 Adonijah]]得元帅[[约押 Joab]]及祭司''亚比亚他''之助阴谋篡夺王位。先知''拿单''将事情告诉大卫,并间接提醒大卫他曾起誓立[[所罗门|👑所罗门 Solomon]]在他死后继位为王。
因此,趁那班策动阴谋的人正在庆祝立''亚多尼雅''为王之际,大卫命祭司撒督膏''所罗门''为王。大卫嘱咐所罗门要刚强作大丈夫,切实遵行耶和华上帝的道。此后不久,大卫寿终,葬在“大卫城”里。
后来所罗门革除了''亚比亚他''的职位,并且把参与叛乱的''亚多尼雅''及''约押''杀了。''示每''(扫罗族人)后来由于没有对恩待他性命的安排表现尊重而被处死。以色列国在所罗门的手中坚立起来。
[[所罗门|👑所罗门 Solomon]]娶了许多外国的女子为妻——有妃700人、嫔300人。所罗门年老的时候,他的妻妾使他的心离开上帝去崇拜别的神。所罗门在耶路撒冷对面的山上为自己所有的外族妻子都造了祭奠场,让她们可以祭拜自己的神。
耶和华告诉他必将他的国夺回,但不是在他活着的日子,而是在他儿子继位后才如此行。虽然如此,王国的一部分,除了犹大支派之外还有另一支派,会受所罗门的儿子统治。
上帝随即在邻国兴起一些敌挡所罗门的人,此外,属以法莲支派的''[[耶罗波安|👑耶罗波安 Jeroboam]]''也起来攻击国王。预言者亚希雅告诉耶罗波安,他将会成为以色列十支派的王。于是所罗门设法要杀死耶罗波安,耶罗波安逃往埃及。
所罗门在位统治40年后便去世了,他的儿子[[罗波安 Rehoboam|👑罗波安 Rehoboam]]于公元前997年登基继位。
<a href="https://www.wikiwand.com/en/Solomon#Media/File:Luca_Giordano_-_Dream_of_Solomon_-_WGA09004.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/3/3b/Luca_Giordano_-_Dream_of_Solomon_-_WGA09004.jpg"
caption:"''Luca Giordano'': The Dream of Solomon: God promises Solomon wisdom c. 1694–1695"
width:"400px"
align:"right"
>>
</a>
[[所罗门|👑所罗门 Solomon]]与埃及王结亲,娶了法老的女儿为妻。他祈求耶和华赐给他一颗顺服的心,好使他能够凭智慧审判耶和华的百姓。因他没有为自己求寿、求富,耶和华遂应允他,''赐他聪明智慧的心'',并且把财富尊荣也一并赐给他。
所罗门在统治的早期已显出他的卓越智慧,当时有两个妓女站在王前,两者均声称是同一个孩子的母亲。所罗门吩咐他的手下“将活孩子劈成两半”,两个妇人一人一半。这时孩子的亲生母亲为了挽救孩子一命,便央求把孩子归给对方。所罗门凭此认出孩子的亲母,于是把孩子归回母亲怀里。由于所罗门具有上帝所赐的智慧,他把以色列国治理得国泰民安。天下列王都差人前来听他智慧的话语。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Thoth.svg/440px-Thoth.svg.png"
caption:"知识与智慧之神,月轮、莎草纸卷轴"
width:""
align:"right"
>>
托特(可能发音为*/tʃʼiħautiː/ 或 */ɟiħautiː/),又译透特、图特或托托,是古埃及神话的''智慧之神'',同时也是''月亮、数学、医药之神,负责守护文艺和书记的工作''。相传他是古埃及文字的发明者。
托特通常会被描绘成''鹮首人身'',其名字意思和弯形嘴部,令人联想起''新月''。有时候,托持也会被描绘成一只拿著''新月的狒狒'',因为''狒狒在夜间活动,而且相当聪明''。
<a href="https://www.wikiwand.com/en/Samuel#Media/File:Louvre_rosa_apparition.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Louvre_rosa_apparition.jpg/340px-Louvre_rosa_apparition.jpg"
caption:"Apparition of the spirit of Samuel to Saul, by ''Salvator Rosa'', 1668"
width:"400px"
align:"right"
>>
</a>
[[非利士|非利士 Philistia]]众首领在书念集结大军。[[扫罗|👑扫罗 Saul]]部署军队在基利波安营。他惶急地寻求指引,但耶和华却没有回答他。
于是扫罗穿上别的衣服,来到非利士人阵地之后的隐多珥找了一名灵媒。他求这个交鬼的妇人召撒母耳上来。扫罗急欲知道结果如何,便认定幽灵是死去的[[撒母耳|撒母耳 Samuel]]。但“撒母耳”却告诉他一个不祥的消息:''翌日他便要死亡'',此外,正如耶和华所预言,他会失去国位。在另一方面,非利士的众首领亦预备作战。他们看见大卫跟他的手下在他们阵中,便起了猜疑,于是遣他们回家。
大卫回到''洗革拉'',发现亚玛力人突袭他们的家,把大卫和他手下的家眷财物全都掳去。但大卫跟他的手下追赶他们,把所有家眷财物都夺回来,丝毫无损。
<a href="https://www.wikiwand.com/en/Saul#Media/File:Elie_Marcuse_saul.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/3/35/Elie_Marcuse_saul.jpg/440px-Elie_Marcuse_saul.jpg"
caption:"Death of King Saul, 1848 by Elie Marcuse (Germany and France, 1817–1902)"
width:"300px"
align:"left"
>>
</a>
一场大战在基利波山展开,以色列人惨败,非利士人得以占据战略重点。[[约拿单|约拿单 Jonathan]]及扫罗其馀的儿子都战死沙场,伤势甚重的''扫罗则伏在自己的刀上——自杀身亡''。
凯旋归来的非利士人将''扫罗及他三个儿子''的尸首钉在''伯珊''的城墙上,但基列雅比的勇士前来把他们从城墙上取下来。
''非利士人''经常侵扰以色列,[[扫罗|👑扫罗 Saul]]英勇的儿子''[[约拿单|约拿单 Jonathan]]''摧毁了非利士人的防营。为了报仇雪恨,敌人部署大军,数目“像海边的沙那样多”;他们在密抹安营。
''扫罗''等了七天,直到[[撒母耳|撒母耳 Samuel]]所定之日,可是''撒母耳''还没有来到吉甲,民众也纷纷离开扫罗。
扫罗焦躁不耐,不愿再等候撒母耳,于是僭妄地擅自献上燔祭而犯了大罪。刚献完祭,''撒母耳''就出现了。他直斥其非,并且宣布耶和华的判决:“你这样做太愚蠢了。你没有服从耶和华你上帝给你的诫命。要是你服从了,耶和华就会使你的王朝永远统治以色列。现在你的王位必不长久。耶和华已经寻着一个合他心意的人,立他作百姓的君,因为你没有遵守耶和华所吩咐你的。”
''约拿单''再度袭击非利士人的哨站。这次他只带着替他拿兵器的人,他们一下子便杀了20个敌人。地大大震动,使敌人更为惶乱。以色列人乘胜追击,把他们彻底击溃。
扫罗要以色列守以下的誓言:“谁不等到晚上,不等到我向我的敌人报仇就吃东西,谁就会被诅咒!”所以没有人吃过东西。
约拿单却没有听见父亲叫所有人守的誓言,所以伸出手中的杖,用杖头在蜂巢里蘸了蘸,放进嘴里,他就精神一振。有人告诉他:“你父亲要大家严守一个誓言,说:‘今天谁吃东西,谁就会被诅咒!’所以大家才会这么累。”约拿单说:“我父亲实在让大家受苦了。你们看,我才吃这么一点蜂蜜,精神就为之一振了。今天如果大家都能随意吃从敌人那里夺来的东西,那不是更好吗?我们杀的非利士人肯定会更多。”
当天,他们一直击杀非利士人,从密抹直到亚雅仑,所以都非常疲倦。结果,他们贪婪地抢夺战利品,把牛羊就地宰杀,''连肉带血吃了''。有人告诉扫罗:“人民都吃带血的肉,得罪耶和华了。”扫罗说:“你们做了不忠的事,快把一块大石头滚到我这里来。” 扫罗又说:“你们分头到人民那里,对他们说:‘你们都要把牛羊牵来,在这里宰杀才可以吃。不可以吃带血的肉,以免得罪耶和华。’”于是当晚人人都把牛牵到那里宰杀。
<a href="https://www.wikiwand.com/en/Samuel#Media/File:Louvre_rosa_apparition.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Louvre_rosa_apparition.jpg/340px-Louvre_rosa_apparition.jpg"
caption:"Apparition of the spirit of Samuel to Saul, by Salvator Rosa, 1668"
width:"400px"
align:"right"
>>
</a>
后来以色列人理应执行耶和华对亚玛力人所作的判决了。百姓必须把他们全然杀尽。人和牲畜都要尽行灭绝。切不可拿取任何掠物。所有物件都要全部毁灭。但扫罗却违命留下了亚玛力王''亚甲''及上好的''牛羊'',并伪称是为了要献给耶和华作祭物。此举大大触怒以色列的上帝,他指示撒母耳向扫罗提出第二次斥责。
撒母耳对扫罗为了挽回面子而作的借口全不理会,他宣布说:“耶和华那么喜欢全烧祭和祭牲吗?耶和华不是更喜欢人服从他的话吗?服从胜过献祭,听从命令胜过献上公羊的脂肪;……既然你没有听从耶和华的话,他就不再让你做国王。”
扫罗扯住撒母耳的外衣的下摆想留住他,结果把衣服撕裂了。撒母耳斩钉截铁地宣布耶和华必然会把以色列从扫罗手中夺去,将国赐给一个更好的人。撒母耳亲自用刀在耶和华面前把亚甲斩成碎块,然后转身离开扫罗,从此便不再与他见面了。
<a href="https://www.wikiwand.com/en/Saul#Media/File:Jusepe_Leonardo_001.jpeg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/f/f3/Jusepe_Leonardo_001.jpeg"
caption:"Saul threatening David, by ''José Leonardo''."
width:"300px"
align:"right"
>>
</a>
大卫为了耶和华的名而采取的英勇行动使他有机会建立一份可贵的友谊。[[约拿单|约拿单 Jonathan]]与他成为莫逆之交。约拿单是扫罗之子,本应是王位的继承人。但''约拿单爱大卫“如同爱自己的性命”,二人因此起誓结谊。''
大卫在以色列中声誉日隆,妇女们甚至作歌称赞大卫 “扫罗杀死千千,大卫杀死万万。”,扫罗非常不开心, “她们把杀死万万的功劳归给大卫,只把杀死千千的功劳归给我,就只剩下王位没有给他了!”。
上帝让扫罗心神不宁,他在家里的行为变得很怪异。当时大卫照常弹琴,扫罗手里拿着矛,他把矛掷向大卫,对自己说:“我要把大卫钉在墙上!”但大卫两次都躲开了。扫罗怕大卫,因为耶和华与大卫同在,却离开了他。于是扫罗立大卫做千夫长,不让他留在自己身边。大卫就领兵作战。大卫无论做什么都成功,耶和华也与他同在。扫罗看见大卫事事成功,就很怕他。但以色列和犹大地区的所有人都爱大卫,因为他率领他们作战。
扫罗妒火中烧,他计划着女儿''[[梅拉Merab|梅拉 Merab]]''许配给大卫,让大卫为他作战,“我不用亲手对付他,让非利士人下手害他吧。” 然而到了扫罗的女儿梅拉本该嫁给大卫的时候,扫罗却已经把她给了米何拉人亚得列做妻子。
扫罗的女儿[[米甲|米甲 Michal]]爱上了大卫。有人告诉扫罗,扫罗就很高兴。扫罗心想:“我要把米甲给大卫,用她作圈套,借非利士人的手对付大卫。”于是扫罗再次对大卫说:“现在你我两家要结亲。”
耶和华让扫罗心神不宁。当时他坐在家里,手里拿着矛,大卫正在弹琴。扫罗想用矛把大卫刺在墙上,但大卫躲开了,矛就插进墙里。当晚大卫就逃走,离开那里。''扫罗派使者去监视大卫的家,要在第二天早上杀他''。大卫的妻子''米甲''对他说:“今天晚上你不逃走,明天就一定没命。”于是米甲从窗口把大卫放下去,让大卫逃走。
米甲把''家族神像''拿来放在床上,把一团山羊毛放在大卫枕头的地方,用衣服盖着。
米甲扫罗派使者来抓大卫,但米甲说:“他病了。”于是,扫罗又派使者去找大卫,吩咐他们:“把他连床一起抬过来,我要处死他。”使者进去一看,床上竟是一尊家族神像,还有一团山羊毛放在他平常枕头的地方。扫罗问米甲:“你为什么要这样骗我,放走我的敌人,让他逃脱?”回答扫罗:“他对我说:‘__让我走,不然我就杀了你!__’”
扫罗的仇视已达到无可理喻的地步,最后大卫只好在约拿单的协助之下逃走。二人在临别前抱头痛哭,约拿单对大卫保证说:“愿耶和华在你我中间,并你我后裔中间为证,直到永远。”
大卫与跟随他的一小群手下为了逃避愤怒的扫罗而来到挪伯,他们饥饿疲乏。在获得大卫保证他与他的手下均没有亲近妇人之后,祭司''亚希米勒''准许他们吃''陈设饼''。大卫也在那里拿了以拉谷杀死的非利士人''歌利亚''的剑。
之后便逃到[[非利士|非利士 Philistia]]境内的''迦特'',他害怕被杀,所以在该处假装疯癫。后来他藏匿于亚杜兰洞,然后再往摩押;后来他听从预言者[[迦得|迦得 Gad (son of Jacob)]]的劝告返回犹大。嫉妒成狂的扫罗认为__耶和华祭司和大卫勾结__,遂吩咐以东人多益把挪伯的众祭司灭尽,只有''亚希米勒''的儿子''亚比亚他''得以逃脱。他前往投靠大卫,成为他们的祭司。
身为耶和华的忠仆,大卫以游击战术攻打非利士人。然而,扫罗却继续全力追缉大卫,“在隐·基底的旷野”结集手下精兵寻索大卫。耶和华眷爱大卫,使他时常比寻索他的人棋先一着。''有一次,他本有机会击杀扫罗,但却没有下手,只割下了扫罗外袍的下摆以证明他顾惜扫罗的性命''。即使如此,大卫仍心中自责,因他自觉冒犯了耶和华的受膏者。他对耶和华的组织安排十分尊重。
大卫请求犹大玛云的大财主''拿八 Nabal(意思是“愚妄”或“愚昧”) ''给他和手下一点食物,因他们曾善待拿八手下的牧羊人。拿八“辱骂”大卫的仆人,"大卫是谁?耶西的儿子是谁?最近逃跑离开主人的仆人很多,我怎么能把我的饼、我的水、我为剪羊毛的人准备的肉,送给不知道是从哪里来的人?",大卫于是出发去惩罚他。
拿八的妻''[[亚比该 Abigail |亚比该 Abigail (widow of Nabal of Carmel)]]''知道大祸临头,便私下带备礼物前往安抚大卫。大卫因她深明大义而祝福她,并容许她回家。后来拿八听见亚比该把事情和盘托出之后,就心脏病发,十日之后便死了。大卫于是娶了''亚比该''做妻子。
扫罗第三次追寻大卫,但大卫再次向他表现怜悯。‘耶和华使扫罗和他的手下都沉沉地睡了。’这使大卫能够进入营内取了扫罗的枪,但他却不敢“伸手害耶和华的受膏者”。大卫被逼作第二次逃亡,他逃到非利士地去求庇护;他们把洗革拉赐给他居住。他在该地仍继续袭击以色列的其他仇敌。因为大卫没有留一个活口,“''这样他们就不能把我和我手下做过的事告诉别人''”,所以非利士人一直不知道他做的事。
在北欧神话中,她们九名姊妹是[[🌊荒海之神埃吉尔 Aegir]]和[[澜 Ran]]的女儿,是代表了海上九种波浪的人格化,属巨人族。
她们都有著雪白的皮肤、深蓝的眼睛,通常穿著透明的水色、白色、或绿色的纱衣。这九名女儿总是帮助他们的父亲埃吉尔Heimdall。另外,她们共同为[[奥丁(Odin)|⚡众神之父奥丁(神圣) Odin]]生下了[[💂🏻破晓之神海姆达尔 Heimdallr]]。
这九个女儿的名字是
# 芭拉(Bara,巨浪)
# 贝萝度格达(Blodughadda,血浪)
# 拜尔琪雅(Bylgia,怒浪)
# 都法(Dufa,静浪)
# 赫佛琳(Hevring,高浪)
# 希明莱瓦(Himinglaeva,耀浪)
# 赫萝恩(Hronn,卷浪)
# 库尔嘉(Kolga,寒浪)
# 乌娜(Unn,扬浪)
代表了海上的九种波涛。她们共同为[[奥丁|⚡众神之父奥丁(神圣) Odin]]生下了[[💂🏻破晓之神海姆达尔 Heimdallr]]。
|!父母 |[[🤬不和女神厄里斯 Eris]]|
|!标志 ||
|!对应罗马神 |Altercatio |
!! Personifications of Disputes
In Greek mythology, the Amphillogiai [am.pʰillogíai] (Ancient Greek: Ἀμφιλλογίαι; singular: Amphillogia) were ''goddesses of disputes and altercations''. Their Roman counterpart was Altercatio.
抹大拉的马利亚(天主教译为玛利亚玛达肋纳),在《圣经·新约》中,被描写为耶稣的女性追随者。罗马天主教、东正教和圣公会都把她作为圣人。
|!象征 |西方:玉髓药膏盒<br>东方:药盒(作为殡仪员),或''手持红蛋''(复活的象征);复活后拥抱基督的脚 |
!! 新约中的记录
耶稣在各城各乡传道时,与耶稣同道的除了十二个门徒以外,还有祂所医治的几个妇女,抹大拉的马利亚就是其中的一位,“她们当中有称为末大拉人的马利亚(''曾经有七个邪灵从她身上被赶出来'')”(路加福音 8章:1-2节 )。
耶稣治好了抹大拉的马利亚,赶出她身上的鬼。她信耶稣后,奉献自己的财物,供给耶稣和门徒。
当耶稣被补带往大祭司的圣殿审判时,门徒都离开祂逃走了(马太福音 26章:55-56节 。耶稣钉十字架时,环境极其恶劣,但她跟耶稣到十字架下,看耶稣受苦,断气,埋葬(马可福音 15:40-47 。
安息日过后,马利亚在天还没亮时,就到耶稣的坟墓,并发现坟墓已经空了,其他门徒闻风而来,看看空坟就走了,只有马利亚留在空坟处哭泣,所以她将成为第一个看见复活后的耶稣的见证人(约翰福音20:1-18)。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e1/Donatello%2C_maria_maddalena_02.JPG/400px-Donatello%2C_maria_maddalena_02.JPG">
<div class="desc">Penitent Magdalene (c. 1454) by [[Donatello|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%A4%9A%E9%82%A3%E5%A4%AA%E7%BD%97%20Donatello%201386%20-%201466:%5B%5B%E5%A4%9A%E9%82%A3%E5%A4%AA%E7%BD%97%20Donatello%201386%20-%201466%5D%5D]], showing her as "an old, emaciated and toothless woman... worn down by years of hard solitude in her cave". The sculpture is an "extreme" example of Mary Magdalene's usual portrayal as a penitent ascetic.</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/41/Tizian_050.jpg/1264px-Tizian_050.jpg">
<div class="desc">Noli me tangere (c. 1512) by [[Titian|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E6%8F%90%E9%A6%99%20Tizian%201488%2F90%E2%80%931576:%5B%5B%E6%8F%90%E9%A6%99%20Tizian%201488%2F90%E2%80%931576%5D%5D]]</div>
</div>
</div>
son of [[Ner]], who made [[👑伊施波设 Ish-bosheth]] King over [[Gilead|基列 Gilead]]
在撒母耳记中,押尼珥(希伯来语 אבנר בן נר )是[[扫罗|👑扫罗 Saul]]的叔叔[[尼珥|Ner]]的儿子,扫罗军队的元帅。
扫罗在基利波山被非利士人杀死后,''押尼珥''将扫罗唯一幸存的小儿子[[伊施波设|👑伊施波设 Ish-bosheth]]带到约旦河以东的玛哈念,立他作以色列国王 。只有犹大支派归从[[大卫|👑大卫王 David]],大卫在希伯仑作王,双方时有战争。
双方曾在基遍池旁相遇,各出12人,互相杀死。押尼珥战败逃走,被约押的弟弟''亚撒黑''追赶,亚撒黑“脚快如野地的羚羊一般”,并且不听押尼珥的劝说,押尼珥出于自卫被迫杀死了亚撒黑。这场战斗是大卫与伊施波设内战的一部分。
押尼珥与扫罗的妃嫔''利斯巴''同房,遭到''伊施波设''的指责,随之投靠大卫。但是[[约押 Joab]]在希伯仑城门旁边暗杀了''押尼珥''。
大卫将押尼珥葬在希伯仑。押尼珥死后不久,''伊施波设''被暗杀,大卫成为统一的以色列的国王。
!! 相关
[[大卫的早期统治]]
son of [[玛迦 Maacah (daughter of Talmai, king of Geshur)]] and [[👑大卫王 David]]
!! 相关事件
[[大卫的连场家变]]
son of [[Hillel]], the eleventh Judge of Israel [[士师记 Book of Judges c.1100 BC]]
在[[以伦 Elon|以伦 Elon(Judges)]]以后,比拉顿人希列的儿子 ''押顿Abdon'' 做了以色列的士师。他有40个儿子、30个孙子,他们骑70头驴。他做了以色列的士师''八年''。15 比拉顿人希列的儿子押顿死后,葬在以法莲地区的比拉顿,在亚玛力人的山上。
古埃及太阳神。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/0/0d/Re-Horakhty.svg/400px-Re-Horakhty.svg.png"
caption:"拉 Ra:最常见的形象是鹰首人身,头顶上有一日盘及一条盘曲在日盘上的''蛇''。"
width:"300px"
align:"right"
tooltip:"拉 Ra">>
* 主要崇拜地在[[赫利奥波利斯 Heliopolis]], 在那里他被当作地方太阳神“阿图姆 Atum”
* ''埃及王朝时期'',和[[荷鲁斯 Horus]]合并
!! 形象
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Eye_of_Horus_2.svg/300px-Eye_of_Horus_2.svg.png"
caption:"[[拉的眼睛|拉之眼 Eye Of Ra]],也称为[[荷鲁斯 |荷鲁斯 Horus]]之眼"
width:"100px"
align:"left"
tooltip:" 拉的眼睛">>
拉神有多种多样的代表形象。最常见的形象是鹰首人身,头顶上有一日盘及一条盘曲在日盘上的''蛇''。其他常见的形象有:''甲虫头的男人''(作为赫普尔的形象),或''羊头人身''。拉神也被描绘成一只魁梧的公羊或甲虫、凤凰、苍鹭、蛇、牛、猫、狮子等等。
他在冥府最常见的特征是''羊首人身''。在此形象下,拉神被描述为“西方的公羊”或“掌管后宫的公羊”。
在一些文献中,拉神被描述成一位长着金肉银骨、青金石头发的年迈国王。
!! 与拉合并的神
!!! [[阿蒙 Amun]] 和拉 Amun-Ra
要准确界定这种组合发生于何时十分困难,但参考金字塔铭文中最早出现阿蒙-拉神名字的时间,是在''第五王朝''。最普遍的看法是:新王国的底比斯统治者为团结十八王朝来伴有旧的拉神崇拜的阿蒙神信众,发明了“阿蒙-拉”神,并将其作为新的国家之神。“阿蒙-拉神”被崇拜者冠以“众神之王”的正式称号,合并后该神的形像是一狮首红眼,头上环绕日盘的男人。
!!! [[阿图姆 Atum]] 和拉 Atum-Ra
阿图姆·拉(或拉·阿图姆)是另一尊由两位完全不同的神组合而成的神,但“拉”与“[[阿图姆|阿图姆 Atum]]”共有的相似之处多于阿蒙神。阿图姆与太阳的关系更紧密,而且还是九柱神中的一位创造神。拉和阿图姆都被视为众神及法老的父亲,且广受崇拜。
在更古老的神话中,阿图姆创造了[[泰芙努特 Tefnut]]和[[舒 Shu]],他自己则是原始水和海洋之神[[努恩 Nun]]所生。
!!! [[凯布利 Khepri]] 和 [[库努牡 Khnum]]
拉神在一天中以不同的表象(或者说是拉神的不同面貌)掌管不同时间的概念相当普遍,但是变化的。''凯布利''和''库努牡''先后执管''日出''和''日落'',而拉神则是象征太阳在白天达到最高点的''中午''。
!! 对手神
!!! [[卜塔 Ptah]]
也译作卜塔,在古王国金字塔文献中很少被提起。据信,这是由于这些文献的主要作者大多是赫利奥波利斯的拉神崇拜者之故。拉神的追随者们嫉妒卜塔,尽管他们相信拉神自己创造了自己,但其它人认为是卜塔创造了他。
!!! [[伊西斯 Isis]]
伊西斯经常密谋反对拉神,她希望自己的儿子[[荷鲁斯|荷鲁斯 Horus]]掌握权力。 在一则神话中,伊西斯利用拉神的唾液混合泥土,捏造了一条毒蛇,在拉神巡游时袭击了他,她要求拉神将自己的真名告诉她,她才给他解药。拉神担心,一旦将自己的秘密透露给伊西斯,她就会动用她全部的力量来对抗他,并让荷鲁斯接掌王位。最终,拉神还是妥协了,伊西斯如愿以偿。
!!! [[阿佩普 Apophis]]
混沌之神和拉神最大的敌人。他曾说就蛰伏在地平线的下方,想要吞噬降入冥府的拉神。当他吞噬拉时,会导致太阳的下落,在将拉神完全吞下后,夜晚也就降临。但他从来没有成功地将“拉神”吞下过,无论如何,他总是要把拉神吐出来,因此,每天的太阳会照常升起。
<<image-basic "https://www.cleopatraegypttours.com/wp-content/uploads/2020/04/Eye-of-Ra-and-Horus.jpg"
caption:"Eye of Ra and Eye of Horus"
width:""
align:"right"
>>
关于 Ra 之眼符号的起源有不同的神话。然而,大多数专家认为该符号实际上是[[荷鲁斯的右眼|𓂀荷鲁斯之眼 Eye of Horus]],在古代被称为拉之眼。这两个符号大多代表相同的概念。也就是说,根据不同的神话,拉之眼符号被认为是埃及神话中许多女神的化身,如[[Wadjet|瓦吉特 Wadjet]]、[[Hathor|哈托尔 Hathor]]、Mut、[[Sekhmet|塞赫麦特 Sekhmet]]和[[Bastet|巴斯特 Bastet]]。
son of [[彼土利 Bethuel]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
''拉结 Rachel '',是《希伯来圣经》里以色列族长、以色列人祖先[[雅各|雅各 Jacob]]的第二位和最宠爱的妻子(两人是表亲),古埃及大内总管约瑟和便雅悯的母亲,[[拉班|拉班 Laban]]的女儿,雅各第一位妻子[[利亚|利亚 Leah]](Leah)的妹妹。
!! Offspring
<<list-links "[tag<currentTiddler>] +[nsort[num]]">>
! 冥府三判官之一
克里特岛的一位明智的国王。由于他的父亲是宙斯,他被认为是一个半神,他的名字意味着表现出严厉和不灵活的判断力。他后来成为死者的法官之一,也是希腊神话中的一个重要人物。
Rhadamanthus由他们的继父Asterion抚养。他有两个儿子,Gortys(与克里特岛的Gortyn有关)和Erythrus(Erythrae的创始人)。
根据后来的传说(约公元前400年),由于他的刚正不阿,他与埃阿科斯和米诺斯一起成为下层世界的亡灵法官之一。他被认为是审判东方人的灵魂,Aeacus审判西方人的灵魂,而Minos则拥有决定性的一票(柏拉图,Gorgias 524A)。他在荷马的《奥德赛》第4和第7卷中被描绘出来。维吉尔(公元前69-18年)在《埃涅伊德》的冥界(Tartarus)部分将Rhadamanthus作为法官和惩罚不值得的人的人之一。
荷马认为他住在伊利森领域(奥德赛四,564),是宙斯的不朽之子的天堂。品达说他是克洛诺斯(现在统治极乐世界)的得力助手,是死者的唯一法官。卢西恩在《真实的历史》中描绘了Rhadamanthus主持福寿岛上的英雄公司。
拉麦,是《创世纪》亚当家谱中的一位族长。他是路加福音 3:36 中耶稣家谱的一部分。
拉麦和自己的妻子说,''若杀[[该隐|该隐 Cain]],遭报七倍。杀拉麦,必遭报七十七倍。'' (?)
拉麦,是《创世纪》亚当家谱中的一位族长。他是路加福音 3:36 中耶稣家谱的一部分。
拉麦活到一百八十二岁,生了一个儿子[[诺亚 Noah]]
拉麦共活了777岁就死了。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
formerly the wife of ''Uriah'', wife of [[👑大卫王 David]]
The meaning of her name is "daughter of Sheba" or "daughter of the oath"
!! 相关事件
[[大卫得罪了耶和华]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
wife of [[Elimelech]]
The etymology of her name is not certain, but it is possible that it means "''good, pleasant, lovely, winsome.''"
拿弗他利,是雅各的第六个儿子,是拉结的使女[[辟拉|辟拉 Bilhah]]所生,[[拉结|拉结 Rachel]]为其取名拿弗他利,意思是“''我相争''”,源于动词“ptali”,就是相争的意思。是以色列十二支派之一的拿弗他利支派的祖先。(《创世纪》30:8)
雅各临终前对儿子拿弗他利的祝福是:“拿弗他利是被释放的''母鹿'',他出嘉美的言语。”(《创世纪》49:21)意译为:“拿弗他利是多产的''母鹿'',生出可爱的小鹿。”雅各在此祝福拿弗他利出产丰富,如多产的母鹿生下美好的小鹿。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
''拿鹤'',是希伯来圣经创世记第 11 章中西鹿 (Serug) 的儿子。据说他活到了 148 岁,并在29岁。他也是[[亚伯拉罕|亚伯拉罕 Abraham]]、拿鹤二世和哈兰的祖父。
son of [[他拉 Terah]]
!! Offspring
和妻子[[密迦 Milcah]]有8个儿子:
<<list-links "[tag[密迦 Milcah]] +[sort[num]]">>
和妾[[Reumah]]有4个儿子:
<<list-links "[tag[Reumah]] +[sort[num]]">>
过了多年,埃及王死了。以色列人因作苦工,就叹息哀求,他们的哀声达于神。神听见他们的哀声,就记念他与亚伯拉罕,以撒,雅各所立的约。于是在[[西奈山 Mount Sinai]]找到摩西。让摩西把受苦的以色列人从埃及带出,带回[[迦南地|迦南 Canaan]]。
摩西认为以色列人不会相信他,耶和华为了证明神力,把摩西手里的杖变为蛇再变回来;又让他把手放到水杯里,手长了麻风又恢复。
耶和华说,这两个神迹若都不信,也不听你的话,你就从河里取些水,倒在旱地上,''你从河里取的水必在旱地上变作血''。
耶和华嘱咐摩西必须带着''杖'',才能行使神迹。
<<<
宙斯把提坦们赶出天庭之后,
宽广的该亚生下最小的孩子提丰,
金色的阿佛洛狄特使她和塔耳塔罗斯相爱。
他有干起活来使不完劲的双手和
不倦的双脚:这强大的神。他肩上
长着一百个蛇头或可怕的龙头,
口里吐着黝黑舌头。一双双眼睛映亮
那些怪异脑袋,在眉毛下闪着火花。
[他的每个注视在所有脑袋上喷溅火光。]
每个可怕的脑袋发出声音,
说着各种无法形容的言语,
时而像在对神说话,时而又
如难以征服的公牛大声咆哮,
时而如凶残无忌的狮子怒吼,
时而如一片犬吠:听上去奇妙无比,
时而如回荡于高高群山的鸣咽。
<<<神谱
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
<<<
从提丰产生了各种潮湿的疾风
不算诺托斯、玻瑞厄斯和吹净云天的泽费罗斯:
他们属于神族,给凡人极大的好处。
别的全是些横扫海面的狂风。
他们骤然降临在云雾迷蒙的海上
激起无情的风暴,真是凡人的大灾祸。
他们时时出其不意,覆灭船只,
殃及水手。出海的人若遭遇
这些狂风,便无法逃脱灾难。
他们还侵袭繁花的无尽大地,
败坏生于大地的人类的美好劳作:
农田覆满尘土,造成恼人的混乱。
<<<神谱
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>nsort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
<<<
从那里到地面和从天到地一样远,
因为,从大地到幽暗的塔耳塔罗斯也一样远。
一个铜砧要经过九天九夜,
第十天才能从天落到地上。
从大地到幽暗的塔耳塔罗斯也一样远。
一个铜砧也要经过九天九夜,
第十天才能从大地落到塔耳塔罗斯。
塔耳塔罗斯四周环绕着铜垒,三重黑幕
蔓延圈着它的细颈,从那上面
生出了大地和荒凉大海之根。
在那里,幽暗的阴间深处,提坦神们
被囚困住,聚云神宙斯的意愿如此,
在那发霉的所在,广袤大地的边缘。
他们再也不能出来:波塞冬裝好
青铜大门,还有一座高墙环绕四周。
在那里,住着古厄斯、卡托斯和大胆的
布里阿瑞俄斯,持神盾宙斯的忠实护卫。
在那里,无论迷蒙大地还是幽暗的塔耳塔罗斯,
无论荒凉大海还是繁星无数的天空,
万物的源头和尽头并排连在一起。
可怕而发霉的所在,连神们也憎恶。
无边的浑渊,哪怕走上一整年,
从跨进重重大门算起,也走不到头。
狂风阵阵不绝,把一切吹来吹去,
多么可怕,连永生神们也吃不消。
<<<神谱
! 巨人
|父母 |[[Zeus|⚡天神宙斯 Zeus]] and [[Elara|Elara]] |
宙斯将艾拉拉藏在地底深处,不让他的妻子赫拉知道。 蒂提欧斯长得如此之大,以至于分裂了他母亲的子宫,他被地球上的盖亚怀胎十月。
一旦长大,Tityos试图在赫拉的要求下强奸Leto。他被莱托的子女阿尔特弥斯和阿波罗杀死。在一些说法中,提提乌斯反而被他父亲宙斯的雷电杀死。__作为惩罚,他被拉到塔尔塔罗斯,被两只秃鹰折磨,秃鹰以他的肝脏为食,每晚都会长出来。 这种惩罚与泰坦普罗米修斯的惩罚相当。__
[[提多|https://www.wikiwand.com/zh-hans/%E6%8F%90%E5%A4%9A]],天主教译为弟铎,是《圣经·新约》中的一个人物,他不是犹太人,而是一个''外族的基督徒'',在《圣经》中他伴随[[保罗|保罗 Paul the Apostle c.3-c.67]]赴外地传教以及帮助处理很多难题。使徒保罗赏识这个人在给哥林多人的信中说,提多是“为[他们]的好处做同工的”。
[[提摩太|https://www.wikiwand.com/en/Saint_Timothy]],天主教译为弟茂德,是《圣经·使徒行传》中记载的一位1世纪使徒。希腊语名字的意思是敬畏或荣耀上帝的人。圣经中记载他长期和使徒保罗在希腊和小亚细亚从事传道活动,后来负责以弗所会众的事务。
提摩太在路司得长大,这个小城位于罗马辖下的加拉太行省。提摩太在父母信仰不同的家庭里长大。他的父亲是希腊人,母亲友妮基和外祖母罗以都是犹太人。(使徒行传16:1)当提摩太还是婴孩的时候,友妮基和罗以就教导他认识《希伯来语经卷》。她们很可能是保罗第一次探访该城市时,成为基督徒的。之后她们劝导提摩太相信基督教的道理。显然,提摩太衷心接受这些教导。保罗的书信证实这一点:“我想起你心里存着无伪的信心,这种信心首先存在你外祖母罗以和你母亲友妮基心里,我确信也在你心里。”(提摩太后书1:5)
约公元47年,使徒[[保罗|保罗 Paul the Apostle c.3-c.67]]在路司得传道。大概就在那时,提摩太开始学习基督教信仰。当时他可能是个青少年。不久,提摩太在当地的基督徒中就有了好名声。两年后,保罗再次探访路司得,获知提摩太在灵性上进步很大,于是拣选他跟自己并肩从事海外传道工作。)提摩太日渐成熟,后来受托担任重大的职责,包括强化基督徒弟兄。约公元65年,保罗在罗马被囚期间写信给提摩太,当时提摩太是以弗所的基督徒执事。
提贝里乌斯·尤利乌斯·凯撒·奥古斯都(前42年11月16日—37年3月16日),又译''提庇留''、''提比略'',[[罗马帝国 Roman Empire 27 BC-1453]]的''第二任皇帝'',在位于西元14年-37年。
提贝里乌斯继承由奥古斯都(屋大维)缔造的帝国,借由联姻关系,成为史学家所称的儒略-克劳狄王朝之继承人。提贝里乌斯个性深沉严苛,执政之后并不受到臣民的普遍喜爱。执政后期,由于党派之间的斗争的阴谋,使得他采用残暴的手段对付政敌。在罗马古典作家的笔下,他的形象被定位为残虐、好色;但近代学者根据帝国当年的安定景象与文献铭刻,重新为提贝里乌斯翻案。
!! 揭开七印
揭开七印的异象包含:
* ''第一印'',''骑白马''的征服者:“他就出去征服敌人,要''把敌人彻底打败''”
* ''第二印'',''红马骑士'':“可以夺去地上的和平,''使人互相残杀''”
* ''第三印'',''黑马骑士'':“骑马的''手拿天平''”
* ''第四印'',''灰马骑士'':“骑马的名叫’''死亡''‘。坟墓紧紧跟着他。他们得到权力,可以管辖大地的四分之一,用刀剑、粮荒、致命的瘟疫和地上的野兽杀人。”
* 第五印中祭坛底下殉道者的呼声,神将白衣赐给他们;
* 第六印:“阳变黑,像黑色的粗毛布,整个月亮变得像血一样红,天上的星辰坠落在地上”
有十四万四千以色列人;犹大支派12,000人,流便支派12,000人,亚设支派12,000人,拿弗他利支派12,000人,玛拿西支派12,000人,西缅支派12,000人,利未支派12,000人,以萨迦支派12,000人,西布伦支派12,000人,约瑟支派12,000人,便雅悯支派12,000人额头被天使盖了印(认定为神的奴隶)。
羔羊揭开第七印时,有七枝号筒给了七位天使。
!! 七天使吹七号
* 第一个天使吹号,混杂着血的''冰雹和火''就被投在地上,烧掉了三分之一的地和三分之一的树木,所有青草也被烧掉了。
* 第二个天使吹号,一座仿佛''燃烧着的大山就被扔进海里''。三分之一的海变成了血,9 海里三分之一的生物都死了,三分之一的船只也毁坏了。
* 第三个天使吹号,一颗像火焰那样燃烧着的''巨星就从天上坠落'',落在三分之一的河流上,也落在所有水泉上,这颗星名叫“苦艾”。三分之一的水就变得跟苦艾一样,很多人喝下变苦的水就死了。
* 第四个天使吹号,''太阳的三分之一、月亮的三分之一和星辰的三分之一就被打击而变黑了'',结果白天的三分之一和夜晚的三分之一都没有光了。
* 第五个天使吹号,我就看见一颗星从天上落到地上。这颗星得到了打开''无底深渊''的钥匙。
** 他一打开无底深渊,烟就冒上来,像大火炉的烟一样。冒出来的烟使太阳和空气都变黑了。
** 有''蝗虫''从烟里出来,落到地上。上帝赐给它们能力,跟地上蝎子的能力一样。它们接到吩咐,不可以伤害地上的任何青草、植物或树木,''只可以伤害额头上没有上帝印记的人''。
** 蝗虫不可以杀死这些人,''但有权折磨他们五个月'',使他们像被蝎子叮了一样痛苦。在那段时期,人们寻死,却怎么也死不了,一心求死,却死不成。
** 统治它们的王就是掌管无底深渊的那个''天使'',他的希伯来语名字是''亚巴顿(意思是“毁灭”)'',希腊语名字是''亚玻伦(意思是“毁灭者”)''。
* 第六个天使吹号,我就听见上帝面前金坛的那些角发出声音,对拿着号筒的第六个天使说:“去释放被捆绑在幼发拉底大河的那四个天使。”于是,为指定的那年、那月、那天和那个时刻做好准备的四个天使就被释放,要去杀死三分之一的人。
** 我听见骑兵队的人数有两亿。 我在异象里看见马和骑马的人,骑马的人看上去有火红、风信子蓝、硫磺般黄的胸甲,马的头仿佛狮子的头,马的嘴喷出火、烟和硫磺。 马嘴喷出来的火、烟和硫磺这三种灾祸,杀死了三分之一的人。 马的能力在于它们的嘴和尾巴。它们的尾巴好像会咬人的蛇,可以伤害人。
* 第七个天使吹号,上帝天上的圣殿打开了,我看见了约柜。接着有''闪电、雷霆、地震、大冰雹''和说话的声音。
摩押是[[罗得|罗得 Lot]]与其''长女''所生。
罗得一家逃出索多玛时,罗得的妻子因不遵从天使的吩咐,回头看了一眼,结果变成了盐柱。罗得和两个女儿逃到附近的山洞里住下。为延续血脉,罗得的两个女儿将父亲灌醉,随后和其同房,结果双双怀孕,大女儿生下摩押,是''摩押人 Moabites ''的始祖,二女儿生下[[便亚米|便亚米 Benammi]],是''亚扪人''的始祖。
!! 巴兰和驴
<a href="https://www.wikiwand.com/en/Balaam">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/P1150002_Cognacq-Jay_Rembrandt_anesse_de_Balaam_rwk.jpg/580px-P1150002_Cognacq-Jay_Rembrandt_anesse_de_Balaam_rwk.jpg"
caption:"Balaam and the Ass, by Rembrandt van Rijn, 1626"
width:"400px"
align:"right"
>>
</a>
以色列人热切渴望进入应许之地,现在他们来到[[摩押|摩押 Moab]]的沙漠平原,在约旦河东对着耶利哥安营。
''摩押人''目睹以色列人就在他们前面安营,民多势众,不禁大起恐慌。他们的王巴勒与米甸人商议之后差遣人找巴兰(Baʹlaam)来,试图用法术咒诅以色列人。巴兰本不想去,但耶和华说“如果他们来召唤你,你就去吧,但是你只能说我让你说的话。“于是巴兰起身骑着自己的驴和摩押的王子去了。
但是耶和华看到巴兰真的去了,反而发怒。派天使在路上阻拦他。驴看见耶和华的天使站在路上,手里拿着出了鞘的剑,就想离开那条路走进田里。巴兰却打驴,要它转回路上去。 驴看见耶和华的天使,就趴在地上。巴兰坐在驴背上,非常愤怒,不停地用杖打驴。耶和华使驴开口说话,驴就对巴兰说:“我到底对你做了什么,你竟然这样打了我三次?”巴兰对驴说:“因为你捉弄我。我恨不得手上有剑,现在就把你杀了!”驴对巴兰说:“我不是你一直以来骑的驴吗?我以前有没有这样对待过你呢?”巴兰说:“没有!”这时,耶和华打开了巴兰的眼睛,巴兰就看见耶和华的天使站在路上,手里拿着出了鞘的剑。巴兰立刻跪在地上下拜。巴兰对耶和华的天使说:“我有罪了,因为我不知道是你站在路上拦我。如果你认为我这样做不对,我就回去。” 耶和华的天使对巴兰说:“你跟那些人一起去吧,不过你只能说我要你说的话。”巴兰就继续跟巴勒派来的首领一起上路。
后来巴兰终于抵达,当他打算对以色列人发出宣布的时候,真神的灵使他在所题说的四首诗歌中均预言''真神的子民必然蒙福''。他甚至预言有星要出于雅各,有杖要兴于以色列,要执掌大权和施行毁灭。
!! 清除不诚教徒
''巴兰''既咒诅以色列人不遂而触怒了巴勒,为了讨王的欢心,他于是''献计要摩押人以他们的妇女引诱以色列人参与巴力的淫荡崇拜''。于是,以色列人住在实亭的时候,人民开始跟''摩押女人''淫乱。那些女人请以色列人去献祭牲给她们的神,人民就吃她们的祭物,向她们的神下拜。以色列人跟着一起崇拜''琵珥山''的巴力神,耶和华就向以色列人发怒,用瘟疫攻击百姓,摩西则吩咐人要重重惩罚犯过者。大祭司的儿子非尼哈看见一个族长的儿子带着一个米甸女人进入营中自己的帐幕里,他便跟随他们,用枪刺透妇人的生殖部位而把他们杀了。至此瘟疫遂告止息,但被瘟疫所杀的人已达24000。
此后,耶和华吩咐摩西和以利亚撒数点民众,就像39年前在西奈山所为一般。人口的总数并没有增加。相反,登记的男丁少了1820人。除了约书亚和迦勒之外,在西奈山登记在军中服役的人没有一个存留下来;正如耶和华所预言,这些人全都死在旷野中。 然后耶和华颁布一些有关把土地分给百姓作产业的训示。''他重申摩西由于在米利巴水泉上没有在会众眼前尊耶和华为圣,所以不得进入应许之地''。''约书亚''奉派作摩西的继承人。
其后耶和华通过摩西提醒以色列人有关献祭、节期、许愿偿还等律法规条的重要性。此外,他要摩西与米甸人算账,因为他们诱使以色列人与巴力·毗珥连合。''米甸的所有男丁,包括__巴兰__在内,均全部战死沙场,''
摩西下令只有未婚女性能活命其馀都杀光,''所以惟独没有出嫁的处女才得幸免'',共有32000名女子与一大批战利品,包括808,000头牲口,被以色列人掳获。 没有一个以色列兵士在战争中阵亡。 [[流便|流便 Reuben]]和迦得的子孙善于牧放牲畜,他们请求得约旦河以东之地为业。在他们答允协助攻取应许之地后,他们得偿所愿,故此这两个支派与玛拿西的半个支派一同获赐这块丰饶肥美的高原为业。
回顾40年的旅程所经之处以后,经文再次强调以色列必须服从耶和华。真神把地赐给他们,但他们必须作他的行刑代表,''将那地崇拜其他神的居民赶出,并且把一切与偶像崇拜有关的事物彻底铲除''。
记载详细列明真神所赐之地的疆界。他们要按家室拈阄分地。利未人并没有按支派承受产业,反之他们获赐48座城及城四围的郊野,其中有6座作逃城供庇护误杀人者之用。 产业必须留在各支派中,不可因婚姻的缘故从一个支派转移到另一个支派。若无子继承产业,女儿便可承受产业——西罗非哈的女儿便是一例——但她们必须嫁给本支派内的人。民数记最后记载耶和华通过摩西赐下的这些命令典章,当时以色列的众子孙正作妥准备进入应许之地。
<a href="https://www.wikiwand.com/en/Moses#Media/File:'Moses'_by_Michelangelo_JBU160.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/7/70/%27Moses%27_by_Michelangelo_JBU160.jpg/440px-%27Moses%27_by_Michelangelo_JBU160.jpg"
caption:"Moses, with horns, by ''Michelangelo'', 1513–1515, in Basilica San Pietro in Vincoli, Rome"
width:"400px"
align:"right"
>>
</a>
son of [[Amram]]
* [[摩西出生]]
* [[接受使命,成为上帝的仆人]]
* [[埃及十灾]]
* [[摩西分海]]
* [[旷野旅程]]
* [[西奈立约]]
!! Offspring
<<list-links "[tag[西坡拉 Zipporah]] +[sort[title]]">>
<a href="https://www.wikiwand.com/en/Moses#Media/File:Moses_-_Alta-Tadema.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/1/19/Moses_-_Alta-Tadema.jpg"
caption:"The Finding of Moses, painting by Sir Lawrence Alma-Tadema, 1904"
width:"400px"
align:"right"
>>
</a>
[[雅各|雅各 Jacob]]带着儿子、家眷逃难到埃及的歌珊,投靠[[约瑟|约瑟 Joseph]]。他们的后裔生育 众多,开始在异邦壮大起来,这引起了埃及人的恐慌。
四百年后,埃及新王怂恿臣民说:“''以色列的人口现在比我们埃及人还要多,若是遇上什么战 事,他们必定会联合我们的仇敌一起来攻打埃及。''”从此埃及本地人就仇视以色列人,强迫他们去做徭役和苦工。以色列人尽管受到极为严格地管制, 忍气吞声,子嗣却仍越来越多。
埃及王又对希伯来人的收生婆说:“若为本族的妇人接生时,''看到男孩,就把他杀了;看到女孩,就让她活命。''”收生婆''敬畏神'',所以不听,仍让男婴活着。埃及王问收生婆为何不听命令,他们说“因为希伯来妇人与埃及妇人不同,希伯来妇人本是健壮的(for they are lively),收生婆还没有到,她们已经生产了。”
埃及新王就在全国下令:“凡以色列人生的男孩, 你们都要丢在河里;他们的女孩,就存留性命。”
有个利未家的女人怀孕, 生了一个''俊美''的儿子,一直把他藏到三个月大,又做了个蒲草箱,涂上石漆和石油,把孩子偷偷放在里面,搁在芦苇丛中。埃及公主来到河边洗澡, 看见了箱子,打开一看,有个孩子在里面哭,就心疼地抱他出来,为他找来一个奶妈,却正是那生产不久的利未女子。
[[摩西|摩西 Moses]]幼小时被母亲照管,大 了就送到公主身边。公主认他作儿子,起名叫摩西,也就是“''水里捡来的''” 的意思。他从此在埃及王宫生活安顺,享受高等教育。而同龄的以色列孩子却家着破衣烂衫,艰难度日。
长大以后有一天摩西看到一个埃及人在打希伯来人,一怒之下把埃及人打死并埋在沙堆里。
又一次他看到两个希伯来人打架,质问他们:“你为什么欺负同胞兄弟?” 那人说,谁立你作我们的首领和审判官呢,难道你要杀我,像杀那埃及人吗。摩西便惧怕,说,这事必是被人知道了。
法老也知道了这件事,要追杀摩西,摩西于是逃到[[米甸地(Midian)|米甸地 Midian]]居住。米甸祭司的女儿来打水,被牧羊人驱赶,摩西帮助她们赶走了牧羊人。祭司为了感谢摩西,把女儿西坡拉嫁给了他。
!! 相关
!! 犹太人为何被迫害
在圣经中的摩西时代,古埃及文明也到达最鼎盛阶段,以色列人在埃及新家多任会计等职务,由于聪明勤奋且善于与外邦贸易,他们大肄聚敛财富并广纳妻妾,''在安逸享乐的生活中很快因生养过多而酿成人口之灾''。 他们差不多快忘记迦南的“应允之地”,又不受到埃及新王的信任,被这位酷爱建筑的法老罚去作建造供祭祀的神股、神庙的苦役。后世常把旧约中的''摩西''作为基督的预表,他们都是生在危难中却博学多识、历经大厄终完全属灵的救世者。以色列人也就是后来的犹太人,他们流亡埃及的经历预示了多难兴邦。
<a href="https://www.jw.org/yue-hans/%E5%A4%9A%E5%AA%92%E4%BD%93%E5%9B%BE%E4%B9%A6%E9%A6%86/%E5%9C%A3%E7%BB%8F/nwt/%E9%99%84%E5%BD%95B/%E4%BB%A5%E8%89%B2%E5%88%97%E4%BA%BA%E5%87%BA%E5%9F%83%E5%8F%8A%E5%9C%B0%E5%9B%BE/">
<<image-basic "https://cms-imgp.jw-cdn.org/img/p/1001061223/CNS/art/1001061223_CNS_sub_lg.jpg"
width:"400px"
align:"right"
>>
</a>
逾越节过后,[[摩西|摩西 Moses]]领着以色列人离开埃及,远赴那几百年前神指给亚 伯拉罕后裔的迦南地,将约瑟的骸骨-也一并带往家乡。白天神在云柱中领路,晚上就现火柱照明,使以色列人日夜兼程,逃离埃及边境。
法老和大臣很快就变卦,他们见在本国服役的以色列人都走了,赶紧派优秀兵力想要把他们追回。以色列民看到埃及军队临近,就对摩西不满地说:“难道埃 及没有坟地,却要让我们死在这旷野上。我们服侍埃及人总比被你带到这 荒山野岭死掉好。”摩西安抚百姓:“有神眷顾,不要惧怕。今天之后,你们永远地都不会再见到埃及人了。”耶和华吩咐摩西,到时候将杖伸向海里, 前面就会显出异象,以色列人只管往前走。他又在埃及和以色列营队中间显现云柱,一边黑暗,一边光明,形成昼夜两极。
当摩西把神杖伸向大海, 耶和华就驱使强劲的东风,一夜之间,把海水被劈成两半,中间呈现干地。 以色列人下海走在这干地上,水柱就在左右形成墙垣挡住海水,使它不致回流。埃及人仍然向前追赶,也来到这海中的陆地上。天快亮时,摩西举杖挥向大海,水却突然又自身后合起,埃及军队连同马匹、车辆和法老本人都葬身于大海,喂在鱼腹中。
白天,以色列人看到过去气焰器张的埃及人全军覆没,就更加敬畏他们的神,对耶和华的仆人摩西也开始信服。
!! 各教派差异
|! |!天主教 |!东正教 |!新教 |
|第一诫 |钦崇一天主在万有之上 |曰吾乃尔主上帝,吾之外毋奉他主 |不可敬拜上帝以外的别神 |
|第二诫 |毋呼天主圣名以发虚诺 |''毋造捏偶像及凡天上地下土中水间,所有诸物之像,毋叩拜奉事之'' |''不可制造偶像也不可敬拜偶像'' |
|第三诫 |守瞻礼主日 |毋以上帝尔主之名而轻发 |不可妄称上帝的真名 |
|第四诫 |孝敬父母 |记忆以第七日为圣期。六日间任尔做工营尔诸务,而第七日乃属上帝尔主 |当纪念安息日守为圣日 |
|第五诫 |毋杀人 |孝敬尔父母则吉祥必及尔身而延寿于世 |应尊敬孝养父母 |
|第六诫 |毋行邪淫 |毋杀人 |不可杀人 |
|第七诫 |毋偷盗 |毋行邪淫 |不可奸淫 |
|第八诫 |毋妄证 |毋偷盗 |不可偷盗 |
|第九诫 |毋愿他人妻 |毋妄证 |不可作假见证 |
|第十诫 |毋贪他人财物 |''毋恋人妻毋贪人之宅屋田庄仆婢牛驴等并一切凡系人之财物'' |不可贪心 |
'Angry',son of [[希芙 Sif]] and [[⚒️雷神托尔 Thor]]
第十三至二十三章论及的[[👹撒但 Satan]]傀儡政权,由于世上的君王崇尚处伪的宗教急功近利的商业主义及自私的政治手腕,而任由魔鬼摆布,以致将遭受无可避免的浩劫(十三:6-13),先知为他们伤痛而发出预言唤醒列国看清''撒但''的真面目(十四:12-15(不是很明显)),而归向真神,因为定罪,赦免的权柄在于真神手中(二十二:22-23)。
!! 末世审判
末时世人皆痛苦,人比精金更少:耶和华的日子即指著主审判的末日,主再来的日子近的时候,''世人惊惶,悲痛,愁苦,疼痛忽然临到又无法避免,如产难的妇人一样''。天上星不发光,日头变黑暗,因灾祸,战乱死人多而人比精金更少,比俄斐(Ophir,阿拉伯地方金的出产地)的纯金更少。
[[巴比伦|🤴尼布甲尼撒二世 Nebuchadnezzar II 642-562 BC]], 摩押, 大马士革, 埃及, 埃塞俄比亚, 耶路撒冷会沦为荒芜。
晨星会陨落,因为它心里会说,我要昇到天上,我要高举我的宝座在神众星之上(众天使之上),我要在大家聚集的山上,要昇高,想要与神同等。这是它起了骄傲,想要与神同等,不尊神为大而受惩罚的原因。(被解读为堕天使,但书面上指巴比伦的统治者)
(非常具象地诅咒伤害过以色列人民的国家)
!! 上帝审判的代理者
<<card
text:"
那一天,我要把希勒家的儿子,就是我的仆人[[🗣️以利亚 Elijah]]敬召来。 我要给他穿上你的官袍,束上你的带子,我要把你的权力交在他手中。他会成为耶路撒冷居民和犹大国民的父亲。我要把大卫王朝的钥匙放在他的肩膀上。他开了门,就没有人能关;他关了门,就没有人能开。''我要把他像钉子一样钉在牢固的地方'',他会成为他宗族荣耀的宝座。他宗族的所有荣耀会挂在他身上。他宗族的子孙后代都依靠他,就像各种小器皿、碗和大瓶都挂在钉子上一样。’
<br>“天军的统帅耶和华说:‘那一天,本来钉在牢固之处的那根钉子会被移除,被砍下落在地上,挂在钉子上面的东西也会摔碎,这是耶和华亲口说的。’
"
footer:""
>>
撒拉(Sarah,原名撒莱Sarai)是圣经中的女族长、女先知和亚伯拉罕宗教的主要人物。虽然不同的亚伯拉罕信仰对她的形象有所不同,但犹太教、基督教和伊斯兰教都对她的性格有着相似的描述,都是一位虔诚的妇女,以热情好客和美丽而闻名,''是亚伯拉罕的妻子和同父异母的妹妹,也是以撒的母亲''。天主教堂的莎拉节日为 9 月 1 日,科普特东正教教堂的节日为 8 月 19 日,LCMS 的节日为 1 月 20 日,东正教教堂的节日为 12 月 12 日至 20 日。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
''约伯''有很多家产和子女,敬畏神,从不作恶。有一次[[👹撒但 Satan]]藏在天使之中被耶和华发现,神就问他:“你在地上有看到敬畏神的约伯吗?世上没有比他更正直的。”撒旦就说:“他怎会无故敬畏神,难道不是你给他大量好处了吗?你若毁掉他所有的,他必离弃你。”神说:“你能掌控他的一切,勿加害他。”撒旦就得意地退去。
约伯正在家里吃饭喝酒,听到报信的说:“你的牲畜都被人掳去,仆人也被杀死。”话音未了,又有人来说:“天上的雷火把你的羊群和牧人都烧天了。”接连第三、四人来报,说他的儿女们在聚餐时,风吹倒了房屋,把他们都压死了。约伯就向神跪拜说:“你赏赐给我的,又都收回,我有什么话可说呢。”
撒旦第二次藏在众天使之中,神就问他:“你使我攻击和段灭约伯,他仍然坚守纯正的信念。”撒旦又说:“你若伤他的骨头和肉,他必真离弃你。”神应允了他再次试探约伯。
撒旦就让约伯从脚底到头顶都长毒疮,其妻劝他弃掉神,他就说:“你真愚顽,我们能从神那里得福,就不能受祸吗?”约伯的三个朋友来探望却几乎认不出他,就用言语安慰他,又辩论说只有罪人才受到神的惩器。约伯却以自己所行为义,被人斥责他不知悔改。神听完他们的对话,称赞约伯的真义,就加倍赐福给他。
son of [[Hannah]] and [[Elkanah]]
成年后的撒母耳集申言者(先知)、祭司(司祭)与士道师(民长)等三种职份于一身,代表以色列百姓向神献燔祭,每年巡行各处,并在伯特利,吉甲 (Gilgal),米斯巴 (Mizpah),拉玛 (Ramah)等处审判以色列人。
!! 相关事件
[[撒母耳记 Books of Samuel c.1078-1040 BC]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[num]]">>
经文开首谈及利未人以利加拿的爱妻[[哈拿|Hannah]]。以利加拿的另一个妻子[[毗尼拿 Peninnah|Peninnah]]因哈拿无儿无女而讥笑她。
这家人每年都前往安放耶和华的约柜的示罗去敬拜上帝。''哈拿''趁机会恳切祈求耶和华赐她一个儿子。她许愿若生下儿子,就必把他归与耶和华,终身事奉他。
上帝应允了她的祷告,使她怀孕生子,生下[[撒母耳|撒母耳 Samuel]]。''哈拿''待孩子断了奶便把他带往耶和华的殿,交给大祭司''以利''抚养,“归与耶和华”。哈拿于是满心喜乐地作了一首歌,感谢赞美耶和华。那孩子遂“在祭司''以利''面前事奉耶和华”。
''以利的两个儿子是恶霸'',不尊重耶和华。他们向人民收取祭物时,滥用祭司的权利,又与妇人苟合行淫。每逢有人献祭牲,肉还在煮的时候,祭司的手下就过来,拿着三齿叉,插进各种锅里。凡是叉子插上来的,祭司都据为己有。所有来到示罗的以色列人,都受到这样的对待。此外,在焚烧祭牲的脂肪之前,祭司的手下就过来,对献祭牲的人说:“把肉交给祭司烤吧。他不要煮过的肉,只要生肉。”要是那个人说:“必须先焚烧脂肪,然后你想要什么,就拿什么吧。”祭司的手下就说:“不行!现在就给我,不然我就要抢了!”''祭司的手下在耶和华眼中罪大恶极。这些人不尊重献给耶和华的祭物。''以利没有纠正他们。
故此,耶和华的不利判决临到以利家,并警告说:“''你家族的人都不会活到老。''”他的两个儿子必于同一日死去。耶和华派''撒母耳''把自己对以利家族的判决告诉他们,至此,''全以色列的人,都知道撒母耳是耶和华认可的先知。''
后来,耶和华兴起 ''非利士人(Philistines)'' 作他的行刑工具。以色列人争战失利,百姓高声呼叫,要将约柜从示罗抬到营中。非利士人听见呼叫的声音,并且获悉约柜已到了以色列人的营中,于是齐心一意振作起来,结果他们大大击败以色列人。约柜被掳去,''以利''的两个儿子亦被杀。以利忧心如焚,聆听报告。报信的人一提到上帝的约柜,''以利''就从位上往后跌倒,折断颈项而死。这样,他的40年管理亦随之结束。圣经记载说,“荣耀[已]离开以色列,”因为约柜代表耶和华与他的百姓同在。
<a href="https://www.wikiwand.com/zh-hans/大袞">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Dagon1.jpg/360px-Dagon1.jpg"
caption:"大衮"
width:"300px"
align:"right"
>>
</a>
当时非利士人也不能逃过上帝给他们的痛苦教训,他们必须知道耶和华的约柜是绝不能当作神奇的护身符的。他们将约柜抬进位于亚实突的大衮庙时,他们的神''大衮''竟突然仆倒,脸伏于地。次日,大衮神再次仆倒在门槛上,这次它的头和两手均折断了。自此以后,非利士人有了一个迷信的习俗,进庙的人“都不踏大衮庙的门槛”。非利士人于是把约柜运到迦特,然后再送往以革伦,但都于事无补。城里的人都''生痔疮'',四处且有老鼠为患,他们痛苦不堪,惊惶失措。
非利士的众首领眼见他们的百姓死伤枕藉,惟有把约柜放在一辆新造的车上,用两只有乳的母牛拉回以色列去。还必须献上''五个金痔疮和五只金跳鼠''。还要要''造痔疮像'',也要造毁坏大地的跳鼠的像,而且要尊重以色列的上帝。把献给上帝做赔罪祭的金器装在箱子里,放在约柜旁边,然后让约柜离去。
在伯示麦,有''些以色列人因擅观上帝的约柜而遭击杀''。最后,约柜到了利未人的城基烈耶琳,安放在亚比拿达的儿子''以利亚撒''家中。
上帝的约柜一直在亚比拿达的家中安放了20年。''[[撒母耳 Samuel]]''已经长大成人,他敦促以色列人把诸巴力及亚斯她录的神像除掉,专心事奉耶和华。他们遵嘱而行。他们聚集在米斯巴作崇拜时,非利士人的首领趁机会上来攻击他们。
以色列人措手不及,便通过''撒母耳''呼求耶和华。当日耶和华大发雷声,使非利士人阵营大乱,以色列人则在献祭及恒切祷告之后力量大增,''结果歼灭了非利士人''。从此,‘''在撒母耳的日子,耶和华的手不断攻击非利士人''。’
''撒母耳''终其馀生都管理以色列,每年从耶路撒冷以北的拉玛巡行到伯特利、吉甲及米斯巴。在拉玛,他为耶和华筑了一座坛。
《撒母耳记》是希伯来圣经中的一篇,原为一卷书,《七十士译本》为了实用方便缘故,首先将《撒母耳记》分为上下两册,与《列王纪上》、《下》共四册,合称为“王国书”。
撒上、下与王上、下编纂成书,是针对王国的失败,向被掳至异域的犹太人解释为甚么他们身为选民竟沦落到如此可怜的地步:以色列王国的失败可以追溯到''所罗门''身上,甚至更远的事件,诸如''大卫''的犯罪,祭司以利家的失职等都是构成整个悲剧的一些因素。
''撒母耳记上''将以色列四位领袖的生平分别作出完整或部分的介绍,截止至[[扫罗自杀收场]]。四位领袖分别是:大祭司''以利''、预言者[[撒母耳|撒母耳 Samuel]]、首任君王[[扫罗|👑扫罗 Saul]]及受膏作第二任君王的[[大卫|👑大卫王 David]]。
''撒母耳记下''是圣经全书的第10本书,主要记录以色列王国第二位国王''大卫''执政其间的历史。撒母耳记下原和撒母耳记上合并为一册。
<<list-links "[tag<currentTiddler>] +[nsort[num]]">>
[[🗣️施洗约翰 John the Baptist]]的父亲,犹地亚王[[🤴大希律王 Herod the Great 74 BC-4 BC]]在位期间的一个祭司。
天使告诉他会有一个儿子时,他认为自己和妻子年纪太大不可能再生子,所以没有相信。天使惩罚他在小孩没有出生之前都不能说话。
''异象和预言''
《撒迦利亚书》(天主教译《匝加利亚》;东正教译《匝哈里亚书》;唐朝景教译作《删河律经》)是《希伯来圣经》的第38本书卷,基督教《旧约圣经·小先知书》的第十一卷。
根据基督教的教义解释,这一卷是''包含了很多关于耶稣''的预言,并在后来的记录中全部得到应验的先知书。[[🗣️撒迦利亚 Zechariah]]是本书的作者。
!! 特色
撒迦利亚的信息特别注重''灵性生活''和[[🙏弥赛亚 Messiah]]及其国度。他的主要工作是''激励百姓'',特别是犹太人领袖所罗巴伯和约书亚,''重建圣殿''。他勉励省长所罗巴伯,因为那领袖知道自己的软弱(4:6-10)。他直接传达所见异象,与神和神的使者对话,来宣告神的旨意。他回答百姓的询问,强调诚心遵守诫命胜过徒具形式的禁食;要百姓明白神只祝福那些爱护贫苦孤寡、按公平审理判断的人。
本书后段(9-14章)可能是撒迦利亚晚年所作,与前段书写中间隔一大段日子;语调和主题与前半段不同。当时波斯帝国已经受到新兴的希腊人的威胁,距耶稣基督降生只有五百年。作者已经看到临到以色列的战争与灾难,和人类最后的得赎。
基督教信徒宣称书中记录著许多预言,例如将有一位谦和的王骑著驴驹受到耶路撒冷城居民的欢呼,以及用三十块钱作为大牧人的工价等,大卫家的复起(12章)、谦和之君的来临(9:9-10),以及被人厌弃(11:4-17)、身体被扎(12:10),和与列国战争(10:3-11:3)等。本书有多处为新约作者所引用,因为基督教信徒相信其预言都准确的应验在耶稣基督身上。新约引用此经卷的地方:太21:4-5;26:31;27:9;可14:27;约12:15;19:37;启1:7;22:3;可见本书在初期教会信徒心中的地位。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
son of [[拿顺 Nahshon]]
<a href="https://www.wikiwand.com/en/Salmon_(biblical_figure)">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Michelangelo%2C_lunetta%2C_Salmon_-_Boaz_-_Obed_01.jpg/600px-Michelangelo%2C_lunetta%2C_Salmon_-_Boaz_-_Obed_01.jpg"
caption:"Lunette in the Sistine Chapel of Salmon with Boaz and Obed."
width:"400px"
align:"right"
>>
</a>
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
撒马利亚,是巴勒斯坦地区中部的一个历史地区,名称源自''北国以色列''首都撒玛利亚,其南至犹地亚,北抵加利利。一世纪的历史学家约瑟夫斯将地中海定为其西界,将约旦河定为其东界。
"''Wind-chill''." Or ''Vindljóni'' ("Wind-man"), the father of ''Vetr'', winter personified, according to Vafþrúðnismál. In Gylfaginning, Snorri Sturluson adds that he is the son of Vásaðr, and that these were kinsmen grim and chilly-breasted, and Winter has their temper. A kenning for winter is Vindsvalr's Son.
斯堤克斯(Styx,希腊语:Στυξ,字面意思为“仇恨的”)希腊神话中的一个俄刻阿尼得斯(大洋神女),负责掌管''斯堤克斯河''(环绕冥土的五条冥河之一)。
|父母 |''[[Oceanus|🌊大洋之神俄刻阿诺斯 Oceanus]] and [[忒堤斯 Tethys|河神和海洋之母忒堤斯 Tethys]]'' or'' [[尼克斯 Nyx|🌌黑夜女神尼克斯 Nyx]] and [[厄瑞玻斯 Erebus|虚冥厄瑞玻斯 Erebus]]'' |
根据赫西俄德的记载,''斯堤克斯是海神俄刻阿诺斯和泰坦女神忒堤斯的女儿'';其他说法则认为她是夜神倪克斯和黑暗之神厄瑞玻斯之女。她与泰坦巨神之一的帕拉斯结合,生下了四个拟人化神:胜利女神妮琪、强壮之神克拉托斯、热情之神仄罗斯和暴力女神比亚。宙斯非常宠爱斯堤克斯的四个孩子,因为他们是宙斯的忠实拥护者。
尽管有泰坦的血统,斯堤克斯在泰坦战争中却站在奥林匹斯神一边,支持以宙斯为首的奥林匹斯众神反对泰坦神族。因此后来神祇们都以斯堤克斯的名字来起誓。以斯堤克斯的名义发出的誓言是极其神圣的,任何违背此誓的神灵都会受到昏睡一年的惩罚。
<a href="https://www.wikiwand.com/en/Scandinavia">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/aa/Map_of_Scandinavia.svg/500px-Map_of_Scandinavia.svg.png"
caption:""
width:"400px"
align:"right"
tooltip:"">>
</a>
''斯堪的纳维亚'',在地理上是指''斯堪的纳维亚半岛'',包括''挪威''和''瑞典'',文化与政治上则包含''丹麦''。这些国家互相视对方属于斯堪的纳维亚,虽然政治上彼此独立,但共同的称谓显示了其文化、语言和历史有深厚的渊源。
''芬兰、冰岛''和''法罗群岛''等北欧国家和地区因其与丹麦、挪威和瑞典相近的历史和文化背景,有时也被视为斯堪的纳维亚国家。有时这些对斯堪的纳维亚的不同理解可能会引起不满,“[[北欧国家 Nordic countries|北欧五国 Nordic countries]]”才是对北欧五个国家的合宜统称。
是北欧神话中掌管命运的诺伦三女神其中之一(排行老幺),同时她也是''[[女武神(valkyries)|⚔️女武神瓦尔基莉 Valkyries]]''其中的一位,她的名字意谓著“必要性”。在诺伦三女神当中,诗寇蒂掌管的是“未来 Is-to-be”。
''Stheno'' (''/ˈsθiːnoʊ/ or /ˈsθɛnoʊ/''; Greek: Σθενώ, 'forceful')
凶猛的女性怪物,拥有黄铜手、锋利的尖牙和由活毒蛇制成的“头发”。
在三个蛇发女妖中,她被认为是''最独立和最凶猛的'',__杀死的男人比她的两个姐妹加起来还多__。
在希腊神话中,欧律阿勒受到了妹妹美杜莎的牵连,而被女神雅典娜诅咒并变化成怪物。美杜莎在雅典娜神庙中遭到海神[[波塞冬|🔱海神波塞冬 Poseidon]]强奸,由于在女神的神庙中进行性行为,被雅典娜认为是对她这位贞洁神的侮辱,进而诅咒美杜莎和她的两位姊妹(斯忒诺和欧律阿勒),使三人都变成怪物。
Stheno 往往被描绘成一个瘦弱的 gorgon 怪物,她的头上而不是头发上卷着红色的蛇。然而,早先的记载描述她有一个鳞片状的头,一头野猪的獠牙,古铜色的手,伸出的舌头,瞪着眼睛,腰间系着一条作为腰带的蛇。
当美杜莎被英雄[[珀耳修斯|珀尔修斯 Perseus]]斩下头颅后,一旁的斯忒诺和欧律阿勒试图杀掉他,但珀耳修斯戴上黑帝斯的隐形头盔,用头盔给予的隐形能力成功逃走。
<<<
在那里住着永生者们憎恶的女神,
可怕的斯梯克斯,环流大洋神的
长女。她远离神们住在华美的寓所,
巨大的岩石堆砌成拱穹,
银柱盘绕而起直上云霄。
陶马斯之女,捷足的伊里斯很少
在无垠的海面上来往传信。
然而,每当永生者中起了争吵和冲突,
住在奥林波斯山的某个神撒了谎,
宙斯就派伊里斯去找神们的重大誓言,
从大老远取来这著名的水,盛在金杯里,
那是一股冰冷的水,从巨崖高高淌下。
远远的,在道路通阔的大地之下,
它源自神圣的大河,流过黑色的夜,
俄刻阿诺斯的一个分支,第十支流:
另外九条支流环绕着大地和无垠的海面,
银色的涡流最终汇合于咸涩的浪中。
只这支流从崖石淌下,是神们的大灾祸。
若有谁以这水浇奠并故意发伪誓
—拥有积雪的奥林波斯山顶的永生者,
便要断了呼吸,躺倒整整一年,
不得接近琼浆和玉液,
他要没声没气地躺倒在
床榻上,不样沉睡侵染全身。
这病要捱完长长一年才算数,
更严酷的新惩罚又相继而来。
他要和永生神们断绝往来九年,
不得出席议会,参加欢宴,
如此整整九年,到第十年才重回
奥林波斯山顶的永生者的聚会。
神们这样以长生的斯梯克斯水立誓 ,
那流经丛石之地的古老的水。
<<<神谱
<<<
大洋女儿斯梯克斯与帕拉斯结合,
在她的宫殿生下泽洛斯和美踝的尼刻,
克拉托斯和比阿,出众的神族后代。
他们远离宙斯就没有家也居无定所,
除了父神引领的道路,哪里也不去。
他们无时无刻不在雷神宙斯的身边。
长生的大洋女儿斯梯克斯意愿如此。
有一天,奥林波斯的闪电神王
召集所有永生神们到奥林波斯山,
宜布任何神只要随他与提坦作战,
将不会被剥夺财富,并保有
从前在永生神们中享有的荣誉。
在克洛诺斯治下无名无分者
将获得公正应有的财富和荣誉。
长生的斯梯克斯最先来到奥林波斯,
和孩子们一起,遵循她父亲的建议。
宙斯给她荣誉,加以额外的恩赐。
他任命她监督神们的重大誓言,
她的孩子们从此永远和他住在一起。
就这样,他履行了全部的承诺;
并掌有最高王权,主宰一切。
<<<神谱
[[古德露恩 Gudrun]]和[[希格尔德 Siegfried]]的女儿
----
至于斯瓦希尔德的结局,据传说,她许嫁于哥特王''俄尔曼列希(Ermenrich)'',这位国王特派了''王子兰德维尔(Randwer)''和大臣''希毕克(Sibich)''来迎娶。希毕克有野心,想要谋夺王位,乃进谗于俄尔曼列希,谓兰德维尔王子见新后美,曾想要和她私通。
俄尔曼列希大怒,遂绞死兰德维尔,并命以马践死斯瓦希尔德。可是这位[[希格尔德|希格尔德 Siegfried]]和[[古德露恩|古德露恩 Gudrun]]所生的女儿是这样地美,连马群也为之避道,没有一匹马伤及她分毫。后来还是用大毯遮在斯瓦希尔德身上,她才被许多马足踏死。
知道了女儿被杀的消息,古德露恩命令她的两个儿子去报仇。她给他们以兵器和盔甲,这盔甲只有石头才能伤。不久,她因悲愤过度,就先死了。
古德露恩的两个儿子进入了''俄尔曼列希''的国境。他们同父异母的三弟埃尔普(Erp,和古德露恩以前生的儿子同名)要来帮他们,长子苏尔利(Sorli)及次子哈姆迪尔(Hamdir)认为他太小太弱,未必能有多大帮助,就把他先杀死。他们两个于是去攻打俄尔曼列希,砍去了他的手脚,正待杀死他时,忽然出现一个独眼的老人,指导旁人以石块掷击这两位报仇的少年。因为他们的盔甲不能抵挡石头,所以两个少年就都被杀死了。
以上就是伏尔松格传说的概略。对这传说的解释,也有历史的和自然现象的两种:历史的解释是说,[[阿提利|匈奴国王阿提利 Atli]]和[[古恩纳尔|古恩纳尔 Gunnar]]均为历史人物,阿提利就是''暴君阿提拉(Attila)'',古恩纳尔是勃艮第的君主''古恩狄卡利乌斯(Gundicarius)'',此人于公元 451 年与其弟一同被杀,国亡于匈奴。
''古德露恩''则是''勃艮第公主伊尔迪克(Ildico)'',她在新婚之夜手刃了想要娶她的''阿提拉'',用的据说就是[[战神提尔的那把刀|勇敢及战争之神提尔]]。
至于自然现象的解释,则谓伏尔松格家族的人:[[希吉|希吉 Sigi]]、[[利里尔|利里尔 Rerir]]、[[伏尔松格|伏尔松格 Volsung]]、[[希格蒙德|希格蒙德 Sigmund]],还有[[希格尔德|希格尔德 Siegfried]],都是轮流代表着太阳的。
他们的武器都是闪亮的剑,那是太阳光芒的象征。 而且他们都是走遍世界,诛锄恶人——寒冷与黑暗的妖魔——的;''希格尔德''像[[光明之神巴德尔 Baldr]]一样为人人所爱,他和黎明的少女[[布伦希尔德|布伦希尔德 Brynhild]]结婚,可是不能长久相处,只是在他即将没落时才又遇见了她。
希格尔德的火葬也象征着''落日'',就像''巴尔德的火葬''一样。而他杀死毒龙[[法弗尼尔|希格尔德 Siegfried]],则象征了日光征服寒冷和黑暗。
Svásuðr,"''Delightful''." According to Vafþrúðnismál, the father of Sumarr, summer personified. Snorri Sturluson adds that he is of pleasant nature, so that from his name whatsoever is pleasant is called 'sweet.' A kenning for summer is Son of Svásuðr.
"Strength", a daughter of [[希芙 Sif]] and [[⚒️雷神托尔 Thor]]
最后,一个“新天新地”出现,荣耀的“''新耶路撒冷''”从天而降,如“羔羊的新妇”妆饰整齐、等候丈夫。
城里的碧玉、纯金和珍珠代表它的庄严华美。''这座城不需要日月照耀,因为上帝的荣耀照亮了城,绵羊羔就是这座城的灯''。
''任何被玷污的东西,任何行为可憎和弄虚作假的人,都绝对不能进城。只有记录在绵羊羔的生命册上的人才能进去''。
城中有生命水的河,从上帝和绵羊羔的宝座流出。在河的两边有生命树,生产十二样果子,每月结新果,树上的叶子医治万民。
到时不会再有任何诅咒。上帝和绵羊羔的宝座在城里,上帝的奴隶都会敬奉他。他们会看见他的脸,他们的额头上都会写着他的名。
<a href="https://www.wikiwand.com/zh-hans/伽勒底帝国">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/0/0d/Neo-Babylonian_Empire_map_zh-hans.svg/500px-Neo-Babylonian_Empire_map_zh-hans.svg.png"
caption:"全盛时期的新巴比伦帝国"
width:"400px"
align:"right"
tooltip:"">>
</a>
新巴比伦帝国(前626年-前539年),因由''迦勒底人''所建又称为迦勒底帝国,兴起于古代美索不达米亚南部巴比伦城的政权。公元前626年建立并和米底一同消灭了新亚述帝国,在[[🤴尼布甲尼撒二世 Nebuchadnezzar II 642-562 BC]]统治时国势达到鼎峰,最后在公元前539年被波斯人消灭。
!! 建立
新巴比伦帝国由''迦勒底人''建立,''迦勒底人''是[[闪米特人 Semitic people]]的一支,他们于公元前1000年代初来到两河流域南部定居,随后亚述帝国征服并统治了两河流域南部,迦勒底人曾多次起义反抗亚述的统治。
公元前626 年,亚述人派迦勒底人领袖那波帕拉沙尔率军驻守巴比伦,他到巴比伦后,却发动反对亚述统治的起义,建立新巴比伦帝国,并与伊朗高原的米底王国联合,共同对抗亚述。公元前612年,亚述帝国结束,遗产被新巴比伦帝国及米底王国瓜分,其中新巴比伦帝国分取了亚述帝国的西半壁河山,即两河流域南部、叙利亚、巴勒斯坦及腓尼基。
!! 强盛期
公元前604年,[[🤴尼布甲尼撒二世 Nebuchadnezzar II 642-562 BC]]即位,''叙利亚''立时归顺新巴比伦帝国,但腓尼基及巴勒斯坦地区态度不明,而埃及一向觊觎此区,拉拢推罗、西顿等腓尼基地区与埃及结盟,此时前600年的''迦勒底帝国''人口达到250万。对此,尼布甲尼撒二世继续与米底王国结盟,又娶公主阿米蒂斯为后,以巩固自己后方。公元前597年,出兵巴勒斯坦,攻占[[耶路撒冷 Jerusalem]],扶植犹太人齐德启亚为傀儡统治犹太人。
公元前590年,埃及法老普萨姆提克出兵巴勒斯坦,推罗国王投靠埃及,西顿被占领,犹太人齐德启亚及巴勒斯坦、外约旦等地纷纷倒向埃及。同时,米底王国与新巴比伦帝国的关系紧张起来,为此新巴比伦帝国筑起一条新长城防范米底。然而,米底因要对抗乌拉尔图及西徐亚人,无力再与新巴比伦帝国对抗,致使尼布甲尼撒二世可于公元前587年第二次挥军巴勒斯坦。他围困犹太人的圣城耶路撒冷,[[👑西底家 Zedekiah]]突围失败,落入新巴比伦帝国军队之手,被挖去双眼后送往巴比伦城。公元前586年,耶路撒冷被围十八个月后城陷,居民被俘往巴比伦尼亚,史称“巴比伦之囚”。
尼布甲尼撒二世又围攻腓尼基的推罗,不果。公元前574年,双方议和,推罗国王伊托巴尔三世承认尼布甲尼撒二世为尊者,保持了推罗的自治地位,其他附近的小王国都纷纷向尼布甲尼撒二世称臣。公元前569年,埃及发生王位之争,尼布甲尼撒二世曾趁此在公元前567年入侵埃及,结果不详,但迫使埃及放弃侵略巴勒斯坦的野心。到前550年,迦勒底帝国的人口达到380万人。
尼布甲尼撒二世对巴比伦城进行了大规模建设,使巴比伦成为当时世上最繁华的城市,也是中东最重要的工商业城市。巴比伦城以两道围墙围绕.外墙以外,还有一道注满了水的壕沟及一道土堤,城内的主干道中央以白色及玫瑰色石板铺成,另城有八个城门,其中的北门就是著名的伊丝达尔门,表面用青色琉璃砖装饰,砖上有许多公牛和神话中的怪物等浮雕。巴比伦城被建设得宏伟壮丽,直到100多年后,希腊历史学家,被称为“历史之父”的希罗多德来到巴比伦城时,仍称它为世界上最壮丽的城市。
尼布甲尼撒二世据称还在巴比伦城为米底来的王后兴建“空中花园”,令米底公主不再有思乡之苦。该花园位于底格里斯河边,据狄奥多拉记载,花园每边长120米左右,呈正方形,花园内满是奇花异草,并用螺旋泵不断地从幼发拉底河里取水作灌溉。这个花园远看起来就像位于天空中般,因此被称为空中花园。内里亦有著富丽堂皇的宫殿,使得尼布甲尼撒二世和王后可以在宫殿里饱览全城的景色。这个空中花园名满天下,被后世誉为古代世界七大奇观之一,空中花园被毁于公元前三世纪。
新巴比伦帝国时期的奴隶制度也有了更大的发展,奴隶的人数也增多,显著的特点是让奴隶更多的独立经营,奴隶可独立租佃土地,经商,从事手工业等,甚至开钱庄放债,有极少数的奴隶甚至还达到相当富有的程度,甚至奴隶本身也拥有奴隶,除为主人代理行事外,又同时经营自己的经济。不过即是他们富起来,他们也还是其主人的财产,主人可将其随意买卖,转让或作陪嫁物,他们要烙上主人的名字,从外国买来的奴隶要烙上两种语言,外籍奴隶由其主人取一个巴比伦尼亚的名字。然而,大多数的奴隶的处境仍然是很不好,从保存下来的司法文件中,奴隶否认自己是奴隶的身分,还以逃亡形式进行反抗,所以买卖奴隶时,卖主必须向买主保证奴隶不逃亡。除奴隶外,社会上主要的生产者是自由民,他们租佃王室、神庙及个别奴隶主的土地,而且往往还要额外租用牲畜、种子和农具,他们也同时是当时的被剥削者。
!! 覆亡
尼布甲尼撒二世死后不久,国内阶级矛盾及民族矛盾加剧,最后一个国王拿波尼德统治时,国王及马尔杜克神庙之间的矛盾加剧,并试图另立新神,拿波尼德离开首都,以其子伯沙撒摄政。公元前539年,波斯人崛起,居鲁士二世率军入侵新巴比伦帝国时,祭司竟打开大门放波斯军队入城,伯沙撒被杀,那波尼德被俘,新巴比伦帝国不战而亡。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Fertile_Crescent_map.png/440px-Fertile_Crescent_map.png"
caption:"新月沃土范围"
width:"300px"
align:"right"
>>
''新月沃土''或称''肥沃月弯''(英语:Fertile Crescent),是指''西亚、北非地区两河流域及附近一连串肥沃的土地'',包括黎凡特、美索不达米亚和古埃及,位于今日的''以色列、西岸、黎巴嫩、约旦部分地区、叙利亚,以及伊拉克和土耳其的东南部、埃及东北部''。由于分布地带在地图上就像一弯''新月'',因此美国芝加哥大学的考古学家詹姆士·布雷斯特德(James Henry Breasted)把这一大片肥美的土地称为“肥沃月湾”。
在新月沃土东部''形成两河流域最早的城市、国家并产生书写''。而新月沃土上的''苏美尔城邦''约在公元前4000年建立。
一直以来,''__河水__都是这片地区政治冲突的潜在诱因''。约旦河构成了''以色列、约旦和巴勒斯坦''的边界。''幼发拉底河''被''土耳其''和''叙利亚''分别控制著的四分之一,''伊拉克''控制著其他下游及其支流。
《新约圣经》是基督教所认为的“《圣经》全书”里继《旧约圣经》之后的其余部分的常用称呼,又称为''《希腊语经卷》''。
《新约全书》共二十七卷,内容大致可分为五个大类,即“福音书”、“使徒行传”、“保罗书信”、“大公书信”和“启示录”。虽然这几个部份的表现形式有所不同,但是他们都有共同的主题,''即强调耶稣基督的身份、生平和地位。''
根据旧约圣经里后段先知的预言,教徒认为未来将会出现弥赛亚,于是大约在公元前后耶稣基督出生,然后经历去世、复活及升天之后,基督徒在各地宣讲基督的言语和事迹,《使徒行传》则记载他们在各处传道的经历;几年之内,地中海东岸就建立一些基于此观点设立的基督教会。部份杰出的基督徒(如使徒保罗)通过书信来问候、告诫这些教会,而这些书信构成“保罗书信”、“大公书信”。不过,耶稣的事迹这段经历最初并没有文字纪录,六十年后,人们才用文字记录下来。''这些记录耶稣基督言论及生平事迹的文字,就是我们所说的“福音”,后来被收录在《福音书》。''
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
<<tabs "[tag[族谱]nsort[num]]" "希腊众神">>
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
以色列人从红海往前行,直到''书珥''的旷野,在那儿寻找水源。百姓又到了''玛拉'',却不能喝那里的水,因为太苦,就发愁说:“那我们喝什么呢?”
耶和华指示给摩西一棵树,摩西把那树丢在水里,水就变甜了。但他们仍 然没有吃的,百姓因饥饿又抱怨起来。摩西说:“耶和华晚上必给你们肉吃, 早晨必赐你们食物饱腹。”
到了晚上,有''鹌鹑''飞来,栖息遍地。在早晨,营地四周都布满露水,露水升华后留下白霜般的小圆物。以色列人都不认识那东西,就彼此相问。摩西说:“这就是耶和华给你们吃的食物。你们要按照自己的饭量和帐篷里的人数各拿一份,但不许把它们留过上午。”百姓各取所需,有留过上午的就生虫变臭了。当天气开始热时,那食物就融化消散了。到第六天,他们收到双倍的食物。第七天是安息日,就没有了食物, 摩西吩咐各人仍住在自己的账幕,今天不要出去。以色列人管这白色的食 物叫“''吗哪''"(”这是什么?“的意思),样子像芫荽子,味道甜甜如掺了蜜的薄饼。摩西又说:“将吗哪留到后世,好让他们记得神在旷野上赐我们食物。”亚伦就拿了一个罐 子,盛满吗哪存留在法柜中。
以色列人在沙漠中''流浪四十年'',一直吃着吗哪才能存活下来。百姓没有水喝,耶和华就让摩西拿手中的杖击打山上的磐石,那磐石流出水来让他们喝。
<a href="https://www.wikiwand.com/en/Names_of_the_days_of_the_week#Media/File:Italian_-_Bracelet_-_Walters_41269.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/c/c5/Italian_-_Bracelet_-_Walters_41269.jpg"
caption:"Italian cameo bracelet representing the days of the week, corresponding to the planets as Roman gods: Diana as the Moon for Monday, Mars for Tuesday, Mercury for Wednesday, Jupiter for Thursday, Venus for Friday, Saturn for Saturday, and Apollo as the Sun for Sunday. Middle 19th century, Walters Art Museum"
width:"auto"
align:"center"
>>
</a>
|!星期 |!Sunday |!Monday |!Tuesday |!Wednesday|!Thursday |!Friday |!Saturday |
|!北欧 |[[☀️苏尔 Sol]] |[[🌖玛尼 Mani]] |[[🛡️战神提尔 Tyr]] |[[⚡众神之父奥丁(神圣) Odin]],作为风神的时候名为“''Woden''” |[[⚒️雷神托尔 Thor]]|[[众神之母弗丽嘉 Frigga]]|The Old Norse word for Saturday is Laugardagr, which means “''hot water day''” and can also mean “''day of bathing''.” In Old Norse, “dagr” means day. |
|!希腊 |[[☀️太阳神赫利俄斯 Helios]] |[[🌖月亮女神塞勒涅 Selene]] |[[🛡️战神阿瑞斯 Ares]] |[[☤神使赫尔墨斯 Hermes]] |[[⚡天神宙斯 Zeus]] |[[💗爱情女神阿佛洛狄忒 Aphrodite]] |[[🌾丰收之神克洛诺斯 Cronus]] |
[[🍎青春女神伊登 Idun]],春天或青春不老之人格化,或说她是侏儒[[伊瓦尔德(Ivald)|伊瓦尔迪 Ivaldi]]的女儿,或说她本来就是无生也无死的。
在北欧神话中,伊登是春之女神。她拥有''青春之苹''果,吃了这苹果的人,能常葆青春的美丽、活泼,已老者亦能返老还童。[[阿瑟加德|亚萨神国阿斯加特 Asgard]]的诸神,因为都是''杂种''(连[[奥丁|⚡众神之父奥丁(神圣) Odin]]自己也是杂种,他的母亲是霜巨人),''不能免于衰老和死亡''。而自从伊登来到阿瑟加德后,诸神常常分享她的苹果,就能永远青春不老了。
这些青春之苹果,伊登放在一个篮子里,随便要多少,取之不尽。如此的一个宝贝,当然时时有侏儒和巨人想要偷盗,所以伊登一直很小心地保管着。
有一天,奥丁、海尼尔和洛基照例到地上来散步。走了许多时候,到了一个渺无人际的荒凉之地,三位神饿极了,看见有一群牛,就杀了一头来烧,但火难旺,牛肉不熟。他们就知道是有人在施魔法。旁边的树上有一只大鹰,这时就对他们说,魔法是它使的,但只要分些熟牛肉给它,它便可解除这魔法。三位神答应了,于是牛肉烂熟,鹰要取走四分之三。洛基此时正拿了大块肉在那里吃,觉得鹰的要求太多,就和它争论,竟忘记这是一只会魔法的鹰。
于是不高兴的事情来了。洛基的手连在牛肉上不能脱,而肉又连到了鹰的背上。鹰冲霄高举,把洛基带上空中去了。结果,洛基又答应了一个苛刻而丢脸的条件,才重新自由。原来这鹰是暴风巨人[[夏基(Thiazi)|夏基 Thiazi]]变化的,他对洛基提出的条件是要骗取''伊登''和她那些青春之苹果。
回到[[阿瑟加德|亚萨神国阿斯加特 Asgard]]之后,洛基知道[[布拉基|𓏢诗词之神布拉基 Bragi]]又出外“吟游”了,只有伊登一人在家,就去谎骗伊登说他看见某处有些苹果简直和伊登的青春之苹果一模一样。伊登不信,带了自己的苹果去作比较,可是刚出阿瑟加德,化为大鹰的夏基就把伊登抓起,直带到北方寒冷不毛的暴风喧嚣之国,索列姆海姆(Thrymheim)。
伊登虽身在拘囚中,可还是没有将青春之苹果给夏基。她天天盼望有人来救她,可是渺无音信。阿瑟加德的诸神以为伊登和丈夫一同外出了,都没注意。直到上次吃的青春之苹果的效力渐渐消褪,诸神又感到了衰老的威胁,这才想起了伊登已经不见很久。奥丁知道是洛基捣鬼,所有的神都攒住洛基盘问;除了再发誓把伊登找回来,洛基也不能保住性命。他披上鹰之羽衣直飞到索列姆海姆,恰好夏基出外捕鱼去了,洛基乃将伊登变成一个核果(或说一只燕子),抓在爪里,就飞回阿瑟加德。夏基变成鹰去追,然而诸神却焚起火来,将他烧死。
这样,伊登和她那青春的苹果就失而复得了。这段故事所比喻的意义是很明显的:伊登,春天与荣茂之象征,当青春之鸟(布拉基)不在的时候,就被秋天(暴风巨人)以武力劫夺了去,而她的回来,也只有和南风(洛基)同时。那青春之苹果就是象征着发育繁茂的春之元气。
可是在每一年中,春都必得失去一次,这现象,在现存的北欧神话中却没有完备的说明。据一些零星断烂的诗歌,则谓伊登是在生命之树的树枝上坐着,一时晕眩,掉到了[[尼弗尔海姆|雾之国尼弗尔海姆 Niflheim]]的深处,不能上来。奥丁遂命布拉基、海姆达尔,以及别的神,带了白狼的皮,帮助伊登从寒冷的尼弗尔海姆深处上来,可是伊登不肯动。她让神们把白狼皮裹在她身上,但还是不动;布拉基猜想伊登是得了病,就请别的神回去,他愿意独自在寒冷的地底陪着他的爱妻。在这一段时间内,布拉基无心弹琴,地上也再不复能听见他那快乐的歌声。
普珥节(希伯来语:,Pûrîm,又名普林节,意为''抽签''),为纪念和庆祝古代流落波斯帝国的犹太人从灭种的毁灭中幸存的节日。
普珥节庆祝于犹太[[历亚达月|希伯来历和格里历对应 Hebrew calendar Vs Gregorian calendar]]的''第十四日、十五日''。在古代约书亚时期有城墙保护下被隔离起来的以色列城市,比如书珊城和耶路撒冷,犹太人们在第十五日庆祝这个节日,其他犹太人则是在十四日庆祝普珥节。和所有的犹太节日一样,普珥节是在前一个世俗日(即非教派日)的黄昏开始庆祝的。
!! 由来
关于普珥节的由来,最主要的记录是在《塔纳赫》的《[[以斯帖记/艾斯德尔传 Book of Esther c.475 BC]]》中。
''亚哈随鲁''在书珊城登基为王,统管''印度''到古实共一百二十七省。故事开始于亚哈随鲁王为他的臣子百姓摆设筵席。王命令他的妻子''瓦实提''前来酒席展示她的美丽,可是''瓦实提''拒绝前往,于是王废除了她的皇后之位。
在新皇后的选拔中,亚哈随鲁看中了犹太人末底改的养女''以斯帖'',将其立为为皇后。以斯帖遵照''养父末底改''嘱咐,并未将自己的犹太人身份告诉他人。
后来大臣''哈曼''被王提升,末底改因不向哈曼跪拜而得罪了他。哈曼妄图借机杀死王国内所有的犹太人。哈曼取得亚哈随鲁王的旨意,通过掣普珥(抽签)选定了十二月,即[[亚达月|希伯来历和格里历对应 Hebrew calendar Vs Gregorian calendar]],进行屠杀。
末底改向以斯帖求助解救本族人。以斯帖宴请王和哈曼参加她举办的酒席,并在第二次酒席上向王告发了哈曼灭绝犹太人的企图。
<a href="https://www.wikiwand.com/en/Esther#Media/File:Esther_Denouncing_Haman.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/0/03/Esther_Denouncing_Haman.jpg/1920px-Esther_Denouncing_Haman.jpg"
caption:"Esther Denouncing Haman (1888) by Ernest Normand"
width:"auto"
align:"center"
>>
</a>
王命人把哈曼挂在原本哈曼为末底改准备的五丈高木架上绞死。虽然之前发出谕旨无法取消,但亚哈随鲁王允许末底改写谕旨,准许犹太人在亚达月十三日聚集保护自己的性命,杀死并摧毁任何想要攻击犹太人的敌人和他们的妻子儿女。
十二月三日那日,犹太人在亚哈随鲁王各省聚集,攻击他们的仇敌。书珊城的犹太人十三、十四日杀敌,十五日安息,举办筵席欢庆胜利;其余各省的犹太人十三日杀敌,十四日举办筵席。末底改记录道,每年阿达尔月十四、十五日为犹太人脱离仇敌、转忧为喜的日子,犹太人在这两天举办酒席欢庆胜利。根据掣签的名字“''普珥''”,犹太人称这两日为普珥日。
!! 习俗
普珥节对于国民的意义已经超过了其宗教意义,他作为节假日的地位也不及那些被摩西五经规定的神圣的日子。在普珥节,商业交易甚至体力劳动依然可以照常进行。普珥节的早、午晚祷告以及餐后祷告(Birkat Hamazon)中都要加入一段特殊的祷告词“致奇迹”(“Al ha-Nissim”)。 普珥节仪式的四个主要组成部分包括:
# 在普珥节前夜以及普珥节当天早晨前往犹太教会堂,听取《以斯帖记》的''公开朗诵''
# 向朋友''赠送食物礼品''
# ''施舍穷人''
# ''享用节日大餐''
<<<
话说当初 ,神和人最终分离在
墨科涅 ,为了蒙蔽宙斯的心智,
普罗米修斯殷勤地分配一头大牛。
一堆是牛肉和丰肥的内脏,他却
裹在牛皮中,外面用牛肚藏好;
另一堆是白骨,他出于诡诈的计谋
整齐堆起,,用光亮的脂肪藏好。
这时,神和人的父对他这样说:
“伊阿佩托斯之子,最高贵的神明,
老朋友,你分配得多么偏心啊!”
宙斯这般戏责,他的计划从不落空。
这时,狡猾多谋的普罗米修斯回答,
他一边轻笑,心里想着那狡猾的计谋:
“至上的宙斯,永生神里最伟大者,
请遵照你心里的意愿,挑选一份吧。”
他心怀诡计这样说,但宙斯计划从不落空,
面对骗术心下洞然。他心里考虑着
有死的人类的不幸,,很快就会付诸实现。
于是,他用双手拿起那堆白色的脂肪,
不由得气上心头,怒火中烧,
当他看见牛的白骨,那诡诈的计谋。
从那以后,生活在大地上的人类
在馨香的圣坛上为永生者焚烧白骨。
呼风唤雨的宙斯心中不快这样说:
“伊阿佩托斯之子啊,你谋略超群,
老朋友,你至今还是没忘那诡计!”
他这样激动说罢,宙斯计划从不落空。
从此,他时时把愤怒记在心里,
不再把不熄的火种丢向梣木,
给生活在大地上的有死凡人使用。
但伊阿佩托斯的英勇儿子蒙骗他,
盗走那不熄的火种—火光远远可见,
藏在一根空阿魏杆里。在天上打雷的
宙斯心里似被虫咬,愤怒无比,
当他看见人间的火—火光远远可见。
<<<神谱
|!父母 |[[🌊海神蓬托斯 Pontus/Pontos]] and [[多里斯 Doris]] |
|!配偶 |[[🪔普罗米修斯 Prometheus]] |
|!标志 ||
|!对应罗马神 ||
赫西俄德在《 列女传》 中继续讲道 , 普罗诺厄和普罗米修斯生下[[丢卡利翁 |丢卡利翁 Deucalion]]( 残篇 4 ) 。
! 海神
''Proteus'' (''/ˈproʊtiəs, -tjuːs/''; Ancient Greek: Πρωτεύς, Prōteus)
或河神或(荷马所说的)"海之老人"
|!父母 |[[🔱海神波塞冬 Poseidon]] and [[Phoenice|Phoenice]](腓尼基王[[菲尼克斯|Phoenix]]的女儿)|
[img[https://upload.wikimedia.org/wikipedia/commons/1/1a/Proteus-Alciato.gif]]
//Illustration of Proteus by Andrea Alciato from The Book of Emblems (1531)//
|!父母 |[[老者涅柔斯 Nereus]] and [[多里斯 Doris]] |
|!配偶 |[[埃阿科斯 Aeacus]] |
|!标志 ||
|!对应罗马神 ||
有两个关于 Psamathe 的神话。第一个是她被[[埃阿科斯|埃阿科斯 Aeacus]]侵犯的故事。在他的逼迫下,她将自己变成了一只''海豹'',试图逃跑。然而没有成功,他们的结合诞生了[[🦭福库斯 Phocus]],他的名字(意思是“海豹”)让人想起他母亲的变身。
[[佩琉斯(Peleus)|佩琉斯 Peleus]]和[[忒拉蒙(Telamon)|忒拉蒙 Telamon]]是埃阿科斯(Aeacus)与妻子恩代斯(Endeis)所生的儿子。他们两人杀死了同父异母的兄弟''福库斯'',随后他们被父亲流放到埃伊纳岛。
第二个故事以普萨玛忒为主角,她为了给儿子的死报仇,派出了一只狼去攻击[[珀琉斯|佩琉斯 Peleus]]的牛群。狼吃掉了珀琉斯的一部分牛群后,普萨玛忒本人或她的妹妹[[忒提斯|忒提斯 Thetis]]将其变成了石头。
<<<
在海中长者涅柔斯的女儿们中,
最神圣的普萨玛忒生下福科斯,
金色的阿佛洛狄特使埃阿科斯爱抚她。
<<<神谱
阿巴斯Abas的双胞胎儿子之一/阿尔戈斯和提林斯(Tiryns)的国王
! 财富之神
他可能是''德墨忒耳和伊阿辛''的儿子,;要么是''哈迪斯和珀尔塞福涅''的孩子,或者是''财富女神泰切 Tyche''的儿子。
在古典时期后期的哲学神话中,''普鲁托斯被阿里斯托芬设想为被宙斯弄瞎了眼睛,这样他就能毫无偏见地分配他的礼物'';他也是个瘸子,因为他需要慢慢来,而且有翅膀,所以他离开的速度比他来的时候快。在阿里斯托芬的喜剧中,当神的视力恢复后,他就能决定谁应该得到财富,制造混乱了。
在希腊陶瓷上绘制的埃利乌西尼亚形象中,无论他是被描绘成儿童还是年轻的埃菲伯 ephebe ,普鲁托斯都可以被确定为那个拿着丰饶的聚宝盆的人。在后来的寓言浮雕中,普鲁托斯被描绘成一个在埃雷尼 Eirene 怀里的男孩,因为繁荣是 "和平 "的礼物,或者在泰切 Tyche 的怀里,是城市的财富。
''智天使''(希伯来语:כרוב kərūv,拉丁语:Cherub;音译新教作''基路伯''、天主教音译作革鲁宾、天主教意译作普智天使,东正教音译作赫儒文;东正教意译作智鉴天使;复数:希伯来语:כרובים;Cherubim;音译基路冰)是超自然的生命体,屡次在旧约和新约·启示录提及。旧约将之描述有翅膀、服从上帝的天使。
根据天主教神学传统,智天使与炽天使(六翼天使)同在最高的天使等级。在普遍的基督教传统中,“基路伯”与“天使”这两个名词已被当作同义了。
1696年诞生的画家乔凡尼·巴蒂斯塔·提埃坡罗,在他的画作中,时常画有孩童的头部加上翅膀的小天使,这些有着孩子脸却没身体的天使,在中世纪后被指为基路伯天童的形貌。
!! 智天使在基督教的形象
圣经里描述的“天使”这个概念,很难用视觉图像表现出来,并且组合多种生物也不符合希腊罗马式的传统(对比外来古文化中的''鹰身女妖''、百头怪物[[提风|🌪️提丰 Typhon]]、半人马兽和狮鹫怪''格里芬''等)。一些艺术史学家认为,基督徒借用了拥有一对可爱翅膀的黎明女神[[奥罗拉(又叫厄俄斯)|黎明女神厄俄斯 Eos]]的形象,来表现天使。
在东方基督教里,对智天使最多的描述是“''有很多眼睛''”。他们经常被画成一个一张在六扇翅膀中间凝望着的脸,有时候看上去跟六翼天使没什么区别。他们的翅膀经常画有很多眼睛。
在西方基督教艺术里,智天使最常见的样子是''婴儿''(像意大利的丘比特),在无数的教堂壁画,及如拉斐尔等文艺复兴时代画家的作品中都可以见到。即使是在只画有脑袋和翅膀的地方,他们的脑袋也是婴儿的模样,而且''只画出一对翅膀''。
!! 伊斯兰教的智天使
智天使(基路伯)一词可能可以追溯到巴比伦人的karabu,即阿卡德语词汇kuribu,意思是“吉祥的”或者是“有福的”,也就是作为神的顾问或者媒介的那些精灵的名字(De Vaux, 1961),也有人将智天使和亚述人的牛身人面有翼神兽kirabu联系起来。一些学者认为希腊神话中的狮鹫(希腊语gryphos)就是从智天使这个词演化而来的,希腊神话中的[[斯芬克斯|🦁斯芬克斯 Sphinx]]则反映了智天使作为坐骑或者兽性一面的形象,特别是在''指代堕落的智天使''的时候。
共5卷。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
密米尔(Mímir)(或弥米尔)是北欧神话中的''智慧巨人'',亦是北欧的始祖神祇之一,由巨人之祖[[霜巨人伊密尔 Ymir]]所生。密米尔是[[智慧之泉|⛲密米尔之泉(智慧之泉) Mímisbrunnr]]泉水的主人,象征著知识与智慧。祂与奥丁曾有多次的邂逅。
* [[两个神族的战争]]
!! Offspring
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
the ''oldest'' son of King [[David|👑大卫王 David]] and his second wife, [[Ahinoam|亚希暖 Ahinoam of Jezreel]] of Jezreel. He was born in Hebron during his father's reign in Judah.
He was the heir apparent to the throne of Israel until he was assassinated by his half-brother [[Absalom|押沙龙 Absalom]] to avenge the rape of Absalom's sister [[Tamar|塔玛 Tamar]].
!! 相关事件
[[大卫的连场家变]]
耶路巴力的儿子[[亚比米勒|亚比米勒 Abimelech]]到示剑找他的舅舅们,对他们和他外祖父全家说:“请你们问问示剑的所有首领:‘是耶路巴力的70个儿子都统治你们好呢?还是一个人统治你们好呢?别忘了,我们是自己人。’”
他的舅舅们把这些话转告示剑的所有首领,他们就被说服了,决定跟从亚比米勒。他们说:“他的确是我们的弟兄。”他们从巴力比利神殿里拿了70块银子给亚比米勒,他就雇了一帮游手好闲、横行霸道的人跟随他。他去了父亲在俄弗拉的家,杀了自己的兄弟。在一块石头上,他把[[耶路巴力|基甸 Gideon]]这70个儿子都杀了,只有小儿子''约坦 Jotham'' 躲了起来,才幸免于难。
示剑的所有首领和伯米罗的所有人都聚集起来,在示剑的柱子旁,在大树附近立''亚比米勒''为君王。
士师[[约坦|约坦 Jotham (son of Gideon)]]说:“有一次众树木要膏立一树为王来管理他们,推选出''橄榄树'',它却说,‘我岂能停止贡献好油,自居于众树之上呢?’再选出无''花果树'',它也说,‘我岂能停止贡献鲜果,自居于众树之上呢?’又选出''葡萄树'',它说,‘我岂能停止贡献新酒,自居于众树之上呢?’最后选出''荆棘'',它说,‘我若为王,你们都要投在我的荫下,否则火就从荆棘里出来,吞灭黎巴嫩山的雪松。”
约坦发出诅咒:“今天,你们对待耶路巴力和他一家,如果是真心实意、动机纯正的,就要因为''亚比米勒''而高兴,愿他也因为你们而高兴。要不然,愿''亚比米勒''发出火来,''吞灭示剑的首领和伯米罗的人'';愿示剑的首领和伯米罗的人也发出火来,''吞灭亚比米勒''。”
之后,''约坦''因为害怕他的兄弟''亚比米勒'',就逃到比珥,住在那里。
亚比米勒管理以色列三年,士剑人又渐渐对他不满,常埋伏在他经过的地方,随时准备抢掠。示剑人都转去信任 ''迦阿勒 Gaal''(son of Ebed),他们摘葡萄做酒,摆下筵宴边吃喝边咒诅王。示剑的首领''西布勒''告诉''亚比米勒'',''迦阿勒''煽动他们造反,应该今夜就在田间理伏。
''亚比米勒''把士兵分成四队埋伏在那里,打算镇压不服从的士剑人。迦阿勒刚走出城门口就看到伏兵,对''西布勒''说:“有人从山顶上下来了。”西布勒说那是山的影子。迦阿勒又说:“又有人从橡树路上来了。”西布勒就激他:“你平日不是常夸口说,凭什么我们要服侍''亚比米勒''呢。现在你藐视的人就在眼前,难道害怕和他交战?”
迦阿勒就率领士剑人冲过去。但亚比米勒杀死背叛的士剑人,攻占士剑楼后用火焚毁,正攻城时有个妇女把一块磨石扔在他头上,敲碎了他脑骨。他急忙叫替他拿武器的侍卫来,对他说:“''拔剑杀了我吧!免得别人说:‘他死在一个女人手里。''’”于是他的侍卫刺透他,他就死了。
以色列人见亚比米勒死去,又回到从前的混乱。上帝让亚比米勒受到了应有的惩罚,因为他对父亲做了恶事,杀了自己的70个兄弟。上帝也因为示剑人做的一切恶事,让他们受到惩罚。之前耶路巴力的儿子''约坦的诅咒'',现在都应验在他们身上了。
|!父母 |[[🤬不和女神厄里斯 Eris]] |
|!标志 ||
|!对应罗马神 ||
!! Female personifications of manslaughter
In Greek mythology, the Androctasiae or Androktasiai (Ancient Greek: Ἀνδροκτασίαι; singular: Androktasia) were the'' female personifications of manslaughter''.
约书亚死后,他们族人的后代不认识耶和华,也不知道以色列人之前做过什么,以色列人做耶和华眼中邪恶的事,敬奉''巴力神'',离弃了他们祖先的上帝耶和华,因此触怒上帝,上帝不在保护以色列人,以致他们被周围的敌人打击得很惨。
上帝派''士师 ( judges ) ''来拯救以色列人,士师在世时,以色列人得到庇护,当士师去世,他们又转向其他的神。
耶和华就把他们又交给外邦的仇敌,直到士师兴起,才有新的领袖拯救他们脱离侵略者之手。
第一个士师是[[俄陀聂 Othniel|俄陀聂 Othniel]],耶和华的灵降在他身上,他就打了胜仗,把外国人赶走,国中便享了四十年的太平。
''Othniel''死后,以色列人又开始做恶,耶和华就让''摩押王''伊矶伦打败以色列人,以色列人被迫服侍他十八年。以色列人向耶和华求救,耶和华派便雅悯部族格拉的儿子''[[以户|以户 Ehud]]''(一个左撇子)去拯救他们。
他暗中打了一把两刃的剑,长一肘(约38cm),藏在右腿内侧的衣服里面。趁代表以色列人给伊矶伦送完礼物,他就将跟着来的人都打发干净,自己暗中从小路走近摩押王说:“我有一个机密事情要禀报您。”王就让身边人回避。以户就来到王面前说:“神让我报告您一件事。”那伊矶伦是个极其肥胖的人,就慢腾腾从座位上站起来。以笏就伸左手,从右腿拔剑,刺入王的肚腹。剑被肥肉夹住,又穿透了王的后身。他来不及拔出就逃出游廊,把楼道门用锁关紧了。臣仆见门紧锁,就说:“王肯定是在楼上大解。”许久之后,才发现王已死。摩押人士气大落,败给以色列人。于是这地方安享太平80年。
以户之后,安纳特的儿子[[珊迦|Shamgar]]也拯救了以色列人。他曾经用一根赶牛的刺棒杀了600个非利士人。
<<<
他立刻造给人类一个不幸以替代火种。
显赫的跛足神用土塑出一个
含羞少女的模样:克洛诺斯之子的意愿如此。
明眸女神雅典娜为她系上轻带
和白袍,用一条刺绣精美的面纱
亲手从头往下罩住她:看上去神妙无比!
[帕拉斯•雅典娜为她戴上
用草地鲜花编成的迷人花冠。]
她还把一条金发带戴在她头上,
那是显赫的跛足神的亲手杰作,
他巧手做出,以取悦父神宙斯。
那上头有缤纷彩饰:看上去神妙无比!
陆地和海洋的许多生物全镂在上头,
成千上万——笼罩在一片神光之中:
宛如奇迹,像活的一般,还能说话。
宙斯造了这美妙的不幸,以替代好处。
他带她去神和人所在的地方,
伟大父神的明眸女儿把她打扮得很是神气。
不死的神和有死的人无不惊叹
这专为人类而设的玄妙的圈套。
从她产生了女性的女人种族,
从她产生了害人的妇人族群。
女人如祸水,和男人一起过日子,
熬不住可恨的贫穷,只肯享富贵。
这就好比在蜜蜂的巢房里,工蜂
供养那些个处处打坏心眼的雄蜂。
它们整天忙碌,直到太阳下山,
日日勤勉不休,贮造白色蜂房。
那帮家伙却成日躲在蜂巢深处,
拿别人的劳动成果塞饱自己肚皮。
对男人来说,女人正是这样的祸害,
在天上打雷的宙斯造出她们,处处惹
麻烦。他又一次传播不幸以替代好处,
若有谁逃避婚姻和女人带来的麻烦,
一辈子不成家,直到要命的晚年,
孤独无依。他若活着不愁吃穿,
死后必要遭远亲瓜分财产。
话说回来,若有谁进入婚姻生活,
又碰巧遇见称心如意的贤妻,
那么终其一生,他的幸与不幸
混杂不休;若碰上胡搅的家眷,
那么苦难要一世伴随他胸中的
气血五脏,这般不幸无从弥补。
宙斯的意志难以蒙骗,也无法逃避,
连伊阿佩托斯之子好助人的普罗米修斯
也逃脱不了他的愤怒,反倒是被制伏,
困在沉重的锁链里 , 足智多谋也无用。
<<<神谱
最初就有“话语”(这里的“话语”是个头衔,指耶稣在降世之前、在地上期间和回到天上之后都担任上帝的主要发言人。),“话语”跟上帝同在,“话语”是个神。在最初,他就跟上帝同在。一切都是通过他而有的,没有一样不是靠他而有的。
生命是通过他而有的,这生命就是人的光。这光正在黑暗里照耀,黑暗却没有胜过光。
照亮各种人的真光,当时快要来到世人当中了。 世人是通过他而有的,他在世上的时候,世人却不认识他。 他来到自己的家,自己的人竟不接纳他。 可是,凡是接纳他的,因为信从他的名,他都让他们有权成为上帝的儿女。 ''他们是从上帝而生的'',不是从人而生的,不是因为父母的意思而生的,也不是因为任何人的意思而生的。
法典是通过摩西赐下的,分外恩典和真理却通过''耶稣基督''而来。从来没有人看见过上帝,只有在天父身边独生的神,才清楚说明了他是怎样的。
[[施浸者约翰|🗣️施洗约翰 John the Baptist]]承认自己不是基督,但说在他之后会有一位快要来,他就是给这位解鞋带也不配。翌日,耶稣来到约翰那里,后者随即承认他就是“上帝的羔羊,除去世人罪孽的”。
接着,约翰把自己的两个门徒介绍给耶稣,其中之一是[[安得烈|✝️安得烈 Saint Andrew]];他把自己的兄弟[[(西门)彼得|✝️彼得 Saint Peter]]也带到耶稣那里。[[✝️腓力 Saint Philip]]和''拿但业''也接受耶稣是“上帝的儿子,……是以色列的王”。(John 1:49)
<<<
他说罢,赐福的神们称许
这些话,他们的心渴望作战,
比先前更强烈,他们发起可怕战争,
所有的男神和女神,就在那一天,
提坦神们和克洛诺斯的孩子们,
还有宙斯从虚冥送到阳光里的三神。
他们强大可怕,气力无与伦比。
他们肩上吊着一百只手臂,
全都一样,还有五十个脑袋
分别长在身躯粗壮的肩膀上。
他们深入战场,与提坦苦战,
用粗壮有力的手扔投巨石。
提坦们在对面也加强战线,
双方使出浑身解数全力以赴。
一时里,无边的海浪鸣声回荡,
大地轰然长响,连广天也动撼
呻吟。高耸的奥林波斯山底
在永生者们重击之下颤动。强烈的振鸣
从他们脚下传到幽暗的塔耳塔罗斯,
还有厮杀混战声,重箭呼啸声。
双方互掷武器,引起鸣咽不绝。
两军呐喊,呼声直冲上星天。
短兵相接,厮杀与喧嚷不尽。
这时,宙斯不再抑制内心的激情,
顿时胸中充满豪气,便要使出
浑身解数。他同时从天空和奥林波斯山
一路接连不断地扔出闪电。串串霹雳
直中目标,伴随电光雷声从他矫健的手中
频频飞出,引着火焰处处盘旋,
浓烈无比——周遭孕育生命的大地轰然长响,
燃烧不尽,无边的森林也在火中大声怒哮。
整个大地一片沸腾,还有大洋的流波
和荒芜的深海。至于别的⋯⋯灼热的蒸汽困住
地下的提坦;大火蹿升至神圣的云天,
他们再强壮,还是被刺瞎了双眼,
鸣雷闪电的光亮实在太强烈。
漫漫灼热席卷了整个浑沌世界。
举目看那火光,侧耳听那声响,
仿佛大地和高高的广天撞在一起:
大地若崩溃于天空下,或天空
坍塌在大地上,声响也不过如此。
神们鏖战也发出一样大的声响。
大风同时震摇地面,搅乱尘烟,
还有响雷、闪电和燃烧的霹雳,
伟大宙斯的箭矢。大风传送厮杀与喧嚷,
在两军之间的阵地,可怕的轰隆声
响彻这场殊死之战,双方力以尽竭。
这时战局渐显端倪。在此之前
双方不停地相互攻击,激战连绵。
然而,三神在最前线重新发起猛攻,
科托斯、布里阿瑞俄斯和好战的古厄斯,
他们强壮的大手抓着三百块巨石,
接二连三扔出去,铺天盖地困住
提坦,在道路通阔的大地之下
因禁他们,捆绑在无情的锁链里。
提坦们再胆气十足,终不敌这些神手——
<<<神谱
有七个金碗交给七位天使,碗里盛满了永永远远活着的上帝的愤怒。
我听见至圣所里有个洪亮的声音对七个天使说:“你们去把上帝的七碗愤怒倒在地上。”
* 第一个天使就去,把他碗里的愤怒倒在''地上''。有野兽的记号并崇拜兽像的人,皮肉就溃烂得非常严重。
* 第二个天使把他碗里的愤怒倒在''海里'',海就变成血,好像被杀的人流出的血,海里的生物全都死了。
* 第三个天使把他碗里的愤怒倒在''河流和水泉''里,水就变成了血。
* 第四个天使把他碗里的愤怒倒在''太阳上'',太阳就获准用火灼伤人。9 人们被火的热力灼伤后,并没有悔改,也没有把荣耀归于上帝,还亵渎有权控制这些灾祸的上帝的名。
* 第五个天使把他碗里的愤怒倒在''野兽的宝座''上,野兽的王国就变得黑暗。人们因为痛苦不堪而咬自己的舌头。他们又因为皮肉溃烂,痛苦不堪,就亵渎天上的上帝,还继续作恶,没有悔改。
* 第六个天使把他碗里的愤怒倒在''幼发拉底大河''上,河水就干了,要为从日出之处来的君王们准备道路。
* 第七个天使把他碗里的愤怒倒在空气中,就立刻有洪亮的声音从至圣所的宝座发出,说:“完成了!”接着有闪电,有说话的声音,有''雷霆和大地震''。
** 自从地上有人以来,没有发生过这么严重的大地震。列国的城镇也纷纷倒塌。岛屿都消失了,山岳也都不见了。大冰雹从天而降,砸在人身上,每块重约20.4公斤。人们就因为这场非常严重的雹灾而亵渎上帝。
第二十四至二十七章描写末后的光景,虽然末后无可避免的患难即将来临,但是身处幽暗悲苦中的馀民,必得著''复兴的应许'',在基督的国度里,享受胜利的荣耀(25:6-8)。
!! 圣山上为万民设摆筵
预言在圣山上,神要为万民—基督徒—设摆很丰富的灵筵,使信徒饱尝属灵的美味陈酒。
!! 复活
审判之后信众会重生
第二个异象出现荣美的天上宝座,耶稣基督如同为全人类牺牲“被杀过的羔羊”,接受在宝座周围的24位长老和“四活物”崇拜。那羔羊拿着有七个印密封的书卷,也惟独他有资格拆开七印以开启书卷。羔羊揭开七印,和后来天使吹七支号、倒下盛满神烈怒的七个金碗,就代表末日大灾难的过程。
<<card
text:"
此后,我看见天上有一道敞开的门。我首先听见有个号筒般的声音对我说:“上这里来吧,我要把一定会发生的事告诉你。”接着,上帝的神圣力量马上在我身上发挥作用,我看见天上有一个宝座,有一位坐在宝座上。坐在宝座上的那位,好像碧玉和红宝石那样光彩夺目。宝座周围有一道彩虹,看起来仿佛绿柱玉。
<br><br>
这个宝座周围有个宝座,上面坐着24个长老,身穿白衣,头戴金冠。这个宝座发出闪电、雷霆和说话的声音。''宝座前点着七盏火灯'',这些灯象征上帝的七股神圣力量。宝座前面仿佛有玻璃海,像水晶一样。
<br><br>
宝座周围有四个活物,都跟宝座一起在中央,活物前后都布满眼睛。''第一个活物像狮子,第二个活物像公牛犊,第三个活物有人一样的脸,第四个活物像飞鹰''。这四个活物都各有六个翅膀,每个翅膀的上上下下都布满眼睛。他们日夜不停地说:“耶和华上帝,昔在、今在、将要来临的全能者,多么圣洁!多么圣洁!多么圣洁!”
<br><br>
我看见坐在宝座上的上帝,右手拿着一个书卷,书卷两面(里里外外)都写了字,用七个印紧紧封住。我也看见一个强壮的天使大声宣告说:“谁配展开书卷,配揭开书卷的印呢?”但无论在天上、地上,还是地底下,都没有谁能展开书卷,看到里面的内容。我不禁大哭起来,因为没有谁配展开书卷,看到里面的内容。但长老中有一个对我说:“不要再哭了。看!犹大部族的狮子,大卫的根已经战胜了,他可以展开书卷,揭开书卷的七个印。”
<br><br>
我看见在宝座旁边,在四个活物和长老们的中间,''有一只绵羊羔站着,像是被宰杀过的'',头上有''七只角和七只眼睛''。这些眼睛象征上帝发出的七股神圣力量,遍布整个大地。绵羊羔走上前去,从坐在宝座上的上帝的右手里,把书卷取过来。绵羊羔取了书卷,四个活物和个长老就跪在他面前,长老们各自拿着竖琴和盛满了香的金碗。香象征圣民的祷告。
"
footer:"Revelation 4:1"
>>
!! 橄榄山讲论
(Matthew 24:1)
耶稣说到,将来没有一块石头会完整无缺地留在建筑物([[第二圣殿|所罗门圣殿 Solomon's Temple]])中,整座建筑将会变成一堆废墟。
有门徒问“请告诉我们,什么时候有这些事呢?将来会有什么征象显示你已经回到我们这里,显示这个制度(时代)已经是末期了?”
耶稣首先警告他们,有些事情的发生,并不能够解释为他再临的征兆:
* 有人自称是基督(参见敌基督);
* 战争和战争的风声;
* 民要攻打民,国要攻打国
* 地震
* 饥荒
* 瘟疫
* 可怕的事件
耶稣说一段患难过后,“紧接着''太阳就会变黑,月亮也不放光,星辰从天上坠落,天上的力量也会动摇。到时,人子的神迹会在天上出现'',于是地上所有民族都悲痛捶胸,他们会看见人子在天云上带着力量和大荣耀来到。他会派他的天使用响亮的号筒声把被选上的人,从四方,从天这边到天那边,都聚集起来。”
“至于那个日子、那个时刻,谁也不知道,天上的天使不知道,儿子也不知道,只有我的父亲知道。……所以,你们要不断守望,因为你们不知道你们的主在什么日子来到。……所以你们也要做好准备,因为人子会在你们认为不大可能的时刻来到。”
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
|!父母 |[[🤬不和女神厄里斯 Eris]] |
|!标志 ||
|!对应罗马神 ||
!! Personifications of murder
In Greek mythology, the Phonoi (Ancient Greek: Φόνοι; singular: Phonos Φόνος) were the "ghastly-faced" male personifications of murder.
洛基借了[[女战神弗蕾亚 Freyja]]的鹰之羽衣,化身为鹰,飞到[[巨人之国尤腾海姆 Jotunheim]]去找冒险的事。他停在巨人[[盖尔罗德(Geirrod)|盖尔罗德 Geirrod]]的房子上,被盖尔罗德捉住了。看见鹰的眼睛炯炯有光<<fnote "北欧神话中但凡英雄或神祗,其眼睛总是被描述成是炯炯发光的,这光芒甚至连盲人都看得见。">>,盖尔罗德断定这鹰一定是什么神的变化,便把鹰关在笼子里,整整三个月不给饮食。洛基饿极了,只好现出原形,又答应了把空手的[[托尔|⚒️雷神托尔 Thor]]骗到盖尔罗德家里,方得脱身。
洛基回去见了托尔,就编了一套谎话,说盖尔罗德如何好客,怂恿着托尔和他同去作一次友谊的拜访。托尔信以为真,竟把他的三件宝物——雷锤、铁手套和魔法腰带都留在家里,和洛基一起去了。半途中他们遇见女巨人[[格莉德 Grid]],——她是奥丁许多情妇中的一个,——格莉德知道洛基有诡计,就把自己的腰带、棍子和铁手套借给了托尔。
盖尔罗德早有准备。他先令他的两个女儿(格嘉普(Gjalp)和格蕾普(Greip))钻到托尔的椅子底下,想把托尔弄死,但两个不中用的女巨人反倒被托尔压死了。
盖尔罗德于是请托尔进里屋,那里有预先烧红的一块大橛形铁,盖尔罗德拿了就对托尔掷过去。可是托尔眼明手快,早已把格莉德借的铁手套戴在手上,接过了烧红的铁,回手掷向盖尔罗德,穿透那巨人的身体,又连房子都打穿了。盖尔罗德的尸身化为石头,直立在那里,像一座石碑,永远纪念着托尔的神力。
----
<<showfnotes>>
''权天使''(希腊语转写:Archai,拉丁语:Principatūs,英语:Principalities)见于哥罗森书一章16节及厄弗所书一章21节,''天主教''译作''率领者'',''基督新教''译作''执政的'',''东正教''译作''宰制天''使,第三级第一等天使,其工作为''掌管保卫国家,并决定人世间的统治者,政治、军事、经济等都是其自掌管的范围'',在《失乐园》中有叙述到权天使直接领导天使军团和恶魔军团作战。
''主天使(Dominions)''也有被译作''权天使''的情况。
希伯来语名字 Jerahmeel(希伯来语:חרַחְמְאֵל Yəraḥməʾēl,泰伯利亚语:Yăraḥmē̆ʾēl,“上帝应怜悯”),在《塔纳赫》中多次出现(参见文章 Jerahmeel),也以各种形式作为大天使的名字出现在《圣经》书籍中。新约间时期和早期基督教时期。
|!父母 |[[🔱海神波塞冬 Poseidon]] and [[Eurynome]]|
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
<a href="https://www.wikiwand.com/en/Bellerophon">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/British_Airborne_Units.svg/340px-British_Airborne_Units.svg.png"
caption:"The emblem of the World War II British Airborne Forces – Bellerophon riding the flying horse Pegasus."
width:"400px"
align:"right"
tooltip:"">>
</a>
得到神的帮助捕获了[[🐴飞马珀伽索斯 Pegasus]],並且打倒[[🐐奇美拉 Chimera]]。
<<tabs "[tag[标志 Symbol]]" "希腊/罗马——Symbol">>
[[火巨人苏尔特 Surtr]]的儿子,[[☀️苏尔 Sol]]的丈夫
[[尼伯龙格 Nibelung]]的王后,[[尼伯龙格国王吉乌基 Giuke]]的妻子,会魔法,且能调配魔法药水,其中一种可以令饮者尽忘前事而服从她的意志。
!! Offspring
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
Gríðr(vehemence, violence, or impetuosity),她是一名和诸神友好的霜巨人,她是[[⚡众神之父奥丁(神圣) Odin]]的情人之一,也是维达(Vidar)的母亲。
另外,在《散文埃达》的诗语法篇中,[[⚒️雷神托尔 Thor]]在洛基的计谋下没带“雷神之锤”,也没带著“力量腰带”和“铁手套”就前往巨人国度挑战,途中经过女巨人格莉德的住处时,格莉德将自己的不断之杖、绑腿、铁手套借给了索尔。
<a href="https://www.wikiwand.com/en/Gunnl%C3%B6%C3%B0#Media/File:Anders_Zorn_-_Gunnl%C3%B6d_1886.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/f/f2/Anders_Zorn_-_Gunnl%C3%B6d_1886.jpg/440px-Anders_Zorn_-_Gunnl%C3%B6d_1886.jpg"
caption:"Gunnlöð by ''Anders Zorn'' (1886)."
width:"400px"
align:"right"
tooltip:"">>
</a>
格萝德,(Gunnlod、Gunnlöð)。在北欧神话中的女巨人,是[[苏图恩(Suttung)|苏图恩 Suttungr]]的女儿,在父亲的要求下,在一洞穴内负责看守著诗的[[🍯智慧体克瓦希尔 Kvasir]]。
智者''克瓦希尔(Kvasir)''是阿萨神族(Aesir)和华纳神族(Vanir)共同用口水创造的,但后来被杀害,身上的血还被做成蜜酒,''据说只要尝上一口,就能获得诗人的智慧''。这酒被收藏在欧瑞尔(Odrorir)容器内,最后落入苏图恩手上,苏图恩将酒藏在洞穴里,并让女儿格萝德负责看守。
[[奥丁|⚡众神之父奥丁(神圣) Odin]]听到蜜酒的消息后,决意夺走它。经过几次的计谋,奥丁探知了山洞的位置,然后变成一条''蛇''钻进洞中。在洞里,''情窦初开格萝德和奥丁共度三天三夜'',并答应让奥丁一夜换取一口酒,谁知奥丁三大口就把蜜酒喝光,再变成老鹰飞出洞外。格萝德因为和奥丁共度三日,之后生下诗歌之神[[布拉基(Bragi)|𓏢诗词之神布拉基 Bragi]]。
!! [[👩🏻🦳格赖埃 Graeae]]
[[福耳库斯 Phorcys]]和[[刻托 Ceto]]的后代则代表了大海的负面特点:''无形、无常、无序''。 他们是一些游离于永生和有死之间的怪物。
<div>
<$macrocall $name=toc-selective-expandable tag="刻托 Ceto"
sort='sort[title]'/>
</div>
<<<
[[刻托|刻托 Ceto]]为[[福耳库斯|福耳库斯 Phorcys]]生下一双娇颜的老妇人,
一出生就白发苍苍<<fnote "“一出生就白发苍苍”:[[波塞冬|🔱海神波塞冬 Poseidon]]之子[[🦢库克诺斯 Cycnus]]也是少年白发,他被[[阿喀琉斯|阿喀琉斯 Achilles]]杀死以后变成天鹅,Cycnus在希腊文中本来就是“天鹅”的意思(赫西俄德残篇237;Eust.,1968;奥维德,《变形记》,12,144)。埃斯库罗斯的《被缚的普罗米修斯》中称格赖埃姐妹为xwrvouoepo[样子像天鹅,795],很可能暗指库克诺斯。在《劳作与时日》中,[[黑铁时代|人类世纪 Ages of Man]]的人们也是一出生就白发苍苍(181)。狄奥多罗援引赫西俄德的说法来形容''凯尔特人''的孩子(5,32)。">>:她们被称为[[格赖埃|👩🏻🦳格赖埃 Graeae]],
在永生神和行走在大地上的人类之间:
美袍的彭菲瑞多和绯红纱衣的厄倪俄<<fnote "''彭非瑞多''”,“''厄倪俄''”:分别指“贪吃的黄蜂”和“战斗“。厄倪俄作为战斗女神,两次出现在《伊利亚特》卷五,一次是战神阿瑞斯的伴侣(333),另一次与雅典娜并列(592)。">>。
<<<神谱
---
<<showfnotes>>
first daughter of [[Ahinoam]] and [[👑扫罗 Saul]]
梅金吉奥德,在北欧神话中是[[⚒️雷神托尔 Thor]]所拥有的道具,也翻作“力量腰带”。这条腰带能使配戴者获得双倍的力量。
这个道具出现在《散文埃达》的欺骗古鲁菲中,但并没有描述来源,一般相信,这可能是作者史洛里自行杜撰之物,在其他北欧神话故事中,均没有提起索尔使用此道具的情节。
和这个腰带成套的神器还有一副“[[铁手套|铁手套雅恩格利佩尔 Iarngreiper]]”。
在《散文埃达》的诗语法篇中,索尔在洛基的计谋下没带“雷神之锤”,也没带著“力量腰带”和“铁手套”就前往巨人国度挑战,途中经过女巨人格莉德的住处时,格莉德将自己的不断之杖、绑腿、铁手套借给了索尔。格莉德的宝物和索尔的宝物功能几乎一模一样,因此有可能上述宝物在北欧诸神中是个可以普及化的道具。
(覆盖但以理书2:1-49)[[🤴尼布甲尼撒二世 Nebuchadnezzar II 642-562 BC]]在位第二年(很可能从耶路撒冷于公元前607年被摧毁时算起),他发了一个使他烦乱不安的梦。所有术士法师均无法把梦和梦的讲解告诉他。他应许给他们大赏,但他们却说除了诸神之外,没有人能够将王所求问的向他说明。王勃然大怒,遂下令把所有智士杀死。
由于王的谕旨也把四个希伯来人包括在内,[[🗣️但以理 Daniel(?-530 BC)]]便求王宽限时间以求能把梦讲解说明。但以理和他的同伴祷告求耶和华的指引。耶和华把梦和解释向但以理显明,他于是觐见王说:“只有一位在天上的上帝能显明奥秘的事。他已将日后必有的事指示尼布甲尼撒王。”(但以理书2:28)但以理把梦说出来。
梦与一尊巨像<<fnote "大像身上这四种物质被比喻成被神审判的国家,由于其价值是从上到下逐渐递减,象征了人的国度不断地堕落,终至灭亡。它们也对应着历史上相继而起的四国:(1)''巴比伦''喜欢以金装饰各物,例如它的神庙到处都镶镀了金;(2)银即是银钱,而''波斯''以经商赚钱驰名;(3)''希腊''军队以铜 来制造兵器;(4)''罗马''的器械为铁制。尼布甲尼撒(代表巴比伦)获得神赐他的大权;第二国波斯却不及他;第三国希腊拥有最大版图;第四国可能指罗马帝国分裂成东西罗马后更混乱的''现代''。大石表示神的永恒国度将粉碎人国度的罪恶。">>有关。''像的头是精金的,胸膛和膀臂是银的,肚腹和腰是铜的,腿是铁的,脚是半铁半泥的。有一块石头撞击巨像,把它砸碎,然后石头变成一座大山,覆盖了整个土地。''
但以理解释巴比伦王就是像的金头。在他的王国之后会有第二、第三、第四个王国相继兴起。最后,“天上的上帝必另立一国,永不败坏,……却要打碎灭绝那一切国,这国必存到永远。”(但以理书2:44)
<<card
text:"
陛下是万王之王,天上的上帝已经赐给你王国、大能、力量、荣耀。住在各处的人,以及地上的野兽、天上的飞鸟,他都交在你手里,让你统治这一切。你就是''金头''。
<br>在你之后会有另一个王国崛起,却比不上你。然后又有另一个王国,就是第三个,是''铜''的,将要统治全地。
<br>后来有第四个王国,像''铁''一样强。铁能打破、压碎一切。铁怎样粉碎东西,第四个王国也会怎样打破、粉碎这一切。
<br>正如你看见的脚和脚趾,一部分是陶匠的陶土,一部分是铁,那个''王国也会分裂'',却仍旧有几分像铁一样强硬,就像你看见铁和陶泥相混那样。脚趾一部分是铁,一部分是陶土,那个王国也是一部分强,一部分弱。正如你看见铁和陶泥相混,强的部分也会跟人民相混,却不能黏合,就像铁和陶土混而不合一样。
<br>那些君王在位的日子,天上的上帝要设立''一个永不灭亡的王国''。这个王国不会落在其他民族手里,反而会把那些王国全都打碎灭绝。只有这个王国会永远长存。你看见从山上有一块石头被凿出来,不是人手凿的,打碎了铁、铜、陶、银、金,就是这个意思。伟大的上帝已经把未来会发生的事告诉了陛下。这个梦是真实的,解释也是可靠的。
"
footer:"Daniel 2:37"
>>
巴比伦王满怀感激地称颂但以理的上帝是万神之神,并派但以理“管理巴比伦全省,又立他为总理,掌管巴比伦的一切哲士”。但以理的三个同伴则被立为朝中的大臣,治理国家。(但以理书2:47,48)
----
<<showfnotes>>
奥林匹亚之王
Thyestes 和他的兄弟 Atreus 被他们的父亲放逐,因为他们为了争夺奥林匹亚的王位而谋杀了他们同父异母的兄弟 Chrysippus。他们在迈锡尼避难,在与赫拉克利达科战斗的欧律斯透斯国王不在的情况下登上了王位。欧律斯透斯原本打算让他们的领主地位是暂时的。由于他在冲突中死亡,它成为永久性的。
梯林斯(古希腊语:Τίρυνς,拉丁转写:Tiryns)是希腊''迈锡尼文明''的一个重要遗址,位于今天的阿尔戈利斯州,距离爱琴海不远。
这座在''荷马史诗''极富盛名,但一度被认为只是传说虚构的城市,是由德国传奇的考古学家海因里希·施里曼在十九世纪时重新挖掘出来才得以重见天日。
在希腊神话传说中,梯林斯是[[赫拉克勒斯|💪大力神赫拉克勒斯 Heracles]]出发完成他著名的十二项伟绩的地方。
此处于新石器时代晚期开始有人居住,青铜时代逐渐繁荣,在青铜时代晚期修建了一座宫殿,是希腊大陆上保存最完好的遗迹之一。该城以城墙坚实著称,荷马因此给它以“''铜墙铁壁''”(mighty walled)的称号。
在迈锡尼文明晚期它逐渐衰落,公元前468年被阿尔戈斯所消灭。1999年它被选为世界遗产。
<$leafmap tile='positron'
places='{"point":"37.599444, 22.8"}' zoom=5>
[[🏞️森林之神维达 Vidar]]是[[奥丁|⚡众神之父奥丁(神圣) Odin]]和女巨人[[格莉德(Grid,物)|格莉德 Grid]]所生之子。格莉德住在旷野的洞穴中,传说中没有说明她属于何种巨人,但''维达''则是被视为不灭的''自然力之人格化'',或''原始森林之神''。
他又被称为“沉默之神”。在“诸神之黄昏”过后,维达又是继承为宰御新宇宙的神之一。他的宫殿在广阔无垠的原始森林中央,名为''兰德维蒂(Landvidi,广土)'';在这里的是永久的沉默与寂寞。
维达的样子,据说是高大、强壮、英俊的;他穿着铠甲,带一把阔背的刀,登一只铁或皮革做的靴子。有些传说中说维达的靴子是铁的,因为他的母亲知道他将永远与火斗争,所以特为他制了''铁靴子''而防火,正如她也曾借给[[托尔|⚒️雷神托尔 Thor]]铁手套一样。可是有些传说中则说他的靴子是皮革做的,而且是用北欧的靴匠们所丢弃的零碎革条拼凑而成的。北欧的靴匠常常多扔革条,说是献给维达做靴子。
当维达到了[[阿瑟加德|亚萨神国阿斯加特 Asgard]]的时候,诸神都很欢迎他,请他住在''瓦尔哈拉''。
奥丁带他到[[⛲乌尔达泉(命运之泉) Urdarbrunnr]]旁,向[[三位命运女神|🔮诺伦三女神(命运三女神) Norns]]问以未来的休咎。命运女神说:维达将在“诸神之黄昏”中存活下来,并且在战胜了他的一切敌人之后,将成为新宇宙中的一位神。奥丁和格莉德都很高兴,但是维达却不出一声,慢慢地回到了他自己的''兰德维蒂宫殿'',坐在那里,始终不作声,沉默得像一座古坟一般。
后来,在“诸神之黄昏”来到的时候,[[🐺魔狼芬里尔 Fenrir]]吞吃了奥丁,然后转而张口向维达;但维达一足抵住了芬里尔的下腭,又用两手撑住了它的上腭,恶斗之后,终于将芬里尔撕为两半。
传说中只提起维达的一足、一靴,所以维达大概是独脚;不过为什么独脚,则无从可考了。
(覆盖以西结书4:1-7:27)耶和华吩咐[[🗣️以西结 Ezekiel]]''将耶路撒冷城的图样刻画在一块砖上''。他必须模拟围城的情况,好作以色列家的标记。
"你要向左侧卧,承担''以色列国''的罪过。你向左边侧卧多少天,就担当他们的罪过多少天。根据他们犯过的年数,我要你这样做390天。你会担当以色列国的罪过,而且必须完成规定的天数。"
"然后,你还要向右侧卧,担当犹大国的罪过40天,一天算一年。一天算一年,这是我给你定的。"
侧卧期间只靠一些粗陋的食物维持生命,代表以色列人也会被惩罚吃粗陋的食物。
耶和华吩咐''以西结''把头发和胡须剃下,借此预表围城所导致的悲惨结局。他要将剃下来的须发三分之一用''火''焚烧,三分之一用''刀''砍碎,馀下的三分之一则''任风吹散''。因此,到围城的末了,耶路撒冷的部分居民必死于''饥荒、瘟疫和刀下'',其馀的则''分散四方''。耶和华要使这城全然荒凉。 因为她厚颜无耻地崇拜可憎的偶像。财富无法买得拯救。在耶和华发怒的日子,耶路撒冷的百姓要将银子抛在街上,这样,“他们就知道我是耶和华。”(以西结书7:27)
''橄榄山''(意为“Mount of the Summit”)是耶路撒冷老城东部的一座山,得名于满山的油橄榄树。
在山脚有客西马尼园和万国教堂,据说耶稣经常和门徒们在此聚会,耶稣最后也在此被罗马人抓捕,是老城外最著名的教堂之一。
《圣经》上许多重要事件发生在橄榄山。耶稣在人生的最后一周来到耶路撒冷,每天翻越橄榄山进入圣殿教导人,《圣经》记载了许多耶稣在橄榄山的事迹和言论。橄榄山在公元4世纪起就有许多修道院和教堂,许多基督徒来此朝圣。公元70年,罗马军队第十军团在橄榄山扎营,围攻耶路撒冷,摧毁了第二圣殿和耶路撒冷。
在《撒迦利亚书》中,说到橄榄山将是末日耶和华降临的地点。因此,犹太人总是希望埋葬在橄榄山,从圣经时代直到今天,橄榄山一直是耶路撒冷犹太人的墓地。山上估计有15万个墓穴,其中包括撒迦利亚(在此说预言的先知)、押沙龙、和从15世纪到20世纪的许多犹太教拉比。
从1948年第一次中东战争到1967年六日战争,橄榄山被约旦国占领,橄榄山犹太墓地受到严重破坏,约旦人用墓碑修筑道路和军用厕所,其中有不少墓碑已经有上千年的历史。六日战争后,以色列人尽最大努力修复犹太墓地。山顶上有一个阿拉伯人社区At-Tur。
!! 圣经中提及
!!! 旧约圣经
《圣经》中首次提到橄榄山,是押沙龙叛乱时,[[大卫王|👑大卫王 David]]从耶路撒冷逃出,蒙头赤脚上了橄榄山。在《旧约圣经》中另外只有一处提到橄榄山,就是在《撒迦利亚书》14章4节。不过,《列王纪上》11:7、《列王纪下》23:13、《尼希米记》8:15、《以西结书》11:23也都隐晦地提到了橄榄山。
!!! 新约圣经
《新约圣经》频繁地提到橄榄山:《马太福音》21:1、26:30等。在圣经时代,从耶路撒冷到伯大尼的道路经过该山,耶稣曾站在橄榄山上为耶路撒冷悲叹。
耶稣在橄榄山上度过了很多时间,教导他的门徒并且说预言,每天晚上回到橄榄山住宿,在他被出卖的那一夜也是如此。
!! 山峰
这座山(山脉)有4座山峰:
* 加利利峰,传说是天使对门徒说话的地方。
* 升天山,据说是耶稣升天的地方,但根据《路加福音》,耶稣升天的地点应该在伯大尼附近。
* 先知峰,旁有先知墓。
* 堕落山(Mount of Corruption),是因为所罗门接受他的外国妻子带来的偶像崇拜的高处(high places)。
橄榄山也是[[撒迦利亚|🗣️撒迦利亚 Zechariah]]和[[以西结|🗣️以西结 Ezekiel]]预言耶和华来临的地点。
《次经》包括史书、宗教诗文、道德小说和启示文学等,创作于公元前后三百年间,主要反映两约之间的''宗教、政治和社会情况'',以不少真实而深刻的历史帮助经历患难的犹太人坚守信仰。如《比》写忠于 律法的多比患了眼庆,上帝就派天使拉斐尔帮他治好 病:《滴》记美丽的犹太寡妇犹滴智勇杀敌的故事,激 发同胞的爱国斗志;《马》上、下卷以记马加比家族 的革命壮举劝犹太人要守节。
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
|!父母 |[[🌊海神蓬托斯 Pontus/Pontos]] and [[🌍大地女神盖亚 Gaea]] |
|!配偶 |[[克利俄斯 Crius]] |
|!标志 ||
|!对应罗马神 ||
In Greek mythology, Eurybia (/jʊəˈrɪbiə/; Ancient Greek: Εὐρυβία, Εὐρυβίη, meaning "''wide-force''"), described as "[having] a heart of flint within her", was the daughter of Pontus and Gaia, consort to the Titan Crius, and mother of Astraeus, Perses, and Pallas. An older, relatively minor deity, her role in most mythology is as the ancestor of other gods, and she often plays no role in the mythology.
''Euryale'' (''/jʊəˈraɪəli/'' yoor-EYE-ə-lee; Ancient Greek: Εὐρυάλη, lit. 'far-roaming'),名字的涵义是“遥远的漫游”或“广阔的大海”。
在希腊神话中,欧律阿勒受到了妹妹美杜莎的牵连,而被女神[[雅典娜|🦉智慧女神雅典娜 Athena]]诅咒并变化成怪物。美杜莎在雅典娜神庙中遭到海神[[🔱海神波塞冬 Poseidon]]强奸,由于在女神的神庙中进行性行为,被雅典娜认为是对她这位贞洁神的侮辱,进而诅咒美杜莎和她的两位姊妹(斯忒诺和欧律阿勒),使三人都变成怪物。
在某些版本的神话中,欧律阿勒具有将凝视的对象石化的能力。在许多故事中,尤其是在美杜莎被珀耳修斯斩下头颅的故事当中,''欧律阿勒那咆哮般的哭嚎声''常被多作描写。
一位来自阿尔戈的腓尼基公主,''欧洲大陆(Europe)以她的名字命名''。
''宙斯以公牛的形式绑架她''的故事是克里特人的故事。
欧罗巴最早的文学作品是在《伊利亚特》(Iliad)中出现的,通常是在公元前8世纪。另一个关于她的早期记载是在奥克西恩库斯发现的赫西奥德女人目录( Hesiodic Catalogue of Women)的一个片段中。
!! 词源
希腊语Εὐρώπη (Eurṓpē)包含εὐρύς (eurus), "宽广,宽广" 和ὤψ/ὠπ-/ὀπτ- (ōps/ōp-/opt-) "眼睛,脸,脸色"。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/c/cc/Standing_Osiris_edit1.svg/400px-Standing_Osiris_edit1.svg.png"
caption:"往生之神"
width:""
align:"right"
tooltip:"tooltip">>
欧西里斯或奥西里斯(有时也译为俄西里斯,英语:Osiris)是埃及神话中的''冥王'',九柱神之一,''是古埃及最重要的神祇之一''。
他是一位''反复重生的神'',而他身上的绿色皮肤就有这种意思。他最后被埋在阿拜多斯(Abydos)城,是那里的守护神。
欧西里斯是大地之神[[盖布|盖布 Geb]]与天神[[努特|努特 Nut]]的儿子。在埃及神话原典中,欧西里斯是掌管阴间的神,同时也是''生育之神和农业之神'',他与妻子[[伊西斯|伊西斯 Isis]]生了[[荷鲁斯|荷鲁斯 Horus]]。
另外在希腊诗人普鲁塔克的创作《争斗》中,[[奈芙蒂斯|奈芙蒂斯 Nephthys]]与[[赛特|赛特 Set]]之子[[阿努比斯|𓃦 阿努比斯 Anubis]]为__欧西里斯之私生子__。根据死者之书,他的长子是狒狒神巴比(Babi)。后来,他被同赛克和[[卜塔 Ptah]] 联合起来成为“布塔-赛克-欧西里斯”,也被等同为赫里沙夫(Heryshaf)。
!! 神话
关于欧西里斯和他妻子的传说有好几种版本,以下是一个基本的概要:
欧西里斯是一位善良的国王,被他的兄弟[[赛特|赛特 Set]]所杀,尸体被切成许多块。伊西斯与她的姐妹奈芙蒂斯找回了这些碎片(__除了他的阳具__),并把它们做成蜡像交给祭司们膜拜。拉命令阿努比斯和[[托特|托特 Thoth]]把欧西里斯做成木乃伊(''这就是第一个木乃伊''),而后伊西斯使他复活。从此以后,欧西里斯便留在阴间审判死者的灵魂,被称作“Neb-ertcher”,意思是“世界边缘之王”。
在阴间“杜埃”,欧西里斯将死者的灵魂与真理羽毛(Feather of Truth)放在天平上作比较。由于罪孽而变重的灵魂会被阿米特吞噬,而那些轻的灵魂则会被送往雅卢。(这与有关阿努比斯称量心脏的传说很类似,也类似[[玛亚特|玛亚特 Ma'at]]的鸵鸟羽毛。)
欧西里斯教会人们种植庄稼、酿酒,深受人们爱戴。赛特很嫉妒自己的兄弟,于是密谋杀死他。他秘密为欧西里斯订作了一副棺材,然后举行了一次宴会邀请他的亲友。他宣布,如果这副棺材适合谁,就把棺材送给他。有几个人试了试,都不合适。于是赛特鼓励他的兄弟来试一试。欧西里斯刚刚躺进棺材,赛特就猛然将棺材盖关上,并加上封印。赛特和他的亲信把棺材扔进了尼罗河,溺死了欧西里斯。这造成了尼罗河每年一次的泛滥。
伊西斯和她的姐妹奈芙蒂斯找回了欧西里斯,并借助魔法力量将他复活。欧西里斯还没有向赛特复仇,赛特就又一次杀死了他,并把他的尸体分割成十四块(有的说十五块),藏在大陆的各处。伊西斯花了很多年的时间找回了这些碎块,但是并没有找回全部,唯缺了下体,在智慧之神[[托特|托特 Thoth]]的帮助下,伊西斯使用黄金作为替代,把找到的碎块拼接起来,复活了欧西里斯。
这一次,伊西斯把欧西里斯小心翼翼地藏了起来,直到自己怀孕生下''荷鲁斯''(有一说是伊西斯在欧西里斯第一次复活时便怀孕;另一说则是伊西斯化为鸢覆盖欧西里斯的身体,受到欧西里斯的感应而怀孕)。伊西丝的魔法并不能长久地维持欧西里斯的生命,因此欧西里斯又一次死去了。其他的神祇都决定让欧西里斯来做阴间统治死者的王,但要先等到他的仇得到雪洗。
欧西里斯和伊西斯的儿子荷鲁斯自从生下来就寻求复仇的机会。他在尼罗河三角洲的湿地凯姆尼斯(Khemnis)上被秘密地抚养长大。荷鲁斯刚一长到足够强壮时候,就与赛特碰面,搏斗起来。搏斗漫长而又血腥;最终荷鲁斯失去了一只眼睛,而赛特失去了一颗睾丸。
这场冲突是在其他神祇的面前进行的。他们最后对荷鲁斯产生了好感,并把这国家的王位赐给他。赛特被判为有罪并被流放。''在其他的传说中,两位神祇最后和解,并分别掌管上、下埃及。''
托尔他们徒步走进了巨人之国''尤腾海姆''的地界。天晚时,他们在路旁一间大房子里过夜,第二天才知道这所谓的大房子原来只是一只巨人用的手套,他们住的厢房就是手套的大拇指。这巨人自称为''斯克利密尔(Skrymir)'',愿意引导托尔等到巨人之王那里去。那天晚上他们又在路边过夜,巨人拿他的干粮口袋给托尔他们,可是口袋上的结竟不是神所能解开的。夜里,巨人雷一样的鼾声使他们都不能安睡,托尔怒极,便取出雷锤来打巨人的头,连打三击,可是不但不能伤害他,反而使他的鼾声更响了。
第二天,巨人指点了到霜巨人的国度,城堡''乌特加德(Utgard,“Outyards”)''去的路,就和托尔等分别。托尔他们进了城堡,见了主人''乌特加德罗基(Utgardloki,“Loki of the Outyards” or “Loki of the Outlands”)'',因为被嘲笑矮小,就提出比赛本领。
洛基说他饿了,愿意先比赛吃;乌特加德罗基乃命拿入一长盘肉,让洛基和他的对手——堡内的厨子''罗吉(Logi,“ Flame”)''各从一头吃起。洛基吃得很快,立刻就吃到盘的中央,直和对方面碰面;可是看他的对手时,早已连肉带骨头带盘子都吞下去了(火焰能以极快的速度吞灭一切)。
''提亚尔菲''于是建议比赛跑。他的对手是一个叫''修基(Hugi,“ Thought”)''的小孩子,可是提亚尔菲还是失败了,虽然他跑得实在很快(人的思考速度是极快的,根本难以用脚追上)。
托尔说自己渴了,请借堡内最大的酒角来喝水。于是拿进了一个大酒角来,满满地盛着水;虽然托尔连喝三口,而且用尽能力地喝,然而斗内的水几乎还是满的。
他又提出比试气力,乌特加德罗基让他举起一只灰猫(“世界巨蛇”耶梦加得(Jormungandr)变的),尽管托尔将他的腰带收紧——这使他能有加倍的力量,——但也只能把猫的一只脚抬离地面。
最后托尔和乌特加德罗基的老乳母''爱莉(Elli,“Old Age”)''角力,结果竟不能撼动这老太婆分毫,而自己却被对方压得单膝跪地(即使是神明,也难逃老去,因此老年是不能撼动的)。
这样,在堡内过了一天,''乌特加德罗基''送托尔等人出境,然后叮嘱他们不要来了,因为他已经不得不用魔法来自卫了。他说路上遇到的巨人''斯克利密尔''就是他自己,手套和干粮袋是他用的魔法,而如果那天晚上他不是移了大山来挡住自己的头,则托尔的锤早就把他打成肉泥了,实际上那三锤已经使地上多了三个山谷。他又说,和洛基比赛吃肉的厨子罗吉是烧尽一切的“''野火''”;托尔喝水的角直接''连着大海'',托尔的豪饮使海从此起了波浪;和提亚尔菲赛跑的修基是“''思维''”,世上不能再有一物比“思维”更快了;那猫也不是猫,而是环绕大地的米德加德巨蛇(MidgardSnake,即[[🐍耶梦加得 Jormungand]]),托尔几乎把它拖出海来;至于和他角力的老乳母爱莉则是“''年老''”,年老是永远不可抗拒的。
神们就这样被戏弄了。托尔气极了,拿出雷锤想击毁那城堡,可是巨人和堡却全都不见了,眼前只是一片浓雾。托尔他们只好回返。想要征服巨人之国尤腾海姆的这个雄图,也只好作罢。
|!父母 |[[🌌黑夜女神尼克斯 Nyx]] |
|!配偶 ||
歌罗西(/kəˈlɒsi/;希腊语:Κολοσσαί)是小亚细亚弗里吉亚的一座古城,也是安纳托利亚南部(现代''土耳其'')最著名的城市之一。
《歌罗西书》是一部早期基督教文本,作者为使徒[[保罗|保罗 Paul the Apostle c.3-c.67]],是写给歌罗西教会的。
从公元前 5 世纪开始,它就是一座重要的城市,到保罗时代,它的重要性已经下降,但因其当地''天使崇拜''的存在而闻名。它是罗马和拜占庭弗里吉亚帕卡蒂亚纳省的一部分,后来于 1192 年 3 月被摧毁,其人口迁移到附近的乔奈(Chonai,现代的霍纳兹)。
''歌革和玛各(Gog and Magog)''出现在圣经的''创世记''、[[以西结书 Book of Ezekiel c.591 BC]]、''启示录''、以及''古兰经''。他们有不同的形象,例如''人、超自然生物(巨人或恶魔)、民族团体、或土地''。''Gog是一个形象,Magog是Gog的所在地''。歌革和玛各广泛存在于各文化的神话和民俗中。
有关歌革和玛各的预言一般认为是会在''时间终结时实现'',但''不一定是指世界的结束''。
犹太教末世论认为歌革和玛各是[[🙏弥赛亚 Messiah]]的敌人,会被''弥赛亚''打败,这也会开始弥赛亚的时代。
基督教的观点写在《启示录》中,认为是''歌革''和''玛各''是[[👹撒但 Satan]]的手下,在千禧年最后要反抗神“那一千年完了,撒但必从监牢里被释放。出来要迷惑地上四方(原文是角)的列国,就是歌革和玛各,叫他们聚集争战。他们的人数多如海沙。”。
也有有关歌革和玛各的传说,大概是在''罗马''治世时开始出现的,是指在亚历山大之门以外的人。罗马时期的犹太史学家弗拉维奥·约瑟夫斯认为他们是在《创世记》中记载,挪亚的孙子、雅弗的儿子[[玛各(Magog)|Magog]]的后代,并且解释成是斯基泰人(Scythian)。
在早期基督教作者的笔下,歌革和玛各认为是带来世界末日的一大群人,在中古时期认为是匈人、可萨人、蒙古族或是其他欧亚游牧民,甚至可能是以色列人中失踪的十个支派。
歌革和玛各及亚历山大之门的传说后来也在亚历山大大帝传奇中出现。在其中一个版本中,歌革和玛各是不洁净国家的国王,因为亚历山大大帝的新城墙而无法再进入欧洲。
在传奇小说及衍生文学中,歌革和玛各会食人。在中古时代的世界地图中,有时也会出现歌革和玛各。
旧约、新约各卷著作形成原非出自编写经书的目的,而是历经漫长过程逐渐得到教会等杈威公认,才被正式尊奉为〈圣经〉。旧约正典书卷最终确立于''公元100年''左右,比新约正典约早300年确立。“正典〞之外又有“次经〞与“伪经”,编辑内容和训示各异。
正典一词始应用于公元4世纪,其希伯来文原意为''芦苇'',希腊文译作直杖, 引申为''尺度或规范'',是指一批被''公认无误的圣经书卷''。通常认为正典是根据上 帝的启示或默示所写,可作为信仰与行为不可动摇的准则,是为人处世的规范性标杆。正典又有“量尺”或“量杆”之意,它能比较和衡量其他的经卷在信 仰和教义上的正确性。
希伯来正典原文''共有39卷'',包括''律法书''、''先知书''与圣文集三部分。所有基督教圣经都将这 39卷经书收入其中,命名为《圣经.旧约》, 可见对希伯来圣经的重视性。犹太教视《旧约》的正典部分为真正的教义,但不接受希腊文的《次经》。不少学者认为圣经旧约的正典完成于公元前4世纪左 右,文士以斯拉领导了第一次对旧约各卷书的审定会议。
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[list]'/>
</div>
''乌尔德/乌尔达'',又译''兀儿德'',是诺伦三女神其中之一(最年长的一位)。她的名字意味著''“过去 Became”'',同时也被叫做''死亡的女神(Dís of Death)''。
她的另外两个姐妹分别是薇儿丹蒂和斯库尔德。和希腊神话中的[[命运三女神|🧵命运三女神 Moirai]]一样,她们也无法改变命运。例如乌尔德只能警告[[⚡众神之父奥丁(神圣) Odin]],他将会在神之劫难中死于苍狼芬里厄之手,她们也无法阻止未来即将要发生的事。
!! 兀儿德之泉
以兀儿德的名字命名的圣井是[[⛲乌尔达泉(命运之泉) Urdarbrunnr]],位于[[🌲世界之树 Yggdrasil]]的伊格德拉修树根底下,是众神每日聚会的场地。
兀儿德之泉是神圣之泉,具有净化一切的力量,亦可以永生。''被认为是源自巨人[[智慧巨人密米尔 Mimir]]的头部'',同时也是世界之树赖以灌溉的源泉。
<a href="https://www.wikiwand.com/en/Valknut">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/ac/Valknut_variations.svg/440px-Valknut_variations.svg.png"
caption:"Valknut variations.
On the left unicursal trefoil forms; on the right tricursal linked triangle forms."
width:"400px"
align:"right"
tooltip:"">>
</a>
死亡战士之结是由三个互锁的三角形组成的符号,出现在古代[[日耳曼民族|Germanic 日耳曼]]考古记录中的各种物品上。Valknut一词是现代新发展出的,未知历史上使用什么术语来指代该符号。
学者们对该符号提出了多种解释。它有时会和奥丁神联系在一起。有学者将这一符号在9世纪Snoldelev石刻(英语:)上发现的三角符号进行了比较,并发现这两个符号可能相关。
! 力量、愤怒和原始能量的化身 Personification of force, anger and raw energy
|父母 |[[Pallas|帕拉斯 Pallas]] and [[Styx|斯堤克斯 Styx]] |
|对应罗马神 |Vis |
比亚Bia 和她的兄弟姐妹一直是宙斯的伙伴。 他们在与母亲一起在泰坦战争中支持他后获得了这一荣誉。比亚Bia是希腊悲剧《被束缚的普罗米修斯》中的人物之一,归功于埃斯库罗斯 Aeschylus ,在那里赫菲斯托斯在偷火并将礼物送给凡人后被众神强迫束缚了普罗米修斯。虽然她和她的兄弟[[克拉托斯 Kratos|克拉托斯 Kratos]] 一起出现,但她不说话。
《民数记》(直译:在沙漠中;天主教译《户籍纪》),是希伯来圣经及其摩西五经的第四卷。前篇[[利未记|利未记 Book of Leviticus c.1512 BC]]主要是说明''律法'',之后回到《民数记》时经文开始继续迁居的行程。在该篇主要是写他们出埃及后''生活意义、见证、中心,和争战的领导、道路与目标'',以及描述希伯来民族作为神选子民的过程。
这也是以色列人的''第一次人口普查文献'',其普查时间在以色列人离开西乃山前,40年后又举行了一次,时间跨度大,同时也记录了前往[[迦南|迦南 Canaan]]之路。
<<list-links "[tag<currentTiddler>] +[sort[num]]">>
<<list-links "[tag[水域众神]]">>
''沙利叶''(亚拉姆语:זהריאל,希腊语:Ατριήλ,英语:Sariel或Suriyel),或作萨利尔(出自一些死海古卷的翻译)、苏利尔(Suriel),是一位于犹太教与基督教出现的天使长。
在卡巴拉的传说中他是地球的七位创造天使之一,俄利根认定他也是七位创造天使的原始动力之一。在诺斯底主义中,沙利叶则曾调用他的保护力量。亚历山大科普特正教会的日历中也纪念了他。
跟[[拉斐尔|😇拉斐尔 Raphael(It is God who heals)]]一样,''沙利叶也是一位死亡和仁慈的天使''。相传他是取回摩西灵魂的天使,据说,摩西收到的所有知识都是来自沙利叶(虽然舒萨高也曾给予摩西知识)。另外相传沙利叶和[[乌列尔|😇乌列尔 Uriel(God is my light)]]为同一位天使。
由于沙利叶是“''月之天使''”,而月亮在古代总会和一些不好的事(如魔法、死等)连在一起,''所以沙利叶也被传为堕天使之一。''出列在地狱统治者“地狱七君”之一,传为因将月之魔法授予迦南女祭司而获罪于太阳神,在被放逐前主动离开了天界,但“死海文书”中,沙利叶却又在光之子的战斗序列之中。因此可说沙利叶是双重身份的天使。
沙利叶因为职务的关系,相传具有所谓邪眼的能力,被邪眼瞪到的生物行动将会被封死,古欧洲和中东地方都视这种能力为恐怖的象征,所以沙利叶便很自然的被大众视为恶魔。
son of [[亚法撒 Arpachshad]]
|!父母 |[[天空之神乌拉诺斯 Uranus]] and [[🌍大地女神盖亚 Gaea]] |
|!配偶 |[[🌊大洋之神俄刻阿诺斯 Oceanus]] |
!! Offspring
<<list-links "[tag[🌊大洋之神俄刻阿诺斯 Oceanus]] +[sort[title]]">>
! 森林、平原和田野之神
''Faunus'' [ˈfau̯nʊs]
|!父母 |[[皮库斯 Picus]] and [[Canens]] |
|!对应希腊神 |[[潘 Pan]] |
[img[https://upload.wikimedia.org/wikipedia/commons/a/a0/Joseph_Haydn_-_Armida_-_Esterhaza_1784_-_Costume_Faunus.png]]
//Sketch of a Faunus costume for the Joseph Haydn opera Armida//
''[[法利赛人|https://www.wikiwand.com/zh-hans/法利赛人]]''(Φαρισαῖος;希伯来语:;Pharisees),又译法利塞人、发利些人,是''第二圣殿时期 (前536年–70年)''的一个政党、社会运动和犹太人中间的思想流派。法利赛人是当时''犹太教''的四大派别之一,另外三大派别为''撒都该人''、''艾赛尼派''和''奋锐党''。
“法利赛”这个名词源于希伯来语的“”(prushim;字根: parush),意思是“分离”,指一些为''保持纯洁而与俗世保持距离''的人,与''撒都该人''追求俗世的权力及物欲相对。法利赛人大约在犹太人被掳到巴比伦的时候就已出现;到第二圣殿被毁以后,法利赛教派重新建立为''拉比犹太教''── 并成为了日后传统犹太教的典范、今日犹太教所有教派的根本。在某程度上,强调“以《圣经》为根本”的''迦来特派''亦是建基于法利赛教派的思想之上。
!! "法利赛人"和基督教
在公元4世纪,当时基督徒把一批成书于公元60年到95年的文本集合,并确立为正典,就是今日我们使用的《新约全书》。它论述上帝与世人所立的新约,并透过事例说明了《圣经》论说的根本。在《新约全书》里,''当时占主导地位的煞买派法利赛人经常都被描绘成耶稣基督在意识形态上的敌对者''。因此,有学说认为:新约圣经所针对的,并不是整个法利赛派系,而只是针对派系内的某些人。而事实上,法利赛人群体内亦留意到他们中间一些不诚实的人,并把他们描述为“法利赛派系内的瘟疫”。
在新约里有一个很重要的''二元对立面,就是律法与爱''。在《新约全书》里,法利赛人被表达为一些执迷于人定的规条(特别是有关洁净的规条,例如:怎样洗手),但耶稣却不断强调上帝的爱;法利赛人对罪人轻藐,但耶稣却去寻找他们。(特别是在尼哥底母唯一一次出现的《约翰福音》中,法利赛党被描述成为''不团结、喜爱诡辩的人群)''。因为《新约》常常将''法利赛人''描述成为''自以为是的教条主义者''(见对法利赛的谴责与教条主义(神学)),“法利赛”一词(及其衍生词:“法利赛性的”等)成为英语常用词汇,来形容伪善自大,并将律法教条凌驾于精神纲领之上的人。信仰法利赛--犹太教的犹太人至今觉得这种说法具有侮辱性,认为这是一种反犹主义。
法勒,在希伯来圣经中被提及为祖先埃伯的两个儿子之一。
also called Perez, son of [[他玛 Tamar]] and [[犹大 Judah (son of Jacob)]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
[[阿佛洛狄忒|💗爱情女神阿佛洛狄忒 Aphrodite]]在他还是个孩子的时候就把他偷走了,让他在她最神圣的圣地当守夜人。
法布提,(Farbauti,Fárbauti)。在北欧神话中,是邪神洛基(Loki)的父亲,也是一名巨人,他的妻子是[[女巨人劳菲(Laufey)|劳菲 Laufey]]。
他是象征闪电的巨人,名字有“暴徒”(''Cruel-striker'' 或 ''Awful Thug'')之意。当他用闪电打到象征树的女巨人劳菲时,生下了象征“火”的洛基。
除了洛基之外,他另有两个儿子,名Helblindi 和 Byleipt。有时候,Byleist 会被直接当作洛基的另一个名字,Helbindi 则被当作奥丁的另一个名字。神话中,唯一提到法布提的地方就是在史洛里·斯图拉松的《散文埃达》中,讲到洛基的出生的时候。
底比斯(Thebes)国王
卡德摩斯和哈耳摩尼亚的长子,塞梅勒(Semele)的弟弟。
<<<
安菲特里忒和喧响的撼地神
生下高大的特里同,他占有大海
深处,在慈母和父王的身边,
住在黄金宫殿:让人害怕的神。至于阿瑞斯,
毁盾神,库忒瑞娅为他生下普佛波斯和代伊摩斯,
这可怕的兄弟让坚固的士兵阵队也溃散,
和毁城者阿瑞斯一起,在使人心寒的战争中;
另有阿尔摩尼亚,勇敢的卡德摩斯娶了她。
<<<神谱
! 卡利登国王 king of Calydon
|父母 |[[Agenor|阿格诺 Agenor]] and Epicaste |
名字的意思是“恶之刺”,可能是[[霜巨人伊密尔 Ymir]]的儿子。
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
大地和天神的家族演变呈现为''三元''的累积形式,永远向未来开放。
[[🌍大地女神盖亚 Gaea]]接下来和[[天空之神乌拉诺斯 Uranus]]一同生下了12位泰坦神:
<ol>
<$list filter="[all[tiddlers]tag[泰坦 Titans]sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
<<<
她与[[天神|天空之神乌拉诺斯 Uranus]]欢爱,
生下涡流深沉的俄刻阿诺斯、科伊俄斯、克利俄斯、[[许佩里翁|☀️太阳神亥伯龙神 Hyperion]]、伊阿佩托斯、忒娅、瑞娅、忒弥斯、漠涅摩绪涅、头戴金冠的福柏和可爱的特梯斯,
最后出生的是狡猾多谋的[[克洛诺斯|🌾丰收之神克洛诺斯 Cronus]],
在所有孩子中最可怕,
他''恼恨淫逸的父亲''。
<<<神谱
又译''提洛''、''提尔''(Tyre),位于地中海东部沿岸,为古代海洋贸易的中心,今属''黎巴嫩''。基督教的和合本《圣经》译本翻译为“推罗”。
该城是古代''腓尼基人''的要邑,现在则位列黎巴嫩的第四大城,也是该国主要的港口之一。由于拥有许多遗迹,也是热门的观光景点;其中的罗马竞技场已在1979年为联合国教科文组织列入世界遗产中。
!! 神话
根据希腊神话,''泰尔''国王的女儿[[欧罗巴 Europa]]长得非常漂亮。一天,当公主和侍女在海边采集花朵时,被众神之父[[⚡天神宙斯 Zeus]]所见,宙斯惊为天人,于是决定诱奸''欧罗巴''。''宙斯''于是化身为一只雪白的公牛出现在海边,好奇的欧罗巴看到这样温驯的巨兽,便骑上了公牛的背。没想到公牛急速地冲向大海,惊慌的欧罗巴只能紧紧地抓住公牛的角。公牛把欧罗巴带到[[克里特岛|克里特岛 Crete]]后,才在欧罗巴面前显出它真实的身份。
欧罗巴失踪后,泰尔国王叫儿子们出去寻找欧罗巴,并且下令:若没有找到公主就不要回来。因此,他的儿子们都滞留他乡,其中的[[卡德摩斯(Cadmus)|卡德摩斯 Cadmus]]据说因此把''腓尼基字母''带到了希腊。
欧罗巴和宙斯生了三个儿子:''米诺斯''(后来成为克里特岛的统治者)、''拉达曼迪斯''和''萨尔珀冬''。
历史上,希腊人把爱琴海以西的大陆称为“''欧罗巴''”。''这也成为欧洲名称的起源''。孕育文明的欧罗巴、和传播腓尼基字母的卡德谬斯都来自泰尔,象征著在早期文明西传到爱琴海(以及后来欧洲)的过程中,泰尔所扮演的枢纽地位。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/8/8b/Tefnut.png"
caption:"Tefnut 潮湿女神,生育之神"
width:""
align:"right"
>>
埃及神话中的''潮湿、露水和雨水之神、生育之神'',[[赫利奥波利斯城|赫利奥波利斯 Heliopolis]]九柱神之一。
泰芙努特在地上的化身是''母狮''。拜她的中心地区是赫利奥波利斯城,
据此地神话说,她与丈夫(空气神[[舒|舒 Shu]])是[[阿图姆|阿图姆 Atum]](拉·阿图姆)的第一对孪生子女。她们的子女是苍天女神 [[努特 Nut|努特 Nut]] 和大地神[[盖布 Geb|盖布 Geb]]。
泰芙努特有时也被认为是孟菲斯地方神普塔赫之妻,太阳神[[拉|拉 Ra 太阳神]]之女,[[太阳神之眼|拉之眼 Eye Of Ra]],长在拉的前额上。每当太阳升起,她的眼睛就要喷出火焰,烧灼大神的敌人。在这方面,泰芙努特与乌托等同。乌佩斯和[[巴斯特 Bastet]]是她的两个变体。
有一则故事说,泰芙努特作为太阳之眼躲到努比亚去了(埃及出现了干旱),拉神派图特和舒(另一说是奥努里斯)去寻找她。泰芙努特她变成了一只猫,攻击一切靠近她的男人和男神。最后,[[托特 Thoth]]在乔装之下终于说服了她返回埃及。
她与舒神结婚,预示着自然界的复苏和繁茂。泰芙努特与姆特、[[巴斯特|巴斯特 Bastet]]、[[哈托尔|哈托尔 Hathor]]、[[塞赫麦特|塞赫麦特 Sekhmet]]以及其他狮子女神混同。
此后洛基又做了许多恶事,直到被称为“''不义的洛基''”。可是诸神还勉强容忍他;而他使诡计[[杀了光明神巴尔德|光明神与黑暗神]]这件事,终于激起了诸神的公愤,接着他又变成老太婆索克,不肯为[[巴尔德|光明之神巴德尔 Baldr]]流泪,以至巴尔德不能从冥间回来。于是诸神断定在洛基身上已经没有丝毫的善,便把洛基驱逐出阿瑟加德。
[[🌊荒海之神埃吉尔 Aegir]]知道[[阿瑟加德|亚萨神国阿斯加特 Asgard]]的诸神正为巴尔德的死而哀悼,为洛基的恶行愤怒,特备了盛筵,请诸神到他海底的宫殿里游玩。诸神欣然去了;可是在欢乐的宴会中,他们突然发现''洛基''也在,像一个黑影似地在他们左右前后。诸神生气,斥洛基出去;洛基报以怒骂。正闹得不可开交时,洛基又杀死了''埃吉尔''的侍者''费玛芬格''。于是诸神怒起,将洛基赶出宫殿。
骚乱告一段落,诸神再度入座,不料洛基又偷偷跑进来了。他的骂声充满整座宫殿;他数说诸神的不义、他们的闺房不洁,最后还对[[希芙|希芙 Sif]]女神说出秽污的话来了。这却激怒了[[托尔|⚒️雷神托尔 Thor]];若不是看在筵席之上不便流血,托尔早拔出了他的雷锤。洛基知道对方的厉害,赶快逃走,不敢再进来。
经这一次,洛基知道自己再没有回''阿瑟加德''的希望了,并且料到诸神一定会追杀他,他就跑到山中,造一茅屋,''有四个门'',终日大开着,准备万一之时逃走。他预定好计划,如果诸神来捉他,他就逃入近旁的大河,变成鲑鱼。但他又想,假使诸神织了海之女神[[澜|澜 Ran]]所用的那样的网,他还是不能幸免。洛基就来自己织一个网,预先试验一次。
网刚织了一半,洛基就看见奥丁、托尔和[[克瓦希尔|🍯智慧体克瓦希尔 Kvasir]]远远地来了。他将半成的网投在火中,就逃出来跳进河里,变成鲑鱼,藏在两块石头中间。奥丁和托尔看屋里没有洛基,正没有办法,''克瓦希尔''却瞥见了那个没有烧完的半成的网。这个聪明的小东西立刻联想到洛基也许是打算变鱼,提议到近旁的河边去找。但是洛基躲在河底的大石头下,网不起来。当几个神拉起网,正待再投下水的时候,洛基一跳,企图出水逃走。他第三次跳得很高,几乎就逃掉了,但却被''托尔''在空中捉住,逼他现了原形。
诸神将洛基禁锢在地下的洞穴中,用他的儿子[[纳尔弗|纳尔弗 Narfi(son of Loki)]]的内脏作为绳索。纳尔弗是被他兄弟[[🐺瓦利 Vali(son of Loki)]]所撕杀的,诸神因此处罚瓦利,使之变成''狼''。这些被当作绳索的内脏紧紧地扣住了洛基的手脚,使他仰面躺着。诸神怕这些绳索还不够坚固,''又施法将其变成钢铁''。
女巨人[[丝卡蒂 Skadi]],作为冰冷山泉水的人格化,是洛基(地下之火)的死敌。她把一条毒蛇缚在洛基头顶上方的岩石上。蛇的毒液滴下来,刚好落在洛基不能转动的脸上。但是洛基忠实的妻子[[西格恩 Sigyn]]也立刻来了,拿盘子接住了毒液。直到天地末日,“诸神之黄昏”到来时,洛基从囚禁地逃出来,和霜巨人等联合起来,毁灭了阿瑟加德的时候为止,希格恩总是守在洛基身边,高举着盘子承接毒蛇口中滴下来的毒液。
但偶尔盘子满了,须得去倒空,当希格恩离开她的岗位的时候,蛇的毒液就要落在洛基脸上。那时这位恶神痛极了,便奋力挣扎,想要脱逃。他把山谷都震动、地都震动了;''震骇人们的地震就是这样来的''。
在这个传说里,丝卡蒂 Skadi的毒蛇的毒液乃是象征了山中的''冰泉'',泉水时时从岩缝中渗入地层,和地下火相遇,就蒸发为蒸汽向上冒,且成为地震。这在冰岛等地是常见的现象。所以,在这一点上,洛基是''地下火的人格化''。
流便(较新的中文译本作吕便,新译本作流本,天主教译作勒乌本),是以色列人的祖先[[雅各|雅各 Jacob]](又名以色列)的长子,流便曾与父亲的爱妾''辟拉''通奸,故其长子权利被转移到约瑟。即约瑟获得长子的名分。
为拉班的长女[[利亚|利亚 Leah]]所生。流便的意思是“''有一个儿子''”。利亚为长子取名“流便”,是因为雅各较宠爱他的第二位妻子[[拉结|拉结 Rachel]],但利亚首先为雅各生了儿子,便想借此博得雅各欢心。
流便比起雅各其他年纪较长的儿子,更显得有智慧和感情。其他兄长计划把弟弟约瑟杀了,但流便劝阻他们留弟弟在陷阱坑中,因此约瑟得以存活,转而被''犹大''带领其他弟兄卖到埃及。流便后因坑中不见了弟弟而撕裂衣服。
后来他们往埃及买粮遭遇困难,流便指出是他们害约瑟的报应。
之后流便向父亲雅各提出,以流便两个儿子作人质,以保雅各的子便雅悯安全,并尽快解决饥荒缺粮困境,雅各不许。
作为雅各的长子,流便理应成为众兄弟的首领,并为众人的集体行动而负责,但他却不能做到。君王从犹大支派而出。
流便曾与他父亲雅各的妾[[辟拉|辟拉 Bilhah]]通奸,在雅各临终时,雅各聚集他的众子,并预言它们日后的发展,而关于流便的话是:“……流便哪,你是我的长子,是我力量强壮的时候生的,本当大有尊荣,权力超众,但你放纵情欲,滚沸如水,必不得居首位;因为你上了父亲的床,污秽了我的榻。”
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
!! 海神
在北欧神话中,正式的海神是[[埃吉尔(Aegir)|🌊荒海之神埃吉尔 Aegir]],他是''荒海之神'',和那位身为夏之神、且兼为近海之神的[[涅尔德|🪸近海之神涅尔德 Njord]]不同族。他既不属于天之诸神的[[亚萨神族|亚萨神族 Aesir]],也不属于海与风之诸神的[[华纳神族|华纳神族 Vanir]],而是自为一族,以波涛汹涌的远海为他的领土。
他掌管海中的风浪,形象是一个''老人,有长且白的头发和胡须''。当他到海面来的时候,就追逐海船,把船颠覆了,拉到水底下他的宫殿里。
埃吉尔娶自己的姐姐[[澜|澜 Ran]](Ran,意为强盗,Plunder)为妻。这位女神的唯一消遣是在危险的礁石旁撒网,捕取来往的船只;她和埃吉尔一样贪婪而残忍。''澜又被视为海洋中的死神'':凡在海中溺死的人,都被澜带下去,她有着像''瓦尔哈拉''一样的宫殿,专门款待那些死者。因为她是很贪财的,所以溺海者必带些金子在身上,说是可以献给她,得她的欢心。
埃吉尔和澜生了九个女儿,名为[[扬波之女(Billowmaidens)|扬波之女 Nine Daughters of Aegir and Ran]];她们都有雪一样白的胸脯和手臂、深蓝的眼睛、柔媚妖娆的身形。她们喜欢穿着透明的水色、白色、或绿色的纱衣在水面上嬉戏,有时她们的游戏变成打闹,则会互相揪头发、撕衣服、猛冲在礁石上,高声呼号。但是除非她们的哥哥——风,先出来,否则她们是不出来的。这九个女儿又常是三人一组地出来;她们常常追逐在维京人的船旁,帮助他们到达目的地。
因为海给北欧人的危险和损失很多,''所以海神埃吉尔和澜都是北欧人不喜欢的神。''
!! 次要海神
除了这两位主要的海神之外,又有次要的海神,都是长着一个鱼尾巴的:在这一类中,''女性名为Undines'',''男性名为Stromkarls、Nixus,或Necker''。在中世纪时,北欧人相信这些小神常常到陆地上的乡村中游戏。有时他们坐在岸边,梳他们那金色或绿色的长发,弹他们的竖琴。
更次等的海神是''人鱼''。有许多故事讲到女性人鱼是如何变成了鹅或海鸥。她们常把她们的衣服留在沙滩上,如果人们拾到了,就可以强迫那美丽的女人鱼做他的妻子。
!! 河神 Lorelei
<a href="http://mermaidsofearth.com/mermaid-statues-mermaid-sculptures/public/the-lorelei-statue/">
<<image-basic "https://i0.wp.com/mermaidsofearth.com/wp-content/uploads/Bruce-Greig.jpg?w=1319&ssl=1"
caption:"The statue of Lorelei Mermaid Statue in the Rhine Valley"
width:"400px"
align:"right"
tooltip:"">>
</a>
此外,又有居住在大河里的女神,名为''罗蕾莱(Lorelei)''。因为据说她们常坐在罗蕾莱礁石上,故得此名。她们都是会唱歌的少女,''常常用她们销魂的歌声引诱水手们迷乱而投入水中''。
据许多传说,罗蕾莱们是''莱茵河神''的女儿,白昼潜伏水底,夜间出来高坐在礁石上,暸望往来的船只。她们迷人的歌声随风吹入船上水手的的耳中,可怜的水手们便会迷失了本性,忘记工作,直到他们的船撞在罗蕾莱礁石上粉碎为止。
能够逼近着见这些少女们的,据说只有一个青年渔夫。他每天抛网的时候,常见一美丽女子唱歌,而且指点他应该在何处抛网才可得更多的鱼。后来这渔夫忽然失踪了;大概是被罗蕾莱拉到水底下做了永久的伴侣。
又据另一传说,则谓曾有兵围住了罗蕾莱礁,想捉这些太会恶作剧的少女。可是罗蕾莱少女念了咒,所有船上的兵士都动弹不得。然后莱茵河水分开了,深可见底,有一辆绿车,驾以白马,迎这些少女下去。然后河水就又恢复了原状,兵士们也都能动了,然而少女们已经没有影踪。据说从此以后罗蕾莱礁上就不复见到这些迷人的唱歌的水神。
[[🌊海神蓬托斯 Pontus/Pontos]]生下了:
<ol>
<$list filter="[all[tiddlers]tag[🌊海神蓬托斯 Pontus/Pontos]sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
<<<
蓬托斯生下''涅柔斯'',''诚实有信'',
在所有孩子中最年长。人称“老者”,
因为他''可靠又良善'',从不忘
正义法则,只想''公正良善''的事。
他和该亚相爱还生下高大的[[陶马斯|陶玛斯 Thaumas]]、
勇猛的[[福耳库斯|福耳库斯 Phorcys]]、美颜的[[刻托|刻托 Ceto]],
还有心硬如铁石的[[欧律比厄|欧律比亚 Eurybia]]。
<<<神谱
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>nsort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/c/c2/Neith.svg/440px-Neith.svg.png"
caption:"战争、狩猎、编织和智慧女神"
width:""
align:"right"
>>
涅伊特 “Neith”(/neɪθ/ 或/niːθ/,也拼写为尼特“Nit”、涅特“Net”或涅伊特“Neit”)是一位早期埃及神殿中的女神,塞易斯城的守护神,该城早在第一王朝起,就成为埃及尼罗河三角洲西部地区涅伊特的崇拜中心,它的古埃及名称叫扎乌(Zau)。
涅伊特是狩猎和战争女神,她的象征物是一只盾牌,上面交叉着两支箭,该符号也塞易斯城的标志。在埃及艺术中这一象征物显示在她的头顶上。作为战争女神,她曾说要让战士的武器在死后保护他们的身体。
涅伊特兼有男性神和女性神的特征,她的名字也可被解释为指水。随着时间的推移,这导致了她被认为是创造原始水的化身,负有造物神的使命,是众神和人类的创造者,被称作“众父之父和众母之母”。
在艺术形象中,涅伊特有时呈现为一名头顶织梭、手拿弓箭的妇女。其他时候,则被描绘成一位狮首或蛇首、牛首女身的妇女。
有时,涅伊特被描绘成一名给鳄鱼哺乳的妇女,她的称号是“鳄鱼保姆”。作为拉神的母亲,她有时被称为“生下拉神的母牛”。
涅伊特还被认为是一名智慧女神,曾对[[荷鲁斯|荷鲁斯 Horus]]和[[塞特|赛特 Set]]之争进行了仲裁。
于涅伊特是编织女神、妇女保护神及婚姻守护神。所以,古埃及贵妇常以“涅伊特”为自己取名。另一方面,由于她也是战争女神,因此产生了一些与死亡有关的附加联系。有人说,她编织的是作为礼物送与死者木乃伊所穿戴的绷带和殓衣。因而,她开始被视为荷鲁斯四子之一,具体指多姆泰夫(Duamutef)的保护神-存放胃的瓷罐的神化。因为腹部(常被误认为与胃相关)是战斗中身体最脆弱的部分,也是一个主要的攻击目标。有人说,她会向任何胆敢攻击所保护瓷罐的邪灵发射弓箭。
<<<
[[她|🐐奇美拉 Chimera]]受迫于[[俄耳托斯|🐶双头犬 Orthrus]],生下毁灭
卡德摩斯人<<fnote "“卡德摩斯人”(Kaiueiorom):''卡德摩斯''是忒拜城的奠基人,因此卡德摩斯人又称忒拜人。[[阿佛洛狄特|💗爱神阿佛洛狄忒 Aphrodite]]和[[阿瑞斯|🛡️战神阿瑞斯 Ares]]的女儿阿尔摩尼亚嫁给了卡德摩斯(937,975)。《劳作与时日》谈论古代英雄的战争,以七将攻忒拜为例:“丧生在七门的忒拜城,卡德摩斯人的土地,为了俄狄浦斯的牧群发生冲突。”(163-164)另参《伊利亚特》卷四,385;388;卷五,804:希罗多德,5,57起。">>的[[斯芬克斯|🦁斯芬克斯 Sphinx]]和[[涅墨厄的狮子|🦁涅墨亚狮子 Nemean lion]],
[[宙斯|⚡天神宙斯 Zeus]]的高贵妻子[[赫拉|天后赫拉 Hera]]养大这头狮子,
让这人类的灾祸住在涅墨厄的山林。
它在那儿杀戮本地人的宗族,
称霸涅墨厄的特瑞托斯山和阿佩桑托斯山,
最终却被大力士[[赫拉克勒斯|💪大力神赫拉克勒斯 Heracles]]所征服。
它在那儿杀戮本地人的宗族,
称霸涅墨厄的特瑞托斯山和阿佩桑托斯山,
最终却被大力士''赫拉克勒斯''所征服。
<<<神谱
---
<<showfnotes>>
!! 涅柔斯 Nereus 的女儿们
[[老者涅柔斯 Nereus]]和[[多里斯 Doris]]生下了50个女儿,''代表了大海的各种美好品质'':
<div>
<$macrocall $name=toc-selective-expandable tag="老者涅柔斯 Nereus"
sort='sort[title]'/>
</div>
<<<
涅柔斯有一群最讨人喜爱的神仙女儿,
在荒芜的大海里,她们的母亲是秀发的[[多里斯|多里斯 Doris]],
环流大洋神[[俄刻阿诺斯|🌊大洋之神俄刻阿诺斯 Oceanus]]的女儿;
普洛托、欧克昂特、萨俄、[[安菲特里忒|安菲特里忒 Amphitrite]]、
奥多若、[[忒提斯|忒提斯 Thetis]]、伽勒涅、格劳刻、
库姆托厄、''快速的斯佩俄、妩媚的哈利厄''、
帕西忒亚、厄拉托、玫瑰手臂的欧里刻、
优雅的墨利忒、欧利墨涅、阿高厄、
多托、普罗托、斐鲁萨、狄纳墨涅、
涅萨伊厄、阿克泰厄、普罗托墨狄阿、
多里斯、潘诺佩阿、好看的伽拉泰阿、
妩媚的希波诺厄和玫瑰手臂的希波托厄、
库摩多刻——在雾般迷蒙的海上,
她和库玛托勒革一起轻易地平息
狂风暴浪,美踝的安菲特里忒也来相助——
库摩、厄伊俄涅、发环华美的阿利墨德、
爱笑的格劳科诺墨、蓬托珀瑞娅、
勒阿革瑞、欧阿戈瑞、拉俄墨狄亚、
波吕诺厄、奥托诺厄、吕西阿娜萨、
风姿绰约、美丽无瑕的欧阿尔涅、
优雅的[[普萨玛忒|普萨玛忒 Psamathe(Nereid)]]、圣洁的墨尼珀、
涅索、欧珀摩泊、忒弥斯托、[[普罗诺厄|普罗诺厄 Pronoia]]、
生性如她那永生的父亲的涅墨耳提斯。
这些就是无可挑剔的涅柔斯所生下的
五十个<<fnote "实际却列出了五十一个名字,推测为“''斯佩俄、托厄、妩媚的哈利厄''”乃“''快速的斯佩俄、妩媚的哈利厄''”之误,其实仅''指一个神明''。中译本采用最后一种解决方案。">>精通技艺、无可挑剔的女儿们。
<<<神谱
|!父母 |[[Tyro]] and [[🔱海神波塞冬 Poseidon]] |
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
涅琉斯,古希腊神话人物之一。波塞冬之子,其兄为[[珀利阿斯|珀利阿斯 Pelias]]。其事迹见于《奥德赛》,常居麦西尼亚,并成为皮洛斯城的建立者,亦为阿尔戈英雄之一。后与[[💪大力神赫拉克勒斯 Heracles]]发生矛盾而被杀死。
|!父母 |[[🤬不和女神厄里斯 Eris]] |
|!标志 ||
|!对应罗马神 ||
!! Personifications of fighting
In Greek mythology, the Hysminae or Hysminai (Ancient Greek: Ὑσμίνας or ὑσμῖναι; singular: ὑσμίνη from hysmine means '''battle, conflict, combat''') are the personifications of fighting. In Hesiod's Theogony, the Hysminai are listed among the children of Eris, the goddess of strife. In another account, Hysmine was called daughter of the primordial deities Aether and Gaia. Quintus Smyrnaeus depicted the Hysminae along with other daemons of war on the shield of Achilles.
诸神决定每年在海神''[[🌊荒海之神埃吉尔 Aegir]]''家里举行一次宴会。''埃吉尔''不愿意,推说自己没有足够大的锅给这么多神祗酿造饮用的蜜酒。[[🛡️战神提尔 Tyr]]知道只有居住在世界边缘的巨人''[[希密尔 Hymir]]''才有那样大的锅,于是[[⚒️雷神托尔 Thor]]便动身去借。
他和''提尔''到''希密尔''家里,住了一晚,第二天希密尔要和托尔去打猎以挣得一天的食物,但''托尔''提出要出海去打渔,想借这个机会杀死世界之蛇[[🐍耶梦加得 Jormungand]],除此一害。两人将船划到远海之上,希密尔用牛的内脏钓鲸鱼,而托尔却以''牛头''为饵,钓到了''耶梦加得''。但就他举锤要打死这大蛇的时候,希密尔看到耶梦加得庞大的身躯,吓得魂飞魄散,''立刻割断了钓线'',耶梦加得得以逃生,直到“诸神之黄昏”时才与托尔再次交战。
看到''耶梦加得''逃掉,托尔十分生气,但仍与希密尔一同回到其家中,且帮他把钓到的鲸鱼扛回家。宴饮时,托尔提出要巨人的大锅,''希密尔''应允,但要求托尔先显示力量,摔碎他一个宝贵的水晶酒杯。
托尔反复将酒杯狠狠地砸到石头上,但酒杯毫发未损,直到他得到希密尔的妻子指点,知道''希密尔的头盖骨要硬过一切石头'',便将酒杯砸到希密尔的头上,酒杯遂被砸得粉碎。失去了酒杯,希密尔很悲伤而且后悔,同意两位神拿走大锅。提尔去搬,但不能搬动;托尔将锅顶到头上,一路回去。
走到半路,希密尔反悔,带领大批巨人追来,''被托尔用雷锤全部打死''。自此之后,诸神每年都可以在埃吉尔家里饮宴了。
,,,,! 自然之神、荒野、牧羊人、羊群、山野之神(通常与性有关)
|!父母 |[[☤神使赫尔墨斯 Hermes]] and Driope<br/>[[💗爱情女神阿佛洛狄忒 Aphrodite]]<br/>Penelope |
|!标志 |排箫、山羊 |
|!对应罗马神 |Faunus |
|!对应印度教神 |Pushan |
他有山羊的后躯、腿和角,就像半羊人faun或[[萨堤尔 satyr|萨堤尔 satyr]]一样。他的家乡在质朴的阿卡迪亚,他也被认为是田野、树林、树木繁茂的峡谷之神,''并且经常与性有关''。正因为如此,潘与生育和春天的季节有关。恐慌Panic这个词最终来源于神的名字。
在罗马宗教和神话中,潘的对应物是福努斯 Faunus,一位自然神,他是博纳迪亚Bona Dea的父亲,有时也被称为 Fauna;由于他们与林地的关系相似,他也与希尔瓦努斯 Sylvanus 有着密切的联系。
''18、19世纪,潘成为西欧浪漫主义运动和20世纪新异教运动的标志性形象。''
!! 来源
许多现代学者认为 Pan 源自重建的原始印欧神 *Péh₂usōn,他们认为他是一位重要的牧神(*Péh₂usōn 与现代英语单词“pasture”有相同的起源)。Rigvedic 神普山被认为是潘的同源。
1924 年,德国学者赫尔曼·科利茨 (Hermann Collitz) 首次确定了潘与蒲山之间的联系。
Pan这个名字的熟悉形式是从早期的Πάων收缩而来的,源自词根*peh₂-(守卫,守望)。 根据 Edwin L. Brown 的说法,Pan 的名字可能与希腊语单词 ὀπάων “同伴”同源。
在他最早出现在文学作品--Pindar 的 Pythian Ode iii.78中,潘与一位母亲女神有关,也许是瑞亚Rhea或西贝莉Cybele ;品达提到在他在波欧提亚的房子附近有少女在崇拜赛贝勒和潘。
!! 传说
!! 和[[🌪️提丰 Typhon]]的战斗
山羊神Aegipan在[[克里特岛|克里特岛 Crete]]与婴儿宙斯一起被阿玛尔忒亚 Amalthea 培育。
在宙斯与提丰的战斗中,Aegipan和赫尔墨斯偷回了提丰藏在科里西亚洞的宙斯的雷火。 潘在与泰坦的战斗中帮助他的养兄,发出了可怕的尖叫声,使他们惊恐地散去。根据一些传统,Aegipan是Pan的儿子,而不是他的父亲。
!! 和[[宁芙|🧚🏻♀️宁芙 Nymph]]
!!! 排箫的传说
潘的著名神话之一涉及他的''排箫''的起源,排箫是用空心芦苇制成的。
Syrinx 是阿卡迪亚的一个可爱的木宁芙,是河神[[Ladon|🐉拉冬 Ladon]]的女儿。有一天,她打猎回来,潘遇到了她。为了逃避他的纠缠,美丽的仙女逃跑了,并没有停下来听他的赞美。
他从吕卡厄姆山追赶,直到她来到她的姐妹身边,姐妹们立即将她变成了芦苇。当空气吹过芦苇时,它产生了哀怨的旋律。神明依旧痴情,拿了一些芦苇,因为他无法辨认她变成了哪根芦苇,剪下七片(或根据某些版本,九片),将它们并排连接起来,以逐渐减少的长度并排加入,形成了以他心爱的 Syrinx 的名字命名的乐器。从此潘一直带着它。
!!! Echo
[[Echo|Echo]] 是一位女神,她是一位伟大的歌手和舞者,蔑视任何男人的爱。这激怒了好色的神潘,他指示他的追随者杀死她。Echo被撕成碎片,传遍了地球。大地女神盖亚收到了Echo的碎片,她的声音一直在重复其他人的遗言。
在某些版本中,Echo 和 Pan 有两个孩子:Iambe 和 Iynx。在其他版本中,潘已经爱上了Echo,但她蔑视任何男人的爱,却被[[水仙 那喀索斯 |那喀索斯 Narcissus]]迷住了。由于Echo被赫拉诅咒只能重复别人说过的话,她无法为自己说话。她跟着那喀索斯去了一个水池,他爱上了自己的倒影,变成了一朵水仙花。那喀索斯消失了,但在洞穴和其他类似的地方仍然可以听到她的声音。
!!! 其他
潘还爱着一位名叫 Pitys 的宁芙,为了躲避他,她变成了一棵松树。
!! 情色方面
''潘以其性能力而闻名,并且经常被描绘成拥有阴茎''。西诺普的第欧根尼开玩笑地讲述了潘从他父亲[[赫尔墨斯|☤神使赫尔墨斯 Hermes]]那里学习手淫并将这种习惯传授给牧羊人的神话。
[img[https://upload.wikimedia.org/wikipedia/commons/2/2d/Pan_goat_MAN_Napoli_Inv27709_n01.jpg]]
//Pan having sex with a goat, statue from Villa of the Papyri, Herculaneum//
与几个男人发生过性关系的女性被称为“潘女 Pan girls ”。
潘最伟大的征服是对月亮女神[[塞勒涅|🌖月亮女神塞勒涅 Selene]]的征服。他把自己裹在羊皮里,隐藏自己多毛的黑山羊形状,并把她从天上引到森林里,在那里勾引她,从而实现了这一目的。
潘还爱上了青年达夫尼斯(Daphnis),他认为达夫尼斯掌握了吹笛子的艺术。
!! 摩羯座 Capricornus
传统上,摩羯座被描绘成一只海山羊,''一只带鱼尾的山羊''。在 Hyginus 的诗性天文学 中被报道为“埃及人”的一个神话(这似乎是为了证明潘与摩羯座的联系合理而发明的)说,当Aegipan——也就是他山羊神方面的潘 ——被堤丰攻击时,他潜入尼罗河;水面上的部分仍然是山羊,但水下的部分变成了鱼。
Ran。是北欧神话中,远古海神[[🌊荒海之神埃吉尔 Aegir]]的妻子,九名扬波之女的母亲。她是海与风暴的女神,名字的意思有“掠夺者”或“偷窃”之意。
我们在前面已经讲到很多关于[[🦹邪神洛基 Loki]]的故事。这位神一般来说是''象征了宇宙间的恶势力'',可是北欧人又给了他别样的性格,所以搞得很复杂。
最初,洛基只是''灶火''(别于''雷''这“天火”)的人格化。火是能为人造福,亦能为人之祸的;洛基也是这样。他的行动最初是善恶兼半,并且那恶也并非出于故意,只是“无心之恶”而已。这时的洛基是一位善神。但后来,洛基的“''无心之恶''”,渐渐成了''有意为恶'';他成为神与魔的混合品,那时候,洛基便成为代表恶势力的神了。最后他终于成了[[阿斯加特|亚萨神国阿斯加特 Asgard]]的叛徒。
当洛基还是善神的时候,他象征了“''生活之精神''”;但当他后来成为恶神的时候,则又象征着“''生活之诱惑''”。如果和[[⚒️雷神托尔 Thor]]对比的话,那么托尔是北欧人活动的象征,而洛基是''消遣''的象征。
托尔和洛基曾经常结伴,就是因为北欧人认识到“活动”和“消遣”在生活中都是必要的。托尔常是诚恳而忙于工作的,洛基则对所有事都以游戏的态度处之,终至养成喜欢作恶的习惯,变得自私、诈譎。他所代表的恶是世上最普遍而且起先不大使人嫌恶的尖刻狡猾和爱开玩笑的恶,因此,洛基最初仍为''阿斯加特''的诸神所容纳,并为神的会议中之一人,且诸神又不幸常听从他的提议。
关于洛基的身世,古代诗歌中有多种说法。或谓他是[[奥丁|⚡众神之父奥丁(神圣) Odin]]的兄弟,或谓并无亲族关系。据后一说,则还在奥丁出生之前,洛基就存在了,也就是宇宙间最原始的物质的人格化;他是霜巨人[[霜巨人伊密尔 Ymir]]的儿子,兄弟是[[赫勒尔(海)|🌊荒海之神埃吉尔 Aegir]]和''卡利(空气)'',姐妹是可怕的海之女神[[澜 Ran]]。而在这种说法中,洛基是被视为“''地下之火''”的。但别的神话材料中又有第三说,认为洛基是巨人[[勃尔格尔密尔|勃尔格尔密尔 Bergelmir]](就是那个在''伊密尔''被杀后、流血成洪水时唯一逃生的巨人)的儿子。
洛基的第一个妻子是[[古莉特(Glut,炽热)|Glut]],生下两个女儿:爱莎(Eisa,余烬)和艾米莉亚(Einmyria,灰)。__现在斯堪的纳维亚的主妇们看见燃旺的木柴在灶中爆响,还说是洛基在打他的女儿。__
他的第二个妻子是[[安尔伯达 Angrboda]],生的孩子就是[[🐺魔狼芬里尔 Fenrir]]、[[🐍耶梦加得 Jormungand]]和[[💀死亡女神赫尔 Hel]]。
他还有第三个妻子,名叫[[西格恩 Sigyn]],生了两个儿子,[[纳尔弗 Narfi(son of Loki)]]和[[🐺瓦利 Vali(son of Loki)]]。
''因为被视为恶神,所以北欧人对洛基只有畏惧,并无敬奉'',他也没有庙祀;在象征着火的这一方面,他有时又被看作代表了夏天的炎热的太阳光,农人们常称大热天为洛基种橡实,亦谓水被日光晒干为洛基在喝水。
洛基的故事常常掺杂在别的神的故事中,我们在前面已经说过许多。现在只把他独有的故事略略叙述如下:第一个故事还是说好的方面的洛基,第二个故事则叙及洛基的下场。
!! 相关故事
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
''火之国''
穆斯贝尔海姆被描述为''一片炎热而炽热的火之地'',是''火巨人''的家园,由''[[火巨人苏尔特 Surtr]]''用他的火焰剑守护着。它出现在北欧神话的创造和毁灭故事中。
根据散文埃达的说法,在地球诞生之前的一段伟大时期,[[雾之国尼弗尔海姆 Niflheim]]就已经存在了。''尼福尔海姆''内部有一口名为 [[⛲赫瓦格密尔(不竭之泉) Hvergelmir]] 的井,从这口井中流出了许多被称为 Élivágar 的溪流。他们的名字是 Svol、Gunnthro、Form、Finbul、Thul、Slid 和 Hrid、Sylg 和 Ylg、Vid、Leipt 和 Gjoll。
一段时间后,这些溪流已经远离了''[[雾之国尼弗尔海姆 Niflheim]]''的源头,其中流动的毒液变硬并变成了冰。当冰最终沉降时,雨水从冰中升起,冻结成雾凇。然后,这些冰开始在原始虚空——吉农加峡(Ginnungagagap)上覆盖。这使得吉农加峡的北部地区结冰厚厚,内部开始形成风暴。
然而,在吉农加峡的南部地区,''穆斯贝尔海姆''仍然飞出炽热的火花。当''穆斯贝尔海姆''的热量和火花与冰相遇时,冰开始融化。火花将继续创造出太阳、月亮和星星,而融化的冰滴将形成原始的尤弥尔:“凭借发出热量的他的力量,这些水滴加速了生命,并呈现出一个类似的形状。男人,他的名字是[[霜巨人伊密尔 Ymir]]。但冰霜巨人称他为''奥格尔米尔''”。
''苏尔特(Surtr)'',或''Surtur、Surt'',是北欧神话中的火巨人,有一位女巨人伴侣辛玛拉,替他保管武器''雷瓦汀''。《老埃达》和《新埃达》中均有关于他的记载;在两本书中,他皆为诸神的黄昏中的重要角色,拥有一柄巨大的''炎之魔剑(Surtalogi)'',能散发出比太阳更耀眼的光芒,在诸神的黄昏一役中与弗雷展开战斗,最终他把炎之魔剑投向天空,产生的巨大火焰吞没了地球。
史尔特尔的名字源自于古诺斯语的字根——svart。svart 意为“黑色”。史尔特尔正如其名,外型''黑如煤炭'',有如燃尽的森林。
约书亚从耶利哥派探子去往[[艾城|艾城 Ai]],他们回来报告说:“百姓不需要全部去,两三千人就足够攻取艾城,因为那里人很少。”不料,以色列前去迎战的3000人竟在艾城人面前溃逃,被敌人追赶,共杀死了36名。
约书亚把灰撒在头上,伏在约柜前的地上,对神说:“我们的人在敌人面前转身而逃,我还有什么可说的。如果以色列人在这地上被灭,那你的大名将如何显呢?”神说:“以色列人中有人犯了罪,暗中拿敌人的东西放在自家的家具里。若不除掉,你们在仇敌面前必败。”
次日清晨,约书亚让以色列所有支派,按照宗族、家室一个个地近前来,最后查到''犹大''支派的[[亚干|亚干 Achan]]。人们在他帐篷内的衣服下,发现了偷窃来的银子、金子。以色列众人因受他牵连打了败仗,愤恨不过,就用石头砸死他,用火焚烧了他的东西。
约书亚又带着众人往艾城去,他选了三万勇士,安排他们夜间理伏在城后,他和其他人则假装迎战艾城人败退,诱敌追赶,等敌人离了城,伏兵就去夺取那城。艾城人看到敌人又溃逃,就有些轻敌,全部都追赶以色列人,撇下敞开的城门。艾城人一直追到旷野上,回头望时,城中烟火冲天,看到敌人在后面烧城,又都返身迎战城内的人。被追赶的以色列人也转身攻击艾城人,在里外夹击下,艾城居民无一幸存。
''炽天使''(或音译撒拉弗、西拉冰;天主教音译作色辣芬,天主教、东正教意译作炽爱天使;希伯来文:שׂרף, 复数 שׂרפים ;英文:单数为''Seraph'',众数为''Seraphim'') ,是在《旧约圣经》,中提到的''六翼天使'',亦出现于不同的中东作品,被视为天神。犹太教认为此类天使拥有人类的外表,而天主教神学则把炽天使归类为天阶中最高的等级“神圣阶级”。
由于对炽天使、智天使与座天使的描述中他们很接近,很容易搅混。大部分的现代神学者都怀疑此传统,而认为都是指同样的天使。
!! 词源
希伯来语中 saraph 意为 ''燃烧 burning''。在希伯来圣经(旧约圣经)全文中作为名词使用了7次,通常表示 "蛇"。为什么 "燃烧 "一词也被用来表示蛇,这一点并没有得到普遍认同;可能是由于某种蛇的火热颜色,也可能是它的毒液叮咬留下的灼热感。无论如何,它的复数形式seraphim在民数记和以赛亚书中都有出现,但只有在以赛亚书中用来表示天使;同样,这些天使也只被称为复数的seraphim--以赛亚书后来用单数的saraph来描述一条 "火热的飞蛇",这与整个塔纳克的其他用法一致。
人们逐渐达成共识,即在希克索斯时代的迦南中用来展示六翼天使的图案起源于埃及的 uraeus 图像。在埃及图腾中,乌拉乌斯被用作主权、王权、神性和神权的象征,后来的图腾经常显示乌拉乌斯带有翅膀。在以色列和犹大的早期君主时代,埃及的图案显然被以色列人大量借用,因为人们发现了大量属于从平民到皇室的个人印章,这些印章融合了几件古埃及的图标,包括带翅膀的太阳、安克、上埃及和下埃及的赫德特和德什雷特冠冕、疤痕和乌拉乌斯眼镜蛇。这些乌来蛇通常有四个翅膀,而埃及的标准只给了它们两个翅膀。这些图像与以赛亚异象中的撒拉弗天使有关,或者可能更直接地与前面提到的 "火热的飞蛇 "有关,但这仍有争议--蛇形撒拉弗的图像与以赛亚自己的异象相冲突,后者明确设想了有头、腿和胳膊的六翼天使。
!! 在圣经中
这词在基督教《圣经》中''唯一出现于《以赛亚书》''。公元前两世纪的《以诺书》也提到过炽天使这个词,使用的却是希腊文 drakones。《以诺书》虽未被承认是希伯来人的手稿,但被认为被早期基督教的《犹大书》所引用。
!! 形象
在中世纪基督教新柏拉图派的神学认为,炽天使拥有天使的最高位阶。炽天使被看作是神殿的管理者,一直不停的唱着圣歌。中世纪的教会认为,炽天使由于完全理解了上帝的慈爱、而以这爱和理解欣喜地燃烧自己,''炽天使没有固定的形体、面庞为红色、躯体是火焰、长有六只羽翼,其中两只覆盖脸、两只覆盖脚、另外两只用于飞翔''。
炽天使手持刻有内容为“神圣,神圣,神圣”歌词的火焰圣扇,不休止地赞美上帝、在上帝的宝座周围飞翔。中世纪,弗兰德尔的神秘主义者扬·范·雷斯堡(1293~1381)宣称: “炽天使(和智天使)不直接过问人间的种种不道德,只有在安息之中,在上帝的无尽的爱中,炽天使才与我们同在。”
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/1/1f/Seraphim_-_Petites_Heures_de_Jean_de_Berry.jpg">
<div class="desc">14世纪的插图</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/b/b6/Seraph_medieval.jpg">
<div class="desc">中世纪时期的炽天使画像</div>
</div>
<div class="img-container">
<img src="img/炽天使.jpg">
<div class="desc">description</div>
</div>
</div>
特洛伊,别称伊利昂,古希腊时代小亚细亚(今土耳其位置)西北部的城邦,其遗址于公元1871年被发现。
诗人荷马创作的两部西方文学史最重要的作品:《伊利亚特》和《奥德赛》中的特洛伊战争,便以此城市为中心。19世纪之前一直被史学家视为虚构传说的城市。
<$leafmap tile='positron'
places='{"point":"39.9575, 26.238889"}' zoom=5>
<$tiddlymap view="特洛伊人族谱"></$tiddlymap>
! 海之信使
|!父母 |[[🔱海神波塞冬 Poseidon]] and [[安菲特里忒 Amphitrite]]|
''特里同''(''/ˈtraɪtɒn/''; 希腊语:Τρίτων;英语:Triton)是希腊神话中''海之信使'',又译为''特里同、特立顿、川顿、崔顿''。海王波塞冬和海后安菲特里忒的儿子。他一般被表现为一个''人鱼的形象'',上半身是人型但带着一条鱼的尾巴。
就像父亲一样,他也带着三叉戟,不过他特有的附属物是一个''海螺壳'',用来当作号角以扬起海浪。当他用力吹响这只海螺的时候,就像一只凶猛的野兽所发出的咆哮,连具有神力的巨人都为之动容。
[img[https://upload.wikimedia.org/wikipedia/commons/b/b1/Tritonbrunnen_rom.JPG]]
//特里同喷泉 (1642–3), 吉安·洛伦佐·贝尼尼, 罗马//
根据赫西俄德的《神谱》,特里同和他的父母住在大海深处的金殿内;而阿尔戈英雄记中他居住在利比亚的海边,当阿尔戈号驶上小叙尔特斯(Lesser Syrtes)的海岸后,船员们将船带到了崔莱托尼斯湖(Tritonis),当地的神祇特里同指引他们驶入了地中海。
犹大,希伯来圣经创世记中的人物,是[[雅各|雅各 Jacob]]和[[利亚|利亚 Leah]]的第四个儿子。
名字是''赞美''的意思。
根据《旧约圣经创世纪》37章记载,犹大阻止其他兄弟杀害弟弟[[约瑟|约瑟 Joseph]]的计划,指出杀害约瑟对他们并没有好处,改为建议把约瑟卖给以实马利商人。
<a href="https://www.wikiwand.com/en/Judah_(son_of_Jacob)">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/4/48/Rembrandt%27s_school_Tamar.JPG/440px-Rembrandt%27s_school_Tamar.JPG"
caption:"Judah (left) talking to Tamar (right) (1606–1669), by [[Rembrandt|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E4%BC%A6%E5%8B%83%E6%9C%97%20Rembrandt%201606-1669:%5B%5B%E4%BC%A6%E5%8B%83%E6%9C%97%20Rembrandt%201606-1669%5D%5D]]"
width:"400px"
align:"right"
>>
</a>
!! 和Tamar
犹大其后娶妻,生了三个儿子,因长子''[[珥|珥 Er]]''行耶和华认为是恶的事(并未记载为何种恶行),所以死于天谴。
然而据犹太人的习俗,兄若无子而卒,弟弟应为亡兄娶兄嫂过门,与她行房生的第一个儿子归兄长名下,以继承兄长的香火家业。但次子''[[俄南|俄南 Onan]]''不愿,性交后故意体外射精,也被耶和华看作不义而杀死。
接下来轮到三子''[[示拉|示拉 Shelah]]''迎娶兄嫂''[[他玛|他玛 Tamar]]'',而犹大怕示拉也被耶和华杀死,便谎称示拉仍未成年无法迎娶兄嫂,让她先回娘家守寡等待示拉成年;事实上犹大直到示拉成年后,仍不容许娶他玛过门。
''他玛''得知此消息后,用帕子蒙着脸,又遮住身体,坐在亭拿路上的伊拿印城门口,在犹大行经的路途上等待犹大到来。
犹大以为她是妓女,想和她睡觉,他玛提出回报,犹大提出付给她一只山羊的羔羊作为代价,但是他玛要求先以犹大的''印、带子和杖''作为抵押,完事之后把印、带子和杖带走了。
三个月以后,当犹大听说他玛在娘家守寡期间充当妓女,并且怀孕的消息,便下令以通奸罪名将她火刑烧死;但是当他玛向他出示犹大给她的印、带子和杖,公开宣布孩子的父亲就是印、带子和杖的主人,于是犹大承认了她和孩子,并且承认他玛比自己更为公义,因为自己没有让幼子''示拉''迎娶他玛。他玛其后生下了法勒斯和谢拉,而法勒斯则继承了长孙/长子名份,使长子名份得以延续。
后来犹大率领兄弟下埃及买粮食时,犹大向父亲雅各以性命担保弟弟[[便雅悯|便雅悯 Benjamin]]安全回来,在创世纪44章记载,他向[[约瑟|约瑟 Joseph]]求情恳求不要把便雅悯带走为奴。
犹大一家及后跟随''约瑟''至埃及生活,其后代直至《出埃及记》回迦南地。
因为[[流便|流便 Reuben]]已因与雅各的妾(代母)通奸而失去长子名分,[[西缅|西缅 Simeon (son of Jacob)]]及[[利未|利未 Levi]]涉在示剑屠杀,加上他们可能是谋害''约瑟''的主谋。因此,他和约瑟,利未共同得到流便失去的长子名份。''约瑟''得到了双份的土地,利未的后代成为''圣殿的祭司'',而犹大在弟兄中领头,成为''族中之首''。
犹大的支派其后成为以色列最具影响力的支派,''大卫王''及其后代均是出自犹大支派,耶稣基督据《新约圣经》的记载,也是出自犹大支派。
!! 相关
[[犹大国 Kingdom of Judah]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[nsort[num]]">>
和[[他玛 Tamar]] <<list-links "[tag[他玛 Tamar]] +[nsort[num]]">>
《犹大书》,天主教称《犹达书》,是《新约圣经》中的第26卷书,是“大公书信”中最前写成的第7卷。
!! 主题
这封短信的主要目的是警告信徒要警惕假老师”或“假拉比”的危险,这些人偷偷潜入教会,散布异端思想,挑战基督教的核心教义。
# ''警告信徒'':犹大强调需要对那些悖逆的人保持警惕,这些人利用神的恩典作为放纵肉体之事的借口,并否认我们唯一的主宰和主耶稣基督。
# ''历史例子'':犹大书引用了几个旧约中的例子,如以色列人出埃及后不信的情况、天使的叛逆以及所多玛和蛾摩拉的罪行,作为不道德和不信仰行为的后果的警示。
# ''假教师的描述'':犹大描述这些潜入教会的假教师为道德败坏、贪婪、自夸、轻视权威、诽谤超自然的存在等。
# ''鼓励信徒'':尽管面对这些挑战,犹大鼓励信徒要建立在最圣信仰之上,通过圣灵祈祷,保持自己在神的爱中,并期待耶稣基督的怜悯带来永生。
# ''结尾赞美'':书信以对神的赞美结束,提醒信徒,只有神能够保守他们不失脚,并使他们无瑕疵、欢欢喜喜站在他荣耀之前。
犹大王国(前931年-前586年)是一个于前10世纪至前6世纪存在的中东国家,首都耶路撒冷。与首都在撒马利亚的以色列王国同时从原来的以色列王国分裂出来。由于位于以色列地方的南部,因此被称为“南国”或“南国犹大”,与被称为“北国”的以色列王国相对。因首都和以色列王国相同,亦承继大卫王家族,因此被视为正统。
相关: [[犹大 Judah (son of Jacob)]]
[img[https://upload.wikimedia.org/wikipedia/commons/a/aa/Kingdoms_of_Israel_and_Judah_map_830_zh.svg]]
[[👑乌西雅/亚撒利雅 Uzziah/Azariah]]作王52年。他行耶和华眼中看为正的事,但没有把邱坛拆毁。后来耶和华使他染上大痳疯,他的儿子[[👑约坦 Jotham]]接管政事,到亚撒利雅死后才继承王位。
[[👑亚玛谢 Amaziah of Judah]]行耶和华眼中看为正的事,只是仍未能把祭拜场废去。
后来他主动和以色列邀战,败在[[👑约阿施 Jehoash of Israel]]手下。
他作王29年,然后在一场叛乱中被弑身亡。他儿子[[👑乌西雅/亚撒利雅 Uzziah/Azariah]]继承王位。
[[👑希西家 Hezekiah]]行耶和华眼中看为正的事,效法他祖先大卫所行的。他铲除谬误的崇拜,废掉邱坛,甚至因当时的人崇拜摩西所造的铜蛇而将之打碎。
后来亚述王''西拿基立''上来攻击犹大,并攻取了许多设防城市。希西家进贡大量金银财物以图求和,但西拿基立却派遣使臣拉伯沙基来到耶路撒冷的城墙前面招降,并大声在众百姓前辱骂耶和华。预言者[[🗣️以赛亚 Isaiah]]向忠心的希西家提出保证,''西拿基立''必遭恶报。
<<card
text:"
“耶和华如此说:‘不要害怕。我要把一个想法放在他的心里,他会听见一个消息,就回国去。我会让他在自己的国家里死于刀剑。‘ ”
"
footer:"Kings2 19:7"
>>
耶和华在当夜差遣天使在亚述营内击杀了18万5000名亚述兵士。清早时候,‘全都成了死尸。’ 西拿基立大败而回,退返尼尼微,并在那里住下来。 他的神尼斯洛再次证明无法庇佑他,他的亲生儿子在他叩拜神祇时把他弑了,这一切均应验了以赛亚的预言。
''希西家''病入膏肓,但耶和华''再次垂听他的祷告'',拿一块''无花果饼''贴在他的毒疮上把他治愈。又增长他的寿数15年。
巴比伦王听说希西家病了,差遣使者送礼物来慰问。希西家向使者们展示府库的宝物。''以赛亚''于是预言有一天__凡他家里所有的财物都要被掠到巴比伦去__。希西家对以赛亚说:“耶和华通过你说的这些话很好。”他又说:“在我有生之日能有太平安定的生活,已经很好了。”
希西家终于去世,但他的功勋及挖池凿沟引水入耶路撒冷城的事迹却为后世所称颂。
[[👑玛拿西 Manasseh of Judah]]接续父亲[[👑希西家 Hezekiah]]作王。他在位55年,滥行耶和华眼中看为恶的事。他重修用作谬误崇拜的邱坛,为巴力筑坛,又效法亚哈建立圣柱像,并使耶和华的殿成为偶像充斥之所。耶和华预言他必降祸与耶路撒冷,像他待撒马利亚一样,“必擦净耶路撒冷,如人擦盘,将盘倒扣”。玛拿西又“流许多无辜人的血”。
他的儿子[[👑亚们 Amon of Judah]]接续他作王,在位两年,仍行恶事,后来被臣仆刺杀身亡。
百姓立亚们之子[[👑约西亚 Josiah]]为王。他在统治的31年期间“行他祖大卫一切所行的”正道,得以把犹大从毁灭的边缘拉回来。
他开始修葺耶和华的殿,当其时大祭司从殿里寻回律法书。书上的话清楚显示,因以色列民悖逆耶和华,这必为该国带来毁灭的灾祸。但上帝向''约西亚''保证,因他的忠诚,灾祸必不在他的日子临到犹大国。他清理耶和华的殿,并把鬼魔崇拜在国境内完全清除,更前往伯特利毁灭所有的偶像,把耶罗波安在当地所筑的坛拆毁焚烧,从而应验了《列王纪上》第13章第1节至第2节参的预言。 他把向耶和华守逾越节的安排恢复过来。“在约西亚以前没有王像他尽心、尽性、尽力地归向耶和华,遵行摩西的一切律法。”
然而,耶和华因''玛拿西''大大冒犯他而仍未止息怒气。''约西亚''与埃及王在米吉多交锋时战死沙场。
那时[[👑约沙法 Jehoshaphat]]的儿子[[👑约兰(犹大) Jehoram of Judah]]在犹大继位登基。他跟以色列诸王一般''邪恶'',行耶和华眼中看为恶的事。他的妻子是[[👑亚哈 Ahab]]的女儿[[亚她利雅|👸亚她利雅 Athaliah]],她的兄弟也名叫[[👑约兰 Jehoram of Israel]],在以色列作王统治。
但耶和华为了他的仆人[[👑大卫王 David]],不想消灭犹大国,因为他曾向''大卫''承诺,要永远给大卫和他的子孙留下一盏明灯。
犹大王''约兰''去世之后由儿子[[👑亚哈谢 Ahaziah of Israel]]继位,在耶路撒冷作王。
[[👑约西亚 Josiah]]之子[[👑约哈斯 Jehoahaz of Judah]]作王仅三个月便给''埃及王''锁禁起来。埃及王另立''约哈斯''的弟弟[[👑约雅敬/以利亚 Jehoiakim/Eliakim]]敬为王,并给他改名为''约雅敬''。
约雅敬效法列祖一切所行的''恶事'',并且臣服于''巴比伦王''尼布甲尼撒手下三年,然后背叛他。
''约雅敬''死后由儿子[[👑约雅斤/耶哥尼雅 Jeconiah]]继位。 尼布甲尼撒围攻耶路撒冷,将城攻陷后把耶和华殿里的宝物都掠到巴比伦去,‘正如耶和华藉以赛亚所说的’。
''约雅斤''及数以千计的臣民均被掳到巴比伦去。
[[👑约坦 Jotham]]从事纯真崇拜,但仍容许邱坛继续存留。 他的儿子[[👑亚哈斯 Ahaz]]却效法邻近的以色列诸王,行耶和华眼中看为恶的事。
在遭受以色列王及亚兰王联手进袭之际,亚哈斯向亚述王求助,亚哈斯把''耶和华圣殿里和王宫宝库里的金银作为礼物'',送给亚述王。亚述王答应了他的请求。亚述人攻陷了大马士革;亚哈斯前赴该城谒见亚述王。
''亚哈斯''在大马士革看见当地的祭坛,便命人照样在耶路撒冷复制一座,并开始在这座坛上而非在耶和华圣殿的铜坛上献祭。他儿子希西家接续他作犹大王。
王太后[[👸亚她利雅 Athaliah]]是[[耶洗别 Jezebel]]的女儿,她的心肠狠毒,和母亲如出一辙。她见儿子亚哈谢死了,就起来''剿灭王室,篡夺王位''。只有[[👑亚哈谢 Ahaziah of Israel]]的幼子被人藏起来,才能逃出生天。
''亚她利雅''在位第七年,祭司耶何耶大把[[👑约阿施 Jehoash of Judah]]膏立为王,并把''亚她利雅''杀了。
耶何耶大指挥百姓恢复崇拜耶和华,并教导年轻的国王事奉上帝及修葺耶和华的殿。''约阿施''把许多礼物馈赠给亚兰王''哈薛''以避免他的攻击。''约阿施''在耶路撒冷作王40年之后被''臣仆所弑'',他儿子[[👑亚玛谢 Amaziah of Judah]]继位为王。
''尼布甲尼撒''立[[👑约雅斤/耶哥尼雅 Jeconiah]]的叔叔''玛探雅''作王,并替他改名为''[[👑西底家 Zedekiah]]''。
''西底家''在耶路撒冷作王11年,继续行耶和华眼中看为恶的事。他后来''背叛巴比伦''。故此在西底家作王第九年,尼布甲尼撒统率大军前来攻击耶路撒冷,并在四围筑垒攻城。
十八个月后,城里发生大饥荒。城墙终被攻破,''西底家''仓皇逃命,但在途中被截获。巴比伦人在他眼前杀了他的众子,并且弄瞎了他的双眼。
一个月后,巴比伦人将耶和华的殿、王宫及各大户人家的房屋均付诸一炬,并把四围的城墙完全拆毁。 大部分生还者都被掳到巴比伦去。巴比伦王立基大利作省长,治理在犹大郊区剩下的穷人。但后来基大利遭人暗杀,其馀的人都逃到埃及去。
故此,从公元前607年的第七个月起,犹大全地均沦为荒凉。 列王纪下的结尾部分记载[[👑约雅斤/耶哥尼雅 Jeconiah]]被掳后第37年,巴比伦王恩待他,使他安享晚年。
犹太教,是在公元前西亚地区的游牧民族希伯来人中产生的,是犹太人的信仰、价值观和生活方式,犹太教中的上帝被称为雅威(Yahweh),这是上帝的特定称谓。
犹太教是''一神论''的宗教,其主要经典是包括妥拉([[摩西五经|律法书/摩西五经 the Torah]])在内的''塔纳赫''(即希伯来圣经,基督教称为旧约圣经),以及包括口传律法(密西拿)、口传律法注释(革马拉)以及圣经注释(米德拉什)在内的塔木德,对信奉犹太教的犹太人而言,犹太教是上帝和以色列人立约的关系。
!! 历史
犹太教崇拜独一的真神(一神信仰),是希伯来人内部的民族宗教。犹太教认为《''塔木德''》是仅次于《希伯来圣经》的经籍。
当亚历山大大帝征服希伯来人的犹太原居地后,希伯来人也易名为''犹太人''并散落到古希腊各处,公元前3世纪,希腊化的埃及托勒密王朝君主托勒密二世,召集70多位懂希腊语的犹太人,集中整理犹太教文献并译成希腊语,即目前基督教使用的希腊语圣经中的旧约全书部份,所谓七十士译本。后来多次''犹太起义被罗马帝国彻底摧毁,犹太教位于耶路撒冷的圣殿被拆毁,只留下一段残破的西墙(俗称哭墙)'',犹太人散落到欧亚各地。
历史上,''犹太人在世界各地面对多次毁灭性的灾难和迫害''。犹太人由于两千多年一直分散在世界各地,语言、文字已经分化,只是靠着统一的宗教及文化维系其单一的民族性。
基督宗教方面,由于新约圣经记载''犹太人逼害基督徒'',且杀害耶稣基督,尽管早年的基督徒也是犹太人,只是后来使徒保罗(圣保罗)等把基督教传至罗马帝国,''信仰基督教的人远多于犹太人''。
''天主教会''及''正教会''在逾千年历史一直迫害犹太人,教宗若望·保禄二世在1992年,承认天主教会对抗及歧视犹太人,造成了他们逾承受苦难的历史。
部分犹太人向往自己民族的辉煌历史。19世纪,''犹太复国主义(锡安主义)''思潮兴起,各地犹太人以买地、驱赶、掠夺、种族灭绝等手段陆续回到''巴勒斯坦'',建立以色列这个世界上唯一犹太国家。
由于在遵守方式和程度的差异,现今的犹太教主要有三大派系,分别是''正统派''、''保守派''及''改革派''。在三大派系之外,''卡拉派''也是犹太教的组成部分,目前卡拉派在以色列约有40000名信徒。可萨人普遍认为选择了拉比犹太教而不是卡拉派。
!! 和[[基督教|基督教 Christianity]]的关系
犹太教与基督教最著名的差异就是对于塔纳赫''预言弥赛亚''的看法。犹太教仍在期待弥赛亚的到来,而''基督教认为耶稣就是旧约预言的弥赛亚''。两个宗教认知的不同,造成了犹太人在千年间被基督徒迫害。
犹太教与基督教的经典也有所不同,犹太教的塔纳赫和基督教的旧约圣经内容大致相同(有些内容因翻译者神学观点的不同,还有待争议),但编排顺序不同。犹太教的经典除了塔纳赫外,还有记载犹太教律法、条例和传统的塔木德,而基督教圣经除了旧约圣经外,还有记录''耶稣及他的门徒言行的新约圣经''。
!! 和[[伊斯兰教|伊斯兰教 Islam]]的关系
犹太教和伊斯兰教有特殊和密切的关系,两个宗教均自认是源自亚伯拉罕的宗教,因此也都属于亚伯拉罕诸教。两个宗教都是一神论的宗教,伊斯兰教称犹太人为有经者,这是犹太人描述自身和妥拉和其他犹太教经典之间关系的词语。而许多犹太人也认为伊斯兰教遵守挪亚七律,因此也是属上帝的义人。当7世纪伊斯兰教兴起,并且在阿拉伯半岛扩展时,犹太人和伊斯兰开始互动,伊斯兰教的一些核心价值、结构及理论是源自犹太教。伊斯兰文化和哲学也大幅影响在伊斯兰世界的犹太人。
在很多方面上''伊斯兰教比基督教更接近犹太教'',例如反对把先知神化,彻底地禁绝偶像崇拜,没有对于供奉天使或圣人的仪式(认为基督教三位一体教义和认为耶稣是上帝违反一神教信条),并且禁食猪肉和行割礼(也有相似宰牲程序),一夫多妻制,两者都有官方颜色(犹太教中为蓝色,伊斯兰教中为绿色)。两种信仰都奉信天使是上帝的仆人,并有著类似的魔鬼观念:犹太教提到撒旦,穆斯林提到阿尔·沙坦都为上帝的反对者。在犹太教和伊斯兰教中,许多天使也有类似的名字和角色。两种宗教都不赞成原罪的概念,''并且两种宗教传统上都将同性恋性行为视为犯罪。''
<<list-links "[tag[犹太教——Symbol]] +[sort[title]]">>
''犹太教三大节期'',又称作“''三大朝圣日”(Shalosh Regalim)'',是犹太教经典《希伯来圣经》中明订的三大节期。
这个称呼源自古时犹太人在庆祝这三个节期时,都需要从以色列地境内各地步行至耶路撒冷朝圣,并带着祭祀之物到当地的圣殿献上。
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
''犹太新年''(希伯来语: ro'sh ha-shānāh,岁首的意思)是[[提斯利月|希伯来历和格里历对应 Hebrew calendar Vs Gregorian calendar]](希伯来历:Tishrei)教历七月、民历首月的首日,是人、动物和具法律效力文件的新年,同时纪念上帝创造天地和亚伯拉罕以以撒向上帝祭献。
定于[[逾越节|Passover 逾越节]]后的第163日。节日后的第十日为''赎罪节''。
在《旧约圣经》《利未记》中,称为''吹角节''或''吹角日'',在拉比文学和礼仪当中称为审判日或纪念日。
!! 词源
犹太新年被称为Rosh HaShanah。''Rosh''(רֹאשׁ)在希伯来文中是“''头''”的意思,''ha''(הַ)是希伯来文中的定冠词(等同于英文中的"''the''"),而''shanah''(希伯来语:שָּׁנָה)是''年''的意思。所以希伯来文Rosh HaShanah所代表的就是一年之首,也用来指犹太历的新年。
!! 庆祝活动
* 庆祝新年的方式之一是去会堂参加新年宗教仪式,人们要进行''三次祈祷'',''三次吹响羊角号'',号声既表示对上帝的敬畏,也表示对上帝的信仰。虔诚的犹太教徒还要在午后到海边、河边或有流水的地方,举行赎罪仪式,诵读《圣经·弥迦书》中一节“将我们的一切罪投于深海”,三次摇动衣服的边,表示抛弃了罪孽而变得纯洁。有人还反省过去一年的罪过,用纸写上,投入火中,表示洗清了自己的罪。
* 犹太新年尽管是敬畏和忏悔的日子,但却不应认为是痛苦和悲哀的日子,而应该是喜庆的日子,因为上帝对罪孽的赦免可以确保幸福的到来。全家人通常在这一日团聚,在新年晚宴上要吃苹果蜜饯和蘸有蜂蜜的面包,以象征今后一年的日子将会甜蜜幸福。人们还互送贺年片和新年礼物,不少人还外出旅游,以示欢乐。
* 正统和保守派犹太教徒通常庆祝两日,改革派犹太人则只庆祝一日。
* 到犹太会堂祈祷、吹用公羊角制成的号 (shofar),提醒审判的到来。
* 食用圆面包、沾蜂蜜的苹果、鱼头和石榴,象征甜蜜和一年的循环。
* 第一日下午抛石头或面包碎入流水中,象征抛弃罪恶。
* 第二夜享用新收成的水果。
* 祝福语:Shana Tova (祝你有美好的一年)、Shana Tova Umetukah (祝你有美好甜美的一年)、ketiva ve-chatima tovah (直译:祝你未来一年被写得好和封得好)
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Bronspl%C3%A5t_pressbleck_%C3%96land_vendeltid.jpg/440px-Bronspl%C3%A5t_pressbleck_%C3%96land_vendeltid.jpg"
caption:"根据瑞典厄兰岛发现的托什伦达铜板制作的木板刻画,其图像可能为一位狂战士尾随著狂怒之神奥丁。"
width:"400px"
align:"right"
tooltip:"">>
狂战士(Berserkers)是北欧神话与文学中的一种战士,能够进入一种类似被催眠(trance)的状态,以狂怒的姿态战斗。
!! 词源
古北欧语为“ (复数型 )”,字面上意思为“''熊皮大衣(bear-shirt)''”(参照中古英语 serk,其意为衣衫),指“穿著熊皮大衣的人”。
!! 早期
许多学者认为北欧战士的传统起源于狩猎魔法,其动物崇拜主要有三:熊、狼,和野猪。
图拉真柱上的浮雕描绘了图拉真皇帝于西元101-106年征战达契亚的景象。柱上刻有罗马士兵和其友军的图像,包括来自莱茵河两边部族的战士,有些战士光著脚打赤膊,使用类似于日耳曼人的武器和头盔,这些战士也出现在第36号场景中,有些戴著熊头,有些则戴著狼首。在图拉真柱后,历史上没有其他关于日耳曼熊战士和狼战士纪录,直到西元872年,挪威王金发哈拉尔参战哈夫斯夫约德战役(battle of Hafrsfjord),同行的吟游诗人罗伯恩·霍恩科洛菲(Thórbiörn Hornklofi)才再次留下纪录。
1870年春,Erik Gustaf Pettersson 和 Anders Petter Nilsson在瑞典厄兰岛的石冢里发现了四片铸铜板,也就是托什伦达铜板(Torslunda plates)。以下两张图像是铜板中的图案,另外两张则是1872年制造的木板刻画。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/ba/Bronspl%C3%A5t_2_fr_Torslunda_sn%2C_%C3%96land_%28Stjerna%2C_Hj%C3%A4lmar_och_sv%C3%A4rd_i_Beovulf_%281903%29_sid_103%29.jpg/400px-Bronspl%C3%A5t_2_fr_Torslunda_sn%2C_%C3%96land_%28Stjerna%2C_Hj%C3%A4lmar_och_sv%C3%A4rd_i_Beovulf_%281903%29_sid_103%29.jpg">
<div class="desc">托什伦达铜板:一名狂战士跟著奥丁。</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Bronspl%C3%A5t_1_fr_Torslunda_sn%2C_%C3%96land_%28Stjerna%2C_Hj%C3%A4lmar_och_sv%C3%A4rd_i_Beovulf_%281903%29_sid_103%29.jpg/400px-Bronspl%C3%A5t_1_fr_Torslunda_sn%2C_%C3%96land_%28Stjerna%2C_Hj%C3%A4lmar_och_sv%C3%A4rd_i_Beovulf_%281903%29_sid_103%29.jpg">
<div class="desc">托什伦达铜板:两名狂战士戴著上面有野猪的头盔。</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/bc/Bronspl%C3%A5t_fr_Torslunda_sn%2C_%C3%96land_%28Antiqvitets_Akademiens_M%C3%A5nadsblad_1872_s090_fig39%29.jpg/400px-Bronspl%C3%A5t_fr_Torslunda_sn%2C_%C3%96land_%28Antiqvitets_Akademiens_M%C3%A5nadsblad_1872_s090_fig39%29.jpg">
<div class="desc">1872年制造的木板刻画:一名狂战士跟著奥丁。</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/61/Bronspl%C3%A5t_fr_Torslunda_sn%2C_%C3%96land_%28Antiqvitets_Akademiens_M%C3%A5nadsblad_1872_s090_fig38%29.jpg/400px-Bronspl%C3%A5t_fr_Torslunda_sn%2C_%C3%96land_%28Antiqvitets_Akademiens_M%C3%A5nadsblad_1872_s090_fig38%29.jpg">
<div class="desc">1872年制造的木板刻画:两名狂战士戴著上面有野猪的头盔。</div>
</div>
</div>
!! 熊战士(Berserkers )
有些学者认为熊战士的力量来自于熊,熊战士崇拜熊,而崇拜熊的信仰曾经遍布北半球。熊战士武艺绝伦,同时也信仰虔诚,史瓦达拉萨迦(Svarfdæla saga)中记载曾有一名熊战士因为耶鲁节而拖延战斗,一直到耶鲁节过后三天后才继续战斗。葬礼开始之前,熊战士会将逝去同袍的尸体放在熊皮中。熊战士的象征直至今日依然存在,丹麦禁卫军所戴的熊皮帽便是熊战士的象征。
熊战士战斗时会进入狂暴状态,他们会像野兽一般嚎叫,还会用盾牌的铁缘磨牙。根据他们的信仰,进入狂野状态时刀枪不入,火也无法伤他一分一毫,能够摧毁敌军的阵型,脱离狂暴状态后,熊战士会变得虚弱且温和。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/f/f0/Releve_de_la_garde_-_2016-06-25_-_084.jpg/1880px-Releve_de_la_garde_-_2016-06-25_-_084.jpg"
caption:"熊皮帽"
width:"300px"
align:"right"
tooltip:"">>
进入狂暴状态(go berserk)意思是改变形体(change form),此处意指“进入狂野愤怒的状态”。有些学者将其解读为熊战士能够变形成熊,如同变形者(hamrammr)。举例来说,在埃吉尔萨迦(Egil's Saga)中,在国王哈洛德(Harald)的兄弟索罗尔德(Thorolf)遇刺后,前往斯卡拉格林(Skallagrim )拜访哈洛德的那群人被形容为“人类中最强的一群,他们之中很多人都拥有神秘的力量 ... 造物者将他们形塑更像巨人而非人类”,部分学者将其解读为这群人之中有些人是变形者,但此说法并未被大多数人接受。另一个关于变形者的例子出自于赫罗夫克拉基萨迦(Saga of Hrólf Kraki),故事中提到,熊战士波德瓦波亚基(Bödvar Bjarki)能够变形为熊并与国王赫罗夫克拉基战斗,“众人只见一只巨熊冲入赫罗夫王的手下之中,始终与国王保持极近的距离,死在熊掌下的人不计其数,就算是国王手下最英勇的五名战士加起来也无法像它这般杀敌。”
!! 狼战士(Úlfhéðnar )
在印欧民族、土耳其、蒙古,与美洲原住民文化中都有狼战士的身影。罗马人的玛尔斯节(armilustrium)是庆祝战神的节日,罗马人会在玛尔斯节中展示从日耳曼狼战士缴获的盾牌及旗帜。
身披狼皮的狂暴战士称作“狼战士(Úlfhéðnar )”,意思为“狼皮大衣(wolf coat)”,和狂战士(Berserkers)有关,狼战士曾出现于瓦特恩斯达尔萨迦(Vatnsdæla saga)、哈拉尔之诗(Haraldskvæði ),和沃尔松格萨迦(Völsunga saga),文本中提到狼战士会身披狼皮进入战场。狼战士有时又被称作奥丁的勇士,“(奥丁的)战士不穿锁子甲就冲入战场,如同猎犬和野狼一般发怒,还会啃咬盾牌 ... 他们大杀四方,不管是刀剑或是火焰都无法伤他们一分一毫,这就是进入狂暴状态:132(berserk)”。此外,托什伦达铜板上也有出现狼战士跟著奥丁的画面,“一位身披狼皮的战士站在独眼舞者身旁,独眼舞者戴著上头有两根鸟形的角的头盔,这个画面普遍被认为显示出了狼战士与奥丁的关联”。
!! 野猪战士(Svinfylking )
在北欧神话中,野猪对华纳神族来说是神圣的动物。弗雷便有一头名为古林博斯帝(Gullinbursti,金色鬃毛)的野猪,女神弗蕾亚也有一头名为希尔帝斯维尼(Hildisvíni,战猪)的野猪,在瑞典人和盎格鲁撒克逊人的仪式用具上都可以见到这些野猪。野猪战士以一种名为野猪之首(Svinfylking)的楔形阵型战斗,两名勇士会站在“猪鼻(rani )”的位置。''野猪战士善于隐匿行踪'',也善于利用对地形的熟悉逃脱。如同熊战士与狼战士,野猪战士也是透过动物的力量来战斗,他们的武术便是建构于野猪之上。
!! 理论
<a href="https://www.wikiwand.com/en/Berserker">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/NMSLewisChessmen6.jpg/1026px-NMSLewisChessmen6.jpg"
caption:"A rook piece from the Lewis chessmen, depicted as a warrior biting his shield"
width:"400px"
align:"left"
tooltip:"">>
</a>
战场上狂战士会穿著特别服装,例如狼皮或熊皮,以表示其狂战士的身分,这么一来友军就能与他保持距离,因为狂战士在进入狂战士之怒时会敌我不分。
学者认为某些狂战士是透过''服用药物''来引发狂战士之怒,例如食用毒蝇伞,或服用大量酒精,然而,此观点备受争议,1977年,丹麦菲卡特(Fyrkat)出土的维京坟墓中发现了天仙子的种子,使此观点更加备受质疑,食用天仙子所引发的症状与狂战士之怒的描述类似,学者因此推论狂战士是透过食用天仙子来引是发狂战士之怒。在其他案例中,学者推论狂战士是透过引导自己进入歇斯底里、癫痫,或其他精神疾病状态,进而引发狂战士之怒。
另一理论是狂战士之怒是''某种自我引发的歇斯底里状态'',透过战斗前的仪式来引发,包含''啃咬盾牌''和''动物般的吼叫''。
刘易斯棋子出土于苏格兰刘易斯岛,该棋被认为是由北欧人制造的,其中便有啃咬盾牌的狂战士。
有学者认为''狼人传说''起源于狂战士。
! King of Argos
''Diomedes'' (''/ˌdaɪəˈmiːdiːz/'' or /ˌdaɪˈɒmɪdiːz/) or ''Diomede'' (''/ˈdaɪəmiːd/''; Greek: Διομήδης, translit. Diomēdēs, lit. ""god-like cunning" or "advised by Zeus"")
<<<
金发的狄俄尼索斯娶弥诺斯的女儿,
栗发的阿里阿德涅做他的如花娇妻,
克洛诺斯之子赐她远离死亡和衰老。
<<<神谱
Gaea 和 Uranus 还生下3个[[👁️独眼巨人 Cyclopes]]:
<ol>
<$list filter="[all[tiddlers]tag[👁️独眼巨人 Cyclopes]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
3个巨人为[[⚡天神宙斯 Zeus]]提供了雷鸣电闪。
<<<
她还生下狂傲元比的''[[库克洛佩斯|👁️独眼巨人 Cyclopes]]'':
布戎;武斯、斯特若佩斯和暴厉的阿耳戈斯。
他们送给宙斯鸣雷,为他铸造闪电。
他们模样和别的神们一样,只是额头正中长着一只眼。
他们被唤作库克洛佩斯,全因额头正中长着一只圆眼。
他们的行动强健有力而灵巧。
<<<神谱
相比之下 ,荷马《奥德赛》 卷九中的库克洛佩斯则是一群独目巨人族 , 疯狂野蛮 , 受到天神的鹿护 :
<<<
既不种庄稼,也不耕耘土地,
所有作物无需耕植地自行生长,
有大麦小麦,也有葡萄累累结果,
酿造酒醪,宙斯降风雨使它们生长。
他们没有议事的机会,也没有法律。
他们居住在挺拔险峻的山峰之巅, 或者阴森幽暗的山洞,
个人管束 自己的妻子儿女,不关心他人事情。(107 -115)
<<<奥德赛
[[🦹邪神洛基 Loki]]私自在[[巨人之国尤腾海姆 Jotunheim]]以[[女巨人安格尔波达|安尔伯达 Angrboda]](Angrboda,愤怒之身或祸水,有一说谓她等同于古尔薇格)为妻,生了三个恶魔孩子(按照长幼次序排列):一是[[🐺魔狼芬里尔 Fenrir]],一是世界之蛇[[🐍耶梦加得 Jormungand]],一是[[💀死亡女神赫尔 Hel]]。
洛基秘藏着这三个孩子,不让诸神知道。可是三个家伙长得非常快,无论如何隐藏不住。奥丁在宝座上也看见了,知道这三个孽种的利害,立刻就到了[[巨人之国尤腾海姆 Jotunheim]],一手提起''赫尔'',将她打入[[雾之国尼弗尔海姆 Niflheim]]的深处,令她在那里为冥世的主宰,死亡之主;奥丁又把耶梦加得扔到海中,这魔物在海里一直长大,直到盘绕了大地,能自啮其尾。只有''芬里尔''被带到天上,因为奥丁想把它养驯了,或许有点用处。诸神看见芬里尔,都惊怕失色;只有[[提尔|🛡️战神提尔 Tyr]]是无所畏惧的,他给这狼喂食。
但是芬里尔迅速长大,而且野性也一天比一天重,诸神不得不设法将它捆起来,以免后患,因为在阿瑟加德流血是不许的。诸神造了一条叫''雷锭(Laeding)''的、极坚固的铁链,于是开玩笑似地对芬里尔说想试试它的力量有多大,请芬里尔被捆缚起来。芬里尔允许了,诸神就把它缚得紧紧的。但是芬利尔用力一挣扎,这铁链就断为粉碎。诸神假意称赞芬里尔的巨力,一面又赶快制造第二条更坚固一倍的铁链,名为''德洛米(Dromi,枷锁)''。于是又一次请芬里尔就缚,结果这第二条铁链也不能抵挡芬利尔的力量。
诸神乃派遣''史基尔尼尔(Skirnir)''到地下去找侏儒们造一条链子。侏儒们就用猫的脚步声、石中的树根、女人的胡子、鱼的呼吸、熊的警觉、鸟的唾液,这些古ᗾ的东西,造成一条比丝线还细的绳子,名为''格莱普尼尔(Gleipnir,纠缠者或欺诈者)''。可是这绳子比什么都结实,而且越拉越结实。
得到这根宝绳之后,诸神把芬里尔带到位于''兰格维(Lyngvi)岛''中央的、亚姆斯瓦提尼尔(Amsvartnir)湖中间的小岛上,再请它试试力气。虽然这时候芬里尔长得更加强壮了,可却有点不放心这根细线。
它提出一个条件,须得有一位神的手放在它的嘴里,它方能让诸神捆起来。没有一位神愿意冒这个险;而永远无所畏惧的''提尔''挺身而出,把自己的右手放在芬里尔口中做抵押。
结果,芬里尔被捆住了,诸神还恐怕捆得不牢,又用一条名叫盖尔加(Gelgja,细弱)的链子捆住它,还将绳子穿在一块深埋地中 的坚石基奥尔(Gioll,嘶吼)上,再用一块名为特维提(Thviti)的巨岩压住坚石,以固定得更牢靠。
芬里尔马上咬断提尔的手。又因芬里尔叫得太响,便用一把刀撑住了它的上下腭,流血成一条河,名叫''瓦恩(Van,希望)''。这样,芬利尔永远不能脱身,直到“诸神之黄昏”到来,它才挣脱束缚,到[[亚萨神国阿斯加特 Asgard]]报仇。
[[耶罗波安 Jeroboam|👑耶罗波安 Jeroboam]]被上帝挑选为以色列的王,所以他处处得到耶和华的庇护。
[[耶罗波安 Jeroboam|👑耶罗波安 Jeroboam]]从埃及回来,与百姓一起谒见[[罗波安 Rehoboam|👑罗波安 Rehoboam]],求他把所罗门加于人民身上的重担减轻一点。但罗波安没有听从以色列众长老的明智劝告,反而采纳了年轻人的意见去''加重百姓的负担''(也是耶和华的意思,这样''耶罗波安''就有理由领导民众反抗)。
以色列人便起来背叛王,并立''耶罗波安''作北部十支派的王。仅有[[犹大|Tribe of Judah]]及[[便雅悯支派|Tribe of Benjamin]]继续支持''罗波安''。他招聚大军试图攻打叛军,但耶和华吩咐他们退回去。
<a href="https://www.wikiwand.com/en/Jeroboam#Media/File:Claes_Moeyaert_-_Sacrifice_of_Jeroboam_-_Google_Art_Project.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Claes_Moeyaert_-_Sacrifice_of_Jeroboam_-_Google_Art_Project.jpg/500px-Claes_Moeyaert_-_Sacrifice_of_Jeroboam_-_Google_Art_Project.jpg"
caption:"Jeroboam sacrificing to his idol, oil on canvas by ''Claes Corneliszoon Moeyaert'', 1641"
width:"400px"
align:"right"
>>
</a>
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/a/aa/Kingdoms_of_Israel_and_Judah_map_830_zh.svg"
caption:" "
width:"300px"
align:"left"
>>
''耶罗波安''建筑''示剑城'',以该城为都,但他仍感觉不安全。他恐怕百姓''返回''[[耶路撒冷|耶路撒冷 Jerusalem]]崇拜耶和华,以致百姓重归''罗波安''的统治。为了防止这件事发生,他制造了两只金牛犊,分别设于但和伯特利,并从非利未支派的一般百姓当中选立祭司去领导崇拜。
耶罗波安正打算在伯特利的坛上献祭时,耶和华差遣一位预言者警告他说,上帝必从大卫家里兴起一个王,名叫''约西亚'',他必会采取有力行动拆毁邱坛及消灭谬误的崇拜。作为一个警告的先兆,邱坛突然破裂断开。后来该预言者因违反了耶和华吩咐他__不可在路上吃喝__的命令而遭狮子所噬。
''耶罗波安''的家开始遭殃。耶和华击杀了他的儿子。上帝的先知''亚希雅''预言,因耶罗波安在以色列设立假神,犯了大罪,他的家必被永远剪除。耶罗波安作王22年便死去,他儿子''[[拿答 Nadab|👑拿答 Nadab of Israel]]''接续他作王。
<<card
text:"
至此,国家分裂为南北两国,分裂后的南国首都继续在耶路撒冷,历史上被称为[[犹大王国|犹大国 Kingdom of Judah]],由[[犹大支派|Tribe of Judah]]和[[便雅悯支派|便雅悯 Benjamin]]组成;而北部由剩下的10个支派联合而成,建立了新的以色列王国,建都[[示剑|示剑 Shechem]],后期才迁至撒马利亚。
"
>>
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/ab/Maat.svg/440px-Maat.svg.png"
caption:"真理和正义的女神"
width:""
align:"right"
>>
玛亚特(Ma'at)又译玛阿特、玛特,古埃及''真理和正义''的女神,是太阳神[[拉|拉 Ra 太阳神]]的女儿,智慧之神[[托特 Thoth|托特 Thoth]] 的妻子。其象征物为''鸵鸟羽毛''。
玛亚特在创世之时就奠定了神的秩序,其名字本身就拥有''真理、平衡、秩序、法律、道德和正义''等多种含义。
!! 心脏秤量 Weigher of hearts
玛亚特在阴间“杜阿特”(Duat)审判中有重要地位,古埃及人认为人死以后要受诸神的审判,天平一端放着死者的心脏,另一端放着玛亚特的雕像或她的象征鸵鸟羽毛作为砝码。若心脏比羽毛轻或等重,说明死者无罪;反之则说明有罪,鳄头狮身怪物[[阿米特 Ammit|阿米特 Ammit]] 就会将死者吞噬。
(覆盖以西结书38:1-39:29)接着一个新的攻击者出现了。
耶和华复兴的子民由于大享平安,繁荣兴盛而招惹敌人的攻击,玛各地的''[[歌革|歌革和玛各 Gog and Magog]]''会发动疯狂的进攻。他会上来把上帝的子民重重围困。耶和华必大发愤恨,烈怒如火。他要使人以刀剑杀害弟兄,他必用''瘟疫和流血''的事刑罚他们,此外也必使''暴雨、大雹、烈火、硫磺''降在他们身上。他们遭受毁灭时必知道耶和华是“以色列中的圣者”。(以西结书39:7)他的子民必把敌人剩下的武器当柴烧火,并将他们的尸首埋在“哈们·歌革谷”。(以西结书39:11)吃尸鸟和走兽必来吃被杀之人的肉,喝他们的血。
此后以色列必安然居住,无人惊吓,耶和华的灵必浇灌在他们身上。
''玛土撒拉''(美国:/məˈθuːzˌlɑː/"他的死亡必将降临 "或 "标枪之人 "或 "剑之死亡")是《圣经》中的一位元老,也是犹太教、基督教和伊斯兰教的代表人物。在《圣经》记载的所有人物中,他的寿命最长,享年 969 岁。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
''控诉以色列人背弃与耶和华的约定,要求贡献十一奉''
玛拉基书,是圣经全书第39本,作者是[[🗣️玛拉基 Malachi]]先知。这本书属于十二先知书,也是圣经的希伯来语部分最后一本书。在本书里,耶和华对利未子孙(在以色列中间的祭司)和雅各子孙(以色列人)的对付,有很多比喻跟耶稣基督有关联。在基督教看来,这些预言在400多年后得到应验。
!! 背景
玛拉基的预言显示,犹太人重建圣殿时由先知[[🗣️哈该 Haggai]]和[[🗣️撒迦利亚 Zechariah]]所激发的宗教热忱和热心已经泯灭了。祭司变得粗心大意、骄傲狂妄、自以为义。圣殿的服务变成虚有其表。由于人民以为上帝已不再关心以色列,他们便停止缴纳<<fnote "源于《圣经旧约》时代,其希伯来文原意是“十分之一”。[[详见|https://www.wikiwand.com/zh-hans/%E5%8D%81%E4%B8%80%E5%A5%89%E7%8D%BB]]">>''十一奉献(十一税)''和献祭。他们对所罗巴伯所怀的期望并没有实现,有些人热切期待的[[🙏弥赛亚 Messiah]]也没有来临。
!! 特色
玛拉基书中,''“约”''的观念占了很重要得地位。全书以神对雅各家立约的爱开始,说明神如何厚待祂的子民,可惜犹太人没有履行他们的责任:祭司背弃了神与利未人的约(2:10),夫妻间的盟约(2:14)。''由于他们篾视神,于献祭,什一奉献,社会道德上,悖逆神的命令,所以他们不蒙祝福。''
然而神仍不弃绝祂的百姓,一方面勉励他们坚守神昔日颁布的律例典章(4章:4节),另一方面''预言神的日子要来到'',届时神要''施行炼净和审判的工作''。这回顾与前瞻,于旧约攗的最后一卷出现,实在恰当。
''先知经常强调他的信息根源于耶和华神,使听者不能轻忽待之。''
----
<<showfnotes>>
玛格尼(Magni,力),[[雅恩莎撒 Jarnsaxa]]和[[⚒️雷神托尔 Thor]]的儿子。
据《Skáldskaparmál》中的斯诺里·斯图鲁森 (Snorri Sturluson) 记载,当托尔在决斗中杀死赫伦格尼尔Hrungnir时,巨人向前扑向托尔,他的脚踩在托尔的脖子上。直到玛格尼出现,阿萨神族才解救了他。虽然他只有三天大,但他轻而易举地把赫伦格尼尔Hrungnir的脚从托尔身上脱开,并对他说:“父亲,我来得这么晚,真是太糟糕了:我想,如果我早遇见了他,我已经用我的拳头打死了这个巨人了”。托尔用赫朗格尼尔的马''古尔法西''奖励了他的儿子。
|!父母 |[[Tyro]] and [[🔱海神波塞冬 Poseidon]] |
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
珀利阿斯(/ˈpiːliæs/ PEE-lee-ass;古希腊语:Πελίας)是希腊神话中[[伊奥尔科斯 Iolcus]]的国王。是他派Jason去寻找金羊毛。
传说中迈锡尼(Mycenae)和珀尔塞德王朝(Perseid dynasty)的创始人/赫拉克勒斯之前''最伟大的希腊英雄和怪物杀手''
|!父母 |[[⚡天神宙斯 Zeus]] and [[达那厄 Danaë]] |
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
|标志 |[[美杜莎|🐍美杜莎 Medusa]]的头 |
<a href="https://www.wikiwand.com/en/Perseus#Media/File:Persus-with-the-head-of-med.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/2/28/Persus-with-the-head-of-med.jpg/1057px-Persus-with-the-head-of-med.jpg"
caption:"Perseo trionfante by Antonio Canova (1801) Musei Vaticani, Rome"
width:"400px"
align:"right"
tooltip:"">>
</a>
又译''珀耳修斯''。
他为波利德克特斯(Polydectes)斩杀了戈耳工美杜莎(Gorgon Medusa),并从海怪塞图斯(Cetus)手中拯救了安德洛米达(Andromeda )。
当珀尔修斯带着戈耳工美杜莎的头颅回到塞里弗斯时,他发现在他不在的时候,他的母亲受到了波吕德克特斯的威胁和虐待,不得不在一座神庙里寻求庇护。
珀尔修斯很愤怒,大步走进波吕克特斯和其他贵族正在召开的王室会议。波吕德克特斯对这位英雄还活着感到惊讶,并拒绝相信珀尔修斯已经完成了他被派去做的事情。珀尔修斯声称他确实杀死了戈耳工美杜莎,作为证据,他露出了她被砍下的头。''当波利德克特斯和他的贵族们凝视着这个战利品时,他们就变成了坚硬的石头''。
在希吉努斯(Hyginus)记录的版本中,波吕德克特斯因害怕珀尔修斯的勇气而试图背信弃义地杀死他,但珀尔修斯正好在他面前露出了戈耳工美杜莎的头颅。然后珀尔修斯将塞里弗斯王国交给了迪克提斯(Dictys,波吕克特斯的兄弟)。
在希吉努斯(Hyginus)之后的另一个版本中,波吕德克特斯(Polydectes) 在 Dictys 带到他面前时与 达那厄(Danae) 结婚,并让 珀尔修斯(Perseus) 在雅典娜神庙中长大。他没有虐待珀尔修斯和达娜厄,而是保护他们免受阿克里修斯的伤害,因为阿克里修斯发现他们幸存下来并到达塞里福斯杀死他们。珀尔修斯最终发誓永远不会杀死他的祖父,但波吕德克忒斯很快就死了,在他的葬礼游戏中,珀尔修斯不小心用铁饼击中了阿克里修斯,导致阿克里修斯死亡。
<a href="">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/5/54/The_golden_fleece_and_the_heroes_who_lived_before_Achilles_%281921%29_%2814580287378%29.jpg/440px-The_golden_fleece_and_the_heroes_who_lived_before_Achilles_%281921%29_%2814580287378%29.jpg"
caption:" "
width:"300px"
align:"left"
tooltip:"">>
</a>
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
! 冥界的女王/春天、花朵、死亡、生命、植被和毁灭的女神
宙斯和得墨忒耳Demeter的女儿/哈迪斯Hades的妻子
|标志 |石榴、五谷种子、火炬、花和鹿 |
|对应罗马神 |Proserpina |
珀耳塞福涅并不是自愿屈服于哈迪斯的,而是在尼萨的田野上采摘鲜花时被他绑架的(她的父亲宙斯曾将珀耳塞福涅送给哈迪斯,作为他的妻子,这在荷马史诗《德墨忒尔赞歌》的第一句中有所记载)。
[img[https://upload.wikimedia.org/wikipedia/commons/thumb/3/36/Rape_of_Prosepina_September_2015-3a.jpg/440px-Rape_of_Prosepina_September_2015-3a.jpg]]
为了抗议他的行为,''德墨忒耳对土地下了诅咒,出现了大饥荒'';尽管众神一个接一个地来要求她解除诅咒,以免人类灭亡,__导致众神失去接受礼物和祭品的机会__,''但德墨忒尔断言,在她再次见到女儿之前,地球将保持贫瘠''。
宙斯于是派人去找他的儿子赫耳墨斯,指示他下到冥界,希望他能说服哈迪斯允许珀耳塞福涅回到地球,这样德墨忒尔就可以见到珀耳塞福涅并使饥荒停止。赫尔墨斯服从命令,下到哈迪斯的领域,在那里他发现哈迪斯坐在沙发上,珀耳塞福涅坐在他旁边。赫尔墨斯转达了宙斯的信息,哈迪斯同意珀耳塞福涅回去,但在走之前给了她一颗石榴籽。
得墨忒耳和珀耳塞福涅见面后知道她吃了石榴籽,使她与冥界联系在一起,导致每年有1/3的时间珀耳塞福涅必须回到冥界和哈迪斯共度(既是冬天)。
比萨(Pisa)之王
Pelops的父亲是安纳托利亚西皮罗斯山的国王坦塔洛斯。为了向奥林匹斯人献祭,坦塔罗斯将Pelops切成碎片,将他的肉炖成炖菜,然后将其献给众神。
[[德墨忒尔|🥖丰收女神得墨忒耳 Demeter]]在她的女儿[[珀耳塞福涅|珀尔塞福涅 Persephone]]被哈迪斯绑架后悲痛欲绝,心不在焉地接受了献祭并吃掉了左肩。然而,其他诸神察觉到了这个阴谋,并没有吃掉男孩的尸体。
当坦塔罗斯被放逐到[[塔尔塔罗斯|😈地狱塔尔塔罗斯 Tartarus]]时,Pelops在仪式上被重新组装并起死回生,''他的肩膀被[[赫菲斯托斯|🔥火神赫菲斯托斯 Hephaestus]]为他制作的象牙之一取代''。品达(Pindar)在他的第一首奥林匹亚颂歌中提到了这一传统,但被认为是恶意的发明而拒绝接受。
Pelops复活后,波塞冬将他带到奥林匹斯山,让他成为青年学徒,还教他驾驶神车。后来,宙斯发现众神偷来的食物和他们现在揭露的秘密,把Pelops赶出了奥林匹斯山,对他的父亲坦塔罗斯很生气。
!! 与希波达米亚 Hippodamia
详细查看[[Oenomaus|俄诺玛俄斯 Oenomaus]]。
!! 奥林匹克比赛
胜利后,Pelops组织了战车比赛,作为对众神的感恩,也作为纪念国王奥诺玛斯的葬礼比赛,以净化他的死亡。正是从这次在奥林匹亚举行的葬礼比赛中得到了灵感,才有了运动会的开始。
Pelops成为一个伟大的国王,一个当地的英雄,并为伯罗奔尼撒半岛赋予了他的名字。
沃尔特-伯克特指出,尽管希波达米亚被绑架的故事出现在赫西奥德的《妇女目录》和保存在奥林匹亚的Cypselus胸前(约公元前570年),尽管战车比赛的准备工作出现在奥林匹亚大宙斯神庙的东侧踏板上,但战车比赛的神话只是随着奥林匹亚第25届运动会(公元前680年)引入战车比赛而变得重要。G. Devereux将希波达米亚的绑架与埃利斯的动物饲养禁忌联系起来,并将埃利斯在奥林匹亚的影响在七世纪增长。
!! 被诅咒的家族
Myrtilus死后,他诅咒佩罗普斯最终背叛了他。这也是毁灭他家族的诅咒的来源之一。
他的两个儿子阿特柔斯和提耶斯提斯杀死了他们同父异母的弟弟克里西普斯,后者是他最喜欢的儿子,本应继承王国;阿特柔斯和提耶斯提斯与他们的母亲希波达米亚一起被他放逐,后者随后上吊自杀。
每一代子孙都因残暴的罪行而深受其害,并因犯下更多的罪行而加重了诅咒,因为诅咒压在佩罗普斯的子女、孙子和曾孙身上,包括阿特柔斯、提耶斯、阿伽门农、伊吉斯托斯、米内劳斯,最后是奥瑞斯提斯,他被雅典娜和阿波罗神召开的法庭宣告无罪。虽然通常被称为 "阿特雷德家族的诅咒",但这一圈残暴的事件始于阿特雷乌斯之前的两代人,并在他之后持续了两代人,''然后在法庭上被[[复仇女神|👩👧👧复仇三女神厄里倪厄斯 Erinyes/Furies]]正式赦免''。
son of [[犹大 Judah (son of Jacob)]]
犹大的长子珥在耶和华眼中看为恶,耶和华就叫他死了。(Genesis 38:7)
Er死掉后,犹大让[[俄南 Onan]]和[[他玛 Tamar]]同房,Onan知道生了孩子也不是自己的,所以故意体外排精。这也被耶和华认为是恶,也让他死了。
琳达(Rindr、Rind)在北欧神话中,她的出身说法纷歧,一说是女神,或是东方地区(相当于俄罗斯)的人类公主,一说是名女巨人。她和[[⚡众神之父奥丁(神圣) Odin]]生下[[瓦利(Vali)|瓦利 Vali(son of Odin)]],瓦利出生的目的是为了报[[光明之神巴德尔 Baldr]]被杀之仇。
''奥丁''由预言中得知,巴德尔难逃被孪生兄弟[[黑暗之神霍德尔 Hoder]]误杀的命运。为了报仇,必须由一个算家族又不算家族的人来执行,而奥丁选择了琳达为这个复仇者的母亲,奥丁为了达到目的,用了''赛兹魔法(Seigr)''才成功让琳达成为他的情人。
在《丹麦人的事迹》(Gesta Danorum)中,故事又更加变化,这里的琳达写做Rinda,是''路德尼亚国王(Ruthenians)''的女儿。最初奥丁化身为侍卫接近琳达,第二次化身为工艺匠送上诸多宝物,但冷漠的琳达都不为所动。心急的奥丁干脆以法术让琳达发疯,再变成看护者接近她,最后终于如愿让琳达生下孩子。瓦利(《丹麦人的事迹》中瓦利的名字为Bous)''出生的第一天,尚未梳洗就长大,然后持弓杀了[[霍德尔|黑暗之神霍德尔 Hoder]]。''
!! Rindr在《茅盾:北欧神话初探》里的故事
鲁瑟尼斯(Ruthenes,即俄罗斯)国王''比尔林(Biling)''有一独生女儿,名为''琳达(Rinda)''。虽已到了出嫁的年龄,可她却不肯选择夫婿。
比尔林的国家正在遭受侵略,但比尔林太老了,不能打仗,又没有可信托的勇士,因此比尔林颇为忧虑。一天,比尔林的宫殿里忽然来了一位生客,他穿着灰色的外套,戴一顶阔边的帽子。这人就是''奥丁'',他是为了要得到琳达而来的。他替比尔林带兵,打败了敌人,然后请娶琳达为妻。比尔林是答应了,可是当奥丁(人们并不知道是奥丁)在琳达面前说出他的意思并想要和她接吻的时候,琳达在这位求爱者的脸上很重地打了一下,就跑走了。
''奥丁''第二次假装为一个银匠,再到比尔林的宫里。他用金和银铸成了各种精巧的工艺品献给''比尔林'',而且不要别的报酬,只愿得琳达为妻。结果,他又结实地吃了琳达一下耳光。
第三次,奥丁变成一个年轻的武士。不料琳达也不爱少年人,很粗暴地推开奥丁,竟使他跌了一跤。这把奥丁激怒了。他作出''鲁纳文字的神咒''来,对琳达一指,琳达就昏倒。当琳达再醒时,年轻武士已经不见,琳达则成了失心疯;医生们都没有办法。后来有一个自称为''瓦克(Vecha,或Vak)''的老妇人说自己能治琳达的病。但这老妇人其实又是奥丁,他先用热水给琳达洗足,继而说要治琳达的病,须得有一间密室,而且要把琳达手足束缚;这样,奥丁就强迫琳达做了他的妻子。
在这里,琳达是''冰冻的大地之人格化'',坚执地拒绝了太阳(奥丁的象征)的拥抱。但在春雨来到时(用热水给琳达洗足),冻地也终于回春,从寒冰下解放,受到太阳的拥抱。然后,渐长的夏日——''瓦利'',也出来了。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
[[霜巨人伊密尔 Ymir]]从脚上生出来的儿子,六个头的巨人。
在希腊神话中,Ceroessa(古希腊语:Κερόεσσα Keroessa意为 "有角的")是''拜占庭奠基神话中的一位女英雄''。
她是伊欧和宙斯的女儿;埃帕弗斯Epaphus的姐姐;拜占庭创始人''拜萨斯''的母亲,她的叔叔是波塞冬。
瓦利(Váli),他是[[⚡众神之父奥丁(神圣) Odin]]和[[琳达 Rindr]]所生的孩子,是''自然之神'',出生的目的是为了报[[光明之神巴德尔 Baldr]]被杀之仇。
奥丁由预言中得知,''巴德尔''难逃被孪生兄弟[[黑暗之神霍德尔 Hoder]]误杀的命运。奥丁又继续追查其它预言(一说是由赫尔莫德受命去查出来的),得知如果和女巨人琳达生下的孩子,将可报巴德尔被杀之仇。于是奥丁用计强迫了琳达,与她发生关系后,琳达怀孕生下了瓦利。
他出生第一天就长大成人,尚未清洗也没梳头,就拿了弓箭杀死了霍德尔。北欧人忌讳同族相残,才出生一天的瓦利,尚未梳洗,此时的瓦利可以算是奥丁的家人也可不算,所以可以杀死同样是奥丁之子的霍德尔。在诸神的黄昏之后,世界重生,他将会是幸存的神。
在神话中,还有另一个也叫[[瓦利|🐺瓦利 Vali(son of Loki)]]的角色,他是洛基和西格恩女神的孩子,巴德尔之死的罪魁祸首其实是洛基,所以奥丁将他的孩子''瓦利''变成狼,让他咬死了他的兄弟纳尔弗,用纳尔弗的肠子捆绑洛基,让洛基接受处罚直到诸神的黄昏到来。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/d/da/Wadjet_%28Deity%29.png/440px-Wadjet_%28Deity%29.png"
caption:"埃及眼镜蛇"
width:"300px"
align:"right"
>>
瓦吉特一直是下埃及的守护神,后来上下埃及统一后,便与上埃及的秃鹫女神奈赫贝特一起成为埃及的守护神。瓦吉特盘绕太阳的形象名为神圣的毒蛇(uraeus),是下埃及王冠的象徽。
作为守护女神,瓦吉特的形象乃蛇首人身,或单以蛇的形象出现——这蛇通常是当地常见的毒蛇,埃及眼镜蛇——有时她被描述为拥有''两个蛇头的女人'',有时则是''人首蛇身''。
瓦吉特与古埃及神祇中的[[巴斯特 Bastet|巴斯特 Bastet]](或巴斯梯特)有极大关连。巴斯特是个凶猛的女神,猫首人身,以战士及保护者的姿态出现,此太阳女神的眼睛后来成为了[[荷鲁斯之眼|𓂀荷鲁斯之眼 Eye of Horus]]、[[拉之眼|拉之眼 Eye Of Ra]]及火焰之女。帕尔—瓦吉特亦有一所荷鲁斯的圣所,太阳神之子被视为法老。之后的一段长时间,瓦吉特与[[伊西斯 Isis|伊西斯 Isis]] 及很多其他神祇有所关连。
《申命记》,是《圣经》全书也是《希伯来圣经》的第5本书。这本书含有对耶和华的百姓发出的有力信息。在旷野流浪了40年之后,以色列的子孙正站在应许之地的门槛上。在这个时候,摩西写下此书来阐述他们的前景;他们在约旦河的对岸会遭遇的困难和摩西向百姓提出''最后训示''。
基本内容就是摩西的演讲。
古代作家认为,在第一位国王罗慕路斯 Romulus(传统上为公元前 753-717 年)或其继任者努玛 Numa(公元前 717-673 年)统治期间,对终点的崇拜已被引入罗马。现代学者以不同的方式将其视为早期万物有灵论对边界标记内在力量的崇敬的延续,或者视为罗马对原始印欧人信仰与财产分割有关的信仰的发展。
[img[https://upload.wikimedia.org/wikipedia/commons/d/dd/Design_for_a_Stained_Glass_Window_with_Terminus%2C_by_Hans_Holbein_the_Younger.jpg]]
//Terminus is often pictured as a bust on a boundary stone, here the concedo nvlli or concedo nulli means "I yield no ground".//
|!父母 |[[🤬不和女神厄里斯 Eris]] |
|!标志 ||
|!对应罗马神 ||
!! Personification of pain
In Greek mythology, Algea (Ancient Greek: Ἄλγεα; singular: Ἄλγος Algos) is used by Hesiod in the plural as the personification of pain, both physical and mental. They were the bringers of weeping and tears.
Algos in Greek is a neuter noun literally meaning "pain". The name is related to the word suffix '-algia' denoting a painful condition.
耶稣基督到山上开始教导门徒,包括天国的''八种福份'':
# ''渴望满足心灵需要的人''(意识到自己的精神需要 conscious of their spiritual need)(《马太福音》中译作神贫:甘贫,乐道,在天主面前谦卑,不自满)
# ''哀恸''(mourn,为世上的罪恶而哀伤)
# ''性情温和''(the mild-tempered,又译作温良)
# ''饥渴慕义''(hungering and thirstinge for righteousness)
# ''富于怜悯的人''(the merciful)
# ''心地纯洁''(the pure in heart, 又译作心里洁净)
# ''促进和睦''(the peacemakers,又译作缔造和平)
# ''为正义受迫害''(have been persecuted for righteousness’ sake)
他将门徒称为‘地上的盐’和“世上的光”,并且解释人进入天国需要具有怎样的公义;与那时犹太教领袖虚有其表的公义截然不同。
他教导门徒祷告,''不要作伪善的施舍和祷告'',要“先求他的国和他的义”,不必为生活所需担心。关于人际关系,基督说:“无论何事,你们愿意人怎样待你们,你们也要怎样待人。”耶稣带给信徒的一个应许,就是:“你们祈求,就给你们;寻找,就寻见;叩门,就给你们开门”。群众听到他的话,都觉得惊奇,因为他的教训很有权威,不像他们的''抄经士''。
<<card
text:"
你们听过有话说:‘''以眼还眼,以牙还牙。''’( life for life, eye for eye, tooth for tooth, hand for hand, foot for foot. //[[Exodus 21:22-24|出埃及记 The Book of Exodus]] states//)我倒告诉你们,不要跟邪恶的人对抗。''有人打你的右脸,就连左脸也转过来让他打''。有人想要告你,想得到你的内袍,就连外袍也给他。有掌权的人强迫你服役,要你走一里*路,就跟他走两里。有人求你,就给他;有人请你借钱给他,不要转身离开。
<br><br>
你们听过有话说:‘要爱你周围的人,恨你的敌人。’(//[[Leviticus|利未记 Book of Leviticus]]// 19:18)我倒告诉你们,要爱你们的敌人,为迫害你们的人祷告。这样,你们就能表明自己是你们天父的孩子了;因为他让太阳出来照在好人身上,也照在坏人身上,降雨给正义的人,也给不义的人。__你们只爱那些爱你们的人,有什么奖赏呢?收税人不也是这样做吗?__你们只向你们的弟兄问好,有什么了不起呢?__外族人不也这样做吗__?所以,你们必须是完美的,就像你们的天父是完美的一样。”
<br><br>
你们不要再为自己在地上积存财宝,地上有虫蛀,会生锈,也有贼挖洞来偷。你们倒要为自己在天上积存财宝,天上没有虫蛀,不会生锈,也没有贼挖洞来偷。你的财宝在哪里,你的心也在哪里。
<br><br>……
<br><br>
所以,无论什么事,你们希望别人怎样对待你们,你们就要怎样对待别人。
"
footer:"Matthew 5:43"
>>
!! [[主祷文 Lord's Prayer|https://www.wikiwand.com/en/Lord's_Prayer#introduction]]
(版本很多,录一个 ''1988 ELLC'')
Our Father in heaven,
hallowed be your name,
your kingdom come,
your will be done, on earth as in heaven.
Give us today our daily bread.
Forgive us our sins, as we forgive those who sin against us.
Save us from the time of trial, and deliver us from evil.
For the kingdom, the power, and the glory are yours,
now and for ever.
Amen<<fnote "犹太教、基督宗教和伊斯兰教的宗教用语,在礼拜和祷告时表示''同意或肯定''的意思。阿们一词的使用,可见于《圣经》和《古兰经》。''[[阿们|https://www.wikiwand.com/zh-hans/%E9%98%BF%E5%80%91]]最初用于犹太教'',后来为基督教所采纳。基督徒常在祷告或赞美诗,运用阿们作为总结和肯定。伊斯兰教每念诵《古兰经》的第一章之后,必以阿们作为结束语。<br>阿们的词根源自闪米特语族,乃“''坚定''”或“''确实''”的意思。《圣经》中,通常将阿们译作“''诚心所愿''”,但在英文中,往往会译为“实在的(verily)”、“真诚的(truly)”或“就会这样的(so be it)”。一些神学家和学者普遍认为阿们是古埃及神祇阿蒙(有时也被称为阿门)的衍生词。《圣经》的记载显示,从摩西时代的至基督教时代,此用词都是常用的,而且词意经常反映在经文当中">>.
----
<<showfnotes>>
<<<
话那布里阿瑞俄斯,当初父亲妒恨他,
还有科托斯和古厄斯,用坚实的锁链捆住他们。
他顾忌他们超凡的傲气、相貌
和高大身材,把他们藏在道路通阔的大地之下。
在那儿,他们在地下住所里苦不堪言
受困于世界的尽头,广袤大地的边缘,
长久以来历尽折磨,心灵饱受创伤。
然而,克洛诺斯之子和所有永生神们——
秀发的瑞娅和克洛诺斯因爱生下的孩子们,
在大地该亚的忠告下,使他们重见天日。
因为,她从头告诉神们所有真相:
他们与三神联手将获得胜利和辉煌的荣耀。
他们苦战多年,历尽辛劳,
双方对峙,激战连绵,
提坦神们和克洛诺斯的孩子们,
高傲的提坦们在俄特吕斯山,
赐福的神们在奥林波斯山—
秀发的瑞娅和克洛诺斯同欢生下的孩子们。
彼此为敌,心中愤怒难消散,
他们苦战不休已整整十年,
这场恶战难以脱身也看不到头,
双方势均力敌,天平上难定成败。
但是,当他给他们合宜之物,
只供神们食用的琼浆玉液,
当他们胸中重新涌起家气,
[在吃过琼浆和甜美的玉液之后,]
神和人的父对他们说道:
“听我说,该亚和乌兰诺斯的出色儿子,
我要告诉你们心里的话。
大家相互作对实在太久了,
为了胜利和权力,天天打个不停,
提坦神和我们这些克洛诺斯的后代。
你们有强大的威力和不可征服的手臂,
在苦战中对峙提坦吧,好好展示出来。
莫忘了我们的友好情谊,从前你们
困在残酷的锁链里,如今得见天日,
全靠我们的好意才从幽暗的阴间得救。”
他说罢,无懈可击的科托斯回答道:
“哎呀,好神王,你说的咱们都懂。
我们老早就晓得,论才智和见识你比谁都强。
你是永生者逃离冰冷厄运的救星。
亏得你明智,我们才能离开幽暗的阴间,
扭转自己的命运,摆脱无情的锁链,
意想不到地回到这里,克洛诺斯的王子啊!
所以,我们认真想过,拿定了主意,
要强力支援你们这场苦斗,
和那些提坦展开连绵激战。”
<<<神谱
''"Hundred-Handed Ones"'', or ''"Hundred-Handers"''
每个巨人有100只手臂和50个头。
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
他们还生下了3个[[百臂巨人 Hecatoncheires]]:
<ol>
<$list filter="[all[tiddlers]tag[百臂巨人 Hecatoncheires]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
在《伊利亚特》中被称为百手巨人。
<<<
[[该亚|🌍大地女神盖亚 Gaea]]和[[乌拉诺斯|天空之神乌拉诺斯 Uranus]]还生下别的后代,
三个硕大无比、难以称呼的儿子,
科托斯、布里阿瑞俄斯和古厄斯,全都傲慢极了。
他们肩上吊着一百只手臂,
难以名状,还有五十个脑袋,
分别长在身躯粗壮的肩膀上。
这三兄弟力大无穷让人惊骇。
<<<神谱
|!父母 |[[Saturn|🌾丰收之神克洛诺斯 Cronus]] |
拉齐奥(Latium)首任君主。曾拒绝女巫的追求,后遭到迫害,其事迹亦反映于相关古典作家之著述,具有重大的宗教影响与历史意义。
|!父母 |[[厄庇墨透斯 Epimetheus]] and [[🎁潘多拉 Pandora]]|
|!配偶 |[[丢卡利翁 Deucalion]] |
|!标志 ||
|!对应罗马神 ||
阿尔戈利斯城特罗岑国王(the king of Troezen, city in Argolis)
他被欧里庇得斯描述为''佩罗普斯最虔诚的儿子'',是个智者,并且精通理解爱琴海所寻求的神谕。
在希腊神话中,''他是色萨利拉里萨''的''拉皮斯国王( Lapiths of Larissa in Thessaly)'',也是[[忒修斯 Theseus|忒修斯 Theseus]] 最好的朋友。
|!父母 |[[🤬不和女神厄里斯 Eris]] |
|!标志 ||
|!对应罗马神 ||
In Greek mythology, Ate, Até or Aite (/ˈeɪtiː/; Ancient Greek: Ἄτη) was the goddess of ''mischief, delusion, ruin, and blind folly, rash action and reckless impulse who led men down the path of ruin''. She also led both gods and men to rash and inconsiderate actions and to suffering.
''凯撒大帝/罗马共和国的独裁者''
盖乌斯·尤利乌斯·恺撒(前100年7月12日—前44年3月15日),或译儒略·恺撒,史称恺撒大帝或罗马共和国的独裁者,罗马共和国末期的军事统帅、政治家,是罗马共和国体制转向罗马帝国的关键人物。他也是拉丁文散文的作者。
恺撒出身贵族,历任财务官、大祭司、大法官、执政官、监察官、独裁官等职。前60年与庞培、克拉苏秘密结成前三头同盟,随后出任高卢总督,用了8年时间征服高卢全境(现在的法国),跨越莱茵河袭击了日耳曼(现在的德国)、渡过英吉利海峡到不列颠(现在的英国),最远曾到达日斯巴尼亚 (现在的西班牙)、托勒密王朝统治的上埃及。''西元前49年'',他率军占领罗马,打败庞培,集大权于一身,实行独裁统治,制定了儒略历。
''前44年'',恺撒被布鲁图所领导的元老院成员暗杀身亡。恺撒身亡后,其甥孙及养子''屋大维''击败安东尼开创罗马帝国并成为第一位帝国皇帝。
盖尔罗德,(英:Geirrod、Geirröd)。是北欧神话中的一名霜巨人,他的两个女儿是格嘉普(Gjalp)、 格蕾普(Greip)。
故事出现在《散文埃达》中:一日,化身为鹰的[[🦹邪神洛基 Loki]]被盖尔罗德捉到,盖尔罗德威胁洛基将[[⚒️雷神托尔 Thor]]骗到他的宫殿里,而且不能带武器,洛基无奈,只好照做。
Thor和洛基半路于女巨人[[格莉德 Grid]]家中休憩──格莉德是奥丁的情人之一──她趁洛基熟睡时,警告Thor这是一场骗局并把自己的不断之杖、绑腿、铁手套借给了他。到了盖尔罗德的城堡,Thor先是杀了躲在椅子下准备陷害他的格嘉普和格蕾普,在回头杀了盖尔罗德。
在《诗体埃达》则另外提到一名也叫盖尔罗德的人类国王,是奥丁的养子,后来因为他为人残酷而被奥丁给杀了。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/5/53/Geb.svg/400px-Geb.svg.png"
caption:"大地之神"
width:""
align:"right"
>>
''盖布''(Geb;又称作塞布,Seb或凯布,Keb)是古埃及的''大地之神与生育之神'',蛇神。[[舒|舒 Shu]]与[[泰芙努特|泰芙努特 Tefnut]]的儿子,[[九柱神|九柱神 Ennead]]之一。
古埃及人认为是''盖布的笑引发地震''。
古埃及的这一信仰与世界的其他地区有所不同。__在其他的神话中,大地之神往往表现为女神__。
盖布的形象为''鹅头人身,身体呈绿色或黑色''。盖布关押着邪恶的人的灵魂,使他们无法进入天堂。
因与自己的妹妹 [[努特 Nut |努特 Nut]] 形影不离而导致世间生物没有生存的空间,于是其父亲空气之神舒受到太阳神拉的命令,将两位恋人分开,故埃及壁画中常可看到,以四肢罩著大地形成天空的女神与平躺形成大地的盖布被两人的父亲舒以跪姿分开,也因此在部分地区的神话中也视回音为盖布呼唤分开爱妻的呼唤。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Geb_and_Nut02.jpg/600px-Geb_and_Nut02.jpg"
caption:"舒以双手托起代表天空的努特,在他之下的是盖布。"
width:"300px"
align:"left"
>>
盖布与努特结婚生了[[欧西里斯|欧西里斯 Osiris]]、[[伊西斯|伊西斯 Isis]]、[[赛特|赛特 Set]]和[[奈芙蒂斯|奈芙蒂斯 Nephthys]]。
在古老的世界里,神和人共同生活,共同用餐。但是,普罗米修斯在墨科涅聚会上使用计谋,不公平地分配牛肉,一份是用光亮的脂肪裹好的骨头,一份是丰肥的牛肉和内脏,宙斯代替诸神选取骨头,人类则分到牛肉(《神》,行538-541)。这次聚会以后,人不再像神一样生活。人在下界,神在天庭,就此分离。“从那以后,生活在大地上的人类为永生者们在馨香的圣坛上焚烧白骨”,祭祀神灵(《神》,行556-557)。
宙斯遭到这一次蒙骗,愤怒之中,“不再把不熄的火种丢向桦木”(《神》,行563),以阻止人类用火煮熟分配中得到的牛肉。但普罗米修斯第二次蒙骗他,在走天上的火,藏在一根空茴香茎里,带给大地上的人类(《神》,行565-566:《劳》,50-52)。
宙斯远远看见人间的火,“心里似被虫咬”(《神》,行568),使出了最后一招,也就是把最初的女人[[🎁潘多拉 Pandora]]送给[[厄庇墨透斯 Epimetheus]],从而给人类带去不幸(《劳》,行56-58)。
普罗米修斯挑战宙斯,上演了一场接一场的斗智好戏,但最终还是败下阵来。宙斯为了惩罚他,把他缚在一根柱子上,又派一只长翅的鹰“啄食他的不朽的肝脏:夜里它又长回来。和那长翅的鸟白天啄去的部分一样”(《神》,行521-525)。
鹰的吞噬日复一日,没个尽头,令人绝望。普罗米修斯忍受的苦楚远甚于两个兄长。后来,在宙斯的授意下,英雄[[💪大力神赫拉克勒斯 Heracles]]杀死这头鹰,才免除了他的不幸(《神》,527-528)。但宙斯的愤怒没有完全平息,普罗米修斯始终被“困在沉重的锁链里”(行616)。
在《神谱》中,只有神王的强敌才会被困在沉重的锁链里,比如[[🌾丰收之神克洛诺斯 Cronus]]所忌惮的[[百臂巨人 Hecatoncheires]](行618,行652,行659),还有宙斯历时十年才战败的泰坦神(行718)。
<<<
From her is the race of women and female kind: of her is the deadly race and tribe of women who live amongst mortal men to their great trouble, no helpmeets in hateful poverty, but only in wealth。
<<<Hesiod, the Theogony,(590-594)
[[⚖️真理与正义之神佛尔塞提 Forseti]]("Chairman", "Presiding one." )是[[光明之神巴德尔 Baldr]]和[[南娜 Nanna]]所生的儿子,诸神中最聪明正直、最善雄辩的一位。当他出生后,神们就举他为[[十二大神之一|Nordic Twelve Gods]],且以为真理与正义之神。他的宫殿名为''格利特尼尔(Glitnir,闪耀)'',银顶金柱,远远地就可望见。
他每天听受诸神和人类的诉讼,定判决词。他很公平,又善辩论,所以他的判决没有一个人不心服;在他面前所起的誓,没有人敢背叛,如果背叛了,就要受到他的正直不私的处罚:死。他又是立法者,''据说北欧人最初的法律就是这位神订立的''。关于这点,有传说如下:
古代的''弗里斯兰人(Friesians)''要创造一种大家共守的法律,特推举了十二位最聪明的长老办理此事。这十二位长老搜集了各部落和各民族的风俗习惯,作为法典的基本材料。这一步工作完成之后,十二位长老乃驾一小船,想找一个清净的地方,细心研究那些材料。可是他们的船刚刚离岸,暴风雨就来了,小船被吹入海中,迷了方向,十二位长老也失却驾驶的能力。
于是这战栗的十二位长老开始祷告,向''佛尔塞提''求援。突然他们看见他们中间多出一位,成为十三个了。这生客没有说一句话,就坐在舵位上把舵,向波浪最高的地方前进,却不多时,就到了一个岛上。生客就离船上岸,十二位长老也跟了上去。生客又取战斧击地,绿草中立刻喷出一缕清泉。生客饮泉,十二位长老也学他的样。于是他们都在草地上坐下。十二位长老开始审视这位生客,觉得他和他们十二个每人都有点相像,却又实在是另外一个人。
突然生客发言了。他的话语始而徐缓,继而渐快渐兴奋。他在口述一部法典,很周到很巧妙地包括了十二位长老所收集的、各部落民族现有习惯风俗的一切优点。当说完的时候,这位生客突然不见了。十二位长老始知这位生客就是佛尔塞提,他亲自来为他们订定法律。于是他们叫这小岛为''[[佛尔塞提岛(即Heligoland,神圣之岛)|黑尔戈兰岛 Heligoland]]'',永远为北欧人所尊敬<<fnote "在此岛上禁止一切战斗及流血之事。">>,就是维京人也不敢侵犯。
重大的审判,时时在这“神圣之岛”上举行。审判官必须先饮岛上的泉水,以纪念这位真理与正义之神。这泉水亦被视为神圣,曾饮此水的牛羊也不得再杀。据说佛尔塞提只在''春夏秋三季审判'',所以北欧人在冬季不进行审判;他们以为阴沉黑暗的冬季不宜于光明正直之心存在,所以审判是不适合的。
在[[阿斯加特|亚萨神国阿斯加特 Asgard]]的神祗中,只有佛尔塞提似乎与“诸神之黄昏”无关;他不曾参加诸神的最后之战。
----
<<showfnotes>>
<<<
在那里还住着幽深的夜的儿子们,
睡眠和死亡,让人害怕的神。
灿烂阳光从不看照在他们身上,
无论日升中天,还是日落归西。
他们一个漫游在大地和无边海上,
往来不息对人类平和又友好;
另一个却心如铁石性似青铜,
毫无怜悯。人类落入他手里
就逃脱不了,连永生神们也恼恨他。
<<<神谱
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[title]'/>
</div>
''示剑''(''Shechem'' /ˈʃɛkəm/;''Sichem'' /ˈsɪkəm/,意为“肩膀”;天主教译舍根)是阿玛尔奈文书中提及的一座迦南城市,在希伯来圣经中是一座玛拿西以色列人的城市,是''以色列王国最初的首都''。传统上与纳布卢斯相连。
son of [[犹大 Judah (son of Jacob)]]
!! [[神使赫尔莫德 Hermod]]
[[赫尔莫德(Hermod)|神使赫尔莫德 Hermod]]是[[奥丁|⚡众神之父奥丁(神圣) Odin]]的儿子,善飞行,因此成为奥丁的特别侍从,专事''跑腿''的工作。他又是诸神的使者,有什么送信的事,都是他的责任。奥丁的无敌之矛[[冈格尼尔|冈格尼尔 Gungnir]]常由赫尔莫德荷着,他也是除奥丁之外唯一能骑那[[🐴八脚马史莱普尼尔 Sleipnir]]的神,平时这马除了奥丁之外是谁都驾驭不了的。
奥丁曾赐盔甲给赫尔莫德,遇到打仗的时候,他就穿戴起来;据说他虽是文职的“行官”,可是也喜欢战争,常常和[[⚔️女武神瓦尔基莉 Valkyries]]到战场上拣选战死的勇士带到''瓦尔哈拉宫''中。平时他出门送信时则带一杖,名为''加姆班泰因(Gambantein)'',作为他的职务的标记。
赫尔莫德的故事多和各神有关,已散见于前;而他自己独有的故事则为奉奥丁之命到芬兰去寻找预言者''罗斯希奥夫(Rossthiof)''询问未来之事。在这个故事里则说是罗斯希奥夫预言[[光明之神巴德尔 Baldr]]将被谋杀,而且预言奥丁须得娶[[琳达|琳达 Rindr]]为妻,方能再生一子报仇。
!! [[💂🏻破晓之神海姆达尔 Heimdallr]]
而亚萨诸神中另一位没有代表着什么自然现象的神,就是虹桥的守望者[[💂🏻破晓之神海姆达尔 Heimdallr]]。他是奥丁与[[九个女巨人|扬波之女 Nine Daughters of Aegir and Ran]]所生的儿子。一天她们在海边躺着休息,被奥丁看见,遂同时并淫之;后来九人合而共生''海姆达尔''。在刹时间内,以大地之力、海之湿气、及太阳的热量为营养的海姆达尔立刻长大成人,于是便到[[阿瑟加德|亚萨神国阿斯加特 Asgard]]找他的父亲。
那时,诸神刚用水、火和空气建筑了[[🌈彩虹桥 Bifrost]],正好在物色一位可靠的守望者,以防霜巨人从此桥攻入阿瑟加德。恰好海姆达尔来了,诸神一见就同意任命他为虹桥的守望之神。
为了使海姆达尔成为最好的守望者,诸神就给他最灵敏的耳朵,能在桥上听见地面上草生长的声音,或是羊毛从羊背上生长出来的声音;又给他最好的眼睛,能在黑夜里看见千里外的事物,此外又使他像鸟一样不需睡眠。但他也有自己的''宫殿希敏约格(Himinbjorg,天卫之宫)''。另外,他的马叫''古尔托普(Gultopp,金顶)''。
海姆达尔的武器是一把快刀和一支号角,号角名为''加拉尔(Giallar,呼喊者或歌唱者)''。如果看见有敌人来,他就会吹这号角,那声音天地冥三界都能听得。海姆达尔有时将此角挂在[[🌲世界之树 Yggdrasil]]的高枝上(此时那角就是新月),有时则沉在[[⛲密米尔之泉(智慧之泉) Mímisbrunnr]]中。他常穿白色的服装;而且最特别的是他有一口金牙齿,故又有别名叫''古尔林塔尼(Gullintani,金齿者)''。
当[[洛基|🦹邪神洛基 Loki]]尚未被逐出''阿瑟加德''的时候,有一夜,他溜进了[[女战神弗蕾亚 Freyja]]的卧室,想偷她片刻不离身的[[📿项链布里希嘉曼 Brisingamen]],可是却被在虹桥上观望的海''姆达尔''看见了。他立即去捉拿这个贼,和洛基变形斗法,最后终于捉住了他,取回弗蕾亚的项链。__这件事是洛基所深恨的,所以后来“诸神之黄昏”到来,洛基从囚禁处逃出,杀上阿瑟加德之后,便与''海姆达尔''苦战,同归于尽。__
''海姆达尔''又名为利格(Rig)。关于这个名字,有一个故事,是北欧人对社会中的阶级之由来的想象。
据说海姆达尔有一次到地上游历,在海边看见一间破茅屋,住着一对老夫妻,名叫''艾(Ai,曾祖父)''和''爱达(Edda,曾祖母)'',他们用粗劣的食物招待海姆达尔。海姆达尔自称为''利格'',在这户人家住了三天,每天晚上都睡在老夫妻的中间。后来,爱达生了一个皮肤糙黑、身材粗陋的儿子,取名为''萨尔(Thrall,奴隶)'',长得很壮实,喜欢做笨重费力的事。他娶一个丑陋的姑娘''瑟尔(Thyr,女奴)''为妻,那也是一个丑而粗壮的女子。他们生了十二个儿子和九个女儿,子又生孙,所有''“奴隶”''阶级的人都是从他们传下来的。
自称为利格的海姆达尔继续向前走,到一片耕种过的土地上,在一个农夫的小康之家住下。这家的男主人名叫''亚菲(Afi,祖父)'',女主人名叫''亚玛(Amma,祖母)'',他们用很好的食物招待这个客人;海姆达尔住了三天,每天晚上都睡在夫妻的中间。后来,亚玛也生一子,红发红脸,取名为''卡尔(Karl,农夫)'',长大后善于农事,后娶一妻''索娜(Snor,儿媳)'',生下十二个儿子和十个女儿,是为农民与牧人,即''“自由民”''阶级的祖先。
海姆达尔第三次的住处,是在一个体面的堡寨内,主人是一对夫妻,男的名叫''法迪尔(Fadir,父)'',女的名叫''莫迪尔(Modir,母)'',穿得很讲究,招待客人的食物也非常精美。海姆达尔住了三天,每天晚上还是睡在夫妻的中间,然后就回去了;不久,莫迪尔生一金发的儿子,皮肤洁白,英俊潇洒,取名为''雅尔(Jarl,贵爵)''。他长大后,喜爱的是鹰马和狩猎;这时海姆达尔就又出现在他面前,认他为儿子,将自己的名字“利格”给他,使他成为自己的继承人,又教他鲁纳文字,并劝他去取得自己的地位和光荣。于是雅尔在战争中获得许多土地和财富,后娶''赫希尔(Hersir,领主)''美丽的女儿''爱娜(Erna,活泼)''为妻,生下十一个儿子,是为斯堪的纳维亚诸邦''王室及贵族之始祖''。
这个故事,表示了北欧人强烈的阶级观念。''他们认为阶级乃是神创立的'',并且正如虹桥有三色,由水火气三元素组成,人类的阶级因此也有三个:身为统治者的贵族、被压迫的奴隶,以及中间的“自由民”性质的农民。
赫尔莫德(Hermóðr)。在《诗体埃达》中''完全不见这位神祇的出现'',据推测是《新埃达》的作者史洛里·斯图拉松编撰出来的人物。
在《新埃达》中,说明他是[[⚡众神之父奥丁(神圣) Odin]]之子,在就他职掌的职务来看,其实更像一位仆人。也有人认为,赫尔莫德其实是奥丁的另一个名字。赫尔莫德专门''从事跑腿、传令的职务'',他拿著一把''加姆班泰因(Gambantein)杖''来作为他的职务标记;他也是在所有故事中,除了奥丁外,唯一骑过[[🐴八脚马史莱普尼尔 Sleipnir]]的神。
在[[光明之神巴德尔 Baldr]]之死的时候,赫尔莫德曾经自告奋勇进入死之国去拜托死国女王海拉,好让巴德尔复活,这时他就是骑著跟奥丁借来的''神马斯莱布尼尔(Sleipnir)''。
赫尔莫德的职务虽然比较接近文官,但他也喜欢战争,据说他也常和[[女武神们|⚔️女武神瓦尔基莉 Valkyries]]一起上战场挑选英灵。
第四十五章至五十七章专论''神的仆人'',首先在前三章论到祂要施行救恩,是由于选民之国在扮演“神的仆人”的角色上失败了,因此他要唤醒以色列人认清“选民”身分的尊贵,盼望他们自觉之后应奋兴起来,成为复兴神国的核心。
接著第五十二章至五十四章神国的复兴当以神的义仆为典范,让我们效法祂的舍己,成为多人的赎价,使神与人的关系重新建立起来,如同夫妻破镜重圆。但是蒙救赎的人必须“行事为人”与“蒙召的恩”相称,在各样的事上表明是救恩的人。
以赛亚书第一章至第六章,先知''从异象看到神的圣洁和公义'',同时也看到百姓在恩典中的堕落,圣洁的神不断呼唤选民弃恶从善,然而选民硬心以致神本著祂的公义施行管教,并且差遣先知传警告,引导他们走上义路。由此可见神的恩典何等浩大!若非神满有怜恤,锡安就像所多玛、蛾摩拉一般被灭绝了。
!! 以赛亚见异象
[[🗣️以赛亚 Isaiah]]在乌西雅王死的那年,看见异象,他看见神坐在很高的宝座上,祂的衣裳垂下,遮满圣殿。其上有事奉神的[[撒拉弗天使(Seraphs)|炽天使 Seraph]]侍立,天使各有''六个翅膀'':用两个翅膀遮脸(不敢直接看主的荣光),两个翅膀遮脚(表示谨慎脚步而敬虔),两个翅膀飞翔(表示很快速度完成奉差遣的使命)。他们彼此呼喊著说:“天军的统帅耶和华多么圣洁!多么圣洁!多么圣洁!整个大地都充满了他的荣耀。”。
!! 用红炭除去罪孽
以赛亚看到这异象时,神让他说:“祸哉!我灭亡了,因为我言谈不洁,又住在言谈不洁的民中,还亲眼见大君王万军之耶和华”。
有一位天使飞下来,用坛上取下来的烧红的炭,沾了他的口,有说他的罪孽被除掉,蒙赦免了。从这一段知道,人一站在圣洁的神面前,自然地会想起自己的过错。从此也可知道,言语上的灵修与圣洁是最难的,若言语能圣洁无过错,便能成为完全人(雅三:2)。这也是预言新约时代,神要用''焚烧的灵''除去祂百姓的罪孽。
!! 接受指派
真神向众人发问“我可差遣谁呢?”只有以赛亚勇敢接受神的差遣。
<<card
text:"
他说:“你去对这族人说:‘你们会一听再听,却不会明白。一看再看,却不会了解。”
<br>“你要使这些人的心麻木,耳朵失灵,眼睛紧闭,这样,他们的眼睛看不见,耳朵听不见,心里也不明白,他们就不能回头改过,不能被治好。”
<br>我追问:“耶和华啊,这会持续多久呢?”
<br>他回答:“直到城镇荒废,无人居住,房屋空无一人,土地沦为废墟,一片荒凉。直到耶和华把这里的人赶到远方,整片土地都完全荒废了。“
<br>“''但以色列人中有一小部分会留下来,这些人会再次被投进火中。以色列人就像大树,像一棵橡树,被砍下后留下残干,残干上会长出圣洁的新芽。''‘
"
footer:"Isaiah 6:9"
>>
第五十八章至六十六章论及神的救恩如何使地上万族都得见祂的荣耀。在前三章说明救恩的显明,是藉著蒙恩的人表现出敬虔的信仰生活及公平待人的处世方法(五十八:13),以发出主荣耀的光辉,使黑暗所遮盖的大地都得见真光(五十九:1-13),并且接受真光。
在第六十一至六十三章,指出''救主''亲自显明祂就是真光,祂被神的灵膏立,把好信息传给谦卑的人,安慰一切悲哀的人(六十五:1-2)。祂的公义如光发出,为神的选民施行拯救,击退仇敌,建立耶路撒冷成为可赞美的城邑(即属灵的教会),使全地的人都能归入,得享永远的荣耀。
在第六十四至六十六章里先知在回顾过去的历史之后,又看到未来神大显荣耀的景像心中对于主的大爱感念不已,但是当祂面对现实的环境,看到百姓仍然背逆,先知就献上恳切的代祷,愿神裂天而降,为神的百姓广施怜悯。神给予先知祷告的答复,并指出百姓受苦的原因,同时藉著异邦的蒙恩,将激动那背逆的以色列民发愤悔改,使神普救万民之目的得以达成;并且蒙恩的人得以在新天新地与神同住,分享神国的权柄及荣耀。
第一个段落是自第四十章至第四十八章,主要是说明神的救赎大计,在前三章论及“''谁来救赎''”。首先提到神是救赎者,他是创造主,也是救赎主,神救赎的大能不容置疑,因此神藉先知指出,他要透过外邦君王来拯救选民脱离巴比伦,这是人无法测透的事,由这一个已在历史上应验的预言,藉著祂的仆人必能成就一件新事,就是使万国都能承受救恩。
<<card
text:"
我从北方提拔了一个人,这个从日出之地而来的人会尊崇我的名。
他会践踏统治者(官吏),像践踏陶泥,像陶匠踩踏湿土。
"
footer:"Isaiah 41:25"
>>
接着先知在第43章至45章详述救赎的应许,并且藉著圣灵及仆人的工作而成全了救赎。
神的惩罚临到富有的“''[[大巴比伦|巴比伦大淫妇 Whore of Babylon]]<<fnote "指代世上所有上帝不认可的“错误”宗教。">>''”,也同时被称为与世界联合,骑在一只七头十角的兽上的“''大红龙''”。
那兽吞噬了她(大巴比伦陷落),但在哈米吉顿战争被基督和祂的军兵击败。
我看见一个天使从天而降,手里拿着无底深渊的钥匙和一条大锁链。 他抓住了龙,就是最初的那条蛇,也就是魔鬼[[撒但|👹撒但 Satan]],把他''捆绑1000年''。天使把他扔进无底深渊里,把深渊封闭,在上面盖印,使他不能再迷惑列国,直到那1000年结束。之后,他必须被释放一会儿。
那1000年一结束,撒但就会从监狱释放出来。他会出来迷惑大地四极的列国,就是[[歌革|歌革和玛各 Gog and Magog]]和''玛歌革'',召集他们投入战争,这些人的数目像海沙一样。他们向前推进,遍布整个大地,包围圣民的营地和上帝所爱的城。但有火从天而降,消灭了他们。迷惑他们的魔鬼被扔进有硫磺烈火的湖里,野兽和假先知早就在湖里了。他们会日夜受折磨,直到永永远远。
所有历代以来不信耶稣的人,都要在主耶稣的白色大宝座(Great white throne)面前受审,凡是名字没有写在生命册(The book of life)上的,都被抛进火湖里,这火湖就是第二次的死,记载于新约圣经启示录第20章,在火湖里永远无尽的“悲哀、哭号、痛苦”。
----
<<showfnotes>>
第七至十二章引出一个伟大的预言,就是''以马内利(Emmanuel)''<<fnote "以马内利,意为“''上帝与我们同在''”;(天主教汉译为厄玛奴耳;正教会汉译为耶玛砮伊勒)是圣经上出现的一个''名词'',由2个希伯来语单词(与我们同在)和(上帝)组成。这个名称在《希伯来圣经》中出现数次(以赛亚书 7:14、以赛亚书 8:8),在《新约圣经》中(马太福音 1:23)出现一次。">>和祂的国要来临,世上的政权都掌握在[[🙏弥赛亚 Messiah]]手中(十一:1-2),唯有深信“以马内利”的应许,才能带来更新的盼望及复兴(十二:1-8)。
!! 童女怀孕生子的兆头
预言救主弥赛亚是童女怀孕而生的,这就是兆头,是救主的记号;在基督教中译经中,有时往往把童女翻作“处女”,然而犹太原文经典里,''仅有“少女”之意''。
童女怀孕所生之儿子,要给他取名为''以马内利'',这以马内利是“神与我们同在”的意思。这个婴儿会成为救世主和统治者,重新带领信众回到应许之地。
在弥赛亚的国度里,信徒都能变为良善,和平相处。
----
<<showfnotes>>
!! 关于赫西俄德
公元前七百年间的赫西俄德是古希腊第一位有名有姓的诗人, 也 是欧洲第一位诗人, 因为, 他尽管稍晚于面目模糊的荷马, 但从地理概念来看, 其出生地泼伊俄提阿 (位于希腊中部, 因有丰盛的牧牛草场而得名 ) 才是真正的欧洲 。
荷马的后世声名比赫西俄德响亮得多, 但早在古希腊的古风时期 , 就流传着赫西俄德与荷马赛诗胜过荷马的故事,尼采年轻时考察过有关传闻 (《尼采早期文稿》, 卷二, 页306以下), 尽管查考出这故事是编出来的, 但古人编造这样的故事表明, 在当时的人们眼里, 赫西俄德诗作堪与荷马诗作比肩 。 在古希腊的古典时期 以前, 希 腊人已经习惯将赫西俄德与荷马并称, 而且赫西俄德之名往往在前。
作为诗人,赫西俄德与荷马非常不同。就文辞而言,赫西俄德''语文显得笨拙、粗糙些''(默雷的说法则过于夸张,参见《古希腊文学史》,孙席珍等译,上海译文版,1988,页57),这倒并非因为赫西俄德缺乏诗才——据传,''荷马出身贵族世家'',其诗作是为在显贵圈里诵唱的歌手们写的,''赫西俄德出身农家'',对贵族习规没兴趣。赫西俄德笔下没有英雄、美女,没有宏辞、壮举,''有的则是农人们操心的事情:筹划、劳作、交易、日常的艰辛乃至种种人间的不义''⋯⋯据说,''荷马“从上面”看人世,赫西俄德“从下面”看人世'',于是如今有人说 , 赫西俄德是两方第一个杜会批评家, 反贵族品味的先驱......
古人将赫西俄德与荷马并称自有道理:他们采用同一种诗律—六音步格律作诗,这兴许是当时唯一的诗律。以前人们通常认为荷马写的是叙事歌谣,赫西俄德写的是警示式的教喻诗,其实,''赫西俄德诗作也是叙事诗,只不过讲述的故事不同,而且的确比荷马更关注劳动、虔敬和正义''。无论如何,如希罗多德所言,赫西俄德与荷马并称的重要理由在于:希腊人赖以生活的宗教是赫西俄德和荷马首先形诸文字的。与荷马诗作一样,赫西俄德诗作不仅是古希腊伟大的诗篇,也是''古希腊宗教的原始经典''。
!! 关于神谱
用如今的话说,赫西俄德和荷马的诗作是古希腊最早的宗教经典(接着是品达和埃斯库罗斯)。''赫西俄德的《神谱》是迄今仅存的完整神谱诗,最早系统地记叙了古希腊诸神的统绪,在系统性上胜过荷马的诗''。
“神谱〞的篇名虽非原有,但确乎恰切,因为,诗中主要讲的不是宇宙或世界的形成,而是宙斯神族的家世,即便涉及宇宙的形成,也附着于宙斯神族的诞生这一主题。换言之,古希腊的宗教不是崇拜自然神(天地、山川),''而是崇拜个体性的神'',他们是一个大家族,相互之间有爱情(亲情、共契、姻缘),更有政治(倾轧、冲突、争纷)。因此,《神谱》的长度虽然大约只有《伊利亚特》一卷的篇幅,却不失为一部伟大的诗篇。
!! 创作年代
我们可以非常粗略地推算出赫西俄德的生平和创作年代。《神谱》大约写于''公元前730-前700年''。
从诗中谈论婚姻利弊的内容出发(行590起),我们可以推测他当时至少处于适婚年龄,也就是三十岁左右。他的出生年代因而不可能晚于前730年。从《劳作与时日》的记载来看,赫西俄德的父亲放弃航海生涯,返回故乡,应在三十岁以后(行650-651)。当时赫西俄德尚未出世,因为他生在阿斯克拉,一生只有一次航海经历,就是成年以后去卡尔克斯参加诗歌赛会。赫西俄德的父亲的出生年代因而在前750年以前,也有可能在前760年或前770年。《劳作与时日》写于父亲去世、兄弟分家产之际,可以粗略地推测在前720-前690年间。倘若这一推算无误,那么《神谱》就是迄今发现的最古老的古希腊诗歌,''比《伊利亚特》和《奥德赛》的成文时间(一般认为不早于前700年)还要早''。这也是公元前4世纪希腊人的普遍说法。
!! 结构
一般认为,赫西俄德作品由三部诗作组成:''《神谱》《劳作与时日》和《列女传》(仅存残篇)''。
《神谱》讲述“''诸神的世家''〞,从世界的起源、天地的分离,讲到乌兰诺斯一克洛诺斯一宙斯三代神王统治下的王朝世家,以及宙斯最终如何确立奥林波斯神族的权力和秩序。
《劳作与时日》关注''人类的世界'',不仅追潮人类从黄金时代渐次沦落至当下的黑铁时代,还耐心传授农夫在一年时光中应遵循的农作与节气法则。
《神谱》篇末记录女神与凡间男子的爱情,《列女传》接着讲述那些''与神们相爱的凡间女子'',以及她们所生下的英雄后代,最著名的英雄当属''赫拉克勒斯'',现今还能读到的《赫拉克勒斯的盾牌》正是《列女传》残篇的重要组成部分。这三首诗看似彼此独立,主述内容不同,相互沾不上边,其实却有不容忽视的关联。
# 最初的神及其后代:《神谱》
# 宙斯及其王权:《神谱》+《列女传》
# 人类:《神谱》行965起+《列女传》+《劳作与时日》
# 巨人:《列女传》
!! 神谱的政治意义
如果说神的家谱叙事是《神谱》的明线,''政治神话叙事则是一条隐约可见的暗线'',笔者尝试着提出一个有别于传统意见的看法。《神谱》主要讲述的不是宇宙或世界的形成,而是古希腊诸神的家世,即便涉及宇宙的形成,也是附着于诸神的诞生这一主题。序歌以后,最初的神和最初的繁行反映了世界的形成与格局,在克洛诺斯背叛乌兰诺斯以前,世界已然形成最初的秩序。随着父子争权故事登场,诗中上演了一幕幕政治神话的好戏:该亚的启示、库克洛佩斯的雷电武器、百手神的支援、斯梯克斯的子女加盟、瑞娅蒙骗克洛诺斯、宙斯诞生、普罗米修斯的计谋、提坦大战、提丰大战、宙斯吞下墨提斯、雅典娜诞生⋯⋯整部《神谱》的叙事都在为宙斯最终获取神权做准备,''换言之,《神谱》从头至尾就是一个政治神话。''
!! 写作手法
《神谱》严格遵循的两种诗歌创作手法,即''环形结构''和''三元结构'',也与政治神话叙事息息相关。所谓环形结构(composition annulaire ou circulaire),就是叙事者依次谈及一系列话题(A-B-C⋯),在某个关键话题停下,以相反的顺序依次重复刚才的话题(⋯-C-B-A)。这样一来,同一话题对称式地分布于叙事的首尾,两两呼应,环环相扣。
“环形结构”是口述文学的重要特点,在''荷马史诗''和[[希伯来圣经|旧约 Old Testament]]中尤其典型。这是古希腊早期诗歌的常见写法。《神谱》也不例外。
事实上,我们可以把整部《神谱》看成一个庞大的“环形结构〞。在赫西俄德的叙事中,''宙斯诞生神话是重中之重'',在这个中心事件前后,分别嵌入涉及人类世界的赫卡忒颂诗和普罗米修斯神话、宣告战争开端的斯梯克斯事件和交代战争结局的提坦大战。
往外层层推进,依次还有:刻托和福耳刻斯的妖怪子女被英雄所杀,对应宙斯击毙忤逆的妖怪王提丰;最初的神王的婚配(该亚和乌兰诺斯)标志某种''无序繁衍的开始'',最后的神王的婚配(宙斯和墨提斯)则''终结了这种繁行形态'';乌兰诺斯遭到偷袭,丧失自然生殖能力,并导致阿佛洛狄特诞生,而宙斯使计吞下墨提斯,改变自然生殖模式,并导致雅典娜从神王的脑袋出生。
最初的神和繁衍,对应最后的奥林波斯新神家族,最后,序歌中诗人与缪斯相遇,结语中女神与凡间男子相爱,首尾呼应,对称性地强调了神与人的关系。
# 序歌:诗人与缪斯相遇
# 最初的神;最初的繁衍
# 该亚和乌兰诺斯;阿佛洛狄特诞生
# 英雄杀死刻托和福耳刻斯的妖怪后代
# 斯梯克斯最先支援神王宙斯
# 赫卡忒颂诗
# 宙斯的诞生
# 普罗米修斯神话
# 百手神助阵宙斯大战提坦
# 宙斯与提丰之战
# 宙斯和墨提斯;雅典娜诞生
# 奥林波斯新神
# 结语:女神与凡间男子相爱
由此,整部(神谱》是一个以政治神话为中心的“大环”,环环相扣,其严谨和巧妙,令人叹服。其中的关键人物和中心事件,''正是赫西俄德笔下永恒而绝对的主角:神王宙斯''。一切都在为政治神话叙事服务,为这样的意图服务:宙斯最终将获得神权,重整神的秩序,开启人的世界——与''人类世界相关的政治神话在《列女传》和《劳作与时日》中得到延续。''
!! 3,神的数字
在赫西俄德笔下,如果说环形结构为政治神话服务,那么三元结构则体现诗人的政治理想。
''所谓三元结构,指数字3(或3的倍数)在《神谱》叙事结构中的重要作用''。
天神与大地的后代,也就是产生神王的三代家族,即天神家族、提坦家族和宙斯家族,一致遵循三元叙事规则。
比如,在天神家族中,有六个提坦男神六个提坦女神,三个库克洛佩斯,三个百手神,三个由天神精血生成的族群;在提坦家族里,大洋家族有三千个河神儿子和三千个大洋女儿,许佩里翁家族有日、月、黎明三个子女,克利俄斯家族有三个儿子,克洛诺斯家族有三男三女(唯一不遵循这个规则的是伊阿佩托斯家族,但与普罗米修斯和厄庇米修斯的微妙关联有关);在宙斯家族中,有三个时辰女神,三个命运女神,三个美惠女神,九个缪斯等等,不仅如此,宙斯的每一次联姻叙事基本占三行诗。
此外,我们还可以举出好些与三元叙事结构有关的别的例子,比如序歌中有缪斯的三次歌唱;真正的诗歌有三大主题,等等。
但在笔者看来,赫西俄德《神谱》中最为根本的三元结构,照旧与政治神话有关:乌兰诺斯、克洛诺斯和宙斯的三代神王与三次神权斗争。
''3是属神的数字,而不是属人的数字''。在《神谱》之后,《劳作与时日》讲述了人类起源神话(行106-201),也就是人类所经历的五个时期:''黄金时代、白银时代、青铜时代、英雄时代和黑铁时代''。赫西俄德声称“但愿自己不是生活在黑铁时代”(行174-176),并区分了当下的黑铁时代和未来的黑铁时代(行174-201)。因此,人类五纪实为人类六纪,对应了《神谱》中的三元叙事结构。
赫西俄德以神话形式描述了远离诸神、面临有死必然的人类生存状态,从而表达了人努力接近神的政治理想。毕竟,和所有古代神谱诗人一样,赫西俄德通过描绘神族,目的在于展示古人眼里的世界起源(神的起源)和人的起源,从而传达人类的自我理解。
从政治神话叙事的三元结构,我们再次印证了《神谱》和《劳作与时日》的相互呼应,以及上文对赫西俄德全部作品谋篇的判断。
稍后,''毕达哥拉斯学派''发展了三元学说,把数字3看作万物之数(开始、中间、结束)。
亚里士多德也在《天象论》中提到数字3与宇宙生成的神奇关联(268al1-13)。
柏拉图更是在赫西俄德神话叙事的基础上,对数字3做出极其丰富的运用,仅以《王制》为例,我们可以举出三种灵魂功能、三种城邦模式、三种政治制度、三种社会等级,三种模仿状态等例子。
正如我们所知,柏拉图生活的公元前4世纪,正是希腊人面临精神困惑的年代,''如何在城邦人民中树立一个有关灵魂与社会的正义秩序的范式(荷马式的英雄贵族荣誉范式不再有效),成为哲人面临的生死攸关的问题''。而有关这些问题的探讨,早在几个世纪前赫西俄德的政治神话叙事中已见端倪。
!! 总结
让我们再次重申赫西俄德有关提坦的教诲。他在近五百行的诗歌里,悉心成就了提坦概念的含糊性,用意在于否决传统的荷马式的英雄主义,''规劝人们放弃身上这种提坦式的过度''。''普鲁塔克也曾提道,古人把人身上非理性、暴力疯狂的部分称为“提坦”''。
''普罗米修斯''的反叛开启了人类的世界,从此,在黑铁的年代里,喜忧参半,祸福参半,希望与痪病参半,流放于黄金时代的大地之外的人类,必须遵循劳动和正义的法则,抛弃懒惰和过度,在不平等中建立平衡。这一教诲不仅印证了从《神谱》到《劳作与时日》的过渡,也将在古典时期民主城邦的寻索中得到响应。
虽然托尔出行必有雷雨,可是北欧人并不以为他是破坏之神:他驱走了寒冰和霜巨人,是使大地恢复生机、产生了丰饶谷物的,恩惠万民的神。——但是居住在[[尤腾海姆(Jotunheim)|巨人之国尤腾海姆 Jotunheim]]的霜巨人们,常常将寒风刮到人类的世界,使植物凋零,地面阴惨。于是托尔决定要去尤腾海姆会会那些巨人,给他们一个教训,使他们永远不敢作恶;洛基和他同去。
快到尤腾海姆的时候,他们投宿在一个农民的家里,农民很有礼貌的一款待这两位神,可是他太穷了,要给这两位食量不寻常的神准备晚饭,实在有点为难。于是托尔就杀了他驾车的两只山羊,烧好了肉,使大家同吃。但他警告他们,不要折断羊骨,而且要把所有的骨头都投在两张羊皮里。但农民的儿子''提亚尔菲(Thialfi)''受了洛基之愚,却偷偷地将一根羊腿骨折断,而且吮去了中间的骨髓,以为不能被查出来。
但第二天,托尔用雷锤击打包着骨头的羊皮,两只山羊又活泼泼地跳起来了,只是其中一只的腿微有些瘸。托尔立即知道是什么原因,很是生气;他本可杀尽了这一家农民,但最后还是宽恕了他们。农民乃以一子一女(女孩叫''罗诗科瓦(Roskva,迅捷)'')给托尔做侍从,以为补偿。因此提亚尔菲以后就成了托尔的亲随。
{{phoebe.mp3}}
|!父母 |[[天空之神乌拉诺斯 Uranus]] and [[🌍大地女神盖亚 Gaea]]|
|!配偶 |[[科俄斯 Coeus]] |
!! Offspring
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
! 海神
''Phorcys'' or ''Phorcus'' (''/ˈfɔːrsɪs/''; Ancient Greek: Φόρκυς)
|父母 |[[蓬托斯|🌊海神蓬托斯 Pontus/Pontos]]和[[盖亚|🌍大地女神盖亚 Gaea]] |
|妻子 |[[刻托 Ceto]]|
<a href="https://www.wikiwand.com/en/Phorcys#Media/File:Phorkys_Mosaic_Bardo.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/9/98/Phorkys_Mosaic_Bardo.jpg/1920px-Phorkys_Mosaic_Bardo.jpg"
caption:"Late Roman mosaic from the Trajan Baths of Acholla showing three aquatic deities: Phorcys (middle), Ceto (right), and Triton or Thaumas (left). Bardo National Museum, Tunis"
width:"400px"
align:"right"
tooltip:"">>
</a>
他在神话中最引人注目的是与刻托生下了一大批''畸形''的孩子。在现存的希腊-罗马马赛克中,福耳库斯被描绘成''一个有鱼尾的人鱼,前肢呈蟹爪状,有带刺的红色皮肤。''
!! Offspring
<div>
<$macrocall $name=toc-selective-expandable tag="刻托 Ceto"
sort='sort[title]'/>
</div>
4卷。
福音书的形成可分为三个阶段:
# 耶稣的生平和训诲;
# 口传的教训和信息;
# 书写的福音。
* [[马太福音 Gospel of Matthew c.41]]针对的是''犹太人''
*[[马可福音 Gospel of Mark c.61-65]]针对的是''非犹太人'',很可能是''罗马人''
* [[路加福音 Gospel of Luke c.56-58]]针对''提阿非罗大人''*
* [[约翰福音 Gospel of John c.98]]针对''不熟悉希伯来语''的犹太人和外乡人。
!! 内容
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
---
''提阿非罗大人'':''西奥菲勒斯''(''Theophilus''),和合本《新约全书》译作''提阿非罗'',是《路加福音》(1章3节)与《使徒行传》(1章1节,天主教思高版圣经作《宗徒大事录》)对''人的一种荣誉称号、称呼''。
有人认为《路加福音》与《使徒行传》的作者是同一个人,还有部分人认为这两本其实是同一本书。前人精妙地运用通用希腊语撰写这两本书,而书中在希腊语中意味着“''上帝的朋友''” 、“''被上帝所爱''”或“''爱上帝''”。没有人确定西奥菲勒斯的真实身份,不过存在相关的几个猜想和传统。另外,英语中"Theophilus"也可以被写作"Theophilos",它既可以作为一个普通的名字又可以作为古罗马学者与犹太人中的一个荣誉称号——他们的生活与《路加福音》与《使徒行传》的作者有相同之处。
!! 保罗与巴拿巴展开第一次海外传道旅行
<a href="https://www.theologyfortherestofus.com/pauls-four-missionary-journeys-the-complete-guide/">
<<image-basic "https://www.theologyfortherestofus.com/wp-content/uploads/2023/01/paul_s_first_journey-2048x1152.png"
caption:"First Missionary Journey"
width:"600px"
align:"right"
tooltip:"">>
</a>
(覆盖经文13:1-14:28)。
在上帝神圣力量差遣下,''巴拿巴''和''[[保罗|保罗 Paul the Apostle c.3-c.67]]''外出布道。
在塞浦路斯有很多人归信, 包括方伯士求·保罗在内。 在小亚细亚各地, 他们周游探访了六个或更多的城市,他们的遭遇在每个地方都一样:人们明显地分为两个阵营,有些人欣然接受, 另一些人则顽梗不化,煽动群众用石头袭击他们。保罗和巴拿巴在新近成立的会众中任命长老,然后二人返回叙利亚的[[安提阿 Antioch]]去。
!! 平息割礼的争论
(覆盖经文15:1-35)
大量非犹太人的归信引起了''他们应否受割礼''的问题。保罗和巴拿巴将争论交给耶路撒冷的使徒和长老们处理。门徒[[✝️雅各 James the Great]]主持讨论,并以正式的书函将会议一致的决定通知各地的基督徒:“不要为难那些归附上帝的外族人,只要写信吩咐他们''禁戒被偶像玷污的东西,禁戒淫乱,禁戒勒死的动物,禁戒血,''就可以了。”
!! 保罗和巴拿巴的争执和分开
过了一段时间,保罗对巴拿巴说:“我们现在要回到之前传讲过耶和华话语的那些城镇去,探望弟兄,看看他们的情况。”''巴拿巴''坚持要带称为[[马可|马可 Mark the Evangelist c.12-c.68]]的约翰一起去。可是保罗不同意带他去,因为他之前在潘菲利亚离开了他们,没有跟他们一起工作。
两个人激烈地争执起来,结果就分开了。''巴拿巴''带着''马可''启航前往塞浦路斯。保罗选了''西拉'',弟兄们祈求耶和华*赐给保罗分外恩典,之后他就出发了。
他走遍叙利亚和西利西亚,巩固各群会众。
!! 保罗的第二次旅行
<a href="https://www.theologyfortherestofus.com/pauls-four-missionary-journeys-the-complete-guide/">
<<image-basic "https://www.theologyfortherestofus.com/wp-content/uploads/2023/01/paul_s_second_journey-2048x1152.png"
caption:"Second Missionary Journey"
width:"600px"
align:"right"
tooltip:"">>
</a>
(覆盖经文15:36-18:22)
过了些日子, 巴拿巴和''马可''乘船前往''塞浦路斯'', ''保罗''和''西拉''则往叙利亚和小亚细亚去。(15:36)
提摩太在路司得遇见保罗,便跟他一起往爱琴海岸的''特罗亚''去。保罗看见异象,目睹有一个人恳求他说: “请你过到马其顿来帮助我们。”(16:9) [[路加|路加 Luke the Evangelist c.1/16-c.84/100]]与保罗会合,他们一起乘船来到马其顿的首府''腓立比''。
''保罗''和''西拉''在那里因替使女赶鬼被人投入狱中。 结果,在狱中地大震动得了释放,狱卒因而归信而受了洗。他们获释之后前往''帖撒罗尼迦''去。当地的犹太人满心嫉妒,挑唆民众抵挡他们。于是当地基督徒乘夜把保罗和西拉送往''庇哩亚''去。那里的犹太人头脑开明,“热切接受主的道,天天考查圣经,” 为要证实所获知的。由于会众成立不久,保罗便将西拉和提摩太留在庇哩亚,像先前把''路加''留在腓立比一样,自己则继续向南行,到''雅典''去。
在这个布满偶像的城市里,高傲的''伊壁鸠鲁派''和斯''多亚派哲学家''嗤笑保罗“拾人牙慧”,是个“宣扬外地鬼神的人”。他们将保罗带到亚略巴古(战神山)去。保罗发表了一个精彩有力的演说,劝人要寻求真实的上帝,就是“天地的主”。他指出上帝应许藉着他使之复活的大能者施行公义的审判。保罗提及复活一事使听众的意见发生分歧,但有些人却成为信徒。
跟着在哥林多,保罗与亚居拉和百基拉同住,一起从事制帐棚的工作。保罗遭受反对,被迫迁出犹太会堂,于是改在会堂隔邻提多·犹士都的家里举行聚会。管会堂的基利司布亦成为信徒。 保罗在哥林多逗留了18个月之后,就与亚居拉和百基拉一起往以弗所去。但他把他们留在那里,自己则前往叙利亚的安提阿去, 就此结束了他的第二次海外传道旅行。
!! 保罗在第三次传道旅行
<a href="https://www.theologyfortherestofus.com/pauls-four-missionary-journeys-the-complete-guide/">
<<image-basic "https://www.theologyfortherestofus.com/wp-content/uploads/2023/01/paul_s_third_journey-2048x1152.png"
caption:"Third Missionary Journey"
width:"600px"
align:"right"
tooltip:"">>
</a>
(覆盖经文18:23-21:26)
有一个名叫亚波罗的犹太人由埃及行省的亚历山大来到''以弗所'', 在会堂里放胆传讲耶稣。亚居拉和百基拉看出有必要更正他的教训。在此之后,亚波罗便往哥林多去。当时保罗正在作第三次传道旅行,过了相当时间之后来到以弗所。他获悉当地信徒所受的乃是约翰的浸礼,便向他们解释耶稣的浸礼。接着,他为12个人施浸,并按手在他们头上,他们便接获圣灵。
保罗逗留在以弗所的三年期间,“主的道大有能力的兴旺起来,而且得胜。” 许多人不再崇拜该城的守护女神亚底米。(19:20) 制造银龛的工匠眼见可能生意尽失,不禁怒气填胸,于是在城中引发一场暴动。经过数小时的安抚,民众才肯散去。之后不久,保罗离开该城前往马其顿和希腊,并在沿途探访各地的信徒。
保罗在希腊逗留了三个月,然后取道马其顿回去,路加在该地与他会合。他们过到特罗亚,保罗在那里谈话直到深夜。一个少年睡着了,由三楼的窗台堕下,扶起他来时已经死了,但保罗随即使他复活过来。次日,保罗和同伴起程向耶路撒冷进发,途中在米利都稍停与以弗所的长老会晤。他告诉长老们不久他们便不得再见他的面了。 既然,“圣灵立[他们]作全群的监督”,他们多么急需负起领导和牧养上帝羊群的责任!他追述他以往在他们当中时所立的榜样,且劝戒他们要保持警醒,尽心竭力献出自己为弟兄服务。虽然保罗曾受到警告不要上耶路撒冷去,他却不愿回头。他的同伴们只好说:“愿主的旨意成就。”(21:14)到了耶路撒冷,保罗向雅各和众长老述说上帝怎样祝福他在列国中所从事的服事职务,他们听见都大为喜乐。
!! 保罗被捕和受审
(覆盖经文21:27-26:32)。保罗在耶路撒冷的圣殿出现时受到敌意的接待。来自亚细亚的犹太人挑唆全城的人起来反对保罗。幸好罗马士兵及时将他抢救出来。
究竟甚么促成了这场骚乱,保罗是甚么人以及他犯了甚么罪,千夫长(罗马军队司令)对此大惑不解,希望获知真相。由于保罗是个罗马公民,他得以免受鞭打。后来,他被带到犹太公会面前,在场的有法利赛人和撒都该人。有见及此,保罗遂提出复活的问题,使他们互相对立。争论变得愈来愈激烈,以至罗马士兵不得不把保罗从公会抢救出来,否则他便会被撕碎了。到了晚上,千夫长把保罗在重兵护送之下暗暗押送到凯撒利亚的罗马驻犹太行省总督腓力斯(英语:)那里去。
保罗既被控以叛乱的罪名,遂在腓力斯面前有力地为自己申辩。可是腓力斯蓄意拖延,希望保罗为求获释而向他行贿。两年之后,波求·非斯都(英语:)接替腓力斯作总督,他下令将案件重审。控方再次提出严重的指控,保罗亦再次宣告自己的无辜。可是,为了讨好犹太人,非斯都建议在耶路撒冷举行进一步的审讯。因此保罗宣告说: “我要上告于凯撒。”(25:11)又过了些日子,末任希律王──希律亚基帕二世来访非斯都,于是保罗再次被带到庭上。保罗的自白如此有力和令人信服,亚基帕不禁对他说: “你这样劝我,几乎叫我作基督徒了!” 同样,亚基帕也看出保罗其实是无辜的;保罗若非已上诉于凯撒(''尼禄·凯撒''),就可以获释了。
!! 保罗前往罗马
<a href="https://www.theologyfortherestofus.com/pauls-four-missionary-journeys-the-complete-guide/">
<<image-basic "https://www.theologyfortherestofus.com/wp-content/uploads/2023/01/paul_s_journey_to_rome-2048x1152.png"
caption:"Journey to Roma"
width:"600px"
align:"right"
tooltip:"">>
</a>
(覆盖经文27:1-28:31)。保罗和别的囚犯一起被解上船,开始前往罗马的行程。在逆风之下,船驶得很慢。他们在每拉港换了船。来到克里特的佳澳,保罗建议在那里过冬,可是大多数人都主张继续上路。他们一驶出大海,飓风便将船攫住,迫使船随着风向飘流。过了两星期,船终于在马耳他的岸边撞上浅滩毁坏了。结果正如保罗先前所说,船上276人全部生还!马耳他的居民非常友善。在过冬的期间,保罗凭着上帝圣灵的大能医好了许多人。
次年春天,保罗抵达罗马,那里的弟兄出来,在路上迎接他。保罗见了他们,“就感谢上帝,放心壮胆”。虽然保罗仍是囚犯,他却获准住在自己所租的房子里,有士兵看守。在这本书的末了,路加描述保罗对一切来见他的人都仁慈接待,并“放胆传讲上帝国的道,将主耶稣基督的事教导人,并没有人禁止”。
<<<
福柏走近科伊俄斯的爱的婚床,
她在他的情爱中受孕生下
身着缁衣的勒托,她生性温柔,
对所有人类和永生神们都友善。
她生来温柔,在奥林波斯最仁慈。
她还生下美名遐迩的阿斯忒里亚,佩耳塞斯
有天引她入高门,称她为自己的妻子。
颂诗)
她受孕生下赫卡忒,在诸神之中,
克洛诺斯之子宙斯最尊重她,给她极大恩惠:
她在大地和荒海拥有自己的份额,
在繁星无数的天空同样获得荣誉,
因而在永生神中享有最高尊崇。
直到今天,凡是大地上的人类
依礼法向神们敬献美好的祭品,
呼唤赫卡忒,便有万般荣誉
轻松而来,只要女神乐意接受他的祈求。
她赐给这人财富,她恰有这种能力。
原来,该亚和乌兰诺斯的所有孩子
从各自的荣誉中分给她一份。
克洛诺斯之子从不伤害她,不拿走
她在提坦那当初的神中的份额,
她依然拥有起初分配的一切。
身为独生女儿,女神并不缺少荣誉:
[她同时在天上、地上和海上分得一份,]
由于宙斯的敬重,她反而得到更多。
她带给她欢喜的人极大庇护和帮助。
在法庭上,她坐到尊严的国王身旁,
使她所欢喜的人在集会中超群出众。
当人类拿起武器在战争中互相杀戮,
女神会在那里帮助她所欢喜的人,
使胜利充斥其心,荣耀归于其身。
她还慷慨地帮助她所欢喜的骑兵。
在竞技赛场上,女神也会慷慨
带给竞争的人极大庇护和帮助,
凭能力和威力获胜的人满心欢喜
轻松赢回头奖,把荣耀带给父母。
那些在翻腾而黯淡的海上谋生的人,
向赫卡忒和喧响的撼地神祈求庇护,
高贵的女神能轻易赐他捕鱼丰收,
又能凭着喜好轻易使他得而复失。
她还和赫耳墨斯在牧棚里使牲口繁殖:
成群的奶牛,大批的山羊
和众多绵羊,全凭她心里乐意,
她可以从少变多,又从多变少。
赫卡忒虽是她母亲的独生女儿,
却在永生者中拥有一切荣誉。
克洛诺斯之子派她抚养年轻人,在她之后,
他们看见把万物尽收眼底的黎明之光。
她从起初就抚养年轻人 享有这个荣誉。
<<<神谱
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
|!父母 |[[天空之神乌拉诺斯 Uranus]] and [[🌍大地女神盖亚 Gaea]]|
|!妻子 |[[福柏 Phoebe]] |
!! Offspring
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
色萨利(Thessalian)公主和阿波罗的情人
|父母 |[[Phlegyas|菲雷机亚斯 Phlegyas]] and Cleophema |
通过阿波罗,她成为了希腊医学之神[[阿斯克勒庇俄斯|⚕️医药之神阿斯克勒庇俄斯 Asclepius]]的母亲。在她怀孕期间,她与一个名叫 Ischys 的凡人通奸,并因此受到阿波罗的惩罚。在未能治愈她后,阿波罗通过剖腹产救出了他们未出生的孩子。
她死后变成了一个星座。
!! 和阿波罗
有一天,阿波罗看到了Coronis,并对她一见倾心。他和她一起躺在她家里,结果她怀孕了(He lay with her in her home, and consequently she became pregnant)。
有一次,当阿波罗外出履行他的神职(godly duties)时,Coronis爱上了埃拉图斯(Elatus)的儿子伊斯库斯(Ischys)。她不顾父亲的警告,偷偷和他睡了。
然而,阿波罗通过他的预言能力知道了这件事。愤怒的他派他的阿尔忒弥斯去杀死科洛尼斯。于是,阿尔忒弥斯用她的箭杀死了Coronis和她的家人。
在一种变体中,阿尔忒弥斯自愿杀死他们,以报复对她兄弟的侮辱。同样,伊斯库斯(Ischys)也被宙斯杀死。
在奥维德(Ovid)的诗中,是一只乌鸦将此事告知阿波罗,他用自己的箭杀死了Coronis。在她死之前,科罗尼斯接受了她的惩罚是公正的。阿波罗立刻对自己的冲动行为感到后悔,并试图医治她,但Coronis已经死了。然后他把她的尸体放在火堆上,并把没药(myrrh)和其他甜美的香水倒在上面,作为丧葬仪式的一部分。
阿波罗不想让他未出生的孩子也受苦,当她躺在葬礼柴堆上时,''阿波罗切开了科洛尼斯的肚子,把孩子拉出来救了出来''。他给孩子取名[[阿斯克勒庇俄斯|⚕️医药之神阿斯克勒庇俄斯 Asclepius]],抚养他一段时间,教他草药学。后来,阿波罗将他的儿子托付给睿智的半人马凯龙(Chiron),后者对他进行了更多的医学和狩猎训练。
不同的版本中,Coronis在[[命运三女神 Moirai|🧵命运三女神 Moirai]]的面前,在阿波罗的神庙中生下了她的儿子。拉克西斯(Lachesis)担任助产士,阿波罗亲自帮助Coronis减轻痛苦。阿波罗以他母亲的别名埃格勒(Aegle)给他们的儿子取名为阿斯克勒庇俄斯。
在另一个版本中,科罗尼斯已经怀孕,不得不陪同她的父亲前往伯罗奔尼撒岛。她对她的父亲隐瞒了她的怀孕。在埃皮达罗斯(Epidaurus),她生了一个儿子,并把他暴露在一座山上。__这个孩子由在山上放牧的一只山羊喂奶,并由羊群的看门狗看护__。山羊和看门狗的主人阿雷斯塔纳斯(Aresthanas)发现了这个孩子。当他走近时,看到孩子身上闪过一道闪电,他认为这是个神圣的征兆,就把孩子单独留下了。阿斯克勒庇俄斯后来被阿波罗带走了。
!! 关于乌鸦
根据奥维德(Ovid)的说法,当Coronis怀孕时,阿波罗在离开前指定一只白乌鸦守护她。这只乌鸦得知科罗尼斯与伊斯库斯(Ischys)的恋情后,向阿波罗报告了此事。阿波罗派阿耳特弥斯去杀了这对夫妇,一怒之下,把乌鸦烧成了黑色,作为对它的惩罚,因为它是个告密者,没有履行职责。''这就是为什么今天的乌鸦是黑色的。''
伊斯特鲁斯 Istrus(希腊历史学家)和其他几个人都说 Coronis 变成了乌鸦座 constellation Corvus 。
<a href="https://www.wikiwand.com/en/Second_Temple">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Second_Temple.jpg/1869px-Second_Temple.jpg"
caption:"Model of Herod's Temple (inspired by the writings of Josephus) on display as part of the Holyland Model of Jerusalem within the Israel Museum"
width:"400px"
align:"right"
tooltip:"">>
</a>
第二圣殿,旧址位于耶路撒冷旧城、现今圆顶清真寺的所在地,是继[[第一圣殿|所罗门圣殿 Solomon's Temple]]被毁后所建的。
公元前586年,犹太人被新巴比伦王国国王[[🤴尼布甲尼撒二世 Nebuchadnezzar II 642-562 BC]]掳往巴比伦,沦为巴比伦之囚,第一圣殿被毁。后新巴比伦被波斯帝国的''古列二世''所灭,古列二世释放了犹太人,并允许犹太人重建圣殿。
重回故地的犹太人开始重建圣殿,但重建过程并不顺利,直至''大流士时期''才完成,''大流士''也对第二圣殿的重建给予了帮助,此时已是第一圣殿被毁70年后的公元前516年,整个重建过程被记录在旧约的以斯拉记。
公元前19年,[[大希律王|🤴大希律王 Herod the Great 74 BC-4 BC]]开始了大规模的整修和扩建第二圣殿,由此有时被称为希律圣殿,但大部分情况下它仍被称为第二圣殿,整个施工过程,祭典仪式继续进行。
公元70年,耶路撒冷在犹太战争中被罗马帝国将军''提图斯''攻陷,第二圣殿也被毁,圣殿里的圣物被掳往帝国首都罗马城,为纪念这件事情,罗马人开建了[[提图斯凯旋门|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E6%8F%90%E5%9B%BE%E6%96%AF%E5%87%AF%E6%97%8B%E9%97%A8%20Arch%20of%20Titus:%5B%5B%E6%8F%90%E5%9B%BE%E6%96%AF%E5%87%AF%E6%97%8B%E9%97%A8%20Arch%20of%20Titus%5D%5D]]。自公元411年西哥德王国攻占罗马城后,圣物便下落不明,凯旋门上的雕塑成为人们对圣物的推测根据(如犹太教灯台)。
!! 相关
[[所罗门圣殿 Solomon's Temple]]
《箴言》是旧约圣经诗歌智慧书的第三卷,意思是智慧的话,教导人如何行事为人。
本书主要是教导人过''智慧而正确''的生活。这里所指的“智慧”,不是指人的智力;敬畏神和顺从祂的律法,才是真智慧的实质。敬畏耶和华是知识的开端;愚妄人藐视智慧和训诲。(《箴言》第1章第7节参 ) 人要过智慧的生活必须在人际关系、家庭、言行、思想上应用神教训的原则。
希伯来文的“箴言”是明喻,比较的意思,指以一事比其他类似的事,为要显出其本质,使人易于明白。本书的体裁以散文及诗句为主。从书中开首的劝勉和以主题汇编的格式来看,编者可能仿效了当时流行国际的文学形式。
书中一段更与当时埃及智慧言论集的内容相似,显示作者受了它的影响。不过,二者的基本出发点大有差异: 埃及智慧言论集包含道德教训,但亦提倡机会主义 ,教人怎样得到物质上的成就,而箴言则叫人过敬虔,公义和节制的生活。
本书用精简的警句,''重复地劝戒读者'',并以戏剧化的对比等,将正误列出,阐明利害关系是非所在,让读者自己作出明智的抉择,过智慧的生活。
daughter of [[Amram]]
[[亚伦 Aaron]] 和 [[摩西 Moses]]的姐姐。
!! 救下摩西
根据出埃及记的记载,埃及法老命令杀死新生的''希伯来''男孩,[[约基别|Jochebed]]生下''摩西''以后,就派''米利暗''把婴儿放在河边芦荻中,被法老的女儿发现并收养。''米利暗''又建议法老的女儿雇用''约基别''为奶妈,因此,摩西在希伯来家庭中养育。
!! 红海之战
摩西带领以色列人离开埃及,前往上帝所应许的流著奶与蜜之地──''迦南地''(巴勒斯坦的古地名,在今天约旦河与死海的西岸一带)。当法老的军队淹死在红海中,无法追上以色列人时,米利暗被称为女先知,''领头唱起庆祝胜利的歌曲''(《出埃及记》第15章第20-21节)。
!! 麻风之罪
后来,她因为不满摩西娶了一个古实女子叶特罗之女[[西坡拉|西坡拉 Zipporah]],就毁谤他,因而患了麻风。摩西为她哀求耶和华“神阿,求你医治她。”(El nah refa nah-la),于是在7天后得到复原。(《民数记》第12章) 。弥迦书显然也将她列为先知:“我曾将你从埃及地领上来,从为奴之家救赎你;我也差遣摩西、亚伦和米利暗在你前面行。”(《弥迦书》第6章第4节)
<a href="https://www.wikiwand.com/en/Michal">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/3/3f/Francesco_Salviati_004.jpg/360px-Francesco_Salviati_004.jpg"
caption:"''Francesco Salviati'' (c. 1553) Michal watches David dance before the ark "
width:"400px"
align:"right"
>>
</a>
daughter of [[Ahinoam]] and [[👑扫罗 Saul]], wife of [[👑大卫王 David]]
!! 成为大卫的妻子
在撒母耳记上19章,她选择为了丈夫而背叛父亲的愿望。当扫罗的使者捕杀[[大卫|👑大卫王 David]]时,米甲秘密将大卫送走,而假装他卧病在床。当大卫在外逃亡时,扫罗又将米甲嫁给拉亿的儿子''帕铁'',而大卫又娶了亚比该等几位妻子。
在扫罗死后,大卫登基成为犹大王国的国王,他不顾申命记24章1-4节中关于前夫不可再娶已经被玷污之前妻的禁令,又将米甲接回。大卫并没有与米甲离婚,是扫罗造成了婚姻破裂的事实。因此他们在法律上没有离婚,大卫没有按照希伯来律法写休书。但是,''帕铁''一路哭泣跟着米甲,直到押尼珥命令他回去。
!! 大卫赤身跳舞
大卫攻取了耶路撒冷,把这城立为国都。大卫知道耶和华才是真正统治以色列的君王,所以他安排把象征上帝临在的约柜运送到耶路撒冷。对大卫来说,运送约柜到耶路撒冷绝非小事,他想让所有人知道他十分欢喜快乐,于是跟抬着约柜的祭司一起进城。耶路撒冷的居民看见他们的王“四处蹦跳”,“极力跳舞”。
不过,虽然大卫竭力把赞美归于耶和华,但大卫的妻子米甲却没有加入这个欢乐的行列。相反,她从窗口往下望,“心里就轻看[大卫]”。
她可能认为大卫作为一国之君,不应纡尊降贵,跟平民百姓一起庆祝。 (米甲贵为以色列国第一位君王扫罗的女儿,又是当时以色列国第二任君王的妻子。所以鄙视大卫做出看起来不像君王的行为。)
大卫回家时,米甲便语带讥诮地说:“以色列王今天多么光彩啊!他今天竟在臣仆的婢女眼前赤身露体,简直像个没有头脑的人赤身露体一样!”
大卫斥责米甲作为回应,指出耶和华已舍弃她父亲扫罗,拣选了他作王,''这显示了夫妻二人对崇拜这方面的不同态度''。大卫又说:“我还要让自己受到更大的轻蔑,我也要轻视自己。至于你所说的那些婢女,我决意要让她们尊敬我。”
因此大卫便不再亲近米甲,''而她终生也就再无儿女''。
米甸 (天主教译为米德杨)(/ˈmɪdiən/)是个在''希伯来圣经''与''古兰经''所提及的地方。
威廉·丹佛指出圣经所言的米甸地乃位于"阿拉伯半岛的西北处、红海阿卡巴湾东边的岸上",与西奈半岛的东南方毗邻。此地直至公元前7、8世纪以后才有人口广泛定居。
根据创世纪所记,米甸人乃[[米甸|Midian]]的后代,而米甸是亚伯拉罕与妾基土拉所生之第四子。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/9/92/Midian.png/500px-Midian.png"
width:"400px"
align:"right"
tooltip:" ">>
撒母耳记上(31:1非利士人与以色列人争战。以色列人在非利士人面前逃跑,在基利波有被杀仆倒的。非利士人紧追扫罗和他儿子们,就杀了扫罗的儿子约拿单,亚比拿达,麦基舒亚。)
扫罗和约拿单死亡的消息从耶斯列传到的时候,米非波设Mephibosheth才五岁。他乳母抱着他逃跑。因为跑得太急,孩子掉在地上,''腿就瘸了''。
Álfheimr,''"精灵之家 Elf-home"'',根据吉尔法金宁(Gylfaginning)的说法,这里是光明精灵 ''ljósálfar'' 的家园。另一类精灵是黑暗精灵,被称为 dökkálfar 或 svartálfar,据说居住在地下([[Svartálfaheimr|地精之国斯瓦塔尔法海姆 Svartalfaheim]])。
在 Grímnismál 的第 5 节中,众神曾把 ''Álfheimr'' 作为牙齿礼物送给弗雷尔,但其他地方都没有提到弗雷尔和álfar之间的联系。
阿尔夫海姆尔被列为北欧宇宙学的九大世界之一。
''索列姆(Thrym,Thrymr,Þrymr)''。是北欧神话中的一名霜巨人,其名字的意思为''“喧嚣”(uproar)''。
他的故事出现在《诗体埃达》中,故事述说索列姆偷了''雷神索尔''的武器雷神之锤(Mjolnir),并威胁诸神要将[[女战神弗蕾亚 Freyja]]嫁给他才要归还神锤。弗蕾亚自然不肯答应,索尔无奈之际只好接受邪神洛基(Loki)出的主意,''男扮女装假装成弗蕾亚嫁给索列姆。''
洛基叫索尔穿了弗蕾亚的衣服,带著他一齐到乔登海姆去。托利姆殷勤地接待新娘,但当他看见新娘在宴席上居然吃了八条鲑鱼,一头牡牛,还有一大桶麦酒,不禁大吃一惊。洛基解释说:“弗蕾亚为了要见自己心爱的未婚夫,兴奋得八天没吃东西,所以胃口才会这么大。”
托利姆仔细向新娘看了一下,又吓得直往后退,他问:“弗蕾亚的眼晴为什么如此烔然发光?”洛基仍说:“是因为见到未婚夫太兴奋的缘故。”虽然索列姆对新娘粗鲁的行为举止感到惊讶,但因为有洛基在一旁机警的解释也就随之释怀,于是,索列姆再无疑心,命令部下把神槌拿来放在新娘的膝上要用在婚体的祝福上时,槌一放好,索尔就立刻脱去伪装,抢过神锤杀死了索列姆和他的部下们。
“索多玛”(Sodom)的名字见于《创世记》中关于[[罪恶之城(the city of sinners)|所多玛和蛾摩拉 Sodom and Gomorrah]]的描述,亚伯拉罕的侄子洛特(Lot)在保护天使客人不受愤怒暴徒的伤害之后不得不逃离这座罪恶之城。索多玛城和俄摩拉城被神力彻底摧毁,这座山见证了这一切。
索多玛山位于死海南部盆地的西面,属于一种特殊地质现象:除了薄薄的一些淤泥层和泥灰岩层之外,这座山全部由''盐''构成。在死海早期的蒸发过程中,大量盐及其他矿物在海床陡峭的崖肩上沉积下来。
经过长期积累,盐层达到4公里高,盐层顶部沉积有风化的岩石和其他矿物。地热导致盐的熔化,而上方岩石重量带来的压力则迫使熔盐顺着边缘向上发展。这座山就是因这种巨大的力量而形成,它继续以每年1公分的速度增高。
哈康(Hakon)王的女儿索拉(Thora),[[丹麦国王埃尔弗 Alf]]的妻子。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/f/f1/Sobek.svg/440px-Sobek.svg.png"
caption:"索贝克"
width:""
align:"right"
>>
索贝克,亦称苏贝克,为带有不可捉摸的性情的古埃及神祇,是当地''尼罗鳄''与''西非鳄''的象征,常以''鳄鱼或鳄头人身''的形式现身。同时也''象征法老的王权、丰饶、生育与战争实力'',此外也作为辟邪魔法的守护神,守护人民远离来自尼罗河的灾害。
[[摩西 Moses]]的助手和继承者。
[[约书亚记 Book of Joshua c.1450 BC]]的作者及主角。
<a href="https://biblegeography.holylight.org.tw/index/condensedbible_map_detail?m_id=028">
<<image-basic "https://biblegeography.holylight.org.tw/images/index/condensedbible/map/028.GIF"
caption:"Cross Jordan R. & Conquer southern kings"
width:"500px"
align:"right"
>>
</a>
《约书亚记》是《希伯来圣经》其中一,天主教译为《若苏厄书》。约书亚记是圣经全书的第六本,记录了进入应许之地的过程。其中以色列人由约书亚带领,并在上帝的授意下以色列人征服了数个都城,并得著美地为业以完成神的经纶。
本书大部分篇幅讨论''选民如何占领迦南'',以色列国把地抽签分给十二支派,正强调上帝成就了赐迦南地给以色列为产业的应许:耶和华应许赐福给以色列家的话,一句也没有落空,都应验了(《约书亚记》第21章第45节)。不过,书中亦指出以色列人还没有把所有迦南人赶出,上帝亦应许帮助他们(《约书亚记》第23章第5节)。另一方面,以色列人要专一事奉上帝,忠于与上帝所立的约,否则便会受到违约的惩罚。
<<list-links "[tag<currentTiddler>] +[sort[num]]">>
《约伯记》(希伯来文:אִיוֹב Iyov)是《希伯来圣经》的第18本书、基督教《旧约圣经·诗歌智慧书》的第一卷,第一部''诗篇性''著作。
约伯这个名字的含义是“''仇视的对象''”。约伯在受苦和坚忍方面所立的纪录对他名字含义的诠释提供很好的参考。正如约伯所请求,这一切事都记录在书上。
《约伯记》探讨了神义论,简而言之:“''为什么敬畏神的人会受苦?''”。本书神学丰富,视角颇多。由于文学质量优异,被大量诵读赞扬,丁尼生称它为:“古今最佳诗篇”。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
犹大国[[👑约沙法 Jehoshaphat]]王在位第十八年,[[👑亚哈 Ahab]]的儿子[[👑约兰 Jehoram of Israel]]在撒马利亚登基,统治了以色列国12年。他一直做耶和华眼中邪恶的事,只是没有像他父母那么坏,因为他清除了父亲造的巴力神柱。可是,尼百的儿子[[👑耶罗波安 Jeroboam]]使以色列人犯的罪,他也同样犯,而且一直这样做。
以往摩押王一直向以色列进贡,但后来却开始背叛。''约兰''获得犹大王[[👑约沙法 Jehoshaphat]]及以东王之助合攻摩押。大军在进攻途中来到一个干旱无水的山谷,大军将要渴死谷中。三王一起下去见[[🗣️以利沙 Elisha]],托他求问耶和华上帝。耶和华眷顾忠信的''约沙法'',因此拯救他们,使他们得以战胜摩押人。
Judge in [[士师记 Book of Judges c.1100 BC]], the youngest of [[基甸 Gideon]]'s seventy sons.
''让尼尼微人皈依耶和华''
约拿书是圣经全书第32本,也是小先知书的一部分。
这一本书的作者亚米太的儿子,迦特希弗人[[🗣️约拿 Jonah]](意思为“鸽子”)在大约公元前844年完成此书,''他可以说是圣经中众多先知里的特殊人物''。在得到任务后,''只有他逃跑不去执行上帝给他的任务''。
耶和华的救恩甚至临到外邦人的城''尼尼微'',这事件后来给耶稣降临、离世与复活带来暗示与证据,后者并发展为基督教向世人传福音。
!! 背景
约拿做先知的时间段,是差不多在[[👑耶罗波安二世 Jeroboam II]]作王之前。另外值得一提的是,后来这个王颇有建树,且照约拿先知之预言,他将收回一些失城,但''亚述帝国''之强悍仍然造成威胁。因此当''约拿''接到上帝(即耶和华)的命令,''要他深入敌营到尼尼微城传警告时。因此抗命,想逃往他施(Tarshish)''。但先知对上帝的作为相当清楚,还险些遇上海难,故最后在上帝的管教下,先知仍最终前往,而''尼尼微人''出乎意料地悔改蒙恩。
本书体现了耶和华公正的对待地上所有人,只要坏人改邪归正,他就乐意给他们机会悔改。但后来尼尼微人仍陷在自大与恶之中,最后亡于新巴比伦,如那鸿先知所预言的。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
He is the eldest son of King [[Saul|👑扫罗 Saul]] of the Kingdom of Israel, and a close friend of [[David|👑大卫王 David]].
(约拿书1:1-16)“耶和华的话临到亚米太的儿子[[🗣️约拿 Jonah]],说:‘你起来往尼尼微大城去,向其中的居民呼喊,因为他们的恶达到我面前。’”(约拿书1:1,2)
约拿很不喜欢这项委派。他朝着相反的方向逃跑,乘船往他施(很可能是今日的西班牙)去。''约拿的船遇到大风浪'',水手十分惧怕,“各人哀求自己的神,”而约拿则在舱底睡着了。(约拿书1:5)
在唤醒约拿之后,他们一同掣签,看看究竟是谁惹来这场灾祸,结果把约拿掣出来。至此,他才表明自己是希伯来人,是耶和华的敬拜者,但当时正逃避上帝的委派。他请水手们把他抛进海里。经过一番努力试图把船拢岸不果后,''他们终于把约拿抛下海里''。海浪就平息了。
<a href="https://www.wikiwand.com/en/Ark_of_the_Covenant">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/c/c8/Tissot_Moses_and_Joshua_in_the_Tabernacle.jpg/560px-Tissot_Moses_and_Joshua_in_the_Tabernacle.jpg"
caption:"Moses and Joshua bowing before the Ark (c. 1900) by ''James Tissot''"
width:"400px"
align:"right"
>>
</a>
契约之柜,简称''契约柜''或''约柜'',又称''法柜'',是古代以色列民族的圣物。
当以色列人在旷野里流浪时,约柜一直都放在会幕的至圣所内,直到所罗门王于耶路撒冷兴建圣殿为止。
约柜是以色列人的圣物,象征着耶和华的临在,根据摩西律法规定,只有作为祭司的[[利未人|Tribe of Levi]]才可以抬扛约柜,但是任何人都不得触碰约柜。根据《圣经》记载,在运送约柜期间违反上帝的律法,擅自触碰约柜而被击杀。
!! 损毁
''巴比伦人''在''公元前587''年将耶路撒冷摧毁。甚至所罗门王所建及有约柜设于其中的圣殿亦被夷为平地。约柜本身则消失踪影。灾难临到示罗之后,非利士人容许以色列人留在当地。但是在新巴比伦帝国毁灭了耶路撒冷及其中的圣殿之后,他们将大部分劫后馀生的犹太人放逐到遥远的巴比伦成为巴比伦之囚。剩下的少数犹太人也最后发生恐慌而逃往埃及去。这使整个犹大地区沦为无人居住。
<a href="https://www.wikiwand.com/en/Ark_of_the_Covenant#Media/File:Royal_Arch_Room_Ark_replica_2.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/2/2c/Royal_Arch_Room_Ark_replica_2.jpg/360px-Royal_Arch_Room_Ark_replica_2.jpg"
caption:"Replica of the Ark of the Covenant in ''George Washington Masonic National Memorial''"
width:"400px"
align:"left"
>>
</a>
跟[[亚哈|👑亚哈 Ahab]]一同迎战亚兰人的[[约沙法|👑约沙法 Jehoshaphat]]效法父亲亚撒忠于耶和华,但他仍未能把谬误崇拜的邱坛完全废去。他作王25年后去世,由儿子[[约兰|👑约兰(犹大) Jehoram of Judah]]继承王位。
在北部的以色列国,[[亚哈谢|👑亚哈谢 Ahaziah of Israel]]步他父亲的后尘崇拜巴力,惹怒耶和华。
firstborn son of [[撒母耳 Samuel]]
''用比喻的方式描写四周的国家对以色列的侵害及上帝对他们的审判''
约珥书是旧约圣经中的一卷。是圣经全书第29本,也是小先知书的一部。本书著者[[约珥|🗣️约珥 Joel]]。
约珥的写作生动传神,寓意深长。他擅于反复强调和运用明确有力的比喻。他将''蝗虫比喻为国家、众民及大队战士''。它们的牙齿如狮子的牙齿,形状如马,它们的响声如同大队兵士驾着战车,摆阵预备打仗。《诠释者圣经》引述一位防治蝗虫专家的评论说:“约珥对蝗虫侵袭的描述极为传神、详尽和真实。”。其内容主要是描述''四周政权对以色列四个阶段的残害以及神对残害者逞罚,并祂在复兴时在以色列中间的掌权。''
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
<a href="https://www.wikiwand.com/en/Sistine_Chapel_ceiling#Media/File:Jacob_a.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/4/48/Jacob_a.jpg"
caption:"The lunette of Jacob and his son Joseph, the husband of Mary. The suspicious old man is thought to be Jacob, but resembles depictions of Joseph."
width:"400px"
align:"right"
>>
</a>
约瑟是[[雅各|雅各 Jacob]]的''第十一个儿子''。也是雅各所宠爱的[[拉结|拉结 Rachel]]所生的两个中的第一个儿子(另一个是[[便雅悯|便雅悯 Benjamin]])。
名字的意思是''增添'',希望耶和华再增添一个儿子给她。
以色列原来爱约瑟过于爱他的众子,因为约瑟是他年老生的。约瑟的哥哥们见父亲爱约瑟过于爱他们,就恨约瑟,不与他说和睦的话。(创世记三十七章)
约瑟十七岁时(创世记三十七章),雅各为他''制作著名的彩衣(虽这可能只是对希伯来文“袖”音译,是一种特别的稀有物料制成的衣物,祭司或王子服)'' 和他''解梦的能力(解梦在古代是代表预知未来的能力、或隐含神的旨意)''。
!! 与兄弟结怨
<div class="gallery">
<div class="img-container">
<a href="https://commons.wikimedia.org/wiki/File:Circle_of_Rembrandt_van_Rijn_-_Jacob_Shown_Joseph’s_Bloody_Coat_-_GE-101_-_Leiden_Collection.jpg">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/2d/Circle_of_Rembrandt_van_Rijn_-_Jacob_Shown_Joseph%E2%80%99s_Bloody_Coat_-_GE-101_-_Leiden_Collection.jpg/958px-Circle_of_Rembrandt_van_Rijn_-_Jacob_Shown_Joseph%E2%80%99s_Bloody_Coat_-_GE-101_-_Leiden_Collection.jpg?20220618202047">
</a>
<div class="desc">''Rembrandt van Rijn'' - Jacob Shown Joseph’s Bloody Coat 1665</div>
</div>
<div class="img-container">
<a href="https://www.wikiwand.com/en/Joseph_(Genesis)#Media/File:Diego_Vel%C3%A1zquez_065.jpg">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Diego_Vel%C3%A1zquez_065.jpg/1832px-Diego_Vel%C3%A1zquez_065.jpg">
</a>
<div class="desc">Joseph's Bloody Coat Brought to Jacob by [[Diego Velázquez|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E8%BF%AD%E6%88%88%C2%B7%E5%A7%94%E6%8B%89%E6%96%AF%E5%BC%80%E5%85%B9%20Diego%20Vel%C3%A1zquez%201599-1660:%5B%5B%E8%BF%AD%E6%88%88%C2%B7%E5%A7%94%E6%8B%89%E6%96%AF%E5%BC%80%E5%85%B9%20Diego%20Vel%C3%A1zquez%201599-1660%5D%5D]], 1630</div>
</div>
</div>
约瑟对他们说:‘请听我所做的梦:我们在田里捆禾稼,我的捆起来站著,你们的捆来围著我的捆下拜。’他的哥哥们回答说:‘难道你真的要做我们王吗?难道你真的要管辖我们吗?’''他们就因为他的梦和他的话越发恨他''。
后来他又做了一个梦,也告诉他的哥哥们说:‘看哪,我又做了一个梦,梦见太阳、月亮,与十一个星向我下拜。’约瑟将这梦告诉他父亲和哥哥们,他父亲就责备他说:‘你做的这个是什么梦!难道我和你母亲、你的弟兄果然要来俯伏在地,向你下拜吗?’他哥哥们就嫉妒他,他父亲却把这话存在心里。
他的弟兄们试图杀掉他,[[流便 Reuben]]不想这样做,他提议把约瑟丢在坑里不要管,打算之后带回给他父亲。[[犹大 Judah (son of Jacob)]]提议把他卖给[[以实玛利人|以实玛利 Ishmael]],得了二十舍客勒银子(一舍客勒约合11.25克)。
他的弟兄们杀了一头公羊,把约瑟的彩衣染上血,派人带回去给雅各。雅各悲伤了很多天。
!! 约瑟到埃及
有耶和华同在,约瑟在埃及事事顺利。后在法老守卫队长波提乏手下做管家,波提乏对约瑟十分照顾,把全家的家务事都交给了他。
后来由于''约瑟长相俊美'',波提乏的妻子欲勾引约瑟,约瑟不从,被波提乏妻子''反咬一口'',最后入狱。在入狱期间,他曾为''酒政''及''膳长''解梦,称三天后酒政被释放,而膳长则被处死,最后都应验。
酒政没有救他,他又被关了两年。法老做关于埃及丰收和饥荒的梦,无人能解。酒政推荐约瑟去解,约瑟甚至提了如何度过饥荒的方案,得到法老重视。任命为其为埃及的''长官''(圣经的中文译本常译为“宰相”、“相国”或“首相”,实际上可能只是埃及一个高级官员,比如大内总管或维齐尔)及首席王室顾问。
<a href="https://www.wikiwand.com/en/Joseph_(Genesis)#Media/File:Bourgeois_Joseph_recognized_by_his_brothers.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/0/08/Bourgeois_Joseph_recognized_by_his_brothers.jpg"
caption:"Joseph recognized by his brothers, 1863 painting by ''Léon Pierre'' Urbain Bourgeois"
width:"300px"
align:"left"
>>
</a>
他的解梦能力使埃及能在几年大丰收期间,为之后的七年大饥荒之前做好准备。后来迦南地区也发生饥荒,他的十名兄长便往埃及买粮,
在第二次会面之时约瑟曾试探兄长,后见兄长已改过向善,跟当初不同。约瑟遂与他们相认,之后,约瑟就把家人接往埃及生活。
Jacob临终给他的祝福是“约瑟是''多结果子的树枝'',是泉旁多结果的枝子。他的枝条探出墙外。”
!! Offspring
<<list-links "[tag[Asenath]] +[nsort[num]]">>
son of [[雅各 Jacob,son of Matthan]], [[🤱🏽马利亚 Mary, mother of Jesus]]'s husband.
son of [[希里 Heli]] in [[路加福音 Gospel of Luke c.56-58]]
《约翰一书》,天主教称《若望一书》,是《新约圣经》中的第23卷书,属于“大公书信”中最前写成的第四卷。
!! 主题
这封书信的主要目的是要加强信徒的信仰,对抗那些否认耶稣基督在肉身中来临的异端,并强调真爱和真理的重要性。
# ''真理与爱的信息'':约翰强调了信仰耶稣基督——神的儿子,在肉身中来临的真理。他提醒信徒,这是所有教导的核心,任何否认这一点的教导都是反基督的。
# ''光与黑暗的对比'':约翰使用光与黑暗的隐喻来描述遵守神命令与罪恶之间的对立。他鼓励信徒行在光中,即遵循耶稣的教导和榜样,这样就可以与神和彼此有真正的交通。
#'' 爱的本质'':爱被视为信徒生活的核心。约翰教导说,神就是爱,任何在爱中生活的人也在神里,神也在他里。通过相互爱护,信徒证明了他们是神的儿女。
# ''遵守神的命令'':约翰强调,爱神意味着遵守祂的命令。这些命令不是负担,而是爱的表达和信仰的实践。
# ''对抗异端'':书信中提到了一些特定的异端思想,特别是关于耶稣基督的神性和人性。约翰警告信徒要警惕那些散布错误教导的人。
# ''信心与胜利'':约翰鼓励信徒,信仰耶稣是克服世界的胜利。信徒因信耶稣基督而得到永生,这是神给予的应许。
《约翰三书》,天主教称《若望三书》,是《新约圣经》中的第25卷书,属于“大公书信”中最前写成的第6卷。 主题:鼓励在真理上的同工。
!! 主题
这封信是[[约翰|✝️约翰 John the Apostle]]写给他所疼爱的忠信基督徒''该犹''的。该犹这个名字在早期会众的日子相当常见。这名字在基督教希腊文圣经的其他部分出现过四次,所指的至低限度有三个甚或四个不同的人。没有任何资料肯定地表明约翰致信的该犹是上述几位中的任何一个。只知道该犹是基督徒会众的一分子,也是约翰的一位特别朋友。
约翰的信是直接写给他本人的,所以这是一封私人邮件。由于这缘故,信中总是使用“你”这个单数形式的称谓。
# 对该犹的''称赞'':约翰在书信开头表扬该犹对待兄弟姐妹(尤其是陌生人中的传道者)的爱心和款待。这些传道者向教会报告了该犹的忠诚和爱心,使约翰非常高兴。
# ''丢特腓的批评'':约翰接着批评''丢特腓'',因为他自高自大,不接受来自约翰的指导,也不款待旅行中的传道者。丢特腓甚至排挤和阻止那些想要接待传道者的人。
# 对''革百利''的''推荐'':约翰提到了另一位名叫革百利的信徒,他是按照真理行事的,约翰对他的见证很好,而且所有的人(包括真理本身)也都为他作证。
# ''结尾和个人话语'':约翰表示他有很多事情要写,但他宁愿亲口交谈,而不是用笔墨。他以亲切的问候结束信件,希望不久能见面。
《约翰二书》,天主教称《若望二书》,是《新约圣经》中的第24卷书,属于“大公书信”中最前写成的第五卷。是''篇幅较简短的数目之一,可以写在使徒时代的一页纸莎草纸上面''。
!! 主题
这封书信的内容集中于爱与真理的主题,同时警告信徒''不要接待或支持那些传播异端、否认耶稣基督在肉身中来临的拉比''。
# ''爱与真理'':约翰强调,行走在真理中是基督徒生活的标志,这包括相互之间的爱。他提醒读者,这种相互的爱基于遵守神的命令,尤其是彼此相爱的新命令。
# ''警告与鼓励'':约翰警告信徒要警惕那些散布异端的拉比,特别是那些否认耶稣基督以肉身形式来临的人。他教导信徒不要与这样的人有任何接触,以免自己被误导,偏离真理。
# ''保持信仰'':书信强调保持在基督的教导中,以避免迷失方向。约翰提醒信徒,坚守所学的真理,以获得完全的奖赏,即永生。
# ''结束语'':约翰表示希望亲自访问,以便更充分地交流,因为书信所能表达的有限。
《约翰福音》,天主教称《若望福音》(天主教汉译作《若望福音》),是《新约圣经》正典的第四部福音,共21章,是四福音书中最迟写成。本书中记载的''耶稣言行有许多未记录在其他三卷福音书''。
文体浅显但深邃,特别强调耶稣的神性和基督徒属灵生命的建造。写作主题是''生命的福音'',写作目的在介绍耶稣就是上帝的罗格思(λογος,意思即是“话语”,亦作“道”或“圣言”)以人的形象呈现,作者证明耶稣基督是救主,来进入人的生命。本书被教父革利免称为“属灵的福音书”。
基督教传统上,相信它的作者福音书作者约翰,即是使徒[[✝️约翰 John the Apostle]]。
!! 作者
虽然《约翰福音》中从没有提及作者姓名,教会传统,认为是使徒''约翰''所写。使徒约翰原为''渔夫'',后蒙耶稣呼召成了十二门徒之一。耶稣升天后,约翰于早期基督教会中扮演着重要的角色,老年被充军至地中海中的拔摩岛,他是唯一在第一世纪末仍存活的使徒。
有怀疑论者指出:约翰福音的行文流畅,但出自同一个作者的《启示录》的文法却是错漏百出。所以,约翰福音并非约翰本人所写,而是后人伪托。就此,有圣经学者认为:本福音很可能是口述历史,约翰讲述,而由其他人代为笔录,所以文句都经过润饰而变得通顺;相反的,约翰在撰写《启示录》正当被流放的阶段,文章没有人捉刀,所以文句不通顺。然而,两者要表达的讯息都是一致的。书中好几次称执笔者为“耶稣所爱的”门徒,并且引述耶稣谈及执笔者的话:“我若要他等到我来的时候,与你何干?”(《约翰福音》第21章第20节至第22节参)耶稣的话暗示这位门徒会比彼得和其他使徒长寿得多。这一切事情都跟使徒约翰吻合。
根据《约翰福音》的结尾,这本福音书的作者,他写作的目的,是为了为耶稣所爱的门徒所作见证。因此,有学者认为,福音书作者,他的年代,应该晚于十二使徒,可能与使徒约翰是不同的人。
!! 写作背景
虽然《约翰福音》并没有透露日期明确地,一般人都相信是在公元90-100年左右写成,写作地点可能是以弗所附近。
!! 主题特色
作者清楚表明他的目的,就是要''使人信耶稣是基督,是神之子,并因信祂而得生命''。从本书多处解释''犹太风俗''(《约翰福音》第4章第9节参)及''希伯来字义''(《约翰福音》第1章第38节参)的做法看来,作者传道的对象包括不谙希伯来语,散居四处的犹太人和外邦人。
约翰福音的引言部分十分特别,它透露道就是耶稣,在太初便“与上帝同在”,万物都是藉着道造的。(《约翰福音》第1章第2节参)把父与子之间的宝贵关系阐明出来之后,约翰以传神的笔触描述耶稣的工作和演讲。他特别着重这个观点:在上帝的伟大安排中,亲密的爱把一切事物团结起来。耶稣在地上一生的这份记录记述从公元29至33年耶稣的事迹,并且刻意提及耶稣在执行服事职务期间参加过四次逾越节庆祝,由此提供证据表明他从事服事职务的时间共计三年半。其中三次均指名提及逾越节。另一次则仅说是“犹太人的一个节期”,但上文提及耶稣在此不久之前说,“到收割的时候还有四个月”。这表示所谓“犹太人的一个节期”便是逾越节,因为这个节期是在收割的起头举行的。
本福音书跟符类福音(头三卷福音书)在多方面不相同。有关耶稣生平方面,''本书略去了许多事迹,如耶稣诞生,受试探,登山宝训,许多加利利的传道工作,纪念晚餐的设立,客西马尼园的祷告等''。在耶稣所行的神迹中,''本书只记载七个神迹表记——水变酒(《约翰福音》第2章第1节至第11节参),医治瘫子,喂饱五千人,履海(《约翰福音》第6章第16节至第21节参),医治瞎子及叫拉撒路复活''(《约翰福音》第11章第1节至第45节参)。约翰所记的大部分是补充性的资料,高达百分之九十二是其他三部福音书所无的新资料。虽然如此,约翰最后仍然说:“耶稣所行的事还有许多,若是一一地都写出来,我想,所写的书就是世界也容不下了。”(《约翰福音》第21章第25节)
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
纳尔弗(Narfi)或名诺尔维(Norvi)。是[[🦹邪神洛基 Loki]]和第三任妻子[[西格恩(Sigyn)|西格恩 Sigyn]]的孩子,他还有一个同父同母的兄弟瓦利(Vali),瓦利和奥丁的一个儿子同名,但并非同一人。
当洛基因为设计谋杀[[光明之神巴德尔 Baldr]]的时候,诸神给予洛基永罚,将其绑在巨大的岩石上,并设了一只不断滴著剧毒的毒蛇在他在头顶之处直到“''诸神的黄昏''”到来。这个绑洛基的锁链,就是''纳尔弗''的内脏做的。
据说纳尔弗是被他的兄弟所杀,瓦利后来也因这个行为被惩罚而变成了狼。
<<<
以上这些女神和有死的男子结成姻缘,
为他们生下如神一样的美丽子女。
现在,咏唱凡间的女子吧,言语甜蜜的
奥林波斯的缪斯、执神盾宙斯的女儿们!
<<<神谱
《启示录》2-3章记录给在小亚细亚的[[以弗所|以弗所 Ephesus]](初期结束时的教会)、''士每拿''(受逼迫的教会)、''别迦摩''(与世联姻的教会)、''推雅推喇''(背道的教会)、''撒狄''(改革的教会)、''非拉铁非''(恢复的教会)、''老底嘉''(堕落的教会)等七个教会的七封信。内容包括对每个教会的劝勉和责备。并呼召七个教会中的“得胜者”,有荣耀的冠冕为其存留。
亚米,是所罗门七十二柱魔神中排第58位的魔神。
远古传说形容魔神亚米(Amy)是一个伟大的统领,据说地位是大议长、大总督。相传在死者世界哈迪斯(Hades,希腊神话的冥界之神、也指地府)时全身为火焰包里的男性人型形态,被召唤至地上时则会顺应召换者的希望化为秀丽人类,被认为是地狱之火的拟人化,''常被视为与火相关''。是司掌占星术的恶魔,能将别人生命相转交换他人生命之能力。亚米不仅能给人占星术的知识,尚能给予人学问和忠仆。为统帅36个军团的指挥官,统率堕落的能天使。他是希望回到天国的恶魔之一,抱持著堕天20万年后就可回到天界的想法。
Amy appears in Jinnestan in the form of a flaming fire, but on Earth he puts on the shape of a human being.
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/58-Amy_seal.png/440px-58-Amy_seal.png">
<div class="desc">Seal of Amy</div>
</div>
</div>
''佛拉斯'',别名“佛卡斯”,是所罗门七十二柱魔神中排第31位的魔神,位阶统领,统帅29个军团。
形象是一个强壮的男人,可以''甄别药草与宝石,发现隐藏的宝物与复原失物''。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Ill_dict_infernal_p0296-280_forcas_demon.jpg/440px-Ill_dict_infernal_p0296-280_forcas_demon.jpg">
<div class="desc">《地狱辞典》中的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d7/31-Foras_seal.png/440px-31-Foras_seal.png">
<div class="desc">Seal of Foras</div>
</div>
</div>
哈艮地,为所罗门王72柱魔神中排第48位的魔神,位阶统领,统帅33个军团。别名“海艮地”(Haagenti)、“哈格尼特”(Hagenit)、“哈加提”(Haagenti)。其形象为''生著鹫翼的公牛''。他可以使人聪慧,亦有点石成金,化水为酒的能力。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Haagenti.jpg/440px-Haagenti.jpg">
<div class="desc">image</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/5b/Seal_of_Haagenti.jpg/440px-Seal_of_Haagenti.jpg">
<div class="desc">Seal of Haagenti</div>
</div>
</div>
''布耶尔'',为所罗门七十二柱魔神中排第10位的魔神。位阶统领。统帅50个军团。
当太阳位于射手座时他就会出现。就像希腊神话中的首席半人马凯龙''centaur''一样,他教授自然和道德哲学、逻辑以及所有草药和植物的品质和用途,并且还能够''治愈所有疾病''(尤其是人类的疾病)并赐予好的使魔<<fnote "使魔 Familiar ,又称使役魔,指的是在奇幻故事中,由魔法师、魔女之类的角色所操纵的动物、恶魔、怪物或精灵,两者之间有主从关系。">>。
他被描述为射手座的形状,就像一个拿着弓和箭的''半人马''。此外,路易斯·勒·布雷顿 (Louis Le Breton) 创作了一幅布尔的插图,后来由雅罗 (M. Jarrault) 雕刻,将恶魔描绘成''狮子头,身体周围有五、六或更多山羊腿或马腿,可以向各个方向行走''。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/df/Ill_dict_infernal_p0139-123_buer.jpg/440px-Ill_dict_infernal_p0139-123_buer.jpg">
<div class="desc">Buer, the 10th spirit, who teaches "Moral and Natural Philosophy". Illustration by Louis Breton from Dictionnaire Infernal</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/2/2a/Buer_Seal.jpg">
<div class="desc">Seal of Buer</div>
</div>
</div>
----
<<showfnotes>>
欧赛,所所罗门七十二柱魔神中排第57位的魔神,别名“欧兹”(Oz)。能告诉召唤者秘密的事情。以豹形示人或化为人型。擅长授人科学。可将人变形。
Ose is depicted as a ''leopard'' that after a while changes into a man.
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/75/57-Ose_seal.png/440px-57-Ose_seal.png">
<div class="desc">Seal of Ose</div>
</div>
</div>
''玛巴斯'',是所罗门七十二柱魔神中排第5位的魔神,位阶统领,统帅36个军团的地狱统领。别名“巴巴斯”(''Barbas'')、“八百松”(''Barbason'')。莎士比亚的作品里被描绘成一只''黄金狮子''。
他的特殊能力是''发现真实'',无论是隐藏的东西、隐秘的事情,在他面前都无所遁形。隐藏的东西,亦即是指相关的秘密知识,范围极广阔。他的形态多以''雄壮的狮子''出现,但根据召唤者的请求,偶尔也会以人类的模样出现。在布兰西的《地狱辞典》里,玛柏斯被称作地狱的大统领。
他被描绘成一只大狮子,在召唤者的要求下,可转变成一个人的形状。''会教人机械结构与机关艺术''。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/3e/Marbas_Seal.jpg/400px-Marbas_Seal.jpg">
<div class="desc">Seal of Marbas</div>
</div>
</div>
''玛帕斯'',是所罗门七十二柱魔神中排第39位的魔神,位阶统领,统帅40个军团,别名“玛法斯”(Malphas)。经常以''乌鸦''的型态示人。
他能轻易得''建造高塔与城邦'',也能''摧毁他人的建筑''乃至于欲望甚至思想,同样的他也能让追随者得到洞悉他人思考的能力。
他能''吸引具艺术天份的工匠'',也会为追随者提供仆从。他会收下任何献祭的供品,但他会欺骗他的追随者。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/21/Ill_dict_infernal_p0455_malphas.jpg/440px-Ill_dict_infernal_p0455_malphas.jpg">
<div class="desc">《地狱辞典》里的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/39-Malphas.png/440px-39-Malphas.png">
<div class="desc">Seal of Malphas</div>
</div>
</div>
华劣克,为所罗门七十二柱魔神中排第62位的魔神,位统领袖,或叫“瓦拉克”(Volac)。拥有与财宝相关的知识,也能看见蛇所看见的一切,并驱使蛇听从召唤者。 样貌据说是一个骑在双头龙上的儿童,背上有天使的翅膀。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/78/Volac.png/440px-Volac.png">
<div class="desc">《地狱辞典》里的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/0e/62-Valac_seal.png/440px-62-Valac_seal.png">
<div class="desc">Seal of Valac</div>
</div>
</div>
盖因,又称卡米欧(カミオ、Camio)是所罗门七十二柱魔神中排第53位的魔神,位阶统领,统帅30个军团。
''可使人听懂兽语'',给人真知。19世纪和20世纪的神秘学者皆以''黑色''鸟描绘盖因,并将它视为谋杀的鼻祖,但很快就改变他塑造第二形象-穿黑鸟装扮的人,在他手中有利剑的,回答问题时他会站在燃烧灰烬上。相传许多书中都有提到祂原本是天使堕天之后变成的恶魔。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/91/Ill_dict_infernal_p0163-147_caym_1.jpg/440px-Ill_dict_infernal_p0163-147_caym_1.jpg">
<div class="desc">《地狱辞典》中的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/20/53-Camio_seal.png/440px-53-Camio_seal.png">
<div class="desc">Seal of Caim</div>
</div>
</div>
概布,为所罗门七十二柱魔神中排第33位的魔神,位阶统领及贵公子,统帅66个军团。别名“戈布”(''Goap'')、“塔布”(''Tap'')。相传是堕落的能天使。被认为是地狱中手握强大权力的恶魔。现身于召唤师身前时,会有四名王者随侍。
在《伪以诺书》中,说他与派蒙(Paimon,所罗门王72柱魔神中的第9位)同为统领地狱西方的王。《地狱辞典》里,插画家布尔顿将他画成常见的有翼的石像鬼恶魔样貌。能力众多,他可以''剥夺的人的知识,也可以使人睿智,能改变人的爱憎'',解答人们关于过去与未来的问题,或将人传送到其他地方。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/da/Tap_%28d%C3%A9mon%29.png/440px-Tap_%28d%C3%A9mon%29.png">
<div class="desc">《地狱辞典》中的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/93/33-Gaap_seal.png/440px-33-Gaap_seal.png">
<div class="desc">Seal of Gaap</div>
</div>
</div>
''布提斯'',或称''Otis'',是所罗门七十二柱魔神中排第17位的魔神,位阶统领及伯爵,统帅60个军团。称号“''睿智伯爵''”、“''丑恶伯''”,其形象是一条''丑陋的蛇'',可以变身成为生有巨齿、二角的人类形态,也会佩带一柄闪亮光辉的宝剑。除了在《所罗门之钥》的记载,他为所罗门七十二柱魔神之外。他也同样被记录在默示文学《以诺书》和《伪以诺书》上,是名字存在已久的恶魔。
可''通晓有关过去与未来的知识'',也能''分辨敌友''。能力为授予召唤者过去与现在的知识。或是''调停''友方、敌对者的关系。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/17-Botis_seal.png/440px-17-Botis_seal.png">
<div class="desc">Seal of Botis</div>
</div>
</div>
摩拉克斯,是所罗门七十二柱魔神中排第21位的魔神,别名“佛拉克斯”(''Farax'')、“佛莱伊”(''Foraii'')。为地狱中的统领和伯爵,有三十个军团(亦有一说,三十二个军团)的恶魔受其领导。
能教导''天文学'',及其他广泛的科学,还能给予通晓药草及珍贵石头的使魔。相传祂的外型是''长了牡牛头的人''。但在《地狱辞典》中的插画家科兰·戴·布兰西,是将其絵制成摩洛的样子,并穿上中古世纪的衣服,坐在王座上,给人的印象很强烈。一般认为祂是从《旧约圣经》的〈利未记〉〈列王纪〉中记载的,亚们人信仰的神摩洛(Molech,或作Moloch )衍生而来的恶魔。虽然原点是由邪神摩洛而来,但是《雷蒙盖顿》中的摩拉克斯却差的多了。祂与斯托剌(Stolas,所罗门七十二柱魔神中的第36柱)和单卡拉比(Decarabia,所罗门七十二柱魔神中的第69柱)相同,可以让人''了解矿石与植物的秘密'',授予人''占星术''的知识等等,能力上并不特别。相传也可以给予魔法师们供人差遣的精灵。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/07/21-Marax_seal.png/440px-21-Marax_seal.png">
<div class="desc">Seal of Morax</div>
</div>
</div>
''格雷希亚拉波斯'',所罗门七十二柱魔神神中排第25位的魔神,位阶统领及伯爵,统帅36个军团。
被描绘成一只''拥有鹰翼的飞狼''。别名“卡喀里诺拉斯”(''Caacrinolas'')、“卡厄喀里诺拉斯”(''Caarucrinolass'')、“卡西莫拉尔”(''Cassimolar'')、“古拉夏”(''Glasha'')、“古拉奇亚·拉波剌”(''Gulakya labolas'')、“格莱扬拉波尔”等。
''喜好血腥及杀戮,杀人就是他的工作''。除了直接杀害对方这种工作之外,他也掌握了‘过去’和‘未来’的一切情报,熟悉数学、技术、科学的知识。尤其是科学方面拥有著丰富的知识,如果有这方面的需要便会授予术者广范的学问。另外,''有著能改对方的想法'',让人忽略召唤者的存在,相当于‘隐身’的能力。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/ed/Caacrinolaas.png/400px-Caacrinolaas.png">
<div class="desc">《地狱辞典》中的形象</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/25-Glasya-Labolas_seal.png/440px-25-Glasya-Labolas_seal.png">
<div class="desc">Seal of Naberius</div>
</div>
</div>
维利,[[包尔(Borr)|勃尔 Borr]]和女巨人[[贝斯特拉(Bestla)|贝丝特拉 Bestla]]的孩子。
他的兄弟是[[⚡众神之父奥丁(神圣) Odin]]和菲,是创造世界和创造人类的神。
当三兄弟利用树枝创造了人类后,''威利给他们理性与动作'',因此威利代表的意思是“''精神''”。同样的造人神话中,另一说法是奥丁和''海尼尔''和''洛德'',所以推测威利的另一个名字就是''海尼尔''。
在纪录中,奥丁和威利和菲被形容为是[[三位一体|三位一体 Trinity]]的存在,这也许是因为''当时的纪录者都是基督徒的关系'';当时的基督传教士会利用当地已有的神话传说,并加以转化比拟以符合基督教意。
另外,在一些诗歌中,提到奥丁曾经离开阿斯嘉特出游,而这段时间威利和菲就取代奥丁的位置,而且共有弗丽嘉。直到奥丁回来之后篡位者才偷偷跑走。奥丁离开的这七个月,北方的霜巨人趁机用寒冰冰封大地,这也是北欧人解释冬天由来的故事。
''每年的五月一日的祭典就是为了欢迎奥丁归来。''
''缪斯''(希腊语:Μουσαι、拉丁语:Muses)是希腊神话主司艺术与科学的九位古老文艺女神的总称。她们代表了通过传统的音乐和舞蹈、即时代流传下来的诗歌所表达出来的神话传说。''她们原本是守护赫利孔山泉水的水仙,属于宁芙的范畴。''后来人们将奥林匹斯神系的阿波罗设立为她们的首领。缪斯女神常常出现在众神或英雄们的聚会,轻歌曼舞,一展风采,为聚会带来不少的愉悦与欢乐。
在''荷马史诗'',缪斯有时一个,有时数个,均未提及个人名字,只说她们喜爱歌手,给予他们鼓励和灵感。
''赫西俄德''在其《神谱》说,她们是众神之王宙斯和提坦女神的记忆女神[[摩涅莫辛涅|记忆女神漠涅摩绪涅 Mnemosyne]]所生育的9个发束金带的女儿。
阿尔克曼则认为她们要比宙斯古老,是[[乌拉诺斯|天空之神乌拉诺斯 Uranus]]和[[盖亚|🌍大地女神盖亚 Gaea]]的3个女儿。
!! 神话中的缪斯
公元2世纪罗马时代的希腊地理学家保萨尼亚斯说一开始只有三位缪斯,为三位一体的老一辈诗歌女神。这三位缪斯体现了远古时代人们进行崇拜仪式时所需要的诗歌形式和技巧。
后来缪斯女神被分为长幼两辈,''长辈的缪斯为乌拉诺斯和盖亚之女,后辈缪斯女神为宙斯和谟涅摩叙涅之女。''长辈的缪斯女神分别为:
|缪斯 |希腊文 |拉丁文 |名字之意 |h
|阿俄伊得 |Αοιδή |Aoide |歌唱 |
|墨勒忒 |Μελέτη |Melete |沉思 |
|谟涅墨 |Μνήμη |Mneme |记忆 |
在古罗马作家西塞罗的《论神性》(De Natura Deorum)一书中又提到了四位提坦缪斯,她们是司管曲艺形式和技巧的缪斯女神,又合称为“曲艺四女神”:
|缪斯 |希腊文 |拉丁文 |名字之意 |h
|忒尔克西诺厄 |Θελξινόη |Thelxinoe |陶醉 |
|阿俄伊得 |Αοιδή |Aoide |歌唱 |
|阿耳刻 |Αρχή |Arche |开场 |
|墨勒忒 |Μελέτη |Melete |沉思 |
赫叙客俄斯在《希腊词典》中记载,缪斯女神曾经被称为“疯狂的”或“暴风雨般的”。''因为她们曾经被酒神[[狄俄倪索斯|🍺酒神狄俄尼索斯 Dionysus]]所主宰,同时还是他漫游时的玩伴,所以就把缪斯女神塑造成了疯疯癫癫的不良少女,动不动就想把谁给撕碎。''因此,领导着疯狂迷乱的缪斯女神的狄俄倪索斯被冠名为缪萨革忒斯(Musagetes),意思为“缪斯之首”。
后来缪斯女神因为需要被改造,被司管太阳与艺术之神—阿波罗所主宰,因此缪萨革忒斯这个名称归阿波罗所有。''阿波罗认为缪斯女神疯狂粗鲁的举止不符合他温文尔雅的气质'',但缪斯的可塑性是很高的,在阿波罗的领导下,缪斯女神们变得和阿波罗一样情操高尚、举止文雅,但她们也会有被激怒的时候。通常她们都是一群美丽高雅、充满活力的青年妇女。
在保萨尼亚斯所作的《希腊志》(Περιήγησις)中描述拥有天籁之音的人面鸟身女妖—塞壬,因为与缪斯进行音乐比赛落败,而代价则是被缪斯拔去了翅膀,令她们永远无法飞翔,后来缪斯用塞壬女妖们的翅膀编织成了象征她们胜利的王冠。
!! 目前经典的9位女神
|缪斯 |希腊文 |拉丁文 |司管艺术 |象征物 |名字之意 |h
|卡利俄佩 (卡利俄珀) |Καλλιόπη |Calliope |英雄史诗 |铁笔与蜡板 |声音悦耳的 |
|克利俄 |Κλειώ |Clio |历史 |书卷与桂冠 |赞美的 |
|欧忒耳佩 (欧忒耳珀) |Εὐτέρπη |Euterpe |抒情诗与音乐 |长笛与花篮 |令人快乐的 |
|忒耳普西科瑞(忒耳西科瑞) |Τερψιχόρα |Terpsichore |合唱与舞蹈 |七弦琴与常春藤 |热爱舞蹈的 |
|厄剌托 (埃拉托) |Ἐρατώ |Erato |爱情诗与独唱 |七弦琴或竖琴 |可爱的 |
|墨尔波墨涅 |Μελπομένη |Melpomene |悲剧与哀歌 |悲剧面具、短剑或棍棒 |声音甜美的 |
|塔利亚 |Θάλεια |Thalia |喜剧与牧歌 |喜剧面具、牧杖或铃鼓 |繁荣昌盛的 |
|波吕许谟尼亚 (波林尼亚) |Πολύμνια |Polyhymnia |颂歌与修辞学、几何学 |无象征物。 通常神情忧郁,头戴面纱。 |有很多颂歌的 |
|乌剌尼亚 (乌拉尼亚) |Οὐρανία |Urania |天文学与占星学 |天球仪与圆规 |天空的 |
这九位缪斯的名字''首次出现在赫西俄德的《神谱》中'',她们充分体现了古代希腊时期对诗歌艺术的完整理解,但哪位缪斯是隶属于哪门艺术领域的体现是后来才定义的。
活跃在十二世纪后半的君士坦丁堡文学作家—约翰·泰泽(John Tzetzes)另外给出了九位缪斯女神的名字,分别是''卡利科瑞(Kallichore)、赫利刻(Helike)、欧尼刻(Eunike)、忒尔克西诺厄(Thelxinoe)、忒耳普西科瑞(Terpsichore)、欧忒耳珀(Euterpe)、欧刻拉得(Eukelade)、狄亚(Dia)以及厄诺珀(Enope)''。
son of [[Haran]]
和亚伯拉罕从[[乌尔|乌尔 Ur]]离开前往迦南地,然而由于当地出现饥荒,他们被迫从迦南地到埃及暂住。
罗得与亚伯兰渐渐富有起来,并移至迦南的南地居往。他们过著游牧的生活,而且拥有很多牲畜,以致当地无法容纳他们,他们的牧人经常发生冲突。亚伯兰顾及他与罗得间的亲戚关系,遂向罗得提出分开各自发展。最后,罗得选择了靠近所多玛与蛾摩拉一带的平原,亚伯兰则住在迦南地。他们分开后,罗得渐渐移到所多玛居往。
《圣经·创世记》14:2-3 中提到,索多玛与蛾摩拉是''摩押平原''(死海的东南面)五城中的两个。该五城分别是''索多玛、蛾摩拉、押玛(Admah)、洗扁(Zeboim)和琐珥(Zoar)''。亚伯拉罕跟他的侄儿罗得分离时,罗得就选择了约旦河平原上的城邑,往东迁移直到索多玛,因为当时约旦河的全平原直到琐珥都是较富庶的。
较湿润富庶的土壤原为神的恩典,发展出安逸的城市生活,但也因人性的黑暗面发展而自为地充满荒唐悖谬的罪恶,预表义人(罗德)凭恃自己的能力与先知的身分,''选择了让家人趋附了充满物欲污染身心的危险环境''。
!! 相关事件
* [[所多玛和蛾摩拉 Sodom and Gomorrah]]
!! 相关作品
* [[索多玛一百天|https://www.wikiwand.com/zh-hans/%E7%B4%A2%E5%A4%9A%E7%8E%9B120%E5%A4%A9]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
罗马共和国,亦称''元老院与罗马人民'',是前509年到前27年之间的政体。前44年''尤利乌斯·恺撒''担任终身独裁官时,共和国面积达到鼎盛。
[[罗马帝国|https://www.bakumatata.com/notes/MedievalEurope/8kuNoteBook_MedievalEurope.html#%E7%BD%97%E9%A9%AC%E5%B8%9D%E5%9B%BD%20Roman%20Empire:%5B%5B%E7%BD%97%E9%A9%AC%E5%B8%9D%E5%9B%BD%20Roman%20Empire%5D%5D]],是历史上的一个文明帝国,承接着先前的[[罗马共和国|罗马共和国 Roman Republic 509 BC-27 BC]]。中国史书称为“''大秦''”或“海西国”。
前44年,罗马共和国将领凯撒成为终身独裁官,象征着共和制的结束;至前27年,屋大维成为奥古斯都,象征着罗马帝国的开端。其首都罗马城在公元前100年至公元400年这段时期是欧洲最大的城市,直至公元500年君士坦丁堡取代罗马城成为欧洲最大城市,帝国人口亦增长到五千至九千万,大约是当时世界总人口的约20%
罗马帝国可分为前期(前27年—200年)、中期(200年—395年)和后期〔395年—1204年/1453年〕三个阶段。
罗马共和国末年,政局由于一连串的内战和政治角力变得非常不稳定。公元前44年,共和国将领凯撒被元老院封为终身独裁官后不久,便遭到刺杀身亡。直至公元前31年,屋大维在亚克兴角战役击败对手马克·安东尼和女王克娄巴特拉七世,吞并埃及托勒密王国后,共和国的政局仍然不明朗。至公元前27年,元老院放弃共和制,赐君权及奥古斯都头衔予屋大维,这象征着罗马共和国的终结。这时元老院仍然存在,但大权已掌握在屋大维手中。最初几位皇帝都以“第一公民”自居。
屋大维征战的胜利扩张了帝国的领土。立国之初的两个世纪,帝国的政局有着前所未见的稳定,这段时期被称为“罗马治世”。直到公元41年,帝国第三位皇帝卡里古拉被刺身亡后,元老院曾经考虑恢复共和政制,但罗马禁卫军架空元老院,遂立克劳狄一世为帝。克劳狄一世在位期间,帝国继屋大维后首次征战不列颠尼亚。公元68年,克劳狄一世的继位者尼禄在兵变中自杀身亡,帝国遭遇一连串短暂的内战,同时犹太地区更爆发第一次起义,这段时期曾经有四位军团将领称帝。维斯帕先在公元69年战胜其他将领,建立弗拉维王朝。其继位者提图斯,在公元79年维苏威火山爆发后开放斗兽场。提图斯只短暂在位两年,便由其兄弟图密善继位为帝国第11位皇帝。图密善最后亦遭到刺杀身亡。元老院后来封涅尔瓦为皇帝,这亦是罗马五贤帝之首,开辟一段长达八十多年的政局稳定时期。罗马第13位皇帝图拉真是罗马五贤帝之中的第二位,他在位时见证帝国的最大版图。
康茂德在位时,帝国开始出现衰退之兆。公元192年康茂德被刺杀身亡,触发五帝之年,有五人同时称帝,分别是佩蒂纳克斯、尤利安努斯、奈哲尔、阿尔拜努斯和塞普蒂米乌斯·塞维鲁,乱象最后由塞普蒂米乌斯·塞维鲁取得胜利而告终。公元235年皇帝亚历山大·塞维鲁被刺杀身亡,导致三世纪危机,这段时期短短50年之内有26人被元老院封为皇帝。直至戴克里先在位时创立四帝共治,帝国才全面恢复稳定,这段时期一共有四位皇帝共同统治罗马帝国。这种制度并不能维持下去,很快便招致内战。内战最终由君士坦丁一世胜出,成为帝国的唯一统治者。后来君士坦丁一世迁都至拜占庭,并命名为新罗马,但史家更喜欢以其名字―君士坦丁称之为君士坦丁堡。君士坦丁堡自此之后一直是帝国的首都,一直到其终结。君士坦丁一世亦于313年将基督公教(中文译为天主教会)合法化,并由狄奥西亚一世将基督教定为国教,基督教从而成为西方世界的主要宗教。
这时的罗马帝国仍然是世界上的强权,并与其东面安息帝国的继承者波斯第二帝国互相抗衡,持续着一个世纪的纷争。狄奥多西一世是最后一位统治一个完整的罗马帝国的皇帝,随后帝国的领土因滥权、内战、野蛮人入侵、军事改革和经济衰退等负面因素被日益蚕食,这时的罗马帝国实际上已完全分裂成东西两部份,自此之后再没有被统一过。公元410年及公元455年,西面的罗马城相继被西哥德人和汪达尔人等日耳曼部族入侵。公元476年,西罗马帝国皇帝罗慕路斯·奥古斯都被奥多亚塞废黜,这象征着西罗马帝国的终结。但由于罗慕路斯·奥古斯都从未被东罗马帝国所承认,所以严格上来说,西罗马帝国上一位皇帝尼波斯在公元480年去世后才算是罗马帝国在西欧的统治划上句号。而东罗马帝国则一直存在至1453年,君士坦丁堡被土耳其人攻陷、皇帝君士坦丁十一世战死为止。史学家通称东罗马帝国为拜占庭帝国。
罗马帝国是世界历史上一个伟大的帝国,无论经济、文化、政治和军事上的成就都达到很高的水准,并和在与公元前一世纪兴起于亚洲的汉帝国西、东遥相并立。后世多将两者并列为当时世界上最先进及文明的强大帝国。整个罗马帝国(包括东西罗马帝国)存在将近一千五百年,帝国的疆域在图拉真在位末年(117年)达到全盛,控制着大约五百万平方公里的土地,统治着七千万的人口,这相当于当时世界总人口的百分之二十一。罗马帝国幅原辽阔,而且国祚长久,使拉丁希腊的语言、文化、宗教、发明、建筑、哲学、法律及政府模式对后世的影响相当深远。欧洲在整个中世纪时期,有数次对罗马帝国的复辟,这包括神圣罗马帝国。文艺复兴而后的欧洲帝国主义的兴起,更使希腊、罗马、犹太和基督教的文化向全世界传播开去,对现代社会文明的发展有着重要影响。
[[弗蕾亚(Freya)|女战神弗蕾亚 Freyja]],北欧神话中的美与爱之神,是[[🪸近海之神涅尔德 Njord]]的女儿。在日''耳曼'',她和神后[[芙莉嘉|众神之母弗丽嘉 Frigga]]混为一谈,但在''挪威、瑞典、丹麦和冰岛'',她是独立的神。
当弗蕾亚和她的父亲到[[阿斯加特|亚萨神国阿斯加特 Asgard]]做人质的时候,诸神惊羡于她非凡的美貌,立刻将''弗尔克范格(Folkvang)''之地及一座名为''瑟斯瑞尼尔(Sessrymnir)''的宫殿给她住。这宫殿非常之大,能够容纳有弗蕾亚的军队那样多的客人。
虽然弗蕾亚是美与爱的女神,可这并不专指着女性的美和儿女情长的爱情。另一说,她也有极纯正的阳刚的性格,领导着[[⚔️女武神瓦尔基莉 Valkyries]]到战场上挑选战死的勇士,一半的勇士归她带去,安置在''瑟斯瑞尼尔大宫'',这里的一切待遇和奥丁的''瓦尔哈拉''相同。
除了这些战死的勇士以外,世间纯洁的少女及忠实的妻子,死后亦得入此''瑟斯瑞尼尔大宫'',与所爱者团圆。这种生活是北欧的英雄的女子所醉心的理想生活,因希望入此宫而殉夫的女子,在古代的北欧人里是很多的。人们关于恋爱的祈求,弗蕾亚也会留心听取。她经常尽力撮合那些恋人成为一对。
因为是代表英雄的阳刚之美,''弗蕾亚的上半身是战士的装束,着金铠、戴盔、执盾与矛,下半身方是平常女子的装束。''
弗蕾亚也被视为''大地的人格化''。北欧神话是用了许多女神来代表大地各方面的现象的,现在这里又是一例;所以,在这个意义上,她的丈夫是象征着夏日的[[奥德(Odur)|奥德 Odur]]。北__欧神话又常用许多男神来代表太阳在四季中的各种现象__,夏天的太阳已有[[伐利|瓦利 Vali(son of Odin)]]和[[弗雷|丰饶之神弗雷 Freyr]]作象征,此亦为一例。
弗蕾亚很爱她的丈夫,他们生了两个女儿,一名''赫诺丝(Hnoss)'',一名''格尔塞蜜(Gersemi)'',是极美丽可爱的两个女孩子,她们的名字也因此成为一切可爱可贵之物的通称。
但是奥都尔的爱情却没有那么专挚。和弗蕾亚同居一久,奥都尔厌了,忽然出门漫游,不知所在。弗蕾亚孤寂地守在家里,伤心落泪;她的泪水滴在石上,石为之软,滴在泥中,''深入地下化为金沙,滴在海里,化为透明的琥珀''。经过了许多时候,不见奥都尔回来,弗蕾亚自己出门寻访;她走遍了世界各处,且哭且寻,''因此世界各处地下都有黄金。''
后来,终于在阳光照耀的南方的''安石榴''树下,弗蕾亚找到了奥都尔,那时弗蕾亚的快乐就像新娘一样。为纪念这安石榴,直至今日,北欧的习俗,新娘都是戴上''安石榴花''的。
奥都尔又被视为“''热情''”或“''情爱肉欲之欢''”的象征;这便是弗蕾亚之所以紧追不舍的缘故。
弗蕾亚当然是极喜欢首饰的。她从侏儒处得了一根黄金(或称珍珠)的[[项链|📿项链布里希嘉曼 Brisingamen]],更增加了她的美丽。她这金项链从不离身,只借过[[托尔|⚒️雷神托尔 Thor]]一次([[为托尔乔装弗蕾亚抢回雷锤的事|欺骗古鲁菲]]),洛基曾设法要偷这金项链,幸得被[[💂🏻破晓之神海姆达尔 Heimdallr]]看见,才未成功。
''鹰之羽衣''也是弗蕾亚的一件宝物。披上这件衣服,就可以变身为鹰。这件衣服曾经屡次借给[[洛基|🦹邪神洛基 Loki]]。
弗蕾亚常和她的哥哥[[弗雷|丰饶之神弗雷 Freyr]]同车出去,很慷慨地撒布弗雷的金车里的花果到世间。不过弗蕾亚也有她自己的车子,由''两只猫拉着''。据说这象征了柔和与肉感的猫,是芙蕾雅心爱的动物。
虽然弗蕾亚的正式丈夫是''奥德'',可是和她发生过关系的却也很多。自诸神以降的所有人,包括巨人和侏儒们都渴望得到芙蕾雅为妻。她的金项链就是这么换来的。
可是弗蕾亚不喜欢巨人,[[索列姆|索列姆 Thrym]]偷了托尔的雷锤,要得芙蕾雅来交换,虽然''托尔''亲自去求,芙蕾雅却坚决不肯。
至于男性的神祗们,正如''洛基''后来骂弗蕾亚的那样,都曾和弗蕾亚有过肉体上的关系。
|!父母 |[[⚡天神宙斯 Zeus]] and [[Eurynome]] |
|!标志 |玫瑰,桃金娘 |
|!对应罗马神 |Gratiae |
她们代表了真善美,因此也成为了艺术家们歌颂的主题之一。她们的名字和人数随不同地区和时期有许多变化。
!! 赫西俄德版本 //神谱//
# ''欧佛洛绪涅 (Ευφροσυν,Euphrosynê / Euphrosyne、“兴高采烈的”)''
# ''阿格莱亚 (Αγλαια,Aglaia / Aglaea、“光芒四射的”)''
# ''塔丽亚 (Θαλια,Thaliê / Thalia、“鲜花盛开的”)''
在罗马神话里她们被称为Gratiae。德尔斐附近的赛菲索斯河(Cephissus)是她们的圣地。
[img[https://upload.wikimedia.org/wikipedia/commons/a/ad/Sandro_Botticelli_039.jpg]]
//《春》里的美惠三女神(c. 1485-1487),波提切利//
荷马史诗中写道她们是爱神[[阿佛罗狄忒|💗爱情女神阿佛洛狄忒 Aphrodite]]的随从,常伴随在她的左右。她们也和地下世界和''厄琉息斯秘仪''<<footnote "入会仪式" "古希腊时期位于雅典西北部厄琉息斯的一个秘密教派的年度入会仪式,这个教派崇拜女神得墨忒耳和其女兒珀耳塞福涅。">>有关联。她们最初与其他女神一样,着白色长裙,但在后来的艺术表现中,她们通常呈现为裸体。她们也是缪斯女神们的同伴,经常在诸神的聚会和宴席上载歌载舞,为大家带来不少欢声笑语。
她们是宴欢,是消费,是最多彩的生活的人格化,美惠女神的生活是希腊人所追求的生活。希腊人的社会建立在赠礼(charistomai)和回馈的基础上,在他们看来,所有获得的都是一种“恩赐”。因而她们不仅仅是生活的理想,更是价值体系的化身。
她们最早是''司管丰收''的女神,后来演变成为''美惠女神'',代表了大自然所赐予的快乐、美丽和丰富的创造力。她们物化了人的欲望,是生命的化身,但并非在于死亡([[thanatos|☠️死神塔纳托斯 Thanatos]],塔那托斯)相对的意义上来说的:她们是生命给人带来的欢愉。所以她们也同时代表游戏,以及所有非理性的行为:婚外的性行为、不饿的时候进餐、舞蹈(作为一种并不必须的身体运动)。
然而,只有在一定的秩序下,生命才能绽放出这种层次的美好。她们需要一个力量来掌控。这种控制来自于[[阿波罗|☀️太阳神阿波罗 Apollo]],用他的齐特拉琴(kithara)指挥她们以规律的节奏和步伐进行舞蹈,这是和崇拜狄俄倪索斯的酒神的狂女的舞蹈完全不同的。同样,由她们代表的节日只在一年的特定时间举行。
美惠女神的神性是司仇恨与复仇的[[厄里倪厄斯 Erinyes|👩👧👧复仇三女神厄里倪厄斯 Erinyes/Furies]]的对称面,他们构成了秩序的明暗两部分:在古代社会,复仇是实践价值的一种途径;而通过交换礼品可以跳出复仇的循环,祛除生命的矛盾。
优雅或魅力是这种神性的外化,可以有不同的种类:如情欲的魅力,由阿佛洛狄特恩惠,能够引起欲望;又如荣耀是战士的魅力;再如国王的魅力能够唤起对律法的尊重(一种 χάρισμα ,charisma)。
这种“魅力”(χάρις,charis)也能够施恩于人,比如奥德修斯,由瑙西卡服侍洗浴后,接受了雅典娜馈赠的“魅力”,即变成与神有一样的外表。
!! [[🐍美杜莎 Medusa]]神话
<<<
她还生下[[戈耳戈姐妹|🐍戈耳工/蛇发女妖 Gorgon]],住在显赫大洋的彼岸,
夜的边缘,歌声清亮的[[赫斯佩里得斯姐妹|赫斯珀里得斯 Hesperides]]之家。
她们是[[斯忒诺|斯忒诺 Stheno]]、[[欧律阿勒|欧律阿勒 Euryale]]和命运悲惨的[[墨杜萨|🐍美杜莎 Medusa]]。
她是有死的凡人,别的姐妹不知死亡
也永不衰老。但也只有她与[[黑鬃神|🔱海神波塞冬 Poseidon]]
躺在青草地上的春花里同欢共寝。
当[[珀尔塞斯|珀尔修斯 Perseus]]砍下墨杜萨的头颅时,
高大的[[克律萨俄耳|🧌克律萨俄耳 Chrysaor]]和神马[[佩伽索斯|🐴飞马珀伽索斯 Pegasus]]跳将出来。
说起他俩名字的由来,一个生于大洋
水涛的边缘,另一个手握金剑出世。
''佩伽索斯''飞离大地那盛产绵羊的母亲<<fnote "泛指整个大地">>,
来到永生者中,住在宙斯的殿堂。
他为大智的宙斯运送鸣雷和闪电。
<<<神谱
---
<<showfnotes>>
[[美狄亚|https://www.wikiwand.com/zh-hans/美狄亞]](古希腊语:Μήδεια,拉丁语:Medea)是希腊神话中的人物。岛国科尔喀斯的公主,伊阿宋(以及埃勾斯)的妻子,也是神通广大的女巫。
依据《神谱》,美狄亚是太阳神赫利俄斯的孙女,她的父亲是科尔喀斯国王埃厄忒斯,母亲是海洋仙女伊德亚(Idyia)。美狄亚被爱神之箭射中,与率领阿尔戈英雄前来寻找金羊毛的伊阿宋一见钟情,帮助伊阿宋盗取羊毛并杀害了自己的亲弟弟阿布绪尔托斯。不料对方后来移情别恋,美狄亚由爱生恨,''将自己亲生的两名稚子杀害以泄愤'',随后驾龙飞去雅典。希腊三大悲剧大师之一的欧里庇得斯(Ευριπίδης)创作有同名的希腊悲剧《美狄亚》。
<<<
宙斯宠爱的国王埃厄忒斯之女
被埃宋之子——遵照神们的意愿——
从埃厄忒斯身边带走,在完成艰辛任务后。
这些任务发自傲慢无比的国王
恣肆的珀利厄斯,疯狂又残暴。
在此之后,他历尽苦难回到伊俄尔科斯,
乘着快船,身旁是那炯目的少女
埃宋之子娶她做如花的娇妻,
她为人民的牧者伊阿宋所征服,
生下墨多俄斯,由菲吕拉之子喀戎
在山里养大:伟大宙斯的意愿就此实现。
<<<神谱
第三十四至三十五章是本书第一大段的高潮,先知宣告神的审判,首先是针对''犹大国'',然后推展至以色列及周围的列国,最后言及全世界都要伏在神的审判之下,那日子善恶分明,''恶者受永远的形罚,善者享受神所预备的永生,得到永远不能夺去的喜乐''。
|!父母 |[[🌊海神蓬托斯 Pontus/Pontos]] and [[🌍大地女神盖亚 Gaea]] |
|!配偶 |[[多里斯 Doris]] |
|!标志 ||
|!对应罗马神 ||
在希腊神话中,涅柔斯(/ˈnɪəriːəs, ˈnɪərjuːs/;古希腊语:Νηρεύς,罗马化:Nēreús)是盖亚(地球)和她的儿子蓬托斯(Pontus 海洋)的长子。
Nereus和Doris''成为50个女儿(Nereids)和一个儿子(Nerites)的父母'',Nereus和他们一起生活在爱琴海。
!! Offspring
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
! 胜利女神
|对应罗马神 |Victoria |
|父母 |[[帕拉斯 Pallas|帕拉斯 Pallas]] and [[斯堤克斯 Styx|斯堤克斯 Styx]] |
耐克和她的兄弟姐妹是宙斯的亲密伙伴,宙斯是希腊万神殿的主神。根据古典(后来的)神话,当众神为泰坦之战召集盟友对抗旧神时,Styx将他们带到了宙斯。
耐克扮演了''神圣的战车手''的角色,她经常在古典希腊艺术中被描绘成这个角色。耐克在战场上飞来飞去,用月桂叶(月桂叶)的花环象征着胜利者的荣耀和名声。
是巴勒斯坦约旦河西岸的一个城市。耶利哥是杰里科省的省会,目前为''巴勒斯坦''解放组织的''法塔赫派系''控制。
杰里科位于耶路撒冷以北,是一个拥有超过三千年历史的古城。但根据考古发现,早在1万1千年前就已经有纳图夫人在这里居住,被认为是最古老的有人居住持续至今城市(英语:)之一。耶利哥是美索不达米亚地区第一个大型聚落,也是人类发掘出的最早的石质城墙的所在地。位于城市和其周围的丰富泉水在这数千年来吸引不少人来居住。
在《圣经·旧约全书》申命记34章第3节就以“棕树城”来形容这里。在过去,由于耶利哥城有充足的水源,而且位于死海北岸至地中海与加利利至耶路撒冷两条路线之间,所以经济与贸易十分发达。
<a href="https://www.wikiart.org/en/jean-fouquet/battle-of-jericho">
<<image-basic "https://uploads1.wikiart.org/images/jean-fouquet/battle-of-jericho.jpg!Large.jpg"
caption:"Jean Fouquet c.1472"
width:"400px"
align:"right"
>>
</a>
[[耶利哥|耶利哥 Jericho]]人害怕以色列人,就把城门紧闭,无人敢出入。神就晓谕约书亚说:“你们的兵丁要每日绕城一次,一共六天。七个祭司拿七个羊角走在约柜前,要边走边吹号角。在第七天,绕城七次,祭司也要吹角。角声尽量拖长,百姓要大声呼喊。”
约书亚于是让拿兵器的走在最前面,随后,约柜在吹羊角的祭司和百姓中间,众人一起绕城。他又吩咐:“你们不要出声,等到我让你们说话时,你们就大声呼喊。”到了第七天,约书亚对众人说:“呼喊吧!耶和华把城交给了你们。”百姓就齐声呼喊,祭司也吹角奏响。''城墙果然塌陷了'',以色列人都冲进了耶利哥,占地屠城。探子从[[喇合|喇合 Rahab]]家逃跑时,曾对她说:“等我们进城,你就把这放我们下去的朱红线系在窗户上,让你的父母弟兄全聚集到你家中,千万别到街上去。”耶利哥城被毁时,只有喇合家太平无事,其他的城民都被视为有罪的人给杀死,甚至连他们的牛羊、驴等都无一幸免。
灭城后,约书亚让众人起誓:“凡重修此城者,必在耶和华面前受兒诅。”
《耶利米书》,是由数个单元的文集编辑而成。内容主要是''先知[[🗣️耶利米 Jeremiah c.650-c.570 BC]]的讲辞'',也包括以第三人称提及先知的完传记材料。
这些单元的内容都应该出自先知耶利米的口,但记录者未必是他本人。类似《巴路克》,这些部份可能也出自先知的秘书巴录的报道(参36章:4节),而52章的历史附录则采用[[列王纪 Books of Kings 580 BC]]的资料。
《耶利米哀歌》,是《希伯来圣经》中的一个书卷。 主题:[[🗣️耶利米 Jeremiah c.650-c.570 BC]]对神的圣城和圣民之忧伤与爱的发表。
在公元前586年,巴比伦王[[🤴尼布甲尼撒二世 Nebuchadnezzar II 642-562 BC]]把耶路撒冷夷为平地。这首哀歌为上帝的选民在历史上所经历的惨痛毁灭发出深切的哀悼。
一般意见均认为此书理应在耶路撒冷于公元前586年陷落后不久写成。城市受敌人围困,继而被烈火焚烧,这种可怕的经历在耶利米的脑海中印象犹新。他把自己的痛苦淋漓尽致地描述出来。
!! 书名
* 在希伯来原文中,书名取自书中的''第一个字''“艾卡!”( Eh-khah′)意思是“何竟!”。
* 希腊文《七十士译本》的译者把书名称为“特雷诺”(Thre′noi),意即“挽歌;哀歌”。
* 《巴比伦塔木德》采用“季诺夫”(Qi·nohth′)一词,意思是“挽歌;哀歌”。
* 耶柔米把它译成拉丁文“拉曼塔森尼斯”(Lamentationes),此书的英文名字便源自这个字。
挪亚的儿子闪的一支有个叫[[亚伯兰|亚伯拉罕 Abraham]]的后代,他生于两河流域下游的吾珥,在七十五岁那年,听到了耶和华的召唤。神说:“你要离开本地、本族、 父家,往我所指示的地方去。”耶和华承诺必赐福给亚伯兰,使地上万族都因他而得福。亚伯兰就和妻子[[撒拉|撒拉 Sarah]]、侄儿[[罗得|罗得 Lot]]离开了原居住地哈兰(Haran),在新的土地上不断迁居,后来到了迦南人所住的[[示剑(Sichem)|示剑 Shechem]]定居。
那地方正遭遇饥荒, 亚伯兰又南下埃及暂住。亚伯兰担忧埃及人因垂涎妻子撒拉的美色而起歹心,便对人谎称''撒拉''是他的妹妹。不料法老看上撒拉,就格外优厚亚伯兰。
这件事大大激怒了耶和华,他降灾给埃及王,法老害怕了,不敢再有非分之想。亚伯兰和妻子又迁往别的地方,神再次晓谕他:“从你所在之处举目 观四方,凡能看见的一切地,我都要赐给你和你的后裔,永远不变。”那时 亚伯兰无子,神预示他的孩子将多如尘沙和繁星。他又听从神旨,改名叫 亚伯拉罕,就是多国之父的意思。神又说:“我要与你及你世代的后商立永 远的约,我必做你们的神,赐迦南全地为你们永久的业。”按照约定,凡亚伯拉罕后商家的男子都要行割礼,使肉体从出生就有标记。神必会惩锅背 约的人。亚伯拉罕后来带领部落穿越阿拉伯沙漠,到达位于''巴勒斯坦''的应许之地,在那里繁行生息。
亚伯兰从四个王的手中救回罗得,在胜利回程的时候与撒冷王麦基洗德 Melchizedek 相遇。这个''王以上帝祭司''的身分祝福亚伯兰,亚伯兰则把所得掠物的十分一献给他。
后来耶和华向亚伯兰显现,宣布他会作亚伯兰的盾牌,并且把约所含姆的应许加以扩大,透露亚伯兰的众子的数目会有如天上的众星。''亚伯兰获悉他的众子会被苦待400年,但在此之后耶和华会拯救他们,并且会惩罚虐待他们的国家''。亚伯兰85岁时,他的妻子[[撒莱|撒拉 Sarah]]仍然不育,于是她把埃及籍的使女[[夏甲|夏甲 Hagar]]给了丈夫,希望使女能给他生个孩子。夏甲生了[[以实玛利|以实玛利 Ishmael]],而他被视为亚伯兰的继承人。然而,这并不是耶和华的旨意。在亚伯兰99岁时,耶和华把他的名字改为''亚伯拉罕'',撒莱的名字则改为''撒拉'',并且应许撒拉会生个儿子。耶和华与亚伯拉罕立了''割礼之约'',他便立即吩咐家里的所有男丁都受割礼。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/a/ab/Abraham%27s_Journey_%28en%29.svg"
caption:"Abraham's Journey to Canaan according to the Book of Genesis."
width:"auto"
align:"center"
>>
* ''第一天''
** 要有光
* ''第二天''
** 要有昼夜
* ''第三天''
** 要有陆地,要有植物
* ''第四天''
** 要有日月和星辰
* ''第五天''
** 天上和海里要有鱼类飞鸟
* ''第六天''
** 地上要有动物昆虫,创造人类管理万物生灵
** 上帝将菜蔬和果实赐予人类作为食物,青草赐予飞鸟走兽作为食物(''提倡吃素哦'')
* ''第七天''
** ''休息''
<div class="gallery">
<div class="img-container">
<a href="https://www.wikiwand.com/en/Sistine_Chapel_ceiling#Media/File:Vaticano_2011_(52).JPG">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/59/Vaticano_2011_%2852%29.JPG/1920px-Vaticano_2011_%2852%29.JPG">
</a>
<div class="desc">Separation of Light from darkness</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/eb/The_Creation_of_the_Sun_and_the_Moon%2C_Michelangelo_%281508-1512%29.jpg/1913px-The_Creation_of_the_Sun_and_the_Moon%2C_Michelangelo_%281508-1512%29.jpg">
<div class="desc">Creation of the Sun, Moon, and Plants</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/f/f9/Dividing_water_from_Heaven.jpg">
<div class="desc">Separation of Land and Water</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Creaci%C3%B3n_de_Ad%C3%A1n.jpg/1920px-Creaci%C3%B3n_de_Ad%C3%A1n.jpg">
<div class="desc">Creation of Adam</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/9/9f/Michelangelo%2C_Creation_of_Eve_00.jpg">
<div class="desc">Creation of Eve</div>
</div>
</div>
(覆盖以西结书1:1-3:27)公元前593年,[[🗣️以西结 Ezekiel]]接获第一个异象。他在异象里看见狂风从北方刮来,接着有一朵火光闪烁的大云出现。 其中显出''四个有四个翅膀的活物,每个活物分别有人、狮子、牛和鹰四张脸''。他们的翅膀向上展开,各用两个翅膀彼此相接,两个翅膀遮蔽身体。
他们的形像有如烧着的火炭,每个活物均站在轮旁;轮中有轮,轮辋高而可畏,''其上布满眼睛''。它们可朝任何方向行走,步伐完全一致。在活物的头的上方,有一个像可畏的寒冰那样闪闪发光的平面,在他们的头顶上面铺开。
在四活物的头以上有穹苍的形像,穹苍之上有宝座,坐在其上的“就是''耶和华''荣耀的形像”。(以西结书1:28)(没有具体描述耶和华的形象)
耶和华对俯伏在地的以西结说:“人子啊,你站起来。”然后他派以西结作以色列和周遭悖逆的列国的预言者。他们听或不听都不打紧,最低限度他们会知道在他们中间有主耶和华的预言者。耶和华吩咐以西结''吃下书卷'',他吃了口中觉得甘甜如蜜。上帝告诉他说:“人子啊,我立你作以色列家守望的人。”(以西结书2:1;3:17)''以西结必须努力不懈地发出警告,否则他必不能存活。''
a Judge from [[士师记 Book of Judges c.1100 BC]]
!! 相关事迹
[[耶弗他献女]]
以色列人又做耶和华眼中邪恶的事,去敬奉巴力和亚斯他禄神像、阿拉米(叙利亚)的神、西顿的神、摩押的神、亚扪人的神、非利士人的神。他们离弃了耶和华,不再敬奉他。 耶和华就向以色列人发怒,把他们交在''非利士人''和''亚扪人''手里。 从那一年起,这些民族一直侵扰以色列人,极力压迫他们。有年的时间,所有住在约旦河东亚摩利人的土地上、在基列境内的以色列人,都受尽压迫。 亚扪人还会过约旦河来攻打犹大、便雅悯、以法莲部族,让以色列人苦不堪言。 他们就向耶和华求救。耶和华没有应许。
后来,''亚扪人''集结起来,在''[[基列|基列 Gilead]]''扎营。''以色列人''也聚集起来,在''米斯巴''扎营。 基列人和当地的首领都说:“谁带领我们跟亚扪人打仗,我们就让谁做基列所有居民的领袖。”
示师 [[耶弗他 Jephthah |耶弗他 Jephthah]]是妓女所生,其父的正妻生子后把他赶走,兄弟也不要他,就逃到山中与匪结交。
不久以色列被亚扪人欺负,就去请他回来作元帅,耶弗他就:“从前你们不是蔑视我吗?现在有难为何又来找我?”众人答应在神面前让他做领袖,他才和亚扪人争战。
耶弗他先派使者责问亚扪王说:“你和我们本不相干,竟也来攻打。”亚扪王却称:“以色列人当初从埃及来时占据了我们的地,该归还了。”耶弗他就回话:“我们在这块土地上已经有三百年,为什么三百年之内,你们都没来取回呢?”
<a href="https://www.wikiwand.com/en/Jephthah#Media/File:Giovanni_Antonio_Pellegrini_001.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b6/Giovanni_Antonio_Pellegrini_001.jpg/440px-Giovanni_Antonio_Pellegrini_001.jpg"
caption:"The Return of Jephtha, by ''Giovanni Antonio Pellegrini''"
width:"400px"
align:"right"
>>
</a>
然而口水战无用,耶弗他领兵来到亚扪人那里,要和他们决一死战。战前,耶弗他向神许愿说:“''你若让我打了胜仗,一旦我从血流成河的战场上平安归来,从我家里出来最先迎接我的,无论什么,我都必将它献于你。''”神就让以色列人和亚扪人苦战多时,最后攻取了二十座城池得胜。
耶弗他凯旋回到家中,他的独生女儿拿着鼓欢舞地跑出来迎接父亲。耶弗他忽想起他对神的誓言,就撕心裂肺地悔恨,不敢相信被拿来献祭的竟是他最亲爱的女儿,女儿反而安慰说:“誓言不可违,神帮你打退敌人就是为我报了仇。”又让父亲应允她能带同伴去山上呆两个月,好哭她终生为处女。
因此,在以色列有个习俗(规定):以色列的女子年年都去称赞基列人耶弗他的女儿,每年四天。
耶弗他做了以色列的士师''六年''。基列人耶弗他死后,葬在家乡基列的一座城里。
<a href="https://www.wikiwand.com/en/Jezebel#Media/File:097.The_Death_of_Jezebel.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/097.The_Death_of_Jezebel.jpg/1112px-097.The_Death_of_Jezebel.jpg"
caption:"The Death of Jezebel by ''Gustave Doré''"
width:"400px"
align:"right"
>>
</a>
''耶洗别''是《旧约圣经》·[[〈列王纪上〉和〈列王纪下〉|列王纪 Books of Kings 580 BC]]记载的人物,以色列王国国王[[亚哈|👑亚哈 Ahab]]的妻子。她的父亲是''西顿''的王埃特巴亚尔。 其名来自迦南拜巴力仪式中呼叫巴力的咒语。意思是“''王子在哪里''?” (אֵיזוֹ בַּעַל 'ēyzō ba'al)
''耶洗别''个性冷酷,是''巴力''的狂热信奉者。她在以色列国利用其王后地位和''亚哈王''的懦弱压迫以色列民改信巴力,大量供养巴力先知,杀害耶和华的先知。后在一次叛乱中被''耶户''奉耶和华之令处决。
耶洗别的生平记载在〈列王纪上〉16-21章,以及〈列王纪下〉九章。她是迦南人的城邦国西顿国的公主,在热心事奉巴力的气氛中长大,兽人地区继续信奉巴力,并且藉著软弱的丈夫强迫以色列人随从她的宗教。''耶洗别''迫害耶和华的信徒,要杀光耶和华的先知,并''奉养四百五十名拜巴力的先知''。
有一次,亚哈王想征用''耶斯列''一处民间葡萄园,但遭到了园主的回绝。耶洗让两个地痞诬告园主“他诅咒了上帝和王!”,民众就把他拉出城外,用石头打死了他。亚哈于是能强占葡萄园。因此,上帝授意[[以利亚|🗣️以利亚 Elijah]]去向亚哈及耶洗别预告上帝对他们的刑罚,说:“''在耶斯列田间,狗必吃耶洗别的肉''。”
耶洗别的下场很可悲。多年以后,耶洗别成为太后。在一场由将军''[[👑耶户 Jehu]]''领导的政变中,叛军攻到王宫。
耶洗别知道国政死期已至,还慢慢装扮梳头,并讽刺窗外的耶户: “[[👑心利 Zimri]]杀了主人,有什么好下场吗?”
耶户命她身边的太监将她从高阁的窗户扔下,结果耶洗别的尸体被野狗啃,除了头骨、脚和手掌以外,什么也找不到。
<a href="https://www.wikiwand.com/en/Jehu#Media/File:Andrea_Celesti_-_Queen_Jezabel_Being_Punished_by_Jehu_-_WGA4622.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/7/74/Andrea_Celesti_-_Queen_Jezabel_Being_Punished_by_Jehu_-_WGA4622.jpg"
caption:"Queen Jezebel Being Punished by ''Jehu. Andrea Celesti ''(1637–1712)."
width:"400px"
align:"left"
tooltip:"tooltip">>
</a>
耶洗别的女儿''[[亚她利雅|👸亚她利雅 Athaliah]]''实际上篡夺了国王的宝座,''成为以色列或犹大的唯一女王''。亚她利雅像她的母亲一样邪恶,甚至有过之而无不及。
!! 相关事件
[[以利亚在以色列作预言者]]
!! 迦拿的婚礼
(John 2:1)
[[🧔🏻♀️耶稣 Jesus c.4 BC-33]]在迦拿(一个地方)一个人的婚礼上展示了第一个神迹:把6大缸水变酒。
<a href="https://www.wikiwand.com/en/The_Wedding_at_Cana#Media/File:Paolo_Veronese_008.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Paolo_Veronese_008.jpg/1920px-Paolo_Veronese_008.jpg"
caption:"The Wedding Feast at Cana
[[Paolo Veronese|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E4%BF%9D%E7%BD%97%C2%B7%E5%A7%94%E7%BD%97%E5%86%85%E5%A1%9E%20Paolo%20Veronese%201528-1588:%5B%5B%E4%BF%9D%E7%BD%97%C2%B7%E5%A7%94%E7%BD%97%E5%86%85%E5%A1%9E%20Paolo%20Veronese%201528-1588%5D%5D]] 1563 "
width:"auto"
align:"center"
>>
</a>
<<alert warning src:"The wedding at Cana也是一个画家很喜欢表现的主题" class:"leftbar border-warning">>
!! 尼哥德慕及约翰
心怀恐惧的''尼哥德慕Nicodemus''(法利赛派,是犹太人的一个首领)在夜间来见耶稣。他承认耶稣是上帝差来的。耶稣告诉他人必须从水和神圣力量而生才能进上帝的国。人若要得生命,就必须相信人子是从天上降下来的。
“上帝爱世人,甚至将他的独生子赐给他们,叫一切信他的,不致灭亡,反得永生。”(约翰福音第3章第16节)
耶稣说:“光来到世人当中,人却因为自己做的事邪恶,就爱黑暗而不爱光,这正是他们被定罪的理由。作恶的人恨光,不到光这里来,免得自己做的事受谴责。实践真理的,却到光这里来,这就表明他是按照上帝的旨意去做的。”
[[🗣️施洗约翰 John the Baptist]]获悉耶稣在犹太地的活动之后,再次声明自己不是基督,可是,“新郎的朋友……听见新郎的声音就甚喜乐。”耶稣必兴旺,约翰必衰微。
!! 在加利利
在迦拿只说了一句话把一个小孩治好了。(第二个奇迹)
在耶路撒冷治好了一个病了38年的人。
耶稣在安息日救人,触犯了安息日不可工作的规定,还说“我父亲不断工作直到现在,我也不断工作。”,犹太人非常看不惯他,因为他“把上帝称为自己的父亲,自命跟上帝平等。”
施行奇迹用5个饼2条鱼喂饱5000个人。众人试图立他为王,他独自退到山里去了。
在海上行走追上门徒的船。
耶稣传道说只有吃了从天而降的食物才会永生,而自己就是从天而降的食物。只有吃了他的肉喝了他的血的人才能得到永生。他的门徒中有人认为这些话过于骇人,不会有人相信。耶稣回说“神圣力量才能给人生命,血肉之躯毫无作用。我对你们说的话是受神圣力量指引的,能给人生命。可是你们有些人不相信。”(John 6:63)
耶稣说自己知道谁是出卖者。
<<card
text:"
耶稣就对他们说:“我不是挑选了你们12个人吗?但现在你们有一个人好像魔鬼一样(有一个人是诽谤者)。”
<br>
其实他说的是加略人西门的儿子犹大。犹大虽然是十二使徒之一,后来却出卖了耶稣。
"
footer:"John 6:70"
>>
!! 让失明的人复明
耶稣让一个生来就失明的人复明,那人认为耶稣是先知。法利赛派的人逼迫复明的人承认耶稣是个罪人,那人拒绝了。
<<card
text:"
于是他们再次把曾经失明的人叫来,对他说:“你要在上帝面前说真话。我们知道那个人是罪人。”
<br>
他回答说:“他是不是罪人,我不知道。但有一件事我知道,就是我以前看不见,现在能看见了。”
<br>
他们就问:“他对你做了什么?他怎样开了你的眼睛?”
<br>
他回答说:“我已经告诉你们了,你们却不听。为什么现在又想听一遍呢?''难道你们也想做他的门徒吗''?” 他们就轻蔑地对他说:“你才是那个人的门徒,我们是摩西的门徒。 我们知道上帝对摩西说过话。至于这个人,我们不知道他是从哪里来的。”
<br>
那个人就说:“这就怪了,他开了我的眼睛,你们竟然不知道他是从哪里来的。 我们知道上帝不听罪人。谁敬畏上帝,按照他的旨意去做,上帝就听谁。 ''自古以来从没有听说过,有人竟可以开了天生失明的人的眼睛。 这个人要不是从上帝那里来的,就什么也做不了。''”
<br>
他们说:“你完全生在罪里,居然还要教训我们?”他们就把他赶了出去。
"
footer:"John 9:1"
>>
耶稣问复明的人要不要信从他,他答应了。耶稣说“''我来到世人当中,就是为了使他们受到审判,使看不见的能看见,能看见的倒瞎了眼。''”
!! 让死人复生
从距离耶路撒冷不远的伯大尼传来消息,[[抹大拉的马利亚 Mary Magdalene]]<<fnote "这个马利亚就是用馨香油抹主,并用自己的头发把他的脚擦干的那个人。">>和马大的兄弟''拉撒路''病了。耶稣抵达时,拉撒路已经死去,并且葬在坟墓里已有四日之久。耶稣施行了一个惊人的奇迹,使拉撒路复活过来,结果许多人都信了耶稣。犹太公会于是召开特别会议,大祭司''该亚法''被迫预言基督注定要替国家死。既然大祭司和法利赛人商议要杀耶稣,耶稣便暂避一下,不在公众场所露面。
----
<<showfnotes>>
马太福音以[[🧔🏻♀️耶稣 Jesus c.4 BC-33]]的父系家谱开始,证明耶稣是[[大卫|👑大卫王 David]]的子孙,就是《旧约圣经》所预言的基督。
耶稣的童年由[[约瑟|约瑟 Joseph,son of Jacob,son of Matthan]]的妻子,[[🤱🏽马利亚 Mary, mother of Jesus]]从圣灵被感孕开始,在[[伯利恒 Bethlehem]]出生。后来为逃离大''希律''王的杀害逃往埃及,皆应验了[[旧约圣经|神的王权(7-12章)]]的预言。
<<card
text:"
以下是耶稣基督诞生的经过。他母亲马利亚已经跟约瑟订了婚,还没有住在一起,神圣力量就使马利亚怀孕了。她丈夫约瑟是个正义的人,不想公开羞辱她,于是打算秘密地跟她离婚。不料,就在约瑟反复考虑这些事的时候,耶和华的天使在梦里向他显现说:“大卫的子孙约瑟,不要害怕接你的妻子马利亚回家,因为使她怀孕的是神圣力量。她将要生一个儿子,你要给他取名叫''耶稣''*,因为他会拯救自己的子民摆脱他们的罪。”这些事发生,是要应验耶和华通过先知所说的话:“看哪!将有处女怀孕,生下一个儿子,人们要给他取名叫[[以马内利|神的王权(7-12章)]]。”以马内利翻译出来,意思就是“上帝与我们同在”。
<br><br>
约瑟睡醒了,就照着耶和华的天使指示的去做,把妻子接回家。不过,约瑟等她生了儿子后,才跟她行房。约瑟给孩子取名叫耶稣。
"
footer:""
>>
(*)这个名字相当于希伯来语名字“耶书亚”或“约书亚”,意思是“耶和华是拯救”。
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='nsort[num]'/>
</div>
(覆盖《路加福音》第1章第5节参至《路加福音》第2章第52节。)
一位天使向年老的祭司[[撒迦利亚|撒迦利亚 Zechariah]]显现,带给他一个喜讯,说他将会有一个儿子,要起名为“约翰”(即[[🗣️施洗约翰 John the Baptist]])。但在男孩出生之前,撒迦利亚将不能说话。正如天使所应许,撒迦利亚的妻子[[伊利莎白 Elizabeth]]虽然“年纪老迈”,却得以怀孕。
''伊利莎白''差不多六个月之后,天使加百列向[[🤱🏽马利亚 Mary, mother of Jesus]]显现,说她会凭着“至高者的能力”怀孕,生下一个名叫“[[🧔🏻♀️耶稣 Jesus c.4 BC-33]]”的儿子。马利亚前往探问伊利莎白,在作了愉快的问候之后,她心花怒放地宣告说:“我心尊主(耶和华)为大;我灵以上帝我的救主为乐。”
她谈及耶和华的圣名,以及上帝对敬畏他的人所显的恩典。约翰出生的时候,''撒迦利亚''恢复了说话能力。他宣告上帝的慈爱,透露约翰会成为预言者,为耶和华预备道路。
详细描述了耶稣出生的场景(其他两部书都没有的),__没有提及耶稣养父约瑟对马利亚怀孕的感受__。
<<card
text:"
在那段时期,作为凯撒的[[提贝里乌斯 Tiberius 42 BC-37]]颁布法令,要在帝国全境进行户口登记。这第一次登记,是在居里纽做叙利亚总督的时候进行的。人人都回自己的城去登记。于是[[约瑟|约瑟 Joseph,son of Jacob,son of Matthan]]就从[[加利利 Galilee]]的拿撒勒城出来,上''犹地亚''去,前往[[大卫|👑大卫王 David]]的故乡[[伯利恒 Bethlehem]]城,因为他是大卫家族的人。他带着''马利亚''一起去登记户口。
当时马利亚已经照婚约嫁给了约瑟,而且她怀的孩子快要出生了。他们到达那里以后,马利亚的产期到了。她生了一个儿子,就是她的长子。__她用布带把儿子裹起来,放在饲槽里,因为住宿的地方已经满了,没有地方给他们住。__
<br><br>
那一带有牧人露宿野外,整晚守护羊群。突然,耶和华的天使站在他们面前,耶和华荣耀的光辉四面照着他们,他们就非常害怕。 天使对他们说:“不要怕,我有好消息告诉你们,这好消息会为所有人带来极大的喜乐。 今天在大卫的故乡,你们的救主诞生了,他就是主基督。 ''你们会找到一个用布带裹着的婴儿,躺在饲槽里,凭着这个特征你们就可以认出他来''。” 忽然有一大队天军,跟那个天使一起赞美上帝,说: “在高天,荣耀归于上帝;在地上,平安临到他认可的人。”
<br><br>
那些天使离开他们回到天上去了,牧人彼此说:“我们一定要到伯利恒去,看看耶和华告诉我们已经发生的那件事。” 他们急忙去了,果然找到马利亚、约瑟和躺在饲槽里的婴儿。 他们看到这一切,就把他们听到的关于孩子的信息告诉大家。 听到的人都对牧人说的感到惊讶。 马利亚却记住这一切,在心里反复思量。 牧人回去,因为听见和看见的跟天使说的全都一样,就尊崇和赞美上帝。
"
footer:"Luke 2:1"
>>
后来耶稣在伯利恒出生。有天使在夜间向看守羊群的牧人宣布这个“大喜的信息”。耶稣的父母按律法给他行了割礼,在圣殿里“把他献与耶和华”。年老的西面和女先知亚拿都发言谈论这个孩子。回到拿撒勒之后,“孩子渐渐长大,强健起来,充满智慧,又有上帝的恩在他身上。”耶稣12岁时,从拿撒勒出发前往耶路撒冷探访。他的理解力和回答令当地的教师大感惊讶。
耶稣的谱系,是耶稣经由其俗世的父母(玛利亚和约瑟)一支或两支的谱系,在《圣经》中记载于《新约圣经·对观福音书》的2个段落:《[[马太福音 Gospel of Matthew c.41]]》第1章第2-16节和《[[路加福音 Gospel of Luke c.56-58]]》第3章第23-38节。
这2份耶稣的谱系都向上追溯到[[👑大卫王 David]]乃至[[亚伯拉罕 Abraham]];而《''路加福音''》中的谱系还继续向上,''一直追溯到亚当''。
这2份耶稣的谱系在亚伯拉罕和大卫之间的部分是一致的,''但是在大卫以后的部分则有极大的差异''。关于这个差异,有两派说法,其一为''马太''所述为[[约瑟 Joseph,son of Jacob,son of Matthan]]的谱系,''路加''所述为''玛利亚''的谱系,另一说法为马太所述为约瑟的生父雅各的谱系,路加所述为约瑟的继承父希里的谱系,因出于所罗门谱系的马但,生了雅各。马但死后,属拿单谱系的玛塔,娶了马但的寡妇,并生了希里。因此,希里和雅各是同母的兄弟。希里无子而死,雅各为他兄弟立后生了约瑟。约瑟根据血源是属雅各,但照著法律,又是属于希里。因此约瑟是他们二者的儿子。
经文路加福音22章47-24章53
!! 耶稣和犹大的对话
路加福音在《最后的晚餐》中没有提及和犹大的对话(犹大承认自己是出卖者)
没有预先提到犹大用亲吻来给士兵传递信号;在犹大亲吻耶稣时,耶稣回了一句“犹大,你用亲吻来出卖人子吗?”
!! 希律戏弄耶稣
在审判耶稣时,提到了[[希律|🤴大希律王 Herod the Great 74 BC-4 BC]](这是其他两本书没有提到的)。希律王希望耶稣显示神迹,但是耶稣一言不发,于是希律和士兵一起侮辱他,戏弄他,给他穿上华丽的衣服再押回''彼拉多''那里。“那一天,希律和彼拉多成了朋友,从前他们一直互相敌视。”
!! 和耶稣一同被处刑的罪犯
其中一个罪犯嘲笑他,另一个承认他的身份,和他说“耶稣,你领受王权以后,求你记得我。” 耶稣回他“我今天实在告诉你,你会跟我一起在乐园里。”
!! 耶稣最后的话语
耶稣大声呼喊说:“父''亲啊,我把我的生命托付在你手里。''”他说了这句话,就断气了。
!! 复活日的天使
接着那周的头一天大清早,她们带着准备好的香料到墓穴去。2 她们看见墓穴的石头已经移开了,进去一看,却没看到主耶稣的遗体。正迷惘的时候,忽然有''两个人''站在她们旁边,衣服闪闪发光。(为2名,其他两本书记录为1名)
“她们这才想起他的话来,就从墓穴回去,向那11个使徒和其余的人报告一切。”([[马太福音 Gospel of Matthew c.41]]妇女去报了信,半道上遇到了耶稣;[[马可福音 Gospel of Mark c.61-65]]只写到妇女慌忙逃走,不敢告诉任何人)
在被告知耶稣复活后,[[✝️彼得 Saint Peter]]不相信此事,回到墓穴查看,只看到包裹耶稣的细麻布。
十一使徒在[[耶路撒冷|耶路撒冷 Jerusalem]]看到耶稣现身。众人十分惊慌,以为看到了灵体。
<<card
text:"
耶稣说:“你们为什么不安?为什么起疑心呢? 看看我的手我的脚,是我。摸摸看,灵体没有肉没有骨,你们看我是有的。” 他边说边把手脚给他们看。 他们又惊又喜,还是不敢相信。耶稣对他们说:“你们这里有没有吃的?” 他们递给他一块烤鱼。 他接过来,在他们眼前吃了。
"
footer:"Luke 24:38"
>>
<a href="https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%A4%9A%E9%BB%98%E7%9A%84%E6%80%80%E7%96%91%20(%E5%8D%A1%E6%8B%89%E7%93%A6%E4%B9%94)%20The%20Incredulity%20of%20Saint%20Thomas%20(Caravaggio)%201601-1602:%5B%5B%E5%A4%9A%E9%BB%98%E7%9A%84%E6%80%80%E7%96%91%20(%E5%8D%A1%E6%8B%89%E7%93%A6%E4%B9%94)%20The%20Incredulity%20of%20Saint%20Thomas%20(Caravaggio)%201601-1602%5D%5D">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6c/Der_ungl%C3%A4ubige_Thomas_-_Michelangelo_Merisi%2C_named_Caravaggio.jpg/1903px-Der_ungl%C3%A4ubige_Thomas_-_Michelangelo_Merisi%2C_named_Caravaggio.jpg"
caption:"The Incredulity of Saint Thomas (Caravaggio) 1601-1602"
width:"400px"
align:"right"
tooltip:"">>
</a>
!! 升天
耶稣带他们到''伯大尼''去,举手给他们祝福。正祝福的时候,耶稣离开他们,''被接到天上去了''。他们就向他下拜,满怀喜乐地回耶路撒冷,常常在圣殿里赞美上帝。(升天情节其他两本书没有描述)
<<card
text:"
从那时起,[[🧔🏻♀️耶稣 Jesus c.4-33]]开始向门徒说明,他必须到耶路撒冷去,在长老、祭司长、抄经士手下受很多苦,''又要被杀,第三天复活''。
"
footer:"Matthew 16:21"
>>
耶稣对门徒谈及谦卑。彼得问:‘我的弟兄冒犯了我,我要宽恕他多少次呢?到7次够吗?’我告诉你,不是到7次,而是到77次。”
耶稣指出比喻的要点说:“你们各人若不从心里饶恕你的弟兄,我天父也要这样待你们了。”
门徒问耶稣天国里谁最大?耶稣说:凡谦卑像小孩子的,他在天国里是最大的。(Matthew 18:1)
<<card
text:"
那时[[法利赛人 Pharisees]]的人离开了,商议怎样利用耶稣的话来陷害他。 他们派自己的门徒,跟希律党徒一起去见耶稣,说:“老师,我们知道你只说真话,按照真理教导人认识上帝的道,不求任何人的认可,因为你不看人的地位。 所以,请告诉我们,你认为怎样?纳人头税给凯撒,可不可以呢(合不合规矩呢)?”
<br><br>
耶稣知道他们心怀恶意,就说:“虚伪的人,你们为什么试探我? 拿一枚交税用的钱币给我看。”他们就拿了一枚第纳流斯钱币给他。 耶稣对他们说:“这是谁的像,谁的名号?” 他们说:“是凯撒的。”
<br><br>
于是耶稣对他们说:“因此,''属于凯撒的要给凯撒,属于上帝的要给上帝。<br>Caesar’s things to Caesar, but God’s things to God.''”
<br><br>
他们听到后非常惊讶,就离开他走了。
"
footer:"Matthew 22:15"
>>
<<card
text:"
法利赛派的人听说耶稣使撒都该派哑口无言,就一起前来。 他们当中有一个精通摩西法典的要试探他,就问他: “老师,法典中哪一条诫命是最大的呢?”
<br><br>
耶稣对他说:“‘''你要全心,全意,用全部生命爱耶和华你的上帝。You must love Jehovah your God with your whole heart and with your whole soul and with your whole mind.''’ 这是最大、最重要的诫命。 其次的也类似,就是‘要爱人如己’。 整套法典和先知书的话都基于这两条诫命。”
"
footer:"Matthrew 22:34"
>>
son of [[俄备 Obed]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
耶路撒冷(汉译:圣城、古都斯或古德斯,意为“''神圣的''”)为巴勒斯坦地区的一座城市,''以色列实际控制''全城并将其视为本国首都,而联合国观察员巴勒斯坦国认为其东部为该国首都。
古代欧洲人将该城视为''世界的中心''。耶路撒冷位于地中海和死海之间,是''史前的全球宗教重镇'',也是完整保留亚伯拉罕诸教信仰文明演进史的一个城市。耶路撒冷同时是[[亚伯拉罕诸教|亚伯拉罕诸教 Abrahamic religions]](或称“三大天启宗教”以及一神论)的圣地。
''以色列和巴勒斯坦国都声称耶路撒冷是他们的首都'',''犹太人、基督徒及穆斯林''均相信此处是他们的''宗教圣城''。不过,两国的声称在国际社会上都没有得到广泛承认。一般认为该市的最终地位尚未确定,有待以色列和巴勒斯坦双方协商谈判。多数国家都将驻以色列大使馆设在特拉维夫。''今天耶路撒冷仍然是以巴冲突的中心。''
!! 司提反殉道
(覆盖经文6:1-7:60)。 司提反是受圣灵任命负责分配膳食的七个人之一。 除此之外, 他也以有力的方式为真理作见证。他十分热心, 以致反对者把他带到公会面前,控告他犯了亵渎的罪。司提反为自己辩护。 他首先追述耶和华怎样对以色列人表现长久的忍耐。接着,他指出:‘你们这硬着颈项的人,常时抗拒圣灵!你们受了天使所传的律法,竟不遵守。’(7:51-53)
他说“我看见天开了,人子*站在上帝右边。”,众人无法再忍受, 于是冲上前去,将他推到城外, 用石头打死他。扫罗(即后来的[[保罗|保罗 Paul the Apostle c.3-c.67]])在旁观看,表示赞同。
!! 逼迫爆发及扫罗归信
(覆盖经文8:1-9:30)。从此,耶路撒冷的基督徒大受逼迫,除了使徒以外,各人都分散各地。腓利逃往撒马利亚,当地有很多人接受上帝的话语。[[彼得|✝️彼得 Saint Peter]]和[[约翰|✝️约翰 John the Apostle]]从耶路撒冷奉差到那里,使当地的信徒也可藉着‘使徒按手’而获得圣灵。(8:18)其后,天使指引[[腓力|✝️腓力 Saint Philip]]向南走,往耶路撒冷下迦萨的路去,他在那里见到埃塞俄比亚宫廷的一位宦官坐在马车上诵读以赛亚书。腓力不但指导他明白其中预言的含意,也给他施了浸。
(Acts 9:1)
那时,''扫罗''肆意残害会众,闯进每家每户,无论男女都拉去监禁。
与此同时, ''扫罗''还是杀气腾腾,气势汹汹地恐吓主的门徒。他到大祭司那里去,求大祭司发公函给大马士革的所有会堂,让他一找到''奉行主道''(指基督徒的信仰和生活方式)的人,无论男女,就可以逮捕,押到耶路撒冷去。
他快到大马士革时,突然,天上突然射出一道光照在他身上,天上有声音对他说: “我就是你正在迫害的耶稣。你起来,进城去。那里会有人告诉你该怎么做。”
''扫罗''从地上爬起来,虽然睁着眼睛,却什么也看不见。他们就拉着他的手,带他进了大马士革。整整三天,他什么都看不见,没吃也没喝。
三日之后,一个名叫''亚拿尼亚''的门徒在大马士革向他传道。''扫罗''得以复明,随即受了浸,并受圣灵所充满。自此之后,他成为一个热心、能干的传福音者。这项令人惊讶的转变使这位逼迫者变成受逼迫的对象。为了保全性命,扫罗不得不首先逃离大马士革,后来更逃离耶路撒冷。
!! 福音传到未受割礼的外邦人
(覆盖经文9:31-12:25)。在那段时期,整个犹地亚、加利利和撒马利亚地区的会众都平安无事,信心越来越坚定。他们处世为人显出对耶和华的敬畏之心,通过神圣力量得到安慰,人数不断增加。
在''约帕'',''彼得''使深受敬爱的门徒''多加''复活过来。
后来,他从该地奉召前往凯撒利亚, 那里一位名叫''哥尼流''的意大利军官被天使告知必须要请彼得来。''彼得''抵达之后向哥尼流和后者的家人传道,他还在讲话的时候,神圣力量就降在所有听见上帝话语的人身上。彼得看出“''上帝是不偏心的,无论哪个国族的人,只要敬畏他,做对的事,他都接纳。''”
于是他给他们施浸,''这些人遂成为第一批未受过割礼的外邦归信者''。后来彼得回到耶路撒冷,将这项新发展向其他人讲明白,众人就都归荣耀给上帝。
福音继续迅速传播开去之际,''巴拿巴''和''扫罗''在''安提阿''教导了许多人。在安提阿,“''在上帝指引下,门徒首次被称为基督徒。''”
迫害再次爆发。[[希律·阿基帕一世|🤴大希律王 Herod the Great 74 BC-4 BC]]为了讨好犹太人,将[[约翰|✝️约翰 John the Apostle]]的兄弟[[雅各|✝️雅各 James the Great]]杀了, 又将彼得关进监狱,可是天使却再次把彼得从监狱救出来。
这使希律大受打击。在一个特定的日子,''希律''穿上王服,坐在审判座上向民众公开演说。聚集在那里的人都高呼:“这是神的声音,不是人的声音!”希律接受了上帝才配得到的赞美(抢了风头),所以耶和华的天使立刻打击他,他被虫子咬,最后死了。
!! 耶稣复活及升天
(一章:1-11节)
耶稣在复活后40天告诉门徒要继续相信上帝,说完后就在他们眼前升天了。
<<card
text:"
当耶稣升上去,他们凝视着天空的时候,忽然有两个穿白衣的人站在他们旁边,说:“加利利人啊,你们为什么站在这里看着天空呢?这位曾经跟你们在一起的耶稣,现在被接到天上去了。''你们看见他怎样到天上去,他也会怎样来''。”
"
footer:"Acts 1:11"
>>
!! 制裁犹大,立新使徒
[[彼得|✝️彼得 Saint Peter]]说犹大“他用不义之财买了块地。后来,他掉了下去,肚子爆裂,肠子都流了出来。这件事耶路撒冷的居民全都知道,所以他们按照本地的语言把那块地叫做亚革大马,意思是‘血地’。”
根据诗篇所说必须再选出一个人替代犹大,于是他们选出了[[✝️马提亚 Saint Matthias]]。
!! 五旬节获得神力
五旬节那天,所有门徒都聚集在耶路撒冷。忽然,有一阵仿佛大风的响声充满整座房子。恍如火焰的舌头落在一切在场的人身上。他们就都被圣灵充满,开始说起不同的语言来,谈论“上帝的大作为”。(2:11)旁观者都大感困惑。于是彼得站起来说话,解释圣灵被倾浇下来乃是应验了先知约珥的预言(2:28-32)。他也解释耶稣基督现已复活,并已升到上帝右边,“我会把我的一些神圣力量倾注在各种各样的人身上”。 当时大约有3000人归信这道而受浸。
!! 见证工作不断扩展
书中记载归信的人数目天天增加。彼得和约翰在耶路撒冷圣殿外遇到一个生来残废、从未走过路的瘸子,彼得对他说: “我奉拿撒勒人耶稣基督的名,叫你起来行走!” 那人便立时“走着、 跳着,赞美上帝”。接着彼得吁请众人从速悔改归正,“这样, 那安舒的日子就必从主面前来到。” 彼得和约翰向人传讲耶稣的复活, 宗教领袖们对此大感不悦,因为使徒教导民众,公开宣扬耶稣死而复生了,就捉拿他们, 不过信徒的数目却增加到5000人左右。
第二天, 彼得和约翰被带到犹太长官面前受审。彼得直言不讳地指出''惟独通过耶稣基督,人才可以得救''。犹太长官下令要他们停止传道,但二人回答说: “听从你们而不听从上帝,这在上帝眼中是对是错,你们自己判断吧!但我们看见的、听见的,不能不说。”
他们找不着理由惩罚这两个人,也因为民众全都为发生的这件事赞美上帝,就有所顾忌,于是再次恐吓这两个人之后,就把他们释放了。
所有门徒都继续放胆传讲上帝的话语。他们把物资集合起来公用,按着需要分给各人。
可是, 有一个名叫亚拿尼亚的男子和妻子撒非喇将产业变卖了,私自留下一部分款项,但却假装已把全数捐出。彼得揭发他们之后,他们便立时倒毙,因为他们妄图欺哄上帝的神圣力量。
耶路撒冷周边城镇的人,也带着病人和受邪灵骚扰的人蜂拥而来。大祭司和他那些撒都该派的同伙非常气愤,满心嫉妒,于是再次将使徒投入狱中,但这次耶和华的天使却把他们释放出来。
第二天,他们再被带到公会面前,被控‘把他们的道理传遍了耶路撒冷’。他们回答说: “服从上帝过于服从人,是应当的。” 虽然受到鞭打和恐吓, 他们却不为所动, 继续“天天在殿里并在各人的家中, 不断的施教, 传讲耶稣是基督”。
第二十八章至三十章论及六大“祸灾”,先知警告犹大国眼前的罪行(29:11-14),若不悔改,其祸更甚。反之,若能悔改信靠神,不但得享心灵的安息(28:16),甚至能结出圣灵果子(32:15)。
第三十六至三十九章为一历史的插段,首两章为[[👑希西家 Hezekiah]]在位时,[[耶路撒冷 Jerusalem]]是围攻得神拯救的历史,后两章为''希西家''病危时蒙神医治(38:1-3),及病愈后向巴比伦显出愚昧之事来(39:1-8)。后来先知斥责王的无知,''希西家''王谦卑认罪,以致神延后向耶路撒冷所要施行的审判。
和[[犹大王希西家]]内容差不多。
(覆盖以西结书24:1-27)到了公元前609年。耶和华告诉以西结,巴比伦王于该年十月初十日开始围攻耶路撒冷。
他把这个四面有围墙耸立的城比作一个阔口的锅,''其中盛有好像肥美肉块一般的居民''。生火烧煮,要把耶路撒冷可憎偶像的一切不洁烧掉。
以西结的妻子就在当天死去,但为了服从耶和华的吩咐,预言者不可哀哭。这是个''预兆'',预表百姓决不可为耶路撒冷的毁灭举哀,因为这项判决是来自耶和华的,好让他们知道他是谁。
<<card
text:"
“人子啊,我会从他们那里夺走他们的堡垒,就是带给他们喜乐、他们视为珍贵、心里爱惜的美物,还会夺走他们的儿女。到那日,逃脱的人就会来向你报告。到那日,''你会向那个逃脱的人开口说话,不再做哑巴。你会成为他们的预兆,他们就知道我是耶和华。''”
"
footer:"Ezekiel 24:25"
>>
在古代,聚宝盆(/ˌkɔːrnjəˈkoʊpiə, ˌkɔːrnə-, ˌkɔːrnu-, ˌkɔːrnju-/),来自拉丁文cornu(角)和copia(丰富)。也叫丰盛之角,是丰盛和营养的象征,通常是一个''大角形的容器'',里面盛满了农产品、鲜花或坚果。
!! 在希腊/罗马神话中
最出名的用法是用于隐藏宙斯。
在另一个神话中,聚宝盆是赫拉克勒斯(罗马海格力斯)与河神阿切卢斯搏斗并扯下他的一只角时创造的;河神有时被描绘成有角的。 这个版本在美国地区主义艺术家托马斯-哈特-本顿的《阿切卢斯和赫拉克勒斯》壁画中得到体现。
聚宝盆成为几个希腊和罗马神祗的属性,''特别是那些与收获、繁荣或精神富足有关的神祗'',如地球(盖亚或泰拉)的化身;儿童普鲁托斯,财富之神和谷物女神德墨忒尔的儿子;仙女梅亚;以及幸运女神福尔图纳,她有能力给予繁荣。在罗马帝国的崇拜中,促进和平(罗马和平)和繁荣的抽象的罗马神灵也被描绘成聚宝盆,包括 "丰饶 "的化身Abundantia和罗马城粮食供应的女神Annona。哈迪斯是神秘宗教中经典的冥界统治者,是农业、矿产和精神财富的提供者,在艺术中经常拿着聚宝盆。
[img[https://upload.wikimedia.org/wikipedia/commons/b/bf/Peter_Paul_Rubens_-_Abundance_%28Abundantia%29_-_Google_Art_Project.jpg]]
Hu (ḥw)是古埃及的神明,是第一个词语的神化,创造之词。据说,当阿图姆在创造九神时,他大声喊出了这个词语,或者在他的自慰行为中割礼时说出了这个词语。
[[格莉希尔德 Grimhild]]和[[尼伯龙格国王吉乌基 Giuke]]的儿子
''能天使''(希腊语转写:Exusiai,拉丁语:Potestates,英语:Powers)见于伯多禄前书三章22节及厄弗所书一章21节,天主教译作异能者或异能天使,基督新教译作有能(力)的,''东正教''译作''大能天使'',表明天界的和理性的权威的有序本性。它们是''神所造的第一批天使'',与恶魔战争的前锋。
此一级的天使驻于第一天和第二天间,为第二级“子的阶级”中第三等,担任卫戍天国的任务,防备恶魔的侵入,或在人心之中护佑人心的平衡。能天使的君主是卡麦尔。
别名有''Dynamis''(复数Dynameis)、Potentates。
腓利门(/fɪˈliːmən, faɪ-/;希腊语:Φιλήμων;Philḗmōn)是小亚细亚的一位早期基督徒,他是[[保罗|保罗 Paul the Apostle c.3-c.67]]一封私人信件的接收者,该信件构成基督教新约的一部分。这封信被称为《给腓利门的书信》,尽管它是写给“给我们亲爱的朋友和同工腓利门,也给我们的姐妹阿菲亚和我们的战友阿基布,以及在你家里聚会的教会的”。保罗要求腓利门“带回”阿尼西母,因为阿尼西母以前可能是他的奴隶。
腓利门是一位富有的基督徒和牧师(可能是主教)。
腓立比,是在''希腊''东马其顿的一个城市,在公元前356年由腓力二世建立。在十四世纪的鄂图曼帝国统治之下被摒弃。
后来耶和华指示撒母耳到犹大伯利恒[[耶西|耶西 Jesse]]的家去,要拣选及膏立未来的君王。耶西的众子逐一前来,但都不合选。耶和华提醒撒母耳说:“耶和华不像人看人:人是看外貌;耶和华是看内心。”
最后,耶和华表示他看上了[[大卫|👑大卫王 David]];他是最年幼的儿子,是个“面色光红,双目清秀,容貌俊美”的少年,撒母耳就用油膏他。耶和华的灵与大卫同在,扫罗就精神萎靡。
!! 给扫罗弹琴
<a href="https://upload.wikimedia.org/wikipedia/commons/8/87/Julius_Kronberg_David_och_Saul_1885.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/8/87/Julius_Kronberg_David_och_Saul_1885.jpg"
caption:"David and Saul (1885) by ''Julius Kronberg''"
width:"300px"
align:"right"
>>
</a>
[[扫罗|👑扫罗 Saul]]的奴仆建议扫罗听琴安神,于是找到了大卫。因为有上帝的庇佑,每次大卫弹琴,扫罗就不再心神不宁,扫罗也越来越喜欢他。
!! 大战歌利亚 David and Goliath
[[非利士人|非利士 Philistia]]再度举兵入侵以色列,带头讨战的是巨人''歌利亚Goliath''。他身高六肘尺零一虎口(约''2.9米''),所穿戴的铠甲接近57千克,枪头也重约6.8千克。
歌利亚日复一日口出狂言,目中无人地向以色列骂战,要以色列拣选一人跟他决斗。但无人敢应战。''扫罗''在营中战兢害怕。当时[[耶西|耶西 Jesse]]的三个大儿子随军作战,耶西派大卫给哥哥送食物。
大卫来到营中,听见非利士人的骂阵。大卫义愤填胸,说:“这未受割礼的非利士人是谁呢?竟敢向永生上帝的军队骂阵吗?”
大卫因从未穿过军装,所以没有穿着扫罗的盔甲;他只拿了一根牧杖,一副''投石带''和五块光滑的石子,便奔上战场。歌利亚见到前来应战的竟是个年轻牧童,觉得这是奇耻大辱,于是咒骂大卫。大卫满怀信心地回答说:“你来攻击我,是靠着刀枪和铜戟;我来攻击你,是靠着万军之耶和华的名。”
大卫就用投石带甩石,一发便命中非利士的巨人勇士,他当场倒地!在两军众目睽睽之下,大卫跑上前去用巨人的刀割下他的头。耶和华施行了拯救,以色列人都为此欢欣鼓舞。非利士的讨战勇士既已丧生,敌人就都仓皇逃跑,以色列人遂起来呐喊,乘胜追击。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/01/Osmar_Schindler_-_David_und_Goliath.jpg/540px-Osmar_Schindler_-_David_und_Goliath.jpg">
<div class="desc">David and Goliath, a color lithograph by ''Osmar Schindler'' (c. 1888)</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/bc/Michelangelo%2C_David_and_Goliath_02.jpg/540px-Michelangelo%2C_David_and_Goliath_02.jpg">
<div class="desc">David and Goliath by ''Michelangelo'', on the Sistine Chapel ceiling (1509).</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/6b/David_and_Goliath_by_Caravaggio.jpg/540px-David_and_Goliath_by_Caravaggio.jpg">
<div class="desc">Caravaggio c.1660</div>
</div>
</div>
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e4/Shu.svg/440px-Shu.svg.png"
caption:"大气之神"
width:""
align:"right"
>>
舒(Shu),又名苏,是埃及神话中的''大气之神、空气之神、天空的化身''亦是思考与听觉的支配者。其名字有''“干旱、烤干、枯竭”''意思。
是[[阿图姆|阿图姆 Atum]]透过他的呼息创造出来的。载有亚图姆创世神话以及诸神诞生起源的金字塔文献(Pyramid texts)中亦有提及亚图姆如何创造舒。
他与妹妹[[泰芙努特|泰芙努特 Tefnut]]生下天空之神努特和大地之神[[盖布|盖布 Geb]]。从很多壁画中可以看到舒站于二者之间,双手举著,以撑起代表天空的努特,而代表大地的盖布则在他之下。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Geb_and_Nut02.jpg/600px-Geb_and_Nut02.jpg"
caption:"舒以双手托起代表天空的努特,在他之下的是盖布。"
width:"300px"
align:"left"
>>
作为大气之神,舒性格冷静,有影响力,是个''调停者'',亦与代表著“真理、正义和秩序”的[[玛特(Ma'at)|玛亚特 Ma'at]]有关。在另一些艺术作品中,舒通常被描绘为一位''头顶插着鸵鸟毛''的男性。另外,他手上也持有代表生命的符号“[[安克|☥安赫 The Ankh]]”。
根据《亡灵书》,舒是亡灵的审判者之一。在另一些神话中,舒和[[托特|托特 Thoth]]变成狒狒的模样,把泰芙努特带到埃及。舒与泰芙努特结婚预示了春回大地,生机再现。
在后期的神话中,舒代表著古王国时期末的恶劣天灾,据说一次泰芙努特(代表湿气)与舒吵架后,泰芙努特一怒之下离开埃及,到了努比亚(当地气候较为温和)。舒马上发现自己对她的思念,但泰芙努特化身为一只猫,杀死任何接近她的男人或男性神祇。最后有赖''托特''出力才成功劝服她回去。
[[火烧艾城 Joshua Burns the Town of Ai]]中的地名。
可能的所在地 ''Et-Tell''
艾米莉亚(Einmyria,灰), [[Glut]]的女儿
苏图恩或译苏顿(英:Suttung),在北欧神话中的一名巨人,他是[[吉尔林(Gilling)|吉尔林 Gillingr]]之子,[[巴乌吉(Baugi)|巴乌吉 Baugi]]的兄弟。他的女儿叫[[格萝德(Gunnlod)|格萝德 Gunlod]]。
当吉尔林被侏儒法亚拉(Fjalar)和葛拉(Galar)给谋杀后,他追到这两名凶手,由于这两侏儒早先曾经谋杀人类智者[[🍯智慧体克瓦希尔 Kvasir]],并用克瓦希尔的血酿造了蜂蜜酒,只要饮用这种酒,就可以获得''诗的智慧'',他们承诺将这种酒送给苏图恩而逃过一劫。
苏图恩将得来的酒藏在洞穴里,并让女儿格萝德负责看守。[[⚡众神之父奥丁(神圣) Odin]]使了计谋欺骗巴乌吉,使巴乌吉带领他来到山洞的所在地。然后奥丁和格萝德共度三日以换取喝三口密酒的机会。但是奥丁三口就饮尽密酒,并变成老鹰飞回[[亚萨神国阿斯加特 Asgard]]。苏图恩这时终于发现奥丁的计谋,也变成老鹰追过去,被追赶的奥丁不小心把蜜酒撒了一些出来,这些遗落的酒是平常人也可以喝到的,世间也因此有了诗人。
儿子/亚该亚人(Achaeans)和爱奥尼亚人(Ionians)的祖先
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/c/c2/Horus_standing.svg/400px-Horus_standing.svg.png"
caption:"荷鲁斯 Horus"
width:"300px"
align:"right"
tooltip:" 荷鲁斯 Horus">>
荷鲁斯(Horus,也作Heru-sa-Aset荷鲁—沙—阿赛特、Hrw、Hr以及Hor-Hekenu)是古代埃及神话中法老的守护神,是王权的象征。他的形象是一位隼头人身的神祇。
Heru-ur(也称作Harmerti哈默迪)是荷鲁斯最早的一个版本,他是一位''隼形的造物神''。他的''眼睛是太阳和月亮''。当新月出现时,他就成了一个''瞎子'',称作Mekhenty-er-irty(意思是“无目者”);而当他的视力恢复时,他又被称作Khenty-irty(意思是“有目者”)。
眼盲时的荷鲁斯是非常危险的,他有时会将朋友误认为敌人并发起攻击。他是[[盖布|盖布 Geb]]与[[努特|努特 Nut]]的孙子,是莱托波斯(Letopolis)的守护神。
孩提时代的荷鲁斯被称为Har-pa-khered(意思是“幼童荷鲁斯”,在希腊语中称作Harpocrates),是[[欧西里斯 Osiris]]与[[伊西斯|伊西斯 Isis]]或者巴内卜杰德与哈特梅赫特的儿子。他被描绘成一个含着手指的裸体男孩,与母亲一起坐在一朵莲花上。这种形态的荷鲁斯是一位生育之神,他经常端着一个''丰裕之角(cornucopia)''。在罗马帝国时期,Har-pa-Khered的形象广为流传,当时他被描绘为''骑着一只鹅或一头公羊''(注意他的父亲巴内卜杰德就是一位公羊神)。
在公元前三千年,[[赛特|赛特 Set]]取代了荷鲁斯成为法老的守护神。然而当赛特谋杀自己兄弟的传说流传开后,荷鲁斯又重新被替换回来。在荷鲁斯与赛特之间发生了一场持续了长达八十年的战斗。荷鲁斯''扯掉了赛特的一粒睾丸'',而赛特挖出了荷鲁斯的左眼(从此荷鲁斯被称为“''独眼神''”)。
阿巴斯Abas的私生子/城市莱尔西亚Lyrceia名字来源
国王
是拉科尼亚的原始居民之一,以他的名字命名,拉科尼亚的第一位国王莱莱吉亚 Lelegia 。
|!父母 |[[🌊大洋之神俄刻阿诺斯 Oceanus]] and [[河神和海洋之母忒堤斯 Tethys]] |
|!配偶 |[[🌾丰收之神克洛诺斯 Cronus]]|
|!标志 ||
|!对应罗马神 ||
菲吕拉是希腊神话中的一名水仙女,是俄刻阿诺斯与忒堤斯的女儿。她嫁予瑙普利俄斯后,诞下许多儿女。
她与[[🌾丰收之神克洛诺斯 Cronus]]诞下喀戎Chiron。由于她觉得喀戎长得恶心,便在产后把他遗弃。
她是''香水、写作、治愈、美丽和纸张的女神'',也是教会人类制造纸张的女神。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
拉皮斯(Lapiths)国王
''Phlegyas'' (/ˈflɛdʒiəs/; Ancient Greek: Φλεγύας means "fiery")
|父母 |[[Ares|🛡️战神阿瑞斯 Ares]] and Chryse or Dotis |
''萨堤尔''(UK /ˈsætər/, US also /ˈseɪtər/,拉丁语:Satyrus、希腊语:Σάτυροι),''silenus'',''silenos'',又译''萨特''、''萨提洛斯''或''萨提里'',即羊男,一般被视为是希腊神话里的[[潘|潘 Pan]]与[[狄俄尼索斯|🍺酒神狄俄尼索斯 Dionysus]]的复合体的精灵。萨堤尔拥有人类的身体,同时亦有部分山羊的特征,例如山羊的尾巴、耳朵和阴茎。
早期的艺术表现有时包括像马一样的腿,但到了公元前 6 世纪,他们更经常用人腿来表现。
一般来说他们是酒神狄俄倪索斯的随从。他们''主要以懒惰、贪婪、淫荡、狂欢饮酒而闻名''。传说是[[赫尔墨斯|☤神使赫尔墨斯 Hermes]]和伊佛提玛之子,另说是赫耳墨斯和那伊得斯之子。
萨堤尔的特点是粗俗,被称为葡萄酒、音乐、舞蹈和女人的爱好者。他们是狄俄尼索斯神的同伴,据信居住在偏远地区,如林地、山脉和牧场。''他们经常试图引诱或强奸宁芙和凡人,通常收效甚微。他们有时会自慰或进行兽交''。
古代人认为,萨提洛斯里有长幼之分,年长者被称为西勒尼,年幼者叫做萨提里斯客。他们的标志是''酒神杖、长笛、毛皮或酒杯''。有时,萨提洛斯被视作最低级的树林之神,跟随着潘或宁芙仙女在森林中游逛。
''<a href="https://en.wikipedia.org/wiki/Satyr">更多解释</a> ''
|!父母 |[[阿塔玛斯 Athamas]]|
|!配偶 ||
|!标志 ||
|!对应罗马神 ||
Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
|对应希腊神 |[[🌾丰收之神克洛诺斯 Cronus]] |
|对应罗马神 |Saturn |
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
''Verðandi'',她和姊姊兀儿德,共同在木片表面刻上卢恩字母,决定命运。被认为是掌管“现在 Becoming”的女神。
! 黑暗化身
[[尼克斯|🌌黑夜女神尼克斯 Nyx]]的哥哥,与她一起生下埃忒耳(Aether,“上空”)、赫墨拉(Hemera,“白昼”)
虚冥是神王囚禁反叛者的所在 , 比如[[天空之神乌拉诺斯 Uranus]]囚禁[[百臂巨人 Hecatoncheires]] , [[⚡天神宙斯 Zeus]]囚禁伊阿佩托斯之子[[墨诺提俄斯 Menoetius]]。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
<<<
[[刻托|刻托 Ceto]]和[[福耳库斯|福耳库斯 Phorcys]]交欢生下最后的孩子 ,
一条可怖的蛇妖,在黑色大地的深处,
世界的尽头,看守着金苹果。
这些就是福耳库斯和刻托的后代。
<<<神谱
---
<<showfnotes>>
(覆盖约珥书1:1-2:11)约珥在异象里所目睹的灾情惊心动魄!大群剪虫、蝗虫、蝻子和蚂蚱发动毁灭性的侵袭。它们把葡萄树和无花果树都剥吃净尽,使枝子露白,全地都饥荒缺粮。谷类供物和饮品供物都从耶和华的殿中断绝。约珥警告事奉上帝的众祭司必须幡然悔悟。“哀哉!”他呼喊说,“耶和华的日子临近了。这日来到,好像毁灭从全能者来到。”(约珥书1:15)走兽都惊慌乱窜。烈火把田野的树木烧尽,大火把旷野烧光。
发出警报吧!“你们要在锡安吹角,在我圣山吹出大声。”(约珥书2:1)耶和华的日子近了,那是个黑暗幽冥的日子。看哪!有一队又强又大的民。它们把有如伊甸般的美地变成荒凉的旷野。没有甚么东西能躲避它们。它们的形状如马,在山顶奔腾,发出有如战车的响声。它们如同战士闯城,蹿上墙,爬进房屋,冲入窗户。它们一来,地动天摇。耶和华指挥这队大军。“耶和华的日子大而可畏,谁能当得起呢?”(约珥书2:11)
[[米甸地 Midian]]祭司的女儿,[[摩西 Moses]]的妻子。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
<a href="https://www.wikiwand.com/en/Western_Wall#Media/File:Westernwall2.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/1/17/Westernwall2.jpg/1869px-Westernwall2.jpg"
caption:"A view of the Western Wall"
width:"400px"
align:"right"
>>
</a>
''西墙'',又名''哭墙'',阿拉伯人称之为布拉克墙(阿拉伯语:,Ḥā'iṭ Al-Burāq)位于耶路撒冷旧城内,圣殿山山下西侧。这是环绕第二圣殿庭院的古城墙的残存部分。在四面墙之中,''西墙被认为是当年最靠近圣殿的'',使它成为犹太教信仰中除圣殿山本身以外最神圣的地点。
通常认为,西墙由''[[大希律王|https://www.wikiwand.com/zh-hans/%E5%A4%A7%E5%B8%8C%E5%BE%8B%E7%8E%8B]]''兴建于公元前19年,但最近的发掘表明希律王生前并未完成此项工程。墙底部的大石块区段是于希律王时期修筑;上方中型石块区段于''奥米亚王朝''时期修筑;顶部小石块区段修筑时间于''鄂图曼帝国''时期之后。
现存西墙总长488公尺,犹太人聚集祈祷的那段位在圣殿山西南端犹太区里的大广场,其他部分隐身在穆斯林区的建筑物后。
许多个世纪以来,西墙一直是''犹太人''祈祷和朝圣的地点。最早记载犹太来此祈祷的文献可以追溯到4世纪。从19世纪中叶起,犹太人试买下西墙和其邻近地区,但没有成功。''犹太复国主义运动''在20世纪早期兴起后,西墙成为''犹太社区''和''穆斯林''之间摩擦的原因,穆斯林担心西墙被用于犹太民族主义对圣殿山和耶路撒冷主权的宣示。西墙下的暴力行为变得司空见惯,于1930年召开了一次国际会议,以解决穆斯林和犹太人对西墙所有权的问题。
1948年以阿战争后,''约旦''控制了西墙,长达19年之久都禁止犹太人前往,直到1967年六日战争以''色列占领旧城''。占领后三日,以色列拆掉西墙边有770年历史的摩洛哥区,让犹太人有更多祈祷的空间。
!! 词源
西墙一词最早出现于犹太经典,但其“圣殿西墙”所指是否与今日相同,亦或是圣殿群内其他墙壁不得而知。犹太文献记载中,最早称其为西墙的是11世纪的Ahimaaz ben Paltiel(英语:)。
“哭墙”或是描述其为“''令人哭泣的地方''”在19世纪的英国文学被广泛使用。会有这类描述,是因为犹太人经常到此悼念他们消失的圣殿。
''西奈山''海拔高度为2,285米,在西奈半岛仅次于海拔2,637米的凯瑟琳山(Mount St. Catherine),后者是西奈半岛和''埃及''的最高峰。周围被山脉高峰环绕。
在《希伯来圣经》中,西奈山是耶和华的使者从荆棘里火焰中向摩西显现之处。领以色列人出埃及后,''摩西''在这座山代表以色列人领受耶和华的[[律法十诫|摩西十诫 Ten Commandments]]。当摩西在山上时,''亚伦''制造了金牛犊给以色列人敬拜。摩西下山看见,摔碎了法版。
经过惩罚和认罪后,摩西回到西奈山,要求上帝制造新的石碑,并放在约柜内,当中放置很多上帝口述的内容。
*和''何烈山 Mount Horeb''可能是同一个
!! 摩西受十诫
以色列人进入[[西奈山|西奈山 Mount Sinai]]境内,[[摩西|摩西 Moses]]又听到神的召唤:“要百姓今明两天自洁和洗净衣服,到第三天准备好了,我将在众人面前降临在西奈山上。但百姓不可上山去,即使摸这山也会死去,当听到角声大时才可到山根来。” 摩西还警告民众不可亲近女人。
到了第三天早晨,山上雷电震震、密云布集,角声甚大、震耳发颤。摩西率领众百姓出营,站在山下迎接神。西奈全山烟雾弥漫,地动山摇。角声也越来越高,耶和华降临在山顶上,召摩西上山去,说:“百姓不能上西奈山,要在此山的四围定下界限,叫比山成圣。”
他又让摩西传话给众百姓:“我是耶和华,你们的神,曾将你们从作奴隶的埃及领出来。我要和你们定律法,你们必须守我的约,在万民中作属我的子民。”他为百姓[[立下十诚|摩西十诫 Ten Commandments]],并使安息日成为圣日,在这一天以色列的百姓要停止一切的工作。众人远远看到冒烟、听到雷震,早吓得发额,就说:“凡耶和华所吩咐的,我们都必遵行。”
清晨,摩西就在山下筑坛,按[[以色列十二个支派|以色列十二支派 Twelve Tribes of Israel]],立了十二根柱子。他又将祭牲宰杀了,把血酒在百姓身上,说:“这是立约的血,是耶和华和你们立约的凭据。”不久,耶和华晓谕摩西:“我要将石版并我的成律和诚命赐给你,使你能如约教训百姓。” 摩西再次从云彩中进入了西奈山。
!! 以色列人拜假神
<a href="https://www.wikiwand.com/en/Moses#Media/File:Rembrandt_-_Moses_Smashing_the_Tablets_of_the_Law_-_WGA19132.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/f/f1/Rembrandt_-_Moses_Smashing_the_Tablets_of_the_Law_-_WGA19132.jpg"
caption:"Moses Breaking the Tablets of the Law by ''Rembrandt'', 1659"
width:"400px"
align:"right"
>>
</a>
摩西一去就四十昼夜,云彩便把全山遮盖了。以色列人就聚集到亚伦 那里说:“领我们出埃及的摩西迟迟不回,我们要''重新立一个神像在前面引路''。”亚伦性格软弱,答应了他们,说:“去摘下你们妻子和儿女身上的金耳环,给我吧。”百姓就把他们的金饰物都拿出来,他用这些很快铸造了一 座''金牛犊''<<fnote "古埃及人有崇拜牛神的传统,以色列人在埃及住了数百年,被埃及的传统所影响。">>
的神像,以色列民指着它说:“看啊,这就是领我们出埃及的神。” 亚伦还在金牛犊面前筑了神坛,向众宣告:“明天要为这个‘耶和华’守节。”
第二天早上,百姓就给它下拜献祭,又坐下来吃喝,围着金牛起舞, 甚至做些淫荡之事。山顶上的耶和华洞悉了这一切,就发烈怒。摩西求情说:“这百姓是您伸大能之手,好不容易从埃及领出。您要是降灾祸给以色列人,就会使埃及人说闲话——以色列的神害了他们。”摩西拿着两块石版,下山见百姓去了,那版上两面都刻着神的律法。
摩西到营前,看到以色列人正在拜偶像,也忍不住发怒地摔碎石版,又用火焚烧金牛神像,把烧的灰撒在水中给百姓喝。他见百姓放肆捣乱,以色列内部伺机叛乱的仇敌也更骚动,就对众人说:“凡属耶和华的,都到我这边来。”结果只有''利未人''聚集到他这边。摩西就号令部下将营中反叛者及他们的亲戚全部杀死, 并把他们从以色列名册中除了名。
!! 耶和华惩罚百姓
摩西镇压叛乱后,又回到西奈山,给以色列百姓重新带回两块上帝用手指写着律法的石版。他领着众人造约柜,定赎罪日,让有功的利未人作祭司,以及宣示各种刑律和礼仪。摩西的姐姐[[米利暗 Miriam|米利暗 Miriam]],就嫉妒地对亚伦说:“难道耶和华只和摩西说话,不与我们说话吗?”神就让米利暗长出了大麻风,肉都腐烂,不能见人,又命令摩西说:“把她关在营外七天,才让她进来。”米利暗的麻风病好了之后,再也不敢诋毁摩西。
他们离开了西奈山,又过了许久到达巴兰旷野的加低斯,这时摩西派去迦南的探子回来报告说:“我们到了流奶与蜜之地,还带回那里的果子。那处的百姓果然强壮,城邑也很坚固宽大。”但有人散布谣言说:“我们所窥探之地,专门吞食百姓,那里的人都是巨人,我们相比不过是小蚂蚱。”这话在以色列人中传开来,顿时民怨四起,有人甚至要拿石头砸死摩西和亚伦二人。
耶和华在会幕上看到一切的情景,就降下瘟疫,那些埋怨的人和报恶信的人被击杀了不少。摩西再次替百姓求情说:“神发大慈爱饶恕他们的罪孽吧,就像从埃及来一直做的那样。”神就让他制造一条''铜制的蛇''挂在杆上,百姓凡被咬的,抬头望这蛇,就必定得到医治,从而存活下来。从比怨言止息了不少,百姓不敢再厌倦迁移之苦,而更敬畏神和摩西。
<div class="gallery">
<div class="img-container">
<a href="https://www.wikiwand.com/en/Nehushtan#Media/File:Michelangelo_Buonarroti_024.jpg">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/30/Michelangelo_Buonarroti_024.jpg/1409px-Michelangelo_Buonarroti_024.jpg">
</a>
<div class="desc">In 1508 ''Michelangelo's'' image of the Israelites deliverance from the plague of serpents by the creation of the bronze serpent, on the ceiling of the ''Sistine Chapel''.</div>
</div>
<div class="img-container">
<a href="https://www.wikiwand.com/en/Nehushtan#Media/File:MosesandSnake.JPG">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/02/MosesandSnake.JPG/1310px-MosesandSnake.JPG">
</a>
<div class="desc">Moses lifts up the brass snake in a photograph of the stained glass window at St Marks Church, Gillingham</div>
</div>
</div>
----
<<showfnotes>>
西布伦,[[利亚 Leah]]和[[雅各 Jacob]]的第6个儿子,名字意思是''“同住”''。
Jacob临终前给Zebulun的祝福是“西布伦必住在海口,''必成为停船的海口''。他的境界必延到西顿(Zidon)。”
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
<a href="https://www.wikiwand.com/en/Sigyn#Media/File:Loki,_by_M%C3%A5rten_Eskil_Winge_1890.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/8/8e/Loki%2C_by_M%C3%A5rten_Eskil_Winge_1890.jpg"
caption:""Loki and Sigyn" (1863) by Mårten Eskil Winge"
width:"400px"
align:"right"
tooltip:"">>
</a>
西格恩(Sigyn, "Victorious girl-friend")是北欧神话中是[[🦹邪神洛基 Loki]]的正式妻子。神话中几乎没提到关于她的故事,只提到她和洛基生下了两个孩子:纳尔弗(Narve)和瓦利(Vali),后者和奥丁的孩子瓦利同名,但并非同一个人。
另一个提到西格恩的地方是,当[[光明之神巴德尔 Baldr]]死亡之后,愤怒的诸神抓住罪魁祸首的洛基,用[[纳尔弗 Narfi(son of Loki)]]的肠子做为链锁,将他绑在一个巨岩之下,岩石上有[[丝卡蒂 Skadi]]安放的毒蛇,让蛇毒滴落在他脸上。
西格恩对洛基于心不忍,因此拿著水盆跟在旁边好接住滴下来的蛇毒。当水盆满时,西格恩只好拿开去倒掉,蛇毒又滴落在洛基脸上,疼痛难当的洛基因受不了而不住扭动,据说这时候世界就会跟著晃动,也就是地震。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
''警告以色列国不要偏离耶和华的信仰''
《西番雅书》是《希伯来圣经》中的一卷先知书,在基督教传统中被列为《旧约圣经》第36卷,记载犹大王国末期的贵族子弟[[🗣️西番雅 Zephaniah]]的预言和相关情况。
这本书警告犹太人不要离弃他们祖先的上帝耶和华,耶和华将对以色列和列国作出正义审判,否则他们将会失去上帝子民的地位,以及祂允诺对外邦和以色列的拯救。这本书的信息影响了犹大国的国王[[👑约西亚 Josiah]],在全国开展了一场规模宏大的''废除偶像崇拜运动''。
!! 背景
犹大王[[👑约西亚 Josiah]]在位的早期(公元前659-629年),当时国内的巴力崇拜十分猖獗,一群‘异神祭司’带头从事违反摩西律法的崇拜。先知[[🗣️西番雅 Zephaniah]]所宣布的信息令耶路撒冷的居民大感震惊。虽然西番雅很可能是希西家王后人而属于犹大王族,他对当时国中的情况却提出猛烈的抨击,并''发出上帝要毁灭犹大国的预言''。
上帝的子民已变得非常悖逆,惟独耶和华才能够在他们当中把纯真崇拜复兴过来,并且祝福他们,使他们“在地上的万民中有名声,得称赞”。(西番雅书3:20)
西番雅指出惟独依赖上帝之助,人才有可能“在耶和华发怒的日子……隐藏起来”。(西番雅书2:3)他的名字西番雅(希伯来语:)的意思是“''耶和华已隐藏(珍藏)''”。
西番雅的努力产生了成果。年仅八岁便登基作王的''约西亚''于他在位的第12年采取行动“洁净犹大和耶路撒冷”。他清除谬误的崇拜、修复‘耶和华的殿’,并恢复守逾越节。可是约西亚王的改革只维持一段短暂的时期,因为在他之后继位的三个儿子和一个孙子均“行耶和华眼中看为恶的事”。(历代志下36:1-12)这一切应验了西番雅的话:“我……必惩罚首领和王子,……[及]将强暴和诡诈得来之物充满主人房屋的[人]。”
在公元前648年,即约西亚王在位第12年,之前不久,“耶和华的话临到……西番雅。”第一节经文说明他在犹大说预言,他在书中对耶路撒冷及其风俗所作的详细描述也显示他当时在犹大居住。书中的信息含有双重意义,一方面令人十分惊骇,另一方面则予人安慰。它的内容主要论及耶和华那迫在眉睫、大而可畏的日子,但同时也预告耶和华会复兴一群卑微的百姓,“他们必投靠我参看耶和华的名。”
西缅(天主教译作西默盎),根据圣经创世记的描述,是[[雅各|雅各 Jacob]]与拉班的长女[[利亚|利亚 Leah]]所生的次子,以色列西缅支派的祖先。
西缅的意思是“听见、听从”。利亚为次子取名“西缅”,''是感谢神听到了她的请求,让利亚生了雅各的次子。''
根据圣经的记载,西缅''性情暴烈'',为了给其妹底拿遭到强奸报仇,假意叫[[示剑人|示剑 Shechem]]行割礼,在他们在割礼后养伤的期间,西缅和兄弟[[利未|利未 Levi]]拿刀剑,杀尽了示剑城中一切的男丁。(创世纪第三十四章)
他被认为在''出卖约瑟''的事情上领头,因为后来他去埃及买粮时,曾被约瑟扣押作人质,单独拘禁。(创世纪42:24)
及后,创世纪第四十九章雅各聚集他的众子,把他们日后“必遇见的事”告诉他们,而关于西缅的话是:
“……西缅和''利未''是弟兄; 他们的刀剑是残忍的器具。我的灵啊,不要与他们同谋;我的心哪,不要与他们联络;因为他们趁怒杀害人命,任意砍断牛腿大筋。他们的怒气暴烈可咒;他们的忿恨残忍可诅。我要使他们分居在雅各家里,散住在以色列地中。”
''在[[申命记|申命记 Book of Deuteronomy c.1473 BC]]中,西缅支派是唯一没有得到摩西祝福的一个支派。''
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
''以法拉 Ephyra(现称科林斯 Corinth)的创始人和国王''
他因两次欺骗死亡而受到惩罚,被迫将一块巨大的巨石滚上山顶,但每次接近山顶时都会滚下来,重复这个动作,直到永远。
! 西风之神/春神 Lord of west wind / Spring
|!父母 |[[Astraeus|阿斯特赖俄斯 Astraeus]] and [[Eos|黎明女神厄俄斯 Eos]] |
|!配偶 |Iris, Chloris |
|!对应罗马神 |Favonius |
在神话中,Zephyros是[[阿波罗|☀️太阳神阿波罗 Apollo]]的竞争对手,为了争夺Hyakinthos(Hyacinthus)的爱情。有一天,他看到这对情人在草地上玩飞盘游戏,在嫉妒的怒火中,用一阵风把飞盘吹偏,导致飞盘击中男孩的头部,使他当场死亡。阿波罗悲痛欲绝,将奄奄一息的青年变成了一朵飞燕草花(larkspur flower)。
Zephyros在古典艺术中被描绘成一个英俊的、有翅膀的青年。在希腊的花瓶画中,一个带翅膀的神拥抱着一个年轻人的无名人物通常被认为是Zephyros和Hyakinthos--尽管一些评论家将他们解释为爱神Eros和一个普通的年轻人。在希腊罗马的马赛克中,这个神通常以春天的形象出现,背着一筐未成熟的水果。
[img[https://upload.wikimedia.org/wikipedia/commons/d/d8/Hyakinthos.jpg]]
根据创世记 11:20-23,''西鹿''是拉乌的儿子,[[拿鹤|拿鹤 Nahor, son of Serug]]的父亲。他也是亚伯拉罕的曾祖父,因此是阿拉伯人和以色列人的祖先。
|!父母 |[[🤬不和女神厄里斯 Eris]] |
|!标志 ||
|!对应罗马神 ||
!! Personifications of Oath
In Greek mythology, the figure of Horkos (/ˈhɔːrkɒs/; Ancient Greek: Ὅρκος [hór.kos], lit. 'oath') ''personifies the curse that will be inflicted on any person who swears a false oath''. He was the avenger of perjury and the punitive companion of the goddess Dike (Justice).
''毒誓''的一种拟人化形象。
! 记忆女神
{{mnemosyne.mp3}}
|父母 |[[天空之神乌拉诺斯 Uranus]] and [[🌍大地女神盖亚 Gaea]] |
|丈夫|[[⚡天神宙斯 Zeus]] |
<a href="https://www.wikiwand.com/en/Mnemosyne">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Mnemosyne_%28color%29_Rossetti.jpg/340px-Mnemosyne_%28color%29_Rossetti.jpg"
caption:"Mnemosyne (also known as Lamp of Memory or Ricordanza) by [[Dante Gabriel Rossetti|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%8A%A0%E5%B8%83%E9%87%8C%E5%9F%83%E5%B0%94%C2%B7%E7%BD%97%E5%A1%9E%E8%92%82%20Dante%20Gabriel%20Rossetti%201828%E2%80%931882:%5B%5B%E5%8A%A0%E5%B8%83%E9%87%8C%E5%9F%83%E5%B0%94%C2%B7%E7%BD%97%E5%A1%9E%E8%92%82%20Dante%20Gabriel%20Rossetti%201828%E2%80%931882%5D%5D]] (c. 1876 to 1881)."
width:"400px"
align:"right"
tooltip:"">>
</a>
摩涅莫辛涅/宁默辛妮(希腊语:Μνημοσύνη)希腊神话中司记忆的提坦女神。
摩涅莫辛涅最初只是对记忆的拟人化,后来发展为记忆女神。根据赫西俄德的记载,她是天空之神乌拉诺斯和大地女神盖亚的女儿。谟涅摩叙涅也是宙斯的众多情人之一,并为宙斯生下了[[九个缪斯|缪斯 Muses]](文艺女神)。
在古代艺术作品中,谟涅摩叙涅通常被描绘成一个支着下巴沉思的女子。一般情况下她是与众缪斯待在一起,但偶尔也会有她的单人雕塑。俄国大诗人普希金在其诗作中引用过谟涅摩叙涅的名字:
“谟涅摩叙涅飘来带给他安慰。”
罗马帝国时代的古希腊地理学家保萨尼阿斯在其著作中记载,希腊玻俄提亚地区的特罗福尼俄斯洞附近有两眼名泉,一个叫勒忒泉(遗忘泉),另一个就叫谟涅摩叙涅泉(记忆泉)。
小行星57号忆神星的名字来自谟涅摩叙涅。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
<<<
忒娅生下伟岸的赫利俄斯、明泽的塞勒涅
和厄俄斯—她把光带给大地上的生灵
和掌管广阔天宇的永生神们
忒娅受迫于许佩里翁的爱,生下他们。
<<<神谱
<<<
第三个出生的是只知作恶的[[许德拉|🐍勒拿九头蛇 Lernaean Hydra]],
那勒尔纳的蛇妖,白臂女神[[赫拉|天后赫拉 Hera]]抚养它,
只因她对勇敢的[[赫拉克勒斯|💪大力神赫拉克勒斯 Heracles]]愤怒难抑。
但宙斯之子用无情的剑杀了它,
[[安菲特律翁|🤴安菲特律翁 Amphitryon]]之子<<fnote "宙斯趁国王安菲特律翁出征在外 ,幻化成他的模样 ,与他的妻子阿尔克墨涅结合 ,生下赫拉克勒斯。">>有善战的[[伊俄拉俄斯|伊俄拉俄斯 Iolaus]]相助,
''赫拉克勒斯''听从带来战利品<<fnote "[ 带来战利品 ]是雅典娜的专用称号之一,指 “指挥战争”">>的[[雅典娜|🦉智慧女神雅典娜 Athena]]吩咐。
<<<神谱
----
<<showfnotes>>
奥丁是一切智慧之神,所以诗歌和音乐之神也说是奥丁。可是这无非是因为奥丁为全知全能的主神,所以任何头衔都能加上去;正式的诗歌和音乐之神则是[[布拉基(Bragi)|𓏢诗词之神布拉基 Bragi]],奥丁的儿子。
但是北欧人并不以为是布拉基创造了诗歌;''他们认为诗歌也和别的“自然力”一样潜在于宇宙之间'',布拉基不过是这种“力”的拥有者或人格化而已。因此北欧神话中有着讲述''诗歌来源''的故事,就是在这个故事中,产生了诗歌之神布拉基。
被视为诗歌及音乐之神的布拉基的名字,也被北欧人用作“诗”的称呼,在每年的祭典时,对布拉基也有隆重的祝仪。那时,主祭者在船形的杯中喝过了''礼酒(先须手作锤形)'',然后自述他在这一年中想要完成的事业。然后在座之人也一一照样自述,即使是太野心些的希望亦所不禁。这差不多就是“赋诗言志”的神气。
在雕刻和绘画中,布拉基常被表现为一个''老年人,有长长的白发白须,手持黄金的竖琴。''
!! 相关故事
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
据说当[[亚萨神族 Aesir]]和[[华纳神族 Vanir]]互相争战而后来讲和的时候,两方的神都照规矩吐些唾沫在一个器皿内,算是坚誓的意思。这混合的唾沫后来被诸神造成一个小东西,叫''[[🍯智慧体克瓦希尔 Kvasir]]'',以智慧著名,常在人间帮助和指导人类。两个侏儒,法亚拉(Fjalar)和戈拉(Galar),嫉妒''克瓦希尔''的聪明,乘他睡熟时把他杀了,用他的血调和了蜜,制成一种仙酒,谁尝到了一点,就能成为人人尊敬的大诗人。侏儒们虽制成了这宝贝,自己却不享用,照例藏在地下秘处。
后来这两个侏儒又杀死了''[[巨人吉尔林(Gilling)|吉尔林 Gillingr]]''夫妇,而被吉尔林的弟弟''[[苏图恩(Suttung)|苏图恩 Suttungr]]''(一说是儿子)所捕,于是他们献出那仙酒来赎命。
''苏图恩''知道这东西的好处,交给他的女儿[[古恩露德(Gunlod)|格萝德 Gunlod]]收藏,古恩露德把仙酒藏在空山中,自己坐守。但是这件事被奥丁知道了,他用了种种手段,终于在苏图恩的兄弟[[巴乌吉(Baugi)|巴乌吉 Baugi]]的帮助下,变成蛇,钻进了空山的腹中,乃复原为威仪堂堂的神,去向''古恩露德''求爱。
美丽的''古恩露德''被爱上了,和奥丁在一起过了三个日夜之后,就拿出那藏着仙酒的三个器皿(据说是一个叫''欧瑞里尔(Oererir)的壶''和叫索恩(Son)及博恩(Boen)的两个碗),让奥丁在每个器皿内各尝一口。奥丁得着这个机会,每一口就把一个器皿里的东西统统吞进肚里,然后钻出山腹,变为大鹰,直向[[阿瑟加德|亚萨神国阿斯加特 Asgard]]飞去。巨人''苏图恩''知道了,也变成鹰飞来追,结果还是没有追上。
奥丁将所吞的仙酒尽数吐出来,但因为仙酒在肚里塞得太满,''还是从肛门散落了几滴到地上'',那散落的仙酒是没有用的,人若喝到,只会''变成拙劣的诗人''。奥丁自己并不用仙酒,他是留给[[布拉基的|𓏢诗词之神布拉基 Bragi]];布拉基的母亲就是''古恩露德''。
当''布拉基''出世之后,侏儒们送他一张黄金的竖琴,并将他载在他们的一条船上,送他到外面的世界去。船缓缓地顺着地下泉水航出黑暗的地下,到了死亡之国的边界,一直一动不动的''布拉基''忽然坐起来,拿起身边的黄金竖琴,开始唱神妙的生命之歌。这歌声上达云霄,直传进诸神的国度,下入地底,直到[[💀死亡女神赫尔 Hel]]之所居。一面唱着,船到了有阳光的地方,而且碰到岸了。布拉基于是登岸,弹着琴,走过那些枯凋荒凉的树林。立刻,树木发芽开花,万物一片生机。
在这树林之中,布拉基遇到了[[🍎青春女神伊登 Idun]],美丽的青春女神。当她来到地面上的时候,自然界就呈现出了最可爱的面容。——这样的两个人在林中遇见,自然就互相恋爱了;他们一同到了[[阿瑟加德|亚萨神国阿斯加特 Asgard]],受到诸神的欢迎。
''奥丁''在仔细地看过''布拉基''舌头上的纹路(据说那纹路是鲁纳文字)之后,就说布拉基将成为天上的诗人,歌唱诸神和瓦尔哈拉宫殿中勇士们的战功。
《诗篇》,天主教会、正教会称为《圣咏》,伊斯兰教称为“宰逋尔”,是旧约圣经诗歌智慧书的第二卷,是古代以色列人对上帝真正敬拜者所记录的一辑受感示的''诗歌集'',包括150首可用音乐伴唱的神圣诗歌,供人在耶路撒冷的圣殿中对主作公开崇拜时''唱咏之用''。
它是《希伯来圣经》中第19本书。这些诗歌除了对主的颂赞之外更含有许多祷告,也透露对主充满信赖的心声。
根据创世记 5:9-14,该南是[[以挪士|以挪士 Enos]]的儿子,塞特的孙子。在以挪士 Enos90岁时出生,该南70岁时生了玛勒列。该南在 910 岁去世之前还生下了其他儿子和女儿(根据马所拉年表,诺亚当时已经 179 岁)。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
<a href="https://www.wikiwand.com/en/Cain#Media/File:Blake-Abel.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a8/Blake-Abel.jpg/440px-Blake-Abel.jpg"
caption:"The Body of Abel Found by Adam and Eve by [[William Blake|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%A8%81%E5%BB%89%C2%B7%E5%B8%83%E8%8E%B1%E5%85%8B%20William%20Blake%201757%E2%80%931827:%5B%5B%E5%A8%81%E5%BB%89%C2%B7%E5%B8%83%E8%8E%B1%E5%85%8B%20William%20Blake%201757%E2%80%931827%5D%5D]], 1826"
width:"400px"
align:"right"
>>
</a>
该隐是《圣经》创世纪中亚伯拉罕宗教中的人物。他是亚伯的哥哥,也是《圣经》中第一对夫妇亚当和夏娃的''长子''。他是一个农民,将自己的庄稼献给了上帝。然而,上帝并不高兴,他更喜欢亚伯的祭品,而不是该隐的。出于嫉妒,该隐杀死了自己的兄弟,并因此受到上帝的惩罚,被打上了该隐的诅咒和印记。他生了几个孩子,从以诺开始,包括拉麦。
该隐生了[[以诺 Enoch (son of Cain)]],并建造了一座城,以他儿子为名。
!! Etymology
关于该隐名字的一种流行理论将其与动词“kana”(קנה qnh)联系起来,意思是“''得到''”,夏娃在创世记 4:1 中使用该隐,当时她在生下该隐后说:“我从主那里得了一个男人。”
纳赫曼尼德斯 (Nachmanides) 在十三世纪阐明了这一观点,该隐的名字预示着他的''统治、权力和罪恶''的角色。在犹太传说之一中,该隐是夏娃与撒旦结合的果实,撒旦也是伊甸园中的天使萨麦尔和蛇,夏娃在该隐出生时惊呼:“我通过主的天使。”根据《亚当和夏娃的一生》(约公元一世纪),该隐给他的母亲取了一根芦苇(qaneh),这就是他的名字卡因(Cain)的由来。他取芦苇的象征意义可能是对他作为农民职业的认可,也是对他破坏性本性的评论。他也被描述为“有光泽的”,这可能反映了该隐与太阳的诺斯替教联系。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
[[亚当 Adam]] 和 [[夏娃 Eve]] 生出了 [[该隐 Cain]],''种地人''。
又生出了[[亚伯 Abel]],''牧羊人''。
该隐把地里的作物贡给上帝,亚伯把头生的羊和羊脂也献给上帝。上帝喜欢亚伯的祭品,看不上该隐的祭品(更看重''血祭'')。
该隐大怒,和亚伯吵架(?),并把亚伯杀死。
上帝不许该隐继续种地,把他留放。
该隐说世人必会追杀他,上帝说“凡杀该隐的,必遭报七倍。“ 耶和华给该隐立一个记号,免得人遇见他就杀他。
该隐离开,去了伊甸东边的挪得之地(the land of Nod)。
[[芙莉嘉(Frigga)|众神之母弗丽嘉 Frigga]],或称芙莉格(Frigg),一谓是夜之女神[[🌌诺特 Nott]]之女,即是象征了原始的大地、而为奥丁之情人的[[🌎大地女神乔迪 Jord]]的姐姐。另一说,则谓她是[[⚡众神之父奥丁(神圣) Odin]]与''乔迪''所生之女,同时又为奥丁之妻,这便说明了北欧人早先也行过近亲结婚的习惯。
奥丁和芙莉嘉的结婚,是[[阿瑟加德|亚萨神国阿斯加特 Asgard]]的诸神所共庆的,以后每年举行结婚纪念,且必有大宴会。在这个意义上,芙莉嘉在北欧神话中是''掌管婚姻''的神。
但在一般的意义上,芙莉嘉是''大气或云雾之人格化'',她的''衣服或为白色或为灰黑''。她是 诸神之后,享有坐在奥丁的宝座上的特权,因此她也有周知宇宙万事之力量。她又是一切未 卜先知的预言者,知道一切未来之事。''这是因为北欧人把女性看成藏有多少秘密的神秘者的缘故。''
芙莉嘉被说成是一位美貌颀长的贵妇人,头戴''苍鹭之羽(这是沉默与易忘的象征)'',穿雪白的衣服,腰间是一根金带,挂着一串钥匙;这又是北欧家庭主妇的神气。所以她也是家庭主妇们所奉祀的女神。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/ab/Orion_%28constellation%29_Art.svg/440px-Orion_%28constellation%29_Art.svg.png"
caption:"猎户座艺术形象"
width:"300px"
align:"right"
tooltip:"">>
她有自己的宫殿,名为''芬撒里尔(Fensalir),意为雾之宫或海之宫''。她在这宫内转她的轮机,''织出金线或明色的云的长网''。她的织轮是宝石装饰的,夜间大放光明,北欧人称之为“芙莉嘉的织轮”,即我们所谓的''猎户星座''。
在她的芬撒里尔宫内,芙莉嘉邀请世上''忠诚夫妻的灵魂''去,犹如奥丁招待那些战死的勇士;相爱的夫妇因此虽死而不分离,在芬撒里尔宫内享受快乐。所以芙莉嘉是''婚姻及母爱之神'',特为结婚者所敬奉。
芙莉嘉又很喜欢首饰;她对金珠宝石的䋾心是无可餍足的。有一次,她偷了奥丁的真金像上的一块金子,而且又设法使金像破碎,不能自供偷者是谁(奥丁为了查究偷者的名字,曾以鲁纳文字写在金像口上,使其能自言),这很是触怒了奥丁,结果奥丁就负气离开了阿瑟加德,到人世间漫游。在这段期间中,他的兄弟[[维利|维利(精神) Vili]]和[[伟|伟(意志) Ve]]篡了他的位,又夺了芙莉嘉为妻。维利和伟与奥丁是一样面目的,芙莉嘉也不知自己已经失身;__可是他们没有奥丁的威力,不能降福于世界,任凭霜巨人们蹂躏人间,以冰雪封锁大地,毁坏了一切生物。__
幸而七个月以后,奥丁回来了,两位篡位者也偷偷跑走。于是霜巨人不敢再作恶,世界复又恢复了生机。其实这是人们解释寒冬为何会来的一个说法。北欧人的五朔节(在五月一日,庆祝春天到来),就是为纪念奥丁的复归的。
!! Frigga的仕女们
芙莉嘉有许多侍女,她们多半是代表了她复杂的神性之一方面。最得她宠爱的一个侍女名叫''福拉(Fulla)'',或说原是芙莉嘉的一个姐妹,负责掌管芙莉嘉的首饰箱,侍侯她梳妆。她常常献议给芙莉嘉,如何去帮助那些祷求神佑的人类。福拉是很美丽的,她的金黄色的头发极多且长,是五谷的熟穗的象征。所以福拉又常被视为''大地丰穰之神''。
''赫琳(Hlin)''是芙莉嘉的第二侍女,是司''守护的女神'',常常被派遣到世间去安慰受难的人。她经常用心听取人类的祷告,请求芙莉嘉帮助那些有求的穷苦人们。而''盖娜(Gna)''是芙莉嘉的速行的使者,她骑在她的''马霍瓦尔普尼尔(Hofvarpnir,迅驰者)''上,能够飞快地渡海过山,无论是空中还是火中,没有一处地方不能去。她是清风的人格化。盖娜把路上所见的一切告诉芙莉嘉,有一次,她看见奥丁的后代''利里尔(Rerir)''王在海边哭,因为他没有儿子。盖娜把这事告诉芙莉嘉后,芙莉嘉就取一苹果(这是结实的象征),使盖娜赐给了利里尔王。后来利里尔王果得一子,就是北欧传说中有名的英雄''伏尔松格(Volsung)''。
除上述三人以外,芙莉嘉还有三个随车的侍女。洛芬(Lofn)是一个温柔庄重的少女,她的职务是除去一对恋爱者前途中所有的阻碍。芙约芬(Vjofn)的职务是使冷硬的心接受爱情,维持着人类间的和睦,使互相反目的夫妇重新修好。珊恩(Syn,真理)通常守护着芙莉嘉的宫门,不准人随便进去。凡是被她拒之门外的人,无论如何请求,必无效果。因为她本身就是真理之人格化。
芙莉嘉另有一个在宫里的侍女,名为格芙琼(Gefjon,给予者),专司接引那些未及结婚而死的男女到宫中享受快乐。又据另一说,格芙琼曾为一个巨人生下过四个儿子,有一次,奥丁派她去见瑞典国王''吉尔菲'',请求分给一些土地。吉尔菲就对格芙琼说她一天之内能耕多少土地就给多少。格芙琼乃将她的四个儿子变成四头牛,驾起犁来,将地面耕了一条极深的沟,使得瑞典国王失色惊异。格芙琼耕了一天,划出一大块土地来,曳入海内,成为一个岛<<fnote "今天的''西兰(Zealand)岛''">>。后来她又嫁了奥丁的一个儿子,成为丹麦王室的始祖。
另外,芙莉嘉的侍女还有埃尔(Eir,仁慈),她是最有本领的医生,搜集了地上的各种药草,内外科都能医治。她又把医术教授给人间的女儿,因为在古代北欧,医术是女子的业务。法拉(Vara)专司听受信誓,谴罚不守信者而赐福给守信者。瓦尔(Vor)是真实之人格化,司察看全世界的一切行为。而斯诺特拉(Snotra,智慧)则为美德之女神,一切智识的主宰者。
!! Frigga的对应神
在[[南日耳曼|Germanic 日耳曼]],没有芙莉嘉这位女神,却另有和芙莉嘉很相象的女神''霍尔达(Holda)''。这位女神也是云雾之人格化,正和芙莉嘉一样。人们把下雪说成是霍尔达在清理她的卧床,下雨则说是她在洗衣,把白云说成是她的布。当长条的灰色云朵散布于天空的时候,说是她在纺织。据那些传说,则织麻之法亦传自霍尔达。从这些地方,可以相信霍尔达就是芙莉嘉在南欧的变体了。
据中世纪的传说,则身为云雾之人格化的霍尔达又是一个住在山洞中的女神,叫''维纳丝夫人(FrauVenus)'',相当于''希腊神话''中的那个爱与美之神。她常常引诱少年骑士到她的洞里,用种种肉感的快乐使他们流连忘返。又一说霍尔达拥有一眼有魔力的泉水,这泉水名为“苏生”,和有名的青春之泉(饮之即返老还童)相仿。她还有一辆车,常坐这车到各处视察。
撒克逊民族所信奉的女神''伊丝特(Eastre,或Ostara)'',春之女神,也和芙莉嘉有些相象。这位女神甚受古代的日耳曼人敬奉,所以,当基督教盛行后,这位女神并没被降为魔鬼,而且为纪念她起见,还把基督教的一个节日取了这位女神的名字——就是英文中的[[复活节(Easter)|复活节 Easter]]。在这个节日里,人们以彩蛋互赠,因为蛋是代表生命之始,而伊丝特是春之女神,象征着严冬后的生命之复苏。
在日耳曼的别处,芙莉嘉又以''贝尔莎(Bertha)''之名出现。贝尔莎也是纺织之神、园艺之神,又为照料殇婴灵魂之神。或又有名为Gode或Wode的女神,这从名字就能看出来是Odin或Wodan的阴性形式。在荷兰,把芙莉嘉称为维萝尔德(Vrouelde)。所有这些女神,从她们象征的意义来看,事实上都是芙莉嘉的化身。
----
<<showfnotes>>
[[⚡众神之父奥丁(神圣) Odin]]),亦称''沃坦(Woutan)''或''沃登(Woden)'',北欧神话中的至高神,象征着宇宙间无所不在的精神,天空之人格化。他是智慧与胜利之神、贵族与英雄的保护者,因为诸神都出于他,故又被称为“诸神之父”,也是阿瑟加德之主。他的宝座名为[[希利德斯凯拉夫(Hlidskialf)|🛋️希利德斯凯拉夫 Hlidskialf]],实非寻常之椅子,而就像一座巨伟的瞭望塔一样,从这上面,奥丁可以一眼看见天上人间的诸神、巨人、侏儒、精灵、以及人类的一举一动。这宝座,只有''奥丁''及其妻[[众神之母弗丽嘉 Frigga]]可以使用;当他们坐在这宝座上的时候,''总是面对着南方和西方''。这两个方向是北欧人的希望之所寄。
通常把奥丁的样貌说成是五十岁左右,身材高大、元气充溢,黑色卷发,或是灰色的大胡子而头顶微秃。他穿着灰色的衣服,戴青色大风帽,外面又披以青底而有灰色斑纹的大氅;这是有着苍穹和灰云的北方天空之象征。
他的手里时常拿着他那无敌的长矛[[冈格尼尔|冈格尼尔 Gungnir]](Gungnir,此名乃系模拟金铁交织之音,无意义),这矛是神圣的,对矛尖所发的誓,永不能反悔。他的手指或手臂上,又带着名为[[德罗普尼尔|𓏌戒指德罗普尼尔 Draupnir]](Draupnir,滴落者)的聚金指环或手镯,这是“''富庶''”的象征,是宝贵无比的。
奥丁也常到人世间来,如果是为了战争,他就戴上他的''鹰盔'',如果是和平地访察人间的事情,他就穿上人类的服装,戴一顶''灰色阔边帽''(为的是不使人看见他只有一只眼睛),自称为''甘格勒利''(''Gangleri'',流浪者)。
当奥丁坐在宝座上的时候,他的肩头停着两只''大鸦'',''胡基(Hugin,思想)''和''穆宁(Munin,记忆)''。这两只大鸦是奥丁的秘密侦探,每天到人间去刺探新闻,回来报告。在他的脚边蹲着''两条狼''或猎狗,名为''格利(Geri,䋾吃)''和''弗利基(Freki,暴食)'',因为是奥丁的爱兽,__所以谁遇见了,谁就有好运。__
!! Valhalla 英灵殿
奥丁在[[阿瑟加德|亚萨神国阿斯加特 Asgard]]有三处宫殿,其中有一个,位处''格拉希尔(Glarsir)树林''之中,名为''瓦尔哈拉(Valhalla,英灵殿)'',有五百四十个大门,每个门宽可容八百位战士并排进出。正门上方有一个野猪的头和一只鹰;这鹰的锐目能看见世界的各方。宫殿的四壁是由擦得极亮的矛所排成,所以光明炫耀;宫的顶是金盾铺成。宫内的座椅上皆覆以精美的铠甲,这是奥丁给他的客人的礼物。凡是战死的勇士,所谓''恩赫里亚(Einheriar)'',为奥丁所器重者,皆得入此宫为上客。
以勇敢为无上之美德,以战死为无上之光荣的北欧人,因而也视奥丁为胜利及战争之神。北欧人以为每逢人间有战争的时候,奥丁就派遣他的侍女''[[瓦尔基莉(Valkyrie)们|⚔️女武神瓦尔基莉 Valkyries]]''到战场上去,从战死的勇士中挑选一半,背在她们的快马上,从[[虹桥碧佛洛斯特|🌈彩虹桥 Bifrost]]进入那瓦尔哈拉宫殿,先由奥丁的两个儿子在宫中欢迎,然后被带到奥丁的御座前接受嘉奖。
如果战死者中有诸神平日中意的人,那么奥丁必亲自起身欢迎,以示特殊的礼遇。在瓦尔哈拉宫中,又有盛筵饗待那些被接引上天的战死者,美貌的''瓦尔基莉们''此时也穿着纯白的长衣,殷勤地为勇士们劝觞。这些瓦尔基莉们,一般据说是九个,以大杯盛美味的神羊乳,大盘盛野猪肉,请勇士们放量饮啖。
这野猪肉也是宫殿中的珍品,乃是''神之野猪沙赫利姆尼尔(Sahrimnir)''的肉,每天由神宫的厨子''安德赫利姆尼尔(Andhrimnir)''割下来在大锅里烧好,却从来没有不够的时候,虽然奥丁的客人都是好食量的北欧勇士。这野猪也是神奇的,刚割了它的肉,它立刻又生满了一身肥肉。勇士们醉饱之后,又常在宫外的旷野上战斗,直到再闻传饭的角声,这才携手回去。在那里,美丽的瓦尔基莉们又在侍侯,将大斗里的神羊乳倾在各个勇士的心爱的杯子里,这杯子是用他们仇敌的头盖骨做成的。就是这样天天饮宴比武,勇士们在瓦尔哈拉宫中享福。这种生活,是北欧武士们所能想象的最美满的生活,所以奥丁也是他们最尊敬的一位神。
!! 奥丁的头衔
!!! 战争之神
奥丁出战的时候,通常是骑着他的八腿的灰色天马[[史莱普尼尔(Sleipnir)|🐴八脚马史莱普尼尔 Sleipnir]],拿着白色的盾,他的武器,除了无敌之矛''冈格尼尔'',还有神弓,一发能出十箭,每箭中一敌人。他又常以著名的''狂暴战体(Berserker rage)''授给他所宠爱的人,[[成为狂战士 berserker|狂战士 Berserkers]]的人能空手出入枪剑之林而不受伤。
!!! 风神
因为奥丁是全知全能的至高神,是代表了一切的,所以他的别名最多,约有二百个左右,每一个名字表示他的一种存在。被视为“''风神''”时的他,特名为''沃登Woden''。
北欧人以为暴风雨是奥丁骑着马在世界上驰过,收拾死者的灵魂。这也是''北方人恐惧暴风雨的表现'';所以假如有人在暴风雨中遭到了不幸,别人便说是因为冲犯了奥丁带着灵魂所走的路的缘故。但又谓如果能虔诚地跟着风暴走,往往能得奥丁从半空中赐予一马腿,这若能谨慎地保持着,到明天就会变成一块黄金。北欧人称暴风雨为''奥丁的行猎'',以秋冬风猛的季节为''奥丁的狩猎季''。农人们常留一些成熟的麦子在田里,预备奥丁经过时喂马。
!!! 知识之神
奥丁又是一切知识之神,这是因为他喝过[[智慧巨人密米尔 Mimir]]的“[[⛲密米尔之泉(智慧之泉) Mímisbrunnr]]”的水。在这泉水的深处,也能清楚地映出未来之事;奥丁找到了密弥尔,要求一勺之水。可是这位守泉的老巨人很知道泉水的价值,一''定要奥丁的一只眼睛为代价'',奥丁就挖出自己的一只眼睛给了他,从此只剩一只眼睛。密弥尔将所得的眼睛沉在泉水深处。
为了留作纪念,奥丁乃折取那笼罩在智慧之泉上的生命树[[伊格德拉修|🌲世界之树 Yggdrasil]]的一根树枝,做成了他的''无敌的矛''。从此奥丁的智慧是无人能匹敌了,但他从此也忧愁起来(他的面容是永远忧郁的),因为他知道了未来之事,知道了诸神将来不可逃避的劫运。
因为奥丁是知识之神,所以北欧古字母,即鲁纳(Rune)文字,也被说成是他的发明。 在发明鲁纳文字的时候,奥丁曾自己倒悬于''生命树伊格德拉修''的巨枝上<<fnote "塔罗牌“''倒吊者 The Hanged Man''”的其中一个来源">>,凝视着深不见底的[[雾之国尼弗尔海姆 Niflheim]],用心深思,并以矛自刺;这样凡有''九日九夜''之久。在发明了这神秘的文字之后, 奥丁就将之刻在他的矛上,又刻在他的马的牙齿上、熊的牙齿上,以及无数生物与非生物的 身体上。因为他曾受过九日九夜吊体之苦,所以吊罪在古代北欧算是重罪。
!! 奥丁的妻子
北欧人以奥丁为天空的人格化,因而他的妻自然就是大地;但是大地有三个阶段,所以北欧人有说奥丁有好几个妻子。他的第一位妻子是[[🌎大地女神乔迪 Jord]],象征着原始的大地。乔迪为奥丁生下一个非常威武的儿子,就是[[⚒️雷神托尔 Thor]]。
奥丁的第二个妻子,即正妻是[[众神之母弗丽嘉 Frigga]],她象征着开化后的大地,她生的儿子是[[光明神巴尔德(Balder)|光明之神巴德尔 Baldr]]和''神使[[赫尔莫德(Hermod)|神使赫尔莫德 Hermod]]'',或说''[[战神提尔(Tyr)|🛡️战神提尔 Tyr]]''也是她的儿子。
奥丁的第三妻是[[琳达(Rindr)|琳达 Rindr]],象征着不毛的冻土,她最初不肯接受奥丁的拥抱,后来才终于做了他的妻子,生子[[伐利(Vali)|瓦利 Vali(son of Odin)]],是为万物复春之象征。
有些古代诗歌里又说奥丁曾以历史女神''莎加(Saga,传说)''或''拉迦(Laga)''为妻,奥丁每天都会到河水下的水晶宫索克瓦贝克(Sokkvabekkr)去看她,饮那冰冷的河水,听她唱讲述古代历史的歌。此外,奥丁的情人还有''[[格莉德(Grid)|格莉德 Grid]]、[[古恩露德(Gunlod)|格萝德 Gunlod]]、[[斯卡蒂(Skadi)|丝卡蒂 Skadi]]''以及共同生出''[[💂🏻破晓之神海姆达尔 Heimdallr]]''的[[九位女巨人|扬波之女 Nine Daughters of Aegir and Ran]]。在北欧神话中,奥丁这些非正式的妻子都占有相当重要的地位。
以上所述,是神话中的奥丁,也可说是北欧人的最古老的奥丁。然而在稍后期的诗歌中,便有半神话的历史的奥丁;古代那个神话奥丁的许多奇迹和冒险也被加在这位历史奥丁的身上,可是他的来历却不同了。他被说成是小亚细亚一个叫“亚萨”(Aesir)的部落的酋长,因被罗马人所迫,于公元前70年顷离开了小亚细亚的老家,迁居欧洲。这个奥丁,据说曾征服了俄罗斯、丹麦、挪威、瑞典等地,每处留一个儿子为君。这个半神话的历史奥丁后来自觉死期将至,乃集其群臣,以矛自刺其腹九下,说自己将归于老家“阿瑟加德”,于是就死了。
据另一记载,则谓''瑞典国王吉尔菲''(Gyfli,在上面的记载中曾说他与奥丁平分国土,极为友善)慕亚萨族之勇名,要亲自访之,以验虚实;他到了奥丁的宫殿,受到欢迎,并与守门者''甘格莱尔(Gangler)''论及北欧神话之解释。这些都见于《小埃达》所载。
又据另一极古老的诗歌,则谓奥丁有六个儿子,分丹是丹麦、瑞典、挪威、东西撒克逊等六地之国君。别一诗则谓奥丁与芙莉嘉生了七个儿子,这些儿子即为''盎格鲁撒克逊(Anglo-Saxon)王族之祖先''。
总之,凡诸历史的奥丁,可以相信都是从神话中的奥丁蜕变而来。将神话历史化,在各民族皆不能免,北欧神话当然也不例外。
----
<<showfnotes>>
北欧神话的一个特点就是,那些神总有一天也会死亡。''有生必有死,是北欧神话中牢不可破的观念,连诸神也不能例外''。而且北欧神话中的神都是神种和巨人种的混血,亦即善与恶的混合体,是不完备的、非纯种的。在诸神的身体里埋藏着死的根源,所以他们也像人类一样,必会死亡——经过肉体的毁灭而达到精神的永存。''万事万物,即使是神,也不免是善恶杂沓的混合,这便是北欧人的基本思想和世界观。''
因此,北欧神话的整体结构就变成了戏剧式的,是一步步地走上悲剧的顶峰的结果。在前述的各章中,已经讲到诸神的渐盛及渐衰,我们看到诸神是如何容纳[[洛基|🦹邪神洛基 Loki]]——恶的代表,杂居在他们的[[阿瑟加德|亚萨神国阿斯加特 Asgard]];诸神又如何软弱地听从了''洛基''的提议,让他们自己卷入困难的漩涡,终至牺牲和损害了他们的道义与平和。最后,还让洛基盗走了他们最宝贵的东西,纯洁与天真的化身,[[光明之神巴德尔 Baldr]]。
至此,诸神方醒悟到,容忍洛基在他们中间是多么可怕,于是驱逐这恶的精神到地面上,可是已经太晚了。洛基在人间还是作恶,而并不比诸神聪明的人类又在听从洛基的教唆,一天一天地堕落了;于是诸神终于决定将洛基禁锢于山洞中,然而又已经太晚了。
所有这些错误,使诸神承认古老的预言必将实现,所谓''Ragnarok——诸神之黄昏''已经笼罩在阿瑟加德了。驾驭着日车和月车的[[☀️苏尔 Sol]]和[[🌖玛尼 Mani]]的脸因恐怖而变得苍白了,战战兢兢地勉强将车驱过天空,时时回头看那追上来要吞吃他们的天狼;这些天狼越逼越近,不久就要咬到他们了。苏尔和玛尼不再有笑容了,因此地面上也变得枯索、寒冷,可怕的无尽的冬开始了。先是飞下漫天雪花。继之从北方刮来咬人的冷风,地面覆盖上了厚厚的冰。这个可怕的严冬持续了整整三季,然后不但不消退,却又延长了更坏的''三季''<<fnote "这叫做''芬布尔之冬(Fimbul winter,漫长之冬)''。">>。一切可爱的东西都已离开地面,人类为生存所迫,各种罪恶都在做了。
在冥土黑暗的铁树林中,女巨人[[安尔伯达 Angrboda]](洛基以前的妻子)用杀人者和淫恶者的骨头喂养着[[🐺魔狼芬里尔 Fenrir]]的凶种,[[🐺斯库尔 Skoll]]、[[🐺哈梯 Hati]]和''玛纳加尔姆(Managarm,或说其等同于哈梯)''这三条狼。因为杀人和淫恶的罪人太多了,这三条食量可惊的狼被喂得更强壮,张开了血口,更凶猛地追赶着驾着日月之车的姐弟二人。
空前的奇祸迫在眉睫了。大地为之震栗,而被禁锢着的''洛基''、''芬里尔'',和地下冥土的恶犬[[🐕加姆 Garmr]]都振作精神,奋力挣扎,将他们身上的铁索弄得震天响,想要摆脱束缚,冲出来报仇了。毒龙[[🐉尼德霍格 Nidhogg]]已经咬穿了[[🌲世界之树 Yggdrasil]]的根,使这棵巨树的所有枝叶都疼得颤抖起来。高栖于瓦尔哈拉宫顶的''红雄鸡费雅勒(Fialar)''高声报警,立刻,[[人类之国米德加尔德 Midgard]]大地上的雄鸡''古林肯比(Gullinkambi,金冠)和''[[雾之国尼弗尔海姆 Niflheim]]中[[💀死亡女神赫尔 Hel]]的红黑两色鸟,都同声应和。
虹桥的守望者[[海姆达尔|💂🏻破晓之神海姆达尔 Heimdallr]]看见了所有这些不祥的事,听到了红雄鸡的锐叫,立刻拿起他的号角吹出那等待已久的告警的尖音,随即全宇宙就都听得这角声了。角声刚起,''阿瑟加德''的诸神和瓦尔哈拉宫中的''恩赫里亚(Einheriar)''们都从座中跳起,立即全身武装,勇敢地离开神宫,跳上他们奋鬣腾骧的坐骑,如潮水般从虹桥上冲过,直奔''维格利德(Vigrid,暴战)旷野''。这里就是命运之神预言已久的终末决战的战场。
同时在海洋中,那条盘绕大地的世界之蛇[[🐍耶梦加得 Jormungand]]也发怒挣扎,激起前所未有的巨浪,不久,这凶恶的耶梦加得也游出水面来上陆,往''维格利德(Vigrid)去了''。
这大蛇所激起的巨浪的一个浪头冲断了命运之船''纳吉尔法(Naglfar)''的缆索(这缆索是用死人的指甲造成的),正好被摆脱了束缚的洛基带着[[火之国穆斯帕尔海姆 Muspelheim]]的全体火焰巨人遇见,乘上这条船,由''洛基''掌舵,冲破了惊涛,航往''维格利德(Vigrid)''。
另一条大船从北方驶来,[[索列姆 Thrym]]把舵,满载着全体霜巨人,个个都全副武装,也飞快地开往维格利德,要和诸神作最后的决战。冥王[[赫尔|💀死亡女神赫尔 Hel]]也从地底爬出来了,带着她的恶犬[[加尔姆|🐕加姆 Garmr]],和毒龙[[尼德霍格|🐉尼德霍格 Nidhogg]];这条恶龙的双翼上挂满死尸,在战场上飞翔。洛基一上岸,就碰到这支援军;他带着他们,直赴维格利德大战场。
突然,整个天空都变红了。[[火巨人苏尔特 Surtr]]扬起了他的火剑,带着他的儿子们,正从天上驰过。他们走上了虹桥,想直冲阿瑟加德,可是他们燃烧的马蹄太沉重了,只听一声响彻宇宙的巨响,虹桥断了。
诸神知道他们的末日到了。而且他们的无准备无远见,使他们的处境不利:[[奥丁|⚡众神之父奥丁(神圣) Odin]]只有一只眼,[[🛡️战神提尔 Tyr]]只剩一只手,[[丰饶之神弗雷 Freyr]]没有[[剑|丰饶之神弗雷]](他的胜利之剑已经给了史基尔尼尔),只能拿一只鹿角作兵器。
虽则如此,诸神却都很镇定,毫无惧色。奥丁抽空先到[[⛲乌尔达泉(命运之泉) Urdarbrunnr]]边看一看,只见[[🔮诺伦三女神(命运三女神) Norns]]坐在凋零的[[伊格德拉修树|🌲世界之树 Yggdrasil]]下,脸罩着薄纱,悄悄地没有一点声息;在她们旁边放着一张破碎的网。奥丁在看守智慧之泉的[[智慧巨人密米尔 Mimir]]耳边说了几句话,就又赶回维格利德战场。
现在两军的人都到齐了。在这一边是坚定的[[亚萨诸神|亚萨神族 Aesir]]、[[华纳神族 Vanir]]、还有''恩赫里亚们'',在另一边则是闹哄哄的一群:''火焰巨人苏尔特尔''、''狰狞的霜巨人们''、''赫尔''的死白色军队、''洛基''和他的妖魔帮手,''恶犬加尔姆''、''芬利尔狼''、以及''巨蛇''尤蒙刚德''''。这最后两只巨兽喷出的火烟和毒雾,弥漫了整个宇宙。
无数年的老仇现在一齐迸发;两方的人都出死力相拼。''奥丁''敌住了''芬利尔狼'',''托尔''对着巨蛇''耶梦加得'',''提尔''和''恶犬加尔姆''战成对手,''弗雷''和''苏尔特尔''、''[[海姆达尔|💂🏻破晓之神海姆达尔 Heimdallr]]''和''洛基''战在一处,其余的神祗和''恩赫里亚们''也显示威武。——但是命运早已指定诸神必得失败;首先是''奥丁''被杀死了。由芬里尔狼所代表的恶的潮流,即使是奥丁也抵挡不住。芬利尔狼越斗越勇,身躯也越来越大,直到最后,它的血口上撑着天,下挫着地,将奥丁活吞了下去。
没有一个神能抽身救奥丁。弗雷虽然勇武,可却被苏尔特尔的火剑刺中了要害。海姆达尔稍占上风,可当他一剑砍死了洛基的时候,自己也伤重而死。提尔与恶犬加尔姆也得到同样的结果。托尔和巨蛇耶梦加得恶战良久,终于一雷锤打死了这恶魔,可是巨蛇身上喷出的毒血也将托尔毒死。
[[🏞️森林之神维达 Vidar]]从战场的一角冲过去,要报父仇。古老的预言现在又要应验。维达准备了很久的厚靴子现在起了作用;他的独脚踏住芬里尔的下颚,两手用力抓住它的上颚,用力一扯,竟将这怪兽撕成了两半。
此时,其余的神祗们和恩赫里亚们,全都死伤将尽;火焰巨人''苏尔特尔''挥动火剑乱舞,天、地,以及冥土九界都立刻充满了火焰。生命之树伊格德拉修也化为灰烬,火焰又延烧着诸神的金宫。大地成为一片焦土,海洋里的水沸腾蒸发。
这场火,烧尽了空、陆、冥、三界的一切,善与恶同归于尽。大地焦黑残破,慢慢地往沸滚的海水中沉下去。世界的末日到了,混沌的黑暗笼罩着宇宙。
但是,北欧人的想像并不就此结束。他们相信,''苏尔特尔''的大火虽然烧毁了世界,却也烧毁了一切的恶;此后,从“恶的废墟”上将会有新的善产生,世界将重生,幸免于大难的神——第二代诸神将再来重整神宫,永为世界的主宰。
于是,经过了不知多少时候,火烧的大地渐渐冷却,从海里浮起来,像洗了个澡一样清新;日光再度照临这苏醒的大地,苏尔的女儿[[☀️苏娜 Sunna]]继承母职,又驾起日车在天空中巡行。这第二个太阳没有第一个那样炎热,所以无须用盾隔离它的热度。这更温和的阳光使地面重又披上一层绿衣,花果再度繁荣茂盛。两个人类,男的叫''利弗(Lif,生命)'',女的叫''利弗诗拉希尔(Lifthrasir,生命之渴望)'',现在也从[[智慧巨人密米尔 Mimir]]在树林中的藏身处中钻出来了。他们做了这醒来的大地的主人,再度传承第二代的人类。
一切代表着逐渐发展的自然力的神都在那场大灾难中死了。但是[[瓦利 Vali(son of Odin)]]和[[🏞️森林之神维达 Vidar]],这两位代表了自然力之不灭的神却没有死,现在回到了从前诸神游戏的场所,''伊达瓦尔德平原''。在那里,他们遇到了[[玛格尼 Magni]]和[[摩迪 Modi]],已逝的雷神托尔的儿子,“力量”与“勇敢”之人格化。他们还保存着父亲的武器——[[🔨妙尔尼尔(雷神之锤) Mjölnir]]。
早先住在[[华纳海姆|华纳神国 Vanaheimr]]为质的[[海尼尔|维利(精神) Vili]]也回来了,而且从黑暗的冥土,又归来了那被万物所爱的[[光明之神巴德尔 Baldr]]和盲眼的[[黑暗之神霍德尔 Hoder]]。这两兄弟已经和解了,过去的错误都被宽恕,现在光明和黑暗和谐地同住着。
这一小群神踯躅于神宫的故址,突然看见最高的神宫''津利(Gimli)''还是巍然无恙;它那宛如日轮的金顶正反射着耀炫的光芒。于是就在这座宫殿里,诸神再建了第二代的阿瑟加德。
---
“诸神之黄昏”这个故事,也可以从另一方面来解释。我们知道在太古时代,地球上各处都经历过冰川、洪水,以及火山爆发等事件,所以各民族的神话中都有世界毁灭及再造的故事。在北欧,对洪水的印象大概没有火山爆发来得那么深,所以北欧没有世界洪水的神话,而有火焰的Ragnarok的传说。
北欧神话过早地受到了基督教的侵犯,尚未达到完具而即消亡,所以“诸神之黄昏”虽似结束了奥丁等第一代神,却使我们想到原来北欧或许尚有关于维达等第二代神的故事;如果没有基督教势力的侵入,也许“诸神之黄昏”正是“第二代故事”的开始,而非“第一代故事”的结束。
基督教的信徒想利用“诸神之黄昏”使北欧的原始信仰与基督教的信仰相互妥协,也是可以从《埃达》中看出来的。《小埃达》在述及“诸神之黄昏”以后,附有一诗,则说奥丁等神死后,有一个至高无上、无可名状的神成为世界的主宰,使善者得福,恶者得祸;又谓别有二天宫,以居巨人族和侏儒族,因为此二族也不过遂行命运之前定,初非大恶,在新的主宰世界之神的面前,则巨人和侏儒们也应享受同等的待遇。
《大埃达》和《小埃达》均出于基督教徒之手,故此诗中所谓至高无上、无可名状之神,当指基督教之上帝。''似乎基督徒保留了北欧原始信仰的前一部分,而利用“诸神之黄昏”的故事轻轻地将基督教信仰隐约衔接上去''。因此北欧原始信仰的后面部分,——如果有的话,——就从此湮没消失了。
----
<<showfnotes>>
诺亚(/ˈnoʊ.ə/)是亚伯拉罕宗教传统中最后一位始祖。他的故事出现在《希伯来圣经》(《创世纪》第 5-9 章)、《古兰经》和巴哈教著作中。包括《新约》在内的其他多部《圣经》以及相关的《申命记》中都提到了诺亚。
挪亚500岁生了闪,含,雅弗。
<a href="https://www.wikiwand.com/en/Shem">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/0/0b/Josephustable_3.svg"
caption:"Geographic identifications for the Sons of Noah (Flavius Josephus, c. 100 AD); ''Sham's'' sons are ''green''; ''Japheth's'' sons are ''red''; ''Ham's'' sons are ''blue''"
width:"600px"
align:"right"
>>
</a>
!! 相关
* [[含姆的诅咒|含姆 Ham]]
* [[大洪水 the Great Flood]]
<<list-links "[tag<currentTiddler>] -[tag[event]]+[sort[title]]">>
或者''Nörfi、Nari、Nörr''
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
<a href="">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/0/02/Die_Nornen_%281889%29_by_Johannes_Gehrts.jpg/400px-Die_Nornen_%281889%29_by_Johannes_Gehrts.jpg"
caption:"Die Nornen ''Johannes Gehrts'' (1889)"
width:"400px"
align:"right"
tooltip:"">>
</a>
有一次,[[诺恩三姐妹|🔮诺伦三女神(命运三女神) Norns]]闲游到丹麦,在一个贵族将生第一子的时候,她们进了这贵族的家,而且直入产妇的卧房。[[死亡女神兀儿德 Urd]]许诺初生婴儿将英俊而勇敢,[[薇儿丹蒂 Verthandi]]许以其将成大富人和大诗人。[[斯库尔德 Skuld]]还未及言,贵族的邻人已闻此奇迹,蜂拥而至,挤满了一室,竟粗暴地将她推下了坐椅。于是''斯库尔德''拂然不悦,站起来说道:她的两个姐姐的慷慨是徒然的,因为她将许诺这新生婴儿的生命只和床前的小蜡烛一样长。
那小蜡烛业已燃烧过半,眼看就要燃尽了。母亲抱住婴儿,心都碎了;乌尔德不愿自己的许诺被这样取消,而又不能使她妹妹的话收回,乃取此小蜡烛吹熄之,递给那母亲,吩咐她珍藏着,等到将来有一天她的儿子活得厌倦了时,再取出来燃完。
为了纪念诺恩们,这个孩子就取名为''诺恩纳格斯塔 Norna-Gest''。母亲谨藏着那半截短烛。''诺恩纳格斯塔''英俊勇敢,大富且为大诗人,一一如诺恩们所言。长大成人后,母亲乃将攸关生命的残烛给他,告知原委,藏于他的琴中。
''诺恩纳格斯塔''老了,可并不厌倦生活;他的诗人之心常葆青春,勇敢而且活泼。他活了三百多年,直到''奥拉夫国王''强迫人民信奉基督教的时候,还没活倦。奥拉夫也强迫这位老人受洗礼;而且为了要给民众看到命运女神的预言不足信,又强迫诺恩纳格斯塔取出那珍藏了三百多年的残烛来燃烧。不料烛尽之时,诺恩纳格斯塔也倒在地上死了。
即使在基督教的时代,命运的权力也还是不可动摇的。
诺恩们有时亦被称为[[伐拉(Vala)|伐拉 Vala]],或称女预言者。“预言”这种神秘的能力,在北欧人看来,是只有女人才有的。伐拉们的预言有着至高的权力,且不能询其理由。相传罗马大将''德路苏斯''(Nero Claudius Drusus,奥古斯都皇帝的小儿子)曾遇到一个伐拉,被告以不可渡过莱茵河,后来德路苏斯果遇反攻而大败。''伐拉''又曾预言''德路苏斯''的死期,不久之后他果然堕马而死。
这些女预言者又名为''Idies、Dises,或Hagedises'',大都住在森林里或古墓中,而且常伴随着侵略的军队。她们骑马在先,鼓励战士们冲锋,并从俘虏身上吸取血液。
北欧人又相信每个活人都必有一''守护灵(Fylgie)'',伴随他终生,这守护灵或为人形,或为兽形,但除非在将死之时,不可得见。
诺恩们的喻意是很明显的,但有些神话学者仍将诺恩们视为原始人对自然现象的解释,以为诺恩们是空气的象征,她们所织的网是云,而撕破的网则为被风吹散的云。在有些传说里说诺恩们中的小妹Skuld是死神或冥王[[赫尔|💀死亡女神赫尔 Hel]]之化身,又有一说则谓Skuld也是[[⚔️女武神瓦尔基莉 Valkyries]]之一。
|!父母 |[[🤬不和女神厄里斯 Eris]]|
|!标志 ||
|!对应罗马神 ||
Pseudea (Lies)
son of [[他玛 Tamar]] and [[犹大 Judah (son of Jacob)]]
[[波尔斯隆 Bolthron]]的女儿,[[勃尔 Borr]]的妻子,生下奥丁(Odin)、维利(Vili)、伟(Ve)。
<a href="https://www.wikiwand.com/en/Ruth_(biblical_figure)#Media/File:1795-William-Blake-Naomi-entreating-Ruth-Orpah.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/1795-William-Blake-Naomi-entreating-Ruth-Orpah.jpg/440px-1795-William-Blake-Naomi-entreating-Ruth-Orpah.jpg"
caption:"Ruth and Naomi by [[William Blake|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%A8%81%E5%BB%89%C2%B7%E5%B8%83%E8%8E%B1%E5%85%8B%20William%20Blake%201757%E2%80%931827:%5B%5B%E5%A8%81%E5%BB%89%C2%B7%E5%B8%83%E8%8E%B1%E5%85%8B%20William%20Blake%201757%E2%80%931827%5D%5D]]"
width:"400px"
align:"right"
>>
</a>
士师们统治时代,饥荒也曾肆掠迦南居民。从犹大的伯利恒逃难出来的寡妇[[拿俄米|拿俄米 Naomi]],丈夫和儿子们接连死去,她只能和两个儿媳忍饥挨饿地存活。
拿俄米就对儿媳[[俄珥巴 Orpah|Orpah]]和[[路得 Ruth|路得 Ruth]]说:“我不能再生孩子给你们作丈夫了,你们还是回娘家再嫁吧。”摩押女子''路得''舍不得婆婆,仍留下来和她相依为命。
她们二人在割大麦的时节回到''伯利恒'',路得就对婆婆说:“请您让我到田间拾麦穗,不管拾取谁家的,算我蒙他的恩。”
在拿俄米夫家的亲族中,有个[[波阿斯Boaz|波阿斯 Boaz]]是富有的大财主,也是他们的''购赎人''<<fnote "一个有权利或义务的人为近亲赎身,或者为近亲赎回产业或土地。这也跟一个传统习俗有关,死者的近亲会娶遗孀为妻,替死者立后。">>之一。他看到路得就说:“你在我这田里拾麦子可一直到庄稼收割完。要是渴了,就喝仆人打的水,他们必不敢欺负你。”路得伏地叩拜,对他十分感激。吃饭时,她又被''波阿斯''叫去吃饼,凡剩下的并拾取的一大袋麦,都带回去给婆婆,并如实告知真相。从此路得就常和波阿斯的使女在一起拾麦穗。
日子久了,婆婆就劝她找个安身之处,说:“今晚你等我那亲族睡着了,就掀开他脚上的被子,躺卧在那里,他必知道怎么做。”路得就遵行,夜半''波阿斯''忽然惊醒,问她是谁,路得说“我是你的仆人路得。求你用衣袍遮盖仆人,因为你是我们的''购赎人(repurchaser)''。” 波阿斯说:“你现在表现的忠贞之爱比起初的更大,因为不管是贫穷还是富有的年轻人,你都没有追随。你说的一切,我都会为你做。全城的人都知道你是个贤德的女子。我是有购赎权,不过你还有一个关系更近的亲戚,他有权先购赎。今晚你就留在这里。明天早上,如果他愿意购赎你,那很好,就让他购赎;如果他不愿意,永活的耶和华可以作证,我一定购赎你。”
波阿斯和有购赎权的人会面,那人因路得作为遗孀会让产业保留在死者名下而不愿意购赎,波阿斯于是接过购赎权。
波阿斯选了本城尊贵的十个长老,按习俗娶了路得为妻,生子[[俄备 Obed|俄备 Obed]]得是[[大卫|👑大卫王 David]]的祖父。
----
<<showfnotes>>
儿子/“代价的使者”/ Argos 的文化英雄/阿尔戈斯的火使者/国王
赎罪日,是在希伯来历[[提斯利月|希伯来历和格里历对应 Hebrew calendar Vs Gregorian calendar]]之第十天,也是敬畏之日(Yamim Noraim)之一。是犹太人每年最神圣的日子,当天会全日禁食和恒常祈祷。据称是上帝透过摩西与亚伦,要求犹太人遵守的。旧约明载赎罪节的规定:“以色列要永远遵守下列条例。
每年七月初十,以色列人和住在他们中间的外侨必须禁食,不准工作。那一天要行赎罪礼,洁净他们,使他们得以在上主面前洁净……这些条例必须永远遵守。”([[利未记|利未记 Book of Leviticus c.1512 BC]]16章29至34节)
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Set.svg/300px-Set.svg.png"
caption:"风暴、沙漠、混乱之神"
width:""
align:"right"
>>
赛特(Set,也作Seth,Setekh等),又名西德,在埃及神话中最初是''力量之神,战神,风暴之神,沙漠之神以及外陆之神''。''他保护沙漠中的商队,但同时又发起沙暴袭击他们''。
他是[[盖布|盖布 Geb]]与[[努特|努特 Nut]]的儿子,[[奈芙蒂斯|奈芙蒂斯 Nephthys]]的丈夫,是九柱神之一。与妻子奈芙蒂斯生了[[阿努比斯|𓃦 阿努比斯 Anubis]]和乌普奥特。他的形象与亚什神(撒哈拉沙漠之神)紧密结合。
当太阳神[[拉|拉 Ra 太阳神]]在夜间游历阴间时,赛特就在他身旁护卫。最值得一提的是,他曾与每晚攻击拉神的邪恶的黑暗之蛇[[阿佩普|阿佩普 Apophis]]战斗,并杀死了他。
后来,当赛特的兄长[[欧西里斯|欧西里斯 Osiris]]成为一位重要得多的神祇时,赛特渐渐被看作与他截然相反。因为一段关于赛特在搏斗中杀死欧西里斯的神话的产生,赛特开始成为''邪恶之神''。
赛特常被与荷鲁斯相对比。由于荷鲁斯是一位天神,所以赛特又被看作''土地之神''。来自地下的金属矿石被称作“赛特之骨”。在公元前三千年,赛特取代荷鲁斯成为法老的守护神;但当赛特谋杀兄长的传说流传起来时,荷鲁斯又被替换回来。
赛特的形象通常是一位''豺头人身''的神祇,长有长方形的耳朵和弯曲凸出的长嘴,但亦有些研究认为描绘的可能是土豚,因为土豚只在沙漠的夜间出没,善于挖洞的特性也很符合赛特的描述,或是另一种尚未辨明的野兽。除了上面提到的动物,赛特有时还被描绘为长有羚羊、驴、鳄鱼或是河马的头。
在亚伯拉罕宗教中,塞特是亚当和夏娃的第三个儿子。根据希伯来圣经,他有两个兄弟:[[该隐|该隐 Cain]]和[[亚伯|亚伯 Abel]]。
根据《创世纪》4:25,塞特是在亚伯被该隐杀害后出生的,''夏娃相信上帝指定他为亚伯的替代者''。他是《圣经》中唯一提到的亚当和夏娃的另一个孩子。
塞特活到''一百零五''岁,生了[[以挪士|以挪士 Enos]]。
塞特共活了''九百一十二''岁就死了。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
! a Trojan prince and the greatest warrior for Troy in the Trojan War
''Hector'' (''/ˈhɛktər/''; Ἕκτωρ, Hektōr, pronounced [héktɔːr])
|父母 |[[Priam|Priam]] and [[Hecuba|Hecuba]](是Priam的第一个儿子) |
最终被阿喀琉斯杀死。
<<<
不倦的赫利俄斯和显赫的大洋女儿
珀尔塞伊斯生下基尔克和国王埃厄忒斯。
给人类带来光明的太阳之子埃厄特斯娶
环流大洋神俄刻阿诺斯的女儿,
美颜的伊底伊阿,遵照神们的意愿。
她在欢爱中生下美踝的美狄娅,
金色的阿佛洛狄特帮助他征服了她。
就此再会吧,居住在奥林波斯的神们!
还有坚实的岛屿、陆地及环绕的咸海!
现在,再来咏唱女神们吧,言语甜蜜的
奥林波斯的缪斯、执神盾宙斯的女儿们!
这些女神和有死的男子结成姻缘,
为他们生下如神一样的美丽子女。
<<<神谱
赫利奥波利斯,和合本旧约圣经作伯‧示麦,是古希腊人对古埃及城市昂(On)的称呼,意为“海利欧斯城”或“''太阳城''”。该城为下埃及第十三省省会,其重要性在宗教方面。太阳神拉的庙宇居古埃及第二,仅次于底比斯的阿蒙神庙。''古王国时期''(约公元前2575年—约公元前2130年)埃及第五王朝拉神成为全国崇拜对象。故影响甚巨。
现仅存最古老的辛努塞尔特一世所建的方尖碑。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/c/c8/CairoObeliskSesostris1.jpg/400px-CairoObeliskSesostris1.jpg"
caption:"现仅存最古老的辛努塞尔特一世所建的方尖碑"
width:"300px"
align:"right"
tooltip:" 现仅存最古老的辛努塞尔特一世所建的方尖碑">>
! 掌管边界、十字路口、巫术和鬼魂的女神
''Hecate'' or ''Hekate''
|标志 |成对的火把、狗、臭鼬、红鲻鱼、蛇、钥匙、匕首和赫卡特的轮子被称为 stropholos |
|对应美索不达米亚神 |Ereshkigal |
|对应斯拉夫神 |Marzanna |
|父母 |[[Perses|Perses]] and [[Asteria|Asteria]] |
''最常见的是手持一对火把、一把钥匙、蛇或由狗陪伴。''她与十字路口、入口通道、黑夜、光明、魔法、巫术、草药和有毒植物的知识、鬼魂、巫术和巫术都有关系。 她最早出现在文学作品中是在公元前8世纪赫西奥德的《神谱》中,是一位拥有天空、大地和海洋领域的伟大荣誉女神。她的起源地被学者们争论不休,但她在塞萨利的女巫中拥有流行的追随者,在小亚细亚希腊人的拉吉纳有一个重要的圣地。
赫卡特是古代雅典人崇拜的几位神灵之一,与宙斯、赫斯提亚、赫尔墨斯和阿波罗一起作为''家庭的保护者''。 在基督教之后的迦勒底奥拉书(公元2-3世纪)中,她也被认为对地球、海洋和天空有(一定的)统治权,以及作为救世主(Soteira)、天使之母和宇宙世界灵魂的更普遍的角色。 关于她的崇拜性质,有人评论说,"她更适合在希腊多神教的边缘而不是中心。她本质上是矛盾的和多态的,她跨越了传统的界限,逃避了定义。"
!! 形象
''赫卡特一般被表现为三形或三体'',尽管最早已知的女神形象是单一的。
她最早的形象是在雅典发现的一个小型赤土雕像。雕像上的铭文是对赫卡特的献礼,采用的是6世纪的写作风格,但除此之外,它没有任何其他通常与女神有关的符号。她坐在一个宝座上,头上戴着一个护身符;其他方面的描绘都比较普通。法尔内尔说:"关于赫卡特的特点和意义,纪念碑上的证据几乎和表达她多种多样的神秘性质的证据一样充分。"波埃西亚的一块6世纪的陶器碎片描绘了一位可能是赫卡特的母性或生育方式的女神。如同后来的描述,她头戴树枝,被描绘为向拥抱她的两名少女提供 "母亲的祝福"。这个人物的两侧是狮子,这种动物在迦勒底神谕、钱币和小亚细亚的浮雕中都与赫卡特有关。
2世纪的旅行作家保萨尼亚斯说,赫卡特最早是在公元前5世纪末的希腊古典时期由雕塑家阿尔卡门尼斯描绘的,他的雕塑被放置在雅典的无翼耐克神庙前。虽然阿尔卡美尼斯的原始雕像已经失传,但有数百个复制品存在,而''三重赫卡特的一般图案位于中心柱或柱子周围,被称为hekataion,既用于十字路口的神庙,也用于神庙和私人住宅的入口。这些雕塑通常描绘她手持各种物品,包括火把、钥匙、蛇和匕首。''一些//hekataia//,包括公元前3世纪阿提卡的祭祀雕塑,包括额外的舞蹈人物,被认为是环绕三重赫卡特和她的中心柱的Charites。__围绕中心柱的三重赫卡特的表现形式有可能最初来自于设置在三叉路口的柱子,上面挂着面具,面向每个道路方向。__在公元1世纪,奥维德写道:"看赫卡特,在十字路口站岗,一张脸朝向每个方向"。
虽然希腊的艺术拟人化惯例通常将赫卡特的三重形态表现为三个独立的身体,''但三重赫卡特的图腾最终演变成了女神只有一个身体,但有三张脸的表现''。在受埃及启发的希腊密教著作中,与赫耳墨斯-特里斯梅格斯有关,在晚期希腊魔法纸币中,''赫卡特被描述为有三个头:一只狗、一条蛇和一匹马''。在其他表现中,她的动物头颅包括一头牛和一头野猪。
!!! 神圣的动物
在古典世界中,''狗与赫卡特密切相关''。
"在艺术和文学作品中,赫卡特不断被表现为狗的形状或由狗陪伴。狗的嚎叫声预示着她的到来。''狗是赫卡特的常规祭祀动物,经常在庄严的圣礼中被__吃掉__。''
" 色雷斯、萨莫色雷斯、科洛芬和雅典都有向赫卡特献狗的证据。 公元前4世纪塞萨利的克兰农的大理石浮雕是由一位赛马主人奉献的。 它显示赫卡特和她身边的一条猎犬在一匹母马的头上戴着花环。有人声称,她与狗的关系 "暗示了她与出生的关系,因为狗是Eileithyia、Genetyllis和其他出生女神的圣物。当她以母神的身份带着孩子时,以及当她在浮雕中与赫尔墨斯神和凯贝勒女神一起被描绘时,也会发现她有狗陪伴的形象 。 虽然在后来,赫卡特的狗被认为是陪伴她的不安分的灵魂或恶魔的表现,但它温顺的外表以及在许多古代艺术作品中陪伴着看起来完全友好的赫卡特,表明它最初的含义是积极的,因此更可能是由狗与出生的联系而不是狗的冥界联系产生的。 "与狗,尤其是母狗的联系可以用《狼牙山》中的一个变形神话来解释:陪伴赫卡特的那只看起来很友好的母狗原来是特洛伊女王赫卡比,她在特洛伊陷落后跳入海中,被赫卡特变成了她的熟人。
其他的还有臭鼬(polecat)、红鲻鱼(red mullet)、牛、狗、野猪、蛇、马、青蛙。
!!! 植物
据说赫卡特喜欢用''大蒜''供奉,这与她的崇拜密切相关。她有时也与''柏树''联系在一起,柏树象征着死亡和冥界,因此被一些地狱神灵奉为圣物。
其他一些植物(通常是有毒的、药用的和/或有精神作用的)都与赫卡特有关。__这些植物包括乌头(也叫hecateis)、颠茄、迪坦尼和曼陀罗__。有人认为,用狗来挖曼德拉草进一步证实了这种植物与赫卡特的关系;事实上,至少从公元1世纪开始,''就有许多证据表明,用狗来挖与魔法有关的植物的做法显然很普遍。''
!! 作为冥界女神
由于她与边界和世界之间的边缘空间有关,赫卡特也被认为是一个chthonic(冥界)女神。正如公元前3世纪西奥克里特的一首诗中所描述的那样,作为能够打开不同领域之门的钥匙的持有者,她能够打开死亡之门。在公元1世纪,维吉尔将地狱的入口描述为 "赫卡特的丛林",尽管他说赫卡特 "在天堂和地狱都有同样的力量"。希腊魔法纸币》描述赫卡特是塔尔塔罗斯钥匙的持有者。像赫尔墨斯一样,赫卡特不仅担任道路的守护者,而且担任所有旅程的守护者,包括通往来世的旅程。在艺术和神话中,她与赫尔墨斯一起,用火把引导珀尔塞福涅从冥界回来。
到了公元前5世纪,赫卡特已经与鬼魂紧密联系在一起,这可能是由于与塞萨利亚女神伊诺迪亚(意为 "旅行者")混为一谈,后者带着一队鬼魂在地球上旅行,在钱币上被描绘成头戴叶冠、手持火把的样子,这些都是与赫卡特密切相关的图像。
!! 作为巫术女神
到了公元1世纪,赫卡特的神性和夜行性导致她转变为一个与巫术、女巫、魔法和巫术有很大关系的女神。在Lucan的《Pharsalia》中,女巫Erichtho将赫卡特称为 "珀耳塞福涅,她是赫卡特的第三个也是最底层的一个方面,是我们女巫崇敬的女神",并将她描述为一个 "腐烂的女神",有着 "苍白腐烂的身体","当[她]拜访天堂里的神时,必须戴上面具" 。
与赫卡特一样,"狗是门槛的生物,是门和门户的守护者,因此它与生与死之间的边界以及穿越边界的恶魔和鬼魂联系在一起是恰当的。冥府的大门由可怕的看门狗Cerberus守卫,它的功能是防止活人进入冥府,防止死人离开冥府"。
[img[https://upload.wikimedia.org/wikipedia/commons/thumb/5/5b/AN00866037_001_l.jpg/640px-AN00866037_001_l.jpg?1625153288524]]
既已复仇,希格蒙德和辛菲奥特利就离开哥特地方,回他们的故乡。他们很受民众欢迎,希格蒙德做了国王,又娶美丽的''博格希尔德(Borghild)''为妻,生二子,名为''[[哈蒙德(Hamond)|哈蒙德 Hamond]]''和''[[赫尔吉(Helge)|赫尔吉 Helge]]''。后者出生的时候,命运女神预言,他将来会被选入瓦尔哈拉,成为一名''恩赫里亚''。
按照北欧王室易子而教的规矩,赫尔吉自幼受教于''哈加尔(Hagal)''。在十五岁时,赫尔吉就十分胆大,曾独自闯入世仇''亨定(Hunding)''的宫殿中。亨定的人要捉这胆大的少年,直追到哈加尔家里,''赫尔吉''乔装成侍女,才脱险而出。
于是赫尔吉和''辛菲奥特利''就同领一支部队去攻打亨定一族。他们的战斗很激烈,所以阿瑟加德的诸神也派了[[女武神瓦尔基莉们|⚔️女武神瓦尔基莉 Valkyries]]在战场上飞翔,挑选最勇敢的死者带回瓦尔哈拉。瓦尔基莉中的一名,''希格露恩(Sigrun)'',狂热地爱上了赫尔吉的勇敢,公开找到他,愿做他的妻子。经此役,亨定一族的所有族人都战死了,只剩下一个叫''达格(Dag,是希格露恩的兄弟)''的人,发誓不为自己的族人报仇,才留下性命。可是他却未守誓,借到了奥丁的圣矛,杀了''赫尔吉''。
此时希格露恩早已成为赫尔吉之妻,她哭了许多眼泪,悲悼她的丈夫。直到后来在坟墓中听赫尔吉说她的每一滴眼泪都成为他伤口上的一滴血,她才不哭。后来不久,''赫尔吉''就穿过[[虹桥|🌈彩虹桥 Bifrost]]到瓦尔哈拉,为''恩赫里亚''的首领,而''希格露恩''也重新成为瓦尔基莉,和赫尔吉永远住在一起,直到世界末日,诸神之黄昏的那日。
''辛菲奥特利''也未得善终。他有一次因争吵而杀了希格蒙德的新后''博格希尔德''的兄弟,所以''博格希尔德''想毒死他,''辛菲奥特利''也知道。在博格希尔德兄弟葬礼的酒宴上,博格希尔德给辛菲奥特利的酒里下毒,辛菲奥特利识破不喝,但希格蒙德只以为辛菲奥特利不敢喝酒。辛菲奥特利被希格蒙德所激,将一杯毒酒喝了,就此死去。希格蒙德悲伤地背着辛菲奥特利的尸体到海边,看见一个独眼老翁驾着一条船来,载上那尸体,然后不见。这是''奥丁''亲自来带''辛菲奥特利''去''瓦尔哈拉''。
先嫁给Neoptolemus,Neoptolemus死后嫁给Orestes.
母亲是[[Helen|海伦 Helen of Troy]]
<<<
美踝的阿尔克墨涅的勇敢儿子、强大的
赫拉克勒斯在完成艰辛任务后,迎娶赫柏,
伟大的宙斯和脚穿金靴的赫拉之女,
做他端庄的妻,在积雪的奥林波斯山顶。
——多么快活,他立下了不朽功勋,
从此生活在永生者中,远离苦难和衰老!
<<<神谱
! 黄昏之星(Evening Star)/傍晚的金星(Venus)
|对应罗马神 |Vesper |
! 看守金苹果圣园的三仙女
the ''Hesperides'' (''/hɛˈspɛrɪdiːz/''; Ancient Greek: Ἑσπερίδες Greek pronunciation: [hesperídes])
|父母 |[[阿特拉斯 Atlas]]and [[Hesperis|Hesperis]]<br/>[[福耳库斯 Phorcys]] and [[刻托 Ceto]]<br/>[[⚡天神宙斯 Zeus]] and [[⚖️法律与正义女神西弥斯 Themis]] |
!! 传说
天后[[赫拉|天后赫拉 Hera]]将一颗金苹果树种在了赫斯珀里得斯姊妹的果园里并委托这三姊妹为她照料这颗金苹果树,因为这棵神树是大地之母[[盖亚|🌍大地女神盖亚 Gaea]]送给赫拉和宙斯的结婚礼物。
在大英雄[[赫拉克勒斯|💪大力神赫拉克勒斯 Heracles]]的十二项任务中,其中有一项就是摘取赫斯珀里得斯果园里的金苹果。后来赫拉克勒斯以替[[阿特拉斯|阿特拉斯 Atlas]]背负苍天作为交易,让赫斯珀里得斯姊妹为他摘来了金苹果,好完成他的第十一个任务。得到金苹果的赫拉克勒斯将其供奉在雅典娜神像前,雅典娜认为金苹果不该放在其它地方,所以金苹果又被雅典娜送回圣园,让赫斯珀里得斯姊妹继续看管金苹果。
之后,参与阿耳戈英雄冒险的[[俄耳甫斯|俄耳浦斯 Orpheus]]在寻找水源的途中遇到了善于唱歌的赫斯珀里得斯姊妹,请求她们指示一处有泉水的地方。其中最为仁慈的埃格勒告诉他,前来盗取金苹果的赫拉克勒斯从沙漠而来,因口渴难耐找不到水源,便用脚踢了一块岩壁,岩壁的裂缝中随即流出了清凉的泉水,埃格勒说着便把山泉的位置告诉了俄耳甫斯。
!! 来历
赫斯珀里得斯姊妹的人数有''3人、4人或7人''。
维吉尔史诗《埃涅阿斯纪》4. 484 中记载有:赫西俄德说她们是夜神之女,金苹果圣园的看守者,三姊妹的名称是''埃格勒''(Aigle、光辉 - 夕阳女神)、''厄律提亚''(Erytheia、深红 - 晚霞女神)、''赫斯珀剌瑞图萨''(Hesperarethusa、黄昏 - 暮色女神),她们代表着赫斯珀里得斯圣园日落时霞光色彩的变化。
而伪阿波罗多洛斯的著作《书库》中称她们为“美音的赫斯珀里得斯”,把她们说成是四个人,将“牛眼睛的赫斯珀剌瑞图萨”分成了''赫斯珀里亚''(Hesperia)和''阿瑞图萨''(Arethusa),从而组成了四人的赫斯珀里得斯姊妹,她们是提坦神阿特拉斯和普勒俄涅的女儿;一说赫斯珀里得斯四姊妹是福耳库斯和刻托之女,她们是''埃格勒(Aegle)、赫斯珀里厄(Hesperie)、美杜莎(Medusa)、阿瑞图萨(Arethusa)''。古代瓶绘艺术的故事中说她们是''利帕拉(Lipara、柔和之光)、阿斯忒洛珀(Asterope、闪耀之光)、克律索忒弥斯(Chrysothemis、黄金秩序)、许癸厄亚(Hygieia、健康)''。其中三人说最为普遍。
公元前3世纪的古希腊诗人阿波罗尼奥斯(Apollonius Rhodius)说三姊妹是''埃格勒(Aigle)、厄律忒伊斯(Erytheis)、赫斯珀瑞(Hespere)''。许癸努斯的序言中说她们是''埃格勒(Aegle)、赫斯珀里厄(Hesperie)、埃里卡(Aerica)''。另外金星神赫斯珀洛斯的三个女儿则说成是''埃格勒(Aegle)、阿瑞图萨(Arethusa)、赫斯珀瑞图萨(Hesperethusa)''。
也有些传说把赫斯珀里得斯姊妹说成是七位美丽的仙女,她们是阿特拉斯和黄昏女神赫斯珀里斯的女儿们。她们居住在位于世界极西部的阿特拉斯山上,埃及国王部西里斯(Busiris)是她们的近邻,他派出一群强盗去抢夺赫斯珀里得斯姊妹的金苹果。当赫拉克勒斯完成他的第十一件功绩时,他杀死了强盗,救出了赫斯珀里得斯七姊妹。欧洲天文学家彼得鲁斯·阿皮亚努斯(Petrus Apianus)说她们是''埃格勒(Aegle)、厄律忒亚(Erythea)、阿瑞图萨(Arethusa)、赫斯提亚(Hestia)、赫斯珀拉(Hespera)、赫斯珀洛萨(Hesperusa)、赫斯珀瑞亚(Hespereia)''。古代瓶绘艺术的故事中除了上述四人外,又另外给出了七个名字:''埃俄皮斯(Aiopis)、安忒亚(Antheia)、多娜喀斯(Donakis)、卡吕普索(Kalypso)、墨耳墨萨(Mermesa)、涅利萨(Nelisa)和塔拉(Tara)''。
<a href="https://www.wikiwand.com/en/Hittites">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/6/61/Empire_of_the_Hitties.png/1920px-Empire_of_the_Hitties.png"
caption:"Map of the Hittite Empire at its greatest extent, with Hittite rule c. 1300 BC"
width:"auto"
align:"center"
>>
</a>
<<<
显赫的跛足神赫淮斯托斯娶阿格莱娅 ,
最年轻的美惠女神,做他的如花娇妻。
<<<神谱
路加(唐朝景教译卢伽法王)是[[保罗 Paul the Apostle c.3-c.67]]传道时的同工,他是《新约圣经》中《[[路加福音 Gospel of Luke c.56-58]]》和《[[使徒行传 Acts of Apostles c.61]]》的作者。
虽然路加这个名字具有较高的知名度,''但是《圣经》只提到他三次'',因此有关他的背景的介绍并不详细。根据保罗书信中透露的信息可以得知,路加的职业是''医生'',使徒保罗称他为“亲爱的医生”和“我的同工”。
|!象征 |福音书、医生、主教、''一本书与/或一枝笔''、一个伴随著一头有翼公牛/有翼小牛/公牛的人、一个画著圣母玛利亚辉记的人、一把刷子或调色盘(代表其曾为画家的传统) |
|!主保 |艺术家、医生、外科医生与其他 |
!! 生平
《路加福音》和《使徒行传》起头都说是给''提阿非罗''的,可见上帝启示的这两部经卷的执笔者是同一个人,就是路加。(《路加福音》1:1;《使徒行传》1:1)
路加没有声称亲眼见过[[🧔🏻♀️耶稣 Jesus c.4 BC-33]]在地上传道时所发生的事,却说自己从目击者那里收集资料,并“从头确切地考证了一切”。 因此,路加很可能在''公元33年''[[七七节 Shavuot]]之后才成为基督徒。
《路加福音》是《新约圣经》正典中,四福音书之一,并与《[[马太福音 Gospel of Matthew c.41]]》、《[[马可福音|马可福音 Gospel of Mark c.61-65]]》构成''对观福音''。
这本福音书记述了耶稣一生的生活,详细记载了他的降生、工作、受难与复活等相关事迹,并以耶稣升天结束。路加福音是四部福音中''对耶稣出生前及童年生活描述最详细的一部''。
《路加福音》主题:赦罪的福音─证明耶稣基督是人救主。
!! 关于作者
《路加福音》的作者[[路加 Luke the Evangelist c.1/16-c.84/100]]并非福音书里所记载事件的目击证人,也不是[[十二使徒|十二使徒 Twelve Apostles]]之一,他甚至可能在耶稣死时还未成为信徒。
可是,他在海外传道地区和使徒[[保罗|保罗 Paul the Apostle c.3-c.67]]有十分密切的交往。所以,可以理解,他的写作风格显出他受到保罗的影响。只要把《路加福音》第22章第19节至第20节参和《哥林多前书》第11章第23节至第25节参关于最后的晚餐的记载相互比较一下,就可以见到这种风格上的联系。
《[[马太福音 Gospel of Matthew c.41]]》给路加的写作提供了进一步的资料来源。为了“准确地查考一切的事”,他亲身访问平许多目击耶稣生平事迹的证人,例如仍然在生的使徒,甚至耶稣的母亲''马利亚''。路加不遗馀力地搜集可靠的细节,以完成这部福音书的著作。
!!! 写作习惯
《路加福音》在行文中使用了''300多个医学术语''。这一现象在其他作者以希腊文书写的《圣经》书卷中并不常见。例如,在谈到大痳疯的时候,路加和其他作者在用语上有所不同。在其他福音书的执笔者看来,大痳疯就是大痳疯;但在医生看来,大痳疯却有不同的深浅程度。例如,路加提及一个人“满身长了大痳疯”;他也说拉撒路“浑身生疮”。在谈及彼得的岳母时,路加使用了“害热病甚重”的句子,而其他福音书作者则没有这样的表达。虽然其他三位福音书执笔者都告诉我们,彼得削掉大祭司仆人的耳朵,但是只有路加才提及耶稣治愈他的事迹。《路加福音》说:“有一个女人有病灵在身、十八年了,老弯着腰,总不能直起来。”这种口吻像是出自医生之口。这本福音书还记载一个撒马利亚人“用油和酒倒在[伤者]的伤处,包裹好了”。可见,除了“亲爱的医生”路加之外,其他人不会这么仔细地记录急救的情形。
!! 路加福音的特点
《路加福音》的描写比其他福音书更加详尽,而且语言也具有相当的个人特色。下面列出了《路加福音》的一些特点。
* 至少有''六个''耶稣神迹和超过''十二个比喻''是其他福音书没有提及的;
* 其三分之一的篇幅用来叙述,另三分之二的篇幅用来记载谈话;
* 路加福音是四本福音书中''篇幅最长的一本'';
* ''马太''的写作对象主要是''犹太人'';''马可''则为了''非犹太籍''的读者,特别是''罗马人'',写成他的福音书。路加的福音则是写给“''提阿非罗大人''”*的,并且经由他间接传给别的人,''包括犹太人和非犹太人在内;''
* 为了使这项记载对于读者来说更具吸引力,路加把耶稣的家谱追溯到“''上帝的儿子亚当''”,而不像针对犹太读者而写的《马太福音》一样,只是把耶稣的家谱追溯到''亚伯拉罕''即止;
* 他特别提及了西面的预言,指出耶稣是“除去列国族面纱”(《圣经新世界译本》)的工具,而且“凡有血气的,都要见上帝的救恩!”
* 路加也列出了两项线索,我们根据它们可以确定耶稣出生的时候。他在《路加福音》第2章第1节至第2节参说:“当那些日子,凯撒奥古斯都有旨意下来,叫天下人民都报名上册。这是居里扭作叙利亚巡抚的时候,头一次行报名上册的事。”当时约瑟和马利亚上伯利恒登记,耶稣就是他们在那里停留时出生的。一位注释家说:“路加总是力臻完全准确的地步,这乃是路加的历史感最彻底的试金石之一。”综上,现今很多历史学家认为路加的确“将一切的事准确地从头查考过”。
!! 主题特色
本书描述耶稣至善,完全,满有恩慈,荣耀的人性;强调祂是完美的人子,是普世的救主,为世人带来平安,使荣耀归给上帝(2:8-14)。全书的特点如下:
# 这是一部文笔典雅的文艺作品和优美的史书,作者先仔细查考有关的资料(1:1-4),才依序编排耶稣的生平事迹(3:1-2)。
# ''详细记载了施洗约翰的出生'';更用了颇长的篇幅报导主的出生和童年事迹。
# ''常提及被社会轻视的人物'',如税吏,罪人,女人和寡妇等等(18:13)。
# ''强调福音的普世性''(2章:10,31-32节;3章:6节;10章:33节;24章:47)。
# ''强调圣灵的工作''(1章:15节;2章:27;3章:16;4章:18;10章:21)。
# 书中也''注重敬拜的生活'',蕴藏四首今日教会的名诗:''尊主颂''(1:46-55);''撒迦利亚颂''(1:67-79);''荣归主颂''(2:14);''西面颂''(2:28-32)。
---
''提阿非罗大人'':''西奥菲勒斯(Theophilus)'',和合本《新约全书》译作''提阿非罗'',是《路加福音》(1章3节)与《使徒行传》(1章1节,天主教思高版圣经作《宗徒大事录》)对人的一种荣誉称号、称呼。
有人认为《路加福音》与《使徒行传》的作者是同一个人,还有部分人认为这两本其实是同一本书。前人精妙地运用通用希腊语撰写这两本书,而书中在希腊语中意味着“''上帝的朋友''” 、“''被上帝所爱''”或“''爱上帝''”。没有人确定西奥菲勒斯的真实身份,不过存在相关的几个猜想和传统。另外,英语中"''Theophilus''"也可以被写作"''Theophilos''",它既可以作为一个普通的名字又可以作为古罗马学者与犹太人中的一个荣誉称号——他们的生活与《路加福音》与《使徒行传》的作者有相同之处。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
wife of [[波阿斯 Boaz]] and [[Mahlon]]
!! 相关事件
[[路得记 Book of Ruth c.1090 BC]]
这一篇是圣经中''以女性为主人公''的内容之一。这本书讲述[[大卫|👑大卫王 David]]的曾祖父和曾祖母的故事,围绕''[[路得|路得 Ruth]]''这一人物展开。
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
''路西法''是民间传说中与金星有关的各种人物的名字。这个实体的名字最初源于罗马神话中的''曙光女神(goddess Aurora)''的儿子,后来被吸收到基督教的民间传说中,作为魔鬼的名字。现代学术界通常将古希腊人物的名字在历史上被使用的相关圣经段落(以赛亚书14:12)中翻译为 "''晨星 morning star'' "或 "''闪亮的人 shining one ''",而不是专有名词路西法。
作为基督教神学中魔鬼的名字,英语中更常见的意思“路西法”是希伯来语词הֵילֵל(音译:hêylêl;发音:hay-lale)在''以赛亚书中''的译法。国王詹姆斯版本的圣经。__这个版本的翻译者从拉丁文Vulgate, 将הֵילֵל 翻译成拉丁文lucifer(未大写)__, 意思是“''晨星,金星''”,或者,作为形容词,“''带来光明''”。
作为晨曦中的行星的名字,"路西法"(光之使者 Light-Bringer )是一个专有名词,在英语中被大写。在希腊-罗马文明中,它经常被人格化,被认为是一个神,在一些版本中被认为是Aurora(黎明 the Dawn )的儿子。罗马诗人Catullus对这颗行星在晚上的一面所使用的类似名字是 "Noctifer"(夜行者 Night-Bringer )。
!! 罗马民间传说
在罗马民间传说中,路西法(拉丁语中的“光明使者 light-bringer ”)是''金星的名字'',尽管它经常被拟人化为手持火炬的男性形象。这颗行星的希腊名字有各种各样的 Phosphoros(也意思是“光明使者 light-bringer ”)或 Heosphoros(意思是“黎明使者 dawn-bringer ”)。 据说路西法是“Aurora 和 Cephalus 的传说中的儿子,以及 Ceyx 的父亲”。他经常出现在诗歌中,预示着黎明的到来。
!! 基督教中作为撒旦或魔鬼
以赛亚书(Isaiah)14:12对巴比伦国王的晨星的比喻引起了拉丁语中 "晨星 morning star "一词的普遍使用,大写的晨星是魔鬼堕落前的原始名称。将以赛亚书 14:12 与路加福音 10(“我看到撒旦像闪电一样从天上坠落”)并将以赛亚书中的段落解释为撒旦从天上坠落的寓言。
因此,''路西法在教会和流行文学中成为撒旦或魔鬼的代名词'',如但丁-阿利吉耶里的''《地狱》''、约斯特-范登-冯德尔的《路西法》和约翰-弥尔顿的《失乐园》中。
然而,与英语单词不同的是,拉丁语单词并不专门用于这种方式,也适用于其他人,包括耶稣:《启示录》22:16 的拉丁文(Vulgate)文本(英文译本将耶稣称为 "明亮的晨星")有stella matutina,而不是lucifer,但lucifer一词在《复活节赞歌》和普瓦提埃的希拉里的一首赞歌中适用于耶稣,其中包含一句话:"你是真正带来世界光明的人"(You verus mundi lucifer)。
(覆盖约珥书2:12-32)虽然如此,但仍有方法制止这种侵袭。耶和华劝勉说:“你们应当……一心归向我,……要撕裂心肠,不撕裂衣服,归向耶和华——你们的上帝。”(约珥书2:12,13)有号角响起,宣告严肃会。他们若归向上帝,“耶和华就为自己的地发热心,怜恤他的百姓。”(约珥书2:18)上帝会祝福和宽恕他们,入侵的蝗虫必被赶退。这不是惧怕的时候,相反,要欢喜快乐,因为果子和麦子都必丰收,新酒和油也必盈溢。蝗虫大军在这些年间所吃的,耶和华必补偿。他的应许是:“你们必多吃而得饱足,就赞美为你们行奇妙事之耶和华——你们上帝的名。”(约珥书2:26)他们必知道上帝在以色列中间,惟独耶和华才是他们的上帝。
“以后,我要将我的灵浇灌凡有血气的,”耶和华说,“你们的儿女要说预言;你们的老年人要做异梦,少年人要见异象。在那些日子,我要将我的灵浇灌我的仆人和使女。”耶和华大而可畏的日子未到以前,日头和月亮都要显出可怕的奇事。然而必有生还的人。“凡求告耶和华名的就必得救。”参看约珥书2:28-32。
|!父母 |[[🤬不和女神厄里斯 Eris]] |
|!配偶 ||
!! Personification of Lawlessness
In Greek mythology, Dysnomia (/dɪsˈnoʊmiə/; Ancient Greek: Δυσνομία means '''lawlessness''') was the daemon of "lawlessness", who shares her nature with Atë ("ruin"). She was a companion of the latter deity, Adikia (Injustice), and Hybris (Violence). Dysnomia makes rare appearances among other personifications in poetical contexts that are marginal in ancient Greek religion but become central to Greek philosophy: see Plato's Laws.
现在''希吉''尔已经并吞了''伏尔松格''的国土。他快快活活地等待第一个儿子生下来。''希格妮''盼望这个儿子能为自己报仇,所以等到这孩子十岁的时候,就悄悄地送给''希格蒙德'',请他训练这孩子。但是混合了希吉尔和希格妮的血而生下来的孩子是没有勇气的,所以希格蒙德试过那孩子后就送还给了希格妮。第二个孩子又生下来了,也还是没有勇气,于是希格妮知道,非是伏尔松格家族的纯血之子不能担负报仇的重任,她决定自己犯罪,去得到这纯血的后代。
她招进一个年轻美貌的女巫来,和她调换了相貌。于是她找到森林中希格蒙德的茅屋,在那里等候希格蒙德回来。希格蒙德回来后,认不出这位风骚的少妇就是自己的妹妹,就和她睡觉了。三天后,希格妮回到自己的宫里,复了原形,不久就生一子,从这婴儿的声音和相貌明显能看出他有着纯正的伏尔松格的血统。她将这个孩子命名为''辛菲奥特利(Sinfiotli)'';等到辛菲奥特利十岁时,希格妮亲自试验他的勇气,把他的衣服缝在他的皮肤上,然后猛地扯下来,可是辛菲奥特利却不喊痛,反而大笑。希格妮知道他的勇气非同常人,就送他到希格蒙德处接受训练。
和希格蒙德在森林中,辛菲奥特利表现得异常勇敢。他学会了北欧武士应会的各种本领,而且和希格蒙德成了好朋友。
有一天,他们在森林中看到一间茅屋,里面有两个人睡着,墙上挂着两张狼皮。希格蒙德知道这是魔法师用以变人为狼的,遂取了狼皮,和辛菲奥特利各披了一张。他们也立刻变成狼了,跑出森林去,见人就咬。后来狼性愈重,他俩互相撕咬起来。因为辛菲奥特利比较年轻而且比较弱些,就被希格蒙德咬死了。这惨剧使希格蒙德恢复了本性,守在他朋友的尸身旁,没有办法。这时突然有一对鼬鼠从树丛中跳出来,也互相撕咬,结果死了一只;得胜的鼬鼠跳进茂密的草丛中,拿一片树叶出来,搁在死鼠的胸口,那死鼠就又复活了。变成狼的希格蒙德正在看着,忽然有一只乌鸦衔了一片同样的树叶丢在他脚边。希格蒙德知是神赐,用以救活了辛菲奥特利,就一同回到自己的茅屋里,等待那魔法的时效过去,好将可怕的狼皮脱下来。他们等到第九夜,狼皮脱落了,他们还为人形,就立刻将狼皮投在火中烧了。
后来''希格蒙德''将自己的大仇讲给''辛菲奥特利''听。虽然是希吉尔的儿子(他俩都不知道希格妮用的手段),辛菲奥特利却发誓要帮希格蒙德报仇。他们择定了一个晚上,溜进了希吉尔的宫殿,躲在酒库里。不料希格妮的前两个儿子正玩着掷金环的游戏,有一个金环滚进酒库里去了。这两个小孩子发现了两个埋伏的刺客,大喊起来。希吉尔和他的人惊起,拿兵器。希格妮抓住了她这两个儿子,推给希格蒙德,叫他杀却。希格蒙德不肯,辛菲奥特利就砍了两个小孩子的头,和希格蒙德跳出来抵抗希吉尔的武士,结果两人都被捕。希吉尔命令将他们关在一座坟墓里,墓口上面盖了石板,将他们活埋。当最后一块石板将要盖上时,希格妮抱了一束稻草投在辛菲奥特利的脚边;希吉尔的人以为那是什么只能让两个刺客多受几天痛苦的食物。然而当石板盖好后,辛菲奥特利打开那束稻草看时,不是食物,却正是那把神剑。用这把神剑,辛菲奥特利和希格蒙德砍穿了石板,逃出被活埋的坟墓。
得了自由的希格蒙德与辛菲奥特利便在希吉尔的宫内放起火来,却把守住了出口,只许妇女出来。他们大声呼唤希格妮赶快逃出来;可是希格妮只在门口边拥抱了希格蒙德,匆匆地将辛菲奥特利的真实身份说了,就回身跳在火焰中,和她的仇人同归于尽。
辟拉(希伯来语:,意为“犹豫的、害羞的”)是《希伯来圣经·创世记》中记载的一个人物,是[[拉结|拉结 Rachel]]的侍女、[[雅各|雅各 Jacob]]的妾、''但''和''拿弗他利''的母亲(《创世记》第30章第3-5节、第35章第25节)。
辟拉是[[拉班|拉班 Laban]]在女儿拉结嫁给雅各时给她的侍女。有一些解经家认为,''拉结和利亚的侍女——辟拉和悉帕实际上是''拉班''的2个年幼的女儿。''
由于''拉结''无法生育,她为了和姐姐利亚竞争,就将自己的侍女送给丈夫雅各为妾,当辟拉生下2个儿子时,欣喜的拉结为他们起名为但和拿弗他利,教育他们,他们的后裔构成了未来的2个以色列支派。
在拉结去世后,雅各和利亚所生的长子[[流便|流便 Reuben]],由于他和''辟拉''通奸的事情被父亲雅各发现,失去了获得双倍土地的长子名分(《创世记》第35章第22节、第49章第3-4节;《申命记》第21章第17节)。
另一个解读是,在拉结在世时,雅各的床安放在她的帐篷,只是有时拜访其他妻妾的帐篷。拉结去世后,雅各的床就安放在受过拉结指导的辟拉的帐篷,以尽量接近他所钟爱的拉结。不过,''流便''感到这样做对于他的母亲、雅各的原配妻子利亚是一种藐视,于是把他母亲利亚的床移到雅各的帐篷里,并把辟拉的床移走了。这种对雅各隐私的侵入相当严重,以至于圣经将此等同通奸。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
Dagr(古挪威语:[ˈdɑɣz̠],“日”)是北欧神话中''“日”''的神圣拟人化。
他出现在根据早期传统资料于 13 世纪编撰的《诗歌埃达》和由斯诺里·斯图鲁森于 13 世纪撰写的《散文埃达》中。在这两个资料中,''达格''都被描述为[[🌄德尔林 Dellingr]]的儿子,并与“为人类带来光明”的亮鬃马''斯金法西 Skinfaxi''联系在一起。
根据手稿的变化,《散文埃达》补充说,达格要么是''德林格''与拟人化的夜晚[[🌌诺特 Nott]]的儿子,要么是拟人化的地球[[🌎大地女神乔迪 Jord]]。
除此之外,Dagr 在古斯堪的纳维亚语作品中作为一个普通名词出现,仅表示“天”。有人提出达格尔与[[日耳曼神话|Germanic 日耳曼]]中其他类似名字的人物之间存在联系。
她被认为在青铜时代建立了拉提乌姆的阿尔迪亚市(She was credited with founding the city of Ardea in Latium during the Bronze Age)。
由于缺乏男性继承人而感到失望,[[阿里克修斯|阿克里修斯 Acrisius]]国王问德尔斐的神谕是否会改变这种情况。神谕告诉他,他永远不会有儿子,但他的女儿会,而且他会被女儿的儿子杀死。
当时,达娜厄 (Danaë) 没有孩子,为了让她如此,阿里克修斯国王 (King Acrisius) 将她关在宫殿庭院下建造的青铜室中(其他版本说她被囚禁在一座高大的黄铜塔中,只有一个装饰华丽的房间,但没有门窗,只有天窗作为光和空气的来源)。她被埋葬在这座坟墓里,再也见不到光明。''然而,众神之王宙斯想要她,以金雨的形式来到她身边,从地下室的屋顶流入她的子宫''。不久之后,他们的孩子[[珀尔修斯|珀尔修斯 Perseus]]出生了。
由于不愿意杀死自己的子孙而激起众神或复仇女神的愤怒,阿克瑞斯国王将达那厄和珀尔修斯装在一个木箱里扔进了大海。海水被波塞冬镇住了,在宙斯的要求下,这对母子得以幸存。
他们被冲到塞里弗斯岛上,在那里他们被波利德克特斯国王的弟弟''迪克提斯''收留,迪克提斯把珀尔修斯抚养成人。国王被达那厄迷住了,但她对他没有兴趣。因此,他同意不娶她,前提是她的儿子能给他带来戈耳工美杜莎的头。''珀尔修斯利用雅典娜的盾牌、赫尔墨斯的带翼凉鞋和哈迪斯的隐形头盔,躲过了美杜莎的注视,将她斩首。''
后来,在珀尔修斯带回了美杜莎的头颅并救出了安德洛米达后,神谕的预言成真。他开始前往阿尔戈斯,但在得知预言后,转而前往拉里萨,那里正在举行运动会。一个偶然的机会,年迈的阿克里修斯在那里,''珀尔修斯不小心用标枪(或铁饼)击中了他的头部'',实现了预言。
Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
<a href="https://www.wikiwand.com/en/Book%20of%20Joshua#Media/File:James_Jacques_Joseph_Tissot_-_The_Ark_Passes_Over_the_Jordan_-_Google_Art_Project.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/3/37/James_Jacques_Joseph_Tissot_-_The_Ark_Passes_Over_the_Jordan_-_Google_Art_Project.jpg/1810px-James_Jacques_Joseph_Tissot_-_The_Ark_Passes_Over_the_Jordan_-_Google_Art_Project.jpg"
caption:"The Ark Passes Over the Jordan (watercolor c. 1896–1902 by James Tissot)"
width:"400px"
align:"right"
>>
</a>
(覆盖《约书亚记》第1章第1节-《约书亚记》第5章第12节)鉴于前路考验重重,耶和华一开始便向[[约书亚|约书亚 Joshua]]提出保证和健全的忠告:“你务要鼓起勇气,坚强不屈,……这律法书不可离开你的口,总要昼夜思想,好使你谨守遵行这书上所写的一切话。如此,你的道路就可以亨通,凡事顺利。我不是吩咐过你吗? 你要勇敢坚强,……因为无论你到哪里去,你的上帝耶和华都与你同在。”(《约书亚记》第1章第7节至第9节)约书亚归荣耀给耶和华,视他为真正的领袖及统帅,然后立即遵嘱预备一切,准备过河。以色列人接纳他为摩西的继承者,并矢誓予以支持。于是他们向迦南进发。
首先两个探子奉派前往窥探[[耶利哥|耶利哥 Jericho]]。妓女[[喇合|喇合 Rahab]]把握机会表明她对耶和华的信心,冒生命危险帮助探子躲藏起来。探子起誓保证,当耶利哥城陷落时,她必安然无恙。
探子回报,指出当地居民听见以色列人要来,都闻风丧胆。既然报告十分有利,约书亚遂下令立即渡过约旦河,那时河水正涨溢两岸。于是耶和华以明确的证据表明他支持约书亚。正如摩西的日子一样,在以色列人中间有‘永生的上帝’。(《约书亚记》第3章第10节至第11节)扛抬约柜的祭司一起步踏进约旦河,从上往下流的水便突然断绝,立起成垒,让以色列人从干地上步过。约书亚命人从河中取了12块石头立为记念,且另把12块石头立在约旦河中央,在祭司站脚的地方。祭司甫从河里上来,河水便马上涨溢起来。
百姓过了河之后便在约旦河与耶利哥之间的吉甲安营,约书亚把那些富于纪念意义的石头立在该处,对后世的人作个见证,“要使地上万民都知道,耶和华的手大有能力,也要使你们永远敬畏耶和华——你们的上帝。”(《约书亚记》第4章第24节)(《约书亚记》第10章第15节表明此后有一段时期,百姓可能以吉甲作安营的基地。)以色列人就在当地行割礼,因为在旷野路上他们一直没有施行割礼。以色列人守逾越节,吗哪停止降下,他们终于开始吃当地的出产。
! 冥府三判官之一
克里特岛的一位国王。
每隔9年,他让国王伊格尔斯挑选7个小男孩和7个小女孩儿送到代达罗斯(Daedalus)的创造物--迷宫里,让他们被弥诺陶洛斯(Minotaur)吃掉。在他死后,米诺斯成为冥界的死者法官。
[img[https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Michelangelo%2C_giudizio_universale%2C_dettagli_50.jpg/640px-Michelangelo%2C_giudizio_universale%2C_dettagli_50.jpg]]
|!父母 |[[🌌黑夜女神尼克斯 Nyx]] |
|!配偶 ||
!! Personification of Lawlessness
In Greek mythology, Dysnomia (/dɪsˈnoʊmiə/; Ancient Greek: Δυσνομία means '''lawlessness''') was the daemon of "lawlessness", who shares her nature with Atë ("ruin"). She was a companion of the latter deity, Adikia (Injustice), and Hybris (Violence). Dysnomia makes rare appearances among other personifications in poetical contexts that are marginal in ancient Greek religion but become central to Greek philosophy: see Plato's Laws.
son of [[含姆 Ham]]
!! 地名
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Canaan_Aram._John_Melish._The_Places_Recorded_in_the_Five_Books_of_Moses._1815.jpg/500px-Canaan_Aram._John_Melish._The_Places_Recorded_in_the_Five_Books_of_Moses._1815.jpg"
caption:"Map of Canaan by John Melish (1815)"
width:"300px"
align:"right"
>>
大致相当于今日''以色列、西岸和加沙,加上临近的黎巴嫩和叙利亚的临海部分''。
迦南,是公元前两千年晚期古代近东南黎凡特的一个闪米特语文明和地区。在青铜时代晚期的阿玛尔纳时期(公元前 14 世纪),迦南作为埃及、赫梯、米坦尼和亚述帝国利益范围交汇或重叠的地区,具有重要的''地缘政治意义''。现今关于迦南的大部分知识都来自于在该地区的特拉哈索尔、特拉米吉多、恩埃苏尔和吉泽尔等遗址进行的考古发掘。
迦南 "这个名字出现在《圣经》中,是与 "''应许之地'' "相关的地理名称。迦南人 "是一个种族总称,涵盖了南黎凡特或迦南地区的各种土著居民--定居和游牧民族。这是迄今为止《圣经》中使用最频繁的种族术语。圣经学者马克-史密斯引用考古发现,认为 "以色列人的文化在很大程度上与迦南人的文化重叠,并从迦南人的文化中衍生出来......。简而言之,以色列文化在很大程度上是迦南文化"。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
迦得是雅各的''第七个儿子'',利亚的使女[[悉帕|悉帕 Zilpah]]为雅各所生的第一个儿子。名字的意思是“''万幸''”(创世记30:9)。也是以色列十二支派的迦得支派的祖先。
他父亲雅各在临终前给他的祝福是:“迦得必''被追击者追击'',他却要追击他们的脚跟。”(创世记49:19) 而摩西给他的祝福是:"论迦得说,使迦得扩张的当受颂赞。迦得住如母狮;他撕裂膀臂,连头顶也撕裂了。"(申命记33:20)
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
''Narcissus /nɑːrˈsɪsəs/''
来自维奥蒂亚 Thespiae 的猎人/水仙花
|!父母 |[[Cephissus]] and [[Liriope]] |
这个神话的几个版本从古代的资料中保存下来。经典版本是奥维德(Ovid)所写,见于他的《变形记》第三册。这是一个关于Echo和Narcissus的故事。当[[Liriope|Liriope]]生下英俊的孩子Narcissus时,她咨询了预言家Tiresias,Tiresias预言这个孩子只有在不发现自己的情况下才能长寿。
有一天,Narcissus在树林里散步,一个叫[[Echo|Echo]]的Oread(山中仙女)看到了他,深深地爱上了他,并跟着他。Narcissus感觉到自己被跟踪了,于是大喊 "谁在那里?"。Echo重复着 "谁在那里?"。她最终表明了自己的身份,并试图拥抱他。他走开了,并告诉她不要管他。
她伤心欲绝,在孤独的峡谷中度过了她的余生,直到除了回声之外什么也没有留下。复仇女神[[Nemesis|复仇女神涅墨西斯 Nemesis]](作为Aphrodite的一个方面)在得知这个故事后注意到这种行为,决定惩罚Narcissus。
有一次,在夏天,他打完猎后口渴了,女神把他引到一个水池边,他靠在水面上,看到自己正处于青春的盛年。水仙没有意识到这只是他自己的倒影,而是深深地爱上了它,仿佛它是另一个人。他无法离开自己形象的诱惑,最终意识到他的爱无法得到回报,于是他从体内燃烧的激情之火中融化,最终变成了一朵金色和白色的花朵。
2004 年,本杰明·亨利博士在牛津的 Oxyrhynchus 纸莎草纸中发现了一个由尼西亚诗人帕特尼乌斯创作的早期版本,创作于公元前 50 年左右。与奥维德的版本不同,它''以失去生存意志并自杀的纳西索斯结束''。与奥维德同时代的科农的一个版本也以自杀告终(Narrations, 24)。在其中,一个名叫阿梅尼亚斯的年轻人爱上了纳西索斯,后者已经拒绝了他的男性追求者。纳西索斯也拒绝了他,并给了他一把剑。阿梅尼亚斯在纳西索斯家门口自杀。他曾向众神祈祷,让纳西索斯为他所引起的所有痛苦上一课。纳西索斯走过一池水,决定喝点水。他看到了自己的倒影,被它迷住了,并因为得不到自己的欲望对象而自杀。
一个世纪后,旅行作家保萨尼亚斯(Pausanias)记录了这个故事的小说变体,__其中水仙爱上了他的双胞胎妹妹,而不是他自己__。
在所有版本中,他的身体消失了,只剩下一朵水仙花。
''对尼尼微的审判''
那鸿书是希伯来圣经中小先知书的第七本,一般被承认为圣经全书的第34本书。本书开头称作者为[[🗣️那鸿 Nahum]],主要内容为关于亚述帝国首都[[尼尼微 Nineveh]]的预言。
那鸿大约在公元前632年之前在犹大王国完成本书。体现了耶和华''对邪恶亚述之京城尼尼微的审判''。
!! 主要内容
# 尼尼微城倾覆的预告 (1章:1-15节) 。
# 尼尼微城倾覆景况 (2章:1-13节) ,尼尼微城倾覆的原因 (3章:1-19节)。
雅恩格利佩尔(Iarngreiper)。在北欧神话中是[[⚒️雷神托尔 Thor]]所拥有的道具,也翻作“铁手套”(iron gauntlets)。
这个道具出现在《散文埃达》的〈欺骗古鲁菲〉中,和手套成对的道具还有“力量腰带”,但在其他北欧神话故事中,几乎不见对这两个道具的描述,也没有托尔使用的情节,一般相信这可能是《散文埃达》的作者史洛里自行杜撰之物。
另一个在《散文埃达》〈诗语法〉中故事提到,托尔在洛基的计谋下什么武器都没带就前往巨人国度挑战,途中经过女巨人格莉德托尔的住处时,向格莉德借来了不断之杖、绑腿、铁手套。格莉德的宝物和托尔的宝物功能几乎一模一样,因此有可能上述宝物在北欧诸神中是个可能普及化的道具。
闪,是《圣经》(创世纪 5-11 章和《历代志上》1:4)和《古兰经》中[[诺亚|诺亚 Noah]]的儿子之一。
在中世纪和近代早期的欧洲传统中,他被认为是亚洲人民的祖先,他的名字就是以前给予西亚人民的“''闪米特人''”称号的名字。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
闪族人,或闪姆人,是起源于阿拉伯半岛和叙利亚沙漠的游牧民族。
相传挪亚之子[[闪姆 Shem]]即为其祖先。
闪米特是民族在语言、文化上的一个分支。尽管人类遗传学与历史学上使用“种族”这个字眼有著众多的争议,闪米特这一语族的定义却很明确,包括古代两河流域的阿卡德语跟其延伸的两种方言所分化的语言──亚述语和巴比伦语,以及现代的阿拉伯语和埃塞俄比亚(四荒经)的阿姆哈拉语、亚拉姆语(亚兰语)、希伯来语和马耳他语等。
!! 来源
闪米特是一个来源自闪米特宗教经书《圣经》中诺亚的儿子''闪''的形容词,其人种即为''闪米特人''。这一用法最早由德国历史学家奥古斯特·路德维希·冯·施洛塞于1781年提出。
闪米特人的概念来自古希伯来人在《圣经》中对各种族来由的记载,凡文化与语言上跟他们接近的种族即被认为是闪姆的子孙。
反之,希伯来人的敌人经常被他们认为是含的后代。在《创世记》第10章第21-31节中,闪姆的儿子是以拦(埃兰,Elam)、亚述(Asshur)、亚法撒(Arphaxad)、路德(Lud)与亚兰(亚拉姆,Aram):被认为是亚述人、迦勒底人(新巴比伦)、塞巴人、希伯来人与阿拉姆人的祖先,其语言有著紧密的关系,固此他们的语言都被纳入闪语族中。值得注意的是,迦南人与亚摩利人(古巴比伦)的语言同样为闪族语,但在《圣经》中被认为是''含''的后代,可能是希伯来文化的冲击。反之,闪姆在《圣经》中同样被认为是''埃兰人''的祖先,而埃兰语并非闪语族的一支,现代研究认为有可能与南印度达罗毗荼语系有关。
!! 宗教
宗教上,“闪米特”指与闪米特语言有关的宗教:所以犹太教、基督教与伊斯兰教经常被引为“''闪米特宗教''”,虽然现时人们多用“''亚伯拉罕诸教''”来形容。一个真正全面的闪米特宗教会''包括在亚伯拉罕诸教兴起前在西亚流行的一些多神论的宗教(例如Adad、Hadad)'',因此准确地说,''亚伯拉罕诸教''为“''闪米特一神诸教''”,属闪米特诸教,因西亚的多神论宗教大多已经消失,故常常直接称为“闪米特宗教”。
迈锡尼国王(a king of Mycenae)
阿伽门农从特洛伊回来后,被他的妻子克吕泰涅斯特拉的情人[[伊吉斯图斯|埃吉索斯 Aegisthus]]杀死(根据现存最古老的记载,《奥德赛》11.409-11)。
<<<
美冠的库忒瑞娅生下埃涅阿斯,
她得到英雄安喀塞斯的温存爱抚,
在林木繁茂而崎岖的伊达山顶。
<<<神谱
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Apep_%28Deity%29.png/440px-Apep_%28Deity%29.png"
caption:"根据拉美西斯一世坟墓中的图像描绘的阿佩普"
width:""
align:"right"
>>
阿波菲斯(Apophis),或译阿佩普(Apep),为古埃及神话中的神,被认为是''破坏、混沌、黑暗的化身'',因此是[[拉|拉 Ra 太阳神]](太阳神)和[[玛亚特|玛亚特 Ma'at]](真理和正义女神)的死对头,祂常以巨蛇的形象出现在艺术作品中。阿佩普于埃及第八王朝中首次提及,祂以埃及第十四王朝的国王Apepi和西克索国王阿波庇一世的名义而受到尊敬。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Apep_1.jpg/440px-Apep_1.jpg"
caption:"[[亚图姆|阿图姆 Atum]]和阿佩普"
width:"300px"
align:"left"
>>
由于阿波菲斯是''拉''最强大的对手,因此被封为“''拉之劲敌''”和“''混沌之王''”,其蛇的形象也获得了许多称号,如“''来自尼罗河的巨蛇''”、“''邪龙''”,传说祂身长约48英尺,头部由燧石组成,蛇及其他沙漠、水生等被视为太阳神敌对的动物图像,已经发现绘制于阿姆拉特时期(西元前4000年)的C-ware碗(现存于开罗)缘上,此画可能在描述拉乘坐一艘隐形船在打猎的场景。
虽然在大多数文本中阿佩普被形塑为一条巨蛇,但他有时也被描绘成''鳄鱼''。
神话里,少数对阿佩普起源的叙述为诞生于拉之后,并由祂的脐带变化而成,除此之外,阿佩普并无出现在埃及的创世神学中,这隐约被解释为祂非埃及神学的原始力量,而是拉诞生的连带产出。''以上表明了所谓“恶”在埃及神学(英语:)中是个人与虚无斗争的结果。''
阿佩普与拉的战争详述于新王国时期,据说阿佩普每日必须躺在地平线之下,此举止恰使祂成为冥界的一部份。某些故事里祂在太阳西落之处的巴库(Bakhu)山区等待著拉,也会于黎明之前潜伏在夜晚的第十区,由于阿佩普出没的范围十分广泛,因此获得“''世界围困者''”的称号,传说祂的凶残咆啸会使整座冥界震荡。有时神话讲述其实曾经担任主神的阿佩普被拉所推翻,而受困冥府,或者是因为祂的恶行被监禁。
棺木文本记录了阿佩普用充斥魔力的凝视压制了拉和其随从,之后与拉同行的守护者们、[[赛特|赛特 Set]]以及[[拉之眼|拉之眼 Eye Of Ra]]前来协助 ,由于阿佩普的行动会产生地震,因此他与赛特的对决可能是为了解释雷暴的自然现象,在一项记载中拉最后化身成猫击败了阿佩普。
阿巴斯Abas的双胞胎儿子之一/阿尔戈斯国王
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
! 治愈过程和治愈疾病的女神 Goddess of the healing process and curing of sickness
与她的姐姐Panacea (Cure-All)不同,她''代表的是治愈的过程''而不是治愈本身。她的男性对手是 Acesis (Akesis)。 在希腊雕塑浮雕中,Aceso 与她的父亲 Asclepius 以及姐妹 Hygeia、Panacea 和 Iaso 一起出现。
在希腊神话中,阿卡斯 (/ˈɑːrkəs/; Ἀρκάς) 是一位猎人,后来成为阿卡迪亚的国王。他因教人们编织和烘焙面包的艺术而被人们铭记。
阿哥斯特人(希腊人一个分支)族谱 Argive genealogy chart
<$tiddlymap view="阿哥斯特人族谱 Argive genealogy chart"></$tiddlymap>
又译''阿基里斯''。
他是色萨利国王佩琉斯与海洋女神[[特提斯|忒提斯 Thetis]]的儿子,荷马在《伊里亞德》中花了很大的篇幅对之进行描写。他历来以其勇气,俊美和体力著称。他对雅典娜和赫拉非常尊敬。
据埃斯库罗斯的悲剧《被缚的普罗米修斯》以及其他神话记载,''泰坦之子普罗米修斯被宙斯绑缚在高加索岩壁上的原因之一,是因为普罗米修斯掌握了一个足以危及宙斯统治的秘密''。直到普罗米修斯被赫拉克勒斯所拯救,并与宙斯达成和解后,这个秘密才大白于天下:海中女神忒提斯的儿子必将远远胜过其父。其时宙斯正巧在追求忒提斯,得知预言后便作主将忒提斯许配给人间的英雄佩琉斯。结果生出的子嗣阿基里斯,其实力果然远胜乃父。
!! 阿喀琉斯之踵
''在一出生之時其女神母親便將其捉住腳踝放入__冥河__[[斯堤克斯|斯堤克斯 Styx]]裡浸泡,但由於抓住的腳踝没有沾水而使其成為日後的弱點'',除去此处之外阿基里斯全身近乎刀槍不入,更是有著超越凡人的戰爭智慧與強大力量,只要他出戰希臘聯軍在他的領導下就戰無不勝。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/1/1b/Atum.svg/440px-Atum.svg.png"
caption:"Atum"
width:"300px"
align:"right"
tooltip:"Atum">>
埃及神话中的创世神,[[九柱神 Ennead]]之首。
传说亚图姆自原始之丘中诞生后,据说阿图姆__自慰或与自己交媾时__就开始了创造过程, 生出了大气神[[舒|舒 Shu]]和湿气女神[[泰芙努特|泰芙努特 Tefnut]];舒和泰芙努特结合后生了大地神盖布及天空女神努特,创造了天地。
他原先为[[赫利奥波利斯 Heliopolis]]的地方神,之后与太阳神[[拉|拉 Ra 太阳神]]合并而称为拉·亚图姆,被认为是黄昏时的太阳,之后又与[[荷鲁斯 Horus]]融合。但有时候他被认为是由[[卜塔 Ptah]]所创造出的神祇,为亥克神的父亲。
!! 形象
常表现为''公牛''莫努尔的形象,此外具有蛇、蜥蜴、甲虫、狮子、公牛和姬蜂的外形。
波欧提斯(Boeotian)国王/伊奥利斯 Aeolus的儿子
Phrixus和Helle被他们的继母Ino所憎恨。伊诺策划了一个邪恶的阴谋来摆脱这对双胞胎,把镇上所有的农作物种子都烤焦了,使它们无法生长。当地的农民害怕发生饥荒,向附近的神谕寻求帮助。伊诺贿赂了被派往神谕处的人,让他们撒谎并告诉其他人,神谕处要求献祭菲克斯。阿塔玛斯很不情愿地同意了。
但是,在Phrixus被杀之前,他和Helle被他们的生母Nephele派来的一只会飞的金公羊带走了。Helle从公羊身上掉进了Hellespont(以她的名字命名)而死,但Phrixus却一路活到了科尔奇斯,国王Aeëtes收留了他并善待他,将女儿Chalciope嫁给了Phrixus。为了表示感谢,Phrixus把公羊的金羊毛送给了国王,Aeëtes把它挂在他王国的一棵树上。
后来,伊诺抚养了她的侄子狄奥尼索斯,也就是她姐姐塞梅勒的儿子,引起了赫拉的强烈嫉妒。为了报复,赫拉用精神错乱来打击阿塔玛斯。阿塔玛斯疯了,杀死了他的一个儿子利阿克斯(Learchus);伊诺为了逃避她狂热的丈夫的追捕,和她的儿子梅里克特斯( Melicertes)一起投进了大海。此后,''两人都被当作海洋神灵来崇拜,伊诺被称为Leucothea,Melicertes被称为Palaemon''。
阿塔玛斯带着谋杀儿子的罪责,不得不逃离波欧提亚。神谕命令他在一个可以得到野兽款待的地方定居。他在塞萨利的Phthiotis找到了这个地方,在那里他惊讶地发现一些狼在吃羊;当他走近时,它们逃走了,留下了骨头给他。阿塔玛斯认为这是神谕的实现,于是在那里定居,并娶了第三个妻子忒弥斯托(Themisto)(儿子:Schoeneus、Leucon、Ptous和/或其他)。这个地方后来被称为Athamanian平原。
当阿塔玛斯回到他的第二任妻子伊诺身边时,忒弥斯托为了报复,给她的孩子们穿上了白衣服,给伊诺的孩子们穿上了黑衣服。''伊诺在泰米斯托不知情的情况下调换了他们的衣服,她杀死了自己的孩子。''
根据一些说法,阿塔玛斯的王位由普雷斯邦继承。阿塔玛斯王国的一部分人,以及他本人,向西向北迁移,在伊庇鲁斯的平都斯山脉的一部分扎根,称为阿塔玛尼安山脉。因此,这部分人今天被称为阿塔玛尼人。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
! [[阿佛洛狄忒|💗爱情女神阿佛洛狄忒 Aphrodite]]的凡人情人
|标志 |海葵,以及生菜、茴香和其他快速生长的植物 |
|对应美索不达米亚神 | Dumuzid, Tammuz |
|对应黎凡特/迦南神 |Tammuz, Adonis |
|父母 |[[Cinyras|Cinyras]]和Myrrha(由Ovid编写),[[Phoenix|Phoenix]]和Alphhesiboea(由Hesiod编写)|
|配偶 |[[💗爱情女神阿佛洛狄忒 Aphrodite]] and [[珀尔塞福涅 Persephone]] |
<a href="https://www.wikiwand.com/en/Adonis">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/7/77/Giuseppe-Mazzuoli-The-Death-of-Adonis-hermitag.jpg/1057px-Giuseppe-Mazzuoli-The-Death-of-Adonis-hermitag.jpg"
caption:"The Death of Adonis (Mazzuoli) (1709) by Giuseppe Mazzuoli"
width:"400px"
align:"right"
tooltip:"">>
</a>
阿多尼斯是希腊神话中掌管每年植物死而复生的一位非常俊美的神,他本来是''黎巴嫩地区''的一个神,后来被纳入了希腊神话,但始终保持了其中东闪族的来源。
他是欧洲古代时期最复杂的一个神。他有多重角色,在古代希腊宗教中始终有许多不同的学者讨论和研究他的意义和作用。他相当于巴比伦神话中的春神''塔木兹''。一些神话学者认为他后来被出口到日耳曼,在北欧神话中他相当于[[巴德尔|光明之神巴德尔 Baldr]]。他是一个每年死而复生,永远年轻的植物神,他与年历有深厚的联系。他是一个受妇女崇拜的神,从莱斯瓦斯的莎孚公元前600年左右的诗歌残片可以看出当时莎孚周围的女孩崇拜临死的阿多尼斯。
在很大范围上阿多尼斯是基于榙模斯发展过来的,阿多尼斯这个名字本身是从[[闪族|闪姆 Shem]]语的“主”发展过来的,在犹太教和旧约中耶和华也被称为阿多尼斯。
!! 传说
关于阿多尼斯的出生有许多不同的故事。非常父系制度的希腊人认为他的父亲是一个神,是比布鲁斯或者是塞浦路斯,这明显地显示出阿多尼斯的来源方向。瓦尔特·伯科特怀疑阿多尼斯是与阿佛洛狄忒一起传入希腊的。
被最广泛接受的阿多尼斯出生的传说是阿佛洛狄忒逼迫密耳拉(意为“没药”)与她的父亲士麦那或叙利亚的国王忒伊阿斯乱伦。密耳拉的保姆在这里也起了一个协助作用。密耳拉与她的父亲在黑暗中交合后,忒伊阿斯点亮了一盏油灯发现了这个大错。忒伊阿斯大怒,要用刀杀他的女儿。密耳拉逃跑,阿佛洛狄忒将她变成一株没药树。忒伊阿斯向这株树射了一箭(另一个传说方式是一头野猪将其獠牙插入了这株树)后,从树皮的裂缝里诞生了阿多尼斯。这个传说很好地显示了阿多尼斯是一个植物神,以及他来自于遥远的、热带的、没药生长的沙漠地区(希腊本土本来没有没药)。
此外还有其他一些关于阿多尼斯的父亲的传说。
阿多尼斯一出生就非常漂亮,因此阿佛洛狄忒将他放在一个箱子里让珀耳塞福涅来保管。珀耳塞福涅也被阿多尼斯的魅力深深打动,她拒绝将阿多尼斯还给阿佛洛狄忒。两位女神之间的争执不是由宙斯就是由卡利俄佩调停的。阿多尼斯每年四个月与阿佛洛狄忒待在一起(阿佛洛狄忒此时已经在海伦的帮助下将阿多尼斯截回),四个月与珀耳塞福涅待在一起,四个月独自生活。也有传说说阿佛洛狄忒劫持了阿多尼斯让他自己独居的四个月也与她一起度过。
阿多尼斯被一头野猪杀死。这头野猪要么是阿耳忒弥斯为了报复阿佛洛狄忒在她的情人希波吕托斯之死中的作用,要么是阿佛洛狄忒的情人阿雷斯遣送的。当阿佛洛狄忒在阿多尼斯的尸体上撒甘露时阿多尼斯流的每滴血都变成血红色的银莲花,从黎巴嫩山流出的阿多尼斯河变成了红色。因此珀耳塞福涅最后还是获得了阿多尼斯,他的阴影被永远转入冥界。卢西安认为阿多尼斯河的颜色是沉积造成的。他补充说:“不过许多白泊港的居民认为在这里死去的是埃及神欧西里斯,所有这些恸哭和仪式实际上是悼念欧西里斯的,而不是悼念阿多尼斯的。”
伯科特结论道:“在希腊崇拜阿多尼斯的特别作用在于给那些生活在严格的规范内的妇女一个表达其感情的机会。在这个场合下妇女不像城邦和家庭庆祝官方的得墨忒耳时那样古板。”
对阿多尼斯的传说描写得最生动和最详细的是奥维德的《变形记》。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b7/Neith_with_Red_Crown.svg/360px-Neith_with_Red_Crown.svg.png"
caption:"形象为一条蛇,或蛇首女身,头戴下埃及底比斯红色王冠"
width:"200px"
align:"right"
tooltip:"Amaunt">>
不是一位独立的神,总是和[[阿蒙 Amun]]作为一对被提及。
!! 形象
其形象为一条蛇,或蛇首女身,头戴下埃及底比斯红色王冠;在荷莫波里斯(Hermopolis)是蛙首女身模样。另外,还有母牛的形象。
daughter of [[Electryon]], mother of [[💪大力神赫拉克勒斯 Heracles]]
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
! 百眼巨人
''Argus Panoptes''(All-seeing;古希腊语:Ἄργος Πανόπτης)或''Argos''(古希腊语:Ἄργος)。
|父母 |Arestor and Mycene or Gaia |
Panoptes这个称谓反映了他在神话中的角色,''他被赫拉设定为[[Io|伊欧 Io]]的一个非常有效的监护者'',在一首失传的诗歌Aigimios的片段中被描述为赫西奥德Hesiod的作品:
<<<
And set a watcher upon her, great and strong ''Argus'', who with __four eyes__ looks every way. And the goddess stirred in him unwearying strength: sleep never fell upon his eyes; but he kept sure watch always.
<<<
在5世纪及以后,阿尔戈斯的警觉性被越来越多的文字文化解释为他有如此多的眼睛,以至于每次只有几只眼睛会睡觉:总有一些眼睛仍然是醒着的。公元2世纪,保萨尼亚斯(Pausanias)注意到在阿尔戈斯的拉里赛欧斯宙斯神庙中,有一个古老的宙斯形象,在他的额头中央有第三只眼睛,据说是普里阿姆(Priam)的宙斯赫基欧斯(Zeus Herkeios)从特洛伊(Troy)偷来的。
''阿尔戈斯是赫拉的仆人''。__他对奥林匹亚万神殿的伟大贡献是杀死了睡在洞穴里的蛇脚怪物[[艾奇德娜 Echidna|🐍厄客德娜 Echidna]]__。
__赫拉对阿尔戈斯的明确任务是保护白色小母牛伊奥Io不被宙斯吸引__,把她拴在阿尔盖斯的橄榄树上。 她需要一个至少有一百只眼睛的人,总是在各个方向上观察,一个尽管睡着了也能保持清醒的人。阿尔戈斯被认为是完美的监护人。 ''她要求他 "把这头牛安全地拴在尼米亚的一棵橄榄树上"。''赫拉知道,这头小母牛实际上是伊奥,是宙斯为建立新秩序而与之结合的众多仙女之一。''为了释放伊奥,宙斯让赫尔墨斯(Hermes)杀死了阿尔戈斯''。这位奥林匹斯众神的使者伪装成一个牧羊人,先是用__说话的魅力__让阿尔戈斯的眼睛都睡着了,然后用石头砸死了他,__这是新一代众神中第一个血腥的污点__。 在斩杀阿尔戈斯之后,赫尔墨斯获得了Argeiphontes或 "杀死阿尔戈斯的人 "的称号。
阿耳戈斯的牺牲解放了Io,并允许她在地球上游荡,尽管被赫拉派来的牛虻折磨着,她还是到达了以她名字命名的爱奥尼亚海(Ionian Sea),根据神话的一些版本,__她从那里游到埃及,生下了宙斯的爱子__。
根据奥维德(Ovid)的说法,''为了纪念她忠实的守望者,赫拉将阿尔戈斯的百眼永远保存在孔雀的尾巴上。''
神话里,''阿尔戈斯与公牛有最密切的联系''。在伪阿波罗多鲁斯的图书馆里,“阿尔戈斯杀死了蹂躏阿卡迪亚(Arcadia)的公牛,然后用它的皮给自己穿上衣服。”
<<<
金色阿佛洛狄特之女阿尔摩尼亚为卡德摩斯
生下伊诺、塞墨勒、美颜的阿高厄、
奥托诺厄——长髯的阿里斯泰俄斯娶她为妻,
还有波吕多洛斯,就在城垣坚固的忒拜。
<<<神谱
"All-powerful", a dwarf.
[[斯露德|⚒️雷神托尔 Thor]]的女儿[[斯露德 Thrud]]曾为侏儒阿尔维斯(Alvis,全智者)所爱,某夜,阿尔维斯去找托尔,要向他的女儿求婚。托尔说要考验侏儒的智慧,问以种种问题,直到夜尽天晓,第一线阳光射来,阿尔维斯来不及回到地底,在阳光下化作了石头。
阿尔戈斯(Argos)的第十二任国王/儿子
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
乌拉诺斯的生殖器从大地被扔到海里,漂流了很久,一簇白沫在这“不朽的肉体”周围漫开,诞生了[[💗爱情女神阿佛洛狄忒 Aphrodite]]
<<<
话说那生殖器由坚不可摧之刃割下,
从坚实大地扔到喧器不息的大海,随波漂流了很久。
一簇白色水沫<<fnote "“白色水沫”:这里的泡沫不是由海浪生成,而是源于天神的生殖器。性爱女神阿佛洛狄特从乌兰诺斯的生殖器而生,耐人寻味。很可能,后来的人为了避讳,才称阿佛洛狄特从浪花中出生。">>在这不朽的肉周围漫开。
有个少女诞生了,
她先是经过神圣的[[库忒拉|库忒拉 Kythira]]<<fnote "库忒拉位于斯巴达附近 , 是希腊最古老的阿佛洛狄特圣地之一 , 相传岛上有一尊木雕的女神像">>,尔后去到海水环绕的[[塞浦路斯|塞浦路斯 Cyprus]],
美丽端庄的女神在这儿上岸,茵草从她的纤足下冒出。
阿佛洛狄特,
[水沫所生的女神,发环华美的库忒瑞娅,]
神和人都这么唤她,因她在水沫中生成;
或库忒瑞娅,因她从库忒拉经过;
或塞浦若格尼娅,因她生于海浪环护的塞浦路斯;
或爱阴茎的,因她从天神的生殖器生成。
[[爱若斯|👼爱神厄洛斯 Eros]]和美丽的[[伊墨若斯|性欲之神伊墨若斯 Himeros]]与她做伴,
自从她降生,随即走向神们的行列。
她从一开始就享有属于自己的荣誉,
从人类和永生神们那里得到的份额:
''少女的絮语''<<fnote "在《伊利亚特》中,这个词用来指''夫妻的对话''(卷六,516),或''情人的喃喃情话''(卷二十二,128)。阿佛洛狄特主司婚姻和爱情,她的“荣誉”也必然与日常生活中的婚姻和爱情息息相关。">>、微笑和欺瞒<<fnote "夜神[[🌌黑夜女神尼克斯 Nyx]]的子女中也有“欺瞒”和“承欢”二神(224)。不过,这里应该还是指夫''妻之间的小诡计、小手段''。这样的说法让人想到《劳作与时日》中的叙述,[[潘多拉|潘多拉 Pandora]]诞生以后,阿佛洛狄特“往她头上倾注魅力、让人苦痛的欲望和折磨四肢的烦恼”">>,
享乐、甜蜜的承欢和温情。
<<<神谱
---
<<showfnotes>>
! a king of [[Pherae|Pherae]] in Thessaly
!! 和阿波罗
阿德米特斯以其好客和公正而闻名。当阿波罗因为''杀死德尔菲尼Delpyne(or Pyphon)'',或者根据另一个版本,若干年后,当宙斯用闪电击倒阿波罗的儿子阿斯克勒庇俄斯时,阿波罗为了报复,''杀死了为宙斯制造闪电的独眼巨人''。阿波罗本来会因此被放逐到塔尔塔罗斯,但他的母亲莱托出面,提醒宙斯他们的旧爱,恳求他不要杀死他们的儿子。宙斯答应了,并判处阿波罗在阿德米特斯手下再次做一年苦工。
阿波罗为了补偿阿德米特斯的待遇,__在他担任牧人时让所有的牛都生了双胞胎__。
他们关系的浪漫性质首先由亚历山大的卡里马科斯描述,他写道,''阿波罗对阿德米特斯 "爱得发狂"''。普鲁塔克将阿德米特斯列为阿波罗的情人之一,并说阿波罗为阿德米特斯服务是因为他宠爱他。
拉丁诗人奥维德在他的Ars Amatoria中说,即使他是一个神,阿波罗也放弃了他的骄傲,为了阿德米图斯而留在这里当仆人。
提布勒斯把阿波罗对国王的爱描述为servitium amoris(爱的奴役),并断言阿波罗成为他的仆人不是因为强迫而是因为选择。
阿波罗后来帮助阿德米特斯赢得了伊尔库斯Iolcus国王佩利亚斯Pelias的女儿阿尔塞斯提斯Alcestis的青睐。
阿尔塞斯提斯有很多追求者,佩利亚斯向追求者们提出了一个明显不可能完成的任务--要娶Alcestis,他们必须把野猪和狮子拴在一辆战车上。阿波罗把动物套上了枷锁,阿德米特斯把战车开到了佩利亚斯面前,从而娶了阿尔塞斯提斯。
然而,阿德米特斯忽略了向阿波罗的妹妹阿尔忒弥斯献祭。被冒犯的女神在洞房里布满了蛇,阿波罗再次来到阿德米特斯的身边。阿波罗建议阿德米特斯向阿耳特弥斯献祭,而女神则将蛇移走。
!! 英雄主义
阿波罗给阿德米特斯最大的帮助是说服命运之神让阿德米特斯缓和他注定的死亡之日。根据埃斯库罗斯Aeschylus的说法,阿波罗把命运之神灌醉,如果阿德米特斯能找到一个人代替他去死,命运之神就同意让他缓刑。
''阿德米特斯最初认为,他年迈的父母之一会很乐意代替他们的儿子去死''。当他们不愿意的时候,阿尔塞斯提斯Alcestis(他妻子)反而为阿德米特斯而死。
[[赫拉克勒斯Heracles|💪大力神赫拉克勒斯 Heracles]]挽救了这一局面,他在前往迪奥梅德斯的食人马队(Mares of Diomedes)的途中在[[菲拉伊Pherae|Pherae]]休息。赫拉克勒斯对阿德米特斯善待他这个客人印象深刻,当得知阿德米特斯的情况后,他进入了Alcestis的墓穴。他为了报答Admetus对他的恩惠,与[[塔纳托斯Thanatos|☠️死神塔纳托斯 Thanatos]]搏斗,直到神明同意释放Alcestis,然后把她领回了凡间。根据其他说法,冥界女王[[珀尔塞福涅|珀尔塞福涅 Persephone]]反而把Alcestis带回了上层世界。
''控诉北以色列国以及预言上帝的审判''
阿摩司书是十二小先知书之一,在基督教《圣经》全书中是第30本。这本书的作者自称是一位牧人。
此“牧人”原文在圣经中一共出现两次,另一处是在列王纪下3:4 ,用以形容摩押王''米沙'' ,当时中东游牧民族牲口是重要资产,所以阿摩司极可能有一定社会地位、且经济富裕的商人。这本书先知预期耶和华将对以色列四周列国展开审判,里面有很多针对不同国家的预言,但其主要对象是当时的以色列国以及所产生的复兴。
!! 背景
[[🗣️阿摩司 Amos]]的预言的头一节说明那时正是犹大王[[👑乌西雅/亚撒利雅 Uzziah/Azariah]]和以色列王约阿施的儿子[[👑耶罗波安二世 Jeroboam II]]在位的时候;他在一场异乎寻常的大地震前两年开始担任预言者的工作。这些资料显示预言是在''公元前829年至大约公元前804年的26年间''写成的,当时上述两个王正在同一段时期分别施行统治。
先知''撒迦利亚''提及在犹大王乌西雅年间发生了一场灾难性的地震,居民都惊惶逃避。(撒迦利亚书14:5)犹太历史家约瑟夫斯声称曾有一场地震发生于乌西雅王妄自在圣殿里烧香之际。可是,阿摩司所提及的地震看来发生于乌西雅在位的早期。
''阿摩司''这个名字的意思是''“成为重担”或“负重”''。他虽然要向以色列和犹大(以及许多异教国家)宣布''灾祸将临''的沉重信息,但也同时发出一个关于耶和华的百姓''必得复兴''的安慰信息。
他有充分理由要在以色列中宣布灾祸将临的沉重信息。当时人民过惯了富裕、奢侈、淫逸的生活。百姓已经把耶和华的律法完全忘记。表面的繁荣弄瞎了他们的心眼,使他们看不见事实的真相;他们好像熟透了的果子一般,其实已接近腐烂败坏的边缘。阿摩司预言在数年之内,十支派王国便会被掳到大马士革以外的地方去。
!! 主要内容
论及耶和华神是公义审判的主,以色列全家,重点是北国及其邻国,恶贯满盈,不肯诚心悔改。在第一段(一到二章)中提出对他们最后的警告,并宣告严厉审判即将到来。接着第二段 (三到六章)宣告以民的罪行即神审判的原因。第三段(七到九章10节)先知将所见异象描述出来,借此来宣告真神怎样进行审判与刑罚。最后(九章11-15)预言义人的结果并论及以色列的复兴。
母亲是[[欧律比亚 Eurybia|欧律比亚 Eurybia]]
子女:
<div>
<<toc-selective-expandable "阿斯特赖俄斯 Astraeus">>
</div>
利比亚的儿子/希腊神话和历史中提尔(Tyre)的腓尼基国王
|父母 |[[Poseidon|🔱海神波塞冬 Poseidon]] and [[Libya|利比亚 Libya]] |
''Agenor'' ''/əˈdʒiːnɔːr/ ''(Ancient Greek: Ἀγήνωρ Agēnor; English translation: 'heroic, manly')
! 泰坦之战后注定要永远托起天体或天空的泰坦
''Atlas'' (''/ˈætləs/''; Greek: Ἄτλας, Átlas)
|对应罗马神 |Atlas |
|对应埃及神 |Shu |
|父母 |[[Iapetus|伊阿佩托斯 Iapetus]] (father) [[Asia|Asia]] or Clymene (mother) |
子女:
<div>
<<toc-selective-expandable "阿特拉斯 Atlas">>
</div>
[img[https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/MAN_Atlante_fronte_1040572.JPG/640px-MAN_Atlante_fronte_1040572.JPG?1625165202000]]
伯罗奔尼撒半岛迈锡尼国王(a king of Mycenae in the Peloponnese)
阿特柔斯和他的孪生兄弟泰厄斯忒斯被他们的父亲放逐,因为他们渴望获得奥林匹亚的王位,谋杀了他们同父异母的兄弟克里西普斯。他们在迈锡尼避难,在与赫拉克雷达科战斗的欧律斯透斯国王缺席的情况下登上王位。欧律斯透斯原本打算让他们的管理权是暂时的,但在他在战斗中阵亡后就成为了永久的管理权。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/6/60/Ammit.svg/440px-Ammit.svg.png"
caption:"Ammit,''鳄鱼(或狗)的头'',上身是''狮子(或豹)'',下身是''河马''"
width:""
align:"right"
>>
阿米特是埃及神话中一头拥有鳄鱼头,狮子上身及河马下身的生物。[[阿努比斯|𓃦 阿努比斯 Anubis]]会将死人的心脏与[[玛亚特(Ma'at)|玛亚特 Ma'at]]的羽毛放在天秤上。心脏若较重,代表该人曾作了坏事。阿努比斯会将他交给阿米特吞下,被吞下的人不能进入雅卢(Aaru),永远不得安息。
若心脏较轻,该人会由[[欧西里斯|欧西里斯 Osiris]]所审判。阿米特是天谴的一种拟人法表示,代表了真理、公平及秩序。
阿米特并非神祇,也不被膜拜。它拥有所有埃及人所惧怕的特质,威胁若不按照玛特的原则,就会被吞下不得安息。故此,阿米特有着''鳄鱼(或狗)的头'',上身是''狮子(或豹)'',下身是''河马'',统统都是古埃及人认为''最危险''的动物。虽然有指它是恶魔,但它却消灭邪恶。
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/5/57/Amun.svg/400px-Amun.svg.png"
caption:"阿蒙被描绘为人形,头戴一个头箍,由头箍上笔直伸出两根平行羽饰。这可能象征着鹰的尾羽。"
width:"200px"
align:"right"
tooltip:"Amun">>
意为''隐藏者''。
配偶:他的配偶有时被称作[[阿姆奈特 Amaunt]] <<fnote "Amun的阴性词">>,但通常称作姆特 ''mut''(Amaunt与mut并非同一神,Amaunt更多被认为是Amon的女性化,即日升为Amon,日落为Amaunt)
!! 形象
阿蒙有两种常见的形象:一种是坐在王座中,另一种是站着,手持一根鞭子,很像科普托斯和齐米斯的神祇敏。后者可能是他的原始形象:''生育之神''。国王在他面前隆重地耕耘将要播种的土地或收割成熟的谷物。
---
<<showfnotes>>
a Judge from [[士师记 Book of Judges c.1100 BC]], son of [[Puah]]
[[亚比米勒|亚比米勒 Abimelech]]死后,以萨迦部族[[杜多|Dodo]]的孙子,[[普瓦|Puah]]的儿子''陀拉''奉命拯救以色列。他住在''以法莲山区''的沙密。''陀拉''做了以色列的士师''23年'',死后葬在''沙密''。
<<list-links "[tag[陆地众神]]">>
! 海神
''Thaumas'' (''/ˈθɔːməs/''; Ancient Greek: Θαύμας; gen.: Θαύμαντος)
|!父母 |[[🌊海神蓬托斯 Pontus/Pontos]] and [[🌍大地女神盖亚 Gaea]] |
|!配偶 |[[厄勒克特拉 Electra (Oceanid)]] |
<div>
<<toc-selective-expandable "陶玛斯 Thaumas">>
</div>
!! 陶玛斯 Thaumas家族
<div>
<$macrocall $name=toc-selective-expandable tag="陶玛斯 Thaumas"
sort='sort[title]'/>
</div>
<<<
[[陶马斯|陶玛斯 Thaumas]]娶水流深远的大洋女儿
[[厄勒克特拉|厄勒克特拉 Electra (Oceanid)]],生下快速的伊里斯、
长发的哈耳皮厄姐妹:阿厄洛和俄库珀忒。
她们可比飞乌,更似驰风,
快速的翅膀,后来也居上。
<<<神谱
<<<
他独自从脑袋生出明眸的雅典娜,
可怕的女神,惊起战号又率领大军,
不倦的女王,渴望喧嚷和战争厮杀。
赫拉心里恼怒,生着自家夫君的气,
她未经相爱交合,生下显赫的赫淮斯托斯,
天神的所有后代里属他技艺最出众。
<<<神谱
[[马勒列 Mahalalel]]的儿子。
雅列活到一百六十二岁,生了[[以诺|以诺 Enoch]]。
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
the son of [[Isaac|以撒 Isaac]] and [[Rebecca|利百加 Rebecca]]
雅各(Jacob或Ya'akov),天主教翻译为''雅各伯'';后来改名为''以色列''(יִשְׂרָאֵל:“''与天使搏斗者''”;阿拉伯语:,Isrāʾīl),是《圣经》里的一名族长。他的故事可见于《创世记》。出生时抓住哥哥[[以扫 Esau]]的脚跟出来,名字意思为“''抓住''”。
他用“''一碗红豆汤''”买了哥哥[[以扫|以扫 Esau]]的长子名份,为舅舅拉班劳动超过二十年,以换取妻子拉结。在他与神摔跤后,被改名为''以色列''(《创世记》32:23-30),他是''以色列人''的祖先。
!! [[争夺继承权|以扫 Esau]]
!! 拉班和拉结
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/c/cb/Giacobbe_e_Rachele_-_Tanzio_da_Varallo_%28cropped%29.png/440px-Giacobbe_e_Rachele_-_Tanzio_da_Varallo_%28cropped%29.png"
caption:"Jacob and Rachel (1625) by Tanzio da Varallo"
width:"200px"
align:"right"
>>
[[利百加|利百加 Rebecca]]听到''以扫''准备杀雅各,让雅各逃到哈兰舅舅[[拉班|拉班 Laban]]那里,直等以扫的忿怒转消。在路上,雅各梦见''一个通天的梯子'',和耶和华的祝福。雅各向耶和华祈祷,“如果神若与我同在,在我所行的路上保佑我,又给我食物吃,衣服穿,使我平平安安地回到我父亲的家,我''就必以耶和华为我的神''。“
''拉班''有两个女儿,''利亚''的眼神柔和,''拉结''却生得''美貌俊秀''。
他在一口井旁遇见拉班的小女儿[[拉结|拉结 Rachel]]。雅各为娶拉结服侍了拉班七年;他因为深爱拉结,就看这七年如同几天。但日期已满的时候,拉班却用大女儿[[利亚|利亚 Leah]]代替,理由是大女儿未嫁。早晨起床后雅各发现受骗,拉班说那里没有小女儿先出嫁的规矩。要求雅各为拉结再服侍他七年。雅各就照办了。
雅各爱''拉结''胜过爱''利亚'',上帝却让利亚生了许多孩子:流便、西缅、利未和犹大。拉结见自己没有给雅各生孩子,就嫉妒她姐姐,把她的使女[[辟拉|辟拉 Bilhah]]给丈夫为妾,辟拉就怀孕,给雅各生了两个儿子:''但和拿弗他利''。利亚见自己停了生育,也把她的使女[[悉帕|悉帕 Zilpah]]给雅各为妾。悉帕给雅各生了''迦得和亚设''。
利亚的儿子[[流便 Reuben]]给自己的母亲摘了''曼德拉草mandrake'',''拉结''问利亚用曼德拉草换赫雅各的同床。之后利亚生[[以萨迦 Issachar]]。
''利亚''又怀孕,生了以''萨迦和西布伦''。后来又生了一个女儿,给她起名叫''底拿''。神记念''拉结'',垂听了她,使她能生育。拉结怀孕生子,起名叫''[[约瑟|约瑟 Joseph]]''。
这时,雅各要求回家,但是拉班发现因为雅各在那里带来了上帝的祝福,要求他留下,拉班答应给雅各工钱,雅各要求将来羊群中凡有点的、有斑的、黑色的,就算是他的工钱。拉班同意了,把这些羊都给了他的儿子们;又使自己和雅各相离三天的路程;雅各就牧养拉班其余的羊。雅各将树枝的皮剥成白纹,当羊群中肥壮的交配的时候,雅各就把枝子插在水槽里,正在羊群的眼前,使羊对着枝子交配。就生下有纹的、有点的、有斑的来。只是在羊群瘦弱的时候,就不插枝子。''这样,瘦弱的就归拉班,肥壮的就归雅各。''于是雅各极其发达,得了许多的羊群、仆人、婢女、骆驼和驴。
拉班的儿子们注意到雅各夺去了他们的财富;拉班也改变了对雅各的友善态度。神警告雅各必须离开,于是雅各带着妻儿和财宝逃跑。
拉班追赶雅各七天,就在他要赶上的前夜,神在梦中向他说话:“你要小心,不可与雅各说好说歹。”(《创世纪》31:24)
拉班在基列山追上了雅各,责备雅各不辞而别,拐走了女儿们;又偷了神像。最后二人立约,''拉班''回家''雅各''继续上路。
!! 回到神所应许之地
“雅各在路上遇见天使”,也许是因为神为了纪念他在20年坚定信仰神来远离邪恶的行为。他给那个地方起名叫做玛哈念,就是“二军兵”的意思。很可能这就是指他和天使。在这里他看见天使,之前他已经梦见过天使“在通天的梯子上下 ''Jacob's Ladder''”。
当他靠近应许之地,雅各打发报信的人先去见他哥哥[[以扫|以扫 Esau]]。以扫正带着四百人迎着雅各而来。雅各就甚惧怕愁烦。他觉得现在只有依靠神了,于是迫切的祷告,然后送了一份厚礼给以扫。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/7f/Rembrandt_-_Jacob_Wrestling_with_the_Angel_-_Google_Art_Project.jpg/440px-Rembrandt_-_Jacob_Wrestling_with_the_Angel_-_Google_Art_Project.jpg">
<div class="desc">Jacob Wrestling with the Angel, by ''[[Rembrandt|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E4%BC%A6%E5%8B%83%E6%9C%97%20Rembrandt%201606-1669:%5B%5B%E4%BC%A6%E5%8B%83%E6%9C%97%20Rembrandt%201606-1669%5D%5D]]''</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Lutte_de_Jacob_avec_l%27Ange.jpg/440px-Lutte_de_Jacob_avec_l%27Ange.jpg">
<div class="desc">Jacob Wrestling with the Angel by [[Eugène Delacroix|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%BE%B7%E6%8B%89%E5%85%8B%E7%BD%97%E7%93%A6%20Eug%C3%A8ne%20Delacroix%201798%E2%80%931863:%5B%5B%E5%BE%B7%E6%8B%89%E5%85%8B%E7%BD%97%E7%93%A6%20Eug%C3%A8ne%20Delacroix%201798%E2%80%931863%5D%5D]]</div>
</div>
</div>
雅各将他的全家送过了雅博渡口,只剩下他自己一人,有一个人竟然出现,并与雅各角力,直到黎明。那人见自己胜不过他,就摸了雅各的大腿一把;雅各的大腿就扭伤。那人要走,雅各说:“你若不给我祝福,我就不让你走。”''那人给他改名为以色列 Israel(“一个与神圣天使斗争的人”)''。雅各给那地方起名叫毗努伊勒,因为他面对面看见了神,性命仍得保全。
日出以后,雅各的大腿就瘸了。故此,''以色列人不吃大腿窝的筋'',直到今日,因为那人摸了雅各大腿窝的筋。
雅各与神摔角以后,以扫来了。他让他的妻子和儿子们在后面,他最爱的[[拉结|拉结 Rachel]]和[[约瑟|约瑟 Joseph]]在最后面。他自己在他们前头过去,''一连七次俯伏在地'',直到就近他哥哥。(《创世纪》33:3)以扫跑来迎接他,但雅各拒绝了以扫的邀请。不久,以扫将全家搬到应许之地南面很远的地方。雅各定居在疏割 Succoth(棚的意思)一段时间。
!! [[强奸底拿 rape of Dinah|底拿 Dinah]]
神指引雅各上''伯特利Bethel''去,在那里筑坛献祭给神(35:6,7),神就向他显现,''正式改名为以色列'',并重立亚当与夏娃, 挪亚和亚伯拉罕的约。
在去以法他(伯利恒的迦南名字)的路上,拉结因生小儿子[[便雅悯|便雅悯 Benjamin]]难产而死(35:16–20),''便雅悯''比约瑟小6岁。
<a href="https://biblegeography.holylight.org.tw/index/condensedbible_detail?id=209&top=0111">
<<image-basic "https://biblegeography.holylight.org.tw/images/index/condensedbible/map_thumbs/014.jpg"
width:"400px"
align:"right"
>>
</a>
!! Offspring
* 和[[利亚 Leah]] <<list-links "[tag[利亚 Leah]] +[sort[num]]">>
* 和[[拉结 Rachel]] <<list-links "[tag[拉结 Rachel]] +[sort[num]]">>
* 和[[悉帕 Zilpah]] ''利亚''的侍女 <<list-links "[tag[悉帕 Zilpah]] +[sort[num]]">>
* 和[[辟拉 Bilhah]] ''拉结''的侍女 <<list-links "[tag[辟拉 Bilhah]] +[sort[num]]">>
《雅各书》,天主教称《雅各伯书》,是《新约圣经》中的第20卷书,属于“大公书信”中最前写成的第一卷。这一书卷最为人所知的地方,是''说明了信心跟行为是同等重要'',因为“身体没有灵魂是死的,信心没有行为也是死的。”(雅2:26)
《雅各书》主题:''基督徒服侍邻舍,定要信行并重。''
''雅弗''/ˈdʒeɪfɛθ/,是《创世纪》中诺亚的三个儿子之一:在《创世记》中,他是诺亚的三个儿子之一,在诺亚醉酒和[[含姆的诅咒|含姆 Ham]]的故事中扮演了一个角色,
后来在《万国表》中,他是''爱琴海、安纳托利亚和其他地方民族''的祖先。在中世纪和近代早期的欧洲传统中,他被认为是''欧洲民族的祖先'',而''伊斯兰传统也将中国人列入其后裔之列''。
!! Offspring
<<list-links "[tag<currentTiddler>] +[nsort[num]]">>
女巨人,名字意为铁石(Iron-cutlass),[[⚒️雷神托尔 Thor]]的妻子,生儿子玛格尼(Magni,力)
雅歌是旧约圣经诗歌智慧书的第五卷。
雅歌这个名字取自书中的首句:“所罗门的歌,是歌中的雅歌。”根据希伯来文的逐字译法,这个名字是“''歌中之歌''”,意即卓越绝伦的歌。这样的说法跟“天上的天”——意即天的最高处——有异曲同工之妙。
雅歌与希伯来圣经不同之处,它并没有著墨于以色列的神耶和华和其与子民所订的约;或是如传道书或箴言般教导智慧。相比之下,它以''歌颂两性的爱为主'':“两人互道称赞,与对对方的渴求,并奉献自身的欣赏。”两人和谐,互相渴慕对方,和亲近的喜悦;耶路撒冷众女子为爱侣组成了合唱团,作为在爱侣爱欲中的观众。
在现代犹太教中,雅歌会在[[逾越节|Passover 逾越节]]期间在''安息日''读出,标志著丰收之始和作为离开埃及的记念。 犹太传统认为它把二人爱侣的关系寓意著神和以色列的关系。
在寒冷的北欧,雷是农民的恩人;雷来了,冻冰消迹了,冻地也怀春了,农事始有希望。所以,雷神是北欧的农民和䋿民的恩神。
[[雷神托尔(Thor)|⚒️雷神托尔 Thor]],亦称多纳尔(Donar,在日耳曼这么称呼他),是奥丁与[[乔迪(Jord,地)|🌎大地女神乔迪 Jord]]所生之子,但据另说,则谓他的母亲是[[芙莉嘉|众神之母弗丽嘉 Frigga]]。
托尔从一出生就是魁梧有力的,能抛举十大包的熊皮。他虽然天生是好性格,但有时发起脾气来,却如烈火一般可怕。因此他的母亲自量不能教养这孩子,乃将他托付给''维格尼尔(Vingnir,有翼者)''和''赫萝拉(Hlora,热)'',——电光的人格化。
在养父母那里长大之后,托尔方被迎入[[阿瑟加德|亚萨神国阿斯加特 Asgard]],为[[十二位大神|Nordic Twelve Gods]]之一。他有他自己的宫殿,名为''毕尔斯基尔尼尔(Bilskirnir,闪电)'',是阿瑟加德''最大的宫殿'',有五百四十个大厅,专门接纳那些䋿困一生而死的人的灵魂到此享福。奴隶的灵魂也得入此宫,和他们的主人(被瓦尔哈拉接待的恩赫里亚们)平等地被欢迎,所以托尔还是''奴隶们的恩神''。
托尔是唯一不走[[🌈彩虹桥 Bifrost]]的神,因为恐怕他沉重的脚步(那是带着火星的)会烧毁了这美丽轻巧的桥。他要去参加诸神在[[⛲乌尔达泉(命运之泉) Urdarbrunnr]]旁的会议时,则涉过河去。他是身材高大硕壮的伟丈夫,有''猬毛似的红头发和红胡子'',当他发怒的时候,头发和须髯间便爆出一大群一大群的火花。他常戴一个多角的头盔,每个角的顶端有一颗闪光的星,因此他的头就常像一团火焰似的;火是属于他自己的元素。
托尔的武器是一把神奇的锤。他对他的仇敌和霜巨人掷出这锤的时候,无论有多远,又无论是怎样厉害的敌人,一定会命中并且击死。而且无论掷出多远,锤总会自己回到托尔手里。这锤就是雷霆的象征,名为[[米约尔尼尔(Mjollnir,粉碎者)|🔨妙尔尼尔(雷神之锤) Mjölnir]],此锤永远炽热,不便把握,所以托尔得戴上一双铁的长手套,[[雅恩格利佩尔(Iarngreiper)|铁手套雅恩格利佩尔 Iarngreiper]]。他又有一条神奇的腰带[[梅金吉奥德(Megingiord)|梅金吉奥德(力量腰带) Megingjord]],当束紧这带的时候,能使力量倍增。
北欧人将托尔的雷锤看得极神圣,''以手作锤形,谓可袚除不祥,邀引福佑,等于基督徒之划十字''。__婴儿初生时,大人亦在他身上作锤形;造宅、嫁娶、战死者的葬礼,都以作锤形为必要的仪节__。
在瑞典的民间故事中,说托尔也像奥丁一样,喜欢戴阔边的帽子,因而称''大雷雨前的黑云为“托尔的帽子”'',雷声则视为托尔战车的轮声。因为在北欧的神中,只有托尔是不骑马的,他''总是徒步,或是驾车'';他的车是黄铜制的,由''两只山羊'',''坦格乔斯特(Tanngnjostr,咬齿者)''和''坦格里斯尼尔(Tanngrisnir,磨齿者)''驾之,这羊的齿与蹄也常发火星。驾了这黄铜战车奔驰于天空的托尔,又被称为''Aku-Thor(驱车者托尔)''。
!! Thor的婚姻
托尔曾两次结婚。他第一次是娶了女巨人[[雅恩莎撒(Jarnsaxa,铁石)|雅恩莎撒 Jarnsaxa]],生一子,名[[玛格尼(Magni,力)|玛格尼 Magni]];托尔的第二个妻子是美丽的女神[[希芙(Sif)|希芙 Sif]],他们生下一子一女,男的名为[[摩迪(Modi,勇)|摩迪 Modi]],女的名为[[斯露德(Thrud,力量)|斯露德 Thrud]],以大力闻名。
后来在“诸神之黄昏”到来时,托尔战死,但其二子都幸免于难,后来在新生的宇宙中继承了父亲的职务。
!! 相关故事
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
托尔是北欧最古老且最受敬爱的神,他的庙祀遍于各地。每年他的大祭,都要焚烧一大段橡树——夏的温暖和光明的象征,且以驱逐冬的寒冷和阴暗。红色是托尔赏爱的颜色,也被视为爱情的象征,所以北欧古代的新娘必穿红衣,而结婚戒指上亦必镶以红宝石。
和奥丁的神像一样,托尔的神像也以木制;传说当奥拉夫(OlafIIHaraldsson,995-1030)在斯堪的纳维亚推行[[基督教|基督教 Christianity]]的时候,大批的托尔神像都被他强迫烧了。但在某处有一座以金装饰并且古老的''托尔''神像,''该处民众无论如何不肯毁掉,谓此像有灵,因为每夜供食物于像前,翌晨便消失不见,一定是被神吃了。''
当1030年,奥拉夫命令该地民众改奉基督教而必须毁掉那托尔神殿及神像的时候,民众就要求奥拉夫在第二天给他们一个有云的天,以证明基督教之能力。奥拉夫虔诚地祷告了一夜,第二天果然阴云。
但民众又要求在次日再给他们一个晴天。奥拉夫又祷告了一夜,可是第二天早晨却还是阴云满天。于是奥拉夫召集民众在神殿前听他训话,一面却又嘱咐他的侍从当看见民众的注意力离开神像时,就用斧头将像劈碎。他望见天空微露阳光,就举手大喊道:“看我们的上帝呀!”——民众都向空中看了,奥拉夫的侍从乘这机会,就用奥拉夫的战斧把托尔的神像劈倒。那像早已朽腐,应手而碎,一大群老鼠从像里逃了出来。于是神像会吃东西的原因就明白了。
[[⚒️雷神托尔 Thor]]丢失了他宝贝的雷锤。这是一件非常重大的事情,如果没有雷锤保护,霜巨人一旦进攻,阿瑟加德就有危险。找回雷锤的任务,交给了[[🦹邪神洛基 Loki]];他向[[女战神弗蕾亚 Freyja]]借来鹰之羽衣,变化成鹰,果然在伊文河畔找到了偷锤的人:原来是嗜好破坏的暴风之化身,霜巨人中著名的首领[[索列姆 Thrym]]。洛基用许多花言巧语,想探听出这位巨人的藏锤之处,可是没有效果。''索列姆''只在一个条件下才肯交还雷锤,那就是要得''美神芙蕾雅为妻''。他曾见过芙蕾雅一面,对她向往已久了。
洛基回去和托尔商量,两个都觉得索列姆的条件太让人为难。但锤非拿回来不可,于是他们姑且去游说芙蕾雅,请她为了诸神全体的利益而牺牲一下罢。芙蕾雅是坚决不肯,洛基和托尔也没有办法。可海姆达尔想了一个计策,——那也是不得已之计,请''芙蕾雅''将衣服和项链借给托尔,让托尔假扮成芙蕾雅去哄骗索列姆。虽然这位雷神和美神的相貌差得很远,但如果托尔稍微变形一下,再罩上很厚的面纱,大概是可以瞒过一时的。洛基也换了女装,算是假芙蕾雅的侍女。
索列姆准备了许多酒食,邀请了大批宾客,来欢迎他的新娘。在宴席上,假新娘托尔吃了一头牛、八条大鲑鱼、还喝掉了三大桶蜜酒。索列姆看得呆了;洛基低声解释给他听,说因为新娘急着要来,已经有八天不曾吃饭了。索列姆想和假新娘亲嘴,可是假新娘眼里冒火,是他不敢上前。洛基又解释说,这是新娘的恋爱狂热。索列姆的姐姐向假新娘索取照例的礼物,假新娘根本不理睬。洛基又轻声对诧异的索列姆说,新娘是恋爱得昏头昏脑了。
这样,被洛基甜蜜的话灌醉,索列姆便吩咐拿出那把雷锤来,放在假新娘手里,算是“定情”的信物。假新娘托尔立刻抓着,只几下,就把索列姆、他的家宅、他的客人,全部轰成灰烬;两位神胜利地回去了。
''雾之国''
是个终年充满浓雾,寒冷的地区。当世界出现之初,位在金伦加鸿沟的北边末端。和尼福尔海姆隔鸿沟相对的是“火之国”[[穆斯贝尔海姆|火之国穆斯帕尔海姆 Muspelheim]]。
有时候,尼福尔海姆又被称为海姆冥界,意思就是“海拉的家”,也就是“地狱”。由洛基的女儿海拉所统治的死亡之国,只有亡者的灵魂会来到这里。至于尼福尔海姆与海姆冥界的分别则是模糊不清的。
<a href="https://www.wikiwand.com/en/Ymir#Media/File:Audhumla_by_Abildgaard.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Audhumla_by_Abildgaard.jpg/1723px-Audhumla_by_Abildgaard.jpg"
caption:"Ymir sucks at the udder of Auðumbla as she licks Búri out of the ice in a painting by ''Nicolai Abildgaard'', 1790."
width:"400px"
align:"right"
tooltip:"">>
</a>
伊密尔(Ymir),又名''奥尔盖尔米尔''(Aurgelmir)是北欧神话中''所有巨人的始祖'',从无底鸿沟周围的''冰山''中生出来。伊密尔和[[母牛欧德姆布拉|🐮母牛奥德姆拉 Audhumla]]是世界上最早出现的生物。
伊密尔从腋下的''汗水''中生出了一子一女,从他的脚上生出了六个头的巨人[[瑟洛特格尔密尔(Thrudgelmir)|瑟洛特格尔密尔 Thrudgelmir]]。
被[[⚡众神之父奥丁(神圣) Odin]]、[[维利(Vili)|维利(精神) Vili]]、[[伟(Ve)|伟(意志) Ve]]杀死,身体被做成天地。
!! 相关
[[创造天地]]
!! Offspring
<div>
<$macrocall $name=toc-selective-expandable tag={{!!title}}
sort='sort[title]'/>
</div>
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/Kingdoms_around_Israel_830_map.svg/500px-Kingdoms_around_Israel_830_map.svg.png">
<div class="desc">Philistia in ''red'', and neighbouring polities, circa 830 BC, after the Hebrew conquest of Jaffa, and before its recapture by the Philistines circa 730 BC.</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c2/12_Tribes_of_Israel_Map.svg/440px-12_Tribes_of_Israel_Map.svg.png">
<div class="desc">Land of the Philistines, Philistia (lower left), and the [[twelve tribes of Israel|以色列十二支派 Twelve Tribes of Israel]], based on the ''[[Book of Joshua|约书亚记 Book of Joshua c.1450 BC]]'', around 1200–1050 BC</div>
</div>
</div>
!! 革律俄涅神话
<<<
[[克律萨俄耳|🧌克律萨俄耳 Chrysaor]]和显赫的大洋神之女
[[卡利若厄|卡利若厄 Callirhoe]]生下三个脑袋的[[革律俄涅|革律翁 Geryon]]。
大力士[[赫拉克勒斯|💪大力神赫拉克勒斯 Heracles]]杀了他,
就在海水环绕的厄律提厄,蹒跚的牛群<<fnote "“蹒跚的牛群”:暗示赫拉克勒斯杀了[[革律翁|革律翁 Geryon]],盗走他的羊群。在神话传统里,这是赫拉克勒斯的''第十项任务''。盗羊群是希腊古风时代的普遍现象,并不说明英雄不讲信义,反而突出他的能力。">>边。
当时,''赫拉克勒斯''赶着这群宽额的牛
去往神圣的[[梯林斯|梯林斯 Tiryns]],他刚刚穿过大洋,
刚刚杀了[[俄耳托斯|🐶双头犬 Orthrus]]和牧人[[欧律提翁|🐴半人马欧律提翁 Eurytion]],
在显赫大洋的彼岸,幽暗的牧场中。
<<<神谱
---
<<showfnotes>>
|父母 |[[🧌克律萨俄耳 Chrysaor]] and [[卡利若厄 Callirhoe]] |
<a href="">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/8/82/Heracles_Geryon_Louvre_F55.jpg"
caption:"赫拉克勒斯与革律翁的战斗,双耳瓶,约公元前540年,卢浮宫"
width:"400px"
align:"right"
tooltip:"">>
</a>
又译革律俄涅,革律翁经常被描述为''一个有三个身体和三个头的怪物'',或者''三个头和一个身体,或者三个身体和一个头''。人们普遍认为他大部分是人形,有一些明显的特征(如翅膀,或多个身体等),在神话中,他以养牛而闻名。
son of [[西坡拉 Zipporah]] and [[摩西 Moses]]
意思是“因我在外邦作了''寄居的''。”
the eldest of the sons of [[利未 Levi]]
(覆盖但以理书9:1-27)''大流士''被立为国王,管理迦勒底人的王国第一年,也就是他在位的元年,但以理读到[[🗣️耶利米 Jeremiah c.650-c.570 BC]]的预言。他获知预言论及''耶路撒冷荒凉70年''的期限行将届满,于是向耶和华祷告承认自己和以色列人的罪。
[[😇加百列 Gabriel(God is my strength)]]向他显现,说:“已经定了七十个七(''70个7年''),目的是要终止犯法,除去罪过,赎尽过错,带来永恒的正义,给异象和预言盖印,并且设立至圣所。你该知道,该明白,从颁布谕旨修复、重建耶路撒冷,直到称为‘[[🙏弥赛亚 Messiah]]’的领袖出现,将有7个7年,还有62个7年。“
“那62个7年过后,''弥赛亚''会被处死,一无所有。“
“一个领袖会率领人来''毁灭这座城和圣地''。终结会像洪水泛滥一样。将有战争直到终结,荒凉的事已经决定了。“
“弥赛亚会为许多人延续誓约的效力1个7年。这7年过了一半,他会废止献上祭牲和礼物的安排。”
“造成荒凉的人会驾着''可憎之物的翅膀而来''。已经决定的事会倾泻而下,临到那终必荒凉的,直到把它灭尽为止。””
要止住罪过,除净罪恶,赎尽罪孽。”弥赛亚君王将于69个七之后出现,然后他会被剪除。而在第70个七完结前,必有“一王的民”来毁灭这城和圣所;“他”必与许多人坚定一个七的盟约,到一七之半却使祭祀和供献止息,耶路撒冷遭毁灭,沦为荒凉之地。(但以理书9:24-27)
(覆盖但以理书1:1-21)公元前605年,[[🗣️但以理 Daniel(?-530 BC)]]与其他犹太人一起被掳往[[🤴尼布甲尼撒二世 Nebuchadnezzar II 642-562 BC]]去。此外,耶路撒冷圣殿的神圣器皿也一同被掠去而放进异教的府库中。
<<card
text:"
国王吩咐内臣长亚施比拿挑选一些以色列人,包括王族和贵族。''这些选出来的年轻人要毫无缺陷,模样俊美,具有智慧和知识,明辨事理,有能力在王宫里任职''。国王吩咐人教他们迦勒底人的文字和语言。国王还指定每天给他们御膳和御酒,培训他们三年,期满后他们就要为国王服务。
"
footer:"Daniel 1:3"
>>
''但以理''和他的三个希伯来同伴 ( 哈拿尼雅、米沙利和亚撒利亚 ) 与其他的犹大青年贵胄一起被拣选进入宫内接受为期三年的训练。
但以理决心不以国王的异教佳肴美酒玷污自己,遂建议作一个为期''十天的素食试验'',看看吃素和吃御膳谁更看起来健康。十天以后, 他们的样子比所有吃御膳的年轻人''更好看、更健康''。上帝同时赐给他们知识和智慧,''但以理''更得到悟性,能明白各种异象和梦境。
4人的智慧超过了其他所有祭司和法师,[[🤴尼布甲尼撒二世 Nebuchadnezzar II 642-562 BC]]只要遇到需要智慧和悟性才能解决的事,就会询问他们。
第一章的最后一节经文也许是在前文写了许久之后才加进去的,这节经文指出但以理在被掳80多年后,即相当于公元前538年,仍在朝中担任要职。
一位以鹰的姿态坐在天堂北端的巨人。当他展开翅膀时,风从他的翅膀下吹起。
<div>
<<toc-selective-expandable "风神 Anemoi">>
</div>
|!父母 |[[🤬不和女神厄里斯 Eris]]|
|!标志 ||
|!对应罗马神 |Fames |
!! Personification of starvation
Limos (/ˈliːˌmɒs/; Ancient Greek: Λιμός, romanized: Limos meaning '''starvation'''), Roman Fames /ˈfɑːˌmeɪz/, is the deity and ''personification of starvation'', hunger and famine in ancient Greek religion and mythology. Unlike the other gods of the pantheon, Limos is of indeterminate sex, and was portrayed as either male or female depending on region and cult. They were opposed by Demeter, goddess of grain and the harvest with whom Ovid wrote Limos could never meet, and Plutus, the god of wealth and the bounty of rich harvests.
!! 5个饼和2条鱼喂饱了5000个人
(Matthew 14:14)
[[✝️约翰 John the Apostle]]被杀害后,耶稣就坐船离开那里,到一个偏僻的地方去,不想让人打扰。民众听说了,就从各城出来,走路跟随他。
他上岸后看见一大群人,就怜悯他们,治好他们当中的病人。到了傍晚,门徒来对他说:“这个地方很偏僻,时候也不早了。请叫民众离开,让他们到村里自己买东西吃。”耶稣却对他们说:“他们不必离开,你们拿点东西给他们吃吧。”门徒回答说:“我们这里什么都没有,只有五个饼和两条鱼。”
他说:“你们拿来给我。”接着他吩咐民众坐在草地上,自己拿起五个饼、两条鱼,抬头望天,祷告了,就把饼掰开,交给门徒,门徒再给民众。所有人都吃,而且吃饱了。他们把剩下的碎块收拾起来,装满了12个篮子。吃的人数,男人大约有5000,另外还有妇女和小孩。
!! 7个饼和几条鱼喂饱了4000个人
(Matthew 15:34)
<a href="https://www.wikiwand.com/en/Feeding_the_multitude#Media/File:Feeding_the_multitude,_Daniel_of_Uranc,_1433.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/f/f8/Feeding_the_multitude%2C_Daniel_of_Uranc%2C_1433.jpg/1920px-Feeding_the_multitude%2C_Daniel_of_Uranc%2C_1433.jpg"
caption:"Feeding the multitude. Armenian manuscript. Daniel of Uranc gospel, 1433. "
width:"auto"
align:"center"
>>
</a>
son of [[以利亚撒 Eleazar,son of Eliud]]
When ''Mahalalel'' was 840, his 910-year-old father [[Kenan|该南 Kenan]] died (Genesis 5:14).
After Kenan's death, Mahalalel lived 55 more years and died at 895 (Genesis 5:17), placing him eighth in the records for the unusually long lifespans for the antediluvian patriarchs. At the time of Mahalalel's death, [[Noah|诺亚 Noah]] was 234 as per the Masoretic chronology.
!! Offspring
<<list-links "[tag<currentTiddler>] +[sort[title]]">>
马可,天主教汉译为''马尔谷'',唐朝景教汉译为摩矩辞法王,新约人物,一般相信他是《[[马可福音 Gospel of Mark c.61-65]]》的作者,为耶稣七十门徒之一。
圣马尔谷的瞻礼日在4月25日,他的象征是''狮鹫''。
|!象征 |旷野中的狮子;坐于纹狮御座的主教;救助威尼斯士兵的人;''手持写有"pax tibi Marce"之书的人'';''手持橄榄枝与书的人'';身旁跟著有翼狮子、手持书或卷轴的人;颈上被套羁绳的人;正持著或撰写著他的福音的人;从萨拉森人手中救出基督徒奴隶的人。 |
|!主保 |出庭律师、威尼斯、埃及等。 |
!! 生平
传统上相信,《新约》中的''约翰·马可'',就是指''圣马尔谷''。天主教视他是一位圣人,称为圣若望·马尔谷。但是这在古代教父中仍有争议,如罗马主教圣希玻里的著作中,认圣马尔谷,与若望·马尔谷、巴尔纳伯的亲戚马尔谷是三个不同人物。按照圣希玻里的意见,这三位马尔谷都属于耶稣派往犹太传教的七十门徒。由此推断,当耶稣解释他的圣体是「真正可吃的」,他的圣血是「真正可饮的」时,许多门徒离开了他,马尔谷大概也在其内。之后,他在宗徒[[✝️彼得 Saint Peter]]的引导下,重拾信心,成了彼得的帮手,并写下了[[马可福音|马可福音 Gospel of Mark c.61-65]]。
根据史学家游社博的记载(Eccl. Hist. 2.9.1–4),''黑落德·阿格黎帕一世''统治犹太全省的第一年(公元41年)里,杀害了载伯德的儿子[[✝️雅各 James, son of Alphaeus]]并抓捕了''彼得'',计划于[[逾越节|Passover 逾越节]]之后也将其杀害。之后彼得被天使所救,逃离了黑落德的势力范围。彼得随后去了''安条克'',再经过小亚细亚(到访了位于本都、加拉太、卡帕多细亚、亚细亚行省、比提尼亚的教会),于克劳狄一世在位第二年(公元42年)到达了''罗马''(Eccl, Hist. 2.14.6)。在此途中,''彼得''邀请了''马可''与他一起,做他的旅伴和翻译者。马可于是记录下了彼得的讲道词,因此马可写下福音(Eccl. Hist. 15–16),应是在他于公元43年离开罗马前往亚历山大港之前。
根据游社博所记(Eccl. Hist. 2.24.1),马马可的主教职位由''圣亚热诺''(St. Annianus)接任,时于''尼禄''在位第八年(62年或63年),这有可能是因为马尔谷的殉难。但是之后的科普特传统上认为马尔谷是在68年殉道的。
马可被确信是于耶稣在革责玛尼园被逮捕当晚,那个落下衣服、赤身逃走的少年。
科普特正教会确定圣马可与若望·马尔谷为同一人,并叙述了在耶稣受难后,众位门徒留在马可楼中,以及复活后的耶稣在马可家中显现,还有在五旬节时圣神降临于门徒也在马可家中。甚至,马可被认为是加纳婚宴上招待客人的侍者中的一人。
《马可福音》,天主教称《马尔谷福音》,是《新约圣经》中记录[[🧔🏻♀️耶稣 Jesus c.4 BC-33]]传道活动的四福音书之一。是一本''面向外邦人''的福音书。在新约全书中它是第2本书,为''对观福音书''之一。
《马可福音》主题:神的福音─证明耶稣基督是奴仆救主。它记录了''从受施洗者[[🗣️施洗约翰 John the Baptist]]的洗以来,耶稣的传道故事,一直到耶稣被处死以及耶稣空墓被人发现为结尾''。
''马可福音中,并没有耶稣的族谱纪载,也没有耶稣出生的场景纪载''。此外,在马可福音原始的断结尾中,也没有复活后耶稣显像的纪载。
马可福音将耶稣描绘成一个''行动派的英雄人物,一个驱魔者,医治者,以及一个神迹实行者''。根据马可福音,耶稣是神之子,但是他对这身分一直保密,这是学者对马可福音所谓的"弥赛亚的秘密",将神国讯息隐藏在寓言故事的教导内,故事中的门徒们不断的无法理解。
他也符合先知预言中弥赛亚是一个受磨难的仆人。在原始马可福音结尾,耶稣的坟墓被人发现是空的,耶稣请人捎讯息说他会在[[加利利 Galilee]]与门徒碰面,接著妇女因为惊吓而逃跑,甚么都不敢说,经文停止于第16章第8节。于广泛流传于现代圣经中的马可福音长结尾中,则''增加了向天下传福音的大使命'',经文停止于第16章第20节。
对观福音书中,《[[马太福音 Gospel of Matthew c.41]]》与《[[路加福音|路加福音 Gospel of Luke c.56-58]]》都将马可福音当成''写作资料来引用''。现代圣经学者许多赞同马可居先说与双源假说,认为马可福音是现存四福音书中历史最早的,它可能在西元70年,第一次犹太复国战争,罗马人攻陷耶路撒冷时就已经存在。
!! 概论
马可福音被写作的年代,约在''西元66至70年''左右。它出现在圣经的第二本福音书的位置,原因是因为根据宗教传统,马可福音被视为是''马太福音的简要归纳版'';然而,这种看法被现代的圣经研究学者否定,因为多数学者认为''马可福音是四福音书中,最早被写下的一本福音书''(马可居先说)。
此外,根据宗教传统,马可福音的作者是[[马可|马可 Mark the Evangelist c.12-c.68]],使徒彼得的同伴;这种看法同时被现代的圣经研究学者否定,因为多数学者认为我们无法得知马可福音的原作者是谁,马可福音是一本''匿名''作品,而作者采用了福音书成书前关于耶稣的流传故事,资讯,等等,作为写作的材料来源。
!! 关于作者
!!! 圣经史学学术界认定的作者
原始马可福音''并没有书名'',是后代基督徒所冠上。最早出现此福音是马可所写的看法的人,是一位西元1至2世纪的早期基督教领袖名叫''帕皮亚'',将此福音书归为''马可''所写,而从此开始便以马可为作者来称呼为马可福音。然而,现代学者多数认为,马可福音的作者并不是马可,而是''一位不知名人士的匿名写作''。它被写作的时间大约在罗马皇帝尼禄迫害罗马的基督徒时期,以及犹太人起义时期,时间约在西元66至70年左右。学者判断的根据,主要在马可福音书中,耶稣预言了耶路撒冷被罗马军队所攻打且占领(马可13:14 那行毁坏可憎的,站在不当站的地方),犹太人被迫害,也因此写作时间必然约略在此之时。
马可福音的原始语言是''希腊文'',是写给''外邦人''的福音书,因为作者在马可福音中需要解释犹太人习俗,以及翻译多数犹太人使用的亚兰语,所以听众目标应是说希腊文的基督徒:罗马,加利利,安提阿(罗马帝国第三大城市,位于叙利亚北方),以及南叙利亚,都包括在猜测作者所在位置的范围之中。
作者很可能受到希腊罗马传记风格以及文藻词学所影响,熟悉当时的小说故事,还有''荷马史诗'';然而,在马可福音中,他几乎没有提到任何当时公众人物,也不引用希腊以及罗马文学作品。马可作者所引用的犹太经文,几乎都是来自于希伯来圣经的希腊文译本。无论对于现代历史学,或者古典希腊罗马史学标准而言,''马可福音都不具有史书的水准'',但在宗教传统上人们以确实发生的历史作为看待。
!!! 宗教传统上认定的作者
耶稣在客西马尼园被捕,而使徒四散奔逃时,“ 有一个年轻人,身上只穿着一件上等细麻衣,跟着耶稣。那些人想抓住他,52 他就撇下细麻衣,光着身子跑了。(Mark 14:51)”一般人相信这个少年就是马可。使徒行传把他称为“约翰(别名马可)”(引文摘自《中文圣经新译本》)。他可能来自耶路撒冷一个富裕的家庭,因为他们拥有自己的房屋和仆婢。他的母亲马利亚也是个基督徒,早期会众曾以她的住宅作为聚会地方。彼得蒙天使拯救出监之后,迳自前往马可家里,他发觉弟兄们正在那里聚集。
来自塞浦路斯的利未人''巴拿巴''是个海外传道员,他是马可的表兄。巴拿巴与保罗把赈济饥荒的捐款送到耶路撒冷时,马可得以结识保罗。在会众中与其他基督徒的交往以及与外来热心服事者的接触无疑使马可渴望加入海外传道服务。因此,马可在保罗和巴拿巴作第一次海外传道旅行时与之偕行作他们的助手。不过,为了某些原因,马可在旁非利亚的别加离开他们,自行返回耶路撒冷)。是故,保罗在启程作第二次海外传道旅行时拒绝带马可同行,结果保罗与巴拿巴分道扬镳。保罗与西拉结伴同行,巴拿巴则带着表弟马可乘船往塞浦路斯去。
马可证明自己在服事职务方面胜任愉快,不但成为巴拿巴的良助,后来也是使徒[[✝️彼得 Saint Peter]]和[[保罗 Paul the Apostle c.3-c.67]]的得力助手。
''保罗''在罗马(约公元60-61年)第一次被囚时,马可与他在一起(《腓利门书》第1节至第24节参)。后来我们获知马可于公元62和64年之间在巴比伦与彼得一起(彼得前书5:13)。保罗很可能在公元65年再度在罗马被囚,他在写给提摩太的信中嘱咐后者把马可带来,说:“因为他在服事方面对我有帮助。”这是圣经记载最后一次提及马可的地方。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
《马太福音》,天主教称之为《玛窦福音》,而东正教则译为《圣福音依玛特泰所传者》,是《新约圣经》第一部份《四福音书》的第一卷书,全书共有28章,1168节。教会传统一般认为,马太福音的作者是耶稣十二使徒之一的''[[马太|✝️马太 Satint Matthew]]''。
《马太福音》主题''主要是证明耶稣基督是救主''。这卷福音书记载了耶稣的生平,其中包括耶稣的家谱、耶稣神奇的出生、童年、受浸与受试探、讲道、被钉十字架、复活以复活的耶稣最后向使徒颁布大使命。
因为《马太福音》与《马可福音》及《路加福音》''内容相近'',而与《约翰福音》有显著区别,所以这前三本福音书被归纳作“[[对观福音|https://www.wikiwand.com/zh-hans/對觀福音書]]”(可以互相对照阅读的福音书)。
在《四福音》中,《马太福音》是最接近犹太基督教传统的,作者显然是一位''犹太人''。根据思高圣经,《马太福音》是以亚兰文写成,但原文现已失传。多数学者认为这卷福音,如同《新约圣经》其他各卷一样,都是以''通用希腊语''写成,也有专家认为它最初是以''亚兰文''写成。
!! 背景
虽然这本以“马太”为名的福音书并没有说明,但早期的教会历史家却一致表示这部福音书的执笔者是十二使徒之一''马太''。他的名字很可能是希伯来文“马提蒂亚”(Mattithiah)的缩写,意思是“耶和华的恩赐”。马太是耶稣所拣选的12使徒之一。他成为耶稣的门徒之前,是深受犹太人所憎恶的罗马帝国税吏。耶稣呼召马太后,便立即跟从他。
马太福音完成的年代,在学者间还有所争议。若干抄本的书末题署(全在公元第十世纪之后写成)声称完成的时间是公元41年,一般学者认为是在公元50年至70年间。这本福音书可能源起于耶路撒冷教会,由教会中一些受过良好教育,能书写希腊语的犹太基督徒,以马可福音作为蓝本,加上使徒马太的口传资料,以及一些有关耶稣言论的文献(现被称为Q来源),进行编辑后所完成的。
从内容和文体推测,再加上原文是''希腊语''而不是犹太本土惯用的''亚兰语''来看,本书的对象应是当时的侨居各地的''犹太基督徒'',以此表明耶稣正是他们日夜期盼的那位弥赛亚,从而鼓励他们能接受耶稣基督带来的救恩。在书中,引用了旧约大约''七十处''的经文,一般人称之为“圣经证据”。
!! 内容
尽管四福音书均记载了耶稣在世的事迹,马太福音却用了一个以耶稣为旧约圣经中上帝所应许的[[🙏弥赛亚 Messiah]]的角度去看祂的生平与教导。为此缘故,''本书常将旧约预言与耶稣的生平连贯起来,从而扮演了旧约与新约之间的桥梁''。再者,因为耶稣是弥赛亚,本书十分强调祂有权柄去解释上帝的律法,及教导有关天国的真理。
<ol>
<$list filter="[all[tiddlers]tag<currentTiddler>sort[num]]">
<li><$link to=<<currentTiddler>>><$view field="title"/></$link></li>
</$list>
</ol>
佛尔卡斯(Furacas),为所罗门王72柱魔神中排第50位的魔神,位阶骑士,且是魔神里''唯一一位骑士'',统帅20个军团。
别名“富卡斯”(Furcas)。形象是骑白马的长须有角老者。教人哲学、占星、修辞、逻辑和艺术。
<div class="gallery">
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Ill_dict_infernal_p0296-280_forcas_demon.jpg/440px-Ill_dict_infernal_p0296-280_forcas_demon.jpg">
<div class="desc">Image</div>
</div>
<div class="img-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e4/50-Furcas_seal.png/440px-50-Furcas_seal.png">
<div class="desc">Seal of Furcas</div>
</div>
</div>
! 黎明的拟人化/黎明女神
|标志 |藏红花、斗篷、玫瑰、头饰、蝉、马 |
|对应罗马神 |Aurora |
|对应斯拉夫神 |Zorya |
|对应印度教神 |Ushas |
|对应日本神 |Ame-no-Uzume 天宇受売命, 天鈿女命 |
母亲是[[Theia|光明女神忒亚 Theia]]
<<<
何等奇观:
幽深的夜叫人害怕的家
裹着黑色的云雾隐隐臺立在那里。
在那前面,伊阿佩托斯的儿子支撑着天,
他站着,不倦的头颅和双臂[托着天],
巍然不动,黑夜和白天在此相会,
彼此问候,在青铜的门槛上交班:
一个降落进门,另一个正要出门。
她俩从不会一块儿待在家里,
总是轮番交替,一个走在宅外,
穿越大地,另一个守在家里,
等待轮到她出发的时候来临;
一个给大地上的生灵带来把万物尽收眼底的光,
另一个双手拥抱死亡的兄弟睡眠:
那就是裹在云雾中
的可怕的夜神。
<<<神谱
<a href="https://www.wikiwand.com/en/Heligoland">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Aerial_image_of_Heligoland.jpg/500px-Aerial_image_of_Heligoland.jpg"
caption:"Heligoland"
width:"400px"
align:"right"
tooltip:"">>
</a>
<$leafmap tile='positron'
places='{"point":"54.1825, 7.885278"}' zoom=5>
霍德尔(Höðr)是[[光明之神巴德尔 Baldr]]的孪生兄弟,也是北欧神话中的主神[[奥丁|⚡众神之父奥丁(神圣) Odin]]与神[[众神之母弗丽嘉 Frigga]]之子,掌管黑暗。据说邪神洛基将槲寄生树枝交给目盲的霍德尔,并让他攻击巴德尔,所以导致巴德尔的死亡。
巴德尔死后,奥丁和女巨人琳达的孩子瓦利用弓箭射杀了盲眼的黑暗之神霍德尔,为巴德尔报仇。
<a href="https://www.wikiwand.com/en/Delilah#Media/File:Peter_Paul_Rubens_-_Samson_and_Delilah_-_Google_Art_Project.jpg">
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a0/Peter_Paul_Rubens_-_Samson_and_Delilah_-_Google_Art_Project.jpg/400px-Peter_Paul_Rubens_-_Samson_and_Delilah_-_Google_Art_Project.jpg"
caption:"A sketch for [[Peter Paul Rubens|https://www.bakumatata.com/notes/Art_Painting/8kuNoteBook_Painting.html#%E5%BD%BC%E5%BE%97%C2%B7%E4%BF%9D%E7%BD%97%C2%B7%E9%B2%81%E6%9C%AC%E6%96%AF%20Peter%20Paul%20Rubens%201577-1640:%5B%5B%E5%BD%BC%E5%BE%97%C2%B7%E4%BF%9D%E7%BD%97%C2%B7%E9%B2%81%E6%9C%AC%E6%96%AF%20Peter%20Paul%20Rubens%201577-1640%5D%5D]]' Samson and Delilah (c. 1609)"
width:"400px"
align:"right"
>>
</a>
Delilah,是希伯来圣经《[[士师记|士师记 Book of Judges c.1100 BC]]》第十六章中提到的一位女性。她深受[[参孙|参孙 Samson]]的爱戴,参孙是一位拥有强大力量并担任以色列最终审判官的拿细耳人。
大利拉受到非利士人首领的贿赂,以发现他力量的来源。经过三次失败的尝试后,她终于怂恿参孙告诉她,他的活力来自于他的头发。当参孙熟睡时,大利拉命令仆人剪掉参孙的头发,从而将他交给非利士人。
[[参孙|参孙 Samson]]在梭烈谷爱上了一个叫[[黛利拉|黛利拉 Delilah]]的女子。非利士人的城主们去找她,说:“你去套参孙的话,看看他的力气为什么那么大,我们怎样才能打败他,把他绑起来,制伏他。''我们每人会给你1100块银子''。”
于是,黛利拉对参孙说:“为什么你的力气这么大,告诉我好吗?用什么方法才能把你绑起来,制伏你呢?” 参孙回答:“如果有人用''七条还没干的新弓弦(or 筋)''把我绑起来,我就会软弱无力,像普通人一样。”
非利士人的城主们拿七条还没干的新弓弦,交给黛利拉,她就用弓弦把参孙绑起来。他们在内室埋伏好,黛利拉就喊叫:“参孙,非利士人来抓你了!”参孙轻而易举地挣断弓弦,弓弦像麻线碰到火一样,一下子就断开了。他的力气为什么那么大,还是没有人知道。
黛利拉对参孙说:“你骗我,没跟我说实话。到底要用什么才能把你绑住,你就告诉我吧,好不好?” 参孙回答:“如果有人拿''没有用过的新绳子''把我绑起来,我就会软弱无力,像普通人一样。”黛利拉就拿新绳子把他绑起来,然后喊叫:“参孙,非利士人来抓你了!”(当时一直有人在内室埋伏。)参孙挣断臂膀上的绳子,就像挣断几根线一样。
黛利拉对参孙说:“你一直在骗我,没有一句真话。到底要用什么才能把你绑住,你就告诉我吧。”参孙说:“只要你把''我头上的七条辫子,跟织布机上的线编在一起就可以''了。” 黛利拉趁参孙睡着了,就用织布机上的钉子钉住他的辫子,然后喊叫:“参孙,非利士人来抓你了!”参孙醒过来,把钉子和线都扯了出来。
黛利拉对参孙说:“你还说‘我爱你’,你心里根本没有我!我问你的力气为什么这么大,你却骗了我三次!”黛利拉天天缠着他,逼问他,他就烦得要死。参孙最后还是把心里的秘密都告诉了她,说:“我从来没有剃过头,因为我一出生,就献给上帝做离俗人了。''要是我的头发被剃掉'',我身上的力气就会消失。我就会像其他人一样,没有那么大的力气了。”
黛利拉见参孙把秘密都告诉了她,就马上派人去对非利士人的城主们说:“你们上来吧,因为他这次把心里的秘密都告诉我了。”于是他们带着钱去见她。黛利拉让参孙睡在她的腿上,然后叫一个人来剃掉参孙头上的七条辫子。参孙的力气消失了,黛利拉就可以制伏他。黛利拉喊叫:“参孙,非利士人来抓你了!”参孙醒过来,说:我可以像前几次一样轻易脱身。”但他不知道耶和华已经离开了他。
非利士人抓住他,''挖去他的双眼'',把他带到加沙,用两个铜镣锁住他,让他在监牢里推磨。不过,他的头发被剃掉以后,又渐渐长起来了。
非利士人的城主们聚集起来庆祝,举行盛大的仪式向他们的神大衮献祭。他们说:“我们的神让敌人参孙落在我们手里了!”群众看见参孙,就赞美他们的神,说:“这个敌人破坏我们的土地,杀了我们这么多人,现在我们的神让他落在我们手里了。”
<<image-basic "https://upload.wikimedia.org/wikipedia/commons/thumb/6/64/064.The_Death_of_Samson.jpg/1112px-064.The_Death_of_Samson.jpg"
caption:"Samson pushing the pillars apart"
width:"400px"
align:"right"
>>
他们心情很好,就说:“叫参孙来给我们助助兴。”于是有人把参孙从监牢里带出来,要他逗大家开心。''他们让他站在两根柱子中间''。参孙对拉着他手的男孩说:“让我摸摸支撑这座神殿的柱子吧,我要靠一靠。”
参孙呼求耶和华说:“至高的主宰耶和华啊,求你不要忘记我,上帝啊,求你赐我力量,就这么一次。非利士人挖了我的双眼,我要为其中一只眼向他们报仇。”
神殿中央有两根柱子支撑着整座神殿。参孙用力抵着柱子,右手一根,左手一根。参孙喊叫:“我要跟非利士人同归于尽!”他用尽全力一推,那座神殿就塌下来,压死了非利士人的城主们和神殿里的所有人。结果,参孙死的时候杀的人,比活着的时候杀的还多。
后来,参孙的兄弟和他父亲的整个家族都下来,把他的遗体带回去,葬在琐拉和以实陶之间他父亲玛挪亚的墓里。参孙做了以色列的士师20年。